  @font-face { font-family:'Aeonik'; src:url('assets/fonts/Aeonik-Light.otf') format('opentype'); font-weight:300; font-display:swap; }
  @font-face { font-family:'Aeonik'; src:url('assets/fonts/Aeonik-Regular.otf') format('opentype'); font-weight:400; font-display:swap; }
  @font-face { font-family:'Aeonik'; src:url('assets/fonts/Aeonik-Medium.otf') format('opentype'); font-weight:500; font-display:swap; }

  :root {
    --ink:#06070A; --ink-2:#0b0d11; --red:#FF2E00; --ember:#FF6A3D;
    --teal:#1AA0B0; --teal-br:#3AD6E3; --teal-d:#005D67;
    --text:#EDEEF0; --mist:#9AA0A8; --dim:#5A5E66;
    --glass:rgba(255,255,255,0.05); --glass-2:rgba(255,255,255,0.03); --line:rgba(255,255,255,0.10); --line-2:rgba(255,255,255,0.06);
    --panel:linear-gradient(180deg, rgba(16,18,22,0.62), rgba(10,12,15,0.72));
    --amber:#E8B04B; --pos:#1AA0B0; --neg:#FF6A3D;
  }
  * { box-sizing:border-box; }
  html, body { margin:0; height:100%; }
  body { font-family:'Aeonik', Arial, sans-serif; background:var(--ink); color:var(--text); -webkit-font-smoothing:antialiased; overflow:hidden; }
  ::-webkit-scrollbar { width:9px; height:9px; } ::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.09); border-radius:5px; } ::-webkit-scrollbar-track { background:transparent; }
  button { font-family:inherit; cursor:pointer; }
  .ic { width:20px; height:20px; } .ic-sm { width:15px; height:15px; }

  #root { height:100vh; display:flex; position:relative; }
  .bg-glow { position:fixed; inset:0; pointer-events:none; background:radial-gradient(60% 50% at 80% 8%, rgba(26,160,176,0.05) 0%, rgba(26,160,176,0) 60%); }

  /* ---------------- RAIL ---------------- */
  .rail { width:64px; flex-shrink:0; background:var(--panel); -webkit-backdrop-filter:blur(28px); backdrop-filter:blur(28px); border-right:1px solid var(--line); display:flex; flex-direction:column; transition:width .18s ease; z-index:5; }
  .rail.open { width:232px; }
  .rail-top { display:flex; align-items:center; justify-content:center; padding:20px 18px; height:56px; }
  .rail.open .rail-top { justify-content:space-between; }
  .rail-wm { height:14px; display:none; }
  .rail.open .rail-wm { display:block; }
  .rail-collapse { background:none; border:0; color:var(--dim); display:flex; padding:4px; border-radius:6px; }
  .rail-collapse:hover { color:var(--mist); background:var(--glass); }
  .rail-nav { display:flex; flex-direction:column; gap:3px; padding:14px 10px; flex:1; }
  .rail-item { position:relative; display:flex; align-items:center; gap:13px; padding:11px 12px; background:none; border:0; color:var(--mist); border-radius:9px; text-align:left; transition:background .14s, color .14s; white-space:nowrap; overflow:hidden; }
  .rail-item:hover { background:var(--glass); color:var(--text); }
  .rail-item.sel { color:var(--text); background:var(--glass); }
  .rail-item.sel::before { content:''; position:absolute; left:0; top:8px; bottom:8px; width:2.5px; border-radius:2px; background:var(--teal-br); box-shadow:0 0 8px rgba(58,214,227,0.6); }
  .rail-ic { display:flex; flex-shrink:0; }
  .rail-lb { font-size:14px; opacity:0; transition:opacity .12s; }
  .rail.open .rail-lb { opacity:1; }
  .rail-foot { padding:12px 10px; border-top:1px solid var(--line-2); }
  .userchip { display:flex; align-items:center; gap:11px; width:100%; background:none; border:0; padding:8px; border-radius:9px; color:var(--text); }
  .userchip:hover { background:var(--glass); }
  .ava { width:30px; height:30px; flex-shrink:0; border-radius:8px; background:linear-gradient(135deg, var(--teal-d), var(--teal)); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:500; color:#fff; }
  .userchip-txt { display:flex; flex-direction:column; text-align:left; line-height:1.3; overflow:hidden; opacity:0; transition:opacity .12s; }
  .rail.open .userchip-txt { opacity:1; }
  .userchip-txt b { font-size:13px; font-weight:500; } .userchip-txt span { font-size:11px; color:var(--mist); }

  /* ---------------- FRAME / TOP ---------------- */
  .frame { flex:1; display:flex; flex-direction:column; min-width:0; position:relative; z-index:1; }
  .topbar { height:56px; flex-shrink:0; display:flex; align-items:center; gap:22px; padding:0 22px; background:var(--glass-2); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); border-bottom:1px solid var(--line); }
  .bc { font-size:14px; display:flex; align-items:center; gap:9px; }
  .bc-dim { color:var(--dim); } .bc-sep { color:var(--dim); }
  .ctx { margin-left:4px; }
  .assetsw { display:flex; align-items:center; gap:7px; background:var(--glass); border:1px solid var(--line); color:var(--text); border-radius:8px; padding:6px 11px; font-size:13px; }
  .assetsw:hover { border-color:var(--teal); }
  .asset-tk { font-weight:500; letter-spacing:0.02em; }
  .top-right { margin-left:auto; display:flex; align-items:center; gap:18px; }
  .asof { font-size:12px; color:var(--dim); } .asof b { color:var(--mist); font-weight:400; }
  .live { display:flex; align-items:center; gap:7px; font-size:11px; letter-spacing:0.14em; color:var(--mist); }
  .live-dot { width:7px; height:7px; border-radius:50%; background:var(--teal-br); box-shadow:0 0 0 0 rgba(58,214,227,.5); animation:pulse 2.6s infinite; }
  @keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(58,214,227,.5)} 70%{box-shadow:0 0 0 6px rgba(58,214,227,0)} 100%{box-shadow:0 0 0 0 rgba(58,214,227,0)} }
  .iconbtn { background:none; border:0; color:var(--mist); display:flex; padding:7px; border-radius:7px; }
  .iconbtn:hover { color:var(--text); background:var(--glass); }

  .canvas { flex:1; min-height:0; overflow:hidden; position:relative; }
  @keyframes fadeup { from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none} }

  /* ---------------- DRAWER ---------------- */
  .drawer { width:0; flex-shrink:0; background:var(--panel); -webkit-backdrop-filter:blur(28px); backdrop-filter:blur(28px); border-left:1px solid transparent; overflow:hidden; transition:width .18s ease; }
  .drawer.show { width:320px; border-left-color:var(--line); }
  .drawer-h { display:flex; align-items:center; justify-content:space-between; padding:18px 20px; font-size:13px; font-weight:500; border-bottom:1px solid var(--line-2); white-space:nowrap; }
  .readout { padding:18px 20px; }
  .ro-empty { font-size:13px; color:var(--dim); }
  .ro-date { font-size:12px; color:var(--mist); letter-spacing:0.04em; margin-bottom:14px; }
  .ro-row { display:flex; align-items:center; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line-2); font-size:13px; }
  .ro-k { display:flex; align-items:center; gap:9px; color:var(--mist); } .ro-k i { width:8px; height:8px; border-radius:2px; } .ro-row b { font-weight:500; font-variant-numeric:tabular-nums; }

  /* ============ ASK ============ */
  .ask { height:100%; display:flex; flex-direction:column; }
  .ask-scroll { flex:1; overflow-y:auto; }
  .ask-thread { max-width:780px; margin:0 auto; padding:34px 28px 20px; display:flex; flex-direction:column; gap:26px; }
  .msg { display:flex; gap:14px; }
  .msg.user { justify-content:flex-end; }
  .msg.user .bubble { background:var(--glass); border:1px solid var(--line); border-radius:14px 14px 4px 14px; padding:13px 17px; max-width:80%; font-size:14px; line-height:1.5; }
  .msg.user .bubble p { margin:0; }
  .agent-mark { width:30px; height:30px; flex-shrink:0; border-radius:8px; background:linear-gradient(135deg, var(--teal-d), var(--teal)); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:500; color:#fff; }
  .agent-body { flex:1; min-width:0; }
  .ans { font-size:14.5px; line-height:1.62; } .ans p { margin:0; } .ans b { font-weight:500; color:#fff; }
  .refuse { font-size:14px; line-height:1.6; color:var(--mist); border-left:2px solid var(--ember); padding:4px 0 4px 16px; }
  .refuse-tag { display:inline-block; font-size:10px; letter-spacing:0.16em; color:var(--ember); margin-bottom:8px; }
  .ans-chart { margin-top:16px; border:1px solid var(--line); border-radius:12px; background:var(--glass-2); overflow:hidden; }
  .ans-chart-head { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--line-2); font-size:13px; font-weight:500; }
  .mini-open { display:flex; align-items:center; gap:6px; background:none; border:0; color:var(--teal-br); font-size:12px; }
  .mini-open:hover { color:#fff; }
  .ans-canvas { width:100%; height:170px; display:block; }
  .factcard { margin-top:16px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
  .factcard-head { display:flex; align-items:center; justify-content:space-between; padding:11px 16px; background:var(--glass); font-size:11px; letter-spacing:0.14em; color:var(--mist); }
  .prov-key { display:flex; align-items:center; gap:10px; font-size:10px; letter-spacing:0.1em; } .prov-key i { width:7px; height:7px; border-radius:50%; margin-right:3px; display:inline-block; }
  .pv.in { background:var(--teal-br); } .pv.der { background:var(--amber); } .pv.mis { background:var(--dim); }
  .fact-row { display:grid; grid-template-columns:1fr auto auto; gap:16px; align-items:center; padding:12px 16px; border-top:1px solid var(--line-2); font-size:13.5px; }
  .fact-k { color:var(--mist); } .fact-v { font-weight:500; font-variant-numeric:tabular-nums; } .fact-v.mis { color:var(--dim); }
  .prov { font-size:9.5px; letter-spacing:0.1em; padding:3px 7px; border-radius:5px; }
  .prov.in { background:rgba(58,214,227,0.12); color:var(--teal-br); } .prov.derived { background:rgba(232,176,75,0.14); color:var(--amber); } .prov.missing { background:rgba(90,94,102,0.18); color:var(--dim); }
  .cites { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
  .cite { display:flex; align-items:center; gap:7px; background:var(--glass); border:1px solid var(--line); color:var(--mist); border-radius:7px; padding:7px 11px; font-size:12px; }
  .cite:hover { border-color:var(--teal); color:var(--text); }
  .composer { border-top:1px solid var(--line); padding:18px 28px 20px; }
  .composer-box { max-width:780px; margin:0 auto; background:var(--glass); border:1px solid var(--line); border-radius:14px; transition:border-color .15s; }
  .composer-box:focus-within { border-color:var(--teal); box-shadow:0 0 0 3px rgba(26,160,176,0.12); }
  .composer-in { width:100%; background:none; border:0; color:var(--text); font-size:14.5px; line-height:1.5; padding:15px 17px 6px; resize:none; outline:none; max-height:140px; }
  .composer-in::placeholder { color:var(--dim); }
  .composer-bar { display:flex; align-items:center; justify-content:space-between; padding:8px 12px 10px 16px; }
  .scope { background:none; border:0; color:var(--mist); font-size:12px; } .scope-tk { color:var(--teal-br); font-weight:500; }
  .send { width:34px; height:34px; border:0; border-radius:9px; background:linear-gradient(180deg,#fff,#E6E6E6); color:#0C0D0F; display:flex; align-items:center; justify-content:center; }
  .send:hover { filter:brightness(1.04); }
  .suggest { max-width:780px; margin:14px auto 0; display:flex; flex-wrap:wrap; gap:8px; }
  .chip { background:var(--glass-2); border:1px solid var(--line-2); color:var(--mist); border-radius:999px; padding:7px 14px; font-size:12.5px; }
  .chip:hover { border-color:var(--line); color:var(--text); }

  /* ============ CHARTS ============ */
  .charts { height:100%; display:grid; grid-template-columns:248px 1fr; }
  .metricbar { border-right:1px solid var(--line); overflow-y:auto; }
  .metricbar-h { display:flex; align-items:center; gap:9px; padding:18px 18px 14px; font-size:13px; color:var(--mist); position:sticky; top:0; background:var(--ink); }
  .tree { padding:0 10px 20px; }
  .cat { margin-bottom:14px; }
  .cat-h { font-size:10.5px; letter-spacing:0.16em; color:var(--dim); padding:6px 10px; }
  .m-item { display:flex; align-items:center; gap:10px; width:100%; background:none; border:0; color:var(--mist); padding:8px 10px; border-radius:7px; font-size:13px; text-align:left; }
  .m-item:hover { background:var(--glass); color:var(--text); }
  .m-item .m-dot { width:8px; height:8px; border-radius:2px; border:1px solid var(--dim); flex-shrink:0; }
  .m-item.on { color:var(--text); } .m-item.on .m-dot { background:var(--teal-br); border-color:var(--teal-br); box-shadow:0 0 6px rgba(58,214,227,0.5); }
  .chart-main { display:flex; flex-direction:column; min-width:0; }
  .chart-head { display:flex; align-items:center; justify-content:space-between; padding:18px 24px; gap:16px; flex-wrap:wrap; }
  .chart-title { display:flex; align-items:baseline; gap:16px; } .chart-title b { font-size:16px; font-weight:500; }
  #legend { display:flex; gap:14px; } .lg { display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--mist); font-style:normal; } .lg span { width:10px; height:2.5px; border-radius:2px; }
  .chart-tools { display:flex; align-items:center; gap:10px; }
  .ranges { display:flex; background:var(--glass); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
  .rng { background:none; border:0; color:var(--mist); padding:7px 13px; font-size:12.5px; border-right:1px solid var(--line-2); }
  .rng:last-child { border-right:0; } .rng.on { background:rgba(26,160,176,0.14); color:var(--teal-br); }
  .btn-line { display:flex; align-items:center; gap:7px; background:var(--glass); border:1px solid var(--line); color:var(--text); border-radius:8px; padding:7px 13px; font-size:12.5px; }
  .btn-line:hover { border-color:var(--mist); } .btn-line.accent { background:linear-gradient(180deg,#fff,#E6E6E6); color:#0C0D0F; border-color:transparent; }
  .chart-stage { flex:1; min-height:0; padding:6px 18px 20px; } #bigchart { width:100%; height:100%; display:block; }

  /* ============ SIGNALS ============ */
  .signals { height:100%; overflow-y:auto; padding:28px; max-width:1180px; margin:0 auto; }
  .regime { display:flex; justify-content:space-between; gap:30px; border:1px solid var(--line); border-radius:16px; padding:32px 34px; background:var(--glass-2); position:relative; overflow:hidden; }
  .regime::after { content:''; position:absolute; right:-60px; top:-60px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle, rgba(26,160,176,0.12), rgba(26,160,176,0) 70%); }
  .regime-hot::after { background:radial-gradient(circle, rgba(255,46,0,0.16), rgba(255,46,0,0) 70%); }
  .regime-k { font-size:11px; letter-spacing:0.18em; color:var(--dim); }
  .regime-state { font-size:58px; font-weight:300; letter-spacing:-0.02em; margin-top:14px; line-height:1; }
  .regime-hot .regime-state { color:var(--red); }
  .regime-sub { font-size:14px; color:var(--mist); margin-top:10px; }
  .regime-r { display:flex; gap:34px; align-items:flex-start; position:relative; z-index:1; }
  .rm { display:flex; flex-direction:column; gap:8px; } .rm span { font-size:10.5px; letter-spacing:0.12em; color:var(--dim); } .rm b { font-size:26px; font-weight:400; font-variant-numeric:tabular-nums; }
  .sig-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:18px; }
  .sig { border:1px solid var(--line); border-radius:13px; padding:18px 20px; background:var(--glass-2); }
  .sig-hot { border-color:rgba(255,46,0,0.4); box-shadow:inset 0 0 0 1px rgba(255,46,0,0.08); }
  .sig-top { display:flex; align-items:center; justify-content:space-between; }
  .sig-name { font-size:13px; color:var(--mist); }
  .sig-state { font-size:10.5px; letter-spacing:0.08em; padding:3px 9px; border-radius:999px; background:var(--glass); color:var(--mist); }
  .sig-state.pos { color:var(--teal-br); background:rgba(58,214,227,0.12); } .sig-state.neg { color:var(--ember); background:rgba(255,106,61,0.12); } .sig-state.hot { color:var(--red); background:rgba(255,46,0,0.14); }
  .sig-val { font-size:30px; font-weight:400; letter-spacing:-0.02em; margin:14px 0 6px; font-variant-numeric:tabular-nums; }
  .sig-val.pos { color:var(--teal-br); } .sig-val.neg { color:var(--ember); } .sig-val.hot { color:var(--red); }
  .sig-note { font-size:12px; color:var(--dim); }
  .sig-hist { margin-top:14px; border:1px solid var(--line); border-radius:13px; padding:18px 20px; background:var(--glass-2); }
  .sig-hist-h { font-size:12px; color:var(--mist); margin-bottom:8px; } #histcv { width:100%; height:120px; display:block; }

  /* ============ FINANCIALS ============ */
  .financials { height:100%; overflow-y:auto; padding:28px; max-width:1040px; margin:0 auto; }
  .fin-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
  .fin-co { display:flex; align-items:center; gap:16px; }
  .fin-tk { font-size:15px; font-weight:500; color:#fff; background:var(--glass); border:1px solid var(--line); border-radius:8px; padding:9px 13px; }
  .fin-co b { font-size:17px; font-weight:500; } .fin-src { display:block; font-size:12px; color:var(--dim); margin-top:3px; }
  .fin-period { display:flex; gap:6px; }
  .period { background:var(--glass); border:1px solid var(--line); color:var(--mist); border-radius:7px; padding:7px 12px; font-size:12.5px; }
  .period.on { background:rgba(26,160,176,0.14); color:var(--teal-br); border-color:transparent; }
  .fin-table { border:1px solid var(--line); border-radius:13px; overflow:hidden; }
  .fin-row { display:grid; grid-template-columns:1fr 130px 130px 64px; align-items:center; padding:13px 20px; border-top:1px solid var(--line-2); font-size:13.5px; }
  .fin-row:first-child { border-top:0; }
  .fin-th { background:var(--glass); font-size:11px; letter-spacing:0.1em; color:var(--dim); }
  .fin-th span { text-align:right; } .fin-th span:first-child { text-align:left; }
  .fin-k { color:var(--text); } .fin-a, .fin-b { text-align:right; font-variant-numeric:tabular-nums; } .fin-a { font-weight:500; } .fin-b { color:var(--mist); } .fin-a.mis { color:var(--dim); font-weight:400; }
  .fin-prov { justify-self:end; font-size:9.5px; letter-spacing:0.08em; padding:3px 7px; border-radius:5px; border:0; }
  .fin-prov.in { background:rgba(58,214,227,0.12); color:var(--teal-br); } .fin-prov.derived { background:rgba(232,176,75,0.14); color:var(--amber); } .fin-prov.missing { background:rgba(90,94,102,0.18); color:var(--dim); }
  .fin-prov.in:hover, .fin-prov.derived:hover { filter:brightness(1.2); }
  .prov-legend { display:flex; gap:20px; margin-top:18px; font-size:11.5px; color:var(--dim); align-items:center; }
  .prov-legend i { margin:0 7px 0 0; }

  /* ============ DOCUMENTS ============ */
  .documents { height:100%; display:grid; grid-template-columns:264px 1fr; }
  .doclist { border-right:1px solid var(--line); overflow-y:auto; padding:10px; }
  .doclist-h { font-size:11px; letter-spacing:0.16em; color:var(--dim); padding:12px 12px 10px; }
  .doc-item { display:flex; flex-direction:column; gap:4px; width:100%; text-align:left; background:none; border:0; border-radius:9px; padding:12px; color:var(--text); }
  .doc-item:hover { background:var(--glass); } .doc-item.on { background:var(--glass); box-shadow:inset 2.5px 0 0 var(--teal-br); }
  .doc-type { font-size:10px; letter-spacing:0.1em; color:var(--teal-br); }
  .doc-tt { font-size:13.5px; font-weight:500; } .doc-meta { font-size:11.5px; color:var(--dim); }
  .docreader { display:flex; flex-direction:column; min-width:0; }
  .doc-bar { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; border-bottom:1px solid var(--line); }
  .doc-bar-l b { font-size:14px; font-weight:500; } .doc-bar-l span { display:block; font-size:11.5px; color:var(--dim); margin-top:2px; }
  .doc-pages { font-size:12px; color:var(--mist); background:var(--glass); border:1px solid var(--line); border-radius:7px; padding:6px 11px; }
  .doc-page { flex:1; overflow-y:auto; padding:28px; display:flex; justify-content:center; }
  .pg { width:100%; max-width:680px; background:#0e0f13; border:1px solid var(--line); border-radius:6px; padding:48px 54px; }
  .pg-h { font-size:11px; letter-spacing:0.16em; color:var(--dim); } .pg-title { font-size:20px; font-weight:400; margin:8px 0 26px; letter-spacing:-0.01em; }
  .pg-para { font-size:13.5px; line-height:1.75; color:var(--mist); margin-bottom:16px; }
  .pg-hi { color:var(--text); } .pg-hi mark, mark { background:rgba(58,214,227,0.22); color:#fff; border-radius:2px; padding:0 2px; box-shadow:0 0 0 1px rgba(58,214,227,0.3); }
  .pg-hi { scroll-margin-top:40px; }

  /* ============ MODAL / EXPORT ============ */
  .modal { position:fixed; inset:0; z-index:40; display:grid; place-items:center; }
  .modal-bg { position:absolute; inset:0; background:rgba(4,5,8,0.7); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
  .modal-card { position:relative; width:min(92vw,720px); background:var(--panel); -webkit-backdrop-filter:blur(28px); backdrop-filter:blur(28px); border:1px solid var(--line); border-radius:16px; padding:22px; }
  .modal-h { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; } .modal-h b { font-size:15px; font-weight:500; }
  .export-frame { border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#0a0b0e; aspect-ratio:16/9; }
  #exportcv { width:100%; height:100%; display:block; }
  .export-opts { display:flex; align-items:center; justify-content:space-between; margin-top:18px; }
  .seg { display:flex; background:var(--glass); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
  .seg button { background:none; border:0; color:var(--mist); padding:8px 14px; font-size:12.5px; border-right:1px solid var(--line-2); } .seg button:last-child { border-right:0; } .seg button.on { background:rgba(26,160,176,0.14); color:var(--teal-br); }
  .btn-primary { display:flex; align-items:center; gap:8px; background:linear-gradient(180deg,#fff,#E6E6E6); color:#0C0D0F; border:0; border-radius:9px; padding:11px 18px; font-size:14px; font-weight:500; }
  .btn-primary:hover { filter:brightness(1.03); }

  .empty { display:grid; place-items:center; height:100%; color:var(--dim); font-size:14px; }
  .mono { font-family:'IBM Plex Mono', ui-monospace, monospace; font-size:0.92em; letter-spacing:-0.01em; }

  /* ============ LIGHT THEME ============ */
  body.light {
    --ink:#F5F4F2; --ink-2:#ECEAE4; --text:#16181C; --mist:#5C6066; --dim:#8C887E;
    --teal:#0A7A88; --teal-br:#0E8A99;
    --glass:rgba(0,0,0,0.04); --glass-2:rgba(0,0,0,0.022); --line:rgba(0,0,0,0.12); --line-2:rgba(0,0,0,0.07);
    --panel:linear-gradient(180deg, rgba(255,255,255,0.78), rgba(245,244,242,0.86));
  }
  body.light .bg-glow { background:radial-gradient(60% 50% at 80% 8%, rgba(0,93,103,0.06) 0%, rgba(0,93,103,0) 60%); }
  body.light .live-dot, body.light .rail-item.sel::before { box-shadow:none; }
  body.light .agent-mark, body.light .ava, body.light .pf-ava { background:linear-gradient(135deg, var(--teal-d), var(--teal)); }
  body.light .send, body.light .btn-primary, body.light .btn-line.accent { background:linear-gradient(180deg,#2a2d33,#16181C); color:#fff; }
  body.light .pf-badge, body.light .sig-state.pos, body.light .prov.in, body.light .fin-prov.in { background:rgba(10,122,136,0.14); color:#0A7A88; }
  body.light .pg { background:#fff; }
  body.light mark, body.light .pg-hi mark { background:rgba(10,122,136,0.18); color:#16181C; box-shadow:0 0 0 1px rgba(10,122,136,0.3); }
  body.light .ans b, body.light .fin-co b { color:#000; }
  body.light .rng.on, body.light .period.on, body.light .pf-seg button.on, body.light .seg button.on { background:rgba(10,122,136,0.14); color:#0A7A88; }

  /* ============ PROFILE ============ */
  .profile { height:100%; overflow-y:auto; padding:34px; max-width:980px; margin:0 auto; }
  .pf-head { display:flex; align-items:center; gap:24px; padding-bottom:28px; border-bottom:1px solid var(--line); }
  .pf-ava { width:76px; height:76px; flex-shrink:0; border-radius:18px; background:linear-gradient(135deg,var(--teal-d),var(--teal)); display:flex; align-items:center; justify-content:center; font-size:27px; font-weight:500; color:#fff; }
  .pf-id { flex:1; min-width:0; }
  .pf-id h2 { font-size:26px; font-weight:400; letter-spacing:-0.02em; margin:0; }
  .pf-sub { display:flex; align-items:center; gap:12px; margin-top:9px; color:var(--mist); font-size:13.5px; flex-wrap:wrap; }
  .pf-dot { color:var(--dim); }
  .pf-badge { font-size:11px; letter-spacing:0.1em; padding:4px 11px; border-radius:999px; background:rgba(58,214,227,0.12); color:var(--teal-br); }
  .pf-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:24px; }
  .pf-card { border:1px solid var(--line); border-radius:14px; background:var(--glass-2); padding:22px; }
  .pf-card.full { grid-column:1 / -1; }
  .pf-card-h { font-size:11px; letter-spacing:0.16em; color:var(--dim); margin-bottom:16px; }
  .pf-row { display:flex; align-items:center; justify-content:space-between; padding:11px 0; border-top:1px solid var(--line-2); font-size:13.5px; }
  .pf-row:first-of-type { border-top:0; }
  .pf-k { color:var(--mist); } .pf-v { font-weight:500; font-variant-numeric:tabular-nums; } .pf-v.ok { color:var(--teal-br); }
  .pf-tiernote { font-size:12.5px; color:var(--dim); line-height:1.5; margin:4px 0 14px; }
  .pf-unlocks { display:flex; flex-wrap:wrap; gap:7px; }
  .pf-unlock { font-size:11.5px; color:var(--mist); background:var(--glass); border:1px solid var(--line-2); border-radius:6px; padding:5px 10px; }
  .pf-unlock.dim { color:var(--dim); }
  .pf-seg { display:flex; gap:6px; }
  .pf-seg button { flex:1; background:var(--glass); border:1px solid var(--line); color:var(--mist); border-radius:8px; padding:9px; font-size:12.5px; }
  .pf-seg button.on { background:rgba(26,160,176,0.14); color:var(--teal-br); border-color:transparent; }
  .pf-session { display:flex; align-items:center; gap:14px; padding:13px 0; border-top:1px solid var(--line-2); }
  .pf-session:first-of-type { border-top:0; }
  .pf-dev { flex:1; } .pf-dev b { font-size:13.5px; font-weight:500; display:block; } .pf-dev span { font-size:12px; color:var(--dim); }
  .pf-current { font-size:10.5px; letter-spacing:0.1em; color:var(--teal-br); }
  .pf-actions { display:flex; gap:12px; margin-top:24px; padding-bottom:10px; }
  .btn-ghost { background:var(--glass); border:1px solid var(--line); color:var(--text); border-radius:9px; padding:11px 18px; font-size:13.5px; }
  .btn-ghost:hover { border-color:var(--mist); }
  .btn-ghost.sm { padding:7px 13px; font-size:12.5px; }
  .btn-ghost.danger { color:var(--ember); } .btn-ghost.danger:hover { border-color:var(--ember); }

  /* ---------------- RESPONSIVE ---------------- */
  @media (max-width:1100px){ .charts{ grid-template-columns:200px 1fr; } }
  @media (max-width:880px){ .rail{ position:absolute; left:0; top:0; bottom:0; z-index:20; } .rail.open{ box-shadow:0 24px 60px rgba(0,0,0,0.5); } .frame{ padding-left:64px; } .drawer.show{ position:absolute; right:0; top:0; bottom:0; z-index:8; } }
  @media (max-width:780px){ .charts,.documents{ grid-template-columns:1fr; } .metricbar,.doclist{ display:none; } .sig-grid{ grid-template-columns:1fr 1fr; } .regime{ flex-direction:column; gap:20px; } .pf-grid{ grid-template-columns:1fr; } }
  /* mobile perf: backdrop-filter blur is costly on phone GPUs and adds touch latency — solid panels instead (desktop keeps the glass) */
  @media (max-width:880px){
    .rail, .drawer { -webkit-backdrop-filter:none; backdrop-filter:none; background:#0e1014; }
    .topbar { -webkit-backdrop-filter:none; backdrop-filter:none; background:#0b0d11; }
    .modal-card { -webkit-backdrop-filter:none; backdrop-filter:none; background:#14171c; }
    .modal-bg { -webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(4,5,8,0.82); }
  }
  @media (prefers-reduced-motion:reduce){ .live-dot,.canvas,.modal-card{ animation:none !important; } }
