/* Mode changes surfaces and contrast; seasonal accents remain independent. */
:root {
  color-scheme:light;
  --ink:#132b43; --muted:#415973; --cream:#eef4fb; --paper:#ffffff;
  --sage:#dfebf8; --line:#a5b8cd; --green:#174f89; --blue:#174f89;
  --blue-deep:#103a66; --blue-soft:#dfebf8; --blue-mid:#6485a4;
  --focus:#095dba; --surface-alt:#e4edf8; --surface-hover:#d5e5f7;
  --field:#ffffff; --field-border:#66829e; --button:#174f89; --button-hover:#103a66;
  --button-text:#ffffff; --on-photo:#ffffff; --error-bg:#fff0ec; --error-ink:#8c291c;
  --error-line:#b25142; --warning-bg:#fff2d9; --warning-ink:#64410c;
  --glass:rgba(238,244,251,.97); --main-glass:rgba(255,255,255,.98);
  --photo-veil:rgba(228,239,252,.76); --panel-shadow:0 12px 32px rgba(17,48,78,.10);
}
:root[data-theme="dark"] {
  color-scheme:dark;
  --ink:#edf4ff; --muted:#b6c7dd; --cream:#0b1423; --paper:#152338;
  --sage:#203650; --line:#536e8d; --green:#a0ceff; --blue:#a0ceff;
  --blue-deep:#d6eaff; --blue-soft:#203650; --blue-mid:#a2bad5;
  --focus:#8bc5ff; --surface-alt:#1a2b43; --surface-hover:#294360;
  --field:#0f1c2e; --field-border:#7f9ab9; --button:#2365a5; --button-hover:#2c75bc;
  --button-text:#ffffff; --on-photo:#ffffff; --error-bg:#412528; --error-ink:#ffc6ba;
  --error-line:#ce8d83; --warning-bg:#392e1d; --warning-ink:#ffdc9b;
  --glass:rgba(11,20,35,.97); --main-glass:rgba(21,35,56,.98);
  --photo-veil:rgba(5,13,25,.84); --season-mist:#172c48;
  --accent:#8fcce9; --accent-soft:#193749;
  --panel-shadow:0 14px 36px rgba(0,0,0,.23);
}
:root[data-theme="dark"][data-appearance="spring"] {--accent:#8bd7be;--accent-soft:#173a36;--season-mist:#142f37}
:root[data-theme="dark"][data-appearance="summer"] {--accent:#f3c574;--accent-soft:#3b301d;--season-mist:#163147}
:root[data-theme="dark"][data-appearance="autumn"] {--accent:#f3b18c;--accent-soft:#3d2b2b;--season-mist:#28243c}
:root[data-theme="dark"][data-appearance="winter"] {--accent:#bdc1ff;--accent-soft:#2b2c4c;--season-mist:#1b2845}
html,body {background-color:var(--cream);color:var(--ink)}
body {background:radial-gradient(ellipse at 95% 0,var(--season-mist),transparent 48%),var(--cream)}
::selection {background:var(--button);color:var(--button-text)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {outline:3px solid var(--focus);outline-offset:4px}
.skip {background:var(--paper);color:var(--blue);border:2px solid var(--focus)}
.brand {color:var(--ink)}
.brand-icon {background:linear-gradient(140deg,#276fa7,#123c67);color:#fff}
.header-right {flex-wrap:wrap;gap:14px}
.theme-control {display:flex;align-items:center;gap:9px;position:relative}
.theme-control[hidden] {display:none}
.theme-status {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.private-pill,.audience-tag,.board-chip,.member-status {background:var(--blue-soft);border-color:var(--line);color:var(--blue)}
.family-nav>a {color:var(--blue)}
.family-nav>a[aria-current="page"],.primary,.calendar-today .calendar-day-number,.calendar-day-today .calendar-day-heading time {background:var(--button);border-color:var(--button);color:var(--button-text)}
.primary:hover {background:var(--button-hover);border-color:var(--button-hover);color:var(--button-text)}
.secondary-button {background:var(--paper);color:var(--blue);border-color:var(--field-border)}
.secondary-button:hover,.calendar-month-navigation>a:hover {background:var(--surface-hover);color:var(--blue);border-color:var(--blue)}
.text-button,.admin-link,.back-link,.conversation-link,.board-settings-invite,.calendar-detail-link,.calendar-bottom-bar>a {color:var(--blue)}
.board-card,.feed-card,.login-card,.person-card,.private-family-notes,.calendar-agenda-event,.calendar-provider-card,.private-family-person,.private-family-extra,.paper {background:var(--paper);border-color:var(--line)}
.everyone-card {background:linear-gradient(145deg,var(--blue-soft),var(--paper))}
.everyone-card .audience-tag {background:var(--paper);color:var(--blue)}
.notice,.site-messages p,.home-invite,.photo-invite-status,.album-role-help,.included-board,.calendar-home-empty,.calendar-connection-ready,.plex-invite-status,.calendar-remove-summary {background:var(--blue-soft);border-color:var(--line);color:var(--ink)}
.audience-notice {background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}
.audience-notice p {color:var(--ink)}
.empty-board,.calendar-empty,.calendar-desktop-empty,.private-family-empty,.album-unavailable,.pll-empty {background:var(--surface-alt);color:var(--muted);border-color:var(--field-border)}
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),select,textarea,.login-form input,.board-form input,.board-form textarea,.board-form select,.private-family-form select,.calendar-event-form input,.calendar-event-form select,.calendar-event-form textarea,.invitation-message,.login-link-box input,.album-choice-control select,.plex-email-box input {background:var(--field);border-color:var(--field-border);color:var(--ink)}
input::placeholder,textarea::placeholder {color:var(--muted);opacity:1}
input[type="checkbox"],input[type="radio"] {accent-color:var(--button)}
.login-form label,.board-form label,.private-family-form label {color:var(--ink)}
.error,.errorlist {color:var(--error-ink)!important}
.error {background:var(--error-bg);border-color:var(--error-line)}
.calendar-connection-notice,.calendar-access-note,.usa-source-notice,.album-role-help.warning {background:var(--warning-bg);color:var(--warning-ink);border-color:var(--accent)}
.calendar-access-note strong {color:var(--warning-ink)}
.calendar-connection-notice strong {color:var(--ink)}
.calendar-month-grid,.calendar-table th,.calendar-table td,.calendar-month-navigation>a {border-color:var(--line)}
.calendar-table thead,.calendar-month-navigation>a,.calendar-provider-icon,.calendar-provider-apple {background:var(--blue-soft);color:var(--blue)}
.calendar-day-outside {background:var(--surface-alt)}
.calendar-day-outside .calendar-day-heading {color:var(--muted)}
.calendar-day-events a {background:var(--blue-soft);color:var(--blue);border-color:var(--line)}
.calendar-day-events a:hover {background:var(--surface-hover)}
.calendar-event-facts>div,.calendar-provider-card,.calendar-device-instructions,.calendar-disconnect,.calendar-remove-summary,.board-toolbar,.board-card-bottom,.post-controls,.comment,.person-actions {border-color:var(--line)}
.calendar-view-form label,.calendar-day-heading,.calendar-table th,.calendar-source-note,.calendar-source-label,.calendar-access-note p,.calendar-remove-summary p,.private-family-updated,.private-family-person p,.post-byline,.post-byline span,.field-note,.member-row,.empty-note {color:var(--muted)}
.post-body,.comment-body,.private-family-body {color:var(--ink)}
.board-form .board-choice,.restore-choice {background:var(--paper);border-color:var(--line)}
.board-choice:has(input:checked) {background:var(--blue-soft);border-color:var(--blue);box-shadow:inset 3px 0 0 var(--blue)}
.person-avatar,.invite-step b,.album-grant-state {background:var(--blue-soft);color:var(--blue)}
.album-choice-row,.album-grant-row,.album-choices {border-color:var(--line)}
.plex-banner {background:var(--surface-alt);border-color:var(--line);color:var(--ink)}
.plex-banner:hover {background:var(--surface-hover);border-color:var(--field-border)}
.plex-banner .eyebrow {color:var(--blue)}
.plex-banner .banner-arrow {color:var(--blue)}
.plex-banner>span>span:last-child {color:var(--muted)}
.photo-banner {background:linear-gradient(118deg,#123d69,#185b94);color:var(--on-photo)}
.photo-banner .eyebrow,.photo-banner span span:last-child,.photo-banner .banner-arrow {color:#edf6ff}
.pll-panel {background:var(--surface-alt);border-color:var(--line)}
.pll-next,.pll-final {background:var(--blue-soft);color:var(--blue);border-color:var(--line)}
.pll-result,.pll-game-details>div,.pll-panel-footer,.pll-season {border-color:var(--line)}
.pll-schedule-link {border-color:var(--field-border)}
:root[data-theme] .japan-countdown {background:linear-gradient(125deg,var(--surface-alt),var(--paper));border-color:var(--line);color:var(--ink)}
:root[data-theme] .japan-countdown .eyebrow,:root[data-theme] .japan-event-link,:root[data-theme] .japan-countdown-status,:root[data-theme] .japan-countdown-units strong,:root[data-theme] .usa-lacrosse h2 em,:root[data-theme] .usa-lacrosse h3,:root[data-theme] .usa-schedule-empty strong,:root[data-theme] .usa-matchup,:root[data-theme] .usa-game-date,:root[data-theme] .usa-upcoming-list strong,:root[data-theme] .usa-score-row {color:var(--blue)}
:root[data-theme] .japan-event-link:hover {color:var(--blue-deep)}
:root[data-theme] .japan-countdown-copy p,:root[data-theme] .japan-countdown-units span,:root[data-theme] .japan-countdown-note,:root[data-theme] .usa-next-game,:root[data-theme] .usa-schedule-empty,:root[data-theme] .usa-matchup>span,:root[data-theme] .usa-upcoming-list span,:root[data-theme] .usa-result-meta,:root[data-theme] .usa-results-empty,:root[data-theme] .usa-lacrosse-footer p {color:var(--muted)}
:root[data-theme] .japan-countdown-clock,:root[data-theme] .usa-next-game,:root[data-theme] .usa-schedule-empty,:root[data-theme] .usa-result {background:var(--paper);border-color:var(--line)}
:root[data-theme] .usa-lacrosse,:root[data-theme] .usa-lacrosse-footer,:root[data-theme] .usa-upcoming-list>li {border-color:var(--line)}
:root[data-theme] .usa-game-status {background:var(--blue-soft);color:var(--blue)}
.private-family-gallery img {background:var(--surface-alt)}
.family-background::after {background:var(--photo-veil)}
.has-family-background .site-header,.has-family-background .family-nav,.has-family-background footer {background:var(--glass)}
.has-family-background main {background:var(--main-glass);border-color:var(--line)}
.footer-tools a,footer a,.appearance-control select {color:var(--blue)}
.appearance-control select {background:var(--paper);border-color:var(--field-border)}
footer,.appearance-control label,.privacy-note p,.access-note,.under-card {color:var(--muted)}
.art-grid {background-image:radial-gradient(var(--blue-mid) 1px,transparent 1px)}
.orbit {border-color:var(--line)}
@media(hover:hover) and (pointer:fine) {
 .family-nav>a:not([aria-current="page"]):hover,.recent-update:hover {background:var(--blue-soft)}
 .board-card:hover {border-color:var(--field-border)}
}
@media(max-width:767px) {
 .site-header {flex-wrap:wrap;gap:18px}
 .header-right {width:100%;justify-content:space-between;gap:12px}
 .theme-control {gap:8px}
 .family-nav>a {background:var(--paper);border-color:var(--line)}
 .family-nav>a[aria-current="page"] {background:var(--button);color:var(--button-text);border-color:var(--button)}
 .header-right .text-button {min-height:44px;font-size:12px;padding:8px}
 .appearance-control select {font-size:16px}
}
@media(max-width:430px) {.header-right .private-pill {display:none}}
@media(forced-colors:active) {.primary,.secondary-button,.theme-control select {border:1px solid ButtonText}.family-nav>a[aria-current="page"] {outline:2px solid Highlight}}
/* A quiet, touch-friendly photo shelf; the photos themselves stay unfiltered. */
.family-moments {margin-top:32px;padding:26px;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--panel-shadow)}
.family-moments .family-moments-heading {display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px}
.family-moments h2 {font-size:30px;margin:9px 0}
.family-moments .family-moments-heading p {font-size:13px;color:var(--muted);line-height:1.8}
.family-moments-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.family-moment-card {min-width:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface-alt)}
.family-moment-card figure {margin:0}
.family-moment-card figure[hidden] {display:none}
.family-moment-card figure>a {display:block}
.family-moment-card img {display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:var(--surface-alt)}
.family-moment-card h3 {font:600 15px/1.4 Arial,Helvetica,sans-serif;color:var(--ink);margin:0;padding:14px 16px}
.family-moment-card figcaption {font-size:12px;color:var(--muted);padding:0 16px 14px}
.family-moments .field-note {font-size:12px;margin-top:18px;line-height:1.7;color:var(--muted)}
.family-moments .secondary-button {min-height:48px;flex-shrink:0}
@media(max-width:767px) {
 .family-moments {padding:21px 18px}
 .family-moments .family-moments-heading {align-items:flex-start;flex-direction:column;gap:12px}
 .family-moments .family-moments-heading .secondary-button {width:100%}
 .family-moments-grid {grid-template-columns:1fr;gap:18px}
 .family-moments h2 {font-size:28px}
}

.family-moments [hidden] {display:none}
.pll-source-notice,.status-paused {background:var(--warning-bg);color:var(--warning-ink);border-color:var(--accent)}
.pinned-tag {background:var(--blue-soft);color:var(--blue)}
.board-form .errorlist {background:var(--error-bg);color:var(--error-ink);border-color:var(--error-line)}

/* One-tap theme switch; device-following can be restored in the footer. */
.theme-toggle {display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 13px;border:1px solid var(--field-border);border-radius:999px;background:var(--paper);color:var(--ink);font:600 13px/1.4 Arial,Helvetica,sans-serif;cursor:pointer}
.theme-toggle-track {display:block;position:relative;flex-shrink:0;width:42px;height:24px;border:1px solid var(--field-border);border-radius:999px;background:var(--surface-alt)}
.theme-toggle-thumb {position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .18s ease,background .18s ease}
.theme-toggle[aria-checked="true"] .theme-toggle-track {background:var(--button);border-color:var(--button)}
.theme-toggle[aria-checked="true"] .theme-toggle-thumb {transform:translateX(18px);background:#fff}
.theme-toggle:hover {border-color:var(--blue);background:var(--surface-alt)}
.theme-device {min-height:44px;padding:8px 0;text-decoration:underline;text-underline-offset:4px;font-size:12px}
.theme-device[hidden] {display:none}
.theme-device:disabled {color:var(--muted);text-decoration:none;opacity:1}
.family-moments-controls {display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:767px){.theme-toggle{font-size:14px}.family-moments-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.family-moments .family-moments-controls .secondary-button{width:100%;font-size:12px;padding:10px 8px}}
@media(max-width:340px){.family-moments-controls{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.theme-toggle-thumb{transition:none}}
:root[data-theme] .usa-source-notice {background:var(--warning-bg);color:var(--warning-ink);border-color:var(--accent)}
