:root{--paper: #f6f4ef;--surface: #ffffff;--ink: #1a1c20;--ink-soft: #3a3d44;--muted: #7c7568;--line: #e6e1d6;--line-strong: #d6d0c2;--accent: #2b4b6f;--accent-hover: #203955;--accent-tint: #eaf0f6;--new-bg: #e9f4ec;--new-ink: #1b7a4b;--new-line: #bfe3cb;--danger: #9b2c2c;--danger-tint: #f7ecec;--shadow: 0 1px 2px rgba(26, 28, 32, .04), 0 8px 28px rgba(26, 28, 32, .06);--body-bg-gradient: radial-gradient(120% 80% at 100% 0%, #fbfaf6 0%, rgba(251, 250, 246, 0) 60%);--topbar-bg: rgba(255, 255, 255, .7);--hover-bg: #fffdf8;--pdf-pane-bg: #f0ede6;--detail-bg: linear-gradient(180deg, #fffdf7 0%, #fbf9f2 100%);--radius: 10px;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif;--display: "Fraunces", Georgia, serif}:root[data-theme=dark]{--paper: #15171c;--surface: #1c1f25;--ink: #e7e9ee;--ink-soft: #b8bdc7;--muted: #8a909c;--line: #2a2e36;--line-strong: #3a3f49;--accent: #7eb1de;--accent-hover: #97c0e6;--accent-tint: #1d2935;--new-bg: #14342a;--new-ink: #6dd09a;--new-line: #1f6347;--danger: #ec7878;--danger-tint: #3a1d1d;--shadow: 0 1px 2px rgba(0, 0, 0, .45), 0 8px 28px rgba(0, 0, 0, .35);--body-bg-gradient: radial-gradient(120% 80% at 100% 0%, #1d2027 0%, rgba(29, 32, 39, 0) 60%);--topbar-bg: rgba(21, 23, 28, .78);--hover-bg: #20232a;--pdf-pane-bg: #0f1115;--detail-bg: linear-gradient(180deg, #1a1d24 0%, #16191f 100%);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--body-bg-gradient),var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.5;transition:background-color .2s ease,color .2s ease}a{color:var(--accent);text-decoration:none}button{font-family:var(--sans);cursor:pointer}.wordmark{display:flex;align-items:baseline;gap:10px;-webkit-user-select:none;user-select:none}.wordmark .mark{font-family:var(--display);font-weight:500;font-size:22px;letter-spacing:-.01em;color:var(--ink)}.wordmark .tag{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding-bottom:2px}.btn{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:500;transition:background .15s ease,transform .05s ease}.btn:hover{background:#203955}.btn:active{transform:translateY(1px)}.btn.ghost{background:transparent;color:var(--accent)}.btn.ghost:hover{background:var(--accent-tint)}.btn.subtle{background:transparent;color:var(--muted);border-color:var(--line-strong)}.btn.subtle:hover{color:var(--ink);border-color:var(--ink-soft);background:transparent}.btn.danger{background:transparent;color:var(--danger);border-color:#e0c4c4}.btn.danger:hover{background:var(--danger-tint)}.btn:disabled{opacity:.5;cursor:default}.btn.lg{padding:12px 22px;font-size:14px}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px;position:relative}.login-theme{position:absolute;top:22px;right:22px}.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:40px 36px;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.login-card h1{font-family:var(--display);font-weight:500;font-size:27px;margin:22px 0 6px;letter-spacing:-.01em}.login-card p.sub{color:var(--muted);margin:0 0 26px;font-size:13.5px}.login-rule{height:1px;background:var(--line);margin:26px 0 18px}.fineprint{color:var(--muted);font-size:11.5px;line-height:1.6}.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:10px;padding:13px;font-size:14px;font-weight:500;transition:border-color .15s,box-shadow .15s,background .15s}.google-btn:hover{border-color:var(--ink-soft);box-shadow:var(--shadow)}.state-note{border-radius:10px;padding:14px 16px;font-size:13px;margin:4px 0 20px}.state-note.pending{background:#fbf3e2;color:#8a5a12;border:1px solid #ecd9af}.state-note.revoked,.state-note.error{background:var(--danger-tint);color:var(--danger);border:1px solid #e6cccc}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--line);background:var(--topbar-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:5}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--line-strong);border-radius:8px;color:var(--muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .05s}.theme-toggle:hover{color:var(--ink);border-color:var(--ink-soft);background:var(--accent-tint)}.theme-toggle:active{transform:translateY(1px)}.topbar .right{display:flex;align-items:center;gap:14px}.who{text-align:right;line-height:1.25}.who .email{font-family:var(--mono);font-size:12px;color:var(--ink)}.who .role{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.tabs{display:flex;gap:4px}.tab{background:transparent;border:none;color:var(--muted);padding:6px 12px;border-radius:7px;font-size:13px;font-weight:500}.tab.active{color:var(--ink);background:var(--accent-tint)}.filters{display:flex;align-items:flex-end;gap:18px;padding:18px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.field select{font-family:var(--sans);font-size:13.5px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;padding:8px 12px;min-width:130px}.count{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--muted);align-self:center}.count .new{color:var(--new-ink)}.split{display:flex;flex:1;min-height:0}.list-pane{flex:1 1 46%;min-width:360px;overflow:auto;border-right:1px solid var(--line)}.pdf-pane{flex:1 1 54%;min-width:0;display:flex;flex-direction:column;background:var(--pdf-pane-bg)}.pdf-pane.empty{display:grid;place-items:center;color:var(--muted);font-size:13px}.pdf-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--surface)}.pdf-head .meta{font-family:var(--mono);font-size:12px;color:var(--ink-soft)}.pdf-frame{flex:1;border:none;width:100%}table.stmts{width:100%;border-collapse:collapse}table.stmts thead th{position:sticky;top:0;background:var(--paper);text-align:left;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:11px 16px;border-bottom:1px solid var(--line-strong);font-weight:600;z-index:1}table.stmts td{padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px}table.stmts tbody tr{cursor:pointer;transition:background .1s}table.stmts tbody tr:hover{background:var(--hover-bg)}table.stmts tbody tr.selected{background:var(--accent-tint)}table.stmts tbody tr.is-new{background:var(--new-bg)}table.stmts tbody tr.is-new:hover{filter:brightness(.97)}table.stmts tbody tr.is-new.selected{background:var(--new-bg);filter:brightness(.94)}.policy{font-family:var(--mono);font-size:13.5px;color:var(--ink)}.num{font-family:var(--mono);font-size:13.5px;text-align:right;color:var(--ink)}.tag-new{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--new-ink);border:1px solid var(--new-line);border-radius:999px;padding:1px 7px;margin-left:8px}.empty-row{text-align:center;color:var(--muted);padding:48px 0;font-size:13px}.disclosure{display:inline-block;margin-right:8px;color:var(--muted);transition:transform .15s ease;transform:rotate(0);font-size:11px}.disclosure.open{transform:rotate(90deg);color:var(--accent)}.actions-col{width:92px}td.actions{white-space:nowrap;text-align:right;padding-right:14px;width:92px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:4px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--muted);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.icon-btn:hover{background:var(--paper);color:var(--accent);border-color:var(--line)}.icon-btn:active{transform:translateY(1px)}.icon-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.icon-btn.active:hover{color:#fff}tr.detail-row td{padding:0;border-bottom:1px solid var(--line-strong);background:var(--detail-bg)}.detail-panel{padding:22px 26px 24px;animation:unfold .18s ease both}@keyframes unfold{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.detail-loading{padding:24px;display:grid;place-items:center}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 28px;align-items:start}.kv{min-width:0}.kv.wide{grid-column:span 3}.kv-label{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.kv-value{font-family:var(--mono);font-size:14.5px;color:var(--ink);word-break:break-word}.kv-value.pos{color:var(--new-ink)}.kv-value.neg{color:var(--danger)}.kv-sub{font-size:11px;color:var(--muted);margin-top:2px}.detail-allocations{margin-top:22px}.section-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}table.allocs{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}table.allocs th,table.allocs td{padding:8px 12px;font-size:12.5px;border-bottom:1px solid var(--line)}table.allocs thead th{text-align:left;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;background:var(--paper)}table.allocs tbody tr:last-child td{border-bottom:none}@media (max-width: 1100px){.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kv.wide{grid-column:span 2}}.admin{padding:24px;max-width:920px}.admin h2{font-family:var(--display);font-weight:500;font-size:21px;margin:0 0 4px}.admin .sub{color:var(--muted);margin:0 0 22px;font-size:13px}.user-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:10px}.user-card .email{font-family:var(--mono);font-size:13px}.user-card .meta{font-size:11px;color:var(--muted);margin-top:2px}.pill{font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:999px}.pill.active{background:var(--new-bg);color:var(--new-ink)}.pill.pending{background:#fbf3e2;color:#8a5a12}.pill.revoked{background:var(--danger-tint);color:var(--danger)}.row-actions{display:flex;gap:8px;align-items:center}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}.seg button{background:var(--surface);border:none;padding:7px 12px;font-size:12px;color:var(--muted)}.seg button+button{border-left:1px solid var(--line-strong)}.seg button.on{background:var(--accent);color:#fff}.center-msg{display:grid;place-items:center;height:100%;color:var(--muted);font-size:13px}.spin{width:22px;height:22px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
