/* Styles. Most light colours are tokens: shared ones (--ink, --line, ...)
   are redefined below, and dark-only ones are read as var(--token,<light hex>)
   in the light stylesheets, so they fall back to the hex in light mode.
   The [data-mode=dark] rules left below re-colour what is still hard-coded:
   compound values, and overrides whose removal would change the dark look.
   Base rules prefixed :where([data-mode=dark]) carry no specificity for the
   prefix, so the light :hover/.active/.claim rules (already tokenised) win.
   theme.js sets data-theme (light, graphite, forest or warm) on <html>, plus
   data-mode="dark" for the three dark styles, which share every rule below. */
/* Shared by the three dark styles: status colours and aliases for the
   variables the light stylesheets use. Each style below sets its surfaces. */
:root[data-mode=dark]{color-scheme:dark;
  --amber-bg:#33280f;--amber:#e6b85c;--green-bg:#16301f;--green:#7fd19f;--red-bg:#3a1a19;--red:#f09a92;--blue:#9bb7d6;--orange:#e39d73;--purple:#b9a6d8;
  --shadow:0 2px 4px #0000002e,0 10px 25px #00000038;
  --paper:var(--bg);--danger-bg:var(--red-bg);--danger-text:var(--red);--green-light:var(--accent-bg);--card-shadow:var(--shadow)}
:root[data-theme=graphite]{
  --bg:#111318;--surface:#171a20;--raised:#1d2027;--raised-2:#252932;--line:#2c313b;--line-strong:#3a404c;
  --ink:#e8eaef;--muted:#a2a8b3;--subtle:#7d8390;
  --accent:#86c4a4;--accent-strong:#a8dcc0;--accent-bg:#1c2b24;--accent-line:#2f4a3d;
  --solid:#e8eaef;--on-solid:#111318;--solid-hover:#86c4a4;
  --gray-bg:#262a31;--blue-bg:#1b2633;--dash:#5d6575}
:root[data-theme=forest]{
  --bg:#0e1512;--surface:#141d19;--raised:#1a2621;--raised-2:#22302a;--line:#26352e;--line-strong:#344a40;
  --ink:#e4ece7;--muted:#9aaba1;--subtle:#7a8b82;
  --accent:#8cc7a8;--accent-strong:#ade0c4;--accent-bg:#1a2c23;--accent-line:#2f4c3e;
  --solid:#e4ece7;--on-solid:#0e1512;--solid-hover:#8cc7a8;
  --gray-bg:#22302a;--blue-bg:#1a2833;--dash:#4f6a5c}
:root[data-theme=warm]{
  --bg:#161512;--surface:#1d1c18;--raised:#25231e;--raised-2:#2e2b25;--line:#34312a;--line-strong:#454037;
  --ink:#ece8df;--muted:#aaa497;--subtle:#857f73;
  --accent:#9cc4a4;--accent-strong:#bcdcc2;--accent-bg:#232a22;--accent-line:#3c4a3d;
  --solid:#ece8df;--on-solid:#161512;--solid-hover:#9cc4a4;
  --gray-bg:#2e2b25;--blue-bg:#1f2630;--dash:#6e6250}
[data-mode=dark] body:before{opacity:.03}
[data-mode=dark] .nous-artwork{filter:brightness(2.3) saturate(.75)}
[data-mode=dark] button:hover{color:var(--accent)}
[data-mode=dark] :is(button,a,input,textarea,select):focus-visible,[data-mode=dark] #surface:focus-visible,[data-mode=dark] .inspector-scroll:focus-visible,[data-mode=dark] #audio-file:focus-visible,[data-mode=dark] .map-tray summary:focus-visible,[data-mode=dark] .map-mode button:focus-visible{outline-color:var(--accent)}
[data-mode=dark] input:focus,[data-mode=dark] textarea:focus,[data-mode=dark] select:focus{outline-color:var(--accent)}
[data-mode=dark] :is(.brand-note,.eyebrow,.goal-bottom,.context-chip,.quiet,.simulated,.page-kicker,.page-intro,.branch-note,.suggestions>span,.inspector-eyebrow,.views button:not([aria-selected=true]):not(:hover)){color:var(--muted)}
:where([data-mode=dark]) :is(.top-actions #export,.icon-button,.view-right button,.inspector-controls button,.inspector-eyebrow button){background:var(--raised);border-color:var(--line);color:var(--ink);box-shadow:none}
[data-mode=dark] :is(.top-actions #export,.icon-button,.view-right button):hover{background:var(--raised-2)}
[data-mode=dark] .action-peek{border-color:var(--line);box-shadow:var(--shadow)}
[data-mode=dark] .action-orbit{box-shadow:none}
[data-mode=dark] .views{border-color:var(--line)}
[data-mode=dark] .views button:hover{color:var(--ink)}
[data-mode=dark] .views button[aria-selected=true]{background:var(--raised-2);box-shadow:0 2px 6px #00000040}

/* Map and inspector panels */
[data-mode=dark] #surface{background-color:var(--surface);background-image:radial-gradient(var(--line-strong) .65px,transparent .65px);border-color:var(--line);box-shadow:none}
[data-mode=dark] #inspector{background:var(--surface);border-color:var(--line);box-shadow:none}
[data-mode=dark] :is(#inspector,.inspector-scroll){scrollbar-color:var(--line-strong) transparent}
[data-mode=dark] .context-group{border-color:var(--line)}
[data-mode=dark] .context-group h3,[data-mode=dark] .surface-heading .branch-switch{color:var(--ink)}
[data-mode=dark] :is(.context-group li,.context-footer,.context-lead,.inspector-body,.inspector-label,.source-note,.branch-meta,.row-meta,.surface-heading,.map-legend,.change-entry,.help-row span){color:var(--muted)}
[data-mode=dark] .legend-line{border-color:var(--line-strong)}
:where([data-mode=dark]) .node{border-color:var(--line);box-shadow:var(--shadow);color:var(--ink)}
[data-mode=dark] .node p,[data-mode=dark] .node-foot{color:var(--muted)}
[data-mode=dark] .node-foot{border-color:var(--line)}
[data-mode=dark] .node:hover,[data-mode=dark] .node.claim:hover{box-shadow:var(--shadow)}
[data-mode=dark] .node.selected,[data-mode=dark] .node.claim.selected{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent),var(--shadow)}
[data-mode=dark] .type.question,[data-mode=dark] .type.artifact{color:var(--purple)}
[data-mode=dark] .state.decided,[data-mode=dark] .state.completed{color:var(--green)}
[data-mode=dark] .state.superseded{color:var(--muted)}
:where([data-mode=dark]) .state-strip span{color:var(--muted)}
[data-mode=dark] .state-strip :is(.state-arrow,.state-exit){background:none}

/* Map controls */
:where([data-mode=dark]) :is(#map-fullscreen,.map-tools,.map-mode,.map-tray,.map-viewport>.surface-heading){background:var(--raised);border-color:var(--line);box-shadow:0 4px 14px #00000040}
[data-mode=dark] :is(.map-tools button,#map-fullscreen,.map-tray summary){color:var(--accent)}
[data-mode=dark] :is(.map-tools button,#map-fullscreen,.map-tray li):hover{background:var(--accent-bg);color:var(--accent-strong)}
[data-mode=dark] :is(.map-tools #map-fit small,.map-tray>p,.tray-object .type,.map-focus-header>span,.map-focus-header small){color:var(--muted)}
[data-mode=dark] .map-navigation{border-color:var(--line)}
[data-mode=dark] .map-navigation .map-pan-hint,[data-mode=dark] .map-pan-hint{background:var(--raised);border-color:var(--line);color:var(--muted)}
[data-mode=dark] .map-mode button{color:var(--muted)}
[data-mode=dark] .map-mode button[aria-pressed=true]{color:var(--on-solid)}
[data-mode=dark] .tray-place{background:var(--accent-bg);border-color:var(--accent-line)}
[data-mode=dark] .map-fullscreen .surface-frame{border-color:var(--line)}
[data-mode=dark] .map-fullscreen .map-focus-header{border-color:var(--line)}
[data-mode=dark] .object-list h3{color:var(--muted)}
[data-mode=dark] .object-row{border-color:var(--line)}

/* Ask bar */
[data-mode=dark] .command-dock{background:var(--bg);border-color:var(--line)}
[data-mode=dark] .command-context b,[data-mode=dark] .command-star{color:var(--ink)}
[data-mode=dark] #command-form,[data-mode=dark] body:not(.map-fullscreen) #command-form{background:var(--raised);border-color:var(--line-strong);box-shadow:0 8px 28px #00000059}
[data-mode=dark] #command-form:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
[data-mode=dark] body:not(.map-fullscreen)::after{background:var(--bg);background:color-mix(in srgb,var(--bg) 92%,transparent)}
[data-mode=dark] kbd{color:var(--muted)}
[data-mode=dark] .suggestions button{border-color:var(--line)}
[data-mode=dark] .suggestions button:hover{color:var(--ink)}
[data-mode=dark] #command-form #ask-microphone,[data-mode=dark] #audio-file::file-selector-button{border-color:var(--accent-line)}
[data-mode=dark] #command-form #ask-microphone[aria-pressed=true],[data-mode=dark] #dictation-elapsed{border-color:#6b2f2b}
[data-mode=dark] :is(#dictation-feedback,.stream-status,#last-ask-result,#connections,#audio-tools,#cancel-ask,#refresh-models,.connection-card span,.connection-card [role=status],.audio-result a,.audio-artifact a){color:var(--accent)}
[data-mode=dark] :is(#dictation-feedback button,#dictation-overflow,#audio-tools,#audio-file){background:var(--raised);border-color:var(--line)}
[data-mode=dark] :is(#connection-status,#cancel-ask,.connection-card small,.audio-description,.audio-note,#audio-file){color:var(--muted)}
[data-mode=dark] .provider-controls select{border-color:var(--accent-line)}
[data-mode=dark] .connection-card,[data-mode=dark] .audio-result{border-color:var(--line)}
:where([data-mode=dark]) .model-chip{border-color:var(--line-strong);color:var(--ink)}
[data-mode=dark] .model-chip::after{color:var(--muted)}

/* Ask answers */
[data-mode=dark] .ask-query{border-color:var(--accent-line)}
[data-mode=dark] .ask-status.changed{color:var(--green)}
[data-mode=dark] .ask-change,[data-mode=dark] .ask-object-list button{border-color:var(--line);color:var(--ink)}
[data-mode=dark] :is(.ask-change>span,.ask-excerpt,.ask-footnote){color:var(--muted)}

/* Pages: branches, evidence, decisions, brief, actions */
:where([data-mode=dark]) :is(.branch-card,.evidence-card,.decision-row,.document-paper,.action-card,.extra-object,.empty,.subtle-button,.inspector-state,.review-chip,.review-back,.lineage span){background:var(--raised);border-color:var(--line);box-shadow:none}
[data-mode=dark] :is(.branch-card,.evidence-card,.decision-row,.document-paper,.action-card,.extra-object,.empty,.subtle-button,.inspector-state,.review-chip,.review-back,.lineage span){color:var(--ink)}
[data-mode=dark] .branch-card.active{background:linear-gradient(145deg,var(--raised),var(--accent-bg))}
[data-mode=dark] :is(.branch-root,.branch-root:after,.branch-meta,.object-links button,.change-entry,.evidence-card footer,.doc-section,.action-grid div,.decision-row,.help-row){border-color:var(--line)}
[data-mode=dark] :is(.branch-card p,.evidence-card p,.decision-row p,.doc-section p,.action-grid p,.action-grid small,.extra-object p,.document-paper .doc-deck,.action-footer span,.doc-live){color:var(--muted)}
[data-mode=dark] .evidence-card blockquote{color:var(--ink)}
[data-mode=dark] .evidence-card.contradiction{border-top-color:#8a7140}
[data-mode=dark] .action-preview{border-color:var(--accent-line)}
[data-mode=dark] .primary{background:var(--solid)!important;border-color:var(--solid)!important;color:var(--on-solid)!important}
[data-mode=dark] .primary:hover{background:var(--solid-hover)!important;border-color:var(--solid-hover)!important}
[data-mode=dark] .review-panel{box-shadow:-24px 0 60px #00000080}
[data-mode=dark] .review-scrim{background:#000}

/* Dialogs, menus, toast */
[data-mode=dark] dialog{border-color:var(--line);box-shadow:0 24px 90px #00000099}
[data-mode=dark] dialog::backdrop{background:#00000099}
[data-mode=dark] :is(dialog input,dialog textarea,dialog select,.surface-heading select,.inspector-state){background:var(--raised);border-color:var(--line-strong);color:var(--ink)}
[data-mode=dark] select:hover{background-color:var(--raised-2);border-color:var(--accent-line)}
@supports (appearance:base-select){
  [data-mode=dark] select::picker(select){border-color:var(--line-strong);box-shadow:0 16px 40px #00000080}
}

/* Narrow screens */
@media(max-width:1100px){}
@media(max-width:850px){
  [data-mode=dark] #inspector{border-color:var(--line)}
  [data-mode=dark] .command-dock{background:color-mix(in srgb,var(--bg) 92%,transparent)}
  [data-mode=dark] .map-fullscreen .map-has-selection #inspector{box-shadow:0 12px 50px #00000080}
}

/* Theme switch in the top bar */

/* Style picker (topbar) */
.theme-picker{position:relative}
.theme-picker>.icon-button svg{display:block;margin:auto}
.theme-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:190px;padding:6px;border:1px solid #d9dde3;border-radius:12px;background:var(--raised,#fff);box-shadow:0 12px 32px #1118272e;display:grid;gap:2px}
.theme-menu[hidden]{display:none}
.theme-sep{height:1px;margin:4px 6px;background:#e5e8ec}
[data-mode=dark] .theme-sep{background:var(--line)}
.theme-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;color:inherit;font:inherit;font-size:13px;text-align:left;cursor:pointer}
.theme-menu button:hover{background:var(--raised-2,#f1f3f5)}
.theme-menu button[aria-pressed=true]{font-weight:600}
.theme-menu button[aria-pressed=true]::after{content:"✓";margin-left:auto;color:var(--accent,#295b44)}
.theme-swatch{width:22px;height:22px;flex:none;border-radius:50%;border:1px solid #0000002e;background:linear-gradient(135deg,var(--sw-bg) 50%,var(--sw-accent) 50%)}
[data-mode=dark] .theme-menu{border-color:var(--line-strong);color:var(--ink);box-shadow:0 16px 40px #00000080}

/* Switching style: theme.js reveals the new one in a circle from the option
   clicked (View Transitions), or fades colours where that API is missing. */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
:root.theme-fading *,:root.theme-fading *::before,:root.theme-fading *::after{transition:background-color .45s ease,color .45s ease,border-color .45s ease,fill .45s ease,stroke .45s ease,box-shadow .45s ease!important}
[data-mode=dark] dialog .field-hint{color:var(--muted)}
/* Light rules in ux-refinements.css whose :not() chains outrank the generic dark overrides above. */
[data-mode=dark] .state-strip span:not(.current):not(.rejected):not(.state-exit){color:var(--muted)}
[data-mode=dark] .audio-toolbar button{border-color:var(--line-strong)}
