/* Signature: a severity rail that connects findings to their evidence and fixes. */
#technical-audit-root { --tech-blue:#2779b9; min-width:0; }
#technical-audit-root [hidden] { display:none !important; }
.tech-intro { align-items:flex-start; }
.tech-controls { display:flex; flex-wrap:wrap; align-items:center; gap:18px 24px; padding:22px 24px; }
.tech-controls>.field { width:210px; }
.tech-controls>label:not(.field) { display:flex; align-items:center; gap:8px; }
.tech-controls input[type=checkbox] { accent-color:var(--magenta); }
.tech-controls>p { flex-basis:100%; margin:0; color:var(--ink-faint); font-size:12px; }
.tech-config,.tech-status { color:var(--ink-soft); font-size:12px; margin:12px 0; }
.tech-status { min-height:20px; }
.tech-error { background:var(--red-pale); color:var(--red); padding:15px 20px; border:1px solid #edc0c5; border-radius:var(--radius-sm); margin-bottom:16px; }
.tech-empty { min-height:230px; padding:32px; display:flex; gap:24px; align-items:center; }
.tech-empty-mark { font:700 48px var(--font-data); color:var(--magenta); width:85px; height:85px; display:grid; place-items:center; border:2px solid var(--magenta-pale); border-radius:50%; flex-shrink:0; }
.tech-empty p { color:var(--ink-soft); max-width:650px; }
#tech-results,#tech-results-more { display:grid; gap:22px; }
#tech-results-more,.tech-speed { margin-top:22px; }
.tech-summary,.tech-speed,.tech-ai,.tech-issues { overflow:hidden; }
.tech-summary-title { padding:22px 24px; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.tech-summary-title h3 { margin:0; font-size:18px; }
.tech-summary-title p { color:var(--ink-faint); margin:5px 0 0; font-size:12px; }
.tech-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-block:1px solid var(--border); }
.tech-metric { padding:22px 24px; border-right:1px solid var(--border); }
.tech-metric:last-child { border-right:0; }
.tech-metric span,.tech-metric small { display:block; color:var(--ink-faint); }
.tech-metric strong { display:block; font:600 34px/1.4 var(--font-data); letter-spacing:-1px; }
.tech-metric small { font-size:11px; }
.tech-metric-health strong { color:var(--tech-blue); }
.tech-metric-critical strong { color:var(--red); }
.tech-metric-warning strong { color:var(--amber); }
.tech-stages { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:20px 24px; gap:20px; }
.tech-stages>div { display:grid; grid-template-columns:9px 1fr auto; align-items:center; gap:8px; }
.tech-stages strong,.tech-stages span { font-size:12px; }
.tech-stages small { grid-column:2/-1; color:var(--ink-faint); line-height:1.65; }
.tech-stage-dot { width:7px; height:7px; border-radius:50%; background:var(--border-strong); }
.tech-stage-dot.completed { background:var(--green); }
.tech-stage-dot.failed,.tech-stage-dot.needs_config,.tech-stage-dot.outdated { background:var(--amber); }
.tech-stage-dot.incomplete { background:var(--red); }
.tech-speed-actions { display:flex; flex-wrap:wrap; gap:10px; }
.tech-speed-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border-top:1px solid var(--border); }
.tech-speed-card { padding:22px 24px; min-width:0; }
.tech-speed-card+.tech-speed-card { border-left:1px solid var(--border); }
.tech-speed-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.tech-speed-heading h4 { margin:0; }
.tech-speed-heading span { font-size:11px; color:var(--ink-faint); }
.tech-speed-card>p,.tech-speed-card>small { color:var(--ink-faint); font-size:12px; }
.tech-speed-scores { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:22px 0; text-align:center; }
.tech-speed-scores strong { display:block; font:600 27px var(--font-data); color:var(--ink-faint); }
.tech-speed-scores span { display:block; font-size:11px; margin-top:6px; }
.tech-speed-scores .good { color:var(--green); }.tech-speed-scores .fair { color:var(--amber); }.tech-speed-scores .poor { color:var(--red); }
.tech-speed-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:14px 0; border-block:1px solid var(--border); }
.tech-speed-metrics dt { color:var(--ink-faint); font-size:11px; }.tech-speed-metrics dd { margin:4px 0 0; font:500 13px var(--font-data); white-space:nowrap; }
.tech-speed-card details { margin:16px 0; font-size:12px; }.tech-speed-card details summary { cursor:pointer; }.tech-speed-card details p { border-top:1px solid var(--border); padding-top:10px; }.tech-speed-card details span { display:block; color:var(--ink-faint); }
.tech-ai { border-left:3px solid var(--tech-blue); padding-bottom:24px; }.tech-ai>.tech-summary-title { padding-bottom:15px; }.tech-ai>p,.tech-ai>small { display:block; margin:0 24px 12px; }.tech-ai>small { color:var(--ink-faint); font-size:12px; }.tech-label { color:var(--ink-faint); font-size:12px; }.tech-ai-priorities { margin:5px 24px 20px 46px; padding:0; }.tech-ai-priorities li { padding:8px 0; }.tech-ai-priorities p { color:var(--ink-soft); font-size:13px; margin:5px 0; }.tech-issue-jump { border:0; background:none; color:var(--tech-blue); font-size:12px; padding:0; cursor:pointer; }.tech-ai-limit { font-size:12px; color:var(--ink-faint); }
.tech-filters { display:flex; flex-wrap:wrap; gap:16px; padding:0 24px 20px; }.tech-filters>.field:first-child { flex:1; min-width:200px; }.tech-filters>.field:not(:first-child) { min-width:150px; }
.tech-issue { border-top:1px solid var(--border); border-left:3px solid transparent; }.tech-issue.tech-critical { border-left-color:var(--red); }.tech-issue.tech-warning { border-left-color:var(--amber); }.tech-issue.tech-info { border-left-color:var(--tech-blue); }
.tech-issue>summary { display:flex; list-style:none; align-items:center; gap:16px; padding:18px 22px; cursor:pointer; }.tech-issue>summary::-webkit-details-marker { display:none; }.tech-issue>summary>div { flex:1; min-width:0; }.tech-issue>summary strong { display:block; font-size:14px; }.tech-issue>summary>div>span { display:block; color:var(--ink-faint); font-size:11px; margin-top:4px; }.tech-severity { border-radius:4px; background:var(--blue-pale); color:var(--tech-blue); padding:3px 7px; font-size:11px; white-space:nowrap; }.tech-critical .tech-severity { background:var(--red-pale); color:var(--red); }.tech-warning .tech-severity { background:var(--amber-pale); color:var(--amber); }.tech-affected { font:12px var(--font-data); color:var(--ink-faint); white-space:nowrap; }.tech-expand { color:var(--ink-faint); }.tech-issue[open] .tech-expand { transform:rotate(45deg); }
.tech-issue-detail { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:4px 24px 24px 81px; }.tech-issue-detail h4 { font-size:12px; margin:10px 0 6px; }.tech-issue-detail p { white-space:pre-wrap; font-size:13px; color:var(--ink-soft); margin:0; }.tech-issue-detail ul { padding:0; list-style:none; max-height:260px; overflow:auto; margin:6px 0; }.tech-issue-detail li { margin:0 0 8px; overflow-wrap:anywhere; font:11px/1.5 var(--font-data); }.tech-issue-detail a { color:var(--tech-blue); }.tech-no-results { padding:15px 24px 28px; color:var(--ink-faint); }.tech-notes { color:var(--ink-faint); font-size:12px; }.tech-file-path { overflow-wrap:anywhere; font-family:var(--font-data); }.tech-confirm { max-width:600px; }.tech-confirm form { padding:26px; }.tech-confirm p { color:var(--ink-soft); line-height:1.8; }.tech-confirm-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }
.tech-ai-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:8px 24px 18px}.tech-ai-actions>span{font-size:12px;color:var(--ink-faint)}#tech-model-settings{border-block:1px solid var(--border);padding:4px 0 14px}.tech-confirm{max-height:88dvh;overflow:auto}.tech-confirm #tech-confirm-error{margin-top:16px}
@media(max-width:1000px) { .tech-metric { padding:17px; }.tech-stages { grid-template-columns:1fr; gap:14px; }.tech-speed-grid { grid-template-columns:1fr; }.tech-speed-card+.tech-speed-card { border-left:0; border-top:1px solid var(--border); } }
@media(max-width:640px) { .tech-intro,.tech-summary-title { flex-direction:column; align-items:stretch; }.tech-controls { padding:18px; gap:16px; }.tech-controls>.field { width:100%; }.tech-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.tech-metric { border-bottom:1px solid var(--border); }.tech-metric-health { grid-column:1/-1; }.tech-metric strong { font-size:28px; }.tech-summary-title,.tech-speed-card { padding:18px; }.tech-speed-actions .button { flex:1; }.tech-filters { padding-inline:18px; }.tech-filters>.field { flex:1; }.tech-issue>summary { padding:16px 12px; gap:9px; }.tech-affected { font-size:10px; }.tech-issue-detail { grid-template-columns:1fr; padding:0 18px 20px; gap:8px; }.tech-empty { padding:22px; align-items:flex-start; }.tech-empty-mark { display:none; } }
@media(prefers-reduced-motion:reduce) { #technical-audit-root * { scroll-behavior:auto !important; transition:none !important; } }
.tech-summary-actions{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.tech-source-field{min-width:0;max-width:360px}.tech-source-field select{max-width:100%}.tech-source-note{overflow-wrap:anywhere}
.tech-completeness{margin:0 24px 16px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--amber-pale);color:var(--ink-soft);font-size:13px;line-height:1.7}.tech-completeness.is-incomplete{background:var(--red-pale);color:var(--red);border-color:#edc0c5;font-weight:600}
@media(max-width:640px){.tech-summary-actions{flex-direction:column;align-items:stretch}.tech-source-field{max-width:none}.tech-completeness{margin:0 18px 14px}}
