/* NBI visual reference: 38-restored-today.png, 488 × 795. */
html.nbi-theme {
  --background: #180410;
  --card: #280b1c;
  --foreground: #ebe0e9;
  --muted: #b9a2b2;
  --border: #442238;
  --primary: #a84d86;
  --primary-hover: #b86099;
  --soft-green: #3a1831;
  --ring: #d39abc;
  --danger: #f2a5ad;
  --danger-soft: #3f1526;
  --nbi-raised: #321326;
  --nbi-accent-soft: #35152e;
  color-scheme: dark;
  background: var(--background);
  color: var(--foreground);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 14px;
}
.nbi-theme body { min-width: 320px; background: var(--background); }
.nbi-theme ::selection { color: #fff; background: #87446e; }
.nbi-theme :is(input, textarea) { caret-color: #df9ac6; }
.nbi-theme :is(input, textarea)::placeholder { color: #ac8b9f; opacity: 1; }
.nbi-theme :is(button, a, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; }
.nbi-theme * { scrollbar-color: #69435a #210818; scrollbar-width: thin; }
.nbi-shell { min-height: 100dvh; background: var(--background); color: var(--foreground); }
.nbi-shell :is(button, input, select, textarea), .nbi-dialog :is(button, input, select, textarea) { font: inherit; }
.nbi-shell :is(button, a), .nbi-dialog :is(button, a) { -webkit-tap-highlight-color: #7e3c6540; }
.nbi-shell button, .nbi-dialog button { touch-action: manipulation; }
.nbi-shell :is(button, input, select, textarea):disabled, .nbi-dialog :is(button, input, select, textarea):disabled { opacity: .48; cursor: not-allowed; }
.nbi-shell svg, .nbi-dialog svg { flex-shrink: 0; stroke-width: 1.6; }
.nbi-workspace { min-width: 0; }
.nbi-sidebar { display: none; }
.nbi-topbar {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; gap: 4px; height: 56px;
  padding: 0 16px; border-bottom: 1px solid var(--border);
  background: #230817; min-width: 0;
}
.nbi-icon-button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; border: 0; border-radius: 6px; padding: 0; background: transparent; color: var(--muted); }
.nbi-icon-button:hover:not(:disabled) { color: var(--foreground); background: #3a183140; }
.nbi-menu-button { margin-left: -10px; }
.nbi-top-title { min-width: 0; flex: 1; font-size: 18px; font-weight: 400; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: -.025em; }
.nbi-top-title span { color: var(--foreground); }
.nbi-top-actions { display: flex; align-items: center; gap: 0; margin-right: -7px; }
.nbi-add-button { position: relative; color: #f6e2f0; }
.nbi-add-button::before { content: ""; position: absolute; inset: 7px; background: #8c346c; border-radius: 8px; }
.nbi-add-button svg { position: relative; }
.nbi-add-button:hover:not(:disabled) { background: transparent; }
.nbi-add-button:hover:not(:disabled)::before { background: #a84d86; }
.nbi-main { min-width: 0; padding: 16px 16px calc(86px + env(safe-area-inset-bottom)); margin: 0 auto; }
.nbi-bottom-tabs { position: fixed; bottom: 0; left: 0; right: 0; z-index: 20; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); height: calc(56px + env(safe-area-inset-bottom)); background: #230817; border-top: 1px solid var(--border); padding-bottom: env(safe-area-inset-bottom); }
.nbi-bottom-tabs button { border: 0; background: transparent; color: #bda4b4; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-size: 11px; line-height: 14px; min-width: 0; height: 55px; }
.nbi-bottom-tabs button[aria-current="page"] { color: #b05b91; }
.nbi-bottom-tabs button:hover { background: #331027; }
.nbi-bottom-tabs svg { height: 22px; width: 22px; }
.nbi-day-label { color: #c8afbf; font-size: 11px; line-height: 14px; letter-spacing: 1.4px; text-transform: uppercase; }
.nbi-greeting { margin: 12px 0 24px; font-size: 24px; line-height: 29px; font-weight: 650; letter-spacing: -.035em; overflow-wrap: anywhere; }
.nbi-greeting > span { margin-left: 2px; }
.nbi-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.nbi-metrics > div { height: 80px; min-width: 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: #280b1c; }
.nbi-metrics dd { margin: 0 0 4px; font-size: 28px; line-height: 32px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -.025em; }
.nbi-metrics dt { color: var(--muted); font-size: 13px; line-height: 18px; }
.nbi-metrics .nbi-capacity-metric { background: var(--nbi-accent-soft); border-color: #401d36; }
.nbi-capacity-metric dd { color: #c479ac; }
.nbi-capacity-metric dt { color: #c59fb8; }
.nbi-services { margin-top: 26px; }
.nbi-services h2 { margin-bottom: 16px; font-size: 16px; line-height: 20px; font-weight: 550; letter-spacing: -.01em; }
.nbi-no-services { min-height: 54px; display: flex; align-items: center; padding: 15px 20px; border: 1px solid var(--border); border-radius: 9px; background: var(--card); color: var(--muted); font-size: 13px; line-height: 20px; }
.nbi-service-list { display: grid; gap: 10px; }
.nbi-service-card { width: 100%; min-width: 0; min-height: 79px; display: flex; gap: 12px; justify-content: space-between; align-items: center; text-align: left; border: 1px solid var(--border); border-radius: 9px; padding: 16px; background: var(--card); color: var(--foreground); }
.nbi-service-card:hover:not(:disabled) { background: var(--nbi-raised); border-color: #6b3f59; }
.nbi-service-card > span:first-child { min-width: 0; }
.nbi-service-card strong { font-size: 14px; font-weight: 600; display: block; overflow-wrap: anywhere; }
.nbi-service-card small { display: block; color: var(--muted); font-size: 12px; line-height: 19px; margin-top: 4px; }
.nbi-service-card small span { white-space: normal; }
.nbi-service-status { border: 1px solid #624055; border-radius: 4px; padding: 3px 6px; color: #d0b6c6; font-size: 10px; line-height: 16px; flex-shrink: 0; }
.nbi-service-status.finished { color: #ac92a3; border-color: #4b2b3f; }
.nbi-loading { color: var(--muted); }
.nbi-daily-notes { margin-top: 32px; min-height: 104px; padding: 10px 16px 16px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); }
.nbi-notes-heading { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.nbi-notes-heading h2 { font-size: 14px; line-height: 20px; font-weight: 550; letter-spacing: 0; }
.nbi-note-icon { width: 32px; height: 32px; display: inline-flex; justify-content: center; align-items: center; flex: 0 0 32px; border-radius: 7px; background: #343036; color: #c6b4c0; }
.nbi-notes-heading > button { margin-left: auto; margin-right: -8px; }
.nbi-no-notes { margin: 12px 4px 2px; color: var(--muted); font-size: 13px; line-height: 20px; font-style: italic; }
.nbi-note-content { margin: 12px 0 2px; font-size: 14px; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; color: #d1bccc; }
.nbi-readonly, .nbi-refresh-status { color: var(--muted); font-size: 12px; line-height: 20px; }
.nbi-readonly { margin-bottom: 14px; padding: 10px 12px; border: 1px solid var(--border); background: var(--card); border-radius: 6px; }
.nbi-refresh-status { display: block; margin-bottom: 8px; }
.nbi-initial-loading { padding: 40px 0; min-height: 160px; font-size: 14px; line-height: 1.7; color: var(--muted); }
.nbi-error { padding: 12px 14px; margin-bottom: 16px; background: var(--danger-soft); border: 1px solid #79415a; border-radius: 6px; color: #f0bdc8; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.nbi-error p { margin: 5px 0 0; }
.nbi-error .nbi-text-button { color: #f5c3d7; margin: 3px 0 -4px -6px; }
.nbi-muted { color: var(--muted); font-size: 13px; line-height: 1.6; }
.nbi-sr-only { position: absolute; height: 1px; width: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.nbi-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; border: 1px solid #694359; border-radius: 5px; background: var(--card); color: var(--foreground); padding: 9px 12px; font-size: 13px; font-weight: 550; line-height: 20px; text-decoration: none; cursor: pointer; }
.nbi-button:hover:not(:disabled) { background: #3c1831; border-color: #9a627f; }
.nbi-button-primary { background: #943e75; border-color: #ad568e; color: #fff0f9; }
.nbi-button-primary:hover:not(:disabled) { background: #a84d86; border-color: #c578a6; }
.nbi-button-small { min-height: 40px; padding: 7px 10px; font-size: 12px; }
.nbi-text-button { display: inline-flex; align-items: center; gap: 5px; min-height: 44px; border: 0; background: transparent; color: #d795be; font-size: 13px; padding: 7px 6px; text-align: left; border-radius: 4px; }
.nbi-text-button:hover:not(:disabled) { background: #452139; }
.nbi-danger-text { color: #e9a4b2; }
.nbi-danger-button { background: #67243a; border-color: #a4536d; }
.nbi-danger-button:hover:not(:disabled) { background: #84364c; }
.nbi-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; font-size: 13px; line-height: 20px; }
.nbi-field > span { color: #dcc7d6; }
.nbi-field :is(input, select, textarea), .nbi-inline-field select, .nbi-date-input input { width: 100%; min-width: 0; min-height: 44px; border: 1px solid #684357; border-radius: 5px; padding: 10px 11px; background: #200817; color: var(--foreground); font-size: 16px; }
.nbi-field textarea { resize: vertical; line-height: 1.6; }
.nbi-field :is(input, select, textarea):hover:not(:disabled), .nbi-inline-field select:hover { border-color: #9a647f; }
.nbi-field small { color: var(--muted); font-size: 12px; }
.nbi-checkbox { display: flex; gap: 10px; align-items: center; min-height: 44px; font-size: 13px; line-height: 20px; color: #d9c2d1; }
.nbi-checkbox input { width: 18px; height: 18px; margin: 0; accent-color: var(--primary); flex-shrink: 0; }
.nbi-operations { min-width: 0; }
.nbi-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 22px; }
.nbi-date-controls { display: flex; align-items: center; gap: 2px; min-width: 0; }
.nbi-date-controls > .nbi-icon-button { border: 1px solid var(--border); background: var(--card); }
.nbi-date-input { display: block; width: 156px; min-width: 0; }
.nbi-date-input input { padding: 9px 6px; }
.nbi-inline-field { display: flex; gap: 8px; align-items: center; min-width: 0; font-size: 12px; color: var(--muted); }
.nbi-inline-field select { width: auto; max-width: 220px; font-size: 13px; padding: 8px 10px; }
.nbi-view-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 22px; }
.nbi-view-heading h1 { font-size: 24px; line-height: 30px; font-weight: 600; letter-spacing: -.025em; }
.nbi-view-heading > span { color: var(--muted); font-size: 12px; line-height: 19px; text-align: right; }
.nbi-filters { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.nbi-empty { padding: 28px 18px; background: var(--card); border: 1px solid var(--border); border-radius: 8px; }
.nbi-empty > :is(strong, h1) { display: block; font-size: 16px; font-weight: 550; }
.nbi-empty p { color: var(--muted); font-size: 13px; line-height: 1.6; margin: 8px 0 16px; }
.nbi-empty .nbi-button + .nbi-button { margin-left: 8px; }
.nbi-list-section { margin-top: 28px; }
.nbi-list-section > h2 { margin-bottom: 14px; font-size: 15px; letter-spacing: 0; }
.nbi-reservation-list { border-top: 1px solid var(--border); }
.nbi-reservation-row { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; min-width: 0; padding: 14px 2px; border: 0; border-bottom: 1px solid var(--border); background: transparent; color: var(--foreground); text-align: left; }
.nbi-reservation-row:hover { background: #321024; }
.nbi-reservation-time { font-size: 15px; font-variant-numeric: tabular-nums; }
.nbi-reservation-time small, .nbi-reservation-name small { display: block; color: var(--muted); font-size: 11px; line-height: 18px; margin-top: 3px; }
.nbi-reservation-name { min-width: 0; }
.nbi-reservation-name strong { display: block; font-size: 13px; font-weight: 550; overflow-wrap: anywhere; }
.nbi-status { display: inline-flex; align-items: center; width: fit-content; border-radius: 4px; border: 1px solid #6a465a; background: #331429; color: #e0c5d7; padding: 3px 6px; font-size: 10px; line-height: 16px; white-space: nowrap; }
.nbi-status-arrived { color: #ecd8aa; border-color: #765d34; background: #342818; }
.nbi-status-seated { color: #dcc4ed; border-color: #69537d; background: #332240; }
.nbi-status-completed { color: #bfddcc; border-color: #3c6153; background: #1b3027; }
.nbi-status-cancelled, .nbi-status-no_show { color: #d5a6b4; border-color: #724151; background: #391321; }
.nbi-timeline-scroll { max-width: 100%; overflow: auto; border: 1px solid var(--border); border-radius: 7px; }
.nbi-timeline { width: max-content; background: #210817; }
.nbi-time-heading, .nbi-table-track { display: flex; min-height: 68px; border-bottom: 1px solid var(--border); }
.nbi-time-heading { min-height: 36px; height: 36px; background: #321125; }
.nbi-time-heading > span, .nbi-track-label { position: sticky; left: 0; z-index: 3; flex: 0 0 88px; width: 88px; background: #2c1021; border-right: 1px solid var(--border); padding: 12px 10px; font-size: 12px; }
.nbi-time-heading > span { padding-top: 10px; }
.nbi-time-heading > div { position: relative; overflow: hidden; }
.nbi-time-heading > div > span { position: absolute; top: 10px; margin-left: 5px; color: var(--muted); font-size: 10px; line-height: 16px; font-variant-numeric: tabular-nums; }
.nbi-track-label { display: flex; flex-direction: column; justify-content: center; gap: 3px; }
.nbi-track-label strong { font-size: 12px; font-weight: 550; overflow-wrap: anywhere; }
.nbi-track-label small { font-size: 10px; color: var(--muted); }
.nbi-track-body { position: relative; flex-shrink: 0; min-height: 68px; }
.nbi-time-line { position: absolute; height: 100%; border-left: 1px solid #3e2032; pointer-events: none; }
.nbi-timeline-booking { position: absolute; top: 8px; height: 51px; min-width: 35px; padding: 7px 8px; border-radius: 4px; font-size: 12px; text-align: left; overflow: hidden; }
.nbi-timeline-booking:hover { filter: brightness(1.17); }
.nbi-timeline-booking strong, .nbi-timeline-booking small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nbi-timeline-booking strong { font-size: 12px; line-height: 17px; font-weight: 550; }
.nbi-timeline-booking small { font-size: 10px; line-height: 15px; margin-top: 2px; }
.nbi-table-legend { display: flex; gap: 18px; flex-wrap: wrap; margin-bottom: 18px; color: var(--muted); font-size: 11px; }
.nbi-table-legend > span { display: flex; align-items: center; gap: 6px; }
.nbi-table-legend > span::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 2px; background: #577c64; }
.nbi-table-legend .nbi-legend-reserved::before { background: #ab8151; }
.nbi-table-legend .nbi-legend-seated::before { background: #9272ae; }
.nbi-live-tables { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.nbi-live-table { display: flex; flex-direction: column; align-items: center; gap: 7px; min-height: 134px; min-width: 0; padding: 16px 10px; border: 1px solid #476750; border-radius: 8px; background: #203023; color: #d9e7dc; text-align: center; }
.nbi-live-table.reserved { border-color: #795736; background: #352817; color: #ead9c3; }
.nbi-live-table.seated { border-color: #795896; background: #35223e; color: #e5d9ed; }
.nbi-live-table:hover:not(:disabled) { filter: brightness(1.13); }
.nbi-live-table strong { font-size: 20px; line-height: 26px; font-weight: 550; }
.nbi-live-table > span:not(.nbi-table-guest) { display: flex; align-items: center; gap: 4px; font-size: 12px; }
.nbi-live-table small { font-size: 11px; line-height: 16px; }
.nbi-live-table .nbi-table-guest { max-width: 100%; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nbi-arrival-row { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding: 13px 0; border-bottom: 1px solid var(--border); }
.nbi-arrival-info { min-width: 0; flex: 1; border: 0; padding: 7px 0; background: transparent; color: var(--foreground); text-align: left; }
.nbi-arrival-info strong, .nbi-arrival-info span { display: block; overflow-wrap: anywhere; }
.nbi-arrival-info strong { font-size: 13px; font-weight: 550; }
.nbi-arrival-info span { margin-top: 5px; font-size: 11px; color: var(--muted); }
.nbi-arrival-info:hover strong { color: #e9aad0; }
.nbi-data-table-scroll { width: 100%; overflow: auto; border: 1px solid var(--border); border-radius: 7px; }
.nbi-data-table { border-collapse: collapse; min-width: 600px; width: 100%; font-size: 12px; line-height: 19px; }
.nbi-data-table th { padding: 12px; font-size: 11px; color: var(--muted); font-weight: 500; text-align: left; background: #2e1124; white-space: nowrap; }
.nbi-data-table td { padding: 9px 12px; border-top: 1px solid var(--border); vertical-align: top; overflow-wrap: anywhere; }
.nbi-data-table td:last-child { min-width: 150px; max-width: 340px; }
.nbi-data-table tbody tr:hover { background: #2a0f21; }
.nbi-data-table .nbi-text-button { padding: 0; min-height: 26px; font-size: 12px; }
.nbi-search { display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 12px; border: 1px solid var(--border); background: var(--card); border-radius: 6px; color: var(--muted); margin-bottom: 18px; }
.nbi-search input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--foreground); height: 44px; padding: 8px 0; font-size: 16px; }
.nbi-search > span { font-size: 11px; font-variant-numeric: tabular-nums; }
.nbi-customer-list { border-top: 1px solid var(--border); }
.nbi-customer-row { display: flex; align-items: center; gap: 12px; min-width: 0; width: 100%; padding: 16px 1px; background: transparent; color: var(--foreground); border: 0; border-bottom: 1px solid var(--border); text-align: left; }
.nbi-customer-row:hover { background: #2b1021; }
.nbi-customer-avatar { display: inline-flex; align-items: center; justify-content: center; height: 34px; width: 34px; flex: 0 0 34px; border-radius: 7px; background: #3c2135; color: #d7b4ca; }
.nbi-customer-row > span:nth-child(2) { flex: 1; min-width: 0; }
.nbi-customer-row strong { display: block; font-size: 14px; font-weight: 550; overflow-wrap: anywhere; }
.nbi-customer-row small { display: block; color: var(--muted); font-size: 12px; line-height: 19px; overflow-wrap: anywhere; margin-top: 3px; }
.nbi-customer-tags { display: block; margin-top: 4px; color: #c498b5; font-size: 11px; line-height: 18px; overflow-wrap: anywhere; }
.nbi-customer-visits { flex-shrink: 0; color: var(--muted); font-size: 11px; white-space: nowrap; }
.nbi-customer-row > svg { color: #a28096; }
.nbi-dialog { width: min(570px, calc(100% - 32px)); max-height: min(88dvh, 850px); margin: auto; padding: 0 20px 20px; border: 1px solid #69445a; border-radius: 10px; color: var(--foreground); background: #280b1c; overflow: auto; box-shadow: 0 18px 70px #050003a6; }
.nbi-dialog::backdrop { background: #090007bb; }
.nbi-dialog > header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; border-bottom: 1px solid var(--border); background: #280b1c; margin-bottom: 20px; }
.nbi-dialog > header h2 { min-width: 0; font-size: 18px; line-height: 25px; letter-spacing: -.02em; overflow-wrap: anywhere; }
.nbi-dialog > header button { margin-right: -7px; }
.nbi-dialog form > .nbi-field { margin-top: 18px; }
.nbi-form-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.nbi-span-full { grid-column: 1 / -1; }
.nbi-form-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.nbi-customer-details dl { margin: 0; display: grid; gap: 16px; }
.nbi-customer-details dt { color: var(--muted); font-size: 11px; line-height: 16px; }
.nbi-customer-details dd { margin: 4px 0 0; font-size: 14px; line-height: 20px; overflow-wrap: anywhere; }
.nbi-customer-details > h3 { margin: 26px 0 15px; font-size: 14px; font-weight: 550; }
.nbi-customer-history button { display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; min-width: 0; text-align: left; background: transparent; border: 0; border-top: 1px solid var(--border); color: var(--foreground); padding: 14px 0; }
.nbi-customer-history button:hover { background: #3a1831; }
.nbi-customer-history button > span:first-child { min-width: 0; }
.nbi-customer-history strong { display: block; font-size: 12px; }
.nbi-customer-history small { display: block; margin-top: 4px; font-size: 11px; color: var(--muted); line-height: 18px; overflow-wrap: anywhere; }
.nbi-delete-confirm { padding: 14px; border: 1px solid #7d4059; background: var(--danger-soft); border-radius: 6px; margin-top: 18px; font-size: 13px; }
.nbi-delete-confirm > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.nbi-help-content p { font-size: 14px; line-height: 1.7; color: var(--muted); margin-bottom: 16px; }
.nbi-drawer-backdrop { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: var(--foreground); }
.nbi-drawer-backdrop::backdrop { background: #080006c7; }
.nbi-drawer { width: min(306px, calc(100% - 48px)); height: 100%; overflow-y: auto; padding: 16px; background: #260b1d; border-right: 1px solid var(--border); }
.nbi-drawer-heading { display: flex; align-items: center; justify-content: space-between; min-height: 44px; margin: -2px -7px 20px 0; }
.nbi-drawer-heading strong { font-size: 22px; letter-spacing: -.04em; font-weight: 650; }
.nbi-wordmark small, .nbi-drawer-heading small, .nbi-login-brand small { font-size: 9px; font-weight: 500; letter-spacing: .08em; color: #c18fac; margin-left: 5px; }
.nbi-navigation { display: grid; gap: 18px; }
.nbi-nav-group { display: grid; gap: 3px; }
.nbi-nav-group + .nbi-nav-group { padding-top: 14px; border-top: 1px solid var(--border); }
.nbi-navigation button { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 9px 10px; background: transparent; color: var(--muted); border: 0; border-radius: 5px; text-align: left; font-size: 13px; line-height: 20px; }
.nbi-navigation button:hover { color: var(--foreground); background: #39162e; }
.nbi-navigation button[aria-current="page"] { background: #471b37; color: #edbddb; }
.nbi-venue-controls { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--border); }
.nbi-venue-controls .nbi-field > span { font-size: 11px; color: var(--muted); }
.nbi-venue-controls .nbi-field select { font-size: 13px; }
.nbi-user { display: grid; gap: 4px; margin: 22px 0 12px; min-width: 0; }
.nbi-user strong { font-size: 13px; }
.nbi-user span { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.nbi-logout { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 7px 0; border: 0; background: transparent; color: #cfacc2; font-size: 12px; }
.nbi-logout:hover { color: #f3d4e8; }
.nbi-lab-link { display: block; min-height: 44px; padding: 12px 0; color: var(--muted); font-size: 11px; text-decoration: none; }
.nbi-lab-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.nbi-login-shell { min-height: 100dvh; max-width: 520px; padding: 40px 16px 24px; margin: auto; }
.nbi-login-brand { font-size: 28px; line-height: 36px; font-weight: 650; letter-spacing: -.04em; margin: 0 0 30px; }
.nbi-login-shell .login-main { margin: 0; padding: 0; }
.nbi-login-shell .panel-heading { padding: 20px 20px 0; }
.nbi-login-shell .login-panel form, .nbi-login-shell .demo-account-note { padding: 20px; }
.nbi-login-shell .demo-account-note code { color: #efc1de; overflow-wrap: anywhere; }
.nbi-login-shell .readonly-note { margin: 0; }
.nbi-theme :is(.nbi-login-shell, .nbi-admin) .field :is(input, select) { border-color: #684357; background: #210818; }
.nbi-theme :is(.nbi-login-shell, .nbi-admin) .button-outline { border-color: #694359; background: #280b1c; }
.nbi-theme :is(.nbi-login-shell, .nbi-admin) .button-outline:hover:not(:disabled) { border-color: #a06387; background: #401c33; }
.nbi-theme :is(.nbi-login-shell, .nbi-admin) .readonly-note { background: #35172b; color: #cbb2c1; border-left: 1px solid #8e5575; }
.nbi-admin { min-width: 0; }
.nbi-admin .panel { border-radius: 8px; background: var(--card); }
.nbi-admin .admin-body { font-size: 14px; }
.nbi-admin :is(.admin-success, .closed-day) { background: #35172b; border-color: #67415a; color: #dfb8d1; }
.nbi-admin :is(.badge-success, .badge-neutral, .badge) { background: #3c1b31; border-color: #74506a; color: #e1c5d6; }
.nbi-admin .actor-row, .nbi-admin .access-row { min-width: 0; }
.nbi-admin .audit-entry pre { background: #1f0817; color: #ddc1d2; }
.nbi-admin .admin-error { color: #f3bdc9; border-color: #845169; }
.nbi-theme .confirm-dialog { background: #280b1c; border-color: #684357; color: var(--foreground); }
.nbi-theme .confirm-dialog::backdrop { background: #090007bb; }
@media (min-width: 640px) {
  .nbi-main { padding: 24px 28px 88px; }
  .nbi-today { max-width: 740px; }
  .nbi-live-tables { grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: 16px; }
  .nbi-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nbi-customer-details dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nbi-field :is(input, select, textarea) { font-size: 14px; }
  .nbi-customer-list { max-width: 980px; }
  .nbi-search { max-width: 650px; }
}
@media (min-width: 1024px) {
  .nbi-shell { display: grid; grid-template-columns: 212px minmax(0, 1fr); }
  .nbi-sidebar { display: flex; flex-direction: column; position: fixed; inset: 0 auto 0 0; width: 212px; padding: 20px 12px; background: #260b1d; border-right: 1px solid var(--border); overflow-y: auto; }
  .nbi-wordmark { padding: 4px 10px 30px; font-size: 23px; font-weight: 650; letter-spacing: -.04em; white-space: nowrap; }
  .nbi-sidebar .nbi-venue-controls { margin-top: auto; padding: 20px 10px 0; }
  .nbi-sidebar .nbi-navigation { margin-bottom: 30px; }
  .nbi-sidebar .nbi-user { margin-top: 20px; }
  .nbi-workspace { grid-column: 2; }
  .nbi-topbar { padding: 0 28px; }
  .nbi-menu-button { display: none; }
  .nbi-top-title { font-size: 16px; }
  .nbi-top-actions { gap: 2px; }
  .nbi-main { max-width: 1200px; padding: 32px 28px 48px; }
  .nbi-bottom-tabs { display: none; }
  .nbi-today { max-width: 850px; }
  .nbi-greeting { font-size: 26px; line-height: 34px; }
  .nbi-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nbi-services { margin-top: 30px; }
  .nbi-daily-notes { margin-top: 30px; }
  .nbi-toolbar { margin-bottom: 24px; }
  .nbi-admin .admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nbi-admin .actor-row { grid-template-columns: minmax(110px, 1fr) 125px minmax(160px, 1.2fr) auto; gap: 12px; }
  .nbi-admin .access-row { grid-template-columns: minmax(0, 1fr) 100px 125px auto; }
}
@media (min-width: 1280px) { .nbi-admin .admin-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  .nbi-top-title { font-size: 17px; }
  .nbi-toolbar > .nbi-inline-field { width: 100%; justify-content: space-between; }
  .nbi-toolbar > .nbi-inline-field select { flex: 1; max-width: none; }
  .nbi-view-heading { gap: 10px; }
  .nbi-view-heading > .nbi-button { font-size: 12px; padding: 8px 10px; }
  .nbi-view-heading > span { max-width: 150px; }
  .nbi-arrival-row > .nbi-button { width: 100%; }
  .nbi-arrival-info { flex-basis: 65%; }
  .nbi-form-actions > .nbi-button { flex: 1; }
  .nbi-button-small, .nbi-data-table .nbi-text-button { min-height: 44px; }
  .nbi-dialog { padding-left: 16px; padding-right: 16px; }
  .nbi-customer-visits { font-size: 10px; }
  .nbi-admin .admin-body { padding: 16px; }
  .nbi-admin .panel-heading { flex-wrap: wrap; padding: 16px; }
  .nbi-admin .admin-grid { grid-template-columns: minmax(0, 1fr); }
  .nbi-admin .service-selector { flex-wrap: wrap; }
  .nbi-admin .audit-toolbar { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 380px) {
  .nbi-top-title { font-size: 15px; }
  .nbi-top-actions { gap: 0; }
  .nbi-metrics dt { font-size: 12px; }
  .nbi-greeting { font-size: 23px; }
  .nbi-service-card { gap: 8px; padding: 14px 12px; }
  .nbi-service-status { font-size: 9px; padding: 2px 4px; }
}
@media print {
  html.nbi-theme, .nbi-theme body, .nbi-shell { background: #fff; color: #111; }
  .nbi-sidebar, .nbi-topbar, .nbi-bottom-tabs, .nbi-toolbar, .nbi-filters, .nbi-view-heading .nbi-button { display: none !important; }
  .nbi-shell { display: block; }
  .nbi-main { max-width: none; padding: 0; }
  .nbi-data-table-scroll { overflow: visible; border-color: #bbb; }
  .nbi-data-table { min-width: 0; }
  .nbi-data-table :is(th, td) { color: #111; border-color: #bbb; background: #fff; padding: 8px; }
  .nbi-data-table .nbi-text-button, .nbi-status { color: #111; background: #fff; border-color: #aaa; }
  .nbi-view-heading { margin-bottom: 16px; }
  .nbi-view-heading > span { color: #444; }
}
@media (prefers-reduced-motion: reduce) {
  .nbi-shell *, .nbi-dialog * { scroll-behavior: auto; transition: none; animation: none; }
}

.nbi-metrics .nbi-waitlist-metric{padding:0}.nbi-metric-action{display:block;width:100%;height:100%;padding:12px 14px;text-align:left;background:transparent;border:0;color:inherit;border-radius:10px}.nbi-metric-action:hover{background:#37142b}

.nbi-metrics dd.nbi-waitlist-action{height:100%;margin:0}.nbi-metric-value{display:block;margin-bottom:4px}.nbi-metric-label{display:block;color:var(--muted);font-size:13px;line-height:18px;font-weight:400;letter-spacing:normal}
@media(max-width:640px){.nbi-metric-label{font-size:12px}}

.nbi-sidebar .nbi-navigation{min-height:0;overflow-y:auto}.feature-area-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.feature-area-nav button[aria-current="page"]{background:var(--nbi-accent-soft);border-color:#78536b}.nbi-floor-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.nbi-floor-plan{position:relative;min-width:600px;height:440px;background:linear-gradient(90deg,transparent 98%,#ffffff04 98%),linear-gradient(0deg,transparent 98%,#ffffff04 98%);background-size:40px 40px}.nbi-floor-table{position:absolute;width:100px;min-height:90px;padding:9px;overflow:hidden}.nbi-floor-table.shape-round{border-radius:50%}.nbi-floor-table.shape-rectangle{border-radius:8px}.nbi-floor-table.shape-square{border-radius:12px}.nbi-floor-table[draggable="true"]{cursor:move}.nbi-timeline-booking[draggable="true"]{cursor:grab}.nbi-arrival-info small{display:block;margin-top:5px}.nbi-inline-field input[type="search"]{min-height:44px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);padding:8px 10px;font:inherit}

.feature-section{margin-top:28px;padding-top:22px;border-top:1px solid var(--border)}.feature-section h2{margin:0 0 10px}.feature-form,.feature-record-list{display:grid;gap:16px}.feature-fieldset{min-width:0;display:grid;gap:16px;border:1px solid var(--border);border-radius:8px;padding:16px}.feature-fieldset legend{padding:0 6px}.feature-actions{display:flex;gap:8px;flex-wrap:wrap}.feature-record{min-width:0;display:grid;gap:10px;padding:16px;border:1px solid var(--border);border-radius:8px}.feature-record p{margin:0;overflow-wrap:anywhere}.feature-record details p{margin-top:8px}.feature-record button{justify-self:start}
.nbi-offline-page{min-height:100dvh;background:#180410;color:#eee5eb}
@media(max-width:639px){.nbi-features .nbi-view-heading{align-items:flex-start;flex-direction:column}.nbi-features .nbi-view-heading>span{max-width:100%;text-align:left}.nbi-features .nbi-view-heading h1{margin:0;min-width:0}}
.nbi-theme body{min-width:0}

.nbi-status.nbi-custom-neutral{color:#e3d9df;border-color:#6c5a64;background:#30232b}.nbi-status.nbi-custom-green{color:#c4e6cf;border-color:#52765d;background:#1d3425}.nbi-status.nbi-custom-amber{color:#f0ddac;border-color:#856b3c;background:#392b18}.nbi-status.nbi-custom-red{color:#f2bdc5;border-color:#925b65;background:#421e29}.nbi-status.nbi-custom-blue{color:#c0d8f2;border-color:#527393;background:#1d2e40}

/* Current-time walk-in shortcut shares the operating toolbar and dialog system. */
.nbi-walkin-shortcut { min-height: 44px; }
.nbi-walkin { min-width: 0; overflow-wrap: anywhere; }
.nbi-walkin fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.nbi-walkin-clock { display: flex; flex-direction: column; gap: 4px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.nbi-walkin-clock span { color: var(--muted-foreground); font-size: 12px; }
.nbi-walkin-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.nbi-walkin .nbi-field { margin-top: 12px; }
@media (max-width: 639px) { .nbi-walkin .nbi-feature-fields { grid-template-columns: minmax(0, 1fr); } .nbi-walkin .nbi-button { white-space: normal; min-height: 44px; line-height: 1.3; } .nbi-walkin-actions .nbi-button { flex: 1 1 100%; } }
