/* Kitchen screen (/inventory/kds/) — iOS look, dark by default.
   Tokens on body.kds-full-bleed; .kds-theme-light swaps them. Every
   per-screen setting that changes the look is a body class or a CSS
   variable set by static/js/inventory/kds_screen.js. */

body.kds-full-bleed {
    --k-bg: #000;
    --k-bar: rgba(22,22,24,.82);
    --k-card: #1c1c1e;
    --k-card2: #2c2c2e;
    --k-card3: #3a3a3c;
    --k-sep: rgba(84,84,88,.55);
    --k-label: #fff;
    --k-label2: rgba(235,235,245,.62);
    --k-label3: rgba(235,235,245,.32);
    --k-fill: rgba(120,120,128,.24);
    --k-fill2: rgba(120,120,128,.36);
    --k-blue: #0a84ff;
    --k-green: #30d158;
    --k-orange: #ff9f0a;
    --k-red: #ff453a;
    --k-yellow: #ffd60a;
    --k-teal: #64d2ff;
    --k-indigo: #5e5ce6;
    --k-purple: #bf5af2;
    --k-pink: #ff375f;
    --k-gray: #8e8e93;
    --k-shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 8px 24px rgba(0,0,0,.45);
    --kds-scale: 1;
    --kds-cols: repeat(auto-fill, minmax(calc(320px * var(--kds-scale)), 1fr));
    background: var(--k-bg) !important;
    color: var(--k-label);
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Segoe UI", Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
body.kds-full-bleed.kds-theme-light {
    --k-bg: #f2f2f7;
    --k-bar: rgba(249,249,249,.86);
    --k-card: #fff;
    --k-card2: #f2f2f7;
    --k-card3: #e5e5ea;
    --k-sep: rgba(60,60,67,.2);
    --k-label: #000;
    --k-label2: rgba(60,60,67,.62);
    --k-label3: rgba(60,60,67,.32);
    --k-fill: rgba(120,120,128,.12);
    --k-fill2: rgba(120,120,128,.2);
    --k-blue: #007aff;
    --k-green: #34c759;
    --k-orange: #ff9500;
    --k-red: #ff3b30;
    --k-yellow: #ffcc00;
    --k-teal: #32ade6;
    --k-indigo: #5856d6;
    --k-purple: #af52de;
    --k-gray: #8e8e93;
    --k-shadow: 0 1px 2px rgba(0,0,0,.06), 0 6px 18px rgba(0,0,0,.08);
}
body.kds-text-s  { --kds-scale: .88; }
body.kds-text-m  { --kds-scale: 1; }
body.kds-text-l  { --kds-scale: 1.15; }
body.kds-text-xl { --kds-scale: 1.32; }

/* ── admin chrome off: the screen is the whole viewport ─────────────── */
body.kds-full-bleed .admin-sidebar,
body.kds-full-bleed .admin-header,
body.kds-full-bleed .navbar-admin,
body.kds-full-bleed .admin-mobile-header,
body.kds-full-bleed .admin-bottom-nav,
body.kds-full-bleed #adminOffcanvas,
body.kds-full-bleed .offcanvas-backdrop,
body.kds-full-bleed .lb-report-issue-pill,
body.kds-full-bleed #aiChatFab,
body.kds-full-bleed #aiChatWin { display: none !important; }
body.kds-full-bleed .admin-container ~ div[class*="d-md-none"] { display: none !important; }
body.kds-full-bleed .admin-main {
    margin-left: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    background: var(--k-bg) !important;
    color: var(--k-label);
    min-height: 100vh;
}
.kds-page { padding: 0 14px 40px; }

/* ── start overlay ─────────────────────────────────────────────────── */
.kds-start {
    position: fixed; inset: 0; z-index: 9999;
    display: flex; align-items: center; justify-content: center;
    background: radial-gradient(120% 90% at 50% 0%, #1c1c1e 0%, #000 70%);
    color: #fff; text-align: center; padding: 24px;
}
.kds-start.d-none { display: none !important; }
.kds-start-ico { width: 84px; height: 84px; border-radius: 22px; margin: 0 auto 18px;
    display: flex; align-items: center; justify-content: center; font-size: 42px;
    background: linear-gradient(145deg, #ff9f0a, #ff453a); box-shadow: 0 16px 40px rgba(255,69,58,.35); }
.kds-start h1 { font-size: 28px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 4px; }
.kds-start p { color: rgba(235,235,245,.6); font-size: 15px; margin: 0 0 26px; }
.kds-start-btn { border: 0; border-radius: 16px; padding: 16px 34px; font-size: 18px; font-weight: 600;
    color: #fff; background: #0a84ff; min-width: 260px; box-shadow: 0 10px 30px rgba(10,132,255,.35); }
.kds-start-btn:active { transform: scale(.98); filter: brightness(.92); }
.kds-start small { display: block; margin-top: 14px; color: rgba(235,235,245,.45); font-size: 13px; }

/* ── top bar ───────────────────────────────────────────────────────── */
.kds-bar {
    position: sticky; top: 0; z-index: 1030;
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px;
    margin: 0 -14px 10px; padding: 10px 14px;
    padding-top: max(10px, env(safe-area-inset-top));
    background: var(--k-bar);
    -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
    border-bottom: .5px solid var(--k-sep);
}
.kds-title { display: flex; align-items: center; gap: 8px; min-width: 0; margin-right: 4px; }
.kds-title-home { width: 34px; height: 34px; border-radius: 10px; flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--k-fill); color: var(--k-label) !important; text-decoration: none; font-size: 16px; }
.kds-title-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.1; }
.kds-title-text b { font-size: 17px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 38vw; }
.kds-title-text small { font-size: 12px; color: var(--k-label2); display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.kds-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--k-gray); flex: 0 0 auto; }
.kds-live-dot.is-live { background: var(--k-green); box-shadow: 0 0 0 0 rgba(48,209,88,.6); animation: kdsLive 2s infinite; }
.kds-live-dot.is-warn { background: var(--k-orange); }
.kds-live-dot.is-off { background: var(--k-red); }
@keyframes kdsLive { 0% { box-shadow: 0 0 0 0 rgba(48,209,88,.55); } 70% { box-shadow: 0 0 0 7px rgba(48,209,88,0); } 100% { box-shadow: 0 0 0 0 rgba(48,209,88,0); } }
#statusIndicator { display: none !important; }

.kds-seg { display: inline-flex; padding: 2px; border-radius: 10px; background: var(--k-fill); gap: 0; flex: 0 0 auto; }
.kds-seg > button, .kds-seg > a {
    border: 0; background: transparent; color: var(--k-label); text-decoration: none;
    font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 8px; line-height: 1.2;
    display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; cursor: pointer;
}
.kds-seg > .active { background: var(--k-card3); box-shadow: 0 3px 8px rgba(0,0,0,.12), 0 3px 1px rgba(0,0,0,.04); }
body.kds-theme-light .kds-seg > .active { background: #fff; }
.kds-seg > button:not(.active):hover, .kds-seg > a:not(.active):hover { color: var(--k-label); background: var(--k-fill); }
.kds-seg .kds-seg-n { font-size: 11px; font-weight: 700; color: var(--k-label2); }

.kds-bar-spacer { flex: 1 1 auto; }
.kds-bar-btn {
    border: 0; border-radius: 999px; background: var(--k-fill); color: var(--k-label);
    height: 34px; min-width: 34px; padding: 0 12px; font-size: 13px; font-weight: 600;
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap;
    text-decoration: none; cursor: pointer; position: relative;
}
.kds-bar-btn:hover { background: var(--k-fill2); color: var(--k-label); }
.kds-bar-btn.is-icon { padding: 0; width: 34px; font-size: 16px; }
.kds-bar-btn.is-on { background: color-mix(in srgb, var(--k-green) 22%, transparent); color: var(--k-green); }
.kds-bar-btn.is-warn { background: color-mix(in srgb, var(--k-orange) 20%, transparent); color: var(--k-orange); }
.kds-bar-btn.is-red { background: color-mix(in srgb, var(--k-red) 20%, transparent); color: var(--k-red); }
.kds-bar-btn .kds-badge { position: absolute; top: -3px; right: -3px; min-width: 17px; height: 17px; border-radius: 9px;
    background: var(--k-red); color: #fff; font-size: 10px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; }
.kds-eta-pill { font-size: 12px; font-weight: 600; color: var(--k-label2); background: var(--k-fill); border-radius: 999px; padding: 7px 10px; white-space: nowrap; }
.kds-bar .kds-updated { font-size: 12px; color: var(--k-label3); white-space: nowrap; }

/* the channel button from _kitchen_channel.html, the guest chat button */
body.kds-full-bleed #kchBtn, body.kds-full-bleed #cchBtn {
    border: 0 !important; border-radius: 999px !important; background: var(--k-fill) !important; color: var(--k-label) !important;
    height: 34px; padding: 0 12px; font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 4px;
}
body.kds-full-bleed #kchBtn.kch-alert, body.kds-full-bleed #cchBtn.cch-alert { background: var(--k-red) !important; color: #fff !important; }

/* «⋯» menu */
.kds-menu { position: relative; }
.kds-menu-list {
    position: absolute; right: 0; top: calc(100% + 8px); z-index: 1040; min-width: 250px;
    background: color-mix(in srgb, var(--k-card) 94%, transparent);
    -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
    border-radius: 14px; box-shadow: 0 18px 50px rgba(0,0,0,.45); overflow: hidden; display: none;
}
.kds-menu.open .kds-menu-list { display: block; }
.kds-menu-list > a, .kds-menu-list > button, .kds-menu-list > .kds-menu-row {
    display: flex; align-items: center; gap: 10px; width: 100%; border: 0; background: transparent;
    color: var(--k-label); text-decoration: none; text-align: left; padding: 11px 14px; font-size: 15px; cursor: pointer;
}
.kds-menu-list > * + * { border-top: .5px solid var(--k-sep); }
.kds-menu-list > a:hover, .kds-menu-list > button:hover { background: var(--k-fill); }
.kds-menu-list i { width: 20px; text-align: center; color: var(--k-label2); }
.kds-menu-list .kds-menu-sub { margin-left: auto; font-size: 13px; color: var(--k-label2); }
.kds-menu-h { font-size: 12px; color: var(--k-label2); padding: 8px 14px 4px !important; cursor: default !important; }

/* ── filter chips ──────────────────────────────────────────────────── */
#kdsFilters { display: flex; gap: 6px; margin: 0 0 12px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; flex-wrap: nowrap; }
#kdsFilters::-webkit-scrollbar { display: none; }
#kdsFilters .kds-filter-sep { flex: 0 0 1px; background: var(--k-sep); margin: 4px 2px; }
.kds-filter-btn {
    flex: 0 0 auto; border: 0; border-radius: 999px; background: var(--k-fill); color: var(--k-label);
    padding: 7px 12px; font-size: 13px; font-weight: 600; white-space: nowrap; display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
}
.kds-filter-btn i { color: var(--k-label2); }
.kds-filter-btn .filter-count { font-size: 11px; font-weight: 700; color: var(--k-label2); background: var(--k-fill); border-radius: 999px; padding: 1px 6px; }
.kds-filter-btn.active { background: var(--k-label); color: var(--k-bg); }
.kds-filter-btn.active i, .kds-filter-btn.active .filter-count { color: var(--k-bg); }
.kds-filter-btn.active .filter-count { background: color-mix(in srgb, var(--k-bg) 18%, transparent); }
.kds-filter-btn.is-empty:not(.active) { display: none; }

#prepFilterBanner { background: color-mix(in srgb, var(--k-blue) 16%, transparent); color: var(--k-label); border: 0; border-radius: 12px; }
#prepFilterBanner .btn { border-radius: 999px; border: 0; background: var(--k-fill2); color: var(--k-label); }

/* ── the board ─────────────────────────────────────────────────────── */
#ordersContainer, .kds-board {
    display: grid !important;
    grid-template-columns: var(--kds-cols);
    grid-auto-rows: min-content;
    grid-auto-flow: dense;
    gap: 12px;
    align-items: start;
}
.kds-order-col.filtered-out { display: none !important; }

/* status colour per card — one variable the header, pill and border read */
.kds-card { --st: var(--k-gray); }
.kds-card.kds-status-pending   { --st: var(--k-yellow); }
.kds-card.kds-status-accepted  { --st: var(--k-teal); }
.kds-card.kds-status-preparing { --st: var(--k-orange); }
.kds-card.kds-status-ready     { --st: var(--k-green); }
.kds-card.kds-status-completed { --st: var(--k-gray); }
.kds-card.kds-status-cancelled { --st: var(--k-red); }
.kds-card.kds-status-preorder  { --st: var(--k-purple); }
.kds-card.kds-awaiting-approval { --st: var(--k-orange); box-shadow: 0 0 0 2px var(--k-orange), var(--k-shadow) !important; }

.card.kds-card {
    background: var(--k-card); color: var(--k-label);
    border: 0 !important; border-radius: calc(16px * var(--kds-scale)); overflow: hidden;
    box-shadow: var(--k-shadow);
    display: flex; flex-direction: column; min-width: 0; cursor: zoom-in;
    transition: box-shadow .2s, transform .12s, opacity .2s;
}
.kds-card > .card-header {
    position: relative; background: color-mix(in srgb, var(--st) 15%, var(--k-card));
    border: 0; border-top: 5px solid var(--st); border-radius: 0 !important;
    padding: calc(10px * var(--kds-scale)) calc(12px * var(--kds-scale)) calc(9px * var(--kds-scale));
    color: var(--k-label); cursor: pointer;
}
.kds-head-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.kds-num { font-size: calc(22px * var(--kds-scale)); font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.kds-chan { display: inline-flex; align-items: center; gap: 4px; font-size: calc(12px * var(--kds-scale)); font-weight: 700;
    color: var(--k-label); background: var(--k-fill); border-radius: 999px; padding: 3px 9px; white-space: nowrap; max-width: 46%; overflow: hidden; text-overflow: ellipsis; }
.kds-chan i { font-size: .95em; color: var(--k-label2); }
.kds-chan-table, .kds-chan-qr { background: color-mix(in srgb, var(--k-blue) 22%, transparent); }
.kds-chan-delivery { background: color-mix(in srgb, var(--k-green) 20%, transparent); }
.kds-chan-phone { background: color-mix(in srgb, var(--k-indigo) 26%, transparent); }
.kds-chan-preorder { background: color-mix(in srgb, var(--k-purple) 24%, transparent); }
.kds-chan.kds-chan-big { font-size: calc(26px * var(--kds-scale)); font-weight: 800; padding: 4px 14px; max-width: 60%; }
.kds-table-foot { display: flex; align-items: center; justify-content: center; gap: 8px;
    font-size: calc(30px * var(--kds-scale)); font-weight: 800; line-height: 1.1; color: var(--k-label);
    background: color-mix(in srgb, var(--k-blue) 22%, transparent); border-radius: 12px; padding: calc(6px * var(--kds-scale)) 10px; }
.kds-table-foot i { font-size: .6em; color: var(--k-label2); }
.kds-head-right { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.kds-time { font-weight: 700; font-size: calc(14px * var(--kds-scale)); font-variant-numeric: tabular-nums; white-space: nowrap; }
.kds-eta { font-size: calc(12px * var(--kds-scale)); color: var(--k-label2); display: inline-flex; gap: 3px; align-items: center; white-space: nowrap; }
.kds-age { font-size: calc(13px * var(--kds-scale)); font-weight: 800; font-variant-numeric: tabular-nums; border-radius: 7px; padding: 2px 7px;
    background: var(--k-fill); color: var(--k-label); white-space: nowrap; }
.kds-age:empty { display: none; }
.kds-age.is-warn { background: color-mix(in srgb, var(--k-orange) 26%, transparent); color: var(--k-orange); }
.kds-age.is-late { background: var(--k-red); color: #fff; }
.kds-order-col.is-late .card.kds-card { box-shadow: 0 0 0 2px var(--k-red), var(--k-shadow); }
body.kds-flash-late .kds-order-col.is-late .card.kds-card { animation: kdsLate 1.6s ease-in-out infinite; }
@keyframes kdsLate { 0%,100% { box-shadow: 0 0 0 2px var(--k-red), var(--k-shadow); } 50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--k-red) 35%, transparent), var(--k-shadow); } }
body.kds-no-timer .kds-age { display: none !important; }

.kds-icon-btn { border: 0; background: var(--k-fill); color: var(--k-label); width: 30px; height: 30px; border-radius: 9px;
    display: inline-flex; align-items: center; justify-content: center; font-size: 14px; position: relative; padding: 0; cursor: pointer; }
.kds-icon-btn.has-unread { background: var(--k-orange); color: #000; }
.kds-dot-count { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; border-radius: 8px; background: var(--k-red); color: #fff;
    font-size: 10px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; }
body.kds-focused .kds-focused-card .kds-maximize-btn { display: none; }

.kds-head-status { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.kds-status-pill { font-size: calc(11px * var(--kds-scale)); font-weight: 800; text-transform: uppercase; letter-spacing: .04em;
    color: var(--st); background: color-mix(in srgb, var(--st) 18%, transparent); border-radius: 6px; padding: 2px 7px; }
body.kds-theme-light .kds-card.kds-status-pending .kds-status-pill { color: #8a6d00; }
.kds-status-sub { font-size: 12px; color: var(--k-label2); }
.kds-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.kds-chips:empty { display: none; }
.kds-chip { display: inline-flex; align-items: center; gap: 4px; font-size: calc(12px * var(--kds-scale)); font-weight: 600; color: var(--k-label);
    background: var(--k-fill); border-radius: 7px; padding: 3px 8px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }
.kds-chip i { color: var(--k-label2); }
.kds-chip-link { color: var(--k-blue) !important; }
.kds-chip-link i { color: var(--k-green); }
.kds-chip-red { background: color-mix(in srgb, var(--k-red) 22%, transparent); color: var(--k-red); cursor: pointer; }
.kds-chip-red i, .kds-chip-green i, .kds-chip-amber i, .kds-chip-blue i { color: inherit; }
.kds-chip-green { background: color-mix(in srgb, var(--k-green) 20%, transparent); color: var(--k-green); cursor: pointer; }
.kds-chip-amber { background: color-mix(in srgb, var(--k-orange) 20%, transparent); color: var(--k-orange); }
.kds-chip-blue { background: color-mix(in srgb, var(--k-blue) 20%, transparent); color: var(--k-blue); cursor: pointer; }
.kds-card > .card-header::after {
    content: '\F282'; font-family: 'bootstrap-icons'; position: absolute; right: 10px; bottom: 6px;
    font-size: 11px; color: var(--k-label3); transition: transform .2s;
}
.kds-order-col.kds-collapsed .card-header::after { transform: rotate(180deg); }
.kds-order-col.kds-collapsed .card-body, .kds-order-col.kds-collapsed .card-footer { display: none !important; }

.kds-fiscal-steps { width: 100%; margin-top: 8px; padding: 9px 10px; background: var(--k-card2); border-radius: 10px; font-size: 12px; }
.kds-fstep { display: flex; align-items: center; gap: 6px; padding: 1px 0; color: var(--k-label3); }
.kds-fstep.is-done { color: var(--k-green); }
.kds-fstep.is-active { color: var(--k-orange); font-weight: 600; }
.kds-fstep.is-error { color: var(--k-red); font-weight: 700; }
.kds-fstep-msg { margin-top: 6px; color: var(--k-red); }
.kds-fdocs { margin-top: 8px; border-top: .5px solid var(--k-sep); padding-top: 6px; }
.kds-fdocs-h { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--k-label2); margin-bottom: 3px; }
.kds-fdoc { display: flex; gap: 6px; align-items: center; }
.kds-fdoc-mark { flex: 1; text-align: right; font-weight: 600; color: var(--k-green); }
.kds-fdoc-mark.is-error { color: var(--k-red); }
.kds-fdoc-mark.is-pending { color: var(--k-orange); }
.kds-fdoc a { color: var(--k-blue); }

/* banners over the header */
.kds-banner { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 7px 12px;
    font-size: calc(12px * var(--kds-scale)); font-weight: 800; letter-spacing: .03em; color: #fff; }
.kds-banner i { margin-right: 5px; }
.kds-banner-approval { background: linear-gradient(135deg, #b45309, #ff9f0a); }
.kds-banner-preorder { display: block; background: linear-gradient(135deg, #5e5ce6, #bf5af2); text-transform: uppercase; }
.kds-banner-phone { background: linear-gradient(135deg, #1f7a45, #0a84ff); }
.kds-banner-actions { display: inline-flex; gap: 5px; }
.preorder-countdown { margin-top: 5px; font-size: 12px; font-weight: 700; text-transform: none; border-radius: 7px; padding: 3px 8px; background: rgba(255,255,255,.14); display: inline-block; }
.preorder-countdown:empty { display: none; }
.preorder-countdown.is-amber { background: rgba(255,214,10,.25); }
.preorder-countdown.is-red { background: rgba(255,69,58,.45); }
.preorder-time { font-weight: 700; text-transform: none; }

/* ── card body ─────────────────────────────────────────────────────── */
.kds-card > .card-body { padding: calc(10px * var(--kds-scale)) calc(12px * var(--kds-scale)) calc(6px * var(--kds-scale)); overflow: visible !important; flex: none !important; }
.kds-note { display: flex; gap: 8px; align-items: flex-start; border-radius: 10px; padding: 8px 10px; margin-bottom: 8px;
    font-size: calc(14px * var(--kds-scale)); font-weight: 700; line-height: 1.3; word-break: break-word; }
.kds-note-red { background: color-mix(in srgb, var(--k-red) 20%, transparent); color: var(--k-label); box-shadow: inset 3px 0 0 var(--k-red); }
.kds-note-red i { color: var(--k-red); }
.kds-note-warn { background: color-mix(in srgb, var(--k-yellow) 22%, transparent); box-shadow: inset 3px 0 0 var(--k-yellow); }
.kds-addr { background: var(--k-card2); border-radius: 10px; padding: 8px 10px; margin-bottom: 8px; }
.kds-addr-row { display: flex; align-items: flex-start; gap: 8px; }
.kds-addr-text { flex: 1; min-width: 0; font-size: calc(13.5px * var(--kds-scale)); font-weight: 700; word-break: break-word; }
.kds-addr-text i { color: var(--k-red); margin-right: 4px; }
.kds-addr-verify { margin-top: 8px; }
.kds-gps { display: flex; align-items: center; gap: 8px; background: var(--k-card2); border-radius: 10px; padding: 7px 10px; margin-bottom: 8px; font-size: 13px; }
.kds-gps > i { color: var(--k-blue); }
.kds-gps .gps-address { flex: 1; min-width: 0; color: var(--k-label2); }
.kds-gps .gps-address.fw-bold { color: var(--k-label); }
.kds-addr-edit-wrap { margin-bottom: 6px; }
.kds-link-btn { border: 0; background: transparent; color: var(--k-blue); font-size: 13px; font-weight: 600; padding: 2px 0; display: inline-flex; gap: 5px; align-items: center; }
.kds-addr-edit { margin-top: 6px; }
.kds-input, .kds-select, .kds-card .form-control, .kds-card .form-select {
    width: 100%; border: 0; border-radius: 10px; background: var(--k-card2); color: var(--k-label);
    padding: 9px 11px; font-size: 14px; outline: none; box-shadow: none;
}
.kds-input::placeholder { color: var(--k-label3); }
.kds-select { width: auto; flex: 1 1 auto; min-width: 0; padding: 7px 10px; font-size: 13px; }
.kds-addr-results { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 100; max-height: 190px; overflow-y: auto;
    background: var(--k-card3); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.4); }
.kds-addr-result { padding: 9px 11px; font-size: 13px; cursor: pointer; }
.kds-addr-result + .kds-addr-result { border-top: .5px solid var(--k-sep); }
.kds-addr-result:hover { background: var(--k-fill); }
.kds-verify-wait { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--k-label2); padding: 6px 0; }
.kds-verify-box { margin-top: 8px; border-radius: 10px; padding: 9px; background: color-mix(in srgb, var(--k-yellow) 12%, transparent); display: grid; gap: 6px; }
.kds-verify-box.is-red { background: color-mix(in srgb, var(--k-red) 14%, transparent); }
.kds-verify-box.is-green { background: color-mix(in srgb, var(--k-green) 14%, transparent); }
.kds-verify-h { font-size: 12px; font-weight: 800; color: var(--k-orange); }
.kds-verify-h.is-red { color: var(--k-red); }
.kds-verify-h.is-green { color: var(--k-green); }
.kds-verify-row { display: flex; gap: 6px; }
.kds-verify-sub { font-size: 12px; color: var(--k-label2); }
.kds-spin { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--k-fill2); border-top-color: var(--k-orange); animation: kdsSpin .8s linear infinite; flex: 0 0 auto; }
@keyframes kdsSpin { to { transform: rotate(360deg); } }

.kds-call-live { text-align: center; border-radius: 12px; padding: 18px 12px; background: color-mix(in srgb, var(--k-indigo) 16%, transparent);
    box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--k-indigo) 60%, transparent); }
.kds-call-live-t { font-size: 16px; font-weight: 800; color: var(--k-label); }
.kds-call-live-t i { color: var(--k-indigo); margin-right: 5px; }
.kds-call-live-s { font-size: 13px; color: var(--k-label2); margin-top: 3px; }

/* lines */
.kds-lines { list-style: none; margin: 0; padding: 0; }
.kds-line { padding: calc(7px * var(--kds-scale)) 0; border-top: .5px solid var(--k-sep); }
.kds-lines > .kds-line:first-child { border-top: 0; }
.kds-line-main { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kds-line-name { font-size: calc(19px * var(--kds-scale)); font-weight: 700; line-height: 1.22; word-break: break-word; min-width: 0; }
.kds-qty { color: var(--k-orange); font-weight: 800; margin-right: 5px; font-variant-numeric: tabular-nums; }
body.kds-theme-light .kds-qty { color: #c2410c; }
.kds-code { display: inline-block; font-size: .62em; font-weight: 700; color: var(--k-label2); background: var(--k-fill); border-radius: 5px; padding: 1px 5px; vertical-align: middle; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.kds-mods { margin: 2px 0 0 2px; }
.kds-mod { font-size: calc(14px * var(--kds-scale)); font-weight: 600; color: var(--k-teal); line-height: 1.3; }
body.kds-theme-light .kds-mod { color: #0369a1; }
.kds-item-note { margin-top: 4px; font-size: calc(13.5px * var(--kds-scale)); font-weight: 600; font-style: italic; border-radius: 8px; padding: 5px 8px;
    background: color-mix(in srgb, var(--k-yellow) 18%, transparent); color: var(--k-label); display: flex; gap: 6px; align-items: flex-start; }
.kds-item-note i { color: var(--k-yellow); font-style: normal; }
body.kds-theme-light .kds-item-note i { color: #a16207; }
.kds-line.kds-line-ready .kds-line-name { color: var(--k-green); }
.kds-line.kds-line-served .kds-line-name { color: var(--k-label3); text-decoration: line-through; }
.kds-line.kds-line-served .kds-qty { color: var(--k-label3); }
.kds-line-ready-btn { flex: 0 0 auto; border: 1.5px solid var(--k-green); background: transparent; color: var(--k-green); border-radius: 999px;
    padding: 5px 12px; font-size: calc(13px * var(--kds-scale)); font-weight: 700; display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; cursor: pointer; }
.kds-line.kds-line-ready .kds-line-ready-btn { background: var(--k-green); color: #000; }
.kds-line.kds-line-served .kds-line-ready-btn { border-color: var(--k-fill2); color: var(--k-label3); background: transparent; }
.kds-course-block { margin-bottom: 8px; }
.kds-course-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 2px 0 2px; }
.kds-course-label { font-size: calc(12px * var(--kds-scale)); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--k-label2); }
.kds-course-n { display: inline-block; margin-left: 4px; color: var(--k-label3); }
/* «like the slip»: each Πάσο starts under a double rule, its title large */
.kds-course-block.is-slip + .kds-course-block.is-slip { border-top: 3px double var(--k-sep); padding-top: 6px; }
.kds-course-block.is-slip .kds-course-label { font-size: calc(17px * var(--kds-scale)); color: var(--k-label); letter-spacing: .08em; }
.kds-tag { display: inline-block; font-size: .55em; font-weight: 700; vertical-align: middle; margin-left: 5px; border-radius: 999px; padding: 2px 7px; background: var(--k-fill); color: var(--k-label2); }
.kds-tag-amber { background: color-mix(in srgb, var(--k-orange) 22%, transparent); color: var(--k-orange); }
.kds-tag-blue { background: color-mix(in srgb, var(--k-blue) 22%, transparent); color: var(--k-blue); font-size: 11px; }
.kds-tag-green { background: color-mix(in srgb, var(--k-green) 22%, transparent); color: var(--k-green); font-size: 11px; }
.kds-items-compact { font-size: calc(14px * var(--kds-scale)); line-height: 1.5; }
.kds-item-chip { display: inline-block; margin: 2px 4px 2px 0; padding: 3px 9px; background: var(--k-fill); border-radius: 999px; font-weight: 600; }
.kds-item-qty { color: var(--k-orange); font-weight: 800; margin-right: 4px; }
.kds-item-mod { display: block; font-size: 12px; color: var(--k-teal); font-weight: 500; }
.kds-compact-foot { font-size: 12px; color: var(--k-label2); margin-top: 6px; }
.kds-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 8px; padding-top: 8px; border-top: .5px solid var(--k-sep); font-size: 13px; color: var(--k-label2); }
.kds-total strong { font-size: calc(18px * var(--kds-scale)); color: var(--k-label); font-variant-numeric: tabular-nums; }
.kds-driver { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding: 8px 10px; background: var(--k-card2); border-radius: 10px; font-size: 13px; }
.kds-driver > i { color: var(--k-blue); }
.kds-driver-name { font-weight: 700; }
.kds-driver .kds-tag { margin-left: auto; }
.kds-driver-wait { color: var(--k-orange); font-weight: 700; }

/* ── footer & buttons ──────────────────────────────────────────────── */
.kds-card > .card-footer { background: transparent; border: 0; padding: calc(6px * var(--kds-scale)) calc(12px * var(--kds-scale)) calc(12px * var(--kds-scale)); }
.kds-card > .card-footer .d-grid { gap: 8px !important; }
.kds-btn {
    border: 0; border-radius: 12px; min-height: calc(46px * var(--kds-scale)); padding: 0 14px;
    font-size: calc(15px * var(--kds-scale)); font-weight: 700; letter-spacing: .01em;
    display: inline-flex; align-items: center; justify-content: center; gap: 7px; cursor: pointer; text-decoration: none;
    background: var(--k-fill); color: var(--k-label); transition: transform .1s, filter .1s;
}
.kds-btn:active { transform: scale(.98); filter: brightness(.92); }
.kds-btn[disabled] { opacity: .5; }
.kds-btn-green { background: var(--k-green); color: #000; }
.kds-btn-orange { background: var(--k-orange); color: #000; }
.kds-btn-blue { background: var(--k-blue); color: #fff; }
.kds-btn-amber { background: var(--k-orange); color: #000; }
.kds-btn-pay { background: color-mix(in srgb, var(--k-green) 20%, transparent); color: var(--k-green); }
.kds-btn-red-tint { background: color-mix(in srgb, var(--k-red) 16%, transparent); color: var(--k-red); }
.kds-btn-plain { background: var(--k-fill); color: var(--k-label); }
.kds-btn-done { background: color-mix(in srgb, var(--k-green) 16%, transparent); color: var(--k-green); cursor: default; }
.kds-btn-sm { min-height: calc(36px * var(--kds-scale)); font-size: calc(13px * var(--kds-scale)); border-radius: 10px; }
.kds-btn-square { flex: 0 0 auto; width: calc(46px * var(--kds-scale)); padding: 0; }
.kds-btn-sm.kds-btn-square { width: calc(36px * var(--kds-scale)); }
.kds-btn.w-100 { width: 100%; }
.kds-accept-row { display: flex; gap: 8px; }
.kds-min { display: inline-flex; align-items: center; gap: 4px; background: var(--k-fill); border-radius: 12px; padding: 0 10px; margin: 0; flex: 0 0 auto; }
.kds-min input { width: 46px; border: 0; background: transparent; color: var(--k-label); font-size: 18px; font-weight: 800; text-align: center; outline: none; }
.kds-min span { font-size: 12px; color: var(--k-label2); }
.kds-tools { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.kds-pill-btn { border: 0; border-radius: 999px; background: var(--k-fill); color: var(--k-label); padding: 6px 12px; font-size: 13px; font-weight: 600;
    display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; cursor: pointer; }
.kds-pill-btn.is-green { background: var(--k-green); color: #000; }
.kds-pill-btn.is-blue { background: var(--k-blue); color: #fff; }
.kds-pill-btn.is-amber { background: color-mix(in srgb, var(--k-orange) 20%, transparent); color: var(--k-orange); }
.kds-pill-btn[disabled] { opacity: .5; }
.kds-mini-btn { border: 0; border-radius: 8px; background: rgba(255,255,255,.18); color: #fff; padding: 4px 8px; font-size: 12px; font-weight: 700;
    display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; cursor: pointer; text-decoration: none; }
.kds-mini-btn.is-warn { background: var(--k-yellow); color: #000; }
.kds-card .kds-mini-btn { background: var(--k-fill); color: var(--k-label); }
.kds-card .kds-mini-btn.is-amber { background: color-mix(in srgb, var(--k-orange) 22%, transparent); color: var(--k-orange); }
.kds-card .kds-banner .kds-mini-btn { background: rgba(255,255,255,.2); color: #fff; }
.kds-approve-panel { display: flex; gap: 8px; }
.kds-approve-panel .kds-btn:first-child { flex: 1.3; }
.kds-approve-panel .kds-btn-red-tint { flex: 1; }
.kds-awaiting-approval .card-footer .d-grid > *:not(.kds-approve-panel) { display: none !important; }
.kds-awaiting-approval .card-body button { pointer-events: none; opacity: .5; }
/* legacy Bootstrap buttons inside a card (fiscal retry, older fragments) */
.kds-card .btn { border-radius: 10px; font-weight: 600; }
.kds-card .btn-outline-secondary, .kds-card .btn-outline-light { background: var(--k-fill); color: var(--k-label); border: 0; }

/* quick mode (café): the whole card is the button */
body.kds-mode-quick .kds-order-col:not(.kds-focused-card) .card.kds-card { cursor: pointer; }
.kds-bump-overlay { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
    background: color-mix(in srgb, var(--k-green) 94%, transparent); color: #000; font-weight: 800; border-radius: inherit; text-align: center; padding: 16px; }
.kds-bump-overlay b { font-size: 26px; }
.kds-bump-overlay button { border: 0; border-radius: 999px; background: rgba(0,0,0,.8); color: #fff; font-weight: 700; padding: 9px 18px; font-size: 15px; }
.kds-order-col { position: relative; }

/* ── strips over the board ─────────────────────────────────────────── */
#ordersContainer > .kds-upcoming {
    grid-column: 1 / -1; background: color-mix(in srgb, var(--k-purple) 14%, var(--k-card)); border-radius: 14px; padding: 10px 12px; color: var(--k-label);
}
#ordersContainer > .kds-upcoming-calls { background: color-mix(in srgb, var(--k-indigo) 16%, var(--k-card)); }
.kds-upcoming-title { font-weight: 800; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--k-label2); margin-bottom: 4px; display: flex; gap: 6px; align-items: center; }
.kds-upcoming-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 5px 0; font-size: 14px; }
.kds-upcoming-row + .kds-upcoming-row { border-top: .5px solid var(--k-sep); }
.kds-upcoming-when { font-weight: 800; min-width: 3rem; font-variant-numeric: tabular-nums; }
.kds-upcoming-who { font-weight: 700; }
.kds-upcoming-dishes { color: var(--k-label2); flex: 1 1 16rem; }
.kds-upcoming-row.is-late .kds-upcoming-when { color: var(--k-orange); }
.kds-upcoming-flag { background: var(--k-red); color: #fff; border-radius: 6px; padding: 1px 7px; font-size: 11px; font-weight: 800; }
.kds-upcoming-send { border: 0; border-radius: 999px; background: var(--k-purple); color: #fff; padding: 5px 12px; font-size: 13px; font-weight: 700; display: inline-flex; gap: 5px; align-items: center; }
.kds-upcoming-send:disabled { opacity: .6; }

.kds-empty { grid-column: 1 / -1; text-align: center; padding: 70px 20px; color: var(--k-label2); }
.kds-empty i { font-size: 54px; color: var(--k-label3); display: block; margin-bottom: 10px; }
.kds-empty-t { font-size: 20px; font-weight: 700; color: var(--k-label); }
.kds-empty-s { font-size: 14px; margin-top: 4px; }

/* today's completed */
.kds-done-wrap { grid-column: 1 / -1; display: grid; grid-template-columns: var(--kds-cols); gap: 12px; align-items: start; }
@media (max-width: 768px) { .kds-done-wrap { grid-template-columns: minmax(0, 1fr); } }
.kds-done-head { grid-column: 1 / -1; display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 800; text-transform: uppercase;
    letter-spacing: .04em; color: var(--k-label2); margin-top: 8px; padding-top: 12px; border-top: .5px solid var(--k-sep); }
.kds-done-head span { font-weight: 700; background: var(--k-fill); border-radius: 999px; padding: 1px 8px; }
.kds-done-card { background: var(--k-card); border-radius: 14px; padding: 10px 12px; opacity: .62; }
.kds-done-top { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.kds-done-top .kds-num { font-size: 17px; }
.kds-done-time { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--k-green); display: inline-flex; gap: 4px; }
.kds-done-items { font-size: 13px; color: var(--k-label2); line-height: 1.45; }

/* History */
.kds-hist-card { background: var(--k-card); border-radius: 14px; padding: 12px; box-shadow: var(--k-shadow); }
.kds-hist-card.is-cancelled { opacity: .7; box-shadow: inset 0 3px 0 var(--k-red), var(--k-shadow); }
.kds-hist-top { display: flex; align-items: center; gap: 8px; }
.kds-hist-top .kds-num { font-size: 19px; }
.kds-hist-when { margin-left: auto; text-align: right; font-weight: 700; font-size: 14px; line-height: 1.1; }
.kds-hist-when small { display: block; font-size: 11px; color: var(--k-label2); font-weight: 500; }
.kds-hist-items { list-style: none; margin: 8px 0 0; padding: 0; font-size: 14px; }
.kds-hist-items li { padding: 3px 0; border-top: .5px solid var(--k-sep); }
.kds-hist-items li:first-child { border-top: 0; }
.kds-hist-times { margin-top: 8px; padding-top: 6px; border-top: .5px solid var(--k-sep); font-size: 12px; color: var(--k-label2); }
.kds-hist-times div { display: flex; justify-content: space-between; }
.kds-hist-times i { margin-right: 4px; }
.kds-hist-times b { color: var(--k-label); }
.kds-hist-times em { font-style: normal; color: var(--k-label3); }
.kds-hist-sub { margin-top: 5px; font-size: 12px; color: var(--k-label2); display: flex; gap: 5px; align-items: center; }
.kds-hist-foot { margin-top: 8px; font-size: 12px; color: var(--k-label2); display: flex; flex-wrap: wrap; gap: 4px; }
.kds-hist-foot .is-green { color: var(--k-green); font-weight: 700; }
.kds-hist-foot .is-red { color: var(--k-red); font-weight: 700; }

/* ── Prep / Πάσο ───────────────────────────────────────────────────── */
.kds-agg { max-width: 1200px; margin: 0 auto; }
.kds-agg-msgs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 10px; padding: 8px 10px;
    background: color-mix(in srgb, var(--k-orange) 14%, var(--k-card)); border-radius: 12px; }
.kds-agg-msgs b { color: var(--k-orange); font-size: 13px; }
.kds-agg-msg { border: 0; border-radius: 999px; background: var(--k-orange); color: #000; font-weight: 800; font-size: 13px; padding: 4px 10px; display: inline-flex; gap: 5px; align-items: center; }
.kds-agg-msg span { background: var(--k-red); color: #fff; border-radius: 999px; padding: 0 6px; font-size: 11px; }
.kds-agg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(calc(220px * var(--kds-scale)), 1fr)); gap: 8px; }
.kds-agg-cat { grid-column: 1 / -1; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--k-label2); margin: 8px 2px 0; }
.kds-agg-cell { position: relative; background: var(--k-card); border-radius: 14px; padding: 10px 12px; box-shadow: var(--k-shadow); }
.kds-agg-open { cursor: pointer; padding-right: 34px; }
.kds-agg-head { display: flex; align-items: baseline; gap: 7px; }
.kds-agg-qty { font-size: calc(26px * var(--kds-scale)); font-weight: 800; color: var(--k-green); line-height: 1; }
.kds-agg-name { font-size: calc(16px * var(--kds-scale)); font-weight: 700; line-height: 1.15; word-break: break-word; }
.kds-agg-sub { font-size: 12px; color: var(--k-label2); margin-top: 3px; }
.kds-agg-sub .is-note { color: var(--k-orange); }
.kds-agg-tables { font-size: 13px; color: var(--k-label); margin-top: 4px; font-weight: 600; }
.kds-agg-bump { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: var(--k-green); color: #000; font-size: 16px; display: inline-flex; align-items: center; justify-content: center; }
.kds-agg-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; gap: 8px; }
.kds-agg-top b { font-size: 15px; color: var(--k-label2); }
.kds-pass-card { background: var(--k-card); border-radius: 14px; padding: 10px; box-shadow: var(--k-shadow); }
.kds-pass-head { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-bottom: 8px; }
.kds-pass-head b { font-size: calc(19px * var(--kds-scale)); }
.kds-pass-item { display: block; width: 100%; text-align: left; border: 0; border-radius: 10px; background: color-mix(in srgb, var(--k-green) 14%, var(--k-card2)); color: var(--k-label);
    padding: 8px 10px; margin-bottom: 6px; cursor: pointer; }
.kds-pass-item .kds-agg-qty { font-size: 17px; }
.kds-pass-item small { display: block; font-size: 11px; color: var(--k-label3); margin-top: 2px; }
.kds-agg-empty { text-align: center; color: var(--k-label2); padding: 60px 10px; }
.kds-agg-empty i { font-size: 44px; color: var(--k-label3); display: block; margin-bottom: 8px; }

/* ── focus mode ────────────────────────────────────────────────────── */
.kds-focus-close { display: none; position: fixed; z-index: 1095; top: 10px; right: 10px; border: 0; border-radius: 999px;
    background: color-mix(in srgb, var(--k-card3) 92%, transparent); color: var(--k-label); padding: 9px 16px; font-size: 14px; font-weight: 700;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.kds-focus-queue { display: none; position: fixed; z-index: 1090; top: 10px; left: 10px; max-width: calc(100vw - 140px); overflow-x: auto; white-space: nowrap; scrollbar-width: none; padding: 2px; }
body.kds-focused .kds-focus-close, body.kds-focused .kds-focus-queue { display: block; }
.kds-queue-chip { display: inline-block; margin-right: 6px; padding: 8px 13px; border: 0; border-radius: 999px; font-size: 14px; font-weight: 800; color: #000; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.35); }
.kds-queue-chip-pending { background: var(--k-yellow); }
.kds-queue-chip-accepted { background: var(--k-teal); }
.kds-queue-chip-preparing { background: var(--k-orange); }
.kds-queue-chip-ready { background: var(--k-green); }
.kds-queue-empty { display: inline-block; padding: 8px 13px; background: var(--k-card3); color: var(--k-green); border-radius: 999px; font-size: 14px; font-weight: 700; }
body.kds-focused .kds-bar, body.kds-focused #kdsFilters, body.kds-focused #historyContainer { display: none !important; }
body.kds-focused #ordersContainer > :not(.kds-focused-card) { display: none !important; }
body.kds-focused #ordersContainer { display: block !important; }
.kds-focused-card { position: fixed !important; inset: 56px 10px 10px !important; z-index: 1080; margin: 0 !important; }
.kds-focused-card > .card { width: 100% !important; height: 100% !important; overflow: hidden !important; cursor: default !important; --kds-fit: 1; }
.kds-focused-card .kds-line-name { font-size: calc(30px * var(--kds-fit, 1)) !important; }
.kds-focused-card .kds-mod { font-size: calc(19px * var(--kds-fit, 1)) !important; }
.kds-focused-card .kds-item-note { font-size: calc(17px * var(--kds-fit, 1)) !important; }
.kds-focused-card .kds-line { padding: calc(11px * var(--kds-fit, 1)) 0 !important; }
.kds-focused-card .kds-items-compact { font-size: calc(18px * var(--kds-fit, 1)); }
.kds-focused-card .card-body { padding: calc(18px * var(--kds-fit, 1)) !important; }
.kds-focused-card .kds-btn { min-height: calc(56px * max(var(--kds-fit, 1), .85)); font-size: calc(17px * max(var(--kds-fit, 1), .85)); }

/* ── sheets: the page's own overlays, iOS dark ─────────────────────── */
.kds-full-modal { position: fixed; inset: 0; z-index: 1080; display: none; background: rgba(0,0,0,.55);
    align-items: flex-end; justify-content: center; padding: 0; overflow-y: auto; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.kds-full-modal[style*="display:flex"], .kds-full-modal[style*="display: flex"], .kds-full-modal[data-open="1"] { display: flex !important; }
@media (min-width: 700px) { .kds-full-modal { align-items: center; padding: 3vh 2vw; } }
.kds-full-modal-panel { background: var(--k-card); color: var(--k-label); border-radius: 16px 16px 0 0; width: 100%; max-width: 720px;
    margin: auto 0 0; box-shadow: 0 -10px 50px rgba(0,0,0,.5); display: flex; flex-direction: column; max-height: 94vh; overflow: hidden; }
@media (min-width: 700px) { .kds-full-modal-panel { border-radius: 16px; margin: auto; } }
.kds-full-modal-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 12px;
    border-bottom: .5px solid var(--k-sep); background: var(--k-card); color: var(--k-label); }
.kds-full-modal-header h4 { font-size: 17px; font-weight: 700; margin: 0; display: flex; align-items: center; gap: 6px; min-width: 0; }
.kds-full-modal-header .btn, .kds-sheet-x { border: 0 !important; border-radius: 50% !important; width: 30px; height: 30px; padding: 0 !important;
    background: var(--k-fill) !important; color: var(--k-label2) !important; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.kds-full-modal-body { padding: 14px 16px calc(18px + env(safe-area-inset-bottom)); overflow-y: auto; font-size: 15px; }
.kds-full-modal-body .text-muted { color: var(--k-label2) !important; }
.kds-full-modal-body .form-label { font-size: 12px; font-weight: 600; color: var(--k-label2); text-transform: uppercase; letter-spacing: .03em; }
.kds-full-modal-body .form-control, .kds-full-modal-body .form-select, #kdsMsgInput {
    background: var(--k-card2) !important; color: var(--k-label) !important; border: 0 !important; border-radius: 10px !important; box-shadow: none !important; }
.kds-full-modal-body .form-control::placeholder { color: var(--k-label3); }
.kds-full-modal-body .form-select { background-image: none !important; }
.kds-full-modal-body .input-group > * { border-radius: 10px !important; }
.kds-full-modal-body .input-group { gap: 6px; flex-wrap: nowrap; }
.kds-full-modal-body .bg-light { background: var(--k-card2) !important; color: var(--k-label); border: 0 !important; }
.kds-full-modal-body .btn { border-radius: 12px; font-weight: 700; border: 0; }
.kds-full-modal-body .btn-outline-secondary, .kds-full-modal-body .btn-outline-light { background: var(--k-fill); color: var(--k-label); }
.kds-full-modal-body .btn-outline-primary { background: color-mix(in srgb, var(--k-blue) 20%, transparent); color: var(--k-blue); }
.kds-full-modal-body .btn-warning { background: var(--k-orange); color: #000; }
.kds-full-modal-body .btn-success { background: var(--k-green); color: #000; }
.kds-full-modal-body .btn-primary { background: var(--k-blue); color: #fff; }
.kds-full-modal-body .form-check-input { background-color: var(--k-card3); border-color: var(--k-sep); }
.kds-full-modal-body .form-check-input:checked { background-color: var(--k-green); border-color: var(--k-green); }
.kds-full-modal-body code { color: var(--k-teal); }
#kdsMsgThread .kds-bubble { max-width: 78%; border-radius: 16px; padding: 7px 11px; }
.kds-canned { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.kds-canned .btn { border-radius: 999px !important; background: var(--k-fill) !important; color: var(--k-label) !important; border: 0 !important; font-size: 13px; font-weight: 600; }
.kds-call-body { font-size: 14px; }
.kds-call-who { color: var(--k-label2); margin-bottom: 8px; }
.kds-call-turn { margin-bottom: 8px; }
.kds-call-q { color: var(--k-blue); font-weight: 700; }
.kds-call-a { color: var(--k-label); }
.kds-call-a i { color: var(--k-green); }
.kds-call-sum { margin-top: 8px; padding-top: 8px; border-top: .5px solid var(--k-sep); color: var(--k-label2); }

/* the kitchen↔floor channel + guest chat overlays (partials, inline styles) */
body.kds-full-bleed #kchModal > div, body.kds-full-bleed #cchModal > div { background: var(--k-card) !important; color: var(--k-label); border-radius: 16px !important; }
body.kds-full-bleed #kchModal > div > div:first-child, body.kds-full-bleed #cchModal > div > div:first-child {
    background: var(--k-card) !important; color: var(--k-label) !important; border-bottom: .5px solid var(--k-sep); }
body.kds-full-bleed #kchModal .btn-close, body.kds-full-bleed #cchModal .btn-close { filter: invert(1) grayscale(1); }
body.kds-full-bleed.kds-theme-light #kchModal .btn-close, body.kds-full-bleed.kds-theme-light #cchModal .btn-close { filter: none; }
body.kds-full-bleed #kchInput, body.kds-full-bleed #cchInput { background: var(--k-card2); color: var(--k-label); border: 0; border-radius: 10px 0 0 10px; }
body.kds-full-bleed #kchThread > div[style*="f1f3f5"] { background: var(--k-card3) !important; color: var(--k-label) !important; }
body.kds-full-bleed #kchCanned .btn { border-radius: 999px; background: var(--k-fill); color: var(--k-label); border: 0; }

/* ── settings sheet ────────────────────────────────────────────────── */
.kds-set { position: fixed; inset: 0; z-index: 1085; display: none; background: rgba(0,0,0,.55); align-items: flex-end; justify-content: center; }
.kds-set.open { display: flex; }
@media (min-width: 700px) { .kds-set { align-items: center; } }
.kds-set-panel { width: 100%; max-width: 640px; max-height: 94vh; background: var(--k-bg); color: var(--k-label); border-radius: 16px 16px 0 0;
    display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 -10px 50px rgba(0,0,0,.5); }
body.kds-theme-dark .kds-set-panel, body.kds-full-bleed:not(.kds-theme-light) .kds-set-panel { background: #000; }
@media (min-width: 700px) { .kds-set-panel { border-radius: 16px; max-height: 90vh; } }
.kds-set-bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 10px 12px; background: var(--k-bar);
    border-bottom: .5px solid var(--k-sep); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
.kds-set-bar b { grid-column: 2; font-size: 17px; font-weight: 700; text-align: center; white-space: nowrap; }
.kds-set-bar button { grid-column: 3; justify-self: end; border: 0; background: none; color: var(--k-blue); font-size: 17px; font-weight: 600; padding: 4px 6px; }
.kds-set-tabs { padding: 10px 16px 0; }
.kds-set-tabs .kds-seg { width: 100%; }
.kds-set-tabs .kds-seg > button { flex: 1; justify-content: center; }
.kds-set-body { overflow-y: auto; padding: 0 0 calc(26px + env(safe-area-inset-bottom)); }
.kds-set-msg { margin: 8px 16px 0; font-size: 13px; min-height: 18px; }
.kds-set-msg.is-ok { color: var(--k-green); }
.kds-set-msg.is-err { color: var(--k-red); }
.kds-gh { font-size: 12.5px; color: var(--k-label2); text-transform: uppercase; letter-spacing: .02em; margin: 22px 32px 7px; }
.kds-gf { font-size: 12.5px; color: var(--k-label2); margin: 7px 32px 0; line-height: 1.35; }
.kds-group { background: var(--k-card); border-radius: 12px; margin: 0 16px; overflow: hidden; }
.kds-row { position: relative; display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 8px 16px; font-size: 16px; margin: 0; cursor: default; color: var(--k-label); }
.kds-row + .kds-row::before { content: ""; position: absolute; top: 0; left: 16px; right: 0; border-top: .5px solid var(--k-sep); }
.kds-row.has-ico + .kds-row.has-ico::before { left: 57px; }
.kds-row-t { flex: 1 1 auto; min-width: 0; line-height: 1.25; }
.kds-row-t small { display: block; font-size: 12.5px; color: var(--k-label2); margin-top: 1px; }
.kds-row-v { color: var(--k-label2); font-size: 15px; white-space: nowrap; }
.kds-ico { width: 29px; height: 29px; border-radius: 7px; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; flex: 0 0 auto; }
label.kds-row, .kds-row.is-tap { cursor: pointer; }
.kds-row.is-tap:active { background: var(--k-fill); }
.kds-sw { -webkit-appearance: none; appearance: none; width: 51px; height: 31px; border-radius: 999px; background: var(--k-fill2); position: relative;
    flex: 0 0 auto; cursor: pointer; transition: background .2s; margin: 0; border: 0; outline: none; }
.kds-sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: 27px; height: 27px; border-radius: 50%; background: #fff;
    box-shadow: 0 3px 8px rgba(0,0,0,.15), 0 1px 1px rgba(0,0,0,.16); transition: transform .2s; }
.kds-sw:checked { background: var(--k-green); }
.kds-sw:checked::after { transform: translateX(20px); }
.kds-row select, .kds-row input[type=number], .kds-row input[type=text] {
    border: 0; background: var(--k-fill); color: var(--k-label); border-radius: 8px; padding: 6px 10px; font-size: 15px; outline: none; max-width: 55%; }
.kds-row input[type=number] { width: 78px; text-align: center; }
.kds-row input[type=range] { flex: 0 0 150px; accent-color: var(--k-green); }
.kds-row .kds-seg { margin-left: auto; }
.kds-row .kds-seg > button { padding: 6px 10px; }
.kds-row-danger { color: var(--k-red); justify-content: center; font-weight: 600; }
.kds-row-blue { color: var(--k-blue); }
.kds-presets { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 0 16px; }
.kds-preset { border: 0; border-radius: 12px; background: var(--k-card); color: var(--k-label); padding: 12px; text-align: left; display: flex; gap: 10px; align-items: center; font-weight: 600; font-size: 15px; }
.kds-preset i { font-size: 20px; }
.kds-preset:active { transform: scale(.98); }
.kds-set-table { width: 100%; font-size: 13px; }
.kds-set-table th { font-size: 11px; font-weight: 600; color: var(--k-label2); text-transform: uppercase; padding: 8px 6px; text-align: center; }
.kds-set-table th:first-child, .kds-set-table td:first-child { text-align: left; padding-left: 16px; }
.kds-set-table td { padding: 8px 6px; text-align: center; border-top: .5px solid var(--k-sep); }
.kds-set-table td small { display: block; color: var(--k-label2); font-size: 11px; }
.kds-set-table input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--k-green); }
.kds-set-screens .kds-row .kds-cur { color: var(--k-blue); font-size: 18px; }

/* ── phones ────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .kds-page { padding: 0 10px 40px; }
    .kds-bar { margin: 0 -10px 8px; padding-left: 10px; padding-right: 10px; gap: 8px; }
    #ordersContainer, .kds-board { grid-template-columns: minmax(0, 1fr) !important; }
    .kds-bar #kdsTabs, .kds-bar .kds-refresh { display: none !important; }
    .kds-bar .kds-hide-phone { display: none !important; }
    .kds-title-text b { max-width: 44vw; }
    .kds-bar .kds-seg > button, .kds-bar .kds-seg > a { padding: 6px 10px; }
    .kds-bar .kds-seg-label { display: none; }
    .kds-focused-card { inset: 52px 6px 6px !important; }
}
@media (min-width: 769px) {
    .kds-bar .kds-show-phone { display: none !important; }
}

/* per-screen «hide» switches */
body.kds-no-filters #kdsFilters { display: none !important; }
body.kds-no-prep #kdsViewToggle [data-view="prep"] { display: none !important; }
body.kds-no-history #kdsTabs { display: none !important; }
body.kds-no-portions .kds-portions { display: none !important; }
body.kds-no-channel .kds-channel-wrap { display: none !important; }

/* native controls, scrollbars follow the theme */
body.kds-full-bleed { color-scheme: dark; }
body.kds-full-bleed.kds-theme-light { color-scheme: light; }

/* one row on a 10–13" screen: labels step aside before the bar wraps */
@media (max-width: 1499px) {
    .kds-bar .kds-lbl-wide, .kds-bar .kds-updated { display: none !important; }
    body.kds-full-bleed #kchBtn, body.kds-full-bleed #cchBtn { font-size: 0 !important; width: 34px; padding: 0 !important; justify-content: center; }
    body.kds-full-bleed #kchBtn i, body.kds-full-bleed #cchBtn i { font-size: 16px; margin: 0 !important; }
    .kds-eta-pill { max-width: 190px; overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 1100px) {
    .kds-bar .kds-seg-label { display: none; }
    .kds-bar .kds-seg > button, .kds-bar .kds-seg > a { padding: 6px 10px; }
}
body.kds-no-history .kds-hist-item { display: none !important; }
@media (max-width: 360px) { .kds-eta { display: none; } .kds-chan { max-width: 38%; } }
.kds-ch { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 6px; background: #34d399; color: #0b0b0b;
          font-size: calc(12px * var(--kds-scale)); font-weight: 800; letter-spacing: .04em; vertical-align: middle; white-space: nowrap; font-style: normal; }
