:root{--line:#e4e7ec;--line-soft:#eff1f4;--soft:#667085;--bg:#f4f6f9;--card:#fff;--text:#1a1d21;--accent:#1a6fb0;--accent-soft:#1a6fb014;--ok:#1e8449;--bad:#c0392b;--warn:#b07a1a;--sidebar:#14171c;--radius:14px;--shadow:0 1px 2px rgb(16 24 40/4%),0 4px 14px -2px rgb(16 24 40/6%);--shadow-hover:0 2px 4px rgb(16 24 40/5%),0 10px 24px -4px rgb(16 24 40/10%);--content-max:1360px;--read-max:780px;--sev:#7f8c8d}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.nowrap{white-space:nowrap}.soft{color:var(--soft)}.strong{font-weight:600}svg{flex-shrink:0}.sev-critical{--sev:#c0392b}.sev-high{--sev:#d35400}.sev-medium{--sev:#c48a00}.sev-low{--sev:#98a2b3}.shell{display:grid;grid-template-columns:236px 1fr;height:100vh;overflow:hidden}.sidebar{background:var(--sidebar);color:#cdd3db;padding:20px 14px;display:flex;flex-direction:column;height:100vh;overflow-y:auto}.brand{font-weight:700;color:#fff;font-size:15px;padding:2px 10px 18px;margin-bottom:14px;border-bottom:1px solid #232932;letter-spacing:.01em}.nav a{position:relative;display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;color:#a3adba;font-size:14px;margin-bottom:2px;transition:background .15s,color .15s}.nav a svg{opacity:.7}.nav a:hover{background:#1d222a;color:#fff}.nav a.active{background:#232c3a;color:#fff;font-weight:600}.nav a.active:before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#4f97d6}.nav a.active svg{opacity:1;color:#6ea8dc}.sidebar .foot{margin-top:auto;font-size:12px;color:#6b7480;padding:14px 8px 0;border-top:1px solid #232932}.sidebar form button{background:none;border:1px solid #2a3038;color:#aab3bf;border-radius:8px;padding:7px 12px;font-size:13px;cursor:pointer;width:100%}.sidebar form button:hover{border-color:#3a424c;background:#1d222a;color:#fff}.sidebar .foot-user{color:#d5dbe3;font-weight:600;font-size:13px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar .foot-tenant{margin-bottom:2px}.sidebar .tenant-switch{display:flex;gap:6px;margin-top:6px}.sidebar .tenant-switch select{flex:1 1;min-width:0;background:#1b222c;border:1px solid #2a3038;color:#aab3bf;border-radius:7px;padding:6px 8px;font-size:12px}.sidebar .tenant-switch button{width:auto;padding:6px 10px;font-size:12px}.main{padding:0;height:100vh;overflow-y:auto}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:rgb(255 255 255/92%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:16px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px}.topbar[class*=sev-]{box-shadow:inset 4px 0 0 var(--sev)}.topbar-title{display:flex;align-items:center;gap:14px;min-width:0}.page-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.topbar h1{margin:0;font-size:19px;line-height:1.3;letter-spacing:-.01em}.topbar .sub{color:var(--soft);font-size:13px;margin-top:2px}.topbar-right{flex-shrink:0}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--accent);margin-bottom:3px}.back-link:hover{text-decoration:underline}.content{padding:28px 36px 72px;max-width:var(--content-max)}h2{font-size:16px;margin:34px 0 14px}.section-head{display:flex;align-items:center;gap:9px}.section-head svg{color:var(--accent)}.tag{display:inline-flex;align-items:center;gap:5px;border:1px solid;border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:600;line-height:1.4;white-space:nowrap;vertical-align:middle}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.status{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;white-space:nowrap}.status-open{color:var(--bad)}.status-done{color:var(--ok)}.status-risk_accepted{color:var(--warn)}.status-resolved{color:#0e8a7d}.topbar-right .status{font-size:13.5px;padding:6px 12px;border-radius:999px}.topbar-right .status-open{background:#c0392b12;box-shadow:inset 0 0 0 1px #c0392b40}.topbar-right .status-done{background:#1e844912;box-shadow:inset 0 0 0 1px #1e844940}.topbar-right .status-risk_accepted{background:#b07a1a12;box-shadow:inset 0 0 0 1px #b07a1a40}.topbar-right .status-resolved{background:#0e8a7d12;box-shadow:inset 0 0 0 1px #0e8a7d40}.risk{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:20px;line-height:1}.risk-large{font-size:34px;gap:10px;letter-spacing:-.01em}.new-chip{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--bad);border:1px solid #c0392b55;background:#c0392b10;border-radius:4px;padding:1px 5px;vertical-align:1px}.finding,.ov-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;min-width:0}.ov-card-head{justify-content:space-between;gap:12px;margin-bottom:16px}.ov-card-head,.ov-card-head h3{display:flex;align-items:center}.ov-card-head h3{gap:10px;margin:0;font-size:14.5px;font-weight:650}.card-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.card-meta{font-size:12.5px;color:var(--soft)}.card-desc{color:var(--soft);font-size:13.5px;line-height:1.55;margin:-4px 0 14px}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;align-items:start}.card-grid .span-all{grid-column:1/-1}.ov-link{display:inline-flex;align-items:center;gap:2px;font-size:12.5px;font-weight:600;color:var(--accent);white-space:nowrap;border-radius:6px;padding:3px 4px 3px 8px}.ov-link:hover{background:var(--accent-soft)}.ov-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:18px;gap:18px}.ov-span2{grid-column:span 2}.ov-span3{grid-column:1/-1}.num-big{font-size:40px;font-weight:800;line-height:1;letter-spacing:-.02em;margin:4px 0 12px}.num-label{font-size:13px;color:var(--soft);line-height:1.55}.empty.ok,.num-label.ok{display:flex;align-items:center;gap:7px;color:var(--ok);font-weight:600}.legend{display:flex;flex-wrap:wrap;gap:6px}.legend-item{font-size:12px;color:#475467;display:inline-flex;align-items:center;gap:6px;background:#f5f7fa;border:1px solid var(--line-soft);border-radius:999px;padding:3px 10px 3px 8px}.legend-item b{font-weight:700;color:var(--text)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%}.access-line{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:13px;color:var(--soft);padding:2px 4px}.access-when{gap:7px}.access-pill,.access-when{display:inline-flex;align-items:center}.access-pill{gap:6px;font-weight:600;border-radius:999px;padding:4px 12px 4px 9px;border:1px solid}.access-ok .access-pill{color:var(--ok);border-color:#1e844940;background:#1e844910}.access-broken .access-pill{color:var(--bad);border-color:#c0392b55;background:#c0392b10}.access-none .access-pill{color:var(--soft);border-color:#66708545;background:#6670850e}.ilist{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.ov-card .ilist{border:none;box-shadow:none;border-radius:10px;margin:0 -10px}.ilist-head,.irow{display:grid;align-items:center;grid-gap:16px;gap:16px;padding:13px 18px 13px 20px}.ilist-head{background:#f9fafb;border-bottom:1px solid var(--line);font-size:11.5px;font-weight:600;color:var(--soft);text-transform:uppercase;letter-spacing:.04em;padding-top:10px;padding-bottom:10px}.irow{position:relative;border-top:1px solid var(--line-soft);font-size:13.5px;transition:background .12s}.ilist-head+.irow,.irow:first-child{border-top:none}.irow:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sev)}.irow:hover{background:#f3f7fb}.irow:focus-visible{outline-offset:-2px;background:#f3f7fb}.irow-chev{color:#b4bcc8;transition:transform .12s,color .12s}.irow:hover .irow-chev{color:var(--accent);transform:translateX(2px)}.irow:hover .irow-title{color:var(--accent)}.irow-title{font-weight:600;line-height:1.4;min-width:0;overflow-wrap:anywhere}.irow-tags{display:flex;flex-wrap:wrap;gap:5px}.irow-main{display:flex;flex-direction:column;gap:2px;min-width:0}.irow-ctx{color:var(--soft);font-size:12.5px;min-width:0;overflow-wrap:anywhere}.ilist-head .num,.irow .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ilist-issues .ilist-head,.ilist-issues .irow{grid-template-columns:minmax(0,2.4fr) 160px minmax(0,1.2fr) 60px 120px 140px 16px;column-gap:14px}.ilist-head>span{white-space:nowrap}.ilist-dw .ilist-head,.ilist-dw .irow{grid-template-columns:minmax(0,1fr) 130px 170px 16px}.ilist-dw .irow-title .tag{margin-right:8px}.ilist-compact .irow{grid-template-columns:164px minmax(0,1fr) 16px;padding-left:22px}.ilist-compact .irow-ctx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filters{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:18px}.filters a{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:500;transition:border-color .12s,background .12s}.filters a:hover{border-color:#c5ccd6}.filters a.active{background:var(--sidebar);color:#fff;border-color:var(--sidebar)}.filters-count{margin-left:auto;font-size:12.5px;color:var(--soft)}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}td,th{text-align:left;padding:12px 18px;border-bottom:1px solid var(--line-soft);font-size:13.5px}th{background:#f9fafb;border-bottom-color:var(--line);font-size:11.5px;font-weight:600;color:var(--soft);text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:none}tbody tr:hover td{background:#fafbfc}.id-chip{color:var(--soft);font-size:11.5px;margin-left:6px}.kv{margin:0}.kv-pair{display:grid;grid-template-columns:150px minmax(0,1fr);grid-gap:14px;gap:14px;padding:10px 0;border-top:1px solid var(--line-soft);font-size:13.5px}.kv-pair:first-child{border-top:none}.kv dt{color:var(--soft);font-weight:600;font-size:13px}.kv dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.btn{background:var(--sidebar);color:#fff;border:none;border-radius:9px;padding:10px 18px;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .12s}.btn:hover{background:#2a313b}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:#fff;color:var(--text);border:1px solid var(--line)}.empty,.finding-ctx{color:var(--soft);font-size:13px;margin:6px 0;word-break:break-word}.empty{background:var(--card);border:1px dashed var(--line);border-radius:var(--radius);padding:18px 20px;font-size:13.5px}.footnote{gap:7px;margin-top:20px;font-size:12.5px;color:var(--soft)}.footnote,.login-wrap{display:flex;align-items:center}.login-wrap{min-height:100vh;justify-content:center;padding:24px;background:radial-gradient(900px 500px at 50% -10%,#1a6fb033,transparent 70%),radial-gradient(600px 400px at 85% 110%,#1a6fb01f,transparent 70%),var(--sidebar)}.login-box{background:#fff;border-radius:18px;padding:36px 36px 32px;width:400px;max-width:100%;box-shadow:0 1px 2px rgb(0 0 0/20%),0 24px 60px -12px rgb(0 0 0/55%)}.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:22px}.login-box h1{font-size:20px;margin:0;letter-spacing:-.01em}.login-box .by{color:var(--soft);font-size:12.5px}.login-box .sub{color:var(--soft);font-size:13.5px;margin-bottom:8px;padding-top:18px;border-top:1px solid var(--line-soft)}.login-box label{display:block;font-size:13px;margin:14px 0 6px;font-weight:600}.login-box input{width:100%;padding:11px 13px;border:1px solid #d0d5dd;border-radius:9px;font-size:14px;transition:border-color .12s,box-shadow .12s}.login-box input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1a6fb026}.login-box .err{color:var(--bad);font-size:13px;margin-top:12px}.login-box button{width:100%;margin-top:22px;padding:12px 18px;background:var(--accent)}.login-box button:hover{background:#155d94}.issue-layout{display:grid;grid-template-columns:minmax(0,var(--read-max)) minmax(300px,1fr);grid-gap:28px;gap:28px;align-items:start}.issue-main>h2:first-child{margin-top:0}.issue-side{position:-webkit-sticky;position:sticky;top:100px}.issue-side .kv-pair{grid-template-columns:minmax(0,1fr);gap:2px}.issue-side .kv dt{font-size:12px}.guide{border-top:4px solid var(--accent);padding:8px 28px 22px}.guide h3{font-size:14.5px;margin:20px 0 6px}.guide li,.guide p{font-size:14.5px;line-height:1.65;margin:0;color:#2b3139}.steps{list-style:none;counter-reset:step;margin:8px 0 0;padding:0}.steps li{counter-increment:step;position:relative;padding-left:38px;min-height:26px}.steps li+li{margin-top:10px}.steps li:before{content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:12.5px;display:grid;place-items:center}.guide .guide-help{color:var(--soft);font-size:12.5px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line-soft)}.tick-form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.tick-form label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.tick-form textarea{width:100%;padding:11px 13px;border:1px solid #d0d5dd;border-radius:9px;font:inherit;font-size:14px}.tick-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1a6fb026}.tick-form .err{color:var(--bad);font-size:13px;margin-top:8px}.tick-form .tick-label{display:block;font-size:13px;font-weight:600;margin:2px 0 8px}.tick-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:10px;gap:10px;margin-bottom:18px}.tick-option{display:flex;gap:10px;align-items:flex-start;text-align:left;background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px 14px;cursor:pointer;font:inherit;color:inherit;transition:border-color .12s,box-shadow .12s,background .12s}.tick-option:hover{border-color:#b9c2cc;background:#fbfcfd}.tick-option.selected{border-color:var(--accent);background:#f5f9fd;box-shadow:0 0 0 3px #1a6fb01f}.tick-radio{flex-shrink:0;width:16px;height:16px;margin-top:2px;border:2px solid #b9c2cc;border-radius:50%}.tick-option.selected .tick-radio{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 45%,transparent 50%)}.tick-option-title{display:block;font-weight:650;font-size:14px}.tick-option-hint{display:block;font-size:12.5px;color:var(--soft);margin-top:2px}.tick-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tick-foot{display:flex;align-items:center;gap:14px;margin-top:14px}.tick-msg{font-size:13px}.tick-msg.err{color:var(--bad)}.tick-msg.ok{color:var(--ok)}.timeline{position:relative;padding:8px 24px}.tl-row{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);grid-gap:14px;gap:14px;padding:12px 0}.tl-row:not(:last-child):after{content:"";position:absolute;left:13.5px;top:42px;bottom:-10px;width:1px;background:var(--line)}.tl-dot{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f2f4f7;color:var(--soft)}.act-opened .tl-dot,.act-reopened .tl-dot{background:#c0392b12;color:var(--bad)}.act-done .tl-dot{background:#1e844914;color:var(--ok)}.act-risk_accepted .tl-dot{background:#b07a1a14;color:var(--warn)}.act-resolved .tl-dot{background:#0e8a7d14;color:#0e8a7d}.tl-reason{font-size:13.5px;margin-top:4px}.tl-version{font-size:12px;color:var(--soft);margin-top:2px}.act-comment .tl-dot{background:var(--accent-soft);color:var(--accent)}.tl-body{padding-top:3px}.tl-what{font-size:13.5px;font-weight:600}.tl-who{font-weight:500}.tl-when,.tl-who{color:var(--soft)}.tl-when{font-size:12px;margin-top:1px}.tl-note{font-size:13.5px;margin-top:8px;white-space:pre-wrap;background:#f8f9fb;border:1px solid var(--line-soft);border-radius:9px;padding:9px 12px}.dw-status{display:flex;align-items:flex-end;gap:40px;flex-wrap:wrap}.dw-status .risk{margin-top:6px}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.stat{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.stat-icon{position:absolute;top:18px;right:18px}.stat-ok .stat-icon{color:var(--ok)}.stat-bad{border-color:#c0392b40}.stat-bad .stat-icon,.stat-bad .stat-num{color:var(--bad)}.stat-num{font-size:28px;font-weight:800;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-label{margin-top:8px;font-size:13px;color:var(--soft);line-height:1.45;padding-right:20px}.system-card .access-line{margin:0 0 12px;padding:0}.placeholder-card{border-style:dashed;border-color:#d5dae1;box-shadow:none;background:#fcfcfd}.placeholder-card .card-icon{background:#eef0f3;color:#5d6878}.soon-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--soft);background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 8px;white-space:nowrap}.placeholder-list{margin:0 0 12px;padding-left:20px;font-size:13.5px;line-height:1.6}.placeholder-list li+li{margin-top:4px}.settings-card{max-width:var(--read-max)}.settings-card .access-line{margin:4px 0 18px;padding:0}.settings-form label{display:block;font-size:13px;font-weight:600;margin:14px 0 5px}.settings-form input{width:100%;padding:10px 12px;border:1px solid #d0d5dd;border-radius:9px;font:inherit;font-size:14px}.settings-form input:disabled{background:#f3f4f6;color:var(--soft)}.field-help{font-size:12.5px;color:var(--soft);margin-top:5px}@media (max-width:1180px){.issue-layout{grid-template-columns:minmax(0,1fr)}.issue-side{position:static}.ilist-issues .ilist-head{display:none}.ilist-issues .irow{grid-template-columns:minmax(0,1fr) auto 16px;grid-template-areas:"title status chev" "tags tags chev" "ctx ctx chev";row-gap:6px}.ilist-issues .irow>:first-child{grid-area:title}.ilist-issues .irow>:nth-child(2){grid-area:tags}.ilist-issues .irow>:nth-child(3){grid-area:ctx}.ilist-issues .irow>:nth-child(4),.ilist-issues .irow>:nth-child(5){display:none}.ilist-issues .irow>:nth-child(6){grid-area:status}.ilist-issues .irow>:nth-child(7){grid-area:chev}}@media (max-width:1000px){.card-grid,.ov-grid,.stat-grid{grid-template-columns:minmax(0,1fr)}.ilist-compact .irow{grid-template-columns:minmax(0,1fr) 16px}.ilist-compact .irow-tags{grid-column:1}}.pause-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:16px;border-radius:10px;background:#1a6fb010;box-shadow:inset 0 0 0 1px #1a6fb033;color:var(--accent);font-size:13.5px;font-weight:600}.pause-form .tick-label,.pause-form label{display:block;font-size:13px;font-weight:600;margin:14px 0 6px}.pause-form select,.pause-form textarea{width:100%;padding:10px 12px;border:1px solid #d0d5dd;border-radius:9px;font:inherit;font-size:14px;background:#fff}.pause-hours{display:flex;gap:8px;flex-wrap:wrap}.pause-hours label{display:inline-flex;align-items:center;gap:6px;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:9px;font-weight:500;cursor:pointer}.pause-list{list-style:none;margin:0;padding:0}.pause-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}.pause-list li:first-child{border-top:0}.pause-meta{font-size:12.5px;color:var(--soft);margin-top:2px}.form-msg{font-size:13px;margin-left:10px}.form-msg.err{color:var(--bad)}.form-msg.ok{color:var(--ok)}.check-row{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:14px}.check-row input{margin-top:3px}.login-help{font-size:12.5px;color:var(--soft);margin-top:6px}.login-box .code-input{font-size:22px;letter-spacing:6px;text-align:center;font-family:Consolas,Menlo,monospace}.login-box .link-btn{width:auto;background:none;border:0;color:var(--accent);font-size:13px;margin-top:12px;cursor:pointer;padding:0}.login-box .link-btn:hover{background:none;text-decoration:underline}