/* Theme roles supplement the shared brand spacing and radius tokens. */
:root {
  --theme-surface: #FFFFFF;
  --theme-surface-raised: #EDF0F8;
  --theme-accent: #23356C;
}
.theme-choice { gap: var(--space-12); min-height: 80px; }
.theme-choice .theme-swatch { flex: none; width: 44px; height: 48px; border: 1px solid #6D7C9E55; border-radius: var(--radius-8); position: relative; overflow: hidden; }
.theme-swatch::after { content: ""; position: absolute; inset: 8px 6px 16px; border-radius: 4px; background: #FFFFFF; box-shadow: 0 8px 0 -2px #CDD5E9; }
.theme-swatch-light { background: #F4F3EF; }
.theme-swatch-dark { background: #111725; }
.theme-swatch-dark::after { background: #2B3650; box-shadow: 0 8px 0 -2px #6B7EA7; }
.theme-swatch-system { background: linear-gradient(90deg, #F4F3EF 50%, #111725 50%); }
.theme-swatch-system::after { background: linear-gradient(90deg, #FFFFFF 50%, #2B3650 50%); }

:root[data-theme="dark"] {
  --ink: #E9EDF6;
  --muted: #ADB7CB;
  --canvas: #111725;
  --line: #344057;
  --theme-surface: #1C2535;
  --theme-surface-raised: #29364D;
  --theme-accent: #B4C5FF;
}
:root[data-theme="dark"] body {
  background: radial-gradient(ellipse at 50% 35%, #263146, #0C111B 78%);
}
:root[data-theme="dark"] .app { box-shadow: 0 16px 55px #00000055, 0 0 0 1px #3C4860; }
:root[data-theme="dark"] :is(.bell, .home, .tile, .news, nav, .back, .card, .row-link, .search, .chip, .option, .sort-dropdown summary, .sort-options, .calendar-panel),
:root[data-theme="dark"] :is(.field input, .field select, .field textarea) {
  background: var(--theme-surface);
  border-color: var(--line);
}
:root[data-theme="dark"] .content.home-surface {
  background-color: var(--canvas);
  background-image: url("assets/home-depth-dark.svg");
}
:root[data-theme="dark"] .home-surface :is(.home, .tile, .news) {
  border-color: var(--line);
  box-shadow: 0 5px 15px #00000024, 0 1px 2px #00000018;
}
:root[data-theme="dark"] :is(.home-symbol, .news-date, .demo-banner, .secondary, .service-cover, .service-picture, .avatar, .calendar-arrow, .market-cta) {
  background: var(--theme-surface-raised);
  color: var(--theme-accent);
}
:root[data-theme="dark"] :is(.text-button, .sort-dropdown summary:focus-visible, .sort-option:focus-within, .service-cover > .icon, .service-picture > .icon) {
  color: var(--theme-accent);
  outline-color: var(--theme-accent);
}
:root[data-theme="dark"] button:focus-visible { outline-color: var(--theme-accent); }
:root[data-theme="dark"] :is(input, textarea)::placeholder { color: #A5AFC3; opacity: 1; }
:root[data-theme="dark"] .bell::after { box-shadow: 0 0 0 2px var(--theme-surface); }
:root[data-theme="dark"] nav::before { background: #304367; }
:root[data-theme="dark"] nav [aria-current="page"] { color: var(--theme-accent); }
:root[data-theme="dark"] .hero { background-color: #23356C; }
:root[data-theme="dark"] .primary:not(.coral),
:root[data-theme="dark"] .chip[aria-pressed="true"] {
  background: #405A9F;
  color: #FFFFFF;
  border-color: #6E86C7;
}
:root[data-theme="dark"] .option:has(input:checked),
:root[data-theme="dark"] .sort-option:has(input:checked) {
  background: #293950;
  border-color: var(--theme-accent);
}
:root[data-theme="dark"] .sort-option:has(input:checked) span { color: var(--theme-accent); }
:root[data-theme="dark"] .sort-option:hover,
:root[data-theme="dark"] .calendar-day:hover:not(:disabled) { background: #2D3D55; }
:root[data-theme="dark"] .sort-dropdown[open] summary { border-color: var(--theme-accent); }
:root[data-theme="dark"] :is(input[type="radio"], input[type="checkbox"]) { accent-color: var(--theme-accent); }
:root[data-theme="dark"] .sort-options { box-shadow: 0 8px 24px #00000045; }
:root[data-theme="dark"] .calendar-panel { box-shadow: 0 4px 12px #00000022; }
:root[data-theme="dark"] .calendar-day[aria-pressed="true"] {
  background: var(--theme-accent);
  color: #172444;
}
:root[data-theme="dark"] .calendar-day:disabled { color: #8B96AD; }
:root[data-theme="dark"] .status { color: #B5E4C7; background: #244535; }
:root[data-theme="dark"] .status.active { color: #FFD0B9; background: #51382E; }
:root[data-theme="dark"] .rating { color: #FFD092; }
:root[data-theme="dark"] .timeline li { border-color: #3B4963; }
:root[data-theme="dark"] .timeline li::before { background: var(--theme-accent); border-color: #29364D; }
:root[data-theme="dark"] .market-price .price { color: var(--theme-accent); }
:root[data-theme="dark"] .partner-badge { color: #DCE5FF; background: #1C2943E8; }
:root[data-theme="dark"] #service-results .service-picture {
  background: linear-gradient(145deg, #2B3852, #202B40);
}
:root[data-theme="dark"] #service-results :is([data-category-art="handyman"], [data-category-art="cleaning"]) {
  background: linear-gradient(145deg, #443C3C, #2E303D);
}
:root[data-theme="dark"] #service-results .service-card { box-shadow: 0 4px 12px #00000022; }
:root[data-theme="dark"] #service-results .service-picture img { filter: drop-shadow(0 6px 5px #00000022); }
/* Cool glass surfaces derived from UDS navy #23356C for both themes. */
.brand-mark .brand-logo-dark { display: none; }
:root {
  --glass-fill: linear-gradient(145deg, #FFFFFFD9, #DCE3F1A8);
  --glass-action-fill: linear-gradient(145deg, #F4F6FCE6, #D3DDEEBA);
  --glass-border: #B9C7E19E;
  --glass-shadow: inset 0 1px 0 #FFFFFFE6, 0 5px 16px #23356C0D;
  --glass-selected: linear-gradient(135deg, #3A4D80, #23356C);
  --glass-selected-border: #768ABA;
}
:root[data-theme="dark"] {
  --glass-fill: linear-gradient(145deg, #7D8DB234, #23356C66);
  --glass-action-fill: linear-gradient(145deg, #536CA478, #23356CC2);
  --glass-border: #A9B8DA40;
  --glass-shadow: inset 0 1px 0 #D6DFF52B, 0 6px 20px #00000020;
  --glass-selected: linear-gradient(135deg, #4C6195CC, #23356CDD);
  --glass-selected-border: #A4B4DE88;
}
:root[data-theme] :is(.home, .news, .tile, .chip, .sort-dropdown summary, .row-link),
:root[data-theme] .home-surface :is(.home, .news, .tile) {
  background: var(--glass-fill);
  border-color: var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
  backdrop-filter: blur(14px) saturate(120%);
}
:root[data-theme] .home-surface .tile {
  background: var(--glass-action-fill);
}
:root[data-theme] .chip[aria-pressed="true"] {
  background: var(--glass-selected);
  border-color: var(--glass-selected-border);
  color: #FFFFFF;
  box-shadow: inset 0 1px 0 #FFFFFF26, 0 3px 10px #23356C20;
}
:root[data-theme] .sort-dropdown[open] summary { border-color: var(--glass-selected-border); }
:root[data-theme="dark"] .brand-mark {
  background: #FFFFFF;
  box-shadow: 0 2px 10px #00000014;
}
:root[data-theme="dark"] .brand-mark .brand-logo-light { display: none; }
:root[data-theme="dark"] .brand-mark .brand-logo-dark { display: block; }