/* Fotokaste admin — switchable visual themes (tokens + light polish).
   Classic = default :root in admin.css. Atelier / Noir remap tokens only. */

html[data-admin-theme="classic"] {
    --admin-sidebar-bg: #272355;
    --admin-sidebar-text: #ffffff;
    --admin-sidebar-muted: rgba(255, 255, 255, 0.68);
    --admin-sidebar-hover: rgba(255, 255, 255, 0.08);
    --admin-sidebar-active: rgba(255, 255, 255, 0.14);
    --admin-sidebar-border: rgba(255, 255, 255, 0.1);
}

/* ── Atelier: light, teal, editorial ── */
html[data-admin-theme="atelier"] {
    --admin-header: #0f3d3e;
    --admin-header-text: #f4fffe;
    --admin-bg: #eef2f3;
    --admin-card: #ffffff;
    --admin-text: #142126;
    --admin-muted: #5b6b72;
    --admin-border: #d5e0e0;
    --admin-accent: #0f766e;
    --admin-accent-soft: #ccfbf1;
    --admin-link: #0f766e;
    --admin-danger: #b91c1c;
    --admin-warning-bg: #fff7ed;
    --admin-warning-text: #9a3412;
    --admin-sidebar-bg: #ffffff;
    --admin-sidebar-text: #142126;
    --admin-sidebar-muted: #5b6b72;
    --admin-sidebar-hover: #eef2f3;
    --admin-sidebar-active: #ccfbf1;
    --admin-sidebar-border: #d5e0e0;
}

/* ── Noir: dark charcoal for long sessions ── */
html[data-admin-theme="noir"] {
    --admin-header: #080b10;
    --admin-header-text: #eef3fa;
    --admin-bg: #0e131a;
    --admin-card: #171d27;
    --admin-text: #e8eef7;
    --admin-muted: #93a0b4;
    --admin-border: #2a3342;
    --admin-accent: #38bdf8;
    --admin-accent-soft: #0c4a6e;
    --admin-link: #7dd3fc;
    --admin-danger: #f87171;
    --admin-warning-bg: #422006;
    --admin-warning-text: #fde68a;
    --admin-sidebar-bg: #080b10;
    --admin-sidebar-text: #eef3fa;
    --admin-sidebar-muted: #93a0b4;
    --admin-sidebar-hover: rgba(56, 189, 248, 0.08);
    --admin-sidebar-active: rgba(56, 189, 248, 0.14);
    --admin-sidebar-border: #1d2430;
}

/* Theme picker (user menu) */
.admin-theme-picker {
    margin: 4px 0 14px;
    padding: 12px;
    border-radius: calc(var(--admin-radius) - 2px);
    background: color-mix(in srgb, var(--admin-bg) 70%, var(--admin-card));
    border: 1px solid var(--admin-border);
}

.admin-user-panel:has(.admin-theme-picker) {
    min-width: min(320px, calc(100vw - 24px));
}

.admin-theme-picker-label {
    margin: 0 0 8px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--admin-muted);
}

.admin-theme-picker-options {
    display: grid;
    gap: 6px;
}

.admin-theme-option {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 10px;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 8px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: var(--admin-card);
    color: var(--admin-text);
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-theme-option:hover {
    border-color: color-mix(in srgb, var(--admin-accent) 45%, var(--admin-border));
}

.admin-theme-option.is-active {
    border-color: var(--admin-accent);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--admin-accent) 35%, transparent);
}

.admin-theme-option-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.admin-theme-option-text strong {
    font-size: 0.88rem;
    font-weight: 650;
}

.admin-theme-option-text small {
    font-size: 0.72rem;
    color: var(--admin-muted);
    line-height: 1.3;
}

.admin-theme-swatch {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    background:
        linear-gradient(135deg, var(--swatch-a, #272355) 0 50%, transparent 50%),
        linear-gradient(135deg, transparent 50%, var(--swatch-b, #d4147a) 50% 100%),
        var(--swatch-bg, #eceef2);
    background-size: 100% 100%;
}

.admin-theme-swatch-classic {
    --swatch-a: #272355;
    --swatch-b: #d4147a;
    --swatch-bg: #eceef2;
}

.admin-theme-swatch-atelier {
    --swatch-a: #0f3d3e;
    --swatch-b: #0f766e;
    --swatch-bg: #eef2f3;
}

.admin-theme-swatch-noir {
    --swatch-a: #080b10;
    --swatch-b: #38bdf8;
    --swatch-bg: #171d27;
    border-color: rgba(255, 255, 255, 0.12);
}

.admin-theme-swatch-edgars {
    --swatch-a: #161616;
    --swatch-b: #161616;
    --swatch-bg: #f6f3ee;
}

.admin-theme-swatch-efpic {
    --swatch-a: #070605;
    --swatch-b: #c6a15b;
    --swatch-bg: #16130e;
    border-color: rgba(198, 161, 91, 0.45);
}

.admin-theme-swatch-gaisma {
    --swatch-a: #3d2b1f;
    --swatch-b: #b4532a;
    --swatch-bg: #fbf6ef;
}

.admin-theme-swatch-lauks {
    --swatch-a: #1e2a22;
    --swatch-b: #3d6b45;
    --swatch-bg: #f3f5f1;
}

/* Atelier polish */
html[data-admin-theme="atelier"] .admin-topbar {
    box-shadow: 0 1px 0 rgba(15, 61, 62, 0.18);
}

html[data-admin-theme="atelier"] .card-block,
html[data-admin-theme="atelier"] .booth-settings-card,
html[data-admin-theme="atelier"] .booth-metric-card,
html[data-admin-theme="atelier"] .admin-modal-panel {
    border: 1px solid var(--admin-border);
    box-shadow: var(--admin-shadow);
}

html[data-admin-theme="atelier"] .gallery-view-tabs,
html[data-admin-theme="atelier"] .booth-event-subtabs,
html[data-admin-theme="atelier"] .settings-tabs {
    background: #e2e8ea;
}

html[data-admin-theme="atelier"] .admin-btn-primary,
html[data-admin-theme="atelier"] button.admin-btn-primary {
    background: var(--admin-accent);
    border-color: var(--admin-accent);
}

html[data-admin-theme="atelier"] .admin-auth-wrap {
    background:
        radial-gradient(900px 420px at 15% -10%, rgba(15, 118, 110, 0.16), transparent 60%),
        radial-gradient(700px 380px at 90% 10%, rgba(15, 61, 62, 0.12), transparent 55%),
        var(--admin-bg);
}

/* Noir polish */
html[data-admin-theme="noir"] .admin-topbar {
    border-bottom: 1px solid #1d2430;
}

html[data-admin-theme="atelier"] .admin-sidebar {
    box-shadow: 1px 0 0 var(--admin-sidebar-border);
}

html[data-admin-theme="noir"] .admin-version-badge {
    color: rgba(238, 243, 250, 0.7);
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.1);
}

html[data-admin-theme="noir"] .admin-drawer-panel,
html[data-admin-theme="noir"] .admin-user-panel {
    background: #121821;
    color: var(--admin-text);
    border-left: 1px solid var(--admin-border);
}

html[data-admin-theme="noir"] .admin-drawer-link,
html[data-admin-theme="noir"] .admin-user-panel a {
    color: var(--admin-text);
}

html[data-admin-theme="noir"] .admin-drawer-link:hover,
html[data-admin-theme="noir"] .admin-user-panel a:hover {
    background: rgba(56, 189, 248, 0.08);
    text-decoration: none;
}

html[data-admin-theme="noir"] .card-block,
html[data-admin-theme="noir"] .booth-settings-card,
html[data-admin-theme="noir"] .booth-metric-card,
html[data-admin-theme="noir"] .admin-modal-panel {
    background: var(--admin-card);
    border: 1px solid var(--admin-border);
    box-shadow: var(--admin-shadow);
}

html[data-admin-theme="noir"] .gallery-view-tabs,
html[data-admin-theme="noir"] .booth-event-subtabs,
html[data-admin-theme="noir"] .settings-tabs {
    background: #10161f;
    border: 1px solid var(--admin-border);
}

html[data-admin-theme="noir"] .gallery-view-tab,
html[data-admin-theme="noir"] .booth-event-subtab,
html[data-admin-theme="noir"] .settings-tab {
    color: var(--admin-muted);
}

html[data-admin-theme="noir"] .gallery-view-tab.is-active,
html[data-admin-theme="noir"] .booth-event-subtab.is-active,
html[data-admin-theme="noir"] .settings-tab.is-active {
    background: var(--admin-card);
    color: var(--admin-text);
}

html[data-admin-theme="noir"] input:not([type="checkbox"]):not([type="radio"]):not([type="date"]):not([type="file"]):not(.share-input),
html[data-admin-theme="noir"] select,
html[data-admin-theme="noir"] textarea {
    background: #10161f;
    color: var(--admin-text);
    border-color: var(--admin-border);
}

html[data-admin-theme="noir"] input[type="date"] {
    background: #fff;
    color: #1f1f2e;
    border-color: var(--admin-border);
    color-scheme: light;
}

html[data-admin-theme="noir"] .admin-btn,
html[data-admin-theme="noir"] .admin-select,
html[data-admin-theme="noir"] .select-all-btn {
    background: #10161f;
    color: var(--admin-text);
    border-color: var(--admin-border);
}

html[data-admin-theme="noir"] .admin-btn-primary {
    background: #0284c7;
    border-color: #0284c7;
    color: #fff;
}

html[data-admin-theme="noir"] .admin-flash-success {
    background: #052e1c;
    color: #86efac;
}

html[data-admin-theme="noir"] .admin-flash-error {
    background: #450a0a;
    color: #fecaca;
}

html[data-admin-theme="noir"] .admin-auth-wrap {
    background:
        radial-gradient(800px 400px at 20% 0%, rgba(56, 189, 248, 0.12), transparent 55%),
        radial-gradient(700px 360px at 100% 20%, rgba(14, 165, 233, 0.08), transparent 50%),
        var(--admin-bg);
}

html[data-admin-theme="noir"] .admin-auth-card {
    background: var(--admin-card);
    border: 1px solid var(--admin-border);
    box-shadow: var(--admin-shadow);
}

html[data-admin-theme="atelier"] .admin-auth-logo {
    color: #0f766e;
}

html[data-admin-theme="noir"] .admin-auth-logo {
    color: #38bdf8;
}

html[data-admin-theme="classic"] .admin-auth-logo {
    color: #272355;
}

html[data-admin-theme="noir"] .admin-auth-logo svg circle {
    fill: currentColor;
}

html[data-admin-theme="atelier"] .admin-auth-logo svg circle {
    fill: currentColor;
}

html[data-admin-theme="classic"] .admin-auth-logo svg circle {
    fill: currentColor;
}

/* ── Edgars: ink on warm paper ── */
html[data-admin-theme="edgars"] {
    --admin-header: #161616;
    --admin-header-text: #f6f3ee;
    --admin-bg: #f6f3ee;
    --admin-card: #fffcf8;
    --admin-text: #1c1c1c;
    --admin-muted: #6f6a62;
    --admin-border: #e3ddd3;
    --admin-accent: #1c1c1c;
    --admin-accent-soft: #ece8e1;
    --admin-link: #1c1c1c;
    --admin-danger: #9f2d2d;
    --admin-warning-bg: #f3ead7;
    --admin-warning-text: #6b4e1e;
    --admin-sidebar-bg: #141414;
    --admin-sidebar-text: #f6f3ee;
    --admin-sidebar-muted: rgba(246, 243, 238, 0.62);
    --admin-sidebar-hover: rgba(255, 255, 255, 0.06);
    --admin-sidebar-active: rgba(255, 255, 255, 0.12);
    --admin-sidebar-border: rgba(255, 255, 255, 0.08);
}

html[data-admin-theme="edgars"] .admin-topbar {
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
}

html[data-admin-theme="edgars"] .card-block,
html[data-admin-theme="edgars"] .booth-settings-card,
html[data-admin-theme="edgars"] .booth-metric-card,
html[data-admin-theme="edgars"] .admin-modal-panel,
html[data-admin-theme="edgars"] .admin-panel {
    border: 1px solid var(--admin-border);
}

html[data-admin-theme="edgars"] .gallery-view-tabs,
html[data-admin-theme="edgars"] .booth-event-subtabs,
html[data-admin-theme="edgars"] .settings-tabs {
    background: #e7e2da;
}

html[data-admin-theme="edgars"] .admin-auth-wrap {
    background:
        radial-gradient(720px 320px at 50% -10%, rgba(22, 22, 22, 0.08), transparent 60%),
        var(--admin-bg);
}

html[data-admin-theme="edgars"] .admin-auth-logo {
    color: #161616;
}

/* ── EFPIC: black and gold ── */
html[data-admin-theme="efpic"] {
    --admin-header: #070605;
    --admin-header-text: #f6edd9;
    --admin-bg: #0c0b09;
    --admin-card: #16130e;
    --admin-text: #f6edd9;
    --admin-muted: #b5a78a;
    --admin-border: #3a3224;
    --admin-accent: #c6a15b;
    --admin-accent-soft: #3d3218;
    --admin-link: #e4c77b;
    --admin-danger: #e07a6a;
    --admin-warning-bg: #3a2c12;
    --admin-warning-text: #f3d9a4;
    --admin-sidebar-bg: #070605;
    --admin-sidebar-text: #f6edd9;
    --admin-sidebar-muted: #b5a78a;
    --admin-sidebar-hover: rgba(198, 161, 91, 0.12);
    --admin-sidebar-active: rgba(198, 161, 91, 0.22);
    --admin-sidebar-border: #2a2418;
    color-scheme: dark;
}

html[data-admin-theme="efpic"] .admin-topbar {
    border-bottom: 1px solid #2a2418;
    box-shadow: inset 0 -1px 0 rgba(198, 161, 91, 0.28);
}

html[data-admin-theme="efpic"] .admin-version-badge {
    color: #e4c77b;
    background: rgba(198, 161, 91, 0.12);
    border-color: rgba(198, 161, 91, 0.35);
}

html[data-admin-theme="efpic"] .admin-drawer-panel,
html[data-admin-theme="efpic"] .admin-user-panel {
    background: #120f0b;
    color: var(--admin-text);
    border: 1px solid var(--admin-border);
}

html[data-admin-theme="efpic"] .admin-drawer-link,
html[data-admin-theme="efpic"] .admin-user-panel a {
    color: var(--admin-text);
}

html[data-admin-theme="efpic"] .admin-drawer-link:hover,
html[data-admin-theme="efpic"] .admin-user-panel a:hover {
    background: rgba(198, 161, 91, 0.1);
    text-decoration: none;
}

html[data-admin-theme="efpic"] .card-block,
html[data-admin-theme="efpic"] .booth-settings-card,
html[data-admin-theme="efpic"] .booth-metric-card,
html[data-admin-theme="efpic"] .admin-modal-panel,
html[data-admin-theme="efpic"] .admin-panel {
    background: var(--admin-card);
    border: 1px solid var(--admin-border);
    box-shadow: var(--admin-shadow);
    color: var(--admin-text);
}

html[data-admin-theme="efpic"] .gallery-view-tabs,
html[data-admin-theme="efpic"] .booth-event-subtabs,
html[data-admin-theme="efpic"] .settings-tabs {
    background: #100e0b;
    border: 1px solid var(--admin-border);
}

html[data-admin-theme="efpic"] .gallery-view-tab,
html[data-admin-theme="efpic"] .booth-event-subtab,
html[data-admin-theme="efpic"] .settings-tab {
    color: var(--admin-muted);
}

html[data-admin-theme="efpic"] .gallery-view-tab.is-active,
html[data-admin-theme="efpic"] .booth-event-subtab.is-active,
html[data-admin-theme="efpic"] .settings-tab.is-active {
    background: #241c10;
    color: #f6edd9;
}

html[data-admin-theme="efpic"] input:not([type="checkbox"]):not([type="radio"]):not([type="date"]):not([type="file"]):not(.share-input),
html[data-admin-theme="efpic"] select,
html[data-admin-theme="efpic"] textarea {
    background: #100e0b;
    color: #f6edd9;
    border-color: #3a3224;
}

html[data-admin-theme="efpic"] input[type="date"] {
    background: #fff;
    color: #1f1f2e;
    border-color: var(--admin-border);
    color-scheme: light;
}

html[data-admin-theme="efpic"] .admin-btn,
html[data-admin-theme="efpic"] .admin-select,
html[data-admin-theme="efpic"] .select-all-btn {
    background: #100e0b;
    color: var(--admin-text);
    border-color: var(--admin-border);
}

html[data-admin-theme="efpic"] .admin-btn-primary,
html[data-admin-theme="efpic"] button.admin-btn-primary {
    background: #c6a15b;
    border-color: #c6a15b;
    color: #1a1408;
}

html[data-admin-theme="efpic"] .admin-flash-success {
    background: #1a2414;
    color: #d6e7a8;
}

html[data-admin-theme="efpic"] .admin-flash-error {
    background: #3a1612;
    color: #fecaca;
}

html[data-admin-theme="efpic"] .admin-auth-wrap {
    background:
        radial-gradient(640px 280px at 50% 0%, rgba(198, 161, 91, 0.22), transparent 58%),
        var(--admin-bg);
}

html[data-admin-theme="efpic"] .admin-auth-card {
    background: var(--admin-card);
    border: 1px solid var(--admin-border);
    box-shadow: var(--admin-shadow);
}

html[data-admin-theme="efpic"] .admin-auth-logo {
    color: #c6a15b;
}

/* ── Gaisma: warm daylight, copper ── */
html[data-admin-theme="gaisma"] {
    --admin-header: #3d2b1f;
    --admin-header-text: #fff8f1;
    --admin-bg: #fbf6ef;
    --admin-card: #ffffff;
    --admin-text: #2a211b;
    --admin-muted: #7a6a5c;
    --admin-border: #eadfd2;
    --admin-accent: #b4532a;
    --admin-accent-soft: #f3e0d2;
    --admin-link: #9a4318;
    --admin-danger: #b91c1c;
    --admin-warning-bg: #fff4e5;
    --admin-warning-text: #9a3412;
    --admin-sidebar-bg: #3d2b1f;
    --admin-sidebar-text: #fff8f1;
    --admin-sidebar-muted: rgba(255, 248, 241, 0.68);
    --admin-sidebar-hover: rgba(255, 255, 255, 0.08);
    --admin-sidebar-active: rgba(180, 83, 42, 0.45);
    --admin-sidebar-border: rgba(255, 255, 255, 0.1);
}

html[data-admin-theme="gaisma"] .card-block,
html[data-admin-theme="gaisma"] .booth-settings-card,
html[data-admin-theme="gaisma"] .booth-metric-card,
html[data-admin-theme="gaisma"] .admin-modal-panel,
html[data-admin-theme="gaisma"] .admin-panel {
    border: 1px solid var(--admin-border);
    box-shadow: var(--admin-shadow);
}

html[data-admin-theme="gaisma"] .gallery-view-tabs,
html[data-admin-theme="gaisma"] .booth-event-subtabs,
html[data-admin-theme="gaisma"] .settings-tabs {
    background: #efe4d6;
}

html[data-admin-theme="gaisma"] .admin-btn-primary,
html[data-admin-theme="gaisma"] button.admin-btn-primary {
    background: var(--admin-accent);
    border-color: var(--admin-accent);
    color: #fff;
}

html[data-admin-theme="gaisma"] .admin-auth-wrap {
    background:
        radial-gradient(800px 360px at 10% -10%, rgba(180, 83, 42, 0.16), transparent 55%),
        var(--admin-bg);
}

html[data-admin-theme="gaisma"] .admin-auth-logo {
    color: #b4532a;
}

/* ── Lauks: stone and sage ── */
html[data-admin-theme="lauks"] {
    --admin-header: #1e2a22;
    --admin-header-text: #f3f6f1;
    --admin-bg: #f3f5f1;
    --admin-card: #ffffff;
    --admin-text: #1c2620;
    --admin-muted: #5e6b62;
    --admin-border: #d5ddd6;
    --admin-accent: #2f6a3c;
    --admin-accent-soft: #e3eee4;
    --admin-link: #2d5a38;
    --admin-danger: #b91c1c;
    --admin-warning-bg: #f4f0d8;
    --admin-warning-text: #6b5a12;
    --admin-sidebar-bg: #1e2a22;
    --admin-sidebar-text: #f3f6f1;
    --admin-sidebar-muted: rgba(243, 246, 241, 0.66);
    --admin-sidebar-hover: rgba(255, 255, 255, 0.07);
    --admin-sidebar-active: rgba(61, 107, 69, 0.55);
    --admin-sidebar-border: rgba(255, 255, 255, 0.1);
}

html[data-admin-theme="lauks"] .card-block,
html[data-admin-theme="lauks"] .booth-settings-card,
html[data-admin-theme="lauks"] .booth-metric-card,
html[data-admin-theme="lauks"] .admin-modal-panel,
html[data-admin-theme="lauks"] .admin-panel {
    border: 1px solid var(--admin-border);
    box-shadow: var(--admin-shadow);
}

html[data-admin-theme="lauks"] .gallery-view-tabs,
html[data-admin-theme="lauks"] .booth-event-subtabs,
html[data-admin-theme="lauks"] .settings-tabs {
    background: #e3ebe4;
}

html[data-admin-theme="lauks"] .admin-btn-primary,
html[data-admin-theme="lauks"] button.admin-btn-primary {
    background: var(--admin-accent);
    border-color: var(--admin-accent);
    color: #fff;
}

html[data-admin-theme="lauks"] .admin-auth-wrap {
    background:
        radial-gradient(800px 360px at 90% -10%, rgba(47, 106, 60, 0.14), transparent 55%),
        var(--admin-bg);
}

html[data-admin-theme="lauks"] .admin-auth-logo {
    color: #2f6a3c;
}

/* Rounded thumbs stay clipped. A square frame on the wrapper shows corner lines. */
html[data-admin-theme] .gallery-card,
html[data-admin-theme] .admin-album-card {
    background: transparent;
    border: 0;
    box-shadow: none;
}

html[data-admin-theme] .media-card {
    border: 0;
    box-shadow: none;
}

/* Stats in the gallery bar are figures, not boxed tiles. */
html[data-admin-theme] .dash-toolbar-col-stats .dash-stat {
    background: transparent;
    border: 0;
    box-shadow: none;
}

/* The link chip paints the field. The input inside stays clear. */
html[data-admin-theme] .share-input {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--admin-text);
}

@media (max-width: 720px) {
    .admin-theme-picker {
        margin-bottom: 12px;
    }

    .admin-theme-option {
        grid-template-columns: 32px 1fr;
        padding: 7px;
    }
}
