/* Final semantic palette for every ordinary workspace and embedded editor.
   Module styles consume these tokens; document/print exceptions stay explicit. */
:root {
  color-scheme: light;
  --ink: #182b40; --muted: #526578; --line: #d5e0e8;
  --paper: #f4f7fa; --white: #ffffff; --surface-soft: #edf3f7;
  --accent: #1763b5; --accent-strong: #124e91; --accent-soft: #e8f1fc;
  --positive: #176c4e; --negative: #aa283b; --amber: #80510a;
  --positive-soft: #e5f4ec; --negative-soft: #ffedf0; --amber-soft: #fff3db;
  --on-accent: #fff; --on-negative: #fff; --focus: #1763b5;
  --glass: #ffffffed; --glass-border: var(--line);
  --text: var(--ink); --surface: var(--white); --surface-alt: var(--surface-soft);
  --border: var(--line); --green: var(--accent); --light-green: var(--accent-soft);
  --focus-ring: var(--accent-strong);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #eaf1f8; --muted: #afbed0; --line: #3e536a;
  --paper: #111d2a; --white: #1a2b3d; --surface-soft: #22374d;
  --accent: #9acbff; --accent-strong: #badbff; --accent-soft: #284460;
  --positive: #94ddba; --negative: #ffabb4; --amber: #f1cb86;
  --positive-soft: #203e34; --negative-soft: #452c37; --amber-soft: #403721;
  --on-accent: #102a46; --on-negative: #371520; --focus: #badbff;
  --glass: #1a2b3df5; --glass-border: var(--line);
}
:root[data-theme="warm"] {
  color-scheme: light;
  --ink: #30392f; --muted: #5d6658; --line: #d8ddcf;
  --paper: #f3f3ed; --white: #fffef8; --surface-soft: #eeefe4;
  --accent: #3b694e; --accent-strong: #2c523b; --accent-soft: #e3eee1;
  --positive: #29613e; --negative: #a02c39; --amber: #80510a;
  --positive-soft: #e2efdf; --negative-soft: #faeaeb; --amber-soft: #fff0d5;
  --on-accent: #fff; --on-negative: #fff; --focus: #3b694e;
  --glass: #fffef8f5; --glass-border: var(--line);
}
:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]), select, textarea) {
  color: var(--ink); background-color: var(--white); border: 1px solid var(--line); border-radius: 7px; padding: 9px 11px; max-width: 100%; font: inherit;
}
.financial-number { display: inline; white-space: nowrap; font-variant-numeric: tabular-nums; }
body { color: var(--ink); background-color: var(--paper); }
.has-open-popover { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.appearance-panel[popover] { color: var(--ink); background: var(--white); inset: auto; margin: 0; }
.appearance-panel, .appearance-panel h2 { color: var(--ink); }
.department-work { color: var(--ink); }
.department-tabs [aria-current], .department-plan-chip[aria-current], .department-outline [aria-current] {
  background: var(--accent-soft); color: var(--accent-strong); border-color: var(--accent);
}
.plan-favourable { color: var(--positive); }
.department-months :is(td, th):not(:first-child) { white-space: nowrap; text-align: right; min-width: 7rem; }
.department-months table { width: max-content; min-width: 100%; }
.department-work .department-heading { gap: 18px; }
.department-work .department-heading > div:last-child { flex-wrap: wrap; }
.session-notice { position: fixed; inset: auto 18px 18px auto; z-index: 150;
  width: min(440px, calc(100vw - 36px)); padding: 18px 20px; background: var(--white);
  color: var(--ink); border: 1px solid var(--amber); border-radius: 12px; box-shadow: var(--shadow); }
.session-notice p { margin: 7px 0 12px; font-size: .85rem; }
.session-notice .action-row { gap: 12px; }
.recovered-work { border: 1px solid var(--amber); background: var(--amber-soft); color: var(--ink); padding: 14px 18px; border-radius: 9px; }

/* Functional account, document and onboarding surfaces share the same semantics.
   Painted demonstration illustrations and source-paper documents keep their paired colours. */
.bi-more>summary{color:var(--muted)}
:root[data-theme] .ocr-button-primary{background:var(--accent)!important;color:var(--on-accent)!important;border-color:var(--accent)!important}
.superuser-context-bar strong{color:var(--amber)}
.superuser-context-bar button{color:var(--amber)!important;border-color:var(--amber)!important}
.access-mode-button[aria-pressed=true] [data-superuser-state]{color:var(--on-accent)}
.demo-welcome-mark,.demo-setup-eyebrow,.demo-preview-status{color:var(--accent-strong)!important}
.demo-welcome-lead,.demo-setup-notice p,.demo-businesses-heading p,.demo-company-story,.demo-discovery-footer p,
.demo-group-total>span,.demo-group-total>small,.demo-group-highlights span,.demo-mini-heading>span,
.demo-mix-legend>span,.demo-group-qualification,.demo-company-figures span,.demo-open-pending,
.demo-quick-panel>p:not(.demo-preview-kicker),.demo-preview-label,.demo-preview-numbers span,
.demo-year-bars span,.demo-opening-pair span,.demo-preview-footnote,.demo-posted-grid span{color:var(--muted)!important}
.demo-group-total>strong,.demo-mix-legend b,.demo-company-figures strong,.demo-preview-numbers strong,
.demo-year-bars strong,.demo-opening-pair strong,.demo-posted-grid strong,.demo-discovery-footer strong{color:var(--ink)}
.demo-open-link,.demo-quick-trigger{color:var(--accent-strong)!important}
.demo-build-status [data-demo-error]{color:var(--negative)}
.demo-company-count,.demo-company-tags span{background:var(--surface-soft);border-color:var(--line);color:var(--muted)}

.demo-discovery{--demo-ink:var(--ink);--demo-subtle:var(--muted);--demo-stroke:var(--line)}
.demo-setup-notice{background:var(--accent-soft);border-color:var(--line)}
.demo-group-feature,.demo-discovery .demo-company,.demo-discovery .demo-company[class*="demo-tone-"],.demo-quick-panel{background:var(--white);border-color:var(--line)}
.demo-group-numbers{background:linear-gradient(145deg,var(--white),var(--surface-soft))}
.demo-quick-trigger:hover,.demo-quick-trigger:focus-visible,.demo-cost-bars,.demo-year-bars b,.demo-mix-track{background:var(--surface-soft)}
.demo-hero{background:linear-gradient(115deg,var(--accent-soft),var(--white));color:var(--ink);border-color:var(--line)}
.demo-badge,.demo-context-bar{background:var(--accent-soft);color:var(--accent-strong)}
.demo-card{background:var(--white);border-color:var(--line)}

.mobile-workspaces{display:none;position:relative}
.mobile-workspaces>summary,.department-tools>summary{cursor:pointer;list-style:none;border:1px solid var(--line);background:var(--white);color:var(--accent-strong);padding:8px 12px;border-radius:7px;font-size:.8rem}
.mobile-workspaces>nav,.department-tools>nav{position:absolute;right:0;top:calc(100% + 8px);background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:10px;min-width:220px;z-index:70}
.mobile-workspaces>nav a,.department-tools>nav a{display:block;min-height:40px;padding:9px 12px;font-size:.83rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.mobile-workspaces>nav a:hover,.department-tools>nav a:hover{background:var(--accent-soft)}
.department-tools{position:relative}
.department-tools>summary::after{content:' ⌄'}
@media(max-width:700px){
 .topbar{min-height:60px;padding:10px 14px;gap:10px;flex-wrap:wrap}
 .topbar .brand{font-size:0;gap:0}.topbar .brand .phase{display:none!important}.topbar .brand-mark{font-size:1rem;width:30px;height:30px}
 .topbar nav[aria-label=Account]{margin-left:auto;gap:8px;flex-wrap:nowrap;width:auto;max-width:100%}
 .topbar nav[aria-label=Account]>a{display:none}
 .mobile-workspaces{display:block}
 .mobile-workspaces>summary{font-size:.72rem;padding:7px 9px;color:var(--muted);background:var(--surface-soft)}
 .topbar .account-menu{min-width:0}
 .topbar .account-menu>summary{font-size:.75rem;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px}
 .topbar:has(details[open]){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .topbar .appearance-panel,.topbar .account-menu>div,.topbar .mobile-workspaces>nav{position:fixed;top:68px;left:12px;right:12px;width:auto;min-width:0;max-width:calc(100vw - 24px);max-height:calc(100dvh - 92px);overflow:auto}
 .department-work .department-breadcrumb{display:none}
 .department-work .department-heading{gap:12px;align-items:flex-start}
 .department-work .department-heading>div:first-child{flex:1 1 180px;min-width:0}
 .department-work .department-heading h1{font-size:1.6rem}
 .department-work .department-heading p{font-size:.87rem;margin-bottom:0}
}
@media(max-width:360px){
 .appearance-swatches{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media print {
  :root, :root[data-theme] { color-scheme: light; --ink: #111; --muted: #444; --paper: #fff;
    --white: #fff; --surface-soft: #f3f3f3; --line: #bbb; --accent: #111; --accent-strong: #111;
    --positive: #111; --negative: #111; --amber: #111; --accent-soft: #f3f3f3; }
  .session-notice { display: none !important; }
}
