:root{--ink: #201e1d;--mut: #605d5d;--hair: #eae7e7;--bg: #f6f5f4;--white: #fff;--teal: #0d6b63;--teal-d: #07463f;--teal-t: #e2efed;--teal2: #4f9b93;--amb: #a9690a;--amb-t: #fbeed9;--red: #ec3013;--red-d: #8b1c07;--red-t: #ffe0d9;font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--teal)}button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid #d7d3d3;background:var(--white);padding:7px 12px;color:var(--ink)}button.primary{background:var(--teal);border-color:var(--teal);color:#fff}button.danger{background:var(--white);border-color:var(--red);color:var(--red-d)}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #d7d3d3;border-radius:6px;background:#fff;color:var(--ink)}textarea{width:100%;min-height:70px}label{display:block;font-size:12px;color:var(--mut);margin:10px 0 4px}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 12px}h3{font-size:14px;margin:16px 0 8px}.muted{color:var(--mut)}.small{font-size:12px}.err{color:var(--red-d);background:var(--red-t);padding:8px 10px;border-radius:6px}.ok{color:var(--teal-d);background:var(--teal-t);padding:8px 10px;border-radius:6px}.auth{min-height:100vh;display:grid;place-items:center;background:var(--ink)}.auth .card{width:380px}.brand{display:flex;gap:10px;align-items:center;font-weight:700;letter-spacing:.02em}.brand i{width:14px;height:14px;background:var(--teal);display:inline-block}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:var(--ink);color:#f3f2f2;padding:18px 0;position:sticky;top:0;height:100vh;overflow:auto}.side .brand{padding:0 18px 18px}.side .proj{padding:0 18px 14px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px}.side .proj b{display:block;font-size:15px}.side .proj a{color:#f3f2f299;font-size:12px}.nav a{display:flex;justify-content:space-between;padding:9px 18px;color:#f3f2f2b8;text-decoration:none;border-left:3px solid transparent}.nav a.on{color:#fff;background:#f3f2f21a;border-left-color:var(--teal)}.nav a .b{font-size:11px;background:#f3f2f21f;border-radius:10px;padding:1px 7px}.side .me{padding:16px 18px;font-size:12px;color:#f3f2f299;border-top:1px solid rgba(255,255,255,.1);margin-top:12px}.side .me button{margin-top:8px;background:transparent;color:#f3f2f2;border-color:#ffffff40}.main{padding:24px 28px 60px;min-width:0}.head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px;gap:16px;flex-wrap:wrap}.card{background:var(--white);border:1px solid var(--hair);border-radius:10px;padding:18px}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:14px}.kpi{background:var(--white);border:1px solid var(--hair);border-radius:10px;padding:14px 16px}.kpi .v{font-size:26px;font-weight:700;margin-top:4px}.kpi .l{font-size:12px;color:var(--mut)}.kpi.alert .v{color:var(--red-d)}table{width:100%;border-collapse:collapse;background:var(--white)}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:600;padding:9px 10px;border-bottom:1px solid var(--hair);background:#fbfafa;position:sticky;top:0}td{padding:9px 10px;border-bottom:1px solid var(--hair);vertical-align:top}tr.click:hover td{background:#f9f8f8;cursor:pointer}tr.sel td{background:var(--teal-t)!important}.tablewrap{border:1px solid var(--hair);border-radius:10px;overflow:auto;max-height:calc(100vh - 230px)}.pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap}.sev-critical{background:var(--red-t);color:var(--red-d)}.sev-high{background:var(--amb-t);color:#7d4b04}.sev-medium{background:#eae7e7;color:#444141}.sev-low{background:#f8f4f4;color:var(--mut)}.st-open,.st-rejected{background:var(--red-t);color:var(--red-d)}.st-assigned,.st-in_query{background:var(--amb-t);color:#7d4b04}.st-corrected{background:#e8f3f1;color:var(--teal2)}.st-verified{background:var(--teal-t);color:var(--teal-d)}.st-false_positive{background:#eee;color:var(--mut)}.grade{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:6px;font-weight:700;color:#fff}.grade-A{background:var(--teal)}.grade-B{background:var(--teal2)}.grade-C{background:#e8b45c}.grade-D{background:#d98a2b}.grade-E{background:var(--red)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}.bar{height:8px;background:var(--hair);border-radius:4px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--teal)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.split{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:16px;align-items:start}.panel{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 10px;font-size:13px}.kv dt{color:var(--mut)}.kv dd{margin:0;word-break:break-word}.timeline{list-style:none;padding:0;margin:0}.timeline li{border-left:2px solid var(--hair);padding:0 0 12px 12px;position:relative;font-size:13px}.timeline li:before{content:"";position:absolute;left:-5px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--teal)}.attrs{max-height:260px;overflow:auto;font-size:12px}.attrs td{padding:4px 8px}.attrs tr.hl td{background:var(--amb-t)}.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.projects .card{cursor:pointer}.projects .card:hover{border-color:var(--teal)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:grid;place-items:center;z-index:10}.modal .card{width:520px;max-width:94vw}@media print{.side,.noprint,.filters button{display:none!important}.shell{display:block}.main{padding:0}.card,.kpi{break-inside:avoid}.tablewrap{max-height:none;overflow:visible}body{background:#fff}}
