:root{color-scheme:light;--color-brand: #f8173e;--color-brand-strong: #cc0e31;--color-accent: #ffc400;--color-accent-soft: #fff2b8;--color-ink: #171717;--color-muted: #6d7280;--color-subtle: #f5f6f8;--color-surface: #ffffff;--color-line: #e6e8ee;--color-success: #15803d;--color-warning: #b45309;--color-danger: #dc2626;--color-info: #2563eb;--font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--shadow-soft: 0 10px 30px rgb(17 24 39 / 10%);--shadow-action: 0 10px 20px rgb(248 23 62 / 24%);--tap-size: 44px;--app-max-width: 480px}*{box-sizing:border-box}html{min-height:100%;background:var(--color-subtle);font-family:var(--font-family);letter-spacing:0}body{min-height:100%;margin:0;background:var(--color-subtle);color:var(--color-ink);font-family:var(--font-family)}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}img{display:block;max-width:100%}#root{min-height:100vh}.app-shell{width:min(100%,var(--app-max-width));min-height:100vh;margin:0 auto;background:var(--color-surface);box-shadow:0 0 0 1px #0f172a0f}.app-main{min-height:100vh;padding:calc(env(safe-area-inset-top) + var(--space-4)) var(--space-4) calc(88px + env(safe-area-inset-bottom))}.top-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:calc(var(--space-4) * -1) calc(var(--space-4) * -1) var(--space-4);padding:calc(env(safe-area-inset-top) + var(--space-3)) var(--space-4) var(--space-3);background:#ffffffeb;border-bottom:1px solid var(--color-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.top-bar__actions{display:flex;flex:0 0 auto;gap:var(--space-2)}.brand-mark{display:flex;align-items:center;gap:var(--space-2);min-width:0}.brand-logo{display:grid;width:36px;height:36px;place-items:center;color:#fff;background:var(--color-brand);border-radius:var(--radius-lg);box-shadow:var(--shadow-action)}.brand-title{margin:0;font-size:1.4rem;font-weight:900;line-height:1;text-transform:uppercase}.brand-subtitle{margin:2px 0 0;color:var(--color-muted);font-size:.72rem;line-height:1.1}.icon-button{display:inline-grid;width:var(--tap-size);height:var(--tap-size);place-items:center;color:var(--color-ink);background:var(--color-subtle);border:1px solid var(--color-line);border-radius:var(--radius-md)}.bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:3;display:flex;justify-content:center;padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom));pointer-events:none}.bottom-nav__inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));width:min(100%,calc(var(--app-max-width) - 32px));padding:var(--space-2);background:#fffffff0;border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav button{display:grid;min-width:0;min-height:48px;place-items:center;color:var(--color-muted);background:transparent;border-radius:var(--radius-md)}.bottom-nav button[data-active=true]{color:var(--color-brand);background:#fff0f3}.section-stack{display:grid;gap:var(--space-4)}.panel{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:0 1px 2px #0f172a0a}.panel__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-line)}.panel__header--inline{padding:0;border-bottom:0}.panel__title{margin:0;font-size:.98rem;font-weight:800}.panel__hint{max-width:260px;margin:var(--space-1) 0 0;color:var(--color-muted);font-size:.76rem;line-height:1.35}.panel__body{padding:var(--space-4)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8;display:grid;place-items:end center;padding:var(--space-4);background:#0f172a7a}.modal-surface{display:grid;width:min(100%,var(--app-max-width));max-height:min(86vh,720px);overflow:hidden;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-line)}.modal-body{overflow:auto;padding:var(--space-4)}.action-button{display:inline-flex;min-height:var(--tap-size);align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);color:#fff;font-weight:800;background:var(--color-brand);border-radius:var(--radius-pill);box-shadow:var(--shadow-action)}.action-button:disabled{cursor:not-allowed;opacity:.55}.secondary-button{display:inline-flex;min-height:var(--tap-size);align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);color:var(--color-ink);font-weight:800;background:var(--color-accent);border-radius:var(--radius-pill)}.secondary-button:disabled{cursor:not-allowed;opacity:.55}.session-gate{display:grid;min-height:calc(100vh - var(--space-8));align-content:center;gap:var(--space-5)}.choice-list{display:grid;gap:var(--space-2);max-height:260px;overflow:auto;padding-right:var(--space-1)}.choice-card{display:grid;width:100%;gap:var(--space-1);padding:var(--space-3);color:var(--color-ink);text-align:left;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md)}.choice-card[data-active=true]{border-color:var(--color-brand);box-shadow:0 0 0 3px #f8173e1a}.choice-card span{color:var(--color-muted);font-size:.78rem}.field,.form-grid label{display:grid;gap:var(--space-2)}.field span,.form-grid label span{color:var(--color-muted);font-size:.78rem;font-weight:800}.field input,.field select,.control-input,.form-grid input,.form-grid select{width:100%;min-width:0;min-height:var(--tap-size);padding:0 var(--space-3);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md)}.field input:focus,.field select:focus,.control-input:focus,.form-grid input:focus,.form-grid select:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #f8173e1a;outline:0}.form-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.action-row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.divider{height:1px;background:var(--color-line)}.segmented-control{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-1);padding:var(--space-1);background:var(--color-subtle);border-radius:var(--radius-md)}.segmented-control--two{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented-control button{min-height:38px;padding:0 var(--space-2);color:var(--color-muted);font-size:.78rem;font-weight:800;background:transparent;border-radius:var(--radius-sm)}.segmented-control button[data-active=true]{color:var(--color-brand);background:var(--color-surface);box-shadow:0 1px 4px #1118271a}.access-hint{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2);align-items:start;padding:var(--space-3);color:var(--color-muted);font-size:.78rem;line-height:1.4;background:#fff7e6;border-radius:var(--radius-md)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.metric{min-width:0;padding:var(--space-3);background:var(--color-subtle);border-radius:var(--radius-md)}.metric__label{margin:0 0 var(--space-1);color:var(--color-muted);font-size:.72rem}.metric__value{margin:0;font-size:1rem;font-weight:900}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.product-card{overflow:hidden;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md)}.product-card__media{display:grid;aspect-ratio:1 / .82;place-items:center;background:linear-gradient(135deg,#fff8d6,#f8fafc)}.product-card__body{display:grid;gap:var(--space-2);padding:var(--space-3)}.product-card__name{margin:0;font-size:.88rem;font-weight:800}.product-card__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.cart-controls{display:grid;grid-template-columns:40px minmax(32px,1fr) 40px;align-items:center;gap:var(--space-2)}.cart-controls strong{min-width:0;text-align:center;font-size:.95rem}.cart-summary{position:sticky;bottom:calc(74px + var(--space-3));z-index:4;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3);background:#fffffff5;border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.cart-summary strong{display:block;margin-top:var(--space-1);font-size:.95rem}.price-tag{display:inline-flex;align-items:center;min-height:26px;padding:0 var(--space-2);color:var(--color-ink);font-size:.78rem;font-weight:900;background:var(--color-accent);border-radius:var(--radius-pill)}.status-pill{display:inline-flex;min-height:26px;align-items:center;padding:0 var(--space-2);color:var(--color-brand);font-size:.72rem;font-weight:800;background:#fff0f3;border-radius:var(--radius-pill)}.event-list{display:grid;gap:var(--space-3)}.event-card{display:grid;width:100%;gap:var(--space-2);padding:var(--space-4);color:var(--color-ink);text-align:left;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md)}.event-card:active{transform:translateY(1px)}.event-card__status{display:inline-flex;width:fit-content;min-height:26px;align-items:center;padding:0 var(--space-2);color:var(--color-muted);font-size:.72rem;font-weight:900;background:var(--color-subtle);border-radius:var(--radius-pill)}.event-card__status[data-status=Active]{color:var(--color-success);background:#eaf7ef}.event-card__status[data-status=Draft]{color:var(--color-warning);background:#fff7e6}.event-card__status[data-status=Finished]{color:var(--color-muted);background:#eef0f4}.event-card__name{font-size:1.05rem;line-height:1.2}.event-card__date,.event-card__meta{display:flex;align-items:center;gap:var(--space-2);color:var(--color-muted);font-size:.78rem;line-height:1.35}.event-window{display:grid;gap:var(--space-2);padding:var(--space-3);color:var(--color-muted);font-size:.78rem;background:var(--color-subtle);border-radius:var(--radius-md)}.wallet-balance{display:grid;gap:var(--space-1);padding:var(--space-4);color:var(--color-surface);background:var(--color-ink);border-radius:var(--radius-md)}.wallet-balance span{color:#ffffffb8;font-size:.78rem;font-weight:700}.wallet-balance strong{font-size:2rem;line-height:1}.credit-purchase-box{display:grid;gap:var(--space-3);padding:var(--space-3);background:var(--color-subtle);border-radius:var(--radius-md)}.checkbox-field{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2);align-items:start;color:var(--color-muted);font-size:.78rem;line-height:1.35}.checkbox-field input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--color-brand)}.stall-list{display:grid;gap:var(--space-2)}.stall-item{display:grid;gap:var(--space-3);padding:var(--space-3);background:var(--color-subtle);border-radius:var(--radius-md)}.stall-item strong,.stall-item span{display:block}.stall-item strong{font-size:.9rem}.stall-item span{margin-top:var(--space-1);color:var(--color-muted);font-size:.72rem;overflow-wrap:anywhere}.stall-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.stall-actions input{width:100%;min-width:0;min-height:var(--tap-size);padding:0 var(--space-3);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md)}.state-message{display:grid;gap:var(--space-3);justify-items:start;padding:var(--space-4);color:var(--color-muted);background:var(--color-subtle);border-radius:var(--radius-md)}.state-message strong{color:var(--color-ink);font-size:.94rem}.state-message span{font-size:.8rem;line-height:1.4}.toast-viewport{position:fixed;right:max(var(--space-4),calc((100vw - var(--app-max-width)) / 2 + var(--space-4)));bottom:calc(92px + env(safe-area-inset-bottom));left:max(var(--space-4),calc((100vw - var(--app-max-width)) / 2 + var(--space-4)));z-index:5;display:grid;gap:var(--space-2);pointer-events:none}.toast{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:start;padding:var(--space-3);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line);border-left:4px solid var(--color-brand);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);pointer-events:auto}.toast[data-type=error]{border-left-color:var(--color-danger)}.toast strong,.toast span{display:block}.toast strong{margin-bottom:var(--space-1);font-size:.86rem}.toast span{color:var(--color-muted);font-size:.78rem;line-height:1.35}.toast button{display:grid;width:32px;height:32px;place-items:center;color:var(--color-muted);background:var(--color-subtle);border-radius:var(--radius-sm)}.transaction-list,.transaction-item{display:grid;gap:var(--space-2)}.transaction-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-3);background:var(--color-subtle);border-radius:var(--radius-md)}.confirmation-code-box{display:grid;gap:var(--space-1);padding:var(--space-3);background:#fff7e6;border:1px solid #f6d98b;border-radius:var(--radius-md)}.confirmation-code-box span,.confirmation-code-box small{color:var(--color-muted);font-size:.74rem}.confirmation-code-box strong{color:var(--color-ink);font-size:1.45rem;line-height:1;letter-spacing:0}.confirmation-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2)}.confirmation-form input{min-width:0;min-height:var(--tap-size);padding:0 var(--space-3);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md)}.transaction-row__icon{display:grid;width:36px;height:36px;place-items:center;color:#fff;background:var(--color-brand);border-radius:var(--radius-md)}.transaction-row p{margin:0}.transaction-row__title{font-size:.84rem;font-weight:800}.transaction-row__subtitle{color:var(--color-muted);font-size:.72rem}.transaction-row__amount{font-size:.86rem;font-weight:900}@media(min-width:780px){body{padding:var(--space-6) 0}.app-shell{min-height:calc(100vh - var(--space-8) * 2);border-radius:28px;overflow:hidden}.bottom-nav{position:sticky;padding-bottom:var(--space-4)}}
