/* Gecko appearance presets. Every palette includes a corresponding night variant. */
html[data-palette=fern]{--bg:#faf9f4;--panel:#f0f2e9;--card:#fffef9;--ink:#293529;--muted:#687362;--line:#dce2d3;--accent:#45663d;--accent-soft:#e1ead8;--photo-bg:#e4e7da}
html[data-palette=coast]{--bg:#f5f9fc;--panel:#eaf1f6;--card:#fff;--ink:#203c50;--muted:#617989;--line:#d3e0e9;--accent:#276a8f;--accent-soft:#dceef7;--photo-bg:#deebf1}
html[data-palette=clay]{--bg:#fcf6ef;--panel:#f4e9dd;--card:#fffbf6;--ink:#4d342c;--muted:#85695b;--line:#e6d4c6;--accent:#9d5139;--accent-soft:#f3ddd0;--photo-bg:#ecdaca}
html[data-palette=ink]{--bg:#f5f5f5;--panel:#eaeaea;--card:#fff;--ink:#242424;--muted:#676767;--line:#d6d6d6;--accent:#292929;--accent-soft:#dedede;--photo-bg:#dfdfdf}
html[data-palette=orchid]{--bg:#fbf7fc;--panel:#f0e8f3;--card:#fffaff;--ink:#4d3654;--muted:#806b88;--line:#e0d3e5;--accent:#82578f;--accent-soft:#eadbef;--photo-bg:#e9dfed}
html[data-theme=night][data-palette=fern]{--bg:#1c241c;--panel:#161e16;--card:#273027;--ink:#e4eadc;--muted:#a3b298;--line:#394633;--accent:#b0cf90;--accent-soft:#344a2d;--photo-bg:#293927}
html[data-theme=night][data-palette=coast]{--bg:#15232e;--panel:#101b24;--card:#203440;--ink:#e0eff7;--muted:#a0b9c9;--line:#314a5b;--accent:#91cfe9;--accent-soft:#23465b;--photo-bg:#213947}
html[data-theme=night][data-palette=clay]{--bg:#2a201c;--panel:#211914;--card:#372920;--ink:#f3e4d4;--muted:#c3a48c;--line:#4e3b2e;--accent:#e4ae8c;--accent-soft:#583b2d;--photo-bg:#413023}
html[data-theme=night][data-palette=ink]{--bg:#1d1d1d;--panel:#161616;--card:#282828;--ink:#efefef;--muted:#b0b0b0;--line:#414141;--accent:#e0e0e0;--accent-soft:#3b3b3b;--photo-bg:#333}
html[data-theme=night][data-palette=orchid]{--bg:#281d2d;--panel:#201724;--card:#35253c;--ink:#f1e4f6;--muted:#bfa5c9;--line:#503858;--accent:#d8afe8;--accent-soft:#50315e;--photo-bg:#402b47}
html{--ui-font:'Trebuchet MS',Arial,sans-serif;--display-font:'Trebuchet MS',Arial,sans-serif;--photo-radius:10px;--surface-radius:9px;--display-weight:500;--display-tracking:-1.1px}
html[data-font=fern]{--ui-font:'Trebuchet MS',Arial,sans-serif;--display-font:'Trebuchet MS',Arial,sans-serif}
html[data-font=coast]{--ui-font:Arial,'Helvetica Neue',sans-serif;--display-font:Arial,'Helvetica Neue',sans-serif;--display-weight:600;--display-tracking:-1.8px}
html[data-font=clay]{--ui-font:Georgia,'Times New Roman',serif;--display-font:Georgia,'Times New Roman',serif;--display-weight:400;--display-tracking:-1px}
html[data-font=ink]{--ui-font:'Courier New',Courier,monospace;--display-font:'Courier New',Courier,monospace;--display-weight:500;--display-tracking:-1.6px}
html[data-font=orchid]{--ui-font:Verdana,Geneva,sans-serif;--display-font:Verdana,Geneva,sans-serif;--display-weight:400;--display-tracking:-1.6px}
html[data-style=coast]{--photo-radius:5px;--surface-radius:5px}
html[data-style=clay]{--photo-radius:3px;--surface-radius:3px}
html[data-style=ink]{--photo-radius:0px;--surface-radius:0px}
html[data-style=orchid]{--photo-radius:18px;--surface-radius:14px}
body{font-family:var(--ui-font)}.brand span,h1,.dialog-heading h2,.auth-card h2,.empty-state h2,.lightbox-caption h2,.settings-panel h2,.approval-panel h2{font-family:var(--display-font);font-weight:var(--display-weight);letter-spacing:var(--display-tracking)}.brand small,.nav-label,.nav-section{font-family:var(--ui-font)}.bottom-note>span:nth-child(2){font-family:var(--display-font)}.photo-open{border-radius:var(--photo-radius)}.button,.nav-item,.auth-card,.settings-panel,.approval-panel,.admin-tools button{border-radius:var(--surface-radius)}
/* The collections list, rather than the whole page, owns overflow. Native wheel,
   keyboard and touch scrolling are preserved; reduced-motion overrides smoothness. */
.sidebar{height:100dvh;max-height:100dvh;overflow:hidden}.sidebar>*{flex-shrink:0}.sidebar nav.collections-scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scroll-behavior:smooth;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;-webkit-overflow-scrolling:touch;padding-right:4px}.collections-scroll::-webkit-scrollbar{width:6px}.collections-scroll::-webkit-scrollbar-thumb{background:var(--muted);border-radius:9px}.collections-scroll::-webkit-scrollbar-track{background:transparent}.sidebar-bottom{margin-top:0;padding-top:18px}.scroll-hint{font-size:9px;color:var(--muted);text-align:center;padding-top:8px}.sidebar .admin-link{margin-top:12px}.collections-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.style-picker{border:0;padding:0;margin:0 0 22px;min-width:0}.style-picker legend{font-size:11px;font-weight:500;margin-bottom:12px}.style-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.style-option{position:relative;margin:0;padding:8px;border:1px solid var(--line);border-radius:8px;cursor:pointer;min-width:0;background:var(--bg)}.style-option:hover,.style-option:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.style-option input{accent-color:var(--accent);margin:0 0 6px}.style-option strong{display:block;font-size:11px;margin:8px 0 5px}.style-option small{font-size:9px;line-height:1.5;display:block;color:var(--muted)}.style-preview{height:70px;display:flex;align-items:flex-end;gap:3px;padding:8px;position:relative;border-radius:4px;overflow:hidden}.style-preview>span{position:absolute;top:5px;left:8px;font-size:25px;line-height:1}.style-preview i{height:9px;flex:1;background:currentColor;border-radius:2px}.style-preview i:nth-last-child(2){opacity:.5}.style-preview i:last-child{opacity:.2}.preview-fern{background:#e1ead8;color:#45663d;font-family:'Trebuchet MS',sans-serif}.preview-coast{background:#dceef7;color:#276a8f;font-family:Arial,sans-serif}.preview-clay{background:#f3ddd0;color:#9d5139;font-family:Georgia,serif}.preview-ink{background:#dedede;color:#292929;font-family:'Courier New',monospace}.preview-orchid{background:#eadbef;color:#82578f;font-family:Verdana,sans-serif}.appearance-overrides{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-panel{grid-template-columns:minmax(170px,.65fr) minmax(0,2fr)}
@media(max-width:1100px){.settings-panel{grid-template-columns:1fr}.style-options{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:500px){.style-options{grid-template-columns:repeat(2,minmax(0,1fr))}.appearance-overrides{grid-template-columns:1fr;gap:0}}@media(max-height:740px){.sidebar .small-note{display:none}.sidebar .sidebar-bottom{padding-top:5px}.sidebar .sidebar-line{margin-top:16px;margin-bottom:16px}}@media(max-height:450px){.sidebar{padding-top:10px}.brand small,.sidebar>.nav-label{display:none}.account-row{min-height:52px;margin-top:4px;padding-top:5px;padding-bottom:5px}.sidebar .sidebar-line{margin:10px}.sidebar .admin-link{margin-top:4px}.sidebar .night-toggle{padding-top:5px;padding-bottom:5px}}
@media(prefers-reduced-motion:reduce){.sidebar nav.collections-scroll{scroll-behavior:auto}}
.style-picker .style-option input[type=radio]{display:inline-block;width:16px;height:16px;padding:0;margin:0 0 6px;border:initial;background:initial;vertical-align:middle}
/* Administrator multi-photo selection */
.photo-card[data-selectable="true"] { position: relative; }
.photo-card.selected { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 8px; }
.photo-select { position: absolute; z-index: 3; top: .75rem; left: .75rem; cursor: pointer; }
.photo-select input { position: absolute; opacity: 0; pointer-events: none; }
.photo-select span { display: grid; place-items: center; width: 2rem; height: 2rem; border: 2px solid #fff; border-radius: 50%; background: #20251f99; color: transparent; box-shadow: 0 2px 8px #0005; }
.photo-select input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 2px; }
.photo-select input:checked + span { color: #fff; background: var(--accent); }
.bulk-actions { display: grid; grid-template-columns: auto minmax(6rem, 1fr) auto auto; align-items: center; column-gap: 1rem; row-gap: .8rem; margin: 0 0 1.5rem; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: var(--surface-radius); background: var(--card); }
.bulk-actions label { display: inline-flex; align-items: center; gap: .65rem; cursor: pointer; margin: 0; white-space: nowrap; }
.bulk-actions label > input[type="checkbox"] { display: inline-block; width: 18px; height: 18px; margin: 0; padding: 0; flex: 0 0 18px; accent-color: var(--accent); }
.bulk-actions strong { font-size: 12px; color: var(--muted); font-weight: 500; }
.bulk-actions .button { min-width: 7.5rem; min-height: 42px; padding: .65rem 1rem; }
.admin-tools button:disabled{cursor:not-allowed;opacity:.5}.admin-tools button:disabled:hover{border-color:var(--line);background:var(--card)}.confirm-delete{display:flex;align-items:center;gap:.65rem;padding:.85rem 0;color:var(--danger)}label.confirm-delete>input[type=checkbox]{display:inline-block;flex:0 0 18px;width:18px;height:18px;margin:0;padding:0;accent-color:var(--danger)}
@media(max-width:680px) {
  .bulk-actions { grid-template-columns: minmax(0, 1fr) auto; padding: 1rem; column-gap: 1.25rem; row-gap: 1rem; }
  .bulk-actions label { justify-self: start; }
  .bulk-actions strong { justify-self: end; text-align: right; }
  .bulk-actions .button { width: 100%; min-width: 0; }
}
