:root{--bg: #f7f7f9;--surface: #ffffff;--ink: #1a1b23;--ink-muted: #5b5d6e;--hairline: #e2e3ea;--accent: #4f52d6;--healthy: #1f9d63;--healthy-bg: #e6f5ed;--attention: #b07800;--attention-bg: #fcf0d9;--critical: #c6363b;--critical-bg: #fbe7e8;--unknown: #6b6e7a;--unknown-bg: #ecedf1;--series-tls: #3e6fd9;--series-port: #0e9488;--series-dns: #c1368b;--series-headers: #8451c9}@media(prefers-color-scheme:dark){:root{--bg: #14151c;--surface: #1c1d26;--ink: #ededf2;--ink-muted: #a2a4b5;--hairline: #2e2f3b;--accent: #8a8cff;--healthy: #4ade94;--healthy-bg: #113325;--attention: #f0b740;--attention-bg: #3a2c0e;--critical: #f1696d;--critical-bg: #3a1416;--unknown: #9497a6;--unknown-bg: #262832;--series-tls: #6e9bff;--series-port: #2bc4b3;--series-dns: #e36fc0;--series-headers: #a87be0}}*{box-sizing:border-box}.brand-bar{border-bottom:1px solid var(--hairline);background:var(--surface)}.brand-link{display:flex;align-items:center;gap:10px;max-width:900px;margin:0 auto;padding:14px 24px;text-decoration:none;color:inherit}.brand-name{font-size:17px;font-weight:700;color:var(--ink);letter-spacing:-.01em}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.5}.shell{max-width:900px;margin:0 auto;padding:32px 24px 80px}.page-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:20px}.page-header h1{font-size:22px;margin:0}.header-actions{display:flex;align-items:baseline;gap:16px}.scan-now-btn{font-size:13px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:7px;padding:7px 14px;cursor:pointer;font-family:inherit}.scan-now-btn:disabled{opacity:.65;cursor:default}.scan-status,.scan-error{display:flex;align-items:center;gap:8px;margin:0 0 16px}.scan-error{color:var(--critical)}.scan-spinner{width:12px;height:12px;border:2px solid var(--hairline);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;animation:scan-spin .8s linear infinite}@keyframes scan-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.scan-spinner{animation:none}}.header-link{font-size:13px;color:var(--accent);text-decoration:none}.header-link:hover{text-decoration:underline}.logout-link{font-size:13px;color:var(--ink-muted);background:none;border:none;cursor:pointer;text-decoration:underline}.summary-strip{display:flex;gap:20px;padding:14px 18px;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;margin-bottom:24px;font-size:13.5px;flex-wrap:wrap}.summary-strip .stat{display:flex;align-items:baseline;gap:6px}.summary-strip .stat b{font-size:16px;font-variant-numeric:tabular-nums}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.target-row{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:16px 20px;margin-bottom:12px;box-shadow:0 1px 2px #00000008}.target-row:hover{border-color:var(--accent)}.target-row-link{display:flex;align-items:center;gap:20px;flex:1;min-width:0;text-decoration:none;color:inherit}.target-delete{flex-shrink:0}.target-info{flex:1;min-width:0}.target-host{font-family:SF Mono,Menlo,Consolas,monospace;font-size:14.5px;font-weight:600;overflow-wrap:anywhere}.target-meta{font-size:12px;color:var(--ink-muted);margin-top:3px}.headline{display:flex;flex-direction:column;align-items:center;width:100px;flex-shrink:0}.headline-score{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;border:2.5px solid transparent}.headline-label{font-size:11px;font-weight:600;margin-top:6px;text-align:center}.headline-driver{font-size:10.5px;color:var(--ink-muted);margin-top:1px;text-align:center}.badges{display:flex;gap:7px;flex-shrink:0}.badge{width:60px;padding:6px 4px;border-radius:8px;text-align:center;border:1.5px solid transparent}.badge .badge-label{font-size:9.5px;font-weight:700;letter-spacing:.03em;opacity:.85}.badge .badge-score{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:1px}.badge.driver{border-color:currentColor}.healthy-c{color:var(--healthy);background:var(--healthy-bg)}.attention-c{color:var(--attention);background:var(--attention-bg)}.critical-c{color:var(--critical);background:var(--critical-bg)}.unknown-c{color:var(--unknown);background:var(--unknown-bg)}.legend{margin-top:24px;padding-top:16px;border-top:1px solid var(--hairline);font-size:12.5px;color:var(--ink-muted);display:flex;gap:18px;flex-wrap:wrap}.legend-chip{display:flex;align-items:center;gap:6px}.state-message{color:var(--ink-muted);font-size:14px}.back-link{display:inline-block;font-size:13px;color:var(--ink-muted);text-decoration:none;margin-bottom:16px}.back-link:hover{color:var(--accent)}.day-subtitle{font-size:13px;color:var(--ink-muted);font-family:SF Mono,Menlo,Consolas,monospace}.day-row{display:block;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;padding:14px 18px;margin-bottom:10px;text-decoration:none;color:inherit;font-size:14px;font-weight:500}.day-row:hover{border-color:var(--accent)}.day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.day-card{display:block;width:100%;border-radius:12px;padding:18px;text-decoration:none;color:inherit;border:1.5px solid transparent;font:inherit;text-align:left;cursor:pointer}.day-card:hover,.day-card.selected{border-color:currentColor}.report-detail{margin-top:20px}.day-card-label{font-size:11px;font-weight:700;letter-spacing:.04em;opacity:.85}.day-card-score{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:6px}.day-card-band{font-size:12px;font-weight:600;margin-top:2px}.day-card-finding{font-size:12px;margin-top:10px;opacity:.9}.report-summary{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:18px 20px;margin-bottom:24px}.report-score{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0}.findings-list{display:flex;flex-direction:column;gap:10px}.finding-row{display:flex;gap:12px;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;padding:14px 16px}.finding-severity{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 8px;border-radius:6px;height:fit-content;text-transform:uppercase}.finding-body{min-width:0}.finding-title{font-size:14px;font-weight:600}.finding-detail{font-size:12.5px;color:var(--ink-muted);margin-top:2px}.subdomains-section{margin:16px 0 20px}.subdomains-heading{font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:8px}.subdomains-list{display:flex;flex-wrap:wrap;gap:6px}.subdomain-chip{display:flex;align-items:center;gap:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;background:var(--bg);border:1px solid var(--hairline);border-radius:6px;padding:4px 6px 4px 8px;color:var(--ink)}.subdomain-add{display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;line-height:1;font-family:inherit;color:var(--accent);background:none;border:none;border-radius:4px;cursor:pointer;padding:0}.subdomain-add:hover{background:var(--hairline)}.subdomain-add:disabled{opacity:.6;cursor:default}.subdomain-check{color:var(--healthy);font-size:12px}.generate-btn{font-size:13.5px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:8px;padding:9px 16px;cursor:pointer}.generate-btn:disabled{opacity:.6;cursor:default}.exports-list{display:flex;flex-direction:column;gap:10px}.export-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;padding:14px 18px}.export-date{font-size:14px;font-weight:600}.export-meta{font-size:12.5px;color:var(--ink-muted);margin-top:2px}.download-btn{font-size:13px;font-weight:600;color:var(--accent);background:none;border:1.5px solid var(--accent);border-radius:7px;padding:7px 14px;cursor:pointer;flex-shrink:0}.download-btn:hover{background:var(--accent);color:#fff}.add-target-toggle{display:inline-block;margin-bottom:20px;background:none;border:none;padding:0;cursor:pointer}.add-target-form{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:18px 20px;margin-bottom:20px}.form-row{display:flex;flex-direction:column;gap:5px}.form-row label{font-size:12.5px;font-weight:600;color:var(--ink-muted)}.form-row input{font-size:14px;font-family:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--hairline);border-radius:7px;padding:9px 11px}.form-row input:focus{outline:none;border-color:var(--accent)}.form-checkbox-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-muted)}.form-error{font-size:13px;color:var(--critical);margin:0}.form-actions{display:flex;align-items:center;gap:16px}.delete-btn{font-size:13px;font-weight:600;color:var(--critical);background:none;border:1.5px solid var(--critical);border-radius:7px;padding:7px 14px;cursor:pointer;flex-shrink:0}.delete-btn:hover{background:var(--critical);color:#fff}.delete-btn:disabled{opacity:.6;cursor:default}.score-history{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:16px 18px;margin-bottom:24px;overflow-x:auto}.score-history-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-muted);margin-bottom:10px}.score-history-chart{display:block;width:100%;min-width:480px;height:auto}.chart-gridline{stroke:var(--hairline);stroke-width:1}.chart-axis-label{font-size:11px;fill:var(--ink-muted)}.chart-crosshair{stroke:var(--ink-muted);stroke-width:1;stroke-dasharray:3 3}.chart-tooltip{margin-top:10px;padding-top:10px;border-top:1px solid var(--hairline);display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px}.chart-tooltip-date{font-weight:600;color:var(--ink)}.chart-tooltip-row{display:flex;align-items:center;gap:6px;color:var(--ink-muted)}@media(max-width:640px){.target-row{flex-wrap:wrap}.badges{width:100%;justify-content:flex-start}}
