:root{--navy-900:oklch(22% .07 265);--navy-800:oklch(28% .08 265);--navy-700:oklch(36% .09 265);--navy-600:oklch(46% .1 265);--navy-500:oklch(58% .09 265);--navy-100:oklch(94% .015 265);--navy-050:oklch(97% .008 265);--teal-700:oklch(56% .11 168);--teal-600:oklch(68% .13 168);--teal-500:oklch(78% .13 168);--teal-100:oklch(94% .04 168);--red-600:oklch(58% .2 25);--red-500:oklch(66% .19 25);--red-100:oklch(94% .04 25);--amber-600:oklch(72% .16 75);--amber-500:oklch(78% .15 80);--amber-100:oklch(95% .05 80);--purple-600:oklch(55% .16 295);--purple-100:oklch(94% .04 295);--paper:oklch(98.5% .004 250);--bg:oklch(97.5% .005 250);--surface:#fff;--line:oklch(90% .008 260);--line-2:oklch(83% .012 260);--ink-900:oklch(20% .015 260);--ink-700:oklch(36% .015 260);--ink-500:oklch(52% .012 260);--ink-400:oklch(64% .01 260);--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", system-ui, sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", "SF Mono", Menlo, Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-pill:999px;--radius-btn:8px;--radius-card:12px;--radius-frame:16px;--radius-chip:6px;--shadow-frame:0 16px 60px -30px oklch(30% .06 265/.45);--row-py:12px;--row-fs:13px}[data-density=compact]{--row-py:6px;--row-fs:12px}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--ink-900);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%}a{color:inherit;text-decoration:none}button{cursor:pointer}input,select,textarea{font-family:inherit}.app-layout{height:100vh;display:flex;overflow:hidden}.app-sidebar{background:var(--navy-900);color:oklch(85% .015 265);flex-direction:column;flex:0 0 280px;gap:18px;width:280px;padding:22px 18px;display:flex;overflow-y:auto}.app-sidebar .brandmark .bm-name{color:#fff}.app-sidebar .brandmark .bm-sub{color:oklch(70% .04 200)}.app-main{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{background:var(--surface);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:16px;height:62px;padding:0 24px;display:flex}.app-body{flex-direction:column;flex:1;gap:16px;padding:22px 24px;display:flex;overflow-y:auto}.nav-section{letter-spacing:.14em;text-transform:uppercase;color:oklch(65% .04 200);margin-top:6px;padding:0 6px;font-size:10px}.nav-item{color:oklch(80% .02 265);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:7px;align-items:center;gap:10px;padding:9px 10px;font-size:13px;font-weight:500;transition:background .12s,color .12s;display:flex}.nav-item:hover{color:#fff;background:oklch(28% .09 265)}.nav-item.active{color:#fff;background:oklch(30% .1 265)}.nav-icon{width:18px;height:18px;font-family:var(--font-mono);color:oklch(95% .04 168);background:oklch(30% .08 265);border-radius:4px;flex:none;place-items:center;font-size:10px;display:grid}.nav-badge{background:var(--teal-700);color:#fff;border-radius:999px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.nav-badge.risk{background:var(--red-600)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.card-header{color:var(--navy-900);align-items:center;gap:8px;padding:14px 18px 0;font-size:14px;font-weight:700;display:flex}.card-body{padding:14px 18px}.pill{border-radius:var(--radius-pill);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:6px;height:22px;padding:0 9px;font-size:11px;font-weight:600;display:inline-flex}.pill .dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.pill-ok{background:var(--teal-100);color:var(--teal-700)}.pill-warn{background:var(--amber-100);color:oklch(50% .14 70)}.pill-risk{background:var(--red-100);color:var(--red-600)}.pill-info{background:var(--navy-100);color:var(--navy-800)}.pill-mute{color:var(--ink-500);background:oklch(94% .005 260)}.pill-purple{background:var(--purple-100);color:var(--purple-600)}.role{color:var(--ink-700);background:var(--navy-050);border:1px solid var(--line);border-radius:var(--radius-chip);align-items:center;gap:6px;padding:2px 7px 2px 4px;font-size:11px;font-weight:600;display:inline-flex}.role-icon{color:#fff;width:16px;height:16px;font-family:var(--font-mono);border-radius:4px;place-items:center;font-size:10px;font-weight:700;display:grid}.role-Finance .role-icon{background:oklch(45% .16 265)}.role-Procurement .role-icon{background:oklch(50% .14 200)}.role-SupplyChain .role-icon{background:oklch(50% .14 160)}.role-Operations .role-icon{background:oklch(55% .14 145)}.role-Revenue .role-icon{background:oklch(52% .14 50)}.role-IT .role-icon{background:oklch(52% .13 35)}.alert{border:1px solid var(--line);border-left:4px solid var(--navy-700);background:var(--surface);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.45}.alert-risk{border-left-color:var(--red-600)}.alert-warn{border-left-color:var(--amber-500)}.alert-ok{border-left-color:var(--teal-600)}.alert strong{font-weight:700}.btn{border-radius:var(--radius-btn);font-size:13px;font-weight:600;font-family:var(--font-sans);border:1px solid var(--line-2);background:var(--surface);color:var(--ink-900);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:8px 14px;line-height:1;transition:opacity .12s;display:inline-flex}.btn:hover{opacity:.85}.btn-primary{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}.btn-accent{background:var(--teal-700);color:#fff;border-color:var(--teal-700)}.btn-danger{background:var(--red-600);color:#fff;border-color:var(--red-600)}.btn-ghost{background:0 0}.btn-sm{padding:5px 10px;font-size:12px}.tbl{border-collapse:collapse;width:100%;font-size:var(--row-fs)}.tbl th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);border-bottom:1px solid var(--line);background:var(--navy-050);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}.tbl td{padding:var(--row-py) 12px;border-bottom:1px solid var(--line);color:var(--ink-900);vertical-align:middle}.tbl tbody tr:hover td{background:var(--navy-050)}.tbl tbody tr.violated td{background:oklch(97% .025 25)}.tbl tbody tr.violated:hover td{background:oklch(95% .04 25)}.action-btn{border:1px solid var(--line-2);color:var(--ink-700);cursor:pointer;font-size:11px;font-family:var(--font-sans);background:0 0;border-radius:5px;padding:3px 8px;transition:background .1s,border-color .1s,color .1s}.action-btn:hover{background:var(--navy-050);color:var(--navy-900);border-color:var(--navy-500)}.action-btn.danger:hover{background:var(--red-100);color:var(--red-600);border-color:var(--red-500)}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:8px;padding:18px 20px;display:flex}.stat .stat-label{color:var(--ink-500);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:600}.stat .stat-value{letter-spacing:-.02em;color:var(--navy-900);font-size:38px;font-weight:800;line-height:1}.stat .stat-delta{color:var(--ink-500);font-size:12px;font-family:var(--font-mono)}.stat .stat-delta.up{color:var(--red-600)}.stat .stat-delta.down{color:var(--teal-700)}.stat.danger .stat-value{color:var(--red-600)}.stat.ok .stat-value{color:var(--teal-700)}.timeline{padding-left:22px;position:relative}.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:4px;bottom:4px;left:7px}.timeline .ev{color:var(--ink-700);flex-direction:column;gap:2px;padding:8px 0;font-size:12px;display:flex;position:relative}.timeline .ev:before{content:"";background:var(--navy-050);border:2px solid var(--navy-700);border-radius:50%;width:12px;height:12px;position:absolute;top:14px;left:-22px}.timeline .ev.risk:before{border-color:var(--red-600);background:var(--red-100)}.timeline .ev.warn:before{border-color:var(--amber-500);background:var(--amber-100)}.timeline .ev.ok:before{border-color:var(--teal-700);background:var(--teal-100)}.timeline .ev-meta{font-family:var(--font-mono);color:var(--ink-400);font-size:11px}.timeline .ev-title{color:var(--navy-900);font-weight:600}.brandmark{align-items:center;gap:10px;display:inline-flex}.bm-mark{background:var(--navy-700);border-radius:7px;flex:none;place-items:center;width:32px;height:32px;display:grid;position:relative}.bm-mark:before{content:"";border:1.5px solid var(--teal-500);border-radius:3px;position:absolute;inset:6px}.bm-name{letter-spacing:-.01em;color:var(--navy-900);font-size:16px;font-weight:700}.bm-sub{color:var(--ink-500);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:500;display:block}.topbar-search{background:var(--navy-050);border:1px solid var(--line);border-radius:var(--radius-btn);max-width:360px;height:36px;color:var(--ink-400);flex:1;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}.topbar-search input{color:var(--ink-900);font-size:13px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1}.compl-score{background:var(--teal-100);border:1px solid var(--teal-600);border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 10px;display:flex}.compl-ring{border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:relative}.compl-ring-label{color:var(--teal-700);font-size:10px;font-weight:700;font-family:var(--font-mono);position:absolute}.compl-text{color:var(--teal-700);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.compl-text small{color:var(--ink-500);text-transform:none;letter-spacing:0;font-size:10px;font-weight:500;font-family:var(--font-mono);display:block}.mono{font-family:var(--font-mono);font-size:12px}.page-title{color:var(--navy-900);font-size:18px;font-weight:700}.page-sub{color:var(--ink-500);font-size:12px}.flex-row{align-items:center;gap:8px;display:flex}.flex-grow{flex:1}.stat-row{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.two-col{grid-template-columns:1fr 320px;gap:14px;display:grid}.stack{flex-direction:column;gap:14px;display:flex}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-card);border:1px solid var(--line);width:480px;max-width:calc(100vw - 32px);padding:28px;box-shadow:0 20px 60px #00000040}.modal-title{color:var(--navy-900);margin-bottom:6px;font-size:16px;font-weight:700}.modal-sub{color:var(--ink-500);margin-bottom:20px;font-size:13px}.modal-footer{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.form-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);margin-bottom:6px;font-size:11px;font-weight:600;display:block}.form-input{border:1px solid var(--line-2);border-radius:var(--radius-btn);width:100%;font-size:13px;font-family:var(--font-sans);color:var(--ink-900);background:var(--surface);outline:none;padding:9px 12px}.form-input:focus{border-color:var(--navy-700)}.form-group{margin-bottom:14px}.seg-ctrl{background:var(--navy-050);border:1px solid var(--line);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.seg-btn{color:var(--ink-500);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;transition:background .12s,color .12s}.seg-btn.active{background:var(--surface);color:var(--navy-900);box-shadow:0 1px 3px #0000001a}.seg-btn.active.danger{background:var(--red-600);color:#fff}@media (width<=1280px){.stat-row{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}@media (width<=768px){.app-sidebar{display:none}.stat-row{grid-template-columns:1fr 1fr}}
