:root{--ink: oklch(.22 .03 250);--ink-2: oklch(.32 .03 250);--paper: oklch(.985 .005 85);--paper-2: oklch(.965 .006 85);--paper-3: oklch(.94 .008 85);--rule: oklch(.88 .01 250);--rule-2: oklch(.82 .015 250);--muted: oklch(.5 .02 250);--muted-2: oklch(.62 .02 250);--accent: oklch(.62 .14 65);--accent-tint: oklch(.95 .04 75);--verify: oklch(.5 .14 150);--verify-tint: oklch(.94 .05 150);--alert: oklch(.55 .18 25);--alert-tint: oklch(.95 .04 25);--warn: oklch(.68 .14 75);--warn-tint: oklch(.95 .05 75);--info: oklch(.5 .1 250);--info-tint: oklch(.94 .03 250);--serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;--sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--deva: "Noto Sans Devanagari", "IBM Plex Sans", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv02","cv11"}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--ink);color:#e6e4e1;padding:18px 0 24px;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid oklch(.15 .03 250);display:flex;flex-direction:column;gap:4px}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#2f3c4a;border-radius:3px}.brand{padding:6px 20px 22px;border-bottom:1px solid oklch(.28 .03 250);margin-bottom:8px}.brand-logo{display:flex;align-items:center;gap:10px}.brand-seal{width:32px;height:32px;border:1.5px solid var(--accent);border-radius:50%;display:grid;place-items:center;color:var(--accent);font-family:var(--deva);font-size:15px;font-weight:600;position:relative;flex-shrink:0}.brand-seal:before{content:"";position:absolute;inset:3px;border:.5px solid oklch(.62 .14 65 / .5);border-radius:50%}.brand-name{font-family:var(--serif);font-size:18px;font-weight:600;letter-spacing:.01em;line-height:1}.brand-sub{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:#95a0ab;margin-top:3px;text-transform:uppercase}.brand-version{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--accent);margin-top:14px;padding:3px 6px;border:.5px solid oklch(.62 .14 65 / .4);display:inline-block;text-transform:uppercase}.nav-section{padding:12px 20px 4px;font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;color:#69737d;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 20px;color:#cfcdca;cursor:pointer;font-size:12.5px;border-left:2px solid transparent;transition:background .1s}.nav-item:hover{background:#1d2a37}.nav-item.active{background:#222f3c;border-left-color:var(--accent);color:#fff}.nav-item .nav-ic{width:14px;height:14px;opacity:.85;flex-shrink:0}.nav-item .nav-hi{font-family:var(--deva);font-size:10.5px;color:#69737d;margin-left:auto}.sidebar-foot{margin-top:auto;padding:16px 20px 4px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:#5b646f;text-transform:uppercase;border-top:1px solid oklch(.28 .03 250)}.sidebar-foot .compliance-row{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:6px}.sidebar-foot .compliance-row span{padding:2px 5px;border:.5px solid oklch(.35 .03 250);border-radius:2px;color:#95a0ab}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:52px;background:var(--paper);border-bottom:1px solid var(--rule);display:flex;align-items:center;padding:0 24px;gap:16px;position:sticky;top:0;z-index:10}.crumb{font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}.crumb b{color:var(--ink);font-weight:600}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.lang-toggle{display:flex;border:1px solid var(--rule-2);border-radius:3px;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;overflow:hidden}.lang-toggle button{padding:5px 9px;background:transparent;border:none;cursor:pointer;color:var(--muted);font-family:inherit;font-size:inherit}.lang-toggle button.on{background:var(--ink);color:var(--paper)}.top-user{display:flex;align-items:center;gap:10px;padding-left:12px;margin-left:4px;border-left:1px solid var(--rule)}.top-user .u-avatar{width:30px;height:30px;border-radius:50%;background:var(--ink-2);color:var(--paper);display:grid;place-items:center;font-size:11px;font-weight:600;letter-spacing:.02em}.top-user .u-name{font-size:12px;font-weight:500;line-height:1.1}.top-user .u-role{font-family:var(--mono);font-size:9.5px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.top-icon-btn{width:32px;height:32px;border-radius:3px;border:1px solid var(--rule-2);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--ink-2);position:relative}.top-icon-btn:hover{background:var(--paper-2)}.top-icon-btn .dot{position:absolute;top:6px;right:7px;width:6px;height:6px;background:var(--alert);border-radius:50%;border:1.5px solid white}.page{padding:24px 28px 40px;max-width:1440px;margin:0 auto;width:100%}.page-head{display:flex;align-items:flex-start;gap:24px;padding-bottom:18px;border-bottom:1px solid var(--rule);margin-bottom:24px}.page-head-title{flex:1;min-width:0}.page-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase;margin-bottom:8px}.page-eyebrow .sep{padding:0 8px;color:var(--rule-2)}.page-title{font-family:var(--serif);font-size:32px;font-weight:500;letter-spacing:-.01em;line-height:1.1;color:var(--ink);margin:0}.page-title .hi{font-family:var(--deva);font-size:20px;color:var(--muted);font-weight:400;margin-left:12px;letter-spacing:0}.page-sub{color:var(--muted);margin-top:6px;font-size:13px;max-width:640px}.page-head-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.btn{padding:8px 14px;border-radius:3px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.01em;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--ink-2)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule-2)}.btn.ghost:hover{background:var(--paper-2)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.sm{padding:5px 10px;font-size:11px}.btn svg{width:12px;height:12px}.card{background:#fff;border:1px solid var(--rule);border-radius:4px}.card-head{padding:14px 18px;border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:12px}.card-title{font-family:var(--serif);font-size:16px;font-weight:500;letter-spacing:-.005em;margin:0}.card-title .hi{font-family:var(--deva);font-size:12px;color:var(--muted);font-weight:400;margin-left:8px}.card-actions{margin-left:auto;display:flex;gap:6px}.card-body{padding:18px}.card-body.tight{padding:0}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rule);border-radius:4px;background:#fff;overflow:hidden}.kpi{padding:18px 20px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);position:relative}.kpi:nth-child(4n){border-right:none}.kpi:nth-last-child(-n+4){border-bottom:none}.kpi-label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px}.kpi-value{font-family:var(--serif);font-size:30px;font-weight:500;letter-spacing:-.02em;color:var(--ink);line-height:1;display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}.kpi-value small{font-family:var(--mono);font-size:11px;color:var(--muted);font-weight:400;letter-spacing:0}.kpi-foot{margin-top:10px;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.delta-up{color:var(--verify);font-family:var(--mono);font-size:11px}.delta-down{color:var(--alert);font-family:var(--mono);font-size:11px}.delta-flat{color:var(--muted);font-family:var(--mono);font-size:11px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:3px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;border:1px solid transparent;white-space:nowrap}.badge.verify{background:var(--verify-tint);color:var(--verify);border-color:oklch(.5 .14 150 / .25)}.badge.warn{background:var(--warn-tint);color:oklch(.5 .14 75);border-color:#ca8a104d}.badge.alert{background:var(--alert-tint);color:var(--alert);border-color:#c536374d}.badge.info{background:var(--info-tint);color:var(--info);border-color:#32669a40}.badge.neutral{background:var(--paper-3);color:var(--muted);border-color:var(--rule-2)}.badge.accent{background:var(--accent-tint);color:oklch(.5 .14 65);border-color:oklch(.62 .14 65 / .35)}.badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.dtable{width:100%;border-collapse:collapse;font-size:12.5px}.dtable th{text-align:left;padding:10px 14px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;font-weight:500;border-bottom:1px solid var(--rule);background:var(--paper-2);white-space:nowrap}.dtable td{padding:11px 14px;border-bottom:1px solid var(--rule);vertical-align:middle}.dtable tr:last-child td{border-bottom:none}.dtable tr.clickable:hover{background:var(--paper-2);cursor:pointer}.dtable td.mono{font-family:var(--mono);font-size:11.5px}.dtable td.num{font-variant-numeric:tabular-nums;text-align:right}.filter-bar{display:flex;gap:8px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--rule);background:var(--paper-2);flex-wrap:wrap}.chip{padding:4px 10px;border:1px solid var(--rule-2);border-radius:3px;background:#fff;font-size:11.5px;color:var(--ink-2);cursor:pointer;font-family:var(--sans);display:inline-flex;align-items:center;gap:5px}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chip .count{font-family:var(--mono);font-size:10px;color:var(--muted);padding-left:4px;border-left:1px solid var(--rule-2);margin-left:2px}.chip.on .count{color:#afaeaa;border-left-color:#3c4958}.search{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--rule-2);border-radius:3px;background:#fff;min-width:240px}.search input{border:none;outline:none;font-family:var(--sans);font-size:12px;color:var(--ink);flex:1;background:transparent}.search svg{width:12px;height:12px;color:var(--muted)}.cert-frame{border:1px double var(--rule-2);padding:20px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(to bottom,#d3d8de,#eeebe5) border-box;border:1px solid transparent;position:relative}.cert-frame:before,.cert-frame:after{content:"";position:absolute;border:.5px solid var(--rule-2);pointer-events:none}.cert-frame:before{inset:4px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.serif{font-family:var(--serif)}.deva{font-family:var(--deva)}.muted{color:var(--muted)}.tnum{font-variant-numeric:tabular-nums}.row{display:flex;gap:8px;align-items:center}.row-gap-16{gap:16px}.hstack{display:flex;align-items:center;gap:8px}.vstack{display:flex;flex-direction:column;gap:4px}.grow{flex:1;min-width:0}.uppercase-label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.rule-h{height:1px;background:var(--rule);border:none;margin:0}.dashed{border-top:1px dashed var(--rule-2)}.compliance-ribbon{display:flex;gap:0;align-items:stretch;border:1px solid var(--rule);border-radius:4px;background:#fff;overflow:hidden;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em}.compliance-ribbon>div{padding:8px 14px;border-right:1px solid var(--rule);display:flex;align-items:center;gap:6px}.compliance-ribbon>div:last-child{border-right:none}.compliance-ribbon .k{color:var(--muted);text-transform:uppercase;font-size:9.5px}.compliance-ribbon .v{color:var(--ink)}.drawer-scrim{position:fixed;inset:0;background:#101c2859;z-index:50;backdrop-filter:blur(2px)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(720px,90vw);background:var(--paper);z-index:51;border-left:1px solid var(--rule-2);box-shadow:-20px 0 60px #101c281f;overflow-y:auto;display:flex;flex-direction:column}.drawer-head{padding:20px 24px 16px;border-bottom:1px solid var(--rule);display:flex;align-items:flex-start;gap:12px;position:sticky;top:0;background:var(--paper);z-index:2}.drawer-body{padding:24px;flex:1}.pbar{height:4px;background:var(--paper-3);border-radius:2px;overflow:hidden;position:relative}.pbar .fill{height:100%;background:var(--ink);border-radius:2px}.pbar .fill.verify{background:var(--verify)}.pbar .fill.alert{background:var(--alert)}.pbar .fill.accent{background:var(--accent)}.pbar.striped .fill{background-image:linear-gradient(45deg,oklch(.5 .14 150 / .85) 25%,transparent 25%,transparent 50%,oklch(.5 .14 150 / .85) 50%,oklch(.5 .14 150 / .85) 75%,transparent 75%);background-size:8px 8px;animation:stripes 1s linear infinite}@keyframes stripes{0%{background-position:0 0}to{background-position:8px 0}}.login-wrap{min-height:100vh;background:radial-gradient(1200px 600px at 30% 20%,oklch(.94 .008 85),var(--paper) 60%),var(--paper);display:grid;grid-template-columns:1.1fr 1fr}.login-hero{background:var(--ink);color:var(--paper);padding:48px 56px;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-panel{padding:48px 56px;display:flex;flex-direction:column;justify-content:center;max-width:520px}.heatmap{display:grid;grid-template-columns:repeat(26,1fr);gap:3px}.heatmap .cell{aspect-ratio:1;border-radius:2px;background:var(--paper-3)}.heatmap .cell.l1{background:#f1d9c3}.heatmap .cell.l2{background:#edb886}.heatmap .cell.l3{background:#e0843e}.heatmap .cell.l4{background:#c53829}.stamp{border:1.5px solid var(--accent);color:var(--accent);padding:6px 10px;border-radius:3px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;transform:rotate(-3deg);display:inline-block;position:relative}.stamp:before{content:"";position:absolute;inset:2px;border:.5px solid oklch(.62 .14 65 / .4);border-radius:2px}.spark{height:30px;width:100%;display:block}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.pulse-dot{animation:pulse-dot 1.5s ease-in-out infinite}button:focus-visible,input:focus-visible{outline:2px solid oklch(.62 .14 65 / .5);outline-offset:1px}
