:root{--brand-navy:#0a1628;--brand-cyan:#17b8c4;--brand-blue:#2b5eea;--brand-gold:#e8b64a;--brand-gold-hover:#f0c766;--accent:var(--brand-gold);--accent-hover:var(--brand-gold-hover);--accent-fg:var(--brand-navy);--accent-soft:#e8b64a24;--accent-border:#e8b64a66;--shell-navy:#0a1628;--shell-navy-2:#0d1e3a;--shell-navy-3:#12305a;--shell-fg:#fff;--shell-fg-2:#ffffffc7;--shell-fg-3:#ffffff8c;--shell-border:#ffffff14;--shell-hover:#ffffff0f;--primary:#2b5eea;--primary-hover:#2450cc;--primary-press:#1d40ad;--primary-soft:#2b5eea1a;--primary-fg:#fff;--canvas:#f6f7f9;--canvas-deep:#e9edf5;--canvas-glow:#2b5eea0f;--canvas-gradient:radial-gradient(ellipse 80% 45% at 50% 0%, var(--canvas-glow) 0%, transparent 55%), linear-gradient(180deg, var(--canvas) 0%, var(--canvas-deep) 100%);--surface:#fff;--surface-2:#f1f3f7;--surface-3:#e5e8ef;--surface-brand:#fdf6e3;--surface-brand-2:#f7ead0;--surface-brand-hover:#e8b64a1f;--fg:#0f172a;--fg-2:#334155;--fg-3:#64748b;--fg-4:#94a3b8;--border:#e2e8f0;--success:#16a34a;--success-fg:#15803d;--warning:#f59e0b;--warning-fg:#d97706;--danger:#ef4444;--danger-fg:#dc2626;--info:#3b82f6;--info-fg:#2563eb;--success-bg:#16a34a1f;--success-border:#16a34a59;--warning-bg:#f59e0b24;--warning-border:#f59e0b66;--danger-bg:#ef44441f;--danger-border:#ef444466;--info-bg:#3b82f61f;--info-border:#3b82f666;--neutral-bg:#94a3b81f;--neutral-fg:#64748b;--neutral-border:#94a3b84d;--sev-critical:#e11d48;--sev-critical-bg:#e11d4824;--sev-critical-border:#e11d4866;--sev-high:#f59e0b;--sev-high-bg:#f59e0b24;--sev-high-border:#f59e0b66;--sev-medium:#3b82f6;--sev-medium-bg:#3b82f624;--sev-medium-border:#3b82f666;--sev-low:#64748b;--sev-low-bg:#64748b24;--sev-low-border:#64748b66;--fw-iso27001:#0a1628;--fw-iso27001-bg:#0a16281a;--fw-soc2:#1f3a68;--fw-soc2-bg:#1f3a681f;--fw-iso42001:#10b981;--fw-iso42001-bg:#10b98124;--fw-iso9001:#f59e0b;--fw-iso9001-bg:#f59e0b24;--fw-dora:#f43f5e;--fw-dora-bg:#f43f5e24;--fw-caf:#17b8c4;--fw-caf-bg:#17b8c424;--fw-gdpr:#0ea5e9;--fw-gdpr-bg:#0ea5e924;--trend-up-bg:#ef44441f;--trend-up-fg:#dc2626;--trend-down-bg:#16a34a1f;--trend-down-fg:#15803d;--trend-flat-bg:#94a3b81f;--trend-flat-fg:#64748b;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 8px #0f172a12, 0 2px 4px #0f172a0a;--shadow-lg:0 10px 24px #0f172a17, 0 4px 8px #0f172a0d;--shadow-xl:0 20px 48px #0f172a1f, 0 8px 16px #0f172a0f;--shadow-focus:0 0 0 3px #e8b64a66;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:9999px;--font-sans:"Roboto", system-ui, sans-serif;--font-heading:"Roboto", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--ease-out:cubic-bezier(0, .8, .2, 1);--topbar-h:64px;--sidebar-w:256px;--content-zoom:14px}[data-theme=dark]{--primary:#17b8c4;--primary-hover:#14a3ad;--primary-press:#108b94;--primary-soft:#17b8c41f;--canvas:#080b11;--canvas-deep:#0c1220;--canvas-glow:#e8b64a14;--canvas-gradient:radial-gradient(ellipse 80% 45% at 50% 0%, var(--canvas-glow) 0%, transparent 55%), linear-gradient(180deg, var(--canvas) 0%, var(--canvas-deep) 100%);--surface:#11151d;--surface-2:#181d27;--surface-3:#1f2433;--fg:#f1f5f9;--fg-2:#cbd5e1;--fg-3:#94a3b8;--fg-4:#64748b;--border:#1e2535;--success-fg:#4ade80;--warning-fg:#fbbf24;--danger-fg:#f87171;--info-fg:#60a5fa;--neutral-fg:#94a3b8;--trend-up-fg:#f87171;--trend-down-fg:#4ade80;--trend-flat-fg:#94a3b8}@keyframes spin{to{transform:rotate(360deg)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--canvas-gradient);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-attachment:fixed;font-size:14px}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)!important;font-size:24px!important;font-weight:700!important;line-height:1.2!important}button,input,select,textarea{font-family:inherit}.page-title{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--fg);margin:0;font-size:24px;font-weight:700;line-height:1.15}.page-sub{color:var(--fg-3);margin:4px 0 0;font-size:13.5px;line-height:1.4}.eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--fg-4);font-size:11px;font-weight:700}.mono-id{font-family:var(--font-mono);color:var(--primary);font-size:12.5px;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm)}.card-pad{padding:20px}.card-hover:hover{border-color:color-mix(in oklab, var(--brand-gold) 45%, var(--border));transition:box-shadow .15s,border-color .15s;box-shadow:0 4px 12px #0a16281a,0 1px 3px #0a16280f}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-head h3{color:var(--fg);margin:0;font-size:14.5px;font-weight:700}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;line-height:1.2;transition:background-color .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 10px;font-size:13px}.btn-primary{background:var(--brand-gold);color:var(--brand-navy);font-weight:700}.btn-primary:hover:not(:disabled){background:var(--brand-gold-hover)}.btn-primary:active:not(:disabled){background:var(--brand-gold-hover);transform:translateY(1px)}.btn-primary:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn-secondary{background:var(--surface);color:var(--fg-2);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{color:var(--fg-3);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.tag{border-radius:var(--radius-full);white-space:nowrap;align-items:center;padding:2px 8px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.tag-red{background:var(--danger-bg);color:var(--danger-fg)}.tag-amber{background:var(--warning-bg);color:var(--warning-fg)}.tag-green{background:var(--success-bg);color:var(--success-fg)}.tag-blue{background:var(--accent-soft);color:var(--brand-navy)}.tag-violet{background:var(--fw-soc2-bg);color:var(--fw-soc2)}.tag-indigo{background:var(--fw-iso27001-bg);color:var(--fw-iso27001)}.tag-teal{background:var(--fw-caf-bg);color:var(--fw-caf)}.tag-sky{background:var(--fw-gdpr-bg);color:var(--fw-gdpr)}.tag-rose{background:var(--fw-dora-bg);color:var(--fw-dora)}.tag-emerald{background:var(--fw-iso42001-bg);color:var(--fw-iso42001)}.tag-muted{background:var(--neutral-bg);color:var(--neutral-fg)}.chip-fw{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.5;display:inline-flex}.chip-fw-iso27001{background:var(--fw-iso27001-bg);color:var(--fw-iso27001)}.chip-fw-soc2{background:var(--fw-soc2-bg);color:var(--fw-soc2)}.chip-fw-iso42001{background:var(--fw-iso42001-bg);color:var(--fw-iso42001)}.chip-fw-iso9001{background:var(--fw-iso9001-bg);color:var(--fw-iso9001)}.chip-fw-dora{background:var(--fw-dora-bg);color:var(--fw-dora)}.chip-fw-caf{background:var(--fw-caf-bg);color:var(--fw-caf)}.chip-fw-gdpr{background:var(--fw-gdpr-bg);color:var(--fw-gdpr)}.sev{border-radius:var(--radius-full);white-space:nowrap;border:1px solid #0000;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.5;display:inline-flex}.sev-critical{background:var(--sev-critical-bg);color:var(--sev-critical);border-color:var(--sev-critical-border)}.sev-high{background:var(--sev-high-bg);color:var(--sev-high);border-color:var(--sev-high-border)}.sev-medium{background:var(--sev-medium-bg);color:var(--sev-medium);border-color:var(--sev-medium-border)}.sev-low{background:var(--sev-low-bg);color:var(--sev-low);border-color:var(--sev-low-border)}.trend{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:3px;padding:2px 7px;font-size:11px;font-weight:700;line-height:1.5;display:inline-flex}.trend-up{background:var(--trend-up-bg);color:var(--trend-up-fg)}.trend-down{background:var(--trend-down-bg);color:var(--trend-down-fg)}.trend-flat{background:var(--trend-flat-bg);color:var(--trend-flat-fg)}.tile{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tile-blue{background:var(--accent-soft);color:var(--brand-navy)}.tile-amber{color:#d97706;background:#fffbeb}.tile-green{color:#15803d;background:#f0fdf4}.tile-violet{color:#1f3a68;background:#eef2f8}.tile-pink{color:#be185d;background:#fdf2f8}.tile-muted{color:#64748b;background:#f8fafc}.tbl,.table{border-collapse:collapse;width:100%}.tbl th,.table th{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-4);border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:700}.tbl td,.table td{border-bottom:1px solid var(--border);color:var(--fg-2);padding:12px 16px;font-size:14px}.tbl tbody tr:hover,.table tbody tr:hover{background:color-mix(in oklab, var(--brand-gold) 7%, var(--surface));box-shadow:inset 3px 0 0 var(--brand-gold)}.tbl tbody tr.clickable,.table tbody tr.clickable{cursor:pointer}.tbl-sticky thead th{background:color-mix(in oklab, var(--brand-navy) 4%, var(--surface))}.field{flex-direction:column;gap:6px;display:flex}.label{color:var(--fg-3);letter-spacing:.005em;margin-left:2px;font-size:12px;font-weight:500;display:block}.label .req{color:#ef4444;margin-left:2px}.input,.select,.textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--fg);font-size:13.5px;font-family:var(--font-sans);padding:10px 12px;transition:border-color .15s,box-shadow .15s,background .15s}.textarea{resize:vertical;min-height:64px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--fg-3);opacity:.55}.input:hover:not(:focus),.select:hover:not(:focus),.textarea:hover:not(:focus){border-color:color-mix(in oklab, var(--border) 60%, var(--fg-3))}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-gold);box-shadow:var(--shadow-focus);outline:none}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true],.input--invalid,.select--invalid,.textarea--invalid{border-color:var(--danger-fg,#ef4444);background:color-mix(in oklab, var(--danger-bg,#fef2f2) 30%, var(--surface))}.input[aria-invalid=true]:focus,.select[aria-invalid=true]:focus,.textarea[aria-invalid=true]:focus,.input--invalid:focus,.select--invalid:focus,.textarea--invalid:focus{border-color:var(--danger-fg,#ef4444);box-shadow:0 0 0 3px color-mix(in oklab, var(--danger-fg,#ef4444) 22%, transparent)}.field-error{color:var(--danger-fg,#ef4444);align-items:center;gap:4px;margin-top:4px;font-size:12px;line-height:1.35;display:flex}.field-error:before{content:"⚠";font-size:11px;line-height:1}.form-stack{flex-direction:column;gap:28px;display:flex}.form-section{flex-direction:column;gap:14px;display:flex}.form-section-title{color:var(--fg-3);text-transform:uppercase;letter-spacing:.14em;align-items:center;gap:10px;margin:0 0 2px;font-size:10.5px;font-weight:700;display:flex}.form-section-title:before,.form-section-title:after{content:"";background:var(--border);flex:1;height:1px}.form-row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=520px){.form-row-2{grid-template-columns:1fr}}.kpi{background:linear-gradient(180deg, var(--surface) 0%, var(--surface-brand) 100%);border:1px solid var(--border);border-left:3px solid var(--brand-gold);border-radius:var(--radius-2xl);padding:18px 20px;transition:box-shadow .16s,transform .16s,border-color .16s;box-shadow:0 1px 2px #0a16280f,0 4px 12px #0a16280a}.kpi:hover{border-left-color:var(--brand-gold-hover);border-color:color-mix(in oklab, var(--brand-gold) 30%, var(--border));box-shadow:0 2px 4px #0a16281a,0 8px 20px #0a162814}.kpi .label{color:var(--brand-navy);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:700}.kpi .num{letter-spacing:-.02em;color:var(--fg);margin-bottom:4px;font-size:28px;font-weight:800}.kpi .delta{color:var(--fg-3);font-size:12px}.avatar{border-radius:var(--radius-full);background:var(--brand-navy);width:32px;height:32px;color:var(--brand-gold);border:1px solid color-mix(in oklab, var(--brand-gold) 30%, transparent);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;transition:box-shadow .15s,border-color .15s;display:flex}.avatar:hover{box-shadow:0 0 0 2px color-mix(in oklab, var(--brand-gold) 40%, transparent);border-color:var(--brand-gold)}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{box-shadow:var(--shadow-focus);outline:none}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@keyframes rowHighlightFlash{0%{box-shadow:inset 3px 0 0 var(--primary,#386fff);background-color:#386fff38}60%{box-shadow:inset 3px 0 0 var(--primary,#386fff);background-color:#386fff24}to{background-color:#0000;box-shadow:inset 3px 0 #0000}}.row-highlight-flash{animation:2.2s ease-out rowHighlightFlash}.tbl td.col-primary,.table td.col-primary{color:var(--fg);font-weight:600}.tbl td.col-muted,.table td.col-muted{color:var(--fg-3)}.tbl th.col-num,.tbl td.col-num,.table th.col-num,.table td.col-num{text-align:right;font-variant-numeric:tabular-nums}.tbl td .cell-truncate,.table td .cell-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:32ch;display:block;overflow:hidden}.tbl-sticky thead th{z-index:1;background:var(--surface);position:sticky;top:0}.tbl-zebra tbody tr:nth-child(2n) td{background:color-mix(in oklab, var(--surface) 60%, var(--surface-2) 40%)}.tbl-zebra tbody tr:hover td{background:var(--surface-2)}.pill{border:1px solid var(--border);background:var(--surface-2);height:22px;color:var(--fg-2);letter-spacing:.01em;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:0 8px;font-size:11.5px;font-weight:600;line-height:1;display:inline-flex}.pill-neutral{background:var(--surface-2);color:var(--fg-2)}.pill-muted{color:var(--fg-3);background:0 0}.pill-info{background:color-mix(in oklab, var(--brand-gold) 14%, var(--surface));color:var(--brand-navy);border-color:color-mix(in oklab, var(--brand-gold) 40%, var(--border))}.pill-success{background:color-mix(in oklab, #16a34a 12%, var(--surface));color:#15803d;border-color:color-mix(in oklab, #16a34a 30%, var(--border))}.pill-warning{background:color-mix(in oklab, #f59e0b 14%, var(--surface));color:#b45309;border-color:color-mix(in oklab, #f59e0b 30%, var(--border))}.pill-danger{background:color-mix(in oklab, #dc2626 12%, var(--surface));color:#b91c1c;border-color:color-mix(in oklab, #dc2626 30%, var(--border))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width<=640px){.grid-2{grid-template-columns:1fr}}.grid-2>label,.grid-2>label.text-sm{color:var(--fg-2);flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;display:flex}.grid-2>label>input:not([type=checkbox]):not([type=radio]),.grid-2>label>select,.grid-2>label>textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--fg);font-size:13.5px;font-family:var(--font-sans);padding:8px 10px;transition:border-color .15s,box-shadow .15s}.grid-2>label>input:focus,.grid-2>label>select:focus,.grid-2>label>textarea:focus{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:none}
