/* the cafe floor plan, shared by the reservation page and the admin table editor */
.floor-svg { width: 100%; height: auto; display: block; filter: drop-shadow(0 18px 24px rgba(40, 30, 25, .18)); }
.fp-wall { fill: #2a2c36; }
.fp-tile { fill: #ece7df; }
.fp-grout { fill: none; stroke: #d9d2c6; stroke-width: 1; }
:root[data-theme="dark"] .fp-tile { fill: #4a4640; }
:root[data-theme="dark"] .fp-grout { stroke: #3c3934; }
:root[data-theme="dark"] .fp-wall { fill: #101116; }
.fp-counter { fill: #17181e; }
.fp-counter-edge { fill: #c9a24a; }
.fp-shelf { fill: #3a2a1e; }
.fp-cup { fill: #fffaf1; }
.fp-sofa { fill: #b4b8c1; }
.fp-sofa-back { fill: #7f8490; }
.fp-sofa-seam { stroke: #9a9fa9; stroke-width: 1.2; stroke-linecap: round; }
.fp-plant { fill: #3e8a4f; }
.fp-plant-hi { fill: #63b36f; }
.fp-door { fill: #c9a24a; }
.fp-swing { fill: none; stroke: #b9b2a6; stroke-width: 1.4; stroke-dasharray: 3 3; }
.fp-label { font: 700 12px Vazirmatn, Tahoma, sans-serif; fill: #6f6a62; text-anchor: middle; }
.fp-label--light { fill: #d9c9a0; }
.fp-table { cursor: pointer; outline: none; }
.fp-table .fp-top { fill: #d9a86a; stroke: #8a5a2c; stroke-width: 1.6; transition: fill .2s; }
.fp-table .fp-seat { fill: #c4c6cc; stroke: #8f939c; stroke-width: 1.2; transition: fill .2s; }
.fp-table .fp-seat--sofa { fill: #c9ccd3; stroke: #8f949f; stroke-width: 1.2; }
.fp-table .fp-seat--bench { fill: #c9ccd3; }
.fp-table .fp-sofa-back--seat { fill: #7f8490; }
.fp-table.is-sel .fp-sofa-back--seat { fill: var(--berry-d); }
.fp-num { font: 900 16px Vazirmatn, Tahoma, sans-serif; fill: #3b2a22; text-anchor: middle; dominant-baseline: middle; pointer-events: none; }
.fp-cap { font: 700 8px Vazirmatn, Tahoma, sans-serif; fill: #5e4430; text-anchor: middle; pointer-events: none; }
.fp-table:hover .fp-top, .fp-table:focus-visible .fp-top { fill: #e8be84; }
.fp-table:focus-visible .fp-top { stroke: var(--berry); stroke-width: 3; }
.fp-table.is-sel .fp-top { fill: var(--berry); stroke: var(--berry-d); }
.fp-table.is-sel .fp-seat { fill: #f6b3b0; }
.fp-table.is-sel .fp-num, .fp-table.is-sel .fp-cap { fill: #fff; }
.fp-table.is-sel { animation: fpPick .45s var(--spring); transform-box: fill-box; transform-origin: center; }
.fp-table.is-busy { cursor: not-allowed; }
.fp-table.is-busy .fp-top { fill: #9b958c; stroke: #6f6a62; }
.fp-table.is-busy .fp-seat { fill: #8a857e; }
.fp-table.is-busy .fp-num, .fp-table.is-busy .fp-cap { fill: #efeae2; }
@keyframes fpPick { 40% { transform: scale(1.08); } }
.fp-panel { fill: #8d9099; }
.fp-pot { fill: #26272c; }
.fp-bag { fill: #c9a36a; }
.fp-fan { fill: none; stroke: #1b1c20; stroke-width: 2; }
.fp-fan-x { stroke: #1b1c20; stroke-width: 1.6; }
.fp-book { fill: #17181d; }
.fp-book-row { stroke: #b77f4a; stroke-width: 3; stroke-dasharray: 3 2; }
.fp-cabinet { fill: #1d1e24; }
.fp-fridge { fill: #1b1c22; }
.fp-fridge-glow { fill: #dff4ff; opacity: .85; }
.fp-ledge { fill: #c9a86a; }
.fp-label--sm { font-size: 9px; }
.fp-table .fp-seat--stool { fill: #d8d6d0; }
.fp-door-leaf { stroke: #c9a24a; stroke-width: 3; stroke-linecap: round; }
.fp-table .fp-seat-hi { fill: #fff; opacity: .25; pointer-events: none; }
.fp-table .fp-chair-back { fill: none; stroke: #2e3036; stroke-width: 6.5; stroke-linecap: round; transition: stroke .2s; }
.fp-table .fp-seat:not(.fp-seat--sofa) { stroke: #2e3036; stroke-width: 1.8; }
.fp-table.is-sel .fp-chair-back { stroke: var(--berry-d); }
.fp-table.is-busy .fp-chair-back { stroke: #6a655e; }
.fp-kitchen { fill: #24262e; }
.fp-kitchen-lines { stroke: #3a3d47; stroke-width: 2; }
.fp-window { fill: #bfe3f2; stroke: #1b1c22; stroke-width: 1.5; }
.fp-window-bar { stroke: #1b1c22; stroke-width: 1.5; }
.fp-tag { fill: #c9a24a; }
.fp-label--tag { fill: #2a2016; font-size: 11px; }
