:root{--bg:#0b0d12;--panel:#12161d;--panel2:#171c25;--line:#252c38;--text:#f5f7fb;--muted:#97a0af;--accent:#79ffa7;--accent2:#7ab6ff;--warn:#ffcf66;--danger:#ff7b87;--shadow:0 14px 40px #00000047;--radius:18px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--text);background:linear-gradient(135deg,#090b10 0%,#10131a 45%,#0b0d12 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.app{grid-template-columns:240px 1fr;min-height:100vh;display:grid}aside{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0c11db;height:100vh;padding:24px 18px;position:sticky;top:0}.brand{letter-spacing:.3px;margin:4px 8px 30px;font-size:18px;font-weight:800}.brand span{color:var(--accent)}nav a{color:var(--muted);border-radius:12px;align-items:center;gap:12px;margin-bottom:6px;padding:12px 14px;font-size:14px;text-decoration:none;display:flex}nav a.active,nav a:hover{background:var(--panel2);color:var(--text)}.side-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px;position:absolute;bottom:20px;left:18px;right:18px}.small{color:var(--muted);font-size:12px}main{padding:30px 34px 50px;overflow:hidden}header{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}h1{letter-spacing:-.7px;margin:0;font-size:29px}.sub{color:var(--muted);margin-top:6px;font-size:14px}.actions{gap:10px;display:flex}button{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:11px;padding:10px 14px;font-weight:600}button.primary{background:var(--accent);color:#0c1110;border-color:#0000}.grid{gap:16px;display:grid}.metrics{grid-template-columns:repeat(4,1fr);margin-bottom:16px}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#12161deb}.metric{padding:19px}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;font-size:12px}.value{margin-top:8px;font-size:30px;font-weight:800}.delta{margin-top:6px;font-size:12px}.good{color:var(--accent)}.mid{color:var(--warn)}.bad{color:var(--danger)}.middle{grid-template-columns:1.45fr .85fr;margin-bottom:16px}.bottom{grid-template-columns:1.1fr 1fr}.section{padding:20px}.section-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-head h3{margin:0;font-size:16px}.pill{color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:5px 8px;font-size:11px}.chart{align-items:flex-end;gap:10px;height:260px;padding-top:10px;display:flex;overflow-x:auto}.bar-wrap{text-align:center;color:var(--muted);flex:1;min-width:34px;font-size:10px}.bar{background:linear-gradient(180deg,var(--accent2),#376caa);border-radius:8px 8px 3px 3px;width:100%;min-height:10px;transition:all .2s}.bar:hover{filter:brightness(1.15);transform:translateY(-2px)}.bar-value{color:#dce4f1;margin-bottom:5px;font-size:10px}.bar-label{white-space:nowrap;margin-top:8px}.health-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:8px;padding:13px 0;display:grid}.health-row:last-child{border-bottom:none}.name{font-size:14px}.desc{color:var(--muted);margin-top:3px;font-size:12px}.score{font-weight:800}.table{border-collapse:collapse;width:100%;font-size:12px}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:10px}.table th{color:var(--muted);font-weight:600}.table td:last-child,.table th:last-child{text-align:right}.notice{border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:12px}.footer-note{color:var(--muted);margin-top:22px;font-size:12px}@media (max-width:1050px){.app{grid-template-columns:1fr}aside{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.middle,.bottom{grid-template-columns:1fr}}@media (max-width:620px){main{padding:22px 16px}header{flex-direction:column;align-items:flex-start;gap:14px}.metrics{grid-template-columns:1fr}.actions{width:100%}.actions button{flex:1}}
