/* LASCO BidBoard v2
   Layout: navy brand rail + scrolling work surface on desktop; top brand bar + bottom tab bar with the ASK orb on phones.
   Palette from the LASCO logo (navy #223D80, sky #3F89C8). Type: Barlow (signage), Barlow Condensed (display), IBM Plex Mono (codes, numbers). */

@font-face{font-family:"Barlow";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/barlow-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/barlow-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/barlow-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/barlow-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/barlow-condensed-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/barlow-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/barlow-condensed-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-600-normal.woff2) format("woff2")}

:root{
  --navy:#223D80; --navy-deep:#16295C; --sky:#3F89C8; --sky-ink:#2B6AA3;
  --primary:#223D80; --primary-hover:#1B3270; --on-primary:#FFFFFF;
  --side-bg:#223D80; --side-bg-2:#172C63; --side-fg:#EEF3FC; --side-muted:#A9BBE0; --side-hover:rgba(255,255,255,.08); --side-on:rgba(255,255,255,.14);
  --bg:#F1F3F8; --surface:#FFFFFF; --surface-2:#F6F7FB; --ink:#121A2E; --muted:#56627D; --faint:#848EA6;
  --line:#DEE3EC; --line-strong:#C5CDDB; --focus:#3F89C8;
  --toast-bg:#121A2E; --toast-fg:#F1F3F8; --toast-act:#8CC4F2;
  --st-pending:#5F6E86; --st-budget:#B86E00; --st-win:#0A8657; --st-loss:#CC3333; --st-nobid:#8A6FB0;
  --est-green:#16803C; --est-orange:#D9620C; --est-red:#CC3333; --est-blue:#2559D9; --est-grey:#687286;
  --est-purple:#7438DB; --est-teal:#0B8487; --est-pink:#C92A72; --est-brown:#8E5D2A;
  --shadow:0 1px 2px rgba(18,26,46,.06),0 8px 28px rgba(18,26,46,.10);
  --shadow-lg:0 2px 6px rgba(18,26,46,.08),0 24px 60px rgba(18,26,46,.22);
  --glow:0 0 0 1px color-mix(in srgb,var(--sky) 30%,transparent),0 8px 30px color-mix(in srgb,var(--sky) 22%,transparent);
  --f-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --f-body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r:12px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --primary:#3A68C4; --primary-hover:#4777D3; --sky:#5AA2DD; --sky-ink:#7DB6E8;
  --side-bg:#111D3D; --side-bg-2:#0B1530; --side-fg:#E3E9F6; --side-muted:#8A9CC4;
  --bg:#0C1220; --surface:#141C30; --surface-2:#1A2340; --ink:#E6EBF5; --muted:#9BA7C0; --faint:#6E7A95;
  --line:#242F4D; --line-strong:#34406A; --focus:#5AA2DD;
  --toast-bg:#E6EBF5; --toast-fg:#0C1220; --toast-act:#1F5F99;
  --st-pending:#97A4BA; --st-budget:#F0A43A; --st-win:#2FC48B; --st-loss:#F06A6A; --st-nobid:#B49BE0;
  --est-green:#3CC46E; --est-orange:#F38B3E; --est-red:#F06A6A; --est-blue:#6B97F7; --est-grey:#A2A9B6;
  --est-purple:#A98BFA; --est-teal:#33C3C5; --est-pink:#F075B3; --est-brown:#C7925C;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35); --shadow-lg:0 2px 6px rgba(0,0,0,.4),0 28px 70px rgba(0,0,0,.55); color-scheme:dark;
}}
:root[data-theme="dark"]{
  --primary:#3A68C4; --primary-hover:#4777D3; --sky:#5AA2DD; --sky-ink:#7DB6E8;
  --side-bg:#111D3D; --side-bg-2:#0B1530; --side-fg:#E3E9F6; --side-muted:#8A9CC4;
  --bg:#0C1220; --surface:#141C30; --surface-2:#1A2340; --ink:#E6EBF5; --muted:#9BA7C0; --faint:#6E7A95;
  --line:#242F4D; --line-strong:#34406A; --focus:#5AA2DD;
  --toast-bg:#E6EBF5; --toast-fg:#0C1220; --toast-act:#1F5F99;
  --st-pending:#97A4BA; --st-budget:#F0A43A; --st-win:#2FC48B; --st-loss:#F06A6A; --st-nobid:#B49BE0;
  --est-green:#3CC46E; --est-orange:#F38B3E; --est-red:#F06A6A; --est-blue:#6B97F7; --est-grey:#A2A9B6;
  --est-purple:#A98BFA; --est-teal:#33C3C5; --est-pink:#F075B3; --est-brown:#C7925C;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35); --shadow-lg:0 2px 6px rgba(0,0,0,.4),0 28px 70px rgba(0,0,0,.55); color-scheme:dark;
}
:root[data-theme="light"]{color-scheme:light}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:500 15px/1.45 var(--f-body);text-transform:uppercase;letter-spacing:.015em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
body.noscroll{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
input[type=text],input[type=search],textarea{text-transform:uppercase}
input[type=email],input[type=url],.nocaps,[data-nocaps]{text-transform:none!important}
input::placeholder,textarea::placeholder{color:var(--faint);opacity:1}
.ic{flex:none;display:block}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.mono{font-family:var(--f-mono)}
.num{text-align:right;font-variant-numeric:tabular-nums}
.spacer{flex:1}
[hidden]{display:none!important}
a{color:var(--sky-ink)}
.noscript{padding:40px;text-align:center;font-weight:700}

/* ---------- gate (sign-in, setup, errors) ---------- */
.gate{min-height:100%;display:grid;place-items:center;padding:24px 16px;padding-top:max(24px,env(safe-area-inset-top,0px));
  background:radial-gradient(1200px 600px at 85% -10%,rgba(63,137,200,.45),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(63,137,200,.25),transparent 60%),linear-gradient(160deg,#223D80,#13265A);color:#EEF3FC;position:relative;overflow:hidden}
.gate::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);pointer-events:none}
.gate-card{position:relative;width:min(560px,100%);display:flex;flex-direction:column;gap:14px;padding:34px 30px;border-radius:20px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 30px 80px rgba(5,12,35,.45);animation:pop .3s ease-out}
.gate-logo{width:220px;height:auto;margin-bottom:6px}
.gate h1{font-size:44px;margin:4px 0 0;color:#fff}
.gate p{margin:0;color:#C9D6F0;line-height:1.55;font-size:15px}
.gate p b{color:#fff}
.eyebrow.light{color:#8CC4F2}
.gate-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.gate-small{font:500 12px/1.4 var(--f-mono)!important;letter-spacing:.08em;color:#9FB2DA!important}
.gate-err{padding:10px 12px;border-radius:10px;background:rgba(240,106,106,.16);border:1px solid rgba(240,106,106,.4);color:#FFD2D2!important;font-weight:600}
.btn.light{background:#fff;color:#16295C;border-color:#fff}
.btn.light:hover{background:#EAF2FC;border-color:#EAF2FC}
.btn.light.big{height:50px;padding:0 24px;font-size:17px}
.btn.light.ghosty{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.btn.light.ghosty:hover{background:rgba(255,255,255,.08)}
.setup-log{font:500 12px/1.5 var(--f-mono);letter-spacing:.06em;color:#9FB2DA;min-height:18px}
.setup-imp .tile{border-color:rgba(255,255,255,.2)} .setup-imp .tile span,.setup-imp .hint{color:#C9D6F0} .setup-imp .tile.hl{background:rgba(255,255,255,.1);border-color:#8CC4F2}
.setup-imp .imp-part b{color:#fff} .setup-imp .radio-row{color:#fff}
.drop.light{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.3);color:#fff}
.drop.light:hover,.drop.light.over{background:rgba(255,255,255,.1);border-color:#8CC4F2}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100%}
.work{min-width:0}
.side{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;background:linear-gradient(180deg,var(--side-bg),var(--side-bg-2));color:var(--side-fg);
  padding-block:26px 18px;padding-right:16px;padding-left:calc(16px + env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:22px;overflow-y:auto}
.brand img{width:178px;height:auto;display:block}
.brand .app-name{margin-top:12px;font:600 11px/1 var(--f-mono);letter-spacing:.24em;color:var(--side-muted)}
.search-trigger{display:flex;align-items:center;gap:10px;height:44px;padding:0 10px 0 7px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:var(--side-fg);cursor:pointer;font:600 15px/1 var(--f-display);letter-spacing:.09em;width:100%;text-align:left;transition:background .15s,box-shadow .2s}
.search-trigger:hover{background:rgba(255,255,255,.12);box-shadow:0 0 0 3px rgba(140,196,242,.15)}
.kbd{font:500 10.5px/1 var(--f-mono);border:1px solid currentColor;border-radius:4px;padding:3px 5px;opacity:.75;letter-spacing:.06em;white-space:nowrap}
.search-trigger .kbd{margin-left:auto;color:var(--side-muted)}
.nav{display:flex;flex-direction:column;gap:3px}
.nav button{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;border:0;background:transparent;color:var(--side-fg);font:600 16px/1 var(--f-display);letter-spacing:.08em;cursor:pointer;text-align:left;width:100%;transition:background .12s}
.nav button:hover{background:var(--side-hover)}
.nav button.on{background:var(--side-on);box-shadow:inset 3px 0 0 #8CC4F2}
.nav .count{margin-left:auto;font:500 12px/1 var(--f-mono);color:var(--side-muted)}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:12px;font:500 11.5px/1.4 var(--f-mono);letter-spacing:.06em;color:var(--side-muted)}
.who{display:flex;align-items:center;gap:10px;color:var(--side-fg);font:600 13px/1.2 var(--f-body);letter-spacing:.04em;min-width:0}
.who span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who img,.avatar{width:30px;height:30px;border-radius:50%;flex:none}
.avatar{display:grid;place-items:center;background:rgba(255,255,255,.14);font:700 14px/1 var(--f-display);color:#fff}
.foot-links{display:flex;flex-wrap:wrap;gap:4px 14px}
.live{display:inline-flex;align-items:center;gap:8px}
.live i{width:8px;height:8px;border-radius:50%;background:#3DDC97;box-shadow:0 0 0 3px rgba(61,220,151,.2);animation:breathe 2.6s ease-in-out infinite}
.live.off i{background:#F2A93B;box-shadow:0 0 0 3px rgba(242,169,59,.2);animation:none}
.live.pend i{background:#8CC4F2;box-shadow:0 0 0 3px rgba(140,196,242,.25)}
.live.demo i{background:#C9A6FF;box-shadow:0 0 0 3px rgba(201,166,255,.25);animation:none}
.ro-chip{display:inline-flex;align-self:flex-start;padding:4px 8px;border-radius:6px;background:rgba(242,169,59,.16);color:#F7C77A;font:600 11px/1 var(--f-mono);letter-spacing:.1em}
.fu-chip{display:inline-flex;align-self:flex-start;align-items:center;gap:7px;padding:7px 10px;border-radius:8px;border:1px solid rgba(242,169,59,.4);background:rgba(242,169,59,.12);color:#F7C77A;font:600 11.5px/1 var(--f-mono);letter-spacing:.08em;cursor:pointer}
.fu-chip:hover{background:rgba(242,169,59,.2)}
.link-btn.light{color:var(--side-muted)} .link-btn.light:hover{color:var(--side-fg)}

main{min-width:0;max-width:1640px;padding-block:30px 56px;padding-left:36px;padding-right:max(36px,env(safe-area-inset-right,0px))}
.topbar,.tabbar{display:none}

/* AI orb */
.orb{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;color:#fff;
  background:radial-gradient(circle at 30% 28%,#9BD0FA 0%,#3F89C8 42%,#223D80 100%);box-shadow:0 0 0 3px rgba(63,137,200,.18),0 4px 14px rgba(34,61,128,.35);position:relative}
.orb::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid rgba(140,196,242,.55);animation:ring 2.8s ease-out infinite}
.orb.sm{width:30px;height:30px}
.orb.xs{width:28px;height:28px}
.orb.xs::after{display:none}

.fab{display:none}

@media (max-width:900px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{display:none}
  body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--side-bg)}
  .topbar{display:flex;align-items:center;gap:12px;position:sticky;top:env(safe-area-inset-top,0px);z-index:25;background:var(--side-bg);color:var(--side-fg);
    padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .topbar img{height:30px;width:auto}
  .topbar .tb-btn{margin-left:auto;display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:var(--side-fg);cursor:pointer}
  .topbar .live{font:500 10.5px/1 var(--f-mono);letter-spacing:.08em;color:var(--side-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  main{padding-block:20px calc(104px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;position:fixed;left:0;right:0;bottom:0;z-index:25;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);
    padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px))}
  .tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:transparent;color:var(--muted);font:600 11px/1 var(--f-display);letter-spacing:.08em;padding:6px 2px;cursor:pointer;border-radius:8px}
  .tabbar button.on{color:var(--primary)}
  .tabbar .tb-ask{gap:4px;color:var(--ink)}
  .tabbar .tb-ask .orb{width:50px;height:50px;margin-top:-22px;border:3px solid var(--surface)}
  .fab{display:grid;place-items:center;position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:24;width:54px;height:54px;border-radius:16px;border:0;background:var(--primary);color:#fff;box-shadow:var(--shadow-lg);cursor:pointer}
  .fab[hidden]{display:none}
}

/* ---------- page header ---------- */
.ph{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin-bottom:20px}
.eyebrow{font:600 11.5px/1 var(--f-mono);letter-spacing:.16em;color:var(--sky-ink);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
h1{font:700 42px/1 var(--f-display);letter-spacing:.02em;margin:8px 0 8px;text-wrap:balance}
h2{font:700 28px/1.05 var(--f-display);letter-spacing:.02em;margin:6px 0;text-wrap:balance}
.sub{margin:0;color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}
.sub-t{display:block;font:500 11.5px/1.3 var(--f-mono);color:var(--faint);letter-spacing:.04em;margin-top:2px}
.ph-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
@media (max-width:600px){h1{font-size:34px}.ph-actions{width:100%}.ph-actions .seg{max-width:100%;overflow-x:auto}}

/* ---------- ask bar (dashboard) ---------- */
.askbar{display:flex;align-items:center;gap:14px;width:100%;height:62px;padding:0 16px 0 12px;border-radius:16px;cursor:text;text-align:left;
  border:1px solid color-mix(in srgb,var(--sky) 35%,var(--line));background:linear-gradient(100deg,color-mix(in srgb,var(--sky) 9%,var(--surface)),var(--surface) 55%);
  box-shadow:0 1px 2px rgba(18,26,46,.05),0 10px 30px color-mix(in srgb,var(--sky) 14%,transparent);transition:box-shadow .2s,border-color .2s}
.askbar:hover{border-color:var(--sky);box-shadow:var(--glow)}
.askbar .orb{width:40px;height:40px}
.askbar-t{flex:1;min-width:0;font:600 18px/1.1 var(--f-display);letter-spacing:.08em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.askbar .kbd{color:var(--faint)}
.askchips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}
.chips-wrap{display:flex;gap:8px;flex-wrap:wrap;padding:4px 12px 8px}
.ex-chip{height:32px;padding:0 13px;border-radius:999px;border:1px solid color-mix(in srgb,var(--sky) 35%,var(--line));background:color-mix(in srgb,var(--sky) 8%,var(--surface));color:var(--sky-ink);font:600 12px/1 var(--f-mono);letter-spacing:.05em;cursor:pointer;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ex-chip:hover{border-color:var(--sky)}
.ex-chip.ghost{background:var(--surface);color:var(--muted);border-color:var(--line)}
.ex-chip.ghost:hover{color:var(--ink);border-color:var(--line-strong)}
@media (max-width:600px){.askbar{height:56px}.askbar-t{font-size:15px}.askbar .kbd{display:none}.askchips{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}.askchips::-webkit-scrollbar{display:none}.askchips .ex-chip{flex:none;max-width:none}}

/* ---------- today ---------- */
.today{margin-bottom:14px}
.today-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.today-h h3{margin:0;font:700 16.5px/1 var(--f-display);letter-spacing:.1em}
.tgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:1180px){.tgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.tgrid{grid-template-columns:minmax(0,1fr)}}
.tcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:4px;min-width:0}
.tc-h{display:flex;align-items:center;gap:8px;padding:2px 4px 8px;font:600 11.5px/1 var(--f-mono);letter-spacing:.12em;color:var(--muted)}
.tc-h b{margin-left:auto;font:700 20px/1 var(--f-display);color:var(--ink)}
.tc-empty{padding:10px 4px;color:var(--faint);font:500 12px var(--f-mono);letter-spacing:.1em}
.titem{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;border:0;background:transparent;padding:8px;border-radius:8px;cursor:pointer;min-width:0}
.titem:hover{background:var(--surface-2)}
.ti-t{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ti-m{font:500 11.5px/1.3 var(--f-mono);color:var(--muted);letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:9px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);
  font:600 15px/1 var(--f-display);letter-spacing:.07em;cursor:pointer;white-space:nowrap;text-transform:uppercase;text-decoration:none;transition:background .12s,border-color .12s}
.btn:hover{border-color:var(--primary)}
.btn:disabled{opacity:.55;cursor:default}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}
.btn.ghost:hover{color:var(--ink);background:var(--surface-2)}
.btn.danger{color:var(--st-loss);border-color:color-mix(in srgb,var(--st-loss) 45%,transparent)}
.btn.danger:hover{background:color-mix(in srgb,var(--st-loss) 10%,transparent);border-color:var(--st-loss)}
.btn.sm{height:32px;padding:0 11px;font-size:13.5px}
.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;border:0;background:transparent;color:var(--faint);cursor:pointer;flex:none;text-decoration:none}
.icon-btn:hover{background:var(--surface-2);color:var(--ink)}
.icon-btn.danger:hover{color:var(--st-loss)}
.icon-btn:disabled{opacity:.5;cursor:default}
.seg{display:inline-flex;padding:3px;border-radius:10px;background:var(--surface);border:1px solid var(--line);gap:2px}
.seg button{height:34px;padding:0 14px;border:0;border-radius:7px;background:transparent;font:600 14.5px/1 var(--f-display);letter-spacing:.07em;color:var(--muted);cursor:pointer;white-space:nowrap}
.seg button:hover{color:var(--ink)}
.seg button.on{background:var(--primary);color:var(--on-primary)}
.seg.sm button{height:28px;padding:0 11px;font-size:13px}

.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>label,.lbl{font:600 11.5px/1 var(--f-mono);letter-spacing:.12em;color:var(--muted)}
.field>label small{color:var(--faint);font-weight:500}
.inp{height:42px;padding:0 12px;border-radius:9px;border:1px solid var(--line-strong);background:var(--surface);width:100%;font-weight:500;min-width:0}
textarea.inp{height:auto;padding:10px 12px;min-height:84px;resize:vertical;line-height:1.4}
.inp:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 3px color-mix(in srgb,var(--sky) 25%,transparent)}
.inp:disabled{background:var(--surface-2);color:var(--muted)}
.frow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.frow3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:540px){.frow{grid-template-columns:minmax(0,1fr)}.frow3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.frow3>.field:first-child:nth-last-child(3){grid-column:1/-1}}
.inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.inline .inp{flex:1}
.mini-chk{display:inline-flex;align-items:center;gap:7px;font:600 12px/1 var(--f-mono);letter-spacing:.06em;color:var(--muted);cursor:pointer;margin-top:4px;white-space:nowrap}
.mini-chk input{accent-color:var(--primary);width:16px;height:16px}
.form-err{margin:0;padding:10px 12px;border-radius:9px;background:color-mix(in srgb,var(--st-loss) 12%,var(--surface));color:var(--st-loss);font-weight:600;font-size:14px}
.warn-box{margin-top:6px;padding:9px 11px;border-radius:9px;background:color-mix(in srgb,var(--st-budget) 12%,var(--surface));color:var(--ink);font-size:13px;line-height:1.4;border:1px solid color-mix(in srgb,var(--st-budget) 35%,transparent)}
.warn-box b{color:var(--st-budget)}
.warn-box.ok-box{background:color-mix(in srgb,var(--st-win) 10%,var(--surface));border-color:color-mix(in srgb,var(--st-win) 35%,transparent)} .warn-box.ok-box b{color:var(--st-win)}
.warn-box.info-box{background:color-mix(in srgb,var(--sky) 10%,var(--surface));border-color:color-mix(in srgb,var(--sky) 35%,transparent)} .warn-box.info-box b{color:var(--sky-ink)}
.hint{margin:0 0 12px;color:var(--muted);font-size:13.5px;line-height:1.45}

.sw{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:600}
.sw input{position:absolute;opacity:0;width:1px;height:1px}
.sw .track{width:42px;height:24px;border-radius:999px;background:var(--line-strong);position:relative;transition:background .15s;flex:none}
.sw .track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.sw input:checked+.track{background:var(--st-win)}
.sw input:checked+.track::after{transform:translateX(18px)}
.sw input:focus-visible+.track{outline:2px solid var(--focus);outline-offset:2px}
.sw-card{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);cursor:pointer}
.sw-card .sw-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--st-budget) 16%,transparent);color:var(--st-budget);flex:none}
.sw-card .sw-ic.ok{background:color-mix(in srgb,var(--st-win) 15%,transparent);color:var(--st-win)}
.sw-card .sw-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.sw-card small{color:var(--muted);font-size:12.5px;font-weight:500}

/* ---------- cards & layout ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;min-width:0}
.card h3{margin:0 0 14px;font:700 16.5px/1.1 var(--f-display);letter-spacing:.08em;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.card h3 small{font:500 11.5px/1 var(--f-mono);color:var(--faint);letter-spacing:.08em}
.link-btn{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border:0;background:transparent;color:var(--sky-ink);font:600 12px/1 var(--f-mono);letter-spacing:.1em;cursor:pointer;padding:4px 0}
.link-btn:hover{text-decoration:underline}
.g2{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
.g2.even{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1120px){.g2,.g2.even{grid-template-columns:minmax(0,1fr)}}
section:not([class])>.card{margin-bottom:14px}
.stack{display:flex;flex-direction:column;gap:14px}
.hint-card{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;padding:14px 18px;background:color-mix(in srgb,var(--sky) 7%,var(--surface));border-color:color-mix(in srgb,var(--sky) 30%,var(--line))}
.hint-card b{font:600 11.5px/1 var(--f-mono);letter-spacing:.14em;color:var(--sky-ink)}
.hint-card span{font-size:13.5px;color:var(--muted);line-height:1.45}

.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:14px}
.kpi{display:flex;flex-direction:column;gap:6px;padding:16px 16px 15px;position:relative;overflow:hidden}
.kpi .lab{font:600 11.5px/1 var(--f-mono);letter-spacing:.13em;color:var(--muted)}
.kpi .row{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;min-width:0}
.kpi .val{font:700 38px/1 var(--f-display);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap}
.kpi .meta{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.kpi .spark{flex:none}
@media (max-width:1280px){.kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi{grid-column:span 2}.kpi:nth-child(n+4){grid-column:span 3}}
@media (max-width:640px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi,.kpi:nth-child(n+4){grid-column:auto}.kpi:last-child{grid-column:1/-1}.kpi .val{font-size:30px}.kpi .spark{width:64px}}

/* ---------- charts ---------- */
.chart-box{width:100%;min-height:220px}
.chart{display:block;width:100%;height:auto}
.chart text{font-family:var(--f-mono);font-size:11px;fill:var(--muted)}
.chart .val{fill:var(--ink);font-weight:600}
.chart .gridl{stroke:var(--line);stroke-width:1}
.chart .hit{cursor:pointer;fill:transparent}
.chart .hit:hover{fill:color-mix(in srgb,var(--sky) 10%,transparent)}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font:500 11.5px/1 var(--f-mono);letter-spacing:.08em;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;background:var(--c)}
.donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.donut .arc{cursor:pointer;stroke:var(--surface);stroke-width:2}
.donut .arc:hover{opacity:.85}
.donut .d-n{font:700 34px var(--f-display);fill:var(--ink)}
.donut .d-l{font:500 10px var(--f-mono);fill:var(--muted);letter-spacing:.12em}
.dleg{display:flex;flex-direction:column;gap:6px;flex:1;min-width:180px}
.dleg button{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;border:0;background:transparent;padding:6px 8px;border-radius:8px;cursor:pointer;text-align:left;font-size:14px}
.dleg button:hover{background:var(--surface-2)}
.dleg i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.dleg .c{font:600 14px var(--f-mono);font-variant-numeric:tabular-nums}
.dleg .a{font:500 12.5px var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums;min-width:72px;text-align:right}

/* ---------- lists & tables ---------- */
.mini{width:100%;border-collapse:collapse;font-size:14px}
.mini th{font:600 11px/1 var(--f-mono);letter-spacing:.12em;color:var(--faint);text-align:left;padding:0 8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.mini th.num,.tbl th.num{text-align:right}
.mini td{padding:9px 8px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap}
.mini tr:last-child td{border-bottom:0}
.mini tbody tr{cursor:pointer}
.mini tbody tr:hover td{background:var(--surface-2)}
.mini .wrap{white-space:normal}
.rate{display:flex;align-items:center;gap:8px;min-width:120px}
.rate .bar{flex:1;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden;min-width:48px;border:1px solid var(--line)}
.rate .bar i{display:block;height:100%;background:var(--c,var(--st-win))}
.rate b{font:600 13px var(--f-mono);min-width:38px;text-align:right}
.scroll-x{overflow-x:auto}
.rows{display:flex;flex-direction:column}
.rowi{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center;padding:11px 8px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px}
.rowi:last-child{border-bottom:0}
.rowi:hover{background:var(--surface-2)}
.rowi .t{font-weight:600;min-width:0;overflow-wrap:anywhere;display:flex;align-items:center;gap:6px}
.rowi .m{font-size:12.5px;color:var(--muted);grid-column:1}
.rowi .r{grid-column:2;grid-row:1/3;display:flex;align-items:center;gap:10px;justify-content:flex-end}
.inl{display:inline-flex}
.empty{padding:28px 12px;text-align:center;color:var(--muted);font-size:14px;line-height:1.5}

.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tab{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font:600 14.5px/1 var(--f-display);letter-spacing:.07em;cursor:pointer;color:var(--ink)}
.tab .n{font:500 12px/1 var(--f-mono);color:var(--muted)}
.tab .dot{width:8px;height:8px;border-radius:50%;background:var(--c)}
.tab:hover{border-color:var(--line-strong)}
.tab.on{border-color:var(--c,var(--primary));background:color-mix(in srgb,var(--c,var(--primary)) 13%,var(--surface))}
@media (max-width:600px){.tabs{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:none}}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px;margin-bottom:12px}
.search{position:relative;flex:1 1 260px;min-width:0}
.search .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}
.search input{padding-left:38px}
.filters select.inp{width:auto;flex:0 0 auto;max-width:100%}
.fx{display:contents}
.ftoggle{display:none}
.fcount{font-family:var(--f-mono);font-size:12px}
@media (max-width:600px){.ftoggle{display:inline-flex;height:42px}.filters .search{flex:1 1 0}.fx{display:none;width:100%;flex-wrap:wrap;gap:10px}.filters.open .fx{display:flex}}
.chk{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 12px;border:1px solid var(--line-strong);border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;background:var(--surface)}
.chk input{width:16px;height:16px;accent-color:var(--primary)}
.chipset{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.echip{height:32px;padding:0 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 40%,transparent);background:var(--surface);color:var(--c);font:700 12.5px/1 var(--f-mono);letter-spacing:.05em;cursor:pointer}
.echip.on{background:color-mix(in srgb,var(--c) 16%,var(--surface));border-color:var(--c)}
.echip.all{--c:var(--muted)}
.fchips{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 12px}
.fchips:empty{display:none}
.fchip{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 4px 0 12px;border-radius:999px;background:color-mix(in srgb,var(--sky) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--sky) 40%,transparent);font-size:13px;font-weight:600}
.fchip button{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
.fchip button:hover{background:var(--surface);color:var(--ink)}

.table-card{padding:0;overflow:hidden}
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{position:sticky;top:0;background:var(--surface-2);text-align:left;font:600 11px/1 var(--f-mono);letter-spacing:.1em;color:var(--muted);padding:12px 9px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}
.tbl th.s{cursor:pointer;user-select:none}
.tbl th.s:hover{color:var(--ink)}
.tbl th .arr{display:inline-block;margin-left:4px;opacity:.45}
.tbl th.on .arr{opacity:1;color:var(--sky-ink)}
.tbl td{padding:8px 9px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover td{background:var(--surface-2)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl td.job{white-space:normal;min-width:200px;max-width:340px;font-weight:600}
.tbl td.addr{white-space:normal;min-width:220px;max-width:340px;color:var(--muted);font-size:13.5px}
.tbl td.date{font:500 12px var(--f-mono);color:var(--muted)}
.jobno{font:600 13.5px var(--f-mono);color:var(--sky-ink)}
.tbl tr.confirming td{background:color-mix(in srgb,var(--st-loss) 7%,var(--surface))}
.confirm-inline{display:inline-flex;align-items:center;gap:8px;font:600 12px var(--f-mono);letter-spacing:.08em;color:var(--st-loss);flex-wrap:wrap}
.more{display:flex;justify-content:center;align-items:center;gap:12px;padding:14px;border-top:1px solid var(--line);font:500 12px var(--f-mono);letter-spacing:.08em;color:var(--muted)}
.lock-btn{color:var(--line-strong)}
.lock-btn.on{color:var(--st-budget)}
.mark{display:inline-flex;align-items:center;gap:4px;margin-left:8px;vertical-align:1px}
.chip{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:5px;font:600 10.5px/1 var(--f-mono);letter-spacing:.08em;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap}
.chip.warn{background:color-mix(in srgb,var(--st-budget) 14%,var(--surface));color:var(--st-budget);border-color:color-mix(in srgb,var(--st-budget) 35%,transparent)}
.chip.bad{background:color-mix(in srgb,var(--st-loss) 12%,var(--surface));color:var(--st-loss);border-color:color-mix(in srgb,var(--st-loss) 35%,transparent)}
.chip.ok{background:color-mix(in srgb,var(--st-win) 12%,var(--surface));color:var(--st-win);border-color:color-mix(in srgb,var(--st-win) 35%,transparent)}
.chip.link{color:var(--sky-ink);background:color-mix(in srgb,var(--sky) 10%,var(--surface));border-color:color-mix(in srgb,var(--sky) 30%,transparent)}
.st{display:inline-grid;place-items:center;min-width:34px;height:24px;padding:0 7px;border-radius:6px;border:1px solid var(--line-strong);font:600 12px/1 var(--f-mono)}
.est{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:24px;padding:0 8px;border-radius:999px;font:700 12px/1 var(--f-mono);letter-spacing:.04em;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent);border:1px solid color-mix(in srgb,var(--c) 38%,transparent)}
.ss{position:relative;display:inline-flex;align-items:center}
.ss::before{content:"";position:absolute;left:11px;width:8px;height:8px;border-radius:50%;background:var(--c);pointer-events:none}
.ss::after{content:"";position:absolute;right:12px;top:50%;width:6px;height:6px;border-right:1.6px solid var(--c);border-bottom:1.6px solid var(--c);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.ss select{appearance:none;-webkit-appearance:none;height:30px;padding:0 30px 0 26px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 42%,transparent);
  background:color-mix(in srgb,var(--c) 11%,var(--surface));color:var(--c);font:700 12px/1 var(--f-mono);letter-spacing:.06em;cursor:pointer}
.ss select:disabled{cursor:default}
.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;font:700 11.5px/1 var(--f-mono);letter-spacing:.06em;color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 38%,transparent);white-space:nowrap}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.te{min-width:34px;height:26px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--muted);font:700 12px var(--f-mono);cursor:pointer}
.te.on{background:color-mix(in srgb,var(--st-win) 15%,var(--surface));color:var(--st-win);border-color:color-mix(in srgb,var(--st-win) 45%,transparent)}
.te:disabled{cursor:default}

.cards{display:none}
.bcard{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:6px;background:var(--surface);cursor:pointer}
.bcard .top{display:flex;align-items:center;gap:8px;font:500 12px var(--f-mono);color:var(--muted)}
.bcard .top .r{margin-left:auto;display:flex;gap:6px;align-items:center}
.bcard .name{font-weight:700;font-size:15.5px;overflow-wrap:anywhere}
.bcard .meta{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.bcard .bot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}
.bcard .amt{font:700 20px/1 var(--f-display);font-variant-numeric:tabular-nums}
@media (max-width:760px){.tbl-wrap.wide{display:none}.cards{display:grid;gap:10px;padding:12px}}

.pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.pills .lbl{margin-right:4px}

/* ---------- map, capacity ---------- */
.map-card{padding:0;overflow:hidden}
.map-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);font:600 11.5px/1.3 var(--f-mono);letter-spacing:.08em;color:var(--muted);flex-wrap:wrap}
.jobmap{height:min(64vh,620px);min-height:360px;background:var(--surface-2)}
.map-note{margin:0;padding:8px 14px;font-size:11.5px}
.map-pop{display:flex;flex-direction:column;gap:4px;font:500 13px/1.35 var(--f-body);text-transform:uppercase;min-width:200px}
.map-pop b{font-weight:700}
.map-pop span{color:#56627D;font-size:12px}
.map-pop .btn{margin-top:6px;align-self:flex-start}
.leaflet-container{font-family:var(--f-body)}
.leaflet-popup-content-wrapper{border-radius:10px}

/* ---------- GC directory ---------- */
.gc-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;align-items:start}
.gc-list{padding:12px;position:sticky;top:20px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;gap:10px}
#gc-items{overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin:0 -4px;padding:0 4px}
.gc-item{display:flex;flex-direction:column;gap:3px;text-align:left;border:0;background:transparent;padding:10px;border-radius:9px;cursor:pointer;width:100%}
.gc-item:hover{background:var(--surface-2)}
.gc-item.on{background:color-mix(in srgb,var(--sky) 13%,var(--surface));box-shadow:inset 3px 0 0 var(--sky)}
.gc-item .t{font-weight:700;font-size:14px}
.gc-item .m{font:500 11.5px var(--f-mono);color:var(--muted);letter-spacing:.03em}
.gc-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.gc-back{display:none;transform:rotate(180deg)}
.c-links{display:inline-flex;gap:6px;margin-right:8px;vertical-align:middle}
.c-links a{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;border:1px solid var(--line);color:var(--sky-ink)}
.c-links a:hover{border-color:var(--sky)}
@media (max-width:900px){.gc-layout{grid-template-columns:minmax(0,1fr)}.gc-list{position:static;max-height:none}.gc-layout.has-sel .gc-list{display:none}.gc-layout:not(.has-sel) #gc-detail{display:none}.gc-back{display:inline-grid}}

/* ---------- ITB inbox ---------- */
.itb{display:flex;flex-direction:column;gap:12px}
.itb.done{opacity:.7}
.itb-h{display:flex;align-items:flex-start;gap:12px}
.itb-t{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.itb-t b{font-size:16px;overflow-wrap:anywhere}
.itb-t span{font:500 12px var(--f-mono);color:var(--muted);letter-spacing:.03em}
.itb-f{display:flex;flex-wrap:wrap;gap:6px}
.itb-f .chip{height:24px;font-size:11px}
.itb-a{display:flex;flex-wrap:wrap;gap:8px}

/* ---------- overlays ---------- */
.overlay{position:fixed;inset:0;background:rgba(8,13,28,.46);z-index:40;display:flex;justify-content:flex-end;animation:fade .15s ease-out}
.overlay.center{justify-content:center;align-items:center;padding:16px;padding-top:max(16px,env(safe-area-inset-top,0px));padding-bottom:max(16px,env(safe-area-inset-bottom,0px))}
.overlay.top{justify-content:center;align-items:flex-start;padding:16px;padding-top:max(9vh,env(safe-area-inset-top,0px));background:rgba(8,13,28,.52);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.overlay.bottom{align-items:flex-end;justify-content:stretch}
.drawer{width:min(600px,100%);height:100%;background:var(--surface);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px);animation:slide .2s ease-out}
.dr-head{padding:20px 24px 16px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.dr-head h2{overflow-wrap:anywhere}
.dr-body{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px;overscroll-behavior:contain}
.dr-foot{padding:14px 24px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center}
@media (max-width:540px){.dr-head,.dr-body,.dr-foot{padding-left:16px;padding-right:16px}.dr-foot .btn{flex:1 1 auto}}
.modal{width:min(560px,100%);max-height:100%;overflow:auto;background:var(--surface);border-radius:16px;padding:24px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px;animation:pop .16s ease-out}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:4px;align-items:center}
.overlay.won .modal{box-shadow:0 0 0 1px color-mix(in srgb,var(--st-win) 40%,transparent),0 30px 80px color-mix(in srgb,var(--st-win) 25%,transparent)}
.win-badge{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:color-mix(in srgb,var(--st-win) 15%,var(--surface));color:var(--st-win);font:700 12px/1 var(--f-mono);letter-spacing:.12em}
.steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px;font-size:14.5px}
.hist{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);padding-top:14px}
.hist .h{display:grid;grid-template-columns:12px minmax(0,1fr);gap:10px;padding:6px 0;font-size:13px}
.hist .h i{width:8px;height:8px;border-radius:50%;background:var(--line-strong);margin-top:5px}
.hist .h small{display:block;color:var(--faint);font:500 11.5px var(--f-mono);letter-spacing:.04em}

/* collapsible sections in the bid drawer */
details.sec{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
details.sec>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:13px 14px;cursor:pointer;font:700 15px/1 var(--f-display);letter-spacing:.08em;color:var(--ink)}
details.sec>summary::-webkit-details-marker{display:none}
details.sec>summary::after{content:"";width:7px;height:7px;border-right:1.7px solid var(--muted);border-bottom:1.7px solid var(--muted);transform:rotate(-45deg);margin-left:6px;transition:transform .15s;flex:none}
details.sec[open]>summary::after{transform:rotate(45deg)}
details.sec>summary .ic{color:var(--sky-ink)}
.sec-m{margin-left:auto;font:500 11px/1.2 var(--f-mono);letter-spacing:.06em;color:var(--faint);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:60%}
.sec-b{display:flex;flex-direction:column;gap:14px;padding:4px 14px 16px;border-top:1px solid var(--line);padding-top:14px}

/* odds & score */
.insight{border:1px solid color-mix(in srgb,var(--sky) 30%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--sky) 8%,var(--surface)),var(--surface));border-radius:var(--r);padding:14px}
.ins-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.odds{font:700 18px/1 var(--f-display);letter-spacing:.06em;color:var(--c)}
.drivers{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted)}
.score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:540px){.score-grid{grid-template-columns:minmax(0,1fr)}}
.score-total{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:var(--r);background:color-mix(in srgb,var(--c) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}
.score-total b{font:700 36px/1 var(--f-display);color:var(--c);font-variant-numeric:tabular-nums}
.score-total span{font:700 14px/1.2 var(--f-mono);letter-spacing:.1em;color:var(--c)}

/* ask bidboard */
.ask{width:min(760px,100%);max-height:min(82vh,860px);display:flex;flex-direction:column;background:var(--surface);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-lg),var(--glow);animation:pop .16s ease-out}
.ask-in{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-bottom:1px solid var(--line)}
.ask-in input{flex:1;min-width:0;border:0;outline:none;height:48px;font-size:18px;font-weight:600;background:transparent;color:var(--ink)}
.mic.on{color:#fff;background:var(--st-loss);animation:breathe 1.2s ease-in-out infinite}
.ask-body{overflow-y:auto;padding:6px 6px 12px;overscroll-behavior:contain}
.ask-note{display:flex;align-items:center;gap:8px;margin:10px 12px;padding:10px 12px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:13px}
.pal-g{padding:12px 12px 6px;font:600 10.5px/1 var(--f-mono);letter-spacing:.14em;color:var(--faint)}
.pal-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:9px;cursor:pointer;min-width:0}
.pal-item:hover{background:var(--surface-2)}
.pal-item .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-item .m{font:500 12px var(--f-mono);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ans{margin:8px 6px 10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:10px;animation:pop .2s ease-out}
.ans-q{font:600 11.5px/1.3 var(--f-mono);letter-spacing:.1em;color:var(--sky-ink)}
.ans-text{margin:0;font-size:16px;line-height:1.5;font-weight:600;text-transform:none}
.ans-tiles{margin:0}
.ans-how{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
@media (max-width:600px){.overlay.top{padding:0;align-items:stretch}.ask{width:100%;max-height:none;height:100%;border-radius:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.ask-in input{font-size:16px}}

/* phone sheet */
.sheet{width:100%;background:var(--surface);border-radius:20px 20px 0 0;padding:8px 12px calc(14px + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-lg);animation:up .2s ease-out;display:flex;flex-direction:column;gap:2px}
.sheet-grab{width:42px;height:5px;border-radius:3px;background:var(--line-strong);margin:4px auto 10px}
.sheet-item{display:flex;align-items:center;gap:14px;padding:14px 12px;border:0;background:transparent;border-radius:10px;font:600 17px/1 var(--f-display);letter-spacing:.08em;cursor:pointer;text-align:left;color:var(--ink)}
.sheet-item:hover{background:var(--surface-2)}
.sheet-item .ic{color:var(--sky-ink)}
.sheet-foot{padding:10px 12px 0;font:500 11px var(--f-mono);letter-spacing:.08em;color:var(--muted)}

.toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:calc(100% - 32px)}
@media (max-width:900px){.toasts{bottom:calc(94px + env(safe-area-inset-bottom,0px))}}
.toast{background:var(--toast-bg);color:var(--toast-fg);padding:12px 14px 12px 16px;border-radius:12px;display:flex;align-items:center;gap:16px;font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);animation:pop .16s ease-out}
.toast button{background:transparent;border:0;color:var(--toast-act);font:700 12.5px/1 var(--f-mono);letter-spacing:.1em;cursor:pointer;padding:6px 4px;white-space:nowrap}

.ac{position:relative}
.ac-list{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow);z-index:6;padding:4px;max-height:264px;overflow:auto}
.ac-opt{padding:8px 10px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.ac-opt small{color:var(--faint);font:500 11px var(--f-mono);white-space:nowrap}
.ac-opt.sel,.ac-opt:hover{background:var(--surface-2)}
.ac-opt mark{background:color-mix(in srgb,var(--sky) 28%,transparent);color:inherit;border-radius:2px}

/* ---------- data page ---------- */
.drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:26px 16px;border:1.5px dashed var(--line-strong);border-radius:var(--r);background:var(--surface-2);cursor:pointer;text-align:center;font-weight:600;margin-top:12px}
.drop:hover,.drop.over{border-color:var(--sky);background:color-mix(in srgb,var(--sky) 8%,var(--surface))}
.drop input{position:absolute;opacity:0;width:1px;height:1px}
.drop small{color:var(--faint);font:500 11.5px var(--f-mono);letter-spacing:.1em}
.imp-part{margin-top:14px}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
@media (max-width:520px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tile{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}
.tile b{font:700 26px/1 var(--f-display);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tile span{font:600 10.5px/1.2 var(--f-mono);letter-spacing:.1em;color:var(--muted)}
.tile.hl{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 7%,var(--surface))}
.progress{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line);margin:10px 0}
.progress i{display:block;height:100%;background:var(--st-win);width:0;transition:width .2s}
.radio-row{display:flex;flex-wrap:wrap;gap:8px 18px;margin:6px 0 12px;font-size:13.5px;font-weight:600}
.radio-row label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.radio-row input{accent-color:var(--primary);width:16px;height:16px}
.exp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:520px){.exp-grid{grid-template-columns:minmax(0,1fr)}}
.exp-grid .btn{height:auto;min-height:56px;padding:10px 14px;justify-content:flex-start;text-align:left;white-space:normal;line-height:1.2}
.exp-grid .btn small{display:block;font:500 11px var(--f-mono);color:var(--muted);letter-spacing:.06em;margin-top:3px}
.kv{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.kv span{font:600 11px/1.4 var(--f-mono);letter-spacing:.12em;color:var(--muted)}
.kv b{text-align:right;overflow-wrap:anywhere}
.gcg{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.gcg+.gcg{margin-top:10px}
.gcg label{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px;cursor:pointer}
.gcg label small{margin-left:auto;font:500 12px var(--f-mono);color:var(--muted)}
.gcg input{accent-color:var(--primary);width:16px;height:16px}
.gcg .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.set-tbl{width:100%;border-collapse:collapse;min-width:560px}
.set-tbl td{padding:5px 4px;vertical-align:middle}
.set-tbl .inp{height:36px}
.swatch{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--c);vertical-align:-2px}
.skel{display:flex;align-items:center;gap:12px;padding:28px 6px;color:var(--muted);font:600 12px var(--f-mono);letter-spacing:.12em}
.skel i{width:14px;height:14px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--sky);animation:spin .8s linear infinite;flex:none}
.skel.light{color:#C9D6F0;padding:12px 0}
.skel.light i{border-color:rgba(255,255,255,.25);border-top-color:#8CC4F2}

/* ---------- instructor: help topics, guided tour ---------- */
.ex-chip.help{display:inline-flex;align-items:center;gap:6px;color:var(--st-win);border-color:color-mix(in srgb,var(--st-win) 35%,var(--line));background:color-mix(in srgb,var(--st-win) 8%,var(--surface))}
.ans.help{border-color:color-mix(in srgb,var(--st-win) 35%,var(--line))}
.htopic{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.ht-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ht-t{flex:1;min-width:0;font:700 15px/1.2 var(--f-display);letter-spacing:.07em}
.ht-lim{margin:0;display:flex;align-items:center;gap:6px;font:600 11.5px/1.4 var(--f-mono);letter-spacing:.06em;color:var(--st-budget)}
.ht-chips{display:inline-flex;gap:6px;flex:none}
.ht-steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.45}
.ht-steps li::marker{font:700 13px var(--f-mono);color:var(--sky-ink)}
.help-cat{margin-bottom:18px}
.help-cat>.lbl{display:block;margin:0 0 10px 2px}
.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
@media (max-width:900px){.help-grid{grid-template-columns:minmax(0,1fr)}}
.htopic-card{padding:0}
.htopic-card>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;cursor:pointer;font:700 16px/1.2 var(--f-display);letter-spacing:.07em}
.htopic-card>summary::-webkit-details-marker{display:none}
.htopic-card[open]>summary{border-bottom:1px solid var(--line)}
.htopic-card .htopic{border:0;border-radius:0 0 var(--r) var(--r);background:transparent}
.htopic-card .ht-t{display:none}
.modal.welcome{text-align:left}
.modal.welcome .orb{width:46px;height:46px}
.coach-spot{position:fixed;z-index:80;border-radius:12px;pointer-events:none;box-shadow:0 0 0 3px #8CC4F2,0 0 0 9999px rgba(8,13,28,.58);transition:left .25s,top .25s,width .25s,height .25s;animation:fade .2s ease-out}
.coach-spot::after{content:"";position:absolute;inset:-8px;border-radius:16px;border:2px solid rgba(140,196,242,.7);animation:ring 1.8s ease-out infinite}
.coach-tip{position:fixed;z-index:81;background:var(--surface);color:var(--ink);border-radius:16px;padding:14px 14px 12px;box-shadow:var(--shadow-lg),var(--glow);display:flex;flex-direction:column;gap:10px;animation:pop .2s ease-out;transition:left .25s,top .25s}
.ct-top{display:flex;align-items:center;gap:10px}
.ct-n{font:600 11px/1 var(--f-mono);letter-spacing:.14em;color:var(--sky-ink)}
.ct-top .icon-btn{margin-left:auto}
.ct-t{margin:0;font-size:15.5px;line-height:1.5;font-weight:600}
.ct-acts{display:flex;align-items:center;gap:8px}

/* ---------- roles ---------- */
body.role-user .adm{display:none!important}
.role-chip{display:inline-flex;align-self:flex-start;padding:4px 8px;border-radius:6px;background:rgba(255,255,255,.1);color:var(--side-fg);font:600 10.5px/1 var(--f-mono);letter-spacing:.12em}
.role-chip.adm-c{background:rgba(140,196,242,.18);color:#BFE0FA}
.viewas-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-6px 0 18px;padding:10px 14px;border-radius:12px;background:#16295C;color:#EEF3FC;font:600 12px/1.4 var(--f-mono);letter-spacing:.06em}
.viewas-bar span{flex:1;min-width:200px}
.perm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px}
.perm-list li{display:flex;align-items:center;gap:8px}
.perm-list li.ok .ic{color:var(--st-win)} .perm-list li.no{color:var(--muted)} .perm-list li.no .ic{color:var(--st-loss)}
.perm-toggles{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.mini-chk.big{font-size:12.5px;color:var(--ink);white-space:normal;line-height:1.3}
.team-tbl{min-width:420px}
.team-tbl .t-email{font-weight:600;text-transform:none;overflow-wrap:anywhere}
.team-tbl select.inp{width:130px}
.team-add{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.team-add .inp:first-child{flex:1 1 220px}
.team-add select.inp{width:120px}

/* ---------- "save this change?" banner ---------- */
.overlay.banner-ov{justify-content:center;align-items:flex-start;padding:16px;padding-top:max(16px,env(safe-area-inset-top,0px));background:rgba(8,13,28,.5);z-index:60}
.confirm-banner{width:min(680px,100%);display:flex;gap:16px;align-items:flex-start;background:var(--surface);border-radius:18px;padding:20px 22px;box-shadow:var(--shadow-lg);border-top:5px solid var(--st-budget);animation:drop .2s ease-out}
.cb-ic{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--st-budget) 15%,transparent);color:var(--st-budget)}
.cb-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.cb-main h2{margin:0;font-size:26px}
.cb-rec{margin:0;font-weight:700;overflow-wrap:anywhere}
.cb-list{list-style:none;margin:4px 0 0;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:13.5px;max-height:240px;overflow:auto}
.cb-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cb-list b{font:600 11px/1.2 var(--f-mono);letter-spacing:.1em;color:var(--muted);min-width:150px}
.cb-list span{text-decoration:line-through;color:var(--faint);overflow-wrap:anywhere}
.cb-list span.to{text-decoration:none;color:var(--ink);font-weight:700}
.cb-list .ic{color:var(--faint)}
.cb-list .more-l{font:600 11px var(--f-mono);color:var(--muted)}
.cb-note{margin:0;font-size:13px;line-height:1.45;color:var(--muted)}
.cb-acts{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:6px}
.cb-acts .btn{height:44px;padding:0 20px}
@media (max-width:540px){.confirm-banner{flex-direction:column;padding:18px}.cb-acts .btn{flex:1}.cb-list b{min-width:0;width:100%}}
@keyframes drop{from{transform:translateY(-24px);opacity:.3}}

/* ---------- versions ---------- */
.vlist{display:flex;flex-direction:column;gap:8px}
.vrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.vrow.cur{border-color:color-mix(in srgb,var(--st-win) 45%,transparent);background:color-mix(in srgb,var(--st-win) 6%,var(--surface))}
.vrow.del{border-color:color-mix(in srgb,var(--st-loss) 40%,transparent)}
.vlab{display:grid;place-items:center;min-width:76px;height:30px;padding:0 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line-strong);font:700 12px/1 var(--f-mono);letter-spacing:.06em}
.vrow.cur .vlab{background:color-mix(in srgb,var(--st-win) 14%,var(--surface));color:var(--st-win);border-color:color-mix(in srgb,var(--st-win) 45%,transparent)}
.vrow.del .vlab{color:var(--st-loss)}
.vmeta{display:flex;flex-direction:column;gap:2px;min-width:0}
.vmeta b{font-size:13px}
.vmeta span{font:500 11.5px/1.35 var(--f-mono);color:var(--muted);letter-spacing:.02em;overflow-wrap:anywhere}
.vmeta .vchg{color:var(--ink)}
.vacts{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:600px){.vrow{grid-template-columns:auto minmax(0,1fr)}.vacts{grid-column:1/-1;justify-content:flex-start}}
.vgroup{padding:0}
.vgroup>summary{list-style:none;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;cursor:pointer}
.vgroup>summary::-webkit-details-marker{display:none}
.vg-t{flex:1 1 280px;min-width:0;font-weight:700;overflow-wrap:anywhere}
.vg-m{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.vg-b{padding:4px 18px 16px;border-top:1px solid var(--line);padding-top:14px}
.modal.wide-m{width:min(760px,100%)}
.vtable td:first-child{font:600 11px var(--f-mono);letter-spacing:.08em;color:var(--muted);white-space:nowrap}
.vtable td{white-space:normal}
.vtable tr.diff td{background:color-mix(in srgb,var(--st-budget) 10%,var(--surface))}
.vtable tbody tr{cursor:default}

/* read-only viewers */
body.ro .w{display:none!important}

/* print (active jobs list) */
.print-head{display:none}
@media print{
  @page{size:letter landscape;margin:.45in}
  body{background:#fff;color:#000;font-size:11px}
  .side,.topbar,.tabbar,.fab,.toasts,.ph,#jobs-top,.noprint,.overlay{display:none!important}
  .app{display:block} main{padding:0;max-width:none}
  .print-head{display:flex;align-items:center;gap:18px;background:#223D80;color:#fff;padding:12px 16px;margin-bottom:12px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-head img{height:34px}
  .print-head b{display:block;font:700 18px var(--f-display);letter-spacing:.06em}
  .print-head span{font:500 10px var(--f-mono)}
  .card{border:0;padding:0}
  .tbl-wrap.wide{display:block!important} .cards{display:none!important}
  .tbl th{position:static;background:#F1F3F8;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .tbl td,.tbl th{padding:5px 6px}
  .tbl td.job,.tbl td.addr{max-width:none}
  tr{break-inside:avoid}
}

@keyframes slide{from{transform:translateX(32px);opacity:.4}}
@keyframes pop{from{transform:translateY(8px);opacity:.3}}
@keyframes up{from{transform:translateY(40px);opacity:.4}}
@keyframes fade{from{opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes breathe{50%{opacity:.55}}
@keyframes ring{0%{transform:scale(.92);opacity:.9}100%{transform:scale(1.35);opacity:0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* TEST AI result (DATA & SETTINGS > CONNECTION) */
.ai-test{margin-top:12px;padding:12px 14px;border-radius:10px;background:var(--surface-2);border-left:4px solid var(--st-win);font-size:13px;line-height:1.5}
.ai-test.bad{border-left-color:var(--st-loss)}
.ai-test p{margin:0 0 6px} .ai-test p:last-child{margin-bottom:0}
.ai-test b .ic{display:inline-block;vertical-align:-3px;margin-right:4px} .ai-test.ok b .ic{color:var(--st-win)} .ai-test.bad b .ic{color:var(--st-loss)}
.ai-test .hint{word-break:break-word}
