:root{--bg:#071019;--panel:#0d1a26;--panel2:#102332;--line:#1d3545;--text:#eaf3f7;--muted:#8ea5b4;--teal:#1bc8c1;--cyan:#48b9d5;--amber:#ffb547;--red:#ff6b6b;--green:#56d38b;--shadow:0 20px 45px rgba(0,0,0,.22);--radius:18px}*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;font-family:Manrope,Aptos,"Segoe UI",sans-serif;background:radial-gradient(circle at 85% -10%,#10384a 0,transparent 34%),var(--bg);color:var(--text)}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;border-right:1px solid var(--line);background:linear-gradient(180deg,#09151f,#08111a);display:flex;flex-direction:column}.brand img{width:100%;height:auto}.brand{display:block;margin:0 4px 28px}.sidebar nav{display:grid;gap:6px}.sidebar nav button{border:0;background:transparent;color:var(--muted);text-align:left;padding:13px 14px;border-radius:12px;cursor:pointer;font-weight:700;display:flex;gap:12px;align-items:center}.sidebar nav button:hover,.sidebar nav button.active{background:#112a38;color:#fff}.sidebar nav button.active{box-shadow:inset 3px 0 0 var(--teal)}.side-foot{margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 0;color:var(--muted);font-size:12px;display:grid;grid-template-columns:10px 1fr;gap:6px 8px}.side-foot small{grid-column:2}.online-dot{width:8px;height:8px;border-radius:50%;background:var(--green);margin-top:4px}main{min-width:0}.topbar{padding:26px 34px 18px;display:flex;justify-content:space-between;align-items:center;gap:24px;position:sticky;top:0;z-index:5;background:linear-gradient(180deg,rgba(7,16,25,.96),rgba(7,16,25,.84),transparent);backdrop-filter:blur(12px)}.eyebrow{margin:0 0 5px;color:var(--teal);font:600 11px "IBM Plex Mono",monospace;letter-spacing:.16em}.topbar h1{margin:0;font-size:27px;letter-spacing:-.035em}.top-actions{display:flex;align-items:center;gap:10px}.search{display:flex;align-items:center;background:#0e1e2b;border:1px solid var(--line);border-radius:12px;padding:0 12px;min-width:320px}.search input{border:0;outline:0;background:transparent;color:var(--text);padding:11px;width:100%}.primary,.ghost{border:0;border-radius:11px;padding:11px 14px;font-weight:800;cursor:pointer}.primary{background:var(--teal);color:#031314}.ghost{background:#122636;color:var(--text);border:1px solid var(--line)}#app{padding:8px 34px 46px}.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi{background:linear-gradient(145deg,#0d1c29,#0b1823);border:1px solid var(--line);border-radius:var(--radius);padding:18px;min-height:120px;box-shadow:var(--shadow)}.kpi small{color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.kpi strong{display:block;font-size:30px;margin:12px 0 4px}.kpi .trend{font-size:12px;color:var(--muted)}.kpi.danger strong{color:var(--red)}.kpi.warn strong{color:var(--amber)}.kpi.accent strong{color:var(--teal)}.panel{background:linear-gradient(145deg,#0c1a26,#0a1721);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel h2,.panel h3{margin:0;font-size:16px}.panel small{color:var(--muted)}.two{grid-template-columns:1.3fr .7fr;margin-top:16px}.three{grid-template-columns:repeat(3,1fr);margin-top:16px}.chart{height:270px;display:flex;align-items:flex-end;gap:12px;padding:20px 4px 4px}.bar-group{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:8px;min-width:0}.bar{width:min(48px,70%);border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,var(--teal),#147f8a);min-height:3px;box-shadow:0 0 22px rgba(27,200,193,.12)}.bar.warn{background:linear-gradient(180deg,var(--amber),#9a6b20)}.bar.danger{background:linear-gradient(180deg,var(--red),#9e3a49)}.bar-label{color:var(--muted);font-size:10px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.bar-value{font:600 11px "IBM Plex Mono",monospace}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:collapse;min-width:1050px}.data-table th{position:sticky;top:0;background:#112432;color:#8fa9b8;text-align:left;font:600 10px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em;padding:12px}.data-table td{padding:12px;border-top:1px solid #18303f;font-size:12px}.data-table tr:hover td{background:#0f2230}.tag{font:700 12px "IBM Plex Mono",monospace;color:#d7f4f3}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;border:1px solid}.pill.ok{color:#74e4a3;background:#0d2a20;border-color:#1c5940}.pill.warn{color:#ffd080;background:#312617;border-color:#5b451f}.pill.danger{color:#ff9a9a;background:#33191d;border-color:#633038}.pill.info{color:#7ee8e2;background:#0c2a2c;border-color:#1f5759}.pill.neutral{color:#b5c3cc;background:#17232c;border-color:#31404a}.section-title{display:flex;justify-content:space-between;align-items:end;margin:8px 0 14px}.section-title h2{margin:0;font-size:18px}.section-title p{margin:4px 0 0;color:var(--muted);font-size:12px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters select,.filters input{background:#0f2130;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:12px}.progress{height:8px;background:#132634;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#5ee5a8)}.metric-row{display:grid;grid-template-columns:1fr 60px;gap:10px;align-items:center;margin:13px 0}.metric-row .label{font-size:12px}.metric-row .pct{text-align:right;font:600 11px "IBM Plex Mono",monospace}.risk-list{display:grid;gap:9px}.risk-item{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;background:#0f2130;border:1px solid #1b3544;border-radius:12px;padding:10px}.risk-score{font:700 15px "IBM Plex Mono",monospace;color:var(--amber)}.risk-item p{margin:0;font-size:12px}.risk-item small{font-size:10px}.drawer,.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);z-index:20;display:none}.drawer.open,.modal.open{display:block}.drawer-card{margin-left:auto;width:min(720px,96vw);height:100%;overflow:auto;background:#091722;border-left:1px solid var(--line);padding:28px}.modal-card{width:min(720px,94vw);max-height:90vh;overflow:auto;margin:5vh auto;background:#091722;border:1px solid var(--line);border-radius:18px;padding:28px}.drawer-close{float:right;background:#132634;color:#fff;border:1px solid var(--line);border-radius:9px;width:34px;height:34px;cursor:pointer}.detail-hero{padding:22px 0 18px;border-bottom:1px solid var(--line)}.detail-hero h2{font:800 28px "IBM Plex Mono",monospace;margin:6px 0}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}.detail-box{background:#0d1e2b;border:1px solid var(--line);border-radius:12px;padding:12px}.detail-box small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.detail-box strong{display:block;margin-top:4px;font-size:13px}.doc-list{display:grid;gap:7px;margin-top:12px}.doc-item{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #17303e;font-size:12px}.notice{padding:13px 14px;border-radius:12px;border:1px solid #5a4623;background:#2a2115;color:#ffd592;font-size:12px;line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:5px}.field label{font-size:11px;color:var(--muted);font-weight:700}.field input,.field select{background:#102331;color:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.empty{text-align:center;padding:60px;color:var(--muted)}.hero-card{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;align-items:center;background:linear-gradient(135deg,#0d2531,#101c27);border:1px solid #214254;border-radius:22px;padding:26px;margin-bottom:18px}.hero-card h2{font-size:28px;margin:0 0 8px}.hero-card p{color:var(--muted);line-height:1.6;margin:0}.hero-badge{justify-self:end;background:#09151f;border:1px solid #214254;border-radius:18px;padding:18px;min-width:230px}.mono{font-family:"IBM Plex Mono",monospace}.mobile-menu{display:none}.statline{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px}.statline span{font-size:12px;color:var(--muted)}.statline b{color:#fff}.callout{border-left:3px solid var(--teal);padding:13px 15px;background:#0d202b;border-radius:0 12px 12px 0;color:#b9ccd6;font-size:12px;line-height:1.55}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toolbar button{background:#112636;color:#d9e7ed;border:1px solid var(--line);border-radius:10px;padding:8px 11px;cursor:pointer;font-size:12px}@media(max-width:1250px){.kpis{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1fr}.three{grid-template-columns:1fr 1fr}.search{min-width:240px}}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;z-index:30;width:248px;transition:.2s}.sidebar.open{left:0}.mobile-menu{display:inline-block;background:#102433;color:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-right:9px}.topbar{padding:18px;align-items:flex-start}.topbar>div:first-child{display:flex;align-items:center;flex-wrap:wrap}.topbar h1{font-size:21px;width:100%;margin-left:47px}.eyebrow{display:none}.top-actions{flex:1;justify-content:flex-end}.search{min-width:0;width:180px}.top-actions .primary{display:none}#app{padding:6px 18px 30px}.kpis,.three{grid-template-columns:1fr 1fr}.hero-card{grid-template-columns:1fr}.hero-badge{justify-self:stretch}.drawer-card{width:100%}}@media(max-width:520px){.kpis,.three,.detail-grid,.form-grid{grid-template-columns:1fr}.top-actions{display:none}.kpi{min-height:105px}.kpi strong{font-size:25px}}
