/* Reservation workspace, based on the user's operational screen references. */
:root { --ops-plan:#f4f5f0; --ops-free:#22c66f; --ops-reserved:#7864ed; --ops-seated:#ffa23a; --ops-header-height:68px; }
:root[data-theme="dark"] { --bg:#181e31; --surface:#272f46; --line:#3d465d; --ink:#f0f3f8; --muted:#bcc6d9; --primary:#22c66f; --primary-hover:#1dab61; --ops-plan:#101322; }
.ops-shell { background:var(--bg); }
.ops-header { position:relative; z-index:35; display:flex; align-items:center; gap:12px; min-height:68px; padding:10px 20px; background:var(--surface); border-bottom:1px solid var(--line); }
.ops-icon { position:relative; width:44px; height:44px; min-width:44px; display:inline-flex; align-items:center; justify-content:center; gap:6px; background:transparent; border:1px solid transparent; border-radius:6px; color:var(--muted); padding:8px; }
.ops-icon:hover,.ops-icon.selected { background:var(--sage); color:var(--green); }
.ops-icon:disabled { opacity:.4; cursor:default; }
.ops-brand { display:flex; align-items:center; gap:8px; margin-right:4px; }
.ops-brand .brand-symbol { width:36px; height:36px; border-radius:9px; padding:2px; }
.ops-brand strong { font-size:18px; letter-spacing:.3px; }
.ops-views { display:flex; gap:4px; }
.ops-views .selected { color:var(--primary); background:transparent; }
.ops-views .ops-icon > span { display:none; }
.ops-date { display:flex; align-items:stretch; border:1px solid var(--line); border-radius:8px; height:44px; flex-shrink:0; }
.ops-date > .ops-icon { height:42px; border-radius:0; }
.ops-date > .ops-icon:first-child { border-right:1px solid var(--line); }
.ops-date > .ops-icon:last-child { border-left:1px solid var(--line); }
#ops-header .ops-date-label { position:relative; display:flex; flex-direction:row; align-items:center; justify-content:center; padding:0 14px; min-width:152px; height:42px; font-size:15px; font-weight:600; line-height:1; margin:0; gap:0; }
.ops-date-label > span { display:inline-flex; align-items:center; gap:10px; white-space:nowrap; }
#ops-header .ops-date-label small { display:inline; color:var(--muted); text-transform:uppercase; font-size:12px; font-weight:500; line-height:1; margin:0; }
.ops-date-label:focus-within { box-shadow:inset 0 0 0 2px var(--primary); }
#ops-header .ops-date-label input { position:absolute; inset:0; width:100%; height:100%; min-height:0; padding:0; margin:0; opacity:0; cursor:pointer; }
.ops-time-picker { position:relative; border-left:1px solid var(--line); }
.ops-time-picker summary { list-style:none; height:42px; width:auto; min-width:92px; padding:0 12px; gap:8px; cursor:pointer; color:var(--ink); border:0; border-radius:0; font-size:15px; font-variant-numeric:tabular-nums; }
.ops-time-picker summary .icon { width:18px; height:18px; }
.ops-time-picker[open] summary { background:var(--sage); }
.ops-date > .ops-icon:first-child { border-radius:7px 0 0 7px; }
.ops-date > .ops-icon:last-child { border-radius:0 7px 7px 0; }
.ops-time-picker summary::-webkit-details-marker,.ops-columns summary::-webkit-details-marker { display:none; }
.ops-dropdown { position:absolute; top:calc(100% + 8px); left:0; min-width:210px; background:var(--surface); border:1px solid var(--line); box-shadow:0 12px 30px #0004; border-radius:8px; padding:16px; z-index:50; }
.ops-time-picker .ops-dropdown { left:auto; right:0; }
.ops-dropdown label { display:block; font-size:15px; }
.ops-time-picker input { margin:8px 0 12px; }
.ops-new { min-height:44px; padding:8px 16px; }
.ops-new span { font-size:15px; }
.ops-totals { display:flex; gap:24px; margin:auto; padding:0 12px; }
.ops-totals > span { display:flex; align-items:center; gap:10px; }
.ops-totals > span > .icon { width:30px; height:30px; color:var(--primary); background:var(--sage); border-radius:50%; padding:5px; }
.ops-totals > span:nth-child(2) > .icon { color:var(--ops-seated); background:var(--amber); }
.ops-totals strong { display:block; font-size:16px; font-weight:600; white-space:nowrap; }
.ops-totals small { display:block; font-size:12px; color:var(--muted); white-space:nowrap; }
.ops-alerts i { position:absolute; top:6px; right:6px; width:7px; height:7px; border-radius:50%; background:var(--ops-seated); }
.ops-venue { margin-left:auto; min-width:0; text-align:right; }
.ops-venue strong { display:block; max-width:230px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; font-weight:600; }
.ops-venue small { display:block; color:var(--muted); font-size:12px; }
.ops-navigation { position:absolute; top:var(--ops-header-height); left:12px; z-index:45; width:280px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 12px 30px #0005; flex-direction:column; align-items:stretch; padding:12px; gap:4px; }
.ops-navigation[hidden] { display:none; }
.ops-navigation .nav-item { color:var(--ink); font-size:16px; padding:12px; }
.ops-menu-user { border-top:1px solid var(--line); padding:12px; font-size:16px; }
.ops-menu-user small { display:block; font-size:14px; color:var(--muted); }
.simple-shell.ops-shell #main { max-width:none; }
.operational .ops-shell #main { padding:0; }
.ops-floor { display:grid; grid-template-columns:280px minmax(0,1fr); gap:16px; height:calc(100dvh - var(--ops-header-height)); padding-top:16px; }
.ops-sidebar { background:var(--surface); border-radius:6px 6px 0 0; padding:16px; overflow-y:auto; min-width:0; }
.ops-floor.sidebar-hidden { grid-template-columns:minmax(0,1fr); gap:0; }
.sidebar-hidden .ops-sidebar { display:none; }
.ops-floor-main { display:grid; grid-template-rows:minmax(0,1fr) 82px; min-width:0; min-height:0; }
.ops-plan { position:relative; min-width:0; min-height:0; background:var(--ops-plan); overflow:hidden; }
.ops-plan > .floor-viewport { position:absolute; inset:0; width:100%; height:100%; padding:24px; margin:0; overflow:hidden !important; }
.ops-plan .room-surface { margin:auto; border:0; border-radius:0; background:transparent !important; }
.ops-plan .room-wall { display:none; }
.ops-plan .plan-view-controls { right:12px; top:40%; flex-direction:column; padding:0; gap:0; background:var(--surface); border-radius:0; }
.ops-plan .plan-view-controls .icon-button { width:36px; min-width:36px; min-height:36px; border-radius:0; }
.ops-plan .plan-view-controls .icon-button + .icon-button { border-top:1px solid var(--line); }
.ops-plan .room-table { --table-fill:var(--ops-free); background:var(--ops-free); border-color:var(--ops-free); color:#08331c; border-radius:6px; }
.ops-plan .room-table.round { border-radius:50%; }
.ops-plan .table-face strong { font-weight:400; letter-spacing:.1px; }
.ops-table-visit { padding:18px 0; border-bottom:1px solid var(--line); }
.ops-visit-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ops-visit-heading .ops-guest-link { min-height:30px; min-width:0; font-size:17px; font-weight:500; color:var(--ink); }
.ops-visit-heading > span { display:flex; align-items:center; gap:4px; font-size:14px; color:var(--muted); }
.ops-visit-heading .icon { width:16px; height:16px; }
.ops-visit-phone { display:block; color:var(--muted); margin:5px 0; font-size:14px; }
.ops-visit-range,.ops-elapsed { text-align:right; color:var(--muted); font-size:14px; margin-top:8px; }
.ops-elapsed { color:var(--ops-seated); }.ops-elapsed.overdue { color:#ff727a; }
.ops-table-visit > p { margin:16px 0; font-size:15px; color:var(--muted); }
.ops-visit-controls { display:flex; align-items:center; gap:8px; margin-top:16px; flex-wrap:wrap; }
.ops-visit-controls .btn { min-height:36px; padding:6px 10px; font-size:14px; }
.ops-visit-actions { margin-top:10px; display:flex; gap:6px; flex-wrap:wrap; }
.ops-visit-actions .btn { font-size:14px; min-height:36px; padding:6px 10px; }
.ops-table-history { margin-top:20px; font-size:14px; }
.ops-table-history summary { cursor:pointer; color:var(--muted); }
.walk-in-sheet { width:min(380px,calc(100vw - 24px)); }
.walk-in-sheet .modal-header { padding:18px 20px; align-items:center; }
.walk-in-sheet .modal-header h2 { font-size:21px; margin:0; }
.walk-in-sheet .modal-body { padding:20px; gap:24px; }
.walk-in-sheet .modal-footer { padding:16px 20px; justify-content:flex-end; gap:8px; }
.service-picker { border:0; padding:0; margin:0; min-width:0; }
.service-picker legend { font-size:18px; font-weight:500; margin:0 0 14px; padding:0; }
.service-choice-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); }
.service-choice { padding:8px 2px; min-height:40px; background:transparent; border:1px solid var(--line); margin:-1px 0 0 -1px; border-radius:0; font-size:14px; color:var(--ink); }
.service-choice:hover { background:var(--line); }.service-choice.selected { background:var(--ops-reserved); color:#fff; }
.service-choice:disabled { opacity:.35; cursor:default; }.service-choice:disabled:hover { background:transparent; }
.service-hint { font-size:13px; color:var(--muted); margin:10px 0 0; }
.booking-panel { position:fixed; left:12px; top:calc(var(--ops-header-height) + 12px); bottom:12px; width:min(404px,calc(100vw - 24px)); display:flex; flex-direction:column; z-index:48; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:8px; box-shadow:8px 10px 35px #0004; overflow:hidden; }
.booking-panel .modal-header { flex:none; padding:14px 16px; align-items:center; }
.booking-panel .modal-header h2 { margin:0; font-size:19px; font-weight:500; }
.booking-panel .modal-header p { display:none; }
.booking-panel #booking-form { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
.booking-panel .modal-body { flex:1; min-height:0; overflow:auto; padding:16px; gap:14px; scrollbar-width:thin; }
.booking-panel .modal-footer { flex:none; padding:12px 16px; gap:10px; }
.booking-panel .modal-footer .primary { flex:1; font-size:14px; padding:10px; }
.booking-panel .modal-footer .ghost { font-size:14px; padding:10px 0; }
.booking-panel .form-section-label { display:none; }
.booking-panel label { font-size:14px !important; }
.booking-panel input,.booking-panel select,.booking-panel textarea { font-size:15px; min-width:0; min-height:44px; padding:10px; }
.booking-panel .form-grid { gap:12px; }
.booking-panel .form-grid.three { grid-template-columns:1.3fr .9fr; }
.booking-panel .form-grid.three > label:last-child { grid-column:1/-1; }
.booking-panel .availability-hint { font-size:13px; margin-top:-4px; }
.booking-composer-open .ops-sidebar { visibility:hidden; }
@media (max-width:650px) { .booking-panel { left:8px; right:8px; width:auto; top:calc(var(--ops-header-height) + 8px); bottom:8px; }.service-choice { min-height:42px; } }
.ops-plan .room-table.reserved { --table-fill:var(--ops-reserved); background:var(--ops-reserved); border-color:var(--ops-reserved); color:#fff; }
.ops-plan .room-table.occupied { --table-fill:var(--ops-seated); background:var(--ops-seated); border-color:var(--ops-seated); color:#39230c; }
.ops-plan .room-table.upcoming { outline:none; }
.table-guest-caption { display:none; }
.ops-plan .table-guest-caption { display:block; position:absolute; top:calc(100% + var(--chair-caption-offset,20%) + 7px); left:50%; transform:translateX(-50%); max-width:160%; font-size:14px; line-height:1.2; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; pointer-events:none; }
.ops-plan .room-table.ops-table-selected { outline:3px solid var(--ink); outline-offset:5px; }
.ops-plan .room-seat { background:var(--ops-free); border-color:#4ed695; }
.ops-plan .reserved .room-seat { background:var(--ops-reserved); border-color:#a394fc; }
.ops-plan .occupied .room-seat { background:var(--ops-seated); border-color:#ffc57f; }
.ops-plan .booth { border-width:12px 10px 3px; }
.ops-plan .room-object.object-rectangle,.ops-plan .room-object.object-bar,.ops-plan .room-object.object-kitchen { border-color:#4d505b; background:#3b3c42; color:#fff; border-radius:0; }
.ops-plan .room-object.object-text { border:0; padding:0; background:transparent; }
.ops-room-bar { position:absolute; bottom:10px; left:20px; right:58px; z-index:21; display:flex; align-items:center; gap:12px; pointer-events:none; }
.ops-rooms { display:flex; max-width:60%; overflow-x:auto; background:var(--surface); border:1px solid var(--line); pointer-events:auto; }
.ops-rooms button { padding:10px 16px; background:transparent; border:0; white-space:nowrap; color:var(--muted); min-height:44px; font-size:14px; }
.ops-rooms button.selected { background:var(--ink); color:var(--bg); }
.ops-room-bar > button { pointer-events:auto; background:var(--surface); border:1px solid var(--line); }
.ops-legend { margin-left:auto; display:flex; gap:8px; align-items:center; color:var(--muted); font-size:12px; background:var(--ops-plan); padding:6px; }
.ops-legend i { display:inline-block; width:8px; height:8px; border-radius:50%; }
.ops-legend .free { background:var(--ops-free); }.ops-legend .reserved { background:var(--ops-reserved); }.ops-legend .seated { background:var(--ops-seated); }
.ops-sidebar-toggle { position:absolute; left:0; top:50%; z-index:24; width:28px; min-width:28px; height:48px; background:var(--surface); border-radius:0 8px 8px 0; padding:3px; }
.ops-time-rail { display:flex; align-items:stretch; overflow-x:auto; overflow-y:hidden; background:var(--surface); min-width:0; scrollbar-width:thin; scrollbar-color:#8894a9 var(--surface); }
.ops-slot { flex:0 0 80px; min-height:70px; padding:8px 10px; border:1px solid var(--line); border-top:0; border-bottom:0; background:transparent; color:var(--muted); text-align:left; display:flex; flex-direction:column; gap:1px; }
.ops-slot span { font-size:12px; display:flex; align-items:center; gap:4px; }
.ops-slot .icon { width:13px; height:13px; }
.ops-slot strong { font-size:15px; }
.ops-slot.selected { border:2px solid var(--primary); color:var(--primary); padding:6px 9px; }
.ops-slot:hover { background:var(--sage); }
.ops-group-title { border:0; background:transparent; display:flex; align-items:center; gap:6px; text-align:left; padding:8px 0 14px; width:100%; }
.ops-group-title h2 { margin-right:auto; font-size:18px; font-weight:500; }
.ops-group-title > span { display:flex; align-items:center; gap:3px; color:var(--muted); font-size:12px; }
.ops-group-title span .icon { width:13px; height:13px; }
.ops-group-title > .icon { width:16px; height:16px; transform:rotate(90deg); }
.ops-guest-section { padding-bottom:12px; margin-bottom:12px; border-bottom:1px solid var(--line); }
.ops-guest-row { padding:6px 0 14px; }
.ops-guest-main { display:flex; align-items:flex-start; width:100%; gap:10px; text-align:left; border:0; padding:0; background:transparent; }
.ops-table-badge { width:42px; min-width:42px; height:42px; display:grid; place-items:center; border-radius:5px; background:#7864ed29; color:#ad9fff; font-size:16px; }
.ops-table-badge.seated,.ops-table-badge.completed { color:var(--ops-seated); background:#ffa23a25; }
.ops-guest-main > span:nth-child(2) { min-width:0; flex:1; }
.ops-guest-main strong { display:block; font-size:16px; font-weight:500; overflow-wrap:anywhere; }
.ops-guest-main small { display:block; font-size:14px; color:var(--muted); margin-top:3px; white-space:nowrap; }
.ops-party { display:flex; gap:2px; color:var(--muted); align-items:center; font-size:12px; }
.ops-party .icon { width:14px; height:14px; }
.ops-guest-row > p { font-size:14px; color:var(--muted); margin-top:10px; overflow-wrap:anywhere; }
.ops-empty { padding:5px 0 14px; color:var(--muted); font-size:14px; }
.ops-count { margin-left:auto; color:var(--muted); font-size:14px; }
.ops-sidebar-title { display:flex; align-items:center; gap:8px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.ops-sidebar-title h2 { margin-right:auto; font-size:19px; }
.ops-sidebar-title > span { color:var(--muted); font-size:14px; display:flex; align-items:center; gap:3px; }
.ops-sidebar-title span .icon { width:16px; height:16px; }
.ops-sidebar-title .ops-icon { min-width:32px; width:32px; }
.ops-table-meta { font-size:14px; margin:16px 0; color:var(--muted); }
.ops-table-schedule { margin-top:16px; }
.ops-guest-details { display:flex; flex-direction:column; gap:10px; margin-top:12px; font-size:14px; }
.ops-guest-details .row-actions { display:flex; flex-wrap:wrap; gap:6px; }
.ops-guest-details .btn { font-size:14px; padding:8px; }
.ops-table-menu { position:fixed; z-index:60; width:250px; border:1px solid var(--line); border-radius:6px; padding:8px; background:var(--surface); box-shadow:0 12px 30px #0005; }
.ops-menu-title { display:flex; align-items:center; padding-left:8px; gap:10px; font-size:16px; }
.ops-menu-title > span { color:var(--muted); font-size:14px; }
.ops-menu-title .ops-icon { margin-left:auto; width:32px; min-width:32px; height:36px; }
.ops-table-menu > button { display:flex; align-items:center; gap:12px; width:100%; min-height:44px; text-align:left; padding:10px 12px; border:0; background:transparent; border-radius:4px; font-size:15px; }
.ops-table-menu > button:hover { color:var(--green); background:var(--sage); }
.ops-menu-guest { padding:8px 12px 12px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.ops-menu-guest strong,.ops-menu-guest small { display:block; }
.ops-menu-guest small { color:var(--muted); font-size:14px; margin:4px 0 8px; }
.ops-menu-actions { border-top:1px solid var(--line); padding:8px 4px 4px; }
.ops-menu-actions .row-actions { display:flex; flex-wrap:wrap; gap:8px; }
.ops-menu-actions .btn { font-size:14px; min-height:40px; padding:8px 10px; }
.ops-table-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:16px; padding:24px 24px 80px; max-height:100%; overflow:auto; }
.ops-table-card { display:flex; flex-direction:column; gap:5px; min-height:125px; border-radius:8px; padding:14px; border:0; background:var(--ops-free); color:#08331c; text-align:left; }
.ops-table-card strong { font-size:22px; }.ops-table-card span,.ops-table-card small { font-size:14px; }
.ops-table-card.reserved { background:var(--ops-reserved); color:#fff; }.ops-table-card.seated { background:var(--ops-seated); color:#39230c; }
.ops-reservations { margin:20px 4px; background:var(--surface); border-radius:6px; }
.ops-list-tools { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:20px; min-height:80px; }
.ops-filters { display:flex; max-width:100%; }
.ops-filters label { margin:0; }
.ops-filters select { font-size:14px; min-height:38px; margin:0; padding:8px 14px; border-radius:0; max-width:190px; color:var(--muted); }
.ops-filters label:first-child select { border-radius:6px 0 0 6px; }.ops-filters label:last-child select { border-radius:0 6px 6px 0; }
.ops-filters label+label select { border-left:0; }
.ops-columns { position:relative; margin:auto; }
.ops-columns summary { cursor:pointer; list-style:none; font-size:14px; font-weight:400; }
.ops-columns summary { min-height:38px; padding:8px 18px; color:var(--muted); border-radius:4px; }
.ops-columns summary::after { content:'⌄'; margin-left:14px; font-size:16px; }
.ops-column-export { border-top:1px solid var(--line); width:100%; justify-content:flex-start; margin-top:8px; }
.ops-columns .ops-dropdown { max-height:70dvh; overflow-y:auto; }
.ops-columns .checkbox-label { display:flex; font-size:15px; margin:0; min-height:36px; }
.ops-list-search { max-width:240px; width:220px; min-width:160px; }
.ops-list-right { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.ops-list-right > .ops-icon { width:58px; min-width:58px; height:38px; border:1px solid var(--line); border-radius:4px; }
.ops-list-right .search-input { min-height:38px; padding:0 8px; }
.ops-list-right .search-input input { font-size:14px; min-width:0; }
.ops-list-right .search-input .ops-icon { min-width:28px; width:28px; height:32px; padding:5px; }
.ops-list-scroll { width:100%; overflow:auto; border-radius:0 0 6px 6px; }
.ops-reservation-table { width:100%; border-collapse:collapse; font-size:14px; font-weight:400; line-height:1.4; text-align:left; color:var(--muted); }
.ops-reservation-table thead { background:#8894ac17; }
[data-theme="dark"] .ops-reservation-table thead { background:#343d54; }
.ops-reservation-table th { padding:0; border:0; white-space:nowrap; background:transparent; color:var(--muted); }
.ops-reservation-table th button { display:flex; align-items:center; gap:3px; padding:10px 20px; min-height:44px; width:100%; text-align:left; background:transparent; border:0; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.3px; }
.ops-reservation-table th .icon { width:22px; height:22px; flex:none; }
.ops-sort-mark { font-size:12px; color:#7d8ba5; line-height:1; }.ops-sort-mark.sorted { color:var(--ink); }
.ops-reservation-table td { border:0; border-bottom:1px solid var(--line); padding:8px 20px; vertical-align:middle; }
.ops-reservation-table .ops-booking-row { height:56px; }
.ops-reservation-table .ops-booking-row:hover { background:#8894ac08; }
.ops-reservation-table tbody > tr:last-child td { border-bottom:0; }
.ops-reservation-table td > small { display:block; color:var(--muted); font-size:12px; white-space:nowrap; }
.ops-guest-link { border:0; background:transparent; color:var(--ink); text-align:left; padding:0; min-width:130px; min-height:40px; }
.ops-guest-link strong { display:block; font-size:16px; font-weight:600; color:#a899fa; }
.ops-guest-link small { display:block; color:var(--muted); font-size:13px; margin-top:2px; }
.ops-reservation-table .ops-guest-link { display:flex; flex-direction:column; justify-content:center; min-width:125px; min-height:36px; }
.ops-reservation-table .ops-guest-link strong { font-size:14px; font-weight:600; color:#9785ff; }
.ops-reservation-table .ops-guest-link small { font-size:12px; }
.ops-reservation-table .ops-status { font-size:12px; line-height:1.4; padding:3px 8px; }
.ops-reservation-table .ops-status.confirmed { background:#05bfd4; color:#052d39; }
.ops-reservation-table .ops-list-party { font-size:14px; }
.ops-reservation-table .ops-col-party > small { display:none; }
.ops-visit-time,.ops-created { white-space:nowrap; }
.ops-list-party { display:flex; gap:4px; align-items:center; }
.ops-list-party .icon { width:17px; height:17px; color:var(--muted); }
.ops-status { display:inline-block; padding:4px 8px; font-size:13px; font-weight:600; line-height:1.4; border-radius:4px; white-space:nowrap; background:var(--line); color:var(--ink); }
.ops-status.pending { background:#5e49be; color:#fff; }
.ops-status.confirmed { background:#047e98; color:#fff; }
.ops-status.seated { background:#ffa23a; color:#3a2306; }
.ops-status.waiting { background:#5145aa; color:#fff; }
.ops-status.booked { background:#196340; color:#d3ffe6; }
.ops-status.cancelled,.ops-status.no_show { background:#713b48; color:#ffdbe2; }
.ops-status.completed { background:#384558; color:#dde5f0; }
.ops-table-tag { min-width:34px; min-height:36px; border:1px solid var(--line); border-radius:4px; background:transparent; padding:5px 9px; font-size:14px; font-weight:400; color:var(--muted); }
.ops-col-note { min-width:170px; max-width:260px; overflow-wrap:anywhere; }
.ops-col-zone,.ops-col-responsible,.ops-col-source { min-width:120px; }
.ops-col-actions .row-actions { gap:6px; display:flex; flex-wrap:wrap; min-width:160px; }
.ops-col-actions .btn { font-size:14px; padding:8px 10px; }
.ops-col-actions .edit-booking { color:var(--muted); }
.ops-guest-tag { display:inline-block; background:var(--sage); color:var(--green); padding:3px 6px; margin:2px; border-radius:4px; white-space:nowrap; }
.ops-deposit { border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--ink); padding:5px 9px; min-height:34px; white-space:nowrap; font-size:14px; }
.ops-col-deposit > .ops-icon { border:1px solid var(--line); border-radius:4px; width:34px; min-width:34px; height:34px; padding:6px; }
.ops-deposit.paid { color:var(--green); }
.ops-reservation-table .ops-day-group td { padding:16px 20px; font-size:14px; color:var(--ink); }
.ops-day-group td > span { display:inline-flex; align-items:center; gap:4px; margin-left:7px; }
.ops-day-group .icon,.ops-hour-group .icon { width:15px; height:15px; }
.ops-reservation-table .ops-hour-group td { padding:12px 20px; color:#8b9bb7; background:transparent; font-size:14px; }
.ops-hour-group td > strong { font-weight:600; }
.ops-hour-group span { display:inline-flex; align-items:center; gap:4px; margin-left:7px; }
.ops-wait-actions { display:flex; gap:6px; align-items:center; }
.ops-wait-actions .btn { font-size:14px; padding:8px 12px; }
.ops-list-empty { padding:40px; text-align:center; }
.ops-list-empty p { color:var(--muted); margin:10px 0 20px; }
.ops-notifications button { display:block; border:0; border-bottom:1px solid var(--line); width:100%; padding:16px; background:transparent; text-align:left; }
.ops-notifications strong,.ops-notifications small { display:block; }.ops-notifications small { color:var(--muted); margin-top:4px; font-size:14px; }
[data-theme="light"] .ops-guest-link strong { color:#5943b3; }
[data-theme="light"] .ops-table-badge { color:#5943b3; }
[data-theme="light"] .ops-table-badge.seated { color:#985400; }
@media (max-width:1500px) { .ops-new span { display:none; }.ops-totals { gap:14px; padding:0; }.ops-venue strong { max-width:190px; }.ops-brand strong { font-size:16px; } }
@media (max-width:1150px) { .ops-brand strong { display:none; }.ops-header { gap:8px; padding:10px 12px; }.ops-totals { gap:12px; }.ops-venue { max-width:150px; }.ops-venue strong { max-width:150px; }.ops-totals small { font-size:12px; }.ops-legend { display:none; } }
@media (min-width:901px) and (max-width:1100px) {
  .ops-header { flex-wrap:wrap; }
  .ops-header::after { content:""; flex-basis:100%; height:0; order:3; }
  .ops-date { order:4; }.ops-new { order:5; }.ops-totals { order:6; margin:0 0 0 auto; }
  .ops-header .ops-search { margin-left:auto; }.ops-venue { margin-left:0; }
}
@media (max-width:900px) { .ops-header { flex-wrap:wrap; }.ops-brand strong { display:block; }.ops-date { order:4; }.ops-new { order:5; }.ops-totals { order:6; margin:0 0 0 auto; }.ops-header .ops-search { margin-left:auto; }.ops-venue { margin-left:0; }.ops-floor { grid-template-columns:240px minmax(0,1fr); gap:10px; }.ops-sidebar { padding:12px; }.ops-group-title h2 { font-size:17px; }.ops-group-title > span { display:none; }.ops-list-tools { padding:16px; }.ops-list-search { width:100%; max-width:none; order:5; }.ops-reservations { margin:16px; } }
@media (max-width:650px) {
  .ops-header { padding:8px; gap:4px; }.ops-brand { margin:0; }.ops-brand strong { display:none; }.ops-brand .brand-symbol { width:32px; height:32px; }.ops-venue { max-width:110px; }.ops-venue strong { max-width:110px; font-size:13px; }.ops-venue small { font-size:11px; }.ops-header .ops-search { display:none; }.ops-header .ops-alerts { margin-left:auto; }.ops-views { gap:0; }#ops-header .ops-date-label { min-width:125px; padding:0 8px; }.ops-time-picker summary { min-width:82px; padding:0 8px; }.ops-date { margin-top:4px; }.ops-totals { display:none; }.ops-new { margin:4px 0 0 auto; padding:8px 12px; }
  .ops-floor { grid-template-columns:minmax(0,1fr); gap:0; padding-top:8px; }.ops-sidebar { position:absolute; top:calc(var(--ops-header-height) + 8px); bottom:82px; left:0; width:260px; z-index:30; box-shadow:8px 0 20px #0003; }.ops-floor:not(.sidebar-hidden) .ops-sidebar-toggle { left:260px; z-index:31; }.ops-floor .ops-sidebar-toggle { top:40%; }.ops-floor-main { grid-column:1; }.ops-room-bar { left:12px; right:50px; gap:8px; }.ops-rooms { max-width:calc(100% - 52px); }.ops-rooms button { padding:10px 12px; }.ops-plan > .floor-viewport { padding:20px; }.ops-plan .plan-view-controls { right:8px; }.ops-reservations { margin:8px; }.ops-filters { width:100%; }.ops-filters label { min-width:0; flex:1; }.ops-filters select { max-width:none; width:100%; padding:8px; }.ops-columns { margin:0 auto 0 0; }.ops-reservation-table td,.ops-reservation-table th button { padding:12px; }.ops-table-menu { max-width:calc(100vw - 16px); }
}
@media print { .ops-header,.ops-navigation,.ops-list-tools,.ops-col-actions,#dialog,#toast,.skip-link { display:none !important; }body,.ops-shell,.ops-reservations { color:#111 !important; background:#fff !important; }.ops-reservations { margin:0; }.ops-list-scroll { overflow:visible; }.ops-reservation-table { font-size:10px; }.ops-reservation-table td,.ops-reservation-table th button { padding:5px; font-size:10px; color:#111; }.ops-guest-link strong,.ops-guest-link small,.ops-hour-group td { color:#111 !important; }.ops-status { color:#111; background:#eee; white-space:normal; }.ops-guest-link { min-width:0; }.ops-guest-link strong { font-size:12px; }.ops-col-note,.ops-col-zone,.ops-col-responsible,.ops-col-source { min-width:0; }.ops-reservations { border:0; } }
@page { size:A4 landscape; margin:10mm; }
