:root{--good:#0cce6b;--needs-improvement:#ffa400;--poor:#ff4e42;--bg:#fff;--fg:#1a1a1a;--fg-muted:#666;--border:#e0e0e0;--surface:#f8f8f8;--max-width:800px;--radius:6px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);color:var(--fg);background:var(--bg);line-height:1.6}.container{max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem}.site-header{margin-bottom:2rem}.site-header-row{justify-content:space-between;align-items:baseline;display:flex}.site-header h1{margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.roadmap-link{color:var(--fg-muted);font-size:.85rem;text-decoration:underline}.roadmap-link:hover{color:var(--fg);text-decoration:none}.site-header p{color:var(--fg-muted)}.analyze-form{margin-bottom:2rem}.form-row{gap:.5rem;margin-bottom:.75rem;display:flex}.url-input{border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;font-family:var(--font);flex:1;padding:.6rem .75rem}.url-input:focus{outline:2px solid var(--fg);outline-offset:-1px}.analyze-btn{background:var(--fg);color:var(--bg);border-radius:var(--radius);cursor:pointer;border:none;padding:.6rem 1.25rem;font-size:1rem;font-weight:600}.analyze-btn:disabled{opacity:.5;cursor:not-allowed}.form-options{gap:1.5rem;display:flex}.form-options label{color:var(--fg-muted);align-items:center;gap:.4rem;font-size:.875rem;display:flex}.form-options select{border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;font-family:var(--font);padding:.3rem .5rem}.loading{text-align:center;padding:3rem 0}.spinner{border:3px solid var(--border);border-top-color:var(--fg);border-radius:50%;width:32px;height:32px;margin:0 auto 1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-note{color:var(--fg-muted);font-size:.875rem}.error-box{border:1px solid var(--poor);border-radius:var(--radius);color:var(--poor);background:#fff0f0;margin-bottom:1.5rem;padding:1rem}.error-box .retry-btn{background:var(--poor);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;margin-top:.75rem;padding:.4rem 1rem;font-size:.875rem}.report{border-top:2px solid var(--fg);margin-top:1.5rem;padding-top:1.5rem}.report-header{align-items:center;gap:1.5rem;margin-bottom:2rem;display:flex}.report-meta h2{margin-bottom:.25rem;font-size:1.25rem}.report-meta .url{font-family:var(--font-mono);color:var(--fg-muted);word-break:break-all;font-size:.875rem}.report-meta .meta-line{color:var(--fg-muted);font-size:.8rem}.score-gauge{text-align:center;flex-shrink:0}.score-ring{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative}.score-ring:after{content:"";background:var(--bg);border-radius:50%;position:absolute;inset:5px}.score-value{z-index:1;font-size:1.5rem;font-weight:700}.score-label{color:var(--fg-muted);margin-top:.25rem;font-size:.75rem;display:block}.summary,.metrics,.next-steps{margin-bottom:1.5rem}.summary h3,.metrics h3,.next-steps h3{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin-bottom:.5rem;font-size:1rem}.summary p{line-height:1.7}.metrics-table{border-collapse:collapse;width:100%;font-size:.9rem}.metrics-table th{text-align:left;border-bottom:2px solid var(--fg);text-transform:uppercase;letter-spacing:.05em;padding:.5rem .75rem;font-size:.8rem}.metrics-table td{border-bottom:1px solid var(--border);padding:.5rem .75rem}.mono{font-family:var(--font-mono)}.issue-section{margin-bottom:1.5rem}.issue-section summary{cursor:pointer;list-style:none}.issue-section summary::-webkit-details-marker{display:none}.issue-section summary h3{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);font-size:1rem;display:inline}.issue-count{font-size:.875rem;font-weight:400}.issue-list{margin-top:.75rem}.issue-card{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;padding:1rem}.issue-card h4{margin-bottom:.4rem;font-size:.95rem}.issue-meta{align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.confidence-badge{text-transform:uppercase;border-radius:3px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.confidence-high{color:#2e7d32;background:#e8f5e9}.confidence-medium{color:#e65100;background:#fff3e0}.confidence-low{color:#6a1b9a;background:#f3e5f5}.impact{color:var(--fg-muted)}.issue-card p{margin-bottom:.4rem;font-size:.9rem}.evidence{color:var(--fg-muted);border-left:3px solid var(--border);margin-top:.5rem;padding-left:.75rem;font-size:.8rem}.next-steps ol{padding-left:1.25rem}.next-steps li{margin-bottom:.5rem;font-size:.9rem}.report-footer{border-top:1px solid var(--border);color:var(--fg-muted);margin-top:2rem;padding-top:1rem;font-size:.8rem}.login-container{justify-content:center;align-items:center;min-height:80vh;display:flex}.login-form{text-align:center}.login-form h1{margin-bottom:.25rem;font-size:1.5rem}.login-subtitle{color:var(--fg-muted);margin-bottom:1.5rem}.login-form input{border:1px solid var(--border);border-radius:var(--radius);width:280px;font-size:1rem;font-family:var(--font);margin-bottom:.75rem;padding:.6rem .75rem;display:block}.login-form button{background:var(--fg);width:280px;color:var(--bg);border-radius:var(--radius);cursor:pointer;border:none;padding:.6rem;font-size:1rem;font-weight:600}.login-form button:disabled{opacity:.5}.login-form .error{color:var(--poor);margin-top:.75rem;font-size:.875rem}.muted{color:var(--fg-muted)}.roadmap h2{margin-bottom:.5rem;font-size:1.25rem}.roadmap-intro{color:var(--fg-muted);margin-bottom:2rem;line-height:1.7}.roadmap-section{margin-bottom:2rem}.roadmap-section h3{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin-bottom:.75rem;font-size:1rem}.roadmap-section ul{padding:0;list-style:none}.roadmap-section li{border-bottom:1px solid var(--border);padding:.6rem 0;font-size:.9rem;line-height:1.6}.roadmap-section li:last-child{border-bottom:none}.roadmap-section li strong{margin-bottom:.15rem;display:block}.roadmap-section code{font-family:var(--font-mono);background:var(--surface);border-radius:3px;padding:.1rem .3rem;font-size:.85em}.roadmap-footer{border-top:1px solid var(--border);color:var(--fg-muted);margin-top:2rem;padding-top:1rem;font-size:.8rem;font-style:italic}.site-section{margin-top:.75rem}.site-section-controls{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.add-pages-btn{font-size:.8rem;font-family:var(--font);border:1px dashed var(--border);border-radius:var(--radius);color:var(--fg-muted);cursor:pointer;background:0 0;padding:.4rem .85rem;font-weight:500}.add-pages-btn:hover:not(:disabled){border-color:var(--fg);color:var(--fg)}.add-pages-btn:disabled{opacity:.5;cursor:not-allowed}.discover-row{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.discover-btn{font-size:.8rem;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);cursor:pointer;align-items:center;gap:.4rem;padding:.4rem .85rem;font-weight:500;display:flex}.discover-btn:hover:not(:disabled){border-color:var(--fg)}.discover-btn:disabled{opacity:.5;cursor:not-allowed}.discover-note{color:var(--fg-muted);font-size:.8rem}.path-list{margin-bottom:.75rem}.path-list-label{color:var(--fg-muted);margin-bottom:.4rem;font-size:.875rem}.path-row{align-items:center;gap:0;margin-bottom:.4rem;display:flex}.path-prefix{font-size:1rem;font-family:var(--font-mono);color:var(--fg-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius) 0 0 var(--radius);border-right:none;padding:.6rem 0 .6rem .75rem;line-height:1}.path-input{border:1px solid var(--border);border-radius:0 var(--radius) var(--radius) 0;font-size:1rem;font-family:var(--font);flex:1;padding:.6rem .75rem}.path-input:focus{outline:2px solid var(--fg);outline-offset:-1px}.remove-path-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:32px;height:32px;color:var(--fg-muted);cursor:pointer;justify-content:center;align-items:center;margin-left:.4rem;font-size:1.1rem;display:flex}.remove-path-btn:hover{color:var(--poor);border-color:var(--poor);background:#fff0f0}.add-path-btn{border:1px dashed var(--border);border-radius:var(--radius);color:var(--fg-muted);cursor:pointer;font-size:.8rem;font-family:var(--font);background:0 0;padding:.35rem .75rem}.add-path-btn:hover{border-color:var(--fg);color:var(--fg)}.loading-title{margin-bottom:1rem;font-weight:600}.page-progress{text-align:left;max-width:500px;margin:0 auto 1rem}.page-progress-item{font-size:.875rem;font-family:var(--font-mono);align-items:center;gap:.5rem;padding:.35rem 0;display:flex}.progress-indicator{text-align:center;flex-shrink:0;width:1.25rem}.status-done .progress-indicator{color:var(--good)}.status-error .progress-indicator{color:var(--poor)}.status-pending .progress-indicator{color:var(--fg-muted)}.progress-url{word-break:break-word}.redirect-note{color:var(--fg-muted);font-size:.8rem}.progress-error{color:var(--poor);font-size:.8rem}.spinner-sm{border:2px solid var(--border);border-top-color:var(--fg);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.page-scores{margin-bottom:1.5rem}.page-scores h3{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin-bottom:.5rem;font-size:1rem}.page-scores-list{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.page-score-row{justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.875rem;display:flex}.page-score-row:not(:last-child){border-bottom:1px solid var(--border)}.page-score-url{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;margin-right:1rem;overflow:hidden}.page-score-value{flex-shrink:0;font-size:1rem;font-weight:700}.page-score-failed{opacity:.7}.page-score-error{color:var(--poor);flex-shrink:0;font-size:.8rem}.affected-pages{flex-wrap:wrap;gap:.35rem;margin-top:.5rem;display:flex}.affected-page-pill{font-size:.75rem;font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);color:var(--fg-muted);border-radius:3px;padding:.15rem .5rem}
