:root{--bg:#141414;--card:#1d1d1d;--line:#2c2c2c;--txt:#e8e8e8;--mute:#8a8a8a;--acc:#e05a4e;--good:#4caf7d;--warn:#d98e3a;--blue:#5b8def}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--txt);font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.65}.wrap{max-width:1080px;margin:0 auto;padding:36px 20px 80px}h1{font-size:22px;font-weight:600;letter-spacing:.5px}h1 i{font-style:normal;color:var(--acc)}.sub{color:var(--mute);margin-top:6px;font-size:13px}.head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:16px}.card h3{font-size:15px;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tag{font-size:11px;color:var(--mute);border:1px solid var(--line);padding:1px 7px;border-radius:4px;font-weight:400}input,select,textarea{background:#151515;border:1px solid var(--line);color:var(--txt);padding:9px 11px;border-radius:6px;font-size:14px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--acc)}button{background:var(--acc);color:#fff;border:none;padding:9px 18px;border-radius:6px;cursor:pointer;font-size:13px}button.ghost{background:transparent;border:1px solid var(--line);color:var(--txt)}button:disabled{opacity:.5;cursor:not-allowed}button:hover:not(:disabled){opacity:.88}button.small{padding:4px 10px;font-size:12px}.muted{color:var(--mute)}.dim{color:#5a5a5a}.bold{font-weight:600}table{width:100%;border-collapse:collapse;margin-top:10px}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid #232323;font-size:13px;vertical-align:top}th{color:var(--mute);font-weight:500;font-size:12px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.mt{margin-top:12px}.mb{margin-bottom:12px}.badge{display:inline-block;font-size:11px;padding:1px 9px;border-radius:10px;border:1px solid var(--line)}.badge.ok{color:var(--good);border-color:var(--good)}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.bad{color:var(--acc);border-color:var(--acc)}.badge.na{color:var(--mute)}.alert{border-radius:6px;padding:9px 14px;font-size:13px;background:#3a1f1e;color:var(--acc)}.alert.ok{background:#1d3a2a;color:var(--good)}.clickable{cursor:pointer}tr.clickable:hover{background:#242424}details.evi{margin-top:4px}details.evi summary{cursor:pointer;color:#5a5a5a;font-size:11px}details.evi pre{white-space:pre-wrap;word-break:break-all;background:#151515;border:1px solid #232323;border-radius:6px;padding:10px;font-size:11px;color:#9a9a9a;margin-top:6px;max-height:240px;overflow:auto}.login-wrap{position:fixed;inset:0;z-index:999;background:var(--bg);display:flex;align-items:center;justify-content:center}.login-wrap:before{content:"";position:absolute;inset:0;background:radial-gradient(1100px 550px at 50% -10%,#241414 0,#141414 55%);pointer-events:none}.login-card{position:relative;width:360px;padding:38px 34px 26px;background:var(--card);border:1px solid var(--line);border-radius:12px}.login-brand{text-align:center;margin-bottom:26px}.login-logo{font-size:22px;font-weight:700;letter-spacing:1px}.login-logo i{font-style:normal;color:var(--acc)}.login-sub{margin-top:8px}.login-label,.login-sub{font-size:12px;color:var(--mute)}.login-label{display:block;margin-bottom:6px}.login-input{width:100%;margin-bottom:12px}.login-btn{width:100%;padding:11px;font-size:14px;font-weight:600}.login-link{background:none;border:none;color:var(--mute);font-size:13px;cursor:pointer;margin:0 auto;display:block;padding:0}.login-link:hover{color:var(--acc)}.login-change{border-top:1px dashed var(--line);padding-top:16px;margin-top:4px}.login-foot{text-align:center;color:#555;font-size:11px;margin-top:18px}.score-ring{width:150px;height:150px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto;border:8px solid}.score-ring .n{font-size:42px;font-weight:700;line-height:1.1}.score-ring .g{font-size:13px;color:var(--mute)}.grade-A{border-color:var(--good);color:var(--good)}.grade-B{border-color:var(--blue);color:var(--blue)}.grade-C{border-color:var(--warn);color:var(--warn)}.grade-D{border-color:var(--acc);color:var(--acc)}.dim-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.dim-bar .name{width:120px;font-size:12px;color:var(--mute);flex-shrink:0}.dim-bar .track{flex:1 1;background:#151515;border-radius:4px;height:10px;overflow:hidden}.dim-bar .fill{height:100%;border-radius:4px;transition:width .3s}.dim-bar .val{width:34px;text-align:right;font-size:12px;flex-shrink:0}.report{background:#fff;color:#1a1a1a;max-width:860px;margin:0 auto;padding:0 0 60px}.report-inner{padding:0 44px}.r-cover{background:#141414;color:#fff;padding:46px 44px 38px;position:relative;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}.r-cover:before{content:"";position:absolute;inset:0;background:radial-gradient(700px 320px at 85% -30%,rgba(224,90,78,.28) 0,transparent 65%)}.r-cover .r-tag{display:inline-block;font-size:11px;letter-spacing:4px;color:#e05a4e;border:1px solid rgba(224,90,78,.5);padding:3px 12px;border-radius:3px}.r-cover h1{font-size:24px;font-weight:700;margin:16px 0 4px;letter-spacing:1px}.r-cover .r-host{font-size:15px;color:#c9c9c9;font-family:ui-monospace,Consolas,monospace;word-break:break-all}.r-cover .r-meta{font-size:12px;color:#8a8a8a;margin-top:10px}.r-cover .r-score-row{display:flex;align-items:center;gap:34px;margin-top:30px;position:relative}.r-cover .r-score{font-size:76px;font-weight:800;line-height:1;letter-spacing:-2px}.r-cover .r-score small{font-size:20px;font-weight:500;letter-spacing:0;color:#9a9a9a;margin-left:4px}.r-cover .r-stamp{width:84px;height:84px;border:3px solid;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-8deg);font-weight:800;flex-shrink:0}.r-cover .r-stamp b{font-size:34px;line-height:1}.r-cover .r-stamp span{font-size:10px;letter-spacing:2px;margin-top:2px}.grade-A{color:#4caf7d;border-color:#4caf7d}.grade-B{color:#5b8def;border-color:#5b8def}.grade-C{color:#e5a13a;border-color:#e5a13a}.grade-D{color:#e05a4e;border-color:#e05a4e}.r-cover .r-quick{display:flex;gap:26px;margin-top:26px;position:relative}.r-cover .r-quick div{font-size:12px;color:#9a9a9a}.r-cover .r-quick b{display:block;font-size:22px;color:#fff;font-weight:700;margin-bottom:2px}.r-cover .r-quick .q-bad b{color:#e05a4e}.r-cover .r-quick .q-warn b{color:#e5a13a}.r-cover .r-quick .q-ok b{color:#4caf7d}.r-h2{display:flex;align-items:baseline;gap:12px;margin:34px 0 14px}.r-h2 .no{font-size:13px;font-weight:800;color:#e05a4e;font-family:ui-monospace,Consolas,monospace}.r-h2 .t{font-size:17px;font-weight:700}.r-h2:after{content:"";flex:1 1;height:1px;background:#e8e8e8}.r-h4{font-size:13px;font-weight:700;color:#555;margin:14px 0 8px}.r-verdict{background:#faf7f5;border-left:4px solid #e05a4e;padding:14px 18px;font-size:14px;line-height:1.8;margin-top:10px}.r-verdict .src{font-size:11px;color:#999;margin-top:6px}.r-dim{display:flex;align-items:center;gap:12px;margin-bottom:11px}.r-dim .name{width:128px;font-size:13px;flex-shrink:0}.r-dim .w{font-size:10px;color:#aaa;margin-left:4px}.r-dim .track{flex:1 1;height:14px;background:#f0f0f0;border-radius:3px;overflow:hidden;position:relative}.r-dim .fill{height:100%;border-radius:3px}.r-dim .mark{position:absolute;top:0;bottom:0;width:1px;background:#c8c8c8}.r-dim .val{width:32px;text-align:right;font-size:14px;font-weight:800;flex-shrink:0;font-family:ui-monospace,Consolas,monospace}.r-dim-legend{font-size:11px;color:#999;margin-top:6px}.r-find{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.r-find .f{border-radius:8px;padding:13px 16px;border:1px solid #e8e8e8;border-top:3px solid #e8e8e8;background:#fff}.r-find .f .lv{font-size:11px;font-weight:700;letter-spacing:1px}.r-find .f b.t{display:block;font-size:14px;margin:5px 0 3px}.r-find .f p{font-size:12.5px;color:#666;line-height:1.7}.lv-P1{color:#c0392b}.f-P1{border-top-color:#c0392b}.lv-P2{color:#b06a20}.f-P2{border-top-color:#b06a20}.lv-亮点{color:#2e7d54}.f-亮点{border-top-color:#2e7d54}.r-crawl{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.r-crawl .c{display:flex;align-items:center;gap:8px;border:1px solid #e8e8e8;border-radius:6px;padding:8px 12px;font-size:12px}.r-crawl .c i{width:8px;height:8px;border-radius:50%;flex-shrink:0;font-style:normal}.r-crawl .c .ok{background:#4caf7d}.r-crawl .c .blocked{background:#e05a4e}.r-crawl .c .unknown{background:#ccc}.r-crawl .c .st{margin-left:auto;font-size:11px;color:#999;flex-shrink:0}.r-crawl-note{font-size:11.5px;color:#888;margin-top:8px}.r-check{border:1px solid #ececec;border-radius:8px;margin-bottom:10px;overflow:hidden}.r-check .head{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:13px}.r-check .head .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.r-check .head .tt{font-weight:700}.r-check .head .st{font-size:11px;padding:1px 8px;border-radius:9px;border:1px solid;flex-shrink:0}.r-check .body{padding:0 16px 12px 35px;font-size:12.5px;color:#555;line-height:1.7}.r-check .evi{margin-top:6px;font-size:11px;color:#999;background:#f7f7f7;border-radius:5px;padding:8px 12px;white-space:pre-wrap;word-break:break-all;font-family:ui-monospace,Consolas,monospace;max-height:200px;overflow:auto}.dot-ok{background:#4caf7d}.dot-warn{background:#e5a13a}.dot-bad{background:#e05a4e}.dot-na{background:#ccc}.st-ok{color:#2e7d54;border-color:#2e7d54}.st-warn{color:#b06a20;border-color:#b06a20}.st-bad{color:#c0392b;border-color:#c0392b}.st-na{color:#888;border-color:#ccc}.r-todo{border:1px solid #ececec;border-radius:8px;margin-bottom:10px;display:flex;overflow:hidden}.r-todo .pri{width:56px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;font-size:15px;background:#f7f7f7}.r-todo .pri small{font-size:9px;color:#999;font-weight:500;margin-top:2px}.r-todo .pri.p-P0{color:#c0392b}.r-todo .pri.p-P1{color:#b06a20}.r-todo .pri.p-P2{color:#555}.r-todo .pri.p-P3{color:#888}.r-todo .bd{padding:10px 16px;flex:1 1;font-size:12.5px}.r-todo .bd b{font-size:13.5px}.r-todo .bd p{color:#666;margin-top:3px}.r-todo .bd .fix{color:#2e6e4e;margin-top:3px}.r-todo .bd .days{float:right;font-size:11px;color:#999}.r-road{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:12px;gap:12px}.r-road .ph{border-radius:8px;padding:14px 16px;border:1px solid #e8e8e8;border-top:3px solid #e8e8e8}.r-road .ph .m{font-size:11px;font-weight:700;letter-spacing:1px;color:#999}.r-road .ph .t{font-size:14px;font-weight:700;margin:3px 0 8px}.r-road .ph-1{border-top-color:#c0392b}.r-road .ph-2{border-top-color:#b06a20}.r-road .ph-3{border-top-color:#2e7d54}.r-road .ph li{font-size:12px;color:#555;margin:5px 0 5px 16px;line-height:1.6}.r-expect{font-size:13px;margin-top:14px;background:#f4f7f5;border-radius:6px;padding:10px 16px}.r-eco{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:12px;gap:12px}.r-eco .e{border:1px solid #e8e8e8;border-radius:8px;padding:14px 16px}.r-eco .e b{display:block;font-size:22px;font-weight:800;font-family:ui-monospace,Consolas,monospace}.r-eco .e span{font-size:11.5px;color:#777}.r-eco .e-ok b{color:#2e7d54}.r-eco .e-warn b{color:#b06a20}.r-eco .e-bad b{color:#c0392b}.r-report-foot{text-align:center;color:#b5b5b5;font-size:11px;margin-top:44px;padding:18px 0;border-top:1px solid #eee}.report-actions{display:flex;gap:10px;justify-content:space-between;align-items:center;max-width:860px;margin:14px auto;padding:0 8px}@media print{.no-print{display:none!important}body{background:#fff}.report{padding:0;max-width:none}.report-inner{padding:0 10px}.r-check .evi{max-height:none}.dot-bad,.dot-ok,.dot-warn,.r-cover,.r-dim .fill,.r-find .f,.r-road .ph,.r-todo .pri{-webkit-print-color-adjust:exact;print-color-adjust:exact}}