:root {
    color-scheme: light;
    --theme-page: #f4f7f5;
    --theme-surface: #ffffff;
    --theme-surface-2: #f7faf8;
    --theme-text: #17231d;
    --theme-text-secondary: #46554d;
    --theme-muted: #66766d;
    --theme-border: #d8e2dc;
    --theme-shadow: 0 12px 34px rgba(22, 49, 36, .08);
}

/* An explicit light choice must override legacy system-dark media queries. */
:root[data-theme="light"] {
    color-scheme: light;
    --color-primary: #1a5c3a;
    --color-primary-dark: #134529;
    --color-primary-light: #2d8a56;
    --color-primary-bg: #e8f5ee;
    --color-secondary: #c9a227;
    --color-secondary-dark: #a68520;
    --color-secondary-light: #e0be4a;
    --color-success: #28a745;
    --color-warning: #ffc107;
    --color-danger: #dc3545;
    --color-info: #17a2b8;
    --color-bg: #fafcfa;
    --color-surface: #ffffff;
    --color-surface-hover: #f5f8f5;
    --color-text: #1a1a2e;
    --color-text-secondary: #555770;
    --color-text-muted: #74778b;
    --color-text-inverse: #ffffff;
    --color-border: #d5dfd7;
    --color-border-light: #e8eee9;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -1px rgba(0, 0, 0, .04);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .03);
}

:root[data-theme="dark"] {
    color-scheme: dark;
    --color-primary: #71d5a2;
    --color-primary-dark: #9be7bf;
    --color-primary-light: #45b77d;
    --color-primary-bg: #17372a;
    --color-secondary: #edc45a;
    --color-secondary-dark: #f4d57e;
    --color-secondary-light: #c69b34;
    --color-success: #62d391;
    --color-warning: #f2c94c;
    --color-danger: #ff7e87;
    --color-info: #55c6d8;
    --color-bg: #0b1410;
    --color-surface: #14221b;
    --color-surface-hover: #1b2e24;
    --color-text: #edf5f0;
    --color-text-secondary: #c0cec6;
    --color-text-muted: #98aaa0;
    --color-text-inverse: #0c1a13;
    --color-border: #385044;
    --color-border-light: #293d33;
    --theme-page: #0b1410;
    --theme-surface: #14221b;
    --theme-surface-2: #192a21;
    --theme-text: #edf5f0;
    --theme-text-secondary: #c0cec6;
    --theme-muted: #98aaa0;
    --theme-border: #385044;
    --theme-shadow: 0 16px 40px rgba(0, 0, 0, .32);
}

html, body, .main-content, .admin-body, .admin-main, .admin-content {
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.theme-switch {
    min-width: 142px;
    height: 42px;
    padding: 5px 9px;
    border: 1px solid var(--theme-border);
    border-radius: 999px;
    background: color-mix(in srgb, var(--theme-surface) 94%, transparent);
    color: var(--theme-text);
    box-shadow: 0 7px 22px rgba(15, 46, 31, .12);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.theme-switch:hover { transform: translateY(-1px); border-color: var(--color-primary-light); }
.theme-switch:focus-visible { outline: 3px solid color-mix(in srgb, var(--color-primary) 32%, transparent); outline-offset: 3px; }
.theme-switch__icon { width: 16px; font-size: 15px; text-align: center; }
.theme-switch__sun { color: #ad7600; }
.theme-switch__moon { color: #63708f; }
.theme-switch__track {
    position: relative;
    width: 34px;
    height: 20px;
    flex: 0 0 34px;
    border-radius: 999px;
    background: #d7e0da;
    box-shadow: inset 0 0 0 1px rgba(25, 52, 39, .12);
}
.theme-switch__track i {
    position: absolute;
    top: 3px;
    inset-inline-start: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .22);
    transition: transform .2s ease;
}
[data-theme="dark"] .theme-switch__track { background: #327859; }
[data-theme="dark"] .theme-switch__track i { transform: translateX(-14px); }
[dir="ltr"][data-theme="dark"] .theme-switch__track i { transform: translateX(14px); }
[data-theme="dark"] .theme-switch__sun { color: #8b8f8d; }
[data-theme="dark"] .theme-switch__moon { color: #d9e6ff; }
.theme-switch--floating {
    position: fixed;
    z-index: 240;
    top: max(12px, env(safe-area-inset-top));
    inset-inline-end: 12px;
}
.display-preferences{position:fixed;z-index:240;top:max(12px,env(safe-area-inset-top));inset-inline-end:12px;display:flex;align-items:center;gap:7px}.display-preferences .theme-switch{position:static}.language-switch-form{display:inline-flex;margin:0}.language-switch{width:42px;height:42px;display:grid;place-items:center;padding:0;border:1px solid var(--theme-border);border-radius:50%;color:var(--color-primary-dark);background:color-mix(in srgb,var(--theme-surface) 94%,transparent);box-shadow:0 7px 22px rgba(15,46,31,.12);font:800 12px/1 Inter,sans-serif;cursor:pointer;backdrop-filter:blur(14px);transition:transform .18s,border-color .18s}.language-switch:hover{transform:translateY(-1px);border-color:var(--color-primary-light)}.language-switch:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 32%,transparent);outline-offset:3px}.language-switch--compact{width:42px;height:42px;box-shadow:none}
.management-entry{position:relative;display:inline-flex}.management-entry__picker{position:relative}.management-entry__picker>summary{list-style:none}.management-entry__picker>summary::-webkit-details-marker{display:none}.management-entry__button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:1px solid color-mix(in srgb,var(--color-primary) 28%,var(--theme-border));border-radius:14px;color:var(--color-primary-dark);background:color-mix(in srgb,var(--theme-surface) 93%,transparent);box-shadow:0 7px 22px rgba(15,46,31,.12);font:800 12px/1.2 inherit;text-decoration:none;cursor:pointer;backdrop-filter:blur(14px)}.management-entry__button>span{font-size:17px}.management-entry__button>i{font-style:normal;font-size:11px;opacity:.65}.management-entry__menu{position:absolute;z-index:260;top:calc(100% + 9px);inset-inline-end:0;width:min(330px,calc(100vw - 20px));max-height:min(70vh,520px);overflow:auto;padding:8px;border:1px solid var(--theme-border);border-radius:18px;background:color-mix(in srgb,var(--theme-surface) 96%,transparent);box-shadow:0 20px 55px rgba(10,35,24,.22);backdrop-filter:blur(20px)}.management-entry__menu header{display:grid;gap:3px;padding:10px 11px}.management-entry__menu header small{color:var(--theme-text-muted);font-size:11px}.management-entry__menu>a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border-radius:13px;color:var(--theme-text);text-decoration:none}.management-entry__menu>a:hover,.management-entry__menu>a.is-current{background:color-mix(in srgb,var(--color-primary) 11%,transparent)}.management-entry__menu>a>span:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.management-entry__menu>a b,.management-entry__menu>a small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.management-entry__menu>a small{margin-top:3px;color:var(--theme-text-muted);font-size:10px}.management-entry__menu>a>i{font-style:normal}.management-entry__picker[open] .management-entry__button{border-color:var(--color-primary)}
.theme-switch--compact { min-width: 82px; width: auto; box-shadow: none; }
.theme-switch--compact .theme-switch__name { display: none; }

/* Strong, accessible typography for organization administration in daylight. */
.admin-section { color: var(--theme-text); }
.admin-section-header h1,
.admin-section-header h2,
.admin-section-header h3,
.admin-form-card h1,
.admin-form-card h2,
.admin-form-card h3 { color: #17231d; }
.admin-section-header p,
.admin-form-card p { color: #46554d; }
.admin-form-card {
    margin-bottom: 16px;
    padding: clamp(16px, 2.5vw, 22px);
    border: 1px solid #d8e2dc;
    border-radius: 16px;
    background: #ffffff;
    color: #24352c;
    box-shadow: 0 8px 26px rgba(22, 49, 36, .06);
}
.admin-form-card label,
.admin-form-card summary,
.admin-form-card legend,
.admin-section label { color: #293a32; font-weight: 700; }
.admin-form-card summary { padding-block: 10px; cursor: pointer; }
.admin-form-card fieldset { margin-block: 14px; border: 1px solid #d8e2dc; border-radius: 12px; }
.admin-grid-2 { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(320px, 1.2fr); gap: 18px; align-items: start; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-section .form-control { background: #ffffff; color: #17231d; border-color: #bac9c0; }
.admin-section .form-control::placeholder { color: #738078; opacity: 1; }

:root[data-theme="dark"] body,
:root[data-theme="dark"] .main-content,
:root[data-theme="dark"] .admin-body,
:root[data-theme="dark"] .admin-main,
:root[data-theme="dark"] .admin-content { background: var(--theme-page); color: var(--theme-text); }
:root[data-theme="dark"] .admin-topbar { background: #101d17; border-color: var(--theme-border); }
:root[data-theme="dark"] .admin-page-title,
:root[data-theme="dark"] .admin-section-header h1,
:root[data-theme="dark"] .admin-section-header h2,
:root[data-theme="dark"] .admin-section-header h3,
:root[data-theme="dark"] .admin-form-card h1,
:root[data-theme="dark"] .admin-form-card h2,
:root[data-theme="dark"] .admin-form-card h3 { color: var(--theme-text); }
:root[data-theme="dark"] .admin-section-header p,
:root[data-theme="dark"] .admin-form-card p,
:root[data-theme="dark"] .admin-stat-label,
:root[data-theme="dark"] .admin-stat-sub,
:root[data-theme="dark"] .admin-detail-label,
:root[data-theme="dark"] .admin-upload-text,
:root[data-theme="dark"] .admin-upload-hint { color: var(--theme-text-secondary); }
:root[data-theme="dark"] .admin-form-card,
:root[data-theme="dark"] .admin-stat-card,
:root[data-theme="dark"] .admin-table-card,
:root[data-theme="dark"] .admin-detail-card,
:root[data-theme="dark"] .admin-card { background: var(--theme-surface); border-color: var(--theme-border); color: var(--theme-text); box-shadow: var(--theme-shadow); }
:root[data-theme="dark"] .admin-form-card label,
:root[data-theme="dark"] .admin-form-card summary,
:root[data-theme="dark"] .admin-form-card legend,
:root[data-theme="dark"] .admin-section label,
:root[data-theme="dark"] .admin-stat-value,
:root[data-theme="dark"] .admin-detail-value,
:root[data-theme="dark"] .admin-table-title { color: var(--theme-text); }
:root[data-theme="dark"] .admin-form-card fieldset { border-color: var(--theme-border); }
:root[data-theme="dark"] .admin-table,
:root[data-theme="dark"] .admin-table th,
:root[data-theme="dark"] .admin-table td { border-color: var(--theme-border); color: var(--theme-text); }
:root[data-theme="dark"] .admin-table th { background: var(--theme-surface-2); }
:root[data-theme="dark"] .admin-table tr:hover td { background: #1c3026; }
:root[data-theme="dark"] .admin-filter-input,
:root[data-theme="dark"] .admin-filter-select,
:root[data-theme="dark"] .admin-section .form-control,
:root[data-theme="dark"] .form-control { background: #101d17; color: var(--theme-text); border-color: var(--theme-border); }
:root[data-theme="dark"] .admin-section .form-control::placeholder,
:root[data-theme="dark"] .form-control::placeholder { color: var(--theme-muted); }
:root[data-theme="dark"] .admin-hamburger span { background: var(--theme-text); }
:root[data-theme="dark"] .admin-topbar-btn:hover,
:root[data-theme="dark"] .admin-btn-outline,
:root[data-theme="dark"] .admin-filter-tab { background: var(--theme-surface-2); color: var(--theme-text); border-color: var(--theme-border); }

/* Organization pages and all scoped cards. */
:root[data-theme="dark"] .org-page { background: linear-gradient(180deg, #0b1510, #101d17); color: var(--theme-text); }
:root[data-theme="dark"] :is(.org-card,.org-join-panel,.org-profile,.org-list-item,.org-stat,.org-admin-card,.org-table,.org-media-card,.org-onboarding-card,.org-choice) { background: var(--theme-surface); border-color: var(--theme-border); color: var(--theme-text); box-shadow: var(--theme-shadow); }
:root[data-theme="dark"] :is(.org-card h3,.org-profile h1,.org-section-head h2,.org-admin-card h2,.org-admin-card h3,.org-choice h2,.org-stat strong,.org-list-item) { color: var(--theme-text); }
:root[data-theme="dark"] :is(.org-card p,.org-profile p,.org-section-head p,.org-list-item small,.org-media-card small,.org-stat span,.org-empty,.org-field>span,.org-field>label) { color: var(--theme-text-secondary); }
:root[data-theme="dark"] .org-input,
:root[data-theme="dark"] .org-select,
:root[data-theme="dark"] .org-textarea { background: #101d17; color: var(--theme-text); border-color: var(--theme-border); }
:root[data-theme="dark"] .org-table th { background: var(--theme-surface-2); color: var(--theme-text-secondary); }
:root[data-theme="dark"] .org-table td,
:root[data-theme="dark"] .org-table th,
:root[data-theme="dark"] .org-table-wrap { border-color: var(--theme-border); }
:root[data-theme="dark"] :is(.org-directory-summary>div,.org-lineage,.org-lineage-banner) { background: var(--theme-surface-2); border-color: var(--theme-border); color: var(--theme-text); }
:root[data-theme="dark"] :is(.org-directory-summary strong,.org-lineage b) { color: var(--theme-text); }
:root[data-theme="dark"] :is(.org-directory-summary span,.org-lineage-banner small) { color: var(--theme-text-secondary); }
:root[data-theme="dark"] .org-directory-card.is-archived { background: var(--theme-surface-2); }
:root[data-theme="dark"] :is(.org-child-manager,.org-parent-lock) { background: var(--theme-surface-2); border-color: var(--theme-border); color: var(--theme-text-secondary); }
:root[data-theme="dark"] .org-parent-lock b { color: var(--theme-text); }
:root[data-theme="dark"] .org-activity-drawer { background: var(--theme-surface); border-color: var(--theme-border); }
:root[data-theme="dark"] .org-activity-drawer summary { color: var(--theme-text); }
:root[data-theme="dark"] .org-activity-list { border-color: var(--theme-border); }
:root[data-theme="dark"] .org-activity-list article { border-color: var(--theme-border); }
:root[data-theme="dark"] .org-list-icon,
:root[data-theme="dark"] .org-btn-soft,
:root[data-theme="dark"] .org-pill { background: #1d3c2e; color: #bfe9d2; }
:root[data-theme="dark"] .org-admin-scope { background: linear-gradient(135deg, #18382a, #214737); color: #e8f6ee; }
:root[data-theme="dark"] .org-onboarding { background: radial-gradient(circle at 50% 0, #17382a, #0b1410 60%); }
:root[data-theme="dark"] .org-choice.primary { background: #173427; border-color: #438464; }

/* Explicit user choice wins over browser color preference in Bible plans. */
:root[data-theme="light"] .bp-page { --bp-ink:#17352a;--bp-muted:#53675d;--bp-green:#176b4b;--bp-green-dark:#0d5238;--bp-mint:#eaf5ef;--bp-cream:#fbfaf5;--bp-line:#d4e2da; }
:root[data-theme="light"] :is(.bp-card,.bp-start-card,.bp-preview,.bp-day,.bp-people-list span,.bp-post,.bp-comment,.bp-reading-card) { background:#fff; }
:root[data-theme="dark"] .bp-page { --bp-ink:#ecf5f0;--bp-muted:#b2c2ba;--bp-green:#69c69b;--bp-green-dark:#8bd8b4;--bp-mint:#183b2d;--bp-cream:#15251e;--bp-line:#30483d; }
:root[data-theme="dark"] :is(.bp-card,.bp-start-card,.bp-preview,.bp-day,.bp-people-list span,.bp-post,.bp-comment,.bp-reading-card,.bp-day-hero,.bp-reflection-card) { background:#14231c; }
:root[data-theme="dark"] :is(.bp-active,.bp-session-hero,.bp-day.is-complete) { background:#193329; }

@media (max-width: 768px) {
    .display-preferences{top:max(8px,env(safe-area-inset-top));inset-inline-end:8px;gap:5px}
    .management-entry__button{width:44px;padding:0}.management-entry__button>b,.management-entry__button>i{display:none}.management-entry__menu{position:fixed;top:60px;inset-inline-end:8px}
    .display-preferences .theme-switch{min-width:44px;width:44px;padding-inline:5px}
    .display-preferences .theme-switch .theme-switch__name,.display-preferences .theme-switch .theme-switch__track,.display-preferences .theme-switch .theme-switch__sun,.display-preferences .theme-switch .theme-switch__moon{display:none}
    :root[data-theme="light"] .display-preferences .theme-switch .theme-switch__moon,:root[data-theme="dark"] .display-preferences .theme-switch .theme-switch__sun{display:inline-block;color:var(--theme-text);font-size:20px}
    .theme-switch--floating { top: max(8px, env(safe-area-inset-top)); inset-inline-end: 8px; min-width: 44px; width: 44px; padding-inline: 5px; }
    .theme-switch--floating .theme-switch__name,
    .theme-switch--floating .theme-switch__track,
    .theme-switch--floating .theme-switch__sun,
    .theme-switch--floating .theme-switch__moon { display: none; }
    :root[data-theme="light"] .theme-switch--floating .theme-switch__moon,
    :root[data-theme="dark"] .theme-switch--floating .theme-switch__sun { display: inline-block; color: var(--theme-text); font-size: 20px; }
    .theme-switch--compact { min-width: 42px; width: 42px; padding-inline: 4px; }
    .theme-switch--compact .theme-switch__name,
    .theme-switch--compact .theme-switch__track,
    .theme-switch--compact .theme-switch__sun,
    .theme-switch--compact .theme-switch__moon { display: none; }
    :root[data-theme="light"] .theme-switch--compact .theme-switch__moon,
    :root[data-theme="dark"] .theme-switch--compact .theme-switch__sun { display: inline-block; color: var(--theme-text); font-size: 19px; }
    .admin-grid-2, .form-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    html, body, .main-content, .admin-body, .admin-main, .admin-content,
    .theme-switch, .theme-switch__track i { transition: none !important; }
}
