.booking-workspace{max-width:1100px;margin:auto}.booking-notice{padding:1rem 1.2rem;background:#302719;border:1px solid #8f713c;border-radius:12px;color:#f8e4b9}.booking-error,.errorlist{color:#ffafa5}.errorlist{list-style:none;padding:0}.booking-selection,.booking-create,.booking-summary,.booking-actions,.booking-cancel{margin:1.3rem 0;padding:1.4rem}.booking-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:end}.booking-field{display:flex;flex-direction:column;gap:.5rem;min-width:0}.booking-field label{font-weight:600}.booking-field input,.booking-field select,.booking-field textarea{box-sizing:border-box;width:100%;min-width:0;min-height:46px;padding:.75rem;border:1px solid #665c4c;border-radius:8px;background:#151515;color:#fff;font:inherit;color-scheme:dark}.booking-fields>.button{grid-column:1/-1;justify-self:start}.booking-personal{grid-template-columns:1fr 1fr;margin:1.5rem 0}.booking-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem}.booking-map{position:relative;min-height:590px;background:linear-gradient(135deg,#282621,#1d1d1d);border:2px solid #5c5547;border-radius:16px;margin:1rem 0}.booking-table{position:absolute;left:var(--table-x);top:var(--table-y);width:110px;cursor:pointer}.booking-table input{position:absolute;opacity:0}.booking-table span{display:flex;flex-direction:column;gap:.25rem;box-sizing:border-box;padding:.8rem .4rem;text-align:center;border:2px solid #a08c58;border-radius:12px;background:#252d26;color:#f5f5ef;transition:background .15s,border .15s}.booking-table small{font-size:.7rem}.booking-table input:checked+span{border:3px solid #f8d579;background:#595035}.booking-table input:checked+span:after{content:'✓ Выбран';font-size:.75rem}.booking-table input:focus-visible+span{outline:3px solid #fff;outline-offset:4px}.booking-table.unavailable{cursor:default}.booking-table.unavailable span{border-color:#555;color:#bbb;background:repeating-linear-gradient(45deg,#242424,#242424 7px,#303030 7px,#303030 14px)}.booking-empty{padding:2rem}.booking-summary dl{display:grid;grid-template-columns:150px 1fr;gap:.7rem}.booking-summary dt{color:#c1b9aa}.booking-summary dd{margin:0;overflow-wrap:anywhere}.booking-actions{display:flex;flex-wrap:wrap;gap:1rem}.booking-actions h2{width:100%}.booking-actions input[type=hidden]{display:none}.booking-record{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0;padding:1.3rem}.booking-record h2{margin:.3rem 0}.booking-state{display:inline-block;padding:.35rem .65rem;border-radius:8px;background:#32382a}.state-cancelled{background:#3b2929}.state-arrived{background:#294036}.booking-cancel{border-color:#74514a}.booking-field textarea{resize:vertical;font-size:.8rem}
.booking-workspace .page-heading{padding-top:2.5rem;padding-bottom:1.5rem}.booking-workspace .page-heading h1{font-size:clamp(2rem,5vw,4.5rem)}.booking-workspace h2{font-size:1.65rem}
.booking-occupancy{display:grid;gap:1rem;margin:1rem 0}.booking-table-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.booking-table-link{display:flex;flex-direction:column;gap:.4rem;padding:1rem;border:1px solid var(--accent);border-radius:10px;color:inherit;text-decoration:none}.booking-table-link.state-confirmed{background:#66521c44}.booking-table-link.state-arrived{background:#28583d66}.booking-table-link.table-free{border-color:#6d9f7b}.booking-table-link.table-disabled{opacity:.6;border-color:#777}
@media(max-width:650px){.booking-fields{grid-template-columns:1fr 1fr}.booking-personal,.booking-record{grid-template-columns:1fr}.booking-selection,.booking-create,.booking-summary{padding:1rem}.booking-map{min-height:0;padding:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.booking-table{position:static;width:auto}.booking-summary dl{grid-template-columns:1fr}.booking-summary dd{margin-bottom:.6rem}.booking-workspace .page-heading h1{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.booking-table span{transition:none}}

.room-heading h3{margin:.8rem 0}.room-scroll{overflow:auto;overscroll-behavior:contain;background:#dce1eb;border-radius:4px;margin:1rem 0}.room-plan{position:relative;min-width:507px;max-width:650px;margin:auto;line-height:0}.room-plan[data-zone=karaoke]{min-width:400px;max-width:450px}.room-plan[data-zone=terrace]{min-width:320px;max-width:400px}.room-drawing{display:block;width:100%;height:auto}.plan-table{position:absolute;transform:translate(-50%,-50%);width:70px;cursor:pointer;line-height:1.1}.plan-table input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.plan-table>span{display:flex;flex-direction:column;align-items:center;gap:1px;box-sizing:border-box;padding:3px 2px;min-height:42px;border:2px solid #20bf2a;border-radius:0;background:#159c2c;color:white;text-align:center}.plan-table strong{font-size:15px}.plan-table small{font-size:10px;white-space:nowrap}.plan-table input:checked+span{outline:3px solid #f0be53;outline-offset:2px}.plan-table input:checked+span strong:after{content:" ✓";font-size:12px}.plan-table input:focus-visible+span{outline:3px solid #0f5190;outline-offset:4px}.plan-table.unavailable{cursor:default}.plan-table.unavailable>span{border-color:#868b91;background:#747b84;color:#eee}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.room-note{font-size:.85rem;color:#c9c5b9}.table-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:1rem 0}.table-options .booking-table{position:static;width:auto}
@media(max-width:650px){.room-scroll{max-height:76vh}.room-plan{margin:0}}

/* Гостевой выбор: схема следует за параметрами, контакты остаются на месте. */
.booking-hours{margin:1rem 0 .5rem;color:var(--muted);font-size:.9rem;line-height:1.5}
.booking-selection-status{margin:.8rem 0 0;color:var(--accent);font-size:.9rem}
.booking-selection-status:empty{display:none}
[data-refresh-tables][hidden],[data-selected-table][hidden]{display:none!important}
[data-refresh-tables]{margin-top:.8rem}
[data-table-picker][data-stale]{opacity:.55}
.booking-contacts{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.5rem}
.booking-contacts h2{margin:0}
.booking-personal{margin:1rem 0}
.booking-choice{padding:.8rem 1rem;border:1px solid var(--accent);border-radius:8px;color:var(--accent);line-height:1.5}
.booking-visit-summary{font-size:.9rem;color:var(--muted)}
.room-plan,.room-plan[data-zone=karaoke],.room-plan[data-zone=terrace]{min-width:0;width:100%}
.plan-table{width:clamp(54px,14%,78px)}
.plan-table.deposit-table{width:clamp(76px,20%,104px)}
.plan-table>span{min-height:44px;padding:4px 2px}
.plan-table .table-deposit{font-size:10px;font-weight:700;white-space:normal}
.table-deposit>span{display:block}
[data-booking-submit]:disabled{opacity:.55;cursor:wait}
@media(max-width:650px){.room-plan{margin:auto}.room-scroll{max-height:none}.booking-create{padding:.8rem}.plan-table strong{font-size:14px}.plan-table small{font-size:9px}.booking-contacts{margin-top:1rem;padding-top:1rem}}
@media(max-width:380px){.booking-selection .booking-field:nth-child(-n+2){grid-column:1/-1}}
@media(max-width:380px){.room-plan[data-zone=terrace] .plan-table:last-child{transform:translate(-50%,calc(-50% + 12px))}}

.booking-record .booking-state{display:table;margin-bottom:12px}
.booking-record a{overflow-wrap:anywhere}
@media(max-width:380px){.booking-fields{grid-template-columns:1fr}}
