:root{color-scheme:light;--text:#162033;--muted:#64738a;--line:#e4e9f2;--bg:#f7f9fd;--white:#fff;--red:#e3444b;--blue:#3378dd;--shadow:0 10px 32px rgba(27,46,76,.05)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid #4a90ff;outline-offset:3px}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;z-index:10;top:-60px;left:12px;background:#fff;padding:10px}.skip:focus{top:8px}.topbar{height:65px;background:#fff;border-bottom:1px solid var(--line)}.top-inner{max-width:1350px;margin:auto;height:100%;display:flex;align-items:center;padding:0 28px;gap:16px}.brand{display:flex;align-items:center;gap:10px;color:#13253c;font-size:18px;font-weight:750;letter-spacing:-.6px}.brand-mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(140deg,#70c6fa,#2577da);color:#fff;display:grid;place-items:center;font-weight:800;font-size:21px}.brand-separator{height:22px;border-left:1px solid #d7dfeb}.tool-breadcrumb{font-weight:600;font-size:13px;color:#4e5c6e}.top-spacer{flex:1}.privacy{font-size:12px;color:#3c8060;background:#effaf4;padding:6px 12px;border-radius:20px;font-weight:650}.privacy span{font-size:9px}.main{max-width:1300px;margin:auto;padding:42px 28px 55px}.intro{text-align:center;margin:0 auto 30px;max-width:880px}.eyebrow,.section-kicker{font-size:11px;letter-spacing:1.7px;font-weight:800;color:#d6444b}.eyebrow-dot{display:inline-block;width:6px;height:6px;background:var(--red);border-radius:50%;vertical-align:middle;margin-right:5px}.intro h1{font-size:clamp(29px,4vw,48px);letter-spacing:-2.1px;line-height:1.16;margin:13px 0 13px;font-weight:750}.intro h1 span{color:var(--red)}.intro p{color:var(--muted);font-size:16px;max-width:720px;margin:0 auto;line-height:1.75}.upload-zone{border:2px dashed #cbd7e7;border-radius:22px;background:linear-gradient(135deg,#fff,#fbfcff);padding:38px 24px 32px;text-align:center;transition:background .15s,border-color .15s}.upload-zone.dragover{border-color:var(--red);background:#fff5f5}.upload-icon{width:60px;height:60px;border-radius:20px;display:grid;place-items:center;color:var(--red);background:#fff0f1;margin:0 auto 13px}.upload-zone h2{font-size:20px;letter-spacing:-.6px;margin:0 0 4px}.upload-zone p{margin:0 0 18px;color:var(--muted)}.upload-zone small{display:block;color:#7d899c;margin-top:14px}.file-actions,.upload-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.btn{border:1px solid #d5ddeb;border-radius:11px;background:#fff;color:#35465e;padding:10px 17px;font-size:13px;font-weight:700;transition:filter .1s,background .1s;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(.97)}.btn.primary{background:#e3444b;color:#fff;border-color:#e3444b;box-shadow:0 3px 9px rgba(227,68,75,.15)}.btn.secondary{background:#fff}.btn.small{padding:8px 11px;font-size:12px}.process{margin:14px 0;background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px 20px}.process-top{display:flex;justify-content:space-between;gap:20px;font-weight:650}.text-btn{background:0 0;border:0;color:var(--red);font-weight:700}.progress-track{height:7px;margin-top:10px;background:#edf0f5;border-radius:4px;overflow:hidden}.progress-bar{height:100%;background:var(--red);width:0;transition:width .25s}.notice-error{margin:12px 0;background:#fff1f1;border:1px solid #f4bcbf;border-radius:10px;padding:15px;color:#a32632;white-space:pre-line}.results{margin-top:23px}.file-heading{display:flex;align-items:center;gap:14px;background:#fff;padding:16px 19px;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.file-avatar{background:#fff0f0;color:#d83943;border:1px solid #f7d2d4;border-radius:12px;width:46px;height:48px;display:grid;place-items:center;font-weight:800;font-size:12px}.file-detail{min-width:0;flex:1}.file-detail h2{font-size:15px;margin:0;letter-spacing:-.2px}.file-detail p{margin:2px 0 0;font-size:12px;color:var(--muted)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coverage{margin-top:12px;border:1px solid #f1d497;color:#80570c;background:#fff8e8;padding:12px 15px;border-radius:10px;font-size:13px}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin:16px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px 17px;box-shadow:var(--shadow)}.stat-label{font-size:12px;color:#77859b;font-weight:620;margin-bottom:5px}.stat strong{font-size:27px;line-height:1.2;letter-spacing:-1px}.studio{border:1px solid var(--line);border-radius:19px;background:#fff;display:grid;grid-template-columns:223px minmax(0,1fr);min-height:550px;overflow:hidden;box-shadow:var(--shadow)}.sidebar{background:#fbfcfe;border-right:1px solid var(--line);padding:22px 11px;display:flex;flex-direction:column}.aside-head{color:#9aa5b3;font-size:10px;font-weight:800;letter-spacing:1.5px;margin:0 12px 15px}.tabs{display:flex;flex-direction:column;gap:4px}.tab{display:flex;align-items:center;gap:12px;text-align:left;background:0 0;border:0;border-radius:9px;padding:10px 13px;color:#536179;font-weight:650;font-size:13px;width:100%}.tab:hover{background:#f0f4fa}.tab.active{background:#fff0f0;color:#cc353e}.tab-icon{width:19px;text-align:center;font-weight:800;font-size:16px}.aside-foot{margin:auto 10px 0;padding-top:25px;color:#8b97a6;font-size:11px;line-height:1.6}.content{padding:25px 29px;min-width:0}.pane-title{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:23px}.pane-title h2{font-size:24px;letter-spacing:-.8px;margin:5px 0 3px}.pane-title p{color:var(--muted);font-size:13px;margin:0}.card-panel{background:#fcfdff;border:1px solid var(--line);border-radius:13px;padding:17px;margin-bottom:14px}.card-panel h3{font-size:14px;margin:0 0 13px;letter-spacing:-.2px}.kv{display:grid;grid-template-columns:minmax(95px,190px) minmax(0,1fr);gap:8px 16px;align-items:start}.kv>div:nth-child(odd){color:#738198;font-size:12px}.kv>div:nth-child(2n){font-size:13px;overflow-wrap:anywhere}.pill{font-size:11px;border-radius:6px;background:#eef2f9;color:#435979;padding:3px 7px;font-weight:700}.pill.good{background:#e8f7ef;color:#26784c}.pill.warn{background:#fff0de;color:#99631e}.pill.danger{background:#ffeced;color:#b5333f}.tree-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.mini-info{border:1px solid var(--line);border-radius:12px;padding:15px}.mini-info h3{margin:0 0 8px;font-size:13px}.mini-info strong{font-size:19px}.type-bars{display:grid;gap:11px}.type-row{display:grid;grid-template-columns:110px 1fr 40px;gap:10px;font-size:12px;align-items:center}.type-track{background:#eef1f6;border-radius:8px;height:8px;overflow:hidden}.type-fill{height:100%;background:#e8797f;border-radius:8px}.findings{display:grid;gap:9px}.finding{border:1px solid var(--line);border-radius:10px;padding:11px 13px;display:flex;gap:10px;align-items:flex-start}.finding strong{display:block;font-size:13px}.finding p{margin:2px 0 0;color:var(--muted);font-size:12px}.finding-marker{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#629678;margin-top:7px}.finding-marker.warn{background:#e59a47}.finding-marker.info{background:#6b9dda}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px;margin-bottom:16px}table{border-collapse:collapse;width:100%;font-size:12px;min-width:620px}td,th{text-align:left;padding:11px 12px;border-bottom:1px solid #edf0f5;vertical-align:top}th{background:#f8fafd;color:#718098;font-weight:750;white-space:nowrap}tr:last-child td{border-bottom:0}.mono,.object-list,code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.mono{font-size:12px;overflow-wrap:anywhere}.ref-button{border:0;background:#edf4ff;color:#2760ac;padding:2px 6px;border-radius:6px;font-size:11px;font-weight:700}.ref-button:hover{text-decoration:underline}.empty-state{border:1px dashed #dce3ee;border-radius:11px;padding:30px;text-align:center;color:#8591a1;background:#fcfdfe;font-size:13px}.control-row{display:flex;gap:10px;align-items:center;margin-bottom:16px}.control-row label{font-size:13px;font-weight:700;color:#53647c}input[type=search],select{background:#fff;border:1px solid #ccd7e6;border-radius:10px;padding:9px 12px;color:var(--text);min-width:0}.object-controls{display:flex;gap:9px;margin-bottom:15px}.object-controls input{flex:1;width:100%}.object-controls select{max-width:170px}.object-layout{display:grid;grid-template-columns:minmax(145px,210px) minmax(0,1fr);gap:13px;min-height:365px}.object-list{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fbfcff}.object-entry{width:100%;border:0;background:0 0;padding:9px 12px;text-align:left;display:block;border-bottom:1px solid #eff1f5}.object-entry b{font-size:12px;display:block}.object-entry span{color:#8291a2;font-size:11px}.object-entry.active{background:#edf3ff;color:#275aa9}.object-detail{border:1px solid var(--line);border-radius:10px;padding:15px;min-width:0;min-height:320px}.detail-empty{color:#8895a5;text-align:center;padding:65px 5px;font-size:13px}.detail-header{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:12px}.detail-header h3{margin:0;font-size:15px}.detail-sub{color:#75859a;font-size:12px;margin:0 0 10px}.detail-section{margin-top:15px;border-top:1px solid var(--line);padding-top:12px}.detail-section h4{margin:0 0 8px;font-size:12px}.refs{display:flex;flex-wrap:wrap;gap:6px}.object-detail pre,.raw-pre{background:#f6f8fc;border:1px solid #e8edf5;border-radius:8px;padding:12px;overflow:auto;max-height:370px;font-size:11px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.object-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;color:var(--muted);font-size:12px}.muted{color:var(--muted);font-size:13px}.explainer{padding:30px 0 0}.explainer h2{font-size:20px;letter-spacing:-.5px}.explainer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.explainer article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.explainer article strong{font-size:14px}.disclaimer,.explainer article p{color:var(--muted);font-size:12px}.disclaimer{margin-top:20px}footer{text-align:center;color:#8190a1;padding:25px;font-size:12px;border-top:1px solid var(--line)}.toast{position:fixed;right:20px;bottom:20px;background:#243449;color:#fff;border-radius:10px;padding:12px 18px;box-shadow:0 6px 26px #0002;max-width:min(400px,90vw);z-index:30}.tagged-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:9px 2px;font-size:13px;gap:10px}.tagged-row:last-child{border:0}@media(max-width:900px){.studio{grid-template-columns:190px minmax(0,1fr)}.content{padding:22px}.stats{gap:8px}.stat{padding:12px}.stat strong{font-size:23px}}@media(max-width:700px){.main{padding:28px 14px}.top-inner{padding:0 15px;gap:11px}.tool-breadcrumb{font-size:11px}.privacy{display:none}.intro h1{letter-spacing:-1.2px}.intro p{font-size:14px}.upload-zone{padding:27px 16px}.file-heading{flex-wrap:wrap}.file-actions{width:100%;justify-content:flex-start}.stats{grid-template-columns:repeat(3,1fr)}.studio{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:10px}.aside-foot,.aside-head{display:none}.tabs{flex-direction:row;overflow:auto;padding:2px}.tab{min-width:max-content;padding:9px 10px;font-size:12px}.tab-icon{display:none}.content{padding:18px 14px}.pane-title h2{font-size:21px}.object-layout{grid-template-columns:130px minmax(0,1fr);gap:8px}.object-detail{padding:10px}.tree-grid{grid-template-columns:1fr}.explainer-grid{grid-template-columns:1fr}}@media(max-width:380px){.stats{grid-template-columns:repeat(2,1fr)}.brand span:last-child{display:none}.object-layout{grid-template-columns:1fr}.object-list{max-height:145px}.object-detail{min-height:220px}.object-controls{flex-wrap:wrap}.object-controls select{max-width:none;width:100%}.pane-title{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,:after,:before{transition:none!important}}#pane-navigation .control-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}#pane-navigation .control-row button{max-width:100%}.table-more{display:block;margin:12px 0 8px auto}