.trial-payment-note {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin: 20px 0;
  padding: 16px;
  border: 1px solid #f0d781;
  border-radius: 15px;
  background: #fff8df;
}
.trial-payment-note p { margin: 4px 0 0; color: #6f674f; font-size: 13px; line-height: 1.45; }
.trial-icon { flex: 0 0 38px; height: 38px; border-radius: 10px; background: var(--accent); display: grid; place-items: center; font: 800 19px Manrope; }
.success-icon.pending { background: #fff0bd; color: #865400; }
.modifier-groups { max-height: 43vh; overflow-y: auto; padding-right: 4px; }
.modifier-group { margin: 16px 0; }
.modifier-group h3 { margin: 0 0 8px; font: 800 14px Manrope; }
.modifier-group .option-block { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; }
.modifier-group .option-block label { min-height: 52px; align-items: center; gap: 8px; font-size: 13px; }
.modifier-group .option-block b { color: #805600; font-size: 11px; white-space: nowrap; }
.recommendation-card { margin: 14px 0 4px; padding: 13px; border: 1px solid #f0d781; border-radius: 13px; background: #fff9e8; }
.recommendation-card > span { color: #9b5700; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.recommendation-card > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 5px; }
.recommendation-card b { font-size: 13px; }
.recommendation-card button { flex: 0 0 auto; border: 0; border-radius: 9px; background: var(--accent); padding: 9px 11px; font-weight: 800; cursor: pointer; }
.kitchen-ticket { margin: 18px 22px; padding: 16px; border: 1px dashed #aaa397; border-radius: 13px; background: #fff; }
.kitchen-ticket > header { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 10px; border-bottom: 1px dashed #c9c5b9; text-align: left; }
.kitchen-ticket > header b { font: 800 13px Manrope; }
.kitchen-ticket > header span { color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.receipt-items { margin: 0; padding: 12px 0; text-align: left; }
.receipt-items > div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; font-size: 13px; }
.ticket-line > span { display: grid; gap: 3px; }
.ticket-line small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.receipt-items .receipt-total { margin-top: 6px; padding-top: 10px; border-top: 1px dashed #c9c5b9; font-size: 15px; }
.ticket-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; text-align: left; }
.ticket-meta div { display: grid; gap: 2px; }
.ticket-meta span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.ticket-meta b { font-size: 12px; }
.payment-stamp { border: 2px solid #9b5700; color: #9b5700; padding: 7px; font: 800 11px Manrope; letter-spacing: .08em; }
.order-number { margin: 14px 0; }
.order-number small { display: block; margin-top: 3px; color: #d6dad5; }
.trial-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 18px 0; }
.staff-confirm-btn,.print-btn { min-height: 48px; border-radius: 12px; font-weight: 800; cursor: pointer; }
.staff-confirm-btn { border: 0; background: var(--ink); color: white; }
.print-btn { border: 1px solid var(--line); background: white; color: var(--ink); }
.pin-hint { margin-top: -10px; color: var(--muted); font-size: 12px; }
.menu-card { padding: 0; overflow: hidden; min-height: 340px; }
.menu-image-wrap { position: relative; height: 168px; overflow: hidden; background: #211f1a; }
.menu-image { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .35s ease; }
.menu-card:hover .menu-image { transform: scale(1.035); }
.menu-image-wrap .tag { position: absolute; left: 12px; bottom: 11px; padding: 6px 8px; border-radius: 7px; color: #1f1704; background: rgba(255,176,0,.94); box-shadow: 0 4px 14px #0005; }
.menu-image-wrap .veg { top: 12px; right: 12px; background: white; }
.menu-card-copy { display: flex; flex-direction: column; flex: 1; padding: 14px; }
.menu-card-copy h3 { margin: 0 0 6px; font-size: 16px; line-height: 1.24; }
.menu-card-copy p { margin-bottom: 15px; }
.menu-card-copy footer { margin-top: auto; }
.item-dialog-image { width: calc(100% + 60px); height: 230px; object-fit: contain; background:#211f1a; display: block; margin: -30px -30px 22px; border-radius: 24px 24px 0 0; }
.item-modal { width:min(94vw,520px); }
.item-modal .item-description { margin-bottom:10px; }
.item-modal .modal-footer { margin-top:16px; }
.portrait-btn { white-space:nowrap; }
.fixed-order-mode { min-height:52px; display:grid; place-items:center; padding:0 24px; border:1px solid #ffffff24; border-radius:15px; color:#ffb000; font:800 13px Manrope; letter-spacing:.12em; }
.test-qr-card { position: relative; display: grid; justify-items: center; gap: 8px; margin: 18px 22px; padding: 22px 18px 16px; border: 2px solid #ffb000; border-radius: 18px; background: #fffaf0; overflow: hidden; }
.test-ribbon { position: absolute; top: 0; left: 0; right: 0; padding: 6px; background: #ffb000; color: #171a17; font: 800 10px Manrope; letter-spacing: .12em; }
.test-qr { min-width: 196px; min-height: 196px; margin-top: 18px; padding: 8px; background: white; border-radius: 8px; box-shadow: 0 5px 18px #171a171a; }
.test-qr img,.test-qr canvas { display: block; width: 196px!important; height: 196px!important; }
.test-qr-card > b { font: 800 18px Manrope; }
.test-qr-card > p { max-width: 360px; margin: 0; color: #6f674f; font-size: 12px; line-height: 1.4; }
.print-animation-screen { position: fixed; inset: 0; z-index: 110; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto; place-items: center; padding: 28px; background: radial-gradient(circle at 50% 35%,#32362f,#171a17 62%); color: white; }
.print-animation-screen[hidden] { display: none; }
.print-animation-screen > header { align-self: start; width: 100%; display: flex; align-items: center; gap: 13px; }
.print-animation-screen > header b { font: 800 18px Manrope; letter-spacing: .08em; }
.print-animation-screen > header > span:last-child { margin-left: auto; padding: 10px 14px; border-radius: 999px; background: #2f9c62; font: 800 11px Manrope; letter-spacing: .08em; }
.printer-stage { position: relative; align-self: center; width: min(640px,88vw); height: min(760px,60vh); display: flex; justify-content: center; }
.printer-machine { position: absolute; z-index: 3; top: 0; width: min(520px,82vw); height: 175px; border: 1px solid #565d56; border-radius: 38px 38px 24px 24px; background: linear-gradient(145deg,#3d433d,#1f231f 62%); box-shadow: 0 35px 70px #0009,inset 0 1px #ffffff22; }
.printer-machine:before { content:"EGAI THERMAL PRINTER"; position:absolute; left:34px; top:32px; color:#c7cdc7; font:800 11px Manrope; letter-spacing:.13em; }
.printer-machine i { position:absolute; right:35px; top:30px; width:12px; height:12px; border-radius:50%; background:#49d17d; box-shadow:0 0 0 6px #49d17d20,0 0 18px #49d17d; }
.paper-slot { position:absolute; left:7%; right:7%; bottom:22px; height:24px; border-radius:14px; background:#080908; box-shadow:inset 0 5px 8px #000; }
.animated-paper { position:absolute; z-index:2; top:130px; width:min(390px,68vw); height:0; overflow:hidden; padding:0 26px; background:#fffdf6; color:#171a17; text-align:center; filter:drop-shadow(0 22px 24px #0008); transform-origin:top; }
.animated-paper.printing { animation:paperRoll 2.7s cubic-bezier(.2,.75,.25,1) forwards; }
.animated-paper:after { content:""; position:absolute; left:0; right:0; bottom:-8px; height:16px; background:linear-gradient(135deg,transparent 8px,#fffdf6 0) 0 0/16px 16px repeat-x; }
.animated-paper > b { display:block; margin-top:34px; font:800 19px Manrope; }
.animated-paper > small { display:block; margin:7px 0 22px; font-size:9px; letter-spacing:.1em; }
.animated-paper > div { border:2px solid #171a17; padding:16px; }
.animated-paper > div span { display:block; font-size:9px; letter-spacing:.12em; }
.animated-paper strong { display:block; color:#9b5700; font:800 48px Manrope; }
.animated-paper p { font-size:12px; line-height:1.5; }
.animated-paper .auto-cut-copy { font-weight:800; letter-spacing:.12em; }
.animated-paper hr { border:0; border-top:1px dashed #777; margin:19px 0; }
.printing-copy { align-self:end; text-align:center; padding-bottom:18px; }
.printing-copy h2 { margin:10px 0 4px; font:800 clamp(30px,4.5vw,55px) Manrope; }
.printing-copy p { margin:0; color:#bdc4bd; }
.printing-dots { display:flex; justify-content:center; gap:7px; }
.printing-dots i { width:9px; height:9px; border-radius:50%; background:#ffb000; animation:printingDot 1s infinite alternate; }
.printing-dots i:nth-child(2) { animation-delay:.2s; }.printing-dots i:nth-child(3) { animation-delay:.4s; }
@keyframes paperRoll { 0% { height:0; } 18% { height:42px; } 100% { height:min(500px,43vh); } }
@keyframes printingDot { to { opacity:.25; transform:translateY(-5px); } }
.signage-screen { position: fixed; inset: 0; z-index: 100; overflow: hidden; background: #171a17; color: white; }
body.signage-active { overflow: hidden; }
.signage-screen[hidden] { display: none; }
.signage-screen > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: signageFade 3.2s ease both; }
.signage-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(9,10,9,.9) 0%,rgba(9,10,9,.55) 45%,rgba(9,10,9,.12) 72%),linear-gradient(0deg,rgba(9,10,9,.75),transparent 45%); }
.signage-screen > header { position: absolute; top: 0; left: 0; right: 0; display: flex; align-items: center; gap: 13px; padding: 25px 32px; }
.signage-screen > header b { font: 800 18px Manrope; letter-spacing: .08em; }
.signage-paid { margin-left: auto; padding: 10px 14px; border-radius: 999px; background: #2f9c62; font: 800 11px Manrope; letter-spacing: .08em; }
.signage-copy { position: absolute; left: clamp(28px,7vw,110px); bottom: clamp(155px,24vh,245px); width: min(680px,78vw); }
.signage-copy p { color: #ffb000; font: 800 12px Manrope; letter-spacing: .18em; }
.signage-copy h2 { margin: 8px 0 12px; font: 800 clamp(38px,6vw,78px)/1.02 Manrope; text-wrap: balance; text-shadow: 0 4px 25px #0008; }
.signage-copy > span { color: #dde2dc; font-weight: 700; }
.signage-footer { position: absolute; left: 28px; right: 28px; bottom: 28px; display: grid; grid-template-columns:auto 1fr auto auto; align-items: center; gap: 14px; padding: 18px 20px; border: 1px solid #ffffff2e; border-radius: 18px; background: rgba(20,22,20,.76); backdrop-filter: blur(14px); }
.signage-footer > div { display: grid; min-width: 110px; }
.signage-footer small { color: #adb5ae; font-size: 9px; letter-spacing: .12em; }
.signage-footer b { color: #ffb000; font: 800 30px Manrope; }
.signage-footer p { margin: 0; color: #e5e9e5; }
.signage-footer button { min-height: 48px; border: 0; border-radius: 12px; padding: 0 20px; background: #ffb000; color: #171a17; font-weight: 800; cursor: pointer; }
.signage-footer .signage-reprint { border: 1px solid #ffffff55; background: transparent; color: white; }
.print-receipt { display: none; }
@keyframes signageFade { from { opacity: .6; transform: scale(1.02); } to { opacity: 1; transform: scale(1); } }
body.force-portrait { background:#252824; }
body.force-portrait .app-shell { width:1080px; max-width:1080px; min-height:1920px; }
body.force-portrait .topbar { height:92px; padding:0 22px; gap:16px; }
body.force-portrait .brand { min-width:188px; }
body.force-portrait .brand small { display:block; font-size:8px; letter-spacing:.15em; }
body.force-portrait .mode-btn { padding:11px 16px; }
body.force-portrait .kiosk-grid { grid-template-columns:minmax(0,1fr) 330px; min-height:calc(1920px - 92px); }
body.force-portrait .menu-panel { padding:20px 20px 60px; }
body.force-portrait .hero { height:230px; }
body.force-portrait .hero-copy { padding:26px; }
body.force-portrait .hero h1 { font-size:39px; }
body.force-portrait .hero-add { max-width:235px; }
body.force-portrait .menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
body.force-portrait .menu-card { min-height:350px; }
body.force-portrait .menu-image-wrap { height:184px; }
body.force-portrait .menu-card-copy h3 { font-size:17px; }
body.force-portrait .cart-panel { top:92px; height:calc(100vh - 92px); padding:22px 18px; }
body.force-portrait .checkout-modal { width:min(88vw,650px); }
@media (orientation:portrait) and (min-width:700px) and (max-width:1300px) {
  .portrait-btn { display:none; }
  .app-shell { max-width:none; }
  .topbar { height:92px; padding:0 22px; gap:16px; }
  .brand { min-width:188px; }
  .brand small { display:block; font-size:8px; letter-spacing:.15em; }
  .mode-btn { padding:11px 16px; }
  .kiosk-grid { grid-template-columns:minmax(0,1fr) 330px; min-height:calc(100vh - 92px); }
  .menu-panel { padding:20px 20px 60px; }
  .hero { height:230px; }
  .hero-copy { padding:26px; }
  .hero h1 { font-size:39px; }
  .hero-add { max-width:235px; }
  .menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .menu-card { min-height:350px; }
  .menu-image-wrap { height:184px; }
  .menu-card-copy h3 { font-size:17px; }
  .cart-panel { top:92px; height:calc(100vh - 92px); padding:22px 18px; }
  .checkout-modal { width:min(88vw,650px); }
  .test-qr { min-width:230px; min-height:230px; }
  .test-qr img,.test-qr canvas { width:230px!important; height:230px!important; }
  .printer-stage { height:min(820px,62vh); }
  .printer-machine { height:190px; }
  .animated-paper { top:145px; width:410px; }
  .signage-screen > img { object-position:center; }
  .signage-shade { background:linear-gradient(0deg,rgba(9,10,9,.88) 0%,rgba(9,10,9,.12) 62%),linear-gradient(90deg,rgba(9,10,9,.55),transparent 70%); }
  .signage-copy { left:46px; bottom:240px; width:calc(100% - 92px); }
  .signage-copy h2 { font-size:64px; }
}
@media (max-width:760px) {
  .portrait-btn { display:none; }
  .recommendation-card { display: none; }
  .modifier-group .option-block { grid-template-columns: 1fr; }
  .modifier-groups { max-height: 48vh; }
  .kitchen-ticket { margin-inline: 0; }
  .menu-card { min-height: 286px; }
  .menu-image-wrap { height: 126px; }
  .item-dialog-image { width: calc(100% + 40px); margin: -26px -20px 20px; }
  .test-qr-card { margin-inline: 0; }
  .signage-screen > header { padding: 18px; }
  .signage-screen > header b { display: none; }
  .signage-copy { left: 22px; bottom: 190px; width: calc(100% - 44px); }
  .signage-copy h2 { font-size: 38px; }
  .signage-footer { left: 14px; right: 14px; bottom: 14px; grid-template-columns: 1fr 1fr; gap: 10px; }
  .signage-footer p { font-size: 12px; text-align: right; }
  .signage-footer button { grid-column: auto; }
  .print-animation-screen { padding:18px; }
  .print-animation-screen > header b { display:none; }
  .print-animation-screen > header > span:last-child { font-size:9px; }
  .printer-stage { height:58vh; }
  .printer-machine { height:135px; border-radius:26px 26px 18px 18px; }
  .printer-machine:before { left:24px; top:25px; font-size:8px; }
  .paper-slot { bottom:18px; }
  .animated-paper { top:103px; padding-inline:18px; }
  .animated-paper strong { font-size:40px; }
  .printing-copy h2 { font-size:31px; }
}
@media print {
  @page { size: 58mm auto; margin: 0; }
  html,body { width: 58mm; background: white; }
  body * { visibility: hidden; }
  .print-receipt,.print-receipt * { visibility: visible; }
  .print-receipt { display:block; position:absolute; inset:0; width:58mm; padding:3mm; color:#000; background:#fff; font-family:Arial,sans-serif; font-size:9px; }
  .receipt-brand { display:flex; align-items:center; justify-content:center; gap:8px; padding-bottom:8px; border-bottom:1px dashed #000; }
  .receipt-brand > span { width:27px; height:27px; border:2px solid #000; border-radius:7px; display:grid; place-items:center; font-size:18px; font-weight:900; }
  .receipt-brand div { display:grid; text-align:left; }
  .receipt-brand b { font-size:13px; }
  .receipt-brand small { font-size:7px; letter-spacing:.12em; }
  .receipt-gstin { margin:0; padding:5px 0; border-bottom:1px dashed #000; text-align:center; font-size:8px; font-weight:700; }
  .receipt-info { display:flex; justify-content:space-between; gap:8px; padding:7px 0; border-bottom:1px dashed #000; font-size:8px; }
  .receipt-table { padding:6px 0; border-bottom:1px dashed #000; }
  .receipt-row { display:grid; grid-template-columns:minmax(0,1fr) 22px 42px 46px; gap:3px; align-items:start; padding:4px 0; }
  .receipt-row span:not(:first-child) { text-align:right; }
  .receipt-head { font-weight:700; border-bottom:1px solid #000; }
  .receipt-totals { padding:6px 0; border-bottom:1px dashed #000; }
  .receipt-totals > div { display:flex; justify-content:space-between; padding:2px 0; }
  .receipt-grand { margin-top:3px; padding-top:5px!important; border-top:1px solid #000; font-size:13px; }
  .print-receipt footer { display:grid; justify-items:center; gap:2px; padding-top:9px; }
  .print-receipt footer b { font-size:12px; }
  .print-receipt footer span { font-size:8px; }
  .signage-screen { display: none !important; }
  .print-animation-screen { display:none!important; }
}
