/* JARVIS Command Center — design system + layout. No build step. */

/* ---------- fonts (Inter, SIL OFL 1.1 — see /assets/fonts/OFL.txt) ---------- */
@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter-cyrillic-wght-normal.woff2) format("woff2-variations"),url(/assets/fonts/inter-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter-latin-wght-normal.woff2) format("woff2-variations"),url(/assets/fonts/inter-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- design tokens ---------- */
:root{
  color-scheme:dark;
  /* surfaces */
  --c-bg:#0b0d11; --c-bg-2:#0e1015; --c-surface:#13161d; --c-surface-2:#181c24; --c-surface-3:#1e232c; --c-sunken:#0d1015; --c-qr-bg:#ffffff;
  --c-overlay:rgba(5,6,9,.66); --c-glass:rgba(12,14,18,.82);
  /* lines */
  --c-line:rgba(255,255,255,.07); --c-line-2:rgba(255,255,255,.12); --c-line-3:rgba(255,255,255,.2);
  /* text */
  --c-text:#f3f1eb; --c-text-2:#c9c8c1; --c-muted:#9a9993; --c-faint:#74766f;
  /* accent: gold */
  --c-gold:#d0aa62; --c-gold-hi:#e3c17f; --c-gold-lo:#a9843f; --c-gold-ink:#17130d;
  --c-gold-soft:rgba(208,170,98,.12); --c-gold-line:rgba(208,170,98,.34); --c-gold-glow:rgba(208,170,98,.22);
  /* status */
  --c-ok:#82b38f; --c-ok-soft:rgba(130,179,143,.12); --c-ok-line:rgba(130,179,143,.32);
  --c-warn:#dcab5f; --c-warn-soft:rgba(220,171,95,.12); --c-warn-line:rgba(220,171,95,.34);
  --c-bad:#de7f76; --c-bad-soft:rgba(222,127,118,.11); --c-bad-line:rgba(222,127,118,.34);
  --c-info:#8aa9cf; --c-info-soft:rgba(138,169,207,.12); --c-info-line:rgba(138,169,207,.32);
  --c-idle:#6d706a;
  /* spacing (4px grid) */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px; --s-7:28px; --s-8:32px; --s-10:40px; --s-12:48px;
  /* radii */
  --r-xs:6px; --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:20px; --r-2xl:24px; --r-pill:999px;
  /* shadows */
  --sh-1:0 1px 0 rgba(255,255,255,.03) inset,0 1px 2px rgba(0,0,0,.25);
  --sh-2:0 1px 0 rgba(255,255,255,.035) inset,0 10px 30px rgba(0,0,0,.28);
  --sh-pop:0 24px 70px rgba(0,0,0,.55),0 0 0 1px var(--c-line-2);
  --sh-focus:0 0 0 2px var(--c-bg),0 0 0 4px var(--c-gold);
  /* type scale */
  --font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --fs-xs:12px; --fs-sm:13px; --fs-md:14px; --fs-base:15px; --fs-lg:17px; --fs-xl:20px; --fs-2xl:24px; --fs-3xl:30px; --fs-4xl:clamp(30px,3.4vw,44px); --fs-hero:clamp(40px,5.4vw,76px);
  --lh-tight:1.15; --lh:1.5;
  --fw-r:400; --fw-m:500; --fw-sb:600; --fw-b:700;
  /* layout */
  --sidebar-w:248px; --top-h:64px; --content-max:1320px; --ease:cubic-bezier(.2,.8,.2,1); --t:.16s;
  /* derived tints (kept as tokens so no raw colors live outside :root) */
  --c-tint:rgba(255,255,255,.02); --c-hover:rgba(255,255,255,.04); --c-sidebar:rgba(10,12,15,.9);
  --c-gold-top:#ecca88; --c-gold-hover:rgba(208,170,98,.18); --c-gold-ring:rgba(208,170,98,.12); --c-gold-ring-2:rgba(208,170,98,.1);
  --c-gold-wash:rgba(208,170,98,.07); --c-gold-inner:rgba(208,170,98,.06); --c-gold-fade:rgba(208,170,98,.04); --c-gold-halo:rgba(208,170,98,.025); --c-gold-halo-2:rgba(208,170,98,.015);
  --c-info-wash:rgba(138,169,207,.05); --c-bad-hover:rgba(222,127,118,.18); --c-bad-lo:#8f5a52; --c-bad-ink:#1a0d0b;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;min-height:100%;background:var(--c-bg);color:var(--c-text)}
body{font-family:var(--font);font-size:var(--fs-md);line-height:var(--lh);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;
  background:radial-gradient(1100px 700px at 100% -10%,var(--c-gold-wash),transparent 60%),radial-gradient(900px 600px at -10% 0%,var(--c-info-wash),transparent 55%),var(--c-bg);background-attachment:fixed}
body.noScroll{overflow:hidden}
h1,h2,h3,h4,p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--c-gold-hi)}
ul{margin:0;padding:0;list-style:none}
kbd,.kbd{font-family:var(--font);font-size:var(--fs-xs);line-height:1;color:var(--c-muted);border:1px solid var(--c-line-2);border-bottom-width:2px;border-radius:var(--r-xs);padding:3px 6px;background:var(--c-sunken);white-space:nowrap}
.hidden{display:none!important}
[hidden]{display:none!important}
.srOnly{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
:focus{outline:none}
:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px;border-radius:var(--r-sm)}
.skipLink{position:fixed;left:var(--s-3);top:-60px;z-index:200;background:var(--c-gold);color:var(--c-gold-ink);padding:var(--s-2) var(--s-4);border-radius:var(--r-sm);font-weight:var(--fw-sb);text-decoration:none}
.skipLink:focus{top:var(--s-3)}
::selection{background:var(--c-gold-glow)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- boot ---------- */
.boot{position:fixed;inset:0;display:grid;place-items:center;z-index:150;background:var(--c-bg)}
.boot .brandMark{animation:pulse 1.4s var(--ease) infinite}
@keyframes pulse{50%{opacity:.45}}

/* ---------- primitives ---------- */
.brandMark{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none;font-weight:var(--fw-b);font-size:var(--fs-lg);color:var(--c-gold);
  border:1px solid var(--c-gold-line);background:linear-gradient(145deg,var(--c-surface-3),var(--c-surface));box-shadow:inset 0 0 24px var(--c-gold-inner)}
.brandMark.sm{width:32px;height:32px;font-size:var(--fs-base);border-radius:10px}
.brandMark.lg{width:56px;height:56px;font-size:var(--fs-2xl);border-radius:16px}
.eyebrow{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--c-gold);font-weight:var(--fw-sb)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-4);border-radius:var(--r-md);
  border:1px solid var(--c-line-2);background:var(--c-surface-2);color:var(--c-text);font-size:var(--fs-md);font-weight:var(--fw-m);white-space:nowrap;
  transition:background var(--t) var(--ease),border-color var(--t) var(--ease),color var(--t) var(--ease),transform var(--t) var(--ease)}
.btn:hover{background:var(--c-surface-3);border-color:var(--c-line-3)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:default;transform:none}
.btn .icon{width:16px;height:16px}
.btn.primary{background:linear-gradient(180deg,var(--c-gold-hi),var(--c-gold));border-color:var(--c-gold-hi);color:var(--c-gold-ink);font-weight:var(--fw-sb)}
.btn.primary:hover{background:linear-gradient(180deg,var(--c-gold-top),var(--c-gold-hi))}
.btn.danger{background:var(--c-bad-soft);border-color:var(--c-bad-line);color:var(--c-bad)}
.btn.danger:hover{background:var(--c-bad-hover)}
.btn.ghost{background:transparent;border-color:var(--c-line)}
.btn.ghost:hover{background:var(--c-surface-2)}
.btn.sm{min-height:34px;padding:0 var(--s-3);font-size:var(--fs-sm);border-radius:var(--r-sm)}
.btn.lg{min-height:46px;font-size:var(--fs-base)}
.btn.block{width:100%}
.iconBtn{width:40px;height:40px;display:inline-grid;place-items:center;border-radius:var(--r-md);border:1px solid var(--c-line);background:transparent;color:var(--c-text-2)}
.iconBtn:hover{background:var(--c-surface-2);color:var(--c-text)}
.textBtn{display:inline-flex;align-items:center;min-height:44px;border:0;background:transparent;color:var(--c-gold-hi);font-size:var(--fs-sm);padding:0 var(--s-1);margin-top:var(--s-2)}
.textBtn:hover{text-decoration:underline}
.linkBtn{display:inline-flex;align-items:center;gap:2px;border:0;background:transparent;color:var(--c-gold-hi);font-size:var(--fs-sm);font-weight:var(--fw-m);padding:var(--s-1) var(--s-1);border-radius:var(--r-xs)}
.linkBtn .icon{width:15px;height:15px}
.linkBtn:hover{color:var(--c-text)}

.tag{display:inline-flex;align-items:center;gap:var(--s-1);height:24px;padding:0 var(--s-2);border-radius:var(--r-pill);border:1px solid var(--c-line-2);
  font-size:var(--fs-xs);font-weight:var(--fw-m);color:var(--c-muted);background:var(--c-tint);white-space:nowrap;font-variant-numeric:tabular-nums}
.tag.ok{color:var(--c-ok);border-color:var(--c-ok-line);background:var(--c-ok-soft)}
.tag.warn{color:var(--c-warn);border-color:var(--c-warn-line);background:var(--c-warn-soft)}
.tag.bad{color:var(--c-bad);border-color:var(--c-bad-line);background:var(--c-bad-soft)}
.tag.info{color:var(--c-info);border-color:var(--c-info-line);background:var(--c-info-soft)}
.tag.gold{color:var(--c-gold-hi);border-color:var(--c-gold-line);background:var(--c-gold-soft)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c-idle);flex:none}
.dot.ok{background:var(--c-ok);box-shadow:0 0 0 3px var(--c-ok-soft)}
.dot.warn{background:var(--c-warn);box-shadow:0 0 0 3px var(--c-warn-soft)}
.dot.bad{background:var(--c-bad);box-shadow:0 0 0 3px var(--c-bad-soft)}

.field{display:grid;gap:6px;margin:0 0 var(--s-4)}
.field label{font-size:var(--fs-xs);font-weight:var(--fw-m);color:var(--c-muted);letter-spacing:.02em}
.field input,.field select,.composer input,.field textarea{width:100%;min-height:44px;border:1px solid var(--c-line-2);border-radius:var(--r-md);background:var(--c-sunken);color:var(--c-text);
  padding:0 var(--s-3);font-size:var(--fs-base);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.field select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--c-muted) 50%),linear-gradient(135deg,var(--c-muted) 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.field input::placeholder,.composer input::placeholder{color:var(--c-faint)}
.field input:hover,.field select:hover,.composer input:hover{border-color:var(--c-line-3)}
.field input:focus,.field select:focus,.composer input:focus{border-color:var(--c-gold-line);box-shadow:0 0 0 3px var(--c-gold-soft);outline:none}

.avatar{width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;flex:none;background:var(--c-surface-3);color:var(--c-gold-hi);font-weight:var(--fw-sb);font-size:var(--fs-base);border:1px solid var(--c-line)}
.avatar.sm{width:30px;height:30px;font-size:var(--fs-sm);border-radius:var(--r-sm)}

/* meter-based progress bar (no inline styles) */
meter.bar{display:block;width:100%;height:6px;margin-top:var(--s-2);border:0;border-radius:var(--r-pill);background:var(--c-surface-3);-webkit-appearance:none;appearance:none;overflow:hidden}
meter.bar::-webkit-meter-bar{background:var(--c-surface-3);border:0;border-radius:var(--r-pill);height:6px}
meter.bar::-webkit-meter-optimum-value{background:linear-gradient(90deg,var(--c-gold-lo),var(--c-gold-hi));border-radius:var(--r-pill)}
meter.bar::-webkit-meter-suboptimum-value{background:linear-gradient(90deg,var(--c-gold-lo),var(--c-gold));border-radius:var(--r-pill)}
meter.bar::-webkit-meter-even-less-good-value{background:linear-gradient(90deg,var(--c-bad-lo),var(--c-bad));border-radius:var(--r-pill)}
meter.bar::-moz-meter-bar{background:linear-gradient(90deg,var(--c-gold-lo),var(--c-gold-hi));border-radius:var(--r-pill)}
meter.bar:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:linear-gradient(90deg,var(--c-bad-lo),var(--c-bad))}

/* ---------- auth ---------- */
.authShell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(400px,.85fr)}
.authScene{position:relative;overflow:hidden;padding:var(--s-12) clamp(32px,6vw,96px);display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-10)}
.authScene::after{content:"";position:absolute;width:620px;height:620px;border-radius:50%;right:-220px;top:12%;border:1px solid var(--c-gold-ring);
  box-shadow:0 0 0 80px var(--c-gold-halo),0 0 0 170px var(--c-gold-halo-2);pointer-events:none}
.authLogo{display:flex;align-items:center;gap:var(--s-3)}
.brandWord{font-weight:var(--fw-b);letter-spacing:.18em;font-size:var(--fs-base)}
.authHero{position:relative;z-index:1;max-width:720px}
.authHero h1{font-size:var(--fs-hero);line-height:.98;letter-spacing:-.045em;font-weight:var(--fw-b);margin:var(--s-4) 0 var(--s-6)}
.authLead{max-width:560px;font-size:var(--fs-lg);line-height:1.6;color:var(--c-text-2)}
.authPoints{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-8)}
.authPoints li{display:inline-flex;align-items:center;gap:var(--s-2);height:36px;padding:0 var(--s-3);border:1px solid var(--c-line-2);border-radius:var(--r-pill);color:var(--c-text-2);font-size:var(--fs-sm);background:var(--c-tint)}
.authPoints .icon{width:16px;height:16px;color:var(--c-gold)}
.authFoot{color:var(--c-faint);font-size:var(--fs-xs);position:relative;z-index:1}
.authPanel{display:flex;align-items:center;justify-content:center;padding:var(--s-8);background:var(--c-glass);border-left:1px solid var(--c-line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.authCard{width:min(420px,100%);border:1px solid var(--c-line);border-radius:var(--r-2xl);background:linear-gradient(180deg,var(--c-surface-2),var(--c-surface));padding:var(--s-8);box-shadow:var(--sh-2)}
.authCardIcon{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--c-gold-soft);color:var(--c-gold);border:1px solid var(--c-gold-line);margin-bottom:var(--s-5)}
.authCard h2{font-size:var(--fs-2xl);letter-spacing:-.02em;font-weight:var(--fw-sb);margin-bottom:var(--s-2)}
.authSub{color:var(--c-muted);font-size:var(--fs-md);margin-bottom:var(--s-6)}
.authCard .btn.primary{margin-top:var(--s-2)}
.authMsg{min-height:22px;margin-top:var(--s-2);font-size:var(--fs-sm);color:var(--c-muted)}
.authMsg.err{color:var(--c-bad)} .authMsg.ok{color:var(--c-ok)}
.noAccount{border-top:1px solid var(--c-line);margin-top:var(--s-5);padding-top:var(--s-4);color:var(--c-faint);font-size:var(--fs-xs);line-height:1.6}

/* ---------- app shell ---------- */
.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:var(--s-4) var(--s-3);border-right:1px solid var(--c-line);background:var(--c-sidebar);backdrop-filter:blur(18px);z-index:20}
.brand{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-1) var(--s-2) var(--s-5)}
.brandText b{display:block;font-size:var(--fs-base);letter-spacing:.16em;font-weight:var(--fw-b)}
.brandText small{display:block;font-size:var(--fs-xs);color:var(--c-faint);letter-spacing:.04em}
.sideNav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;margin:0 calc(var(--s-1) * -1);padding:0 var(--s-1)}
.navLabel{font-size:var(--fs-xs);font-weight:var(--fw-sb);text-transform:uppercase;letter-spacing:.12em;color:var(--c-faint);padding:var(--s-4) var(--s-3) var(--s-2)}
.navLabel:first-child{padding-top:var(--s-1)}
.navItem{position:relative;display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:40px;padding:0 var(--s-3);border:0;border-radius:var(--r-md);background:transparent;color:var(--c-muted);
  font-size:var(--fs-md);font-weight:var(--fw-m);text-align:left;transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.navItem:hover{background:var(--c-hover);color:var(--c-text)}
.navItem.active{background:linear-gradient(90deg,var(--c-gold-soft),var(--c-gold-fade));color:var(--c-gold-hi)}
.navItem.active::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--c-gold)}
.navItem .icon{width:18px;height:18px}
.navCount{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-pill);display:inline-grid;place-items:center;font-size:var(--fs-xs);font-weight:var(--fw-sb);color:var(--c-gold-ink);background:var(--c-gold)}
.sideEnd{margin-top:auto;padding-top:var(--s-4);border-top:1px solid var(--c-line);display:grid;gap:var(--s-3)}
.kill{display:flex;align-items:center;justify-content:center;gap:var(--s-2);width:100%;min-height:42px;border-radius:var(--r-md);border:1px solid var(--c-bad-line);background:var(--c-bad-soft);color:var(--c-bad);font-size:var(--fs-sm);font-weight:var(--fw-sb);letter-spacing:.04em}
.kill:hover{background:var(--c-bad-hover)}
.kill.on{border-color:var(--c-bad);background:var(--c-bad-hover)}
.kill.on .icon{animation:pulse 2s var(--ease) infinite}
.ownerMini{display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-1)}
.ownerText{display:grid;line-height:1.3;font-size:var(--fs-sm);font-weight:var(--fw-m);min-width:0}
.ownerText small{font-size:var(--fs-xs);color:var(--c-faint);font-weight:var(--fw-r)}

.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:15;height:var(--top-h);display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-6);border-bottom:1px solid var(--c-line);background:var(--c-glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.topBrand{display:none}
.searchBtn{flex:1;max-width:520px;min-width:0;display:flex;align-items:center;gap:var(--s-3);height:40px;padding:0 var(--s-2) 0 var(--s-3);border:1px solid var(--c-line-2);border-radius:var(--r-md);background:var(--c-sunken);color:var(--c-faint);font-size:var(--fs-md);text-align:left}
.searchBtn:hover{border-color:var(--c-line-3);color:var(--c-muted)}
.searchText{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modeChip{display:inline-flex;align-items:center;gap:var(--s-2);height:36px;padding:0 var(--s-3);border-radius:var(--r-pill);border:1px solid var(--c-gold-line);background:var(--c-gold-soft);color:var(--c-gold-hi);font-size:var(--fs-sm);font-weight:var(--fw-m);white-space:nowrap}
.modeChip:hover{background:var(--c-gold-hover)}
.modeChip .icon{width:16px;height:16px}
.health{display:flex;align-items:center;gap:var(--s-2);margin-left:auto}
.hchip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--s-3) 0 10px;border-radius:var(--r-pill);border:1px solid var(--c-line);background:var(--c-tint);font-size:var(--fs-xs);white-space:nowrap}
.hname{font-weight:var(--fw-sb);color:var(--c-text-2)}
.hval{color:var(--c-muted)}
.hchip.ok .dot{background:var(--c-ok)} .hchip.ok .hval{color:var(--c-ok)}
.hchip.warn .dot{background:var(--c-warn)} .hchip.warn .hval{color:var(--c-warn)}
.hchip.bad .dot{background:var(--c-bad)} .hchip.bad .hval{color:var(--c-bad)}
.health.stacked{display:grid;grid-template-columns:1fr 1fr;margin:0}
.health.stacked .hchip{height:40px;border-radius:var(--r-md);justify-content:flex-start;font-size:var(--fs-sm)}
.health.stacked .hval{margin-left:auto}
.iconText .icon{width:16px;height:16px}

/* ---------- content ---------- */
.content{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--s-6) var(--s-6) var(--s-12)}
.content:focus{outline:none}
.page{display:flex;flex-direction:column;gap:var(--s-4);animation:fadeIn .22s var(--ease)}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.pageHead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;padding:var(--s-1) 0 var(--s-2)}
.pageTitle{min-width:0;flex:1 1 320px}
.pageHead h1{font-size:var(--fs-3xl);line-height:var(--lh-tight);letter-spacing:-.025em;font-weight:var(--fw-sb)}
.pageHead p{margin-top:var(--s-2);color:var(--c-muted);font-size:var(--fs-base);max-width:720px}
.actions{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}
.grid{display:grid;gap:var(--s-4)}
.grid.g2{grid-template-columns:repeat(2,minmax(0,1fr))}

.card{min-width:0;border:1px solid var(--c-line);border-radius:var(--r-xl);background:linear-gradient(180deg,var(--c-surface-2),var(--c-surface));padding:var(--s-5);box-shadow:var(--sh-1)}
.cardHead{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-3);min-height:32px}
.cardHead h3{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-base);font-weight:var(--fw-sb);letter-spacing:-.005em;min-width:0}
.cardHead h3 .icon{width:17px;height:17px;color:var(--c-gold)}
.cardTools{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;justify-content:flex-end}
.cardText{color:var(--c-muted);font-size:var(--fs-md);line-height:1.6}

.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2);min-height:120px;padding:var(--s-6);border:1px dashed var(--c-line-2);border-radius:var(--r-lg);text-align:center;color:var(--c-muted);font-size:var(--fs-md)}
.empty .icon{width:22px;height:22px;color:var(--c-faint)}
.empty p{max-width:440px}
.notice{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);border:1px solid var(--c-line-2);font-size:var(--fs-md);color:var(--c-text-2);margin-bottom:var(--s-3)}
.notice .icon{margin-top:2px}
.notice.warn{border-color:var(--c-warn-line);background:var(--c-warn-soft)} .notice.warn .icon{color:var(--c-warn)}
.notice.bad{border-color:var(--c-bad-line);background:var(--c-bad-soft)} .notice.bad .icon{color:var(--c-bad)}

/* hero */
.hero{position:relative;overflow:hidden;border:1px solid var(--c-line);border-radius:var(--r-2xl);padding:var(--s-8);
  background:radial-gradient(600px 300px at 100% 0%,var(--c-gold-ring),transparent 70%),linear-gradient(135deg,var(--c-surface-3),var(--c-surface) 70%);box-shadow:var(--sh-2)}
.hero::after{content:"";position:absolute;width:420px;height:420px;right:-120px;top:-150px;border-radius:50%;border:1px solid var(--c-gold-ring-2);box-shadow:0 0 0 60px var(--c-gold-halo);pointer-events:none}
.heroTop{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-5)}
.heroText{min-width:0}
.hero h1{font-size:var(--fs-4xl);line-height:1.08;letter-spacing:-.035em;font-weight:var(--fw-b);margin:var(--s-2) 0 var(--s-3)}
.heroLead{color:var(--c-text-2);font-size:var(--fs-base);max-width:720px}
.pulse{display:inline-flex;align-items:center;gap:var(--s-2);height:30px;padding:0 var(--s-3);border-radius:var(--r-pill);border:1px solid var(--c-ok-line);background:var(--c-ok-soft);color:var(--c-ok);font-size:var(--fs-xs);font-weight:var(--fw-m);white-space:nowrap}
.heroActions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-6)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4)}
.stat{min-width:0;border:1px solid var(--c-line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--c-surface-2),var(--c-surface));padding:var(--s-4) var(--s-5);box-shadow:var(--sh-1)}
.statTop{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
.statLabel{font-size:var(--fs-xs);font-weight:var(--fw-sb);text-transform:uppercase;letter-spacing:.08em;color:var(--c-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.statIcon{width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--c-surface-3);color:var(--c-gold)}
.statIcon .icon{width:16px;height:16px}
.statValue{font-size:var(--fs-3xl);line-height:1.15;font-weight:var(--fw-sb);letter-spacing:-.03em;margin-top:var(--s-2);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.statValue.sm{font-size:var(--fs-xl)}
.statValue.money{font-size:var(--fs-2xl)}
.statValue .of{font-size:var(--fs-base);color:var(--c-muted);font-weight:var(--fw-m);letter-spacing:0}
.statSub{margin-top:var(--s-1);font-size:var(--fs-sm);color:var(--c-muted);font-variant-numeric:tabular-nums}
.stat.ok .statValue{color:var(--c-ok)} .stat.bad .statValue{color:var(--c-bad)}
.stat.ok .statIcon{color:var(--c-ok);background:var(--c-ok-soft)} .stat.bad .statIcon{color:var(--c-bad);background:var(--c-bad-soft)}

/* lists */
.list > li,.feed > li{border-bottom:1px solid var(--c-line)}
.list > li:last-child,.feed > li:last-child{border-bottom:0}
.feedItem{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s-3);padding:var(--s-3) 0}
.feedIcon{width:34px;height:34px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--c-surface-3);color:var(--c-gold);border:1px solid var(--c-line)}
.feedIcon .icon{width:16px;height:16px}
.feedIcon.gold{background:var(--c-gold-soft);border-color:var(--c-gold-line)}
.feedIcon.warn{color:var(--c-warn);background:var(--c-warn-soft);border-color:var(--c-warn-line)}
.feedIcon.bad{color:var(--c-bad);background:var(--c-bad-soft)}
.feedMain{min-width:0;display:grid;gap:2px}
.feedMain b{font-weight:var(--fw-m);font-size:var(--fs-md);overflow-wrap:anywhere}
.feedMain small{font-size:var(--fs-sm);color:var(--c-muted);overflow-wrap:anywhere}
.feedMain small.clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feedTime{font-size:var(--fs-xs);color:var(--c-faint);white-space:nowrap;font-variant-numeric:tabular-nums}
.feedValue{font-weight:var(--fw-sb);font-size:var(--fs-md);white-space:nowrap;font-variant-numeric:tabular-nums}
.feedItem.approval .actions{justify-content:flex-end}

.taskLine{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s-3);padding:var(--s-3) 0}
.taskDot{width:20px;height:20px;display:grid;place-items:center}
.taskDot::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c-idle)}
.taskDot.gold::before{background:var(--c-gold)} .taskDot.bad::before{background:var(--c-bad)} .taskDot.warn::before{background:var(--c-warn)} .taskDot.info::before{background:var(--c-info)}
.taskDot.ok::before{display:none} .taskDot.ok{color:var(--c-ok)} .taskDot .icon{width:16px;height:16px;stroke-width:2.4}
.taskLine.done .taskTitle{color:var(--c-muted);text-decoration:line-through;text-decoration-color:var(--c-line-3)}
.taskTitle{font-weight:var(--fw-m);min-width:0;overflow-wrap:anywhere}
.taskTags{display:flex;gap:var(--s-1);flex-wrap:wrap;justify-content:flex-end}

.personLine{display:grid;grid-template-columns:minmax(0,1.3fr) auto minmax(0,auto) auto;align-items:center;gap:var(--s-4);padding:var(--s-3) 0}
.personLine.team{grid-template-columns:minmax(0,1fr) auto auto}
.person{display:flex;align-items:center;gap:var(--s-3);min-width:0}
.personText{display:grid;min-width:0}
.personText b{font-weight:var(--fw-m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.personText small{color:var(--c-muted);font-size:var(--fs-sm)}
.segment{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--c-line-2);border-radius:var(--r-md);background:var(--c-sunken)}
.segment button{min-height:32px;padding:0 var(--s-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--c-muted);font-size:var(--fs-xs);font-weight:var(--fw-sb);letter-spacing:.03em}
.segment button:hover{color:var(--c-text);background:var(--c-hover)}
.segment button.active{background:var(--c-gold-soft);color:var(--c-gold-hi);box-shadow:inset 0 0 0 1px var(--c-gold-line)}

.formGrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) auto;gap:var(--s-3);align-items:end}
.formGrid .field{margin:0}
.formGrid .btn{min-height:44px}

/* metrics */
.metricRow{padding:var(--s-3) 0}
.metricTitle{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);font-size:var(--fs-md)}
.metricTitle span{min-width:0;overflow-wrap:anywhere}
.metricTitle b{font-weight:var(--fw-sb);white-space:nowrap;font-variant-numeric:tabular-nums}
.metricTitle b.ok{color:var(--c-ok)} .metricTitle b.warn{color:var(--c-warn)} .metricTitle b.bad{color:var(--c-bad)}
.metricRow .statSub{margin-top:var(--s-2)}

/* table */
.tableWrap{overflow-x:auto;margin:0 calc(var(--s-5) * -1);padding:0 var(--s-5)}
.table{width:100%;border-collapse:collapse;font-size:var(--fs-md);font-variant-numeric:tabular-nums}
.table th,.table td{padding:var(--s-3) var(--s-2);text-align:left;border-bottom:1px solid var(--c-line);white-space:nowrap}
.table thead th{font-size:var(--fs-xs);font-weight:var(--fw-sb);color:var(--c-muted);text-transform:uppercase;letter-spacing:.06em;padding-top:0}
.table tbody th{font-weight:var(--fw-m)}
.table tr:last-child > *{border-bottom:0}
.table .num{text-align:right}
.table thead th:not(:first-child){text-align:right}
.table .strong{font-weight:var(--fw-sb);color:var(--c-gold-hi)}
.table th:first-child,.table td:first-child{padding-left:0}
.table th:last-child,.table td:last-child{padding-right:0}

/* integrations */
.integrations{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-3)}
.integrations.compact{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s-2)}
.integration{min-width:0;border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface);padding:var(--s-4)}
.integrations.compact .integration{padding:var(--s-3)}
.integrationTop{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
.integration h4{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-md);font-weight:var(--fw-sb);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.integration p{margin-top:var(--s-2);color:var(--c-muted);font-size:var(--fs-sm);line-height:1.45}
.integrations.compact .tag{display:none}

/* console */
.console{min-height:200px;max-height:320px;overflow:auto;padding:var(--s-3) var(--s-4);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-sunken);font:var(--fs-sm)/1.6 var(--mono);color:var(--c-text-2)}
.console.report{max-height:none;min-height:160px;white-space:pre-wrap;margin:0;font-size:var(--fs-md)}
.consoleLine{padding:var(--s-1) 0;border-bottom:1px dashed var(--c-line);white-space:pre-wrap;overflow-wrap:anywhere}
.consoleLine:last-child{border-bottom:0}
.consoleLine.me{color:var(--c-gold-hi)} .consoleLine.me::before{content:"› ";color:var(--c-gold)}
.consoleLine.ok{color:var(--c-ok)} .consoleLine.err{color:var(--c-bad)}
.composer{display:flex;gap:var(--s-2);margin-top:var(--s-3)}
.composer input{flex:1;min-width:0}

/* ---------- palette ---------- */
.paletteOverlay{position:fixed;inset:0;z-index:60;display:none;align-items:flex-start;justify-content:center;padding:12vh var(--s-4) var(--s-4);background:var(--c-overlay);backdrop-filter:blur(4px)}
.paletteOverlay.open{display:flex}
.palette{width:min(640px,100%);max-height:72vh;display:flex;flex-direction:column;border-radius:var(--r-xl);background:var(--c-surface-2);box-shadow:var(--sh-pop);overflow:hidden;animation:pop .16s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:none}}
.paletteSearch{display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-4);border-bottom:1px solid var(--c-line)}
.paletteSearch > .icon{color:var(--c-muted)}
.paletteSearch input{flex:1;min-width:0;height:56px;border:0;background:transparent;color:var(--c-text);font-size:var(--fs-lg);outline:none}
.paletteSearch input::placeholder{color:var(--c-faint)}
.paletteList{overflow-y:auto;padding:var(--s-2)}
.paletteGroup{padding:var(--s-3) var(--s-3) var(--s-1);font-size:var(--fs-xs);font-weight:var(--fw-sb);text-transform:uppercase;letter-spacing:.1em;color:var(--c-faint)}
.paletteItem{display:flex;align-items:center;gap:var(--s-3);min-height:42px;padding:0 var(--s-3);border-radius:var(--r-md);color:var(--c-text-2);font-size:var(--fs-md);cursor:pointer}
.paletteItem span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.paletteItem .icon{width:17px;height:17px;color:var(--c-muted)}
.paletteItem.active{background:var(--c-gold-soft);color:var(--c-text);box-shadow:inset 0 0 0 1px var(--c-gold-line)}
.paletteItem.active .icon{color:var(--c-gold)}
.paletteEmpty{padding:var(--s-6);text-align:center;color:var(--c-muted)}
.paletteFoot{display:flex;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-top:1px solid var(--c-line);font-size:var(--fs-xs);color:var(--c-faint)}
.paletteFoot span{display:inline-flex;align-items:center;gap:4px}

/* ---------- toasts ---------- */
.toastStack{position:fixed;right:var(--s-5);bottom:var(--s-5);z-index:80;display:grid;gap:var(--s-2);pointer-events:none}
.toast{display:flex;align-items:center;gap:var(--s-3);min-width:260px;max-width:420px;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--c-surface-3);border:1px solid var(--c-line-2);box-shadow:var(--sh-pop);font-size:var(--fs-md);animation:pop .18s var(--ease)}
.toast .icon{color:var(--c-ok)}
.toast.err{border-color:var(--c-bad-line)} .toast.err .icon{color:var(--c-bad)}

/* ---------- mobile nav + sheet ---------- */
.mobileNav{display:none}
.sheet{position:fixed;inset:0;z-index:70;display:flex;align-items:flex-end}
.sheetBackdrop{position:absolute;inset:0;background:var(--c-overlay);animation:fade .18s var(--ease)}
@keyframes fade{from{opacity:0}}
.sheetPanel{position:relative;width:100%;max-height:88vh;overflow-y:auto;border-radius:var(--r-2xl) var(--r-2xl) 0 0;border-top:1px solid var(--c-line-2);background:var(--c-surface-2);
  padding:var(--s-2) var(--s-4) calc(var(--s-5) + env(safe-area-inset-bottom));box-shadow:var(--sh-pop);animation:sheetUp .24s var(--ease)}
@keyframes sheetUp{from{transform:translateY(40px);opacity:.4}}
.sheetHandle{width:40px;height:4px;border-radius:var(--r-pill);background:var(--c-line-3);margin:0 auto var(--s-2)}
.sheetHead{display:flex;align-items:center;justify-content:space-between;padding:var(--s-1) 0 var(--s-3)}
.sheetHead h2{font-size:var(--fs-lg);font-weight:var(--fw-sb)}
.sheetGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}
.sheetItem{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2);min-height:84px;padding:var(--s-3) var(--s-1);border-radius:var(--r-lg);border:1px solid var(--c-line);background:var(--c-surface);color:var(--c-text-2);font-size:var(--fs-xs);font-weight:var(--fw-m);text-align:center;line-height:1.25}
.sheetItem .icon{width:22px;height:22px;color:var(--c-gold)}
.sheetItem.active{border-color:var(--c-gold-line);background:var(--c-gold-soft);color:var(--c-gold-hi)}
.sheetItem .navCount{position:absolute;top:8px;right:8px;margin:0}
.sheetLabel{margin:var(--s-5) 0 var(--s-2);font-size:var(--fs-xs);font-weight:var(--fw-sb);text-transform:uppercase;letter-spacing:.1em;color:var(--c-faint)}
.sheetActions{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);margin-top:var(--s-5)}
.sheetActions .btn{min-height:44px;font-size:var(--fs-sm);padding:0 var(--s-2)}
.dotBadge{position:absolute;top:6px;right:calc(50% - 16px);width:8px;height:8px;border-radius:50%;background:var(--c-gold);box-shadow:0 0 0 2px var(--c-bg)}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  #healthTop .hval{display:none}
}
@media (max-width:1100px){
  :root{--sidebar-w:76px}
  .brandText,.navLabel,.ownerText,.killText{display:none}
  .navText{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .brand{justify-content:center;padding:var(--s-1) 0 var(--s-4)}
  .navItem{justify-content:center;padding:0;min-height:44px}
  .navItem .navCount{position:absolute;top:2px;right:6px;min-width:18px;height:18px;font-size:11px;padding:0 4px}
  .sideNav{gap:4px}
  .navLabel+.navItem{margin-top:var(--s-2)}
  .ownerMini{justify-content:center}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .formGrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .formGrid .field:first-child{grid-column:1/-1}
  .personLine{grid-template-columns:minmax(0,1fr) auto;row-gap:var(--s-2)}
  .personLine .segment{grid-column:1/2}
}
@media (max-width:900px){
  .grid.g2{grid-template-columns:minmax(0,1fr)}
  .authShell{grid-template-columns:1fr}
  .authScene{display:none}
  .authPanel{border-left:0;min-height:100vh;min-height:100dvh;background:transparent}
}
@media (max-width:720px){
  :root{--top-h:56px}
  .shell{display:block}
  .sidebar{display:none}
  .top{padding:0 var(--s-3);gap:var(--s-2)}
  .topBrand{display:block}
  .searchBtn{height:40px}
  .searchBtn .kbd{display:none}
  #healthTop{display:none}
  .modeChip{padding:0 var(--s-3);max-width:140px}
  .modeChip span{overflow:hidden;text-overflow:ellipsis}
  #logoutBtn,#themeToggle{display:none}
  .content{padding:var(--s-4) var(--s-3) calc(96px + env(safe-area-inset-bottom))}
  .page{gap:var(--s-3)}
  .pageHead{align-items:flex-start;padding-top:0}
  .pageHead h1{font-size:var(--fs-2xl)}
  .pageHead p{font-size:var(--fs-md)}
  .pageHead .actions{width:100%}
  .hero{padding:var(--s-5);border-radius:var(--r-xl)}
  .hero h1{font-size:28px}
  .heroLead{font-size:var(--fs-md)}
  .heroTop{flex-direction:column;gap:var(--s-3)}
  .heroActions{display:grid;grid-template-columns:1fr 1fr;margin-top:var(--s-5)}
  .heroActions .btn{padding:0 var(--s-2)}
  .stats{gap:var(--s-3)}
  .stat{padding:var(--s-3) var(--s-4)}
  .statValue{font-size:var(--fs-2xl)}
  .statValue.money{font-size:var(--fs-xl)}
  .statValue .of{display:block;font-size:var(--fs-sm)}
  .statIcon{width:26px;height:26px}
  .statTop{align-items:flex-start}
  .statLabel{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;overflow-wrap:normal;word-break:normal;hyphens:auto;-webkit-hyphens:auto;letter-spacing:.03em}
  .stat.metric .statTop{flex-direction:column;align-items:flex-start;gap:6px}
  .card{padding:var(--s-4);border-radius:var(--r-lg)}
  .tableWrap{margin:0 calc(var(--s-4) * -1);padding:0 var(--s-4)}
  .formGrid{grid-template-columns:minmax(0,1fr)}
  .formGrid .btn{width:100%}
  .personLine{grid-template-columns:minmax(0,1fr) auto}
  .personLine .segment{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr)}
  .personLine > .btn{display:none}
  .personLine.team > .btn{display:inline-flex;grid-column:1/-1}
  .personLine.team{grid-template-columns:minmax(0,1fr) auto}
  .feedItem.approval{grid-template-columns:auto minmax(0,1fr)}
  .feedItem.approval .actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}
  .taskLine{grid-template-columns:auto minmax(0,1fr);row-gap:var(--s-2)}
  .taskTags{grid-column:2/3;justify-content:flex-start}
  .integrations,.integrations.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .composer .btn span{display:none}
  .toastStack{left:var(--s-3);right:var(--s-3);bottom:calc(84px + env(safe-area-inset-bottom))}
  .toast{min-width:0;max-width:none}
  .mobileNav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:40;padding:6px var(--s-1) max(6px,env(safe-area-inset-bottom));
    background:var(--c-glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--c-line)}
  .mobileNav.hidden{display:none}
  .mobileNav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border:0;border-radius:var(--r-md);background:transparent;color:var(--c-muted);font-size:var(--fs-xs);font-weight:var(--fw-m)}
  .mobileNav button .icon{width:22px;height:22px}
  .mobileNav button.active{color:var(--c-gold-hi)}
  .mobileNav button.active .icon{color:var(--c-gold)}
  .paletteOverlay{padding-top:var(--s-4)}
  .palette{max-height:80vh}
  .paletteFoot{display:none}
}
@media (max-width:420px){
  .integrations,.integrations.compact{grid-template-columns:minmax(0,1fr)}
  .integrations.compact .tag{display:inline-flex}
  .salary thead{display:none}
  .salary,.salary tbody,.salary tr,.salary th,.salary td{display:block}
  .salary tr{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-1) var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--c-line)}
  .salary tr:last-child{border-bottom:0}
  .salary tbody th{grid-column:1/-1;padding:0;border:0;font-size:var(--fs-md)}
  .salary td{padding:0;border:0;text-align:left;font-size:var(--fs-sm);color:var(--c-text-2)}
  .table.salary .num{text-align:left}
  .salary td::before{content:attr(data-label);display:block;font-size:var(--fs-xs);font-weight:var(--fw-r);color:var(--c-faint)}
  .sheetGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .modeChip{max-width:120px}
}
@media (max-width:370px){
  .stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .statValue{font-size:var(--fs-xl)}
  .heroActions{grid-template-columns:1fr}
  .modeChip .icon{display:none}
}

/* ---------- 404 (served by Caddy handle_errors) ---------- */
.nf{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:var(--s-6)}
.nfCard{width:min(460px,100%);text-align:center;border:1px solid var(--c-line);border-radius:var(--r-2xl);background:linear-gradient(180deg,var(--c-surface-2),var(--c-surface));padding:var(--s-10) var(--s-8);box-shadow:var(--sh-2)}
.nfCard .brandMark{margin:0 auto var(--s-6)}
.nfCode{font-size:72px;line-height:1;font-weight:var(--fw-b);letter-spacing:-.04em;color:var(--c-gold);font-variant-numeric:tabular-nums}
.nfCard h1{font-size:var(--fs-xl);font-weight:var(--fw-sb);margin:var(--s-4) 0 var(--s-2)}
.nfCard p{color:var(--c-muted)}
.nfCard .btn{margin-top:var(--s-6);text-decoration:none}

/* ---- MegaFon connection / 2FA forms ---- */
.formGrid.two{grid-template-columns:minmax(0,1fr) auto}
.formGrid.three{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
.card > .formGrid,.card > .notice,.card > .cardText{margin-bottom:var(--s-3)}
.formActions{margin-top:var(--s-3)}
.codeList{list-style:none;margin:var(--s-3) 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}
.codeList li{padding:var(--s-2) var(--s-3);border:1px solid var(--c-line-2);border-radius:var(--r-sm);background:var(--c-surface-2);text-align:center}
.codeList code,code.secret{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-md);letter-spacing:.04em;color:var(--c-text)}
code.secret{display:inline-block;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--c-surface-2);border:1px solid var(--c-line-2);word-break:normal;overflow-wrap:break-word;user-select:all}
.tfaSetup{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-5);align-items:start}
.tfaSteps p{margin:0 0 var(--s-3)}
.tfaSteps .formGrid{margin-bottom:var(--s-2)}
.qr{width:184px;height:184px;padding:8px;border-radius:var(--r-md);background:var(--c-qr-bg)}
.qr svg{display:block;width:100%;height:100%}
@media (max-width:720px){
  .tfaSetup{grid-template-columns:minmax(0,1fr)}
  .qr{justify-self:center}
  .formGrid.two,.formGrid.three{grid-template-columns:minmax(0,1fr)}
  .formGrid.two .btn,.formGrid.three .btn{width:100%}
}

/* ---------- Зарплата и продажи ---------- */
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nd{color:var(--c-faint);font-weight:var(--fw-m);font-size:.82em;letter-spacing:0}
.salHint{color:var(--c-faint);font-size:var(--fs-xs);font-weight:var(--fw-r)}
.salSmall{font-size:var(--fs-sm);line-height:1.55;margin-bottom:var(--s-3)}

.salStat.nd .statValue{color:var(--c-faint)}
.salStat .statSub{overflow-wrap:anywhere}
.salCol{display:grid;gap:var(--s-4);min-width:0;align-content:start}
.salParts{margin-bottom:var(--s-3)}
.salParts .feedValue{text-align:right}
.salTotals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2);padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-sunken);margin-bottom:var(--s-3)}
.salTotals div{display:grid;gap:2px;min-width:0}
.salTotals span{font-size:var(--fs-xs);color:var(--c-muted)}
.salTotals b{font-size:var(--fs-md);font-weight:var(--fw-sb);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.salTotals .net b{color:var(--c-gold-hi);font-size:var(--fs-lg)}
.salMissing ul{margin:var(--s-1) 0 0;padding-left:var(--s-4);list-style:disc;font-size:var(--fs-sm);color:var(--c-text-2)}
.salMissing li{margin:2px 0;overflow-wrap:anywhere}
.salWeeks{margin-bottom:var(--s-3)}
.salWeeks th .tag{height:20px;font-size:11px}
.salGoalBar{height:10px;margin:var(--s-1) 0 var(--s-4)}
.salGoalBar::-webkit-meter-bar{height:10px}
.salGoalNums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);margin-bottom:var(--s-3)}
.salGoalNums div{display:grid;gap:2px;padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-sunken);min-width:0}
.salGoalNums span{font-size:var(--fs-xs);color:var(--c-muted)}
.salGoalNums b{font-size:var(--fs-xl);font-weight:var(--fw-sb);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.salGoalNums b.gold{color:var(--c-gold-hi)}
.salGoalNums small{font-size:var(--fs-xs);color:var(--c-faint)}
.salSub{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-md);font-weight:var(--fw-sb);margin:var(--s-4) 0 var(--s-1)}
.salSub .icon{width:16px;height:16px;color:var(--c-gold)}
.salFast{list-style:none;margin:0 0 var(--s-3);padding:0}
.salFast li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--c-line)}
.salFast li:last-child{border-bottom:0}
.salRank{width:26px;height:26px;border-radius:var(--r-pill);display:grid;place-items:center;font-size:var(--fs-xs);font-weight:var(--fw-sb);background:var(--c-surface-3);color:var(--c-muted)}
.salFast li.hi .salRank{background:var(--c-gold-soft);color:var(--c-gold-hi);border:1px solid var(--c-gold-line)}
.salFastNum{display:grid;justify-items:end;gap:2px;text-align:right}
.salFastNum b{font-variant-numeric:tabular-nums;white-space:nowrap}
.salFast li.hi .salFastNum b{color:var(--c-gold-hi)}
.salFastNum small{font-size:var(--fs-xs);color:var(--c-muted);white-space:nowrap}
.salDays > li{padding:var(--s-3) 0}
.salDayHead{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap}
.salDayHead > b{font-variant-numeric:tabular-nums}
.salDayTotals{display:flex;gap:var(--s-1);flex-wrap:wrap}
.salChips{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-2) 0 0;padding:0}
.salChips li{display:inline-flex;align-items:center;gap:var(--s-2);min-height:32px;padding:0 var(--s-1) 0 var(--s-3);border-radius:var(--r-pill);border:1px solid var(--c-line-2);background:var(--c-surface-3);font-size:var(--fs-sm);max-width:100%}
.salChips li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.salChips li b{font-variant-numeric:tabular-nums;white-space:nowrap}
.salChips li.hi{border-color:var(--c-gold-line);background:var(--c-gold-soft);color:var(--c-gold-hi)}
.salChips li .icon{width:14px;height:14px;flex:none}
.salDel{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--c-muted);flex:none}
.salDel:hover{background:var(--c-surface-2);color:var(--c-bad)}
.salDel:focus-visible{box-shadow:var(--sh-focus);outline:none}
.salDel .icon{width:14px;height:14px}
.salMfr{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);margin-top:var(--s-2);font-size:var(--fs-sm);color:var(--c-text-2)}
.salMfr b{color:var(--c-info);font-variant-numeric:tabular-nums}
.salWeekSel{max-width:420px}
.salPairs{display:grid;gap:var(--s-2);margin-bottom:var(--s-3)}
.salPair{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s-3);align-items:end;padding-bottom:var(--s-2);border-bottom:1px solid var(--c-line)}
.salPair .field{margin:0}
.salPairName{font-size:var(--fs-md);font-weight:var(--fw-m);align-self:center;overflow-wrap:anywhere}
.salSrc{display:block;margin-top:2px;font-weight:var(--fw-r)}
.salAuto{margin-left:var(--s-1);padding:0 6px;font-size:var(--fs-xs);vertical-align:middle}
.salAutoNote{display:flex;gap:var(--s-2);align-items:flex-start}
.salAutoNote .icon{flex:none;margin-top:3px;color:var(--c-info)}
.salPair input::placeholder{color:var(--c-faint);font-style:italic}
.salWeekExtra{grid-template-columns:repeat(3,minmax(0,1fr))}
.formActions .salHint{align-self:center}
.salSaleGrid{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,.7fr) minmax(0,1.2fr) auto}
.salHoursGrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto}
.salQGrid{grid-template-columns:repeat(3,minmax(0,1fr)) auto}
.salSetGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
.salSetGrid .btn{align-self:end}
.card > .salHoursGrid + .salHoursGrid{margin-top:var(--s-1)}
.salRates th{white-space:normal;min-width:180px}
.salRates .salCond{display:block;font-size:var(--fs-xs);color:var(--c-faint);font-weight:var(--fw-r);margin-top:2px}
.salRates td.salSrc{color:var(--c-faint);font-size:var(--fs-xs);white-space:normal}
.salRateIn{width:96px;min-height:36px;border:1px solid var(--c-line-2);border-radius:var(--r-sm);background:var(--c-sunken);color:var(--c-text);padding:0 var(--s-2);text-align:right;font:inherit;font-variant-numeric:tabular-nums}
.salRateIn:focus{border-color:var(--c-gold-line);box-shadow:0 0 0 3px var(--c-gold-soft);outline:none}
.salRateIn::placeholder{color:var(--c-faint);font-size:var(--fs-xs)}
@media (max-width:1100px){
  .salSaleGrid,.salHoursGrid,.salQGrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .salSaleGrid .field:first-child,.salHoursGrid .field:first-child{grid-column:auto}
}
@media (max-width:720px){
  .salTotals{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .salTotals .net{grid-column:1/-1}
  .salGoalNums,.salWeekExtra,.salSetGrid{grid-template-columns:minmax(0,1fr)}
  .salSaleGrid,.salHoursGrid,.salQGrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .salSaleGrid .btn,.salHoursGrid .btn,.salQGrid .btn{grid-column:1/-1}
  .salPair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .salPairName{grid-column:1/-1}
}
@media (max-width:420px){
  .salSaleGrid .field:nth-child(2),.salSaleGrid .field:nth-child(4){grid-column:1/-1}
  .salRates th{min-width:0}
  .salRates tr{grid-template-columns:minmax(0,1fr) auto}
  .salRates td.salSrc{grid-column:1/-1}
  .salRateIn{width:100%}
  .salFastNum small{white-space:normal}
}

/* ---------- Мои показатели: ручное обновление ---------- */
.notice.ok{border-color:var(--c-ok-line);background:var(--c-ok-soft)} .notice.ok .icon{color:var(--c-ok)}
.syncNote{margin:0}
p.syncNote{font-size:var(--fs-sm)}

/* ---------- Отчёт на итог ---------- */
.eodDate{margin:0;min-width:160px}
.eodDate label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.eodDate input{min-height:40px}
.eodNote{font-size:var(--fs-sm);margin-bottom:var(--s-3)}
.eodRows{display:grid;gap:0}
.eodRow{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s-3);align-items:start;padding:var(--s-3) 0;border-bottom:1px solid var(--c-line)}
.eodRow:last-child{border-bottom:0}
.eodRow.one{grid-template-columns:minmax(0,1.3fr) minmax(0,2fr)}
.eodRow .field{margin:0;gap:4px}
.eodRow .field input{min-height:40px;font-variant-numeric:tabular-nums}
.eodRow .field input[aria-invalid="true"]{border-color:var(--c-bad-line);box-shadow:0 0 0 3px var(--c-bad-soft)}
.eodLabel{font-size:var(--fs-md);font-weight:var(--fw-m);padding-top:22px;overflow-wrap:anywhere}
.eodSrc{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--c-faint);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eodSrc .icon{width:12px;height:12px;flex:none}
.eodSrc.auto{color:var(--c-info)} .eodSrc.plan{color:var(--c-gold-hi)}
.eodText{white-space:pre-wrap;overflow-wrap:anywhere;min-height:0;margin:0}
.eodHist > li{padding:var(--s-2) 0}
.eodHist summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);cursor:pointer;min-height:40px;font-size:var(--fs-md)}
.eodHist summary:focus-visible{box-shadow:var(--sh-focus);outline:none;border-radius:var(--r-sm)}
.eodHist details pre{margin-top:var(--s-2)}
@media (max-width:720px){
  .eodRow,.eodRow.one{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .eodLabel{grid-column:1/-1;padding-top:0}
  .eodRow.one .field{grid-column:1/-1}
  .eodDate{min-width:0;flex:1 1 140px}
}

/* ---------- v2: группы источника, сворачиваемые блоки, привязка отчёта ---------- */
.planTabs button{min-height:30px}
.planList{display:grid}
.planRow{padding:var(--s-3) var(--s-2);margin:0 calc(var(--s-2) * -1);border-bottom:1px solid var(--c-line);border-radius:var(--r-sm)}
.planRow:last-child{border-bottom:0}
.planRow.hot{background:var(--c-gold-wash);box-shadow:inset 3px 0 0 var(--c-gold-line)}
.planName{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}
.planName .tag .icon{width:12px;height:12px}
.planNums{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin:var(--s-1) 0 var(--s-2);font-size:var(--fs-sm);color:var(--c-muted);font-variant-numeric:tabular-nums}
.planNums b{color:var(--c-text);font-weight:var(--fw-sb)}
.planNums .tag{margin-left:var(--s-1)}
.planNote{display:block;margin-top:var(--s-1);font-size:var(--fs-xs);color:var(--c-faint)}
.fold{margin-top:var(--s-4);border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface)}
.card .fold{background:var(--c-sunken);border-radius:var(--r-md)}
.fold > summary{display:flex;align-items:center;gap:var(--s-2);min-height:48px;padding:0 var(--s-4);cursor:pointer;list-style:none;font-weight:var(--fw-sb);font-size:var(--fs-md)}
.fold > summary::-webkit-details-marker{display:none}
.fold > summary .icon{width:16px;height:16px;flex:none;color:var(--c-muted)}
.fold > summary > .icon:first-child{transition:transform var(--t) var(--ease)}
.fold[open] > summary > .icon:first-child{transform:rotate(90deg)}
.fold > summary .salHint{margin-left:auto;font-weight:var(--fw-r);text-align:right}
.fold > summary:focus-visible{box-shadow:var(--sh-focus);outline:none;border-radius:var(--r-md)}
.fold > .foldBody{padding:0 var(--s-4) var(--s-4)}
.fold > .cardText,.fold > .eodRows{padding:0 var(--s-4) var(--s-3)}
.salGoalNums.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.salSrcTable td small{white-space:nowrap}
.eodSrc.calc{color:var(--c-warn)}
.mapList{display:grid}
.mapRow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) auto;gap:var(--s-3);align-items:center;padding:var(--s-3) 0;border-bottom:1px solid var(--c-line)}
.mapRow:last-child{border-bottom:0}
.mapRow .field{margin:0}
.mapLabel{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2);min-width:0}
.mapLabel small{flex-basis:100%;font-size:var(--fs-xs);color:var(--c-faint)}
@media (max-width:720px){
  .salGoalNums.three{grid-template-columns:minmax(0,1fr)}
  .mapRow{grid-template-columns:minmax(0,1fr) auto}
  .mapLabel{grid-column:1/-1}
  .fold > summary .salHint{display:none}
}

/* v2.1: «Продажи на дату» (день), качество, рейтинг */
.dayHead{display:flex;justify-content:space-between;padding:var(--s-2) var(--s-3);margin:var(--s-2) 0 0;border-radius:var(--r-sm);background:var(--c-surface-2);font-size:var(--fs-xs);font-weight:var(--fw-sb);color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em}
.dayRow{padding:var(--s-3) var(--s-2);margin:0 calc(var(--s-2) * -1);border-bottom:1px solid var(--c-line);border-radius:var(--r-sm)}
.dayRow:last-child{border-bottom:0}
.dayRow.hot{background:var(--c-gold-wash);box-shadow:inset 3px 0 0 var(--c-gold-line)}
.dayTop{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:var(--s-3)}
.dayTop .planName{min-width:0;overflow-wrap:anywhere}
.dayDyn{display:flex;gap:var(--s-3);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}
.dyn.up{color:var(--c-ok)}
.dyn.down{color:var(--c-bad)}
.dyn.zero{color:var(--c-faint)}
.dayPct{min-width:3.5em;text-align:right;font-variant-numeric:tabular-nums}
.dayPct.ok{color:var(--c-ok)}.dayPct.warn{color:var(--c-gold-hi)}.dayPct.bad{color:var(--c-bad)}
.dayNums{display:flex;justify-content:space-between;margin-top:var(--s-1);font-variant-numeric:tabular-nums}
.dayNums b{color:var(--c-gold-hi);font-weight:var(--fw-sb)}
.dayNums span{color:var(--c-faint)}
.qualGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--s-3);margin-bottom:var(--s-3)}
.qualItem{display:grid;gap:2px;padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}
.qualItem span{font-size:var(--fs-sm);color:var(--c-muted)}
.qualItem b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
.qualItem b.ok{color:var(--c-ok)}.qualItem b.warn{color:var(--c-gold-hi)}.qualItem b.bad{color:var(--c-bad)}
.qualItem small{font-size:var(--fs-xs);color:var(--c-faint)}
@media (max-width:560px){
  .dayTop{grid-template-columns:minmax(0,1fr) auto;row-gap:var(--s-1)}
  .dayDyn{grid-column:1/-1;grid-row:2}
}

/* v2.1: «Моё вознаграждение» */
.rewTotal{display:grid;gap:2px;padding:var(--s-4);margin-bottom:var(--s-3);border:1px solid var(--c-gold-line);border-radius:var(--r-md);background:var(--c-gold-wash)}
.rewTotal span{font-size:var(--fs-sm);color:var(--c-muted)}
.rewTotal b{font-size:var(--fs-2xl);color:var(--c-gold-hi);font-variant-numeric:tabular-nums}
.rewTotal small{font-size:var(--fs-xs);color:var(--c-faint)}
.rewBlock{display:block;padding:var(--s-3);margin-bottom:var(--s-2);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}
.rewBlock>summary{list-style:none;cursor:pointer}
.rewBlock>summary::-webkit-details-marker{display:none}
.rewTop{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3)}
.rewTop>div{display:grid;gap:2px;min-width:0}
.rewTop small{font-size:var(--fs-xs);color:var(--c-muted)}
.rewSum{font-size:var(--fs-lg);color:var(--c-ok);font-variant-numeric:tabular-nums;white-space:nowrap}
.rewMore{font-size:var(--fs-sm);color:var(--c-gold-hi);white-space:nowrap}
details.rewBlock[open]>summary .rewTop{margin-bottom:var(--s-3)}
.rewInfo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-2);margin-bottom:var(--s-3)}
.rewInfo div{display:grid;gap:2px}
.rewInfo span{font-size:var(--fs-xs);color:var(--c-muted)}
.rewInfo b{font-variant-numeric:tabular-nums}
.salWeekBox{margin-top:var(--s-3)}
.salSum th,.salSum td{border-top:1px solid var(--c-line-strong, var(--c-line))}
td.gold{color:var(--c-gold-hi)}
.salItems th small{display:block;font-weight:400}
@media (max-width:560px){.rewInfo{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rewBlock>summary{display:block;width:100%}
.rewBlock .tableWrap{margin:0;padding:0}
.rewBlock .table{font-size:var(--fs-sm)}
.rewBlock .table th,.rewBlock .table td{padding:var(--s-2) var(--s-1)}
.rewBlock .table tbody th{white-space:normal}
.rewBlock .table thead th{white-space:normal}
.card .rewBlock.fold{margin-top:0;margin-bottom:var(--s-2);background:var(--c-surface-2);border-radius:var(--r-md)}
.rewBlock.fold>summary{display:block;min-height:0;padding:0}
.rewBlock.fold>.foldBody{padding:0}
.rewBlock.fold>summary .rewTop>div>b::after{content:" ›";color:var(--c-muted)}
.rewBlock.fold[open]>summary .rewTop>div>b::after{content:" ⌄"}
.tagRow{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 var(--s-3)}
.aiStats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:var(--s-3)}
.aiRec .feedValue small{display:block;font-weight:400;color:var(--c-muted);font-size:var(--fs-xs);text-align:right}
.aiRec .feedValue{text-align:right}
@media (max-width:720px){
  .aiStats{grid-template-columns:minmax(0,1fr)}
  .aiRec .feedItem{grid-template-columns:auto minmax(0,1fr)}
  .aiRec .feedValue{grid-column:2;text-align:left;white-space:normal}
  .aiRec .feedValue small{display:inline;text-align:left}
}

/* «Брифинг» на «Сегодня» */
.briefCard{margin-bottom:var(--s-4)}
.briefText{font-size:var(--fs-md);line-height:1.6;margin:0 0 var(--s-3);color:var(--c-text)}
.briefActions li{grid-template-columns:auto minmax(0,1fr)}
.briefActions .feedMain small{display:block;margin-top:2px}
.briefMeta{list-style:none;margin:var(--s-2) 0 0;padding:var(--s-3) 0 0;border-top:1px solid var(--c-line);display:grid;gap:6px}
.briefMeta li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-2);align-items:start;font-size:var(--fs-sm);color:var(--c-muted);line-height:1.5}
.briefMeta li svg{width:15px;height:15px;margin-top:2px}
.briefMeta li.ok svg{color:var(--c-ok)}
.briefMeta li.warn svg{color:var(--c-warn)}
@media (max-width:720px){
  .briefCard .cardHead{flex-wrap:wrap;gap:var(--s-2)}
  .briefCard .cardTools{flex-wrap:wrap;justify-content:flex-start}
}

/* «График смен» в «Зарплате» */
.shiftList{list-style:none;margin:0 0 var(--s-3);padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}
.shiftList li{display:grid;gap:1px;padding:6px 8px;border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface-2);font-size:var(--fs-sm)}
.shiftList li b{font-weight:var(--fw-sb)}
.shiftList li span{font-variant-numeric:tabular-nums;color:var(--c-text-2)}
.shiftList li small{color:var(--c-muted);font-size:var(--fs-xs)}
.shiftList li.past{opacity:.55}
.shiftList li.now{border-color:var(--c-gold-line);background:var(--c-gold-soft)}
.salShiftGrid{grid-template-columns:minmax(150px,1.5fr) repeat(3,minmax(96px,1fr));align-items:end}
.salShiftGrid .btn{grid-column:span 2;white-space:nowrap;justify-content:center}
@media (max-width:560px){.salShiftGrid{grid-template-columns:1fr 1fr}.salShiftGrid .btn{grid-column:span 1}}

/* ---------- v6: «Рубль за смену», «Долги», коэффициенты, наставник ---------- */
.dbShift{border-color:var(--c-gold-line)}
.moneyBig{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-2);margin:var(--s-2) 0 0}
.moneyBig .mbNow{font-size:var(--fs-4xl);font-weight:var(--fw-b);line-height:var(--lh-tight);color:var(--c-gold-hi);font-variant-numeric:tabular-nums}
.moneyBig .mbOf{font-size:var(--fs-lg);color:var(--c-text-2)}
.moneyBig.off .mbOf{font-size:var(--fs-xl);color:var(--c-text)}
meter.dbMeter.big{height:12px}
meter.dbMeter.big::-webkit-meter-bar{height:12px}
meter.dbMeter.thin{height:4px;margin-top:var(--s-1)}
meter.dbMeter.thin::-webkit-meter-bar{height:4px}
.mbScale{display:flex;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-xs);color:var(--c-faint);margin-top:var(--s-1)}
.mbParts{margin:var(--s-3) 0 0;font-size:var(--fs-sm);color:var(--c-text-2);line-height:1.5}
.mbPend{color:var(--c-warn)}
.mbSell,.mbDebt,.mbWeek,.mbCoef,.coefGate{display:block;margin:var(--s-3) 0 0;padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2);font-size:var(--fs-sm);line-height:1.5}
.mbSell .icon,.mbDebt .icon,.mbWeek .icon,.mbCoef .icon,.coefGate .icon{vertical-align:-3px;margin-right:6px}
.mbSell{border-color:var(--c-gold-line);background:var(--c-gold-soft)}
.mbSell.ok,.mbWeek.ok,.coefGate.ok{border-color:var(--c-ok-line);background:var(--c-ok-soft)}
.mbWeek.bad,.coefGate.bad{border-color:var(--c-bad-line);background:var(--c-bad-soft)}
.mbSell small,.mbDebt small,.mbWeek small,.mbCoef small{color:var(--c-muted)}
.streak{margin-top:var(--s-4)}
.streakHead{font-size:var(--fs-sm);margin-bottom:var(--s-2)}
.streakGrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:6px}
.sg{display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:var(--r-sm);border:1px solid var(--c-line-2);background:var(--c-sunken);font-size:var(--fs-xs);color:var(--c-faint);font-variant-numeric:tabular-nums}
.sg.hit{background:linear-gradient(135deg,var(--c-gold-lo),var(--c-gold-hi));border-color:var(--c-gold);color:var(--c-gold-ink);font-weight:var(--fw-b)}
.sg.miss{background:var(--c-bad-soft);border-color:var(--c-bad-line);color:var(--c-bad)}
.sg.unknown{border-style:dashed}
.sg.today{border:2px solid var(--c-gold-hi);color:var(--c-text);font-weight:var(--fw-sb)}
.streakLegend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:var(--s-2);font-size:var(--fs-xs);color:var(--c-muted)}
.streakLegend .sg{width:14px;height:14px;aspect-ratio:auto;margin-left:var(--s-2)}
.mbMonth{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s-2);margin-top:var(--s-4)}
.mbMonth>div,.coefTop>div{display:flex;flex-direction:column;gap:2px;padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}
.mbMonth small,.coefTop small{font-size:var(--fs-xs);color:var(--c-muted)}
.mbMonth b,.coefTop b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
.coefTop{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s-2);margin-top:var(--s-2)}
.dbUnknown,.dbHist{margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--c-text-2)}
.dbUnknown summary,.dbHist summary,.card details>summary{cursor:pointer;display:flex;gap:var(--s-2);align-items:center;color:var(--c-muted);min-height:36px}
.dbUnknown ul{margin:var(--s-2) 0 0;padding-left:var(--s-5)}
.dbRemind{margin-bottom:var(--s-4)}
.dbRemind ul{margin:var(--s-1) 0 var(--s-2);padding-left:var(--s-5)}
.dbWarnText,.dbWarn{color:var(--c-warn)}
.dbWarn{display:flex;gap:var(--s-1);align-items:center;font-size:var(--fs-sm);margin:var(--s-1) 0}
.dbRows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}
.dbRow{display:flex;gap:var(--s-3);justify-content:space-between;padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}
.dbRow.closed{opacity:.6}
.dbRow.closed .dbRowSide>b{text-decoration:line-through}
.dbRowMain{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.dbRowMain small{color:var(--c-muted);font-size:var(--fs-xs)}
.dbRowSide{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.dbRowSide>b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
.dbRowSide small{color:var(--c-muted);font-size:var(--fs-xs)}
.dbRowBtns{display:flex;gap:var(--s-1);margin-top:var(--s-1);flex-wrap:wrap;justify-content:flex-end}
.dbPayForm{margin-top:var(--s-4)}
.dbMonths{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s-3)}
.dbMonth{padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}
.dbMonthHead{display:flex;justify-content:space-between;gap:var(--s-2)}
.dbMonthHead b{text-transform:capitalize}
.dbList{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-1);font-size:var(--fs-sm)}
.dbList li{display:block;line-height:1.45}
.dbList li .icon{width:14px;height:14px;margin-right:4px;vertical-align:-2px}
.dbList li.done{color:var(--c-ok)}
.dbList small{color:var(--c-muted)}
.dbTable{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.dbTable th,.dbTable td{padding:var(--s-2);border-bottom:1px solid var(--c-line);text-align:right;vertical-align:top}
.dbTable th:first-child,.dbTable td:first-child{text-align:left}
.dbTable th{color:var(--c-muted);font-weight:var(--fw-m);font-size:var(--fs-xs)}
.dbTable td.neg{color:var(--c-bad)}
.dbTable td.pos{color:var(--c-ok)}
.dbTable tr.dbPayouts td{border-bottom:1px solid var(--c-line-2);padding-top:0;text-align:left;color:var(--c-muted)}
.dbTable tr.dbTotal td{font-weight:var(--fw-sb)}
.dbBasis{display:block;color:var(--c-faint);font-size:var(--fs-xs)}
.muted.small{font-size:var(--fs-xs)}
.mtChs{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3)}
.mtCh{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}
.mtCh small{display:block;color:var(--c-muted);font-size:var(--fs-xs);margin-top:2px}
.mtSlots{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);align-items:center;margin-top:var(--s-3);font-size:var(--fs-sm)}
.mtSlot{display:inline-flex;gap:var(--s-1);align-items:center;min-height:36px}
.mtPreview{margin-top:var(--s-3);padding:var(--s-3);border:1px dashed var(--c-gold-line);border-radius:var(--r-md);background:var(--c-sunken);font-size:var(--fs-sm)}
.mtPreview p{margin:var(--s-2) 0 0;line-height:1.5}
.card h4{margin:var(--s-4) 0 var(--s-1);font-size:var(--fs-sm);color:var(--c-text-2)}
@media (max-width:640px){
  .moneyBig .mbNow{font-size:var(--fs-3xl)}
  .dbRow{flex-direction:column}
  .dbRowSide{align-items:flex-start;text-align:left}
  .dbRowBtns{justify-content:flex-start}
  .mbScale span:nth-child(2){display:none}
}

/* ---------- v8: светлая тема (те же токены, другие значения) ---------- */
:root[data-theme="light"]{
  color-scheme:light;
  --c-bg:#f6f4ef; --c-bg-2:#efece5; --c-surface:#ffffff; --c-surface-2:#f7f5f0; --c-surface-3:#eeebe3; --c-sunken:#ece9e1;
  --c-overlay:rgba(30,28,24,.42); --c-glass:rgba(255,255,255,.86);
  --c-line:rgba(20,18,14,.09); --c-line-2:rgba(20,18,14,.15); --c-line-3:rgba(20,18,14,.24);
  --c-text:#1b1a17; --c-text-2:#3d3b36; --c-muted:#66645d; --c-faint:#8a877f;
  --c-gold:#9a7428; --c-gold-hi:#8a6620; --c-gold-lo:#b38c3e; --c-gold-ink:#fffaf0;
  --c-gold-soft:rgba(154,116,40,.10); --c-gold-line:rgba(154,116,40,.36); --c-gold-glow:rgba(154,116,40,.18);
  --c-ok:#2f7a48; --c-ok-soft:rgba(47,122,72,.10); --c-ok-line:rgba(47,122,72,.32);
  --c-warn:#9a6512; --c-warn-soft:rgba(154,101,18,.10); --c-warn-line:rgba(154,101,18,.34);
  --c-bad:#b23a30; --c-bad-soft:rgba(178,58,48,.09); --c-bad-line:rgba(178,58,48,.32);
  --c-info:#2f5f96; --c-info-soft:rgba(47,95,150,.09); --c-info-line:rgba(47,95,150,.3);
  --c-idle:#8b8d86;
  --sh-1:0 1px 2px rgba(20,18,14,.08); --sh-2:0 8px 24px rgba(20,18,14,.08); --sh-pop:0 24px 60px rgba(20,18,14,.18),0 0 0 1px var(--c-line-2);
  --c-tint:rgba(20,18,14,.025); --c-hover:rgba(20,18,14,.05); --c-sidebar:rgba(250,248,244,.94);
  --c-gold-top:#b08a3a; --c-gold-hover:rgba(154,116,40,.16); --c-gold-ring:rgba(154,116,40,.12); --c-gold-ring-2:rgba(154,116,40,.1);
  --c-gold-wash:rgba(154,116,40,.06); --c-gold-inner:rgba(154,116,40,.05); --c-gold-fade:rgba(154,116,40,.04); --c-gold-halo:rgba(154,116,40,.025); --c-gold-halo-2:rgba(154,116,40,.015);
  --c-info-wash:rgba(47,95,150,.04); --c-bad-hover:rgba(178,58,48,.14); --c-bad-lo:#d08a82; --c-bad-ink:#fff6f5;
}

/* ---------- v8: «Сегодня» — обновить / отчёт ---------- */
.tTools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-3);margin:0 0 var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface)}
.tSync{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);min-width:0}
.tSync small{color:var(--c-muted);font-size:var(--fs-xs)}
.tSync small.bad{color:var(--c-bad)}
/* «+ продажа» */
.qs{margin:var(--s-3) 0 0;padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}
.qsHead{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px var(--s-2);margin-bottom:var(--s-2)}
.qsHead b .icon{vertical-align:-3px;margin-right:4px}
.qsHead small{color:var(--c-muted);font-size:var(--fs-xs)}
.qsGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:var(--s-2)}
.qsBtn{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:6px;align-items:center;min-height:48px;padding:6px 10px;text-align:left;border:1px solid var(--c-gold-line);border-radius:var(--r-sm);background:var(--c-gold-soft);color:var(--c-text);line-height:1.2}
.qsBtn .icon{grid-row:1 / span 2;width:16px;height:16px;color:var(--c-gold-hi)}
.qsBtn .qsName{font-size:var(--fs-sm);font-weight:var(--fw-m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qsBtn small{color:var(--c-muted);font-size:var(--fs-xs)}
.qsBtn.top{border-color:var(--c-line-2);background:var(--c-tint)}
.qsBtn:hover{background:var(--c-gold-hover)}
.qsBtn:active{transform:translateY(1px)}
.qsList{list-style:none;margin:var(--s-2) 0 0;padding:0;display:grid;gap:6px}
.qsList li{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:6px 8px;border:1px dashed var(--c-gold-line);border-radius:var(--r-sm);font-size:var(--fs-sm)}
.qsList li span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.qsList small{color:var(--c-muted)}
.mbMan{color:var(--c-gold-hi)}
/* мини-график недели */
.wc{margin:var(--s-3) 0 0;padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}
.wcHead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px var(--s-2);margin-bottom:var(--s-2)}
.wcHead b .icon{vertical-align:-3px;margin-right:4px}
.wcHead small{color:var(--c-muted);font-size:var(--fs-xs)}
.wcSvg{display:block;width:100%;height:auto;max-height:180px;overflow:visible}
.wcBar rect{fill:var(--c-line-3)}
.wcBar.hit rect{fill:var(--c-ok)}
.wcBar.miss rect{fill:var(--c-bad);opacity:.75}
.wcBar.now rect{fill:var(--c-gold)}
.wcBar.nd rect{fill:var(--c-line-2)}
.wcVal{font-size:9px;fill:var(--c-text-2);text-anchor:middle;font-variant-numeric:tabular-nums}
.wcDay{font-size:9px;fill:var(--c-text-2);text-anchor:middle}
.wcDate{font-size:8px;fill:var(--c-muted);text-anchor:middle}
.wcGoal{stroke:var(--c-gold);stroke-width:1.2;stroke-dasharray:4 3}
.wcGoalT{font-size:9px;fill:var(--c-gold-hi);text-anchor:end}
/* чат */
.chatCard{display:flex;flex-direction:column;gap:var(--s-3)}
.chatList{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2);max-height:min(62vh,640px);overflow-y:auto;overscroll-behavior:contain}
.chatQ{display:flex;justify-content:flex-end}
.chatA{display:flex;justify-content:flex-start}
.bubble{max-width:min(86%,680px);padding:10px 12px;border-radius:var(--r-lg);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45;font-size:var(--fs-md)}
.bubble small{display:block;margin-top:4px;font-size:var(--fs-xs);color:var(--c-muted)}
.bubble.me{background:var(--c-gold-soft);border:1px solid var(--c-gold-line);border-bottom-right-radius:var(--r-xs)}
.bubble.jv{background:var(--c-surface-2);border:1px solid var(--c-line);border-bottom-left-radius:var(--r-xs)}
.bubble.wait{color:var(--c-muted)}
.chatQuick{display:flex;flex-wrap:wrap;gap:6px}
.chip{height:32px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--c-line-2);background:var(--c-tint);font-size:var(--fs-sm)}
.chip:hover{border-color:var(--c-gold-line);background:var(--c-gold-soft)}
.chatInput{display:flex;gap:var(--s-2);align-items:flex-end}
.chatInput textarea{flex:1;min-width:0;min-height:44px;max-height:160px;resize:vertical;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--c-line-2);background:var(--c-sunken);font-size:16px}
.chatInput textarea:focus{outline:none;box-shadow:var(--sh-focus)}
.chatFoot{font-size:var(--fs-xs);color:var(--c-muted)}
.chatEmpty .empty p{max-width:520px}
@media (max-width:560px){
  .qsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tTools{flex-direction:column;align-items:stretch}
  .tTools .btn{justify-content:center}
  .chatInput{flex-direction:column;align-items:stretch}
}

/* ---------- v9 «Офис агентов» ---------- */
.ofGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s-3)}
.ofAgent{--st:var(--c-idle);border:1px solid var(--c-line-2);border-left:3px solid var(--st);border-radius:var(--r-md);padding:var(--s-3);background:var(--c-tint);display:flex;flex-direction:column;gap:var(--s-2);min-width:0}
.ofAgent.st-queued,.ofAgent.st-handoff{--st:var(--c-info)} .ofAgent.st-working{--st:var(--c-gold)} .ofAgent.st-waiting_approval{--st:var(--c-warn)} .ofAgent.st-done{--st:var(--c-ok)} .ofAgent.st-error{--st:var(--c-bad)}
.ofAgentHead{display:flex;align-items:center;gap:var(--s-2)} .ofAgentHead > div{flex:1;min-width:0;display:flex;flex-direction:column} .ofAgentHead small{color:var(--c-muted);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ofDot{width:9px;height:9px;border-radius:50%;background:var(--st);flex:none}
.ofAgent.st-working .ofDot{animation:ofPulse 1.2s ease-in-out infinite}
@keyframes ofPulse{50%{box-shadow:0 0 0 5px transparent;opacity:.45}}
@media (prefers-reduced-motion:reduce){.ofAgent.st-working .ofDot{animation:none}}
.ofTask{font-size:var(--fs-sm);color:var(--c-text-2);min-height:1.5em;overflow-wrap:anywhere}
.ofQueue{font-size:var(--fs-xs);color:var(--c-info);display:flex;gap:6px;align-items:center}
.ofMeta{display:grid;grid-template-columns:1fr 1fr;gap:6px var(--s-3);margin:0;font-size:var(--fs-xs)} .ofMeta dt{color:var(--c-muted)} .ofMeta dd{margin:0;overflow-wrap:anywhere}
.ofErr{display:flex;gap:6px;align-items:flex-start;font-size:var(--fs-xs);color:var(--c-bad);overflow-wrap:anywhere}
.ofFeed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:460px;overflow:auto}
.ofEv{display:flex;gap:var(--s-3);padding:6px 0;border-bottom:1px solid var(--c-line);font-size:var(--fs-sm);border-left:2px solid transparent;padding-left:var(--s-2)}
.ofEv time{color:var(--c-muted);font-family:var(--mono);font-size:var(--fs-xs);flex:none;padding-top:2px}
.ofEv.tone-ok{border-left-color:var(--c-ok)} .ofEv.tone-bad{border-left-color:var(--c-bad)} .ofEv.tone-warn{border-left-color:var(--c-warn)} .ofEv.tone-info{border-left-color:var(--c-info)} .ofEv.tone-gold{border-left-color:var(--c-gold)}
.ofCost{color:var(--c-gold-hi)}
.ofForm{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-4)} .ofForm textarea{width:100%;resize:vertical;min-height:72px}
.ofFormRow{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap} .ofFormRow small{flex:1;min-width:240px}
.ofDevList{display:flex;flex-direction:column;gap:var(--s-3)}
.ofDev{border:1px solid var(--c-line-2);border-radius:var(--r-md);padding:var(--s-3);background:var(--c-tint);font-size:var(--fs-sm);min-width:0}
.ofDev p{margin:6px 0} .ofDevHead{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap} .ofDevHead small{color:var(--c-muted)}
.ofReq{font-weight:var(--fw-m);overflow-wrap:anywhere}
.ofSteps,.ofFiles,.ofTestFiles{margin:6px 0;padding-left:20px} .ofFiles code{font-size:var(--fs-xs);overflow-wrap:anywhere}
.ofFiles .ok,.ofTestFiles .ok,.ofTests.ok{color:var(--c-ok)} .ofFiles .bad,.ofTestFiles .bad,.ofTests.bad{color:var(--c-bad)}
.ofTests{display:flex;gap:6px;align-items:center;margin:6px 0}
.ofSens{margin:var(--s-2) 0}
.ofDiff{max-height:420px;overflow:auto;background:var(--c-sunken);border:1px solid var(--c-line);border-radius:var(--r-sm);padding:var(--s-2);font-family:var(--mono);font-size:12px;white-space:pre;margin:var(--s-2) 0}
.ofDev details summary{cursor:pointer;color:var(--c-info);margin:6px 0}
.ofActs{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap;margin-top:var(--s-2)} .ofCheck{display:flex;gap:6px;align-items:center;font-size:var(--fs-sm);color:var(--c-warn);width:100%}
.ofNote{display:flex;gap:6px;align-items:flex-start;font-size:var(--fs-xs)}


/* Agent-first office */
.agentGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
.agentCard{position:relative;overflow:hidden}
.agentCard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c-line-2)}
.agentCard:has(.tag.ok)::before{background:var(--c-ok)}
.agentCard:has(.tag.warn)::before{background:var(--c-warn)}
.agentCard:has(.tag.bad)::before{background:var(--c-bad)}
.agentTask{min-height:44px;padding:10px 12px;border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-sunken);font-size:var(--fs-md);line-height:1.45;margin-bottom:8px}
.agentQueue .taskLine{grid-template-columns:minmax(0,1fr) auto}
.notice.bad{border-color:color-mix(in srgb,var(--c-bad) 45%,var(--c-line));color:var(--c-bad);margin-top:10px}
@media (max-width:1100px){.agentGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.agentGrid{grid-template-columns:1fr}}

/* «Агенты U1HOST» (unified 2026-10-07) */
.agPendCard{border-color:var(--c-warn-line)}
.agPending{margin-bottom:var(--s-3);border-color:var(--c-warn-line);background:var(--c-warn-soft)}
.agTarget{margin:var(--s-2) 0}
.agLabel{font-size:var(--fs-xs);color:var(--c-muted);margin-top:var(--s-2)}
.agText{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--c-sunken);border:1px solid var(--c-line);border-radius:var(--r-sm);padding:var(--s-2) var(--s-3);font-size:var(--fs-md);margin:4px 0 0}
.agTask{margin-bottom:var(--s-2)} .agTask>summary{cursor:pointer;list-style:none} .agTask>summary::-webkit-details-marker{display:none}
.agGoal{font-weight:var(--fw-m);overflow-wrap:anywhere;flex:1 1 240px;min-width:0}
.agResult{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--fs-sm);line-height:1.5;margin-top:4px}
.agShots{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-top:4px}
.agShot{margin:0;max-width:320px} .agShot img{display:block;max-width:100%;border:1px solid var(--c-line);border-radius:var(--r-sm)} .agShot figcaption{font-size:var(--fs-xs);color:var(--c-muted)}
.agOut summary{font-size:var(--fs-xs)} .agMeta{font-size:var(--fs-xs);margin-top:var(--s-2)} .agQual{color:var(--c-muted)}

/* «Сегодня», напоминания, доверенные действия (2026-10-07) */
.agToday .ofDevHead b{margin-right:.35rem}
.agToday.agDone{opacity:.72}
.agTdMeta{margin:2px 0 4px;font-size:var(--fs-xs)}
.agTdWhy{display:flex;gap:.35rem;align-items:flex-start;margin:.25rem 0;font-size:var(--fs-sm)}
.agTdWhy.warn{color:var(--c-warn)}
.agRemind{border-color:var(--c-warn-line);background:var(--c-warn-soft)}
.agHelp{border-color:var(--c-bad-line);background:var(--c-bad-soft)}
.agDoneList{margin-top:.6rem}
.agDoneList>summary{cursor:pointer;font-weight:600;padding:.3rem 0}

/* JARVIS чат: ассистент с инструментами (2026-10-07) */
.jcThreads{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.jcThreads .chip{white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.jcThreads .chip.on{background:var(--c-gold-soft);border-color:var(--c-gold-line);color:var(--c-text);font-weight:var(--fw-m)}
.jcProg{list-style:none;margin:6px 0 0;padding:0;font-size:var(--fs-sm);color:var(--c-muted)}
.jcProg li{padding-left:16px;position:relative}
.jcProg li::before{content:'✓';position:absolute;left:0;color:var(--c-ok)}
.jcProg li.cur{color:var(--c-text)}
.jcProg li.cur::before{content:'›';color:var(--c-gold)}
.jcDots::after{content:'…';display:inline-block;animation:jcBlink 1.2s steps(3,end) infinite}
@keyframes jcBlink{0%{opacity:.2}50%{opacity:1}100%{opacity:.2}}
.jcWarn{display:flex;gap:6px;align-items:flex-start;margin-top:8px;padding:6px 8px;border-radius:var(--r-sm);background:var(--c-warn-soft);border:1px solid var(--c-warn-line);font-size:var(--fs-sm);white-space:normal}
.jcProp{margin-top:10px;padding:10px;border-radius:var(--r-md);border:1px solid var(--c-warn-line);background:var(--c-warn-soft);white-space:normal}
.jcPropHead{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.jcPropTo{margin-top:6px;font-size:var(--fs-sm)}
.jcThink{color:var(--c-muted);font-size:var(--fs-sm)}
.jcMem>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--c-muted)}
.jcMem li{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
@media (max-width:640px){.jcCard .bubble{max-width:94%}.jcCard .chatList{max-height:62vh}.jcProp .ofActs{flex-direction:column;align-items:stretch}}


/* JARVIS: живой офис агентов. Все состояния берутся из реального agent.status.
   CSS-декорация не запускает процесс, не читает MAX и не добавляет сетевых запросов. */
.ofWorkspace{--monitor:var(--c-info);position:relative;display:flex;align-items:flex-end;justify-content:center;gap:18px;height:84px;overflow:hidden;
  border:1px solid var(--c-line);border-radius:var(--r-md);background:linear-gradient(150deg,var(--c-surface-2),var(--c-sunken));padding:10px 20px 12px}
.ofWorkspace:before{content:"";position:absolute;left:8px;right:8px;bottom:13px;height:3px;border-radius:4px;background:var(--c-line-2)}
.ofPerson{width:30px;height:58px;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;z-index:1;justify-content:flex-end}
.ofPersonHead{width:21px;height:21px;border-radius:50%;background:var(--c-gold-lo);border:2px solid var(--c-surface);box-shadow:0 2px 5px var(--c-line)}
.ofPersonBody{height:27px;width:29px;border-radius:10px 10px 3px 3px;background:var(--c-surface-3);border:1px solid var(--c-line-3)}
.ofDesk{position:relative;z-index:1;min-width:99px;height:56px;display:flex;align-items:center;flex-direction:column;justify-content:flex-start}
.ofScreen{height:39px;width:65px;border-radius:5px;background:var(--c-bg);border:3px solid var(--c-line-3);padding:5px 7px;display:flex;flex-direction:column;gap:4px;
  box-shadow:0 0 0 1px var(--c-surface),inset 0 0 8px var(--c-info-soft)}
.ofScreenBar{height:3px;background:var(--monitor);opacity:.6;border-radius:5px;width:70%}
.ofScreenBar:nth-child(2){width:92%;opacity:.4}.ofScreenBar:nth-child(3){width:52%;opacity:.75}
.ofScreen:after{content:"";height:10px;width:3px;background:var(--c-line-3);position:absolute;top:39px;left:50%}
.ofKeyboard{width:89px;height:7px;position:absolute;bottom:2px;border-radius:3px;background:var(--c-surface-3);border:1px solid var(--c-line-2)}
.ofWorkspaceLight{position:absolute;top:10px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--st);box-shadow:0 0 0 3px var(--c-surface)}
.ofAgent.st-working .ofScreenBar{animation:jarvisScreen 1.8s ease-in-out infinite alternate}
.ofAgent.st-working .ofPersonHead{animation:jarvisFocus 3s ease-in-out infinite}
.ofAgent.st-error .ofWorkspace{--monitor:var(--c-bad)}
.ofAgent.st-idle .ofScreenBar{opacity:.2}
.ofAgent.st-done .ofWorkspace{--monitor:var(--c-ok)}
.ofAgent.st-waiting_approval .ofWorkspace{--monitor:var(--c-warn)}
@keyframes jarvisScreen{from{opacity:.32}to{opacity:1}}
@keyframes jarvisFocus{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}
@media (prefers-reduced-motion:reduce){.ofAgent.st-working .ofScreenBar,.ofAgent.st-working .ofPersonHead{animation:none}}
@media (max-width:560px){.ofWorkspace{height:72px;padding:6px 12px 10px}}

/* Private habits page menu links */
a.navItem,a.sheetItem{text-decoration:none}
