/* Structure from saved NBI screens; current deep-plum skin is preserved. */
.nbi-service-view-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:0 0 18px;padding-bottom:9px}
.nbi-service-view-tabs button{font:inherit;min-height:40px;padding:8px 14px;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:5px;cursor:pointer}
.nbi-service-view-tabs button:hover{background:#301023;color:var(--foreground)}
.nbi-service-view-tabs button[aria-current=page]{background:#39162d;border-color:#6d3b58;color:#f0d8e8}
.nbi-day-disclosure{display:flex;align-items:center;gap:7px;background:none;border:0;padding:0;color:var(--muted);font:inherit;text-align:left;cursor:pointer}
.nbi-today-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}
.nbi-today-heading .nbi-greeting{margin:0}.nbi-today-view-actions{display:flex;gap:8px;flex-shrink:0}
.nbi-toolbar-compact .nbi-date-controls{gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden}
.nbi-toolbar-compact .nbi-date-controls>button{border:0;border-radius:0;width:36px;min-height:38px;background:transparent}
.nbi-toolbar-compact .nbi-date-input{position:relative;display:flex;align-items:center;justify-content:center;min-width:116px;border-inline:1px solid var(--border);padding:0 8px}
.nbi-toolbar-compact .nbi-date-input input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.nbi-toolbar-compact .nbi-date-input:focus-within{outline:2px solid var(--ring);outline-offset:-2px}
.nbi-date-label{font-size:12px;white-space:nowrap}.nbi-toolbar-compact{gap:8px;margin-bottom:16px}
.nbi-toolbar-compact>.nbi-button{min-height:40px;padding:8px 11px}.nbi-runsheet-link{margin-left:auto}
.nbi-closed-state{min-height:calc(100dvh - 250px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.nbi-closed-state>span{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#36132c;color:#a74682;margin-bottom:10px}
.nbi-closed-state h2{font-size:16px;font-weight:550;margin:0}.nbi-closed-state p{font-size:13px;color:var(--muted);margin:0}
.nbi-diary-service-counts{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:6px;overflow-x:auto;margin-bottom:14px}
.nbi-diary-service-counts button{flex:1 0 100px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--muted);min-height:69px;padding:9px 14px;font:inherit;cursor:pointer}
.nbi-diary-service-counts button:last-child{border-right:0}.nbi-diary-service-counts button[aria-pressed=true]{background:#361329;color:#eed9e7}
.nbi-diary-service-counts span,.nbi-diary-service-counts strong,.nbi-diary-service-counts small{display:block}.nbi-diary-service-counts span{font-size:11px}.nbi-diary-service-counts strong{font-weight:600;font-size:17px;margin:3px 0}.nbi-diary-service-counts small{font-size:11px}
.nbi-diary-filter-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}
.nbi-view-filters{display:contents}.nbi-view-filters>summary{display:none}.nbi-diary-panel-toggle{display:none}
.nbi-diary-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start;min-width:0}
.nbi-diary-panel{border:1px solid var(--border);border-radius:7px;overflow:hidden;min-width:0;background:#220918}
.nbi-diary-queue-counts{display:flex;border-bottom:1px solid var(--border)}
.nbi-diary-queue-counts button{flex:1;min-width:0;display:grid;gap:5px;padding:12px 4px;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent;cursor:pointer;font:inherit}
.nbi-diary-queue-counts button[aria-pressed=true]{background:#301024;border-bottom-color:#a95087;color:#ecd4e4}.nbi-diary-queue-counts strong{font-size:16px;font-weight:550}.nbi-diary-queue-counts span{font-size:9px;text-transform:uppercase}
.nbi-diary-search{display:flex;align-items:center;gap:7px;padding:9px 10px;border-bottom:1px solid var(--border);color:var(--muted)}
.nbi-diary-search input{min-width:0;width:100%;min-height:32px;padding:4px 0;font:inherit;color:var(--foreground);border:0;background:transparent}
.nbi-diary-booking-cards{max-height:560px;overflow:auto}.nbi-diary-booking-card{display:flex;align-items:center;gap:8px;width:100%;min-height:78px;border:0;border-bottom:1px solid var(--border);padding:11px 10px;background:transparent;color:var(--foreground);text-align:left;cursor:pointer;font:inherit}
.nbi-diary-booking-card:hover{background:#301024}.nbi-diary-booking-card:last-child{border-bottom:0}.nbi-diary-booking-card>.nbi-status{max-width:68px;font-size:9px;padding:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.nbi-diary-card-copy{min-width:0;flex:1;display:grid;gap:4px}.nbi-diary-card-copy strong{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nbi-diary-card-copy small{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nbi-diary-card-party{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;width:30px;font-size:11px;flex-shrink:0}.nbi-diary-card-party small{width:100%;text-align:center;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nbi-diary-no-matches{padding:22px 14px;color:var(--muted);font-size:12px;margin:0}.nbi-diary-timeline{min-width:0}.nbi-diary .nbi-timeline-scroll{margin-top:0}.nbi-timeline-section{padding:6px 12px;background:#321124;border-bottom:1px solid var(--border);color:#c7abbc;font-size:11px}
.nbi-diary-drag-hint{font-size:11px;line-height:1.6;color:var(--muted);margin:11px 0}.nbi-table-track .nbi-track-label{white-space:normal}
.nbi-floor-table{gap:4px;justify-content:center}.nbi-floor-table strong{font-size:17px;line-height:22px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nbi-floor-table .nbi-table-guest{font-size:10px}.nbi-floor-table .nbi-table-timing{display:block!important;color:inherit;font-size:10px!important;white-space:nowrap}
.nbi-live-table.overdue{border-color:#a65a67;background:#411c26;color:#f1c0c8}.nbi-table-legend .nbi-legend-overdue:before{background:#a65a67}.nbi-legend-overdue{color:#e3a3ad}
.nbi-runsheet-columns{position:relative}.nbi-runsheet-columns>summary{list-style:none;min-height:40px;padding:10px 12px;border:1px solid var(--border);border-radius:5px;cursor:pointer;font-size:12px}.nbi-runsheet-columns>summary::-webkit-details-marker{display:none}
.nbi-runsheet-columns fieldset{position:absolute;right:0;z-index:5;top:44px;min-width:180px;background:#280b1c;border:1px solid #654154;border-radius:6px;padding:12px;box-shadow:0 8px 24px #09000777}.nbi-runsheet-columns legend{font-size:11px;color:var(--muted);padding:0 4px}.nbi-runsheet-columns label{display:flex;align-items:center;gap:9px;min-height:35px;font-size:12px}.nbi-runsheet-columns input{width:16px;height:16px;accent-color:#a84d86}
.nbi-empty-tables{min-height:40px;gap:8px;font-size:12px}.nbi-empty-tables input{width:16px;height:16px}.nbi-runsheet-summary{color:var(--muted);font-size:12px;margin:0 0 16px}.nbi-runsheet-table td{min-width:80px;max-width:250px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.nbi-runsheet-table td:nth-child(4){min-width:150px}.nbi-empty-table-row{color:var(--muted)}
@media(max-width:1023px){.nbi-diary-layout{grid-template-columns:minmax(0,1fr)}.nbi-diary-panel{display:none}.nbi-diary-layout.panel-open .nbi-diary-panel{display:block}.nbi-diary-panel-toggle{display:inline-flex}.nbi-diary-booking-cards{max-height:300px}.nbi-today-view-actions{display:none}}
@media(max-width:639px){.nbi-service-view-tabs{display:none}.nbi-page-diary .nbi-main,.nbi-page-live .nbi-main{padding-top:8px}.nbi-today-toolbar{display:none}.nbi-today-filters-open .nbi-today-toolbar{display:block}.nbi-today-heading{margin-bottom:24px}.nbi-day-disclosure{font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:12px}.nbi-today-heading .nbi-greeting{font-size:23px;line-height:1.4}.nbi-toolbar-compact .nbi-date-input{min-width:104px}.nbi-toolbar-compact .nbi-date-controls>button{width:30px}.nbi-toolbar-compact{gap:7px}.nbi-now-button{display:none}.nbi-closed-state{min-height:calc(100dvh - 184px)}.nbi-diary-service-counts button{flex-basis:85px;min-height:63px;padding:8px}.nbi-view-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.nbi-view-filters>summary{display:block;min-height:40px;padding:10px 12px;border:1px solid var(--border);border-radius:5px;cursor:pointer;font-size:12px}.nbi-view-filters:not([open])>*:not(summary){display:none}.nbi-view-filters[open]{width:100%}.nbi-view-filters .nbi-inline-field{display:flex;width:100%;justify-content:space-between;gap:8px}.nbi-view-filters .nbi-inline-field select{min-width:0;flex:1}.nbi-diary-filter-row{gap:8px}.nbi-diary-panel-toggle{margin-left:auto;min-height:40px;font-size:12px;padding:8px 10px}.nbi-diary-service-counts strong{font-size:16px}.nbi-run-sheet .nbi-filters>.nbi-inline-field{width:100%;justify-content:space-between}.nbi-run-sheet .nbi-filters>.nbi-inline-field :is(input,select){flex:1;min-width:0;max-width:none}.nbi-runsheet-columns fieldset{left:0;right:auto}.nbi-runsheet-table{min-width:1050px}}
@media print{.nbi-service-view-tabs,.nbi-runsheet-columns,.nbi-empty-tables,.nbi-diary-drag-hint{display:none!important}.nbi-runsheet-summary{color:#444}.nbi-runsheet-table{font-size:9px;min-width:0}.nbi-runsheet-table td{font-size:9px;min-width:0!important;max-width:none}.nbi-diary-panel{display:none}.nbi-diary-layout{display:block}}
.nbi-toolbar-compact .nbi-date-input{width:116px}.nbi-toolbar-compact .nbi-date-controls>.nbi-icon-button{min-width:0;height:38px;padding:0}.nbi-bottom-tabs button[aria-current=page]{background:transparent;color:#b05a92}
@media(max-width:639px){.nbi-toolbar-compact .nbi-date-input{width:104px}.nbi-now-button{display:inline-flex}}
@media(max-width:399px){.nbi-now-button{display:none}}

@media(min-width:640px){.nbi-day-disclosure{display:none}}@media(max-width:639px){.nbi-desktop-day-label{display:none}}
@media(min-width:640px){.nbi-view-filters[open]>.nbi-inline-field{display:inline-flex;vertical-align:middle;margin-right:12px}.nbi-view-filters[open]>.nbi-button{vertical-align:middle}}
.nbi-timeline-booking.nbi-status-confirmed{background:#422b20;border-color:#876143;color:#efdbbf}.nbi-timeline-booking.nbi-status-arrived{background:#4a351c;border-color:#92713f;color:#f0ddaa}.nbi-timeline-booking.nbi-status-seated{background:#3f294d;border-color:#806093;color:#ead6f4}

.nbi-mobile-service-counts{display:none}.nbi-desktop-service-counts .nbi-diary-service-counts{margin:0;border:0;border-radius:0;border-bottom:1px solid var(--border)}.nbi-desktop-service-counts .nbi-diary-service-counts button{min-width:0;flex:1 1 0;padding:8px 4px}
@media(max-width:1023px){.nbi-mobile-service-counts{display:block}.nbi-desktop-service-counts{display:none}}
.nbi-blockout-band { position:absolute; inset-block:0; z-index:0; background:repeating-linear-gradient(135deg,rgba(192,115,158,.22) 0 7px,rgba(192,115,158,.05) 7px 14px); border-inline:1px solid rgba(211,145,180,.45); overflow:hidden; color:#e3b9d1; }
.nbi-blockout-band > span { display:block; margin:4px 6px; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nbi-blockout-band:focus-visible { outline:2px solid #e4a4cd; outline-offset:-2px; }
.nbi-timeline-booking { z-index:1; }
.nbi-blockout-legend { color:var(--nbi-muted,#b39baa); font-size:12px; margin-top:10px; }
.nbi-diary-queue-counts { grid-template-columns:repeat(4,minmax(0,1fr)); }
.nbi-diary-queue-counts span { white-space:normal; }

/* Shared operating panel and compact navigation; physical floor coordinates stay unchanged. */
.nbi-live-main { min-width:0; }
.nbi-floor-table strong { white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:20px; }
.nbi-floor-table.availability-unknown { background:var(--card);border-color:var(--border);color:var(--muted); }
.nbi-diary-card-party { width:44px; }
.nbi-diary-card-party small { white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical; }
.nbi-live-layout.no-panel { grid-template-columns:minmax(0,1fr); }
.nbi-live-layout .nbi-view-heading { margin-top:0; }
.nbi-live-panel-toggle { margin:0 0 14px; }
.nbi-floor-sections { display:flex;flex-wrap:wrap;gap:7px;margin:12px 0;align-items:center; }
.nbi-floor-sections button[aria-pressed=true] { background:var(--nbi-accent-soft);border-color:#78536b; }
.nbi-floor-sections button { max-width:100%;white-space:normal;overflow-wrap:anywhere; }
.nbi-floor-sections span { color:var(--muted);font-size:12px; }
.nbi-service-not-scheduled { padding:12px;border:1px solid var(--border);border-radius:6px;margin-bottom:14px; }
.nbi-service-not-scheduled p { color:var(--muted);font-size:13px;line-height:1.5; }
.nbi-operating-shortcuts { position:relative;max-width:100%; }
.nbi-operating-shortcuts>summary { cursor:pointer;list-style:none;min-height:44px; }
.nbi-operating-shortcuts>summary::-webkit-details-marker { display:none; }
.nbi-operating-shortcuts>summary[aria-disabled=true] { opacity:.5;cursor:default; }
.nbi-operating-shortcut-menu { position:absolute;top:calc(100% + 5px);left:0;z-index:20;min-width:210px;max-width:calc(100vw - 48px);padding:6px;background:var(--card);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 20px #0005; }
.nbi-operating-shortcut-menu button { display:block;width:100%;min-height:44px;padding:10px;text-align:left;white-space:normal; }
.nbi-operating-shortcut-menu button:hover:not(:disabled) { background:var(--nbi-accent-soft); }
.nbi-operating-shortcuts>summary:focus-visible { outline:2px solid var(--accent);outline-offset:3px; }
@media(max-width:639px) { .nbi-live-layout { gap:12px; }.nbi-operating-shortcuts>summary { font-size:12px;padding:8px 10px; }.nbi-operating-shortcut-menu { position:static;min-width:0;max-width:100%;margin-top:6px; }.nbi-operating-shortcuts[open] { flex-basis:100%; }.nbi-floor-sections button { min-height:44px; } }
.nbi-checks-panel { margin:14px 0; border-top:1px solid var(--nbi-border,#472333); padding-top:12px; }
.nbi-checks-panel > summary { cursor:pointer; font-size:13px; color:#d6bccb; min-height:28px; }
.nbi-checks-panel article { border-top:1px solid var(--nbi-border,#472333); padding-block:10px; }
.nbi-checks-panel ul { margin:6px 0; padding-left:20px; font-size:13px; }
.nbi-checks-error { border:1px solid #946476; padding:12px; margin-block:12px; }
.nbi-checks-loading { margin-block:12px; font-size:12px; }
.nbi-floor-time { display:flex; gap:10px; align-items:center; font-size:13px; margin-block:10px; }
.nbi-floor-time input, .nbi-floor-time select { color:inherit; background:#210c19; border:1px solid #533244; padding:8px; border-radius:4px; min-width:112px; }
.nbi-live-table.is-blocked { background:repeating-linear-gradient(135deg,#67344f 0 7px,#3b1d2f 7px 14px); border-color:#c28aad; }
.nbi-table-block-name { display:block; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.nbi-table-legend .nbi-legend-blocked::before { background:repeating-linear-gradient(135deg,#a8668c 0 3px,#523348 3px 6px); }
@media(max-width:639px) { .nbi-floor-time { flex-wrap:wrap; } .nbi-checks-panel article { overflow-wrap:anywhere; } }

/* Shared table-move review: actual arrangement, checked destination, recovery. */
.reservation-move-dialog{max-width:650px;width:calc(100% - 32px);padding:0}
.reservation-move-dialog>header{padding:12px 20px;margin-bottom:0}.reservation-move-dialog>header button{margin-right:0}
.reservation-move-body{display:grid;gap:14px;padding:20px;min-width:0}
.reservation-move-body p{margin:0}.reservation-move-guest{display:flex;justify-content:space-between;align-items:baseline;gap:12px;overflow-wrap:anywhere}.reservation-move-guest span{white-space:nowrap;color:var(--muted);font-size:13px}
.reservation-move-fields{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;border:0;margin:0;padding:0;min-width:0}.reservation-move-fields .nbi-field{margin:0;min-width:0}.reservation-move-fields select{width:100%;min-width:0}
.reservation-move-comparison{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:10px;align-items:stretch}.reservation-move-comparison section{padding:14px;border:1px solid var(--border);border-radius:6px;background:#321225;min-width:0;overflow-wrap:anywhere}.reservation-move-comparison h3{margin:0 0 8px;color:var(--muted);font-size:12px;font-weight:600}.reservation-move-comparison strong{font-size:15px}.reservation-move-comparison dl{display:grid;gap:7px;margin:12px 0 0}.reservation-move-comparison dl div{display:grid;grid-template-columns:50px minmax(0,1fr);gap:6px;font-size:12px;line-height:1.5}.reservation-move-comparison dt{color:var(--muted)}.reservation-move-comparison dd{margin:0}.reservation-move-arrow{align-self:center;color:#c982b0}
.reservation-move-capacity{font-size:13px;color:var(--muted)}.reservation-move-capacity.is-unavailable{color:#f3afbb}.reservation-move-check{border-top:1px solid var(--border);padding-top:14px;font-size:13px;line-height:1.6;overflow-wrap:anywhere;min-height:42px}.reservation-move-check ul{margin:6px 0 0;padding-left:20px}.reservation-move-check .nbi-error{margin-top:10px}.reservation-move-staff{font-size:12px;color:var(--muted)}.reservation-move-staff strong{margin-left:8px;color:var(--foreground)}.reservation-move-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:4px;flex-wrap:wrap}.reservation-move-actions>button:first-child{margin-right:auto}
@media(max-width:639px){.reservation-move-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 24px);padding:0}.reservation-move-dialog>header{padding:12px 16px}.reservation-move-body{padding:16px;gap:12px}.reservation-move-fields{grid-template-columns:minmax(0,1fr)}.reservation-move-comparison{grid-template-columns:minmax(0,1fr);gap:8px}.reservation-move-arrow{justify-self:center;transform:rotate(90deg)}.reservation-move-comparison section{padding:12px}.reservation-move-comparison dl{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.reservation-move-comparison dl div{grid-template-columns:minmax(0,1fr)}.reservation-move-comparison dt{font-size:11px}.reservation-move-guest{align-items:flex-start}.reservation-move-actions{gap:8px}.reservation-move-actions button{min-height:40px}.reservation-move-actions .nbi-button-primary{flex:1}.reservation-move-check{min-height:0}}

/* Booking gestures keep touch scrolling and use the existing confirmation dialog. */
.nbi-floor-table, .nbi-timeline-booking { user-select: none; }
[data-booking-drop-table][data-drop-active="true"] { outline: 3px solid var(--nbi-accent, #c982b0); outline-offset: -3px; }
