/* Restaurant control panel. Keep daily tasks in a stable rail, with one
   permission-aware navigation tree on desktop and in the mobile drawer. */
.control-panel { --bar-h: var(--control-header-height); }
.control-panel .control-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid var(--line); }
.control-panel .control-header .control-header-inner { max-width: var(--layout-max); width: 100%; height: auto; min-height: calc(var(--space-8) + var(--space-4)); margin-inline: auto; padding: var(--space-2) var(--layout-gutter); gap: var(--space-4); flex-wrap: nowrap; }
.control-header .brand { flex: none; font-size: var(--text-xl); }
.control-panel .control-restaurant { min-width: 0; max-width: 28rem; flex: 1 1 22rem; background: transparent; border: 0; }
.control-panel .control-store { min-width: 0; }
.control-panel .control-store > summary { display: flex; padding: var(--space-2); gap: var(--space-2); color: var(--ink); border-radius: var(--r-md); }
.control-store > summary:hover { background: var(--tint-row); }
.control-panel .control-store .manage-context-identity > .ico { padding: 0; border: 0; background: none; color: var(--muted); }
.control-panel .control-store .manage-context-identity div { min-width: 0; }
.control-store .manage-context-identity strong { display: block; line-height: 1.3; overflow-wrap: anywhere; }
.control-panel .control-store-panel { left: 0; right: auto; width: min(25rem, calc(100vw - var(--space-8))); padding: var(--space-4); }
.control-store-description { margin: 0 0 var(--space-3); color: var(--muted); font-size: var(--text-sm); overflow-wrap: anywhere; }
.control-panel .control-store-panel .manage-context-switch { display: grid; gap: var(--space-2); padding-bottom: var(--space-4); }
.control-store-panel .manage-context-switch label { font-size: var(--text-sm); font-weight: var(--fw-semibold); }
.control-panel .control-store-panel .manage-context-switch select { width: 100%; max-width: none; }
.control-panel .control-store-panel a { display: flex; align-items: center; gap: var(--space-2); white-space: normal; font-size: var(--text-sm); min-height: calc(var(--space-8) + var(--space-1)); padding: var(--space-2); }
.control-header-state { flex: 0 1 auto; min-width: 0; }
.control-service-status { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-3); max-width: 100%; border: 1px solid var(--line); border-radius: var(--r-md); font-size: var(--text-xs); font-weight: var(--fw-semibold); line-height: 1.4; overflow-wrap: anywhere; }
.control-service-status::before { content: ''; width: var(--space-2); height: var(--space-2); border-radius: var(--pill); background: currentColor; flex: none; }
.control-service-status.is-open { color: var(--ok); background: var(--ok-tint); border-color: transparent; }
.control-service-status:is(.is-draft, .is-paused) { color: var(--warn); background: var(--warn-tint); border-color: transparent; }
.control-service-status:is(.is-closed, .is-unknown), .control-sync-note { color: var(--muted); background: var(--tint-row); }
.control-sync-note { display: inline-block; padding: var(--space-2); border-radius: var(--r-md); font-size: var(--text-xs); }
.control-clock { color: var(--ink-soft); font-variant-numeric: var(--num); font-size: var(--text-sm); flex: none; }
.control-panel .control-account > summary { display: flex; align-items: center; gap: var(--space-2); min-height: calc(var(--space-8) + var(--space-1)); padding: var(--space-2) var(--space-3); border: 1px solid var(--line); border-radius: var(--r-md); }
.control-panel .control-account-panel { right: 0; left: auto; width: min(20rem, calc(100vw - var(--space-8))); padding: var(--space-4); }
.control-account-name { margin: 0 0 var(--space-3); color: var(--ink); font-size: var(--text-sm); font-weight: var(--fw-semibold); overflow-wrap: anywhere; }
.control-account-label { display: block; color: var(--muted); font-size: var(--text-xs); margin-bottom: var(--space-1); }
.control-panel .control-account-panel > a { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) 0 0; margin-top: var(--space-3); border-top: 1px solid var(--line); white-space: normal; }
.control-panel .control-menu-toggle, .control-panel .control-nav-close { display: none; }
.control-panel .control-tabbar { display: none; }
.control-workspace { display: grid; grid-template-columns: var(--control-sidebar-width) minmax(0, 1fr); max-width: var(--layout-max); margin-inline: auto; min-height: calc(100dvh - var(--control-header-height)); }
.control-panel main.container.control-main { min-width: 0; width: auto; max-width: none; margin: 0; padding: var(--space-5) var(--layout-gutter) var(--space-8); }
.control-main :is(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-block: calc(var(--control-header-height) + var(--space-4)) calc(var(--space-8) + var(--space-5)); }
.control-sidebar { position: sticky; top: var(--control-header-height); align-self: start; height: calc(100dvh - var(--control-header-height)); min-height: 0; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; background: var(--card); border-right: 1px solid var(--line); z-index: 80; }
.control-nav-head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-4) var(--space-4) var(--space-2); color: var(--muted); font-size: var(--text-xs); font-weight: var(--fw-semibold); }
.control-search { position: relative; display: flex; align-items: center; gap: var(--space-2); margin: var(--space-2) var(--space-3) var(--space-3); }
.control-search > .ico { position: absolute; left: var(--space-3); color: var(--muted); pointer-events: none; }
.control-panel .control-search > input { min-width: 0; width: 100%; min-height: calc(var(--space-8) + var(--space-1)); padding-left: calc(var(--space-6) + var(--space-4)); padding-right: calc(var(--space-7) + var(--space-3)); font-size: var(--text-sm); background: var(--tint-row); border-color: var(--line); }
.control-search > kbd { position: absolute; right: var(--space-2); font-family: var(--font); color: var(--muted); font-size: var(--text-xs); padding: var(--space-1); background: var(--card); border: 1px solid var(--line); border-radius: var(--r-sm); pointer-events: none; }
.control-primary { display: grid; gap: var(--space-1); padding: 0 var(--space-3) var(--space-3); border-bottom: 1px solid var(--line); }
.control-nav-scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: var(--space-2) var(--space-3) var(--space-5); }
.control-nav-group { margin-top: var(--space-4); }
.control-nav-group h2 { font-size: var(--text-xs); font-weight: var(--fw-semibold); color: var(--muted); line-height: 1.4; margin: 0 0 var(--space-2); padding-inline: var(--space-3); }
.control-nav-group nav { display: grid; gap: var(--space-1); }
.control-panel .control-nav-link { display: flex; align-items: center; gap: var(--space-3); min-height: calc(var(--space-8) + var(--space-1)); padding: var(--space-2) var(--space-3); color: var(--ink-soft); border-radius: var(--r-md); font-size: var(--text-sm); font-weight: var(--fw-medium); line-height: 1.4; text-decoration: none; }
.control-nav-link > .ico { flex: none; color: var(--muted); }
.control-nav-link > span:first-of-type { min-width: 0; overflow-wrap: anywhere; }
.control-panel .control-nav-link:hover { background: var(--tint-row); color: var(--ink); }
.control-panel .control-nav-link.active { color: var(--brand-dark); background: var(--brand-tint); font-weight: var(--fw-semibold); box-shadow: inset var(--space-1) 0 0 var(--brand); }
.control-nav-link.active > .ico { color: var(--brand-dark); }
.control-active-mark { width: var(--space-1); height: var(--space-1); border-radius: var(--pill); background: var(--brand); flex: none; margin-left: auto; }
.control-nav-link:focus-visible, .control-nav-foot a:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.control-search-empty { padding: var(--space-4) var(--space-3); font-size: var(--text-sm); color: var(--muted); }
.control-nav-foot { display: grid; gap: var(--space-1); padding: var(--space-3); border-top: 1px solid var(--line); }
.control-nav-foot a { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-3); color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.4; text-decoration: none; min-height: var(--space-8); border-radius: var(--r-md); }
.control-nav-foot a:hover { background: var(--tint-row); color: var(--brand-dark); }
.control-nav-foot .ico { flex: none; }
.control-main > :is(.notice-bar, .impersonation-bar) { border-radius: var(--r-md); margin-bottom: var(--space-4); padding: var(--space-3) var(--space-4); justify-content: flex-start; flex-wrap: wrap; text-align: left; }
.control-daily { margin-bottom: var(--space-5); }
.control-daily h2 { margin-bottom: var(--space-4); }
.control-daily-links { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.control-directory { margin-top: var(--space-5); }
.control-directory .workspace-emblem { padding: var(--space-2); margin-bottom: var(--space-3); }
.control-directory .workspace-group nav a { min-height: calc(var(--space-8) + var(--space-1)); padding: var(--space-2); }
.control-panel .control-nav-backdrop[hidden], .control-panel [hidden] { display: none !important; }

/* Working queue: put identifying information and filters above the fold without
   shrinking targets needed by busy staff using touch screens. */
.control-panel .ops-order-workspace .phead { margin-bottom: var(--space-4); }
.control-panel .ops-order-head { gap: var(--space-3); }
.control-panel .ops-order-head .phead-titles { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); }
.control-panel .ops-order-head .phead-sub { margin: 0; font-size: var(--text-xs); }
.ops-order-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-3); margin-bottom: var(--space-3); padding: var(--space-3); background: var(--card); border: 1px solid var(--line); border-radius: var(--r); }
.ops-order-toolbar > * { min-width: 0; }
.ops-order-toolbar label { display: block; font-size: var(--text-xs); font-weight: var(--fw-semibold); color: var(--ink-soft); margin-bottom: var(--space-1); }
.ops-order-search { flex: 1 1 18rem; }
.ops-order-search-field { position: relative; }
.ops-order-search-field > .ico { position: absolute; left: var(--space-3); top: 50%; transform: translateY(-50%); color: var(--muted); }
.control-panel .ops-order-search input { width: 100%; padding-left: calc(var(--space-6) + var(--space-4)); min-height: calc(var(--space-8) + var(--space-1)); }
.ops-order-day, .ops-order-status, .ops-order-date { flex: 0 1 12rem; }
.ops-order-toolbar :is(select, input[type="date"]) { width: 100%; min-height: calc(var(--space-8) + var(--space-1)); font-size: var(--text-sm); }
.ops-order-results { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-4); color: var(--muted); font-size: var(--text-xs); }
.ops-order-no-results { padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--r); background: var(--card); color: var(--muted); font-size: var(--text-sm); }
.ops-row-reference { display: block; font-size: var(--text-xs); font-weight: var(--fw-semibold); color: var(--ink-soft); margin-bottom: var(--space-1); }
.ops-row-item-summary { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.control-panel .ops-order-workspace .row-items { white-space: normal; }
.ops-row-customer-name { display: block; font-weight: var(--fw-semibold); overflow-wrap: anywhere; }
.ops-row-address, .ops-row-phone { display: block; font-size: var(--text-xs); color: var(--muted); margin-top: var(--space-1); overflow-wrap: anywhere; }
.ops-row-note-flag { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--warn); font-size: var(--text-xs); margin-top: var(--space-1); }
.control-panel .ops-order-workspace .board-now { display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--space-3); align-items: center; padding: var(--space-3) var(--space-4); }
.control-panel .ops-order-workspace .board-now .board-figs { display: flex; flex: 1 1 auto; flex-direction: row; flex-wrap: wrap; padding: 0; gap: var(--space-3); margin: 0; }
.control-panel .ops-order-workspace .board-now .board-today { margin: 0; }
.control-panel .ops-order-workspace .board-head { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); margin-bottom: var(--space-3); }
.control-panel .ops-order-workspace .board-clock { font-size: var(--text-xl); margin: 0; }
.control-panel .ops-order-workspace .load-disclosure > .ops-capacity-summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); min-height: calc(var(--space-8) + var(--space-1)); }
.ops-capacity-summary-title { display: inline-flex; align-items: center; gap: var(--space-2); }
.ops-capacity-summary-status { flex: 1 1 14rem; font-size: var(--text-xs); font-weight: var(--fw-medium); }
.ops-capacity-summary-status.is-ok { color: var(--ok); }
.ops-capacity-summary-status.is-warning { color: var(--warn); font-weight: var(--fw-semibold); }
.ops-capacity-summary-meta { font-size: var(--text-xs); color: var(--muted); font-weight: var(--fw-normal); }
.control-panel .ops-order-workspace .load-disclosure > .ops-capacity-summary:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: var(--r); }
@media (min-width: 70rem) {
    .control-panel .ops-order-workspace .board-head { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
    .control-panel .ops-order-workspace .board-now .board-figs { flex-basis: 100%; }
}

@media (max-width: 69.9375rem) {
    .control-workspace { display: block; }
    .control-panel .control-menu-toggle { display: inline-flex; flex: none; padding-inline: var(--space-3); }
    .control-panel .control-nav-close { display: inline-flex; padding: var(--space-2); }
    .control-sidebar { position: fixed; top: 0; left: 0; bottom: 0; width: min(var(--control-sidebar-width), calc(100vw - var(--space-4))); height: 100dvh; z-index: 120; visibility: hidden; transform: translateX(-100%); transition: transform var(--t), visibility var(--t); }
    .control-nav-open { overflow: hidden; }
    .control-nav-open .control-sidebar { visibility: visible; transform: translateX(0); }
    .control-nav-backdrop { position: fixed; inset: 0; z-index: 110; background: color-mix(in srgb, var(--ink) 45%, transparent); border: 0; border-radius: 0; padding: 0; }
    .control-nav-head { padding-block: var(--space-3) 0; }
    .control-panel .control-tabbar { display: flex; justify-content: space-around; position: fixed; inset: auto 0 0; z-index: 95; background: var(--card); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
    .control-panel .control-tabbar a { flex: 1 1 0; min-width: 0; max-width: none; padding: var(--space-2) var(--space-1); display: flex; flex-direction: column; gap: var(--space-1); align-items: center; justify-content: center; font-size: var(--text-xs); line-height: 1.25; text-align: center; min-height: calc(var(--space-8) + var(--space-5)); overflow-wrap: anywhere; }
    .control-panel main.container.control-main { padding-bottom: calc(var(--space-8) * 2 + env(safe-area-inset-bottom)); }
    .control-header .control-clock { display: none; }
    .control-header .control-view-page span { display: none; }
    .control-header .control-view-page { padding-inline: var(--space-2); }
}
@media (max-width: 47.9375rem) {
    .control-panel .control-header .control-header-inner { flex-wrap: wrap; column-gap: var(--space-2); row-gap: var(--space-1); padding-inline: var(--space-4); }
    .control-panel .control-header .brand { flex: 1; }
    .control-panel .control-header .control-restaurant { order: 3; flex: 1 1 10rem; max-width: none; }
    .control-header-state { order: 4; flex: 0 1 7rem; }
    .control-panel .control-store > summary { padding-left: 0; }
    .control-store-panel { margin-left: var(--space-2); }
    .control-header .control-account > summary { padding: var(--space-2); }
    .control-account > summary > span, .control-account > summary > .ico:last-child, .control-menu-toggle > span { display: none; }
    .control-panel main.container.control-main { padding-inline: var(--space-4); padding-top: var(--space-4); }
    .ops-order-search { flex-basis: 100%; }
    .ops-order-day, .ops-order-status, .ops-order-date { flex: 1 1 9rem; }
    .ops-order-toolbar .ops-order-reset { flex: 1 1 100%; }
    .ops-order-toolbar .ops-order-reset:disabled { display: none; }
    .ops-order-results #live-order-search-help { display: none; }
    .control-panel .ops-order-head .operator-header-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
    .control-panel .ops-order-head .operator-header-actions > .btn:first-child { grid-column: 1 / -1; }
    .control-panel .ops-order-head .operator-header-actions .btn { min-width: 0; width: 100%; white-space: normal; }
    .control-panel .ops-order-head .operator-header-actions > .badge { grid-column: 1 / -1; }
}
@media (max-width: 69.9375rem) {
    .control-panel .ops-order-workspace .bc-cust { display: block; min-width: 0; grid-column: 1 / -1; padding-top: var(--space-2); }
    .control-panel .ops-order-workspace .bc-cust > * { display: inline; }
    .control-panel .ops-order-workspace .ops-row-address::before, .control-panel .ops-order-workspace .ops-row-phone::before { content: ' · '; }
    .control-panel .ops-order-workspace .ops-row-item-summary { white-space: normal; }
}
@media (max-width: 23.9375rem) {
    .ops-order-day, .ops-order-status, .ops-order-date { flex-basis: 100%; }
}
@media (max-height: 32rem) {
    .control-sidebar { display: block; overflow-y: auto; overscroll-behavior: contain; }
    .control-nav-scroll { overflow: visible; }
    .control-nav-head { position: sticky; top: 0; background: var(--card); z-index: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .control-sidebar { transition: none; }
}
@media print {
    .control-panel .control-header, .control-sidebar, .control-tabbar, .control-nav-backdrop { display: none !important; }
    .control-workspace { display: block; }
    .control-panel main.container.control-main { padding: 0; }
}
.control-panel .ops-order-workspace .row-cust { white-space: normal; overflow: visible; }
.ops-order-search-field > kbd { position: absolute; right: var(--space-3); top: 50%; transform: translateY(-50%); font-family: var(--font); color: var(--muted); font-size: var(--text-xs); border: 1px solid var(--line); border-radius: var(--r-sm); padding: var(--space-1); pointer-events: none; }
.control-panel .ops-order-workspace .board-figs { padding-top: var(--space-3); gap: var(--space-1); }
.control-panel .ops-order-workspace .load-strip { padding: var(--space-2) var(--space-4) var(--space-3); }
.control-panel .ops-order-workspace .load-head .board-kicker { display: none; }
.control-panel .ops-order-workspace .load-bars { height: calc(var(--space-8) + var(--space-4)); margin-top: var(--space-2); }
.control-panel .ops-order-workspace .load-verdict { margin-top: var(--space-2); padding-top: var(--space-2); }
.control-panel .control-tabbar a { white-space: normal; }
