:root{--color-primary:#2f6418;--color-primary-dark:#1f4610;--color-secondary:#f5a623;--color-secondary-dark:#ac7419;--color-bg:#fbf7ee;--color-surface:#fff;--color-surface-sunken:#f3ede0;--color-text:#241f16;--color-text-muted:#79715f;--color-border:#e8dfc9;--color-danger:#b3452c;--radius-sm:10px;--radius-md:16px;--radius-lg:26px;--radius-pill:999px;--shadow-card:0 1px 2px #241f160a, 0 8px 20px -10px #241f162e;--shadow-float:0 12px 32px -12px #241f1659;--font-display:"Fraunces", "Iowan Old Style", serif;--font-body:"Work Sans", system-ui, -apple-system, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;overflow-x:hidden}h1,h2,h3,.font-display{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}::selection{background:var(--color-secondary);color:var(--color-text)}.scroll-x{scrollbar-width:none;display:flex;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.screen{background:var(--color-bg);flex-direction:column;min-height:100dvh;display:flex}.app-header{z-index:20;padding:calc(var(--safe-top) + 14px) 18px 14px;background:var(--color-primary);color:#fff;align-items:center;gap:10px;display:flex;position:sticky;top:0}.app-header__logo{border-radius:var(--radius-sm);object-fit:cover;background:#fff3;flex-shrink:0;width:30px;height:30px}.app-header__title{font-family:var(--font-display);color:#fff;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:20px;font-weight:600;overflow:hidden}.icon-btn{border-radius:var(--radius-pill);background:var(--color-surface);width:40px;height:40px;box-shadow:var(--shadow-card);color:var(--color-text);border:none;flex-shrink:0;place-items:center;display:grid;position:relative}.app-header .icon-btn{box-shadow:none;color:#fff;background:#ffffff38}.icon-btn__badge{border-radius:var(--radius-pill);background:var(--color-secondary);min-width:18px;height:18px;color:var(--color-text);border:2px solid var(--color-bg);place-items:center;padding:0 4px;font-size:11px;font-weight:700;display:grid;position:absolute;top:-2px;right:-2px}.content{padding:18px 18px calc(96px + var(--safe-bottom));flex:1}.content--tight{padding-left:0;padding-right:0}.btn{border-radius:var(--radius-pill);border:none;justify-content:center;align-items:center;gap:8px;padding:15px 24px;font-size:15px;font-weight:600;transition:transform .15s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;pointer-events:none}.btn-primary{background:var(--color-secondary);color:var(--color-text);width:100%;box-shadow:0 10px 24px -10px color-mix(in srgb, var(--color-secondary) 70%, transparent)}.btn-ghost{color:var(--color-secondary-dark);background:0 0;padding:10px 14px}.btn-outline{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.field{flex-direction:column;gap:6px;min-width:0;margin-bottom:16px;display:flex}.field label{color:var(--color-text-muted);font-size:13px;font-weight:600}.field input,.field textarea,.field select{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);outline:none;width:100%;min-width:0;padding:13px 14px;transition:border-color .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--color-secondary)}.field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.form-error{background:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger);border-radius:var(--radius-sm);margin-bottom:16px;padding:12px 14px;font-size:14px}.splash{background:radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--color-primary) 16%, var(--color-bg)) 0%, var(--color-bg) 65%);flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100dvh;display:flex}.splash__mark{border-radius:var(--radius-lg);background:var(--color-primary);width:84px;height:84px;box-shadow:var(--shadow-float);place-items:center;animation:.5s fade-up;display:grid}.splash__logo{border-radius:var(--radius-lg);background:var(--color-surface);width:84px;height:84px;box-shadow:var(--shadow-float);animation:.5s fade-up;overflow:hidden}.splash__logo img{object-fit:contain;box-sizing:border-box;width:100%;height:100%;padding:10px}.splash__name{font-family:var(--font-display);color:var(--color-primary-dark);font-size:26px;animation:.5s .1s backwards fade-up}.splash__slogan{color:var(--color-text-muted);font-size:14px;animation:.5s .18s backwards fade-up}.banner-carousel{scroll-snap-type:x mandatory;gap:12px;padding:0 34px 4px}.banner-carousel__item{scroll-snap-align:center;border-radius:var(--radius-lg);aspect-ratio:8/5;background:var(--color-surface-sunken);box-shadow:var(--shadow-card);flex:0 0 calc(100% - 12px);overflow:hidden}.banner-carousel__item img{object-fit:cover;width:100%;height:100%;display:block}.category-tabs{gap:8px;padding:16px 18px 4px}.category-pill{border-radius:var(--radius-pill);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);flex-shrink:0;padding:10px 18px;font-size:14px;font-weight:600}.category-pill.is-active{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-text)}.product-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px;display:grid}.product-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);text-align:left;border:none;flex-direction:column;padding:0;display:flex;overflow:hidden}.product-card__image{aspect-ratio:4/3;background:var(--color-surface-sunken);place-items:center;display:grid;overflow:hidden}.product-card__image img{object-fit:cover;width:100%;height:100%}.product-card__body{flex-direction:column;gap:3px;padding:8px 8px 10px;display:flex}.product-card__name{font-size:12.5px;font-weight:600;line-height:1.25}.product-card__unit{color:var(--color-text-muted);font-size:10.5px}.product-card__price{font-family:var(--font-display);color:var(--color-secondary-dark);margin-top:2px;font-size:15px;font-weight:600}.section-title{font-family:var(--font-display);margin:8px 2px 2px;font-size:22px;font-weight:600}.qty-stepper{background:var(--color-surface-sunken);border-radius:var(--radius-pill);align-items:center;gap:18px;padding:6px;display:inline-flex}.qty-stepper__btn{border-radius:var(--radius-pill);background:var(--color-surface);width:40px;height:40px;color:var(--color-secondary-dark);box-shadow:var(--shadow-card);border:none;place-items:center;font-size:20px;font-weight:700;display:grid}.qty-stepper__value{text-align:center;min-width:64px;font-family:var(--font-display);font-size:18px;font-weight:600}.choice-row{gap:10px;display:flex}.choice-pill{border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-surface);text-align:center;flex:1;padding:12px;font-weight:600}.choice-pill.is-active{border-color:var(--color-secondary);background:color-mix(in srgb, var(--color-secondary) 10%, var(--color-surface));color:var(--color-secondary-dark)}.product-hero{aspect-ratio:1;background:var(--color-surface-sunken);border-radius:var(--radius-lg);width:100%;margin-bottom:18px;overflow:hidden}.product-hero img{object-fit:cover;width:100%;height:100%}.cart-item{border-bottom:1px solid var(--color-border);gap:12px;padding:14px 0;display:flex}.cart-item__image{border-radius:var(--radius-sm);background:var(--color-surface-sunken);flex-shrink:0;width:64px;height:64px;overflow:hidden}.cart-item__image img{object-fit:cover;width:100%;height:100%}.cart-item__info{flex-direction:column;flex:1;gap:4px;display:flex}.cart-item__remove{color:var(--color-danger);background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px;font-weight:600}.summary-row{color:var(--color-text-muted);justify-content:space-between;padding:8px 0;display:flex}.summary-row.total{color:var(--color-text);border-top:1px solid var(--color-border);margin-top:8px;padding-top:14px;font-size:17px;font-weight:700}.side-menu-overlay{z-index:40;background:#0006;animation:.15s fade-up;position:fixed;inset:0}.side-menu{background:var(--color-bg);z-index:41;width:min(300px,84vw);padding:calc(var(--safe-top) + 18px) 8px 18px;box-shadow:var(--shadow-float);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.side-menu__header{justify-content:space-between;align-items:center;padding:0 12px 18px;display:flex}.side-menu__brand{font-family:var(--font-display);color:var(--color-primary-dark);font-size:19px}.side-menu__link{border-radius:var(--radius-sm);padding:13px 14px;font-size:15px;font-weight:600}.side-menu__link:active{background:var(--color-surface-sunken)}.side-menu__divider{background:var(--color-border);height:1px;margin:10px 8px}.side-menu__footer{color:var(--color-text-muted);margin-top:auto;padding:0 14px;font-size:12px}.status-stepper{flex-direction:column;gap:0;margin:20px 0;display:flex}.status-step{align-items:flex-start;gap:14px;min-height:56px;display:flex}.status-step__dot{border-radius:var(--radius-pill);background:var(--color-border);color:#0000;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:13px;display:grid;position:relative}.status-step__line{background:var(--color-border);width:2px;height:32px;position:absolute;top:24px;left:11px}.status-step.is-done .status-step__dot,.status-step.is-current .status-step__dot{background:var(--color-secondary);color:var(--color-text)}.status-step.is-done .status-step__line{background:var(--color-secondary)}.status-step__label{color:var(--color-text-muted);padding-top:2px;font-weight:600}.status-step.is-done .status-step__label,.status-step.is-current .status-step__label{color:var(--color-text)}.bottom-bar{z-index:30;padding:12px 18px calc(16px + var(--safe-bottom));background:color-mix(in srgb, var(--color-bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--color-border);position:fixed;bottom:0;left:0;right:0}.empty-state{text-align:center;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:60px 24px;display:flex}.empty-state__title{font-family:var(--font-display);color:var(--color-text);font-size:19px}.stagger>*{animation:.4s backwards fade-up}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.14s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(6){animation-delay:.22s}.muted{color:var(--color-text-muted)}.link{color:var(--color-secondary-dark);font-weight:600;text-decoration:underline}.admin{background:#fbf7ee;min-height:100dvh}.admin-topbar{z-index:20;background:var(--color-primary-dark);color:#fff;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;top:0}.admin-topbar__title{font-family:var(--font-display);flex:1;font-size:18px;font-weight:600}.admin-topbar__user{opacity:.85;font-size:13px}.admin-topbar__logout{color:#fff;border-radius:var(--radius-pill);background:#ffffff26;border:none;padding:8px 14px;font-size:13px;font-weight:600}.admin-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);scrollbar-width:none;gap:4px;padding:10px 16px;display:flex;overflow-x:auto}.admin-nav::-webkit-scrollbar{display:none}.admin-nav__link{border-radius:var(--radius-sm);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;padding:9px 14px;font-size:14px;font-weight:600}.admin-nav__link.is-active{background:var(--color-surface-sunken);color:var(--color-text)}.admin-content{max-width:920px;margin:0 auto;padding:24px 20px 60px}.admin-page-title{font-family:var(--font-display);margin-bottom:20px;font-size:24px}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.admin-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);margin-bottom:16px;padding:20px}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px;display:grid}.admin-stat{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:18px}.admin-stat__value{font-family:var(--font-display);color:var(--color-primary-dark);font-size:28px}.admin-stat__label{color:var(--color-text-muted);margin-top:4px;font-size:13px}.admin-table-wrap{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:560px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding:12px 16px;font-size:12px}.admin-table td{border-bottom:1px solid var(--color-border);padding:12px 16px;font-size:14px}.admin-table tr:last-child td{border-bottom:none}.admin-table tr.is-clickable{cursor:pointer}.admin-table tr.is-clickable:hover td{background:var(--color-surface-sunken)}.admin-table th.is-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.admin-table th.is-sortable:hover{color:var(--color-text)}.admin-badge{border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-muted);padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.admin-badge.is-open,.admin-badge.is-available{background:color-mix(in srgb, var(--color-primary) 14%, transparent);color:var(--color-primary-dark)}.admin-badge.is-closed,.admin-badge.is-unavailable{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.admin-switch{width:40px;height:24px;display:inline-block;position:relative}.admin-switch input{opacity:0;width:0;height:0}.admin-switch__track{background:var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:background .15s;position:absolute;inset:0}.admin-switch__track:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px}.admin-switch input:checked+.admin-switch__track{background:var(--color-primary)}.admin-switch input:checked+.admin-switch__track:before{transform:translate(16px)}.admin-form{max-width:480px}.admin-form-grid{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.admin-form-grid>.field{min-width:0}.admin-settings-list{gap:10px;margin-bottom:20px;display:grid}.admin-settings-link{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;padding:16px 18px;font-weight:600;display:flex}.admin-empty{text-align:center;color:var(--color-text-muted);padding:40px 20px}.date-picker{position:relative}.date-picker__trigger{text-align:left;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;padding:13px 14px;font-size:14px}.date-picker__trigger:focus{border-color:var(--color-primary);outline:none}.date-picker__popover{z-index:30;background:var(--color-surface);border-radius:var(--radius-md);width:280px;box-shadow:var(--shadow-card);border:1px solid var(--color-border);padding:14px;position:absolute;top:calc(100% + 6px);left:0}.date-picker__header{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:14px;display:flex}.date-picker__header button{background:var(--color-surface-sunken);border-radius:var(--radius-sm);cursor:pointer;border:none;width:28px;height:28px;font-size:16px;line-height:1}.date-picker__weekdays{text-align:center;color:var(--color-text-muted);grid-template-columns:repeat(7,1fr);margin-bottom:4px;font-size:11px;display:grid}.date-picker__days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-picker__day{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:7px 0;font-size:13px}.date-picker__day:hover{background:var(--color-surface-sunken)}.date-picker__day.is-selected{background:var(--color-primary);color:#fff;font-weight:600}.date-picker__hint{color:var(--color-text-muted);text-align:center;margin:10px 0 0;font-size:12px}
