/* Shared site surfaces. Course artwork and classroom canvases keep their own colors. */
:root, body[data-page], body.portal-v2[data-page] {
  --paper: var(--paper-neutral);
  --paper-card: #ffffff;
  --paper-deep: #eeede7;
  --ink: #292b28;
  --ink-2: #62655e;
  --ink-3: #777b73;
  --line: #e4e3dc;
  --line-soft: #efeee9;
  --line-strong: #c9cac0;
  --portal-bg: var(--paper-neutral);
  --portal-line: #e4e3dc;
  --portal-muted: #777b73;
  --clay: #b7432d;
  --clay-deep: #9d3826;
  --clay-wash: #f5e9e4;
  --accent: #b7432d;
}
body[data-page]:not(.is-classroom), body.portal-v2.inner-v2[data-page] {
  background: var(--paper);
  color: var(--ink);
}
body.portal-v2[data-page] .pv2-rail,
body.portal-v2[data-page] .pv2-top {
  background: var(--paper-card);
  border-color: var(--line);
}
body.portal-v2[data-page] .studio-sidebar,
body.portal-v2[data-page] .site-footer {
  background: var(--paper-deep);
  border-color: var(--line);
}
body.portal-v2[data-page] .pv2-search {
  background: var(--paper);
}
body.portal-v2[data-page] .pv2-search:focus-within {
  background: var(--paper-card);
  border-color: var(--accent);
}
body.portal-v2[data-page] .pv2-course {
  background: var(--paper-card);
  border-color: var(--line);
}
body.portal-v2[data-page] .pv2-social { border-color: var(--line-soft); }
body.portal-v2[data-page] .btn--solid,
body.portal-v2[data-page] .pv2-account {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
body.portal-v2[data-page] .btn--solid:hover,
body.portal-v2[data-page] .pv2-account:hover {
  background: var(--clay-deep);
  border-color: var(--clay-deep);
}
body.portal-v2[data-page] .pv2-rail a[aria-current="page"],
body.portal-v2[data-page] .studio-sidebar a[aria-current="page"],
body.portal-v2[data-page] .series-kind-tabs button[aria-pressed="true"] {
  background: var(--clay-wash);
  color: var(--clay-deep);
  border-color: #d6a79b;
}
body.portal-v2[data-page] .series-badge {
  background: var(--paper-deep);
  color: var(--ink-2);
}
body.portal-v2.inner-v2[data-page] #main :is(.rights-hero,.workflow-filters,.upload-drop,.cu-start,.verify-type,.verify-kind-switch,.series-route-facts,.series-route-empty),
body.portal-v2.inner-v2[data-page] #main :is([data-rp-empty],[data-follow-empty],[data-board-empty],[data-liked-status]),
body.portal-v2.inner-v2[data-page="teaching"] #main .teach-grid > .teach-panel:first-child {
  background: var(--paper-deep);
  border-color: var(--line);
}
body.portal-v2.inner-v2[data-page] #main :is(.form-fieldset,.workflow-row,.workspace-start-option),
body.portal-v2.inner-v2[data-page="creative-tools"] #main .cw-layout > :is(aside,section) {
  background: var(--paper-card);
  border-color: var(--line);
}
body.portal-v2.inner-v2[data-page="upload"] #main .workspace-start-option[aria-pressed="true"] {
  background: var(--clay-wash);
  border-color: #d6a79b;
}
body.portal-v2[data-page] .pv2-content-tabs a[aria-current="page"]::after,
body.portal-v2.inner-v2[data-page] .inner-section-tabs button[aria-selected="true"]::after {
  background: var(--accent);
}

/* Keep the navigation shell steady while the next document arrives. */
html { background: var(--paper-neutral); }
body.portal-v2.inner-v2[data-page] { --ring: 0 0 0 3px #b7432d20; }
/* A short content entrance avoids cross-document API failures during redirects. */
body.portal-v2:not(.course-presentation):not(.is-classroom) #main { animation: paper-page-in 140ms ease-out both; }
@keyframes paper-page-in { from { opacity: .85; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  body.portal-v2 #main { animation: none !important; }
}
