:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#e8e8e8;--app-bg:#fff;--admin-bg:#f6f6f6;--surface:#fff;--soft:#f8f8f8;--soft-2:#f3f4f6;--ink:#111;--muted:#888;--faint:#aaa;--line:#eee;--accent:#e8001c;--accent-soft:#fff7f8;--success:#22c55e;--reserved:#f59e0b;--occupied:#6b7280;--shadow:0 4px 18px #0000001a;--deep-shadow:0 24px 80px #0000002e;--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--background);color:var(--ink);font-family:var(--font)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin-top:0}p{color:var(--muted);line-height:1.5}.button,.nav a{border:1.5px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex}.button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.button:disabled,.button.disabled{cursor:wait;opacity:.55}.shell{min-height:100vh;padding:32px}.content{width:min(1120px,100%);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:16px;width:min(1120px,100%);margin:0 auto;padding:0 0 28px;display:flex}.brand{font-size:18px;font-weight:800}.nav{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.panel{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:24px;box-shadow:0 2px 12px #0000000f}.eyebrow,.section-kicker{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:800;display:block}.small-muted{color:var(--muted);margin:4px 0 0;font-size:13px}.actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.list{gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.list li{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px}.list strong{margin-bottom:4px;display:block}.notice,.form-message{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:14px;padding:12px;font-size:14px;font-weight:700}.notice{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.auth-shell{background:var(--background);place-items:center;display:grid}.auth-panel{max-width:520px}.auth-panel h1{margin:0 0 12px;font-size:clamp(34px,7vw,52px);line-height:1}.auth-form{gap:14px;margin-top:22px;display:grid}.auth-form label,.booking-form label,.admin-date-form label,.admin-floor-controls label,.search-panel label,.filters-grid label{color:#333;gap:7px;font-size:13px;font-weight:800;display:grid}.auth-form input,.booking-form input,.booking-form textarea,.admin-date-form input,.admin-floor-controls input,.search-panel input,.search-panel select,.filters-grid select{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1.5px solid #e5e7eb;border-radius:13px;outline:none;padding:0 12px}.booking-form textarea{resize:vertical;min-height:104px;padding-top:12px}.field-error,.inline-warning{color:#991b1b;font-size:13px;font-weight:800}.inline-error{color:#991b1b;margin-top:12px;font-weight:800}.public-shell,.detail-shell,.floor-shell{background:var(--app-bg);width:390px;min-height:100vh;box-shadow:var(--deep-shadow);margin:0 auto}.public-shell{flex-direction:column;display:flex}.search-hero,.public-content,.detail-topbar,.detail-content,.floor-topbar,.floor-header,.floor-board,.floor-legend,.table-sheet{width:100%;max-width:390px;margin-inline:auto}.search-hero{color:var(--ink);background:#fff;padding:14px 20px 0}.public-topline,.detail-topbar,.restaurant-title-row,.detail-heading,.floor-topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.city-pill,.admin-link{min-height:38px;color:var(--ink);background:#fff;border:1.5px solid #eee;border-radius:12px;align-items:center;padding:0 12px;font-size:14px;font-weight:800;display:inline-flex}.city-pill{border:0;padding-left:0}.city-pill:before{content:"📍";color:var(--accent);margin-right:6px}.admin-link{color:#555}.search-hero h1{margin:20px 0 6px;font-size:32px;font-weight:800;line-height:1.1}.search-hero h1:after{content:"Бронируйте за 2 минуты - без звонков";color:var(--muted);margin-top:6px;font-size:14px;font-weight:500;line-height:1.4;display:block}.search-panel{background:var(--soft);border-radius:18px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:0;margin-top:16px;padding:16px;display:grid}.search-panel label{min-width:0;color:var(--faint);border-right:1px solid #e8e8e8;padding:0 10px;font-size:11px;font-weight:600}.search-panel label:first-child{padding-left:0}.search-panel label:nth-child(3){border-right:0}.search-panel input,.search-panel select{min-height:28px;color:var(--ink);background:0 0;border:0;border-radius:0;padding:0;font-size:14px;font-weight:800}.search-button{border-radius:14px;grid-column:1/-1;min-height:48px;margin-top:14px;font-size:15px}.public-content{padding:16px 20px 30px}.filter-row,.slot-row{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.chip,.slot{color:#555;cursor:pointer;background:#f0f0f0;border:0;border-radius:20px;flex:none;min-height:34px;padding:0 14px;font-size:13px;font-weight:700}.chip.active,.slot.active{background:var(--accent);color:#fff}.filters-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.filters-grid select{min-height:40px}.results-head{justify-content:space-between;align-items:end;gap:12px;margin:20px 0 12px;display:flex}.results-head h2,.detail-slots h2{margin:2px 0 0;font-size:18px}.restaurant-list{gap:18px;display:grid}.restaurant-card{box-shadow:var(--shadow);background:#fff;border:0;border-radius:18px;overflow:hidden}.restaurant-photo-link{background:#eee;height:166px;display:block;position:relative}.restaurant-photo-link img,.photo-strip img{object-fit:cover;width:100%;height:100%;display:block}.photo-fallback{background:linear-gradient(135deg,#2b1a12,#9a6842);width:100%;height:100%}.restaurant-card-body{gap:8px;padding:15px;display:grid}.restaurant-title-row h3{margin:0;font-size:19px;font-weight:800}.restaurant-title-row span,.detail-heading strong{color:#fff;background:#000000b8;border-radius:10px;padding:5px 10px;font-size:13px;font-weight:800}.restaurant-title-row span:before,.detail-heading strong:before{content:"★ "}.restaurant-card-body p{margin:0;font-size:13px}.empty-state{background:var(--soft);border-radius:18px;justify-items:start;gap:14px;padding:20px;display:grid}.detail-shell{padding-bottom:40px}.detail-topbar{padding:16px 20px}.detail-topbar .button,.floor-topbar .button{border-radius:999px;min-width:38px;min-height:38px;padding:0 13px}.detail-topbar span,.floor-topbar span{color:var(--muted);text-align:right;font-size:13px;font-weight:800}.photo-strip{padding:0;display:block}.photo-strip img{display:none}.photo-strip img:first-child{width:100%;height:220px;display:block}.detail-content{background:#fff;border:0;border-radius:0;gap:16px;padding:18px 20px 24px;display:grid}.detail-content h1{margin:0;font-size:26px;font-weight:800;line-height:1.1}.detail-meta{color:var(--muted);font-size:14px;font-weight:700}.detail-description{color:#666;font-size:14px;line-height:1.6}.detail-slots{border-top:0;gap:10px;padding-top:0;display:grid}.slot[aria-disabled=true]{color:#9ca3af;text-decoration:line-through}.detail-action,.booking-form .button,.confirmation-card .button{border-radius:14px;min-height:48px;font-size:15px}.floor-shell{min-height:100vh;padding:16px 12px 150px}.floor-topbar{margin-bottom:10px}.floor-header{text-align:center;margin-bottom:10px;padding:0 8px}.floor-header h1{margin:0 0 2px;font-size:20px;font-weight:800}.floor-header p{color:var(--faint);font-size:12px;font-weight:700}.floor-board{background:#2b1a12;border:0;border-radius:18px;height:370px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff29,0 10px 28px #0000002e}.admin-floor-shell .floor-board{max-width:1120px;height:500px}.floor-board img{object-fit:cover;width:100%;height:100%;display:block}.floor-board:after{content:"демо-схема зала";z-index:1;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111111b8;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;position:absolute;bottom:12px;left:12px}.table-hotspot{color:#fff;cursor:pointer;z-index:2;border:2px solid #ffffff8c;border-radius:999px;width:46px;height:46px;font-size:13px;font-weight:900;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 10px #00000042}.table-hotspot span{place-items:center;width:100%;height:100%;display:grid}.table-hotspot.selected{border:3px solid var(--accent);color:var(--accent);background:#fff;outline:6px solid #e8001c33}.status-free{background:var(--success)}.status-occupied,.status-insufficient-capacity{background:var(--occupied)}.status-confirmed-booking{background:var(--success)}.status-pending-booking,.status-reserved-soon{background:var(--reserved)}.floor-legend{flex-wrap:wrap;gap:10px 14px;margin-top:10px;padding:0 8px;display:flex}.legend-item{color:#777;border-radius:0;align-items:center;min-height:20px;padding:0;font-size:12px;font-weight:700;display:inline-flex;background:0 0!important}.legend-item:before{content:"";background:currentColor;border-radius:999px;width:10px;height:10px;margin-right:5px}.legend-item.status-free{color:var(--success)}.legend-item.status-occupied,.legend-item.status-insufficient-capacity{color:var(--occupied)}.legend-item.status-confirmed-booking{color:var(--success)}.legend-item.status-pending-booking,.legend-item.status-reserved-soon{color:var(--reserved)}.table-sheet{z-index:10;border:1px solid var(--line);background:#fff;border-radius:18px;grid-template-columns:1fr;gap:12px;padding:16px;display:grid;position:fixed;bottom:16px;left:calc(50vw - min(390px,100vw)/2 + 20px);right:calc(50vw - min(390px,100vw)/2 + 20px);box-shadow:0 16px 42px #0000002e}.table-sheet h2{margin:4px 0;font-size:18px}.table-message{margin:6px 0 0;font-weight:800}.table-message.success{color:var(--success)}.table-message.warning{color:#991b1b}.table-cta{white-space:nowrap;min-height:46px}.booking-entry h1,.confirmation-card h1{font-size:24px;line-height:1.15}.booking-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.booking-summary div{background:var(--soft);border:0;border-radius:14px;padding:12px}.booking-summary dt{color:var(--muted);text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:800}.booking-summary dd{margin:0;font-weight:800}.booking-form{border-top:0;gap:13px;padding-top:0;display:grid}.confirmation-status{background:var(--accent-soft);color:var(--accent);border:0;border-radius:18px;padding:14px;font-weight:800}.admin-shell{background:var(--admin-bg)}.admin-dashboard-head{background:var(--surface);border:0;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:28px;display:grid;box-shadow:0 2px 12px #0000000f}.admin-dashboard-head h1,.admin-state h1{margin:0 0 8px;font-size:clamp(34px,4vw,56px);line-height:1}.admin-date-form,.admin-floor-controls{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.admin-date-form input,.admin-floor-controls input{min-height:40px}.admin-demo-notice{margin-bottom:18px}.stats,.admin-dashboard-stats{gap:16px;display:grid}.admin-dashboard-stats{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:18px}.stat{background:var(--surface);border:0;border-radius:18px;padding:20px;box-shadow:0 2px 12px #0000000f}.stat strong{margin-bottom:4px;font-size:30px;font-weight:800;display:block}.stat span{color:#999;font-size:13px}.admin-section-head,.admin-booking-list li,.admin-notification-list li{justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-booking-list li,.admin-notification-list li{align-items:flex-start}.admin-notifications,.admin-bookings{margin-top:24px}.admin-notification-count{background:var(--accent);color:#fff;border-radius:999px;place-items:center;min-width:36px;min-height:36px;font-weight:900;display:inline-grid}.admin-notification-list li span,.booking-list li span{color:var(--muted);margin-top:4px;display:block}.admin-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-status{border-radius:999px;align-items:center;width:fit-content;min-height:28px;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.admin-status.status-confirmed{color:#166534;background:#dcfce7}.admin-status.status-pending{color:#a16207;background:#fef9c3}.admin-status.status-sent,.admin-status.status-skipped{color:#555;background:#f3f4f6}.admin-status.status-failed,.admin-status.status-cancelled{color:#991b1b;background:#fee2e2}.admin-floor-shell{background:var(--admin-bg);width:100%;max-width:none;box-shadow:none}.admin-floor-shell .floor-topbar,.admin-floor-shell .floor-header,.admin-floor-shell .floor-legend,.admin-floor-shell .table-sheet{max-width:1120px}.admin-floor-shell .floor-header{text-align:left}.admin-floor-shell .floor-header h1{font-size:28px}.admin-floor-shell .table-sheet{width:min(460px,100vw - 64px);left:auto;right:32px}@media (max-width:760px){body{background:#fff}.shell{padding:20px}.public-shell,.detail-shell,.floor-shell{width:100%;min-height:100dvh;box-shadow:none}.topbar,.admin-dashboard-head,.admin-section-head,.admin-booking-list li,.admin-notification-list li{display:block}.nav,.admin-date-form,.admin-floor-controls,.admin-row-actions{margin-top:14px}.admin-dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.table-sheet{left:20px;right:20px}.admin-floor-shell .table-sheet{width:auto;left:20px;right:20px}}@media (max-width:460px){.search-hero,.public-content,.detail-topbar,.detail-content{max-width:none}.filters-grid,.results-head{grid-template-columns:1fr;align-items:stretch;display:grid}.search-panel{margin-inline:0}.booking-summary,.confirmation-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
