:root{--color-surface-base: #FEFBF3;--color-surface: #FAF8F2;--color-surface-raised: #FFFEFA;--color-surface-overlay: rgba(10, 10, 10, .35);--color-blush: #FFD6E0;--color-peach: #FFDAB4;--color-butter: #FFF2A8;--color-mint: #C8F0D4;--color-periwinkle: #D8D4FF;--color-lilac: #EBD9FF;--color-candy-pink: #FF3D8A;--color-accent: var(--color-candy-pink);--color-accent-hover: #E62F77;--color-accent-text: #0A0A0A;--color-text: #0A0A0A;--color-text-secondary: #4A4A4A;--color-text-tertiary: #7A7A7A;--color-text-inverse: #FEFBF3;--color-border: #0A0A0A;--color-border-subtle: rgba(10, 10, 10, .12);--border-width: 1.5px;--border-width-emphasis: 2px;--color-success: #2E9D5C;--color-success-subtle: var(--color-mint);--color-warning: #C77E00;--color-warning-subtle: var(--color-butter);--color-danger: #CC3E34;--color-danger-subtle: #FFD1CD;--color-info: #5A52D4;--color-info-subtle: var(--color-periwinkle);--font-display: "Space Grotesk", "Sora", "Archivo", system-ui, sans-serif;--font-body: "Inter", "DM Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: clamp(1.75rem, 3vw + .5rem, 2rem);--text-4xl: clamp(2rem, 4vw + .5rem, 2.5rem);--text-5xl: clamp(2.5rem, 5vw + 1rem, 3.5rem);--leading-tight: 1.05;--leading-snug: 1.2;--leading-normal: 1.55;--leading-relaxed: 1.7;--tracking-tight: -.02em;--tracking-normal: 0em;--tracking-wide: .04em;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-display: 800;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 24px;--radius-full: 9999px;--shadow-none: none;--shadow-sm: 0 2px 8px rgba(10, 10, 10, .04);--shadow-md: 0 4px 16px rgba(10, 10, 10, .06);--shadow-lg: 0 12px 32px rgba(10, 10, 10, .1);--shadow-soft-offset: 4px 4px 0 rgba(10, 10, 10, .1);--shadow-soft-offset-hover: 6px 6px 0 rgba(10, 10, 10, .12);--duration-fast: .12s;--duration-normal: .2s;--duration-medium: .3s;--duration-slow: .45s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.55, 0, 1, .45);--ease-standard: cubic-bezier(.33, 1, .68, 1);--ease-spring: cubic-bezier(.22, 1.4, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html{color-scheme:light}body{margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-surface-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}#root{position:relative;z-index:1}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-text);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin:0}h1{font-size:var(--text-4xl);font-weight:var(--weight-display)}h2{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-snug)}h3{font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-snug)}p{margin:0 0 var(--space-4)}a{color:var(--color-text);text-decoration-thickness:1.5px;text-underline-offset:3px}a:hover{color:var(--color-accent)}code,kbd{font-family:Geist Mono,JetBrains Mono,ui-monospace,SFMono-Regular,monospace;font-size:.92em;background:var(--color-butter);border:var(--border-width) solid var(--color-border);padding:1px 6px;border-radius:var(--radius-sm)}button,.btn{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.005em;color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);padding:10px 18px;min-height:40px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);box-shadow:var(--shadow-soft-offset);transform:translate(0);transition:transform var(--duration-normal) var(--ease-spring),box-shadow var(--duration-normal) var(--ease-spring),background-color var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out);-webkit-tap-highlight-color:transparent}button:hover:not(:disabled),.btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:var(--shadow-soft-offset-hover);background:var(--color-butter)}button:active:not(:disabled),.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:0 0 #0a0a0a00;transition:transform 80ms var(--ease-in),box-shadow 80ms var(--ease-in)}button:focus-visible,.btn:focus-visible{outline:var(--border-width-emphasis) solid var(--color-accent);outline-offset:3px}button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.btn-primary,button[type=submit],button.primary{background:var(--color-accent);color:var(--color-accent-text)}.btn-primary:hover:not(:disabled),button[type=submit]:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--color-accent-hover);color:var(--color-text-inverse)}button.danger,.btn-danger{background:var(--color-danger-subtle);color:var(--color-text)}button.danger:hover:not(:disabled){background:var(--color-danger);color:var(--color-text-inverse)}button.ghost,.btn-ghost{background:transparent;box-shadow:none;border:var(--border-width) solid transparent}button.ghost:hover:not(:disabled){background:var(--color-blush);border-color:var(--color-border);transform:none;box-shadow:none}button.link,.btn-link{background:transparent;border:0;box-shadow:none;padding:2px 0;min-height:auto;color:var(--color-text);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;border-radius:0}button.link:hover:not(:disabled){background:transparent;transform:none;box-shadow:none;color:var(--color-accent)}button.sm,.btn-sm{padding:6px 12px;min-height:32px;font-size:var(--text-xs)}button.lg,.btn-lg{padding:14px 24px;min-height:52px;font-size:var(--text-base)}input,select,textarea{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-normal);color:var(--color-text);background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:10px 14px;min-height:44px;width:100%;transition:outline-color var(--duration-fast) var(--ease-out)}input::placeholder{color:var(--color-text-tertiary)}input:focus,select:focus,textarea:focus{outline:var(--border-width-emphasis) solid var(--color-accent);outline-offset:2px}input[type=number]{font-variant-numeric:tabular-nums}input[type=radio],input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--color-accent);margin:0;padding:0}.page{max-width:760px;margin:0 auto;padding:var(--space-8) var(--space-4) var(--space-16)}.loading{padding:var(--space-16) var(--space-4);text-align:center;font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text-secondary)}.spacer{flex:1}.form{display:flex;flex-direction:column;gap:var(--space-4)}.form label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.form button[type=submit]{margin-top:var(--space-4);width:100%;min-height:52px;font-size:var(--text-base)}.form .row,.row{display:flex;gap:var(--space-3)}.row>button{flex:1}.err,.form .err{background:var(--color-danger-subtle);border:var(--border-width) solid var(--color-border);color:var(--color-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-2)}.err:before{content:"!";display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;background:var(--color-danger);color:var(--color-text-inverse);border-radius:var(--radius-full);font-weight:var(--weight-bold);font-size:var(--text-xs);flex:0 0 auto}.ok,.form .ok{background:var(--color-success-subtle);border:var(--border-width) solid var(--color-border);color:var(--color-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm)}.hint{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.auth-page{max-width:440px;margin:0 auto;padding:var(--space-12) var(--space-4) var(--space-16)}.auth-page h1{font-size:var(--text-4xl);margin-bottom:var(--space-2)}.auth-page .auth-sub{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-8);line-height:var(--leading-snug)}.auth-page .form{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8)}.auth-page p{margin-top:var(--space-6);font-size:var(--text-sm)}.seller-shell{display:flex;flex-direction:column;min-height:100%}.seller-nav{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);position:sticky;top:0;z-index:10}.seller-nav a{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);text-decoration:none;padding:8px 14px;border-radius:var(--radius-full);border:var(--border-width) solid transparent;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.seller-nav a:hover{background:var(--color-butter)}.seller-nav a.active,.seller-nav a[aria-current=page]{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-border)}.seller-nav .grow{flex:1}.seller-nav .who{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary)}.seller-nav button{min-height:34px;padding:6px 14px;font-size:var(--text-xs)}.catalog-header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"title   actions" "tagline tagline";align-items:start;gap:var(--space-3) var(--space-4);background:var(--color-blush);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-6);margin-bottom:var(--space-8);position:relative;overflow:hidden}.catalog-header h1{grid-area:title;font-size:var(--text-5xl);font-weight:var(--weight-display);line-height:.95;letter-spacing:-.03em;margin:0}.catalog-header .tagline{grid-area:tagline;font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-text);line-height:var(--leading-snug);max-width:38ch;margin:0}.catalog-header .actions{grid-area:actions;display:flex;gap:var(--space-2);align-items:center;justify-self:end}.catalog-header .sparkle{position:absolute;pointer-events:none}.catalog-header .sparkle-1{top:14px;right:28%;width:26px;animation:ccb-sparkle 2.4s ease-in-out infinite}.catalog-header .sparkle-2{bottom:20px;right:40px;width:18px;animation:ccb-sparkle 3.1s ease-in-out infinite .5s}.catalog-header .seller-link{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);text-decoration:none;padding:8px 14px;border-radius:var(--radius-full);border:var(--border-width) solid var(--color-border);background:var(--color-surface-raised);transition:background-color var(--duration-fast) var(--ease-out)}.catalog-header .seller-link:hover{background:var(--color-butter);color:var(--color-text)}.products{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-4)}.product{display:grid;grid-template-columns:96px 1fr;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);transition:transform var(--duration-medium) var(--ease-out),box-shadow var(--duration-medium) var(--ease-out)}.product:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.product .thumb-wrap{width:96px;height:96px;background:var(--color-peach);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;overflow:hidden}.product:nth-child(4n+2) .thumb-wrap{background:var(--color-butter)}.product:nth-child(4n+3) .thumb-wrap{background:var(--color-mint)}.product:nth-child(4n) .thumb-wrap{background:var(--color-periwinkle)}.product img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}.product .main{min-width:0}.product .name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-snug);margin-bottom:2px}.product .brand{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:var(--space-3)}.product .offers{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-3) 0}.product .offers label{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:var(--space-2) var(--space-3);align-items:center;padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;min-width:0;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}@media (max-width: 420px){.product .offers label{grid-template-columns:auto minmax(0,1fr) auto}.product .offers .stock{grid-column:2 / -1;justify-self:start}}.product .offers label:hover{background:var(--color-butter)}.product .offers label.sel{background:var(--color-blush);border-color:var(--color-border)}.product .offers .seller{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product .offers .price{font-family:var(--font-display);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.product .offers .stock{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary)}.product .buy-row{display:flex;gap:var(--space-3);align-items:stretch;margin-top:var(--space-3)}.product .buy-row input{width:84px;flex:0 0 auto;text-align:center;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg)}.product .buy-row button{flex:1;min-height:48px;font-size:var(--text-base);background:var(--color-accent);color:var(--color-accent-text)}.product .buy-row button:hover:not(:disabled){background:var(--color-accent-hover);color:var(--color-text-inverse)}.product .min-hint{margin-top:var(--space-2);padding:8px 12px;background:var(--color-warning-subtle);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text)}@media (max-width: 520px){.catalog-header{padding:var(--space-6)}.catalog-header h1{font-size:var(--text-4xl)}.product{grid-template-columns:72px 1fr;padding:var(--space-3);gap:var(--space-3)}.product .thumb-wrap{width:72px;height:72px}}.choice{display:flex;flex-direction:column;gap:var(--space-3)}.choice button{min-height:64px;font-size:var(--text-base);padding:var(--space-4) var(--space-6);justify-content:flex-start;text-align:left}.choice button:first-child{background:var(--color-mint)}.choice button:first-child:hover:not(:disabled){background:var(--color-mint);color:var(--color-text)}.choice button:nth-child(2){background:var(--color-butter)}.choice button:nth-child(2):hover:not(:disabled){background:var(--color-butter);color:var(--color-text)}.choice button:nth-child(3){background:var(--color-periwinkle)}.choice button:nth-child(3):hover:not(:disabled){background:var(--color-periwinkle);color:var(--color-text)}.scanner{margin:var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-3);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-4)}.scanner video{width:100%;max-height:60vh;background:#0a0a0a;border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border)}.thumb{max-width:140px;border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border);background:var(--color-peach);padding:var(--space-2)}.listings{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.listing-row{display:grid;grid-template-columns:56px 1fr auto auto;gap:var(--space-3);align-items:center;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.listing-row img{width:56px;height:56px;object-fit:contain;background:var(--color-blush);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:4px;mix-blend-mode:multiply}.listing-row .title{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-base);line-height:1.2;margin-bottom:6px}.listing-row .meta{display:flex;gap:var(--space-3);align-items:center}.listing-row .meta label{display:inline-flex;gap:var(--space-1);align-items:center;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-secondary)}.listing-row .meta input{width:auto;min-height:36px;padding:4px 10px;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:var(--weight-bold);text-align:center}.listing-row button{min-height:36px;padding:4px 14px;font-size:var(--text-xs)}@media (max-width: 520px){.listing-row{grid-template-columns:48px 1fr;grid-auto-rows:auto}.listing-row img{width:48px;height:48px}.listing-row button{grid-column:span 2;width:100%}}.sales{width:100%;border-collapse:collapse;font-size:var(--text-sm);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.sales th{text-align:left;padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);background:var(--color-butter);border-bottom:var(--border-width) solid var(--color-border)}.sales td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle}.sales tbody tr:last-child td{border-bottom:0}.sales tbody tr:hover td{background:#fff2a866}.sales td:nth-child(3),.sales td:nth-child(4){font-variant-numeric:tabular-nums}.sales tr.cancelled td{color:var(--color-text-tertiary);text-decoration:line-through}.sales tr.pending td:last-child{color:var(--color-warning);font-weight:var(--weight-semibold)}.pending{text-align:center;padding:var(--space-16) var(--space-4);max-width:520px}.pending h1{font-size:var(--text-5xl);margin-bottom:var(--space-4)}.pending p{font-size:var(--text-lg);line-height:1.5;color:var(--color-text-secondary)}.pending code{font-size:1.3em;letter-spacing:2px;background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-border)}.pending button{margin-top:var(--space-6)}.kiosk{position:relative;min-height:100vh}.reconnecting{position:fixed;top:var(--space-3);right:var(--space-3);padding:6px 14px;background:var(--color-warning-subtle);color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;z-index:10;box-shadow:var(--shadow-soft-offset)}.kiosk-payment{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);text-align:center;background:var(--color-blush);gap:var(--space-4)}.kiosk-payment h1{font-size:var(--text-5xl);margin-bottom:var(--space-2)}.kiosk-payment .payment-meta{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6) var(--space-8);margin-bottom:var(--space-4);min-width:min(420px,100%)}.kiosk-payment .line{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.kiosk-payment .amount{font-family:var(--font-display);font-size:clamp(2.5rem,8vw,4rem);font-weight:var(--weight-display);letter-spacing:-.03em;color:var(--color-text);font-variant-numeric:tabular-nums;margin:var(--space-2) 0}.kiosk-payment .seller{font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.kiosk-payment .code{font-family:Geist Mono,ui-monospace,monospace;font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-2);letter-spacing:.05em}.kiosk-payment canvas{max-width:90vw;height:auto;background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-3)}.kiosk-payment .hint{max-width:420px;margin:0 auto;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.kiosk-payment .row{gap:var(--space-3);margin-top:var(--space-4);width:100%;max-width:420px}.kiosk-payment .row button{padding:16px 20px;font-size:var(--text-base);min-height:56px}@keyframes ccb-sparkle{0%,to{transform:rotate(0) scale(1);opacity:1}50%{transform:rotate(90deg) scale(1.15);opacity:.75}}@keyframes ccb-fade-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.stagger>*{opacity:0;animation:ccb-fade-slide-up .34s var(--ease-out) forwards}.stagger>*:nth-child(1){animation-delay:0ms}.stagger>*:nth-child(2){animation-delay:60ms}.stagger>*:nth-child(3){animation-delay:.12s}.stagger>*:nth-child(4){animation-delay:.18s}.stagger>*:nth-child(5){animation-delay:.24s}.stagger>*:nth-child(6){animation-delay:.3s}.stagger>*:nth-child(7){animation-delay:.36s}.stagger>*:nth-child(8){animation-delay:.42s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.stagger>*{opacity:1;transform:none}}
