:root{--app:#eef0f3;--card:#fff;--subtle:#f8f9fb;--sidebar:#0f151d;--ink:#16191f;--muted:#5a626e;--faint:#878e99;--border:#e3e6ea;--critical:#c02626;--high:#cc6b0a;--medium:#a5860b;--low:#3f6ea8;--healthy:#17795e;--unknown:#878e99;--quarantine:#6b3fbf;--interactive:#1b5cc4}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"IBM Plex Sans",Inter,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--app);font-size:13px}a{color:inherit}.app{min-height:100vh;display:grid;grid-template-columns:236px 1fr}.sidebar{background:var(--sidebar);color:#cbd2dc;padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto}.brand{font-size:15px;font-weight:600;color:#fff;padding:8px 10px 20px}.brand small{display:block;color:#69748a;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;margin-top:4px}.nav-group{margin:12px 0}.nav-label{font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#69748a;padding:7px 10px}.nav a{display:flex;gap:9px;align-items:center;text-decoration:none;padding:8px 10px;border-radius:5px;margin:2px 0;color:#b8c0cc}.nav a:hover,.nav a.active{background:#1b2531;color:#fff}.nav .icon{width:16px;text-align:center;color:#69748a}.main{min-width:0}.header{height:58px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 26px;position:sticky;top:0;z-index:5;box-shadow:0 1px 3px rgba(15,21,29,.05)}.header h1{font-size:14px;margin:0;font-weight:600}.header .meta{margin-left:auto;color:var(--faint);font-size:12px}.content{padding:26px;max-width:1800px}.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}.page-head h2{font-size:21px;line-height:1.2;margin:0;font-weight:600;letter-spacing:-.02em}.page-head p{margin:6px 0 0;color:var(--muted)}.page-head .actions{margin-left:auto}.btn{border:1px solid #cdd4dc;background:#fff;border-radius:5px;padding:8px 12px;min-height:34px;font-weight:500;color:#26303c;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn-primary{background:var(--interactive);border-color:var(--interactive);color:#fff}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--border);border-radius:7px;padding:16px}.card h3{font-size:13.5px;margin:0 0 13px;font-weight:600}.metric{font-size:25px;font-weight:600;letter-spacing:-.03em}.metric-label{color:var(--muted);margin-top:4px}.section{margin-top:20px}.section-title{display:flex;align-items:center;margin-bottom:9px}.section-title h3{font-size:15px;margin:0}.section-title span{margin-left:auto;color:var(--faint)}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:7px;overflow:hidden}th{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;text-align:left;color:#6b7380;font-weight:600;background:#f8f9fb;border-bottom:1px solid var(--border);padding:9px 12px}td{padding:10px 12px;border-bottom:1px solid #eff1f4;font-size:12.5px;vertical-align:top}tr:last-child td{border-bottom:0}.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;font-size:11.5px}.muted{color:var(--muted)}.faint{color:var(--faint)}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:3px;padding:3px 7px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.critical{background:#fff0f0;color:var(--critical)}.high{background:#fff5e9;color:var(--high)}.medium{background:#fff9de;color:var(--medium)}.low{background:#edf4fd;color:var(--low)}.healthy,.valid{background:#eaf7f2;color:var(--healthy)}.unknown{background:#f0f1f3;color:var(--unknown)}.quarantined{background:#f4efff;color:var(--quarantine)}.lifecycle{background:#fff;border:1px solid #cdd4dc;color:#5a626e}.lifecycle:before{display:none}.row-missing{background:#fff9e8}.row-quarantine{background:#f7f3ff}.finding-title{font-weight:600;text-decoration:none}.finding-title:hover{color:var(--interactive)}.four-quadrants{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:7px;overflow:hidden}.quadrant{background:#fff;padding:16px;min-height:130px}.quadrant h3{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#69748a;margin:0 0 9px}.quadrant p{font-size:13.5px;line-height:1.7;margin:0;color:#26303c}.evidence{background:#0f151d;color:#d5dce6;border-radius:7px;padding:16px;overflow:auto}.evidence .path{color:#8db7ff}.evidence .value{color:#afe1c7}.banner{padding:12px 14px;border-radius:7px;border:1px solid var(--border);background:#fff;margin-bottom:16px}.banner.warning{border-left:3px solid var(--high)}.banner.quarantine{border-left:3px solid var(--quarantine)}.empty{padding:32px;text-align:center;color:var(--muted)}.confidence{display:inline-flex;gap:2px;align-items:end;height:14px}.confidence i{display:block;width:3px;background:#ced3d9;border-radius:1px}.confidence i:nth-child(1){height:4px}.confidence i:nth-child(2){height:7px}.confidence i:nth-child(3){height:10px}.confidence i:nth-child(4){height:13px}.confidence.high i{background:var(--healthy)}.cause-ring{width:16px;height:16px;border:2px solid var(--unknown);border-radius:50%;display:inline-block;vertical-align:middle;margin-right:5px}.focusable:focus,.btn:focus,.nav a:focus{outline:2px solid var(--interactive);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media(max-width:1279px){.app{grid-template-columns:72px 1fr}.sidebar{padding:18px 8px}.brand{font-size:0}.brand:before{content:"SW";font-size:15px}.brand small,.nav-label,.nav a span:not(.icon){display:none}.nav a{justify-content:center;min-height:40px}.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){.app{display:block}.sidebar{display:none}.header{padding:0 16px}.content{padding:16px}.grid-4,.grid-2,.four-quadrants{grid-template-columns:1fr}table{display:block;overflow-x:auto}.page-head{display:block}.page-head .actions{margin-top:12px}.card{padding:13px}}
