/* Existing v4 language. Business content order and workspace grids stay intact. */
:root {
  --paper: #f9f8f5;
  --page: #f9f8f5;
  --surface: #fffefa;
  --ink: #111211;
  --muted: #6f716d;
  --line: #dddeda;
  --line-strong: #c8cbc4;
  --green: #53745f;
  --green-dark: #3c5947;
  --green-pale: #edf0e9;
  --green-soft: #edf0e9;
  --green-wash: #f3f4ee;
  --warm: #f1eee6;
  --shadow: none;
}
body, body.homepage, body.inbox-app, #archive,
#homeView .current-course-section, .theme-workspace { background-color: var(--paper); color: var(--ink); }
.topbar, .homepage .topbar, .homepage .topbar.past-campus,
body:is(.archive-page,.theme-page) .topbar, .inbox-app > header {
  background-color: rgba(249,248,245,.96);
  border-color: var(--line);
  box-shadow: none;
}
.admin-panel, .admin-login-panel, .admin-resource-card, .week-panel,
.resource-card, .region-card, .region-detail, .plan-only,
#homeView .grade-story, .inbox-app .review[open], dialog {
  background-color: var(--surface);
  border-color: var(--line);
  box-shadow: none;
}
.theme-hero, .theme-hero::before, .theme-hero::after {
  background: var(--paper);
  box-shadow: none;
}
.theme-title, .editorial-heading h2, .workspace-heading h2,
.admin-intro h1, .theme-row strong { color: var(--ink); }
.section-label, .archive-back, #archive .age-label,
.inbox-app a, .inbox-app .review-action { color: var(--green-dark); }
.theme-row, .directory-tools, .content-nav, .week-tabs, .activity-row,
.inbox-app section, .inbox-app .batch, .inbox-app .item, .admin-work-nav {
  border-color: var(--line);
}
input, select, textarea, .inbox-app input, .inbox-app select {
  background-color: #fffefa;
  border-color: #c8cbc4;
  color: var(--ink);
}
.quiet-button, .back-button, .inbox-app button,
.resource-action, .resource-preview-action, .archive-entry {
  background-color: var(--surface);
  border-color: var(--line-strong);
  color: var(--green-dark);
  box-shadow: none;
}
.primary-button, .site-nav .nav-upload {
  background-color: var(--ink);
  border-color: var(--ink);
  color: var(--paper);
  box-shadow: none;
}
.age-filters .active, .content-nav .active, .week-tab.active,
.inbox-app [aria-pressed=true] {
  background-color: var(--green-soft);
  border-color: var(--green);
  color: var(--green-dark);
}
.inbox-app .record-actions .danger-button { color: #963f31; border-color: #d7a59c; }
.inbox-app .record-actions .withdraw-button { color: #7d5617; border-color: #d8c28e; }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
}

body, body.inbox-app { font-family: "Avenir Next","PingFang SC","Hiragino Sans GB",-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif; color:var(--ink); background:var(--paper); }
body::before { display:none; }
button,input,select,textarea { font:inherit; }
body:is(.archive-page,.theme-page) .topbar, .admin-page .topbar, .inbox-app > .platform-header { min-height:72px; height:auto; padding-top:8px; padding-bottom:8px; background:var(--paper); border:0; box-shadow:none; gap:18px; }
.topbar .brand,.platform-header .brand,.topbar .site-nav,.topbar .top-actions,.platform-header .top-actions { display:flex; align-items:center; min-height:54px; padding:5px 18px; background:rgba(249,248,245,.96); border:1px solid rgba(17,18,17,.1); border-radius:999px; box-shadow:0 2px 9px rgba(20,20,18,.04); }
.topbar .brand,.platform-header .brand { gap:10px; color:var(--ink); }
.topbar .brand-logo,.platform-header .brand-logo { width:30px; height:30px; object-fit:contain; }
.topbar .brand-copy strong { font-weight:600; }
.topbar .site-nav { gap:24px; }
.topbar .top-actions,.platform-header .top-actions { gap:14px; }
.topbar .site-nav a,.platform-header a { font-size:13px; color:var(--muted); text-decoration:none; }
.topbar .site-nav .nav-upload { color:var(--paper); background:var(--ink); border-color:var(--ink); border-radius:999px; }
.topbar .quiet-button { border:0; background:transparent; color:var(--ink); }
.topbar .site-nav a:hover,.platform-header a:hover { color:var(--ink); }
.topbar .site-nav .nav-upload:hover { color:var(--paper); }
body.archive-page #archive,body.theme-page #themeView,#themeView .theme-hero,#themeView:has(#regionView:not([hidden])) .theme-hero,#themeView:has(#resourceView:not([hidden])) .theme-hero,#themeView #regionView,#themeView #resourceView { background:var(--paper); color:var(--ink); }
#archive .editorial-heading h2,#themeView .theme-title,#themeView .workspace-heading h2,#themeView .region-detail-heading h3,#themeView .topic-detail-header h3,.admin-page .admin-intro h1,.inbox-app h1 { color:var(--ink); font-weight:400; letter-spacing:-.035em; }
#themeView .activity-title h4,#themeView .region-copy strong,#themeView .region-activity h4,#themeView .week-panel-header h2,#themeView .topic-activity-copy strong,#archive .theme-name strong,.admin-page .admin-resource-title h3 { color:var(--ink); font-weight:550; }
#themeView .theme-kicker,#themeView .theme-meta,#themeView .week-summary,#themeView .activity-day,#themeView .region-count,.inbox-app .item small,.inbox-app #recordSummary { color:var(--muted); }
#themeView .content-nav { background:rgba(249,248,245,.97); border-color:var(--line); }
#themeView .content-nav button { color:var(--muted); }
#themeView .content-nav button.active { color:var(--ink); background:var(--warm); border-bottom-color:var(--ink); }
#themeView .week-tabs { border-color:var(--line); border-radius:14px; overflow-x:auto; overflow-y:hidden; background:var(--surface); }
#themeView .week-tab { background:transparent; color:var(--muted); }
#themeView .week-tab.active { color:var(--ink); background:var(--warm); box-shadow:inset 0 -2px var(--ink); }
#themeView .week-tab small { color:var(--muted); }
#themeView .region-entry,#themeView .topic-activity-card,#themeView .plan-download,.admin-page .admin-panel,.admin-page .admin-resource-card,.admin-page .admin-login-panel,.inbox-app .review[open] { background:var(--surface); border-color:var(--line); border-radius:14px; box-shadow:none; }
#themeView .region-entry:hover,#themeView .topic-activity-card:hover { background:var(--warm); border-color:var(--line-strong); }
#themeView .plan-download,#themeView .resource-action,#themeView .topic-document-link,#themeView .file-symbol { background:var(--surface); border-color:var(--line); color:var(--ink); box-shadow:none; }
#themeView .resource-action,#themeView .resource-preview-action,.back-button,.quiet-button,.primary-button,.inbox-app button,.inbox-context-dialog button,.admin-page .activity-pagination button { border-radius:999px; }
.inbox-app #login button,.inbox-app #upload,.inbox-app #uploadPlan button,.inbox-app #save,.inbox-app #confirmPublish,.inbox-context-dialog [type=submit] { color:var(--paper); background:var(--ink); border-color:var(--ink); }
.inbox-app a,#themeView .back-link,.inbox-add { color:var(--green-dark); }
.inbox-add { border-radius:999px; border-color:var(--line-strong); background:var(--surface); }
.inbox-app .inbox-nav a { color:var(--muted); border-bottom:1px solid transparent; padding-bottom:6px; }
.inbox-app .inbox-nav [aria-current=page],.inbox-app .inbox-nav a:hover { color:var(--ink); border-color:var(--ink); }
.admin-work-nav a,.admin-page .admin-file-link,.admin-page .admin-activity-file > a,.empty-state a { color:var(--green-dark); text-decoration:none; border-bottom:1px solid var(--line-strong); padding-bottom:3px; }
.admin-work-nav a:hover,.admin-page .admin-file-link:hover,.empty-state a:hover { color:var(--ink); border-color:var(--ink); }
input[type=file]::file-selector-button { font:inherit; border:0; border-radius:999px; padding:7px 12px; margin-right:10px; color:var(--paper); background:var(--ink); cursor:pointer; }
.inbox-app [aria-pressed=true] { background:var(--ink); border-color:var(--ink); color:var(--paper); }
.inbox-app .inbox-tabs { flex-wrap:wrap; }
.inbox-app #login { padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.inbox-app input,.inbox-app select,.inbox-app textarea,.admin-page input,.admin-page select,.admin-page textarea,.inbox-context-dialog input,.inbox-context-dialog textarea { background:var(--surface); color:var(--ink); border-color:var(--line-strong); border-radius:8px; }
.inbox-app #message:not(:empty) { top:82px; box-shadow:none; }
dialog,.inbox-app dialog,.admin-page .activity-edit-dialog,.inbox-context-dialog { background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:18px; box-shadow:none; overscroll-behavior:contain; max-width:calc(100vw - 32px); max-height:85dvh; overflow:auto; }
dialog::backdrop { background:rgba(17,18,17,.35); }
.file-preview-dialog > header { background:var(--surface); border-color:var(--line); }
.file-preview-dialog button { border:1px solid var(--line); border-radius:999px; background:var(--paper); }
.platform-error { margin:0; font:16px/1.7 "Avenir Next","PingFang SC",sans-serif; }
.platform-error main { max-width:720px; margin:16vh auto; padding:24px; }
.platform-error h1 { font-weight:400; }
.platform-error a { display:inline-block; padding:10px 20px; border:1px solid var(--line); border-radius:999px; color:var(--ink); text-decoration:none; }
a,button,summary { touch-action:manipulation; }
[id] { scroll-margin-top:88px; }
@media(max-width:680px) {
  body:is(.archive-page,.theme-page) .topbar,.admin-page .topbar,.inbox-app > .platform-header { gap:8px; padding-left:12px; padding-right:12px; flex-wrap:wrap; }
  .topbar .brand,.platform-header .brand { padding:5px 12px; min-height:46px; }
  .topbar .site-nav,.topbar .top-actions,.platform-header .top-actions { min-height:46px; padding:3px 12px; gap:14px; }
  .topbar .site-nav { width:100%; justify-content:space-between; }
  .topbar .brand-copy small { display:none; }
  .platform-header .brand { font-size:13px; }
  .platform-header .top-actions { flex-wrap:wrap; }
  .inbox-app .platform-header { position:static; }
  #themeView { padding-top:120px; }
  #archive { padding-top:148px; }
  #themeView .content-nav { top:112px; }
  .admin-page .topbar { position:sticky; }
  .inbox-app #login { display:grid; gap:8px; }
  .inbox-app #login label { width:100%; margin:0; }
  .inbox-app label,.admin-page label { min-width:0; max-width:100%; }
  .inbox-app .inbox-tabs { gap:8px; }
  button,.quiet-button,.primary-button,.inbox-app button,.back-link { min-height:44px; }
  .admin-activity-file { max-width:100%; flex-wrap:wrap; }
  .inbox-app input[type=file],.admin-page input[type=file] { width:100%; min-width:0; }
  .inbox-app .bar > *,.inbox-app .bulk > *,.inbox-app .pickers > * { max-width:100%; min-width:0; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition-duration:0s!important; scroll-behavior:auto!important; }
}

.homepage-control-row { display:flex; align-items:end; gap:12px; flex-wrap:wrap; padding:14px 0; border-bottom:1px solid var(--line); }
.homepage-control-row label { display:grid; gap:7px; max-width:100%; }
.homepage-control-row select { max-width:100%; min-width:0; }
.homepage-control-row span { align-self:center; font-size:13px; color:var(--muted); }
.homepage-manual-cover { padding:20px 0; border-top:1px solid var(--line); min-width:0; }
.homepage-cover-preview { display:block; width:min(497px,100%); height:150px; object-fit:cover; }
.homepage-cover-upload { display:grid; gap:12px; max-width:620px; }
.homepage-cover-upload label { display:grid; gap:7px; min-width:0; }
.homepage-cover-upload input[type=file] { max-width:100%; min-width:0; }
.homepage-cover-upload .homepage-cover-confirm { display:flex; align-items:center; gap:9px; }
.homepage-cover-confirm input { width:auto; }
.homepage-month { display:grid; gap:7px; max-width:240px; }
.homepage-control-row label { min-width:0; }
