:root{--bg: #F3F5FB;--panel: #FFFFFF;--panel2: #FFFFFF;--l: 55, 68, 140;--line: rgba(var(--l), .14);--line2: rgba(var(--l), .2);--ink: #0D1120;--muted: #4C5372;--dim: #5E6583;--blue: #2347C4;--blue2: #2F5BE0;--cyan: #066A8F;--lav: #5B3FC8;--up: #04784F;--warn: #8A5300;--down: #BE1238;--field: #FFFFFF;--side: rgba(255,255,255,.78);--card-a: #FFFFFF;--card-b: #FFFFFF;--shadow: 0 14px 34px rgba(20,28,60,.08);--modal-shadow: 0 30px 80px rgba(20,28,60,.2);--scrim: rgba(20,24,40,.35);--glow1: rgba(47,91,224,.08);--glow2: rgba(91,63,200,.06);--t-active: #04784F;--t-issued: #2347C4;--t-bad: #B3133A;--t-warn: #7A4A00;--t-info: #066A8F;--code: #1B3FB8;--font: "DM Sans", system-ui, sans-serif;--mono: "DM Mono", ui-monospace, Menlo, monospace;color-scheme:light}:root[data-theme=dark]{--bg: #070A12;--panel: #0E1320;--panel2: #121A2B;--l: 255, 255, 255;--line: rgba(var(--l), .08);--line2: rgba(var(--l), .14);--ink: #EEF2FA;--muted: #9AA6C2;--dim: #6B7590;--blue: #4F7BFF;--blue2: #3B6BFF;--cyan: #1EC8FF;--lav: #A78BFA;--up: #22C58B;--warn: #F5B544;--down: #F43F5E;--field: rgba(0,0,0,.25);--side: rgba(7,10,18,.6);--card-a: rgba(255,255,255,.035);--card-b: rgba(255,255,255,.015);--shadow: none;--modal-shadow: 0 30px 80px rgba(0,0,0,.5);--scrim: var(--scrim);--glow1: rgba(59,107,255,.16);--glow2: rgba(167,139,250,.1);--t-active: #5BE0AE;--t-issued: #8FB0FF;--t-bad: #FF8FA3;--t-warn: #F7C873;--t-info: #7FDCFF;--code: #BFD0FF;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 var(--font)}body{background:radial-gradient(1200px 600px at 85% -10%,var(--glow1),transparent 60%),radial-gradient(900px 500px at -10% 110%,var(--glow2),transparent 60%),var(--bg);min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--cyan)}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.dim{color:var(--dim)}.shell{display:grid;grid-template-columns:228px 1fr;min-height:100vh}.side{border-right:1px solid var(--line);padding:20px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px;background:var(--side);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 18px}.brand img{width:30px;height:30px}.brand b{font-size:17px;letter-spacing:-.02em}.brand b span{background:linear-gradient(90deg,var(--cyan),var(--blue),var(--lav));-webkit-background-clip:text;background-clip:text;color:transparent}.brand small{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.nav{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;color:var(--muted);background:none;border:0;text-align:left;cursor:pointer;width:100%}.nav:hover{background:rgba(var(--l),.04);color:var(--ink)}.nav.on{background:#2f5be01f;color:var(--ink);box-shadow:inset 0 0 0 1px #4f7bff59}.nav .count{margin-left:auto;background:var(--blue);color:#fff;font-size:11px;border-radius:99px;padding:0 7px;font-weight:600}.side .foot{margin-top:auto;font-size:12px;color:var(--dim);padding:8px}.main{padding:26px 30px 60px;min-width:0}.head{display:flex;align-items:flex-end;gap:12px;margin-bottom:18px;flex-wrap:wrap}.head h1{font-size:24px;margin:0;letter-spacing:-.02em}.head p{margin:4px 0 0;color:var(--muted)}.head .grow{flex:1}.card{background:linear-gradient(180deg,var(--card-a),var(--card-b));border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.pad{padding:18px}.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.stat{padding:16px 18px}.stat .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.stat .v{font-size:30px;font-weight:600;margin-top:6px;letter-spacing:-.02em}.stat .s{font-size:12px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:10px;border:1px solid var(--line2);background:rgba(var(--l),.04);cursor:pointer;white-space:nowrap}.btn:hover{background:rgba(var(--l),.08)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:linear-gradient(135deg,var(--blue2),#5B5BFF);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 6px 20px #3b6bff4d}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--t-bad);border-color:#f43f5e66}.btn.sm{height:28px;padding:0 10px;font-size:12.5px;border-radius:8px}.btn.ghost{border-color:transparent;background:none;color:var(--muted)}.input,select.input,textarea.input{width:100%;height:36px;padding:0 11px;border-radius:10px;border:1px solid var(--line2);background:var(--field);outline:none}textarea.input{height:auto;padding:9px 11px;resize:vertical}.input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #4f7bff33}label.f{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form2 .full{grid-column:1 / -1}table.t{width:100%;border-collapse:collapse}.t th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-weight:500;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.t td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.t tr:last-child td{border-bottom:0}.t tr.click{cursor:pointer}.t tr.click:hover td{background:rgba(var(--l),.025)}.tablewrap{overflow-x:auto}.who b{display:block;font-weight:600}.who span{font-size:12px;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:2px 9px;border-radius:99px;font-weight:600;white-space:nowrap}.pill.active{background:#22c58b24;color:var(--t-active)}.pill.issued{background:#4f7bff29;color:var(--t-issued)}.pill.revoked,.pill.rejected,.pill.failed{background:#f43f5e24;color:var(--t-bad)}.pill.expired{background:#f5b54424;color:var(--t-warn)}.pill.pending{background:#1ec8ff24;color:var(--t-info)}.pill.approved,.pill.sent{background:#22c58b24;color:var(--t-active)}.tabs{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:11px;background:rgba(var(--l),.05)}.tabs button{border:0;background:none;padding:5px 12px;border-radius:8px;color:var(--muted);cursor:pointer}.tabs button.on{background:rgba(var(--l),.08);color:var(--ink)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:16px}.modal{width:560px;max-width:100%;max-height:calc(100vh - 32px);overflow:auto;background:var(--panel);border:1px solid var(--line2);border-radius:18px;padding:22px;box-shadow:var(--modal-shadow)}.modal.wide{width:760px}.modal h2{margin:0 0 4px;font-size:19px}.modal .sub{color:var(--muted);margin-bottom:16px}.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}.drawer{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:100%;background:var(--panel);border-left:1px solid var(--line2);z-index:40;overflow:auto;padding:22px;box-shadow:var(--modal-shadow)}.kv{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;font-size:13px}.kv dt{color:var(--dim)}.kv dd{margin:0}.codebox{font-family:var(--mono);font-size:22px;letter-spacing:2px;text-align:center;padding:18px;border-radius:14px;border:1px dashed rgba(79,123,255,.55);background:#4f7bff14;color:var(--code);-webkit-user-select:all;user-select:all}.note{font-size:12.5px;color:var(--muted);padding:10px 12px;border-radius:10px;background:rgba(var(--l),.03);border:1px solid var(--line)}.err{color:var(--t-bad);font-size:13px}.ok{color:var(--t-active);font-size:13px}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--panel2);border:1px solid var(--line2);padding:10px 16px;border-radius:12px;z-index:60;box-shadow:var(--modal-shadow)}.empty{padding:40px;text-align:center;color:var(--dim)}.banner{padding:8px 12px;border-radius:10px;background:#f5b5441f;color:var(--t-warn);font-size:12.5px;margin-bottom:14px}iframe.preview{width:100%;height:640px;border:1px solid var(--line);border-radius:12px;background:#eef2f9}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:380px;max-width:100%;padding:28px}@media (max-width: 860px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:12px}.brand{padding:0 8px 0 0;width:100%}.nav{width:auto}.side .foot{display:none}.main{padding:18px 16px 50px}.form2{grid-template-columns:1fr}}@media (max-width: 1000px){.settings-grid{grid-template-columns:1fr!important}}.theme-btn{display:inline-flex;align-items:center;gap:6px}
