@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('/vendor/inter/inter-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url('/vendor/inter/inter-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600 900; font-display: swap; src: url('/vendor/inter/inter-latin-600-normal.woff2') format('woff2'); }
/* Shared product finish. Functional template choices take precedence over presets. */
:root {
  --bg: #F5F5F7; --bg-grad-1: #FAFAFB; --bg-grad-2: #F5F5F7; --bg-grad-3: #F5F5F7;
  --surface: #FFFFFF; --surface-2: #F3F3F5; --surface-bg: #FFFFFF; --surface-bg-strong: #FFFFFF;
  --grouped: #EEEEF0; --label: #202124; --label-2: #65666D; --label-3: #85868D;
  --surface-border: rgba(28,28,34,.075); --hairline: rgba(28,28,34,.10); --fill: rgba(28,28,34,.045); --fill-2: rgba(28,28,34,.10);
  --accent: #AE5927; --accent-pressed: #8A441F; --accent-tint: #F5E9DF; --accent-contrast: #FFFFFF;
  --r-sm: 10px; --r-md: 14px; --r-lg: 20px; --r-xl: 26px;
  --shadow: 0 2px 8px rgba(20,20,25,.025), 0 12px 32px rgba(20,20,25,.025);
  --shadow-lg: 0 12px 48px rgba(20,20,25,.10);
  --font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --fs-body: 15px; --fs-headline: 16px; --fs-large-title: 34px;
  --ease-standard: cubic-bezier(.22,.68,0,1.01);
}
body { background: var(--bg); }
body::before { background: none; }
.large-title { letter-spacing: -.045em; line-height: 1.13; }
.title2, .title3 { letter-spacing: -.025em; }
.eyebrow { letter-spacing: .10em; font-size: 11px; }
.page-head { margin-bottom: 28px; gap: 16px; }
.card { padding: 24px; z-index: auto; }
.btn { min-height: 42px; font-weight: 550; transition: background .18s, box-shadow .18s, transform .18s; }
.btn-primary { box-shadow: 0 3px 7px color-mix(in srgb, var(--accent) 14%, transparent); }
.btn:active:not(:disabled) { transform: scale(.98); }
.input, .textarea, .custom-select-trigger { background: #FAFAFB; min-height: 44px; border-color: var(--hairline); }
.input:focus, .textarea:focus { outline: 3px solid color-mix(in srgb, var(--accent) 18%, transparent); outline-offset: 1px; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 50%, transparent); outline-offset: 3px; }
.field label { font-size: 13px; font-weight: 550; margin-bottom: 8px; }
.segmented { border: 0; padding: 4px; background: #EBEBEE; }
.segmented button.active { background: #fff; box-shadow: 0 1px 4px #00000012; }
.surface, .event-card, .dash-stat-card { transition: box-shadow .25s, transform .25s; }
.event-card:hover { transform: translateY(-3px); box-shadow: 0 16px 40px #20212412; }
.dash-stat-value { letter-spacing: -.045em; }
.dash-stat-icon { border-radius: 12px; }
.progress { height: 4px; }
.studio-welcome { position: relative; overflow: hidden; min-height: 206px; border-radius: 24px; margin-bottom: 28px; padding: 36px; color: #fff; background: #211D26 url('/assets/images/glass-stage.png') center 52% / cover; }
.studio-welcome::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#17141FDB, #17141F20); }
.studio-welcome > * { position: relative; max-width: 440px; }
.studio-welcome h2 { font-size: clamp(25px,3vw,38px); letter-spacing: -.04em; line-height: 1.1; font-weight: 550; margin: 10px 0; }
.studio-welcome p { font-size: 14px; color: #FFFFFFBD; margin-bottom: 0; }
.studio-welcome .eyebrow { color: #EBD8C2; }
.design-layout { gap: 24px; grid-template-columns: minmax(0, 1.18fr) minmax(300px, .82fr); padding-bottom: 94px; }
.design-layout > * { min-width: 0; }
.builder-tabs { position: sticky; top: 72px; z-index: 25; background: #F5F5F7E8; backdrop-filter: blur(20px); padding: 5px; border: 1px solid var(--hairline); border-radius: 14px; }
.builder-tab { min-width: 0; }
.builder-tabs button.active { background: #fff; box-shadow: 0 2px 6px #00000009; color: var(--label); }
.design-preview-card { background: #ECECEE; border: 0; padding: 20px; box-shadow: none; }
.design-preview-stack { top: 86px; }
.studio-shop-frame { display: block; width: 100%; height: 100%; border: 0; background: #fff; }
.device-frame { background: #25252A; box-shadow: 0 16px 45px #20212424, inset 0 0 0 1px #FFFFFF40; }
.device-frame.phone { width: min(100%, 320px); }
.theme-choice-grid { gap: 14px; }
.theme-choice { gap: 7px; padding: 10px; border: 1px solid var(--hairline); border-radius: 16px; overflow: hidden; }
.theme-choice-swatch { display: block; height: 104px; width: 100%; border-radius: 9px; position: relative; overflow: hidden; background: #F1F0ED; }
.theme-choice-swatch img { width: 100%; height: 72%; object-fit: cover; }
.theme-choice-swatch > span { position: absolute; bottom: 7px; left: 9px; font-size: 12px; font-weight: 650; letter-spacing: -.03em; color: #28282D; }
.theme-choice .theme-choice-swatch::before, .theme-choice .theme-choice-swatch::after { display: none; }
.theme-choice-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.theme-choice-swatch { height: 132px; }
.theme-choice.swatch-classic .theme-choice-swatch { background: #F0EEEA; }
.swatch-ios .theme-choice-swatch { background: #EDEEF7; padding: 6px; }
.swatch-ios .theme-choice-swatch img { border-radius: 7px; filter: hue-rotate(190deg) saturate(.5); }
.swatch-poster .theme-choice-swatch { background: #18141E; }
.swatch-poster .theme-choice-swatch img { height: 100%; }
.swatch-poster .theme-choice-swatch > span { color: #fff; font-size: 17px; }
.swatch-festival .theme-choice-swatch { background: #141417; }
.swatch-festival .theme-choice-swatch img { height: 60%; filter: contrast(1.25); }
.swatch-festival .theme-choice-swatch > span { color: #E2AF52; text-transform: uppercase; font-size: 17px; }
.theme-choice-title { font-size: 14px; font-weight: 650; }
.theme-choice-desc { font-size: 12px; line-height: 1.4; }
.theme-choice.active, .preview-choice.active { border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent); }
.preview-choice { min-width: 0; transition: border-color .18s, box-shadow .18s; }
.preview-choice-title { font-size: 12px; }
.preview-choice-title strong { white-space: normal; }
.studio-action-bar { position: fixed; bottom: 20px; left: calc(50% + 110px); transform: translateX(-50%); z-index: 270; width: min(720px, calc(100% - 300px)); padding: 12px 16px; background: #FFFFFFEE; backdrop-filter: blur(20px); border: 1px solid #FFFFFF; box-shadow: 0 8px 40px #20212420; border-radius: 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.studio-save-state { color: var(--label-2); font-size: 12px; display: flex; align-items: center; gap: 8px; }
.studio-save-state::before { content: ''; width: 6px; height: 6px; background: var(--green); border-radius: 50%; flex: none; }
.studio-save-state.is-dirty::before { background: var(--accent); }
.pdf-preview-frame { border: 0; width: 100%; min-height: 560px; border-radius: 10px; }
.pdf-preview-page { display: block; width: 100%; height: auto; box-shadow: 0 5px 20px #00000012; margin-bottom: 16px; }
.ticket-pdf-preview { max-height: 76vh; overflow: auto; padding: 2px; }
.sidebar .nav-item.active { background: var(--accent-tint); color: var(--accent); box-shadow: none; }
.dash-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.dash-next-card { grid-column: 1 / -1; }
.pdf-advanced-body { gap: 18px; }
.studio-ticket-sample { border-radius: 18px; padding: 20px; background: #F5F5F7; display: flex; justify-content: space-between; align-items: center; border: 1px solid var(--hairline); margin-bottom: 24px; }
.studio-ticket-sample strong { display: block; font-size: 18px; letter-spacing: -.025em; }
.studio-ticket-sample small { color: var(--label-2); }
.studio-ticket-sample > ion-icon { font-size: 36px; color: var(--accent); }
.shop-page { min-height: 100vh; }
.shop-page .container { max-width: 1120px; }
.shop-hero { border-radius: 24px; overflow: hidden; }
.shop-page .shop-hero .large-title { font-size: clamp(32px,5.5vw,66px); max-width: 850px; }
.shop-hero .hero-content { padding: 36px; }
.shop-ticket-section { margin: 24px 0; }
.shop-summary-card { border-radius: 20px; }
.ticket-pick { padding: 22px; gap: 16px; }
.stepper { min-width: 114px; }
.stepper button { min-width: 38px; min-height: 40px; }
.stepper .val { min-width: 30px; }
.theme-ios { --bg: #F1F2F8; --surface: #fff; --surface-bg: #fff; background-color: var(--bg); }
.theme-ios .shop-hero .large-title { font-weight: 550; letter-spacing: -.045em; }
.theme-poster, .theme-festival { --label: #F4F1F7; --label-2: #BDB8C4; --label-3: #99919F; --surface: #211D27; --surface-bg: #211D27; --fill: #FFFFFF0D; --hairline: #FFFFFF24; }
.theme-poster .shop-hero .large-title { letter-spacing: -.045em; }
.theme-festival .btn-primary, .theme-festival .btn-tinted, .theme-festival .mobile-checkout-fab { background: var(--accent); }
.theme-festival .footnote { color: var(--label-2); }
.theme-poster .custom-select-panel, .theme-festival .custom-select-panel { background: #211D27; color: var(--label); }
.shop-page.buttons-rounded .btn:not(.btn-icon) { border-radius: 14px !important; }
.shop-page.buttons-pill .btn:not(.btn-icon) { border-radius: 999px !important; }
.shop-page.buttons-sharp .btn:not(.btn-icon) { border-radius: 3px !important; }
.shop-page .shop-hero.align-top { align-items: flex-start; }
.shop-page .shop-hero.align-center { align-items: center; }
.shop-page .shop-hero.align-bottom { align-items: flex-end; }
.shop-page .shop-hero.layout-compact { min-height: 230px; }
.shop-page .shop-hero.layout-classic { min-height: 320px; }
.shop-page .shop-hero.overlay-soft .scrim { background: linear-gradient(0deg,#07061266,transparent 80%); }
.shop-page .shop-hero.overlay-medium .scrim { background: linear-gradient(0deg,#070612AA,transparent 95%); }
.shop-page .shop-hero.overlay-strong .scrim { background: linear-gradient(0deg,#070612E0,#07061244); }
.checkout-modal { border-radius: 24px; }
.checkout-section { border-radius: 18px; box-shadow: none; }
.checkout-modal .checkout-summary-col { background: var(--surface); }
body:has(.checkout-modal) #app::after { visibility: hidden; }
.scan-layout { grid-template-columns: minmax(0, 1fr) 320px; align-items: start; }
.admin-panel, .admin-data-row .grow, .admin-risk-row .grow { min-width: 0; overflow-wrap: anywhere; }
.admin-hero-metric .social-preview-ico { display: grid; color: var(--accent); }
.admin-hero-metric .social-preview-ico ion-icon { color: inherit; }
.design-preview-document .shop-page { padding-bottom: 90px; }
.design-preview-document .shop-page .container { padding-top: 22px; }
.design-preview-document .shop-blobs { position: absolute; }
.checklist-dock { position: static; margin: -64px 0 100px; width: auto; max-width: 600px; }
.checklist-details { border-radius: 14px; }
.checklist-details > summary { box-shadow: none; }
.checklist-panel { position: static; width: auto; margin-top: 12px; }
@keyframes productEnter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.page-head, .studio-welcome, .design-layout, .dash-stats, .shop-ticket-section { animation: productEnter .4s var(--ease-standard) both; }
.dash-stats { animation-delay: .04s; }
@media (max-width: 1100px) { .design-layout { grid-template-columns: minmax(0,1fr) 320px; } .card { padding: 20px; } }
@media (max-width: 860px) {
  .admin-tabbar { overflow-x: auto; justify-content: flex-start; scrollbar-width: thin; gap: 2px; }
  .admin-tabbar a { flex: 0 0 78px; white-space: nowrap; }
  .checkout-summary-col { order: 0; }
  .scan-layout { grid-template-columns: minmax(0, 1fr); }
  .design-layout { grid-template-columns: minmax(0,1fr); }
  .design-preview-stack { position: static; }
  .design-preview-card { max-width: none; }
  .studio-action-bar { left: 50%; width: calc(100% - 24px); bottom: 82px; padding: 10px 12px; }
  .studio-save-state { max-width: 105px; font-size: 11px; }
  .studio-action-bar .btn { font-size: 12px; padding: 10px 12px; }
  .builder-tabs { top: 66px; }
  .design-layout { padding-bottom: 165px; }
  .checklist-dock { bottom: 155px; }
}
@media (max-width: 640px) {
  .admin-data-row { display: grid; grid-template-columns: 34px minmax(0, 1fr); }
  .admin-data-row .admin-row-amount { grid-column: 2; justify-items: start; text-align: left; min-width: 0; }
  .admin-risk-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 10px; }
  .page-head { flex-wrap: wrap; }
  .page-head > .row { flex-wrap: wrap; }
  .large-title { font-size: 29px; }
  .card { padding: 18px; }
  .studio-welcome { padding: 26px; min-height: 185px; border-radius: 20px; }
  .shop-page .shop-hero .hero-content { padding: 24px; }
  .shop-page .shop-hero .large-title { font-size: 36px; }
  .theme-choice-swatch { height: 112px; }
  .shop-page .shop-hero { min-height: 320px; }
  .shop-page .shop-hero.layout-compact { min-height: 220px; }
  .ticket-pick { padding: 18px 14px; }
  .checkout-modal { border-radius: 24px 24px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
