@font-face { font-family:Manrope; src:url('/assets/fonts/manrope.ttf') format('truetype'); font-style:normal; font-weight:200 800; font-display:swap; }

/* Shared semantic tokens; theme specificity intentionally wins over legacy :root defaults. */
html[data-theme="light"] {
  color-scheme:light;
  --dm-bg:#f5f7fb; --dm-bg-elevated:#fff; --dm-surface:#fff;
  --dm-surface-soft:#f2f5fa; --dm-surface-muted:#e9eef5;
  --dm-line:#e3e9f1; --dm-line-strong:#a1aec0;
  --dm-text:#182231; --dm-muted:#58677a; --dm-text-inverse:#fff;
  --dm-accent:#315eeb; --dm-accent-strong:#274fc8; --dm-accent-soft:#edf2ff;
  --dm-track:#315eeb; --dm-track-soft:#edf2ff;
  --dm-live:#1d7252; --dm-success:#1d7252; --dm-warning:#946514; --dm-danger:#b33243;
  --dm-shadow:0 8px 28px #192f4914; --dm-shadow-soft:0 2px 10px #192f4910;
}
html[data-theme="dark"] {
  color-scheme:dark;
  --dm-bg:#0c111a; --dm-bg-elevated:#101722; --dm-surface:#141d29;
  --dm-surface-soft:#1b2635; --dm-surface-muted:#233144;
  --dm-line:#293548; --dm-line-strong:#536882;
  --dm-text:#eff4fc; --dm-muted:#aab8cb; --dm-text-inverse:#101a2a;
  --dm-accent:#83adff; --dm-accent-strong:#bad1ff; --dm-accent-soft:#202f4b;
  --dm-track:#83adff; --dm-track-soft:#202f4b;
  --dm-live:#7ed6ad; --dm-success:#7ed6ad; --dm-warning:#e3bd77; --dm-danger:#ff969f;
  --dm-shadow:0 8px 28px #0004; --dm-shadow-soft:0 2px 10px #0003;
}
html[data-theme] {
  --public-bg:var(--dm-bg); --public-surface:var(--dm-surface);
  --public-surface-soft:var(--dm-surface-soft); --public-surface-muted:var(--dm-surface-muted);
  --public-surface-strong:var(--dm-surface); --public-line:var(--dm-line);
  --public-line-strong:var(--dm-line-strong); --public-text:var(--dm-text);
  --public-muted:var(--dm-muted); --public-accent:var(--dm-accent);
  --public-accent-strong:var(--dm-accent-strong); --public-hot:var(--dm-track);
  --public-live:var(--dm-live); --public-finished:var(--dm-muted); --public-shadow:var(--dm-shadow);
}
.appearance-control { appearance:none; position:relative; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; min-height:44px; flex:0 0 44px; padding:0; border:0; border-radius:8px; font:inherit; line-height:1; color:var(--dm-muted); background:transparent; box-shadow:none; cursor:pointer; }
.appearance-control:hover { color:var(--dm-text); background:var(--dm-surface-soft); }
.appearance-control:focus-visible { outline:3px solid var(--dm-accent); outline-offset:2px; }
.appearance-control select[data-appearance-mode] { position:absolute; inset:0; width:100%; height:44px; min-height:44px; padding:0; margin:0; opacity:0; cursor:pointer; }
.appearance-symbol { display:none; pointer-events:none; }
.appearance-symbol svg { display:block; width:20px; height:20px; }
html[data-theme="dark"] .appearance-symbol-light,
html[data-theme="light"] .appearance-symbol-dark { display:block; }
.appearance-caption { color:var(--dm-muted); font-size:12px; }
.sidebar-appearance { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.workspace-mobile-nav .appearance-control { position:absolute; top:2px; right:12px; z-index:2; }
.workspace-mobile-nav > summary { padding-right:64px; }
.access-appearance { position:absolute; top:12px; right:12px; }
.catalog-header-actions { display:flex; align-items:center; gap:12px; }
.catalog-header-actions .catalog-admin { margin-left:0; }
html[data-theme="light"] :is(.app-shell,.access-shell) :is(.notice,.badge) { box-shadow:none; }
html[data-theme="light"] .public-shell .catalog-card-date,
html[data-theme="light"] .public-shell .catalog-admin { color:var(--dm-muted); }
