/* Four white palettes and one dark palette, shared by every city. */
html[data-theme]{--ww-page:#fff;--ww-surface:#f0f0f2;--ww-text:#141419;--ww-muted:#9593a5;--ww-line:#ecebf0;--ww-accent:#743edb;--ww-soft:#f0e8fc;--ww-on-accent:#fff}
html[data-theme]:not([data-theme=original]){--ww-surface:#f5f2fa;--ww-text:#232027;--ww-muted:#706978;--ww-line:#e8e3ee;--purple:var(--ww-accent);--muted:var(--ww-muted);--line:var(--ww-line);background:var(--ww-page);color:var(--ww-text)}
html[data-theme=ocean]{--ww-surface:#f0f6fa;--ww-text:#172c3b;--ww-muted:#5b707e;--ww-line:#dfeaf0;--ww-accent:#126aa3;--ww-soft:#e4f2fc}
html[data-theme=sage]{--ww-surface:#f1f6f2;--ww-text:#24392d;--ww-muted:#627366;--ww-line:#e0e9e2;--ww-accent:#38704c;--ww-soft:#e7f2e9}
html[data-theme=gold]{--ww-surface:#faf6ef;--ww-text:#3b3023;--ww-muted:#7c6c57;--ww-line:#eee5d8;--ww-accent:#946015;--ww-soft:#fbf0da}
html[data-theme=midnight]{--ww-page:#15151d;--ww-surface:#23232f;--ww-text:#f2eef8;--ww-muted:#b4adbf;--ww-line:#373442;--ww-accent:#bd9aff;--ww-soft:#30243e;--ww-on-accent:#21172f}
html[data-theme]:not([data-theme=original]) body,html[data-theme]:not([data-theme=original]) .site-header,html[data-theme]:not([data-theme=original]) .discovery,html[data-theme]:not([data-theme=original]) .discovery.filters-pinned,html[data-theme]:not([data-theme=original]) .event,html[data-theme]:not([data-theme=original]) .empty,html[data-theme]:not([data-theme=original]) .search,html[data-theme]:not([data-theme=original]) .scroll-next{background:var(--ww-page);color:var(--ww-text)}
html[data-theme]:not([data-theme=original]) .header-city select,html[data-theme]:not([data-theme=original]) .custom-dates,html[data-theme]:not([data-theme=original]) .extra-dates{background:var(--ww-surface);color:var(--ww-text);border-color:var(--ww-line)}
html[data-theme]:not([data-theme=original]) input,html[data-theme]:not([data-theme=original]) .custom-dates input{background:var(--ww-page);color:var(--ww-text);border-color:var(--ww-line)}
html[data-theme]:not([data-theme=original]) .activity-chips button,html[data-theme]:not([data-theme=original]) .date-chips button{background:var(--ww-page);color:var(--ww-text);border-color:var(--ww-line)}
html[data-theme]:not([data-theme=original]) .activity-chips button[aria-pressed=true],html[data-theme]:not([data-theme=original]) .date-chips button[aria-pressed=true],html[data-theme]:not([data-theme=original]) .language-control button[aria-pressed=true]{background:var(--ww-accent);border-color:var(--ww-accent);color:var(--ww-on-accent)}
html[data-theme]:not([data-theme=original]) .personal-row{border-color:var(--ww-line)}
html[data-theme]:not([data-theme=original]) .personal-buttons button{color:var(--ww-text)}
html[data-theme]:not([data-theme=original]) .personal-buttons button span,html[data-theme]:not([data-theme=original]) .custom-dates button,html[data-theme]:not([data-theme=original]) .empty button,html[data-theme]:not([data-theme=original]) .holiday-label{background:var(--ww-soft);color:var(--ww-accent);border-color:var(--ww-line)}
html[data-theme]:not([data-theme=original]) .day-heading strong,html[data-theme]:not([data-theme=original]) .about-copy h2,html[data-theme]:not([data-theme=original]) .about-copy h3,html[data-theme]:not([data-theme=original]) .empty h3{color:var(--ww-text)}
html[data-theme]:not([data-theme=original]) .day-heading>span,html[data-theme]:not([data-theme=original]) .ticket-icon:hover{color:var(--ww-accent)}
html[data-theme]:not([data-theme=original]) .venue,html[data-theme]:not([data-theme=original]) .activity-description,html[data-theme]:not([data-theme=original]) .event-detail,html[data-theme]:not([data-theme=original]) .event-time,html[data-theme]:not([data-theme=original]) .calendar-tools,html[data-theme]:not([data-theme=original]) .about,html[data-theme]:not([data-theme=original]) footer,html[data-theme]:not([data-theme=original]) .loading,html[data-theme]:not([data-theme=original]) .custom-dates label,html[data-theme]:not([data-theme=original]) .custom-dates p,html[data-theme]:not([data-theme=original]) .map-status,html[data-theme]:not([data-theme=original]) .map-missing,html[data-theme]:not([data-theme=original]) .map-empty-note{color:var(--ww-muted)}
html[data-theme]:not([data-theme=original]) .language-control{border-color:var(--ww-line)}
html[data-theme]:not([data-theme=original]) .language-control button{color:var(--ww-muted)}
html[data-theme]:not([data-theme=original]) :is(button,a,input,select,summary):focus-visible{outline:2px solid var(--ww-accent);outline-offset:3px}
html[data-theme]:not([data-theme=original]) .ticket-icon:hover{background:var(--ww-soft)}
html[data-theme]:not([data-theme=original]) .floating-view-toggle{background:var(--ww-accent);color:var(--ww-on-accent)}
html[data-theme]:not([data-theme=original]) .map-fit,html[data-theme]:not([data-theme=original]) .map-popup-actions button,html[data-theme]:not([data-theme=original]) .map-popup-actions a{background:var(--ww-page);color:var(--ww-accent);border-color:var(--ww-line)}
html[data-theme]:not([data-theme=original]) .map-popup h3,html[data-theme]:not([data-theme=original]) .map-popup h4{color:var(--ww-text)}
html[data-theme]:not([data-theme=original]) .map-popup p{color:var(--ww-muted)}
html[data-theme]:not([data-theme=original]) .map-panel .leaflet-popup-content-wrapper,html[data-theme]:not([data-theme=original]) .map-panel .leaflet-popup-tip{background:var(--ww-page);color:var(--ww-text)}
html[data-theme=midnight] .brand{background:#fff;border-radius:6px;padding:4px}
html[data-theme=midnight] #filter-faves{background:#362334;border-color:#64425e}
html[data-theme=midnight] #filter-hot{background:#352b20;border-color:#655135}
html[data-theme=midnight] #filter-going{background:#2d253e;border-color:#554168}
html[data-theme=midnight] .category-tag{background:#35294b;color:#d5baff}
html[data-theme=midnight] .event:is([data-category=runs],[data-category=hikes]) .category-tag{background:#203a2b;color:#9bd7ae}
html[data-theme=midnight] .event:is([data-category=markets],[data-category=dining]) .category-tag{background:#40321e;color:#f1cd8e}
html[data-theme=midnight] .event:is([data-category=rugby],[data-category=cycles],[data-category=meetup]) .category-tag{background:#22334b;color:#a7cdfb}
html[data-theme=midnight] .event[data-category=workshops] .category-tag{background:#432d25;color:#ffc09e}
html[data-theme=midnight] .event[data-category=kids] .category-tag{background:#3e2939;color:#f5b9dc}
html[data-theme=midnight] .icon-button.is-saved{background:#362334}
html[data-theme=midnight] .icon-button.is-going{background:#30243e}
html[data-theme=midnight] .event-actions .icon-button{color:#b4adbf}
html[data-theme=midnight] .event-actions .icon-button.is-saved{color:#f09bcf}
html[data-theme=midnight] .event-actions .icon-button.is-going{color:#bd9aff}
html[data-theme=midnight] .hot-tag{background:#40321e;color:#f1cd8e}
html[data-theme=midnight] .ongoing-tag{background:#203a2b;color:#9bd7ae}
html[data-theme=midnight] #storage-status{background:#362334;color:#f5b9dc}
.header-actions{display:flex;align-items:center;gap:7px;margin-left:auto;flex-shrink:0}
.theme-picker,.profile-wrap{position:relative}
html[data-theme] .header-control{display:flex;align-items:center;justify-content:center;width:39px;height:39px;margin:0;padding:8px;border:1px solid var(--ww-line);border-radius:50%;background:transparent;color:var(--ww-muted)}
.header-control svg{width:21px;height:21px;flex:none}
html[data-theme] .header-control:hover,html[data-theme] .header-control[aria-expanded=true]{background:var(--ww-soft);color:var(--ww-accent)}
.theme-panel{position:absolute;right:0;top:calc(100% + 10px);width:224px;max-width:calc(100vw - 28px);padding:12px;border:1px solid var(--ww-line);border-radius:12px;background:var(--ww-page);color:var(--ww-text);box-shadow:0 8px 28px #0002;z-index:60}
.theme-panel[hidden]{display:none}
.theme-panel h2{margin:0 0 8px;padding:0 6px;font-size:10px;font-weight:650;letter-spacing:1.5px;text-transform:uppercase;color:var(--ww-muted)}
.theme-panel button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:7px;background:transparent;color:var(--ww-text);padding:9px 6px;text-align:left;font-size:13px}
.theme-panel button:hover,.theme-panel button[aria-pressed=true]{background:var(--ww-surface)}
.theme-swatch{width:22px;height:22px;border-radius:50%;background:var(--swatch-bg,#fff);border:1px solid var(--ww-line);box-shadow:inset 0 0 0 5px var(--swatch-accent);flex:none}
.theme-check{margin-left:auto;width:15px;height:15px;color:var(--ww-accent);visibility:hidden}
[aria-pressed=true]>.theme-check{visibility:visible}
.profile-note{visibility:hidden;opacity:0;pointer-events:none;position:absolute;right:0;top:calc(100% + 10px);width:max-content;max-width:220px;padding:9px 12px;border:1px solid var(--ww-line);border-radius:7px;background:var(--ww-page);color:var(--ww-text);box-shadow:0 4px 16px #0002;font-size:12px;z-index:60}
.profile-wrap:hover .profile-note,.profile-wrap:focus-within .profile-note,.header-profile[aria-expanded=true]+.profile-note{visibility:visible;opacity:1}
@media(max-width:600px){html[data-theme] .brand{width:clamp(104px,32vw,192px)}.header-inner{gap:7px}.header-actions{gap:5px}html[data-theme] .header-control{width:34px;height:34px;padding:6px}html[data-theme] .header-city select{padding-left:10px;padding-right:7px;font-size:13px}.theme-panel{right:-39px}}

/* Six optional gradient palettes. Original remains untouched. */
html[data-theme="electric-sunset"]{--ww-accent:#C026D3;--ww-soft:#f3e8ff;--ww-gradient:linear-gradient(110deg,#6D28D9,#C026D3,#FF6B35);--ww-on-accent:#fff;--purple:#C026D3;--gradient:var(--ww-gradient)}
html[data-theme="electric-blue"]{--ww-accent:#6C4CE4;--ww-soft:#e8efff;--ww-gradient:linear-gradient(110deg,#1266E8,#6C4CE4,#FF5F87);--ww-on-accent:#fff;--purple:#6C4CE4;--gradient:var(--ww-gradient)}
html[data-theme="aurora"]{--ww-accent:#2375E8;--ww-soft:#e1faf6;--ww-gradient:linear-gradient(110deg,#00BFA6,#2375E8,#8458E8);--ww-on-accent:#fff;--purple:#2375E8;--gradient:var(--ww-gradient)}
html[data-theme="golden-hour"]{--ww-accent:#FF7849;--ww-soft:#fff3db;--ww-gradient:linear-gradient(110deg,#FFCA45,#FF7849,#F12F79);--ww-on-accent:#fff;--purple:#FF7849;--gradient:var(--ww-gradient)}
html[data-theme="fresh-energy"]{--ww-accent:#35CFA4;--ww-soft:#edfbda;--ww-gradient:linear-gradient(110deg,#B8F24B,#35CFA4,#087DA5);--ww-on-accent:#fff;--purple:#35CFA4;--gradient:var(--ww-gradient)}
html[data-theme="playful-pop"]{--ww-accent:#F65B91;--ww-soft:#fff0f5;--ww-gradient:linear-gradient(110deg,#FC597A,#F65B91,#885CEB);--ww-on-accent:#fff;--purple:#F65B91;--gradient:var(--ww-gradient)}
html[data-theme]:is([data-theme="electric-sunset"],[data-theme="electric-blue"],[data-theme="aurora"],[data-theme="golden-hour"],[data-theme="fresh-energy"],[data-theme="playful-pop"]) :is(.activity-chips button[aria-pressed="true"],.date-chips button[aria-pressed="true"],.floating-view-toggle){background:var(--ww-gradient);border-color:transparent;color:#fff}
html[data-theme]:is([data-theme="electric-sunset"],[data-theme="electric-blue"],[data-theme="aurora"],[data-theme="golden-hour"],[data-theme="fresh-energy"],[data-theme="playful-pop"]) :is(.ticket,.footer-dot){background:var(--ww-gradient);color:#fff}
html[data-theme]:is([data-theme="electric-sunset"],[data-theme="electric-blue"],[data-theme="aurora"],[data-theme="golden-hour"],[data-theme="fresh-energy"],[data-theme="playful-pop"]) .theme-swatch{background:var(--swatch-gradient,var(--swatch-accent));box-shadow:none;border:1px solid #0001}
