/* Shared charcoal palette. Loaded last on public pages and bundled last in the dashboard. */
:root[data-theme=dark]{
  --surface-page:#000000;
  --surface-nav:#212121;
  --surface-card:#272727;
  --surface-raised:#303030;
  --surface-inset:#1f1f1f;
  --surface-hover:#383838;
  --border-soft:#3d3d3d;
  --border-strong:#515151;
  --text-primary:#eeeeee;
  --text-secondary:#b8b8b8;
  --text-subtle:#a0a0a0;
  --ink:var(--text-primary);
  --paper:var(--theme-paper,var(--surface-page));
  --g9:var(--surface-nav);
  --g7:#d1d1d1;
  --g6:var(--text-secondary);
  --g5:var(--text-subtle);
  --g4:#818181;
  --g3:var(--border-strong);
  --g2:var(--border-soft);
  --g1:var(--theme-low,var(--surface-card));
  --accent:var(--text-primary);
  --accent-soft:var(--surface-hover);
  --glass-surface:#303030;
  --glass-menu:#343434;
  --glass-edge:#515151;
  --glass-highlight:rgba(255,255,255,.045);
  --glass-hover:#414141;
  --glass-shadow:0 14px 36px -14px #0008,0 2px 8px #0003;
  color-scheme:dark;
}
:root[data-theme=dark] body{background:var(--surface-page)}
/* Public-page panels and controls use the same layers as the app. */
:root[data-theme=dark] :is(.card,.plan,.ab-box,.ab-val,.au-card,.ct-form,.form-card,.pv-card,.info-row,.quote){background:var(--surface-card);border-color:var(--border-soft)}
:root[data-theme=dark] :is(.mini,.chip,.badge,.ai-mark,.bicon){background:var(--surface-raised);border-color:var(--border-soft)}
:root[data-theme=dark] :is(.au-side,.ct-side,.svc,.vs .good,.bcard.big,.final){background:var(--surface-raised);border-color:var(--border-strong);color:var(--text-primary)}
:root[data-theme=dark] :is(.au-side,.ct-side,.svc,.vs .good,.bcard.big,.final) :is(p,small){color:var(--text-secondary)}
:root[data-theme=dark] .sec.dark{background:var(--surface-nav)}
:root[data-theme=dark] .bcard{background:var(--surface-card);border-color:var(--border-soft)}
:root[data-theme=dark] .bcard:hover{border-color:var(--border-strong)}
:root[data-theme=dark] .bcard.big{background:var(--surface-raised)}
:root[data-theme=dark] .plan.feat{background:var(--surface-raised);border-color:var(--border-strong)}
:root[data-theme=dark] .vs .bad{background:var(--surface-card)}
:root[data-theme=dark] header::before{background:rgba(33,33,33,.92);border-bottom-color:var(--border-soft)}
:root[data-theme=dark] .mnav{background:rgba(48,48,48,.97);border-color:var(--border-strong)}
:root[data-theme=dark] footer{background:var(--surface-nav);border-color:var(--border-soft)}
:root[data-theme=dark] :is(.au-f input,.fld input,.fld textarea,.fld select,.ct-f input,.ct-f textarea){background:var(--surface-inset);border-color:var(--border-strong);color:var(--text-primary)}
:root[data-theme=dark] .au-social{background:var(--surface-raised);border-color:var(--border-strong)}
:root[data-theme=dark] .au-f input:focus{background:var(--surface-inset);border-color:var(--text-secondary)}
:root[data-theme=dark] .pv-short{background:var(--surface-inset);border-color:var(--border-soft)}
:root[data-theme=dark] .ob{background:var(--surface-page)}
:root[data-theme=dark] .ob-top{background:var(--surface-nav);border-color:var(--border-soft)}
:root[data-theme=dark] :is(.ob-search,.ob-plat){background:var(--surface-card);border-color:var(--border-soft)}
:root[data-theme=dark] .ob-search input{background:var(--surface-inset);border-color:var(--border-strong)}
:root[data-theme=dark] .hview{background:var(--surface-inset);border-color:var(--border-strong)}
:root[data-theme=dark] .hslide{background:radial-gradient(circle at var(--gx,50%) var(--gy,40%),#ffffff1f,transparent 58%),radial-gradient(#ffffff12 1px,transparent 1.5px) 0 0/16px 16px,linear-gradient(#383838,#242424)}
:root[data-theme=dark] #hbg stop:first-child{stop-color:#383838}
:root[data-theme=dark] #hbg stop:last-child{stop-color:#242424}
:root[data-theme=dark] .ab-photo{background:var(--surface-inset)}
/* App chrome, content panels and raised dialogs remain visually distinct. */
:root[data-theme=dark] :is(.dx-side,.dx-top){background:var(--surface-nav);border-color:var(--border-soft)}
:root[data-theme=dark] .dx-main{background:var(--surface-page)}
:root[data-theme=dark] .dx-nav a:hover,:root[data-theme=dark] .dx-out:hover{background:var(--surface-hover)}
:root[data-theme=dark] .dx-nav a[aria-current=page]{background:var(--surface-raised);color:var(--text-primary)}
:root[data-theme=dark] .dx-nav a[aria-current=page]:hover{background:var(--surface-hover);color:var(--text-primary)}
:root[data-theme=dark] :is(.db-card,.pl-item,.planner-focus,.sc-page,.sc-library-table,.planner-empty,.ai-composer,.ai-prompts button){border-color:var(--border-soft);box-shadow:inset 0 1px 0 #ffffff04}
:root[data-theme=dark] :is(.pl-col,.planner-views,.sc-column-head,.sc-brief,.sc-find,.post-script-link){background:var(--surface-nav);border-color:var(--border-soft)}
:root[data-theme=dark] :is(.dx-ico,.dx-av,.sc-item-icon,.ai-mark,.billing-prices>div){background:var(--surface-raised);border-color:var(--border-strong)}
:root[data-theme=dark] :is(.dx input,.dx textarea,.dx select,dialog input,dialog textarea,dialog select){background:var(--surface-inset);border-color:var(--border-strong);color:var(--text-primary)}
:root[data-theme=dark] :is(.dx input,.dx textarea,dialog input,dialog textarea)::placeholder{color:var(--text-subtle)}
/* Writing surfaces stay continuous; inputs inside them retain their native focus styles. */
:root[data-theme=dark] :is(#sc-title,#sc-body,#ai-brief,.pl-add input){background:transparent}
:root[data-theme=dark] :is(.sc-more>div,.sc-library-menu>div,.sc-details){background:var(--surface-raised);border-color:var(--border-strong)}
:root[data-theme=dark] .sc-metadata [aria-pressed=true]{background:var(--surface-hover)}
:root[data-theme=dark] dialog{background:var(--surface-raised);border-color:var(--border-strong)}
:root[data-theme=dark] .sc-templates button{background:var(--surface-card);border-color:var(--border-strong)}
:root[data-theme=dark] .sc-templates button:hover{background:var(--surface-hover)}
:root[data-theme=dark] .cd{background:var(--surface-inset);border-color:var(--border-soft)}
:root[data-theme=dark] .cd.some{background:var(--surface-raised)}
:root[data-theme=dark] .ai-user{background:var(--surface-raised)}
:root[data-theme=dark] #ai-pricing-dialog::backdrop{background:rgba(20,20,20,.5)}
