/* Karnataka Gen-Z Survey 2026 dashboard. App stylesheet. */
:root{
  --navy:#0F2A52; --navy-2:#1A3A6E; --gold:#E5A823; --gold-shade:#C7901C; --cream:#F7F3E8; --slate:#5C6B85;
  --pos:#2E7D46; --neg:#C0392B;
  --bg:#F7F3E8; --surface:#FFFFFF; --surface-2:#FBF8F1; --surface-3:#F1EBDC;
  --ink:#1C2536; --ink-strong:#0F2A52; --muted:#5C6B85; --gold-ink:#8A6412;
  --line:#E7E0CF; --line-2:#D8CFBA; --grid:#EEE8DA;
  --bar:#1A3A6E; --bar-top:#E5A823; --bar-resid:#B0B7C3;
  --inc:#19AAE0; --bjp:#F57F17; --jds:#1E8E3E; --oth:#8A93A6; --und:#5C6B85; --wnv:#B0B7C3;
  --c1:#1A3A6E; --c2:#E5A823; --c3:#5C6B85; --c4:#8FA6CF; --c5:#C7901C; --c6:#B0B7C3; --c7:#0F2A52; --c8:#E3D3A8;
  --rt1:#2E7D46; --rt2:#8DBE98; --rt3:#D9D2BF; --rt4:#E2A397; --rt5:#C0392B; --rt6:#C8CDD6;
  --heat-rgb:26,58,110; --inc-rgb:25,170,224; --bjp-rgb:245,127,23; --pos-rgb:46,125,70; --neg-rgb:192,57,43; --gold-rgb:229,168,35;
  --shadow:0 1px 2px rgba(15,42,82,.05),0 6px 18px rgba(15,42,82,.06);
  --radius:14px;
  --f-head:'Montserrat','Noto Sans Kannada','Helvetica Neue',Inter,Arial,sans-serif;
  --f-body:'Helvetica Neue',Inter,Arial,'Noto Sans Kannada','Tunga','Nirmala UI',sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#0A1628; --surface:#111F38; --surface-2:#16284A; --surface-3:#1D3157;
  --ink:#E4E9F2; --ink-strong:#F5F7FB; --muted:#9DAAC2; --gold-ink:#F2C04F;
  --line:#22375C; --line-2:#2F4870; --grid:#1B2E50;
  --bar:#7F9CCB; --bar-top:#E5A823; --bar-resid:#56627A;
  --inc:#4FC3F7; --bjp:#FFA24D; --jds:#5DD47F; --oth:#A6AFC2; --und:#8C9AB3; --wnv:#5F6B82;
  --pos:#58B878; --neg:#F0776A;
  --c1:#7F9CCB; --c2:#E5A823; --c3:#9DAAC2; --c4:#3F5F99; --c5:#C7901C; --c6:#5C6B85; --c7:#C9D6EC; --c8:#8A6A2A;
  --rt1:#4FAF6C; --rt2:#2F6B45; --rt3:#56617A; --rt4:#8C4A40; --rt5:#E0645A; --rt6:#3A4760;
  --heat-rgb:127,156,203; --inc-rgb:79,195,247; --bjp-rgb:255,162,77; --pos-rgb:88,184,120; --neg-rgb:240,119,106;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.35);
  color-scheme:dark;
}
html[lang="kn"]{
  --f-head:'Noto Sans Kannada','Tunga','Nirmala UI','Montserrat','Helvetica Neue',Arial,sans-serif;
  --f-body:'Noto Sans Kannada','Tunga','Nirmala UI','Helvetica Neue',Inter,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--f-body);font-size:16.5px;line-height:1.55;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html[lang="kn"] body{line-height:1.7}
h1,h2,h3,h4{font-family:var(--f-head);color:var(--ink-strong);margin:0;letter-spacing:-.01em}
button,select,input,textarea{font-family:inherit;font-size:inherit;color:inherit}
a{color:var(--navy-2)}
:root[data-theme="dark"] a{color:var(--gold)}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:#0F1A38;padding:8px 12px;z-index:3000}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
[hidden]{display:none!important}

/* ---------- header ---------- */
.gz-header{background:linear-gradient(120deg,#0F2A52 0%,#132F5C 60%,#1A3A6E 100%);color:#fff;border-bottom:3px solid var(--gold)}
.gz-hwrap{max-width:1320px;margin:0 auto;padding:14px 22px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.gz-brand{display:flex;align-items:center;gap:16px;min-width:0}
.gz-mark{width:6px;height:44px;border-radius:3px;background:linear-gradient(180deg,#E5A823,#C7901C);flex:0 0 auto;display:block}
.gz-vrule{width:1px;height:46px;background:rgba(255,255,255,.22);flex:0 0 auto}
.gz-titles{min-width:0}
.gz-titles h1{color:#fff;font-size:21px;font-weight:800;line-height:1.2}
.gz-sub{margin:2px 0 7px;font-size:13.5px;color:rgba(255,255,255,.82)}
.gz-chips{display:flex;flex-wrap:wrap;gap:6px}
.dchip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;white-space:nowrap}
.dchip b{color:#F2C04F;font-weight:700}
.gz-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.hbtn{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:9px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:#fff;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.hbtn svg{width:16px;height:16px;flex:0 0 auto}
.hbtn:hover{background:var(--gold);border-color:var(--gold);color:#0F1A38}
.hbtn.on{background:var(--gold);border-color:var(--gold);color:#0F1A38}

/* ---------- sticky nav: tabs + filter bar ---------- */
.gz-nav{position:sticky;top:0;z-index:700;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 4px 14px rgba(15,42,82,.06)}
:root[data-theme="dark"] .gz-nav{box-shadow:0 4px 14px rgba(0,0,0,.35)}
.tabs{max-width:1320px;margin:0 auto;display:flex;gap:4px;padding:8px 16px 0;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.tab{flex:0 0 auto;border:0;background:transparent;padding:9px 13px 11px;font-size:14.5px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;font-family:var(--f-head)}
.tab:hover{color:var(--ink-strong)}
.tab.active{color:var(--ink-strong);border-bottom-color:var(--gold)}
.tab .tn{display:inline-block;min-width:18px;font-size:11px;font-weight:700;color:var(--gold-ink);margin-right:4px}
.fbar{max-width:1320px;margin:0 auto;padding:6px 16px 8px;border-top:1px solid var(--line)}
.fb-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fb-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:var(--surface-2);border-radius:9px;padding:6px 11px;font-weight:700;font-size:13.5px;cursor:pointer;color:var(--ink-strong)}
.fb-toggle svg{width:15px;height:15px}
.fb-count{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border-radius:10px;background:var(--gold);color:#0F1A38;font-size:12px;font-weight:800;padding:0 6px}
.fb-count:empty{display:none}
.fb-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1 1 auto;min-width:0}
.fchip{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(var(--gold-rgb),.6);background:rgba(var(--gold-rgb),.14);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600;cursor:pointer;max-width:100%}
.fchip span.x{font-weight:800;color:var(--gold-ink)}
.fb-reset{border:1px solid var(--line-2);background:transparent;border-radius:9px;padding:6px 11px;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--muted)}
.fb-reset:hover{color:var(--ink-strong);border-color:var(--ink-strong)}
.fb-panel{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.fb-dd{position:relative}
.fb-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--surface);border-radius:9px;padding:6px 10px;font-size:13.5px;cursor:pointer;max-width:260px}
.fb-btn .fb-dl{font-weight:700;color:var(--ink-strong)}
.fb-btn .fb-dv{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}
.fb-btn.act{border-color:var(--gold);background:rgba(var(--gold-rgb),.12)}
.fb-btn.act .fb-dv{color:var(--ink)}
.fb-btn svg{width:12px;height:12px;flex:0 0 auto;opacity:.7}
.fb-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:900;min-width:250px;max-width:320px;max-height:360px;overflow:auto;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 14px 40px rgba(15,42,82,.2);padding:8px}
.fb-opt{display:flex;align-items:flex-start;gap:9px;padding:7px 8px;border-radius:8px;font-size:14px;cursor:pointer;line-height:1.35}
.fb-opt:hover{background:var(--surface-3)}
.fb-opt input{margin-top:2px;accent-color:var(--navy-2);width:16px;height:16px;flex:0 0 auto}
:root[data-theme="dark"] .fb-opt input{accent-color:var(--gold)}
.fb-pop-foot{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);margin-top:6px;padding-top:7px}
.fb-pop-foot button{border:0;background:transparent;font-weight:700;font-size:13px;cursor:pointer;color:var(--navy-2);padding:5px 8px;border-radius:7px}
:root[data-theme="dark"] .fb-pop-foot button{color:var(--gold)}
.fb-pop-foot button:hover{background:var(--surface-3)}
.fb-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:13.5px;color:var(--muted)}
.fb-banner b{color:var(--ink-strong);font-weight:700}
.fb-warn{display:inline-flex;align-items:center;gap:6px;background:rgba(var(--neg-rgb),.1);color:var(--neg);border:1px solid rgba(var(--neg-rgb),.35);border-radius:999px;padding:2px 10px;font-weight:700;font-size:12.5px}
.fbar.collapsed .fb-panel{display:none}

/* ---------- layout ---------- */
.container{max-width:1320px;margin:0 auto;padding:22px 22px 40px}
.vhead{margin:4px 0 18px}
.vhead .eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:4px;font-family:var(--f-head)}
.vhead h2{font-size:27px;font-weight:800;line-height:1.2}
.vhead .lede{margin:6px 0 0;color:var(--muted);max-width:880px;font-size:15.5px}
.sec-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;margin:26px 0 12px}
.sec-title .sn{display:inline-flex;width:26px;height:26px;border-radius:7px;background:var(--gold);color:#0F1A38;font-size:13px;font-weight:800;align-items:center;justify-content:center}
.sec-sub{margin:-6px 0 12px;color:var(--muted);font-size:14.5px;max-width:900px}
.grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid>*{min-width:0}
.span2{grid-column:1/-1}

/* ---------- cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 18px 16px;min-width:0;position:relative}
.qhead{display:flex;gap:12px;align-items:flex-start}
.qnum{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:28px;padding:0 8px;border-radius:8px;background:var(--navy);color:#fff;font-family:var(--f-head);font-weight:800;font-size:13px;letter-spacing:.02em;margin-top:2px}
:root[data-theme="dark"] .qnum{background:var(--gold);color:#0F1A38}
.qnum.alt{background:var(--gold);color:#0F1A38}
.qtw{min-width:0;flex:1 1 auto}
.kicker{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:2px;font-family:var(--f-head)}
.qtext{font-size:17px;font-weight:700;line-height:1.35;font-family:var(--f-head)}
html[lang="kn"] .qtext{font-size:17px;line-height:1.5}
.qmeta{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--surface-3);color:var(--muted);border:1px solid var(--line)}
.pill.pick{background:rgba(var(--gold-rgb),.14);border-color:rgba(var(--gold-rgb),.45);color:var(--gold-ink)}
.qtools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 6px}
.qtools label{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--muted)}
select.sel{appearance:none;-webkit-appearance:none;border:1px solid var(--line-2);background:var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235C6B85' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center;border-radius:9px;padding:6px 30px 6px 10px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;max-width:100%}
.btn-g{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:transparent;border-radius:9px;padding:6px 10px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;margin-left:auto}
.btn-g svg{width:14px;height:14px}
.btn-g:hover{color:var(--ink-strong);border-color:var(--ink-strong)}
.viz{position:relative;margin-top:6px}
.chart-box{position:relative;width:100%}
.tbl{display:none;margin-top:8px;overflow-x:auto}
body.tables .viz{display:none}
body.tables .tbl{display:block}
.insight{margin:12px 0 0;padding:10px 13px;border-left:4px solid var(--gold);background:rgba(var(--gold-rgb),.09);border-radius:0 9px 9px 0;font-size:15px;line-height:1.55;color:var(--ink)}
.insight b{color:var(--ink-strong);font-weight:700}
.legend-note{margin:8px 0 0;font-size:12.5px;color:var(--muted)}
.legend-note .mk{font-weight:800}
.empty{padding:18px;color:var(--muted);font-style:italic;text-align:center}
.lgd{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0 2px;font-size:13px;color:var(--ink)}
.lgd span{display:inline-flex;align-items:center;gap:6px}
.lgd i{display:inline-block;width:12px;height:12px;border-radius:3px}
.lgd i.dot{border-radius:50%}

/* ---------- tables ---------- */
.gzt{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;font-variant-numeric:tabular-nums}
.gzt th{position:sticky;top:0;background:var(--navy);color:#fff;font-weight:700;font-size:13px;text-align:right;padding:8px 10px;white-space:nowrap;font-family:var(--f-head)}
:root[data-theme="dark"] .gzt th{background:#1D3157;color:#F2C04F}
.gzt th:first-child{text-align:left;border-top-left-radius:8px}
.gzt th:last-child{border-top-right-radius:8px}
.gzt td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.gzt td:first-child{text-align:left;white-space:normal;min-width:150px;font-weight:600;color:var(--ink)}
.gzt tr:nth-child(even) td{background:var(--surface-2)}
.gzt.sticky1 td:first-child,.gzt.sticky1 th:first-child{position:sticky;left:0;z-index:1}
.gzt.sticky1 td:first-child{background:var(--surface)}
.gzt.sticky1 tr:nth-child(even) td:first-child{background:var(--surface-2)}
.gzt.sticky1 th:first-child{z-index:2}
.gzt td.tot{font-weight:700;background:rgba(var(--gold-rgb),.08)}
.gzt th.tot{background:var(--navy-2)}
.gzt tr.grp td{background:var(--surface-3)!important;font-weight:700;color:var(--ink-strong);text-align:left;font-family:var(--f-head);font-size:13px;letter-spacing:.02em}
.gzt tr.netrow td{font-weight:700;border-top:2px solid var(--line-2)}
.gzt .h{background:rgba(var(--heat-rgb),var(--a,0))!important}
.gzt .h.hd{color:#fff}
:root[data-theme="dark"] .gzt .h.hd{color:#0A1628}
.gzt .dvp{background:rgba(var(--inc-rgb),var(--a,0))!important}
.gzt .dvn{background:rgba(var(--bjp-rgb),var(--a,0))!important}
.gzt .gp{background:rgba(var(--pos-rgb),var(--a,0))!important}
.gzt .gn{background:rgba(var(--neg-rgb),var(--a,0))!important}
.sig{font-size:11px;margin-left:3px;font-weight:800}
.sig.up{color:var(--pos)}
.sig.dn{color:var(--neg)}
.gzt .hd .sig.up,.gzt .hd .sig.dn{color:inherit}
.thinmk{color:var(--gold-ink);font-weight:800;margin-left:3px}
.tscroll{overflow-x:auto;max-width:100%;border-radius:8px}
.tscroll.tall{max-height:560px;overflow:auto}

/* ---------- overview ---------- */
.hero{background:linear-gradient(125deg,#0F2A52 0%,#1A3A6E 100%);color:#fff;border-radius:18px;padding:22px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(closest-side,rgba(229,168,35,.22),transparent)}
.hero .eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#F2C04F;font-family:var(--f-head)}
.hero h2{color:#fff;font-size:24px;line-height:1.3;margin:6px 0 4px;font-weight:800;max-width:980px}
.hero h2 b{color:#F2C04F}
.hero .ctx{font-size:14px;color:rgba(255,255,255,.78)}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px;position:relative;z-index:1}
.kpi{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 14px;min-width:0}
.kpi .kv{font-family:var(--f-head);font-size:28px;font-weight:800;line-height:1.1;color:#fff;letter-spacing:-.02em}
.kpi .kv small{font-size:15px;font-weight:700;color:rgba(255,255,255,.75)}
.kpi .kl{font-size:12.5px;color:rgba(255,255,255,.78);margin-top:4px;line-height:1.35}
.kpi .kbar{height:4px;border-radius:2px;margin-bottom:9px;width:36px}
.kpi.wide{grid-column:span 2}
.kpi .kt{font-size:15px;font-weight:700;color:#fff;line-height:1.3}
.rgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
@media (max-width:1240px){.rgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px;box-shadow:var(--shadow);min-width:0}
.rcard h4{font-size:15.5px;font-weight:800;margin-bottom:8px}
.vbar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--surface-3);gap:2px}
.vbar i{display:block;height:100%}
.rstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0 8px}
.rstat .v{font-family:var(--f-head);font-weight:800;font-size:19px;line-height:1.1}
.rstat .l{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px}
.rstat .l i{width:8px;height:8px;border-radius:2px;display:inline-block}
.rline{border-top:1px solid var(--line);padding-top:7px;margin-top:7px;font-size:13.5px;line-height:1.4}
.rline .l{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:block;margin-bottom:1px}
.ten{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ten li{display:flex;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:13px 14px;box-shadow:var(--shadow);min-width:0}
.ten .n{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#F2C04F;font-weight:800;display:flex;align-items:center;justify-content:center;font-family:var(--f-head);font-size:14px}
:root[data-theme="dark"] .ten .n{background:var(--gold);color:#0F1A38}
.ten p{margin:0;font-size:15px;line-height:1.5}
.ten p b{color:var(--ink-strong)}
.ten .go{display:inline-block;margin-top:4px;font-size:12.5px;font-weight:700;color:var(--gold-ink);cursor:pointer;background:none;border:0;padding:0}
.ten .go:hover{text-decoration:underline}

/* ---------- strips, dumbbell, ladder ---------- */
.strips{display:flex;flex-direction:column;gap:3px}
.strip-g{font-family:var(--f-head);font-weight:800;font-size:13px;color:var(--ink-strong);margin:12px 0 4px;text-transform:uppercase;letter-spacing:.06em}
.strip-g:first-child{margin-top:0}
.strip{display:grid;grid-template-columns:minmax(120px,210px) 1fr 74px;gap:10px;align-items:center;font-size:13.5px}
.strip .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.strip .sb{display:flex;height:20px;border-radius:4px;overflow:hidden;gap:2px;background:var(--surface-3)}
.strip .sb i{display:flex;align-items:center;justify-content:center;font-style:normal;font-size:11px;font-weight:700;color:#fff;overflow:visible;white-space:nowrap}
.strip .gap{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.gp-pos{color:var(--pos)} .gp-neg{color:var(--neg)}
.db-svg{width:100%;display:block;overflow:visible}
.db-svg text{font-family:var(--f-body);fill:var(--ink)}
.db-svg .ax{stroke:var(--line-2);stroke-width:1}
.db-svg .zero{stroke:var(--muted);stroke-width:1}
.db-svg .lnk{stroke:var(--line-2);stroke-width:4;stroke-linecap:round}
.db-svg .lab{font-size:12.5px;font-weight:700}
.db-svg .itm{font-size:13.5px;font-weight:600}
.db-svg .tick{font-size:11px;fill:var(--muted)}

/* ---------- verbatim wall ---------- */
.vw-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.vw-tools input[type=search]{flex:1 1 240px;min-width:0;border:1px solid var(--line-2);background:var(--surface-2);border-radius:9px;padding:8px 11px;font-size:15px}
.vw-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.tchip{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:4px 11px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted)}
.tchip.on{background:var(--navy);border-color:var(--navy);color:#fff}
:root[data-theme="dark"] .tchip.on{background:var(--gold);border-color:var(--gold);color:#0F1A38}
.vw-grid{columns:3 280px;column-gap:14px}
.quote{break-inside:avoid;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:13px 14px;margin:0 0 14px;position:relative}
.quote:before{content:"\201C";position:absolute;top:-6px;left:10px;font-size:44px;line-height:1;color:var(--gold);font-family:Georgia,serif}
.quote .qt{margin:10px 0 6px;font-size:15.5px;line-height:1.5;color:var(--ink)}
.quote .gl{font-size:13.5px;color:var(--muted);margin:0 0 8px}
.quote .gl b{font-weight:700;color:var(--ink)}
.quote .tags{display:flex;flex-wrap:wrap;gap:4px}
.quote .tags span{font-size:11.5px;font-weight:600;padding:1px 8px;border-radius:999px;background:rgba(var(--gold-rgb),.14);color:var(--gold-ink)}

/* ---------- studio & opportunity ---------- */
.ctrls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:6px 0 12px}
.ctrl{display:flex;flex-direction:column;gap:5px;min-width:0}
.ctrl>span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.ctrl .sel{width:100%}
.chk{display:inline-flex;gap:7px;align-items:center;font-size:14px;font-weight:600;cursor:pointer}
.poolhero{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}
.poolhero .big{font-family:var(--f-head);font-size:46px;font-weight:800;color:var(--ink-strong);line-height:1;letter-spacing:-.02em}
.poolhero p{margin:0;color:var(--ink);font-size:15px}
.focus{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.focus li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.focus .fi{width:34px;height:34px;border-radius:9px;background:var(--gold);color:#0F1A38;display:flex;align-items:center;justify-content:center;font-weight:800;font-family:var(--f-head)}
.focus h4{font-size:15px;margin-bottom:3px}
.focus p{margin:0;font-size:14.5px}
.rc-table td .mini{display:inline-block;height:8px;border-radius:4px;vertical-align:middle;margin-left:6px;background:var(--bar)}
.flag{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px}
.flag.fix{background:rgba(var(--neg-rgb),.12);color:var(--neg)}
.flag.def{background:rgba(var(--pos-rgb),.12);color:var(--pos)}
.flag.watch{background:rgba(var(--gold-rgb),.18);color:var(--gold-ink)}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:6px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:var(--shadow)}
.stat .v{font-family:var(--f-head);font-size:26px;font-weight:800;color:var(--ink-strong);line-height:1.1}
.stat .l{font-size:13px;color:var(--muted);margin-top:3px}
.qlist{list-style:none;margin:0;padding:0}
.qlist li{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.qlist li:last-child{border-bottom:0}
.qlist .qn{font-family:var(--f-head);font-weight:800;color:var(--gold-ink)}
.qlist .qt{font-weight:600;color:var(--ink)}
.qlist .qx{font-size:13px;color:var(--muted)}
.qlist .sub{padding-left:14px;font-size:14px}
.guide{margin:0;padding-left:20px}
.guide li{margin:6px 0}

/* ---------- notes, toast, modal, map ---------- */
.notes{margin-top:28px;background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--radius);padding:14px 16px}
.notes h3{font-size:15px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.notes textarea{width:100%;min-height:96px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface-2);padding:10px 12px;font-size:15px;line-height:1.5;resize:vertical}
.notes-status{font-size:12.5px;color:var(--muted);min-height:18px;margin-top:4px}
.notes-print{display:none;white-space:pre-wrap;font-size:13px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;font-weight:600;font-size:14px;opacity:0;pointer-events:none;transition:all .2s;z-index:2000;border:1px solid var(--gold)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal{position:fixed;inset:0;z-index:1900;background:rgba(10,20,40,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.modal .mbox{background:var(--surface);border-radius:14px;max-width:720px;width:100%;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.4)}
.modal textarea{width:100%;min-height:260px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;border:1px solid var(--line-2);border-radius:9px;background:var(--surface-2);padding:10px}
.modal .mfoot{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.btn{border:1px solid var(--navy);background:var(--navy);color:#fff;border-radius:9px;padding:7px 14px;font-weight:700;cursor:pointer}
.btn.sec{background:transparent;color:var(--ink-strong);border-color:var(--line-2)}
.maphost{min-height:560px;position:relative;isolation:isolate;z-index:0}
.map-msg{display:flex;align-items:center;justify-content:center;min-height:320px;color:var(--muted);font-weight:600;text-align:center;padding:20px}
.gz-footer{max-width:1320px;margin:0 auto;padding:18px 22px 30px;color:var(--muted);font-size:13px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line)}
.print-head{display:none}
.print-img{display:none}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ctrls{grid-template-columns:repeat(2,minmax(0,1fr))}
  .about-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .grid,.grid.g3{grid-template-columns:minmax(0,1fr)}
  .ten{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  body{font-size:16px}
  .gz-hwrap{padding:12px 14px}
  .gz-mark{height:34px;width:5px}
  .gz-vrule{display:none}
  .gz-titles h1{font-size:18px}
  .gz-actions{width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}
  .hbtn{padding:7px 10px;font-size:13px}
  .tabs{padding:6px 10px 0;flex-wrap:nowrap}
  .tab{font-size:14px;padding:8px 10px 10px}
  .fbar{padding:6px 10px 8px}
  .fb-pop{position:fixed;left:10px;right:10px;top:auto;max-width:none;min-width:0}
  .container{padding:14px 12px 30px}
  .vhead h2{font-size:22px}
  .card{padding:14px 13px}
  .qtext{font-size:16px}
  .rgrid,.kpis{grid-template-columns:minmax(0,1fr)}
  .kpi.wide{grid-column:auto}
  .hero{padding:18px 16px}
  .hero h2{font-size:20px}
  .ctrls,.about-grid{grid-template-columns:minmax(0,1fr)}
  .strip{grid-template-columns:minmax(90px,120px) 1fr 58px;font-size:12.5px}
  .btn-g{margin-left:0}
  .poolhero{grid-template-columns:1fr}
}

/* ---------- print ---------- */
@media print{
  @page{size:A4 portrait;margin:11mm}
  html,body{background:#fff!important;color:#1C2536!important;font-size:11.5pt}
  *{box-shadow:none!important}
  .gz-header{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .gz-actions,.tabs,.fb-top,.fb-panel,.qtools,.skip,.vw-tools,.vw-chips,.ctrls,.notes textarea,.notes-status,.toast,.modal,.ten .go,.gz-footer .np{display:none!important}
  .gz-nav{position:static;border:0;background:#fff}
  .fbar{border:0;padding:0 0 4px}
  .fb-banner{display:flex!important;font-size:10.5pt}
  .print-head{display:block;font-family:var(--f-head);font-weight:800;font-size:15pt;color:#0F2A52;margin:0 0 6px}
  .container{max-width:none;padding:8px 0}
  .card,.rcard,.ten li,.quote,.focus li,.hero,.stat{break-inside:avoid;page-break-inside:avoid}
  .card{border:1px solid #D8CFBA}
  .grid{gap:10px}
  .hero,.insight,.qnum,.gzt th,.gzt td,.vbar i,.strip .sb i,.kpi,.fchip,.pill,.flag,.ten .n,.sec-title .sn,.focus .fi,.tchip.on{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  canvas{display:none!important}
  .print-img{display:block!important;width:100%;height:auto}
  .tscroll,.tscroll.tall{max-height:none;overflow:visible}
  .gzt th{position:static}
  .notes{border:1px solid #D8CFBA}
  .notes-print{display:block}
  .notes.emptynotes{display:none}
  .maphost{min-height:0}
  a{color:#0F2A52}
}

/* ---- access gate and request indicator (server-computed build) ---- */
.gz-busy { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 900; background: transparent; overflow: hidden; }
.gz-busy span { display: block; height: 100%; width: 40%; background: var(--gold, #E5A823); animation: gzslide 0.9s ease-in-out infinite; }
@keyframes gzslide { 0% { transform: translateX(-100%); } 100% { transform: translateX(350%); } }
body.gated > .gz-header, body.gated > .gz-nav, body.gated > #main, body.gated > .gz-footer, body.gated > .skip { display: none; }
.gz-gate[hidden] { display: none; }
.gz-gate { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 24px; background: var(--cream, #F7F3E8); }
.gate-card { background: var(--card, #FFFFFF); border-radius: 14px; padding: 34px 30px; width: 100%; max-width: 420px;
  box-shadow: 0 10px 40px rgba(15, 42, 82, 0.10); border-top: 4px solid var(--gold, #E5A823); }
.gate-mark { display: block; width: 44px; height: 5px; border-radius: 3px; background: var(--gold, #E5A823); margin: 0 auto 18px; }
.gate-card h1 { font-size: 19px; margin: 0 0 6px; text-align: center; font-weight: 700; color: var(--navy, #0F2A52); font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif; }
.gate-sub { font-size: 13px; color: var(--muted, #6b7280); text-align: center; margin: 0 0 22px; }
.gate-card label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 6px; color: var(--ink, #374151); }
.gate-card input[type=password] { width: 100%; padding: 12px 13px; border: 1px solid var(--line, #d1d5db); border-radius: 10px; font-size: 16px; outline: none; background: var(--card, #fff); color: var(--ink, #111); }
.gate-card input[type=password]:focus { border-color: var(--navy, #0F2A52); box-shadow: 0 0 0 3px rgba(15, 42, 82, 0.12); }
.gate-card button { width: 100%; margin-top: 16px; padding: 12px; background: var(--navy, #0F2A52); color: #fff; border: none; border-radius: 10px; font-size: 15px; font-weight: 600; cursor: pointer; }
.gate-card button:disabled { background: #9ca3af; cursor: not-allowed; }
.gate-err { color: #b91c1c; font-size: 13px; margin-top: 12px; min-height: 18px; text-align: center; }
.gate-foot { font-size: 11px; color: var(--muted, #9ca3af); text-align: center; margin: 18px 0 0; }
