.live-preview-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.live-preview-subtitle{font-size:9px;color:var(--g500);}
.live-preview-refresh{height:28px;padding:0 14px;border:none;border-radius:6px;font-size:10px;
  font-weight:700;background:var(--blu-lt);color:var(--blu);flex-shrink:0;cursor:pointer;transition:opacity .15s;}
.live-preview-refresh:hover{opacity:.85;}
.receipt-preview-stage{background:#d4d4d8;border-radius:8px;padding:20px;display:flex;
  align-items:flex-start;justify-content:center;min-height:200px;overflow-x:auto;}
.receipt-preview-paper{background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.18);border-radius:2px;
  padding:0;font-family:'Courier New',Courier,monospace;}
.auth-cancel-btn{width:100%;height:38px;border:none;border-radius:6px;font-size:12px;
  font-weight:700;cursor:pointer;}
.qa-inp-mb{margin-bottom:6px;}
.qa-inp-mb-lg{margin-bottom:12px;}
.modal-title-amb{color:var(--amb)!important;}
.modal-title-pur{color:var(--pur)!important;}
.rv-print-btn{flex:1;height:34px;background:var(--blu);color:white;border:none;border-radius:6px;
  font-size:11px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.rv-print-btn:hover{opacity:.88;}
.rv-close-btn{flex:1;height:34px;background:var(--g200);color:var(--g700);border:none;
  border-radius:6px;font-size:11px;font-weight:700;cursor:pointer;transition:background .1s;}
.rv-close-btn:hover{background:var(--g300);}
.purge-opt-strong{margin-left:auto;color:var(--amb);}
.purge-preview{font-size:11px;color:var(--g500);text-align:center;min-height:14px;margin-bottom:5px;}
/* DataHub */
.dh-storage-wrap{background:var(--g100);border-radius:6px;padding:9px 11px;margin:0 12px 4px;}
.dh-storage-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.dh-storage-lbl{font-size:11px;font-weight:700;color:var(--g700);}
.dh-storage-val{font-size:11px;font-weight:800;color:var(--g700);}
.dh-storage-track{height:5px;background:var(--g200);border-radius:3px;overflow:hidden;}
.dh-storage-bar-inner{height:100%;border-radius:3px;transition:width .4s;background:var(--grn);width:0%;}
.dh-storage-actions{display:flex;gap:6px;margin-top:7px;}
.dh-storage-backup-btn{flex:1;padding:6px;background:var(--blu);color:white;border:none;
  border-radius:4px;font-size:11px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.dh-storage-backup-btn:hover{opacity:.88;}
.dh-fb-wipe-btn{width:100%;margin-top:6px;padding:7px;background:#fff0f0;color:#b71c1c;border:1px solid rgba(183,28,28,.25);border-radius:6px;font-size:11px;font-weight:700;cursor:pointer;letter-spacing:.3px;}
.dh-fb-wipe-btn:hover{background:#ffebee;border-color:#b71c1c;}
[data-theme="dark"] .dh-fb-wipe-btn{background:rgba(183,28,28,.15);color:#ef9a9a;border-color:rgba(183,28,28,.3);}
.dh-storage-free-btn{flex:1;padding:6px;background:var(--amb-lt);color:var(--amb);
  border:1px solid rgba(191,54,12,.3);border-radius:4px;font-size:11px;font-weight:700;
  cursor:pointer;transition:opacity .15s;}
.dh-storage-free-btn:hover{opacity:.85;}
.dh-sec-mt{margin-top:14px;}
.csv-skip-row{display:flex;align-items:center;gap:8px;background:var(--amb-lt);border:1px solid #FFAB91;
  border-radius:6px;padding:7px 10px;margin:6px 12px 0;cursor:pointer;}
.csv-skip-cb{width:14px;height:14px;accent-color:var(--amb);flex-shrink:0;}
.csv-skip-label{font-size:11px;font-weight:700;color:var(--amb);}
.csv-skip-hint{font-weight:500;color:var(--g600);}
.dh-purge-title{color:var(--amb);}
.dh-inv-stats{font-size:11px;color:var(--g500);padding:5px 14px;}
/* Modal classes */
.spc-overlay{position:fixed;inset:0;z-index:1085;background:rgba(0,0,0,.6);backdrop-filter:blur(5px);
  align-items:center;justify-content:center;}
.spc-box{background:var(--white);border-radius:12px;padding:24px 22px 20px;width:300px;
  max-width:94vw;box-shadow:0 16px 48px rgba(0,0,0,.3);text-align:center;}
.spc-title{font-size:15px;font-weight:800;color:var(--g900);margin-bottom:3px;}
.spc-sub{font-size:12px;color:var(--g500);margin-bottom:16px;}
.spc-label{font-size:10px;font-weight:700;color:var(--g600);display:block;
  margin-bottom:3px;text-align:left;}
.spc-inp{width:100%;box-sizing:border-box;padding:8px 10px;border:1.5px solid var(--g300);
  border-radius:6px;font-size:18px;font-weight:800;text-align:center;letter-spacing:6px;
  outline:none;margin-bottom:10px;background:var(--g50);color:var(--g900);}
.spc-inp:focus{border-color:var(--blu);background:var(--white);}
.spc-btns{display:flex;gap:7px;}
.spc-cancel{flex:1;padding:10px;border:1.5px solid var(--g300);background:var(--g100);
  border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;color:var(--g600);
  transition:background .1s;}
.spc-cancel:hover{background:var(--g200);}
.spc-save{flex:1;padding:10px;border:none;background:var(--blu);color:white;border-radius:6px;
  font-size:12px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.spc-save:hover{opacity:.88;}
.bsp-overlay{position:fixed;inset:0;z-index:1080;background:rgba(0,0,0,.6);backdrop-filter:blur(5px);
  align-items:center;justify-content:center;}
.bsp-box{background:var(--white);border-radius:12px;padding:24px 22px 20px;width:300px;
  max-width:94vw;box-shadow:0 16px 48px rgba(0,0,0,.3);text-align:center;}
.bsp-avatar{width:52px;height:52px;border-radius:50%;background:var(--blu);display:inline-flex;
  align-items:center;justify-content:center;font-size:22px;font-weight:800;color:white;
  margin-bottom:8px;}
.bsp-title{font-size:14px;font-weight:800;color:var(--g900);margin-bottom:2px;}
.bsp-sub{font-size:11px;color:var(--g500);margin-bottom:14px;}
.bsp-cancel-btn{background:var(--g100)!important;color:var(--g600)!important;
  font-size:10px!important;font-weight:700!important;}
.bsp-cancel-btn:hover{background:var(--g200)!important;}
.srm-overlay{position:fixed;inset:0;z-index:1050;background:rgba(0,0,0,.55);
  backdrop-filter:blur(4px);align-items:flex-start;justify-content:center;
  padding-top:4vh;overflow-y:auto;}
.srm-box{background:var(--white);border-radius:10px;width:560px;max-width:96vw;
  box-shadow:0 16px 48px rgba(0,0,0,.25);margin-bottom:20px;}
.srm-hdr{padding:16px 20px 12px;border-bottom:1px solid var(--g200);display:flex;
  align-items:center;justify-content:space-between;}
.srm-hdr-left .srm-title{font-size:16px;font-weight:800;color:var(--g900);}
.srm-hdr-left .srm-date{font-size:10px;color:var(--g500);margin-top:1px;}
.srm-hdr-btns{display:flex;gap:7px;align-items:center;}
.srm-print-btn{border:none;background:var(--blu);color:white;border-radius:6px;height:28px;
  padding:0 11px;font-size:11px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.srm-print-btn:hover{opacity:.85;}
.srm-close-btn{border:none;background:var(--g100);border-radius:6px;width:28px;height:28px;
  font-size:14px;cursor:pointer;color:var(--g600);transition:background .1s;}
.srm-close-btn:hover{background:var(--g200);}
.srm-filter{padding:12px 20px;background:var(--g50);border-bottom:1px solid var(--g200);}
.srm-presets{display:flex;gap:5px;margin-bottom:8px;flex-wrap:wrap;}
.srm-date-row{display:flex;align-items:center;gap:7px;}
.srm-flbl{font-size:10px;font-weight:700;color:var(--g500);white-space:nowrap;}
.srm-date-inp{flex:1;height:28px;border:1px solid var(--g300);border-radius:5px;
  padding:0 7px;font-size:11px;outline:none;background:var(--white);color:var(--g800);}
.srm-apply-btn{height:28px;padding:0 12px;background:var(--pur);color:white;border:none;
  border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;
  transition:opacity .15s;}
.srm-apply-btn:hover{opacity:.85;}
.srm-body{padding:14px 20px 20px;max-height:56vh;overflow-y:auto;}
.srm-loading{color:var(--g400);text-align:center;font-size:12px;padding:20px 0;}
.slm-overlay{position:fixed;inset:0;z-index:1070;background:rgba(0,0,0,.6);
  backdrop-filter:blur(5px);align-items:center;justify-content:center;}
.slm-box{background:var(--white);border-radius:12px;padding:22px 20px 18px;width:320px;
  max-width:94vw;box-shadow:0 16px 48px rgba(0,0,0,.3);}
.slm-title{font-size:15px;font-weight:800;color:var(--g900);margin-bottom:3px;}
.slm-sub{font-size:11px;color:var(--g500);margin-bottom:14px;}
.slm-pin-title{font-size:14px;font-weight:800;color:var(--g900);margin-bottom:2px;}
.slm-pin-sub{font-size:11px;color:var(--g500);margin-bottom:12px;}
.slm-cancel-btn{width:100%;padding:9px;border:1px solid var(--g300);border-radius:6px;
  background:var(--g100);font-size:12px;font-weight:700;cursor:pointer;color:var(--g600);
  margin-top:4px;transition:background .1s;}
.slm-cancel-btn:hover{background:var(--g200);}
.slm-back-btn{background:var(--g100)!important;color:var(--g600)!important;
  font-size:10px!important;font-weight:700!important;}
.slm-back-btn:hover{background:var(--g200)!important;}
.opc-overlay{position:fixed;inset:0;z-index:1100;background:rgba(0,0,0,.55);
  backdrop-filter:blur(4px);align-items:center;justify-content:center;}
.opc-box{background:var(--white);border-radius:10px;padding:24px 22px;width:320px;
  max-width:94vw;box-shadow:0 12px 40px rgba(0,0,0,.25);}
.opc-title{font-size:15px;font-weight:800;color:var(--g900);margin-bottom:3px;}
.opc-sub{font-size:11px;color:var(--g500);margin-bottom:16px;}
.opc-label{font-size:10px;font-weight:700;color:var(--g600);display:block;margin-bottom:3px;}
.opc-inp{width:100%;box-sizing:border-box;border:1px solid var(--g300);border-radius:6px;
  padding:8px 10px;font-size:14px;margin-bottom:8px;outline:none;background:var(--g50);
  color:var(--g900);}
.opc-inp:focus{border-color:var(--blu);background:var(--white);}
.opc-btns{display:flex;gap:7px;}
.opc-cancel{flex:1;height:38px;border:1px solid var(--g300);border-radius:6px;
  background:var(--white);font-size:12px;font-weight:700;cursor:pointer;color:var(--g600);
  transition:background .1s;}
.opc-cancel:hover{background:var(--g100);}
.opc-save{flex:1;height:38px;border:none;border-radius:6px;background:#7c3aed;color:white;
  font-size:12px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.opc-save:hover{opacity:.88;}
/* ================================================================
   MOBILE RESPONSIVE
================================================================ */
@media (max-width:800px){
  #appBody{flex-direction:column;overflow-y:auto;}
  #leftPanel{flex:none;width:100%;height:auto;min-height:0;overflow:visible;}
  #rightPanel{width:100%!important;flex-shrink:0;border-left:none;border-top:1px solid var(--g200);overflow:visible;height:auto;}
  #billingView{overflow-y:auto;height:auto;}
  #billingView.active{overflow-y:auto;}
  .inv-panel{overflow:visible;height:auto;}
  .inv-table-wrap{overflow-x:auto;max-height:40vh;}
  .tp-row1{flex-wrap:wrap;}
  .tp-datetime{min-width:0;width:100%;flex-direction:row;gap:12px;padding:4px 8px;}
  .hdr-stat-block{gap:12px;padding:0 10px;}
  .hdr-brand{min-width:0;padding:0 10px;}
  .hdr-title{font-size:11px;}
  .hdr-sub{display:none;}
  #tabStrip{flex-wrap:wrap;height:auto;padding:4px 6px;}
  .tab-btn{height:28px;font-size:10px;padding:0 8px;}
  .modal-box{width:94vw;max-width:94vw;}
  .rv-box{width:96vw;max-width:96vw;max-height:90vh;}
  .srm-box{width:96vw;max-width:96vw;}
  #shortcutsBox{width:94vw;max-width:94vw;}
  #dataHubSheet{width:94vw;max-width:94vw;}
  .spc-box,.bsp-box,.slm-box,.opc-box{width:92vw;max-width:92vw;}
  .sett-layout{grid-template-columns:1fr;}
  .act-row{flex-wrap:wrap;}
  .act-btn{min-width:calc(50% - 3px);flex:none;}
  #searchResults{max-height:200px;}
  .sr-hdr,.sr-row{grid-template-columns:22px minmax(100px,1fr) 60px 60px 44px 64px;font-size:10px;}
  #appRoot{height:auto;min-height:100vh;overflow-y:auto;}
  html,body{overflow-y:auto;height:auto;}
}
/* ── History pagination ────────────────────────────────────── */
.hist-pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;border-top:1px solid var(--g200);background:var(--g50);flex-shrink:0;}
.hist-pg-btn{background:var(--white);border:1px solid var(--g300);color:var(--g700);border-radius:5px;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer;transition:background .12s,color .12s;}
.hist-pg-btn:hover:not(:disabled){background:var(--blu-lt);color:var(--blu);border-color:var(--blu);}
.hist-pg-btn:disabled{opacity:.35;cursor:not-allowed;}
.hist-pg-info{font-size:11px;color:var(--g600);font-weight:600;padding:0 4px;}
[data-theme="dark"] .hist-pagination{background:var(--g100);border-color:var(--g300);}
[data-theme="dark"] .hist-pg-btn{background:var(--g200);border-color:var(--g300);color:var(--g700);}
/* ── Demo inventory banner ──────────────────────────────────── */
#demoInventoryBanner{display:none;align-items:center;gap:8px;padding:5px 14px;font-size:11px;font-weight:700;background:#FFF3E0;color:#E65100;border-bottom:1px solid #FFCC80;cursor:pointer;}
#demoInventoryBanner.visible{display:flex;}
/* ── Discount preset row label ──────────────────────────────── */
.preset-row-lbl{font-size:9px;font-weight:700;color:var(--g500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;}
/* ── Settings — Save All button ─────────────────────────────── */
.sett-save-all-btn{background:var(--blu);color:#fff;border:none;border-radius:6px;padding:6px 16px;font-size:11px;font-weight:700;cursor:pointer;transition:background .15s;}
.sett-save-all-btn:hover{background:var(--blu-dk);}
/* ── Supabase Sync Badge ─────────────────────────────────────── */
#supabase-sync-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;
  color:rgba(255,255,255,.75);padding:3px 8px;border-radius:20px;
  background:rgba(255,255,255,.1);cursor:default;user-select:none;transition:background .3s;}
#supabase-sync-badge .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:background .3s;}
#supabase-sync-badge.connected .dot{background:#4ade80;}
#supabase-sync-badge.syncing .dot{background:#fbbf24;animation:psyncpulse .8s infinite alternate;}
#supabase-sync-badge.offline .dot{background:#f87171;}
#supabase-sync-badge.connecting .dot{background:#6b7280;animation:psyncpulse 1s infinite alternate;}
@keyframes psyncpulse{from{opacity:.4}to{opacity:1}}

/* ================================================================
   PRINT / THERMAL RECEIPT
================================================================ */
@page{size:80mm auto;margin:2mm 3mm;orientation:portrait;}
@media print{
  *{display:none!important;}
  html,body{display:block!important;}
  #thermalReceiptPrintWrapper{display:block!important;}
  #thermalReceiptPrintWrapper *{display:revert!important;}
  body,html{background:#fff!important;color:#000!important;width:80mm;height:auto!important;margin:0;padding:0;overflow:visible!important;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  #thermalReceiptPrintWrapper{width:72mm;max-width:72mm;margin:0 auto;padding:0;box-sizing:border-box;overflow:hidden;}
  .receipt-header{text-align:center;margin-bottom:4px;}
  .receipt-header h2{font-size:13px;font-weight:900;margin:0;padding:2px 0;word-break:break-word;letter-spacing:0.3px;}
  .receipt-header p{font-size:10px;margin:1px 0;font-weight:600;word-break:break-word;}
  .receipt-divider{border:none;border-top:1px dashed #000!important;margin:4px 0;}
  .receipt-meta-table{width:100%;font-size:9px;border-collapse:collapse;table-layout:fixed;}
  .receipt-meta-table td{padding:1px 0!important;border:none!important;font-weight:600;word-break:break-word;overflow:hidden;}
  .receipt-meta-table td:last-child{text-align:right;font-weight:700;}
  .item-print-block{margin-bottom:5px;page-break-inside:avoid;width:100%;}
  .item-desc-row{font-weight:800;font-size:11px;text-transform:uppercase;line-height:1.3;word-break:break-word;white-space:normal;width:100%;letter-spacing:0.2px;}
  .item-meta-row{font-size:10px;font-weight:600;display:table;width:100%;table-layout:fixed;margin-top:1px;}
  .item-meta-row span:first-child{display:table-cell;text-align:left;width:60%;word-break:break-word;overflow:hidden;}
  .item-meta-row span:last-child{display:table-cell;text-align:right;width:40%;white-space:nowrap;font-weight:800;}
  .receipt-summary-block{margin-top:4px;font-size:10px;font-weight:600;width:100%;}
  .receipt-summary-row{display:table;width:100%;table-layout:fixed;padding:1px 0;}
  .receipt-summary-row span:first-child{display:table-cell;text-align:left;}
  .receipt-summary-row span:last-child{display:table-cell;text-align:right;white-space:nowrap;}
  .receipt-summary-row.grand-total{font-size:13px;font-weight:900;border-top:1px dashed #000;border-bottom:1px dashed #000;padding:3px 0;margin-top:2px;letter-spacing:0.3px;}
  .receipt-footer-msg{text-align:center;font-size:9px;font-weight:700;margin-top:8px;line-height:1.5;word-break:break-word;}
  .printer-tail-spacer{height:40px;display:block;}
}
