.rg-shell{display:grid;gap:18px;max-width:1340px;margin:auto;color:#26291f}
.rg-loyalty{margin:18px 0 6px;padding:16px;background:#f2f4ed;border:1px solid #dce2d2;border-radius:13px}.rg-loyalty h4{font-size:.95rem;margin:0 0 6px}.rg-loyalty p{font-size:.75rem;line-height:1.6}.rg-member-form{display:flex;gap:10px;align-items:end;margin-top:12px}.rg-member-form label{margin:0;min-width:0;font-size:.75rem}.rg-member-form input{display:block;margin-top:6px;min-height:48px;text-transform:uppercase}.rg-member-form button{min-height:48px;white-space:normal;font-size:.78rem}.rg-member-result{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:.85rem}.rg-member-result span{font-size:.75rem;color:#4e6545}.rg-member-remove{display:block;padding:9px 0;min-height:40px;font-size:.75rem}.rg-reward-toggle{display:flex;align-items:center;gap:8px;text-align:left;background:none;border:0;color:#35472e;font:inherit;font-size:.8rem;cursor:pointer;min-height:44px;padding:6px 0;line-height:1.5}.rg-reward-toggle span{font-size:1.3rem}.rg-reserved{margin-top:10px}.rg-discount{display:grid;grid-template-columns:1fr auto;gap:9px 15px;font-size:.8rem;margin-top:20px}.rg-discount b{text-align:right;white-space:nowrap}.rg-discount span:nth-last-child(2),.rg-discount b:last-child{color:#4a6b3c}.rg-member-form .btn:focus-visible{outline:3px solid #a78a43}@media(max-width:480px){.rg-member-form{flex-wrap:wrap}.rg-member-form label{flex-basis:100%}.rg-member-form button{width:100%}.rg-loyalty{padding:13px}}
.rg-head{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}
.rg-head h2{font-size:2rem;margin:2px 0 5px}.rg-eyebrow{font-size:.7rem;letter-spacing:.14em;font-weight:600;color:#6e735f;text-transform:uppercase}
.rg-connection{display:inline-flex;gap:7px;align-items:center;font-size:.78rem;padding:10px 14px;border-radius:30px;background:#eae5da;color:#6f5d3d;white-space:nowrap}
.rg-connection.rg-connected{color:#315e44;background:#e8f0e8}.rg-draft{border:1px solid #d8c69c;background:#fbf4df;padding:12px 16px;border-radius:12px;font-size:.8rem}
.rg-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(380px,1fr);gap:20px;align-items:start}
.rg-catalog,.rg-cart{padding:22px;min-width:0}.rg-catalog h3,.rg-cart h3{font-size:1.1rem;margin:0 0 14px}.rg-cart>.row h3{margin-bottom:0}
.rg-search{margin:16px 0}.rg-search input{min-height:48px}.rg-categories{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:17px}
.rg-chip{min-height:42px;border-radius:24px;border:1px solid #e2dccf;background:#fff;padding:9px 14px;font:inherit;font-size:.8rem;cursor:pointer}.rg-chip.on{background:#30392a;border-color:#30392a;color:#fff}
.rg-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:580px;overflow:auto;padding:2px}
.rg-product{display:flex;flex-direction:column;gap:18px;justify-content:space-between;align-items:stretch;min-height:120px;border:1px solid #e4ddcf;background:#fcfaf6;color:#2c3026;border-radius:14px;padding:16px;cursor:pointer;font:inherit;text-align:left}
.rg-product:hover:not(:disabled){border-color:#a58c59;background:#f4eddf}.rg-product:active:not(:disabled){transform:scale(.98)}.rg-product-name{font-weight:600;line-height:1.35;overflow-wrap:anywhere}.rg-product-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.rg-plus{background:#ede7d9;border-radius:50%;width:28px;height:28px;display:grid;place-items:center}
.rg-shell button:disabled{opacity:.46;cursor:not-allowed}.rg-clear{min-height:44px;padding:6px}.rg-lines{max-height:390px;overflow:auto;margin-top:14px}
.rg-line{display:flex;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid #eee8de}.rg-line>.grow{min-width:0;overflow-wrap:anywhere}.rg-line>.grow b{display:block;font-size:.9rem}.rg-line>.grow span{display:block;margin-top:4px;font-size:.75rem}.rg-quantity{display:flex;align-items:center;gap:9px}.rg-qty-btn{width:44px;min-width:44px;height:44px;border-radius:10px;border:1px solid #e3dccf;background:#f8f4ec;font:inherit;font-size:1.15rem;cursor:pointer}.rg-quantity>b{min-width:18px;text-align:center}.rg-line-total{font-size:.85rem;min-width:54px;text-align:right;white-space:nowrap}
.rg-empty{min-height:180px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:14px;color:#818673}.rg-empty>span{font-size:2.5rem;font-weight:300}.rg-empty p{font-size:.9rem;line-height:1.6}
.rg-total{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:24px 0 20px}.rg-total span{font-size:.95rem;font-weight:600}.rg-total small{display:block;color:#7f8374;font-size:.75rem;margin-top:4px}.rg-total strong{font-size:2.3rem;letter-spacing:-.04em;white-space:nowrap}
.rg-pay{min-height:58px;font-size:.95rem;white-space:normal;line-height:1.4}.rg-explainer{font-size:.75rem;text-align:center;line-height:1.6;margin:12px 0 20px}
.rg-payment{display:flex;align-items:flex-start;gap:13px;padding:17px;background:#f1f2ed;border:1px solid #e1e4d9;border-radius:13px}.rg-payment .grow{min-width:0}.rg-payment h3{font-size:.92rem;margin:0 0 7px}.rg-payment p{font-size:.78rem;line-height:1.6}.rg-terminal-icon{color:#677459;flex-shrink:0}.rg-reference{font-family:monospace;font-size:.65rem!important;overflow-wrap:anywhere;margin-top:10px;color:#6f7468}
.rg-payment-awaiting,.rg-payment-sending,.rg-payment-cancelling{background:#f9f1dc;border-color:#e4d2a3}.rg-payment-paid,.rg-payment-completed{background:#edf5eb;border-color:#b6ceb0}.rg-payment-declined,.rg-payment-uncertain{background:#fbf0e8;border-color:#dfc2a7}.rg-payment-cancelled{background:#f2f1ee}
.rg-alert{padding:12px 15px;border-radius:11px;background:#fcf0e9;border:1px solid #dfbda5;font-size:.85rem;line-height:1.6;color:#75452e}.rg-recovery{display:grid;gap:8px;margin-top:12px}.rg-recovery .btn{white-space:normal;min-height:46px;line-height:1.4}.rg-next{margin-top:14px;min-height:50px}.rg-cart>.btn:last-child{margin-top:10px}
.rg-history{padding:20px}.rg-history h3{font-size:1rem;margin-bottom:12px}.rg-history-line{display:grid;grid-template-columns:1fr auto;gap:6px 15px;padding:12px 0;border-bottom:1px solid #eae5dc;font-size:.85rem}.rg-history-line small{grid-column:1/-1;color:#777e69;overflow-wrap:anywhere}.rg-history>p{margin-top:14px}
.rg-shell button:focus-visible,.rg-shell input:focus-visible{outline:3px solid #a78a43;outline-offset:3px}
@media(max-width:1000px){.rg-layout{grid-template-columns:minmax(0,1fr) minmax(340px,1fr);gap:14px}.rg-catalog,.rg-cart{padding:17px}.rg-line{gap:7px}.rg-qty-btn{width:42px;min-width:42px}.rg-quantity{gap:5px}.rg-line-total{min-width:48px}}
@media(max-width:780px){.rg-layout{grid-template-columns:1fr}.rg-products{max-height:310px;grid-template-columns:repeat(3,minmax(0,1fr))}.rg-product{min-height:105px;padding:12px}.rg-head h2{font-size:1.7rem}.rg-lines{max-height:none}}
@media(max-width:480px){.rg-products{grid-template-columns:repeat(2,minmax(0,1fr))}.rg-shell{gap:12px}.rg-catalog,.rg-cart{padding:15px}.rg-head{gap:10px}.rg-connection{font-size:.72rem}.rg-product{font-size:.83rem}.rg-line{flex-wrap:wrap}.rg-line>.grow{flex-basis:calc(100% - 120px)}.rg-line-total{margin-left:auto}.rg-total strong{font-size:2rem}.rg-cart .rg-payment{padding:12px}}
.rg-methods{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rg-methods button{min-height:62px;font-size:1rem}.rg-cash-label{display:block;margin:18px 0 12px}.rg-cash-label input{margin-top:8px;min-height:50px;font-size:1.2rem}.rg-change{font-size:1rem;font-weight:600;padding:8px 0 17px}.rg-report{padding:24px;min-width:0}.rg-report h3{font-size:1.3rem;margin:4px 0 10px}.rg-report-actions{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.rg-report-actions label{font-size:.8rem;margin:0}.rg-report-actions input{display:block;margin-top:7px;min-height:46px}.rg-report-actions button{min-height:46px}.rg-scope{line-height:1.7;margin:16px 0 22px;max-width:960px}.rg-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.rg-kpis>div{background:#f6f3eb;border:1px solid #e8dfcf;border-radius:12px;padding:18px 15px}.rg-kpis small{display:block;color:#707562;font-size:.75rem;margin-bottom:9px}.rg-kpis strong{font-size:1.5rem;white-space:nowrap;letter-spacing:-.03em}.rg-table-wrap{overflow-x:auto;margin:24px 0 8px}.rg-table{border-collapse:collapse;width:100%;font-size:.85rem}.rg-table caption{text-align:left;font-weight:600;font-size:1rem;padding:0 0 14px}.rg-table th,.rg-table td{text-align:right;white-space:nowrap;padding:13px 12px;border-bottom:1px solid #e7e1d6;font-variant-numeric:tabular-nums}.rg-table th:first-child,.rg-table td:first-child{text-align:left;white-space:normal;min-width:100px}.rg-table thead th{background:#f4f1e9;color:#5b634f;font-size:.75rem}.rg-table tbody th{font-weight:500}@media(max-width:780px){.rg-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rg-report{padding:17px}.rg-report-actions{width:100%}.rg-kpis strong{font-size:1.3rem}.rg-table th,.rg-table td{padding:11px 8px;font-size:.8rem}}@media print{.rg-catalog,.rg-cart,.rg-draft,.demo-top button,.rg-report-actions,.demo-intro{display:none}.rg-report{border:0;padding:0}.rg-shell{display:block}.rg-report .rg-head{display:block}.rg-kpis{grid-template-columns:repeat(4,1fr)}}


/* ================================================================
   TAMASINI GOLD — Caisse boutique, présentation ÉQUILIBRÉE tactile
   2026-10-28. Présentation uniquement : aucun effet sur les données,
   prix, transactions, disponibilité ou contrôles de sécurité.
   On garde des cibles tactiles d'au moins 44 px.
   ================================================================ */
.rg-layout {
  grid-template-columns: minmax(0,1.65fr) minmax(320px,.95fr);
  gap: 12px;
}
.rg-layout .rg-catalog,
.rg-layout .rg-cart { padding: 14px; }
.rg-layout .rg-catalog h3,
.rg-layout .rg-cart h3 { margin-bottom: 9px; font-size: 1.02rem; }
.rg-layout .rg-search { margin: 9px 0 11px; }
.rg-layout .rg-search input { min-height: 46px; }
.rg-layout .rg-categories { gap: 6px; margin-bottom: 12px; }
.rg-layout .rg-chip {
  min-height: 44px;
  padding: 7px 11px;
  border-radius: 11px;
  font-size: .78rem;
  touch-action: manipulation;
}
.rg-layout .rg-products {
  grid-template-columns: repeat(auto-fit, minmax(132px,1fr));
  gap: 9px;
  max-height: min(66vh, 670px);
  padding: 3px;
  align-content: start;
  overscroll-behavior: contain;
}
.rg-layout .rg-product {
  min-height: 89px;
  padding: 10px 11px;
  gap: 6px;
  border-radius: 11px;
  font-size: .86rem;
  line-height: 1.25;
  touch-action: manipulation;
}
.rg-layout .rg-product-name { line-height: 1.27; }
.rg-layout .rg-product-bottom { gap: 6px; }
.rg-layout .rg-plus { width: 30px; height: 30px; flex-shrink: 0; }
.rg-layout .rg-loyalty {
  margin: 10px 0 8px;
  padding: 11px;
  border-radius: 11px;
}
.rg-layout .rg-loyalty p { line-height: 1.35; }
.rg-layout .rg-member-form { flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.rg-layout .rg-member-form label { flex: 1 1 155px; }
.rg-layout .rg-member-form input,
.rg-layout .rg-member-form button { min-height: 44px; }
.rg-layout .rg-member-form button { flex: 1 0 auto; }
.rg-layout .rg-lines { max-height: min(37vh, 355px); margin-top: 10px; }
.rg-layout .rg-line { gap: 8px; padding: 9px 0; }
.rg-layout .rg-qty-btn { width: 44px; min-width: 44px; height: 44px; }
.rg-layout .rg-total { padding: 14px 0 12px; }
.rg-layout .rg-total strong { font-size: 1.85rem; }
.rg-layout .rg-methods { gap: 9px; }
.rg-layout .rg-methods button { min-height: 52px; font-size: .9rem; }
.rg-layout .rg-pay { min-height: 54px; }
.rg-layout .rg-explainer { margin: 8px 0 11px; }
.rg-layout .rg-payment { padding: 12px; }
.rg-layout .rg-recovery .btn,
.rg-layout .rg-next { min-height: 48px; }
@media (max-width: 1100px) and (min-width: 821px) {
  .rg-layout { grid-template-columns: minmax(0,1fr) minmax(315px,.77fr); }
  .rg-layout .rg-line {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 6px 8px;
  }
  .rg-layout .rg-line > .grow { grid-column: 1 / -1; }
  .rg-layout .rg-quantity { grid-column: 1; }
  .rg-layout .rg-line-total { grid-column: 2; }
}
@media (max-width: 820px) {
  .rg-layout { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .rg-layout .rg-products {
    grid-template-columns: repeat(auto-fit,minmax(132px,1fr));
    max-height: 385px;
  }
  .rg-layout .rg-lines { max-height: 330px; }
}
@media (max-width: 480px) {
  .rg-layout .rg-catalog,
  .rg-layout .rg-cart { padding: 12px; }
  .rg-layout .rg-products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .rg-layout .rg-product { padding: 10px; min-height: 94px; font-size: .83rem; }
  .rg-layout .rg-member-form label { flex-basis: 100%; }
  .rg-layout .rg-total strong { font-size: 1.7rem; }
}
@media (pointer: coarse) {
  .rg-layout .rg-product { min-height: 94px; }
  .rg-layout .rg-chip { min-height: 46px; }
  .rg-layout .rg-clear { min-height: 44px; }
}


/* ================================================================
   TAMASINI GOLD v32 — Caisse tactile plein écran (uniquement vue caisse)
   Les menus vendeuse sont absents de cette vue, sans modification de
   l’enregistrement des ventes ou de la fidélité. Sortie toujours visible.
   ================================================================ */
.app.wide.register-fullscreen {
  width: 100%;
  max-width: none;
  min-height: 100dvh;
  padding: max(6px, env(safe-area-inset-top, 0px)) 10px max(8px, env(safe-area-inset-bottom, 0px));
  margin: 0;
}
.app.register-fullscreen .vd-caisse-plein-ecran { width: 100%; max-width: none; margin: 0; }
.app.register-fullscreen .vd-caisse-plein-ecran .vd-body { min-height: 0; padding: 0; }
.app.register-fullscreen .rg-shell { width: 100%; max-width: none; gap: 8px; }
.app.register-fullscreen .rg-head { gap: 10px; padding: 3px 2px; }
.app.register-fullscreen .rg-head h2 { font-size: 1.55rem; margin: 1px 0 0; }
.app.register-fullscreen .rg-head .muted { display: none; }
.app.register-fullscreen .rg-kiosk-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.app.register-fullscreen .rg-kiosk-actions .btn {
  min-height: 46px;
  border-radius: 12px;
  padding: 6px 14px;
  font-size: .82rem;
  line-height: 1.25;
  touch-action: manipulation;
}
.app.register-fullscreen .rg-kiosk-exit { border-color: #b1a48b; background: #fff; }
/* Bouton de secours visible uniquement si le navigateur n'a pas autorisé l'API Fullscreen. */
html:fullscreen .rg-kiosk-expand { display: none; }
.app.register-fullscreen .rg-connection { padding: 8px 10px; }
.app.register-fullscreen .rg-layout { gap: 10px; }
.app.register-fullscreen .rg-layout .rg-products {
  max-height: min(73dvh, 950px);
}
.app.register-fullscreen .rg-layout .rg-cart {
  position: sticky;
  top: max(6px, env(safe-area-inset-top, 0px));
  max-height: calc(100dvh - 75px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.app.register-fullscreen .rg-layout .rg-product { min-height: 94px; }
.app.register-fullscreen .vd-banners { margin: 0 0 6px; }
.app.register-fullscreen .vd-banner { padding: 8px 12px; }
.app.register-fullscreen .vd-flash { max-height: 28dvh; overflow-y: auto; }
@media (min-width: 700px) and (max-width: 820px) {
  .app.register-fullscreen .rg-layout { grid-template-columns: minmax(0,1fr) minmax(305px,.75fr); }
  .app.register-fullscreen .rg-layout .rg-products { grid-template-columns: repeat(auto-fit,minmax(125px,1fr)); }
}
@media (max-width: 699px) {
  .app.register-fullscreen .rg-layout { grid-template-columns: 1fr; }
  .app.register-fullscreen .rg-layout .rg-products { max-height: 43dvh; }
  .app.register-fullscreen .rg-layout .rg-cart { position: static; max-height: none; overflow: visible; }
  .app.register-fullscreen .rg-kiosk-actions .rg-connection { display: none; }
}
@media (max-width: 520px) {
  .app.wide.register-fullscreen { padding-inline: 6px; }
  .app.register-fullscreen .rg-head h2 { font-size: 1.3rem; }
  .app.register-fullscreen .rg-head .rg-eyebrow { font-size: .6rem; }
  .app.register-fullscreen .rg-kiosk-actions .btn { min-height: 44px; padding: 5px 10px; }
}
