@font-face { font-family: Sora; src: url("/fonts/sora.ttf") format("truetype"); font-weight: 100 800; font-display: swap; }
/* PhotoBooth shared interface foundation. Event/print designs remain independent.
   Breakpoints: compact 480px, stacked 850px, wide 1000px. */
:root {
 color-scheme: light;
 --pb-bg: #FCFAF7; --pb-surface: #FFFFFF; --pb-surface-raised: #F3EFE8;
 --pb-surface-hover: #ECE5DA; --pb-input: #F6F2EB; --pb-ink: #1F1F1F;
 --pb-muted: #67615A; --pb-accent: #F5A623; --pb-accent-hover: #E69513;
 --pb-accent-ink: #1F1F1F; --pb-link: #805000; --pb-line: #E6DFD5;
 --pb-border: #C9BFB1; --pb-success: #28784D; --pb-error: #AD3324;
 --pb-pro: #805000; --pb-pro-border: #D49A35;
 --pb-font: Sora, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
 --pb-text: 1rem; --pb-label: .875rem; --pb-meta: .8125rem;
 --pb-radius-sm: .5rem; --pb-radius-control: .75rem; --pb-radius-card: 1rem;
 --pb-radius-dialog: 1.25rem; --pb-radius-pill: 999px;
 --pb-space-1: .25rem; --pb-space-2: .5rem; --pb-space-3: .75rem;
 --pb-space-4: 1rem; --pb-space-5: 1.25rem; --pb-space-6: 1.5rem;
 --pb-space-8: 2rem; --pb-space-12: 3rem; --pb-space-16: 4rem;
 --pb-shadow-card: 0 16px 48px #080a122e;
 --pb-shadow-dialog: 0 24px 80px #0008; --pb-shadow-product: 0 30px 90px #0005;
 --pb-focus: 0 0 0 3px var(--pb-bg), 0 0 0 6px var(--pb-accent);
 --pb-control-height: 3rem; --pb-content-width: 75rem;
 --pb-motion: 150ms ease;
 --bg: var(--pb-bg); --ink: var(--pb-ink); --muted: var(--pb-muted);
 --accent: var(--pb-accent); --line: var(--pb-line);
}
html { font-family: var(--pb-font); color: var(--pb-ink); background: var(--pb-bg); }
body { font-family: var(--pb-font); font-size: var(--pb-text); line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button, a, summary, input, select { touch-action: manipulation; }
input, select, textarea { accent-color: var(--pb-accent); }
:where(a,button,summary,input,select,textarea):focus-visible {
 outline: 3px solid var(--pb-accent); outline-offset: 3px;
}
:where(button,.btn,.button,.login) { transition: background-color var(--pb-motion), border-color var(--pb-motion), box-shadow var(--pb-motion); }
button:disabled { cursor: not-allowed; opacity: .5; }
.pb-brand { display:inline-flex; align-items:center; flex-wrap:wrap; gap:.5rem; color:var(--pb-ink); text-decoration:none; flex-shrink:0; }
.pb-brand::before { content:none; }
.pb-brand .pb-wordmark { display:inline-block; width:7.7rem; height:2.8rem; background:url('/brand/wordmark.svg?v=moqio-brand-v13') center/contain no-repeat; font-size:0; line-height:0; }
.pb-brand .pb-wordmark span { font-size:0; }
.pb-brand .view-context { font:500 var(--pb-label)/1.5 var(--pb-font); color:var(--pb-muted); }
.pb-icon { width: 1.25em; height: 1.25em; vertical-align: -.2em; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.camera-icon .pb-icon { width: 1em; height: 1em; }
/* Shared primitives; page-specific layout and event overrides load afterward. */
.button,.btn,.login { border-radius: var(--pb-radius-control); min-height: var(--pb-control-height); font-size: var(--pb-label); line-height: 1.4; }
.panel,.event-card,.dashboard-stat,.stat { border-radius: var(--pb-radius-card); }
@media(max-width:480px) { .pb-brand { font-size: 1rem; } }
@media(prefers-reduced-motion:reduce) { :where(button,.btn,.button,.login) { transition: none; } }

.moqio-loader { display:inline-block; vertical-align:middle; width:2.5rem; height:2.5rem; background:url('/brand/loader.svg') center/contain no-repeat; position:relative; }
.moqio-loader::after { content:''; position:absolute; inset:4px; border:3px solid transparent; border-top-color:var(--pb-accent); border-radius:50%; animation:moqio-load .6s linear infinite; }
@keyframes moqio-load { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .moqio-loader::after { animation:none; } }

/* All action controls share one shape, including legacy event styles and profile toggles. */
button,.btn,.button,.login,[role="button"],input:is([type="button"],[type="submit"],[type="reset"]){border-radius:var(--pb-radius-control)!important}

/* Device theme changes interface tokens, never event/print canvas colors. */
html[data-theme=dark]{color-scheme:dark;--pb-bg:#191919;--pb-surface:#242424;--pb-surface-raised:#30302E;--pb-surface-hover:#3C3A36;--pb-input:#2C2B29;--pb-ink:#F4F0E9;--pb-muted:#BDB5AA;--pb-link:#FFC46B;--pb-line:#403C36;--pb-border:#696056;--pb-success:#80D6A2;--pb-error:#FF9D90;--pb-pro:#FFC46B;--pb-pro-border:#B88029;--pb-shadow-card:0 16px 48px #0004;--pb-shadow-dialog:0 24px 80px #0009}
.moqio-theme-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;font-size:.8125rem;color:var(--pb-muted);font-weight:500}
.moqio-theme-control select{min-height:44px;max-width:140px;padding:8px 12px;background:var(--pb-input);color:var(--pb-ink);border:1px solid var(--pb-border);border-radius:var(--pb-radius-control)}
.site-header>.moqio-theme-control{padding:0;flex:none}
@media(max-width:600px){.site-header>.moqio-theme-control{font-size:0;gap:0}.site-header>.moqio-theme-control select{font-size:.8125rem;max-width:105px}}
html[data-theme=dark] .pb-brand .pb-wordmark{background-image:url('/brand/wordmark-light.svg')}
