:root{--color-primary:#5c3b2e;--color-cream:#f7f3ee;--color-surface:#fffdfb;--color-sage:#8fa36a;--color-gold:#c6a15b;--color-text-primary:#342821;--color-text-secondary:#756a63;--color-divider:#e6ded6;--color-background:#fcfaf7;--color-warning:#c97a3a;--shadow-card:0 8px 24px #00000014;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}input,textarea,select{font:inherit;color:inherit}img{max-width:100%;display:block}html,body{height:100%}body{background-color:var(--color-background);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif;position:relative}body:before{content:"";opacity:.025;pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:256px 256px;position:fixed;inset:0}.outer-wrapper{background-color:var(--color-background);justify-content:center;width:100%;min-height:100vh;display:flex}.app-container{background-color:var(--color-surface);z-index:1;width:100%;max-width:480px;min-height:100vh;padding-bottom:96px;position:relative;box-shadow:0 0 60px #0000000a}.page-content{padding:var(--space-4) var(--space-3) var(--space-6);gap:var(--space-5);flex-direction:column;display:flex}.text-display{color:var(--color-primary);font-family:Playfair Display,serif;font-size:64px;font-weight:600;line-height:1.1}.text-h1{color:var(--color-primary);font-family:Playfair Display,serif;font-size:36px;font-weight:600;line-height:1.2}.text-h2{color:var(--color-primary);font-family:Playfair Display,serif;font-size:28px;font-weight:500;line-height:1.25}.text-h3{color:var(--color-primary);font-family:Playfair Display,serif;font-size:22px;font-weight:500;line-height:1.3}.text-body{color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:16px;font-weight:400;line-height:1.6}.text-small{color:var(--color-text-secondary);font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:1.5}.text-caption{color:var(--color-text-secondary);letter-spacing:.08em;text-transform:uppercase;font-family:Inter,sans-serif;font-size:12px;font-weight:500;line-height:1.4}.text-label{color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:14px;font-weight:500}.brand-header{align-items:center;gap:var(--space-2);padding:var(--space-4) 0 var(--space-2);flex-direction:column;display:flex}.brand-logo{background:var(--color-cream);border:1px solid var(--color-divider);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex;overflow:hidden}.brand-logo img{object-fit:cover;width:100%;height:100%}.brand-name{color:var(--color-primary);font-family:Playfair Display,serif;font-size:28px;font-weight:600}.brand-tagline{color:var(--color-text-secondary);letter-spacing:.04em;font-family:Inter,sans-serif;font-size:13px}.tab-switcher{border-bottom:1px solid var(--color-divider);display:flex}.tab{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-3);color:var(--color-text-secondary);border-bottom:2px solid #0000;flex:1;font-family:Inter,sans-serif;font-size:15px;font-weight:400;transition:all .2s ease-out;display:flex}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:500}.tab svg{width:18px;height:18px}.section{gap:var(--space-3);flex-direction:column;display:flex}.section-label{align-items:center;gap:var(--space-1);color:var(--color-text-secondary);letter-spacing:.08em;text-transform:uppercase;font-family:Inter,sans-serif;font-size:12px;font-weight:500;display:flex}.section-label svg{width:14px;height:14px;color:var(--color-gold)}.divider{background-color:var(--color-divider);border:none;width:100%;height:1px}.divider-gold{background-color:var(--color-gold);opacity:.4}.btn{justify-content:center;align-items:center;gap:var(--space-2);border:none;outline:none;font-family:Inter,sans-serif;font-size:15px;font-weight:500;transition:all .2s ease-out;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background-color:var(--color-primary);color:var(--color-surface);border-radius:var(--radius-md);padding:14px 24px}.btn-primary:hover:not(:disabled){background-color:#4a2e23}.btn-secondary{background-color:var(--color-surface);color:var(--color-primary);border:1.5px solid var(--color-primary);border-radius:var(--radius-md);padding:12px 24px}.btn-secondary:hover{background-color:var(--color-cream)}.btn-ghost{color:var(--color-primary);background:0 0;padding:8px 0;font-weight:400}.btn-ghost:hover{color:var(--color-sage)}.btn-sage{background-color:var(--color-sage);color:var(--color-surface);border-radius:var(--radius-md);padding:14px 24px}.btn-sage:hover{background-color:#7a8f59}.btn-full{width:100%}.btn-pill{border:1px solid var(--color-primary);color:var(--color-primary);background:var(--color-surface);border-radius:999px;padding:6px 14px;font-size:13px}.btn-pill:hover{background:var(--color-cream)}.btn svg{width:16px;height:16px}.input-group{gap:var(--space-2);flex-direction:column;display:flex}.input-field,.textarea-field{background-color:var(--color-cream);border:1px solid var(--color-divider);border-radius:var(--radius-md);color:var(--color-text-primary);width:100%;padding:12px 14px;font-family:Inter,sans-serif;font-size:15px;transition:border-color .15s}.input-field::placeholder,.textarea-field::placeholder{color:var(--color-text-secondary)}.input-field:focus,.textarea-field:focus{border-color:var(--color-primary);outline:none}.textarea-field{resize:vertical;min-height:80px;font-family:Inter,sans-serif}.card{background-color:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-card);gap:var(--space-3);flex-direction:column;display:flex}.chip-row{gap:var(--space-2);scrollbar-width:none;margin:0 calc(var(--space-3) * -1);padding:4px var(--space-3) var(--space-2);display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.date-chip-wrap{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;min-width:64px;display:flex}.date-chip{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:10px 6px;transition:all .2s;display:flex}.date-chip:hover:not(:disabled){border-color:var(--color-primary)}.date-chip.selected{background:var(--color-primary);border-color:var(--color-primary)}.date-chip.selected .date-chip-month,.date-chip.selected .date-chip-day{color:var(--color-surface)}.date-chip:disabled{cursor:not-allowed;opacity:.55}.date-chip-today{color:var(--color-gold);letter-spacing:.08em;min-height:12px;font-family:Inter,sans-serif;font-size:9px;font-weight:600}.date-chip-month{color:var(--color-text-secondary);letter-spacing:.06em;text-transform:uppercase;font-family:Inter,sans-serif;font-size:10px;font-weight:500}.date-chip-day{color:var(--color-primary);font-family:Playfair Display,serif;font-size:22px;font-weight:500;line-height:1}.chip-status{letter-spacing:.04em;text-transform:uppercase;text-align:center;min-height:12px;font-family:Inter,sans-serif;font-size:9px;font-weight:600}.chip-status.booked{color:var(--color-gold)}.chip-status.closed{color:var(--color-warning)}.time-chip{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;padding:8px 16px;font-family:Inter,sans-serif;font-size:14px;transition:all .2s}.time-chip:hover{border-color:var(--color-primary)}.time-chip.selected{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}.collapsible{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);overflow:hidden}.collapsible-header{padding:var(--space-3);cursor:pointer;justify-content:space-between;align-items:center;display:flex}.collapsible-body{padding:0 var(--space-3) var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.product-card{gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);display:flex}.product-img{border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;width:88px;height:88px}.product-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.product-name{color:var(--color-primary);font-family:Inter,sans-serif;font-size:15px;font-weight:500}.product-desc{color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-family:Inter,sans-serif;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.product-foot{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:4px;display:flex}.product-size{color:var(--color-text-secondary);font-family:Inter,sans-serif;font-size:12px}.product-price{color:var(--color-gold);font-family:Inter,sans-serif;font-size:14px;font-weight:600}.qty-selector{background-color:var(--color-cream);border:1px solid var(--color-divider);border-radius:var(--radius-md);align-items:center;display:flex;overflow:hidden}.qty-btn{cursor:pointer;width:44px;height:44px;color:var(--color-primary);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s ease-out;display:flex}.qty-btn:hover{background-color:var(--color-divider)}.qty-btn svg,.qty-btn .lucide{width:18px;height:18px}.qty-value{text-align:center;min-width:44px;color:var(--color-text-primary);border-left:1px solid var(--color-divider);border-right:1px solid var(--color-divider);padding:0 var(--space-2);-webkit-user-select:none;user-select:none;font-family:Inter,sans-serif;font-size:16px;font-weight:500}.loyalty{background:var(--color-primary);color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.loyalty-title{color:var(--color-surface);font-family:Playfair Display,serif;font-size:18px;font-weight:500}.loyalty-sub{opacity:.8;font-family:Inter,sans-serif;font-size:13px}.stamp-row{flex-wrap:wrap;gap:4px;display:flex}.stamp{border:1px solid #fffdfb66;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.stamp.filled{background:var(--color-gold);border-color:var(--color-gold)}.stamp svg{width:12px;height:12px;color:var(--color-surface)}.cart-bar{background:var(--color-primary);width:100%;max-width:480px;color:var(--color-surface);padding:var(--space-3) var(--space-3) calc(var(--space-3) + env(safe-area-inset-bottom));z-index:50;justify-content:space-between;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 20px #0000001f}.cart-bar-left{align-items:center;gap:var(--space-2);display:flex}.cart-bar-left svg{width:18px;height:18px}.cart-bar-label{font-family:Inter,sans-serif;font-size:15px;font-weight:500}.cart-bar-total{font-family:Inter,sans-serif;font-size:15px;font-weight:600}.app-header{padding:var(--space-3);background:var(--color-surface);border-bottom:1px solid var(--color-divider);z-index:10;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-header-btn{width:40px;height:40px;color:var(--color-primary);border-radius:var(--radius-sm);justify-content:center;align-items:center;transition:background .2s;display:flex}.app-header-btn:hover{background:var(--color-cream)}.app-header-btn svg{width:22px;height:22px}.app-header-title{color:var(--color-primary);font-family:Playfair Display,serif;font-size:18px;font-weight:500}.app-header-spacer{width:40px}.payment-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;display:flex}.payment-card.selected{border-color:var(--color-primary);padding-left:calc(var(--space-3) - 3px);background:var(--color-cream);border-left-width:4px}.payment-icon{border-radius:var(--radius-sm);background:var(--color-cream);width:40px;height:40px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.payment-icon svg{width:20px;height:20px}.payment-body{flex:1}.payment-title{color:var(--color-text-primary);margin-bottom:2px;font-family:Inter,sans-serif;font-size:15px;font-weight:500}.payment-sub{color:var(--color-text-secondary);font-family:Inter,sans-serif;font-size:13px;line-height:1.4}.badge{color:var(--color-sage);border-radius:var(--radius-sm);letter-spacing:.02em;background:#8fa36a26;align-items:center;padding:4px 10px;font-family:Inter,sans-serif;font-size:11px;font-weight:500;display:inline-flex}.badge-warning{color:var(--color-warning);background:#c97a3a26}.badge-amber{color:var(--color-gold);background:#c6a15b2e}.badge-sold-out{background-color:var(--color-divider);color:var(--color-text-secondary)}.warning-card{border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-2);background:#c97a3a14;border:1px solid #c97a3a4d;flex-direction:column;display:flex}.warning-title{color:var(--color-warning);font-family:Inter,sans-serif;font-size:14px;font-weight:600}.warning-sub{color:var(--color-text-secondary);font-family:Inter,sans-serif;font-size:13px}.transfer-card{border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);background:linear-gradient(#f7f3ee99 0%,#fffdfb 100%);flex-direction:column;display:flex}.transfer-amount{color:var(--color-primary);font-family:Playfair Display,serif;font-size:32px;font-weight:600}.row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.col{gap:var(--space-2);flex-direction:column;display:flex}.spinner{border:2px solid var(--color-divider);border-top-color:var(--color-gold);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.footer{align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-3);border-top:1px solid var(--color-divider);flex-direction:column;display:flex}.footer-links{gap:var(--space-4);display:flex}.footer-link{color:var(--color-text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.footer-link svg{width:16px;height:16px}.footer-copy{color:var(--color-text-secondary);font-size:11px}.empty{padding:var(--space-5) var(--space-3);text-align:center;color:var(--color-text-secondary);font-size:14px}.admin-shell{background:var(--color-background);min-height:100vh;display:flex}.admin-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.admin-sidebar{background:var(--color-surface);border-right:1px solid var(--color-divider);z-index:100;flex-direction:column;width:240px;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 20px #0000000f}.admin-sidebar--open{transform:translate(0)}.admin-overlay{z-index:99;background:#00000059;position:fixed;inset:0}@media (min-width:768px){.admin-sidebar{transform:translate(0)}.admin-overlay{display:none}}.admin-sidebar__brand{border-bottom:1px solid var(--color-divider);align-items:center;gap:12px;padding:20px 16px;display:flex}.admin-sidebar__logo{background:var(--color-cream);border:1px solid var(--color-divider);width:40px;height:40px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Playfair Display,serif;font-size:13px;font-weight:600;display:flex}.admin-sidebar__brand-name{color:var(--color-primary);font-family:Playfair Display,serif;font-size:15px;font-weight:600;line-height:1.2}.admin-sidebar__brand-sub{color:var(--color-text-secondary);margin-top:2px;font-size:11px}.admin-sidebar__nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.admin-sidebar__footer{border-top:1px solid var(--color-divider);padding:8px 8px 16px}.admin-nav-item{border-radius:var(--radius-md);color:var(--color-text-primary);text-align:left;align-items:center;gap:10px;width:100%;padding:10px 12px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.admin-nav-item:hover{background:var(--color-cream)}.admin-nav-item--active{background:var(--color-primary);color:var(--color-surface)}.admin-nav-item--active:hover{background:#4a2e23}.admin-nav-item--logout{color:#b91c1c}.admin-nav-item--logout:hover{background:#fef2f2}.admin-main{flex-direction:column;flex:1;min-height:100vh;display:flex}@media (min-width:768px){.admin-main{margin-left:240px}}.admin-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-divider);z-index:10;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}@media (min-width:768px){.admin-topbar{display:none}}.admin-topbar__title{color:var(--color-primary);font-family:Playfair Display,serif;font-size:17px;font-weight:600}.admin-content{max-width:1100px;padding:20px 16px}@media (min-width:768px){.admin-content{padding:32px}}.admin-page{flex-direction:column;gap:20px;display:flex}.admin-page__header{flex-direction:column;gap:12px;display:flex}@media (min-width:640px){.admin-page__header{flex-direction:row;justify-content:space-between;align-items:center;gap:16px}}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (min-width:640px){.admin-stats-grid{grid-template-columns:repeat(4,1fr)}}.admin-stat-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;gap:6px;padding:16px;display:flex}.admin-stat-card__value{font-family:Playfair Display,serif;font-size:28px;font-weight:600;line-height:1}.admin-table{border-collapse:collapse;width:100%;min-width:700px;font-family:Inter,sans-serif;font-size:14px}.admin-table thead tr{border-bottom:1px solid var(--color-divider);background:var(--color-cream)}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);padding:12px 16px;font-size:11px;font-weight:600}.admin-table td{border-bottom:1px solid var(--color-divider);vertical-align:middle;color:var(--color-text-primary);padding:14px 16px}.admin-table__row:hover td{background:var(--color-cream)}.admin-table__row:last-child td{border-bottom:none}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%)}.toast{align-items:center;gap:var(--space-2);background-color:var(--color-primary);color:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);pointer-events:auto;padding:12px 16px;font-family:Inter,sans-serif;font-size:14px;font-weight:400;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast .lucide{flex-shrink:0;width:18px;height:18px}.toast-success{background-color:var(--color-sage)}.toast-error{background-color:#b91c1c}
