  :root{
    --bg:#0a0e15;--bg2:#0f141d;--card:#141b26;--card2:#1a2230;--elev:#1e2836;
    --line:#232c3a;--line2:#33404f;--fg:#eef2f7;--mut:#93a1b4;--mut2:#6b788a;
    --acc:#5b91ff;--acc2:#3d78f0;--acc-weak:rgba(91,145,255,.12);
    --ok:#33cd92;--ok-weak:rgba(49,196,141,.14);--warn:#f6a609;--warn-weak:rgba(246,166,9,.14);
    --danger:#ff6b6b;
    --r-sm:8px;--r:11px;--r-lg:16px;
    --sh-sm:0 1px 2px rgba(0,0,0,.3);--sh:0 6px 24px rgba(0,0,0,.35);
  }
  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{margin:0;font:14.5px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Inter,sans-serif;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  a{color:inherit;text-decoration:none}
  .grow{flex:1}.hidden{display:none!important}.mut{color:var(--mut)}
  .ic{width:16px;height:16px;flex:none;display:block}

  /* ---------- button system (one pattern, three ranks) ---------- */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 15px;
    border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--fg);
    font:600 13.5px/1 inherit;letter-spacing:.1px;cursor:pointer;white-space:nowrap;
    transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,color .14s ease,transform .06s ease}
  .btn:active{transform:translateY(.5px)}
  .btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--acc-weak)}
  .btn .ic{width:15px;height:15px}
  /* primary — one per view, the main action */
  .btn-primary{background:linear-gradient(180deg,var(--acc),var(--acc2));border-color:var(--acc2);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 2px 10px rgba(91,145,255,.28)}
  .btn-primary:hover{filter:brightness(1.06);box-shadow:0 1px 0 rgba(255,255,255,.14) inset,0 4px 16px rgba(91,145,255,.36)}
  /* secondary — neutral, bordered */
  .btn-secondary{background:var(--card2);border-color:var(--line2);color:var(--fg)}
  .btn-secondary:hover{background:var(--elev);border-color:#3f4d5e}
  /* ghost — low-emphasis, borderless */
  .btn-ghost{background:transparent;color:var(--mut)}
  .btn-ghost:hover{background:var(--card2);color:var(--fg)}
  /* sizes */
  .btn-sm{height:32px;padding:0 11px;font-size:12.5px}.btn-sm .ic{width:14px;height:14px}
  .btn-icon{width:38px;padding:0}.btn-icon.btn-sm{width:32px}

  /* ---------- login ---------- */
  #login{max-width:380px;margin:14vh auto;padding:30px 28px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh)}
  .logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:.2px;margin-bottom:4px}
  .logo .mk{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(180deg,var(--acc),var(--acc2));color:#fff;box-shadow:0 2px 10px rgba(91,145,255,.4)}
  .logo .mk .ic{width:18px;height:18px}
  #login p{margin:2px 0 18px;color:var(--mut);font-size:13px}
  .field{display:block;margin:10px 0}
  .field label{display:block;font-size:12px;color:var(--mut);margin:0 0 5px 2px}
  .input{width:100%;height:42px;padding:0 13px;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--fg);font:inherit}
  .input:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-weak)}
  .err{color:var(--danger);font-size:13px;min-height:18px;margin:2px 0}
  #login .btn-primary{width:100%;height:42px;margin-top:6px}
  .backlink{display:inline-flex;align-items:center;gap:6px;margin-top:16px;color:var(--mut);font-size:13px}
  .backlink:hover{color:var(--fg)}

  /* ---------- app shell ---------- */
  .topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;height:60px;padding:0 22px;
    background:rgba(10,14,21,.82);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--line)}
  .brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:16px;letter-spacing:.2px}
  .brand .mk{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:linear-gradient(180deg,var(--acc),var(--acc2));color:#fff;box-shadow:0 2px 8px rgba(91,145,255,.35)}
  .brand .mk .ic{width:17px;height:17px}
  .brand .sub{color:var(--mut);font-weight:600}
  .user{display:flex;align-items:center;gap:9px;padding:5px 6px 5px 5px;border:1px solid var(--line);border-radius:999px;background:var(--card)}
  .avatar{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--acc-weak);color:var(--acc);font-weight:700;font-size:12px}
  .user .nm{font-size:13px;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .main{max-width:1120px;margin:0 auto;padding:26px 22px 64px}

  .pagehead{display:flex;align-items:flex-end;gap:12px;margin-bottom:18px}
  .pagehead h1{font-size:21px;margin:0;font-weight:750;letter-spacing:-.2px}
  .pagehead .lede{color:var(--mut);font-size:13px;margin-top:3px}

  /* KPIs */
  .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px}
  .kpi{position:relative;background:linear-gradient(180deg,var(--card),var(--bg2));border:1px solid var(--line);border-radius:var(--r);padding:16px 17px;box-shadow:var(--sh-sm)}
  .kpi .l{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.6px;font-weight:600}
  .kpi .l .ic{width:14px;height:14px;color:var(--mut2)}
  .kpi .n{font-size:29px;font-weight:800;margin-top:9px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
  .kpi .n small{font-size:15px;font-weight:600;color:var(--mut)}
  .kpi .n.ok{color:var(--ok)}.kpi .n.acc{color:var(--acc)}
  .kpi .s{font-size:12px;color:var(--mut);margin-top:3px}

  /* section header */
  .sechead{display:flex;align-items:center;gap:12px;margin:2px 0 13px}
  .sechead h2{font-size:15px;margin:0;font-weight:700}
  .sechead .count{font-size:12px;color:var(--mut);background:var(--card2);border:1px solid var(--line);padding:1px 9px;border-radius:999px;font-weight:600}

  /* table card */
  .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm)}
  .scroll{overflow-x:auto}
  table{width:100%;border-collapse:collapse;min-width:600px}
  thead th{position:sticky;top:0;text-align:left;padding:11px 16px;background:var(--bg2);color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:600;border-bottom:1px solid var(--line)}
  th.r,td.r{text-align:right}
  tbody td{padding:13px 16px;border-bottom:1px solid rgba(35,44,58,.6);font-size:13.5px;white-space:nowrap;vertical-align:middle}
  tbody tr:last-child td{border-bottom:none}
  tbody tr.click{cursor:pointer;transition:background .12s}
  tbody tr.click:hover{background:var(--card2)}
  tbody tr.click:hover .chev{color:var(--fg);transform:translateX(2px)}
  .pcell{display:flex;align-items:center;gap:11px}
  .picon{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:9px;background:var(--acc-weak);color:var(--acc)}
  .picon.sess{background:var(--card2);color:var(--mut)}
  .picon .ic{width:16px;height:16px}
  .pname{font-weight:650}
  .psub{font-size:11.5px;color:var(--mut2);margin-top:1px}
  .num{font-variant-numeric:tabular-nums}
  .hid{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;letter-spacing:1.5px;font-size:14.5px}
  .firm{max-width:20ch;overflow:hidden;text-overflow:ellipsis}
  .badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px}
  .badge .dot{width:6px;height:6px;border-radius:50%}
  .b-ok{background:var(--ok-weak);color:var(--ok)}.b-ok .dot{background:var(--ok)}
  .b-rev{background:var(--warn-weak);color:var(--warn)}.b-rev .dot{background:var(--warn)}
  .b-zero{color:var(--mut2)}
  /* BIS registry states — same three-way meaning as the scanner */
  .b-bis-ok{background:var(--ok-weak);color:var(--ok)}
  .b-bis-no{background:rgba(255,107,107,.15);color:#ff6b6b}
  .b-bis-pend{background:rgba(94,140,255,.16);color:#9db6ff}
  .b-bis-na{background:var(--warn-weak);color:var(--warn)}
  .b-bis-unv{color:var(--mut2);font-size:11px}
  .pnotice{margin:0 0 12px;padding:9px 12px;border-radius:10px;font-size:12.5px;line-height:1.45}
  .pnotice.warn{background:var(--warn-weak);color:var(--warn)}
  .pnotice.info{background:rgba(148,163,181,.12);color:var(--mut)}
  .bissum{display:inline-flex;gap:7px;font-size:11.5px;font-weight:700}
  .bs.ok{color:var(--ok)}.bs.no{color:#ff6b6b}.bs.na{color:var(--warn)}.bs.pend{color:#9db6ff}
  .bislegend{font-size:11.5px;color:var(--mut);margin:2px 0 10px;display:flex;flex-wrap:wrap;gap:3px 5px;align-items:center}
  .bislegend .bs{font-weight:700;margin-left:4px}
  /* "Beta" chip — BIS verification is rolling out; sets expectations without hiding the feature */
  .beta{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:rgba(94,140,255,.16);color:#9db6ff;vertical-align:middle;line-height:1.5}
  .bisbeta{font-size:11px;color:var(--mut2);margin:-6px 0 12px}
  .btn.bis-soon{opacity:.72}
  .rowend{display:flex;align-items:center;gap:10px;justify-content:flex-end}
  .chev{color:var(--mut2);transition:color .12s,transform .12s}

  .empty{padding:48px 20px;text-align:center;color:var(--mut)}
  .empty .ei{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 12px;border-radius:12px;background:var(--card2);color:var(--mut)}
  .empty a{color:var(--acc);font-weight:600}
  .foot-note{color:var(--mut2);font-size:12px;margin-top:15px;display:flex;align-items:center;gap:7px}

  /* skeleton */
  .sk{display:inline-block;height:11px;border-radius:6px;background:linear-gradient(90deg,var(--card2),var(--elev),var(--card2));background-size:200% 100%;animation:sh 1.2s ease-in-out infinite}
  @keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}

  @media(max-width:640px){
    .topbar{padding:0 14px;gap:8px}.main{padding:18px 14px 52px}
    .user .nm{display:none}.brand .sub{display:none}
    .pagehead{flex-direction:column;align-items:flex-start;gap:2px}
  }
