:root {
  color-scheme: light;
  --ink: #192421;
  --muted: #6e7873;
  --paper: #f4f2ec;
  --surface: #fffefa;
  --line: #dedbd1;
  --green: #1d574d;
  --green-dark: #133c36;
  --mint: #dce9e4;
  --amber: #da8f28;
  --amber-soft: #fae7c3;
  --red: #b9493e;
  --red-soft: #f7ded9;
  --blue: #356b83;
  --shadow: 0 18px 50px rgba(24, 39, 34, .12);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; border-radius: 0 !important; }
html, body { height: 100%; margin: 0; }
body { background: var(--paper); color: var(--ink); overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }

.pos-gate { position: fixed; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px; background: var(--paper); z-index: 100; color: var(--muted); }
.pos-spinner { width: 42px; height: 42px; border: 4px solid #d8ddd8; border-top-color: var(--green); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.pos-app { height: 100%; display: flex; flex-direction: column; }
.pos-topbar { min-height: 74px; padding: 10px 18px; display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 14px; color: #fff; background: var(--green-dark); box-shadow: 0 5px 20px rgba(14, 35, 31, .2); z-index: 5; }
.pos-brand { display: flex; align-items: center; gap: 10px; min-width: max-content; }
.pos-brand img { width: 38px; height: 38px; filter: brightness(0) invert(1); opacity: .88; }
.pos-brand div { display: grid; }
.pos-brand span { color: #bed0c9; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.pos-brand strong { font-size: 16px; }
.module-tabs { display: flex; border: 1px solid rgba(255,255,255,.2); }
.module-tab { min-height: 38px; padding: 0 13px; border: 0; border-right: 1px solid rgba(255,255,255,.16); color: #dce9e4; background: rgba(255,255,255,.06); font-size: 12px; font-weight: 800; white-space: nowrap; }
.module-tab:last-child { border-right: 0; }
.module-tab.is-active { color: var(--green-dark); background: #fff; }
.room-tabs { display: flex; gap: 7px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.room-tabs::-webkit-scrollbar { display: none; }
.room-tab { border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.07); color: #dce9e4; padding: 9px 15px; border-radius: 999px; white-space: nowrap; }
.room-tab.is-active { color: var(--green-dark); background: #fff; border-color: #fff; font-weight: 750; }
.is-admin .room-tab { cursor: grab; touch-action: none; }
.room-tabs.is-room-reordering { cursor: grabbing; }
.room-tab.is-dragging { opacity: .55; border-color: #fff; cursor: grabbing; }
.pos-top-actions { display: flex; align-items: center; gap: 8px; }
.queue-pill { padding: 7px 10px; border-radius: 999px; color: #cce0d9; background: rgba(255,255,255,.08); font-size: 12px; white-space: nowrap; }
.is-admin .queue-pill { cursor: pointer; }
.queue-pill.has-queue { color: #3d2608; background: var(--amber-soft); }
.icon-action, .exit-action { min-width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 11px; color: #fff; background: rgba(255,255,255,.07); text-decoration: none; }
.exit-action { padding: 0 12px; }

.pos-workspace { min-height: 0; flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) 470px; }
.room-stage-wrap { position: relative; min-width: 0; padding: 24px; overflow: auto; background-image: radial-gradient(#d8d4c9 1px, transparent 1px); background-size: 20px 20px; }
.room-stage { position: relative; min-height: calc(100vh - 122px); max-width: 1400px; margin: auto; border: 1px solid rgba(51, 72, 65, .08); border-radius: 28px; background: rgba(255, 254, 250, .42); }
.room-empty { position: absolute; inset: 0; display: grid; place-content: center; gap: 8px; text-align: center; color: var(--muted); pointer-events: none; }
.room-empty strong { color: var(--ink); font-size: 20px; }

.table-card { position: absolute; min-width: 105px; min-height: 92px; display: flex; flex-direction: column; justify-content: space-between; gap: 7px; padding: 13px; border: 1px solid #d5d7d0; border-radius: 17px; background: var(--surface); color: var(--ink); box-shadow: 0 8px 22px rgba(31, 49, 43, .09); text-align: left; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; overflow: hidden; }
.table-card:hover, .table-card:focus-visible { transform: translateY(-2px); box-shadow: var(--shadow); outline: none; }
.layout-mode .table-card { cursor: move; border-style: dashed; box-shadow: 0 0 0 2px rgba(29,87,77,.12); touch-action: none; }
.layout-mode .table-card:hover { transform: none; }
.layout-mode #layoutButton { color: var(--green-dark); background: #fff; }
.table-card.is-selected {
  z-index: 4;
  border-color: #111b18;
  outline: 5px solid #ffd23f;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #111b18, 0 16px 34px rgba(17,27,24,.32);
}
.table-card.is-occupied { border-color: #4b1020; background: #741f35; color: #fff; }
.table-card.is-prebill { border-color: #081a32; background: #102b4e; color: #fff; }
.table-card.is-partial { border-color: #581528; background: #872a43; color: #fff; }
.table-card.shape-round { border-radius: 999px; padding: 18px; }
.table-card.shape-bar { border-radius: 9px; }
.table-name { font-size: 16px; font-weight: 800; line-height: 1.1; }
.table-status { width: fit-content; padding: 3px 7px; border-radius: 999px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--green); background: var(--mint); }
.is-occupied .table-status { color: #5b1427; background: #f7e8ec; }
.is-prebill .table-status { color: #102b4e; background: #e3edf8; }
.is-partial .table-status { color: #6a1930; background: #fae7ed; }
.table-data { display: flex; justify-content: space-between; gap: 6px; font-size: 12px; color: var(--muted); }
.table-total { color: var(--ink); font-weight: 750; }
.table-card.is-occupied .table-data,
.table-card.is-occupied .table-total,
.table-card.is-prebill .table-data,
.table-card.is-prebill .table-total,
.table-card.is-partial .table-data,
.table-card.is-partial .table-total { color: rgba(255,255,255,.88); }
.pending-dot { position: absolute; top: 9px; left: 9px; width: 10px; height: 10px; border: 2px solid #fff; border-radius: 50%; background: var(--red); }
.meeting-room-badge { position: absolute; top: 7px; right: 7px; padding: 3px 5px; border: 1px solid currentColor; color: var(--green); background: rgba(255,255,255,.88); font-size: 8px; font-style: normal; font-weight: 900; letter-spacing: .08em; }
.table-card.is-occupied .meeting-room-badge,
.table-card.is-prebill .meeting-room-badge,
.table-card.is-partial .meeting-room-badge { color: #fff; background: rgba(0,0,0,.22); }

.sale-panel { min-width: 0; min-height: 0; height: 100%; overflow: hidden; border-left: 1px solid var(--line); background: var(--surface); box-shadow: -12px 0 36px rgba(34,49,44,.08); z-index: 3; }
.sale-placeholder { height: 100%; display: grid; place-content: center; justify-items: center; padding: 45px; text-align: center; color: var(--muted); }
.sale-placeholder strong { color: var(--ink); font-size: 20px; }
.sale-placeholder p { max-width: 290px; line-height: 1.5; }
.placeholder-mark { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 8px; border-radius: 20px; background: var(--mint); color: var(--green); font-size: 35px; }
.sale-content { height: 100%; display: flex; flex-direction: column; min-height: 0; }
.sale-head { display: flex; justify-content: space-between; align-items: flex-start; padding: 20px 20px 15px; border-bottom: 1px solid var(--line); }
.sale-head h1 { margin: 2px 0; font-size: 25px; }
.sale-head p { margin: 0; color: var(--muted); font-size: 13px; }
.sale-edit-link { margin: 5px 0 0; padding: 0; border: 0; color: var(--green); background: transparent; font-size: 11px; font-weight: 750; }
.sale-head .icon-action { color: var(--muted); border-color: var(--line); background: #fff; }
.eyebrow { color: var(--green); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }
.check-tabs { display: flex; gap: 6px; padding: 10px 18px; overflow-x: auto; border-bottom: 1px solid var(--line); background: #faf9f5; scrollbar-width: thin; }
.check-tab { min-width: 112px; display: grid; gap: 2px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: #fff; text-align: left; white-space: nowrap; }
.check-tab span { max-width: 145px; overflow: hidden; text-overflow: ellipsis; font-size: 12px; font-weight: 800; }
.check-tab small { font-size: 10px; }
.check-tab.is-active { color: #fff; border-color: var(--green); background: var(--green); }
.check-tab-add { flex: 0 0 38px; min-height: 38px; border: 1px dashed var(--green); border-radius: 10px; color: var(--green); background: var(--mint); font-size: 20px; }
.sale-scroll { flex: 1; min-height: 0; overflow-y: auto; padding: 13px 18px 12px; }
.section-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .07em; }
.section-title strong { color: var(--ink); }
.section-title span { color: #8c4e09; }
.sale-items { display: grid; gap: 6px; }
.sale-item { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 9px 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.sale-item.is-pending { border-color: #e2b878; background: #fffaf0; }
.sale-item.is-cancelled { opacity: .58; text-decoration: line-through; }
.item-qty { min-width: 27px; font-weight: 800; color: var(--green); }
.item-main { min-width: 0; display: grid; gap: 2px; }
.item-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.item-main small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.item-actions { display: flex; align-items: center; gap: 3px; }
.item-actions button { width: 28px; height: 28px; border: 0; border-radius: 8px; background: #eeeee9; color: var(--ink); }
.item-actions .danger { color: var(--red); }
.item-price { font-size: 13px; font-weight: 750; }
.round-marker { margin: 12px 0 5px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.catalog-section { margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--line); }
.catalog-search-wrap { position: relative; }
.catalog-search-wrap input { width: 100%; height: 46px; padding: 0 46px 0 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.catalog-search-wrap input:focus { border-color: var(--green); outline: 2px solid rgba(29,87,77,.14); outline-offset: -2px; }
.catalog-search-wrap button { position: absolute; right: 1px; top: 1px; width: 44px; height: 44px; border: 0; color: var(--muted); background: transparent; font-size: 20px; }
.catalog-search-meta { min-height: 24px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 5px; color: var(--muted); font-size: 11px; }
.catalog-search-meta strong { flex: 0 0 auto; color: var(--green); }
.category-strip { display: flex; gap: 5px; margin: 6px 0; overflow-x: auto; scrollbar-width: none; }
.category-strip button { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: #fff; white-space: nowrap; font-size: 11px; }
.category-strip button.is-active { color: #fff; background: var(--green); border-color: var(--green); }
.product-grid { max-height: 170px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 5px; overflow-y: auto; overscroll-behavior: contain; }
.product-card { min-height: 54px; padding: 7px 8px; display: flex; flex-direction: column; justify-content: space-between; gap: 4px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); text-align: left; }
.product-card:hover { border-color: var(--green); }
.product-card strong { font-size: 12px; line-height: 1.25; }
.product-card span { display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.product-card b { color: var(--green); }
.catalog-empty { grid-column: 1/-1; padding: 24px; color: var(--muted); text-align: center; }
.catalog-idle { min-height: 58px; display: grid; place-items: center; border: 1px dashed var(--line); background: #faf9f5; }

.payments-section { margin-top: 18px; }
.payment-row { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.payment-row small { display: block; color: var(--muted); }
.payment-row button { border: 0; background: transparent; color: var(--red); }

.sale-footer { position: relative; z-index: 4; flex: 0 0 auto; padding: 16px 18px max(16px, env(safe-area-inset-bottom)); border-top: 4px solid var(--green-dark); background: #f8f7f3; box-shadow: 0 -16px 34px rgba(24,39,34,.12); }
.sale-subtotal-row, .sale-discount-row, .sale-total-row, .sale-balance-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.sale-subtotal-row { color: var(--muted); font-size: 12px; }
.sale-discount-row { margin-top: 2px; color: #7a2337; font-size: 12px; }
.sale-discount-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sale-discount-row strong { flex: 0 0 auto; }
.sale-total-row strong { font-size: 30px; line-height: 1; }
.sale-balance-row { margin: 4px 0 10px; color: var(--muted); font-size: 12px; }
.sale-balance-row strong { color: var(--red); font-size: 14px; }
.sale-actions-label { margin-bottom: 7px; color: var(--ink); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.sale-primary-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.btn { min-height: 58px; border: 0; border-radius: 12px; color: #fff; font-size: 16px; font-weight: 850; letter-spacing: .01em; }
.btn:disabled { opacity: .42; cursor: not-allowed; }
.btn-command { background: var(--amber); }
.btn-payment { background: var(--green); }
.btn-prebill { grid-column: 1 / -1; min-height: 48px; background: #102b4e; }
.btn-prebill.is-reversing { background: #741f35; }
.sale-secondary-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin-top: 7px; }
.sale-secondary-actions button { min-height: 42px; border: 1px solid #d7d4cb; border-radius: 9px; color: var(--ink); background: #fff; font-size: 12px; font-weight: 750; }
.sale-secondary-actions button:disabled { opacity: .42; cursor: not-allowed; }
.sale-secondary-actions #discountButton.has-discount { border-color: #741f35; color: #741f35; background: #f7e8ec; }

.fiscal-workspace { flex: 1; min-height: 0; padding: 28px; overflow-y: auto; background: var(--paper); }
.fiscal-head { max-width: 1320px; margin: 0 auto 16px; display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.fiscal-head h1 { margin: 3px 0 4px; font-size: 30px; }
.fiscal-head p { margin: 0; color: var(--muted); }
.fiscal-head-actions { display: flex; gap: 8px; }
.fiscal-contract { max-width: 1320px; margin: 0 auto 12px; padding: 13px 15px; display: flex; gap: 12px; border: 1px solid #b7cbc4; background: var(--mint); color: var(--green-dark); font-size: 12px; }
.fiscal-contract strong { flex: 0 0 auto; }
.fiscal-contract code { padding: 1px 4px; background: rgba(255,255,255,.58); }
.fiscal-list { max-width: 1320px; margin: auto; display: grid; gap: 8px; }
.fiscal-row { display: grid; grid-template-columns: minmax(260px,1fr) auto minmax(390px,auto); align-items: center; gap: 18px; padding: 16px; border: 1px solid var(--line); background: #fff; }
.fiscal-sale-copy { min-width: 0; display: grid; gap: 3px; }
.fiscal-sale-copy strong { font-size: 16px; }
.fiscal-sale-copy small { color: var(--muted); }
.fiscal-total { font-size: 21px; font-weight: 900; }
.fiscal-actions { display: grid; grid-template-columns: repeat(4,1fr); gap: 5px; }
.fiscal-actions button { min-height: 42px; padding: 0 12px; border: 1px solid var(--green); color: var(--green); background: #fff; font-size: 11px; font-weight: 850; }
.fiscal-actions button:first-child { color: #fff; background: var(--green); }

.pos-dialog { width: min(94vw, 480px); padding: 0; border: 0; border-radius: 20px; background: var(--surface); color: var(--ink); box-shadow: 0 30px 90px rgba(8,25,20,.32); }
.pos-dialog::backdrop { background: rgba(14,30,26,.58); backdrop-filter: blur(3px); }
.pos-dialog form, .pos-dialog > div:not(.dialog-head) { margin: 0; }
.pos-dialog form { padding: 22px; }
.pos-dialog > .dialog-head { padding: 22px 22px 0; }
.dialog-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 18px; }
.dialog-head h2 { margin: 3px 0 0; font-size: 23px; }
.dialog-head > button { width: 34px; height: 34px; border: 0; border-radius: 9px; color: var(--muted); background: #eeeee9; font-size: 20px; }
.pos-dialog label { display: grid; gap: 6px; margin: 12px 0; color: var(--muted); font-size: 12px; font-weight: 650; }
.pos-dialog input, .pos-dialog select, .pos-dialog textarea { width: 100%; min-height: 43px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; }
.field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.btn-primary, .btn-ghost { min-height: 42px; padding: 0 16px; border-radius: 10px; font-weight: 750; }
.btn-primary { border: 0; color: #fff; background: var(--green); }
.btn-primary.is-danger { background: var(--red); }
.btn-ghost { border: 1px solid var(--line); color: var(--muted); background: #fff; }
.dialog-note { padding: 10px 12px; border-radius: 10px; color: var(--muted); background: #f1f0eb; font-size: 12px; line-height: 1.45; }
.wallet-payment-note { border-left: 4px solid var(--green); color: var(--green-dark); background: var(--mint); font-weight: 750; }
.wallet-payment-note.is-insufficient { border-left-color: var(--red); color: #741f35; background: #f7e8ec; }
.meeting-room-open { margin-top: 15px; padding: 13px; border: 2px solid var(--green-dark); background: #f4f8f6; }
.meeting-room-summary { display: grid; gap: 3px; }
.meeting-room-summary span { color: var(--green); font-size: 10px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.meeting-room-summary strong { font-size: 17px; }
.meeting-room-summary p { margin: 0; color: var(--muted); font-size: 12px; }
.room-payment-choices { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.room-payment-choices button { min-height: 74px; display: grid; gap: 4px; padding: 10px; border: 1px solid var(--line); color: var(--ink); background: #fff; text-align: left; }
.room-payment-choices button span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.room-payment-choices button.is-selected { border: 3px solid var(--green); background: var(--mint); }
.room-payment-choices button:disabled { opacity: .42; cursor: not-allowed; }
.room-card-field { padding: 10px; border-left: 4px solid var(--amber); background: #fffaf0; }
.room-card-field small { color: #8c4e09; font-weight: 700; }
.room-card-field.has-card { border-left-color: var(--green); background: var(--mint); }
.discount-summary { color: var(--ink); font-weight: 750; }
.discount-remove { border-color: #b77b89; color: #741f35; }
.dialog-copy { margin: 0 0 14px; color: var(--muted); white-space: pre-line; font-size: 13px; line-height: 1.5; }
.split-items { max-height: 250px; display: grid; gap: 6px; overflow-y: auto; }
.split-check { grid-template-columns: auto 1fr 76px !important; align-items: center; margin: 0 !important; padding: 9px 10px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink) !important; }
.split-check input { width: 18px; min-height: 18px; }
.split-check strong { display: grid; font-size: 12px; }
.split-check span { color: var(--muted); font-size: 11px; }
.split-check .split-quantity { width: 76px; min-height: 36px; padding: 6px 7px; }
.pos-dialog-wide { width: min(96vw, 1000px); padding-bottom: 22px; }
.pos-dialog-history { width: min(96vw, 820px); padding: 22px; }
.pos-dialog-history > .dialog-head { padding: 0; }
.history-list { max-height: min(68vh, 650px); display: grid; gap: 8px; overflow-y: auto; }
.history-row { display: grid; grid-template-columns: minmax(220px,1fr) minmax(180px,250px) auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.history-row > div { min-width: 0; display: grid; gap: 3px; }
.history-row strong { font-size: 13px; }
.history-row small, .history-row em { color: var(--muted); font-size: 11px; font-style: normal; }
.history-row em { color: #8c4e09; }
.history-row select { min-height: 39px; padding: 7px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.history-row .btn-primary { min-height: 39px; }
.config-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 0 22px; }
.config-card { padding: 16px !important; border: 1px solid var(--line); border-radius: 14px; }
.config-card h3 { margin: 0 0 10px; }
.config-hint { min-height: 34px; margin: -4px 0 10px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.config-card .btn-primary { width: 100%; }
.check-label { align-content: center; grid-template-columns: auto 1fr !important; align-items: center; }
.check-label input { width: 18px; min-height: 18px; }

.toast-stack { position: fixed; left: 18px; bottom: 18px; z-index: 200; display: grid; gap: 8px; }
.toast { max-width: 380px; padding: 12px 15px; border-radius: 12px; color: #fff; background: var(--green-dark); box-shadow: var(--shadow); animation: toast-in .18s ease-out; }
.toast.error { background: #842f2a; }
@keyframes toast-in { from { transform: translateY(8px); opacity: 0; } }

.is-embedded .pos-topbar { min-height: 62px; }
.is-embedded .pos-brand span { display: none; }

@media (max-width: 1050px) {
  .pos-topbar { grid-template-columns: auto auto 1fr auto; }
  .pos-workspace { grid-template-columns: 1fr; }
  .sale-panel { position: fixed; inset: 62px 0 0 auto; width: min(100%, 470px); transform: translateX(105%); transition: transform .22s ease; }
  .sale-panel.is-open { transform: translateX(0); }
  .room-stage { min-height: calc(100vh - 110px); }
  .queue-pill { display: none; }
}

@media (max-width: 720px) {
  .pos-topbar { grid-template-columns: auto auto 1fr auto; gap: 8px; padding: 8px 10px; min-height: 62px; }
  .pos-brand div { display: none; }
  .pos-brand img { width: 34px; }
  .exit-action { display: none; }
  .room-stage-wrap { padding: 12px; }
  .room-stage { min-width: 650px; min-height: 700px; }
  .table-card { min-width: 95px; }
  .config-grid { grid-template-columns: 1fr; max-height: 70vh; overflow-y: auto; }
  .pos-dialog-wide { width: 94vw; }
  .history-row { grid-template-columns: 1fr; }
  .module-tab { padding: 0 8px; font-size: 10px; }
  .fiscal-workspace { padding: 16px 10px; }
  .fiscal-head { align-items: stretch; flex-direction: column; }
  .fiscal-row { grid-template-columns: 1fr; }
  .fiscal-actions { grid-template-columns: repeat(2,1fr); }
  .fiscal-contract { align-items: flex-start; flex-direction: column; }
}
