/* Semantic roles supplement the original light palette; photos and video remain unchanged. */
html{color-scheme:light}
html[data-theme="dark"]{
 color-scheme:dark;
 --paper:#081321;--paper-light:#101f34;--ink:#edf3ff;--muted:#b7c5d9;--moss:#aacbfa;--forest:#dce8fb;--lime:#d5eb71;--line:#344b66;
 --night-surface:#101f34;--night-soft:#152941;--night-raised:#1b324e;--night-strong:#10253e;--night-glass:#101f34f5;
 --night-text:#edf3ff;--night-muted:#bccbe0;--night-accent:#b0d0ff;--night-on-strong:#edf3ff;--night-border:#597496;--night-stroke:#829cbe;--night-shadow:#02091655;
 --night-action:#a8ceff;--night-action-ink:#07172b;--night-action-hover:#c6dfff;
 --night-success:#a8e4bd;--night-success-bg:#173c35;--night-warning:#ffda9e;--night-warning-bg:#3b301e;--night-error:#ffb7bd;--night-error-bg:#462b39;
 /* The supplied studio has its own variable names. */
 --bg-base:#081321;--bg-surface:#101f34;--bg-elevated:#152941;--bg-card:#101f34;--bg-card-hover:#203b59;--bg-glass:#101f34ed;
 --border-subtle:#344b66;--border-focus:#aacbfa;--text-primary:#edf3ff;--text-secondary:#bccbe0;--text-muted:#aabed8;
 --accent-teal:#a8e4ce;--accent-teal-soft:#173c3c;--accent-blue:#b0d0ff;--accent-blue-soft:#1c3857;
 --accent-amber:#ffda9e;--accent-amber-soft:#3b301e;--status-green:#a8e4bd;--status-green-soft:#173c35;--status-red:#ffb7bd;--status-red-soft:#462b39;--status-purple:#dbbeff;--status-purple-soft:#34284f;
 --shadow-main:0 8px 28px #02091655;
}
.theme-footer-row{width:min(calc(100% - 112px),1328px);margin:0 auto;padding:18px 0 24px;border-top:1px solid var(--line,#d5d8c8)}
.theme-picker{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;color:var(--ink,#283b2e);font-family:var(--sans,Inter,system-ui,sans-serif)}
.theme-picker[hidden]{display:none!important}.theme-picker-label{font-size:11px;line-height:1.8;color:var(--muted,#626855)}
.theme-options{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line,#c2ccb3);border-radius:30px;background:var(--paper-light,#fbfaf4)}
.theme-options button{display:flex;gap:7px;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border:1px solid transparent;border-radius:24px;background:transparent;color:var(--forest,#283b2e);font:500 11px/1.6 var(--sans,Inter,system-ui,sans-serif);cursor:pointer}
.theme-options button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.theme-options button:hover{background:#e5ead8;color:#283b2e;border-color:#b1bd9f}.theme-options button[aria-pressed="true"]{background:#283b2e;color:#fbfaf4;border-color:#283b2e}
.theme-options button[aria-pressed="true"]:hover{background:#405534;color:#fffef8;border-color:#405534}
.theme-options button:focus-visible{outline:3px solid var(--moss,#52613e);outline-offset:2px}
.theme-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.demo-site-footer .theme-footer-row{width:min(calc(100% - 112px),1200px);margin-top:22px}
.studio-legal-footer .theme-footer-row{width:100%;flex-basis:100%;margin:0;padding:18px 0 0}
html[data-theme="dark"] .theme-options button:hover{background:#244363;color:#edf3ff;border-color:#7896bc}
html[data-theme="dark"] .theme-options button[aria-pressed="true"]{background:#a8ceff;color:#07172b;border-color:#a8ceff}
html[data-theme="dark"] .theme-options button[aria-pressed="true"]:hover{background:#c6dfff;color:#07172b;border-color:#c6dfff}
/* Explicit foreground/background pairs for filled actions and selected states. */
html[data-theme="dark"] :is(.button-dark,.contact-button,.enquiry-submit,.enquiry-ai-apply,.receptionist-page .btn-primary,.anpr-controls #anpr-play,.studio-legal-footer .btn-primary){background:var(--night-action);color:var(--night-action-ink);border-color:var(--night-action)}
html[data-theme="dark"] :is(.button-dark,.contact-button,.enquiry-submit,.enquiry-ai-apply,.receptionist-page .btn-primary,.anpr-controls #anpr-play):hover:not(:disabled){background:var(--night-action-hover);color:var(--night-action-ink);border-color:var(--night-action-hover)}
html[data-theme="dark"] .main-nav .nav-contact:hover{background:#a8ceff;color:#07172b;border-color:#a8ceff}
html[data-theme="dark"] .dock-primary-icon{background:#a8ceff;color:#07172b;border-color:#101f34}
html[data-theme="dark"] .dock-primary:hover .dock-primary-icon{background:#c6dfff}
html[data-theme="dark"] .phone-wave i{background:#829cbe}
html[data-theme="dark"] .phone-wave i:nth-child(3n),html[data-theme="dark"] .phone-wave i:nth-child(5n){background:#b0d0ff}
html[data-theme="dark"] .phone-wave.is-playing i{background:#d5eb71}
html[data-theme="dark"] :is(.approach-usecase,.brief-goal-grid button,.vision-filters button,.anpr-scenarios button)[aria-pressed="true"]{background:#254666;color:#edf3ff;border-color:#9abde8}
html[data-theme="dark"] .telephone-enhanced .phone-view-controls button[aria-pressed="true"]{background:#31577f;color:#edf3ff}
html[data-theme="dark"] .receptionist-page{color-scheme:dark}
html[data-theme="dark"] .receptionist-page .stage{--navy:#0a1b30;--navy-2:#152d49;--teal:#1f4661;--teal-2:#345d7b;--mint:#d5eb71;--cyan:#c8dffa;--ink:#f1f5ff;--ink-2:#cad7e9;--ink-3:#b4c8e1;--line:#607c9e;--card:#0b1b30ed;background:linear-gradient(180deg,#112c48,#071426)}
html[data-theme="dark"] .stage :is(.btn-primary,.big-play){background:#d5eb71;color:#0a1b30;border-color:#d5eb71}
html[data-theme="dark"] .stage :is(.btn-primary,.big-play):hover{background:#e7f6a4;color:#0a1b30}
html[data-theme="dark"] .stage .ctl{color:#edf3ff;background:#10253ebf;border-color:#607c9e}
html[data-theme="dark"] .stage .ctl:hover{color:#fff;background:#284c70}
html[data-theme="dark"] .stage .mail{color:#edf3ff;background:#142b46}
html[data-theme="dark"] .stage :is(.mail-head span,.mail-note){color:#bdcce0}
html[data-theme="dark"] .stage .mail-rec{color:#ffe0a8;background:#3b301e;border-color:#ae8a4f}
html[data-theme="dark"] .ai-processing-steps li[data-state="complete"] .ai-process-bar i,html[data-theme="dark"] .ai-process-key i[data-key="complete"]{background:var(--night-success)}
html[data-theme="dark"] .ai-processing-steps li:is([data-state="running"],[data-state="ready"]) .ai-process-bar i,html[data-theme="dark"] .ai-process-key i[data-key="running"]{background:var(--night-warning)}
html[data-theme="dark"] .ai-processing-steps li[data-state="held"] .ai-process-bar i,html[data-theme="dark"] .ai-process-key i[data-key="held"]{background:var(--night-error)}
html[data-theme="dark"] .anpr-outcome[data-tone="ok"]{background:var(--night-success-bg);color:var(--night-success)}
html[data-theme="dark"] :is(.anpr-outcome[data-tone="review"],.anpr-human-check){background:var(--night-warning-bg);color:var(--night-warning)}
html[data-theme="dark"] .anpr-human-check button{background:#52401f;color:#ffe1af;border-color:#a98951}
html[data-theme="dark"] .anpr-human-check button:hover{background:#70572d;color:#fff0d7}
html[data-theme="dark"] :is(.enquiry-status[data-state="error"],.enquiry-error){color:var(--night-error)}
html[data-theme="dark"] .enquiry-status[data-state="success"]{color:var(--night-success)}
/* Keep the illustrated ANPR capture legible as a deliberate dark camera panel. */
html[data-theme="dark"] .anpr-camera{background:#0b1b30;color:#cad7e9}
html[data-theme="dark"] .anpr-camera .car-body{fill:#b6c9df;stroke:#7a98bb}
html[data-theme="dark"] .anpr-camera .car-glass{fill:#263e59}
html[data-theme="dark"] .anpr-camera-plate{fill:#263827}
html[data-theme="dark"] .anpr-route .route-car{fill:#a8ceff;stroke:#a8ceff}
html[data-theme="dark"] .anpr-route .route-car path{fill:#10253e}
html[data-theme="dark"] .opportunity-core{fill:#244c76;stroke:#aacbfa}
html[data-theme="dark"] .opportunity-core-mark{fill:#d5eb71;stroke:none}
html[data-theme="dark"] .opportunity-check{stroke:#263827}
html[data-theme="dark"] :is(.phone-demo-play,.vision-zoom,.vision-cta .button){color:#07172b}
html[data-theme="dark"] .explore-link:hover span,html[data-theme="dark"] .chapters button[aria-current="true"]::before{color:#07172b}
html[data-theme="dark"] .vision-cta .button:hover{background:#e7f6a4;color:#07172b;border-color:#e7f6a4}
html[data-theme="dark"] ::selection{background:#a8ceff;color:#07172b}
html[data-theme="dark"] .skip-link{background:#a8ceff;color:#07172b}
html[data-theme="dark"] .brand-accent{fill:#a8ceff}
html[data-theme="dark"] .app-shell .btn-primary{background:#a8ceff;color:#07172b;border-color:#a8ceff}
html[data-theme="dark"] .app-shell .btn-primary:hover{background:#c6dfff;color:#07172b}
html[data-theme="dark"] .workflow :is([fill="#fffef7"],[fill="#eceddf"]){fill:#1b324e}
html[data-theme="dark"] .workflow [fill="#283b2e"]{fill:#10253e}
html[data-theme="dark"] .workflow :is([stroke="#b9bda8"],[stroke="#5a6848"],[stroke="#7d846c"]){stroke:#91aacb}
html[data-theme="dark"] .workflow #dot-grid circle{fill:#344b66}
html[data-theme="dark"] .workflow :is(.svg-label,.svg-body,.svg-light){fill:#edf3ff}
html[data-theme="dark"] .workflow :is(.svg-muted,.svg-small){fill:#bccbe0}
html[data-theme="dark"] .workflow-phone-icon{stroke:#b0d0ff}
html[data-theme="dark"] .anpr-rule-panel>svg rect:first-child{fill:#344b66}
html[data-theme="dark"] .anpr-rule-panel #anpr-stay-fill{fill:#a8ceff}
html[data-theme="dark"] .enquiry-field [aria-invalid="true"]{border-color:#ffb7bd;outline-color:#ffb7bd}
/* Hover and keyboard states also fill gaps in the light theme. */
:is(.enquiry-ai-generate,.anpr-controls button:not(#anpr-play),.phone-view-controls button,.phone-audio-toggle):hover:not(:disabled){background:var(--paper-light);border-color:var(--moss);color:var(--forest)}
:is(.brief-goal-grid button,.anpr-scenarios button,.vision-filters button):hover:not([aria-pressed="true"]){background:#e7edd9;border-color:#83966b;color:#283b2e}
:is(.service-detail-link,.footer-legal a,.back-top,.legal-cross-link,.cctv-example-nav a,.phone-plan-choose):hover{color:var(--moss);text-decoration:underline;text-underline-offset:5px}
:is(.vision-studio-preview,.cctv-example-card,.phone-plan-card):hover{border-color:var(--moss)}
:is(button,summary,select,input,textarea,a):focus-visible{outline-color:var(--moss,#52613e)}
input::placeholder,textarea::placeholder{color:#69715f;opacity:1}
html[data-theme="dark"] :is(input,textarea)::placeholder{color:#a6b8d0;opacity:1}
html[data-theme="dark"] :is(.brief-goal-grid button,.anpr-scenarios button,.vision-filters button):hover:not([aria-pressed="true"]){background:#244363;border-color:#8aa8cf;color:#edf3ff}
@media(max-width:800px){.theme-footer-row,.demo-site-footer .theme-footer-row{width:calc(100% - 48px);padding:20px 0}.theme-picker{justify-content:flex-start;gap:12px}.theme-picker-label{width:100%}.theme-options button{min-height:44px;padding:9px 12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.theme-options button{transition:none}}
/* Strengthen the small processing labels in the original light palette too. */
.enquiry-ai .ai-processing>summary>small,.ai-processing-steps :is(small,[data-process-label]),.ai-process-key{color:var(--night-muted,#58634e)}
.vision-lightbox button:hover{background:var(--night-raised,#405534);color:var(--night-text,#fffef8);border-color:var(--night-accent,#c2d09d)}
.cctv-menu>summary:hover{background:var(--night-soft,#e5ebd9);border-color:var(--night-border,#aabb94)}
@media(max-width:360px){.theme-options{max-width:100%}.theme-options button{padding-inline:8px;font-size:10px;gap:5px}}
