/* Mock (home-lanes.inner.html) visual language, scoped to the ported screens.
   Generated in stage D from the mock's CSS with every selector prefixed; the scope
   is `:is(#numora-home,.nmk)` — Home keeps its id, other ported pages (Tasks…)
   opt in with class="nmk" on their wrapper (stage D-2+).
   Hand-maintained since D-2 (the original scratchpad port script is gone):
   to re-port after mock edits, re-extract the mock <style> and prefix every
   selector with the same :is() scope, then keep the override blocks at the end. */

/* ════════════════════════════════════════════════════════════
   PERSONAL OS — CONSOLE DESIGN SYSTEM
   Dense instrument-panel dashboard. No external fonts/CDN.
   Tokens only — no hardcoded colors in components below.
   ════════════════════════════════════════════════════════════ */
:is(#numora-home,.nmk) {
  /* overrides legacy styles.css `#numora-home{font-size:12px}` (pre-mock era,
     lines ~2972/2992) — the mock inherits 14px from its artifact-preview host
     frame (no font-size of its own in the mock's CSS), confirmed as the real
     rendered size the owner viewed live. Same ID-level specificity as the
     legacy rule, wins on source order since this file loads after styles.css. */
  font-size:14px;
  --sched:var(--accent); --sched-dim:var(--accent-dim);
  --snote-color:#2F6FED;

  /* ---- CONFIRMED DEFAULT: theme-gitbook + pal-terracotta ----
     The official artifact unconditionally runs
     document.body.classList.add("lang-ja","theme-gitbook","pal-terracotta")
     on load (no toggle, no localStorage gate) — this IS the mock's actual
     rendered default, confirmed visually by the owner (no rounded corners).
     The flat #EDEFF2/white/9px system used through stages D–E was wrong;
     these are the real gitbook+pal-terracotta token values. */
  --bg:#AEB6B1; --bg2:#A5ADA8;
  --panel:rgba(255,255,255,.16); --panel2:rgba(255,255,255,.08);
  --border:rgba(20,22,20,.22); --border2:rgba(20,22,20,.12);
  --t1:#15170F; --t2:rgba(21,23,15,.84); --t3:rgba(21,23,15,.64); --t4:rgba(21,23,15,.48);

  --accent:#9E5030; --accent-dim:rgba(158,80,48,.09); --accent-dim2:rgba(158,80,48,.16);

  --good:#5B7A4F; --good-dim:rgba(91,122,79,.14);
  --warn:#B8802E; --warn-dim:rgba(184,128,46,.14);
  --crit:#95392F; --crit-dim:rgba(149,57,47,.14);

  --sl-deep:#3C4A5E; --sl-rem:#5F5470; --sl-light:#516A78; --sl-awake:#8A8F86;

  --ff:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  --fm:ui-monospace,"SF Mono","SFMono-Regular","Menlo","Consolas",monospace;

  --r:2px; --r2:2px; --g:10px;
  --rail-w:56px; --top-h:48px;
  --sh:none;
  color-scheme:light;
}
/* body-level grain texture + gradient wash (mock: body.theme-gitbook / ::before) */
body {
  background-image:
    radial-gradient(120% 90% at 8% 0%, rgba(255,255,255,.20), transparent 55%),
    radial-gradient(90% 70% at 100% 100%, rgba(0,0,0,.10), transparent 60%),
    var(--gb-bg, #AEB6B1);
  background-attachment: fixed;
}
body::before {
  content:""; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
/* card corner brackets (mock: body.theme-gitbook .card::before/::after) */
:is(#numora-home,.nmk) .card { position:relative; }
:is(#numora-home,.nmk) .card::before, :is(#numora-home,.nmk) .card::after {
  content:""; position:absolute; top:6px; width:8px; height:8px; pointer-events:none; border-top:1px solid var(--t3);
}
:is(#numora-home,.nmk) .card::before { left:6px; border-left:1px solid var(--t3); }
:is(#numora-home,.nmk) .card::after  { right:6px; border-right:1px solid var(--t3); }
:is(#numora-home,.nmk) .card {
  background:var(--panel); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border-color:var(--border); box-shadow:none;
}
/* Home's embedded topbar (.topbar/.tb-title/.tb-btn/.tb-lang — ported verbatim in
   D-1b, lives inside #numora-home). .card-title/.rail-item from the mock's gitbook
   block are dead selectors here (no matching markup in production — the mock's own
   .rail was never ported, the app's real .sb icon rail replaces it), so skipped. */
:is(#numora-home,.nmk) .topbar {
  background:var(--panel); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border-color:var(--border); box-shadow:none; border-bottom:1px solid var(--border);
}
:is(#numora-home,.nmk)[data-theme="dark"] {
  --bg:#0A0C0F; --bg2:#0E1114;
  --panel:#14171C; --panel2:#191D23;
  --border:rgba(255,255,255,.08); --border2:rgba(255,255,255,.05);
  --t1:#F1F3F6; --t2:rgba(241,243,246,.86); --t3:rgba(241,243,246,.6); --t4:rgba(241,243,246,.38);

  --accent:#E07B4C; --accent-dim:rgba(224,123,76,.14); --accent-dim2:rgba(224,123,76,.26);

  --good:#3FCE84; --good-dim:rgba(63,206,132,.14);
  --warn:#E3A537; --warn-dim:rgba(227,165,55,.14);
  --crit:#F0645A; --crit-dim:rgba(240,100,90,.14);

  --sl-deep:#3A5AA6; --sl-rem:#A084E8; --sl-light:#7098E0; --sl-awake:#63666C;
  --sh: 0 1px 0 rgba(0,0,0,.2), 0 4px 14px rgba(0,0,0,.28);
}

/* ═══ ANIMA-INSPIRED THEME (tweak) ═══ */
:is(#numora-home,.nmk).theme-anima {
  --bg:#08080C; --bg2:#0C0C12;
  --panel:rgba(255,255,255,.045); --panel2:rgba(255,255,255,.03);
  --border:rgba(255,255,255,.10); --border2:rgba(255,255,255,.06);
  --t1:#F5F5FA; --t2:rgba(245,245,250,.86); --t3:rgba(245,245,250,.58); --t4:rgba(245,245,250,.38);
  --accent:#8B7CF6; --accent-dim:rgba(139,124,246,.16); --accent-dim2:rgba(139,124,246,.3);
  --good:#5FE0A6; --good-dim:rgba(95,224,166,.14);
  --warn:#F0B860; --warn-dim:rgba(240,184,96,.14);
  --crit:#F17E9C; --crit-dim:rgba(241,126,156,.14);
  --sl-deep:#5B6FE0; --sl-rem:#B78CF0; --sl-light:#7EA0F0; --sl-awake:#6C6E78;
  --r:16px; --r2:11px;
  --sh: 0 1px 0 rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.4);
  color-scheme:dark;
}
:is(#numora-home,.nmk).theme-anima .card,
:is(#numora-home,.nmk).theme-anima .rail,
:is(#numora-home,.nmk).theme-anima .topbar {
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
}
:is(#numora-home,.nmk).theme-anima .rail,
:is(#numora-home,.nmk).theme-anima .topbar { background:rgba(10,10,14,.65); }
:is(#numora-home,.nmk).theme-anima { background:
  radial-gradient(60% 50% at 15% -10%, rgba(139,124,246,.28), transparent 60%),
  radial-gradient(50% 40% at 100% 0%, rgba(123,199,246,.16), transparent 60%),
  var(--bg);
  background-attachment:fixed;
}
:is(#numora-home,.nmk).theme-anima .tb-btn,
:is(#numora-home,.nmk).theme-anima .tb-icon-btn,
:is(#numora-home,.nmk).theme-anima .tb-lang,
:is(#numora-home,.nmk).theme-anima .qa-btn { border-radius:999px; }
:is(#numora-home,.nmk).theme-anima .tb-btn.accent { background:linear-gradient(135deg,#8B7CF6,#6C8DF5); border:none; box-shadow:0 4px 16px rgba(139,124,246,.4); }
:is(#numora-home,.nmk).theme-anima .rail-logo { background:linear-gradient(135deg,#8B7CF6,#6C8DF5); border-radius:9px; }
:is(#numora-home,.nmk).theme-anima .rail-item.on { background:var(--accent-dim); }
:is(#numora-home,.nmk).theme-anima .rail-item.on::before { background:linear-gradient(180deg,#8B7CF6,#6C8DF5); }
:is(#numora-home,.nmk).theme-anima .accent-strip { background:linear-gradient(90deg,#8B7CF6,#6C8DF5,transparent 85%); opacity:.85; height:2px; }
:is(#numora-home,.nmk).theme-anima .tchk.done { background:linear-gradient(135deg,#8B7CF6,#6C8DF5); border-color:transparent; }
:is(#numora-home,.nmk).theme-anima .hrow.done .hdot { background:linear-gradient(135deg,#5FE0A6,#3FCE84); border-color:transparent; }
/* ═══ GITBOOK-INSPIRED THEME (tweak): industrial grain, hairline borders, mono labels ═══ */
:is(#numora-home,.nmk).theme-gitbook {
  --bg:#AEB6B1; --bg2:#A5ADA8;
  --panel:rgba(255,255,255,.16); --panel2:rgba(255,255,255,.08);
  --border:rgba(20,22,20,.22); --border2:rgba(20,22,20,.12);
  --t1:#15170F; --t2:rgba(21,23,15,.84); --t3:rgba(21,23,15,.64); --t4:rgba(21,23,15,.48);
  --accent:#2B2E22; --accent-dim:rgba(43,46,34,.1); --accent-dim2:rgba(43,46,34,.18);
  --good:#3E6B4C; --good-dim:rgba(62,107,76,.14);
  --warn:#9C6C1E; --warn-dim:rgba(156,108,30,.14);
  --crit:#95392F; --crit-dim:rgba(149,57,47,.14);
  --sl-deep:#3C4A5E; --sl-rem:#5F5470; --sl-light:#516A78; --sl-awake:#8A8F86;
  --r:2px; --r2:2px;
  --sh:none;
  color-scheme:light;
}
:is(#numora-home,.nmk).theme-gitbook {
  background-image:
    radial-gradient(120% 90% at 8% 0%, rgba(255,255,255,.20), transparent 55%),
    radial-gradient(90% 70% at 100% 100%, rgba(0,0,0,.10), transparent 60%),
    var(--bg);
  background-attachment:fixed;
  position:relative;
}
:is(#numora-home,.nmk).theme-gitbook::before {
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
:is(#numora-home,.nmk).theme-gitbook .card,
:is(#numora-home,.nmk).theme-gitbook .rail,
:is(#numora-home,.nmk).theme-gitbook .topbar {
  background:var(--panel); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border-color:var(--border); box-shadow:none;
}
:is(#numora-home,.nmk).theme-gitbook .card { position:relative; }
:is(#numora-home,.nmk).theme-gitbook .card::before,
:is(#numora-home,.nmk).theme-gitbook .card::after {
  content:"";position:absolute;top:6px;width:8px;height:8px;pointer-events:none;
  border-top:1px solid var(--t3); }
:is(#numora-home,.nmk).theme-gitbook .card::before { left:6px; border-left:1px solid var(--t3); }
:is(#numora-home,.nmk).theme-gitbook .card::after { right:6px; border-right:1px solid var(--t3); }
:is(#numora-home,.nmk).theme-gitbook .card-title,
:is(#numora-home,.nmk).theme-gitbook .tb-title,
:is(#numora-home,.nmk).theme-gitbook .rail-item,
:is(#numora-home,.nmk).theme-gitbook .tb-btn,
:is(#numora-home,.nmk).theme-gitbook .tb-lang button {
  font-family:var(--fm); text-transform:uppercase; letter-spacing:.06em;
}
:is(#numora-home,.nmk).theme-gitbook .tb-title { font-family:var(--fm); font-weight:600; letter-spacing:.02em; text-transform:none; }
:is(#numora-home,.nmk).theme-gitbook .rail { background:var(--panel2); border-right:1px solid var(--border); }
:is(#numora-home,.nmk).theme-gitbook .rail-logo { background:var(--t1); color:var(--bg); border-radius:999px; }
:is(#numora-home,.nmk).theme-gitbook .topbar { border-bottom:1px solid var(--border); }
:is(#numora-home,.nmk).theme-gitbook .tb-btn { border-radius:999px; border:1px solid var(--border); }
:is(#numora-home,.nmk).theme-gitbook .tb-btn.accent { background:var(--t1); color:var(--bg); border:none; }
:is(#numora-home,.nmk).theme-gitbook .tb-lang { border-radius:999px; overflow:hidden; border:1px solid var(--border); }
:is(#numora-home,.nmk).theme-gitbook .tb-icon-btn { border-radius:999px; }
:is(#numora-home,.nmk).theme-gitbook .rail-item.on { background:var(--accent-dim); }
:is(#numora-home,.nmk).theme-gitbook .rail-item.on::before { background:var(--t1); }
:is(#numora-home,.nmk).theme-gitbook .accent-strip { background:var(--t1); opacity:.4; height:1px; }
:is(#numora-home,.nmk).theme-gitbook .tchk.done { background:var(--t1); border-color:var(--t1); }
:is(#numora-home,.nmk).theme-gitbook .hrow.done .hdot { background:var(--good); border-color:transparent; }

/* -- gitbook color variants (bars/buttons only; background/grain unchanged) -- */
:is(#numora-home,.nmk).theme-gitbook.pal-terracotta { --accent:#9E5030; --accent-dim:rgba(158,80,48,.09); --accent-dim2:rgba(158,80,48,.16); --good:#5B7A4F; --warn:#B8802E; --crit:#95392F; }
:is(#numora-home,.nmk).theme-gitbook.pal-blue { --accent:#2E4F6B; --accent-dim:rgba(46,79,107,.12); --accent-dim2:rgba(46,79,107,.2); --good:#3E7A72; --warn:#9C7A2E; --crit:#8A3E4A; }
:is(#numora-home,.nmk).theme-gitbook.pal-forest { --accent:#2D5C3F; --accent-dim:rgba(45,92,63,.12); --accent-dim2:rgba(45,92,63,.2); --good:#4F8555; --warn:#AD832E; --crit:#8C3F35; }
:is(#numora-home,.nmk).theme-gitbook.pal-mono { --accent:#2B2E22; --accent-dim:rgba(43,46,34,.1); --accent-dim2:rgba(43,46,34,.18); --good:#3E6B4C; --warn:#9C6C1E; --crit:#95392F; }

:is(#numora-home,.nmk) .gb-palette {display:none;gap:5px;align-items:center;padding:3px;background:var(--panel2);border:1px solid var(--border);border-radius:999px;}
:is(#numora-home,.nmk).theme-gitbook .gb-palette {display:flex;}
:is(#numora-home,.nmk) .gb-swatch {width:16px;height:16px;border-radius:50%;cursor:pointer;border:2px solid transparent;flex-shrink:0;}
:is(#numora-home,.nmk) .gb-swatch.on {border-color:var(--t1);}

:is(#numora-home,.nmk) .bright-wrap {position:relative;}
:is(#numora-home,.nmk) .bright-pop {position:absolute;top:calc(100% + 8px);right:0;display:none;align-items:center;gap:8px;
  background:var(--panel2);border:1px solid var(--border);border-radius:var(--r2);padding:8px 12px;
  box-shadow:0 8px 24px rgba(0,0,0,.16);z-index:50;white-space:nowrap;}
:is(#numora-home,.nmk) .bright-pop.open {display:flex;}
:is(#numora-home,.nmk) .bright-pop input[type=range] {width:120px;accent-color:var(--accent);}
:is(#numora-home,.nmk) .bright-val {font-family:var(--fm);font-size:10px;color:var(--t3);min-width:32px;}
/* .ringgap-btn is still used by the routine +add buttons (unrelated to the
   removed ring-gap-adjustment popover) — keep it, drop the popover-only rules. */
:is(#numora-home,.nmk) .ringgap-btn {width:22px;height:22px;border-radius:6px;border:1px solid var(--border);background:var(--panel2);
  color:var(--t4);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
:is(#numora-home,.nmk) .ringgap-btn:hover {color:var(--t2);border-color:var(--t4);}
:is(#numora-home,.nmk) .snotecolor-wrap {position:relative;}
:is(#numora-home,.nmk) .snotecolor-pop {position:absolute;top:calc(100% + 6px);right:0;display:none;align-items:center;gap:7px;
  background:var(--panel2);border:1px solid var(--border);border-radius:var(--r2);padding:8px 10px;
  box-shadow:0 8px 24px rgba(0,0,0,.16);z-index:50;white-space:nowrap;}
:is(#numora-home,.nmk) .snotecolor-pop.open {display:flex;}
:is(#numora-home,.nmk) .snotecolor-sw {width:18px;height:18px;border-radius:50%;cursor:pointer;border:2px solid transparent;flex-shrink:0;}
:is(#numora-home,.nmk) .snotecolor-sw.on {border-color:var(--t1);}

/* weather data-source popover (2026-07-11, repositioned 2026-07-12).
   Was position:absolute + top:calc(100% + 8px), overflowing past the card's
   own bottom edge — but the card clips overflow (needed for its rounded
   corners/decorative notches), so almost the whole panel was invisible,
   leaving only a clipped sliver ("mysterious square"). Inline flow instead:
   it just grows the card, like any other content toggle in this app. */
:is(#numora-home,.nmk) .wx-info-wrap {position:relative;cursor:pointer;}
:is(#numora-home,.nmk) .wx-info-pop {display:none;flex-direction:column;gap:6px;
  background:var(--panel2);border:1px solid var(--border);border-radius:var(--r2);padding:10px 12px;
  margin-top:10px;}
:is(#numora-home,.nmk) .wx-info-pop.open {display:flex;}
:is(#numora-home,.nmk) .wx-info-row {display:flex;align-items:baseline;justify-content:space-between;gap:14px;font-size:10.5px;color:var(--t3);}
:is(#numora-home,.nmk) .wx-info-row b {font-family:var(--fm);font-size:10.5px;font-weight:600;color:var(--t1);}

/* (removed) The mock's @media prefers-color-scheme:dark auto-switch flipped
   the whole app to dark tokens on OS dark mode — but the confirmed Personal
   OS palette is the light set, and the production shell is skinned light.
   Explicit [data-theme="dark"] rules below stay for a future manual toggle. */

/* #numora-calendar (Calendar) is legacy styles.css markup, not ported to the
   mock design system — it just shares this scope for color tokens. This
   reset was silently zeroing out its own explicit margin/padding rules
   (e.g. .gcal-whd-num's centering margin, .gcal-md's cell padding), breaking
   its layout. Excluded 2026-07-11; re-scope once Calendar itself is ported.
   IMPORTANT: the exclusion must go inside :where() — :not(#id) on its own
   adds a full ID's worth of specificity *per :not() clause*, which (with
   two of them) briefly outranked every single-class component rule on the
   page (.hrow, .trow, .c-hd, …) and stripped their padding/margin site-wide.
   :where() always has zero specificity, so :not(:where(...)) excludes
   Calendar without that blast radius. (Regression found + fixed same day.) */
:is(#numora-home,.nmk) *:not(:where(#numora-calendar, #numora-calendar *)),
:is(#numora-home,.nmk) *:not(:where(#numora-calendar, #numora-calendar *))::before,
:is(#numora-home,.nmk) *:not(:where(#numora-calendar, #numora-calendar *))::after {box-sizing:border-box;margin:0;padding:0;}
:is(#numora-home,.nmk),
:is(#numora-home,.nmk) {height:100%;background:var(--bg);color:var(--t1);font-family:var(--ff);}
:is(#numora-home,.nmk) .num,
:is(#numora-home,.nmk) .mono {font-family:var(--fm);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}
:is(#numora-home,.nmk) .en {display:revert;} :is(#numora-home,.nmk) .ja {display:none;}
/* language toggle is driven by body.lang-ja (setLang/toggleLang), so key the
   scoped rules off the body too — earlier they keyed off #numora-home.lang-ja,
   which the toggle never set, so JP/EN silently didn't switch on ported pages. */
body.lang-ja :is(#numora-home,.nmk) .ja {display:revert;} body.lang-ja :is(#numora-home,.nmk) .en {display:none;}

/* Focus BGM card source toggle (E-6) — was inline in the old fake player */
:is(#numora-home,.nmk) .spot-src {display:flex;gap:4px;background:var(--panel2);border:1px solid var(--border);border-radius:999px;padding:3px;}
:is(#numora-home,.nmk) .spot-src button {border:none;background:none;cursor:pointer;font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:4px 11px;border-radius:999px;color:var(--t3);display:flex;align-items:center;gap:5px;transition:background .12s,color .12s;}
:is(#numora-home,.nmk) .spot-src button svg {width:13px;height:13px;}
:is(#numora-home,.nmk) .spot-src button.on[data-src="spotify"] {background:#1ED760;color:#0a2e16;}
:is(#numora-home,.nmk) .spot-src button.on[data-src="youtube"] {background:#FF0000;color:#fff;}

/* ═══ TOP ACCENT STRIP ═══ */
:is(#numora-home,.nmk) .accent-strip {position:fixed;top:0;left:0;right:0;height:3px;z-index:60;
  background:linear-gradient(90deg,var(--accent),transparent 70%);opacity:.7;}

/* ═══ ICON RAIL ═══ */
:is(#numora-home,.nmk) .rail {position:fixed;top:0;left:0;bottom:0;width:var(--rail-w);z-index:50;
  background:var(--panel);border-right:1px solid var(--border);
  display:flex;flex-direction:column;align-items:center;padding:14px 0;gap:4px;}
:is(#numora-home,.nmk) .rail-logo {width:26px;height:26px;border-radius:6px;background:var(--t1);color:var(--bg);
  display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:11px;font-weight:700;margin-bottom:14px;}
:is(#numora-home,.nmk)[data-theme="dark"] .rail-logo,
:is(#numora-home,.nmk):not([data-theme="light"]) .rail-logo {background:var(--t1);color:var(--bg2);}
:is(#numora-home,.nmk) .rail-item {width:36px;height:36px;border-radius:var(--r2);display:flex;align-items:center;justify-content:center;
  color:var(--t3);cursor:pointer;flex-shrink:0;position:relative;}
:is(#numora-home,.nmk) .rail-item svg {width:17px;height:17px;}
:is(#numora-home,.nmk) .rail-item:hover {background:var(--panel2);color:var(--t2);}
:is(#numora-home,.nmk) .rail-item.on {background:var(--accent-dim);color:var(--accent);}
:is(#numora-home,.nmk) .rail-item.on::before {content:'';position:absolute;left:-14px;top:8px;bottom:8px;width:2px;background:var(--accent);border-radius:2px;}
:is(#numora-home,.nmk) .rail-sp {flex:1;}

/* ═══ TOP BAR ═══ */
:is(#numora-home,.nmk) .topbar {position:fixed;top:0;left:var(--rail-w);right:0;height:var(--top-h);z-index:40;
  background:var(--panel);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:14px;padding:0 18px;}
:is(#numora-home,.nmk) .tb-title {font-size:14.5px;font-weight:700;letter-spacing:-.2px;}
:is(#numora-home,.nmk) .tb-date {font-family:var(--fm);font-size:10.5px;color:var(--t4);letter-spacing:.02em;}
:is(#numora-home,.nmk) .tb-sp {flex:1;}
:is(#numora-home,.nmk) .tb-btn {height:28px;padding:0 12px;border-radius:var(--r2);border:1px solid var(--border);background:var(--panel2);
  color:var(--t2);font-size:11px;font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer;font-family:var(--ff);}
:is(#numora-home,.nmk) .tb-btn:hover {border-color:var(--t4);}
:is(#numora-home,.nmk) .tb-btn.accent {background:var(--accent);color:#fff;border-color:var(--accent);}
:is(#numora-home,.nmk) .tb-icon-btn {width:28px;height:28px;border-radius:var(--r2);border:1px solid var(--border);background:var(--panel2);
  color:var(--t3);display:flex;align-items:center;justify-content:center;cursor:pointer;}
:is(#numora-home,.nmk) .tb-icon-btn:hover {color:var(--t1);border-color:var(--t4);}
:is(#numora-home,.nmk) .tb-icon-btn svg {width:14px;height:14px;}
:is(#numora-home,.nmk) .tb-lang {display:flex;border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;height:28px;}
:is(#numora-home,.nmk) .tb-lang button {padding:0 10px;font-family:var(--fm);font-size:10px;font-weight:600;border:none;cursor:pointer;
  background:var(--panel2);color:var(--t4);height:100%;}
:is(#numora-home,.nmk) .tb-lang button.on {background:var(--t1);color:var(--bg);}
/* gitbook-theme topbar overrides — must stay AFTER the base .tb-* rules above
   (same specificity; the mock wins via body.theme-gitbook, here order decides) */
:is(#numora-home,.nmk) .tb-title { font-family:var(--fm); font-weight:600; letter-spacing:.02em; text-transform:none; }
:is(#numora-home,.nmk) .tb-btn { border-radius:999px; border:1px solid var(--border); font-family:var(--fm); text-transform:uppercase; letter-spacing:.06em; }
:is(#numora-home,.nmk) .tb-btn.accent { background:var(--t1); color:var(--bg); border:none; }
:is(#numora-home,.nmk) .tb-lang { border-radius:999px; overflow:hidden; border:1px solid var(--border); }
:is(#numora-home,.nmk) .tb-lang button { font-family:var(--fm); text-transform:uppercase; letter-spacing:.06em; }

/* ═══ STAGE (scrollable page variant) ═══ */
:is(#numora-home,.nmk) .stage {position:fixed;top:var(--top-h);left:var(--rail-w);right:0;bottom:0;overflow-y:auto;overflow-x:hidden;}
:is(#numora-home,.nmk) .stage-fit {transform:none !important;position:static;}
:is(#numora-home,.nmk) .grid {width:min(1400px,100%);max-width:1400px;margin:0 auto !important;padding:28px 32px 64px;display:grid;gap:16px;
  grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(220px,auto);grid-auto-flow:row dense;}
:is(#numora-home,.nmk) .card {min-height:220px;container-type:inline-size;}
:is(#numora-home,.nmk) .card[data-wid="health"] {align-self:start;}
:is(#numora-home,.nmk) .gspan-2 {grid-column:span 2;}
:is(#numora-home,.nmk) .gspan-4 {grid-column:span 4;}
:is(#numora-home,.nmk) .rspan-2 {grid-row:span 2;}

/* ═══ LAYOUT EDIT MODE (drag to rearrange) ═══ */
:is(#numora-home,.nmk).layout-mode .grid > .card {
  cursor:grab;outline:2px dashed var(--accent);outline-offset:-2px;border-radius:var(--r);
}
:is(#numora-home,.nmk).layout-mode .grid > .card * { pointer-events:none; }
:is(#numora-home,.nmk) .grid > .card.dragging { opacity:.35; cursor:grabbing; }
:is(#numora-home,.nmk) .grid > .card.drag-over { outline:2px solid var(--accent); }

/* ═══ CHIPS (shared) ═══ */
:is(#numora-home,.nmk) .aib-chip {font-family:var(--fm);font-size:9.5px;font-weight:600;padding:3px 8px;border-radius:5px;flex-shrink:0;}
:is(#numora-home,.nmk) .chip-good {background:var(--good-dim);color:var(--good);}
:is(#numora-home,.nmk) .chip-warn {background:var(--warn-dim);color:var(--warn);}
:is(#numora-home,.nmk) .chip-crit {background:var(--crit-dim);color:var(--crit);}
:is(#numora-home,.nmk) .chip-nt {background:var(--panel2);color:var(--t3);border:1px solid var(--border);}

/* ═══ CARD ═══ */
:is(#numora-home,.nmk) .card {background:var(--panel);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);
  display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0;}
:is(#numora-home,.nmk) .c-hd {display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;flex-shrink:0;border-bottom:1px solid var(--border2);}
:is(#numora-home,.nmk) .c-ti {font-family:var(--fm);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1.3px;color:var(--t3);}
:is(#numora-home,.nmk) .c-meta {font-family:var(--fm);font-size:10px;color:var(--t4);}
:is(#numora-home,.nmk) .c-meta .up {color:var(--good);} :is(#numora-home,.nmk) .c-meta .dn {color:var(--crit);}
:is(#numora-home,.nmk) .c-bd {flex:1;min-height:0;padding:13px 16px 16px;display:flex;flex-direction:column;}

/* ═══ SCORE WIDGET (readiness/sleep/activity/hrv) ═══ */
:is(#numora-home,.nmk) .score-row {display:flex;align-items:center;gap:12px;}
:is(#numora-home,.nmk) .score-ring {width:52px;height:52px;flex-shrink:0;}
:is(#numora-home,.nmk) .score-ring svg {width:100%;height:100%;}
:is(#numora-home,.nmk) .r-bg {fill:none;stroke:var(--border);}
:is(#numora-home,.nmk) .r-fg {fill:none;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;}
:is(#numora-home,.nmk) .score-num {font-family:var(--fm);font-size:26px;font-weight:700;letter-spacing:-1px;line-height:1;}
:is(#numora-home,.nmk) .score-sub {font-size:10.5px;color:var(--t3);margin-top:3px;}
:is(#numora-home,.nmk) .score-delta {font-family:var(--fm);font-size:10px;margin-top:5px;}
:is(#numora-home,.nmk) .spark {width:100%;height:30px;display:block;margin-top:10px;}
:is(#numora-home,.nmk) .bars {display:flex;flex-direction:column;gap:7px;margin-top:11px;}
:is(#numora-home,.nmk) .brow {display:flex;align-items:center;gap:8px;}
:is(#numora-home,.nmk) .brow-lbl {font-size:10.5px;color:var(--t3);width:64px;flex-shrink:0;}
:is(#numora-home,.nmk) .brow-bar {flex:1;height:5px;background:var(--border2);border-radius:3px;overflow:hidden;}
:is(#numora-home,.nmk) .brow-fill {height:100%;border-radius:3px;}
:is(#numora-home,.nmk) .brow-val {font-family:var(--fm);font-size:10px;color:var(--t2);width:26px;text-align:right;flex-shrink:0;}
:is(#numora-home,.nmk) .sleepbar {display:flex;height:8px;border-radius:4px;overflow:hidden;gap:1px;margin-top:9px;}
:is(#numora-home,.nmk) .sleepbar div {border-radius:1px;}
:is(#numora-home,.nmk) .sleeplegend {display:flex;gap:9px;flex-wrap:wrap;margin-top:7px;}
:is(#numora-home,.nmk) .sll {display:flex;align-items:center;gap:4px;font-size:9.5px;color:var(--t3);}
:is(#numora-home,.nmk) .sll .dt {width:6px;height:6px;border-radius:1px;flex-shrink:0;}
:is(#numora-home,.nmk) .sll strong {font-family:var(--fm);font-weight:600;color:var(--t1);}

/* ═══ TASKS ═══ */
:is(#numora-home,.nmk) .qa {display:flex;gap:7px;margin-bottom:9px;}
:is(#numora-home,.nmk) .qa-btn {width:26px;height:26px;border-radius:var(--r2);border:1px solid var(--border);background:var(--panel2);
  color:var(--t2);font-size:15px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
:is(#numora-home,.nmk) .qa-inp {flex:1;height:26px;border:1px solid var(--border);border-radius:var(--r2);background:var(--panel2);
  padding:0 9px;font-size:11px;color:var(--t1);outline:none;font-family:var(--ff);}
:is(#numora-home,.nmk) .qa-inp::placeholder {color:var(--t4);}

/* ═══ YOUTUBE BGM (2026-07-12: left video / right playlist layout, matching
   the mock's Spotify white-card pattern but in YouTube's own red/white/black
   — not the app's terracotta accent, per direct request) ═══ */
/* fill the whole card, not just its own content height — the card's row
   height is set by its taller sibling (e.g. Pomodoro), so without this the
   Spotify/YouTube area left dead space below itself instead of using it
   (2026-07-12, per direct request). */
:is(#numora-home,.nmk) .bgm-body {display:flex;flex-direction:column;flex:1;min-height:0;}
:is(#numora-home,.nmk) .yt-video-col {flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;}
:is(#numora-home,.nmk) .yt-video-col #spotEmbed {flex:1;min-height:0;display:flex;}
/* video-dominant: the playlist column stays compact, the video claims most
   of the width AND the row's full height (not a small fixed 16:9 box) —
   per direct request, the player was reading as too small/padded before. */
/* height:100% (not min-height) is load-bearing: a row-direction flex
   container with only a min-height lets its tallest CHILD's natural content
   size set the row's height (align-items:stretch only expands items that
   are shorter than that, it never shrinks the tallest one) — so a long
   playlist in #sptQueueWrap was inflating the whole row/card to fit every
   item instead of staying fixed-size and scrolling internally. height:100%
   makes the row strictly follow its own parent's (already-bounded) size,
   breaking that bottom-up dependency; the queue's ul (flex:1;min-height:0;
   overflow-y:auto below) now has a real, fixed space to fill and scroll in
   regardless of item count (2026-07-12, per direct report). */
:is(#numora-home,.nmk) .bgm-body.yt-row {flex-direction:row;align-items:stretch;height:100%;min-height:400px;}
:is(#numora-home,.nmk) .bgm-body.yt-row .yt-video-col {background:#0F0F0F;}
:is(#numora-home,.nmk) .bgm-body.yt-row #sptQueueWrap {flex:0 0 260px;min-width:0;border-top:none;border-left:1px solid #ececec;
  transition:flex-basis .18s ease;display:flex;flex-direction:column;height:100%;min-height:0;}
/* "expand within this section" — a lighter-weight option than real
   fullscreen: the video column grows further, the playlist stays reachable
   as a slim strip instead of disappearing. (Real fullscreen — .yt-fullscreen
   below — is the separate, dedicated fullscreen button.) */
:is(#numora-home,.nmk) .bgm-body.yt-row.yt-maximized {min-height:600px;}
:is(#numora-home,.nmk) .bgm-body.yt-row.yt-maximized #sptQueueWrap {flex-basis:150px;}
/* real Fullscreen API on .yt-video-col (not the iframe's own) — this is
   what makes it OUR control bar in fullscreen, styled like native YouTube:
   an overlay hidden by default, shown briefly on mouse movement. */
:is(#numora-home,.nmk) .yt-video-col.yt-fullscreen {position:relative;justify-content:center;background:#000;}
:is(#numora-home,.nmk) .yt-video-col.yt-fullscreen #spotEmbed {flex:1;}
:is(#numora-home,.nmk) .yt-video-col.yt-fullscreen .yt-controls {position:absolute;left:0;right:0;bottom:0;
  background:linear-gradient(to top, rgba(0,0,0,.85), transparent);opacity:0;pointer-events:none;
  transition:opacity .25s ease;padding-top:32px;}
:is(#numora-home,.nmk) .yt-video-col.yt-fullscreen.yt-controls-visible .yt-controls {opacity:1;pointer-events:auto;}
:is(#numora-home,.nmk) .yt-controls {display:flex;flex-direction:column;gap:8px;padding:8px 10px;background:#0F0F0F;}
:is(#numora-home,.nmk) .yt-seek-row {display:flex;align-items:center;gap:8px;}
:is(#numora-home,.nmk) .yt-seek-bar {flex:1;height:4px;border-radius:999px;background:rgba(255,255,255,.25);position:relative;cursor:pointer;}
:is(#numora-home,.nmk) .yt-seek-fill {position:absolute;left:0;top:0;height:100%;width:0;border-radius:999px;background:#FF0000;}
:is(#numora-home,.nmk) .yt-seek-dot {position:absolute;left:0;top:50%;width:9px;height:9px;border-radius:999px;background:#FF0000;transform:translate(-50%,-50%);}
:is(#numora-home,.nmk) .yt-time {font-family:var(--fm);font-size:9.5px;color:rgba(255,255,255,.75);flex-shrink:0;font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .yt-time-sep {font-size:9.5px;color:rgba(255,255,255,.4);}
:is(#numora-home,.nmk) .yt-ctrl-row {display:flex;align-items:center;gap:8px;}
:is(#numora-home,.nmk) .yt-ctrl-btn {width:26px;height:26px;border-radius:50%;border:none;background:transparent;
  color:rgba(255,255,255,.85);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0;}
:is(#numora-home,.nmk) .yt-ctrl-btn svg {width:15px;height:15px;}
:is(#numora-home,.nmk) .yt-ctrl-btn:hover {color:#fff;}
:is(#numora-home,.nmk) .yt-ctrl-btn.on {color:#FF0000;}
:is(#numora-home,.nmk) .yt-ctrl-play {width:30px;height:30px;background:#FF0000;color:#fff;}
:is(#numora-home,.nmk) .yt-ctrl-play:hover {background:#CC0000;color:#fff;}
:is(#numora-home,.nmk) .yt-ctrl-play svg {width:15px;height:15px;}
:is(#numora-home,.nmk) .yt-now {flex:1;min-width:0;font-size:10.5px;color:rgba(255,255,255,.65);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
:is(#numora-home,.nmk) .yt-vol-icon {width:14px;height:14px;color:rgba(255,255,255,.55);flex-shrink:0;}
:is(#numora-home,.nmk) .yt-vol-slider {width:50px;accent-color:#FF0000;flex-shrink:0;}

/* ═══ SPOTIFY (2026-07-12): reverted to the official keyless embed only —
   no OAuth / Web API / Web Playback SDK integration. See the project
   retrospective for why. YouTube keeps its own IFrame API integration
   (unaffected) including its "up next" list below, which reuses this
   .spot-queue/.sq-* shape. #spot-src-bar is a functional addition
   (always-visible source switch) not present in the static mock. */
:is(#numora-home,.nmk) .spot-src-bar {padding:9px 9px 0;display:flex;align-items:center;gap:8px;}
:is(#numora-home,.nmk) .spot-queue {background:#fff;color:#12151A;border-top:1px solid #ececec;padding:6px 10px 10px;
  display:flex;flex-direction:column;height:100%;min-height:0;box-sizing:border-box;}
:is(#numora-home,.nmk) .spot-queue .sq-hd {display:flex;align-items:center;justify-content:space-between;padding:8px 10px 6px;flex-shrink:0;}
:is(#numora-home,.nmk) .spot-queue .sq-hd span {font-size:11px;color:#8a9099;}
/* Fills whatever height the queue panel actually has (driven by the video
   column next to it) and only scrolls once content overflows that — a fixed
   252px cap left a dead gap below the list whenever the panel was taller
   than ~5 rows (2026-07-12, per direct report of wasted space + forced
   scrolling despite empty room below). */
:is(#numora-home,.nmk) .spot-queue ul {list-style:none;margin:0;padding:0;display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;}
:is(#numora-home,.nmk) .spot-queue li {display:flex;align-items:center;gap:12px;padding:7px 10px;border-radius:10px;cursor:pointer;transition:background .12s;}
:is(#numora-home,.nmk) .spot-queue li:hover {background:#f4f5f6;}
:is(#numora-home,.nmk) .spot-queue .sq-cover {width:36px;height:36px;border-radius:7px;object-fit:cover;background:#eee;flex-shrink:0;}
:is(#numora-home,.nmk) .spot-queue .sq-meta {flex:1;min-width:0;}
:is(#numora-home,.nmk) .spot-queue .sq-ti {font-size:14px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
:is(#numora-home,.nmk) .sq-idx {flex-shrink:0;width:18px;text-align:center;font-size:11px;color:#8a9099;font-variant-numeric:tabular-nums;}
/* YouTube's own "up next" row shape: a wide 16:9 thumbnail and a 2-line
   title, highlighted background for whatever's currently playing. A left-side
   track number was added per direct request (2026-07-12) so it's clear at a
   glance which position in the playlist each row is. */
:is(#numora-home,.nmk) .spot-queue.yt {padding:6px 6px 10px;}
:is(#numora-home,.nmk) .spot-queue.yt .sq-hd {padding:6px 6px 6px;}
:is(#numora-home,.nmk) .spot-queue.yt li {gap:8px;align-items:flex-start;padding:6px;}
:is(#numora-home,.nmk) .spot-queue.yt .sq-idx {padding-top:20px;}
:is(#numora-home,.nmk) .spot-queue.yt .sq-cover {width:96px;height:54px;border-radius:6px;}
:is(#numora-home,.nmk) .spot-queue.yt .sq-meta {padding-top:1px;}
:is(#numora-home,.nmk) .spot-queue.yt .sq-ti {font-size:12.5px;font-weight:600;line-height:1.35;white-space:normal;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
:is(#numora-home,.nmk) .spot-queue.yt li.playing {background:rgba(255,0,0,.08);}
:is(#numora-home,.nmk) .spot-queue.yt li.playing .sq-ti {color:#c40000;}
:is(#numora-home,.nmk) .spot-queue .sq-empty {display:flex;flex-direction:column;gap:4px;padding:14px 10px;font-size:11px;color:#8a9099;text-align:center;}
/* small pencil icon in the source-switch bar — opens the URL-paste popover,
   hidden by default. */
:is(#numora-home,.nmk) .spt-edit-btn {width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--panel2);
  color:var(--t4);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;margin-left:auto;}
:is(#numora-home,.nmk) .spt-edit-btn:hover {color:var(--t1);border-color:var(--t3);}
:is(#numora-home,.nmk) .spt-edit-pop {display:none;flex-direction:column;gap:8px;padding:0 9px 9px;}
:is(#numora-home,.nmk) .spt-edit-pop.open {display:flex;}
:is(#numora-home,.nmk) .spt-picker-list li {display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;cursor:pointer;}
:is(#numora-home,.nmk) .spt-picker-list li:hover {background:rgba(18,21,26,.05);}
:is(#numora-home,.nmk) .spt-picker-art {width:28px;height:28px;border-radius:4px;object-fit:cover;background:#eee;flex-shrink:0;}
:is(#numora-home,.nmk) .spt-picker-meta {min-width:0;}
:is(#numora-home,.nmk) .spt-picker-name {font-size:11px;font-weight:600;color:#12151A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
:is(#numora-home,.nmk) .spt-picker-sub {font-size:9.5px;color:#9aa0a7;}
:is(#numora-home,.nmk) .spt-picker-empty {padding:8px 6px;font-size:10.5px;color:#9aa0a7;text-align:center;}
:is(#numora-home,.nmk) .tasklist {display:flex;flex-direction:column;gap:6px;flex:1;overflow:auto;}
:is(#numora-home,.nmk) .trow {display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--r2);background:var(--panel2);border:1px solid var(--border2);}
:is(#numora-home,.nmk) .tchk {width:14px;height:14px;border-radius:4px;border:1.6px solid var(--t4);flex-shrink:0;cursor:pointer;}
:is(#numora-home,.nmk) .tchk.done {background:var(--good);border-color:var(--good);}
:is(#numora-home,.nmk) .tmain {flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;}
:is(#numora-home,.nmk) .ttop {display:flex;align-items:center;gap:7px;justify-content:space-between;}
:is(#numora-home,.nmk) .tname {font-size:11px;font-weight:600;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
:is(#numora-home,.nmk) .ttag {font-family:var(--fm);font-size:9px;color:var(--t4);flex-shrink:0;}
:is(#numora-home,.nmk) .tbar {height:4px;background:var(--border2);border-radius:2px;overflow:hidden;}
:is(#numora-home,.nmk) .tfill {height:100%;border-radius:2px;}

/* ═══ SCHEDULE ═══ */
:is(#numora-home,.nmk) .sched {display:flex;flex-direction:column;flex:1;overflow:auto;justify-content:space-between;position:relative;}
:is(#numora-home,.nmk) .sched::before {content:'';position:absolute;left:50.5px;top:19px;bottom:19px;width:1px;background:var(--border);z-index:0;}
:is(#numora-home,.nmk) .srow {display:flex;align-items:center;gap:9px;padding:8px 0;position:relative;}
:is(#numora-home,.nmk) .st {font-family:var(--fm);font-size:10px;color:var(--t4);width:36px;flex-shrink:0;}
:is(#numora-home,.nmk) .strack {width:11px;display:flex;justify-content:center;position:relative;z-index:1;}
:is(#numora-home,.nmk) .sdot {width:6px;height:6px;border-radius:50%;background:var(--panel);border:1.6px solid var(--t4);z-index:1;}
:is(#numora-home,.nmk) .slbl {font-size:10.5px;color:var(--t3);font-weight:500;}
:is(#numora-home,.nmk) .srow.past .sdot {background:var(--t4);border-color:var(--t4);}
:is(#numora-home,.nmk) .srow.past .slbl {color:var(--t4);}
:is(#numora-home,.nmk) .srow.now .sdot {background:var(--sched);border-color:var(--sched);box-shadow:0 0 0 3px var(--sched-dim);}
:is(#numora-home,.nmk) .srow.now .slbl {color:var(--sched);font-weight:700;}
:is(#numora-home,.nmk) .srow.now .st {color:var(--sched);}
:is(#numora-home,.nmk) .snote-btn {cursor:pointer;transition:color .15s;}
:is(#numora-home,.nmk) .snote-btn.has-note {color:var(--sched);}
:is(#numora-home,.nmk) .snote-btn.active {color:var(--accent);}

/* ═══ SCHEDULE NOTE — relational connector (ports + line) + inline folder-tag memo ═══ */
:is(#numora-home,.nmk) .sn-port {display:none;width:7px;height:7px;border-radius:50%;border:1.5px solid var(--snote-color);background:var(--panel);flex-shrink:0;}
:is(#numora-home,.nmk) .snote-dash {display:none;width:22px;flex:0 0 auto;height:0;border-top:1.5px dashed var(--snote-color);margin:0 5px;align-self:center;}
:is(#numora-home,.nmk) .srow.note-open .sn-port,
:is(#numora-home,.nmk) .srow.note-open .snote-dash {display:block;}
:is(#numora-home,.nmk) .snote-fbox {display:none;align-items:center;height:23px;flex-shrink:0;background:var(--panel2);border:1.5px solid var(--border2);
  clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,0 10px);padding:0 9px 0 11px;box-shadow:0 1px 2px rgba(18,21,26,.06);}
:is(#numora-home,.nmk) .srow.note-open .snote-fbox {display:flex;}
:is(#numora-home,.nmk) .snote-input-b {width:76px;background:transparent;border:none;font-size:10px;font-family:var(--ff);color:var(--t2);outline:none;padding:0;}
:is(#numora-home,.nmk) .snote-input-b::placeholder {color:var(--t4);}

/* ═══ HABITS ═══ */
:is(#numora-home,.nmk) .habits {display:flex;flex-direction:column;gap:6px;flex:1;overflow:auto;}
:is(#numora-home,.nmk) .hrow {display:flex;align-items:center;gap:9px;padding:6px 9px;border-radius:var(--r2);background:var(--panel2);border:1px solid var(--border2);}
:is(#numora-home,.nmk) .hdot {width:13px;height:13px;border-radius:50%;border:1.6px solid var(--t4);flex-shrink:0;}
:is(#numora-home,.nmk) .hrow.done .hdot {background:var(--good);border-color:var(--good);}
:is(#numora-home,.nmk) .htxt {font-size:11px;color:var(--t2);font-weight:500;}
:is(#numora-home,.nmk) .hrow.done .htxt {color:var(--t4);}
:is(#numora-home,.nmk) .hstreak {font-family:var(--fm);font-size:9.5px;color:var(--t4);margin-left:auto;}

/* ═══ WEEKLY TREND ═══ */
:is(#numora-home,.nmk) .trend-val {display:flex;align-items:baseline;gap:8px;margin-bottom:9px;}
:is(#numora-home,.nmk) .trend-num {font-family:var(--fm);font-size:24px;font-weight:700;letter-spacing:-1px;}
:is(#numora-home,.nmk) .trend-unit {font-size:10.5px;color:var(--t3);}
:is(#numora-home,.nmk) .wbars {display:flex;align-items:flex-end;gap:5px;flex:1;padding-top:6px;}
:is(#numora-home,.nmk) .wbar-col {flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;}
:is(#numora-home,.nmk) .wbar {width:100%;border-radius:3px 3px 0 0;min-height:4px;}
:is(#numora-home,.nmk) .wbar-day {font-family:var(--fm);font-size:9px;color:var(--t4);}

/* ═══ WIDGET: CLOCK + WEATHER ═══ */
:is(#numora-home,.nmk) .w-clock .c-bd {padding:18px 20px;gap:0;display:flex;flex-direction:column;justify-content:center;}
:is(#numora-home,.nmk) .wc-date {font-family:var(--fm);font-size:12px;color:var(--t3);letter-spacing:.08em;margin-bottom:2px;text-transform:uppercase;}
:is(#numora-home,.nmk) .wc-digital {font-size:32px;font-weight:700;letter-spacing:-.5px;color:var(--t1);margin-bottom:8px;}
:is(#numora-home,.nmk) .wc-hilo {font-family:var(--fm);font-size:11.5px;color:var(--t2);font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .wc-body {display:flex;align-items:center;gap:28px;flex:1;}
:is(#numora-home,.nmk) .wc-face {width:132px;height:132px;flex-shrink:0;filter:drop-shadow(0 6px 14px rgba(18,21,26,.10));}
:is(#numora-home,.nmk) .wc-face svg {width:100%;height:100%;}
:is(#numora-home,.nmk) .wc-dial {fill:var(--panel);stroke:var(--border);stroke-width:1.5;}
:is(#numora-home,.nmk) .wc-dial-inner {fill:none;stroke:var(--border2);stroke-width:1;}
:is(#numora-home,.nmk) .wc-tick {stroke:var(--t4);stroke-width:1.3;stroke-linecap:round;}
:is(#numora-home,.nmk) .wc-tick.major {stroke:var(--t2);stroke-width:2;}
:is(#numora-home,.nmk) .wc-hand {stroke-linecap:round;}
:is(#numora-home,.nmk) .wc-hour {stroke:var(--t1);stroke-width:3.6;}
:is(#numora-home,.nmk) .wc-min {stroke:var(--t1);stroke-width:2.4;}
:is(#numora-home,.nmk) .wc-sec {stroke:var(--sched);stroke-width:1.2;}
:is(#numora-home,.nmk) .wc-pivot {fill:var(--sched);}
:is(#numora-home,.nmk) .wc-pivot-ring {fill:var(--panel);stroke:var(--t1);stroke-width:1.4;}
:is(#numora-home,.nmk) .wc-weather {flex:1;min-width:0;border-left:1px solid var(--border2);padding-left:22px;}
:is(#numora-home,.nmk) .wc-now {display:flex;align-items:center;gap:8px;}
:is(#numora-home,.nmk) .wc-now svg {width:34px;height:34px;color:var(--sched);flex-shrink:0;}
:is(#numora-home,.nmk) .wc-temp {font-family:var(--fm);font-size:30px;font-weight:700;letter-spacing:-.5px;}
:is(#numora-home,.nmk) .wc-cond {font-size:14px;color:var(--t3);margin-top:6px;}
:is(#numora-home,.nmk) .wc-forecast {display:flex;gap:28px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border2);}
:is(#numora-home,.nmk) .wc-fcol {display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;}
:is(#numora-home,.nmk) .wc-fday {font-family:var(--fm);font-size:10.5px;color:var(--t4);text-transform:uppercase;}
:is(#numora-home,.nmk) .wc-fcol svg {width:18px;height:18px;color:var(--t3);}
:is(#numora-home,.nmk) .wc-fcol.today svg {color:var(--sched);}
:is(#numora-home,.nmk) .wc-ftemp {font-family:var(--fm);font-size:12.5px;color:var(--t2);font-weight:600;}

/* ═══ WIDGET: NOTES ═══ */
:is(#numora-home,.nmk) .w-notes .c-bd {padding:0;}
:is(#numora-home,.nmk) .w-notes-ta {flex:1;width:100%;border:none;outline:none;resize:none;background:transparent;
  color:var(--t1);font-family:var(--ff);font-size:12px;line-height:1.7;padding:13px 16px 16px;}
:is(#numora-home,.nmk) .w-notes-ta::placeholder {color:var(--t4);}

/* ═══ WIDGET: SLEEP SUMMARY RINGS ═══ */
:is(#numora-home,.nmk) .w-sr-top {display:flex;justify-content:space-around;padding-bottom:12px;margin-bottom:11px;border-bottom:1px solid var(--border2);}
:is(#numora-home,.nmk) .w-sr-item {display:flex;flex-direction:column;align-items:center;gap:7px;}
:is(#numora-home,.nmk) .w-sr-ringwrap {position:relative;width:44px;height:44px;}
:is(#numora-home,.nmk) .w-sr-ringwrap svg {width:100%;height:100%;}
:is(#numora-home,.nmk) .w-sr-num {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:13px;font-weight:700;}
:is(#numora-home,.nmk) .w-sr-lbl {font-size:10px;color:var(--t3);}
:is(#numora-home,.nmk) .w-sr-total {display:flex;align-items:baseline;margin-bottom:10px;flex-wrap:wrap;gap:4px;}
:is(#numora-home,.nmk) .w-sr-time {font-family:var(--fm);font-size:19px;font-weight:700;letter-spacing:-.5px;}
:is(#numora-home,.nmk) .w-sr-tlbl {font-size:10.5px;color:var(--t3);}
:is(#numora-home,.nmk) .w-sr-range {font-family:var(--fm);font-size:10px;color:var(--t4);margin-left:auto;}

/* ═══ WIDGET: RECOVERY INSIGHT (expanded) ═══ */
:is(#numora-home,.nmk) .w-ri .c-hd {display:block;padding:12px 16px 10px;}
:is(#numora-home,.nmk) .ri-title {font-size:15px;font-weight:700;color:var(--t1);margin-bottom:9px;}
:is(#numora-home,.nmk) .ri-chips {display:flex;gap:6px;flex-wrap:wrap;}
:is(#numora-home,.nmk) .w-ri .c-bd {display:flex;flex-direction:column;padding:13px 16px 16px;}
:is(#numora-home,.nmk) .w-ri .ri-detail {display:none;}
:is(#numora-home,.nmk) .w-ri .ri-detail.open {display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
:is(#numora-home,.nmk) .ri-sec-hd {display:flex;align-items:center;gap:7px;margin-bottom:6px;}
:is(#numora-home,.nmk) .ri-sq {width:8px;height:8px;border-radius:2px;flex-shrink:0;}
:is(#numora-home,.nmk) .ri-sec-ti {font-size:11.5px;font-weight:700;color:var(--t2);}
:is(#numora-home,.nmk) .ri-sec-tx {font-size:12px;line-height:1.7;color:var(--t2);}
:is(#numora-home,.nmk) .ri-sec-tx strong {color:var(--t1);font-weight:700;}

/* ═══ ENTRY CARDS (section entry points) ═══ */
:is(#numora-home,.nmk) .entry-card {text-decoration:none;color:inherit;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;}
:is(#numora-home,.nmk) .entry-card:hover {transform:translateY(-2px);box-shadow:0 8px 24px rgba(18,21,26,.10);border-color:var(--t4);}
:is(#numora-home,.nmk) .entry-arrow {width:14px;height:14px;color:var(--t4);flex-shrink:0;}
:is(#numora-home,.nmk) .entry-card:hover .entry-arrow {color:var(--accent);}
:is(#numora-home,.nmk) .entry-hd-title {display:flex;align-items:baseline;gap:7px;}
:is(#numora-home,.nmk) .entry-hd-title .c-meta {font-family:var(--fm);font-size:11.5px;color:var(--t4);}

:is(#numora-home,.nmk) .entry-rings {display:flex;gap:16px;}
:is(#numora-home,.nmk) .entry-card .entry-rings {justify-content:center;gap:100px;}
:is(#numora-home,.nmk) .entry-ring-item {display:flex;flex-direction:column;align-items:center;gap:8px;}
:is(#numora-home,.nmk) .entry-ring-wrap {position:relative;width:76px;height:76px;}
:is(#numora-home,.nmk) .entry-ring-wrap svg {width:100%;height:100%;}
:is(#numora-home,.nmk) .entry-ring-num {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:16px;font-weight:700;}
:is(#numora-home,.nmk) .entry-ring-lbl {font-size:11.5px;color:var(--t3);}
:is(#numora-home,.nmk) .entry-caption {font-size:12.5px;color:var(--t3);margin-top:12px;padding-top:11px;border-top:1px solid var(--border2);line-height:1.6;}
:is(#numora-home,.nmk) .entry-caption strong {color:var(--t2);font-weight:600;}

:is(#numora-home,.nmk) .entry-num-row {display:flex;align-items:baseline;gap:7px;margin-bottom:10px;}
:is(#numora-home,.nmk) .entry-num {font-family:var(--fm);font-size:28px;font-weight:700;letter-spacing:-1px;}
:is(#numora-home,.nmk) .entry-num-lbl {font-size:12px;color:var(--t3);}
:is(#numora-home,.nmk) .entry-list {display:flex;flex-direction:column;gap:7px;}
:is(#numora-home,.nmk) .entry-list-row {display:flex;align-items:center;gap:8px;font-size:11px;color:var(--t2);}
:is(#numora-home,.nmk) .entry-list-row .dt {width:7px;height:7px;border-radius:50%;background:var(--good);flex-shrink:0;}
:is(#numora-home,.nmk) .entry-list-row .dt.pending {background:var(--border);}
:is(#numora-home,.nmk) .entry-list-row .sp {flex:1;}
:is(#numora-home,.nmk) .entry-list-row .num {color:var(--t4);font-size:10px;}

:is(#numora-home,.nmk) .entry-task-name {font-size:12px;font-weight:600;color:var(--t2);margin-bottom:8px;}
:is(#numora-home,.nmk) .entry-task-sub {font-size:10.5px;color:var(--t4);margin-top:8px;}

:is(#numora-home,.nmk) .entry-badge-now {display:inline-flex;align-items:center;gap:5px;font-family:var(--fm);font-size:9.5px;font-weight:700;color:var(--sched);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
:is(#numora-home,.nmk) .entry-badge-now .dt {width:6px;height:6px;border-radius:50%;background:var(--sched);box-shadow:0 0 0 3px var(--sched-dim);}
:is(#numora-home,.nmk) .entry-sched-now {font-size:13px;font-weight:700;color:var(--t1);}
:is(#numora-home,.nmk) .entry-sched-next {font-size:11px;color:var(--t4);margin-top:9px;}

:is(#numora-home,.nmk) .entry-journal-time {font-family:var(--fm);font-size:10px;color:var(--t4);}
:is(#numora-home,.nmk) .entry-journal-text {font-size:11.5px;color:var(--t2);line-height:1.6;margin-top:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}

:is(#numora-home,.nmk) .entry-kr-title {font-size:12px;font-weight:600;color:var(--t2);margin-bottom:9px;}
:is(#numora-home,.nmk) .entry-kr-label {font-size:10.5px;color:var(--t4);}
:is(#numora-home,.nmk) .entry-kr-row {display:flex;align-items:center;gap:8px;margin-top:4px;}
:is(#numora-home,.nmk) .entry-kr-bar {flex:1;height:5px;background:var(--border2);border-radius:3px;overflow:hidden;}
:is(#numora-home,.nmk) .entry-kr-fill {height:100%;border-radius:3px;background:var(--good);}
:is(#numora-home,.nmk) .entry-kr-val {font-family:var(--fm);font-size:10px;color:var(--t3);flex-shrink:0;}

:is(#numora-home,.nmk) .entry-note-title {font-size:12px;font-weight:600;color:var(--t2);margin-bottom:6px;}
:is(#numora-home,.nmk) .entry-note-body {font-size:11px;color:var(--t3);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}

/* ═══ ENTRY NAV BUTTON (dedicated click target, not whole card) ═══ */
:is(#numora-home,.nmk) .entry-card {cursor:default;}
:is(#numora-home,.nmk) .entry-card:hover {transform:none;box-shadow:var(--sh);border-color:var(--border);}
:is(#numora-home,.nmk) .entry-nav-btn {width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:var(--panel2);
  color:var(--t3);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
  transition:background .15s ease, color .15s ease, border-color .15s ease;}
:is(#numora-home,.nmk) .entry-nav-btn:hover {background:var(--accent);color:#fff;border-color:var(--accent);}
:is(#numora-home,.nmk) .entry-nav-btn svg {width:13px;height:13px;}

/* ═══ HEALTH ENTRY CARD (expanded: rings + sleep detail + activity) ═══ */
:is(#numora-home,.nmk) .entry-sleep-detail {display:flex;align-items:baseline;justify-content:space-between;margin-top:12px;flex-wrap:wrap;gap:8px;}
:is(#numora-home,.nmk) .esd-hero {font-family:var(--fm);font-size:30px;font-weight:700;letter-spacing:-1px;}
:is(#numora-home,.nmk) .esd-hero-lbl {font-size:12px;color:var(--t3);margin-left:6px;}
:is(#numora-home,.nmk) .esd-range {display:flex;align-items:center;gap:6px;font-family:var(--fm);font-size:12.5px;color:var(--t3);font-weight:600;}
:is(#numora-home,.nmk) .esd-range svg {width:14px;height:14px;color:var(--t4);flex-shrink:0;}
:is(#numora-home,.nmk) .esd-arrow {width:12px;height:12px;color:var(--t4);opacity:.7;}
:is(#numora-home,.nmk) .entry-sleep-grid {display:grid;grid-template-columns:repeat(4,1fr);gap:8px 24px;margin-top:12px;}
:is(#numora-home,.nmk) .esg-item {display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t2);}
:is(#numora-home,.nmk) .esg-item .dt {width:7px;height:7px;border-radius:2px;flex-shrink:0;}
:is(#numora-home,.nmk) .esg-item .sp {width:0;}
:is(#numora-home,.nmk) .esg-item strong {font-family:var(--fm);font-weight:700;color:var(--t1);}
:is(#numora-home,.nmk) .entry-activity {display:flex;gap:48px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border2);}
:is(#numora-home,.nmk) .ea-col {flex:1;min-width:0;}
:is(#numora-home,.nmk) .ea-hd {display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px;}
:is(#numora-home,.nmk) .ea-lbl {font-family:var(--fm);font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--t4);}
:is(#numora-home,.nmk) .ea-val {font-family:var(--fm);font-size:15px;font-weight:700;color:var(--t1);}
:is(#numora-home,.nmk) .ea-val small {font-size:10px;font-weight:500;color:var(--t4);}
:is(#numora-home,.nmk) .ea-spark {width:100%;height:18px;display:block;padding:0 8px;box-sizing:border-box;}

/* ═══ NARROW-CARD COMPACTION (container query — must stay last to win cascade) ═══ */
@container (max-width:210px){
  .entry-rings{gap:6px;}
  .entry-ring-wrap{width:42px;height:42px;}
  .entry-ring-num{font-size:10.5px;}
  .entry-ring-lbl{font-size:9px;}
  .esd-hero{font-size:18px;}
  .esd-hero-lbl{font-size:9.5px;margin-left:4px;}
  .entry-sleep-detail{flex-direction:column;align-items:flex-start;gap:4px;margin-top:9px;}
  .esd-range{flex-direction:row;gap:9px;align-items:center;}
  .esd-range span{font-size:9.5px;}
  .entry-sleep-grid{grid-template-columns:repeat(2,1fr);gap:5px 8px;margin-top:9px;}
  .esg-item{font-size:10px;gap:5px;}
  .entry-activity{flex-direction:column;gap:12px;margin-top:10px;padding-top:10px;}
  .wc-body{flex-direction:column;align-items:flex-start;gap:10px;}
  .wc-face{width:90px;height:90px;margin:0 auto;}
  .wc-weather{border-left:none;padding-left:0;border-top:1px solid var(--border2);padding-top:10px;width:100%;}
  .wc-forecast{gap:8px;}
}

/* ══════════ LANES REDESIGN ══════════ */
:is(#numora-home,.nmk) .grid {display:flex !important;flex-direction:column;gap:24px;grid-template-columns:none;}
:is(#numora-home,.nmk) .lane {display:flex;flex-direction:column;gap:11px;}
:is(#numora-home,.nmk) .lane-hd {display:flex;align-items:center;gap:10px;padding:0 2px;}
:is(#numora-home,.nmk) .lane-ti {font-size:13px;font-weight:700;color:var(--t2);letter-spacing:.01em;}
:is(#numora-home,.nmk) .lane-sub {font-family:var(--fm);font-size:9px;font-weight:600;letter-spacing:.16em;color:var(--t4);text-transform:uppercase;}
:is(#numora-home,.nmk) .lane-hd::after {content:'';flex:1;height:1px;background:var(--border);}
:is(#numora-home,.nmk) .lane-row {display:flex;gap:16px;align-items:stretch;}
:is(#numora-home,.nmk) .lane-row>.card {min-width:0;}
:is(#numora-home,.nmk) .lane-lg {flex:5 1 0;} :is(#numora-home,.nmk) .lane-md {flex:4 1 0;} :is(#numora-home,.nmk) .lane-sm {flex:3 1 0;} :is(#numora-home,.nmk) .lane-xs {flex:2 1 0;}
:is(#numora-home,.nmk) .lane-a .card[data-wid="health"] {align-self:stretch;}
:is(#numora-home,.nmk) .lane-a .card {min-height:264px;}
:is(#numora-home,.nmk) .w-emo-wide .c-bd {display:flex;flex-direction:row;align-items:center;gap:20px;}
:is(#numora-home,.nmk) .w-emo-wide .emo-face {flex:0 0 auto;margin-bottom:0;}
:is(#numora-home,.nmk) .w-emo-wide .emo-chart {flex:1 1 auto;height:48px;margin:0;}
:is(#numora-home,.nmk) .w-emo-wide .emo-meta {flex:0 0 220px;display:flex;flex-direction:column;gap:8px;}
:is(#numora-home,.nmk) .w-emo-wide .emo-meta .emo-mrow {display:flex;align-items:center;gap:8px;}
:is(#numora-home,.nmk) .w-emo-wide .emo-meta .emo-mlbl {margin-bottom:0;flex:0 0 52px;}
:is(#numora-home,.nmk) .w-emo-wide .emo-meta .emo-mbar {flex:1 1 auto;}
:is(#numora-home,.nmk) .ri-col .w-emo-wide {min-height:auto;}
:is(#numora-home,.nmk) .lane-b .card,
:is(#numora-home,.nmk) .lane-c .card {min-height:210px;}
@media(max-width:1080px){:is(#numora-home,.nmk) .lane-row {flex-wrap:wrap;}:is(#numora-home,.nmk) .lane-row>.card {flex:1 1 280px;}:is(#numora-home,.nmk) .home-hd {flex-wrap:wrap;}}

:is(#numora-home,.nmk) .home-hd {display:flex;gap:14px;align-items:stretch;}

/* ── NOW BAR ── */
:is(#numora-home,.nmk) .now-bar {display:flex;align-items:center;gap:12px;background:var(--accent);color:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:9px 16px;min-height:46px;margin-bottom:2px;}
:is(#numora-home,.nmk) .nb-k {font-family:var(--fm);font-size:9.5px;font-weight:700;letter-spacing:.22em;background:rgba(255,255,255,.16);padding:4px 9px;border-radius:5px;flex-shrink:0;}
:is(#numora-home,.nmk) .nb-task {font-size:13.5px;font-weight:700;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
:is(#numora-home,.nmk) .nb-rem {font-family:var(--fm);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0;}
:is(#numora-home,.nmk) .nb-state {font-family:var(--fm);font-size:9.5px;font-weight:700;letter-spacing:.16em;border-left:3px solid rgba(255,255,255,.85);padding-left:8px;flex-shrink:0;}
:is(#numora-home,.nmk) .nb-sp {flex:1;}
:is(#numora-home,.nmk) .cond-day {display:none !important;font-family:var(--fm);font-size:9.5px;font-weight:700;color:var(--good);background:var(--good-dim);padding:3px 8px;border-radius:5px;margin-left:8px;align-self:center;}
:is(#numora-home,.nmk).day-done .cond-day {display:inline-block;}

:is(#numora-home,.nmk) .now-bar.idle {background:var(--panel);color:var(--t3);border:1px solid var(--border);box-shadow:none;min-height:34px;padding:5px 14px;}
:is(#numora-home,.nmk) .now-bar.idle .nb-k {background:var(--panel2);color:var(--t4);}
:is(#numora-home,.nmk) .now-bar.idle .nb-task {font-weight:600;font-size:12px;color:var(--t3);}
:is(#numora-home,.nmk) .now-bar.idle .nb-rem {color:var(--t4);font-weight:600;}
:is(#numora-home,.nmk) .now-bar.idle .nb-state {border-left-color:var(--border);color:var(--t4);}

/* ── TASK GROUPS ── */
:is(#numora-home,.nmk) .tgroup {display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:9px;font-weight:700;letter-spacing:.18em;color:var(--t4);margin:9px 0 5px;}
:is(#numora-home,.nmk) .tgroup::after {content:"";flex:1;height:1px;background:var(--border);}
:is(#numora-home,.nmk) .trow.tnow {background:var(--accent-dim);border-left:3px solid var(--accent);border-radius:var(--r2);padding:7px 9px;margin:0 -4px;}
:is(#numora-home,.nmk) .tprio {font-family:var(--fm);font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;flex-shrink:0;align-self:center;}
:is(#numora-home,.nmk) .tprio.hi {background:var(--crit-dim);color:var(--crit);}
:is(#numora-home,.nmk) .tprio.md {background:var(--panel2);color:var(--t3);border:1px solid var(--border2);}
:is(#numora-home,.nmk) .tdue {font-family:var(--fm);font-size:10px;color:var(--t4);flex-shrink:0;margin-left:auto;font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .tdue.crit {color:var(--crit);font-weight:700;}

/* ── SCHED CURRENT-TIME LINE ── */
:is(#numora-home,.nmk) .snow-line {display:flex;align-items:center;gap:7px;margin:2px 0;}
:is(#numora-home,.nmk) .snow-line .snl-t {font-family:var(--fm);font-size:9px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .snow-line .snl-bar {flex:1;height:2px;background:var(--accent);border-radius:2px;position:relative;}
:is(#numora-home,.nmk) .snow-line .snl-bar::before {content:"";position:absolute;left:-1px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent);}
:is(#numora-home,.nmk) .srow.now {background:var(--sched-dim);border-radius:var(--r2);}

/* ── AI REVIEW bullets + drilldown ── */
:is(#numora-home,.nmk) .ri-bullets {display:flex;flex-direction:column;gap:9px;}
:is(#numora-home,.nmk) .ri-bul {display:flex;align-items:flex-start;gap:9px;}
:is(#numora-home,.nmk) .ri-bul .ri-sq {margin-top:5px;flex-shrink:0;}
:is(#numora-home,.nmk) .ri-bul-tx {font-size:12.5px;color:var(--t2);line-height:1.55;}
:is(#numora-home,.nmk) .ri-bul-tx strong {color:var(--t1);}
:is(#numora-home,.nmk) .ri-ev {display:inline-flex;align-items:center;gap:4px;font-family:var(--fm);font-size:9.5px;color:var(--accent);background:var(--accent-dim);border-radius:4px;padding:1px 6px;margin-left:6px;cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .ri-ev:hover {background:var(--accent-dim2);}
:is(#numora-home,.nmk) .ri-more {margin-top:10px;font-family:var(--fm);font-size:10px;font-weight:600;color:var(--t3);background:none;border:1px solid var(--border);border-radius:6px;padding:5px 12px;cursor:pointer;align-self:flex-start;}
:is(#numora-home,.nmk) .ri-more:hover {color:var(--accent);border-color:var(--accent);}
:is(#numora-home,.nmk) .ri-detail {display:none;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border);}
:is(#numora-home,.nmk) .ri-detail.open {display:block;}
:is(#numora-home,.nmk) .ri-detail .ri-sec {margin-bottom:10px;}

/* ── POMO task link + today ── */
:is(#numora-home,.nmk) .pomo-task {font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:.1em;color:#8B9AA1;margin-top:3px;text-align:center;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
:is(#numora-home,.nmk) .pomo-today {font-family:var(--fm);font-size:10.5px;color:var(--t4);text-align:center;margin-top:10px;font-variant-numeric:tabular-nums;}

/* ── INBOX ── */
:is(#numora-home,.nmk) .inbox-line {display:flex;align-items:baseline;gap:8px;}
:is(#numora-home,.nmk) .inbox-n {font-family:var(--fm);font-size:26px;font-weight:700;color:var(--t1);font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .inbox-u {font-size:11px;color:var(--t4);}
:is(#numora-home,.nmk) .inbox-brk {display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}

/* ── GOALS next step / weekly AI / clock focus ── */
:is(#numora-home,.nmk) .kr-next {font-size:10.5px;color:var(--t4);margin-top:3px;}
:is(#numora-home,.nmk) .kr-next.ok {color:var(--good);}
:is(#numora-home,.nmk) .wrev-ai {font-size:11px;color:var(--t3);margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);line-height:1.5;}
:is(#numora-home,.nmk) .wc-focus {font-family:var(--fm);font-size:9.5px;color:var(--t4);margin-top:2px;}
:is(#numora-home,.nmk) .qcap {flex:1;display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);padding:0 14px;min-height:54px;min-width:0;}
:is(#numora-home,.nmk) .qcap-plus {width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--t2);font-size:19px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
:is(#numora-home,.nmk) .qcap-inp {flex:1;min-width:0;border:none;background:transparent;outline:none;font-family:var(--ff);font-size:13px;color:var(--t1);}
:is(#numora-home,.nmk) .qcap-inp::placeholder {color:var(--t4);}
:is(#numora-home,.nmk) .qcap-sorts {display:flex;gap:6px;flex-shrink:0;}
:is(#numora-home,.nmk) .qcap-mic {width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--t3);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
:is(#numora-home,.nmk) .cond {display:flex;align-items:center;gap:12px;background:var(--good-dim);border-radius:var(--r);padding:0 18px;min-height:54px;flex-shrink:0;}
:is(#numora-home,.nmk) .cond-dot {width:10px;height:10px;border-radius:50%;background:var(--good);box-shadow:0 0 0 4px var(--good-dim);flex-shrink:0;}
:is(#numora-home,.nmk) .cond-main {display:flex;flex-direction:column;gap:2px;}
:is(#numora-home,.nmk) .cond-lbl {font-family:var(--fm);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--good);}
:is(#numora-home,.nmk) .cond-tx {font-size:12px;color:var(--t2);font-weight:600;}
:is(#numora-home,.nmk) .sync {display:flex;gap:8px;align-items:center;flex-shrink:0;}
:is(#numora-home,.nmk) .sync-badge {display:flex;align-items:center;gap:6px;font-family:var(--fm);font-size:10px;color:var(--t3);background:var(--panel);border:1px solid var(--border);border-radius:var(--r2);padding:8px 10px;box-shadow:var(--sh);}
:is(#numora-home,.nmk) .sync-badge .dt {width:6px;height:6px;border-radius:50%;background:var(--good);flex-shrink:0;}

:is(#numora-home,.nmk) .hlth-trend {display:flex;gap:24px;margin-top:13px;}
:is(#numora-home,.nmk) .ht-col {flex:1;min-width:0;}
:is(#numora-home,.nmk) .ht-top {display:flex;align-items:baseline;justify-content:space-between;margin-bottom:3px;}
:is(#numora-home,.nmk) .ht-lbl {font-family:var(--fm);font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--t4);}
:is(#numora-home,.nmk) .ht-delta {font-family:var(--fm);font-size:10.5px;font-weight:700;}
:is(#numora-home,.nmk) .ht-delta.up {color:var(--good);} :is(#numora-home,.nmk) .ht-delta.dn {color:var(--crit);}
:is(#numora-home,.nmk) .ht-spark {width:100%;height:22px;display:block;}

:is(#numora-home,.nmk) .emo-face {display:flex;align-items:center;gap:12px;margin-bottom:6px;}
:is(#numora-home,.nmk) .emo-face svg {width:44px;height:44px;flex-shrink:0;}
:is(#numora-home,.nmk) .emo-now {display:flex;flex-direction:column;gap:2px;min-width:0;}
:is(#numora-home,.nmk) .emo-now-lbl {font-size:13px;font-weight:700;color:var(--t1);}
:is(#numora-home,.nmk) .emo-now-sub {font-family:var(--fm);font-size:10px;color:var(--t3);}
:is(#numora-home,.nmk) .emo-chart {width:100%;height:52px;display:block;margin:4px 0 12px;}
:is(#numora-home,.nmk) .emo-meta {display:flex;gap:16px;}
:is(#numora-home,.nmk) .emo-mrow {flex:1;}
:is(#numora-home,.nmk) .emo-mlbl {font-family:var(--fm);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--t4);margin-bottom:6px;display:block;}
:is(#numora-home,.nmk) .emo-mbar {height:5px;border-radius:3px;background:var(--border2);position:relative;}
:is(#numora-home,.nmk) .emo-mfill {position:absolute;top:0;bottom:0;border-radius:3px;}

:is(#numora-home,.nmk) .tagcloud {display:flex;flex-wrap:wrap;gap:7px;align-content:flex-start;}
:is(#numora-home,.nmk) .tagchip {display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--t2);background:var(--panel2);border:1px solid var(--border2);border-radius:20px;padding:5px 11px;cursor:pointer;transition:border-color .12s,color .12s;}
:is(#numora-home,.nmk) .tagchip:hover {border-color:var(--accent);color:var(--accent);}
:is(#numora-home,.nmk) .tagchip .n {font-family:var(--fm);font-size:9.5px;color:var(--t4);}
:is(#numora-home,.nmk) .tagchip.big {font-size:13px;font-weight:600;padding:6px 13px;}

:is(#numora-home,.nmk) .wrev-next {display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:10.5px;color:var(--t3);margin-bottom:12px;}
:is(#numora-home,.nmk) .wrev-next .dt {width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;}
:is(#numora-home,.nmk) .wrev-prev {font-size:12px;line-height:1.65;color:var(--t2);}
:is(#numora-home,.nmk) .wrev-prev strong {color:var(--t1);font-weight:700;}
:is(#numora-home,.nmk) .wrev-stats {display:flex;gap:20px;margin-top:13px;padding-top:12px;border-top:1px solid var(--border2);}
:is(#numora-home,.nmk) .wrev-stat {display:flex;flex-direction:column;gap:3px;}
:is(#numora-home,.nmk) .wrev-sv {font-size:18px;font-weight:700;letter-spacing:-.5px;}
:is(#numora-home,.nmk) .wrev-sl {font-size:10px;color:var(--t4);}

:is(#numora-home,.nmk) .sched-outer {display:flex;flex-direction:column;flex:1;min-height:0;}
:is(#numora-home,.nmk) .sched-next {display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:var(--r2);background:var(--sched-dim);margin-bottom:12px;flex-shrink:0;}
:is(#numora-home,.nmk) .sched-next .dt {width:7px;height:7px;border-radius:50%;background:var(--sched);box-shadow:0 0 0 3px var(--sched-dim);flex-shrink:0;}
:is(#numora-home,.nmk) .sched-next-t {font-family:var(--fm);font-size:11px;font-weight:700;color:var(--sched);}
:is(#numora-home,.nmk) .sched-next-l {font-size:11px;color:var(--t2);font-weight:600;}
:is(#numora-home,.nmk) .sched-next-in {font-family:var(--fm);font-size:10px;color:var(--t4);margin-left:auto;}

:is(#numora-home,.nmk) .lane-d .lane-hd {cursor:pointer;user-select:none;}
:is(#numora-home,.nmk) .lane-d .lane-caret {width:14px;height:14px;color:var(--t4);transition:transform .2s;flex-shrink:0;}
:is(#numora-home,.nmk) .lane-d.collapsed .lane-caret {transform:rotate(-90deg);}
:is(#numora-home,.nmk) .lane-d.collapsed .lane-row {display:none;}
:is(#numora-home,.nmk) .lane-d .card[data-wid="pomodoro"] {flex:0 0 300px;min-height:300px;}
/* max-height caps the card at its normal (short-playlist) resting size —
   Pomodoro is the intended height-driver for this row (see .bgm-body's own
   comment above), but Spotify's card has no min-height of its own, so a
   long YouTube playlist's content could make IT the tallest instead,
   ballooning the whole row/card to fit every item. Capping it forces the
   queue list to scroll internally instead (2026-07-12, per direct report
   that a long playlist was inflating the container instead of scrolling). */
:is(#numora-home,.nmk) .lane-d .card[data-wid="spotify"] {flex:1 1 0;max-height:530px;}

/* health rings: fixed 100px gap (adjustable-gap UI removed 2026-07-11 per
   owner request), but still shrink at narrow widths so they never clip */
@container (max-width:430px){.entry-card .entry-rings{gap:26px;}}
@container (max-width:370px){.entry-card .entry-rings{gap:16px;}.entry-ring-wrap{width:64px;height:64px;}}
@container (max-width:320px){.entry-ring-wrap{width:54px;height:54px;}.entry-ring-num{font-size:13px;}.entry-ring-lbl{font-size:10px;}}

/* ══════════ MULTI-PAGE SHELL (all pages share rail + topbar + qcap + NOW bar) ══════════ */
:is(#numora-home,.nmk) .pshell {width:min(1400px,100%);margin:0 auto;padding:28px 32px 0;display:flex;flex-direction:column;gap:16px;}
:is(#numora-home,.nmk) .grid.page {padding-top:14px;}
:is(#numora-home,.nmk) .page {display:none !important;}
:is(#numora-home,.nmk) .page.on {display:flex !important;}
@media (prefers-reduced-motion: no-preference){
  :is(#numora-home,.nmk) .page.on {animation:pgIn .18s ease;}
  :is(#numora-home,.nmk) .cond-dot {animation:condPulse 3s ease-in-out infinite;}
}
@keyframes pgIn{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:none;}}
@keyframes condPulse{0%,100%{box-shadow:0 0 0 4px var(--good-dim);}50%{box-shadow:0 0 0 8px var(--good-dim);}}

/* ── DYNAMIC UI TRIALS (all motion behind prefers-reduced-motion) ── */
@media (prefers-reduced-motion: no-preference){
  :is(#numora-home,.nmk) .page.on .ht-spark,
:is(#numora-home,.nmk) .page.on .emo-chart,
:is(#numora-home,.nmk) .page.on .ea-spark {animation:chartIn .5s ease both;}
  :is(#numora-home,.nmk) .page.on .wbar {animation:barIn .45s ease both;}
  :is(#numora-home,.nmk) .kb-card {transition:transform .15s ease, box-shadow .15s ease;}
  :is(#numora-home,.nmk) .kb-card:hover {transform:translateY(-1px);box-shadow:0 4px 14px rgba(18,21,26,.10);}
  :is(#numora-home,.nmk) .trow,
:is(#numora-home,.nmk) .hrow,
:is(#numora-home,.nmk) .ibrow,
:is(#numora-home,.nmk) .setrow,
:is(#numora-home,.nmk) .bcard {transition:border-color .15s ease;}
  :is(#numora-home,.nmk) .tb-btn:active,
:is(#numora-home,.nmk) .qa-btn:active,
:is(#numora-home,.nmk) .qcap-plus:active,
:is(#numora-home,.nmk) .ptab:active,
:is(#numora-home,.nmk) .fchip:active,
:is(#numora-home,.nmk) .kb-resume:active {transform:scale(.95);}
  :is(#numora-home,.nmk) .now-bar {transition:background .3s ease,color .3s ease,min-height .3s ease,border-color .3s ease;}
  :is(#numora-home,.nmk) .tfill,
:is(#numora-home,.nmk) .tg-fill,
:is(#numora-home,.nmk) .brow-fill,
:is(#numora-home,.nmk) .entry-kr-fill,
:is(#numora-home,.nmk) .libfill {transition:width .5s ease;}
}
@keyframes chartIn{from{opacity:0;transform:translateY(3px);}to{opacity:1;transform:none;}}
@keyframes barIn{from{transform:scaleY(0);}}
:is(#numora-home,.nmk) .wbar {transform-origin:bottom;}
:is(#numora-home,.nmk) .trow:hover,
:is(#numora-home,.nmk) .hrow:hover,
:is(#numora-home,.nmk) .ibrow:hover,
:is(#numora-home,.nmk) .bcard:hover {border-color:var(--t4);}
/* time-of-day tint on the top strip (subtle "living" cue) */
:is(#numora-home,.nmk)[data-tod="morning"] .accent-strip {background:linear-gradient(90deg,var(--warn),transparent 70%);opacity:.5;}
:is(#numora-home,.nmk)[data-tod="evening"] .accent-strip {background:linear-gradient(90deg,var(--accent),transparent 70%);opacity:.5;}
:is(#numora-home,.nmk)[data-tod="night"] .accent-strip {background:linear-gradient(90deg,var(--sl-deep),transparent 70%);opacity:.6;}
:is(#numora-home,.nmk) .phd {display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
:is(#numora-home,.nmk) .phd-ti {font-size:17px;font-weight:700;letter-spacing:-.2px;}
:is(#numora-home,.nmk) .phd-sub {font-family:var(--fm);font-size:10px;color:var(--t4);}
:is(#numora-home,.nmk) .phd-sp {flex:1;}
:is(#numora-home,.nmk) .ptabs {display:flex;gap:6px;}
:is(#numora-home,.nmk) .ptab {height:26px;padding:0 12px;font-family:var(--fm);font-size:10px;font-weight:600;border:1px solid var(--border);background:var(--panel2);color:var(--t3);border-radius:var(--r2);cursor:pointer;}
:is(#numora-home,.nmk) .ptab.on {background:var(--t1);color:var(--bg);border-color:var(--t1);}
:is(#numora-home,.nmk) .fchip {display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:20px;border:1px solid var(--border);background:var(--panel2);font-size:10.5px;color:var(--t3);cursor:pointer;flex-shrink:0;}
:is(#numora-home,.nmk) .fchip.on {border-color:var(--t1);color:var(--bg);background:var(--t1);}
:is(#numora-home,.nmk) .tagchip.on {border-color:var(--t1);color:var(--t1);font-weight:700;}

/* ── tasks page ── */
:is(#numora-home,.nmk) .tsess {font-family:var(--fm);font-size:9.5px;color:var(--t4);flex-shrink:0;font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .tsec {display:flex;flex-direction:column;gap:6px;}
:is(#numora-home,.nmk) .wishrow {display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--r2);background:var(--panel2);border:1px dashed var(--border);}
:is(#numora-home,.nmk) .wname {flex:1;font-size:11px;color:var(--t3);min-width:0;}
:is(#numora-home,.nmk) .wpromote {font-family:var(--fm);font-size:9.5px;font-weight:600;color:var(--t3);background:var(--panel2);border:1px solid var(--border);border-radius:5px;padding:4px 9px;cursor:pointer;flex-shrink:0;}
:is(#numora-home,.nmk) .wpromote:hover {color:var(--accent);border-color:var(--accent);}

/* ── journal page ── */
:is(#numora-home,.nmk) .ibrow {display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:var(--r2);background:var(--panel2);border:1px solid var(--border2);}
:is(#numora-home,.nmk) .ib-src {font-family:var(--fm);font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--panel);border:1px solid var(--border);color:var(--t2);flex-shrink:0;}
:is(#numora-home,.nmk) .ib-src.manual {background:var(--panel);border:1px solid var(--border);color:var(--t3);}
:is(#numora-home,.nmk) .ib-tx {flex:1;min-width:0;font-size:11.5px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
:is(#numora-home,.nmk) .ib-t {font-family:var(--fm);font-size:9.5px;color:var(--t4);flex-shrink:0;}
:is(#numora-home,.nmk) .ib-act {display:flex;gap:5px;flex-shrink:0;}
:is(#numora-home,.nmk) .ib-btn {font-family:var(--fm);font-size:9px;font-weight:600;border:1px solid var(--border);background:var(--panel);color:var(--t3);border-radius:5px;padding:3px 8px;cursor:pointer;}
:is(#numora-home,.nmk) .ib-btn.pri {font-weight:700;}
:is(#numora-home,.nmk) .ib-btn:hover {border-color:var(--accent);color:var(--accent);}
:is(#numora-home,.nmk) .jday {display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:9.5px;font-weight:700;letter-spacing:.14em;color:var(--t4);margin:12px 0 7px;}
:is(#numora-home,.nmk) .jday::after {content:"";flex:1;height:1px;background:var(--border);}
:is(#numora-home,.nmk) .jrow {display:flex;gap:10px;padding:8px 10px;border-radius:var(--r2);background:var(--panel2);border:1px solid var(--border2);margin-bottom:6px;}
:is(#numora-home,.nmk) .jrow-t {font-family:var(--fm);font-size:9.5px;color:var(--t4);width:34px;flex-shrink:0;padding-top:2px;}
:is(#numora-home,.nmk) .jrow-bd {flex:1;min-width:0;}
:is(#numora-home,.nmk) .jrow-tx {font-size:11.5px;color:var(--t2);line-height:1.55;}
:is(#numora-home,.nmk) .jrow-meta {display:flex;gap:6px;margin-top:5px;flex-wrap:wrap;align-items:center;}
:is(#numora-home,.nmk) .jtype {font-family:var(--fm);font-size:8.5px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--panel);border:1px solid var(--border2);color:var(--t3);}
:is(#numora-home,.nmk) .jtag {font-family:var(--fm);font-size:9px;color:var(--t4);}
:is(#numora-home,.nmk) .jemo {font-family:var(--fm);font-size:8.5px;font-weight:700;padding:2px 6px;border-radius:4px;}
:is(#numora-home,.nmk) .jemo.pos {background:var(--good-dim);color:var(--good);}
:is(#numora-home,.nmk) .jemo.neg {background:var(--crit-dim);color:var(--crit);}
:is(#numora-home,.nmk) .jemo.neu {background:var(--panel);border:1px solid var(--border2);color:var(--t3);}

/* ── calendar page ── */
:is(#numora-home,.nmk) .cal-dow {display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;}
:is(#numora-home,.nmk) .cal-dow span {font-family:var(--fm);font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--t4);text-align:center;}
:is(#numora-home,.nmk) .cal {display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
:is(#numora-home,.nmk) .cal-cell {min-height:88px;border:1px solid var(--border2);border-radius:var(--r2);background:var(--panel2);padding:6px 7px;display:flex;flex-direction:column;gap:4px;cursor:pointer;}
:is(#numora-home,.nmk) .cal-cell:hover {border-color:var(--t4);}
:is(#numora-home,.nmk) .cal-cell.blank {background:transparent;border-color:transparent;cursor:default;}
:is(#numora-home,.nmk) .cal-cell.today {border-color:var(--accent);background:var(--accent-dim);}
:is(#numora-home,.nmk) .cal-d {font-family:var(--fm);font-size:10px;color:var(--t3);font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .cal-cell.today .cal-d {color:var(--accent);font-weight:700;}
:is(#numora-home,.nmk) .cal-ev {font-size:9px;color:var(--t2);background:var(--panel);border:1px solid var(--border2);border-radius:4px;padding:1px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
:is(#numora-home,.nmk) .cal-ev.due {color:var(--crit);border-color:transparent;background:var(--crit-dim);font-weight:600;}
:is(#numora-home,.nmk) .cal-ev.pred {opacity:.45;}
:is(#numora-home,.nmk) .cal-marks {display:flex;gap:3px;margin-top:auto;}
:is(#numora-home,.nmk) .cal-marks i {width:5px;height:5px;border-radius:50%;background:var(--good);}

/* ── goals + routine page ── */
:is(#numora-home,.nmk) .heat {display:flex;gap:3px;flex-shrink:0;}
:is(#numora-home,.nmk) .heat i {width:11px;height:11px;border-radius:2.5px;background:var(--border2);}
:is(#numora-home,.nmk) .heat i.on {background:var(--good);}
:is(#numora-home,.nmk) .rrow {display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r2);background:var(--panel2);border:1px solid var(--border2);}
:is(#numora-home,.nmk) .rrow .htxt {flex:1;min-width:0;}
:is(#numora-home,.nmk) .rwk {font-family:var(--fm);font-size:9.5px;color:var(--t4);flex-shrink:0;font-variant-numeric:tabular-nums;}

/* ── boards (notes / library) ── */
:is(#numora-home,.nmk) .board {display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;}
:is(#numora-home,.nmk) .bcard {background:var(--panel2);border:1px solid var(--border2);border-radius:var(--r2);padding:12px 13px;display:flex;flex-direction:column;gap:7px;min-height:110px;}
:is(#numora-home,.nmk) .bcard-role {font-family:var(--fm);font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t4);}
:is(#numora-home,.nmk) .bcard-ti {font-size:12px;font-weight:700;color:var(--t1);}
:is(#numora-home,.nmk) .bcard-tx {font-size:11px;color:var(--t3);line-height:1.6;flex:1;}
:is(#numora-home,.nmk) .bcard-m {font-family:var(--fm);font-size:9px;color:var(--t4);}
:is(#numora-home,.nmk) .libbar {height:4px;background:var(--border2);border-radius:2px;overflow:hidden;margin-top:4px;}
:is(#numora-home,.nmk) .libfill {height:100%;background:var(--sl-light);border-radius:2px;}

/* ── settings page ── */
:is(#numora-home,.nmk) .setrow {display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r2);background:var(--panel2);border:1px solid var(--border2);}
:is(#numora-home,.nmk) .setrow .dt {width:7px;height:7px;border-radius:50%;background:var(--good);flex-shrink:0;}
:is(#numora-home,.nmk) .setrow .dt.err {background:var(--crit);}
:is(#numora-home,.nmk) .set-name {font-size:12px;font-weight:700;color:var(--t1);width:110px;flex-shrink:0;}
:is(#numora-home,.nmk) .set-desc {font-size:10.5px;color:var(--t3);flex:1;min-width:0;}
:is(#numora-home,.nmk) .set-status {font-family:var(--fm);font-size:10px;color:var(--t3);flex-shrink:0;font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .set-status.ok {color:var(--good);} :is(#numora-home,.nmk) .set-status.err {color:var(--crit);}

/* ── health page extras ── */
:is(#numora-home,.nmk) .stress-lbls {display:flex;justify-content:space-between;font-family:var(--fm);font-size:9px;color:var(--t4);margin-top:4px;}
:is(#numora-home,.nmk) .big-ring-wrap {position:relative;width:110px;height:110px;}
:is(#numora-home,.nmk) .big-ring-wrap svg {width:100%;height:100%;}
:is(#numora-home,.nmk) .big-ring-num {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:24px;font-weight:700;}

/* ── PRIORITY COLOR: running = accent, next = calm neutral, dots = deep apricot ── */
:is(#numora-home,.nmk) {--dot:#B06E44;}
:is(#numora-home,.nmk) .sched-next {background:var(--panel2);border:1px solid var(--border2);}
:is(#numora-home,.nmk) .sched-next .dt {background:var(--dot);box-shadow:none;}
:is(#numora-home,.nmk) .sched-next-in {color:var(--t3);}
:is(#numora-home,.nmk) .wrev-next .dt {background:var(--dot);}
:is(#numora-home,.nmk) .sdot {border-color:var(--dot);}
:is(#numora-home,.nmk) .srow.past .sdot {background:var(--t4);border-color:var(--t4);}
:is(#numora-home,.nmk) .srow.now {background:var(--accent-dim2);border-radius:var(--r2);}
:is(#numora-home,.nmk) .srow.now .slbl {font-weight:700;}
:is(#numora-home,.nmk) .srow.now .sdot {background:var(--dot);border-color:var(--dot);box-shadow:0 0 0 3px rgba(176,110,68,.16);}
:is(#numora-home,.nmk) .entry-list-row .dt {background:var(--dot);}
:is(#numora-home,.nmk) .entry-list-row .dt.pending {background:var(--border);}
:is(#numora-home,.nmk) .kb-resume.acc {color:#fff;background:var(--accent);border-color:transparent;}

/* ── COLOR SYSTEM (VISION.md): status + lifelog categories ── */
:is(#numora-home,.nmk) {--ev-todo:#8A8F98;--ev-pend:#B8802E;--ev-prog:#4E7EC8;--ev-done:#5B7A4F;
      --ev-health:#8B7CF6;--ev-sleep:#25407A;--ev-work:#C25450;--ev-event:#3E8FA3;}
:is(#numora-home,.nmk) .cal-ev {border-left:3px solid var(--border);}
:is(#numora-home,.nmk) .cal-ev.ev-prog {border-left-color:var(--ev-prog);}
:is(#numora-home,.nmk) .cal-ev.ev-work {border-left-color:var(--ev-work);}
:is(#numora-home,.nmk) .cal-ev.ev-event {border-left-color:var(--ev-event);}
:is(#numora-home,.nmk) .cal-ev.ev-sleep {border-left-color:var(--ev-sleep);}
:is(#numora-home,.nmk) .cal-ev.ev-health {border-left-color:var(--ev-health);}
:is(#numora-home,.nmk) .wk-ev.ev-prog {border-left-color:var(--ev-prog);}
:is(#numora-home,.nmk) .wk-ev.ev-work {border-left-color:var(--ev-work);border-left-width:3px;}
:is(#numora-home,.nmk) .wk-ev.ev-event {border-left-color:var(--ev-event);}
:is(#numora-home,.nmk) .wk-ev.ev-sleep {border-left-color:var(--ev-sleep);background:rgba(37,64,122,.08);}
:is(#numora-home,.nmk) .wk-ev.ev-health {border-left-color:var(--ev-health);}
:is(#numora-home,.nmk) .hlt {display:none;flex-direction:column;gap:24px;}
:is(#numora-home,.nmk) .hlt.on {display:flex;}
:is(#numora-home,.nmk) .wc-fpre {font-family:var(--fm);font-size:9px;color:var(--sl-light);font-variant-numeric:tabular-nums;}

/* ── HEALTH CARD REFINEMENT (lighter, Apple Health-ish) ── */
:is(#numora-home,.nmk) .esd-hero {font-size:24px;font-weight:600;letter-spacing:-.2px;}
:is(#numora-home,.nmk) .esd-hero-lbl {font-size:10.5px;color:var(--t4);}
:is(#numora-home,.nmk) .esd-range {font-weight:500;color:var(--t4);}
:is(#numora-home,.nmk) .esg-item {font-size:12px;}
:is(#numora-home,.nmk) .esg-item strong {font-weight:600;}
:is(#numora-home,.nmk) .sleepbar {height:6px;}
:is(#numora-home,.nmk) .entry-ring-num {font-weight:600;}
:is(#numora-home,.nmk) .entry-caption {font-size:12px;}

/* ── HABIT CRUD (mock) ── */
:is(#numora-home,.nmk) .t-act {display:none;gap:4px;margin-left:6px;flex-shrink:0;}
:is(#numora-home,.nmk) .trow:hover .t-act {display:flex;}
:is(#numora-home,.nmk) .t-btn {width:20px;height:20px;border-radius:5px;border:1px solid var(--border);background:var(--panel);color:var(--t3);cursor:pointer;font-size:11px;line-height:1;padding:0;}
:is(#numora-home,.nmk) .t-btn:hover {color:var(--accent);border-color:var(--accent);}
:is(#numora-home,.nmk) .hb-x {display:none;color:var(--t4);cursor:pointer;font-size:12px;margin-left:5px;flex-shrink:0;}
:is(#numora-home,.nmk) .hrow:hover .hb-x {display:inline;}
:is(#numora-home,.nmk) .hb-add-row {background:transparent !important;border:1px dashed var(--border) !important;}

/* ── KANBAN DRAG & DROP ──
   class was ".kb-drag" here but the JS (both touch- and mouse-drag) applies
   ".touch-dragging" — mismatch meant the original card never actually
   dimmed while its ghost was being dragged. Fixed 2026-07-11. */
:is(#numora-home,.nmk) .kb-card {cursor:grab;}
:is(#numora-home,.nmk) .kb-card.touch-dragging {opacity:.4;cursor:grabbing;}
:is(#numora-home,.nmk) .kb-col.kb-over {border-color:var(--accent);}
:is(#numora-home,.nmk) .kb.dragging .kb-col.slim {flex:1 1 0;min-width:0;}
:is(#numora-home,.nmk) .kb.dragging .kb-col.slim .kb-hd {flex-direction:row;padding:9px 11px;border-bottom:1px solid var(--border2);align-items:center;}
:is(#numora-home,.nmk) .kb.dragging .kb-col.slim .kb-ti {writing-mode:horizontal-tb;letter-spacing:.12em;}
:is(#numora-home,.nmk) .kb.dragging .kb-col.slim .kb-bd {display:flex;}

/* ── CALENDAR: views + condition tint ── */
:is(#numora-home,.nmk) .calview {display:none;}
:is(#numora-home,.nmk) .calview.on {display:flex;}
:is(#numora-home,.nmk) .cal-cell.cond-g {background:rgba(78,126,200,.09);}
:is(#numora-home,.nmk) .cal-cell.cond-n {background:rgba(198,130,12,.09);}
:is(#numora-home,.nmk) .cal-cell.cond-t {background:rgba(208,69,59,.10);}
:is(#numora-home,.nmk) .cal-cell.today.cond-g {background:rgba(78,126,200,.14);}
:is(#numora-home,.nmk) .wk-head {display:grid;grid-template-columns:44px repeat(7,1fr);margin-bottom:6px;}
:is(#numora-home,.nmk) .wk-head span {font-family:var(--fm);font-size:9.5px;color:var(--t4);text-align:center;padding:4px 2px;}
:is(#numora-home,.nmk) .wk-head span.today {color:var(--t1);font-weight:700;background:var(--accent-dim);border-radius:5px;}
:is(#numora-home,.nmk) .wkgrid {display:grid;grid-template-columns:44px repeat(7,1fr);border-top:1px solid var(--border2);}
:is(#numora-home,.nmk) .wkgrid.day1 {grid-template-columns:44px 1fr;}
:is(#numora-home,.nmk) .wk-head.day1 {grid-template-columns:44px 1fr;}
:is(#numora-home,.nmk) .wk-times {display:flex;flex-direction:column;}
:is(#numora-home,.nmk) .wk-times span {height:44px;font-family:var(--fm);font-size:9px;color:var(--t4);text-align:right;padding-right:6px;transform:translateY(-5px);}
:is(#numora-home,.nmk) .wk-scroll {max-height:600px;overflow-y:auto;border:1px solid var(--border2);border-radius:var(--r2);}
:is(#numora-home,.nmk) .spark-axis {display:flex;justify-content:space-between;font-family:var(--fm);font-size:8.5px;color:var(--t4);margin-top:3px;}
:is(#numora-home,.nmk) .wbar-col {position:relative;}
:is(#numora-home,.nmk) .wbar-col:hover::after {content:attr(data-tip);position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);
  background:var(--t1);color:var(--bg);font-family:var(--fm);font-size:9.5px;padding:3px 8px;border-radius:5px;white-space:nowrap;z-index:6;pointer-events:none;}
:is(#numora-home,.nmk) .wbar-col:hover .wbar {outline:1.5px solid var(--t1);outline-offset:1px;}
:is(#numora-home,.nmk) .wk-col {position:relative;border-left:1px solid var(--border2);height:1056px;
  background:repeating-linear-gradient(180deg,transparent 0 43px,var(--border2) 43px 44px);}
:is(#numora-home,.nmk) .wk-ev {position:absolute;left:3px;right:3px;border-radius:5px;background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--sl-light);padding:3px 6px;font-size:9.5px;color:var(--t2);overflow:hidden;line-height:1.3;}
:is(#numora-home,.nmk) .wk-ev .t {font-family:var(--fm);font-size:8.5px;color:var(--t4);display:block;}
:is(#numora-home,.nmk) .wk-ev.acc {border-left-color:var(--accent);background:var(--accent-dim);}
:is(#numora-home,.nmk) .wk-now {position:absolute;left:0;right:0;height:2px;background:var(--accent);z-index:2;}
:is(#numora-home,.nmk) .wk-now::before {content:"";position:absolute;left:-1px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent);}

/* ── TAG TIME GOALS ── */
:is(#numora-home,.nmk) .tg-row {display:flex;flex-direction:column;gap:4px;margin-bottom:10px;}
:is(#numora-home,.nmk) .tg-top {display:flex;align-items:baseline;gap:8px;}
:is(#numora-home,.nmk) .tg-name {font-size:11.5px;font-weight:700;color:var(--t1);}
:is(#numora-home,.nmk) .tg-num {font-family:var(--fm);font-size:10px;color:var(--t3);margin-left:auto;font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .tg-bar {height:6px;border-radius:3px;background:var(--border2);overflow:hidden;}
:is(#numora-home,.nmk) .tg-fill {height:100%;border-radius:3px;}
:is(#numora-home,.nmk) .tg-sub {font-family:var(--fm);font-size:9px;color:var(--t4);font-variant-numeric:tabular-nums;}

/* ── NO ORANGE TYPE: colored text lives only in tiny semantic chips ── */
:is(#numora-home,.nmk) .rail-item.on {color:var(--t1);}
:is(#numora-home,.nmk) .srow.now .slbl {color:var(--t1);}
:is(#numora-home,.nmk) .srow.now .st {color:var(--t2);}
:is(#numora-home,.nmk) .sched-next-t {color:var(--t1);}
:is(#numora-home,.nmk) .snow-line .snl-t {color:var(--t2);}
:is(#numora-home,.nmk) .entry-badge-now {color:var(--t2);}
:is(#numora-home,.nmk) .cal-cell.today .cal-d {color:var(--t1);}
:is(#numora-home,.nmk) .ri-ev {color:var(--t3);background:var(--panel2);border:1px solid var(--border2);}
:is(#numora-home,.nmk) .ri-ev:hover {color:var(--accent);background:var(--panel2);border-color:var(--accent);}

/* ── tasks board (kanban, restyled) ── */
:is(#numora-home,.nmk) .kb {display:flex;gap:12px;align-items:stretch;width:100%;}
:is(#numora-home,.nmk) .kb-col {flex:1 1 0;min-width:0;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);display:flex;flex-direction:column;min-height:280px;}
:is(#numora-home,.nmk) .kb-hd {display:flex;align-items:center;gap:7px;padding:9px 11px;border-bottom:1px solid var(--border2);}
:is(#numora-home,.nmk) .kb-dot {width:7px;height:7px;border-radius:50%;flex-shrink:0;}
:is(#numora-home,.nmk) .kb-ti {font-family:var(--fm);font-size:9.5px;font-weight:700;letter-spacing:.12em;color:var(--t3);text-transform:uppercase;}
:is(#numora-home,.nmk) .kb-n {font-family:var(--fm);font-size:9.5px;color:var(--t4);font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .kb-add {margin-left:auto;width:20px;height:20px;border-radius:5px;border:1px solid var(--border);background:var(--panel);color:var(--t3);cursor:pointer;font-size:12px;line-height:1;}
:is(#numora-home,.nmk) .kb-bd {display:flex;flex-direction:column;gap:8px;padding:9px;flex:1;overflow:auto;}
:is(#numora-home,.nmk) .kb-col.slim {flex:0 0 42px;min-width:42px;min-height:280px;}
:is(#numora-home,.nmk) .kb-col.slim .kb-hd {flex-direction:column;gap:8px;padding:12px 0;border-bottom:none;align-items:center;}
:is(#numora-home,.nmk) .kb-col.slim .kb-ti {writing-mode:vertical-rl;letter-spacing:.2em;}
:is(#numora-home,.nmk) .kb-col.slim .kb-bd,
:is(#numora-home,.nmk) .kb-col.slim .kb-add {display:none;}
:is(#numora-home,.nmk) .kb-card {background:var(--panel);border:1px solid var(--border);border-radius:var(--r2);box-shadow:var(--sh);padding:10px 11px;display:flex;flex-direction:column;gap:7px;}
:is(#numora-home,.nmk) .kb-card.now {border-left:3px solid var(--accent);}
:is(#numora-home,.nmk) .kb-card.done-card {opacity:.65;}
:is(#numora-home,.nmk) .kb-id {font-family:var(--fm);font-size:9px;color:var(--t4);display:flex;gap:7px;align-items:center;font-variant-numeric:tabular-nums;}
:is(#numora-home,.nmk) .kb-name {font-size:12px;font-weight:700;color:var(--t1);line-height:1.4;}
:is(#numora-home,.nmk) .kb-card.done-card .kb-name {color:var(--t4);text-decoration:line-through;}
:is(#numora-home,.nmk) .kb-chips {display:flex;gap:5px;flex-wrap:wrap;}
:is(#numora-home,.nmk) .sess {background:var(--panel2);border:1px solid var(--border2);border-radius:6px;padding:7px 9px;display:flex;flex-direction:column;gap:4px;}
:is(#numora-home,.nmk) .sess-row {display:flex;align-items:center;gap:6px;font-family:var(--fm);font-size:9.5px;color:var(--t3);font-variant-numeric:tabular-nums;flex-wrap:wrap;}
:is(#numora-home,.nmk) .sess-k {font-weight:700;color:var(--t4);letter-spacing:.04em;flex-shrink:0;}
:is(#numora-home,.nmk) .sess-arrow {color:var(--t4);}
:is(#numora-home,.nmk) .sess-d {margin-left:auto;color:var(--t4);}
:is(#numora-home,.nmk) .sess-row.total {border-top:1px dashed var(--border);margin-top:2px;padding-top:5px;color:var(--t2);font-weight:700;}
:is(#numora-home,.nmk) .kb-foot {display:flex;gap:6px;align-items:center;}
:is(#numora-home,.nmk) .kb-resume {font-family:var(--fm);font-size:9.5px;font-weight:700;color:var(--t2);background:var(--panel2);border:1px solid var(--border);border-radius:5px;padding:4px 11px;cursor:pointer;}
:is(#numora-home,.nmk) .kb-resume:hover {color:var(--accent);border-color:var(--accent);}
:is(#numora-home,.nmk) .kb-resume.acc {color:var(--accent);background:var(--accent-dim);border-color:transparent;}
:is(#numora-home,.nmk) .kb-x {margin-left:auto;width:20px;height:20px;border-radius:5px;border:1px solid var(--border2);background:var(--panel2);color:var(--t4);cursor:pointer;font-size:11px;line-height:1;}
:is(#numora-home,.nmk) .kb-search {height:24px;border:1px solid var(--border);border-radius:20px;background:var(--panel2);padding:0 11px;font-size:10.5px;color:var(--t1);outline:none;font-family:var(--ff);width:150px;}
:is(#numora-home,.nmk) .kb-search::placeholder {color:var(--t4);}
@media(max-width:1080px){:is(#numora-home,.nmk) .kb {flex-wrap:wrap;}:is(#numora-home,.nmk) .kb-col {flex:1 1 240px;}:is(#numora-home,.nmk) .kb-col.slim {flex:0 0 42px;}}


/* ══ production-shell integration overrides (keep at end) ══
   The mock positioned .topbar/.stage fixed to the viewport beside its own
   rail; inside Personal OS the home screen already lives right of the real
   rail and under the NOW bar, so anchor them to :is(#numora-home,.nmk) instead. */
:is(#numora-home,.nmk) .topbar { position: absolute; top: 0; left: 0; right: 0; }
/* width/height:auto override the mock's fixed 1440x900 stage (from styles.css)
   so the stage fills the content area and .grid's margin:0 auto centers again.
   Without this the stage stayed 1440px pinned left → content looked left-aligned
   on wide screens. */
:is(#numora-home,.nmk) .stage  { position: absolute; top: var(--top-h); left: 0; right: 0; bottom: 0; width: auto; height: auto; }
:is(#numora-home,.nmk) { background: var(--bg); }

/* Kill the old dark-UI decorative overlays — a 48px grid (body::after) and the
   crosshair. They're not in the mock and read as graph-paper on the light bg. */
body::after { display: none !important; }
.crosshair { display: none !important; }

/* ══ stage D-2+: ported pages other than Home ══
   Each ported .scr gets <div class="nmk"> as its scroll container; the page
   content is the mock's .grid.page block (no topbar/stage of its own). */
.scr > .nmk { position: absolute; inset: 0; overflow-y: auto; color: var(--t1); font-family: var(--ff); font-size: 12px; }
.scr > .nmk ::-webkit-scrollbar { width: 5px; height: 5px; }
.scr > .nmk ::-webkit-scrollbar-thumb { background: rgba(28,28,26,0.16); border-radius: 3px; }
:is(#numora-home,.nmk) .kb-col { min-height: 200px; }
:is(#numora-home,.nmk) .kb-col.slim .kb-hd { cursor: pointer; }
.nmk .atab { display: flex; flex-direction: column; gap: 24px; }   /* analytics tab panes stack like grid lanes */
:is(#numora-home,.nmk) .wrev-sl .up { color: var(--good); }
:is(#numora-home,.nmk) .wrev-sl .dn { color: var(--crit); }

/* ══ production shell (rail / topbar / NOW bar) skinned to theme-gitbook + pal-terracotta ══
   The shell lives outside the .nmk scope, so the confirmed default token values
   are inlined here (bg #AEB6B1 · panel2 rgba(255,255,255,.08) · border
   rgba(20,22,20,.22) · ink #15170F · accent #9E5030). body{} background/grain
   is set once in the numora-home token block above and applies document-wide. */
.accent-strip { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 60; pointer-events: none; }
body[data-tod="morning"] .accent-strip { background: linear-gradient(90deg, #B8802E, transparent 70%); opacity: .5; }
body[data-tod="evening"] .accent-strip { background: linear-gradient(90deg, #9E5030, transparent 70%); opacity: .5; }
body[data-tod="night"]   .accent-strip { background: linear-gradient(90deg, #3C4A5E, transparent 70%); opacity: .6; }

.sb { width: 56px; background: rgba(255,255,255,.08); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  border-right: 1px solid rgba(20,22,20,.22); padding: 12px 0 14px; gap: 6px; }
.sb-logo { writing-mode: horizontal-tb; width: 26px; height: 26px; border-radius: 999px; background: #15170F; color: #AEB6B1;
  display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; letter-spacing: 0; margin-bottom: 14px; }
.sb-i { width: 36px; height: 36px; border-radius: 2px; color: rgba(21,23,15,.48); }
.sb-i svg { width: 17px; height: 17px; }
.sb-i:hover { background: rgba(255,255,255,.08); color: rgba(21,23,15,.84); }
.sb-i.on { background: rgba(158,80,48,.09); color: #15170F; box-shadow: none; }
.sb-sep { background: rgba(20,22,20,.22); }
.sb-i .pip { border-color: #AEB6B1; }

.top { height: 48px; background: rgba(255,255,255,.16); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  border-bottom: 1px solid rgba(20,22,20,.22); }
.top-title { font-weight: 700; letter-spacing: -0.2px; }
.top-btn { background: rgba(255,255,255,.08); border: 1px solid rgba(20,22,20,.22); color: rgba(21,23,15,.64);
  backdrop-filter: none; border-radius: 999px; font-family: ui-monospace,"SF Mono","SFMono-Regular","Menlo","Consolas",monospace;
  text-transform: uppercase; letter-spacing: .06em; }
.top-btn:hover { background: rgba(255,255,255,.2); color: #15170F; border-color: #9E5030; }
.top-btn.am { background: #15170F; color: #AEB6B1; border-color: transparent; }
.top-btn.am:hover { background: #2A2C22; }

#now-bar { background: rgba(255,255,255,.16); border-bottom: 1px solid rgba(20,22,20,.22); color: rgba(21,23,15,.64); }
#now-bar.nb-run { background: rgba(158,80,48,.09); box-shadow: inset 3px 0 0 #9E5030; color: #15170F; }
#now-bar .nb-dot { background: rgba(21,23,15,.25); }
#now-bar.nb-run .nb-dot { background: #9E5030; }
.nb-btn { background: rgba(255,255,255,.08); border: 1px solid rgba(20,22,20,.22); color: rgba(21,23,15,.84); border-radius: 2px; }
.nb-btn:hover { background: rgba(255,255,255,.08); color: #9E5030; border-color: #9E5030; }
#qcap { background: rgba(255,255,255,.08); border: 1px solid rgba(20,22,20,.22); border-radius: 20px; }
#qcap::placeholder { color: rgba(21,23,15,.48); opacity: 1; }
#qcap:focus { background: rgba(255,255,255,.2); border-color: #9E5030; }

/* ══ stage E-2: Calendar re-skinned to the mock light system ══
   The GCal engine keeps its markup + functions; only the paint changes.
   Legacy tokens the gcal CSS reads (--b1/--b2/--s1/--s2) are aliased to the
   mock palette inside the calendar scope, and the hardcoded glass greys are
   overridden. #scr-calendar itself is the flex column (the .nmk wrapper is
   the scroll container elsewhere, but the calendar manages its own scroll). */
/* 2026-07-12: Calendar used to pin its own flat-white token set here,
   opting out of the app's gitbook/terracotta theme entirely. The mock's
   own Calendar page uses the SAME body.theme-gitbook.pal-terracotta tokens
   as every other page, so this override is removed — Calendar now inherits
   the real theme (translucent panels, 2px radius, terracotta accent, card
   brackets) like Home/Journal/etc. Only layout (not color) stays local. */
#scr-calendar > .nmk { position: absolute; inset: 0; overflow: hidden; display: flex; flex-direction: column;
  color: var(--t1); font-family: var(--ff); background: var(--bg); }
#scr-calendar .gcal-wrap { flex: 1; min-height: 0; }
#scr-calendar .gcal-header .ptab { min-width: 0; }
#scr-calendar .gcal-header .ptab[aria-label="前へ"], #scr-calendar .gcal-header .ptab[aria-label="次へ"] { padding: 0 10px; font-size: 15px; }
#scr-calendar .gcal-mdn:hover, #scr-calendar .gcal-whd-num:hover { background: var(--panel2); }
#scr-calendar .gcal-main { background: var(--panel); }
/* condition tint on month cells: mock's blue=good / amber=ok / red=tired wash */
#scr-calendar .gcal-md.cond-g { background: rgba(78,126,200,.09); box-shadow: inset 3px 0 0 rgba(78,126,200,.5); }
#scr-calendar .gcal-md.cond-n { background: rgba(198,130,12,.09); box-shadow: inset 3px 0 0 rgba(198,130,12,.5); }
#scr-calendar .gcal-md.cond-t { background: rgba(208,69,59,.10); box-shadow: inset 3px 0 0 rgba(208,69,59,.5); }
#scr-calendar .gcal-md.today.cond-g { background: rgba(78,126,200,.14); }
