    :root{--bg:#f5f6fa;--surface:#fff;--s2:#f0f1f7;--s3:#e8eaf2;--border:#dde0ed;--text:#1a1d2e;--muted:#6b7191;--faint:#c8cce0;--green:#16a34a;--gbg:#f0fdf4;--gbdr:#bbf7d0;--red:#dc2626;--rbg:#fef2f2;--rbdr:#fecaca;--yellow:#d97706;--ybg:#fffbeb;--ybdr:#fde68a;--blue:#2563eb;--bbg:#eff6ff;--bbdr:#bfdbfe;--purple:#7c3aed;--pbg:#f5f3ff;--pbdr:#ddd6fe;--orange:#ea580c;--obg:#fff7ed;--obdr:#fed7aa;--teal:#0d9488;--tbg:#f0fdfa;--tbdr:#99f6e4;--accent:#4f46e5;--font:'Inter',system-ui,sans-serif;--r:8px;--rl:12px;--shadow:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 12px rgba(0,0,0,.08)}
    *{box-sizing:border-box;margin:0;padding:0} body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;min-height:100vh} a{text-decoration:none;color:inherit}
    header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;box-shadow:var(--shadow)}
    .logo{font-size:17px;font-weight:700;letter-spacing:-.5px;display:flex;align-items:center;gap:8px}.logo-mark{width:28px;height:28px;background:var(--accent);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff}.top-actions{display:flex;align-items:center;gap:10px}.top-link{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--s2);font-size:12px;font-weight:600;color:var(--text)}
    .auth-pill{font-size:12px;padding:4px 12px;border-radius:99px;font-weight:600;display:flex;align-items:center;gap:5px}.pill-on{background:var(--gbg);color:var(--green);border:1px solid var(--gbdr)}.pill-off{background:var(--rbg);color:var(--red);border:1px solid var(--rbdr)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
    main{max-width:1600px;margin:0 auto;padding:24px 20px;display:flex;flex-direction:column;gap:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:20px;box-shadow:var(--shadow)}.card-title{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin-bottom:16px;font-weight:600}
    .token-row{display:flex;gap:8px;flex-wrap:wrap}#token-input,.fbar select,.fbar input[type="text"]{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:4px 6px;border-radius:var(--r);font-size:12px;font-family:var(--font)}#token-input{flex:1;min-width:260px;background:var(--s2)}#token-input:focus,.fbar select:focus,.fbar input:focus{outline:none;border-color:var(--accent);background:#fff}
    .token-help{margin-top:10px;font-size:12px;color:var(--muted);line-height:1.8;background:var(--s2);padding:12px 14px;border-radius:var(--r);border:1px solid var(--border)}.token-help code{background:var(--s3);padding:1px 6px;border-radius:4px;font-size:11px;color:var(--accent);font-weight:600}
    .btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r);border:none;cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);transition:all .15s;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(.93)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-accent{background:var(--accent);color:#fff}.btn-outline{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-green{background:var(--gbg);color:var(--green);border:1px solid var(--gbdr)}.btn-yellow{background:var(--ybg);color:var(--yellow);border:1px solid var(--ybdr)}.btn-sm{padding:6px 12px;font-size:12px}
    #drop-area{border:2px dashed var(--border);border-radius:var(--r);padding:28px 20px;text-align:center;color:var(--muted);cursor:pointer;transition:all .2s;background:var(--s2)}#drop-area:hover,#drop-area.drag{border-color:var(--accent);background:var(--bbg);color:var(--accent)}#file-input{display:none}#univ-info{margin-top:10px;font-size:13px;color:var(--muted)}
    .act-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}#scan-meta{font-size:12px;color:var(--muted)}#prog-wrap{display:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px 20px;box-shadow:var(--shadow)}.prog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.prog-lbl{font-size:13px;font-weight:600}#prog-pct{font-size:22px;font-weight:700;color:var(--accent)}#prog-track{height:8px;background:var(--s3);border-radius:99px;overflow:hidden;border:1px solid var(--border)}#prog-fill{height:100%;background:linear-gradient(90deg,var(--accent),#818cf8);width:0;transition:width .4s;border-radius:99px}.prog-sub{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:var(--muted);gap:10px}
    .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px}.stat{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px}.stat-v{font-size:24px;font-weight:700;line-height:1}.stat-l{font-size:10px;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:.8px}.breadth-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:14px}.btile{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:10px 13px;position:relative;overflow:hidden}.btile-bg{position:absolute;inset:0;opacity:0.13;pointer-events:none}.btile-pct{font-size:22px;font-weight:800;line-height:1;position:relative}.btile-lbl{font-size:9.5px;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:.7px;position:relative}.btile-n{font-size:10px;color:var(--muted);position:relative}
    
    .tbl-outer{border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.tbl-wrap{overflow-y:auto;max-height:calc(100vh - 320px);min-height:300px;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12.5px}thead tr{background:var(--s2)}th{padding:7px 12px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:600;white-space:nowrap;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:3;background:var(--s2);cursor:pointer;user-select:none;overflow:hidden;text-overflow:ellipsis}th:hover{background:var(--s3);color:var(--text)}th .si{margin-left:3px;opacity:.7;font-size:9px}th.sort-asc .si,th.sort-desc .si{opacity:1;color:var(--accent)}.th-sub{position:sticky;top:0;z-index:3;background:var(--s2)}.th-group{background:var(--s3)!important;color:var(--muted)!important;font-size:9px!important;letter-spacing:1px;text-align:center;cursor:default!important;border-bottom:1px solid var(--border)!important}.th-group:hover{background:var(--s3)!important}td{padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap;color:var(--text);overflow:hidden;text-overflow:ellipsis}tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--s2)}
    .sym{font-weight:700;font-size:13px;position:sticky;left:0;z-index:10;background:var(--surface);border-right:2px solid var(--border);box-shadow:4px 0 8px -2px rgba(0,0,0,.15)} tbody tr:hover td.sym{background:var(--s2)!important} thead th.th-sym{position:sticky;left:0;z-index:30;background:var(--s2);border-right:2px solid var(--border);box-shadow:4px 0 8px -2px rgba(0,0,0,.15)}
    .chip{display:inline-flex;align-items:center;padding:1px 7px;border-radius:99px;font-size:11px;font-weight:700}.ch-g{background:var(--gbg);color:var(--green);border:1px solid var(--gbdr)}.ch-r{background:var(--rbg);color:var(--red);border:1px solid var(--rbdr)}.ch-y{background:var(--ybg);color:var(--yellow);border:1px solid var(--ybdr)}.ch-b{background:var(--bbg);color:var(--blue);border:1px solid var(--bbdr)}.ch-p{background:var(--pbg);color:var(--purple);border:1px solid var(--pbdr)}.ch-o{background:var(--obg);color:var(--orange);border:1px solid var(--obdr)}.ch-t{background:var(--tbg);color:var(--teal);border:1px solid var(--tbdr)}.ch-n{background:var(--s2);color:var(--muted);border:1px solid var(--border)}
    .note{color:var(--muted);font-size:11px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.row-pass td:first-child{border-left:3px solid var(--green)}.row-acc td:first-child{border-left:3px solid #3b82f6}.row-both td:first-child{border-left:4px solid #f59e0b}.row-fail td:first-child{border-left:3px solid var(--faint)}#row-count{font-size:12px;color:var(--muted);margin-bottom:8px}
    #toast{position:fixed;bottom:24px;right:24px;background:var(--text);color:#fff;padding:12px 18px;border-radius:var(--r);font-size:13px;display:none;z-index:999;box-shadow:var(--shadow-md);max-width:320px}
    @media (max-width:720px){header{padding:0 14px}main{padding:16px 12px}.top-actions{gap:6px}.top-link{padding:7px 10px;font-size:11px}}
    .fbar{display:flex;gap:5px;flex-wrap:nowrap;align-items:center;margin-bottom:8px;overflow-x:auto;padding-bottom:2px}
  .review-btns{display:inline-flex;gap:3px;align-items:center}
  .review-btn{border:none;border-radius:4px;font-size:10px;font-weight:700;padding:2px 6px;cursor:pointer;opacity:.3;transition:all .15s;line-height:1.4;font-family:var(--font)}
  .review-btn:hover{opacity:.75}
  .review-btn.active{opacity:1;box-shadow:0 0 0 2px rgba(0,0,0,.15)}
  .review-btn.y{background:#dcfce7;color:#15803d}
  .review-btn.n{background:#fee2e2;color:#b91c1c}
  .review-btn.m{background:#fef9c3;color:#854d0e}

  
  th .th-inner{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
  .fbar-sep{width:1px;height:18px;background:var(--border);margin:0 2px;flex-shrink:0}
  .fbar-cb{display:inline-flex;align-items:center;gap:4px;font-size:12px;cursor:pointer;white-space:nowrap;padding:0 4px;width:fit-content;flex-shrink:0}
  .fbar-cb input[type="checkbox"]{cursor:pointer;margin:0;padding:0;width:13px;height:13px;flex-shrink:0;vertical-align:middle}
  .fbar-cb>span{line-height:1}

  .dr-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .dr-lbl{font-size:12px;color:var(--text);white-space:nowrap}
  .dr-hint{font-size:11px;color:var(--muted)}
  .dr-inp{width:64px;padding:4px 7px;font-size:13px;border:1px solid var(--border);border-radius:var(--r);background:var(--s2);color:var(--text);font-family:var(--font);text-align:right}
  .dr-inp:focus{outline:none;border-color:var(--accent)}

  .ar-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}
  .ar-row:last-child{border-bottom:none}
  .ar-cb-lbl{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;flex-shrink:0}
  .ar-cb-lbl input{margin:0;cursor:pointer;width:13px;height:13px}
  .ar-name{font-weight:600;color:var(--text)}
  .ar-params{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}
  .ar-inp-sm{width:46px;padding:2px 5px;font-size:12px;border:1px solid var(--border);border-radius:4px;background:var(--s2);color:var(--text);text-align:right}
  .ar-inp-sm:focus{outline:none;border-color:var(--accent)}


@keyframes ddspin { to { transform:rotate(360deg); } }
#dd-spin { animation:ddspin .9s linear infinite; }
#dd-drawer.dd-open { transform:translateX(0) !important; }
.dd-rb.active { background:#4f46e5 !important; color:#fff !important; border-color:#4f46e5 !important; }
/* ── Table styling ───────────────────────────── */
tbody tr td { background: #ffffff; }
tbody tr:hover td { background: #fffbf0 !important; }
thead th { background: #1e3a5f !important; color: #ffffff !important; }
thead th .si { color: rgba(255,255,255,0.45); }
thead th button { color: rgba(255,255,255,0.8) !important; border-color: rgba(255,255,255,0.3) !important; }
thead th:hover { background: #1e40af !important; }
#thead-sub-row th { background: #1e3a5f !important; color: #ffffff !important; }

/* ── Drilldown panel ─────────────────────────────────────────── */
@keyframes ddspin { to { transform:rotate(360deg); } }
#dd-spin { animation:ddspin .9s linear infinite; }
#dd-drawer.dd-open { transform:translateX(0) !important; }
.dd-rb.active { background:#4f46e5 !important; color:#fff !important; border-color:#4f46e5 !important; }

/* ── Ticker chart icon on row hover ─────────────────────────── */
tbody tr:hover .sym-chart-icon { opacity: 1 !important; }
