/* Kitchen/Bar (design 3.3): wall screen 1920x1080, Night by default, density low and large. Ticket
   cards 360 px wide, oldest first, dish name the largest text (28 px at step M) with the quantity as a
   bold prefix in a fixed-width column, modifiers and allergen chips 18 px. Wholly inside @layer app. */
@layer app {
  .app-kitchen .content { padding: var(--space-3); }
  .kds-modes { display: flex; gap: var(--touch-gap); padding: var(--space-2) var(--space-3); }
  .kds-queue, .kds-expo { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: var(--space-3); align-items: start; }
  .kds-card { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--ticket-card-padding); border-radius: var(--ticket-card-radius);
    background: var(--surface); color: var(--text); }
  .kds-head { display: flex; align-items: center; gap: var(--space-2); min-height: var(--touch-service); font-size: var(--font-size-400); }
  .kds-timer { margin-left: auto; font-size: var(--font-size-500); font-weight: 700; }
  .kds-lines { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
  .kds-line { display: grid; grid-template-columns: 2.2em 1fr; column-gap: var(--space-2); align-items: baseline; }
  .kds-qty { font-size: var(--kds-dish-size-m); font-weight: 800; text-align: right; }
  .kds-dish { font-size: var(--kds-dish-size-m); font-weight: 700; line-height: var(--font-lineHeight-tight); margin: 0; }
  .kds-mods, .kds-note, .kds-state, .kds-line .allergens { grid-column: 2; font-size: var(--font-size-400); }
  .kds-line .allergen { font-size: var(--font-size-400); }
  .kds-note { font-style: italic; }
  .kds-actions { display: flex; gap: var(--touch-gap); justify-content: flex-end; }
  .btn-bump { min-height: var(--touch-primary); min-width: 160px; font-weight: 700; font-size: var(--font-size-500); }
  .app-kitchen.is-stale .kds-card { opacity: 0.6; }
  .kds-line.cat-stripe { border-left: var(--ticket-card-stripe) solid var(--cat-fill); padding-left: var(--space-2); }
  .kds-line.is-void .kds-dish, .kds-line.is-void .kds-qty { text-decoration: line-through; opacity: 0.7; }
  .kds-void { font-weight: 700; }
  /* Batch G (g6): a cancelled bill's ticket names it under its header. */
  .kds-cancelled { margin: 0; font-size: var(--font-size-400); }
  .kds-meta { margin: 0; font-size: var(--font-size-400); }
  .kds-printer { display: flex; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-2) var(--space-3); }
  @media (prefers-reduced-motion: no-preference) {
    .kds-head.is-late { animation: kds-pulse var(--duration-pulse) ease-in-out infinite; }
  }
  @keyframes kds-pulse { 50% { opacity: 0.75; } }
}
