:root{
  --burgundy:#6f1d2b;
  --cream:#f6f0e6;
  --ink:#201a17;
  --muted:#746a63;
  --line:#ded5ca;
  --white:#fff;
}
*{box-sizing:border-box}
body{margin:0;font-family:"DM Sans",sans-serif;color:var(--ink);background:#fbf8f3}
h1,h2{font-family:"Playfair Display",serif;margin:0}
.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:white;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-weight:700;letter-spacing:.16em}
.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--burgundy);color:white;font-family:"Playfair Display"}
.tagline{color:var(--muted);font-size:14px}
.hero{min-height:330px;display:flex;align-items:end;padding:58px 8vw;background:linear-gradient(90deg,rgba(25,12,10,.82),rgba(25,12,10,.25)),url("https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&w=1800&q=80") center/cover;color:white}
.hero h1{font-size:clamp(42px,7vw,76px);max-width:700px}
.hero p{font-size:18px}
.eyebrow{letter-spacing:.16em;font-size:12px;font-weight:700}
.booking-shell{max-width:980px;margin:-28px auto 70px;padding:0 20px}
.booking-card,.confirmation-card,.panel{background:white;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 14px 40px rgba(59,39,27,.08)}
.step{display:flex;gap:14px;margin:8px 0 20px;align-items:flex-start}
.step-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--burgundy);color:white;font-weight:700}
.step p{margin:4px 0;color:var(--muted)}
.grid{display:grid;gap:16px;margin-bottom:28px}
.grid.three{grid-template-columns:repeat(3,1fr)}
.grid.two{grid-template-columns:repeat(2,1fr)}
label{font-size:13px;font-weight:700;display:grid;gap:8px}
input,select,textarea,button{font:inherit}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:13px;background:white}
textarea{resize:vertical}
.primary,.danger,.date-filter button,.inline-form button{border:0;border-radius:10px;padding:14px 20px;font-weight:700;cursor:pointer}
.primary{background:var(--burgundy);color:white;width:100%;margin-top:22px}
.danger{background:#8c1d18;color:white}
.link-button{display:block;text-align:center;text-decoration:none}
.fine-print{text-align:center;color:var(--muted);font-size:12px}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:12px}
.flash.error{background:#fde8e7;color:#81201d}
.flash.success{background:#e4f5e8;color:#246331}
.center-page{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:30px}
.confirmation-card{max-width:620px;width:100%;text-align:center}
.check{margin:auto auto 18px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#e5f4e7;color:#23703a;font-size:28px}
.reservation-summary{display:grid;grid-template-columns:1fr 1fr;text-align:left;border:1px solid var(--line);border-radius:14px;margin:28px 0;overflow:hidden}
.reservation-summary div{padding:16px;border-bottom:1px solid var(--line)}
.reservation-summary div:nth-child(odd){border-right:1px solid var(--line)}
.reservation-summary span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}
.admin-wrap{max-width:1180px;margin:35px auto;padding:0 20px 60px}
.admin-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}
.date-filter,.inline-form{display:flex;gap:8px}
.date-filter button,.inline-form button{background:var(--burgundy);color:white}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.stats div{background:var(--cream);border-radius:14px;padding:18px}
.stats span{display:block;color:var(--muted)}
.stats strong{font-size:28px}
.panel{margin-bottom:18px}
.table-scroll{overflow:auto}
table{width:100%;border-collapse:collapse;margin-top:16px}
th,td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;text-transform:uppercase;color:var(--muted)}
small{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.chip{background:var(--cream);padding:8px 10px;border-radius:999px;font-size:13px}
.inline-form input{max-width:220px}
@media(max-width:720px){
  .grid.three,.grid.two,.stats{grid-template-columns:1fr}
  .tagline{display:none}
  .hero{min-height:280px}
  .reservation-summary{grid-template-columns:1fr}
  .reservation-summary div:nth-child(odd){border-right:0}
  .admin-head{align-items:start;gap:18px;flex-direction:column}
  .inline-form{flex-direction:column}
}

.topnav{display:flex;gap:18px;align-items:center}.topnav a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:700}
.floor-shell{max-width:1500px;margin:28px auto;padding:0 22px 50px}
.floor-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:15px}
.floor-controls{display:flex;gap:8px;align-items:center}.floor-controls select,.floor-controls input{min-width:180px}
.floor-controls button,.secondary-button{border:0;background:var(--burgundy);color:#fff;border-radius:10px;padding:13px 16px;font-weight:700;text-decoration:none}
.legend{display:flex;gap:20px;background:white;border:1px solid var(--line);padding:12px 16px;border-radius:12px;margin-bottom:14px}
.legend span{display:flex;align-items:center;gap:7px;font-size:13px}.dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.dot.available,.floor-table.available,.status-pill.available{background:#2f7d55}.dot.confirmed,.floor-table.confirmed,.status-pill.confirmed{background:#b88724}.dot.seated,.floor-table.seated,.status-pill.seated{background:#3874a5}.dot.unavailable{background:#777}
.floor-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}
.floor-canvas{position:relative;min-height:690px;background-color:#fafafa;background-image:linear-gradient(#e5e5e5 1px,transparent 1px),linear-gradient(90deg,#e5e5e5 1px,transparent 1px);background-size:32px 32px;border:1px solid #d8d8d8;border-radius:14px;overflow:hidden}
.floor-table{position:absolute;border:0;color:white;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 9px rgba(0,0,0,.17);cursor:pointer;transition:.15s transform}
.floor-table:hover{transform:scale(1.05);z-index:5}.floor-table.round{border-radius:50%}.floor-table strong{font-size:17px}.floor-table small{opacity:.8;font-size:11px}
.floor-sidebar{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;min-height:690px}
.empty-details{color:var(--muted);padding:20px 0}.status-pill{display:inline-block;color:white;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;text-transform:capitalize}
.floor-sidebar dl{display:grid;grid-template-columns:80px 1fr;gap:9px;margin-top:20px}.floor-sidebar dt{color:var(--muted);font-size:12px}.floor-sidebar dd{margin:0;font-size:14px}
.combo-box{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.combo-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.admin-actions{display:flex;gap:10px;align-items:center}
@media(max-width:900px){.floor-layout{grid-template-columns:1fr}.floor-sidebar{min-height:auto}.floor-toolbar{align-items:flex-start;flex-direction:column}.floor-controls{flex-wrap:wrap}.floor-canvas{min-height:620px}}

.brand-logo{width:150px;height:54px;object-fit:contain;object-position:left center}.topbar{background:#080808;border-color:#29231d}.topnav a{color:#f4ede3}.dashboard-shell{max-width:1480px;margin:0 auto;padding:34px 24px 70px}.dashboard-header{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.dashboard-subtitle{color:var(--muted);margin:8px 0 0}.dashboard-actions{display:flex;gap:10px}.primary-button,.outline-button,.full-outline{border-radius:10px;padding:12px 16px;font-weight:700;text-decoration:none;cursor:pointer}.primary-button{border:1px solid #7b2230;background:#7b2230;color:white}.outline-button,.full-outline{border:1px solid #b78a3e;background:transparent;color:#6c4c17}.metric-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.metric-card{background:#11100f;color:white;border:1px solid #2b2723;border-radius:14px;padding:18px;min-height:128px}.metric-card span,.metric-card small{display:block;color:#bcb1a7}.metric-card strong{display:block;font-size:32px;margin:9px 0}.metric-card.warning{border-color:#8c6530}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.dashboard-panel{background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 30px rgba(40,24,15,.06);overflow:hidden}.panel-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:20px;border-bottom:1px solid var(--line)}.panel-toolbar p{margin:3px 0;color:var(--muted)}.dashboard-filter{display:flex;gap:8px;align-items:center}.dashboard-filter input,.dashboard-filter select{padding:10px;min-width:130px}.dashboard-filter input[name=search]{min-width:240px}.dashboard-filter button{border:0;background:#111;color:white;padding:11px 14px;border-radius:9px}.reservation-list{padding:0}.reservation-row{display:grid;grid-template-columns:78px minmax(220px,1fr) 75px 190px 145px 120px;gap:12px;align-items:center;padding:15px 18px;border-bottom:1px solid #eee7df;border-left:4px solid #b78a3e}.reservation-row.status-seated{border-left-color:#2c7298}.reservation-row.status-cancelled,.reservation-row.status-no_show{opacity:.62;border-left-color:#777}.reservation-row.status-walk_in{border-left-color:#507b4b}.reservation-time{font-weight:800;font-size:16px}.guest-block{display:grid;gap:3px}.guest-block span,.guest-block small,.party-block span{color:var(--muted);font-size:12px}.party-block{text-align:center}.party-block strong{display:block;font-size:20px}.compact-form select{padding:9px;font-size:12px}.status-select{font-weight:700}.status-select.status-confirmed{background:#f7e9ec}.status-select.status-seated{background:#e5f1f7}.status-select.status-walk_in{background:#e7f1e5}.confirmation-code{font-size:11px;color:var(--muted)}.empty-state{padding:50px;text-align:center;color:var(--muted)}.dashboard-side{display:grid;gap:16px;align-content:start}.compact-panel{padding:20px}.compact-panel h2{margin-bottom:14px}.area-summary,.snapshot-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.area-summary div{display:grid}.area-summary span{font-size:12px;color:var(--muted)}.area-summary b{color:#7b2230}.full-outline{display:block;text-align:center;margin-top:15px}.quick-link{display:block;padding:11px 0;color:#6f1d2b;text-decoration:none;border-bottom:1px solid var(--line)}.booking-dialog{width:min(760px,94vw);border:0;border-radius:18px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.3)}.booking-dialog::backdrop{background:rgba(0,0,0,.62)}.booking-dialog form{padding:26px}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.dialog-close{border:0;background:#eee5dc;width:36px;height:36px;border-radius:50%;font-size:24px}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dialog-wide{grid-column:1/-1}.full-button{width:100%;margin-top:18px}.admin-wrap{display:none}
@media(max-width:1200px){.metric-grid{grid-template-columns:repeat(3,1fr)}.dashboard-layout{grid-template-columns:1fr}.dashboard-side{grid-template-columns:repeat(3,1fr)}.reservation-row{grid-template-columns:70px minmax(180px,1fr) 65px 170px 135px}}
@media(max-width:820px){.dashboard-header,.panel-toolbar{align-items:flex-start;flex-direction:column}.dashboard-actions,.dashboard-filter{width:100%;flex-wrap:wrap}.dashboard-filter input,.dashboard-filter select{flex:1;min-width:150px}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-side{grid-template-columns:1fr}.reservation-row{grid-template-columns:60px 1fr 60px}.reservation-row .compact-form,.confirmation-code{grid-column:2/-1}.dialog-grid{grid-template-columns:1fr}.dialog-wide{grid-column:auto}}

.reservation-actions{display:grid;gap:7px;justify-items:start}.edit-reservation-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #b78a3e;border-radius:8px;padding:7px 13px;color:#6f4c14;text-decoration:none;font-size:12px;font-weight:800;background:#fffaf1}.edit-reservation-button:hover{background:#f4e7ce}.edit-shell{max-width:980px;margin:0 auto;padding:40px 22px 80px}.edit-header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.edit-header p{color:var(--muted);margin:7px 0 0}.edit-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 14px 38px rgba(40,24,15,.08)}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.edit-wide{grid-column:1/-1}.edit-footer{display:flex;justify-content:flex-end;align-items:center;gap:12px;border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.edit-footer .primary-button,.edit-footer .outline-button{min-width:150px;text-align:center}.edit-footer .primary-button{margin:0}@media(max-width:720px){.edit-header{align-items:flex-start;flex-direction:column}.edit-grid{grid-template-columns:1fr}.edit-wide{grid-column:auto}.edit-footer{align-items:stretch;flex-direction:column-reverse}.edit-footer .primary-button,.edit-footer .outline-button{width:100%}}

.email-note{background:var(--cream);border-radius:10px;padding:12px 14px;color:var(--muted);font-size:13px}
.guest-manage-shell{max-width:820px;margin:42px auto;padding:0 20px 70px}
.guest-manage-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 14px 40px rgba(59,39,27,.08)}
.guest-manage-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:24px}
.guest-manage-head p{color:var(--muted)}
.full-button{width:100%;margin-top:20px}
.cancel-zone{margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.cancel-zone h2{font-size:22px}.cancel-zone p{color:var(--muted)}
.closed-reservation{text-align:center;padding:40px 10px}.closed-reservation p{color:var(--muted)}
.inline-action-form{display:inline}.small-action-button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:7px 9px;font-size:12px;font-weight:700;cursor:pointer}
@media(max-width:620px){.guest-manage-head{flex-direction:column}.guest-manage-card{padding:20px}}

.floor-table em{font-style:normal;font-size:10px;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.floor-table.seated{box-shadow:0 0 0 4px rgba(56,116,165,.22),0 5px 12px rgba(0,0,0,.2)}
.table-action-stack{display:grid;gap:9px;margin-top:20px}
.seat-panel{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}
.seat-panel h4{margin:0 0 12px;font-family:"Playfair Display",serif;font-size:18px}
.seat-panel label{margin-bottom:12px}
.seat-action,.complete-action,.secondary-action{width:100%;border:0;border-radius:9px;padding:12px 14px;font-weight:700;cursor:pointer}
.seat-action{background:var(--burgundy);color:#fff}
.complete-action{background:#2f7d55;color:#fff}
.secondary-action{background:var(--cream);color:var(--ink);border:1px solid var(--line)}
.muted-copy{color:var(--muted);font-size:13px}

.floor-table.ending_soon{animation:pulse-table 1.8s infinite;box-shadow:0 0 0 4px rgba(184,135,36,.35)}
.floor-table.overdue{box-shadow:0 0 0 4px rgba(140,29,24,.5);filter:saturate(1.25)}
.timer-active{font-weight:700;color:#2f7d55}.timer-ending_soon{font-weight:800;color:#b06f00}.timer-overdue{font-weight:800;color:#8c1d18}
@keyframes pulse-table{50%{transform:scale(1.04)}}

.ops-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.6fr);gap:20px;margin-top:20px}
.ops-row,.wait-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.ops-row small,.wait-card small{display:block;color:var(--muted);margin-top:4px}
.danger-chip{background:#f8dedc;color:#8a2525;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}
.form-grid{display:grid;gap:12px}.form-grid h2{margin-bottom:4px}
.wait-actions{display:flex;gap:8px;align-items:center}.wait-actions select{min-width:180px}
.wait-actions button{width:auto;padding:9px 12px}
.guest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.guest-card{display:grid;gap:10px}.guest-card-head{display:flex;justify-content:space-between;gap:12px}.guest-card h2{margin:0}.vip-check{display:flex;align-items:center;gap:6px}
.timeline-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
.timeline-head,.timeline-row{display:grid;grid-template-columns:150px repeat(13,110px);min-width:1580px}
.timeline-head{position:sticky;top:0;z-index:2;background:var(--cream);font-weight:700}
.timeline-head>div,.timeline-cell,.timeline-table{padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.timeline-table small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.timeline-cell{min-height:52px;padding:5px}
.timeline-booking{display:block;border-radius:7px;padding:7px 6px;background:#eee3cf;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.timeline-booking.seated{background:#dceee4}.timeline-booking.confirmed{background:#f3e4bf}
@media(max-width:800px){.ops-grid{grid-template-columns:1fr}.wait-card,.wait-actions{align-items:stretch;flex-direction:column}.topnav{overflow-x:auto;white-space:nowrap;max-width:70vw}}

.sms-consent{display:flex!important;align-items:flex-start;gap:9px;font-size:12px;line-height:1.45;color:var(--muted)}
.sms-consent input{width:auto!important;margin-top:3px}

.login-shell{max-width:480px;margin:60px auto;padding:20px}.login-card{display:grid;gap:15px}.nav-logout{background:transparent;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}.table-scroll{overflow:auto}.table-scroll table{width:100%;border-collapse:collapse}.table-scroll th,.table-scroll td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}
