.page-kitchen { margin: calc(var(--gutter) * -1); }
.app.fullscreen .page-kitchen { margin: 0; }
.kds { background: #120c09; color: #efe7da; min-height: calc(100vh - var(--topbar-h)); display: flex; flex-direction: column; }
.kds.is-full { min-height: 100vh; }
.kds-head { display: flex; align-items: center; gap: 18px; padding: 14px 20px; border-bottom: 1px solid rgba(255,255,255,.06); background: #1a120d; flex-wrap: wrap; }
.kds-brand { display: flex; align-items: center; gap: 12px; }
.kds-brand b { display: block; font-family: var(--font-display); font-size: 19px; color: #fff; font-weight: 540; }
.kds-brand span { font-size: 11.5px; color: var(--gold-400); letter-spacing: .06em; }
.kds-stats { display: flex; gap: 8px; flex: 1 1 460px; flex-wrap: wrap; }
.kds-stats > div { padding: 6px 14px; border-radius: 10px; background: rgba(255,255,255,.04); }
.kds-stats span { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--charcoal-400); }
.kds-stats b { font-family: var(--font-display); font-size: 20px; color: #fff; font-variant-numeric: tabular-nums; }
.kds-stats b.t-new { color: #8fc1ec; } .kds-stats b.t-late { color: #ff8a6b; }
.kds-tools { display: flex; align-items: center; gap: 8px; }
.kds-filter { display: flex; padding: 3px; border-radius: 10px; background: rgba(255,255,255,.05); }
.kds-filter button { white-space: nowrap; border: 0; background: none; color: var(--charcoal-300); height: 32px; padding: 0 12px; border-radius: 8px; font-size: 12.5px; font-weight: 600; }
.kds-filter button.active { background: var(--gold-500); color: var(--espresso-900); }
.kds-btn { width: 38px; height: 38px; border-radius: 10px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.03); color: var(--charcoal-300); display: grid; place-items: center; }
.kds-btn:hover { color: #fff; border-color: rgba(255,255,255,.2); }
.kds-btn.on { color: var(--gold-300); }
.kds-clock { font-family: var(--font-mono); font-size: 15px; color: var(--gold-300); padding: 0 6px; min-width: 112px; text-align: right; }
.kds-board { flex: 1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; padding: 14px; min-height: 0; }
.kds-col { display: flex; flex-direction: column; min-height: 0; background: rgba(255,255,255,.02); border-radius: 16px; border: 1px solid rgba(255,255,255,.04); }
.kds-col-head { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid rgba(255,255,255,.05); font-size: 13px; text-transform: uppercase; letter-spacing: .1em; }
.kds-col-head span { margin-left: auto; min-width: 26px; height: 22px; border-radius: 11px; background: rgba(255,255,255,.07); display: grid; place-items: center; font-size: 12px; font-weight: 700; }
.col-new .kds-col-head { color: #8fc1ec; } .col-accepted .kds-col-head { color: #c4b2e6; } .col-preparing .kds-col-head { color: #f2c46d; } .col-ready .kds-col-head { color: #7fd3a4; } .col-served .kds-col-head { color: var(--charcoal-400); }
.kds-col-body { flex: 1; overflow-y: auto; padding: 10px; display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 170px); }
.kds-col-body::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); }
.kds-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 40px 10px; color: rgba(255,255,255,.18); font-size: 12.5px; }
.kds-empty svg { width: 28px; height: 28px; }

.ticket { flex: none; background: #f7f2ea; color: #1f1a16; border-radius: 14px; overflow: hidden; border-top: 5px solid #8fc1ec; animation: popIn .3s var(--ease); transition: transform .25s var(--ease), opacity .25s; box-shadow: 0 10px 24px -14px rgba(0,0,0,.6); }
.ticket.st-accepted { border-top-color: #a38ccf; } .ticket.st-preparing { border-top-color: #e0a63c; } .ticket.st-ready { border-top-color: #3f9b6c; } .ticket.st-served { opacity: .55; border-top-color: #6e675f; }
.ticket.fresh { animation: popIn .35s var(--ease), ring 1.2s 2; }
.ticket.late { box-shadow: 0 0 0 2px #e2583e, 0 10px 24px -14px rgba(0,0,0,.6); }
.ticket.late .tk-head { background: #fde6df; }
.ticket.rush .tk-no::after { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #e2583e; margin-left: 6px; vertical-align: 2px; }
.ticket.leaving { transform: translateX(30px); opacity: 0; }
.tk-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px 6px; }
.tk-no { font-family: var(--font-mono); font-size: 15px; }
.tk-kot { margin-left: 8px; font-size: 11px; color: var(--text-3); font-weight: 600; }
.tk-timer { font-family: var(--font-mono); font-size: 17px; font-weight: 600; padding: 2px 8px; border-radius: 8px; background: rgba(43,30,23,.06); font-variant-numeric: tabular-nums; }
.tk-timer.late { background: #e2583e; color: #fff; animation: pulse 1.4s infinite; }
.tk-meta { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 12px 8px; }
.tk-type, .tk-flag { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 700; padding: 3px 8px; border-radius: 7px; background: #ece3d4; }
.tk-type svg, .tk-flag svg { width: 12px; height: 12px; }
.tk-type.t-delivery { background: #e2edf5; color: #3d6a8f; } .tk-type.t-takeaway { background: #ece7f5; color: #6d5a96; }
.tk-flag { background: #fbe1d9; color: #b3412e; }
.tk-flag.late { background: #e2583e; color: #fff; }
.tk-items { list-style: none; margin: 0; padding: 4px 6px; border-top: 1px dashed #d8ccb9; }
.tk-item { display: flex; gap: 8px; align-items: flex-start; padding: 7px 6px; border-radius: 8px; cursor: pointer; transition: background var(--t-fast); }
.tk-item:hover { background: #efe6d6; }
.tk-check { width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid #c9bba5; display: grid; place-items: center; flex: none; margin-top: 1px; color: transparent; }
.tk-check svg { width: 13px; height: 13px; }
.tk-item.is-preparing .tk-check { border-color: #e0a63c; color: #e0a63c; }
.tk-item.is-preparing .tk-check svg { animation: spin 2s linear infinite; }
.tk-item.is-ready .tk-check, .tk-item.is-served .tk-check { background: #3f9b6c; border-color: #3f9b6c; color: #fff; }
.tk-item.is-ready .tk-n b, .tk-item.is-served .tk-n b { text-decoration: line-through; color: var(--text-3); }
.tk-q { font-weight: 800; font-size: 15px; min-width: 26px; }
.tk-n { flex: 1; min-width: 0; font-size: 14px; line-height: 1.3; }
.tk-n em { font-style: normal; font-size: 12px; color: var(--accent-strong); margin-left: 6px; font-weight: 600; }
.tk-n small { display: block; font-size: 12px; color: var(--text-2); }
.tk-note { display: flex; gap: 4px; align-items: center; margin-top: 3px; font-size: 12px; font-weight: 700; color: #b3412e; background: #fbe1d9; padding: 2px 7px; border-radius: 6px; width: fit-content; }
.tk-note svg { width: 12px; height: 12px; }
.tk-onote { margin: 0 12px 8px; font-size: 12px; font-weight: 600; color: #8a5a14; background: #fbf0dc; padding: 6px 9px; border-radius: 8px; display: flex; gap: 6px; align-items: center; }
.tk-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px 10px 12px; border-top: 1px solid #e4d9c7; }
.tk-sub { font-size: 11px; color: var(--text-3); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk-go { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 9px; border: 0; background: #1c130e; color: #f7f2ea; font-weight: 700; font-size: 12.5px; white-space: nowrap; }
.tk-go:hover { background: #3a2a20; }
.st-new .tk-go { background: #3d6a8f; } .st-preparing .tk-go { background: #2f7a55; } .st-ready .tk-go { background: #9c7a45; }
.tk-more { width: 34px; height: 34px; border-radius: 9px; border: 1px solid #d8ccb9; background: none; display: grid; place-items: center; color: var(--text-2); }
.tk-done { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--success); font-weight: 600; }

.col-served .ticket .tk-items, .col-served .ticket .tk-onote { display: none; }
.col-served .ticket .tk-meta { padding-bottom: 4px; }
@media (max-width: 1500px) { .kds-board { grid-template-columns: repeat(4, minmax(0, 1fr)); } .col-served { display: none; } }
