/* VEYNOA production stylesheet v1.3.35 — generated from modular sources. */

/* ===== tokens.css ===== */
:root{
 --surface-primary:#f6f6f7;--surface-secondary:#fbfbfc;--surface-elevated:#ffffff;--surface-soft:#eeeef0;--surface-overlay:rgba(12,12,14,.55);
 --text-primary:#141416;--text-secondary:#5b5b62;--text-muted:#8b8b93;--border-subtle:#e5e5e8;--border-strong:#cbcbd1;
 --action-primary:#141416;--action-primary-hover:#000;--action-primary-contrast:#fff;--action-danger:#b3352c;--action-danger-contrast:#fff;--state-success:#2f7650;--state-warning:#9a6118;--state-error:#b3352c;--focus-ring:#3c6fb0;
 --mark-green:#4f8a60;--mark-orange:#c26b2b;--mark-red:#b34b43;--viewer-bg:#09090a;--viewer-surface:#151517;--viewer-text:#f4f4f5;--viewer-muted:#a1a1a8;
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;
 --radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:26px;--radius-pill:999px;
 --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-serif:"Iowan Old Style","Palatino Linotype","URW Palladio L",Georgia,serif;
 --shadow-soft:0 10px 35px rgba(16,16,20,.05);--shadow-float:0 18px 60px rgba(16,16,20,.12);--shadow-modal:0 30px 100px rgba(0,0,0,.3);--shadow-ink:#141416;
 --motion-fast:140ms;--motion-normal:220ms;--ease:cubic-bezier(.2,.7,.2,1);--z-nav:40;--z-menu:50;--z-viewer:80;--z-modal:95;--z-toast:120;
}

/* ===== base.css ===== */
*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}html,body{margin:0;min-height:100%;max-width:100%;overflow-x:hidden;background:var(--surface-primary);color:var(--text-primary);font-family:var(--font-sans);font-size:16px}body{min-height:100vh;min-height:100dvh}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin-top:0}.hidden,.feature-off{display:none!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:fixed;top:8px;left:8px;z-index:200;transform:translateY(-160%);background:var(--action-primary);color:var(--action-primary-contrast);padding:10px 14px;border-radius:10px}.skip-link:focus{transform:none}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.icon{width:18px;height:18px;display:block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.text-button{border:0;background:none;padding:0;color:inherit}.btn{min-width:0;max-width:100%;min-height:44px;border:1px solid var(--border-subtle);background:var(--surface-elevated);border-radius:var(--radius-md);padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.2;text-align:center;white-space:normal;box-shadow:0 1px 0 rgba(0,0,0,.02);transition:background var(--motion-fast),border var(--motion-fast),transform var(--motion-fast)}.btn:hover{background:var(--surface-secondary);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--action-primary);color:var(--action-primary-contrast);border-color:var(--action-primary)}.btn-primary:hover{background:var(--action-primary-hover)}.btn-danger{color:var(--action-danger-contrast);border-color:var(--action-danger);background:var(--action-danger)}.btn-danger-soft{color:var(--action-danger);border-color:color-mix(in srgb,var(--action-danger) 30%,var(--border-subtle));background:transparent}.btn-icon{width:44px;padding:0}.btn-ghost{background:transparent}.brand-title{font-family:var(--font-serif);font-size:25px;letter-spacing:.08em}.brand-sub{font-size:10px;letter-spacing:.22em;color:var(--text-muted);margin-top:4px}.eyebrow,.gallery-kicker{font-size:10px;line-height:1.2;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px}.muted,.small{color:var(--text-muted)}.notice{padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-elevated)}.notice.success{color:var(--state-success);border-color:color-mix(in srgb,var(--state-success) 30%,var(--border-subtle))}.notice.error,.error{color:var(--state-error);border-color:color-mix(in srgb,var(--state-error) 34%,var(--border-subtle));background:color-mix(in srgb,var(--state-error) 5%,var(--surface-elevated))}input,select,textarea{width:100%;min-width:0;max-width:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-elevated);padding:11px 13px;min-height:44px;line-height:1.25}textarea{min-height:120px;resize:vertical}label{display:grid;gap:7px;color:var(--text-secondary);font-size:14px}small{color:var(--text-muted)}

/* ===== layout.css ===== */
.gallery-page{background:var(--surface-primary)}.gallery-shell{width:min(1680px,100%);margin:0 auto;padding:18px clamp(18px,4vw,72px) 72px}.gallery-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:44px 0 28px}.gallery-heading{min-width:0}.gallery-heading h1{font:400 clamp(44px,6vw,84px)/.98 var(--font-serif);letter-spacing:-.045em;margin:0;max-width:1050px;overflow-wrap:anywhere}.gallery-meta{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:14px;color:var(--text-muted);font-size:12px}.gallery-global-actions,.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.icon-text-button{min-height:44px;border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;padding:8px 10px;color:var(--text-secondary);border-radius:var(--radius-md)}.icon-text-button:hover{background:var(--surface-soft);color:var(--text-primary)}.menu-wrap{position:relative}.pop-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:6px;box-shadow:var(--shadow-float);z-index:var(--z-menu);display:none}.pop-menu.open{display:block}.pop-menu button,.pop-menu a,.menu-logout button{width:100%;min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:14px;border:0;background:transparent;border-radius:9px;padding:10px 11px;color:var(--text-secondary);text-align:left}.pop-menu button:hover,.pop-menu a:hover,.menu-logout button:hover{background:var(--surface-secondary);color:var(--text-primary)}.pop-menu .sep{height:1px;background:var(--border-subtle);margin:5px 4px}.menu-logout{margin:0;border-top:1px solid var(--border-subtle);padding-top:5px}.gallery-footer{padding-top:24px;margin-top:18px;border-top:1px solid var(--border-subtle);display:flex;justify-content:space-between;gap:18px;color:var(--text-muted);font-size:12px}.gallery-footer>div{display:flex;gap:18px;flex-wrap:wrap}.choice-modal{position:fixed;inset:0;background:rgba(11,11,11,.46);backdrop-filter:blur(8px);z-index:var(--z-modal);display:none;place-items:center;padding:20px}.choice-modal.open{display:grid}.choice-modal .choice-card{width:min(440px,94vw);background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-modal)}.choice-modal .choice-card h3{font:400 34px/1 var(--font-serif);margin:0 0 9px}.choice-modal .choice-card p{color:var(--text-secondary);margin-bottom:18px}.choice-actions{display:grid;gap:8px}.toast{position:fixed;left:50%;bottom:max(26px,env(safe-area-inset-bottom));transform:translateX(-50%) translateY(18px);background:#171512;color:#fff;padding:11px 15px;border-radius:11px;box-shadow:var(--shadow-float);opacity:0;pointer-events:none;transition:var(--motion-normal) var(--ease);z-index:var(--z-toast);max-width:min(90vw,560px);text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.mobile-navigation-shell,.mobile-bottom-nav,.mobile-more-menu,.mobile-viewbar,.mobile-sheet-backdrop{display:none}

.gallery-commandbar{position:sticky;top:10px;z-index:var(--z-nav);display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:7px 8px;margin:0 0 2px;background:color-mix(in srgb,var(--surface-elevated) 88%,transparent);border:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent);border-radius:18px;box-shadow:0 12px 34px color-mix(in srgb,var(--shadow-ink) 7%,transparent);backdrop-filter:blur(18px) saturate(1.08);-webkit-backdrop-filter:blur(18px) saturate(1.08)}
.commandbar-left,.commandbar-right{display:flex;align-items:center;gap:6px;min-width:0}.commandbar-right{margin-left:auto}.filter-control{display:flex;grid-template-columns:none;align-items:center;gap:7px;min-height:44px;padding:0 6px 0 10px;border-radius:12px;color:var(--text-secondary);font-size:13px}.filter-control:hover{background:var(--surface-soft);color:var(--text-primary)}.filter-control select{width:auto;min-width:132px;max-width:210px;min-height:36px;padding:6px 30px 6px 6px;border:0;background:transparent;color:var(--text-primary);box-shadow:none}.filter-control:focus-within{outline:3px solid var(--focus-ring);outline-offset:2px}.filter-control select:focus{outline:0}.command-button,.command-icon{min-height:44px;border:0;background:transparent;color:var(--text-secondary);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 10px;white-space:nowrap}.command-button:hover,.command-icon:hover{background:var(--surface-soft);color:var(--text-primary)}.command-button strong{font-size:11px;font-weight:700;color:var(--text-primary)}.command-muted{color:var(--text-muted);font-size:11px}.command-icon{width:44px;padding:0;position:relative}.grid-badge{position:absolute;right:3px;top:3px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--action-primary);color:var(--action-primary-contrast);display:grid;place-items:center;font-size:9px;font-weight:700;border:2px solid var(--surface-elevated)}.grid-popover{position:absolute;top:calc(100% + 8px);left:0;display:none;grid-template-columns:repeat(4,44px);gap:6px;padding:8px;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:14px;box-shadow:var(--shadow-float);z-index:var(--z-menu)}.grid-popover.open{display:grid}.grid-popover button{width:44px;height:44px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-secondary)}.grid-popover button:hover{background:var(--surface-soft);color:var(--text-primary)}.grid-popover button.active{background:var(--action-primary);color:var(--action-primary-contrast);border-color:var(--action-primary)}.command-danger{color:var(--action-danger);background:color-mix(in srgb,var(--action-danger) 8%,transparent)}.command-danger:hover{color:var(--action-danger);background:color-mix(in srgb,var(--action-danger) 13%,transparent)}.contextual-action[hidden]{display:none!important}.mobile-delete-selected{color:var(--action-danger)!important}

.mobile-view-button{font:inherit}.mobile-filter-popover{position:absolute;top:calc(100% + 9px);left:0;width:min(310px,calc(100vw - 32px));display:none;padding:8px;background:color-mix(in srgb,var(--surface-elevated) 97%,transparent);border:1px solid var(--border-subtle);border-radius:18px;box-shadow:0 22px 60px color-mix(in srgb,var(--shadow-ink) 14%,transparent);z-index:var(--z-menu);max-height:min(70dvh,520px);overflow:auto;overscroll-behavior:contain;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.mobile-filter-popover.open{display:block}.mobile-filter-popover-head{padding:7px 9px 10px;border-bottom:1px solid var(--border-subtle);margin-bottom:5px}.mobile-filter-popover-head strong{display:block;font:500 18px/1.15 var(--font-sans);color:var(--text-primary)}.mobile-filter-popover-head small{display:block;margin-top:4px;font-size:10px;color:var(--text-muted)}.mobile-filter-group{padding:3px 0}.mobile-filter-group+.mobile-filter-group{border-top:1px solid var(--border-subtle);margin-top:4px;padding-top:8px}.mobile-filter-group-label{display:block;padding:4px 10px 5px;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.mobile-filter-popover button{width:100%;min-height:46px;border:0;background:transparent;color:var(--text-secondary);border-radius:11px;padding:8px 10px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:8px}.mobile-filter-popover button:hover,.mobile-filter-popover button.active{background:var(--surface-soft);color:var(--text-primary)}.mobile-filter-popover button.active{box-shadow:inset 0 0 0 1px var(--border-subtle)}.mobile-filter-item-main{min-width:0;display:flex;align-items:center;gap:9px;font-size:12px;font-weight:560}.mobile-filter-item-main .icon{width:17px;height:17px;color:var(--text-muted)}.mobile-filter-item-count{min-width:24px;height:22px;padding:0 6px;border-radius:999px;background:var(--surface-secondary);display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--text-muted)}.mobile-filter-check{font-size:12px;font-weight:800;color:var(--action-primary);opacity:0;transform:scale(.7)}.mobile-filter-popover button.active .mobile-filter-check{opacity:1;transform:scale(1)}.filter-swatch{width:12px;height:12px;border-radius:999px;border:1px solid var(--border-strong);flex:0 0 auto}.filter-swatch-final{background:var(--text-primary)}.filter-swatch-green{background:var(--mark-green)}.filter-swatch-orange{background:var(--mark-orange)}.filter-swatch-red{background:var(--mark-red)}.filter-swatch-empty{background:transparent}.mobile-filter-footer{border-top:1px solid var(--border-subtle);margin-top:5px;padding-top:5px}.mobile-filter-clear{color:var(--action-danger)!important;grid-template-columns:1fr!important}.mobile-selection-actions[hidden]{display:none!important}.gallery-admin-bridge{width:min(1680px,calc(100% - 36px));margin:12px auto 0;padding:9px 12px 9px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:14px;box-shadow:0 8px 28px color-mix(in srgb,var(--shadow-ink) 5%,transparent)}.gallery-admin-bridge>span{display:flex;align-items:baseline;gap:8px;min-width:0}.gallery-admin-bridge strong{font-size:11px;color:var(--text-primary)}.gallery-admin-bridge small{font-size:10px;color:var(--text-muted)}.gallery-admin-bridge>div{display:flex;align-items:center;gap:6px;flex:0 0 auto}.gallery-admin-bridge .btn{min-height:44px;padding:7px 11px;font-size:10px}

/* v1.2.9 — customer preview + reversible action feedback. */
.customer-preview-bar{position:sticky;top:8px;z-index:calc(var(--z-nav) + 1);width:min(760px,calc(100% - 24px));margin:8px auto 0;padding:9px 10px 9px 13px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--border-subtle);border-radius:14px;background:color-mix(in srgb,var(--surface-elevated) 94%,transparent);box-shadow:var(--shadow-soft);backdrop-filter:blur(12px)}.customer-preview-bar>span{display:grid;gap:1px;min-width:0}.customer-preview-bar strong{font-size:12px}.customer-preview-bar small{font-size:10px;color:var(--text-muted);line-height:1.35}.customer-preview-bar a{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;padding:7px 10px;border-radius:10px;background:var(--surface-secondary);font-size:11px;color:var(--text-primary)}
.toast{display:flex;align-items:center;justify-content:center;gap:10px;text-align:left;pointer-events:none}.toast.show{pointer-events:auto}.toast #toastUndo{min-height:44px;border:0;border-left:1px solid rgba(255,255,255,.22);background:transparent;color:#fff;padding:3px 2px 3px 10px;font-weight:700}.toast #toastUndo[hidden]{display:none}.toast #toastUndo:focus-visible{outline-color:#fff}
.preview-return-row{display:flex!important;text-decoration:none}
@media(max-width:600px){.customer-preview-bar{top:6px;align-items:flex-start}.customer-preview-bar small{display:none}.customer-preview-bar a{min-height:44px}.toast{max-width:calc(100vw - 24px)}}

/* ===== gallery.css ===== */
.gallery-grid.dynamic-grid{display:grid;grid-template-columns:repeat(var(--grid-cols,3),minmax(0,1fr));gap:10px;min-height:220px}.photo-card{position:relative;aspect-ratio:1;overflow:hidden;border-radius:12px;background:var(--surface-secondary);border:0;cursor:zoom-in;isolation:isolate}.photo-card>img{width:100%;height:100%;object-fit:cover;transition:transform 360ms var(--ease)}.photo-card:hover>img{transform:scale(1.012)}.photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 58%,rgba(0,0,0,.16));opacity:0;transition:opacity var(--motion-fast);pointer-events:none}.photo-card:hover::after,.photo-card:focus-within::after{opacity:1}.photo-badges{position:absolute;left:8px;bottom:8px;z-index:2;display:flex;align-items:center;gap:5px}.photo-state{width:25px;height:25px;display:grid;place-items:center;background:rgba(18,18,16,.72);color:#fff;border-radius:999px;backdrop-filter:blur(8px)}.photo-state .icon{width:13px;height:13px}.mark-badge{min-height:25px;display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:rgba(18,18,16,.72);color:#fff;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.mark-green{box-shadow:inset 0 0 0 1px var(--mark-green)}.mark-orange{box-shadow:inset 0 0 0 1px var(--mark-orange)}.mark-red{box-shadow:inset 0 0 0 1px var(--mark-red)}.card-action-row{position:absolute;right:7px;top:7px;z-index:3;display:flex;gap:4px;opacity:0;transform:translateY(-2px);transition:opacity var(--motion-fast),transform var(--motion-fast)}.photo-card:hover .card-action-row,.photo-card:focus-within .card-action-row{opacity:1;transform:none}.card-mini{width:44px;height:44px;border:0;border-radius:12px;background:rgba(20,20,18,.72);color:#fff;display:grid;place-items:center;backdrop-filter:blur(10px)}.card-mini.active{background:rgba(255,255,255,.92);color:#1d1b17}.card-mini .icon{width:18px;height:18px}.gallery-load-state{min-height:54px;display:grid;place-items:center;color:var(--text-muted);font-size:12px;padding:14px}.gallery-load-state.empty{min-height:180px;align-content:center;gap:5px;text-align:center}.gallery-load-state.empty strong{font:400 28px/1.1 var(--font-serif);color:var(--text-primary)}.gallery-load-state.empty span{color:var(--text-secondary)}

/* v1.2.8 — customer selection hand-off appears only inside the selection context. */
.selection-finish-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--action-primary) 18%,var(--border-subtle));border-radius:14px;background:color-mix(in srgb,var(--surface-elevated) 78%,transparent);box-shadow:var(--shadow-soft)}.selection-finish-bar>div{display:grid;gap:2px;min-width:0}.selection-finish-bar strong{font-size:13px}.selection-finish-bar small{font-size:11px;color:var(--text-muted)}.selection-finish-bar .btn{flex:0 0 auto}.selection-finish-bar .btn:disabled{opacity:.72;cursor:default}

/* v1.2.8 — markings stay visually quiet but unmistakable in the grid. */
.mark-badge::before{content:"";width:6px;height:6px;border-radius:50%;margin-right:5px;background:currentColor;opacity:.9}.mark-badge.mark-green::before{background:var(--mark-green)}.mark-badge.mark-orange::before{background:var(--mark-orange)}.mark-badge.mark-red::before{background:var(--mark-red)}.mark-badge.mark-final::before{background:#e8e4df}

/* v1.3.1 — contextual selection actions stay next to the photos instead of in the global toolbar. */
.gallery-context-actions{position:fixed;left:50%;bottom:22px;z-index:var(--z-menu);width:min(760px,calc(100vw - 40px));transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px 10px 14px;border:1px solid color-mix(in srgb,var(--action-primary) 15%,var(--border-subtle));border-radius:16px;background:color-mix(in srgb,var(--surface-elevated) 94%,transparent);box-shadow:var(--shadow-float);backdrop-filter:blur(14px)}
.gallery-context-actions[hidden]{display:none!important}.gallery-context-copy{display:grid;gap:2px;min-width:0}.gallery-context-copy strong{font-size:13px}.gallery-context-copy small{font-size:11px;color:var(--text-muted)}.gallery-context-buttons{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.gallery-context-buttons .btn{min-height:40px;padding:8px 11px}.gallery-context-buttons .icon{width:15px;height:15px}
@media(max-width:700px){.gallery-context-actions{display:none!important}}




/* v1.3.15 — photographer photos and approved guest contributions are primary sibling collections. */
/* v1.3.17 — collection switch stays obvious without reading like a second navigation bar. */
.gallery-collection-tabs{display:inline-flex;align-items:center;gap:2px;margin:0 0 12px;padding:3px;border:1px solid var(--border-subtle);border-radius:13px;background:color-mix(in srgb,var(--surface-elevated) 92%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--shadow-ink) 3%,transparent)}
.gallery-collection-tabs button{min-height:44px;border:0;border-radius:10px;padding:0 12px;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;cursor:pointer}
.gallery-collection-tabs button.active{background:var(--surface-soft);color:var(--text-primary)}
.gallery-collection-tabs button strong{min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:color-mix(in srgb,var(--text-primary) 6%,transparent);display:grid;place-items:center;font-size:9px;font-weight:700;color:inherit}
@media(max-width:760px){.gallery-collection-tabs{display:inline-flex;width:auto;max-width:100%;margin:0 0 8px}.gallery-collection-tabs button{justify-content:center;min-width:0;padding-inline:11px}}

/* v1.3.20 — compact command bar follows the proven Foto Galerie 2(9) interaction contract. */
.gallery-commandbar{
  transition:min-height var(--motion-fast) var(--ease),padding var(--motion-fast) var(--ease),gap var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease);
}
.gallery-commandbar .filter-control,.gallery-commandbar .command-button,.gallery-commandbar .command-icon{
  transition:width var(--motion-fast) var(--ease),padding var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease),border-radius var(--motion-fast) var(--ease);
}
.gallery-commandbar.is-scroll-compact{min-height:52px;padding:4px 6px;gap:7px;flex-wrap:nowrap!important;align-items:center;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.gallery-commandbar.is-scroll-compact::-webkit-scrollbar{height:0}
.gallery-commandbar.is-scroll-compact .commandbar-left,.gallery-commandbar.is-scroll-compact .commandbar-right{display:flex;flex-wrap:nowrap!important;align-items:center;gap:6px;white-space:nowrap;flex:0 0 auto}
.gallery-commandbar.is-scroll-compact .commandbar-right{margin-left:auto}
.gallery-commandbar.is-scroll-compact .filter-control{width:44px;height:44px;min-height:44px;padding:0;justify-content:center}
.gallery-commandbar.is-scroll-compact .filter-control select{display:none}
.gallery-commandbar.is-scroll-compact .command-button{width:44px;height:44px;padding:0;border-radius:999px}
.gallery-commandbar.is-scroll-compact .command-button>span,
.gallery-commandbar.is-scroll-compact .command-button>strong{display:none!important}
.gallery-commandbar.is-scroll-compact .command-icon{border-radius:999px}

/* v1.3.29 — guest photos expose only their dedicated moderation, filter and comment tools. */
.guest-filter-bar{display:flex;align-items:center;gap:5px;margin:0 0 12px;padding:6px 0;min-height:44px}
.guest-filter-bar>span{margin-right:4px;font-size:11px;font-weight:650;color:var(--text-secondary)}
.guest-filter-bar button{min-height:40px;border:1px solid var(--border-subtle);border-radius:999px;background:transparent;padding:7px 11px;display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12px}
.guest-filter-bar button.active{background:var(--surface-elevated);border-color:var(--border-strong);color:var(--text-primary);box-shadow:0 3px 12px color-mix(in srgb,var(--shadow-ink) 4%,transparent)}
.guest-filter-bar button strong{font-size:9px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--surface-soft);display:grid;place-items:center}
.guest-customer-moderation{margin:0 0 12px;border:1px solid color-mix(in srgb,var(--state-success) 28%,var(--border-subtle));border-radius:15px;background:color-mix(in srgb,var(--state-success) 3%,var(--surface-elevated));overflow:hidden}
.guest-moderation-summary{width:100%;min-height:62px;border:0;background:transparent;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;color:var(--text-primary)}
.guest-moderation-summary>span:first-child{display:grid;gap:3px;min-width:0}.guest-moderation-summary strong{font-size:13px}.guest-moderation-summary small{font-size:10px;color:var(--text-muted)}
.guest-moderation-summary>span:last-child{flex:0 0 auto;font-size:11px;font-weight:700}
.guest-moderation-panel{padding:0 12px 12px;border-top:1px solid var(--border-subtle)}
.guest-moderation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding-top:12px}
.guest-review-card{display:grid;grid-template-rows:auto auto 1fr;gap:8px;min-width:0;padding:8px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-elevated)}
.guest-review-card>img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px;background:var(--surface-secondary)}
.guest-review-copy{display:grid;gap:2px;min-width:0}.guest-review-copy strong,.guest-review-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guest-review-copy strong{font-size:11px}.guest-review-copy small{font-size:9px;color:var(--text-muted)}
.guest-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;align-self:end}.guest-review-actions .btn{min-height:40px;padding:7px 8px;font-size:10px}
@media(max-width:920px){.guest-moderation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.guest-moderation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guest-moderation-summary{align-items:flex-start}.guest-moderation-summary>span:last-child{padding-top:2px}.guest-filter-bar{overflow-x:auto;scrollbar-width:none}.guest-filter-bar::-webkit-scrollbar{display:none}}
@media(max-width:390px){.guest-moderation-grid{grid-template-columns:1fr 1fr}.guest-review-actions{grid-template-columns:1fr}}


/* v1.3.31 — while viewing guest photos, only the guest-name filter remains visible. */
body.guest-collection-active .filter-control{display:none!important}
body.guest-collection-active .mobile-filter-menu .photo-filter-group,body.guest-collection-active .mobile-filter-menu .mobile-filter-footer,body.guest-collection-active .mobile-filter-count{display:none!important}
body:not(.guest-collection-active) .mobile-filter-menu .guest-name-filter-group{display:none!important}
body.guest-collection-active .mobile-filter-menu:not(.has-guest-name-filters){display:none!important}
body:not(.guest-collection-active) .mobile-filter-menu:not(.has-photo-filters){display:none!important}

/* v1.3.32 — stable, restrained image placeholders while lazy thumbnails decode. */
.photo-card.is-loading{background:linear-gradient(135deg,var(--surface-secondary),color-mix(in srgb,var(--surface-soft) 66%,var(--surface-secondary)))}
.photo-card>img{opacity:1;transition:opacity var(--motion-normal) var(--ease),transform 360ms var(--ease)}
.photo-card.is-loading>img{opacity:0}
.photo-card.is-loaded>img{opacity:1}
.photo-card.is-load-error{background:var(--surface-soft)}

/* ===== viewer.css ===== */
.viewer{position:fixed;inset:0;z-index:var(--z-viewer);background:var(--viewer-bg);color:var(--viewer-text);display:none;grid-template-columns:minmax(0,1fr) 330px;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;height:100dvh}.viewer.open{display:grid}.viewer.viewer-panel-hidden.open{grid-template-columns:minmax(0,1fr)}.viewer.viewer-panel-hidden .viewer-panel{display:none}.viewer.viewer-panel-hidden .viewer-top,.viewer.viewer-panel-hidden .viewer-strip{grid-column:1}.viewer-top{grid-column:1/-1;padding:12px 16px;display:flex;justify-content:space-between;gap:18px;align-items:center;background:rgba(8,8,8,.82);border-bottom:1px solid rgba(255,255,255,.07);min-height:64px}.viewer-title{display:flex;align-items:baseline;gap:14px;min-width:0}.viewer-title h2{font:400 17px/1 var(--font-serif);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-title>span{font-size:11px;color:var(--viewer-muted);white-space:nowrap}.viewer-top-actions{display:flex;gap:6px}.viewer-toolbar-btn,.viewer-close{border:0;background:transparent;color:#d7d0c7;display:inline-flex;gap:7px;align-items:center;justify-content:center;padding:8px 10px;border-radius:10px;min-height:44px}.viewer-toolbar-btn:hover,.viewer-close:hover{background:rgba(255,255,255,.07)}.viewer-close{width:44px;padding:0}.viewer-stage{position:relative;min-width:0;min-height:0;display:grid;place-items:center;padding:14px 58px;overflow:hidden}.viewer-canvas{position:relative;width:100%;height:100%;min-height:0;display:grid;place-items:center;overflow:hidden;touch-action:none}.viewer-canvas img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;transform-origin:center;user-select:none}.viewer-canvas img[data-zoom-state="fit"]{transform:none!important;place-self:center!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:50% 50%!important}.viewer-canvas img.zooming{will-change:transform;cursor:grab}.viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:58px;border:0;border-radius:12px;background:rgba(255,255,255,.045);color:#fff;display:grid;place-items:center}.viewer-arrow:hover{background:rgba(255,255,255,.09)}.viewer-arrow.prev{left:9px}.viewer-arrow.next{right:9px}.zoom-controls{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;align-items:center;gap:2px;background:rgba(10,10,10,.74);border:1px solid rgba(255,255,255,.09);border-radius:999px;padding:4px;backdrop-filter:blur(10px)}.zoom-controls button{width:44px;height:44px;border:0;background:transparent;color:#fff;border-radius:50%;display:grid;place-items:center}.zoom-controls span{min-width:52px;text-align:center;color:#c8c4be;font-size:11px}.viewer-panel{grid-column:2;grid-row:2/4;background:var(--viewer-surface);border-left:1px solid rgba(255,255,255,.08);padding:16px;overflow:auto}.viewer-panel section{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.08)}.panel-section-title{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--viewer-muted);margin-bottom:9px}.viewer-comment-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.viewer-comment-input input{background:#222321;color:#fff;border-color:#343532}.viewer-comment-input button{min-width:76px;border:0;border-radius:11px;background:#eee;color:#171717;padding:0 12px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px}.toggle{width:56px;height:44px;min-height:44px;border-radius:14px;border:0;background:transparent;position:relative}.toggle::before{content:"";position:absolute;width:46px;height:25px;left:5px;top:9.5px;border-radius:999px;background:#444642}.toggle::after{content:"";position:absolute;width:21px;height:21px;left:7px;top:11.5px;border-radius:50%;background:#fff;transition:transform var(--motion-fast)}.toggle[aria-pressed="true"]::before{background:#6e9b7c}.toggle[aria-pressed="true"]::after{transform:translateX(21px)}.mark-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mark-swatch{border:1px solid #343532;background:#222321;color:#ddd;border-radius:10px;padding:9px 10px;text-align:left;min-height:44px}.mark-swatch.selected{border-color:#e8e4df;color:#fff;background:#2d2e2b}.mark-dot{width:8px;height:8px;display:inline-block;border-radius:50%;margin-right:6px}.mark-dot.green{background:var(--mark-green)}.mark-dot.orange{background:var(--mark-orange)}.mark-dot.red{background:var(--mark-red)}.panel-action{width:100%;min-height:44px;border:0;background:transparent;color:#e4dfd8;display:flex;align-items:center;gap:9px;text-align:left;border-radius:9px;padding:8px 6px}.panel-action:hover{background:rgba(255,255,255,.05)}.panel-action>span{margin-left:auto;color:var(--viewer-muted)}.viewer-delete{color:#ff9f96}.info-grid{display:grid;gap:9px}.info-grid>div{display:grid;grid-template-columns:94px minmax(0,1fr);gap:8px}.info-grid span{color:#8e8e88;font-size:11px}.info-grid strong{font-weight:500;font-size:11px;overflow-wrap:anywhere}.viewer-strip{grid-column:1;grid-row:3;padding:6px 20px 12px}.thumb-strip{display:flex;justify-content:center;gap:7px}.thumb{position:relative;width:70px;height:48px;border:1px solid transparent;border-radius:8px;padding:0;overflow:hidden;background:#222}.thumb.active{border-color:#fff}.thumb img{width:100%;height:100%;object-fit:cover}.thumb .count{position:absolute;left:4px;bottom:3px;font-size:8px;color:#fff;background:rgba(0,0,0,.5);padding:1px 3px;border-radius:3px}.thumb .check{position:absolute;right:4px;top:3px;width:12px;height:12px;border-radius:50%;background:#fff}.viewer-mobile-actions{display:none}

/* Viewer owns zoom gestures while open; the page itself never scales. */
.viewer.open{overscroll-behavior:none;touch-action:pan-y;-ms-touch-action:pan-y}
.viewer-stage{overscroll-behavior:none}
.viewer-canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:zoom-in}
.viewer-canvas.is-zoomed{cursor:grab}
.viewer-canvas.is-zoomed:active{cursor:grabbing}
html.viewer-zoom-locked,html.viewer-zoom-locked body{overscroll-behavior:none}

.viewer.open,.viewer.open *{-webkit-tap-highlight-color:transparent}.viewer.open .viewer-panel,.viewer.open .viewer-top,.viewer.open .viewer-mobile-actions{touch-action:pan-y}.viewer.open .viewer-stage,.viewer.open .viewer-canvas{touch-action:none!important}


/* v1.2.8 — one viewer control surface, inspired by the proven reference logic. */
.viewer-panel-head{display:none}
.viewer-panel-head .icon{width:18px;height:18px}
.viewer-panel-grip{display:none}
.viewer-mobile-actions button.active,
.viewer-mobile-actions button[aria-pressed="true"]{color:#fff}
.viewer-mobile-actions button.active .icon,
.viewer-mobile-actions button[aria-pressed="true"] .icon{stroke:currentColor}

/* v1.3.29 — one tap on the photo toggles an image-only viewer. */
.viewer.viewer-photo-only.open{grid-template-columns:1fr!important;grid-template-rows:1fr!important}
.viewer.viewer-photo-only .viewer-top,.viewer.viewer-photo-only .viewer-arrow,.viewer.viewer-photo-only .zoom-controls,.viewer.viewer-photo-only .viewer-panel,.viewer.viewer-photo-only .viewer-strip,.viewer.viewer-photo-only .viewer-mobile-actions{display:none!important}
.viewer.viewer-photo-only .viewer-stage{grid-column:1!important;grid-row:1!important;padding:0!important;inset:auto!important}
.viewer.viewer-photo-only .viewer-canvas{width:100%!important;height:100%!important;min-height:100%!important}

/* v1.3.31 — guest attribution stays inside the viewer and deliberately reads as quiet metadata. */
.viewer-uploader-row span{color:#777872}.viewer-uploader-row strong{color:#b8b5ae;font-weight:400}

/* ===== compare.css ===== */
.compare-page{position:fixed;inset:0;z-index:75;background:var(--surface-primary);overflow:auto;padding:20px clamp(18px,3vw,44px) 40px;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.compare-top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;margin-bottom:12px}.compare-head{display:flex;align-items:baseline;gap:12px;min-width:0}.compare-head .gallery-kicker{margin:0}.compare-head h2{font:400 clamp(34px,4vw,54px)/.98 var(--font-serif);letter-spacing:-.035em;margin:0}.compare-top-actions{display:flex;align-items:center;gap:7px}.compare-settings-toggle,.compare-close-icon,.compare-clear{min-height:44px;border:1px solid var(--border-subtle);background:var(--surface-elevated);color:var(--text-secondary);border-radius:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px}.compare-settings-toggle:hover,.compare-settings-toggle.active,.compare-close-icon:hover{background:var(--surface-soft);color:var(--text-primary);border-color:var(--border-strong)}.compare-settings-toggle .icon{width:17px;height:17px}.compare-close-icon{width:44px;padding:0}.compare-close-icon .icon{width:18px;height:18px}.compare-controls{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:18px;padding:12px;margin:0 0 12px;box-shadow:var(--shadow-soft)}.compare-controls[hidden]{display:none}.compare-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);gap:14px;align-items:center}.compare-picker{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px}.compare-picker select{width:100%}.compare-tag{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--action-primary);color:var(--action-primary-contrast);font-size:12px}.compare-center{display:flex;align-items:center;gap:10px}.compare-swap{min-height:44px;white-space:nowrap}.compare-zoom-group{display:grid;gap:4px;min-width:210px}.compare-zoom{display:grid;grid-template-columns:16px minmax(90px,1fr) 48px;align-items:center;gap:7px}.compare-zoom input{min-height:0;padding:0;border:0;background:transparent;accent-color:var(--action-primary)}.sync-toggle{display:flex;min-height:44px;grid-template-columns:none;align-items:center;gap:7px;white-space:nowrap}.sync-toggle input{width:18px;height:18px;min-height:0}.compare-controls-footer{display:flex;justify-content:flex-end;padding-top:10px;margin-top:10px;border-top:1px solid var(--border-subtle)}.compare-clear{min-height:38px;border:0;background:transparent;color:var(--text-muted);padding:0 8px;font-size:12px}.compare-clear:hover{color:var(--action-danger);background:color-mix(in srgb,var(--action-danger) 8%,transparent)}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compare-card{margin:0;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:8px;overflow:hidden}.compare-card>strong{display:block;padding:9px 4px 2px;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-image{height:min(76vh,820px);overflow:hidden;background:#0d0e0d;border-radius:12px;position:relative;display:flex;align-items:center;justify-content:center;touch-action:pan-y;overscroll-behavior:contain;cursor:zoom-in;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.compare-image.is-zoomed{cursor:grab}.compare-image.is-zoomed:active{cursor:grabbing}.compare-image img{display:block;position:absolute;inset:0;margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:50% 50%;transform-origin:center center;user-select:none;-webkit-user-drag:none}.compare-image img[data-zoom-state="fit"]{inset:0!important;margin:auto!important;transform:none!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:50% 50%!important}
@media(max-width:1100px){.compare-toolbar{grid-template-columns:1fr 1fr}.compare-center{grid-column:1/-1;grid-row:2;justify-content:flex-start}}
@media(max-width:920px){.compare-page{padding:calc(10px + env(safe-area-inset-top)) 10px calc(16px + env(safe-area-inset-bottom))}.compare-top{position:sticky;top:0;z-index:3;min-height:54px;margin:0 0 8px;padding:4px 0;background:color-mix(in srgb,var(--surface-primary) 92%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.compare-head{gap:8px}.compare-head .gallery-kicker{font-size:9px}.compare-head h2{font-size:34px}.compare-settings-toggle{padding:0 10px}.compare-settings-toggle span{display:none}.compare-controls{border-radius:16px;padding:10px;margin-bottom:8px}.compare-toolbar{grid-template-columns:1fr 1fr;gap:9px}.compare-center{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.compare-zoom-group{min-width:0;width:100%}.sync-toggle{grid-column:1/-1;white-space:normal}.compare-controls-footer{padding-top:7px;margin-top:7px}.compare-grid{grid-template-columns:1fr;gap:9px}.compare-image{height:60dvh;min-height:320px}.compare-card{padding:6px;border-radius:16px}.compare-card>strong{padding:7px 3px 1px}}
@media(max-width:520px){.compare-head h2{font-size:31px}.compare-toolbar{grid-template-columns:1fr}.compare-picker{grid-template-columns:32px minmax(0,1fr)}.compare-center{grid-column:1;grid-row:auto;grid-template-columns:1fr}.compare-swap{justify-self:start}.compare-zoom-group{width:100%}.sync-toggle{grid-column:1}.compare-image{height:58dvh;min-height:300px}}
@media(max-width:920px) and (orientation:landscape) and (max-height:600px){.compare-page{padding-top:8px}.compare-top{min-height:48px}.compare-head h2{font-size:28px}.compare-grid{grid-template-columns:1fr 1fr}.compare-image{height:72dvh;min-height:230px}.compare-controls{position:relative}.compare-toolbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.compare-center{grid-column:auto;grid-row:auto;display:flex}.compare-zoom-group{display:none}.sync-toggle{grid-column:auto}}

/* ===== upload.css ===== */
.upload-page,.auth-page{background:var(--surface-primary);min-height:100vh;min-height:100dvh}.upload-shell{width:min(980px,calc(100% - 32px));margin:0 auto;padding:36px 0 64px}.upload-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.upload-head h1{font:400 clamp(44px,6vw,70px)/.98 var(--font-serif);letter-spacing:-.04em;margin:0}.upload-head p{color:var(--text-secondary);max-width:620px;margin:10px 0 0}.crumb{font-size:12px;color:var(--text-muted);margin-bottom:10px}.upload-card{margin-top:26px;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:18px;box-shadow:var(--shadow-soft)}.dropzone{min-height:270px;border:1px dashed var(--border-strong);border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:28px;background:var(--surface-secondary);transition:background var(--motion-fast),border var(--motion-fast)}.dropzone.dragover{background:color-mix(in srgb,var(--state-success) 7%,var(--surface-secondary));border-color:var(--state-success)}.dropzone strong{font:400 31px/1.1 var(--font-serif)}.dropzone span{color:var(--text-muted)}.upload-summary,.upload-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 2px}.upload-summary{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-size:12px}.queue-list{display:grid;gap:8px}.upload-queue-item{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border-bottom:1px solid var(--border-subtle);padding:13px 2px}.queue-copy{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px}.queue-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-copy>span{color:var(--text-muted);font-size:11px}.queue-status{grid-column:1/3}.progress{grid-column:1/3;height:5px;border-radius:999px;background:var(--surface-soft);overflow:hidden}.progress>span{display:block;height:100%;width:0;background:var(--state-success);transition:width var(--motion-fast)}.queue-actions{display:flex;gap:7px}.upload-footer{border-top:1px solid var(--border-subtle);margin-top:8px}.upload-footer>div{display:grid;gap:2px}.upload-footer strong{font:400 31px/1 var(--font-serif)}.upload-footer span{font-size:11px;color:var(--text-muted)}

/* v1.3.11 — guest uploads: identify sender without turning the upload into a form-heavy screen. */
.guest-uploader-field{display:grid;gap:6px;margin:0 0 14px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:16px;background:color-mix(in srgb,var(--surface-secondary) 58%,transparent)}
.guest-uploader-field>span{font-weight:650;color:var(--text-primary)}
.guest-uploader-field small{color:var(--text-muted);line-height:1.35}
.guest-uploader-field input{width:100%;max-width:520px}
.guest-upload-limits{margin:0 0 14px;padding:0 2px;color:var(--text-muted);font-size:11px;line-height:1.45}

/* v1.3.32 — calm completion state for guest contributions. */
.upload-success-card{margin-top:26px;min-height:300px;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:clamp(24px,5vw,44px);box-shadow:var(--shadow-soft);display:grid;align-content:center;justify-items:start;gap:18px}
.upload-success-card[hidden]{display:none}
.upload-success-mark{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--state-success) 10%,var(--surface-secondary));color:var(--state-success);font-size:21px}
.upload-success-card h2{font:400 clamp(38px,5vw,56px)/1 var(--font-serif);letter-spacing:-.035em;margin:0 0 9px}
.upload-success-card p{max-width:620px;color:var(--text-secondary);line-height:1.55;margin:0}
.upload-success-actions{display:flex;gap:8px;flex-wrap:wrap}
.upload-success-card>small{font-size:11px;color:var(--text-muted)}

/* ===== admin.css ===== */
.admin-grid{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100vh}.sidebar{background:color-mix(in srgb,var(--surface-elevated) 68%,transparent);border-right:1px solid var(--border-subtle);padding:26px 16px 20px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh;z-index:10}.brand{padding:0 9px 14px}.nav-list{display:grid;gap:3px}.nav-item{width:100%;display:flex;align-items:center;padding:10px 11px;border-radius:10px;color:var(--text-secondary);font-size:14px}.nav-item:hover,.nav-item.active{background:color-mix(in srgb,var(--text-primary) 5%,transparent);color:var(--text-primary)}.nav-item.active{font-weight:650}.sidebar-bottom{margin-top:auto;padding:14px 9px 0;border-top:1px solid var(--border-subtle);display:grid;gap:3px;font-size:12px;color:var(--text-muted)}.sidebar-bottom strong{font-weight:650;color:var(--text-primary)}.admin-main{padding:30px clamp(20px,3vw,54px) 76px;display:flex;flex-direction:column;gap:18px;max-width:1500px;width:100%;min-width:0}.admin-top,.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:22px}.admin-title{font:400 clamp(48px,6vw,76px)/.98 var(--font-serif);letter-spacing:-.04em;margin:0}.admin-sub{color:var(--text-secondary);margin:8px 0 0}.admin-primary-actions{display:flex;align-items:center;gap:8px}.logout-inline{margin:0}.btn-logout{color:var(--action-danger);border-color:color-mix(in srgb,var(--action-danger) 30%,var(--border-subtle))}.card,.setup-card{min-width:0;max-width:100%;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-soft)}.section-card{scroll-margin-top:18px}.section-card h2,.setup-card h1,.setup-card h2{font-family:var(--font-serif);font-weight:400;margin:0}.simple-head{margin-bottom:18px}.simple-head h2{font-size:30px;line-height:1.05}.simple-head p{max-width:690px;margin:7px 0 0;color:var(--text-secondary);line-height:1.5}.overview-card{padding:24px}.overview-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.overview-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.overview-title strong{font:400 clamp(28px,3vw,42px)/1.05 var(--font-serif)}.status-pill,.access-status{display:inline-flex;align-items:center;min-height:27px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:700;background:color-mix(in srgb,var(--state-success) 10%,var(--surface-primary));color:var(--state-success)}.status-pill.is-paused,.access-status.is-off{background:color-mix(in srgb,var(--text-muted) 10%,var(--surface-primary));color:var(--text-muted)}.overview-actions{display:flex;gap:8px;flex-wrap:wrap}.readiness-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:14px;overflow:hidden}.readiness-grid>div{display:grid;gap:6px;padding:16px;background:var(--surface-secondary);min-width:0}.readiness-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.readiness-grid strong{font-size:15px;font-weight:650;overflow-wrap:anywhere}.gallery-availability{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border-subtle)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:50px;color:var(--text-primary);width:100%}.switch-row>span{display:grid;gap:2px;min-width:0}.switch-row small{line-height:1.35}.switch-row input,.feature-row input{appearance:none;-webkit-appearance:none;width:48px;height:28px;min-height:28px;padding:0;border:0;border-radius:999px;background:var(--border-strong);position:relative;flex:0 0 auto;transition:background var(--motion-fast)}.switch-row input::after,.feature-row input::after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:transform var(--motion-fast)}.switch-row input:checked,.feature-row input:checked{background:var(--action-primary)}.switch-row input:checked::after,.feature-row input:checked::after{transform:translateX(20px)}.form-grid,.form-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-stack{grid-template-columns:1fr}.form-grid>.btn,.form-stack>.btn{align-self:end}.recent-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.recent-image{min-width:0;display:grid;gap:5px}.recent-image img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.recent-image span{font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-link{display:inline-block;margin-top:14px;color:var(--text-secondary);font-size:13px}.access-count{font-size:11px;color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:999px;padding:7px 10px}.clean-access-list{display:grid;gap:8px;margin-bottom:12px}.access-item,.fold-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-secondary) 34%,transparent);overflow:hidden}.access-item>summary,.fold-card>summary{list-style:none;cursor:pointer;min-height:56px;padding:13px 14px;display:flex;align-items:center;gap:12px;position:relative}.access-item>summary::-webkit-details-marker,.fold-card>summary::-webkit-details-marker{display:none}.fold-card>summary::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);transform:rotate(45deg);margin-left:auto;margin-right:4px;transition:transform var(--motion-fast)}.fold-card[open]>summary::after{transform:rotate(225deg);margin-top:5px}.access-summary-main{min-width:0;display:grid;gap:2px}.access-summary-main strong{font-weight:650;overflow:hidden;text-overflow:ellipsis}.access-status{margin-left:auto}.summary-action{font-size:11px;color:var(--text-muted)}.access-edit-form{padding:0 14px 14px;border-top:1px solid var(--border-subtle)}.access-form-grid{padding-top:14px}.compact-switch{align-self:end;padding:8px 0}.clean-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.fold-content{padding:14px;border-top:1px solid var(--border-subtle)}.empty-state-clean{display:grid;gap:6px;padding:22px 4px;color:var(--text-secondary);justify-items:start}.empty-state-clean strong{color:var(--text-primary);font:400 25px/1.1 var(--font-serif)}.empty-state-clean .btn{margin-top:6px}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.feature-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:13px 14px;min-height:78px;color:var(--text-primary)}.feature-row>span{display:grid;gap:3px;min-width:0}.feature-row small{line-height:1.35}.advanced-features{margin:12px 0}.section-save{margin-top:2px}.clean-form-grid{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end}.media-fold{margin-top:16px}.summary-count{margin-left:4px;color:var(--text-muted);font-size:11px}.upload-admin-table{display:grid}.table-row{display:grid;grid-template-columns:minmax(150px,1.5fr) .8fr .5fr 1fr;gap:12px;padding:11px 1px;border-bottom:1px solid var(--border-subtle);align-items:center;font-size:12px}.table-row:last-child{border-bottom:0}.table-error{grid-column:1/-1;color:var(--state-error)}.health-list{display:grid}.health-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--border-subtle)}.health-row:last-child{border-bottom:0}.health-ok{color:var(--state-success)}.health-bad{color:var(--state-error)}.maintenance-actions{display:flex;gap:8px;flex-wrap:wrap}.maintenance-actions form{margin:0}.danger-fold{margin-top:10px;border-color:color-mix(in srgb,var(--action-danger) 28%,var(--border-subtle))}.danger-fold>summary{color:var(--action-danger)}.danger-copy p{color:var(--text-secondary);margin-bottom:14px}.admin-mobile-tools{display:none}.setup-shell{width:min(900px,calc(100% - 32px));margin:0 auto;padding:48px 0;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}.setup-card{padding:28px}.setup-card>.brand-title{font-size:31px}.setup-card>.brand-sub{margin-bottom:24px}.setup-card .form-stack h2{margin-top:12px}.login-wrap{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:20px}.login-card{width:min(440px,94vw);background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:22px;padding:28px;box-shadow:var(--shadow-soft)}.login-card h1{font:400 44px/1 var(--font-serif);margin:0 0 10px}.login-card .sub{color:var(--text-secondary);margin-bottom:18px}.login-field{display:grid;gap:8px;margin-bottom:16px}.legal-page{background:var(--surface-primary)}.legal-shell{width:min(900px,calc(100% - 32px));margin:0 auto;padding:34px 0 70px}.legal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}.legal-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:clamp(20px,4vw,38px);margin-bottom:18px}.legal-card h1,.legal-card h2{font:400 clamp(38px,6vw,64px)/1 var(--font-serif);letter-spacing:-.03em}.legal-card h3{margin-top:28px}.legal-card p{line-height:1.7;color:var(--text-secondary)}.legal-list{display:grid;grid-template-columns:150px 1fr;gap:12px 18px}.legal-list dt{color:var(--text-muted)}.legal-list dd{margin:0;overflow-wrap:anywhere}.system-message{width:min(650px,calc(100% - 32px));margin:10vh auto;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:28px}.system-message h1{font:400 48px/1 var(--font-serif)}

/* Multi-gallery control center */
.gallery-switcher{display:grid;gap:8px;padding:2px 2px 10px;border-bottom:1px solid var(--border-subtle)}
.gallery-switcher-head{display:flex;align-items:center;justify-content:space-between;padding:0 8px;color:var(--text-muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.gallery-switcher-head a{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:var(--text-primary);font-size:20px;line-height:1}
.gallery-switcher-head a:hover{background:color-mix(in srgb,var(--text-primary) 6%,transparent)}
.gallery-switcher-list{display:grid;gap:4px;max-height:260px;overflow:auto;padding-right:2px}
.gallery-switcher-item{display:grid;gap:2px;padding:9px 9px;border-radius:10px;color:var(--text-secondary);min-width:0}
.gallery-switcher-item strong{font-size:12px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
.gallery-switcher-item small{font-size:9px;color:var(--text-muted)}
.gallery-switcher-item:hover,.gallery-switcher-item.active{background:color-mix(in srgb,var(--text-primary) 5%,transparent);color:var(--text-primary)}
.gallery-switcher-item.archived{opacity:.62}
.gallery-create-card{padding:0;scroll-margin-top:16px}
.gallery-create-card>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:70px;padding:17px 20px}
.gallery-create-card>summary::-webkit-details-marker{display:none}
.gallery-create-card>summary>span:first-child{display:grid;gap:3px}
.gallery-create-card>summary strong{font:400 25px/1.05 var(--font-serif)}
.gallery-share-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,520px);gap:18px;align-items:center;margin-top:18px;padding-top:18px;border-top:1px solid var(--border-subtle)}
.gallery-share-row>div:first-child{display:grid;gap:3px}
.gallery-share-row small{color:var(--text-muted);line-height:1.4}
.gallery-link-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.gallery-link-control input{min-width:0;max-width:100%;text-overflow:ellipsis}
.gallery-details-fold{margin-top:12px}
.span-2{grid-column:1/-1}
.mobile-gallery-select{display:none}
.login-master-hint{margin:14px 0 0;color:var(--text-muted);font-size:11px;line-height:1.45}

@media(max-width:920px){
  .mobile-gallery-select{display:grid;gap:6px;margin:-2px 0 2px;font-size:11px;color:var(--text-muted)}
  .mobile-gallery-select select{width:100%}
  .gallery-share-row{grid-template-columns:1fr}
  .gallery-link-control{grid-template-columns:1fr}
}
@media(max-width:520px){.span-2{grid-column:auto}}

/* v1.2.8 — workflow finishing: progressive disclosure, not another dashboard layer. */
.create-gallery-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:2px}.create-gallery-foot small{max-width:640px;line-height:1.45;color:var(--text-muted)}
.availability-form{align-items:flex-end}.availability-form>.switch-row{flex:1 1 420px}.gallery-expiry{display:grid;gap:6px;min-width:min(280px,100%);font-size:12px;color:var(--text-secondary)}.gallery-expiry small{font-size:10px;color:var(--text-muted)}
.selection-admin-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:14px 15px;border:1px solid color-mix(in srgb,var(--state-success) 22%,var(--border-subtle));border-radius:14px;background:color-mix(in srgb,var(--state-success) 5%,var(--surface-secondary))}.selection-admin-strip>div:first-child{display:grid;gap:3px;min-width:0}.selection-admin-strip>div:first-child>strong{font-size:14px}.selection-admin-strip>div:first-child>small{color:var(--text-muted);line-height:1.4}.selection-admin-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.selection-admin-actions form{margin:0}.selection-export-fold{position:relative;overflow:visible;border:0;background:transparent}.selection-export-fold>summary{list-style:none;cursor:pointer}.selection-export-fold>summary::-webkit-details-marker{display:none}.selection-export-fold>summary::after{display:none}.selection-export-menu{position:absolute;right:0;top:calc(100% + 7px);z-index:20;width:220px;padding:6px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-elevated);box-shadow:var(--shadow-float)}.selection-export-menu form{margin:0}.selection-export-menu button{width:100%;min-height:44px;border:0;border-radius:8px;background:transparent;color:var(--text-primary);padding:8px 10px;text-align:left;font-size:12px}.selection-export-menu button:hover,.selection-export-menu button:focus-visible{background:var(--surface-soft)}
.trash-content{display:grid;gap:12px}.trash-note{margin:0;color:var(--text-muted);font-size:12px;line-height:1.5}.trash-list{display:grid;gap:1px;border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;background:var(--border-subtle)}.trash-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:11px 12px;background:var(--surface-secondary)}.trash-row>span{display:grid;gap:2px;min-width:0}.trash-row>span strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-row>span small{font-size:10px;color:var(--text-muted)}.trash-row>div{display:flex;gap:6px}.trash-row form,.trash-empty{margin:0}.trash-row .btn{min-height:44px;padding:7px 10px;font-size:11px}.trash-empty{display:flex;justify-content:flex-end;padding-top:2px}.empty-state-compact{padding:6px 0;color:var(--text-muted);font-size:12px}
.backup-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.backup-tools>div,.backup-tools>form{display:grid;align-content:start;gap:8px;margin:0}.backup-tools strong{font-size:13px}.backup-tools small{color:var(--text-muted);line-height:1.45}.backup-tools .btn{justify-self:start}.backup-tools label{display:grid;gap:7px}

.readiness-grid .readiness-customer small{font-size:10px;color:var(--text-muted);line-height:1.3}

.trash-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px}.trash-pagination span{font-size:11px;color:var(--text-muted)}.trash-pagination .btn{min-height:44px;padding:7px 10px;font-size:11px}

/* v1.2.9 — focused workflow intelligence. */
.next-action-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:14px 15px;border:1px solid var(--border-subtle);border-radius:14px;background:color-mix(in srgb,var(--surface-secondary) 62%,transparent)}
.next-action-strip>div:first-child{display:grid;gap:3px;min-width:0}.next-action-strip .eyebrow{margin:0 0 2px}.next-action-strip strong{font-size:14px}.next-action-strip small{color:var(--text-muted);line-height:1.4}.next-action-strip form{margin:0}.next-action-strip .btn{white-space:nowrap}
.gallery-link-control{grid-template-columns:minmax(0,1fr) auto auto}
@media(max-width:920px){.next-action-strip{align-items:flex-start;flex-direction:column}.next-action-strip .btn{width:100%}.next-action-strip>div:last-child,.next-action-strip>div:last-child form{width:100%}.gallery-link-control{grid-template-columns:1fr}}

/* v1.3.0 — Control Center visual hierarchy. Admin-only presentation; product logic unchanged. */
.admin-page{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-primary) 92%,var(--surface-elevated)) 0,var(--surface-primary) 360px)}
.admin-grid{grid-template-columns:244px minmax(0,1fr)}
.admin-sidebar{padding:24px 14px 18px;gap:18px;background:color-mix(in srgb,var(--surface-elevated) 82%,var(--surface-primary));box-shadow:10px 0 36px color-mix(in srgb,var(--shadow-ink) 3%,transparent)}
.admin-sidebar .brand{padding:1px 10px 15px}
.admin-sidebar .brand-title{letter-spacing:-.025em}
.admin-sidebar .brand-sub{letter-spacing:.14em}
.sidebar-nav-groups{display:grid;gap:18px}
.sidebar-nav-group{display:grid;gap:6px}
.sidebar-nav-label{padding:0 10px;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--text-muted)}
.admin-sidebar .nav-list{gap:2px}
.admin-sidebar .nav-item{position:relative;min-height:44px;padding:9px 11px;border-radius:11px;font-size:13px}
.admin-sidebar .nav-item::before{content:"";width:5px;height:5px;border-radius:50%;background:transparent;flex:0 0 auto;margin-right:1px}
.admin-sidebar .nav-item.active{background:color-mix(in srgb,var(--action-primary) 7%,var(--surface-elevated));color:var(--text-primary);font-weight:700}
.admin-sidebar .nav-item.active::before{background:var(--action-primary)}
.gallery-switcher{gap:9px;padding:0 2px 15px}
.gallery-switcher-head{padding:0 9px}
.gallery-switcher-head a{border:1px solid transparent;font-size:18px}
.gallery-switcher-head a:hover,.gallery-switcher-head a:focus-visible{border-color:var(--border-subtle);background:var(--surface-secondary)}
.gallery-switcher-list{gap:5px;max-height:238px}
.gallery-switcher-item{position:relative;padding:10px 11px;border:1px solid transparent;border-radius:12px}
.gallery-switcher-item:hover{background:var(--surface-secondary);border-color:color-mix(in srgb,var(--border-subtle) 70%,transparent)}
.gallery-switcher-item.active{background:var(--surface-elevated);border-color:var(--border-subtle);box-shadow:0 8px 20px color-mix(in srgb,var(--shadow-ink) 4%,transparent)}
.gallery-switcher-item.active::before{content:"";position:absolute;left:5px;top:12px;bottom:12px;width:2px;border-radius:2px;background:var(--action-primary)}
.gallery-switcher-item.active strong,.gallery-switcher-item.active small{padding-left:4px}
.admin-identity{padding:14px 10px 0}
.admin-main{max-width:1320px;padding:26px clamp(24px,3.2vw,48px) 88px;gap:20px}
.admin-top{align-items:flex-end;padding:4px 2px 20px;border-bottom:1px solid var(--border-subtle)}
.admin-title{font-size:clamp(42px,4.2vw,58px);line-height:1;letter-spacing:-.035em}
.admin-sub{margin-top:7px;font-size:13px;color:var(--text-muted)}
.admin-primary-actions{padding-bottom:3px}
.admin-primary-actions .btn{min-height:44px}
.card,.setup-card{border-radius:20px;box-shadow:0 12px 34px color-mix(in srgb,var(--shadow-ink) 3.5%,transparent)}
.overview-card{padding:26px;background:linear-gradient(145deg,var(--surface-elevated),color-mix(in srgb,var(--surface-secondary) 88%,var(--surface-elevated)))}
.overview-card-head{align-items:center;margin-bottom:18px}
.overview-title{gap:11px}
.overview-title strong{font-size:clamp(29px,3vw,40px)}
.overview-actions{justify-content:flex-end}
.overview-actions .btn:not(.btn-primary){background:color-mix(in srgb,var(--surface-elevated) 72%,transparent)}
.readiness-grid{gap:8px;background:transparent;border:0;border-radius:0;overflow:visible}
.readiness-grid>div{gap:5px;padding:13px 14px;border:1px solid var(--border-subtle);border-radius:12px;background:color-mix(in srgb,var(--surface-secondary) 78%,transparent)}
.readiness-grid span{font-size:9px;letter-spacing:.1em}
.readiness-grid strong{font-size:14px}
.next-action-strip{margin-top:12px;padding:15px 16px;border-color:color-mix(in srgb,var(--action-primary) 14%,var(--border-subtle));background:color-mix(in srgb,var(--action-primary) 4%,var(--surface-secondary))}
.next-action-strip strong{font-size:15px}
.gallery-share-row{margin-top:16px;padding-top:16px}
.gallery-link-control input{background:color-mix(in srgb,var(--surface-primary) 48%,var(--surface-elevated));font-size:12px}
.gallery-availability{margin-top:16px;padding-top:16px}
.gallery-details-fold{margin-top:14px}
.section-card{padding:25px 26px}
.simple-head{margin-bottom:20px}
.simple-head h2{font-size:31px;letter-spacing:-.02em}
.simple-head p{margin-top:6px;font-size:13px;color:var(--text-muted)}
.feature-grid{gap:10px}
.feature-row{min-height:74px;border-color:color-mix(in srgb,var(--border-subtle) 86%,transparent);background:color-mix(in srgb,var(--surface-secondary) 55%,transparent)}
.feature-row:hover{background:color-mix(in srgb,var(--surface-secondary) 88%,transparent)}
.access-item,.fold-card{background:color-mix(in srgb,var(--surface-secondary) 44%,transparent)}
.access-item>summary,.fold-card>summary{min-height:54px}
.recent-grid{gap:10px}
.recent-image img{border-radius:12px;transition:transform var(--motion-fast),box-shadow var(--motion-fast)}
.recent-image:hover img{transform:translateY(-1px);box-shadow:var(--shadow-soft)}
.system-section{background:color-mix(in srgb,var(--surface-elevated) 78%,var(--surface-primary))}
.gallery-create-card:not([open]){display:none}
.gallery-create-card[open]{display:block;border-color:color-mix(in srgb,var(--action-primary) 18%,var(--border-subtle));scroll-margin-top:18px}
.gallery-create-card[open]>summary{background:color-mix(in srgb,var(--action-primary) 4%,transparent)}

.admin-mobile-sheet-backdrop,.admin-mobile-sheet{display:none}

/* v1.3.1 — status language describes customer outcome, not internal workflow state. */
.readiness-grid>div strong{line-height:1.28}.readiness-grid>div:nth-child(3) strong{font-size:13px}.readiness-customer strong{font-size:14px}.status-pill{max-width:210px;white-space:normal;text-align:center;line-height:1.2}

/* v1.3.2 — gallery library sits one level above the per-gallery Control Center. */
.gallery-hub-page{min-height:100vh;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-primary) 94%,var(--surface-elevated)) 0,var(--surface-primary) 440px)}
.gallery-hub-shell{width:min(1500px,calc(100% - 64px));margin:0 auto;padding:28px 0 42px}
.gallery-hub-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 2px 22px;border-bottom:1px solid var(--border-subtle)}
.gallery-hub-brand{display:grid;gap:2px}.gallery-hub-brand .brand-title{font-size:22px;letter-spacing:-.025em}.gallery-hub-brand .brand-sub{font-size:9px;letter-spacing:.14em;color:var(--text-muted)}
.gallery-hub-account{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:12px}.gallery-hub-account form{margin:0}
.gallery-hub-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:52px 2px 30px}
.gallery-hub-intro h1{margin:0;font:400 clamp(48px,6vw,78px)/.96 var(--font-serif);letter-spacing:-.045em}.gallery-hub-intro p:not(.eyebrow){margin:11px 0 0;color:var(--text-secondary);font-size:14px}
.gallery-hub-intro>.btn{margin-bottom:3px}
.gallery-hub-create{margin:0 0 24px}.gallery-hub-create[open]{display:block;max-width:920px}
.gallery-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.gallery-hub-card{display:grid;grid-template-rows:auto auto;min-width:0;overflow:hidden;border:1px solid var(--border-subtle);border-radius:22px;background:var(--surface-elevated);box-shadow:0 12px 36px color-mix(in srgb,var(--shadow-ink) 3%,transparent);color:var(--text-primary);transition:transform var(--motion-fast),box-shadow var(--motion-fast),border-color var(--motion-fast)}
.gallery-hub-card:hover,.gallery-hub-card:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--text-primary) 18%,var(--border-subtle));box-shadow:0 18px 44px color-mix(in srgb,var(--shadow-ink) 6%,transparent);outline:none}
.gallery-hub-card.is-archived{opacity:.74}.gallery-hub-card.is-archived:hover,.gallery-hub-card.is-archived:focus-visible{opacity:1}
.gallery-hub-cover{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:var(--surface-secondary)}
.gallery-hub-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 320ms ease}.gallery-hub-card:hover .gallery-hub-cover img{transform:scale(1.012)}
.gallery-hub-placeholder{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface-secondary) 86%,var(--surface-elevated)),var(--surface-secondary));color:var(--text-muted)}
.gallery-hub-placeholder>span{font:400 22px/1 var(--font-serif);letter-spacing:-.02em;color:var(--text-secondary)}.gallery-hub-placeholder small{font-size:10px}
.gallery-hub-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 18px 18px}
.gallery-hub-copy{display:grid;gap:4px;min-width:0}.gallery-hub-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:400 24px/1.06 var(--font-serif);letter-spacing:-.02em}.gallery-hub-copy small{font-size:10px;color:var(--text-muted)}
.gallery-hub-status{flex:0 0 auto;max-width:145px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 8%,var(--surface-secondary));color:var(--text-muted);font-size:9px;font-weight:700;line-height:1.2;text-align:center}.gallery-hub-status.is-live{background:color-mix(in srgb,var(--state-success) 10%,var(--surface-secondary));color:var(--state-success)}
.gallery-hub-empty-state{display:grid;justify-items:start;gap:9px;max-width:620px;padding:36px;border:1px solid var(--border-subtle);border-radius:22px;background:var(--surface-elevated);box-shadow:var(--shadow-soft)}.gallery-hub-empty-state strong{font:400 34px/1.05 var(--font-serif)}.gallery-hub-empty-state p{margin:0 0 4px;color:var(--text-secondary);line-height:1.5}
.gallery-hub-footer{display:flex;justify-content:flex-end;padding:24px 2px 0;color:var(--text-muted);font-size:10px}
.sidebar-gallery-back{display:flex;align-items:center;gap:8px;min-height:44px;margin:0 2px 2px;padding:9px 11px;border:1px solid var(--border-subtle);border-radius:12px;background:color-mix(in srgb,var(--surface-secondary) 46%,transparent);color:var(--text-secondary);font-size:12px;font-weight:650}.sidebar-gallery-back:hover,.sidebar-gallery-back:focus-visible{background:var(--surface-secondary);color:var(--text-primary)}
.admin-gallery-back-mobile{display:none}

/* v1.3.3 — active gallery library stays focused; archive and global studio settings are secondary. */
.gallery-hub-secondary{margin-top:30px;border-top:1px solid var(--border-subtle)}
.gallery-hub-secondary>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:62px;padding:18px 2px;color:var(--text-secondary)}
.gallery-hub-secondary>summary::-webkit-details-marker{display:none}
.gallery-hub-secondary>summary>span{display:flex;align-items:baseline;gap:10px}
.gallery-hub-secondary>summary strong{font-size:14px;color:var(--text-primary)}
.gallery-hub-secondary>summary small{font-size:10px;color:var(--text-muted)}
.gallery-hub-secondary>summary::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);transform:rotate(45deg);margin-right:5px;transition:transform var(--motion-fast)}
.gallery-hub-secondary[open]>summary::after{transform:rotate(225deg);margin-top:5px}
.gallery-hub-secondary-body{padding:2px 0 8px}
.archive-list{display:grid;gap:8px}
.archive-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid var(--border-subtle);border-radius:14px;background:color-mix(in srgb,var(--surface-elevated) 72%,transparent)}
.archive-copy{display:grid;gap:4px;min-width:0}.archive-copy strong{font:400 20px/1.1 var(--font-serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-copy small{font-size:10px;color:var(--text-muted)}
.archive-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.archive-actions form{margin:0}.archive-delete{position:relative}.archive-delete>summary{list-style:none}.archive-delete>summary::-webkit-details-marker{display:none}
.archive-delete-form{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:min(390px,calc(100vw - 40px));display:grid;gap:12px;padding:16px;border:1px solid color-mix(in srgb,var(--action-danger) 26%,var(--border-subtle));border-radius:14px;background:var(--surface-elevated);box-shadow:var(--shadow-strong)}
.archive-delete-form p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.48}.archive-delete-form p strong{color:var(--action-danger)}.archive-delete-form label{font-size:11px}.archive-delete-form .btn{justify-self:start}
.gallery-hub-system{margin-top:18px}.studio-system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.studio-system-grid>.fold-card{align-self:start}
.gallery-management-section{padding:12px;background:transparent;border-color:transparent;box-shadow:none}.gallery-management-section>.fold-card{background:color-mix(in srgb,var(--surface-secondary) 38%,transparent)}
@media(max-width:760px){
 .gallery-hub-secondary{margin-top:22px}
 .archive-row{align-items:flex-start;flex-direction:column;padding:14px}
 .archive-actions{width:100%;justify-content:flex-start}
 .archive-delete{position:static}.archive-delete-form{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));top:auto;width:auto;z-index:80}
 .studio-system-grid{grid-template-columns:1fr}
 .gallery-management-section{padding:8px 0}
}
.gallery-hub-intro-actions{display:grid;justify-items:end;gap:9px;margin-bottom:3px}.gallery-hub-utility-links{display:flex;align-items:center;justify-content:flex-end;gap:13px}.gallery-hub-utility-links a{font-size:10px;font-weight:650;color:var(--text-muted)}.gallery-hub-utility-links a:hover,.gallery-hub-utility-links a:focus-visible{color:var(--text-primary)}
@media(max-width:680px){.gallery-hub-intro-actions{width:100%;justify-items:stretch}.gallery-hub-utility-links{justify-content:center}.gallery-hub-intro-actions>.btn{width:100%}}


/* v1.3.4 — global control-center layout safety contract. */
.admin-main>*,.admin-main form,.admin-main fieldset,.admin-main label,.admin-main details,.admin-main summary,.admin-main .card>*{min-width:0;max-width:100%}
.admin-main .overview-card-head>*,.admin-main .section-head>*,.admin-main .gallery-share-row>*,.admin-main .gallery-link-control>*,.admin-main .gallery-availability>*,.admin-main .availability-form>*,.admin-main .form-grid>*,.admin-main .feature-grid>*,.admin-main .clean-form-grid>*,.admin-main .next-action-strip>*{min-width:0;max-width:100%}
.admin-page p,.admin-page small,.admin-page strong,.gallery-hub-page p,.gallery-hub-page small,.gallery-hub-page strong{overflow-wrap:anywhere}
.admin-main input,.admin-main select,.admin-main textarea,.gallery-hub-page input,.gallery-hub-page select,.gallery-hub-page textarea{min-width:0;max-width:100%}

/* v1.3.9 — one task at a time: the Control Center is a workspace, not one endless settings page. */
.admin-workspace[hidden]{display:none!important}
.admin-gallery-title-row{display:flex;align-items:center;gap:11px;flex-wrap:wrap;min-width:0}
.admin-gallery-title-row .admin-title{min-width:0;overflow-wrap:anywhere}
.admin-gallery-title-row .status-pill{flex:0 0 auto}
.admin-top .admin-title{font-size:clamp(34px,3.8vw,52px)}
.admin-top .admin-sub{margin-top:6px}
.admin-main{max-width:1240px}
.admin-workspace.is-active{min-width:0}
.cc-view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:18px}
.cc-view-head>div:first-child{min-width:0}
.cc-view-head h2{margin:2px 0 0;font:400 clamp(30px,3vw,40px)/1.03 var(--font-serif);letter-spacing:-.025em}
.cc-view-head p{max-width:650px;margin:7px 0 0;color:var(--text-muted);font-size:13px;line-height:1.48}
.overview-card{background:var(--surface-elevated)}
.cc-readiness-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:12px}
.cc-readiness-grid>div{min-height:84px}
.cc-readiness-grid .readiness-customer small{font-size:10px;color:var(--text-muted);line-height:1.3}
.cc-overview-fold,.gallery-details-fold{margin-top:12px;background:color-mix(in srgb,var(--surface-secondary) 35%,transparent)}
.cc-fold-summary{display:grid;gap:2px;min-width:0}
.cc-fold-summary strong{font-size:13px;color:var(--text-primary)}
.cc-fold-summary small{font-size:10px;color:var(--text-muted);line-height:1.35}
.cc-overview-fold-content{padding-top:4px}
.cc-overview-fold-content .gallery-share-row{margin-top:0;padding-top:12px;border-top:0}
.cc-overview-fold-content .gallery-availability{margin-top:14px;padding-top:14px}
.admin-workspace .simple-head{margin-bottom:16px}
.admin-workspace .simple-head h2{font-size:clamp(29px,2.7vw,36px)}
.gallery-management-section.admin-workspace{margin-top:-8px}
.admin-workspace-ready .admin-workspace.is-active{animation:cc-view-in 130ms ease-out}
@keyframes cc-view-in{from{opacity:.72;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.admin-workspace-ready .admin-workspace.is-active{animation:none}}

/* v1.3.11 — customer uploads stay secondary until there is something to review. */
.guest-review-fold{margin:0 0 16px;border-color:color-mix(in srgb,var(--state-success) 22%,var(--border-subtle));background:color-mix(in srgb,var(--state-success) 3%,var(--surface-elevated))}
.guest-review-list{display:grid;gap:8px}
.guest-review-row{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px;border:1px solid var(--border-subtle);border-radius:14px;background:var(--surface-elevated);min-width:0}
.guest-review-preview{display:block;width:78px;height:78px;border-radius:10px;overflow:hidden;background:var(--surface-secondary)}
.guest-review-preview img{display:block;width:100%;height:100%;object-fit:cover}
.guest-review-copy{display:grid;gap:3px;min-width:0}
.guest-review-copy strong,.guest-review-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.guest-review-copy span{font-size:12px;color:var(--text-secondary)}
.guest-review-copy small{font-size:10px;color:var(--text-muted)}
.guest-review-actions{display:flex;gap:7px;align-items:center}
.guest-review-actions form{margin:0}
.guest-upload-policy-fold{margin:0 14px 14px;border-top:1px solid var(--border-subtle)}
.guest-upload-policy-fold>summary{list-style:none;cursor:pointer;min-height:48px;display:flex;align-items:center;color:var(--text-secondary);font-size:12px;font-weight:650}
.guest-upload-policy-fold>summary::-webkit-details-marker{display:none}
.guest-upload-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 0 10px}
.guest-upload-policy-grid label{min-width:0}
.guest-upload-policy-note{margin:0 0 14px;color:var(--text-muted);font-size:11px;line-height:1.5}
.guest-upload-policy-note strong{color:var(--text-secondary)}


/* v1.3.12 — selection completion is a child of Bildauswahl, not a competing feature. */
.feature-subrow{margin-top:-8px;margin-left:18px;border-left:2px solid var(--border-subtle);border-radius:0 12px 12px 0;background:var(--surface-soft)}
.feature-subrow.is-disabled{opacity:.52}
.feature-subrow.is-disabled strong,.feature-subrow.is-disabled small{color:var(--text-muted)}
@media(max-width:720px){.feature-subrow{margin-left:10px}}

/* v1.3.13 — guest upload invitation assets */
.guest-invite-fold{margin-top:16px}.guest-invite-content{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:24px;align-items:start}.guest-invite-qr{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;aspect-ratio:1;display:grid;place-items:center}.guest-invite-qr svg{display:block;width:100%;height:auto}.guest-invite-tools{display:grid;gap:14px;min-width:0}.guest-link-control{grid-template-columns:minmax(0,1fr) auto auto}.guest-invite-downloads{display:flex;flex-wrap:wrap;gap:8px}.guest-invite-note{color:var(--muted)}
@media(max-width:700px){.guest-invite-content{grid-template-columns:1fr}.guest-invite-qr{max-width:280px;margin-inline:auto}.guest-link-control{grid-template-columns:1fr}.guest-link-control .btn{width:100%}.guest-invite-downloads{display:grid;grid-template-columns:1fr 1fr}.guest-invite-downloads .btn{width:100%}}


/* v1.3.15 — guest review can be handled globally, per uploader, or in a focused image review. */
.guest-review-content{display:grid;gap:12px}.guest-review-bulkbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--border-subtle);border-radius:14px;background:var(--surface-soft)}.guest-review-bulkbar>div:first-child{display:grid;gap:2px}.guest-review-bulkbar small{color:var(--text-muted);font-size:10px}.guest-review-bulk-actions,.guest-review-person-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.guest-review-bulk-actions form,.guest-review-person-actions form{margin:0}.guest-review-people{display:grid;gap:10px}.guest-review-person{border:1px solid var(--border-subtle);border-radius:14px;background:var(--surface-elevated);overflow:hidden}.guest-review-person>summary{list-style:none;min-height:54px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.guest-review-person>summary::-webkit-details-marker{display:none}.guest-review-person>summary>span:first-child{display:grid;gap:2px;min-width:0}.guest-review-person>summary strong{font-size:13px}.guest-review-person>summary small{font-size:10px;color:var(--text-muted)}.guest-review-person-actions{padding:0 12px 10px;border-bottom:1px solid var(--border-subtle)}.guest-review-person .guest-review-list{padding:10px}.guest-review-preview{border:0;padding:0;cursor:zoom-in}.guest-review-actions{flex-wrap:wrap}
.guest-review-modal{position:fixed;inset:0;z-index:calc(var(--z-modal) + 10);display:grid;place-items:center;padding:18px}.guest-review-modal[hidden]{display:none}.guest-review-modal-backdrop{position:absolute;inset:0;background:rgba(8,8,8,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.guest-review-dialog{position:relative;width:min(1080px,100%);height:min(88dvh,860px);min-height:0;border:1px solid color-mix(in srgb,#fff 14%,transparent);border-radius:22px;background:#11110f;color:#fff;box-shadow:0 30px 100px rgba(0,0,0,.4);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.guest-review-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.12)}.guest-review-dialog-head>div{display:grid;gap:2px;min-width:0}.guest-review-dialog-head .eyebrow{color:rgba(255,255,255,.5)}.guest-review-dialog-head strong{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guest-review-dialog-head small{color:rgba(255,255,255,.56)}.guest-review-dialog-head .btn,.guest-review-dialog-actions .btn{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff}.guest-review-dialog-actions .btn-primary{background:#fff;color:#151513;border-color:#fff}.guest-review-dialog-actions .btn-danger-soft{background:rgba(190,70,65,.18);color:#ffd8d4;border-color:rgba(255,160,150,.24)}.guest-review-dialog-image{min-height:0;display:grid;place-items:center;padding:12px;background:#090908}.guest-review-dialog-image img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.guest-review-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-top:1px solid rgba(255,255,255,.12)}.guest-review-dialog-nav,.guest-review-dialog-decisions{display:flex;align-items:center;gap:8px}.guest-review-dialog-decisions form{margin:0}.guest-review-modal-open{overflow:hidden}
@media(max-width:760px){.guest-review-bulkbar{align-items:stretch;display:grid}.guest-review-bulk-actions{display:grid;grid-template-columns:1fr 1fr}.guest-review-bulk-actions form,.guest-review-bulk-actions .btn{width:100%}.guest-review-person-actions{display:grid;grid-template-columns:1fr 1fr}.guest-review-person-actions form,.guest-review-person-actions .btn{width:100%}.guest-review-dialog{height:calc(100dvh - 20px);border-radius:18px}.guest-review-dialog-head{padding:11px 12px}.guest-review-dialog-actions{display:grid;gap:8px;padding:10px 12px}.guest-review-dialog-nav,.guest-review-dialog-decisions{display:grid;grid-template-columns:1fr 1fr}.guest-review-dialog-actions .btn,.guest-review-dialog-actions form{width:100%}.guest-review-dialog-decisions form .btn{width:100%}}

/* v1.3.19 — Kundenfunktionen are grouped by the customer task they control. */
.experience-form{display:grid;gap:14px}
.experience-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.experience-group{min-width:0;border:1px solid var(--border-subtle);border-radius:16px;background:color-mix(in srgb,var(--surface-secondary) 42%,transparent);padding:14px}
.experience-group>header{display:grid;gap:3px;padding:1px 2px 12px}
.experience-group>header>strong{font-size:13px;color:var(--text-primary)}
.experience-group>header>small{font-size:10px;line-height:1.4;color:var(--text-muted)}
.experience-group .clean-feature-grid{margin:0}
.experience-guest-group{grid-column:1/-1}
.experience-guest-group .guest-upload-policy-fold{margin:10px 0 0;padding:0 2px;border-top:1px solid var(--border-subtle)}
.experience-guest-group .guest-invite-fold{margin:10px 0 0}
.experience-advanced{margin-top:0}
.guest-presentation-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border:1px solid var(--border-subtle);border-radius:14px;background:var(--surface-soft)}
.guest-presentation-cta>div{display:grid;gap:3px;min-width:0}
.guest-presentation-cta strong{font-size:13px;color:var(--text-primary)}
.guest-presentation-cta small{font-size:10px;line-height:1.4;color:var(--text-muted)}
.guest-presentation-cta .btn{flex:0 0 auto}
@media(max-width:700px){
  .experience-groups{grid-template-columns:1fr}
  .experience-guest-group{grid-column:auto}
  .experience-group{padding:12px}
  .guest-presentation-cta{align-items:stretch;display:grid}
  .guest-presentation-cta .btn{width:100%}
}

/* v1.3.21 — compact per-gallery event presentation controls. */
.guest-presentation-settings-fold{margin:10px 0 0;border-top:1px solid var(--border-subtle)}
.guest-presentation-settings-fold>summary{list-style:none;cursor:pointer;min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--text-secondary)}
.guest-presentation-settings-fold>summary::-webkit-details-marker{display:none}
.guest-presentation-settings-fold>summary>span{font-size:12px;font-weight:700;color:var(--text-primary)}
.guest-presentation-settings-fold>summary>small{font-size:10px;line-height:1.4;color:var(--text-muted);text-align:right}
.guest-presentation-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:2px 0 14px}
.guest-presentation-settings-grid label{min-width:0}
.guest-presentation-wide{grid-column:1/-1}
.guest-presentation-check{min-height:58px;display:flex!important;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-soft)}
.guest-presentation-check>span{display:grid;gap:2px;min-width:0}.guest-presentation-check strong{font-size:12px;color:var(--text-primary)}.guest-presentation-check small{font-size:10px;line-height:1.4;color:var(--text-muted)}
.guest-presentation-open-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){.guest-presentation-settings-fold>summary{align-items:flex-start;display:grid;padding-block:9px}.guest-presentation-settings-fold>summary>small{text-align:left}.guest-presentation-settings-grid{grid-template-columns:1fr}.guest-presentation-wide{grid-column:auto}.guest-presentation-open-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.guest-presentation-open-actions .btn{width:100%}}
/* v1.3.24 — richer but controlled guest-presentation editor. */
.presentation-setting-group{display:grid;gap:3px;padding-top:10px;border-top:1px solid var(--border-subtle)}.presentation-setting-group:first-child{padding-top:0;border-top:0}.presentation-setting-group>strong{font-size:12px}.presentation-setting-group>small{font-size:10px}.presentation-style-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:7px}.presentation-style-option{position:relative;display:block}.presentation-style-option>input{position:absolute;opacity:0;pointer-events:none}.presentation-style-option>span{display:grid;gap:4px;min-height:86px;padding:12px;border:1px solid var(--border-subtle);border-radius:13px;background:color-mix(in srgb,var(--surface-secondary) 45%,transparent);cursor:pointer}.presentation-style-option>span strong{font-size:12px;color:var(--text-primary)}.presentation-style-option>span small{font-size:9px;line-height:1.45}.presentation-style-option>input:checked+span{border-color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--text-primary);background:var(--surface-elevated)}.presentation-style-option>input:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}
@media(max-width:700px){.presentation-style-options{grid-template-columns:1fr}.presentation-style-option>span{min-height:0}}

/* v1.3.28 — Control Center task-based information architecture. */
.cc-readiness-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.customer-access-section{margin-bottom:-8px}
.customer-experience-section{margin-top:-8px}
.guests-workspace{display:grid;gap:14px}
.guests-workspace .simple-head{margin-bottom:0}
.guest-master-form{display:grid;gap:12px;padding:15px 16px;border:1px solid var(--border-subtle);border-radius:16px;background:color-mix(in srgb,var(--surface-secondary) 42%,transparent)}
.guest-master-switch{display:flex;align-items:center;gap:16px}
.guest-master-switch .switch-row{flex:1}
.guest-current-state{flex:0 0 auto;display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;font-size:10px;font-weight:700;background:color-mix(in srgb,var(--text-muted) 10%,var(--surface-primary));color:var(--text-muted)}
.guest-current-state.is-on{background:color-mix(in srgb,var(--state-success) 10%,var(--surface-primary));color:var(--state-success)}
.guest-settings-save{justify-self:start}
.guests-workspace>.guest-review-fold{margin:0;border-color:color-mix(in srgb,var(--state-success) 34%,var(--border-subtle));background:color-mix(in srgb,var(--state-success) 4%,var(--surface-elevated))}
.guests-workspace>.guest-invite-fold{margin:0}
.guest-invite-fold[open]>summary{background:color-mix(in srgb,var(--action-primary) 3%,transparent)}
.guest-qr-downloads{position:relative;justify-self:start}
.guest-qr-downloads>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center}
.guest-qr-downloads>summary::-webkit-details-marker{display:none}
.guest-qr-downloads[open]>summary{background:var(--surface-soft)}
.guest-qr-downloads .guest-invite-downloads{margin-top:8px;padding:10px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-secondary)}
.guest-presentation-settings-fold{margin:0;border:1px solid var(--border-subtle);border-radius:16px;background:color-mix(in srgb,var(--surface-secondary) 34%,transparent);overflow:hidden}
.guest-presentation-settings-fold>summary{padding:0 14px;min-height:58px}
.guest-presentation-settings-grid{padding:14px;border-top:1px solid var(--border-subtle)}
.guest-presentation-previewbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid var(--border-subtle);border-radius:13px;background:var(--surface-soft)}
.guest-presentation-previewbar>div:first-child{display:grid;gap:2px;min-width:0}
.guest-presentation-previewbar>div:first-child strong{font-size:12px}
.guest-presentation-previewbar>div:first-child small{font-size:10px;color:var(--text-muted);line-height:1.4}
.guest-presentation-previewbar>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.guest-disabled-state{padding:28px 4px 8px}
.appearance-form{display:grid;gap:20px}
.appearance-fieldset{border:0;margin:0;padding:0;display:grid;gap:9px;min-width:0}
.appearance-fieldset legend{padding:0;font-size:12px;font-weight:700;color:var(--text-primary)}
.choice-cards{display:grid;gap:8px}
.theme-choice-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-choice-cards{grid-template-columns:repeat(8,minmax(0,1fr))}
.choice-card{position:relative;min-width:0}
.choice-card>input{position:absolute;opacity:0;pointer-events:none}
.choice-card>span{display:grid;place-items:center;gap:2px;min-height:62px;padding:10px;border:1px solid var(--border-subtle);border-radius:13px;background:color-mix(in srgb,var(--surface-secondary) 46%,transparent);cursor:pointer;text-align:center}
.choice-card>span strong{font-size:12px;color:var(--text-primary)}
.choice-card>span small{font-size:9px;color:var(--text-muted)}
.choice-card>input:checked+span{border-color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--text-primary);background:var(--surface-elevated)}
.choice-card>input:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}
.compact-choice>span{min-height:54px}
.gallery-management-section .maintenance-actions{align-items:stretch}
.gallery-management-section .maintenance-actions .btn{min-height:44px}

@media(max-width:1100px){
  .cc-readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-choice-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:920px){
  .customer-access-section,.customer-experience-section{margin:0}
  .guest-master-switch{align-items:flex-start}
  .guest-presentation-previewbar{align-items:stretch;display:grid}
  .guest-presentation-previewbar>div:last-child{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}
  .guest-presentation-previewbar .btn{width:100%}
  .theme-choice-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid-choice-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:520px){
  .guest-master-switch{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .guest-settings-save{width:100%;justify-self:stretch}
  .guest-presentation-previewbar>div:last-child{grid-template-columns:1fr}
  .theme-choice-cards{grid-template-columns:1fr}
  .choice-card>span{min-height:50px}
  .grid-choice-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* v1.3.29 — guest-photo capabilities stay explicit and isolated from ordinary customer features. */
.guest-permissions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.guest-permissions-grid .feature-row{background:color-mix(in srgb,var(--surface-secondary) 42%,transparent)}
@media(max-width:1100px){.guest-permissions-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.guest-permissions-grid{grid-template-columns:1fr}}


/* v1.3.32 — quiet readiness and expiry guidance. */
.gallery-ready-check{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:12px;padding:15px 16px;border:1px solid var(--border-subtle);border-radius:16px;background:color-mix(in srgb,var(--surface-secondary) 42%,transparent);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.gallery-ready-check.is-ready{border-color:color-mix(in srgb,var(--state-success) 30%,var(--border-subtle));background:color-mix(in srgb,var(--state-success) 4%,var(--surface-elevated))}
.gallery-ready-check.needs-attention{border-color:color-mix(in srgb,var(--action-primary) 42%,var(--border-subtle));box-shadow:0 0 0 3px color-mix(in srgb,var(--action-primary) 9%,transparent)}
.gallery-ready-copy{display:grid;gap:3px;min-width:190px}.gallery-ready-copy>strong{font-size:14px;color:var(--text-primary)}.gallery-ready-copy>small{font-size:10px;line-height:1.45;color:var(--text-muted);max-width:46ch}
.gallery-ready-items{display:flex;align-items:stretch;justify-content:flex-end;gap:7px;flex-wrap:wrap}.gallery-ready-items>span{display:grid;grid-template-columns:18px auto;grid-template-rows:auto auto;column-gap:6px;align-items:center;min-width:120px;padding:8px 10px;border-radius:11px;background:var(--surface-primary);border:1px solid color-mix(in srgb,var(--border-subtle) 78%,transparent);font-size:10px;color:var(--text-primary)}.gallery-ready-items>span>b{grid-row:1/3;display:grid;place-items:center;width:18px;height:18px;border-radius:999px;font-size:10px;background:var(--surface-soft);color:var(--text-muted)}.gallery-ready-items>span>small{font-size:8px;line-height:1.35;color:var(--text-muted)}.gallery-ready-items>span.is-ok>b{background:color-mix(in srgb,var(--state-success) 11%,var(--surface-primary));color:var(--state-success)}
.gallery-expiry-alert{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--state-warning) 28%,var(--border-subtle));border-radius:15px;background:color-mix(in srgb,var(--state-warning) 4%,var(--surface-elevated))}.gallery-expiry-alert.is-expired{border-color:color-mix(in srgb,var(--state-danger) 28%,var(--border-subtle));background:color-mix(in srgb,var(--state-danger) 4%,var(--surface-elevated))}.gallery-expiry-alert>div:first-child{display:grid;gap:2px}.gallery-expiry-alert strong{font-size:13px}.gallery-expiry-alert small{font-size:9px;color:var(--text-muted)}
.expiry-quick-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.expiry-quick-actions form{margin:0}.expiry-inline-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:11px 12px;border:1px solid var(--border-subtle);border-radius:13px;background:color-mix(in srgb,var(--surface-secondary) 38%,transparent)}.expiry-inline-tools>span{display:grid;gap:2px}.expiry-inline-tools strong{font-size:11px}.expiry-inline-tools small{font-size:9px;color:var(--text-muted)}

/* RC8 Polish 7 — one VEYNOA shell across Studio and Galerien. Presentation only. */
.silk-app-page{background:var(--surface-primary);padding-bottom:84px}
.silk-app-page .silk-global-topbar{z-index:calc(var(--z-nav) + 2)}
.gallery-hub-shell.studio-shell{width:min(1264px,calc(100% - 48px));margin:0 auto;padding:26px 0 92px}
.gallery-hub-intro.studio-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding:42px 2px 27px}
.gallery-hub-intro.studio-page-head h1{max-width:26ch;margin:0;font:400 clamp(44px,6vw,72px)/.98 var(--font-serif);letter-spacing:-.04em}
.gallery-hub-intro.studio-page-head p:not(.eyebrow){max-width:650px;margin:8px 0 0;color:var(--text-secondary);font-size:13px;line-height:1.55}
.gallery-hub-intro-actions{margin:0}
.global-settings-page .gallery-hub-branding,.global-settings-page .gallery-hub-system{margin-top:14px;border:1px solid var(--border-subtle);border-radius:18px;background:var(--surface-elevated);overflow:hidden}
.global-settings-page .gallery-hub-branding>summary,.global-settings-page .gallery-hub-system>summary{padding-inline:18px}
.global-settings-page .gallery-hub-secondary-body{padding:2px 18px 18px}

.admin-unified-grid{display:block;min-height:0}
.admin-unified-main{width:min(1264px,calc(100% - 48px));max-width:none;margin:0 auto;padding:0 0 110px;gap:18px}
.admin-unified-head{align-items:flex-end;padding:42px 2px 20px;border-bottom:0}
.admin-unified-head .admin-title{font-size:clamp(44px,6vw,72px);line-height:.98;letter-spacing:-.04em}
.admin-unified-head .admin-sub{max-width:650px;margin-top:8px;font-size:13px;line-height:1.55;color:var(--text-secondary)}
.admin-context-path{display:flex;align-items:center;gap:7px;margin:0 0 15px;font-size:10px;color:var(--text-muted)}
.admin-context-path a{color:var(--text-secondary);font-weight:650}.admin-context-path a:hover{color:var(--text-primary)}
.admin-context-path span:last-child{min-width:0;max-width:42ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-unified-page .admin-primary-actions{padding-bottom:1px}
.admin-unified-page .card{border-radius:22px;box-shadow:var(--shadow-soft)}

.gallery-local-nav{position:sticky;top:86px;z-index:calc(var(--z-nav) + 1);display:flex;align-items:center;gap:4px;width:100%;margin:0 0 20px;padding:6px;border:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent);border-radius:15px;background:color-mix(in srgb,var(--surface-elevated) 94%,transparent);box-shadow:0 8px 24px color-mix(in srgb,var(--shadow-ink) 4%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.gallery-local-nav>.nav-item,.gallery-local-more>summary{width:auto;min-height:44px;display:flex;align-items:center;padding:8px 12px;border-radius:10px;color:var(--text-secondary);font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer;list-style:none}
.gallery-local-nav>.nav-item:hover,.gallery-local-nav>.nav-item.active,.gallery-local-more>summary:hover,.gallery-local-more>summary.active,.gallery-local-more[open]>summary{background:var(--surface-soft);color:var(--text-primary)}
.gallery-local-more{position:relative;margin-left:auto}.gallery-local-more>summary::-webkit-details-marker{display:none}
.gallery-local-more-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;min-width:210px;display:grid;gap:3px;padding:6px;border:1px solid var(--border-subtle);border-radius:13px;background:var(--surface-elevated);box-shadow:var(--shadow-float)}
.gallery-local-more-menu .nav-item{width:100%;min-height:44px;padding:9px 11px;border-radius:9px;font-size:11px;color:var(--text-secondary)}
.gallery-local-more-menu .nav-item:hover,.gallery-local-more-menu .nav-item.active{background:var(--surface-soft);color:var(--text-primary)}

@media(max-width:960px){
  .gallery-hub-shell.studio-shell,.admin-unified-main{width:min(100% - 30px,1264px)}
  .admin-unified-head{padding-top:32px;align-items:stretch;flex-direction:column;gap:18px}
  .admin-unified-head .admin-title{font-size:clamp(42px,7vw,58px)}
  .admin-unified-page .admin-primary-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .gallery-local-nav{top:82px;overflow:visible}
}
@media(max-width:680px){
  .silk-app-page{padding-bottom:92px}
  .gallery-hub-shell.studio-shell,.admin-unified-main{width:calc(100% - 20px)}
  .gallery-hub-intro.studio-page-head{align-items:stretch;flex-direction:column;padding:25px 2px 16px;gap:16px}
  .gallery-hub-intro.studio-page-head h1{font-size:44px}
  .gallery-hub-intro-actions{width:100%;justify-items:stretch}
  .admin-unified-head{padding:25px 2px 14px}
  .admin-unified-head .admin-title{font-size:44px}
  .admin-unified-page .admin-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .admin-unified-page .admin-primary-actions .btn{width:100%}
  .gallery-local-nav{top:74px;margin-bottom:14px;padding:5px;overflow-x:auto;overflow-y:visible;scrollbar-width:none;overscroll-behavior-inline:contain;backdrop-filter:none;-webkit-backdrop-filter:none}
  .gallery-local-nav::-webkit-scrollbar{display:none}
  .gallery-local-nav>.nav-item,.gallery-local-more>summary{min-height:44px;padding:8px 11px;font-size:10px}
  .gallery-local-more{position:static;margin-left:0}
  .gallery-local-more-menu{position:fixed;left:10px;right:10px;top:auto;bottom:78px;min-width:0;padding:8px;border-radius:16px}
  .global-settings-page .gallery-hub-secondary-body{padding-inline:12px}
}
@media(max-width:430px){
  .gallery-hub-shell.studio-shell,.admin-unified-main{width:calc(100% - 16px)}
  .gallery-hub-intro.studio-page-head h1,.admin-unified-head .admin-title{font-size:39px}
  .admin-unified-page .admin-primary-actions{grid-template-columns:1fr}
}
@media(max-width:680px){.gallery-local-more-menu{z-index:calc(var(--z-nav) + 3)}}

/* ===== themes.css ===== */
:root[data-theme="dark"]{color-scheme:dark;--surface-primary:#0e0e10;--surface-secondary:#131315;--surface-elevated:#1a1a1d;--surface-soft:#242428;--surface-overlay:rgba(0,0,0,.66);--text-primary:#f4f4f5;--text-secondary:#babac1;--text-muted:#86868f;--border-subtle:#2a2a2f;--border-strong:#46464d;--action-primary:#f4f4f5;--action-primary-hover:#fff;--action-primary-contrast:#0e0e10;--action-danger:#f08b80;--action-danger-contrast:#1c0f0d;--state-success:#6fbf8e;--state-warning:#e0a55a;--state-error:#f08b80;--focus-ring:#8ab4f8;--shadow-soft:0 12px 38px rgba(0,0,0,.28);--shadow-float:0 20px 65px rgba(0,0,0,.5);--shadow-ink:#000}
:root[data-theme="dark"] .switch-row input:checked,:root[data-theme="dark"] .feature-row input:checked{background:#f4f4f5}:root[data-theme="dark"] .switch-row input:checked::after,:root[data-theme="dark"] .feature-row input:checked::after{background:#0e0e10}
@media(prefers-color-scheme:dark){:root:not([data-theme]),:root[data-theme="system"]{color-scheme:dark;--surface-primary:#0e0e10;--surface-secondary:#131315;--surface-elevated:#1a1a1d;--surface-soft:#242428;--surface-overlay:rgba(0,0,0,.66);--text-primary:#f4f4f5;--text-secondary:#babac1;--text-muted:#86868f;--border-subtle:#2a2a2f;--border-strong:#46464d;--action-primary:#f4f4f5;--action-primary-hover:#fff;--action-primary-contrast:#0e0e10;--action-danger:#f08b80;--action-danger-contrast:#1c0f0d;--state-success:#6fbf8e;--state-warning:#e0a55a;--state-error:#f08b80;--focus-ring:#8ab4f8;--shadow-soft:0 12px 38px rgba(0,0,0,.28);--shadow-float:0 20px 65px rgba(0,0,0,.5);--shadow-ink:#000}:root:not([data-theme]) .switch-row input:checked,:root[data-theme="system"] .switch-row input:checked,:root:not([data-theme]) .feature-row input:checked,:root[data-theme="system"] .feature-row input:checked{background:#f4f4f5}:root:not([data-theme]) .switch-row input:checked::after,:root[data-theme="system"] .switch-row input:checked::after,:root:not([data-theme]) .feature-row input:checked::after,:root[data-theme="system"] .feature-row input:checked::after{background:#0e0e10}}

/* ===== responsive.css ===== */
@media(max-width:1100px){.readiness-grid{grid-template-columns:repeat(3,1fr)}.recent-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:920px){
 input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea{font-size:16px}
 body{padding-bottom:calc(82px + env(safe-area-inset-bottom))}.gallery-admin-bridge{width:calc(100% - 20px);margin:8px 10px 0;padding:8px 8px 8px 11px;border-radius:13px}.gallery-admin-bridge>span small{display:none}.gallery-admin-bridge>div{gap:4px}.gallery-admin-bridge .btn{min-height:44px;padding:7px 9px}.gallery-commandbar{display:none}.gallery-shell{padding:22px 16px 36px}.gallery-header{padding:28px 0 22px}.gallery-heading h1{font-size:clamp(42px,12vw,64px)}.gallery-commandbar{top:8px;border-radius:16px;min-height:56px}.commandbar-right .command-button span:not(.command-muted),.command-theme span{display:none}.commandbar-right .command-button{width:44px;padding:0}.filter-control select{min-width:110px;max-width:145px}.gallery-grid.dynamic-grid{gap:7px}.card-action-row{opacity:1;transform:none}.mobile-navigation-shell{display:grid;gap:7px;position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:var(--z-nav)}.mobile-bottom-nav{display:grid;grid-template-columns:repeat(var(--mobile-nav-items,4),1fr);position:static;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:20px;padding:6px;box-shadow:var(--shadow-float)}.mobile-bottom-nav button{min-width:0;min-height:54px;border:0;background:transparent;color:var(--text-muted);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.mobile-bottom-nav button.active{background:var(--surface-soft);color:var(--text-primary)}.mobile-bottom-nav .icon{width:19px;height:19px}.mobile-bottom-nav small{font-size:9px;color:inherit}.mobile-viewbar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:8px;z-index:calc(var(--z-nav) - 1);margin:0 0 12px;padding:0;background:transparent}.mobile-view-button{min-height:44px;border:1px solid var(--border-subtle);background:color-mix(in srgb,var(--surface-elevated) 94%,transparent);color:var(--text-secondary);border-radius:999px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;box-shadow:0 7px 22px color-mix(in srgb,var(--shadow-ink) 5%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.mobile-view-button.active{background:var(--surface-soft);color:var(--text-primary);border-color:var(--border-strong)}.mobile-view-button .icon{width:18px;height:18px}.mobile-filter-count{min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--surface-soft);color:var(--text-primary);display:grid;place-items:center;font-size:10px;font-weight:650}.mobile-filter-count[hidden]{display:none}.mobile-grid-button strong{min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--action-primary);color:var(--action-primary-contrast);display:grid;place-items:center;font-size:10px}.mobile-grid-popover{left:auto;right:0}.mobile-selection-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:50px;padding:6px 7px 6px 13px;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:17px;box-shadow:var(--shadow-float)}.mobile-selection-summary{font-size:11px;color:var(--text-secondary);white-space:nowrap}.mobile-selection-summary strong{color:var(--text-primary)}.mobile-selection-buttons{display:flex;align-items:center;gap:5px}.mobile-context-button{min-height:44px;border:0;border-radius:12px;padding:0 10px;background:var(--surface-soft);color:var(--text-primary);display:inline-flex;align-items:center;gap:6px;font-size:11px}.mobile-context-button .icon{width:16px;height:16px}.mobile-context-button:disabled{opacity:.55;cursor:default}.mobile-context-danger{background:color-mix(in srgb,var(--action-danger) 10%,var(--surface-elevated));color:var(--action-danger)}body.has-mobile-selection-actions{padding-bottom:calc(142px + env(safe-area-inset-bottom))}.mobile-sheet-backdrop{display:block;position:fixed;inset:0;z-index:calc(var(--z-nav) + 1);background:rgba(10,10,9,.34);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;transition:opacity var(--motion-normal) var(--ease)}.mobile-sheet-backdrop.open{opacity:1}.mobile-sheet-backdrop[hidden]{display:none}.mobile-more-menu{--sheet-drag-y:0px;display:block;position:fixed;left:0;right:0;bottom:0;z-index:calc(var(--z-nav) + 2);background:var(--surface-elevated);border-top:1px solid var(--border-subtle);border-radius:24px 24px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -20px 70px rgba(0,0,0,.18);transform:translateY(102%);transition:transform var(--motion-normal) var(--ease);max-height:min(72dvh,620px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y}.mobile-more-menu.open{transform:translateY(var(--sheet-drag-y))}.mobile-more-menu[hidden]{display:none}.mobile-sheet-handle{width:38px;height:4px;border-radius:999px;background:var(--border-strong);margin:2px auto 10px;cursor:grab;touch-action:none}.mobile-sheet-handle:active{cursor:grabbing}.mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.mobile-sheet-head strong{font:400 27px/1 var(--font-serif)}.sheet-row{width:100%;min-height:50px;border:0;border-top:1px solid var(--border-subtle);background:transparent;display:flex;align-items:center;gap:10px;padding:10px 2px;text-align:left}.sheet-row strong{margin-left:auto}.sheet-downloads>span{display:block;padding:14px 0 6px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.sheet-reset-group>span{display:block;padding:14px 0 6px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.sheet-reset-group .sheet-row strong{font-weight:500;color:var(--text-muted)}.mobile-more-menu form{margin:0}.gallery-footer{padding-bottom:10px}
 .viewer{height:100dvh;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;padding:0}.viewer.open{display:grid}.viewer-top{grid-column:1;padding:8px 10px;min-height:58px}.viewer-title h2{display:none}.viewer-stage{grid-column:1;padding:4px 8px}.viewer-arrow{display:none}.viewer-panel{position:absolute;left:8px;right:8px;bottom:calc(64px + env(safe-area-inset-bottom));z-index:4;grid-column:auto;grid-row:auto;border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:14px;max-height:52dvh;box-shadow:0 20px 80px rgba(0,0,0,.42)}.viewer.viewer-panel-hidden .viewer-panel{display:none}.viewer-strip{display:none}.viewer-mobile-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));grid-column:1;grid-row:3;padding:5px 6px calc(5px + env(safe-area-inset-bottom));background:#101110;border-top:1px solid #282925}.viewer-mobile-actions button{min-height:54px;border:0;background:transparent;color:#ccc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.viewer-mobile-actions span{font-size:9px}.viewer-mobile-actions .icon{width:19px;height:19px}.zoom-controls{bottom:7px}
 .admin-grid{display:block}.admin-sidebar{display:none}.admin-main{padding:20px 14px 104px}.admin-primary-actions{display:none}.admin-top{margin-bottom:2px}.overview-card-head,.section-head,.gallery-availability{align-items:stretch;flex-direction:column}.overview-actions{display:grid;grid-template-columns:1fr 1fr}.overview-actions .btn{width:100%}.readiness-grid{grid-template-columns:repeat(2,1fr)}.gallery-availability>.btn{align-self:flex-start}.form-grid,.feature-grid,.clean-form-grid{grid-template-columns:1fr}.recent-grid{grid-template-columns:repeat(3,1fr)}.access-status{margin-left:auto}.summary-action{display:none}.admin-mobile-tools{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:var(--z-nav);padding:6px;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:20px;box-shadow:var(--shadow-float)}.admin-mobile-tools a,.admin-mobile-tools button{width:100%;min-width:0;min-height:52px;border:0;background:transparent;border-radius:13px;font-size:10px;line-height:1.1;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;text-align:center}.admin-mobile-tools form{margin:0}.setup-shell{grid-template-columns:1fr;width:min(100% - 24px,720px);padding:20px 0}.setup-shell>.health-card{order:2}.upload-shell{width:min(100% - 24px,980px);padding-top:20px}.upload-head{flex-direction:column}.upload-card{margin-top:18px}.dropzone{min-height:220px}.upload-summary,.upload-footer{align-items:flex-start;flex-direction:column}.upload-footer .btn{width:100%}
 body[data-gridcols="1"] .gallery-grid.dynamic-grid{grid-template-columns:repeat(1,minmax(0,1fr))}body[data-gridcols="2"] .gallery-grid.dynamic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-gridcols="3"] .gallery-grid.dynamic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body[data-gridcols="4"] .gallery-grid.dynamic-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body[data-gridcols="5"] .gallery-grid.dynamic-grid{grid-template-columns:repeat(5,minmax(0,1fr))}body[data-gridcols="6"] .gallery-grid.dynamic-grid{grid-template-columns:repeat(6,minmax(0,1fr))}body[data-gridcols="7"] .gallery-grid.dynamic-grid{grid-template-columns:repeat(7,minmax(0,1fr))}body[data-gridcols="8"] .gallery-grid.dynamic-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.gallery-grid.dynamic-grid[data-cols="5"] .card-action-row,.gallery-grid.dynamic-grid[data-cols="6"] .card-action-row,.gallery-grid.dynamic-grid[data-cols="7"] .card-action-row,.gallery-grid.dynamic-grid[data-cols="8"] .card-action-row{display:none}.gallery-grid.dynamic-grid[data-cols="5"] .photo-badges,.gallery-grid.dynamic-grid[data-cols="6"] .photo-badges,.gallery-grid.dynamic-grid[data-cols="7"] .photo-badges,.gallery-grid.dynamic-grid[data-cols="8"] .photo-badges{display:none}
}
@media(max-width:520px){.gallery-commandbar{margin-left:-6px;margin-right:-6px;padding:6px}.filter-control{padding-left:8px}.filter-control select{min-width:92px;max-width:118px;padding-right:20px}.commandbar-right #openCompareBtn,.commandbar-right #downloadMenuBtn,.commandbar-right #themeToggle{display:none}.grid-popover{left:-6px}.gallery-footer{flex-direction:column}.recent-grid{grid-template-columns:repeat(2,1fr)}.overview-card{padding:18px}.overview-actions{grid-template-columns:1fr}.readiness-grid{grid-template-columns:repeat(2,1fr)}.readiness-grid>div{padding:13px}.clean-actions{display:grid;grid-template-columns:1fr}.access-item>summary{padding:12px}.table-row{grid-template-columns:1fr 1fr}.table-row span:nth-child(4){text-align:right}.setup-card,.login-card{padding:20px}.legal-list{grid-template-columns:1fr}}
@media(max-width:920px) and (orientation:landscape) and (max-height:600px){body{padding-bottom:0}.mobile-navigation-shell,.mobile-bottom-nav{display:none}.gallery-shell{padding-bottom:24px}.viewer-mobile-actions{padding-bottom:5px}.viewer-panel{bottom:64px;max-height:70dvh}.admin-mobile-tools{display:none}.admin-main{padding-bottom:28px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}
@media(max-width:920px){.gallery-share-row{grid-template-columns:1fr}.gallery-link-control{grid-template-columns:1fr}}


/* v1.2.8 — mobile viewer: one fast-action bar + one collapsible details sheet. */
@media(max-width:920px){
  #viewerPanelToggle{display:none!important}
  .viewer-panel{
    --viewer-panel-drag-y:0px;
    padding:0 14px 14px;
    transform:translateY(var(--viewer-panel-drag-y));
    transition:transform var(--motion-normal) var(--ease);
    overscroll-behavior:contain;
  }
  .viewer-panel-head{
    position:sticky;
    top:0;
    z-index:5;
    width:calc(100% + 28px);
    min-height:48px;
    margin:0 -14px 6px;
    padding:8px 14px 9px;
    border:0;
    border-bottom:1px solid rgba(255,255,255,.07);
    background:color-mix(in srgb,var(--viewer-surface) 94%,transparent);
    color:var(--viewer-muted);
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:8px;
    text-align:center;
    touch-action:none;
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
  }
  .viewer-panel-head::before{
    content:"";
  }
  .viewer-panel-head-label{
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .viewer-panel-head .icon{
    justify-self:end;
    width:17px;
    height:17px;
  }
  .viewer-panel-grip{
    position:absolute;
    top:5px;
    left:50%;
    width:34px;
    height:3px;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    transform:translateX(-50%);
    display:block;
  }
  .viewer-selection-section{display:none!important}
  #viewerCompare{display:none!important}
  .viewer-mobile-actions button{
    border-radius:12px;
    transition:background var(--motion-fast) var(--ease),color var(--motion-fast) var(--ease);
  }
  .viewer-mobile-actions button.active,
  .viewer-mobile-actions button[aria-pressed="true"]{
    background:rgba(255,255,255,.065);
    color:#f1ede7;
  }
  .viewer-mobile-actions #mobMore[aria-expanded="true"]{
    background:rgba(255,255,255,.065);
    color:#f1ede7;
  }
}

/* v1.2.8 — workflow additions collapse into the existing hierarchy on small screens. */
@media(max-width:920px){
  .selection-finish-bar{margin-top:2px;padding:10px 11px;border-radius:12px}.selection-finish-bar .btn{min-height:44px;padding:8px 11px;font-size:11px}
  .availability-form{align-items:stretch}.availability-form>.switch-row{flex-basis:auto}.gallery-expiry{min-width:0;width:100%}.availability-form>.btn{align-self:flex-start}
  .selection-admin-strip{align-items:stretch;flex-direction:column}.selection-admin-actions{justify-content:flex-start;flex-wrap:wrap}.selection-export-menu{left:0;right:auto}
  .trash-row{grid-template-columns:1fr}.trash-row>div{justify-content:flex-start;flex-wrap:wrap}.trash-empty{justify-content:flex-start}
  .backup-tools{grid-template-columns:1fr}
  .create-gallery-foot{align-items:flex-start;flex-direction:column}.create-gallery-foot .btn{width:100%}
}
@media(max-width:520px){
  .selection-finish-bar{align-items:stretch;flex-direction:column}.selection-finish-bar .btn{width:100%}
  .selection-export-fold,.selection-export-fold>summary{width:100%}.selection-admin-actions{width:100%;display:grid;grid-template-columns:1fr}.selection-admin-actions form,.selection-admin-actions .btn{width:100%}.selection-export-menu{position:static;width:100%;margin-top:6px;box-shadow:none}
  .trash-row>div{display:grid;grid-template-columns:1fr 1fr}.trash-row>div form,.trash-row>div .btn{width:100%}.trash-empty .btn{width:100%}
}

@media(max-width:520px){.trash-pagination{justify-content:space-between}.trash-pagination .btn{width:auto}}

/* v1.2.8 — at dense mobile grids the photo itself wins; fast actions remain in the viewer. */
@media(max-width:920px){
 body[data-gridcols="3"] .card-action-row,body[data-gridcols="4"] .card-action-row,body[data-gridcols="5"] .card-action-row,body[data-gridcols="6"] .card-action-row,body[data-gridcols="7"] .card-action-row,body[data-gridcols="8"] .card-action-row{display:none}
}

/* v1.3.0 — Admin mobile keeps all options reachable without crowding the primary nav. */
@media(max-width:920px){
  .admin-main{padding:18px 14px 108px;gap:16px}
  .admin-top{align-items:flex-start;padding:2px 1px 15px;border-bottom:1px solid var(--border-subtle)}
  .admin-title{font-size:clamp(39px,11vw,52px)}
  .admin-sub{font-size:12px}
  .mobile-gallery-select{margin:0;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:13px;background:var(--surface-elevated);box-shadow:0 6px 18px color-mix(in srgb,var(--shadow-ink) 3%,transparent)}
  .mobile-gallery-select select{min-height:42px;background:var(--surface-secondary)}
  .card{border-radius:18px;box-shadow:0 9px 26px color-mix(in srgb,var(--shadow-ink) 3%,transparent)}
  .overview-card{padding:20px}
  .overview-card-head{gap:16px}
  .overview-actions{gap:7px}
  .readiness-grid{gap:7px}
  .readiness-grid>div{padding:12px 13px;border-radius:11px}
  .section-card{padding:20px}
  .simple-head{margin-bottom:17px}
  .simple-head h2{font-size:29px}
  .admin-mobile-tools{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;left:9px;right:9px;padding:5px;border-radius:18px;background:var(--surface-elevated);backdrop-filter:none;-webkit-backdrop-filter:none;overflow:hidden;isolation:isolate}
  .admin-mobile-tools a,.admin-mobile-tools button{min-width:0;min-height:50px;padding:4px 2px;font-weight:600;line-height:1.1;display:flex;align-items:center;justify-content:center;text-align:center;transition:background var(--motion-fast),color var(--motion-fast)}
  .admin-mobile-tools a.active,.admin-mobile-tools button[aria-expanded="true"]{background:color-mix(in srgb,var(--action-primary) 8%,var(--surface-secondary));color:var(--text-primary)}
  .admin-mobile-sheet-backdrop{display:block;position:fixed;inset:0;z-index:58;background:var(--surface-overlay);opacity:0;pointer-events:none;transition:opacity var(--motion-fast)}
  .admin-mobile-sheet-backdrop.is-open{opacity:1;pointer-events:auto}
  .admin-mobile-sheet{display:block;position:fixed;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:59;padding:7px 14px calc(14px + env(safe-area-inset-bottom));border:1px solid var(--border-subtle);border-radius:22px;background:var(--surface-elevated);box-shadow:var(--shadow-float);transform:translateY(calc(100% + 28px));opacity:0;visibility:hidden;transition:transform 220ms ease,opacity 180ms ease,visibility 0s linear 220ms;touch-action:pan-y}
  .admin-mobile-sheet.is-open{transform:translateY(0);opacity:1;visibility:visible;transition:transform 220ms ease,opacity 180ms ease}
  .admin-mobile-sheet-handle{width:36px;height:4px;margin:2px auto 10px;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 34%,transparent)}
  .admin-mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:2px 1px 12px}
  .admin-mobile-sheet-head>div{display:grid;gap:2px}
  .admin-mobile-sheet-head strong{font:400 24px/1.05 var(--font-serif)}
  .admin-sheet-close{min-height:44px;padding:7px 10px;font-size:11px}
  .admin-mobile-sheet-links{display:grid;gap:2px;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:5px 0}
  .admin-mobile-sheet-links>a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:59px;padding:9px 5px;color:var(--text-primary)}
  .admin-mobile-sheet-links>a>span:first-child{display:grid;gap:3px}
  .admin-mobile-sheet-links strong{font-size:13px}
  .admin-mobile-sheet-links small{font-size:10px;line-height:1.35;color:var(--text-muted)}
  .admin-mobile-sheet-links>a>span:last-child{font-size:22px;color:var(--text-muted)}
  .admin-mobile-sheet-logout{margin:12px 0 0}
  .admin-mobile-sheet-logout .btn{width:100%}
  body.admin-sheet-open{overflow:hidden}
}

@media(max-width:520px){
  .admin-main{padding-left:11px;padding-right:11px}
  .overview-card,.section-card{padding:17px}
  .readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .readiness-grid>div{padding:11px}
  .readiness-grid .readiness-customer{grid-column:1/-1}
  .next-action-strip{padding:13px}
  .gallery-share-row{gap:12px}
}
@media(max-width:920px){
  .admin-mobile-sheet-links>a::after{content:"";width:8px;height:8px;border-top:1.5px solid var(--text-muted);border-right:1.5px solid var(--text-muted);transform:rotate(45deg);margin-right:7px;flex:0 0 auto}
}

/* v1.3.1 — contextual mobile actions stay compact when several actions are available. */
@media(max-width:430px){#mobileContextDownloadSelected,#mobileContextClearSelection,#mobileDeleteSelectedBtn{width:40px;min-width:40px;padding:0;justify-content:center}#mobileContextDownloadSelected span,#mobileContextClearSelection span,#mobileDeleteSelectedBtn span{display:none}.mobile-selection-buttons{min-width:0}.mobile-selection-actions{gap:7px}.mobile-selection-summary{flex:0 0 auto}}

/* v1.3.2 — gallery library is the mobile entry point; no gallery selector inside Control Center. */
@media(max-width:1100px){.gallery-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:920px){
  .gallery-hub-shell{width:min(100% - 28px,760px);padding:18px 0 34px}
  .gallery-hub-header{padding-bottom:16px}.gallery-hub-account>span{display:none}
  .gallery-hub-intro{align-items:flex-start;padding:36px 1px 22px}.gallery-hub-intro h1{font-size:clamp(45px,12vw,64px)}
  .admin-gallery-back-mobile{display:inline-flex;align-items:center;gap:5px;margin:0 0 13px;color:var(--text-muted);font-size:11px;font-weight:650}
}
@media(max-width:680px){
  .gallery-hub-intro{display:grid;gap:18px}.gallery-hub-intro>.btn{width:100%;margin:0}
  .gallery-hub-grid{grid-template-columns:1fr;gap:16px}
  .gallery-hub-card{border-radius:19px}.gallery-hub-cover{aspect-ratio:16/10}.gallery-hub-meta{padding:15px 16px 16px}.gallery-hub-copy strong{font-size:23px}
  .gallery-hub-status{max-width:125px}
  .gallery-hub-create[open]{margin-bottom:18px}.gallery-hub-create .form-grid{grid-template-columns:1fr}.gallery-hub-create .span-2{grid-column:auto}.gallery-hub-create .create-gallery-foot{align-items:stretch;flex-direction:column}.gallery-hub-create .create-gallery-foot .btn{width:100%}
}
@media(max-width:430px){.gallery-hub-shell{width:calc(100% - 22px)}.gallery-hub-header{gap:12px}.gallery-hub-brand .brand-title{font-size:20px}.gallery-hub-account .btn{min-height:44px;padding:7px 10px;font-size:11px}.gallery-hub-meta{gap:10px}.gallery-hub-status{font-size:8px}}


/* v1.3.4 — mobile overflow/alignment hardening for all Control Center sections. */
@media(max-width:920px){
  .admin-page{overflow-x:hidden}
  .admin-main{width:100%;max-width:100%;min-width:0}
  .admin-main>*,.admin-main .card,.admin-main .fold-card,.admin-main .access-item,.admin-main form,.admin-main label,.admin-main details{min-width:0;max-width:100%}
  .admin-main .gallery-share-row,.admin-main .gallery-link-control,.admin-main .gallery-availability,.admin-main .availability-form,.admin-main .form-grid,.admin-main .feature-grid,.admin-main .clean-form-grid{width:100%;min-width:0;max-width:100%}
  .admin-main input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),.admin-main select,.admin-main textarea{width:100%;min-width:0;max-width:100%}
  .admin-main input[type="datetime-local"]{min-width:0;max-width:100%}
  .admin-main .gallery-link-control input{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .admin-main .fold-card>summary,.admin-main .access-item>summary{line-height:1.25}
  .admin-mobile-tools{background:var(--surface-elevated)}
  .admin-mobile-tools a,.admin-mobile-tools button{display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.1}
}

/* v1.3.7 — Viewer landscape: one coherent canvas + integrated side sheet. */
@media (max-width:1180px) and (orientation:landscape) and (max-height:600px){
  .viewer,
  .viewer.viewer-panel-hidden,
  .viewer.viewer-panel-hidden.open{
    box-sizing:border-box;
    width:100%;
    height:100%;
    min-height:100dvh;
    padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(0,1fr)!important;
    overflow:hidden;
    background:#080808;
  }
  .viewer.open:not(.viewer-panel-hidden){
    grid-template-columns:minmax(0,1fr) clamp(292px,32vw,360px)!important;
  }

  /* Chrome floats over the image and never consumes image height. */
  .viewer-top{
    position:absolute;
    z-index:10;
    top:calc(env(safe-area-inset-top) + 10px);
    left:calc(env(safe-area-inset-left) + 12px);
    right:calc(env(safe-area-inset-right) + 12px);
    grid-column:auto!important;
    min-height:42px;
    padding:0;
    border:0;
    background:transparent;
    pointer-events:none;
    transition:right var(--motion-fast) var(--ease);
  }
  .viewer.open:not(.viewer-panel-hidden) .viewer-top{
    right:calc(clamp(292px,32vw,360px) + env(safe-area-inset-right) + 12px);
  }
  .viewer-title,.viewer-top-actions{pointer-events:auto}
  .viewer-title h2{display:none}
  .viewer-title>span,
  #viewerPanelToggle,
  .viewer-close{
    border:1px solid rgba(255,255,255,.10);
    background:rgba(17,18,17,.72);
    color:#e8e2da;
    -webkit-backdrop-filter:blur(18px) saturate(1.08);
    backdrop-filter:blur(18px) saturate(1.08);
    box-shadow:0 10px 30px rgba(0,0,0,.20);
  }
  .viewer-title>span{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border-radius:999px}
  .viewer-top-actions{display:flex;align-items:center;gap:7px}
  #viewerPanelToggle{display:inline-flex!important;min-height:42px;padding:0 12px;border-radius:999px;font-size:0}
  #viewerPanelToggle::after{content:"Details";font-size:10px;letter-spacing:.04em}
  #viewerPanelToggle .icon{width:17px;height:17px}
  .viewer.open:not(.viewer-panel-hidden) #viewerPanelToggle{display:none!important}
  .viewer-close{width:42px;min-height:42px;border-radius:50%;padding:0}

  /* Canvas is the source of truth for 100% fit. */
  .viewer-stage{
    grid-column:1!important;
    grid-row:1!important;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    padding:8px 10px;
    overflow:hidden;
  }
  .viewer-canvas{
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    border-radius:14px;
    overflow:hidden;
    background:#080808;
  }
  .viewer-canvas img,
  .viewer-canvas img[data-zoom-state="fit"]{
    flex:none!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:50% 50%!important;
  }
  .zoom-controls{
    bottom:10px;
    max-width:calc(100% - 24px);
    background:rgba(17,18,17,.72);
    border-color:rgba(255,255,255,.10);
    -webkit-backdrop-filter:blur(18px) saturate(1.08);
    backdrop-filter:blur(18px) saturate(1.08);
    box-shadow:0 10px 30px rgba(0,0,0,.20);
  }

  /* Details are a proper part of the viewer only while open — no detached rail. */
  .viewer-panel{
    display:block!important;
    position:relative!important;
    grid-column:2!important;
    grid-row:1!important;
    z-index:7;
    width:auto!important;
    height:100%!important;
    min-width:0!important;
    max-width:none!important;
    max-height:none!important;
    padding:0 16px 18px!important;
    border:0!important;
    border-left:1px solid rgba(255,255,255,.08)!important;
    border-radius:0!important;
    background:linear-gradient(180deg,rgba(24,25,23,.98),rgba(17,18,17,.98))!important;
    box-shadow:-18px 0 42px rgba(0,0,0,.18)!important;
    overflow:auto!important;
    overscroll-behavior:contain;
    transform:none!important;
  }
  .viewer.viewer-panel-hidden .viewer-panel{display:none!important}
  .viewer-panel-head{
    position:sticky!important;
    top:0;
    z-index:5;
    width:calc(100% + 32px)!important;
    min-height:52px;
    margin:0 -16px 8px!important;
    padding:8px 16px!important;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.07)!important;
    background:rgba(22,23,21,.96)!important;
    color:var(--viewer-muted)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    text-align:left!important;
    touch-action:manipulation!important;
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
  }
  .viewer-panel-head::before{display:none!important}
  .viewer-panel-grip{display:none!important}
  .viewer-panel-head-label{display:block!important;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
  .viewer-panel-head .icon{width:17px;height:17px;transform:rotate(-90deg)}
  .viewer-comment-input{grid-template-columns:minmax(0,1fr) auto!important;align-items:stretch!important}
  .viewer-comment-input input{min-width:0!important}
  .viewer-comment-input button{min-width:84px!important;white-space:nowrap}
  .viewer-panel section{width:100%;min-width:0}
  .viewer-selection-section{display:block!important}
  #viewerCompare:not(.feature-off){display:flex!important}
  .viewer-mobile-actions{display:none!important}
}

/* v1.3.9 — compact, orientation-safe Control Center workspaces. */
@media(max-width:920px){
  .admin-main{gap:14px}
  .admin-top{padding-bottom:13px}
  .admin-top .admin-title{font-size:clamp(31px,9.2vw,42px);line-height:1.02}
  .admin-gallery-title-row{gap:8px}
  .admin-gallery-title-row .status-pill{font-size:9px;min-height:25px}
  .overview-card,.section-card{padding:18px}
  .cc-view-head{align-items:stretch;flex-direction:column;gap:12px;margin-bottom:15px}
  .cc-view-head h2{font-size:31px}
  .cc-view-head p{font-size:12px}
  .cc-view-head .overview-actions{display:grid;grid-template-columns:1fr}
  .cc-view-head .overview-actions .btn{width:100%}
  .cc-readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .cc-readiness-grid>div{min-height:78px;padding:12px}
  .cc-overview-fold,.gallery-details-fold{margin-top:10px}
  .gallery-management-section.admin-workspace{margin-top:-5px}
}
@media(max-width:430px){
  .admin-main{padding-left:10px;padding-right:10px}
  .overview-card,.section-card{padding:16px}
  .cc-readiness-grid{grid-template-columns:1fr 1fr}
  .cc-readiness-grid strong{font-size:12px}
  .cc-fold-summary small{font-size:9px}
}

@media(max-width:520px){.cc-readiness-grid .readiness-customer{grid-column:auto!important}}

/* v1.3.10 — portrait grid picker always exposes 1–8 in two complete rows. */
@media(max-width:920px) and (orientation:portrait){
  .mobile-grid-menu{min-width:0}
  .mobile-grid-popover{
    left:auto!important;right:0!important;
    width:min(220px,calc(100vw - 32px));
    max-width:calc(100vw - 32px);
    grid-template-columns:repeat(4,minmax(44px,1fr));
    gap:6px;padding:8px;
    overflow:visible;
  }
  .mobile-grid-popover button{width:100%;min-width:44px;height:44px;min-height:44px}
}
@media(max-width:520px) and (orientation:portrait){.mobile-grid-popover{left:auto!important;right:0!important}}

/* v1.3.11 — review controls remain usable and contained on narrow screens. */
@media(max-width:920px){
  .guest-review-row{grid-template-columns:64px minmax(0,1fr);align-items:start}
  .guest-review-preview{width:64px;height:64px}
  .guest-review-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}
  .guest-review-actions form,.guest-review-actions .btn{width:100%}
  .guest-upload-policy-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .guest-uploader-field{padding:12px}
  .guest-review-row{grid-template-columns:58px minmax(0,1fr);padding:8px}
  .guest-review-preview{width:58px;height:58px}
}

/* v1.3.15 — pending guest review keeps the image action discoverable on narrow screens. */
@media(max-width:920px){
  .guest-review-actions>button[data-review-open]{grid-column:1/-1;width:100%}
}


/* v1.3.17 — compact, premium gallery rhythm on handheld screens. */
@media(max-width:920px){
  .gallery-page .gallery-shell{padding:10px 16px 34px}
  .gallery-page .gallery-header{padding:14px 0 14px}
  .gallery-page .gallery-kicker{margin-bottom:6px}
  .gallery-page .gallery-meta{gap:6px 14px;margin-top:9px;font-size:11px}
  .customer-preview-mode .gallery-shell{padding-top:8px}
  .customer-preview-bar{top:6px;width:calc(100% - 20px);margin:6px 10px 0;padding:5px 6px 5px 10px;gap:8px;border-radius:12px;box-shadow:0 5px 18px color-mix(in srgb,var(--shadow-ink) 4%,transparent)}
  .customer-preview-bar strong{font-size:11px}
  .customer-preview-bar a{min-height:44px;padding:6px 9px;border-radius:9px;font-size:10px}
  .gallery-collection-tabs{box-shadow:none;background:var(--surface-elevated)}
  .gallery-collection-tabs button{font-size:13px}
  .mobile-viewbar{gap:8px;margin-bottom:8px}
  .mobile-view-button{min-height:44px;gap:6px;padding:0 10px;border-radius:14px;background:var(--surface-elevated);font-size:13px;box-shadow:0 4px 14px color-mix(in srgb,var(--shadow-ink) 4%,transparent);backdrop-filter:none;-webkit-backdrop-filter:none}
  .mobile-view-button .icon{width:17px;height:17px}
  .mobile-filter-count,.mobile-grid-button strong{min-width:18px;height:18px;padding:0 4px;font-size:9px}
  .mobile-filter-popover{top:calc(100% + 6px);width:min(272px,calc(100vw - 32px));padding:6px;border-radius:14px;box-shadow:0 16px 42px color-mix(in srgb,var(--shadow-ink) 12%,transparent);max-height:min(66dvh,440px)}
  .mobile-filter-popover-head{padding:4px 7px 6px;margin-bottom:3px}
  .mobile-filter-popover-head strong{font-size:14px;line-height:1.2}
  .mobile-filter-popover-head small{display:none}
  .mobile-filter-group{padding:2px 0}
  .mobile-filter-group+.mobile-filter-group{margin-top:3px;padding-top:5px}
  .mobile-filter-group-label{padding:3px 8px 4px;font-size:8px;letter-spacing:.11em}
  .mobile-filter-popover button{min-height:44px;padding:6px 8px;border-radius:9px;grid-template-columns:minmax(0,1fr) auto 16px;gap:6px}
  .mobile-filter-item-main{gap:7px;font-size:11px}
  .mobile-filter-item-main .icon{width:15px;height:15px}
  .mobile-filter-item-count{min-width:21px;height:19px;padding:0 5px;font-size:8px}
  .mobile-filter-footer{margin-top:3px;padding-top:3px}
  .selection-finish-bar{margin:0 0 10px;padding:8px 9px 8px 11px;gap:8px;border-radius:12px;box-shadow:none}
  .selection-finish-bar strong{font-size:12px}
  .selection-finish-bar small{font-size:10px}
  .selection-finish-bar .btn{min-height:44px;padding:7px 11px;font-size:10px;white-space:nowrap}
}
@media(max-width:520px){
  .selection-finish-bar{align-items:center;flex-direction:row}
  .selection-finish-bar .btn{width:auto;flex:0 0 auto}
}

/* v1.3.20 — Foto Galerie 2(9) compact contract: above threshold icon-only; first tap expands; scroll/idle collapses again. */
@media(max-width:920px){
  .mobile-viewbar{transition:gap var(--motion-fast) var(--ease),margin var(--motion-fast) var(--ease)}
  .mobile-viewbar .mobile-view-button{transition:width var(--motion-fast) var(--ease),padding var(--motion-fast) var(--ease),border-radius var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease)}
  .mobile-viewbar.is-scroll-compact{gap:6px;flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .mobile-viewbar.is-scroll-compact::-webkit-scrollbar{height:0}
  .mobile-viewbar.is-scroll-compact .mobile-view-button{width:44px;min-width:44px;height:44px;padding:0;justify-content:center;border-radius:999px}
  .mobile-viewbar.is-scroll-compact .mobile-view-button>span,
  .mobile-viewbar.is-scroll-compact .mobile-view-button>strong{display:none!important}
  .mobile-viewbar.is-scroll-compact .mobile-filter-menu,
  .mobile-viewbar.is-scroll-compact .mobile-grid-menu{flex:0 0 44px}
}

/* v1.3.29 — keep image-only viewer authoritative over mobile/landscape overrides. */
.viewer.viewer-photo-only.open,.viewer.viewer-photo-only.viewer-panel-hidden.open{grid-template-columns:1fr!important;grid-template-rows:1fr!important}
.viewer.viewer-photo-only .viewer-top,.viewer.viewer-photo-only .viewer-arrow,.viewer.viewer-photo-only .zoom-controls,.viewer.viewer-photo-only .viewer-panel,.viewer.viewer-photo-only .viewer-strip,.viewer.viewer-photo-only .viewer-mobile-actions{display:none!important}
.viewer.viewer-photo-only .viewer-stage{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;grid-column:1!important;grid-row:1!important;padding:0!important}
.viewer.viewer-photo-only .viewer-canvas{width:100%!important;height:100%!important;min-height:100%!important}


/* v1.3.32 — readiness and expiry stay compact on small screens. */
@media(max-width:920px){
  .gallery-ready-check{align-items:stretch;display:grid}.gallery-ready-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.gallery-ready-items>span{min-width:0}
  .gallery-expiry-alert,.expiry-inline-tools{align-items:stretch;display:grid}.expiry-quick-actions{justify-content:flex-start}
}
@media(max-width:520px){
  .gallery-ready-items{grid-template-columns:1fr 1fr}.gallery-ready-items>span{padding:8px}.gallery-expiry-alert .expiry-quick-actions,.expiry-inline-tools .expiry-quick-actions{display:grid;grid-template-columns:1fr 1fr}.expiry-inline-tools .expiry-quick-actions form:last-child{grid-column:1/-1}.gallery-expiry-alert .expiry-quick-actions .btn,.expiry-inline-tools .expiry-quick-actions .btn{width:100%}
}


/* v1.4.0-rc2 UX2.2 — contain WebKit datetime controls inside Control Center cards. */
.admin-page .native-datetime-shell{display:block;width:100%;inline-size:100%;min-width:0;min-inline-size:0;max-width:100%;max-inline-size:100%;overflow:hidden;box-sizing:border-box;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-elevated)}
.admin-page .native-datetime-shell input[type="datetime-local"]{display:block;width:100%!important;inline-size:100%!important;min-width:0!important;min-inline-size:0!important;max-width:100%!important;max-inline-size:100%!important;box-sizing:border-box!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.admin-page .native-datetime-shell:focus-within{outline:3px solid var(--focus-ring);outline-offset:3px}.admin-page .native-datetime-shell input[type="datetime-local"]:focus-visible{outline:none}
@supports (-webkit-touch-callout:none){.admin-page .native-datetime-shell input[type="datetime-local"]{-webkit-appearance:none;appearance:none}.admin-page .native-datetime-shell input[type="datetime-local"]::-webkit-datetime-edit,.admin-page .native-datetime-shell input[type="datetime-local"]::-webkit-datetime-edit-fields-wrapper{min-width:0;max-width:100%}}
.admin-page .native-datetime-shell input[type="datetime-local"]::-webkit-date-and-time-value{text-align:left}

/* v1.5.0-rc1 — payment-gated final delivery, visually subordinate to the photos. */
.gallery-payment-gate{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;width:min(760px,100%);margin:0 0 18px;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:15px;background:color-mix(in srgb,var(--surface-elevated) 82%,transparent);color:var(--text-primary)}
.gallery-payment-gate-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--border-subtle);border-radius:999px;color:var(--text-muted);font-size:11px}.gallery-payment-gate>span:last-child{display:grid;gap:2px;min-width:0}.gallery-payment-gate strong{font-size:12px;line-height:1.35}.gallery-payment-gate small{font-size:10px;line-height:1.45;color:var(--text-muted)}
@media(max-width:920px){.gallery-payment-gate{margin:0 0 12px;padding:10px 11px;border-radius:13px}.gallery-payment-gate strong{font-size:11px}.gallery-payment-gate small{font-size:9.5px}}

/* RC8 Polish 9 — image-first gallery hub with instant search. */
.gallery-hub-search{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}
.gallery-hub-search-field{position:relative;display:flex;align-items:center;width:min(560px,100%);min-height:48px;margin:0;border:1px solid var(--border-subtle);border-radius:15px;background:var(--surface-elevated);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}
.gallery-hub-search-field:focus-within{border-color:color-mix(in srgb,var(--text-primary) 24%,var(--border-subtle));box-shadow:0 0 0 3px color-mix(in srgb,var(--text-primary) 5%,transparent)}
.gallery-hub-search-icon{flex:0 0 auto;margin-left:15px;color:var(--text-muted);font-size:20px;line-height:1}
.gallery-hub-search-field input{width:100%;min-width:0;min-height:46px;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:0 44px 0 10px;font:inherit;font-size:14px;color:var(--text-primary)}
.gallery-hub-search-field input::-webkit-search-cancel-button{display:none}
.gallery-hub-search-field input::placeholder{color:var(--text-muted)}
.gallery-hub-search-clear{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer}
.gallery-hub-search-clear:hover{background:var(--surface-soft);color:var(--text-primary)}.gallery-hub-search-clear:focus-visible{background:var(--surface-soft);color:var(--text-primary);outline:3px solid var(--focus-ring);outline-offset:2px}
.gallery-hub-search-meta{flex:0 0 auto;color:var(--text-muted);font-size:10px;font-weight:650;white-space:nowrap}
.gallery-hub-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 14px}
.gallery-hub-photo-grid .gallery-hub-card{display:block;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;transition:none}
.gallery-hub-photo-grid .gallery-hub-card:hover,.gallery-hub-photo-grid .gallery-hub-card:focus-visible{transform:none;border-color:transparent;box-shadow:none;outline:none}
.gallery-hub-photo-grid .gallery-hub-cover{border-radius:15px;aspect-ratio:4/3;box-shadow:0 8px 28px color-mix(in srgb,var(--shadow-ink) 5%,transparent);transition:transform var(--motion-fast),box-shadow var(--motion-fast)}
.gallery-hub-photo-grid .gallery-hub-card:hover .gallery-hub-cover,.gallery-hub-photo-grid .gallery-hub-card:focus-visible .gallery-hub-cover{transform:translateY(-2px);box-shadow:0 14px 34px color-mix(in srgb,var(--shadow-ink) 9%,transparent)}
.gallery-hub-photo-grid .gallery-hub-card:focus-visible .gallery-hub-cover{outline:2px solid color-mix(in srgb,var(--text-primary) 42%,transparent);outline-offset:3px}
.gallery-hub-status-on-cover{position:absolute;top:10px;right:10px;z-index:2;max-width:calc(100% - 20px);background:color-mix(in srgb,var(--surface-elevated) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 2px 12px rgba(0,0,0,.08)}
.gallery-hub-status-on-cover.is-live{background:color-mix(in srgb,var(--state-success) 16%,var(--surface-elevated));color:var(--state-success)}
.gallery-hub-photo-grid .gallery-hub-meta{display:block;padding:9px 2px 0}
.gallery-hub-photo-grid .gallery-hub-copy{gap:3px}
.gallery-hub-photo-grid .gallery-hub-copy strong{font:500 16px/1.2 var(--font-sans);letter-spacing:-.01em}
.gallery-hub-photo-grid .gallery-hub-copy small{font-size:9px}
.gallery-hub-no-results{min-height:220px;display:grid;place-content:center;justify-items:center;text-align:center;padding:28px;border:1px dashed var(--border-subtle);border-radius:18px;color:var(--text-secondary)}
.gallery-hub-no-results[hidden]{display:none}.gallery-hub-no-results strong{font:400 26px/1.1 var(--font-serif);color:var(--text-primary)}.gallery-hub-no-results p{margin:7px 0 14px;font-size:12px;color:var(--text-muted)}
@media(max-width:1180px){.gallery-hub-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){.gallery-hub-search{align-items:stretch;flex-direction:column;gap:8px;margin-bottom:16px}.gallery-hub-search-field{width:100%}.gallery-hub-search-meta{padding-left:2px}.gallery-hub-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px}.gallery-hub-photo-grid .gallery-hub-cover{border-radius:13px}.gallery-hub-photo-grid .gallery-hub-copy strong{font-size:15px}.gallery-hub-status-on-cover{top:7px;right:7px;font-size:8px;padding:4px 6px}.gallery-hub-search-field input{font-size:16px}}
@media(max-width:360px){.gallery-hub-photo-grid{grid-template-columns:1fr}.gallery-hub-photo-grid .gallery-hub-copy strong{font-size:16px}}
.gallery-hub-card[hidden]{display:none!important}

/* RC8 Polish 15 — subtle focus rail while the local gallery navigation is sticky. */
.gallery-local-nav{transition:padding var(--motion-fast),background var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast)}
.gallery-local-nav>.nav-item,.gallery-local-more>summary{position:relative;transition:min-height var(--motion-fast),padding var(--motion-fast),background var(--motion-fast),color var(--motion-fast)}
.gallery-local-nav.is-focus-rail{padding:5px;border-color:color-mix(in srgb,var(--text-primary) 11%,var(--border-subtle));background:color-mix(in srgb,var(--surface-elevated) 98%,transparent);box-shadow:0 10px 26px color-mix(in srgb,var(--shadow-ink) 7%,transparent)}
.gallery-local-nav.is-focus-rail>.nav-item,.gallery-local-nav.is-focus-rail .gallery-local-more>summary{min-height:44px;padding-block:7px}
.gallery-local-nav.is-focus-rail>.nav-item.active::after,.gallery-local-nav.is-focus-rail .gallery-local-more>summary.active::after,.gallery-local-nav.is-focus-rail .gallery-local-more[open]>summary::after{content:"";position:absolute;left:50%;bottom:4px;width:24px;height:1px;border-radius:999px;background:color-mix(in srgb,var(--text-primary) 72%,transparent);transform:translateX(-50%);pointer-events:none}
@media(max-width:680px){
  .gallery-local-nav.is-focus-rail{padding:4px;background:color-mix(in srgb,var(--surface-elevated) 99%,transparent);box-shadow:0 8px 22px color-mix(in srgb,var(--shadow-ink) 8%,transparent);backdrop-filter:none;-webkit-backdrop-filter:none}
  .gallery-local-nav.is-focus-rail>.nav-item,.gallery-local-nav.is-focus-rail .gallery-local-more>summary{min-height:44px;padding-block:7px}
}


/* Systemic native temporal-control containment — prevents iOS/WebKit controls from exceeding cards. */
input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"]{display:block;width:100%!important;inline-size:100%!important;min-width:0!important;min-inline-size:0!important;max-width:100%!important;max-inline-size:100%!important;box-sizing:border-box!important;overflow:hidden!important}
input[type="date"]::-webkit-date-and-time-value,input[type="time"]::-webkit-date-and-time-value,input[type="datetime-local"]::-webkit-date-and-time-value,input[type="month"]::-webkit-date-and-time-value,input[type="week"]::-webkit-date-and-time-value{display:block;min-width:0!important;max-width:100%!important;width:100%!important;text-align:left;overflow:hidden;white-space:nowrap}
@supports (-webkit-touch-callout:none){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"]{-webkit-appearance:none;appearance:none}input[type="date"]::-webkit-datetime-edit,input[type="date"]::-webkit-datetime-edit-fields-wrapper,input[type="time"]::-webkit-datetime-edit,input[type="time"]::-webkit-datetime-edit-fields-wrapper,input[type="datetime-local"]::-webkit-datetime-edit,input[type="datetime-local"]::-webkit-datetime-edit-fields-wrapper,input[type="month"]::-webkit-datetime-edit,input[type="month"]::-webkit-datetime-edit-fields-wrapper,input[type="week"]::-webkit-datetime-edit,input[type="week"]::-webkit-datetime-edit-fields-wrapper{min-width:0!important;max-width:100%!important;overflow:hidden}}
@media(max-width:680px){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"]{font-size:16px!important}}

.gallery-payment-gate-icon .icon{width:14px;height:14px}.mobile-filter-check .icon{width:14px;height:14px}.gallery-hub-search-icon .icon{width:19px;height:19px}.gallery-hub-search-clear .icon{width:18px;height:18px}.upload-success-mark .icon{width:20px;height:20px}

/* VEYNOA privacy finalization: quiet legal access at public data-entry surfaces. */
.privacy-legal-links{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:16px;font-size:10px;color:var(--text-muted)}
.privacy-legal-links a{color:inherit;text-decoration:none}.privacy-legal-links a:hover{text-decoration:underline;text-underline-offset:3px}
.upload-legal-links{margin:18px 0 2px}

/* CSP-safe replacement for the former inline --mobile-nav-items style attribute. */
.mobile-bottom-nav[data-nav-items="2"]{--mobile-nav-items:2}.mobile-bottom-nav[data-nav-items="3"]{--mobile-nav-items:3}.mobile-bottom-nav[data-nav-items="4"]{--mobile-nav-items:4}.mobile-bottom-nav[data-nav-items="5"]{--mobile-nav-items:5}
@media print{body{background:#fff!important}.confirmation-actions{display:none!important}.booking-confirmation{box-shadow:none!important;border:0!important;max-width:none!important}}

/* ===== design-2 polish — einheitliche Buttons, Formulare und Gäste-Bereich ===== */
/* Buttons: überall gleiche Schrift (vorher 16px/400 im Control Center, 11.5px/620 im Studio). */
.btn{font-size:14px;font-weight:600;letter-spacing:.005em;line-height:1.25;text-align:center}
body.studio-body .btn,body.studio-customer-body .btn{font-size:14px;font-weight:600}
/* Native Checkboxen, Radios und Datei-Felder im Stil der App statt Browser-Blau/-Grau. */
input[type=checkbox],input[type=radio]{accent-color:var(--action-primary)}
input[type=file]{max-width:100%;font-size:13px;color:var(--text-secondary)}
input[type=file]::file-selector-button{margin-right:12px;min-height:38px;padding:8px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-elevated);color:var(--text-primary);font:600 13px/1 var(--font-sans);cursor:pointer}
input[type=file]::-webkit-file-upload-button{margin-right:12px;min-height:38px;padding:8px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-elevated);color:var(--text-primary);font:600 13px/1 var(--font-sans);cursor:pointer}
/* Klappbereiche mit Titel + Beschreibung: Titel nie umbrechen lassen („Mar/ke“). */
.gallery-hub-secondary>summary>span{min-width:0}
.gallery-hub-secondary>summary>span>strong{flex:0 0 auto;white-space:nowrap}
@media(max-width:700px){.gallery-hub-secondary>summary>span{display:grid;gap:3px;align-items:start}}

/* Gäste: Upload-Link-Titel über der Beschreibung statt in einer Zeile. */
.guest-invite-tools>div:first-child{display:grid;gap:3px;min-width:0}
.guest-invite-tools>div:first-child strong{font-size:14px;color:var(--text-primary)}
.guest-invite-tools>div:first-child small{font-size:12px;line-height:1.4;color:var(--text-muted)}
/* Event-Anzeige: beide Buttons gleich groß. */
.guest-presentation-open-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
.guest-presentation-open-actions .btn{width:100%;height:100%;white-space:nowrap}
.guest-presentation-cta strong{font-size:14px}
.guest-presentation-cta small{font-size:12px}
/* „Event-Anzeige gestalten“: normale Klappkarte mit Abstand und Pfeil. */
.guest-presentation-settings-fold>summary{display:flex;align-items:center;gap:12px;min-height:58px;padding:14px 16px}
.guest-presentation-settings-fold>summary .cc-fold-summary strong{font-size:14px}
.guest-presentation-settings-fold>summary .cc-fold-summary small{font-size:12px;text-align:left}
/* „Schutz & Limits“: als aufklappbar erkennbar. */
.guest-upload-policy-fold>summary{justify-content:space-between;gap:12px;font-size:13px}
.guest-upload-policy-fold>summary::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);transform:rotate(45deg);margin-right:4px;transition:transform var(--motion-fast)}
.guest-upload-policy-fold[open]>summary::after{transform:rotate(225deg);margin-top:5px}
@media(max-width:700px){
  .guest-invite-tools .inline-form,.guest-invite-tools .inline-form .btn,.guest-qr-downloads,.guest-qr-downloads>summary{width:100%;justify-content:center}
  .guest-qr-downloads{justify-self:stretch}
  .guest-current-state{display:none}
  .guest-master-switch{display:block}
}
/* Event-Anzeige: Design-Auswahl mit Mini-Vorschau. */
.event-design-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.event-design-option{position:relative;display:grid;gap:9px;min-width:0;padding:8px;border:1px solid var(--border-subtle);border-radius:14px;background:var(--surface-elevated);cursor:pointer;transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}
.event-design-option>input{position:absolute;opacity:0;pointer-events:none}
.event-design-option:has(input:checked){border-color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--text-primary)}
.event-design-option:has(input:focus-visible){outline:3px solid var(--focus-ring);outline-offset:2px}
.event-design-swatch{position:relative;display:block;aspect-ratio:16/9;border-radius:8px;overflow:hidden}
.event-design-swatch i{position:absolute;right:12%;top:50%;width:24%;aspect-ratio:1;transform:translateY(-50%);background:#fff;border-radius:2px}
.event-design-swatch b{position:absolute;left:10%;top:42%;width:38%;height:9%;border-radius:2px}
.event-design-swatch-noir{background:radial-gradient(70% 90% at 10% 0%,#2a2a2d,#0b0b0c 70%)}
.event-design-swatch-noir b{background:#f5f4f1}
.event-design-swatch-noir i{outline:1px solid rgba(255,255,255,.3);outline-offset:3px}
.event-design-swatch-blanc{background:#fbfaf9;box-shadow:inset 0 0 0 1px #e8e2e1}
.event-design-swatch-blanc b{background:#2b2627;left:12%;width:34%}
.event-design-swatch-blanc i{border-radius:50% 50% 2px 2px/30% 30% 2px 2px;outline:1px solid #c9a3a3;outline-offset:3px}
.event-design-swatch-fete{background:radial-gradient(60% 80% at 90% 10%,#ff3d7f,transparent 70%),radial-gradient(60% 80% at 0% 100%,#ff9f43,transparent 70%),#2a1460}
.event-design-swatch-fete b{background:#fff;height:12%}
.event-design-swatch-fete i{border-radius:5px}
.event-design-swatch-jardin{background:radial-gradient(70% 90% at 25% 30%,#f4f7f2,#dfe8dc 75%)}
.event-design-swatch-jardin b{background:#1f3327}
.event-design-swatch-jardin i{border-radius:4px;outline:1px solid #8aa592;outline-offset:3px}
.event-design-swatch-aurum{background:radial-gradient(70% 90% at 50% 0%,#3a3020,#0c0b09 72%);box-shadow:inset 0 0 0 3px #0c0b09,inset 0 0 0 4px rgba(201,169,106,.55)}
.event-design-swatch-aurum b{background:#f1e8d6;left:12%;height:7%}
.event-design-swatch-aurum i{border-radius:0;outline:1px solid #c9a96a;outline-offset:3px}
.event-design-swatch-atelier{background:#f2efe9;box-shadow:inset 0 0 0 1px #e1ddd5}
.event-design-swatch-atelier b{background:#141414;height:13%;width:42%;border-radius:0}
.event-design-swatch-atelier i{border-radius:0;outline:3px solid #141414;outline-offset:0}
.event-design-swatch-minuit{background:radial-gradient(60% 85% at 84% 14%,#3d4fa6,transparent 70%),radial-gradient(55% 75% at 6% 100%,#4b2a78,transparent 70%),#070b1d}
.event-design-swatch-minuit b{background:#eef1fb}
.event-design-swatch-minuit i{border-radius:4px;box-shadow:0 0 10px rgba(160,180,255,.7)}
.event-design-swatch-riviera{background:radial-gradient(55% 75% at 96% 4%,#f6c896,transparent 70%),#f5ecdf}
.event-design-swatch-riviera b{background:#1c3a52}
.event-design-swatch-riviera i{border-radius:4px;box-shadow:0 0 0 4px #fffaf3,0 0 0 9px #ec9e6c}
.event-design-copy{display:grid;gap:2px;min-width:0;padding:0 2px 2px}
.event-design-copy strong{font-size:13px;color:var(--text-primary)}
.event-design-copy small{font-size:11px;line-height:1.35;color:var(--text-muted)}
@media(max-width:900px){.event-design-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Event-Anzeige-Optionen: App-Schalter statt riesiger Browser-Checkboxen; Karten oben bündig. */
.event-design-option{align-content:start}
.guest-presentation-check input[type=checkbox]{appearance:none;-webkit-appearance:none;width:48px;height:28px;min-width:48px;min-height:28px;margin:0;padding:0;border:0;border-radius:999px;background:var(--border-strong);position:relative;flex:0 0 auto;cursor:pointer;transition:background var(--motion-fast)}
.guest-presentation-check input[type=checkbox]::after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:transform var(--motion-fast)}
.guest-presentation-check input[type=checkbox]:checked{background:var(--action-primary)}
.guest-presentation-check input[type=checkbox]:checked::after{transform:translateX(20px);background:var(--action-primary-contrast)}
.guest-presentation-check input[type=checkbox]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
.guest-presentation-check strong{font-size:13px}
.guest-presentation-check small{font-size:11px}
@media(max-width:700px){.guest-presentation-wide>.btn{width:100%}}
/* Menüs über Fotos: vollständig deckend statt halbtransparent. */
.mobile-filter-popover,.grid-popover,.pop-menu{background:var(--surface-elevated)}

/* ===== design-4: ruhiger & lesbarer ===== */
/* Mindest-Schriftgrößen im Control Center und Studio (vorher teils 8–10px). */
:is(body.admin-page,body.studio-body,body.studio-customer-body) :is(small,.field-help,code){font-size:12.5px!important;line-height:1.45}
:is(body.admin-page,body.studio-body,body.studio-customer-body) small :is(small,code){font-size:inherit!important}
:is(body.admin-page,body.studio-body) label{font-size:13px!important}
:is(body.admin-page,body.studio-body) label :is(strong,span){font-size:inherit}
:is(body.admin-page,body.studio-body,body.studio-customer-body) .btn{font-size:14px!important}
:is(body.admin-page,body.studio-body,body.studio-customer-body) :is(.eyebrow,.status-pill,.gallery-hub-status,.brand-privacy-status,.access-count){font-size:11px!important}
.studio-mobile-nav :is(a,button),.mobile-admin-nav :is(a,button){font-size:11px!important}
.gallery-local-nav .nav-item,.gallery-local-more>summary,.gallery-local-more-menu .nav-item,.settings-jump a,.admin-context-path :is(a,span){font-size:12px!important}
:is(body.admin-page,body.studio-body) :is(.automation-mail-title strong,.automation-variable-box strong,.automation-group-head span,.automation-system-lock :is(span,strong),.automation-switch b,.automation-edit-close,.automation-text-action){font-size:12px!important}
:is(body.admin-page,body.studio-body) :is(.cc-fold-summary strong,.guest-presentation-check strong){font-size:14px}
/* Pro Bildschirm ein Haupt-Button; Nebenaktionen kleiner und nebeneinander. */
@media(max-width:700px){
  .cc-view-head .overview-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
  .overview-actions .btn{width:100%;min-width:0}
  .overview-actions .btn-primary{grid-column:1/-1}
}
.guest-invite-tools .inline-form .guest-link-renew,.guest-invite-tools .inline-form .guest-link-renew:hover{width:auto!important;min-height:40px;padding:6px 2px;border:0;background:transparent;box-shadow:none;color:var(--text-muted);font-size:13px!important;font-weight:500;text-decoration:underline;text-underline-offset:3px;justify-content:flex-start}
.guest-invite-tools .inline-form:has(.guest-link-renew){width:auto!important;justify-self:start}

/* ===== Galerie: Titelseite ===== */
.gallery-cover{position:relative;height:100vh;height:100svh;min-height:520px;overflow:hidden;background:#0b0b0c;color:#fff;isolation:isolate}
.gallery-cover-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;animation:gallery-cover-in 1.4s var(--ease) both}
@keyframes gallery-cover-in{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}
.gallery-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,0) 28%,rgba(0,0,0,.06) 52%,rgba(0,0,0,.66) 100%)}
.gallery-cover-content{position:absolute;left:0;right:0;bottom:0;display:grid;justify-items:start;gap:14px;max-width:1100px;padding:0 clamp(22px,6vw,88px) calc(clamp(78px,13vh,128px) + env(safe-area-inset-bottom))}
.gallery-cover-brand{display:flex;align-items:center;min-height:28px}
.gallery-cover-brand img{height:30px;width:auto;max-width:170px;object-fit:contain;filter:brightness(0) invert(1);opacity:.95}
.gallery-cover-brand span{font:400 15px/1 var(--font-serif);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.92)}
.gallery-cover h1{margin:0;font:400 clamp(46px,8vw,108px)/.98 var(--font-serif);letter-spacing:-.035em;color:#fff;text-wrap:balance;overflow-wrap:anywhere;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.gallery-cover-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;font-size:14px;letter-spacing:.02em;color:rgba(255,255,255,.86)}
.gallery-cover-button{margin-top:10px;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 28px;border-radius:999px;background:#fff;color:#111;font-size:15px;font-weight:600;letter-spacing:.01em;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:transform var(--motion-fast) var(--ease),box-shadow var(--motion-fast)}
.gallery-cover-button:hover{transform:translateY(-1px);box-shadow:0 14px 36px rgba(0,0,0,.3)}
.gallery-cover-scroll{position:absolute;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));width:44px;height:44px;margin-left:-22px;display:grid;place-items:center;color:rgba(255,255,255,.85);animation:gallery-cover-bob 2.6s ease-in-out infinite}
.gallery-cover-scroll .icon{width:24px;height:24px}
@keyframes gallery-cover-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){.gallery-cover-img,.gallery-cover-scroll{animation:none}}
body.has-cover .gallery-header{display:none}
body.has-cover .gallery-shell{padding-top:18px}
.mobile-navigation-shell{transition:opacity var(--motion-normal) var(--ease),transform var(--motion-normal) var(--ease)}
body.cover-in-view .mobile-navigation-shell{opacity:0;pointer-events:none;transform:translateY(18px)}
@media(min-width:921px){.gallery-cover-content{padding-bottom:clamp(90px,14vh,140px)}}

/* ===== Galerie: Begrüßung beim ersten Öffnen ===== */
.gallery-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:16px 18px;border:1px solid var(--border-subtle);border-radius:16px;background:var(--surface-elevated)}
.gallery-intro[hidden]{display:none}
.gallery-intro-copy{display:grid;gap:10px;min-width:0}
.gallery-intro-copy>strong{font-size:15px;color:var(--text-primary)}
.gallery-intro ul{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0;padding:0;list-style:none}
.gallery-intro li{display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.35;color:var(--text-secondary)}
.gallery-intro li b{font-weight:600;color:var(--text-primary)}
.gallery-intro-icon{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--surface-soft);color:var(--text-primary)}
.gallery-intro-icon .icon{width:15px;height:15px}
.gallery-intro .btn{flex:0 0 auto}
@media(max-width:700px){.gallery-intro{display:grid;gap:14px;padding:15px}.gallery-intro ul{display:grid;gap:9px}.gallery-intro .btn{width:100%}}

/* ===== Galerie: Danke nach „Auswahl abschließen“ ===== */
.selection-done-card{display:grid;justify-items:center;gap:6px;text-align:center}
.selection-done-card>.selection-done-icon{width:58px;height:58px;min-height:58px;padding:0;display:grid;place-items:center;margin-bottom:8px;border:0;border-radius:50%;background:var(--action-primary);color:var(--action-primary-contrast);cursor:default}
.selection-done-icon .icon{width:26px;height:26px;stroke-width:2.2}
.selection-done-card p{margin:0 0 16px;color:var(--text-secondary);line-height:1.55}
.selection-done-card .btn{width:100%}

/* ===== Galerie: ruhigere Fotokarten auf dem Handy (Vergleichen bleibt in der Großansicht) ===== */
@media(max-width:700px){.card-action-row .card-mini[data-card-action=compare]{display:none}}
.cc-fold-summary small{font-weight:400}

/* ===== Galerie: Abschluss am Ende ===== */
.gallery-closing{display:grid;justify-items:center;gap:0;margin:28px auto 8px;padding:42px 20px 30px;max-width:720px;text-align:center}
.gallery-closing[hidden],.gallery-closing [hidden]{display:none!important}
.gallery-closing-rule{width:48px;height:1px;margin-bottom:28px;background:var(--border-strong)}
.gallery-closing-open,.gallery-closing-done{display:grid;justify-items:center;gap:10px}
.gallery-closing h2{margin:0;font:400 clamp(30px,4.4vw,44px)/1.05 var(--font-serif);letter-spacing:-.025em;color:var(--text-primary)}
.gallery-closing p{margin:0;max-width:520px;font-size:15px;line-height:1.55;color:var(--text-secondary)}
.gallery-closing-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px}
.gallery-closing-actions .btn{min-height:46px;padding-inline:20px}
@media(max-width:700px){.gallery-closing{padding:32px 4px 22px}.gallery-closing-actions{display:grid;width:100%}.gallery-closing-actions .btn{width:100%}}

/* ===== Galerie (Kunde, Handy): pro Foto nur eine Aktion ===== */
@media(max-width:700px){
  body.calm-cards.selection-open .card-mini[data-card-action=fav]{display:none}
  body.calm-cards:not(.selection-open) .card-mini[data-card-action=selected]{display:none}
}
/* Leere Bereiche: kurze Erklärung statt nur „Keine …“. */
.studio-empty-hint{display:grid;gap:4px;padding:16px;border:1px dashed var(--border-strong);border-radius:14px;color:var(--text-secondary)}
.studio-empty-hint strong{font-size:14px;color:var(--text-primary)}
.studio-empty-hint span{font-size:13px;line-height:1.5}

/* ===== Galerie: Kapitel ===== */
.gallery-chapter-nav{position:sticky;top:var(--chapter-nav-top,48px);z-index:calc(var(--z-nav) - 2);display:flex;gap:6px;margin:0 0 12px;padding:6px 0;overflow-x:auto;scrollbar-width:none;background:var(--surface-primary)}
.gallery-chapter-nav::-webkit-scrollbar{display:none}
.gallery-chapter-nav[hidden]{display:none}
.gallery-chapter-nav button{flex:0 0 auto;min-height:38px;padding:7px 15px;border:1px solid var(--border-subtle);border-radius:999px;background:var(--surface-elevated);color:var(--text-secondary);font-size:13px;font-weight:500;white-space:nowrap;transition:background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast)}
.gallery-chapter-nav button.active{background:var(--action-primary);border-color:var(--action-primary);color:var(--action-primary-contrast)}
.gallery-chapter{grid-column:1/-1;display:flex;align-items:center;gap:16px;margin:26px 0 6px;font:400 clamp(26px,3.4vw,38px)/1.1 var(--font-serif);letter-spacing:-.02em;color:var(--text-primary);scroll-margin-top:120px}
.gallery-chapter::after{content:"";flex:1 1 auto;height:1px;background:var(--border-subtle)}
.gallery-chapter:first-child{margin-top:4px}
.viewer-admin-section .panel-action span{flex:1 1 auto;text-align:left}
@media(max-width:920px){.gallery-chapter-nav{margin-bottom:8px}.gallery-chapter{margin:18px 0 4px;font-size:26px}}

/* ===== Control Center: geführte Schritte pro Galerie ===== */
.gallery-steps{list-style:none;margin:6px 0 18px;padding:0;display:grid;gap:0;counter-reset:none}
.gallery-step{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;padding:14px 0}
.gallery-step+.gallery-step{border-top:1px solid var(--border-subtle)}
.gallery-step-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--border-strong);color:var(--text-muted);font-size:14px;font-weight:600;background:var(--surface-elevated)}
.gallery-step-mark .icon{width:16px;height:16px;stroke-width:2.4}
.gallery-step-body{display:grid;gap:3px;min-width:0;align-content:center}
.gallery-step-body strong{font-size:15px;color:var(--text-primary)}
.gallery-step-body small{font-size:13px!important;line-height:1.45;color:var(--text-muted)}
.gallery-step-link{justify-self:start;margin-top:2px;font-size:13px;color:var(--text-secondary);text-decoration:underline;text-underline-offset:3px}
.gallery-step-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.gallery-step.is-done .gallery-step-mark{border-color:var(--state-success);background:var(--state-success);color:#fff}
.gallery-step.is-done .gallery-step-body strong{color:var(--text-secondary)}
.gallery-step.is-current{margin:4px -14px;padding:16px 14px;border:1px solid var(--border-strong)!important;border-radius:16px;background:var(--surface-secondary)}
.gallery-step.is-current+.gallery-step{border-top:0}
.gallery-step.is-current .gallery-step-mark{border-color:var(--action-primary);background:var(--action-primary);color:var(--action-primary-contrast)}
.gallery-step.is-todo{opacity:.62}
.gallery-step.is-optional .gallery-step-mark{border-style:dashed}
.gallery-customer-status{display:grid;gap:10px;margin:0 0 16px;padding-top:16px;border-top:1px solid var(--border-subtle)}
.gallery-customer-status-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
@media(max-width:700px){.gallery-step-actions{display:grid;grid-template-columns:1fr}.gallery-step-actions .btn{width:100%}.gallery-step.is-current{margin:4px -8px;padding:14px 10px}}

/* ===== Control Center: Titelbild & Kapitel ===== */
.presentation-fold{margin:12px 0}
.presentation-fold-content{display:grid;gap:16px}
.cover-setting{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start}
.cover-setting>img,.cover-setting-auto{width:96px;height:72px;border-radius:10px;object-fit:cover;background:var(--surface-soft)}
.cover-setting-auto{display:grid;place-items:center;color:var(--text-muted)}
.cover-setting>div{display:grid;gap:6px;min-width:0}
.cover-setting strong{font-size:14px}
.cover-setting form .btn{margin-top:4px}
.chapters-setting{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--border-subtle)}
.chapter-list{display:grid;gap:8px}
.chapter-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center}
.chapter-row img{width:56px;height:42px;border-radius:8px;object-fit:cover}
.chapter-title-field{margin:0}
.chapter-title-field input{width:100%}
.chapter-remove{display:flex!important;align-items:center;gap:6px;font-size:13px!important;color:var(--text-muted);white-space:nowrap}
.chapters-hint{margin:0;padding:12px 14px;border:1px dashed var(--border-strong);border-radius:12px;font-size:13px;line-height:1.5;color:var(--text-secondary)}
.chapters-actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:700px){.chapters-actions{display:grid}.chapters-actions .btn{width:100%}}
/* Alles erledigt: „Beim Kunden“ zuerst, Schritte zusammengeklappt darunter. */
.overview-card:has(.steps-done-fold){display:flex;flex-direction:column}
.overview-card:has(.steps-done-fold)>*{order:5}
.overview-card:has(.steps-done-fold)>.cc-view-head{order:0}
.overview-card:has(.steps-done-fold)>.gallery-customer-status{order:1;padding-top:0;border-top:0}
.overview-card:has(.steps-done-fold)>.steps-done-fold{order:2;margin-bottom:12px}
.steps-done-fold .gallery-steps{margin:0}
@media(max-width:700px){
  .admin-unified-page .admin-primary-actions{grid-template-columns:repeat(auto-fit,minmax(0,1fr))!important}
  .gallery-local-nav{gap:2px}
  .gallery-local-nav .nav-item{flex:1 0 auto;padding-inline:6px!important;text-align:center}
}
/* Seitliches Überlaufen verhindern, ohne „position:sticky“ zu blockieren (hidden machte body zum Scroll-Container). */
@supports (overflow:clip){html:has(body.gallery-page),body.gallery-page{overflow-x:clip}}
.gallery-context-actions [hidden],.mobile-selection-actions [hidden],.pop-menu [hidden]{display:none!important}
.studio-mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}
/* Gäste-Upload: Einverständnis */
.guest-consent{display:flex!important;align-items:flex-start;gap:12px;margin:14px 0 4px;padding:14px;border:1px solid var(--border-subtle);border-radius:14px;background:var(--surface-secondary);font-size:14px!important;line-height:1.5;color:var(--text-secondary);cursor:pointer}
.guest-consent input{flex:0 0 auto;width:22px;height:22px;min-height:22px;margin:1px 0 0;accent-color:var(--action-primary)}
.guest-consent a{color:var(--text-primary);text-decoration:underline;text-underline-offset:2px}
/* Großansicht: Fotografen-Schnellzugriff & Kapitel-Dialog */
.viewer-admin-quick.is-active{color:#fff;background:rgba(255,255,255,.14)}
.viewer-admin-quick:disabled{opacity:.45}
@media(max-width:700px){.viewer-admin-quick span{display:none}.viewer-admin-quick{min-width:44px;justify-content:center}}
.chapter-dialog{width:min(440px,calc(100vw - 32px));padding:0;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:var(--surface-elevated);color:var(--text-primary);box-shadow:var(--shadow-modal)}
.chapter-dialog::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(4px)}
.chapter-dialog-form{display:grid;gap:12px;padding:24px}
.chapter-dialog h3{margin:0;font:400 30px/1.05 var(--font-serif)}
.chapter-dialog p{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.5}
.chapter-dialog-field input{width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface-primary);font-size:16px}
.chapter-dialog-suggestions{display:flex;flex-wrap:wrap;gap:6px}
.chapter-dialog-suggestions button{min-height:36px;padding:6px 12px;border:1px solid var(--border-subtle);border-radius:999px;background:transparent;color:var(--text-secondary);font-size:13px}
.chapter-dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;margin-top:6px}
@media(max-width:520px){.chapter-dialog-actions{grid-template-columns:1fr 1fr}.chapter-dialog-actions>span{display:none}#chapterDialogRemove{grid-column:1/-1}}
.chapter-dialog [hidden]{display:none!important}

/* design-7: withdrawal summary box (customer area + public withdrawal page) */
.customer-legal-note{display:grid;gap:6px;margin:16px 0 4px;padding:14px 16px;border-radius:14px;background:var(--surface-soft);font-size:13px;line-height:1.55;color:var(--text-secondary)}
.customer-legal-note strong{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.customer-legal-note span{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;overflow-wrap:anywhere;color:var(--text-primary)}
.customer-legal-note p{margin:0}
.customer-legal-note p+strong{margin-top:6px}

/* design-8: unified mobile navigation (tab bar + "Mehr" sheet) — one look for Studio and galleries */
body .app-tabbar{gap:2px!important;padding:6px!important;border-radius:22px!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;backdrop-filter:saturate(1.4) blur(18px);-webkit-backdrop-filter:saturate(1.4) blur(18px)}
body .app-tabbar .app-tab{min-height:54px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px!important;border:0;border-radius:16px!important;background:transparent!important;color:var(--text-muted)!important;font:500 10.5px/1.1 var(--font-sans,inherit)!important;letter-spacing:.01em;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color .18s ease}
body .app-tabbar .app-tab-icon{display:grid;place-items:center;width:46px;height:28px;border-radius:14px;transition:background .18s ease}
body .app-tabbar .app-tab .icon{width:21px;height:21px;color:currentColor;stroke-width:1.7}
body .app-tabbar .app-tab-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
body .app-tabbar .app-tab.active,body .app-tabbar .app-tab[aria-expanded="true"]{color:var(--text-primary)!important;font-weight:650!important}
body .app-tabbar .app-tab.active .app-tab-icon,body .app-tabbar .app-tab[aria-expanded="true"] .app-tab-icon{background:var(--surface-soft)}
body .app-tabbar .app-tab:focus-visible{outline:2px solid var(--text-primary);outline-offset:-2px}

body .app-sheet:not([hidden]){display:flex!important;flex-direction:column;gap:16px}
body .app-sheet{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 76px)!important;max-height:calc(100dvh - 130px);overflow-y:auto;overscroll-behavior:contain;padding:16px 12px 12px!important;border-radius:24px!important;background:var(--surface-elevated)!important;box-shadow:0 24px 60px rgba(0,0,0,.28),0 2px 8px rgba(0,0,0,.12)}
body .app-sheet .app-sheet-group{margin:0;padding:0;border:0}
body .app-sheet .app-sheet-label{display:block;padding:0 8px 7px;color:var(--text-muted);font:650 10.5px/1.2 var(--font-sans,inherit);letter-spacing:.12em;text-transform:uppercase}
body .app-sheet .app-sheet-list{display:flex;flex-direction:column;border-radius:16px;background:var(--surface-soft);overflow:hidden}
body .app-sheet .app-sheet-row{display:grid!important;grid-template-columns:24px 1fr 16px;align-items:center;gap:13px;width:100%;min-height:50px!important;margin:0;padding:0 14px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--text-primary)!important;font:450 15px/1.25 var(--font-sans,inherit)!important;text-align:left;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
body .app-sheet .app-sheet-row+.app-sheet-row{border-top:0!important;background-image:linear-gradient(var(--border-subtle),var(--border-subtle))!important;background-size:calc(100% - 51px) 1px!important;background-position:51px 0!important;background-repeat:no-repeat!important;box-shadow:none}
body .app-sheet .app-sheet-icon{display:grid;place-items:center;color:var(--text-secondary)}
body .app-sheet .app-sheet-icon .icon{width:20px;height:20px;color:currentColor;stroke-width:1.7}
body .app-sheet .app-sheet-chevron{display:grid;place-items:center;color:var(--text-muted)}
body .app-sheet .app-sheet-chevron .icon{width:14px;height:14px;color:currentColor;stroke-width:2}
body .app-sheet .app-sheet-row:active{background-color:color-mix(in srgb,var(--text-primary) 7%,transparent)!important}
body .app-sheet .app-sheet-row.active{font-weight:650!important}
body .app-sheet .app-sheet-row.active .app-sheet-icon{color:var(--text-primary)}
body .app-sheet .app-sheet-logout{margin-top:2px}
body .app-sheet .app-sheet-logout .app-sheet-row{grid-template-columns:24px 1fr;color:var(--state-error)!important}
body .app-sheet .app-sheet-logout .app-sheet-icon{color:var(--state-error)}
@media (hover:hover){body .app-sheet .app-sheet-row:hover{background-color:color-mix(in srgb,var(--text-primary) 5%,transparent)!important}}
body .app-tabbar:has([aria-expanded="true"]) .app-tab.active:not([aria-expanded]){color:var(--text-muted)!important;font-weight:500!important}
body .app-tabbar:has([aria-expanded="true"]) .app-tab.active:not([aria-expanded]) .app-tab-icon{background:transparent}
/* design-9: Werbe-Nachlass pro Leistung */
.ad-discount-setting{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;align-items:start}
.ad-discount-setting:has(select option[value="free"]:checked) .ad-discount-value,.ad-discount-setting:has(select option[value="off"]:checked) .ad-discount-value{display:none}
@media(max-width:560px){.ad-discount-setting{grid-template-columns:1fr}}
.ad-discount-setting .ad-unit-fixed{display:none}
.ad-discount-setting:has(select option[value="fixed"]:checked) .ad-unit-fixed{display:inline}
.ad-discount-setting:has(select option[value="fixed"]:checked) .ad-unit-percent{display:none}
/* design-9: Versandstatus beim Angebot + Rückmeldung während des Sendens */
.offer-mail-status.is-sent{color:var(--state-success)}
.offer-mail-status.is-failed,.offer-mail-status.is-uncertain{color:var(--state-error)}
form[aria-busy="true"] button[type="submit"],form[aria-busy="true"] button:not([type]){cursor:progress}
button.is-busy{opacity:.78;pointer-events:none}
button.is-busy::before{content:"";display:inline-block;width:.9em;height:.9em;margin-right:.5em;vertical-align:-.12em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-busy-spin .7s linear infinite}
@keyframes btn-busy-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){button.is-busy::before{animation:none}}
