:root{--color-paper:lab(95.9725% 1.50412 6.72399);--color-paper-2:lab(92.498% 1.86902 8.23997);--color-paper-3:lab(87.2826% 2.25091 9.76919);--color-surface:lab(97.7029% .980556 4.46763);--color-nav:lab(97.7029% .980556 4.46763/.84);--color-caption:lab(9.38996% 6.55624 8.87048/.88);--color-rule:lab(74.509% 2.57641 9.70365);--color-rule-strong:lab(59.3963% 4.43938 12.9362);--color-neutral:lab(36.1225% 6.10378 12.3511);--color-muted:lab(24.4833% 6.94108 12.0493);--color-ink:lab(7.06689% 7.85602 8.1932);--color-accent:lab(28.6584% 23.3187 31.0666);--color-accent-ink:lab(97.7029% .980556 4.46763);--color-focus:lab(41.0258% 39.3925 81.3191);--color-price:lab(39.6302% 12.0271 47.5138);--color-success:lab(34.7696% -18.5447 23.2069);--color-success-soft:lab(86.7451% -13.1175 14.9794);--color-error:lab(38.1167% 50.0191 35.452);--font-display:"Fraunces", ui-serif, Georgia, serif;--font-body:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:1.75rem;--text-2xl:clamp(2rem, 4vw, 3.25rem);--text-3xl:clamp(2.4rem, 6vw, 4.4rem);--text-display:clamp(3rem, 8vw, 5.25rem);--leading-tight:1.03;--leading-snug:1.22;--leading-body:1.58;--tracking-display:-.035em;--tracking-label:.12em;--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--page-gutter:clamp(1rem, 4vw, 2rem);--content-narrow:46rem;--content-wide:72rem;--nav-max:42rem;--control-sm:2.75rem;--control-md:3rem;--control-lg:4.25rem;--radius-sm:.75rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-xl:2rem;--radius-pill:999rem;--rule-hair:1px;--rule-focus:2px;--shadow-soft:0 1rem 2.5rem lab(7.06689% 7.85602 8.1932/.12);--shadow-hairline:0 0 0 1px lab(7.06689% 7.85602 8.1932/.035);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-modal:400}*{box-sizing:border-box}html,body{min-height:100%;overflow-x:clip}body{background:linear-gradient(90deg, transparent 0, transparent calc(100% - 1px), lab(74.509% 2.57641 9.70365/.28) calc(100% - 1px)), var(--color-paper);color:var(--color-ink);font-family:var(--font-body);letter-spacing:0;background-size:clamp(6rem,18vw,14rem) 100%;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.boot-shell,.login-shell,.admin-shell{min-height:100vh}.boot-shell{place-content:center;gap:var(--space-lg);padding:var(--page-gutter);display:grid}.brand-mark,.rail-brand,.login-brand h1{font-family:var(--font-display);letter-spacing:0;font-weight:700}.loading-line{background:var(--color-paper-3);width:min(20rem,70vw);height:2px;overflow:hidden}.loading-line:after{content:"";background:var(--color-accent);width:42%;height:100%;animation:load-sweep 1.1s var(--ease-in-out) infinite;display:block}.login-shell{place-items:center;padding:clamp(1rem,5vw,3rem);display:grid}.login-panel{border:1px solid var(--color-rule);background:var(--color-surface);width:min(58rem,100%);box-shadow:var(--shadow-soft);border-radius:8px;grid-template-columns:minmax(0,.9fr) minmax(20rem,1fr);display:grid;overflow:hidden}.login-brand{border-right:1px solid var(--color-rule);background:var(--color-paper-2);min-height:29rem;padding:clamp(1.5rem,4vw,3rem)}.eyebrow{color:var(--color-accent);font-size:var(--text-xs);letter-spacing:0;text-transform:uppercase;font-weight:700;display:block}.login-brand h1,.topbar h1{margin:var(--space-sm) 0 0;color:var(--color-accent)}.login-brand h1{font-size:clamp(2.75rem,8vw,5.5rem);line-height:var(--leading-tight)}.login-brand p{max-width:24rem;margin:var(--space-lg) 0 0;color:var(--color-muted);font-size:var(--text-md);line-height:var(--leading-body)}.login-form{align-content:center;gap:var(--space-md);padding:clamp(1.5rem,4vw,3rem);display:grid}.login-form label{gap:var(--space-xs);color:var(--color-muted);font-size:var(--text-sm);font-weight:700;display:grid}.login-form input{min-height:var(--control-md);border:1px solid var(--color-rule);background:var(--color-surface);width:100%;color:var(--color-ink);padding:0 var(--space-md);border-radius:8px;outline:none}input,select{accent-color:var(--color-accent)}.password-field{display:block;position:relative}.login-form .password-field input{padding-right:3.25rem}.password-field button{top:50%;right:var(--space-2xs);border-radius:var(--radius-pill);width:2.75rem;height:2.75rem;color:var(--color-neutral);background:0 0;border:0;place-items:center;display:inline-grid;position:absolute;transform:translateY(-50%)}.password-field button:hover{color:var(--color-accent)}:is(.login-form button:focus-visible,.login-form input:focus-visible,.admin-shell button:focus-visible,.admin-shell a:focus-visible){outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.login-form input:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px lab(41.0258% 39.3925 81.3191/.14)}.form-message,.inline-message{min-height:1.35rem;color:var(--color-error);font-size:var(--text-sm)}.turnstile-slot{gap:var(--space-2xs);min-width:0;display:grid}.turnstile-slot:has(>div:empty){display:none}.turnstile-slot:has(.turnstile-error){display:grid}.turnstile-error{color:var(--color-error);font-size:var(--text-sm);margin:0}.primary-action,.ghost-action,.account-pill button,.hwid-row button{border-radius:var(--radius-pill);min-height:2.75rem;transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out);border:1px solid #0000}.primary-action{justify-content:center;align-items:center;gap:var(--space-xs);background:var(--color-accent);min-height:3.25rem;color:var(--color-accent-ink);padding:0 var(--space-md);white-space:nowrap;font-weight:800;display:inline-flex}.primary-action:hover,.ghost-action:hover,.account-pill button:hover,.hwid-row button:hover{transform:translateY(-1px)}.primary-action:disabled,.ghost-action:disabled{opacity:.55;transform:none}.admin-shell{gap:var(--space-lg);padding:var(--space-lg);grid-template-columns:14rem minmax(0,1fr);display:grid}.rail{top:var(--space-lg);align-self:start;gap:var(--space-md);min-height:calc(100vh - var(--space-lg) * 2);border:1px solid var(--color-rule);padding:var(--space-md);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:lab(97.7029% .980556 4.46763/.78);border-radius:8px;display:grid;position:sticky}.rail-brand{color:var(--color-accent);font-size:var(--text-lg)}.rail-item{align-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);min-height:3rem;color:var(--color-ink);padding:0 var(--space-md);border-radius:8px;font-weight:800;display:flex}.rail-label-short,.topbar-studio{display:none}.rail-item.active{color:var(--color-accent);background:lab(28.6584% 23.3187 31.0666/.09);border-color:lab(28.6584% 23.3187 31.0666/.32)}.rail-nav{gap:var(--space-xs);display:grid}.workspace{gap:var(--space-md);min-width:0;display:grid}.topbar,.summary-strip,.device-panel{border:1px solid var(--color-rule);box-shadow:var(--shadow-hairline);background:lab(97.7029% .980556 4.46763/.9);border-radius:8px}.topbar{justify-content:space-between;align-items:center;gap:var(--space-md);min-height:6rem;padding:var(--space-md) var(--space-lg);display:flex}.topbar h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,4.25rem);line-height:var(--leading-tight)}.account-pill{align-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);max-width:100%;padding:var(--space-xs);display:flex}.account-pill div{min-width:0;display:grid}.account-pill strong,.account-pill span{text-overflow:ellipsis;white-space:nowrap;max-width:18rem;overflow:hidden}.account-pill span{color:var(--color-neutral);font-size:var(--text-xs)}.account-pill button,.hwid-row button{background:var(--color-paper-2);width:2.5rem;color:var(--color-accent);place-items:center;display:inline-grid}.summary-strip{gap:var(--space-sm);padding:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr)) auto;display:grid}.summary-strip div{border:1px solid var(--color-rule);background:var(--color-surface);min-height:4.75rem;padding:var(--space-sm) var(--space-md);border-radius:8px}.summary-strip span{color:var(--color-neutral);font-size:var(--text-sm);display:block}.summary-strip .summary-refresh span{color:inherit;font-size:inherit;display:inline}.summary-strip strong{margin-top:var(--space-xs);font-family:var(--font-display);font-size:var(--text-xl);line-height:1;display:block}.ghost-action{justify-content:center;align-items:center;gap:var(--space-xs);background:var(--color-accent);color:var(--color-accent-ink);padding:0 var(--space-md);align-self:stretch;font-weight:800;display:inline-flex}.device-panel{min-height:28rem;padding:var(--space-lg)}.panel-heading{justify-content:space-between;align-items:start;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.panel-heading h2{margin:var(--space-xs) 0 0;font-size:var(--text-xl);line-height:var(--leading-snug)}.panel-heading p{color:var(--color-neutral);white-space:nowrap;margin:0;font-weight:700}.device-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));display:grid}.admin-form{gap:var(--space-sm);margin-bottom:var(--space-lg);border:1px solid var(--color-rule);background:var(--color-paper);padding:var(--space-sm);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr)) auto;display:grid}.admin-form input,.admin-form select{min-height:var(--control-md);border:1px solid var(--color-rule);background:var(--color-surface);width:100%;min-width:0;color:var(--color-ink);padding:0 var(--space-md);border-radius:8px;outline:none}.admin-form input::placeholder{color:var(--color-neutral)}.admin-form input:focus,.admin-form select:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px var(--color-paper-3)}.admin-form .primary-action{justify-content:center;align-items:center;gap:var(--space-xs);min-width:9rem;padding:0 var(--space-md);display:inline-flex}.packages-form{grid-template-columns:minmax(10rem,1fr) minmax(10rem,1fr) minmax(7rem,.65fr) minmax(8rem,.8fr) minmax(10rem,1fr) auto}.codes-form{grid-template-columns:minmax(14rem,1.5fr) minmax(9rem,.7fr) minmax(9rem,.7fr) minmax(8rem,.6fr) minmax(10rem,1fr) auto}.frame-upload-form{grid-template-columns:minmax(12rem,1fr) minmax(16rem,1.4fr) auto}.library-toolbar{align-items:end;gap:var(--space-sm);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-paper);padding:var(--space-sm);border-radius:8px;grid-template-columns:minmax(11rem,1.4fr) minmax(9rem,1fr) minmax(9rem,1fr) minmax(5.5rem,.6fr) minmax(10rem,1fr) auto;display:grid}.library-toolbar select,.library-toolbar input{width:100%;min-height:var(--control-md);border:1px solid var(--color-rule);background:var(--color-surface);min-width:0;color:var(--color-ink);padding:0 var(--space-md);border-radius:8px}.library-filter{gap:var(--space-3xs);min-width:0;display:grid}.library-filter>span{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.library-filter-actions{align-items:center;gap:var(--space-xs);display:flex}.library-table .cell-no,.library-table .cell-count{text-align:center;font-variant-numeric:tabular-nums;width:5.5rem;font-weight:800}@media (min-width:821px){.library-table table{border-style:hidden}.library-table th,.library-table td{border:1px solid var(--color-rule);vertical-align:middle}.library-table thead th{background:var(--color-paper-2);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-weight:800}.library-table tbody tr:nth-child(2n) td{background:var(--color-paper)}.library-table td.cell-thumb{width:6rem}}.studio-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));display:grid}.studio-card{align-content:start;gap:var(--space-xs);border:1px solid var(--color-rule);background:var(--color-surface);min-height:12rem;padding:var(--space-md);border-radius:8px;display:grid}.studio-card h3{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-snug);overflow-wrap:anywhere;margin:0}.studio-card p{color:var(--color-muted);line-height:var(--leading-body);margin:0}.studio-card small{color:var(--color-neutral);font-weight:700}.studio-card strong{color:var(--color-price);font-size:var(--text-md);align-self:end}.code-list{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));display:grid}.code-card{gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-md);border-radius:8px;display:grid}.code-card>div:first-child{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.code-card strong{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);line-height:1}.code-card p{color:var(--color-muted);line-height:var(--leading-body);margin:0}.code-actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.code-actions button{justify-content:center;align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper-2);min-height:2.5rem;color:var(--color-accent);padding:0 var(--space-md);font-weight:800;display:inline-flex}.danger-action{justify-content:center;align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);min-height:2.5rem;color:var(--color-error);padding:0 var(--space-md);transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out);font-weight:800;display:inline-flex}.danger-action:hover{transform:translateY(-1px)}.danger-action:disabled{opacity:.55;transform:none}.frame-bulkbar{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-paper);padding:var(--space-sm);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.frame-bulkbar span{color:var(--color-neutral);font-size:var(--text-sm);font-weight:800}.frame-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));display:grid}.frame-card{gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);min-width:0;padding:var(--space-sm);border-radius:8px;display:grid}.frame-card.selected{border-color:var(--color-focus);box-shadow:inset 0 0 0 1px var(--color-focus)}.frame-card-head,.frame-meta,.frame-actions{justify-content:space-between;align-items:center;gap:var(--space-xs);display:flex}.frame-card-head span,.frame-meta{color:var(--color-neutral);font-size:var(--text-xs);font-weight:800}.frame-resolution{gap:var(--space-xs);border-block:1px solid var(--color-rule);padding-block:var(--space-sm);display:grid}.frame-resolution>div:first-child{justify-content:space-between;align-items:baseline;gap:var(--space-xs);display:flex}.frame-resolution strong,.frame-resolution span,.frame-resolution small{font-size:var(--text-xs)}.frame-resolution span,.frame-resolution small{color:var(--color-neutral)}.frame-resolution-options{gap:var(--space-2xs);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.frame-resolution-options button{justify-content:center;align-items:center;gap:var(--space-2xs);border:1px solid var(--color-rule);background:var(--color-paper-2);min-height:2.5rem;color:var(--color-neutral);border-radius:8px;font-weight:850;display:inline-flex}.frame-resolution-options button.active{border-color:var(--color-focus);background:color-mix(in oklch, var(--color-focus) 13%, var(--color-surface));color:var(--color-accent)}.frame-select{aspect-ratio:1;border:1px solid var(--color-rule);background:var(--color-paper-2);width:2.5rem;color:var(--color-accent);border-radius:8px;place-items:center;display:inline-grid}.frame-preview{aspect-ratio:4/5;border:1px solid var(--color-rule);background:linear-gradient(45deg, var(--color-paper-2) 25%, transparent 25%), linear-gradient(-45deg, var(--color-paper-2) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--color-paper-2) 75%), linear-gradient(-45deg, transparent 75%, var(--color-paper-2) 75%), var(--color-surface);background-position:0 0,0 .5rem,.5rem -.5rem,-.5rem 0;background-size:1rem 1rem;border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.frame-preview img{object-fit:contain;width:100%;height:100%}.frame-slot{border:2px solid var(--color-focus);box-shadow:inset 0 0 0 1px var(--color-surface);pointer-events:none;background:lab(98.8941% 1.21799 7.5847/.22);position:absolute}.frame-edit{gap:var(--space-xs);color:var(--color-muted);font-size:var(--text-sm);font-weight:800;display:grid}.frame-edit input{border:1px solid var(--color-rule);background:var(--color-surface);width:100%;min-width:0;min-height:2.75rem;color:var(--color-ink);padding:0 var(--space-sm);border-radius:8px}.revenue-strip{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:.9fr 1.35fr repeat(3,.9fr);display:grid}.revenue-strip div{border:1px solid var(--color-rule);background:var(--color-surface);min-height:5rem;padding:var(--space-sm) var(--space-md);border-radius:8px}.revenue-strip span{color:var(--color-neutral);font-size:var(--text-sm);display:block}.revenue-strip strong{margin-top:var(--space-xs);color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);overflow-wrap:anywhere;line-height:1;display:block}.revenue-strip div:nth-child(2) strong{font-size:clamp(1.45rem, 2vw, var(--text-xl));white-space:nowrap}.revenue-toolbar{justify-content:space-between;align-items:end;gap:var(--space-md);margin-bottom:var(--space-md);padding:var(--space-md);border:1px solid var(--color-rule);background:var(--color-paper-2);border-radius:8px;display:flex}.revenue-period-copy{gap:.15rem;display:grid}.revenue-period-copy span,.revenue-period-copy small,.revenue-month-control label span,.revenue-day-control label span{color:var(--color-neutral);font-size:var(--text-xs);font-weight:800}.revenue-period-copy strong{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-xl);text-transform:capitalize}.revenue-toolbar-actions{align-items:end;gap:var(--space-sm);grid-template-columns:auto auto auto;display:grid}.revenue-month-control{align-items:end;gap:var(--space-xs);grid-template-columns:2.75rem minmax(10rem,1fr) 2.75rem;display:grid}.revenue-month-control label{gap:var(--space-xs);display:grid}.revenue-day-control{align-items:end;gap:var(--space-xs);grid-template-columns:minmax(10.5rem,1fr) 2.75rem;display:grid}.revenue-day-control label{gap:var(--space-xs);display:grid}.revenue-month-control button,.revenue-month-control input,.revenue-day-control button,.revenue-day-control input{border:1px solid var(--color-rule);background:var(--color-surface);min-height:2.75rem;color:var(--color-ink);font:inherit;border-radius:8px;font-weight:800}.revenue-day-control button{justify-content:center;align-items:center;gap:var(--space-xs);display:inline-flex}.revenue-day-control button span{display:none}.revenue-export-button{justify-content:center;align-items:center;gap:var(--space-xs);max-width:22rem;min-height:2.75rem;padding:0 var(--space-md);border:1px solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-paper);font:inherit;white-space:nowrap;font-weight:900;display:inline-flex}.revenue-export-button:disabled{cursor:wait;opacity:.7}.revenue-month-control button:disabled,.revenue-day-control button:disabled{cursor:not-allowed;opacity:.4}.revenue-month-control input,.revenue-day-control input{width:100%;padding:0 var(--space-sm);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (min-width:821px) and (max-width:1200px){.revenue-toolbar{flex-direction:column;align-items:stretch}.revenue-toolbar-actions{grid-template-columns:auto auto minmax(8rem,1fr)}}.revenue-error{margin:0 0 var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-danger);color:var(--color-danger);border-radius:8px;font-weight:800}.revenue-report-block{margin-top:var(--space-xl)}.revenue-report-heading{justify-content:space-between;align-items:end;gap:var(--space-md);margin-bottom:var(--space-sm);display:flex}.revenue-report-heading>div{align-items:baseline;gap:var(--space-sm);display:flex}.revenue-report-heading span{color:var(--color-neutral);font-size:var(--text-xs);font-weight:900}.revenue-report-heading h3{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-xl);margin:0}.revenue-report-heading p{color:var(--color-neutral);font-size:var(--text-sm);margin:0;font-weight:800}.revenue-summary-table table,.revenue-daily-table table,.revenue-table table{min-width:54rem}.revenue-booking-table table{min-width:78rem}.revenue-grid-table th+th,.revenue-grid-table td+td{border-left:1px solid var(--color-rule)}.revenue-grid-table .cell-no{text-align:center;width:4rem}.revenue-grid-table .cell-number,.revenue-grid-table .cell-count,.revenue-grid-table .cell-money{text-align:right}.revenue-share{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper-2);min-width:3.5rem;color:var(--color-accent);justify-content:center;padding:.2rem .55rem;font-weight:900;display:inline-flex}.table-shell{border:1px solid var(--color-rule);background:var(--color-surface);border-radius:8px;overflow-x:auto}.library-table table{min-width:56rem}.session-thumb{aspect-ratio:4/3;border:1px solid var(--color-rule);background:var(--color-paper-2);width:4.5rem;color:var(--color-neutral);border-radius:8px;place-items:center;display:grid;overflow:hidden}.session-thumb img{object-fit:cover;width:100%;height:100%}.table-link,.load-more,.lightbox-download{justify-content:center;align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper-2);min-height:2.5rem;color:var(--color-accent);padding:0 var(--space-md);font-weight:800;text-decoration:none;display:inline-flex}.load-more{margin-top:var(--space-md)}table{border-collapse:collapse;width:100%;min-width:48rem}th,td{border-bottom:1px solid var(--color-rule);padding:var(--space-sm) var(--space-md);text-align:left;vertical-align:top}th{color:var(--color-neutral);font-size:var(--text-xs);text-transform:uppercase}td{color:var(--color-ink);font-size:var(--text-sm);font-weight:700}tr:last-child td{border-bottom:0}.device-card{gap:var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-md);border-radius:8px;display:grid}.device-card-head{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.device-card-head div{align-items:center;gap:var(--space-xs);min-width:0;display:flex}.device-card-head strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status-dot{background:var(--color-neutral);border-radius:999px;flex:none;width:.65rem;height:.65rem}.status-dot.online,.status-pill.online{background:var(--color-success-soft);color:var(--color-success)}.status-dot.online{background:var(--color-success)}.status-dot.idle,.status-pill.idle{color:var(--color-price);background:lab(89.6901% 2.95392 19.4659)}.status-dot.idle{background:var(--color-price)}.status-dot.offline,.status-dot.disabled{background:var(--color-error)}.status-pill.offline,.status-pill.disabled{color:var(--color-error);background:lab(92.6897% 11.9871 7.36333)}.status-pill{border-radius:var(--radius-pill);font-size:var(--text-xs);padding:var(--space-2xs) var(--space-sm);white-space:nowrap;font-weight:800}.hwid-row{align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);background:var(--color-paper);padding:var(--space-xs);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;display:grid}.hwid-row code{color:var(--color-accent);font-family:var(--font-body);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.device-meta{gap:var(--space-xs);margin:0;display:grid}.device-meta div{gap:var(--space-sm);grid-template-columns:5.5rem minmax(0,1fr);display:grid}.device-meta dt{color:var(--color-neutral);font-size:var(--text-sm)}.device-meta dd{color:var(--color-ink);margin:0;font-weight:700}.device-card p{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.empty-state{place-items:center;gap:var(--space-sm);border:1px dashed var(--color-rule-strong);min-height:16rem;color:var(--color-neutral);text-align:center;border-radius:8px;display:grid}.empty-state strong{color:var(--color-ink);font-size:var(--text-md)}.gallery-shell{min-height:100vh;max-width:var(--content-wide);padding:var(--space-lg);margin:0 auto}:is(.gallery-shell button:focus-visible,.gallery-shell a:focus-visible){outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.gallery-topbar,.gallery-header{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-nav);padding:var(--space-lg);box-shadow:var(--shadow-hairline);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gallery-title{min-width:0}.gallery-header.gallery-header-public{grid-template-columns:minmax(0,1fr) auto}.gallery-syncing{margin:var(--space-md) auto 0}.gallery-syncing svg{animation:gallery-spin var(--dur-long) linear infinite}.gallery-topbar h1,.gallery-header h1{min-width:0;margin:var(--space-xs) 0 0;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-2xl);line-height:var(--leading-tight);overflow-wrap:anywhere}.gallery-title p{max-width:64ch;margin:var(--space-xs) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body)}.gallery-topbar>span,.gallery-header>span{color:var(--color-neutral);font-weight:800}.gallery-actions,.gallery-tabs,.gallery-frame-head,.lightbox figcaption,.gallery-modal-panel>div{align-items:center;gap:var(--space-sm);display:flex}.gallery-actions{flex-wrap:wrap;justify-content:flex-end}.gallery-actions button,.gallery-upload-button,.gallery-tabs button,.gallery-load-more,.lightbox figcaption button,.gallery-modal-panel button{white-space:nowrap}.gallery-upload-button{justify-content:center;align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);min-height:3.25rem;color:var(--color-accent);padding:0 var(--space-md);transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out);font-weight:800;display:inline-flex;position:relative;overflow:hidden}.gallery-upload-button:hover{transform:translateY(-1px)}.gallery-upload-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.gallery-upload-button:active{transform:translateY(0)}.gallery-upload-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.gallery-upload-button.secondary{background:var(--color-accent);min-height:2.75rem;color:var(--color-accent-ink)}.gallery-guide{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gallery-guide div,.gallery-guide button{align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);background:var(--color-surface);min-width:0;min-height:3.25rem;color:var(--color-accent);font-size:var(--text-sm);padding:0 var(--space-md);border-radius:8px;font-weight:900;display:flex}.gallery-guide button{width:100%;transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out);justify-content:flex-start}.gallery-guide button:hover{transform:translateY(-1px)}.gallery-guide span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gallery-note{width:fit-content;margin-bottom:var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-success);font-size:var(--text-sm);padding:var(--space-xs) var(--space-md);font-weight:900}.gallery-icon-button{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);width:3rem;height:3rem;color:var(--color-accent);flex:none;place-items:center;display:inline-grid}.gallery-icon-button:hover,.gallery-tabs button:hover,.gallery-open:hover,.gallery-download:hover,.gallery-heart:hover,.lightbox-close:hover,.lightbox-nav:hover,.lightbox figcaption button:hover,.gallery-frame-strip button:hover{transform:translateY(-1px)}.gallery-icon-button:active,.gallery-tabs button:active,.gallery-open:active,.gallery-download:active,.gallery-heart:active,.lightbox-close:active,.lightbox-nav:active,.lightbox figcaption button:active,.gallery-frame-strip button:active{transform:translateY(0)}.gallery-tabs{width:fit-content;margin:0 0 var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);padding:var(--space-2xs)}.gallery-tabs button{justify-content:center;align-items:center;gap:var(--space-xs);border-radius:var(--radius-pill);min-height:2.5rem;color:var(--color-muted);padding:0 var(--space-md);background:0 0;border:0;font-weight:800;display:inline-flex}.gallery-tabs button.active{background:var(--color-accent);color:var(--color-accent-ink)}.gallery-frame-panel{gap:var(--space-md);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-paper-2);padding:var(--space-md);border-radius:8px;display:grid}.gallery-upload-panel{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-paper-2);padding:var(--space-md);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;display:grid}.gallery-upload-panel h2{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);font-style:normal;line-height:var(--leading-snug);margin:0}.gallery-upload-panel p{max-width:64ch;margin:var(--space-2xs) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body)}.gallery-upload-panel>span{color:var(--color-neutral);font-size:var(--text-sm);white-space:nowrap;font-weight:900}.gallery-frame-head{justify-content:space-between}.gallery-frame-head h2,.gallery-modal-panel h2{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);font-style:normal;line-height:var(--leading-snug);margin:0}.gallery-frame-head p,.gallery-modal-panel p{margin:var(--space-2xs) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body)}.gallery-frame-head>span{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-accent);padding:var(--space-xs) var(--space-md);flex:none;font-weight:900}.gallery-frame-status{align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);width:fit-content;min-height:2.5rem;color:var(--color-muted);font-size:var(--text-sm);padding:0 var(--space-md);font-weight:800;display:inline-flex}.gallery-frame-status svg,.gallery-download-all.is-loading svg,.gallery-load-more svg{animation:gallery-spin var(--dur-long) linear infinite}.gallery-frame-strip{gap:var(--space-sm);padding-bottom:var(--space-2xs);scroll-snap-type:x proximity;display:flex;overflow-x:auto}.gallery-frame-strip button{gap:var(--space-xs);scroll-snap-align:start;border:1px solid var(--color-rule);background:var(--color-surface);width:10rem;color:var(--color-ink);padding:var(--space-xs);text-align:left;border-radius:8px;flex:0 0 10rem;grid-template-rows:7.5rem auto auto;display:grid}.gallery-frame-strip button.active{border-color:var(--color-focus);box-shadow:inset 0 0 0 1px var(--color-focus)}.gallery-frame-strip img,.gallery-frame-strip button>span{background:var(--color-paper-3);width:100%;height:100%;color:var(--color-accent);object-fit:cover;border-radius:8px;place-items:center;display:grid;overflow:hidden}.gallery-frame-strip strong,.gallery-frame-strip small{min-width:0;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gallery-frame-strip small{color:var(--color-neutral);font-weight:800}.gallery-compose-bar{justify-content:space-between;align-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-sm);border-radius:8px;display:flex}.gallery-compose-bar span{min-width:0;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-weight:900;overflow:hidden}.gallery-grid{justify-content:center;gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(8.75rem,12rem));display:grid}.gallery-tile{aspect-ratio:4/5;border:1px solid var(--color-rule);background:var(--color-surface);content-visibility:auto;contain-intrinsic-size:11rem 13.75rem;border-radius:8px;min-width:0;position:relative;overflow:hidden}.gallery-tile.selected{border-color:var(--color-focus);box-shadow:inset 0 0 0 2px var(--color-focus)}.gallery-open{width:100%;height:100%;color:inherit;background:0 0;border:0;padding:0;display:block}.gallery-tile img,.gallery-tile video{background:var(--color-paper-3);object-fit:cover;width:100%;height:100%}.gallery-open>span{left:var(--space-xs);bottom:var(--space-xs);max-width:calc(100% - var(--space-md));border-radius:var(--radius-pill);background:var(--color-nav);color:var(--color-accent);font-size:var(--text-xs);padding:var(--space-2xs) var(--space-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:900;position:absolute;overflow:hidden}.gallery-download,.gallery-heart{top:var(--space-xs);right:var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-nav);width:2.5rem;height:2.5rem;color:var(--color-accent);place-items:center;display:inline-grid;position:absolute}.gallery-remove{left:var(--space-xs);color:var(--color-error);right:auto}.gallery-heart[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-ink)}.gallery-heart:disabled,.gallery-download:disabled,.lightbox-nav:disabled{cursor:not-allowed;opacity:.55;transform:none}.gallery-load-more{margin-inline:auto}.lightbox{z-index:var(--z-modal);place-items:center;gap:var(--space-md);background:var(--color-caption);padding:var(--space-lg);grid-template-columns:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.lightbox figure{gap:var(--space-sm);min-width:0;margin:0;display:grid}.lightbox img,.lightbox video{background:var(--color-paper-3);object-fit:contain;border-radius:8px;max-width:min(90vw,64rem);max-height:78vh}.lightbox figcaption{color:var(--color-accent-ink);justify-content:space-between;font-weight:800}.lightbox-pick{gap:var(--space-xs);flex-shrink:0;display:flex}.lightbox figcaption button:disabled{cursor:not-allowed;opacity:.45}.lightbox figcaption span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lightbox figcaption button,.table-link,.load-more{justify-content:center;align-items:center;gap:var(--space-xs);display:inline-flex}.lightbox figcaption button{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);min-height:2.5rem;color:var(--color-accent);padding:0 var(--space-md);font-weight:800}.lightbox-close,.lightbox-nav{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);width:3rem;height:3rem;color:var(--color-accent);place-items:center;display:inline-grid}.lightbox-close{top:var(--space-md);right:var(--space-md);position:fixed}.gallery-modal{z-index:var(--z-modal);background:var(--color-caption);padding:var(--space-md);place-items:center;display:grid;position:fixed;inset:0}.gallery-modal-panel{gap:var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);width:min(24rem,100%);color:var(--color-ink);padding:var(--space-lg);box-shadow:var(--shadow-soft);border-radius:8px;display:grid}.gallery-modal-panel>svg{color:var(--color-success)}.gallery-modal-panel>div{flex-wrap:wrap}.progress-dialog{z-index:var(--z-modal);background:var(--color-caption);padding:var(--space-md);place-items:center;display:grid;position:fixed;inset:0}.progress-panel{gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);width:min(24rem,100%);color:var(--color-ink);padding:var(--space-lg);box-shadow:var(--shadow-soft);border-radius:8px;display:grid}.progress-panel svg{color:var(--color-accent);animation:gallery-spin var(--dur-long) linear infinite}.progress-panel h2,.progress-panel p{margin:0}.progress-panel h2{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);font-style:normal;line-height:var(--leading-snug)}.progress-panel p,.progress-panel span{color:var(--color-muted);font-size:var(--text-sm);font-weight:800}.progress-actions{justify-items:center;gap:var(--space-xs);margin-top:var(--space-xs);display:grid}.progress-actions .primary-action{width:100%}.progress-panel .progress-actions svg{color:inherit;animation:none}.progress-panel .progress-actions .text-action{color:var(--color-accent);font-size:1rem}.progress-panel progress{border-radius:var(--radius-pill);background:var(--color-paper-3);border:0;width:100%;height:.75rem;overflow:hidden}.progress-panel progress::-webkit-progress-bar{background:var(--color-paper-3)}.progress-panel progress::-webkit-progress-value{background:var(--color-accent)}.progress-panel progress::-moz-progress-bar{background:var(--color-accent)}.compose-shell{min-height:100vh;max-width:var(--content-wide);padding:var(--space-lg);margin:0 auto}.compose-header{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-nav);padding:var(--space-lg);box-shadow:var(--shadow-hairline);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.compose-header h1,.compose-empty h1{min-width:0;margin:var(--space-xs) 0 0;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-2xl);font-style:normal;line-height:var(--leading-tight);overflow-wrap:anywhere}.compose-header p,.compose-empty p{max-width:64ch;margin:var(--space-xs) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body)}.compose-workbench{gap:var(--space-md);grid-template-columns:minmax(0,1fr) minmax(20rem,.42fr);align-items:start;display:grid}.compose-stage{--stage-max-h:78svh;width:min(100%, calc(var(--stage-max-h) * var(--frame-ratio,.8)));touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid var(--color-rule);background:var(--color-paper-2);box-shadow:var(--shadow-hairline);border-radius:8px;margin-inline:auto;position:relative;overflow:hidden}.compose-slot{z-index:1;border:1px dashed var(--color-focus);background:var(--color-paper-3);cursor:pointer;position:absolute;overflow:hidden}.compose-slot.filled{cursor:grab;border:0}.compose-slot.active.filled:active{cursor:grabbing}.compose-slot.active:after{z-index:2;content:"";border:3px solid var(--color-focus);pointer-events:none;position:absolute;inset:0}.compose-slot-fill,.compose-slot-photo{pointer-events:none;-webkit-user-select:none;user-select:none;max-width:none;display:block;position:absolute}.compose-slot-fill{object-fit:cover}.compose-slot-photo{object-fit:fill}.compose-slot span{inset:var(--space-xs);border:1px dashed var(--color-rule);color:var(--color-neutral);font-size:var(--text-xs);text-align:center;place-items:center;font-weight:900;display:grid;position:absolute}.compose-frame-overlay{z-index:2;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.compose-panel,.compose-empty{gap:var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-md);box-shadow:var(--shadow-hairline);border-radius:8px;display:grid}.compose-empty{text-align:center;place-items:center;min-height:24rem}.compose-panel h2{margin:var(--space-xs) 0 0;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);font-style:normal;line-height:var(--leading-snug);overflow-wrap:anywhere}.compose-frame-shell{padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom))}.frame-picker-layout{gap:var(--space-md);grid-template-columns:minmax(0,1fr) minmax(18rem,.32fr);align-items:start;display:grid}.frame-picker-main{gap:var(--space-md);min-width:0;display:grid}.frame-picker-panel,.photo-picker-panel,.frame-receipt{gap:var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);min-width:0;padding:var(--space-md);box-shadow:var(--shadow-hairline);border-radius:8px;display:grid}.frame-picker-panel{background:var(--color-paper-2)}.photo-picker-panel{background:var(--color-paper)}.frame-picker-head,.photo-picker-head{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.frame-picker-head h2,.photo-picker-head h2,.frame-receipt h2{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);font-style:normal;line-height:var(--leading-snug);overflow-wrap:anywhere;margin:0}.frame-picker-head p,.photo-picker-head p,.frame-receipt p{margin:var(--space-2xs) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body)}.frame-choice-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(min(100%,11rem),1fr));display:grid}.frame-choice-card{gap:var(--space-xs);border:1px solid var(--color-rule);background:var(--color-surface);min-width:0;color:var(--color-ink);padding:var(--space-xs);text-align:left;transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out);border-radius:8px;grid-template-rows:minmax(9rem,auto) auto;display:grid;position:relative}.frame-choice-card:hover{transform:translateY(-1px)}.frame-choice-card.active{border-color:var(--color-focus);box-shadow:inset 0 0 0 1px var(--color-focus)}.frame-choice-preview,.frame-receipt-preview{border:1px solid var(--color-rule);background:linear-gradient(45deg, var(--color-paper-2) 25%, transparent 25%), linear-gradient(-45deg, var(--color-paper-2) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--color-paper-2) 75%), linear-gradient(-45deg, transparent 75%, var(--color-paper-2) 75%), var(--color-surface);width:100%;color:var(--color-accent);background-position:0 0,0 .5rem,.5rem -.5rem,-.5rem 0;background-size:1rem 1rem;border-radius:8px;place-items:center;display:grid;overflow:hidden}.frame-choice-preview{aspect-ratio:4/5}.frame-choice-preview img,.frame-receipt-preview img{object-fit:contain;width:100%;height:100%}.frame-choice-copy{gap:var(--space-2xs);min-width:0;display:grid}.frame-choice-copy strong,.frame-choice-copy small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.frame-choice-copy strong{color:var(--color-ink);font-weight:900}.frame-choice-copy small{color:var(--color-neutral);font-size:var(--text-xs);font-weight:800}.frame-choice-check{top:var(--space-sm);right:var(--space-sm);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-ink);padding:.12rem;position:absolute}.frame-photo-grid{justify-content:start}.frame-photo-grid .gallery-open:disabled{cursor:not-allowed}.frame-photo-grid .gallery-open:disabled img,.frame-photo-grid .gallery-open:disabled video{filter:grayscale(.45);opacity:.58}.frame-photo-download{left:var(--space-xs);right:auto}.frame-receipt{top:var(--space-lg);background:var(--color-surface);position:sticky}.frame-receipt-preview{aspect-ratio:4/5}.frame-receipt .primary-action{justify-content:center;align-items:center;gap:var(--space-xs);width:100%;padding:0 var(--space-md);white-space:nowrap;display:inline-flex}.lightbox-download{left:50%;bottom:var(--space-md);background:var(--color-surface);position:fixed;transform:translate(-50%)}a.primary-action,a.gallery-icon-button{text-decoration:none}.compose-shell label:focus-within{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.compose-shell button:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.compose-shell a:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.compose-slot:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.flow-steps a:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.flow-steps button:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.flow-steps{margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-md) var(--space-sm);box-shadow:var(--shadow-hairline);border-radius:8px}.flow-steps ol{grid-template-columns:repeat(var(--flow-count,6), minmax(0, 1fr));margin:0;padding:0;list-style:none;display:grid;position:relative}.flow-steps ol:before,.flow-steps ol:after{top:1rem;left:calc(100% / (2 * var(--flow-count,6)));right:calc(100% / (2 * var(--flow-count,6)));content:"";background:var(--color-rule);height:2px;position:absolute;transform:translateY(-50%)}.flow-steps ol:after{background:var(--color-accent);transform:translateY(-50%) scaleX(var(--flow-progress,0));transform-origin:0;transition:transform var(--dur-long) var(--ease-out)}.flow-step{z-index:1;justify-items:center;min-width:0;display:grid;position:relative}.flow-step a,.flow-step button,.flow-static{justify-items:center;gap:var(--space-xs);min-width:0;max-width:100%;color:inherit;padding:0 var(--space-3xs);text-align:center;background:0 0;border:0;text-decoration:none;display:grid}.flow-dot{border:2px solid var(--color-rule-strong);border-radius:var(--radius-pill);background:var(--color-surface);width:2rem;height:2rem;color:var(--color-neutral);font-size:var(--text-xs);place-items:center;font-weight:800;display:grid}.flow-label{max-width:100%;color:var(--color-neutral);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.flow-step.is-done .flow-dot{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.flow-step.is-done .flow-label{color:var(--color-muted)}.flow-step.is-done a:hover .flow-label,.flow-step.is-done button:hover .flow-label{color:var(--color-accent);text-underline-offset:.2em;text-decoration:underline}.flow-step.is-current .flow-dot{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink);box-shadow:0 0 0 4px var(--color-paper-3)}.flow-step.is-current .flow-label{color:var(--color-accent);font-weight:800}.flow-caption{display:none}.flow-next{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-paper-2);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-md);border-radius:8px;display:flex}.flow-next p{color:var(--color-muted);font-size:var(--text-sm);font-weight:700;line-height:var(--leading-body);margin:0}.text-action{align-items:center;gap:var(--space-2xs);min-height:2.75rem;color:var(--color-accent);text-underline-offset:.22em;white-space:nowrap;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.text-action:hover{text-decoration-thickness:2px}.has-flow-bar{padding-bottom:0}.photo-pick-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(min(100%,10.5rem),1fr));display:grid}.photo-pick{aspect-ratio:1;border:1px solid var(--color-rule);background:var(--color-paper-3);width:100%;min-width:0;color:inherit;content-visibility:auto;contain-intrinsic-size:10.5rem 10.5rem;transition:border-color var(--dur-micro) var(--ease-out);border-radius:8px;padding:0;display:block;position:relative;overflow:hidden}.photo-pick:hover{border-color:var(--color-rule-strong)}.photo-pick img{object-fit:cover;width:100%;height:100%;display:block}.photo-pick.selected{border-color:var(--color-accent)}.photo-pick.selected:after{content:"";border:3px solid var(--color-accent);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.photo-pick:disabled{cursor:not-allowed}.photo-pick:disabled img{filter:grayscale(.45);opacity:.5}.photo-pick-heart{z-index:1;top:var(--space-xs);right:var(--space-xs);align-items:center;gap:var(--space-3xs);border-radius:var(--radius-pill);background:var(--color-accent);min-width:2rem;height:2rem;color:var(--color-accent-ink);padding:0 var(--space-xs);box-shadow:var(--shadow-hairline);justify-content:center;display:inline-flex;position:absolute}.photo-pick-heart small{font-size:var(--text-xs);font-weight:800;line-height:1}.photo-pick-status,.photo-pick-more{margin-top:var(--space-md)}.flow-bar{z-index:var(--z-sticky);align-items:center;gap:var(--space-md);margin-top:var(--space-md);border:1px solid var(--color-rule);background:var(--color-nav);padding:var(--space-sm) var(--space-sm) calc(var(--space-sm) + env(safe-area-inset-bottom)) var(--space-md);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:0;border-radius:8px 8px 0 0;display:flex;position:sticky;bottom:0}.flow-bar p{align-items:baseline;gap:var(--space-xs);color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap;margin:0 auto 0 0;font-weight:700;display:flex}.flow-bar strong{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl)}.compose-slot span{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg)}.compose-panel{top:var(--space-md);min-width:0;position:sticky}.compose-slot-nav{align-items:center;gap:var(--space-sm);text-align:center;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.compose-slot-nav h2{margin:var(--space-3xs) 0 0}.compose-zoom{gap:var(--space-xs);border:1px solid var(--color-rule);background:var(--color-paper);padding:var(--space-sm);border-radius:8px;display:grid}.compose-zoom[aria-disabled=true]{opacity:.6}.compose-zoom-head{align-items:center;gap:var(--space-xs);display:flex}.compose-zoom-head>span{color:var(--color-muted);font-size:var(--text-sm);font-weight:800}.compose-zoom-head strong{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);margin-right:auto}.compose-zoom-head .text-action{min-height:2.25rem;font-size:var(--text-sm)}.compose-zoom-row{align-items:center;gap:var(--space-sm);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.compose-zoom-row button{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);width:2.75rem;height:2.75rem;color:var(--color-accent);place-items:center;display:inline-grid}.compose-zoom-row button:disabled{cursor:not-allowed;opacity:.45}.compose-zoom-row input{width:100%;min-width:0;height:2.75rem;accent-color:var(--color-accent)}.compose-zoom p{color:var(--color-neutral);font-size:var(--text-xs);line-height:var(--leading-body);margin:0}.compose-strip-head{justify-content:space-between;align-items:center;gap:var(--space-sm);min-height:2.25rem;color:var(--color-muted);font-size:var(--text-sm);font-weight:800;display:flex}.compose-strip-head .text-action{min-height:2.25rem;font-size:var(--text-sm)}.compose-strip{gap:var(--space-xs);grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));max-height:22rem;display:grid;overflow:auto}.compose-strip>button,.compose-strip-upload{aspect-ratio:1;border:1px solid var(--color-rule);background:var(--color-paper-3);border-radius:8px;min-width:0;padding:0;position:relative;overflow:hidden}.compose-strip>button img{object-fit:cover;width:100%;height:100%;display:block}.compose-strip>button.active:after{content:"";border:3px solid var(--color-accent);border-radius:inherit;position:absolute;inset:0}.compose-strip>button span{top:var(--space-3xs);right:var(--space-3xs);border-radius:var(--radius-pill);background:var(--color-accent);min-width:1.375rem;height:1.375rem;color:var(--color-accent-ink);font-size:var(--text-xs);padding:0 var(--space-3xs);place-items:center;font-weight:800;display:grid;position:absolute}.compose-strip-upload{place-content:center;justify-items:center;gap:var(--space-3xs);background:var(--color-surface);color:var(--color-accent);font-size:var(--text-xs);cursor:pointer;border-style:dashed;font-weight:800;display:grid}.compose-strip-upload input{opacity:0;cursor:pointer;position:absolute;inset:0}.compose-panel-actions{align-items:center;gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.text-action:disabled{cursor:not-allowed;opacity:.5}.print-sheet{border:1px solid var(--color-rule);background:linear-gradient(45deg, var(--color-paper-2) 25%, transparent 25%), linear-gradient(-45deg, var(--color-paper-2) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--color-paper-2) 75%), linear-gradient(-45deg, transparent 75%, var(--color-paper-2) 75%), var(--color-surface);width:100%;box-shadow:var(--shadow-hairline);background-position:0 0,0 .5rem,.5rem -.5rem,-.5rem 0;background-size:1rem 1rem;border-radius:8px;margin:0;overflow:hidden}.print-sheet img{object-fit:contain;width:100%;height:100%;display:block}.print-facts{gap:var(--space-sm);margin:0;display:grid}.print-facts div{justify-content:space-between;gap:var(--space-sm);border-top:1px solid var(--color-rule);padding-top:var(--space-sm);display:flex}.print-facts dt{color:var(--color-neutral);font-size:var(--text-sm);font-weight:700}.print-facts dd{color:var(--color-ink);margin:0;font-weight:800}.print-hint{color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body);margin:0}@media (max-width:640px){.flow-steps{padding:var(--space-sm)}.flow-steps ol:before,.flow-steps ol:after{top:.75rem}.flow-dot{border-width:1.5px;width:1.5rem;height:1.5rem;font-size:.6875rem}.flow-step.is-current .flow-dot{box-shadow:0 0 0 3px var(--color-paper-3)}.flow-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.flow-caption{justify-content:space-between;align-items:baseline;gap:var(--space-2xs) var(--space-sm);margin:var(--space-sm) 0 0;border-top:1px solid var(--color-rule);padding-top:var(--space-xs);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.flow-caption strong{color:var(--color-accent);font-size:var(--text-sm)}.flow-caption span{color:var(--color-neutral);font-weight:700}.flow-next{padding:var(--space-sm);flex-direction:column;align-items:stretch}}@media (max-width:820px){.flow-bar{margin-inline:calc(var(--space-sm) * -1);padding-inline:var(--space-sm);border-inline:0;border-radius:0}.compose-stage{--stage-max-h:54svh}.compose-panel{position:static}.compose-header.compose-header-slim{gap:var(--space-sm);padding:var(--space-sm) var(--space-md);grid-template-columns:auto minmax(0,1fr)}.compose-header-slim h1{font-size:var(--text-xl);margin-top:0}.compose-header-slim p{display:none}.compose-strip{overscroll-behavior-x:contain;scroll-snap-type:x proximity;max-height:none;padding-bottom:var(--space-2xs);display:flex;overflow-x:auto}.compose-strip>button,.compose-strip-upload{scroll-snap-align:start;flex:0 0 4.25rem;width:4.25rem}}@media (max-width:640px){.photo-pick-grid{gap:var(--space-2xs);grid-template-columns:repeat(3,minmax(0,1fr))}.photo-pick{border-radius:6px}.photo-pick-heart{top:var(--space-2xs);right:var(--space-2xs);min-width:1.625rem;height:1.625rem;padding:0 var(--space-2xs)}.photo-pick-heart svg{width:13px;height:13px}.flow-bar{gap:var(--space-sm)}.flow-bar p span{display:none}.flow-bar .primary-action{min-height:2.75rem;padding:0 var(--space-sm)}}@media print{@page{margin:0}html,body{background:0 0}body *{visibility:hidden}.print-sheet,.print-sheet *{visibility:visible}.print-sheet{width:100%;height:100%;box-shadow:none;background:0 0;border:0;border-radius:0;position:fixed;inset:0;aspect-ratio:auto!important}}.compose-board{touch-action:manipulation}.compose-board .compose-slot.filled{cursor:pointer}.compose-board .compose-slot:hover:before{z-index:2;content:"";border:2px solid var(--color-focus);pointer-events:none;position:absolute;inset:0}.compose-slot.inert{pointer-events:none}.compose-slot-empty{inset:var(--space-xs);justify-content:center;align-items:center;gap:var(--space-3xs);border:1px dashed var(--color-rule);color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);display:inline-flex;position:absolute}.compose-slot-busy{top:var(--space-xs);right:var(--space-xs);z-index:2;border-radius:var(--radius-pill);background:var(--color-nav);width:2rem;height:2rem;color:var(--color-accent);place-items:center;display:grid;position:absolute}.compose-slot-busy svg,.filter-row-busy{animation:gallery-spin var(--dur-long) linear infinite}.slot-list{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.slot-list button{align-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-paper);width:100%;min-height:3.75rem;color:var(--color-accent);padding:var(--space-2xs) var(--space-sm) var(--space-2xs) var(--space-2xs);text-align:left;border-radius:8px;grid-template-columns:3.25rem minmax(0,1fr) auto;display:grid}.slot-list button:hover{border-color:var(--color-rule-strong)}.slot-list-thumb{aspect-ratio:1;background:var(--color-paper-3);border-radius:6px;place-items:center;width:3.25rem;display:grid;overflow:hidden}.slot-list-thumb img{object-fit:cover;width:100%;height:100%}.slot-list-copy{min-width:0;display:grid}.slot-list-copy strong{color:var(--color-ink)}.slot-list-copy small{color:var(--color-neutral);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.slot-focus{z-index:var(--z-modal);background:var(--color-caption);padding:var(--space-md);place-items:center;display:grid;position:fixed;inset:0}.slot-focus-sheet{border:1px solid var(--color-rule);background:var(--color-surface);width:min(46rem,100%);height:min(56rem,100%);box-shadow:var(--shadow-soft);border-radius:8px;grid-template-rows:auto minmax(0,1fr) auto auto;display:grid;overflow:hidden}.slot-focus-head{align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--color-rule);padding:var(--space-xs) var(--space-sm);grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.slot-focus-head>div{text-align:center;min-width:0;display:grid}.slot-focus-head strong{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg)}.slot-focus-head strong span{color:var(--color-neutral);font-size:var(--text-sm)}.slot-focus-head small{color:var(--color-neutral);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.slot-focus-done{min-height:2.75rem}.slot-focus-view{--focus-veil:color-mix(in oklch, var(--color-ink) 52%, transparent);background:var(--color-paper-3);cursor:zoom-out;touch-action:none;-webkit-user-select:none;user-select:none;min-height:0;position:relative;overflow:hidden}.slot-focus-view:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:-3px}.slot-focus-stage{position:absolute}.slot-focus-stage .compose-slot{border:0}.slot-focus-stage .compose-slot.filled:not(.inert){cursor:grab}.slot-focus-stage .compose-slot.filled:not(.inert):active{cursor:grabbing}.slot-focus-stage .compose-slot.active:after{display:none}.slot-focus-spot{z-index:3;box-shadow:0 0 0 200vmax var(--focus-veil);outline:2px solid var(--color-focus);pointer-events:none;position:absolute}.slot-tools-body{align-content:start;gap:var(--space-xs);border-top:1px solid var(--color-rule);min-height:8.5rem;max-height:38svh;padding:var(--space-sm) var(--space-md);display:grid;overflow:auto}.slot-tools-body .compose-strip{max-height:14rem}.slot-tools-hint{color:var(--color-neutral);font-size:var(--text-xs);line-height:var(--leading-body);margin:0}.slot-tool-control{gap:var(--space-xs);display:grid}.move-row{align-items:center;gap:var(--space-sm);min-height:2.75rem;color:var(--color-muted);font-size:var(--text-sm);grid-template-columns:6rem minmax(0,1fr);font-weight:800;display:grid}.move-row input{width:100%;min-width:0;height:2.75rem;accent-color:var(--color-accent)}.move-row input:disabled{opacity:.45}.move-foot{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.filter-row{gap:var(--space-xs);overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:var(--space-2xs);display:flex;overflow-x:auto}.filter-row>button{gap:var(--space-3xs);width:4.75rem;color:var(--color-muted);font-size:var(--text-xs);scroll-snap-align:start;text-align:center;background:0 0;border:0;flex:0 0 4.75rem;padding:0;font-weight:700;display:grid}.filter-row>button>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.filter-row-thumb{aspect-ratio:1;border:1px solid var(--color-rule);background:var(--color-paper-3);color:var(--color-accent);border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.filter-row-thumb img{object-fit:cover;width:100%;height:100%}.filter-row>button.active{color:var(--color-accent);font-weight:800}.filter-row>button.active .filter-row-thumb{border-color:var(--color-accent);box-shadow:inset 0 0 0 3px var(--color-accent)}.filter-row-busy{color:var(--color-accent-ink);filter:drop-shadow(0 0 2px var(--color-ink));position:absolute}.filter-row .slot-tools-hint{align-self:center}.slot-tools-tabs{border-top:1px solid var(--color-rule);background:var(--color-paper);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.slot-tools-tabs button{justify-items:center;gap:var(--space-3xs);border:0;min-height:3.5rem;color:var(--color-neutral);font-size:var(--text-xs);padding:var(--space-xs) 0;white-space:nowrap;background:0 0;border-top:3px solid #0000;font-weight:700;display:grid}.slot-tools-tabs button.active{border-top-color:var(--color-accent);background:var(--color-surface);color:var(--color-accent);font-weight:800}:is(.slot-focus button:focus-visible,.slot-focus label:focus-within){outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}@media (max-width:640px){.slot-focus{padding:0}.slot-focus-sheet{border:0;border-radius:0;width:100%;height:100%}.slot-focus-head{padding-top:calc(var(--space-xs) + env(safe-area-inset-top))}.slot-focus-done{padding:0 var(--space-sm)}.slot-tools-body{padding:var(--space-sm)}}.filter-upload-form{grid-template-columns:minmax(10rem,.8fr) minmax(12rem,1fr) minmax(12rem,1fr) auto;align-items:end}.file-field{gap:var(--space-3xs);min-width:0;color:var(--color-muted);font-size:var(--text-xs);font-weight:800;display:grid}.admin-form .file-field input{padding:.6rem var(--space-sm)}.filter-tint-toggle{align-items:flex-start;gap:var(--space-xs);margin:calc(var(--space-sm) * -1) 0 var(--space-md);color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body);display:flex}.filter-tint-toggle input{flex:none;width:1.125rem;height:1.125rem;margin-top:.15rem}.filter-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));display:grid}.filter-card{gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);min-width:0;padding:var(--space-sm);border-radius:8px;display:grid}.filter-thumb{aspect-ratio:1;border:1px solid var(--color-rule);background:var(--color-paper-3);color:var(--color-accent);border-radius:8px;place-items:center;display:grid;overflow:hidden}.filter-thumb img{object-fit:cover;width:100%;height:100%}.filter-card .frame-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;display:grid}.filter-card .frame-actions>*{min-width:0;min-height:2.75rem;font-size:var(--text-sm);padding:0 var(--space-sm);white-space:nowrap}.filter-thumb-button.is-disabled{opacity:.55;pointer-events:none}@media (max-width:820px){.filter-upload-form{grid-template-columns:1fr}.filter-tint-toggle{margin-top:0}.filter-grid{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr))}.filter-card .frame-actions{grid-template-columns:minmax(0,1fr) auto}.filter-card .frame-actions>.ghost-action{grid-column:1/-1}}@keyframes gallery-spin{to{transform:rotate(1turn)}}.booking-public{min-height:100vh;padding:var(--space-lg)}.booking-hero{justify-content:space-between;align-items:end;gap:var(--space-md);max-width:var(--content-wide);margin:0 auto var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-lg);box-shadow:var(--shadow-hairline);border-radius:8px;display:flex}.booking-hero h1{margin:var(--space-xs) 0;color:var(--color-accent);font-family:var(--font-display);font-size:clamp(2.25rem,8vw,5.5rem);line-height:var(--leading-tight);overflow-wrap:anywhere}.booking-hero p{max-width:34rem;color:var(--color-muted);line-height:var(--leading-body);margin:0}.booking-workbench{gap:var(--space-md);max-width:var(--content-wide);grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(18rem,.72fr);margin:0 auto;display:grid}.booking-column,.booking-receipt{border:1px solid var(--color-rule);background:var(--color-paper-2);padding:var(--space-md);border-radius:8px}.booking-choice-list{gap:var(--space-sm);display:grid}.booking-choice{gap:var(--space-xs);border:1px solid var(--color-rule);background:var(--color-surface);width:100%;min-height:8rem;color:var(--color-ink);padding:var(--space-md);text-align:left;border-radius:8px;display:grid}.booking-choice.active{border-color:var(--color-focus);box-shadow:inset 0 0 0 1px var(--color-focus)}.booking-choice span{align-items:center;gap:var(--space-xs);color:var(--color-accent);font-weight:900;display:flex}.booking-choice small{color:var(--color-price);font-weight:800}.booking-choice p{color:var(--color-muted);line-height:var(--leading-body);margin:0}.booking-receipt{top:var(--space-lg);align-self:start;gap:var(--space-md);background:var(--color-surface);display:grid;position:sticky}.booking-receipt h2{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-snug);margin:0}.booking-receipt dl{gap:var(--space-sm);margin:0;display:grid}.booking-receipt dl div{gap:var(--space-2xs);border-top:1px solid var(--color-rule);padding-top:var(--space-sm);display:grid}.booking-receipt dt{color:var(--color-neutral);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.booking-receipt dd{color:var(--color-ink);margin:0;font-weight:800}@keyframes load-sweep{0%{transform:translate(-110%)}to{transform:translate(260%)}}@media (max-width:820px){.login-panel,.admin-shell{grid-template-columns:1fr}.login-brand{border-right:0;border-bottom:1px solid var(--color-rule);min-height:auto}.admin-shell{padding:var(--space-sm)}.rail{grid-template-columns:1fr auto;align-items:center;min-height:auto;position:static}.rail-item{justify-content:center}.topbar,.panel-heading,.booking-hero{flex-direction:column;align-items:stretch}.summary-strip,.admin-form,.packages-form,.codes-form,.frame-upload-form,.frame-bulkbar,.library-toolbar,.revenue-strip{grid-template-columns:1fr}.rail-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.account-pill{border-radius:8px}.booking-public{padding:var(--space-sm)}.booking-workbench{grid-template-columns:1fr}.booking-receipt{position:static}.gallery-shell{padding:var(--space-sm)}.gallery-topbar,.gallery-header,.compose-header{padding:var(--space-md);grid-template-columns:1fr;align-items:stretch}.gallery-actions,.gallery-tabs,.gallery-upload-panel,.gallery-modal-panel>div{align-items:stretch;width:100%}.gallery-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gallery-upload-panel{grid-template-columns:1fr}.gallery-actions button,.gallery-upload-button,.gallery-tabs button,.gallery-modal-panel button{min-width:0}.gallery-grid{gap:var(--space-xs);grid-template-columns:repeat(auto-fill,minmax(8.25rem,10rem))}.compose-shell{padding:var(--space-sm)}.compose-workbench,.frame-picker-layout{grid-template-columns:1fr}.frame-receipt{grid-template-columns:minmax(0,1fr) auto;align-items:center;position:static}.frame-receipt .eyebrow,.frame-receipt h2,.frame-receipt p{grid-column:1}.frame-receipt-preview{grid-area:1/2/span 3;width:5rem}.frame-receipt .primary-action{grid-column:1/-1}.compose-panel{position:static}}@media (max-width:520px){.login-shell{padding:var(--space-sm);align-items:stretch}.topbar h1{font-size:2rem}.device-meta div{gap:var(--space-2xs);grid-template-columns:1fr}.gallery-actions,.gallery-tabs,.gallery-guide,.gallery-modal-panel>div{grid-template-columns:1fr;display:grid}.gallery-frame-head{flex-direction:column;align-items:flex-start}.gallery-frame-strip button{flex-basis:8.75rem;width:8.75rem}.gallery-compose-bar{flex-direction:column;align-items:stretch}.gallery-grid{grid-template-columns:repeat(2,minmax(0,9.25rem))}.frame-picker-head,.photo-picker-head,.frame-receipt{grid-template-columns:1fr;align-items:stretch}.frame-picker-head,.photo-picker-head{display:grid}.frame-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.frame-choice-card{grid-template-rows:auto auto}.frame-receipt .eyebrow,.frame-receipt h2,.frame-receipt p,.frame-receipt-preview,.frame-receipt .primary-action{grid-area:auto}.frame-receipt-preview{width:100%;max-height:16rem}.lightbox{gap:var(--space-sm);padding:var(--space-sm);grid-template-columns:1fr}.lightbox img,.lightbox video{max-width:100%;max-height:72vh}.lightbox-nav{bottom:var(--space-sm);position:fixed}.lightbox-nav.prev{left:var(--space-sm)}.lightbox-nav.next{right:var(--space-sm)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}}@media (max-width:820px){.login-form input,.admin-form input,.admin-form select,.library-toolbar select,.frame-edit input{font-size:16px}.login-shell{min-height:100svh;padding:var(--space-sm);align-items:start}.login-brand{padding:var(--space-lg) var(--space-md) var(--space-md)}.login-brand h1{margin-top:var(--space-xs);font-size:clamp(2.5rem,13vw,3.5rem)}.login-brand p{margin-top:var(--space-sm);font-size:var(--text-sm)}.login-form{gap:var(--space-md);padding:var(--space-lg) var(--space-md)}.login-form input{min-height:3rem}.login-form .primary-action{width:100%}.admin-shell{padding:0 var(--space-sm) calc(4.75rem + env(safe-area-inset-bottom));display:block}.rail{z-index:var(--z-sticky);border:0;border-top:1px solid var(--color-rule);background:var(--color-nav);min-height:0;padding:var(--space-3xs) var(--space-3xs) calc(var(--space-3xs) + env(safe-area-inset-bottom));border-radius:0;display:block;position:fixed;inset:auto 0 0}.rail-brand,.rail-label{display:none}.rail-nav{grid-template-columns:repeat(8,minmax(0,1fr));gap:0}.rail-item{justify-content:center;gap:var(--space-3xs);min-width:0;min-height:3.5rem;color:var(--color-neutral);letter-spacing:-.01em;padding:var(--space-2xs) 0;background:0 0;border:0;border-radius:8px;flex-direction:column;font-size:.625rem;font-weight:700}.rail-item.active{background:var(--color-paper-3);color:var(--color-accent);border:0;font-weight:800}.rail-label-short{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.workspace{gap:var(--space-sm)}.topbar{z-index:var(--z-sticky);min-height:0;margin:0 calc(var(--space-sm) * -1);background:var(--color-nav);padding:var(--space-sm) var(--space-md);border-width:0 0 1px;border-radius:0;flex-direction:row;align-items:center;position:sticky;top:0}.topbar>div:first-child{min-width:0}.topbar .eyebrow{display:none}.topbar h1{font-size:var(--text-2xl);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.topbar-studio{color:var(--color-neutral);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:700;display:block;overflow:hidden}.account-pill{background:0 0;border:0;flex:none;padding:0}.account-pill>svg,.account-pill div{display:none}.account-pill button{border:1px solid var(--color-rule);width:2.75rem;min-height:2.75rem}.inline-message:empty{display:none}.frame-bulkbar button{min-width:0;font-size:var(--text-sm);padding:0 var(--space-sm);white-space:nowrap}.admin-form input[type=file]{padding:.7rem var(--space-sm)}.summary-strip{gap:var(--space-xs);padding:var(--space-xs);grid-template-columns:repeat(3,minmax(0,1fr)) auto}.summary-strip div{min-width:0;min-height:0;padding:var(--space-xs) var(--space-sm)}.summary-strip span{font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.summary-strip strong{margin-top:var(--space-3xs);font-size:var(--text-lg)}.summary-refresh{border-radius:8px;width:2.75rem;padding:0}.summary-strip .summary-refresh span{display:none}.device-panel{min-height:0;padding:var(--space-md) var(--space-sm)}.panel-heading{margin-bottom:var(--space-sm);flex-direction:row;align-items:baseline}.panel-heading .eyebrow{display:none}.panel-heading h2{margin:0}.panel-heading p{font-size:var(--text-sm)}.admin-form{margin-bottom:var(--space-md);padding:var(--space-sm)}.admin-form input,.admin-form select,.library-toolbar select{min-height:3rem}.admin-form .primary-action{width:100%}.device-grid,.studio-grid,.code-list{gap:var(--space-sm)}.device-card,.studio-card,.code-card{padding:var(--space-sm) var(--space-md)}.studio-card{min-height:0}.frame-bulkbar{grid-template-columns:repeat(2,minmax(0,1fr))}.frame-bulkbar span{order:-1;grid-column:1/-1}.frame-grid{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr))}.frame-meta,.frame-actions{flex-wrap:wrap}.frame-actions>button{flex:auto;min-height:2.75rem}.revenue-strip{gap:var(--space-xs);grid-template-columns:repeat(2,minmax(0,1fr))}.revenue-strip div{min-height:0;padding:var(--space-xs) var(--space-sm)}.revenue-strip div:nth-child(2){order:-1;grid-column:1/-1}.revenue-toolbar,.revenue-report-heading{flex-direction:column;align-items:stretch}.revenue-toolbar-actions{grid-template-columns:minmax(0,1fr);width:100%;display:grid}.revenue-month-control{grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;width:100%}.revenue-day-control{grid-template-columns:minmax(0,1fr) auto;width:100%}.revenue-day-control button{padding:0 var(--space-sm)}.revenue-day-control button span{display:inline}.revenue-export-button{width:100%;max-width:none}.revenue-summary-table table,.revenue-daily-table table,.revenue-table table,.revenue-booking-table table{min-width:0}.table-shell{background:0 0;border:0;overflow:visible}.table-shell table,.library-table table{min-width:0}.table-shell thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.table-shell tbody{gap:var(--space-sm);display:grid}.table-shell tr{gap:var(--space-3xs) var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-sm) var(--space-md);border-radius:8px;grid-template-columns:minmax(0,1fr);display:grid}.table-shell td{justify-content:space-between;align-items:baseline;gap:var(--space-sm);min-width:0;padding:var(--space-3xs) 0;overflow-wrap:anywhere;text-align:right;border:0;display:flex}.table-shell td:before{content:attr(data-label);color:var(--color-neutral);font-size:var(--text-xs);text-align:left;flex:none;font-weight:700}.table-shell td:not([data-label]):before,.table-shell td.cell-title:before{display:none}.table-shell td.cell-title{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);text-align:left;justify-content:flex-start}.table-shell td.cell-money{color:var(--color-price)}.library-table tr{grid-template-columns:4.5rem minmax(0,1fr)}.library-table td.cell-thumb{grid-area:1/1/span 4;align-items:start}.library-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.library-filter-machine,.library-filter-limit,.library-filter-actions{grid-column:1/-1}.library-toolbar input{min-height:3rem;font-size:16px}.library-table td:not(.cell-thumb):not(.cell-action){grid-column:2}.library-table td.cell-no,.library-table td.cell-count{text-align:right;width:auto}.library-table td.cell-title{font-family:var(--font-body);font-size:var(--text-sm)}.library-table td.cell-action{margin-top:var(--space-xs);grid-column:1/-1}.library-table td.cell-action .table-link{width:100%;min-height:2.75rem}}@media (max-width:380px){.rail-item{font-size:.5625rem}.summary-strip strong{font-size:var(--text-md)}}@media (max-width:340px){.frame-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:820px){.gallery-header.gallery-header-public{grid-template-columns:minmax(0,1fr)}}.spin{animation:gallery-spin var(--dur-long) linear infinite}.gallery-shell .gallery-action-row{grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,44rem)}.gallery-action-row .gallery-upload-button{text-decoration:none}.gallery-composed-link{position:relative}.gallery-composed-link b{top:calc(var(--space-2xs) * -1);right:calc(var(--space-2xs) * -1);border-radius:var(--radius-pill);background:var(--color-accent);min-width:1.5rem;height:1.5rem;color:var(--color-accent-ink);font-size:var(--text-xs);padding:0 var(--space-3xs);place-items:center;font-weight:800;display:grid;position:absolute}@media (max-width:560px){.gallery-shell .gallery-action-row .gallery-upload-button{gap:var(--space-3xs);min-height:3.75rem;font-size:var(--text-sm);padding:var(--space-2xs) var(--space-3xs);border-radius:8px;flex-direction:column}.gallery-composed-link b{top:var(--space-3xs);right:var(--space-3xs)}}.slot-tools-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.rotate-tool{align-items:center;gap:var(--space-md);grid-template-columns:auto minmax(0,1fr);display:grid}.rotate-dial{aspect-ratio:1;border:1px solid var(--color-rule);background:var(--color-paper);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;border-radius:50%;place-items:center;width:7.5rem;display:grid;position:relative}.rotate-dial:active{cursor:grabbing}.rotate-dial:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:3px}.rotate-dial-ticks{background:repeating-conic-gradient(var(--color-rule-strong) 0deg 1.2deg, transparent 1.2deg 30deg);pointer-events:none;border-radius:50%;position:absolute;inset:.375rem;-webkit-mask:radial-gradient(circle,#0000 0 calc(100% - .5rem),#000 calc(100% - .5rem));mask:radial-gradient(circle,#0000 0 calc(100% - .5rem),#000 calc(100% - .5rem))}.rotate-dial-arm{pointer-events:none;position:absolute;inset:0}.rotate-dial-arm i{top:calc(var(--space-2xs) * -1);border-radius:var(--radius-pill);background:var(--color-accent);width:2.25rem;height:2.25rem;color:var(--color-accent-ink);box-shadow:var(--shadow-hairline);place-items:center;margin-left:-1.125rem;display:grid;position:absolute;left:50%}.rotate-dial strong{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);pointer-events:none}.rotate-actions{gap:var(--space-xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.rotate-actions button{justify-content:center;align-items:center;gap:var(--space-2xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);min-height:2.75rem;color:var(--color-accent);white-space:nowrap;transition:transform var(--dur-micro) var(--ease-out);font-weight:800;display:inline-flex}.rotate-actions button:hover:not(:disabled){transform:translateY(-1px)}.rotate-actions button.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.rotate-actions button:disabled{cursor:not-allowed;opacity:.45}:root{--color-group-1:lab(46.2982% 49.2951 36.5282);--color-group-2:lab(49.5467% -42.4533 28.2033);--color-group-3:lab(43.2474% 2.10956 -51.5763);--color-group-4:lab(55.8775% 15.8011 71.6186);--color-group-5:lab(41.737% 49.5825 -30.6382);--color-group-6:lab(50.0166% -34.3269 -14.0584);--color-group-7:lab(37.4358% 28.3835 -50.2128);--color-group-8:lab(52.4115% -19.2356 56.8896);--color-on-group:lab(98.8548% .282347 1.88134)}.frame-actions{flex-wrap:wrap;justify-content:flex-start}.frame-actions button{align-items:center;gap:var(--space-2xs);white-space:nowrap;display:inline-flex}.frame-actions .danger-action{margin-left:auto}.frame-preview-fit{position:absolute;inset:0}.frame-preview-fit img{object-fit:fill;width:100%;height:100%;display:block}.frame-preview-fit .frame-slot{border-color:var(--group-color,var(--color-focus));background:color-mix(in oklch, var(--group-color,var(--color-focus)) 22%, transparent)}.group-modal{align-items:start;overflow-y:auto}.group-modal-panel{gap:var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);width:min(64rem,100%);color:var(--color-ink);padding:var(--space-md);box-shadow:var(--shadow-soft);border-radius:8px;margin-block:auto;display:grid}.group-modal-head{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.group-modal-head h2{margin:var(--space-3xs) 0 0;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-snug)}.group-modal-body{gap:var(--space-md);grid-template-columns:minmax(0,1fr) minmax(15rem,18rem);align-items:start;display:grid}.group-canvas{width:min(100%, calc(72svh * var(--frame-ratio,.8)));aspect-ratio:var(--frame-ratio,.8);border:1px solid var(--color-rule);background:var(--color-paper-2);border-radius:8px;justify-self:center;position:relative;overflow:hidden}.group-canvas>img{width:100%;height:100%;position:absolute;inset:0}.group-slot{border:3px solid var(--group-color);background:color-mix(in oklch, var(--group-color) 20%, transparent);transition:background var(--dur-micro) var(--ease-out);border-radius:4px;place-items:center;padding:0;display:grid;position:absolute}.group-slot:hover,.group-slot.in-active{background:color-mix(in oklch, var(--group-color) 42%, transparent)}:is(.group-slot:focus-visible,.group-pill:focus-visible){outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.group-slot b{border-radius:var(--radius-pill);background:var(--group-color);min-width:1.75rem;height:1.75rem;color:var(--color-on-group);font-size:var(--text-sm);padding:0 var(--space-3xs);place-items:center;font-weight:800;display:grid}.group-side{gap:var(--space-md);display:grid}.group-side>p{color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body);margin:0}.group-list{gap:var(--space-xs);flex-wrap:wrap;display:flex}.group-pill{align-items:center;gap:var(--space-2xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper);min-height:2.75rem;color:var(--color-ink);padding:0 var(--space-sm);white-space:nowrap;font-weight:800;display:inline-flex}.group-pill i{border-radius:var(--radius-pill);background:var(--group-color);width:.75rem;height:.75rem}.group-pill small{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.group-pill.active{border-color:var(--group-color);box-shadow:inset 0 0 0 2px var(--group-color)}.group-pill.add{color:var(--color-accent);border-style:dashed}.group-pill.erase{--group-color:var(--color-error);color:var(--color-error)}.group-canvas.erasing .group-slot{cursor:pointer;border-style:dashed}:is(.group-canvas.erasing .group-slot:hover,.group-canvas.erasing .group-slot:focus-visible){border-color:var(--color-error);background:color-mix(in oklch, var(--color-error) 45%, transparent);border-style:solid}.group-actions{gap:var(--space-xs);display:grid}.group-actions button{justify-content:center;align-items:center;gap:var(--space-xs);white-space:nowrap;display:inline-flex}@media (max-width:820px){.group-modal{padding:0}.group-modal-panel{min-height:100svh;padding:var(--space-sm);border:0;border-radius:0}.group-modal-body{grid-template-columns:minmax(0,1fr)}.group-canvas{width:min(100%, calc(60svh * var(--frame-ratio,.8)))}}.photo-grid{gap:var(--space-xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.photo-tile{aspect-ratio:4/5;border:1px solid var(--color-rule);background:var(--color-paper-3);content-visibility:auto;contain-intrinsic-size:10rem 12.5rem;border-radius:8px;min-width:0;position:relative;overflow:hidden}.photo-tile.selected{border-color:var(--color-accent)}.photo-tile.selected:after{content:"";border:3px solid var(--color-accent);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.photo-tile-open{width:100%;height:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;padding:0;display:block}.photo-tile-open img,.photo-tile-open video{object-fit:cover;width:100%;height:100%;display:block}.photo-tile-heart,.photo-tile-remove,.photo-tile-actions button{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-nav);color:var(--color-accent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out)}.photo-tile-heart{z-index:1;top:var(--space-xs);right:var(--space-xs);justify-content:center;align-items:center;gap:var(--space-3xs);min-width:2.75rem;height:2.75rem;padding:0 var(--space-xs);display:inline-flex;position:absolute}.photo-tile-heart[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.photo-tile-heart small{font-size:var(--text-sm);font-weight:800;line-height:1}.photo-tile-heart:disabled{cursor:not-allowed;opacity:.45}.photo-tile-remove{z-index:1;top:var(--space-xs);left:var(--space-xs);width:2.5rem;height:2.5rem;color:var(--color-error);place-items:center;display:inline-grid;position:absolute}.photo-tile-actions{z-index:1;right:var(--space-xs);bottom:var(--space-xs);left:var(--space-xs);gap:var(--space-2xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:absolute}.photo-tile-actions button{justify-content:center;align-items:center;gap:var(--space-2xs);min-width:0;min-height:2.5rem;font-size:var(--text-sm);padding:0 var(--space-2xs);white-space:nowrap;font-weight:800;display:inline-flex}.photo-tile-heart:hover:not(:disabled),.photo-tile-remove:hover,.photo-tile-actions button:hover{transform:translateY(-1px)}.photo-tile-heart:active:not(:disabled),.photo-tile-remove:active,.photo-tile-actions button:active{transform:translateY(0)}.gallery-action-row{gap:var(--space-xs);width:min(100%,32rem);margin-bottom:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gallery-action-row .gallery-upload-button{width:100%;min-width:0;padding:0 var(--space-sm)}.compose-header-title{min-width:0;display:grid}.compose-header-title h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compose-header-title small{color:var(--color-neutral);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.header-upload{flex:none}.flow-bar .flow-pick{gap:0;min-width:0;display:grid}.flow-bar .flow-pick strong{font-size:var(--text-lg);line-height:var(--leading-snug);text-overflow:ellipsis;overflow:hidden}.flow-bar .flow-pick span{font-size:var(--text-xs);text-overflow:ellipsis;display:block;overflow:hidden}.editor-shell{gap:var(--space-xs);height:100vh;max-width:48rem;height:100dvh;padding:var(--space-sm) var(--space-sm) 0;flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.editor-shell>*{flex:none}.editor-shell .flow-steps{margin-bottom:0}.editor-message{margin:0}.editor-shell label:focus-within{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.editor-shell button:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.editor-shell a:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.editor-shell [role=button]:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.group-row{justify-content:safe center;gap:var(--space-xs);overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:var(--space-3xs);display:flex;overflow-x:auto}.group-chip{justify-items:center;gap:var(--space-3xs);border:1px solid var(--color-rule);background:var(--color-surface);min-width:4.5rem;color:var(--color-muted);padding:var(--space-2xs);scroll-snap-align:center;transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);border-radius:8px;flex:none;display:grid}.group-chip:hover{transform:translateY(-1px)}.group-chip:active{transform:translateY(0)}.group-chip.active{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent);color:var(--color-accent)}.group-chip-box{place-items:center;width:3.5rem;height:4.5rem;display:grid}.group-chip-thumb{background:var(--color-paper-3);border-radius:4px;position:relative;overflow:hidden}.group-chip-frame{position:absolute}.group-chip .compose-slot{cursor:default;border:0}.group-chip-label{align-items:center;gap:var(--space-2xs);line-height:1;display:inline-flex}.group-chip-label b{font-family:var(--font-display);font-size:var(--text-md);font-weight:700}.group-chip-label small{border-radius:var(--radius-pill);background:var(--color-paper-3);color:var(--color-muted);font-size:var(--text-xs);padding:.125rem var(--space-2xs);font-weight:800}.group-chip-label svg{color:var(--color-success)}.editor-stage{flex:auto;min-height:0;display:flex}.editor-view{--editor-veil:color-mix(in oklch, var(--color-paper-2) 84%, transparent);border:1px solid var(--color-rule);background:var(--color-paper-2);touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:8px;flex:auto;min-width:0;min-height:0;position:relative;overflow:hidden}.editor-view.is-slot{--editor-veil:color-mix(in oklch, var(--color-ink) 52%, transparent);background:var(--color-paper-3);cursor:zoom-out;touch-action:none}.editor-view:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:-3px}.editor-frame{position:absolute}.editor-frame .compose-slot.active:after{display:none}.editor-view:not(.is-slot) .compose-slot:not(.inert):hover:before{z-index:2;content:"";border:2px solid var(--color-focus);pointer-events:none;position:absolute;inset:0}.editor-view.is-slot .compose-slot.filled:not(.inert){cursor:grab}.editor-view.is-slot .compose-slot.filled:not(.inert):active{cursor:grabbing}.editor-spot{z-index:3;box-shadow:0 0 0 200vmax var(--editor-veil);pointer-events:none;position:absolute}.editor-spot.is-slot{outline:2px solid var(--color-focus)}.editor-stage .print-sheet{min-width:0;height:100%;min-height:0;box-shadow:none;background:0 0;border:0;flex:auto;justify-content:center;align-items:center;display:flex}.editor-stage .print-sheet img{border:1px solid var(--color-rule);background:linear-gradient(45deg, var(--color-paper-2) 25%, transparent 25%), linear-gradient(-45deg, var(--color-paper-2) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--color-paper-2) 75%), linear-gradient(-45deg, transparent 75%, var(--color-paper-2) 75%), var(--color-surface);width:auto;max-width:100%;height:auto;max-height:100%;box-shadow:var(--shadow-hairline);background-position:0 0,0 .5rem,.5rem -.5rem,-.5rem 0;background-size:1rem 1rem;border-radius:8px}.editor-bar{margin:0 calc(var(--space-sm) * -1);justify-content:space-between}.tool-dock{margin:0 calc(var(--space-sm) * -1);border-top:1px solid var(--color-rule);background:var(--color-surface);box-shadow:var(--shadow-soft);display:grid}.tool-dock-head{align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--color-rule);padding:var(--space-xs) var(--space-sm);grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.tool-dock-head>div{text-align:center;min-width:0;display:grid}.tool-dock-head strong{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-snug)}.tool-dock-head strong span{color:var(--color-neutral);font-size:var(--text-sm)}.tool-dock-head small{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.tool-dock-done{min-height:2.75rem;padding:0 var(--space-md)}.tool-dock .slot-tools-body{border-top:0;min-height:6.5rem;max-height:30svh}.slot-tools-tabs button:disabled{cursor:not-allowed;opacity:.4}.compose-strip>.compose-strip-remove{place-content:center;justify-items:center;gap:var(--space-3xs);background:var(--color-surface);color:var(--color-error);font-size:var(--text-xs);border-style:dashed;font-weight:800;display:grid}.compose-strip>.compose-strip-remove span{min-width:0;height:auto;color:inherit;background:0 0;padding:0;position:static}.compose-slot .compose-slot-empty{justify-content:center;align-items:center;gap:var(--space-3xs);border:0;flex-direction:column;line-height:1;display:flex}.flow-bar .flow-count span{display:inline}.compose-header.compose-header-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.compose-header-row h1{margin:0}@media (max-width:820px){.compose-header.compose-header-row{gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}.compose-header-row h1{font-size:var(--text-xl)}}.move-center{min-height:2.25rem;font-size:var(--text-sm);justify-self:end}@media (min-width:821px){.editor-bar,.tool-dock{margin-inline:0}.tool-dock{border:1px solid var(--color-rule);border-bottom:0;border-radius:8px 8px 0 0;overflow:hidden}}@media (min-width:720px){.photo-grid{gap:var(--space-sm);grid-template-columns:repeat(3,minmax(0,1fr))}.editor-shell{padding-top:var(--space-md)}}@media (min-width:1080px){.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:640px){.editor-shell .flow-steps{padding:var(--space-xs) var(--space-sm)}.editor-shell .flow-caption{margin-top:var(--space-xs);padding-top:var(--space-2xs)}.editor-shell.is-editing .flow-caption{display:none}.tool-dock-done{padding:0 var(--space-sm)}}@media (max-width:360px){.photo-tile-actions{right:var(--space-2xs);bottom:var(--space-2xs);left:var(--space-2xs)}.photo-tile-actions button span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.gallery-action-row .gallery-upload-button{gap:var(--space-2xs);font-size:var(--text-sm);padding:0 var(--space-2xs)}}@media (max-width:520px){.frame-picker-panel{padding:var(--space-xs)}.frame-choice-grid{gap:var(--space-xs);grid-template-columns:repeat(3,minmax(0,1fr))}.frame-choice-card{padding:var(--space-3xs)}.frame-choice-copy strong{font-size:var(--text-sm)}.frame-choice-check{top:var(--space-xs);right:var(--space-xs)}.header-upload{width:3rem;min-height:3rem;padding:0}.header-upload span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.frame-choice-grid.is-few{--frame-chrome:24rem;--card-h:max(12rem, calc(100svh - var(--frame-chrome)));--card-w:calc(var(--card-h) * var(--frame-aspect,.8) + 2 * var(--space-xs) + 2px);--cols:1;grid-template-columns:repeat(var(--cols), minmax(0, var(--card-w)));justify-content:center;gap:var(--space-sm)}.compose-shell.has-flow-bar,.gallery-shell.has-flow-bar{min-height:100vh;flex-direction:column;min-height:100svh;display:flex}.has-flow-bar>*{flex-shrink:0}.has-flow-bar>.flow-bar{margin-top:auto}.has-flow-bar>:has(+.flow-bar){margin-bottom:var(--space-md)}.has-flow-bar>.frame-picker-panel{flex:1 0 auto;align-content:center}.frame-choice-grid.is-few[data-count="2"]{--cols:2}.frame-choice-grid.is-few[data-count="3"]{--cols:3}.frame-choice-grid.is-few[data-count="4"]{--cols:4}@media (max-width:719px){.frame-choice-grid.is-few[data-count="3"],.frame-choice-grid.is-few[data-count="4"]{--cols:2}}.frame-choice-grid.is-few .frame-choice-card{padding:var(--space-xs);grid-template-rows:auto auto}.frame-choice-grid.is-few .frame-choice-preview{width:min(100%, calc(var(--card-h) * var(--own-aspect,.8)));aspect-ratio:var(--own-aspect,.8);justify-self:center}.frame-choice-grid.is-few .frame-choice-copy strong{font-size:var(--text-md)}@media (min-width:821px){.frame-choice-grid.is-few{--frame-chrome:30rem}}@media (max-width:359px){.frame-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compose-header-row h1{font-size:var(--text-lg)}}@media print{.editor-shell{height:auto;overflow:visible}.editor-stage .print-sheet img{width:100%;max-width:none;height:100%;max-height:none;box-shadow:none;object-fit:contain;background:0 0;border:0;border-radius:0}}body{background:linear-gradient(90deg, transparent 0, transparent calc(100% - 1px), color-mix(in oklch, var(--color-rule) 30%, transparent) calc(100% - 1px)), var(--color-paper);background-size:clamp(6rem,18vw,14rem) 100%}.rail,.topbar,.summary-strip,.device-panel{background:var(--color-nav)}.rail-item.active{border-color:color-mix(in oklch, var(--color-accent) 32%, transparent);background:color-mix(in oklch, var(--color-accent) 9%, transparent)}.status-pill.warn{background:color-mix(in oklch, var(--color-price) 16%, var(--color-surface));color:var(--color-price)}.status-pill.ok{background:var(--color-success-soft);color:var(--color-success)}.status-pill.error{background:color-mix(in oklch, var(--color-error) 12%, var(--color-surface));color:var(--color-error)}.status-pill.neutral{background:var(--color-paper-3);color:var(--color-muted)}.brand-mark{align-items:center;gap:var(--space-xs);min-width:0;display:inline-flex}.brand-mark-logo{background:var(--color-surface);width:2.5rem;height:2.5rem;color:var(--color-accent);border-radius:8px;flex:none;place-items:center;display:inline-grid;overflow:hidden}.brand-mark-logo img{object-fit:contain;width:100%;height:100%}.brand-mark-logo b{background:var(--color-accent);width:100%;height:100%;color:var(--color-accent-ink);font-family:var(--font-display);place-items:center;font-size:1.25em;font-weight:700;display:grid}.brand-mark-name{color:var(--color-accent);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rail-brand .brand-mark{width:100%}.gallery-header.gallery-brand-header{align-items:center;gap:var(--space-md);display:flex}.gallery-brand-header>.brand-mark-logo,.booking-brand>.brand-mark-logo{border:1px solid var(--color-rule);width:clamp(3.5rem,14vw,5rem);height:clamp(3.5rem,14vw,5rem);font-size:var(--text-2xl);border-radius:12px}.brand-workbench{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(16rem,20rem);align-items:start;display:grid}.brand-form{gap:var(--space-md);display:grid}.brand-field{gap:var(--space-xs);color:var(--color-muted);font-size:var(--text-sm);font-weight:700;display:grid}.brand-field input:not([type=file]){border:1px solid var(--color-rule);background:var(--color-surface);min-height:3rem;color:var(--color-ink);padding:0 var(--space-sm);border-radius:8px}.brand-field small{color:var(--color-neutral);font-weight:600}.brand-logo-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.brand-logo-current{border:1px solid var(--color-rule);width:4rem;height:4rem;font-size:var(--text-xl);border-radius:12px}.brand-file{align-items:center;gap:var(--space-2xs);padding:0 var(--space-md);white-space:nowrap;display:inline-flex;position:relative;overflow:hidden}.brand-file input{opacity:0;cursor:pointer;position:absolute;inset:0}.brand-colors{gap:var(--space-xs);display:grid}.brand-color{align-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);min-height:3.5rem;padding:var(--space-2xs) var(--space-sm);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.brand-color input[type=color]{border:1px solid var(--color-rule);cursor:pointer;background:0 0;border-radius:8px;width:2.75rem;height:2.75rem;padding:2px}.brand-color span{min-width:0;display:grid}.brand-color strong{color:var(--color-ink)}.brand-color small{color:var(--color-neutral);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.brand-checks{gap:var(--space-2xs);margin:0;padding:0;list-style:none;display:grid}.brand-checks li{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:700;display:flex}.brand-checks .ok{color:var(--color-success)}.brand-checks .warn{color:var(--color-error)}.brand-message{color:var(--color-muted);font-size:var(--text-sm);margin:0;font-weight:700}.brand-message.ok{color:var(--color-success)}.brand-message.error{color:var(--color-error)}.brand-actions{align-items:center;gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.brand-actions .primary-action{gap:var(--space-xs)}.brand-preview{top:var(--space-md);justify-items:center;gap:var(--space-xs);margin:0;display:grid;position:sticky}.brand-preview figcaption{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.brand-phone{align-content:start;gap:var(--space-sm);aspect-ratio:9/18;border:6px solid var(--color-ink);background:var(--color-paper);width:min(100%,18rem);color:var(--color-ink);font-family:var(--font-body);padding:var(--space-sm);box-shadow:var(--shadow-soft);border-radius:28px;display:grid;overflow:hidden}.bp-steps{background:var(--color-surface);padding:var(--space-2xs) var(--space-xs);border-radius:8px;justify-content:space-between;display:flex}.bp-steps i{border:2px solid var(--color-rule-strong);border-radius:50%;width:.75rem;height:.75rem}.bp-steps i:first-child{border-color:var(--color-accent);background:var(--color-accent)}.bp-header{align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-xs);border-radius:8px;display:flex}.bp-header .bp-logo{width:2.5rem;height:2.5rem}.bp-header span{min-width:0;display:grid}.bp-header small{color:var(--color-accent);text-transform:uppercase;font-size:.5625rem;font-weight:800}.bp-header strong{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bp-actions{gap:var(--space-3xs);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.bp-actions span{border:1px solid var(--color-rule);background:var(--color-surface);color:var(--color-accent);padding:var(--space-2xs) 0;text-align:center;white-space:nowrap;border-radius:6px;font-size:.5625rem;font-weight:800;overflow:hidden}.bp-grid{gap:var(--space-3xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.bp-grid span{aspect-ratio:4/5;background:linear-gradient(160deg, oklch(70% .09 var(--bp-hue)), oklch(45% .08 calc(var(--bp-hue) + 40)));border-radius:6px}.bp-bar{margin:auto calc(var(--space-sm) * -1) calc(var(--space-sm) * -1);border-top:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-xs) var(--space-sm);justify-content:space-between;align-items:center;display:flex}.bp-bar span{color:var(--color-muted);font-size:var(--text-xs);font-weight:700}.bp-bar b{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg)}.bp-bar em{border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-ink);font-size:var(--text-xs);padding:var(--space-2xs) var(--space-sm);font-style:normal;font-weight:800}.booking-admin{gap:var(--space-md);display:grid}.booking-tabs{gap:var(--space-2xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);width:fit-content;max-width:100%;padding:var(--space-3xs);flex-wrap:wrap;display:flex}.booking-tabs button{align-items:center;gap:var(--space-2xs);border-radius:var(--radius-pill);min-height:2.5rem;color:var(--color-muted);padding:0 var(--space-md);white-space:nowrap;background:0 0;border:0;font-weight:800;display:inline-flex}.booking-tabs button.active{background:var(--color-accent);color:var(--color-accent-ink)}.booking-tabs b{border-radius:var(--radius-pill);background:var(--color-error);min-width:1.375rem;height:1.375rem;color:var(--color-on-group);font-size:var(--text-xs);padding:0 var(--space-3xs);place-items:center;display:grid}.booking-error{color:var(--color-error);font-size:var(--text-sm);margin:0;font-weight:700}.booking-toolbar{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.booking-week-nav{align-items:center;gap:var(--space-xs);margin-right:auto;display:flex}.booking-toolbar select,.booking-dialog select,.booking-settings select{border:1px solid var(--color-rule);background:var(--color-surface);min-height:2.75rem;color:var(--color-ink);padding:0 var(--space-sm);border-radius:8px}.booking-toolbar .primary-action{gap:var(--space-2xs)}.booking-week{gap:var(--space-xs);overscroll-behavior-x:contain;padding-bottom:var(--space-3xs);grid-template-columns:repeat(7,minmax(4.5rem,1fr));display:grid;overflow-x:auto}.booking-week button{border:1px solid var(--color-rule);background:var(--color-surface);min-height:4.25rem;color:var(--color-ink);padding:var(--space-2xs);border-radius:8px;justify-items:center;gap:0;display:grid}.booking-week button small{color:var(--color-neutral);font-size:var(--text-xs);font-weight:800}.booking-week button strong{font-family:var(--font-display);font-size:var(--text-lg)}.booking-week button span{color:var(--color-muted);font-size:var(--text-xs);font-weight:700}.booking-week button.today{border-style:dashed;border-color:var(--color-accent)}.booking-week button.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.booking-week button.active small,.booking-week button.active span{color:inherit}.booking-list{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.booking-row{align-items:start;gap:var(--space-md);border:1px solid var(--color-rule);border-left:4px solid var(--color-accent);background:var(--color-surface);padding:var(--space-sm) var(--space-md);border-radius:8px;grid-template-columns:4.5rem minmax(0,1fr) auto;display:grid}.booking-row.is-pending{border-left-color:var(--color-price)}.booking-row.is-done{border-left-color:var(--color-rule-strong)}.booking-row.is-cancelled{border-left-color:var(--color-error);opacity:.7}.booking-time{display:grid}.booking-time strong{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);line-height:1.1}.booking-time span{color:var(--color-neutral);font-size:var(--text-sm);font-weight:700}.booking-who{gap:var(--space-3xs);min-width:0;display:grid}.booking-who strong{color:var(--color-ink);font-size:var(--text-md)}.booking-who a{align-items:center;gap:var(--space-3xs);width:fit-content;color:var(--color-accent);font-weight:700;display:inline-flex}.booking-who span{color:var(--color-muted);font-size:var(--text-sm)}.booking-who em{color:var(--color-neutral);font-size:var(--text-sm)}.booking-side{justify-items:end;gap:var(--space-2xs);display:grid}.booking-side small{color:var(--color-neutral);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-xs)}.booking-row-actions{justify-content:flex-end;gap:var(--space-2xs);flex-wrap:wrap;display:flex}.booking-row-actions button{align-items:center;gap:var(--space-3xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper);min-height:2.25rem;color:var(--color-accent);font-size:var(--text-sm);padding:0 var(--space-sm);white-space:nowrap;font-weight:800;display:inline-flex}.booking-row-actions button.danger{color:var(--color-error)}.booking-settings{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(16rem,20rem);align-items:start;display:grid}.booking-settings-form{gap:var(--space-md);display:grid}.booking-switch{align-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);width:fit-content;min-height:3rem;color:var(--color-ink);padding:0 var(--space-md);font-weight:800;display:flex}.booking-switch input{width:1.25rem;height:1.25rem;accent-color:var(--color-accent)}.booking-settings-grid,.booking-dialog-grid{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.booking-settings-grid label,.booking-dialog-grid label,.booking-notice{gap:var(--space-2xs);color:var(--color-muted);font-size:var(--text-sm);font-weight:700;display:grid}.booking-settings-grid input,.booking-dialog-grid input,.booking-notice textarea,.booking-dialog-grid textarea{border:1px solid var(--color-rule);background:var(--color-surface);min-height:2.75rem;color:var(--color-ink);font:inherit;padding:var(--space-2xs) var(--space-sm);border-radius:8px}.booking-settings-grid small{color:var(--color-neutral)}.booking-settings-form .primary-action,.booking-qr-actions .primary-action,.booking-qr-actions .ghost-action{justify-content:center;align-items:center;gap:var(--space-xs);white-space:nowrap;display:inline-flex}.booking-qr{gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-md);border-radius:8px;display:grid}.booking-qr svg{aspect-ratio:1;background:#fff;border-radius:8px;width:100%}.booking-qr-link{overflow-wrap:anywhere;color:var(--color-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-xs);margin:0}.booking-qr-actions{gap:var(--space-xs);display:grid}.booking-qr-actions .text-action{justify-self:center}.booking-dialog{width:min(36rem,100%)}.booking-dialog>header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.booking-dialog-grid .wide,.booking-settings-grid .wide{grid-column:1/-1}.booking-pay-settings{gap:var(--space-sm);border:1px solid var(--color-rule);min-width:0;padding:var(--space-md);border-radius:8px;margin:0;display:grid}.booking-pay-settings legend{color:var(--color-ink);padding:0 var(--space-2xs);font-weight:800}.booking-pay-hint{color:var(--color-muted);font-size:var(--text-sm);margin:0}.booking-sepay{gap:var(--space-sm);background:var(--color-paper-2);padding:var(--space-sm) var(--space-md);border-radius:8px;display:grid}.booking-sepay strong{color:var(--color-ink)}.booking-sepay ol{gap:var(--space-3xs);color:var(--color-muted);font-size:var(--text-sm);margin:0;padding-left:1.25rem;display:grid}.booking-sepay label{gap:var(--space-3xs);color:var(--color-muted);font-size:var(--text-sm);font-weight:700;display:grid}.booking-sepay .text-action{justify-self:start;gap:var(--space-2xs)}.booking-copy-field{align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);background:var(--color-surface);min-width:0;padding:var(--space-3xs) var(--space-3xs) var(--space-3xs) var(--space-sm);border-radius:8px;display:flex}.booking-copy-field code{overflow-wrap:anywhere;min-width:0;color:var(--color-ink);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-xs);flex:1}.booking-payments{gap:var(--space-sm);grid-column:1/-1;display:grid}.booking-payments h3{color:var(--color-ink);font-size:var(--text-md);margin:0}.booking-payments ol{border:1px solid var(--color-rule);background:var(--color-surface);border-radius:8px;margin:0;padding:0;list-style:none;display:grid}.booking-payments li{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);display:flex}.booking-payments li+li{border-top:1px solid var(--color-rule)}.booking-payments li>span:first-child{min-width:0;display:grid}.booking-payments small{color:var(--color-neutral);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-xs)}.booking-payments em{color:var(--color-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.booking-dialog-actions{justify-content:flex-end;align-items:center;gap:var(--space-md);display:flex}.booking-page{max-width:48rem;padding:var(--space-md) var(--space-sm) 0;margin:0 auto}.booking-brand{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-nav);padding:var(--space-md);border-radius:8px;display:flex}.booking-brand h1{margin:var(--space-3xs) 0 0;overflow-wrap:anywhere;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-2xl);line-height:var(--leading-tight)}.booking-notice-text{margin:0 0 var(--space-md);border-left:3px solid var(--color-accent);color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body);padding-left:var(--space-sm)}.booking-steps{gap:var(--space-md);display:grid}.booking-step{gap:var(--space-sm);display:grid}.booking-step h2{align-items:center;gap:var(--space-xs);color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);margin:0;display:flex}.booking-empty{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.booking-cards{gap:var(--space-xs);grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));display:grid}.booking-card{justify-items:start;gap:var(--space-3xs);border:1px solid var(--color-rule);background:var(--color-surface);min-height:4.5rem;color:var(--color-accent);padding:var(--space-sm);text-align:left;border-radius:8px;display:grid}.booking-card strong{color:var(--color-ink)}.booking-card small{color:var(--color-muted);font-weight:700}.booking-card.active{border-color:var(--color-accent);box-shadow:inset 0 0 0 2px var(--color-accent)}.booking-days{gap:var(--space-xs);overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:var(--space-2xs);display:flex;overflow-x:auto}.booking-days button{border:1px solid var(--color-rule);background:var(--color-surface);min-height:4rem;color:var(--color-ink);scroll-snap-align:start;border-radius:8px;flex:0 0 4.5rem;justify-items:center;display:grid}.booking-days small{color:var(--color-neutral);font-size:var(--text-xs);white-space:nowrap;font-weight:800}.booking-days strong{font-family:var(--font-display);font-size:var(--text-lg)}.booking-days button.active,.booking-slots button.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.booking-days button.active small{color:inherit}.booking-slots{gap:var(--space-xs);grid-template-columns:repeat(auto-fill,minmax(4.75rem,1fr));display:grid}.booking-slots button{border:1px solid var(--color-rule);background:var(--color-surface);min-height:2.75rem;color:var(--color-ink);border-radius:8px;font-weight:800}.booking-slots button:disabled{cursor:not-allowed;background:var(--color-paper-2);color:var(--color-rule-strong);text-decoration:line-through}.booking-fields{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.booking-fields label{gap:var(--space-2xs);color:var(--color-muted);font-size:var(--text-sm);font-weight:700;display:grid}.booking-fields .wide{grid-column:1/-1}.booking-fields input,.booking-fields textarea{border:1px solid var(--color-rule);background:var(--color-surface);min-height:3rem;color:var(--color-ink);font:inherit;padding:var(--space-xs) var(--space-sm);border-radius:8px;font-size:1rem}.booking-done,.booking-closed{justify-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);color:var(--color-accent);padding:var(--space-xl) var(--space-md);text-align:center;border-radius:8px;display:grid}.booking-done h2,.booking-closed h2{font-family:var(--font-display);font-size:var(--text-2xl);margin:0}.booking-done p,.booking-closed p{color:var(--color-muted);margin:0}.booking-code{border:2px dashed var(--color-accent);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-2xl);letter-spacing:.08em;padding:var(--space-xs) var(--space-md);border-radius:8px}.booking-done dl{gap:var(--space-2xs);text-align:left;width:min(100%,22rem);margin:0;display:grid}.booking-done dl div{justify-content:space-between;gap:var(--space-sm);border-top:1px solid var(--color-rule);padding-top:var(--space-2xs);display:flex}.booking-done dt{color:var(--color-neutral);font-weight:700}.booking-done dd{color:var(--color-ink);margin:0;font-weight:800}.booking-page.has-flow-bar{min-height:100vh;flex-direction:column;min-height:100svh;display:flex}.booking-page.has-flow-bar>.flow-bar{margin-top:auto}.booking-page.has-flow-bar>:has(+.flow-bar){margin-bottom:var(--space-md)}.room-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));display:grid}.room-card{border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);grid-template-rows:auto 1fr auto;min-width:0;display:grid;overflow:hidden}.room-cover{aspect-ratio:3/2;border-bottom:1px solid var(--color-rule);background:var(--color-paper-2);margin:0;position:relative;overflow:hidden}.room-cover img{object-fit:cover;width:100%;height:100%;display:block}.room-cover-empty,.room-cover-busy{place-content:center;justify-items:center;gap:var(--space-2xs);color:var(--color-neutral);font-size:var(--text-sm);font-weight:700;display:grid;position:absolute;inset:0}.room-cover-busy{background:color-mix(in oklch, var(--color-surface) 78%, transparent);color:var(--color-accent)}.room-body{align-content:start;gap:var(--space-2xs);min-width:0;padding:var(--space-md);display:grid}.room-body h3{overflow-wrap:anywhere;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);font-style:normal;line-height:var(--leading-tight);margin:0}.room-capacity{color:var(--color-neutral);font-weight:700}.room-description{margin:var(--space-2xs) 0 0;color:var(--color-muted);line-height:var(--leading-body);white-space:pre-line;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.room-price{margin:var(--space-2xs) 0 0;color:var(--color-neutral);font-size:var(--text-sm)}.room-price strong{color:var(--color-price)}.room-actions{align-items:center;gap:var(--space-xs);border-top:1px solid var(--color-rule);padding:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.room-actions>*{white-space:nowrap}.room-actions .danger-action{margin-left:auto}.room-actions label.ghost-action{cursor:pointer;position:relative}.room-actions label.ghost-action input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.room-actions label.ghost-action:focus-within{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.room-actions label.ghost-action.is-disabled{opacity:.55;cursor:not-allowed}.room-actions label.ghost-action.is-disabled input{cursor:not-allowed}.room-edit{align-content:start;gap:var(--space-sm);padding:var(--space-md);display:grid}.room-edit label{gap:var(--space-3xs);display:grid}.room-edit label>span{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.room-edit input,.room-edit textarea{min-height:var(--control-md);border:1px solid var(--color-rule);border-radius:var(--radius-sm);outline:var(--rule-focus) solid transparent;outline-offset:1px;background:var(--color-paper);color:var(--color-ink);font:inherit;padding:var(--space-xs) var(--space-sm)}.room-edit textarea{resize:vertical;min-height:6rem;line-height:var(--leading-body)}:is(.room-edit input:focus-visible,.room-edit textarea:focus-visible){border-color:var(--color-rule-strong);outline-color:var(--color-focus)}.room-edit input:invalid:not(:placeholder-shown){border-color:var(--color-error)}.room-edit-count{color:var(--color-neutral);font-size:var(--text-xs);font-variant-numeric:tabular-nums;justify-self:end}.room-edit-actions{align-items:center;gap:var(--space-md);display:flex}@media (hover:hover) and (pointer:fine){.room-edit input:hover,.room-edit textarea:hover{background:var(--color-paper-2)}}:is(.booking-page button:focus-visible,.booking-page a:focus-visible){outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.room-list{gap:var(--space-xs);display:grid}.room-row{align-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;min-height:5.5rem;color:var(--color-ink);padding:var(--space-xs);text-align:left;transition:border-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);grid-template-columns:6.5rem minmax(0,1fr) auto;display:grid}.room-row:active{transform:translateY(1px)}.room-row-cover{aspect-ratio:3/2;border-radius:calc(var(--radius-sm) - .25rem);background:var(--color-paper-2);color:var(--color-neutral);place-items:center;display:grid;overflow:hidden}.room-row-cover img{object-fit:cover;width:100%;height:100%}.room-row-text{gap:var(--space-3xs);min-width:0;display:grid}.room-row-text strong{overflow-wrap:anywhere;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);font-style:normal;line-height:var(--leading-tight)}.room-row-text small{color:var(--color-neutral);font-weight:700}.room-row-price{color:var(--color-muted);font-size:var(--text-sm)}.room-row-price b{color:var(--color-price)}.room-row-go{color:var(--color-accent)}.room-detail{gap:var(--space-xs);min-width:0;display:grid}.room-back{justify-self:start}.room-hero{aspect-ratio:3/2;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper-2);margin:0;overflow:hidden}.room-hero img{object-fit:cover;width:100%;height:100%;display:block}.room-detail h2{margin:var(--space-xs) 0 0;overflow-wrap:anywhere;min-width:0;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-2xl);font-style:normal;line-height:var(--leading-tight)}.room-detail-capacity{color:var(--color-neutral);margin:0;font-weight:700}.room-detail-description{color:var(--color-muted);line-height:var(--leading-body);white-space:pre-line;margin:0}.package-list{gap:var(--space-xs);display:grid}.package-row{align-items:center;gap:var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;min-height:3.75rem;color:var(--color-ink);padding:var(--space-sm);text-align:left;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.package-row:active{transform:translateY(1px)}.package-row-mark{border:2px solid var(--color-rule-strong);background:var(--color-surface);border-radius:50%;width:1.25rem;height:1.25rem}.package-row-text{gap:var(--space-3xs);min-width:0;display:grid}.package-row-text strong{overflow-wrap:anywhere}.package-row-text small{color:var(--color-neutral);line-height:var(--leading-snug)}.package-row-price{color:var(--color-price);font-variant-numeric:tabular-nums;white-space:nowrap}.package-row.active{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.package-row.active .package-row-mark{border-color:var(--color-accent);background:var(--color-accent);box-shadow:inset 0 0 0 3px var(--color-surface)}@media (hover:hover) and (pointer:fine){.room-row:hover,.package-row:hover{border-color:var(--color-rule-strong)}}@media (prefers-reduced-motion:reduce){.room-row,.room-row:active,.package-row:active{transition:none;transform:none}}.booking-account-hint{min-width:0;color:var(--color-neutral);font-size:var(--text-sm);line-height:var(--leading-snug);margin:0}.booking-auth-dialog{width:min(100% - 2 * var(--space-md), 26rem);height:fit-content;max-height:min(90dvh,40rem);color:var(--color-ink);background:0 0;border:0;margin:auto;padding:0;position:fixed;inset:0}.booking-auth-dialog::backdrop{background:color-mix(in oklch, var(--color-ink) 45%, transparent)}.booking-auth-dialog .booking-auth{margin:0}.booking-auth-head{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.booking-auth-head h2{min-width:0;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);margin:0;font-style:normal}.booking-icon-button{border:1px solid var(--color-rule);background:var(--color-surface);width:2.75rem;height:2.75rem;color:var(--color-ink);border-radius:50%;flex:none;place-items:center;display:grid}@media (min-width:40rem){.room-row{grid-template-columns:9rem minmax(0,1fr) auto;min-height:7rem}.room-row-text strong{font-size:var(--text-xl)}}.room-grid-head{margin:0 0 var(--space-sm);justify-content:flex-end;display:flex}.cover-editor{width:min(100% - 2 * var(--space-sm), 64rem);height:fit-content;max-height:calc(100dvh - 2 * var(--space-sm));border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper);color:var(--color-ink);margin:auto;padding:0;position:fixed;inset:0;overflow:auto}.cover-editor::backdrop{background:color-mix(in oklch, var(--color-ink) 50%, transparent)}.cover-editor-head,.cover-editor-foot{align-items:center;gap:var(--space-sm);padding:var(--space-md);display:flex}.cover-editor-head{border-bottom:1px solid var(--color-rule);justify-content:space-between}.cover-editor-head h2{overflow-wrap:anywhere;min-width:0;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);font-style:normal;line-height:var(--leading-tight);margin:0}.cover-editor-head p{margin:var(--space-2xs) 0 0;color:var(--color-neutral);font-size:var(--text-sm)}.cover-editor-foot{border-top:1px solid var(--color-rule);flex-wrap:wrap;justify-content:flex-end}.cover-editor-error{color:var(--color-error);font-size:var(--text-sm);flex:100%;margin:0;font-weight:700}.cover-editor-body{gap:var(--space-lg);padding:var(--space-md);display:grid}.cover-editor-work{align-content:start;gap:var(--space-sm);min-width:0;display:grid}.cover-stage{aspect-ratio:3/2;border:1px solid var(--color-rule-strong);border-radius:var(--radius-sm);outline:var(--rule-focus) solid transparent;outline-offset:2px;background:var(--color-paper-3);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.cover-stage.is-dragging{cursor:grabbing}.cover-stage:focus-visible{outline-color:var(--color-focus)}.cover-stage img{pointer-events:none}.cover-stage-source{opacity:0;width:1px;height:1px;position:absolute}.cover-stage-grid{opacity:0;background:linear-gradient(to right, transparent calc(100% / 3 - .5px), color-mix(in oklch, var(--color-surface) 70%, transparent) calc(100% / 3 - .5px) calc(100% / 3 + .5px), transparent calc(100% / 3 + .5px) calc(200% / 3 - .5px), color-mix(in oklch, var(--color-surface) 70%, transparent) calc(200% / 3 - .5px) calc(200% / 3 + .5px), transparent calc(200% / 3 + .5px)), linear-gradient(to bottom, transparent calc(100% / 3 - .5px), color-mix(in oklch, var(--color-surface) 70%, transparent) calc(100% / 3 - .5px) calc(100% / 3 + .5px), transparent calc(100% / 3 + .5px) calc(200% / 3 - .5px), color-mix(in oklch, var(--color-surface) 70%, transparent) calc(200% / 3 - .5px) calc(200% / 3 + .5px), transparent calc(200% / 3 + .5px));pointer-events:none;transition:opacity var(--dur-short) var(--ease-out);position:absolute;inset:0}.cover-stage.is-dragging .cover-stage-grid{opacity:1}.cover-stage-state{place-content:center;justify-items:center;gap:var(--space-xs);color:var(--color-neutral);padding:var(--space-md);text-align:center;font-weight:700;display:grid;position:absolute;inset:0}.cover-stage-state.is-error{color:var(--color-error)}.cover-zoom{align-items:center;gap:var(--space-xs);grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.cover-zoom input[type=range]{width:100%;min-height:2.75rem;accent-color:var(--color-accent)}.cover-zoom-value{min-width:3.5rem;color:var(--color-neutral);font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.cover-zoom .text-action{grid-column:1/-1;justify-self:start}.cover-icon-button{border:1px solid var(--color-rule);background:var(--color-surface);width:2.75rem;height:2.75rem;color:var(--color-ink);border-radius:50%;flex:none;place-items:center;display:grid}.cover-icon-button:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.cover-editor .text-action:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.cover-editor .primary-action:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.cover-icon-button:active{transform:translateY(1px)}.cover-icon-button:disabled{opacity:.45;cursor:not-allowed}.cover-preview{align-content:start;gap:var(--space-sm);min-width:0;display:grid}.cover-preview h3{color:var(--color-muted);font-size:var(--text-sm);margin:0;font-weight:800}.cover-preview-surface{gap:var(--space-2xs);border:1px dashed var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-paper-2);width:min(100%,24rem);padding:var(--space-sm);margin:0;display:grid}.cover-preview-surface figcaption{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.cover-preview-row{cursor:default}.cover-framed{position:relative;overflow:hidden}@media (hover:hover) and (pointer:fine){.cover-icon-button:hover:not(:disabled){border-color:var(--color-rule-strong);background:var(--color-paper-2)}}@media (prefers-reduced-motion:reduce){.cover-stage-grid{transition:none}.cover-icon-button:active{transform:none}}@media (min-width:52rem){.cover-editor-body{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}@media (max-width:820px){.brand-workbench,.booking-settings{grid-template-columns:minmax(0,1fr)}.brand-preview{position:static}.booking-row{grid-template-columns:3.75rem minmax(0,1fr)}.booking-side{grid-column:1/-1;grid-template-columns:auto auto minmax(0,1fr);place-items:center start}.booking-row-actions{justify-content:flex-end}}@media (max-width:520px){.booking-settings-grid,.booking-dialog-grid,.booking-fields{grid-template-columns:minmax(0,1fr)}.booking-brand h1{font-size:var(--text-xl)}.booking-side{grid-template-columns:auto minmax(0,1fr)}.booking-row-actions{grid-column:1/-1;justify-content:flex-start}}@media (max-width:820px){.rail-nav{overscroll-behavior-x:contain;scrollbar-width:none;grid-template-columns:none;grid-auto-columns:minmax(4.25rem,1fr);grid-auto-flow:column;overflow-x:auto}.rail-nav::-webkit-scrollbar{display:none}}.device-name{overflow-wrap:anywhere;color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-snug);margin:0}.device-rename{min-height:2.25rem;font-size:var(--text-sm)}.device-name-form{gap:var(--space-xs);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.device-name-form input{border:1px solid var(--color-accent);background:var(--color-paper);min-width:0;min-height:3rem;color:var(--color-ink);font:inherit;font-size:var(--text-md);padding:0 var(--space-sm);border-radius:8px;font-weight:700}.device-name-form .primary-action{width:3rem;min-height:3rem;padding:0}.device-card .device-meta div{grid-template-columns:8.5rem minmax(0,1fr)}.device-error{color:var(--color-error);font-size:var(--text-sm);margin:0;font-weight:700}.device-detail{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.booking-play-code{border:1px dashed var(--color-accent);color:var(--color-accent);font-size:var(--text-xs);padding:var(--space-3xs) var(--space-xs);white-space:nowrap;border-radius:6px;font-weight:700}.booking-play-code b{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-md);letter-spacing:.08em}.booking-play-code.is-used{border-style:solid;border-color:var(--color-rule);color:var(--color-neutral)}.booking-auth{justify-items:start;gap:var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-md);border-radius:8px;display:grid}.booking-auth .booking-fields{width:100%}.booking-auth .primary-action{gap:var(--space-xs)}.booking-auth-hint{color:var(--color-neutral);font-size:var(--text-sm);margin:0}.booking-account{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.booking-account span{min-width:0;display:grid}.booking-account strong{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.booking-account small{color:var(--color-neutral);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-xs)}.booking-views{width:100%;margin-bottom:var(--space-md)}.booking-views button{padding:0 var(--space-xs);flex:1 1 0;justify-content:center}.my-bookings{gap:var(--space-sm);display:grid}.booking-just{align-items:center;gap:var(--space-xs);background:var(--color-success-soft);color:var(--color-success);font-size:var(--text-sm);padding:var(--space-xs) var(--space-sm);border-radius:8px;margin:0;font-weight:700;display:flex}.my-booking{gap:var(--space-sm);border:1px solid var(--color-rule);border-left:4px solid var(--color-accent);background:var(--color-surface);padding:var(--space-sm) var(--space-md);border-radius:8px;display:grid}.my-booking.is-pending{border-left-color:var(--color-price)}.my-booking.is-cancelled,.my-booking.is-done{border-left-color:var(--color-rule-strong);opacity:.75}.my-booking>header{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);display:flex}.my-booking>header div{gap:var(--space-3xs);min-width:0;display:grid}.my-booking>header strong{color:var(--color-ink);font-size:var(--text-md)}.my-booking>header span:not(.status-pill){color:var(--color-muted);font-size:var(--text-sm)}.play-code{justify-items:center;gap:var(--space-3xs);border:2px dashed var(--color-accent);background:color-mix(in oklch, var(--color-accent) 7%, var(--color-surface));padding:var(--space-sm);text-align:center;border-radius:8px;display:grid}.play-code small{color:var(--color-accent);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.play-code strong{color:var(--color-accent);letter-spacing:.2em;padding-left:.2em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(2.5rem,12vw,3.5rem);line-height:1.1}.play-code span{color:var(--color-muted);font-size:var(--text-sm)}.play-code.is-used{border-style:solid;border-color:var(--color-rule);background:var(--color-paper-2)}.play-code.is-used strong{color:var(--color-neutral);text-decoration:line-through}.my-booking-wait{align-items:center;gap:var(--space-xs);color:var(--color-price);font-size:var(--text-sm);margin:0;font-weight:700;display:flex}.booking-pay-note{background:color-mix(in oklch, var(--color-accent) 7%, var(--color-surface));color:var(--color-ink);font-size:var(--text-sm);padding:var(--space-xs) var(--space-sm);border-radius:8px;margin:0;font-weight:700}.transfer-box{gap:var(--space-sm) var(--space-md);border:2px dashed var(--color-price);padding:var(--space-sm);border-radius:8px;grid-template-columns:minmax(9rem,12rem) minmax(0,1fr);align-items:start;display:grid}.transfer-qr{aspect-ratio:1;object-fit:contain;background:#fff;border-radius:6px;width:100%}.transfer-box dl{gap:var(--space-2xs);margin:0;display:grid}.transfer-box dl div{gap:0;display:grid}.transfer-box dt{color:var(--color-neutral);font-size:var(--text-xs);font-weight:700}.transfer-box dd{align-items:center;gap:var(--space-2xs);min-width:0;color:var(--color-ink);overflow-wrap:anywhere;margin:0;font-weight:700;display:flex}.transfer-strong{color:var(--color-price);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-md)}.transfer-box .my-booking-wait{grid-column:1/-1}@media (max-width:30rem){.transfer-box{grid-template-columns:minmax(0,1fr)}.transfer-qr{justify-self:center;max-width:14rem}}.my-booking-note{color:var(--color-muted);font-size:var(--text-sm);margin:0;font-style:italic}.my-booking-code{color:var(--color-neutral);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--text-xs)}.my-photos{gap:var(--space-sm);display:grid}.my-photo{color:inherit;text-decoration:none;display:block}.my-photo img{object-fit:cover;width:100%;height:100%;display:block}.my-photo-empty{width:100%;height:100%;color:var(--color-neutral);place-items:center;display:grid}.my-photo-caption{right:var(--space-xs);bottom:var(--space-xs);left:var(--space-xs);background:var(--color-nav);padding:var(--space-2xs) var(--space-xs);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;display:grid;position:absolute}.my-photo-caption strong{color:var(--color-ink);font-size:var(--text-sm)}.my-photo-caption small{color:var(--color-muted);font-size:var(--text-xs);font-weight:700}.gallery-lock{gap:var(--space-sm);margin-bottom:var(--space-md);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-md);border-radius:8px;display:grid}.gallery-lock h2{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-xl);margin:0}.gallery-lock p{color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body);margin:0}.gallery-lock b{color:var(--color-ink);font-family:IBM Plex Mono,ui-monospace,monospace}.gallery-lock form{gap:var(--space-xs);grid-template-columns:minmax(0,1fr) auto;display:grid}.gallery-lock input{border:1px solid var(--color-rule);background:var(--color-paper);min-width:0;min-height:3rem;color:var(--color-ink);font:inherit;padding:0 var(--space-sm);border-radius:8px;font-size:1rem}@media (max-width:420px){.gallery-lock form{grid-template-columns:minmax(0,1fr)}.booking-views button{font-size:var(--text-sm)}}.studio-card{flex-direction:column;display:flex}.card-foot{justify-content:space-between;align-items:center;gap:var(--space-sm);border-top:1px solid var(--color-rule);padding-top:var(--space-sm);margin-top:auto;display:flex}.card-foot>span{color:var(--color-neutral);font-size:var(--text-sm);white-space:nowrap;font-weight:700}.card-foot strong{align-self:center}.danger-action:hover:not(:disabled){border-color:var(--color-error)}.danger-action:active:not(:disabled){transform:translateY(0)}.code-toolbar{gap:var(--space-sm);margin-bottom:var(--space-md);display:grid}.code-toolbar .code-bulkbar{margin-bottom:0}.code-filter{gap:var(--space-xs);flex-wrap:wrap;display:flex}.code-filter button{align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);min-height:2.5rem;color:var(--color-muted);padding:0 var(--space-md);white-space:nowrap;transition:border-color var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out);font-weight:800;display:inline-flex}.code-filter button:hover{border-color:var(--color-rule-strong)}.code-filter button.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.code-filter small{font-size:var(--text-xs);font-variant-numeric:tabular-nums;opacity:.8}.code-card{transition:border-color var(--dur-micro) var(--ease-out)}.code-card.selected{border-color:var(--color-focus);box-shadow:inset 0 0 0 1px var(--color-focus)}.code-card>div:first-child{justify-content:flex-start}.code-card>div:first-child .status-pill{margin-left:auto}.code-select{aspect-ratio:1;border:1px solid var(--color-rule);background:var(--color-paper-2);width:2.5rem;color:var(--color-accent);border-radius:8px;flex:none;place-items:center;display:inline-grid}.code-select:hover{border-color:var(--color-rule-strong)}.code-actions .code-delete{background:var(--color-surface);width:2.5rem;color:var(--color-error);margin-left:auto;padding:0}.undo-bar{right:var(--space-lg);bottom:var(--space-lg);z-index:var(--z-modal);align-items:center;gap:var(--space-md);max-width:min(30rem, calc(100vw - var(--space-lg) * 2));background:var(--color-ink);box-shadow:var(--shadow-soft);color:var(--color-paper);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-md);animation:undo-in var(--dur-short) var(--ease-out);border-radius:8px;display:flex;position:fixed;overflow:hidden}.undo-bar span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.undo-bar button{align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule-strong);border-radius:var(--radius-pill);min-height:2.5rem;color:var(--color-paper);padding:0 var(--space-md);white-space:nowrap;background:0 0;flex:none;font-weight:800;display:inline-flex}.undo-bar button:hover{background:var(--color-muted)}.undo-bar button:focus-visible{outline:var(--rule-focus) solid var(--color-paper);outline-offset:2px}.undo-bar i{background:var(--color-focus);transform-origin:0;height:3px;animation:undo-timer var(--undo-ms) linear forwards;position:absolute;inset:auto 0 0}@keyframes undo-in{0%{opacity:0;transform:translateY(.75rem)}}@keyframes undo-timer{to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.undo-bar{animation:undo-fade .15s var(--ease-out)}@keyframes undo-fade{0%{opacity:0}}}@media (max-width:820px){.undo-bar{right:var(--space-sm);bottom:calc(5.25rem + env(safe-area-inset-bottom));left:var(--space-sm);max-width:none}.code-toolbar .code-bulkbar{grid-template-columns:repeat(2,minmax(0,1fr))}.code-toolbar .code-bulkbar span{order:-1;grid-column:1/-1}}.share-action{justify-content:center;align-items:center;gap:var(--space-xs);border:1px solid var(--color-rule-strong);border-radius:var(--radius-pill);background:var(--color-surface);min-height:3rem;color:var(--color-accent);padding:0 var(--space-md);white-space:nowrap;transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);margin-left:auto;font-weight:800;display:inline-flex}.share-action:hover:not(:disabled){border-color:var(--color-accent);transform:translateY(-1px)}.share-action:active:not(:disabled){transform:translateY(0)}.share-action:disabled{cursor:not-allowed;opacity:.55}.share-action.is-done{border-color:var(--color-success);color:var(--color-success)}.share-fallback{align-items:end;gap:var(--space-sm);border:1px solid var(--color-rule);background:var(--color-surface);padding:var(--space-sm);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;display:grid}.share-fallback label{gap:var(--space-xs);min-width:0;color:var(--color-muted);font-size:var(--text-sm);font-weight:700;display:grid}.share-fallback input{border:1px solid var(--color-rule);background:var(--color-paper);width:100%;min-width:0;min-height:3rem;color:var(--color-ink);padding:0 var(--space-sm);border-radius:8px;font-size:16px}@media (max-width:820px){.share-action{min-height:2.75rem;padding:0 var(--space-sm)}}@media (max-width:380px){.share-action{width:2.75rem;padding:0}.share-action span{display:none}}.session-actions{justify-content:flex-end;gap:var(--space-xs);flex-wrap:nowrap;display:flex}.session-actions .table-link{white-space:nowrap;transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out)}.session-actions .table-link:hover{border-color:var(--color-accent);transform:translateY(-1px)}.session-actions .table-link:active{transform:translateY(0)}.session-actions button.table-link{font:inherit;font-weight:800}.session-actions .table-link.is-done{border-color:var(--color-success);color:var(--color-success)}.session-qr-panel{width:min(26rem,100%);max-height:calc(100svh - var(--space-md) * 2);padding:var(--space-md);overflow-y:auto}.session-qr-panel .group-modal-head{align-items:start}.session-qr-panel .group-modal-head small{color:var(--color-neutral);font-size:var(--text-sm);font-weight:700}.session-qr{border:0;padding:0}.session-qr svg,.session-qr-loading{justify-self:center;width:min(100%,18rem)}.session-qr-loading{aspect-ratio:1;border:1px solid var(--color-rule);background:var(--color-paper-2);border-radius:8px;place-items:center;display:grid}.session-qr-loading .loading-line{width:60%}.session-qr-note{color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-body);margin:0}@media (max-width:820px){.library-table td.cell-action .session-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;width:100%;display:grid}.library-table td.cell-action .session-actions .table-link{width:100%;min-height:2.75rem;padding:0 var(--space-sm)}.library-table td.cell-action .session-actions .session-qr-button{width:2.75rem;padding:0}.library-table td.cell-action .session-actions .session-composed-link{order:1;grid-column:1/-1}.session-qr-button span{display:none}}@media (min-width:821px){.admin-shell{gap:var(--space-lg);grid-template-columns:15rem minmax(0,1fr)}.codes-form{grid-template-columns:minmax(10rem,1.5fr) repeat(4,minmax(0,1fr)) auto}.packages-form{grid-template-columns:repeat(2,minmax(0,1fr)) repeat(2,minmax(0,.7fr)) minmax(0,1fr) auto}.filter-upload-form{grid-template-columns:minmax(0,.8fr) repeat(2,minmax(0,1fr)) auto}.rail{align-content:start;gap:var(--space-lg);border:0;border-right:1px solid var(--color-rule);-webkit-backdrop-filter:none;backdrop-filter:none;padding:var(--space-xs) var(--space-md) var(--space-xs) 0;background:0 0;border-radius:0}.rail-nav{gap:var(--space-lg)}.rail-group{gap:var(--space-3xs);display:grid}.rail-group-label{color:var(--color-neutral);font-size:var(--text-xs);padding:0 var(--space-sm) var(--space-2xs);font-weight:700}.rail-item{border-radius:var(--radius-sm);min-height:2.75rem;color:var(--color-muted);padding:0 var(--space-sm);transition:background var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);background:0 0;border:0;font-weight:700;position:relative}.rail-item:hover{background:var(--color-paper-2);color:var(--color-ink)}.rail-item:active{background:var(--color-paper-3)}.rail-item.active{background:color-mix(in oklch, var(--color-accent) 9%, transparent);color:var(--color-accent);border:0;font-weight:800}.rail-item.active:before{border-radius:var(--radius-pill);background:var(--color-accent);content:"";width:3px;position:absolute;top:.625rem;bottom:.625rem;left:0}.topbar{border:0;border-bottom:1px solid var(--color-rule);min-height:0;box-shadow:none;padding:var(--space-xs) 0 var(--space-md);background:0 0;border-radius:0}.topbar-studio{color:var(--color-neutral);font-size:var(--text-sm);font-weight:700;display:block}.topbar h1{margin:var(--space-3xs) 0 0;color:var(--color-ink);font-size:var(--text-xl)}.device-panel{min-height:0}}.workspace{align-content:start}.workspace>*{min-width:0}.topbar-refresh{border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);width:2.75rem;height:2.75rem;color:var(--color-muted);transition:border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);flex:none;place-items:center;margin-left:auto;display:inline-grid}.topbar-refresh:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.topbar-refresh:active:not(:disabled){background:var(--color-paper-2)}.topbar-refresh:disabled{cursor:progress}.panel-heading{justify-content:start;align-items:baseline}.panel-heading h2{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.panel-heading p{font-size:var(--text-sm)}.workspace>.inline-message:empty{display:none}.admin-shell .ghost-action{border-color:var(--color-rule-strong);background:var(--color-surface);color:var(--color-ink)}.admin-shell .ghost-action:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.admin-shell .ghost-action:active:not(:disabled){background:var(--color-paper-2);transform:translateY(0)}.admin-shell .ghost-action.is-done{border-color:var(--color-success);color:var(--color-success)}.login-brand .brand-mark{margin-bottom:var(--space-lg);font-size:var(--text-lg)}.login-missing{align-self:center;align-items:start;gap:var(--space-sm);border:1px dashed var(--color-rule-strong);border-radius:var(--radius-md);color:var(--color-muted);padding:var(--space-md);margin:clamp(1.5rem,4vw,3rem);display:flex}.login-missing svg{color:var(--color-accent);flex:none}.login-missing p{line-height:var(--leading-body);margin:0}.login-switch{border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:var(--text-sm);padding:var(--space-sm) clamp(1.5rem, 4vw, 3rem);text-decoration:underline;-webkit-text-decoration-color:var(--color-rule-strong);text-decoration-color:var(--color-rule-strong);text-underline-offset:.25em;white-space:nowrap;grid-column:1/-1;font-weight:700}.login-switch:hover{color:var(--color-accent);text-decoration-color:currentColor}.login-switch:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:-2px}.staff-admin{gap:var(--space-md);display:grid}.staff-portal{justify-content:space-between;align-items:center;gap:var(--space-sm) var(--space-md);border:1px dashed var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper-2);padding:var(--space-md);flex-wrap:wrap;display:flex}.staff-portal>div:first-child{min-width:0}.staff-portal h3{font-size:var(--text-md);margin:0}.staff-portal-link{margin:var(--space-3xs) 0 0;color:var(--color-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.staff-portal-actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.staff-toolbar{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.staff-toolbar p{color:var(--color-neutral);margin:0;font-weight:700}.staff-notice{color:var(--color-success);font-size:var(--text-sm);margin:0}.staff-list{border-top:1px solid var(--color-rule);margin:0;padding:0;list-style:none}.staff-row{align-items:center;gap:var(--space-xs) var(--space-md);border-bottom:1px solid var(--color-rule);padding:var(--space-sm) 0;grid-template-columns:minmax(9rem,1fr) auto minmax(0,2fr) auto auto;display:grid}.staff-row.is-disabled .staff-who,.staff-row.is-disabled .staff-scope{opacity:.6}.staff-who{min-width:0;display:grid}.staff-who strong,.staff-who span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.staff-who span{color:var(--color-neutral);font-size:var(--text-sm)}.staff-scope{color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-snug);margin:0}.staff-last{color:var(--color-neutral);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.staff-actions{justify-content:end;align-items:center;gap:var(--space-2xs);display:flex}.staff-actions .text-action{white-space:nowrap}.staff-actions .danger-action{justify-content:center;width:2.75rem;min-height:2.75rem;padding:0}.staff-dialog,.password-dialog{max-height:calc(100svh - var(--space-md) * 2);overflow-y:auto}.staff-dialog{width:min(48rem,100%)}.password-dialog{width:min(26rem,100%)}.gallery-modal-panel.staff-dialog>.staff-dialog-fields{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));display:grid}.staff-dialog label,.password-dialog>label{gap:var(--space-2xs);color:var(--color-muted);font-size:var(--text-sm);font-weight:700;display:grid}.staff-dialog-fields input,.password-dialog input{width:100%;min-height:var(--control-md);border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);padding:0 var(--space-md);outline:none;font-size:16px}.password-dialog .password-field input{padding-right:3.25rem}.staff-dialog-fields input:focus,.password-dialog input:focus{border-color:var(--color-focus)}:is(.staff-dialog input:focus-visible,.password-dialog input:focus-visible,.staff-dialog button:focus-visible,.password-dialog button:focus-visible,.staff-admin button:focus-visible){outline:var(--rule-focus) solid var(--color-focus);outline-offset:2px}.staff-dialog-fields input:invalid:not(:placeholder-shown){border-color:var(--color-error)}.staff-presets>span{margin-right:var(--space-2xs);color:var(--color-neutral);font-size:var(--text-sm);font-weight:700}.chip-action{border:1px solid var(--color-rule-strong);border-radius:var(--radius-pill);background:var(--color-surface);min-height:2.5rem;color:var(--color-ink);font-size:var(--text-sm);padding:0 var(--space-sm);white-space:nowrap;transition:border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);font-weight:700}.chip-action:hover{border-color:var(--color-accent);color:var(--color-accent)}.chip-action:active{background:var(--color-paper-2)}.gallery-modal-panel.staff-dialog>.permission-sheet{align-items:start;gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));display:grid}.permission-group{border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-surface);min-width:0;padding:var(--space-2xs) var(--space-sm) var(--space-3xs);margin:0}.permission-group legend{justify-content:space-between;align-items:baseline;gap:var(--space-xs);width:100%;color:var(--color-ink);padding:0 var(--space-3xs);font-weight:800;display:flex}.permission-group legend small{color:var(--color-neutral);font-variant-numeric:tabular-nums;font-weight:700}.staff-dialog .permission-item{align-items:center;gap:var(--space-xs);border-top:1px solid color-mix(in oklch, var(--color-rule) 60%, transparent);min-height:2.75rem;color:var(--color-muted);cursor:pointer;font-weight:500;display:flex}.staff-dialog .permission-item:first-of-type{border-top:0}.permission-item input{flex:none;width:1.125rem;height:1.125rem;margin:0}.staff-dialog .permission-item.is-on{color:var(--color-ink);font-weight:700}.staff-dialog .permission-item:hover{color:var(--color-accent)}.staff-count{color:var(--color-neutral);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin-right:auto;font-weight:700}.frame-name{text-overflow:ellipsis;white-space:nowrap;font-weight:800;display:block;overflow:hidden}@media (max-width:820px){.rail-group{display:contents}.rail-group-label{display:none}.staff-row{grid-template-columns:minmax(0,1fr) auto}.staff-scope,.staff-last,.staff-actions{grid-column:1/-1}.staff-actions{flex-wrap:wrap;justify-content:start}.login-switch{padding:var(--space-sm) var(--space-md);white-space:normal}}@media (prefers-reduced-motion:reduce){.rail-item,.topbar-refresh,.chip-action{transition:opacity .15s linear}}
