:root{--system-bg:#000;--secondary-bg:#1c1c1e;--tertiary-bg:#2c2c2e;--grouped-bg:#000;--secondary-grouped-bg:#1c1c1e;--label:#fff;--secondary-label:#ebebf5cc;--tertiary-label:#ebebf54d;--quaternary-label:#ebebf52e;--system-fill:#7878805c;--secondary-fill:#78788052;--tertiary-fill:#7878803d;--separator:#545458a6;--separator-opaque:#38383a;--system-green:#30d158;--system-red:#ff453a;--system-blue:#0a84ff;--system-orange:#ff9f0a;--spacing-compact:8px;--spacing-standard:16px;--spacing-large:24px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-card:13px;--ease:.25s cubic-bezier(.4, 0, .2, 1);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--system-bg);color:var(--label);min-height:100dvh;line-height:1.5;overflow-x:hidden}#root{width:100%;min-height:100dvh}input,button,select,textarea{font-family:inherit}::-webkit-scrollbar{width:0}.floor-plan-container{width:100%;padding:10px}.floor-plan{touch-action:manipulation;-webkit-tap-highlight-color:transparent;width:100%;height:auto;display:block}.zone-label{fill:#ebebf54d;letter-spacing:1px;text-transform:uppercase;pointer-events:none;font-size:9px;font-weight:600}.table-surface{transition:fill var(--ease), stroke var(--ease);stroke-width:1.5px}.table-group.available .table-surface{fill:#30d1581a;stroke:#30d1584d}.table-group.booked .table-surface{fill:#ff453a1a;stroke:#ff453a47}.table-group.available.active .table-surface{fill:#30d1582e;stroke:#30d15880}.table-group.booked.active .table-surface{fill:#ff453a2e;stroke:#ff453a73}.table-number{fill:#ffffffd9;pointer-events:none;font-size:13px;font-weight:700}.table-seats-label{fill:#ebebf540;pointer-events:none;font-size:8px;font-weight:500}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:flex-end;animation:.15s ease-out overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal-sheet{background:var(--secondary-bg);border-radius:var(--r-xl) var(--r-xl) 0 0;flex-direction:column;width:100%;max-width:480px;max-height:90dvh;animation:.35s cubic-bezier(.32,.72,0,1) sheet-up;display:flex;overflow:hidden}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{justify-content:center;padding:8px 0 4px;display:flex}.handle-bar{background:var(--system-fill);border-radius:2.5px;width:36px;height:5px}.sheet-header{padding:6px var(--spacing-standard) 14px;border-bottom:.5px solid var(--separator)}.sheet-title-row{justify-content:space-between;align-items:flex-start;display:flex}.sheet-title{color:var(--label);margin:0;font-size:22px;font-weight:700}.sheet-meta{align-items:center;gap:6px;margin-top:2px;display:flex}.meta-zone{color:var(--system-blue);font-size:13px;font-weight:500}.meta-dot{color:var(--tertiary-label);font-size:11px}.meta-seats{color:var(--secondary-label);font-size:13px}.close-btn{background:var(--system-fill);width:30px;height:30px;color:var(--secondary-label);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.close-btn:active{background:var(--secondary-fill);transform:scale(.92)}.sheet-info-row{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.info-date{color:var(--secondary-label);text-transform:capitalize;font-size:13px}.info-stats{gap:12px;display:flex}.mini-stat{font-size:12px;font-weight:600}.mini-stat.green{color:var(--system-green)}.mini-stat.red{color:var(--system-red)}.success-banner{padding:10px var(--spacing-standard);color:var(--system-green);border-bottom:.5px solid var(--separator);background:#30d1581f;align-items:center;gap:8px;font-size:13px;font-weight:600;animation:.3s banner-in;display:flex}@keyframes banner-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.booking-form{padding:14px var(--spacing-standard);border-bottom:.5px solid var(--separator);background:var(--tertiary-bg);flex-direction:column;gap:12px;animation:.25s form-in;display:flex}@keyframes form-in{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.form-header{justify-content:space-between;align-items:center;display:flex}.form-time{color:var(--label);font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.form-cancel{color:var(--system-blue);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:15px;font-weight:500}.form-cancel:active{opacity:.5}.form-field{flex-direction:column;gap:6px;display:flex}.form-field label{color:var(--secondary-label);font-size:13px;font-weight:500}.form-input{border-radius:var(--r-sm);background:var(--secondary-fill);color:var(--label);-webkit-appearance:none;border:none;padding:10px 12px;font-size:17px}.form-input::placeholder{color:var(--tertiary-label)}.form-input:focus{background:var(--system-fill);outline:none}.duration-picker{gap:6px;display:flex}.dur-btn{border-radius:var(--r-sm);background:var(--secondary-fill);color:var(--secondary-label);cursor:pointer;border:none;flex:1;padding:8px 0;font-size:13px;font-weight:600;transition:all .15s}.dur-btn.active{background:var(--system-blue);color:#fff}.dur-btn:active{transform:scale(.95)}.guests-stepper{background:var(--secondary-fill);border-radius:var(--r-sm);align-items:center;gap:0;width:fit-content;display:flex;overflow:hidden}.stepper-btn{width:44px;height:40px;color:var(--system-blue);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:20px;font-weight:500;display:flex}.stepper-btn:disabled{color:var(--quaternary-label)}.stepper-btn:active:not(:disabled){background:var(--system-fill)}.stepper-value{text-align:center;width:40px;color:var(--label);border-left:.5px solid var(--separator);border-right:.5px solid var(--separator);font-size:17px;font-weight:600;line-height:40px}.form-error{color:var(--system-red);font-size:13px;font-weight:500}.book-btn{border-radius:var(--r-sm);background:var(--system-blue);color:#fff;cursor:pointer;border:none;width:100%;padding:14px;font-size:17px;font-weight:600;transition:opacity .15s}.book-btn:active{opacity:.7}.book-btn:disabled{opacity:.4;cursor:default}.sheet-body{-webkit-overflow-scrolling:touch;padding:var(--spacing-compact) var(--spacing-standard) var(--spacing-large);flex:1;overflow-y:auto}.slot{border-radius:var(--r-sm);cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:4px;padding:12px 14px;transition:background .15s;display:flex}.slot:last-child{margin-bottom:0}.slot-free{background:#30d15814}.slot-free:active{background:#30d15824}.slot-booked{cursor:default;background:#ff453a14}.slot-selected{background:#0a84ff24;outline:1.5px solid #0a84ff80}.slot-time{color:var(--label);font-variant-numeric:tabular-nums;min-width:50px;font-size:17px;font-weight:600}.slot-status{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.slot-badge{border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600}.slot-badge.free{color:var(--system-green);background:#30d1581f}.slot-badge.booked{color:var(--system-red);background:#ff453a1a}.slot-badge.selected{color:var(--system-blue);background:#0a84ff26}.slot-customer{color:var(--tertiary-label);font-size:11px}.app{background:var(--grouped-bg);max-width:480px;min-height:100dvh;margin:0 auto}.app-header{padding:max(40px, env(safe-area-inset-top,40px)) var(--spacing-standard) var(--spacing-compact)}.header-top{justify-content:space-between;align-items:center;display:flex}.app-header h1{letter-spacing:.36px;color:var(--label);font-size:28px;font-weight:700}.header-badge{color:var(--system-green);background:#30d15829;border-radius:100px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:flex}.header-badge-dot{background:var(--system-green);border-radius:50%;width:5px;height:5px;animation:2s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.2}}.subtitle{color:var(--secondary-label);margin-top:2px;font-size:15px;font-weight:400}.controls-section{padding:var(--spacing-compact) var(--spacing-standard)}.controls-card{background:var(--secondary-grouped-bg);border-radius:var(--r-card);padding:var(--spacing-standard);flex-direction:column;gap:14px;display:flex}.date-picker-row{align-items:center;gap:12px;display:flex}.date-picker-icon{border-radius:var(--r-sm);width:36px;height:36px;color:var(--system-blue);background:#0a84ff1f;flex-shrink:0;justify-content:center;align-items:center;display:flex}.date-picker-icon svg{width:17px;height:17px}.date-picker{border-radius:var(--r-sm);background:var(--tertiary-fill);color:var(--label);-webkit-appearance:none;transition:background var(--ease);border:none;flex:1;padding:9px 12px;font-size:17px;font-weight:400}.date-picker:focus{background:var(--secondary-fill);outline:none}.date-picker::-webkit-calendar-picker-indicator{filter:invert(.8)}.controls-divider{background:var(--separator);height:1px;margin:0 -16px}.legend{gap:24px;display:flex}.legend-item{color:var(--secondary-label);align-items:center;gap:7px;font-size:13px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-dot.available{background:var(--system-green)}.legend-dot.booked{background:var(--system-red)}.stats-bar{padding:var(--spacing-compact) var(--spacing-standard);gap:8px;display:flex}.stat-chip{background:var(--secondary-grouped-bg);border-radius:var(--r-card);flex-direction:column;flex:1;align-items:center;padding:10px 8px;display:flex}.stat-value{font-size:22px;font-weight:700;line-height:1}.stat-value.accent{color:var(--label)}.stat-value.green{color:var(--system-green)}.stat-value.red{color:var(--system-red)}.stat-label{color:var(--tertiary-label);text-transform:uppercase;letter-spacing:.5px;margin-top:3px;font-size:11px;font-weight:500}.map-section{padding:var(--spacing-compact) var(--spacing-standard) var(--spacing-large)}.map-wrapper{background:var(--secondary-grouped-bg);border-radius:var(--r-card);overflow:hidden}.loading-state,.error-state{color:var(--secondary-label);padding:60px var(--spacing-standard);flex:1;justify-content:center;align-items:center;font-size:15px;display:flex}.error-state{color:var(--system-red)}
