/* Administration, production and dialogs — additions to the beta visual base. */
.kds-board {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  width: 100%;
  overflow: visible;
  align-items: start;
}
.kds-column { min-height: 0; margin: 0; padding: .75rem; }
.kds-header { gap: .75rem; padding: .25rem .25rem .75rem; }
.kds-header h3 { font-size: 1rem; }
.kds-header b { width: auto; min-width: 2rem; height: 2rem; padding-inline: .375rem; flex-shrink: 0; }
.kds-cards { gap: .75rem; }
.kds-card { display: grid; gap: .75rem; padding: 1rem; }
.kds-card > strong { color: var(--muted); font-size: .8125rem; }
.kds-card h3 { margin: 0; font-size: 1rem; line-height: 1.4; }
.kds-card small { margin: 0; padding: 0; font-size: .875rem; }
.kds-card button { width: 100%; margin-top: .25rem; }
.kds-preparing .kds-card { border-left-color: var(--amber, #f79009); }
.kds-ready .kds-card { border-left-color: var(--green); }
.kds-column .empty-state.compact { padding: 1.25rem .5rem; }

.printer-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.printer-card { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; padding: 1.25rem; }
.printer-heading { display: flex; align-items: center; gap: .75rem; }
.printer-heading .integration-logo { flex-shrink: 0; background: #eaf2ff; color: var(--blue); }
.printer-heading h3 { margin-bottom: .5rem; font-size: 1.125rem; }
.printer-destination { flex: 1; overflow-wrap: anywhere; }
.printer-destination strong { font-size: .9375rem; }
.printer-destination p { font-size: .875rem; line-height: 1.5; }
.printer-actions { display: flex; flex-wrap: wrap; gap: .5rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.printer-actions > button { flex: 1 1 auto; }
.printer-card .ghost-button { margin-left: 0; }

.admin-sections { display: grid; gap: 1.25rem; }
.admin-section-heading { margin-bottom: 1.25rem; }
.admin-section-heading h3, .fiscal-notice h3 { margin: 0 0 .375rem; font-size: 1.125rem; }
.admin-section-heading p, .fiscal-notice p { margin: 0; color: var(--muted); font-size: .875rem; }
.fiscal-metrics { grid-template-columns: minmax(0, 1fr); gap: .75rem; margin: 0; }
.fiscal-metrics .metric-card { padding: 1rem; overflow: visible; background: #f8fafc; box-shadow: none; }
.fiscal-metrics .metric-card p { margin: 0 0 .5rem; color: var(--muted); font-size: .875rem; }
.fiscal-metrics .metric-card strong { display: block; font: 700 1.125rem/1.4 var(--font-heading); color: var(--navy, #172b4d); overflow-wrap: anywhere; }
.fiscal-metrics .metric-card small:empty { display: none; }
.fiscal-notice { padding: 1.25rem; }
.fiscal-notice p { color: inherit; }
.settings-panel .settings-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.settings-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.settings-group + .settings-group { padding-top: 1.25rem; border-top: 1px solid var(--line); }
.settings-group legend { float: left; width: 100%; margin-bottom: 1rem; padding: 0; font: 700 1.125rem/1.4 var(--font-heading); }
.settings-fields { clear: both; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.settings-panel label { font-size: .875rem; gap: .5rem; }
.settings-submit { display: grid; gap: 1rem; border-top: 1px solid var(--line); padding-top: 1.25rem; }
.settings-note { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .875rem; }

.login-screen { min-height: 100vh; min-height: 100dvh; padding: 1rem; }
.login-card { padding: 1.5rem; gap: 1.5rem; border-radius: 1.25rem; }
.login-card h1 { font-size: 1.5rem; line-height: 1.3; }
.login-card p { margin-bottom: 0; }
.login-card label { font-size: .875rem; gap: .5rem; }
.login-card form { gap: 1rem; }
.modal { left: 0; right: 0; top: auto; bottom: 0; width: 100%; max-width: none; max-height: calc(100vh - .5rem); max-height: calc(100dvh - .5rem); border-radius: 1.25rem 1.25rem 0 0; transform: translateY(1rem); padding-bottom: var(--safe-bottom); }
.modal.visible { transform: translateY(0); }
.modal-form label { font-size: .875rem; gap: .5rem; }
.modal-form > .notice-box { margin: 0; }
.modal-form > .primary-button { margin-top: .25rem; }
.modal-form label:has(> input[type="checkbox"]) { display: flex; align-items: center; }
.recipe-button { margin: 0 1rem 1rem; max-width: calc(100% - 2rem); }
.sale-layout { display: grid; grid-template-columns: minmax(0, 1fr); height: auto; overflow: visible; }
.sale-products { padding: 1rem; overflow: visible; display: grid; gap: 1rem; align-content: start; }
.sale-catalog-head { display: grid; gap: .75rem; }
.sale-catalog-head h3, .cart-title { margin: 0; font-size: 1rem; }
.sale-search, .cart-submit label { display: grid; gap: .5rem; font-size: .875rem; font-weight: 600; }
.product-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem; max-height: 42dvh; overflow-y: auto; overscroll-behavior: contain; padding: .25rem; margin: -.25rem; align-content: start; }
.pick-product { min-width: 0; padding: .875rem .625rem; min-height: 6rem; text-align: left; }
.pick-product strong { font-size: .875rem; line-height: 1.4; }
.pick-product b { display: block; font-size: .875rem; }
.cart { min-height: 0; border-left: 0; border-top: 1px solid var(--line); padding: 1rem; gap: 1rem; }
.cart-items { flex: initial; padding: 0; max-height: 32dvh; overflow-y: auto; overscroll-behavior: contain; color: var(--muted); font-size: .875rem; }
.cart-item { grid-template-columns: minmax(0, 1fr) 2.75rem; align-items: center; gap: .75rem; }
.cart-item strong { font-size: .875rem; line-height: 1.4; color: var(--navy, #172b4d); }
.cart-item button { width: 2.75rem; height: 2.75rem; border: 1px solid var(--line); border-radius: .625rem; background: #fff; font-size: 1.25rem; }
.cart-submit { display: grid; gap: 1rem; }
.cart-submit > button { width: 100%; }
@media (min-width: 48rem) {
  .kds-board { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kds-column { padding: .625rem; }
  .kds-card { padding: .875rem; }
  .printer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fiscal-metrics, .settings-fields, .settings-panel .cover-settings-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-submit { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .cover-settings-form > button { grid-column: 1 / -1; justify-self: start; }
  .login-screen { padding: 2rem; }
  .login-card { padding: 2rem; }
  .modal { left: 50%; right: auto; top: 50%; bottom: auto; width: calc(100% - 3rem); max-width: 40rem; max-height: calc(100vh - 3rem); max-height: calc(100dvh - 3rem); border-radius: 1.25rem; transform: translate(-50%, -48%); }
  .modal.visible { transform: translate(-50%, -50%); }
  .modal:has(.sale-layout) { max-width: 68rem; }
  .recipe-button { margin: 0 1.5rem 1.5rem; max-width: calc(100% - 3rem); }
  .sale-layout { grid-template-columns: minmax(0, 1.1fr) minmax(17rem, .9fr); align-items: start; }
  .sale-products, .cart { padding: 1.5rem; }
  .product-picker { max-height: 52dvh; }
  .cart { border-top: 0; border-left: 1px solid var(--line); height: 100%; }
  .cart-items { max-height: 36dvh; }
  .cart-submit { margin-top: auto; }
}
@media (min-width: 80rem) {
  .kds-column { padding: 1rem; }
  .kds-card { padding: 1rem; }
  .printer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fiscal-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .product-picker { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-height: 30rem) and (orientation: landscape) {
  .login-screen { place-items: start center; }
  .login-card { gap: 1rem; }
  .login-card > img { width: 3rem; height: 3rem; }
  .modal { max-height: calc(100dvh - .5rem); }
  .modal-head { padding-block: .5rem; }
  .product-picker { max-height: 55dvh; }
  .cart-items { max-height: 40dvh; }
}
