*{box-sizing:border-box;margin:0;padding:0}.nav-dropdown{display:inline-block;position:relative}.nav-trigger{border:1px solid var(--border);background:var(--bg);width:28px;height:28px;color:var(--text);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:16px;font-weight:400;line-height:1;display:flex}.nav-trigger:hover{background:var(--bg-alt)}.nav-menu{background:var(--bg);border:1px solid var(--border);z-index:9000;border-radius:6px;flex-direction:column;min-width:160px;margin-top:4px;padding:4px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0000001a}.nav-menu-item{color:var(--text-sub);border-radius:4px;padding:6px 10px;font-size:12px;text-decoration:none;transition:all .1s}.nav-menu-item:hover{background:var(--bg-alt);color:var(--text)}.nav-menu-item.active{color:var(--text);background:var(--bg-alt);font-weight:600}:root{--bg:#fff;--bg-alt:#f7f7f5;--text:#1a1a1a;--text-sub:#5f5e5a;--text-mute:#888780;--border:#0000001a;--border-strong:#0003;--p0:#a32d2d;--p0-bg:#fcebeb;--p1:#ba7517;--p1-bg:#faeeda;--p2:#185fa5;--p2-bg:#e6f1fb;--p3:#3b6d11;--p3-bg:#eaf3de;--mono:"SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1a1a1a;--bg-alt:#242422;--text:#f1efe8;--text-sub:#b4b2a9;--text-mute:#888780;--border:#ffffff14;--border-strong:#ffffff2e;--p0-bg:#a32d2d33;--p1-bg:#ba751733;--p2-bg:#185fa533;--p3-bg:#3b6d1133}}body{font-family:var(--sans);color:var(--text);background:var(--bg);padding:10px 14px;font-size:12px;line-height:1.4}.header{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}.header h1{white-space:nowrap;margin:0;font-size:13px;font-weight:500}.header-categories{flex-wrap:wrap;gap:6px;display:flex}.header-priorities{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.filter-label{color:var(--text-mute);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:10px;font-weight:500}.voice-btn{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;font-size:11px;font-weight:500;font-family:var(--sans);border-radius:4px;padding:4px 10px;transition:all .15s}.voice-btn:hover{background:var(--bg-alt)}.voice-btn.active{background:var(--p0);color:#fff;border-color:var(--p0)}.voice-toast{background:var(--text);color:var(--bg);z-index:9999;pointer-events:none;white-space:nowrap;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:500;animation:1.5s forwards toast-fade;position:fixed;top:16px;left:50%;transform:translate(-50%)}@keyframes toast-fade{0%{opacity:1}60%{opacity:1}to{opacity:0}}.legend{flex-wrap:wrap;align-items:center;gap:6px;font-size:10.5px;display:flex}.legend-label{color:var(--text-mute);margin-right:2px;font-size:10px}.comment-mode-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-sub);cursor:pointer;font-size:10.5px;font-weight:500;font-family:var(--sans);border-radius:3px;margin-left:6px;padding:2px 8px;transition:all .15s}.comment-mode-btn.active{background:var(--p2);color:#fff;border-color:var(--p2)}.comment-block{font-family:var(--mono);white-space:pre-wrap;background:var(--bg);border:1px dashed var(--border-strong);color:var(--text-sub);border-radius:3px;margin-top:4px;padding:4px 6px;font-size:10px;line-height:1.45}.toggle-btn{cursor:pointer;font-size:10.5px;font-weight:500;font-family:var(--sans);border:none;border-radius:3px;padding:2px 7px;transition:opacity .15s,transform .1s}.toggle-btn:hover{transform:scale(1.05)}.toggle-btn.p0{background:var(--p0-bg);color:var(--p0)}.toggle-btn.p1{background:var(--p1-bg);color:var(--p1)}.toggle-btn.p2{background:var(--p2-bg);color:var(--p2)}.toggle-btn.p3{background:var(--p3-bg);color:var(--p3)}.toggle-btn.off{opacity:.35;text-decoration:line-through}.app-layout{grid-template-columns:1fr 380px;align-items:start;gap:12px;display:grid}@media (width<=1200px){.app-layout{grid-template-columns:1fr 320px}}@media (width<=900px){.app-layout{grid-template-columns:1fr}}.main-content{flex-direction:column;gap:10px;display:flex}.sidebar{flex-direction:column;gap:10px;display:flex;position:sticky;top:10px}.category-select-btn{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;font-size:11px;font-weight:500;font-family:var(--sans);border-radius:4px;padding:4px 10px;transition:all .15s}.category-select-btn:hover{background:var(--bg-alt)}.category-select-btn.active{background:var(--p1);color:#fff;border-color:var(--p1)}.col{flex-direction:column;gap:10px;display:flex}section{background:var(--bg-alt);border:1px solid var(--border);border-radius:6px;padding:10px 11px}h2{text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:5px;font-size:11px;font-weight:500;display:flex}h2 .count{color:var(--text-mute);text-transform:none;letter-spacing:0;font-size:10px;font-weight:400}.issue-grid{grid-template-columns:1fr 1fr;grid-auto-flow:row;gap:4px 8px;display:grid}@media (width<=900px){.issue-grid{grid-template-columns:1fr}}.issue{border-left:3px solid var(--border);background:var(--bg);border-radius:0 4px 4px 0;margin-bottom:4px;padding:5px 8px}.issue:last-child{margin-bottom:0}.issue .title{align-items:baseline;gap:5px;margin-bottom:2px;font-size:11.5px;font-weight:500;line-height:1.3;display:flex}.card-num{color:var(--text-mute);font-size:9px;font-weight:600;font-family:var(--mono);flex-shrink:0;min-width:12px}.issue .tag{font-size:9px;font-weight:500;font-family:var(--mono);border-radius:2px;flex-shrink:0;padding:1px 4px}.issue.p0 .tag{background:var(--p0);color:#fff}.issue.p1 .tag{background:var(--p1);color:#fff}.issue.p2 .tag{background:var(--p2);color:#fff}.issue.p3 .tag{background:var(--p3);color:#fff}.issue .why{color:var(--text-sub);margin-bottom:4px;font-size:11px;line-height:1.4}.issue .fix{font-family:var(--mono);background:var(--bg-alt);border:1px solid var(--border);color:var(--text);word-break:break-word;border-radius:3px;margin-bottom:2px;padding:3px 6px;font-size:10.5px;line-height:1.4}.issue code{font-family:var(--mono);background:var(--bg);border:1px solid var(--border);border-radius:2px;padding:1px 3px;font-size:10.5px}.strategy{background:var(--p1-bg);border:1px solid var(--p1);border-radius:6px;padding:10px 11px;font-size:11px}.strategy h3{color:var(--p1);margin-bottom:6px;font-size:11px;font-weight:500}.strategy ul{padding:0;list-style:none}.strategy li{padding:2px 0 2px 12px;position:relative}.strategy li:before{content:"→";color:var(--p1);position:absolute;left:0}.strategy li strong{font-weight:500}.meta-comment{background:var(--p2-bg);border-left:3px solid var(--p2);border-radius:0 4px 4px 0;margin-bottom:5px;padding:6px 8px;font-size:11px;line-height:1.4}.meta-comment:last-child{margin-bottom:0}.meta-comment .meta-label{color:var(--text-sub);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px;font-size:10px;font-weight:500;display:block}.template{background:var(--bg);border:1px solid var(--border);border-radius:4px;margin-bottom:6px;padding:7px 8px}.template:last-child{margin-bottom:0}.template-title{color:var(--text-sub);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:10px;font-weight:500}.template pre{font-family:var(--mono);white-space:pre-wrap;font-size:10px;line-height:1.45}.structure-tip{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:7px 8px;font-size:11px}.structure-tip strong{font-weight:500}.structure-tip ol{margin:4px 0 0 16px}.structure-tip li{padding:1px 0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.scan-btn{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;font-size:11px;font-weight:500;font-family:var(--sans);border-radius:4px;padding:4px 10px;transition:all .15s}.scan-btn:hover{background:var(--bg-alt)}.scan-btn.active{background:var(--p3);color:#fff;border-color:var(--p3)}.scan-btn.scanning{background:var(--p1);color:#fff;border-color:var(--p1);animation:1s infinite pulse}.scan-bar{align-items:center;gap:10px;margin-bottom:10px;display:flex}.scan-summary{color:var(--p1);font-size:11px;font-weight:500}.issue.scan-match{border-left-width:4px;border-left-color:var(--p1);background:var(--p1-bg);box-shadow:inset 0 0 0 1px var(--p1)}.issue.scan-match.p0{border-left-color:var(--p0);background:var(--p0-bg);box-shadow:inset 0 0 0 1px var(--p0)}.issue.scan-match.p1{border-left-color:var(--p1);background:var(--p1-bg);box-shadow:inset 0 0 0 1px var(--p1)}.issue.scan-match.p2{border-left-color:var(--p2);background:var(--p2-bg);box-shadow:inset 0 0 0 1px var(--p2)}.issue.scan-match.p3{border-left-color:var(--p3);background:var(--p3-bg);box-shadow:inset 0 0 0 1px var(--p3)}.scan-badge{background:var(--p1);color:#fff;white-space:nowrap;border-radius:3px;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:600}.scan-matches{flex-direction:column;gap:3px;margin-top:5px;display:flex}.scan-match-line{background:var(--p1-bg);border-radius:3px;align-items:baseline;gap:6px;padding:2px 6px;display:flex}.scan-line-num{color:var(--p1);font-size:9px;font-weight:600;font-family:var(--mono);white-space:nowrap;flex-shrink:0}.scan-line-code{font-family:var(--mono);color:var(--text);word-break:break-all;font-size:10px}.ai-btn{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;font-size:11px;font-weight:500;font-family:var(--sans);border-radius:4px;padding:4px 10px;text-decoration:none;transition:all .15s}.ai-btn:hover{background:var(--bg-alt)}.ai-btn.loading{opacity:.6;cursor:wait}.ai-btn.disabled{opacity:.4;pointer-events:none}.ai-error{color:var(--p0);cursor:help;font-size:12px}.login-wrapper{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-box{background:var(--bg-alt);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;width:100%;max-width:340px;padding:28px 24px;display:flex}.login-title{text-align:center;margin-bottom:4px;font-size:16px;font-weight:600}.login-label{color:var(--text-sub);font-size:11px;font-weight:500}.login-input{font-family:var(--sans);border:1px solid var(--border-strong);background:var(--bg);color:var(--text);border-radius:5px;outline:none;padding:8px 10px;font-size:13px;transition:border-color .15s}.login-input:focus{border-color:var(--p2)}.login-btn{font-family:var(--sans);background:var(--p2);color:#fff;cursor:pointer;border:none;border-radius:5px;margin-top:4px;padding:8px 0;font-size:13px;font-weight:500;transition:opacity .15s}.login-btn:hover{opacity:.9}.login-btn:disabled{opacity:.45;cursor:not-allowed}.login-error{color:var(--p0);text-align:center;font-size:11px}.security-guide{margin-bottom:4px}.security-guide:last-child{margin-bottom:0}.security-guide-toggle{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--p0);cursor:pointer;width:100%;font-family:var(--sans);color:var(--p0);border-radius:0 4px 4px 0;justify-content:space-between;align-items:center;padding:6px 9px;font-size:11px;font-weight:600;transition:background .1s;display:flex}.security-guide-toggle:hover{background:var(--bg-alt)}.security-guide-toggle.open{border-bottom:none;border-radius:0 4px 0 0}.security-guide-title{text-align:left;flex:1}.security-guide-arrow{color:var(--text-mute);flex-shrink:0;margin-left:6px;font-size:10px}.security-guide-body{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--p0);color:var(--text-sub);border-top:none;border-radius:0 0 4px;padding:8px 10px;font-size:11px;line-height:1.45}.security-guide-what{color:var(--text);margin:0 0 6px;font-size:11px;line-height:1.45}.security-guide-what strong{color:var(--p0);font-weight:600}.security-guide-section{margin-bottom:6px}.security-guide-section:last-child{margin-bottom:0}.security-guide-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-mute);margin-bottom:2px;font-size:9px;font-weight:600}.security-guide-body ul,.security-guide-body ol{margin:0;padding-left:14px}.security-guide-body li{padding:1px 0}.security-guide-body li strong{color:var(--text);font-weight:600}.security-guide-code{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;background:var(--bg-alt);border:1px solid var(--border);color:var(--text);border-radius:3px;margin:0;padding:5px 7px;font-size:9.5px;line-height:1.5}
