:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f4f7f5;--paper-deep:#e8efeb;--ink:#17332e;--ink-soft:#55716a;--teal:#0b6b64;--teal-bright:#159488;--mint:#bfe3d7;--line:#ccdad5;--amber:#c77b20;--amber-pale:#f4dfbb;--red:#ad3d4b;--red-pale:#f4d9dd;--white:#fbfdfc;--shadow:0 24px 70px #17332e17;background:var(--paper);color:var(--ink);font-family:Microsoft YaHei UI,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,label{-webkit-tap-highlight-color:transparent}button{color:inherit}code{font-family:Cascadia Mono,SFMono-Regular,monospace;font-size:.9em}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:4px;padding:10px 16px;position:fixed;top:-60px;left:16px}.skip-link:focus{top:16px}.masthead{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#f4f7f5e6;align-items:center;gap:24px;height:76px;padding:0 clamp(20px,5vw,72px);display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:12px;margin-right:auto;text-decoration:none;display:inline-flex}.brand strong{letter-spacing:.14em;font:800 20px/1 Arial Narrow,Microsoft YaHei UI,sans-serif;display:block}.brand small{letter-spacing:.24em;color:var(--ink-soft);margin-top:4px;font:650 8px/1 Cascadia Mono,monospace;display:block}.brand-mark{border:1px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;gap:3px;width:34px;height:34px;display:flex;transform:rotate(-12deg)}.brand-mark i{background:var(--teal);border-radius:2px;width:2px;display:block}.brand-mark i:first-child,.brand-mark i:nth-child(5){height:9px}.brand-mark i:nth-child(2),.brand-mark i:nth-child(4){height:17px}.brand-mark i:nth-child(3){height:25px}.privacy-pill{color:var(--ink-soft);align-items:center;gap:8px;font-size:12px;display:flex}.privacy-pill span{background:var(--teal-bright);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 5px #1594881a}.ghost-button,.text-button,.secondary-button,.primary-button{cursor:pointer;border:0;text-decoration:none}.ghost-button{border:1px solid var(--line);background:0 0;border-radius:5px;padding:10px 14px;font-size:13px;font-weight:650}.ghost-button:hover{border-color:var(--teal);color:var(--teal)}.ghost-button:disabled{opacity:.45;cursor:not-allowed}.primary-button{background:var(--ink);color:#fff;border-radius:5px;justify-content:space-between;align-items:center;min-width:216px;padding:14px 17px;transition:transform .18s,background .18s;display:inline-flex;box-shadow:0 10px 30px #17332e29}.primary-button:hover{background:var(--teal);transform:translateY(-2px)}.primary-button small{color:#b9cbc6;margin-left:26px;font:600 10px Cascadia Mono,monospace}.secondary-button{background:var(--white);border:1px solid var(--ink);border-radius:5px;padding:11px 16px;font-weight:700;display:inline-block}.secondary-button:hover{color:var(--teal);border-color:var(--teal)}.text-button{color:var(--teal);background:0 0;border-bottom:1px solid;padding:12px 4px;font-weight:700}.hero{grid-template-columns:minmax(0,1fr) minmax(420px,.86fr);align-items:center;gap:clamp(40px,7vw,110px);max-width:1480px;min-height:640px;margin:0 auto;padding:76px clamp(24px,6vw,94px) 88px;display:grid}.eyebrow,.panel-kicker{color:var(--teal);letter-spacing:.16em;margin:0 0 16px;font:700 11px/1.2 Cascadia Mono,monospace}.hero h1{letter-spacing:-.07em;max-width:740px;margin:0;font:800 clamp(48px,6.7vw,100px)/.98 Arial Narrow,Microsoft YaHei UI,sans-serif}.hero h1 em{color:var(--teal);font-style:normal;position:relative}.hero h1 em:after{content:"";background:repeating-linear-gradient(90deg,var(--teal) 0 16px,transparent 16px 22px);opacity:.42;height:5px;position:absolute;bottom:-8px;left:0;right:3px}.lede{max-width:650px;color:var(--ink-soft);margin:36px 0 30px;font-size:16px;line-height:1.9}.hero-actions{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.file-hint{color:var(--ink-soft);margin:16px 0 0;font:11px Cascadia Mono,monospace}.signal-card{border:1px solid var(--line);background:var(--white);min-width:0;box-shadow:var(--shadow);border-radius:9px;overflow:hidden;transform:rotate(1.2deg)}.signal-meta{color:var(--ink-soft);border-bottom:1px solid var(--line);letter-spacing:.09em;justify-content:space-between;padding:16px 20px;font:650 10px Cascadia Mono,monospace;display:flex}.signal-card svg{background-image:linear-gradient(#0b6b6409 1px,#0000 1px),linear-gradient(90deg,#0b6b6409 1px,#0000 1px);background-size:26px 26px;width:100%;display:block}.gridline{stroke:#dce6e2;stroke-width:1px;stroke-dasharray:3 7}.trace{fill:none;stroke:url(#trace);stroke-width:4px;stroke-linecap:round}.trace-b{stroke:#8ca49e}.pair-lines path{stroke:var(--amber);stroke-width:2px;stroke-dasharray:4 6;opacity:.7}.risk-node{fill:var(--red);animation:2.2s infinite pulse}.risk-pointer{stroke:var(--red);stroke-width:1px}.signal-card text{fill:var(--red);font:700 13px Cascadia Mono,monospace}.base-strip{border-top:1px solid var(--line);grid-template-columns:repeat(12,1fr);display:grid}.base-strip span{text-align:center;border-right:1px solid var(--line);color:var(--ink-soft);padding:12px 0;font:650 10px Cascadia Mono,monospace}.base-strip span:last-child{border:0}.dashboard{background:var(--paper-deep);border-top:1px solid var(--line);padding:70px clamp(20px,5vw,72px) 100px}.section-heading{justify-content:space-between;align-items:flex-end;gap:20px;max-width:1480px;margin:0 auto 30px;display:flex}.section-heading h2{letter-spacing:-.04em;margin:0;font:800 clamp(30px,4vw,52px)/1 Arial Narrow,Microsoft YaHei UI,sans-serif}.board-tools{align-items:center;gap:12px;display:flex}.engine-badge{color:var(--ink-soft);background:#dfe8e4;border-radius:99px;padding:8px 12px;font:650 10px Cascadia Mono,monospace}.empty-state{text-align:center;background:#fbfdfc8c;border:1px dashed #aac0b9;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;max-width:1480px;min-height:370px;margin:0 auto;display:flex}.empty-state h3{margin:22px 0 8px;font-size:22px}.empty-state p{max-width:500px;color:var(--ink-soft);margin:0 20px 20px;line-height:1.8}.empty-orbit{border:1px solid #a7bdb6;border-radius:50%;width:78px;height:78px;position:relative}.empty-orbit:before,.empty-orbit:after{content:"";border:1px solid var(--mint);border-radius:50%;position:absolute;inset:14px -10px;transform:rotate(52deg)}.empty-orbit:after{transform:rotate(-52deg)}.empty-orbit i{background:var(--teal);border-radius:50%;width:7px;height:7px;position:absolute}.empty-orbit i:first-child{top:13px;left:9px}.empty-orbit i:nth-child(2){top:33px;right:3px}.empty-orbit i:nth-child(3){bottom:2px;left:34px}.results{max-width:1480px;margin:0 auto}.metric-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px;display:grid}.metric-card{border:1px solid var(--line);background:var(--white);border-radius:7px;min-height:154px;padding:20px;position:relative;overflow:hidden}.metric-card:after{content:"";border:1px solid var(--mint);border-radius:50%;width:80px;height:80px;position:absolute;bottom:-34px;right:-28px}.metric-card span,.metric-card small{color:var(--ink-soft);font-size:11px;display:block}.metric-card strong{letter-spacing:-.04em;margin:14px 0 10px;font:800 48px/.85 Arial Narrow,sans-serif;display:block}.risk-metric strong{color:var(--red)}.warn-metric strong{color:var(--amber)}.analysis-grid{grid-template-columns:minmax(0,2fr) minmax(310px,.8fr);gap:12px;margin-bottom:12px;display:grid}.panel{border:1px solid var(--line);background:var(--white);border-radius:7px;overflow:hidden}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;display:flex}.panel-head h3{margin:2px 0 0;font-size:20px}.panel-kicker{margin:0;font-size:9px}.legend{color:var(--ink-soft);gap:16px;font-size:10px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:2px;width:8px;height:8px}.legend .pass{background:#bfddd3}.legend .moderate{background:var(--amber)}.legend .high{background:var(--red)}.matrix-scroll{max-height:560px;padding:18px;overflow:auto}.matrix{border-collapse:separate;border-spacing:3px;font:9px Cascadia Mono,monospace}.matrix th{min-width:22px;height:22px;color:var(--ink-soft);font-weight:600}.matrix th.column-label{vertical-align:bottom;writing-mode:vertical-rl;text-align:left;height:86px;padding:4px;transform:rotate(180deg)}.matrix th.row-label{text-align:right;white-space:nowrap;width:88px;padding-right:8px}.matrix td{cursor:default;background:#dfeae6;border-radius:2px;width:22px;height:22px;position:relative}.matrix td.self{background:repeating-linear-gradient(45deg,#f0f4f2 0 3px,#e2e9e6 3px 6px)}.matrix td.pass{background:#bfddd3}.matrix td.moderate{background:var(--amber)}.matrix td.high{background:var(--red);box-shadow:inset 0 0 0 2px #ffffff8c}.matrix td:focus{outline:2px solid var(--ink);outline-offset:2px}.matrix-tooltip{z-index:50;pointer-events:none;background:var(--ink);color:#fff;border-radius:4px;padding:9px 11px;font-size:11px;line-height:1.55;position:fixed;transform:translate(12px,12px);box-shadow:0 10px 30px #17332e33}.count-bubble{background:var(--red-pale);min-width:28px;height:28px;color:var(--red);border-radius:50%;place-items:center;font-weight:800;display:grid}.watch-list{max-height:560px;overflow:auto}.watch-item{border-bottom:1px solid var(--line);padding:18px 20px}.watch-item:last-child{border:0}.watch-item header{justify-content:space-between;align-items:center;gap:10px;display:flex}.watch-item strong{font-size:13px}.watch-item .dg{color:var(--red);font:700 12px Cascadia Mono,monospace}.watch-item p{color:var(--ink-soft);margin:8px 0 0;font-size:11px;line-height:1.6}.watch-empty{color:var(--ink-soft);text-align:center;padding:50px 22px;line-height:1.7}.table-head{align-items:flex-end}.table-controls{gap:10px;display:flex}.search-field,.select-field{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em;flex-direction:column;gap:5px;font-size:9px;display:flex}.search-field input,.select-field select{border:1px solid var(--line);background:var(--paper);height:36px;color:var(--ink);border-radius:4px;outline:none;padding:0 10px}.search-field input:focus,.select-field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0b6b641a}.table-wrap{overflow:auto}table:not(.matrix){border-collapse:collapse;width:100%;min-width:840px}table:not(.matrix) th{color:var(--ink-soft);text-align:left;letter-spacing:.05em;background:#f4f8f6;font:650 10px Cascadia Mono,monospace}table:not(.matrix) th,table:not(.matrix) td{border-bottom:1px solid #e3ebe8;padding:13px 18px}table:not(.matrix) td{font-size:12px}.status{letter-spacing:.06em;border-radius:99px;align-items:center;gap:6px;padding:5px 8px;font-size:9px;font-weight:800;display:inline-flex}.status:before{content:"";border-radius:50%;width:6px;height:6px}.status.pass{color:var(--teal);background:#dceee8}.status.pass:before{background:var(--teal-bright)}.status.moderate{color:#895110;background:var(--amber-pale)}.status.moderate:before{background:var(--amber)}.status.high{color:#862837;background:var(--red-pale)}.status.high:before{background:var(--red)}.mono{font-family:Cascadia Mono,monospace}.evaluation{color:var(--ink-soft)}.pagination{min-height:58px;color:var(--ink-soft);justify-content:space-between;align-items:center;gap:20px;padding:10px 18px;font-size:11px;display:flex}.pagination div{align-items:center;gap:10px;display:flex}.pagination button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;padding:6px 9px}.pagination button:disabled{opacity:.35;cursor:not-allowed}.toast{z-index:100;background:var(--ink);color:#fff;box-shadow:var(--shadow);border-radius:5px;padding:12px 18px;font-size:12px;transition:bottom .25s;position:fixed;bottom:-90px;left:50%;transform:translate(-50%)}.toast.show{bottom:24px}.toast.error{background:var(--red)}dialog{border:1px solid var(--line);width:min(700px,100vw - 32px);color:var(--ink);background:var(--white);border-radius:9px;padding:0;box-shadow:0 40px 100px #17332e3d}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1026217a}.dialog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:24px 26px;display:flex}.dialog-head h2{margin:4px 0 0;font-size:25px}.dialog-head button{cursor:pointer;background:0 0;border:0;font-size:28px}.dialog-body{grid-template-columns:1fr 1fr;gap:0;display:grid}.dialog-body section{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 24px}.dialog-body section:nth-child(2n){border-right:0}.dialog-body section:last-child{border-right:0;grid-column:1/-1}.dialog-body h3{margin:0 0 8px;font-size:14px}.dialog-body p{color:var(--ink-soft);margin:0;font-size:12px;line-height:1.75}.dialog-close{min-width:120px;margin:20px 24px 24px auto}@keyframes pulse{0%,to{opacity:1;r:7}50%{opacity:.48;r:12}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=1040px){.hero{grid-template-columns:1fr;padding-top:56px}.hero h1{max-width:800px}.signal-card{max-width:720px;transform:none}.analysis-grid{grid-template-columns:1fr}.risk-panel{order:-1}.watch-list{max-height:330px}.metric-row{grid-template-columns:1fr 1fr}}@media (width<=680px){.masthead{height:66px;padding:0 16px}.privacy-pill{display:none}.masthead .ghost-button{padding:8px 10px}.hero{min-height:auto;padding:48px 20px 58px}.hero h1{font-size:clamp(44px,14vw,72px)}.lede{margin-top:28px}.signal-card{display:none}.dashboard{padding:48px 14px 70px}.section-heading{flex-direction:column;align-items:flex-start}.board-tools{justify-content:space-between;width:100%}.metric-row{grid-template-columns:1fr 1fr}.metric-card{min-height:130px;padding:16px}.metric-card strong{font-size:38px}.panel-head{padding:17px 16px}.legend{display:none}.table-head{flex-direction:column;align-items:stretch}.table-controls{width:100%}.search-field{flex:1}.search-field input{width:100%}.dialog-body{grid-template-columns:1fr}.dialog-body section,.dialog-body section:nth-child(2n){border-right:0}.dialog-body section:last-child{grid-column:auto}.pagination{flex-direction:column;align-items:flex-start}}
