:root{--nav:#102b3c;--ink:#173447;--muted:#687c8b;--bg:#f1f5f8;--line:#dce5ec;--accent:#087d91;--white:#fff;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:15px}*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}aside{position:fixed;inset:0 auto 0 0;width:244px;background:var(--nav);color:white;overflow:auto;padding:24px 15px}aside a{color:#d2e0e8;display:block;padding:9px 14px;border-radius:7px}aside a:hover{background:#22475b;text-decoration:none}a.brand{font-size:24px;font-weight:750;color:#fff;padding-bottom:24px}a.brand span{font-weight:350;margin-left:4px}small{font-size:12px}a.brand small{display:block;color:#8da9b8;font-weight:400;margin-top:8px}nav{display:grid;gap:1px}nav a{font-size:13px}.workspace{margin-left:244px}header{min-height:68px;padding:14px 32px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:18px}header form{margin:0}header span{margin-right:auto}main{max-width:1500px;padding:30px 34px 70px;margin:auto}h1{font-size:28px;letter-spacing:-.7px;margin:0 0 22px}h2{font-size:18px;margin:25px 0 15px}h3{font-size:16px}p{line-height:1.6}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:20px 0}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;margin:12px 0;box-shadow:0 3px 10px #102b3c04}.cards .card{margin:0}.card h2{margin:0 0 16px}.card strong{display:block;font-size:36px;font-weight:650;margin:12px 0}.muted{color:var(--muted);font-size:13px}.late{color:#b33435}.notice{background:#e3f5f3;border:1px solid #b0dfd7;padding:16px;border-radius:8px;margin:16px 0}.error{background:#fff0ec;color:#9a2929;padding:15px;border-radius:8px;margin:12px 0}.error:empty{display:none}.toolbar,.filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.toolbar h2{margin-right:auto}.button,button{display:inline-block;padding:11px 17px;background:var(--accent);color:white;border:0;border-radius:7px;cursor:pointer;font:inherit;font-weight:600;text-decoration:none}.button:hover,button:hover{filter:brightness(.93);text-decoration:none}.secondary,.quiet{background:#e9f0f4;color:var(--ink)}.danger{background:#ac3636}input,select,textarea{font:inherit;width:100%;border:1px solid #bacbd6;border-radius:6px;padding:11px;background:#fff;color:var(--ink);margin:7px 0 0;min-width:0}input[type=checkbox]{width:auto;margin:0 7px 0 0}input[type=file]{max-width:100%}label{display:block;font-weight:500;line-height:1.4;margin:12px 0 18px}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.filters input,.filters select{width:auto;max-width:300px;margin:0}.filters label{margin:0}.table-wrap{overflow:auto;background:white;border-radius:10px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:13px 16px;vertical-align:top}th{background:#f7f9fb;font-weight:600;color:#50677a}tr:last-child td{border-bottom:none}td{max-width:460px;overflow-wrap:anywhere}.badge{display:inline-block;background:#e9f0f5;padding:4px 8px;border-radius:5px;font-size:12px}.details{display:grid;grid-template-columns:minmax(150px,1fr) 3fr;gap:12px 24px;margin:0}.details dt{font-size:13px;color:var(--muted)}.details dd{margin:0;white-space:normal;overflow-wrap:anywhere}.inline{display:inline-block;margin:5px 10px 5px 0}.hash{font-family:monospace;font-size:11px;word-break:break-all}details summary{cursor:pointer;line-height:1.6}pre{white-space:pre-wrap;overflow-wrap:anywhere}.install{max-width:660px;background:white;margin:40px auto;border-radius:14px;padding:35px}.asset{display:flex;align-items:center;gap:30px;flex-wrap:wrap}.process{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}.process-step{padding:18px;background:#dceef2;border-radius:8px;border-bottom:3px solid var(--accent)}.chart svg{width:100%;max-height:300px}.chart text{font-size:11px;fill:var(--ink)}.heatmap{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.heat{min-height:80px;padding:10px;border-radius:5px}.heat small,.heat a{display:block}.heat a{font-size:12px;margin-top:5px}.heat-low{background:#e3efec}.heat-mid{background:#fff0c7}.heat-high{background:#f7d4cd}.nav-toggle{display:none}:focus-visible{outline:3px solid #eab44a;outline-offset:3px}@media(max-width:900px){aside{width:210px}.workspace{margin-left:210px}main{padding:24px 20px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){aside{display:none;z-index:20;top:65px;width:260px}.nav-open aside{display:block}.workspace{margin-left:0}header{padding:12px 16px;gap:12px}.nav-toggle{display:block}main{padding:24px 14px}.form-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr;gap:10px}.cards .card{padding:15px}.card h2{font-size:15px}.card strong{font-size:30px}.details{grid-template-columns:1fr;gap:6px}.details dd{margin-bottom:13px}.install{margin:15px;padding:22px}.heat{padding:5px;min-height:65px}.heat a{font-size:10px}.toolbar .button{width:100%}h1{font-size:24px}}
@media print{aside,header,button,.toolbar{display:none}.workspace{margin:0}main{padding:0}.card{break-inside:avoid}}

.nav-group{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#87a7b8;padding:20px 14px 6px}.overview-cards{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:900px){.overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.license-banner{margin:0 0 1rem;padding:.65rem 1rem;border:1px solid #d8b24c;border-radius:.65rem;background:#fff8dc;font-weight:700}
