/* Victory Caisse — écran caisse repris de la caisse Google validée (Index.html, 21/10/2026).
   Mêmes dimensions et règles ; couleurs Redeem / Greenleaf de la vidéo (décision de Hugues, 21/10/2026) ; noms de classes préfixés « g » pour ne pas se mêler au reste de l'application. */
body.g-mode { margin: 0; font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background: #F4F6F5; color: #1c2433; font-size: 16px; }
body.g-mode #topbar { display: none !important; }
body.g-mode #app { display: block; max-width: none; padding: 0; }
.gc { --navy: #00076A; --green: #1F7A3A; --bg: #F4F6F5; --line: #E3E8EE; --warn: #8A4B14; --mint: #E7F3EA; }
.gc * { box-sizing: border-box; }
.gc header { background: var(--navy); color: #fff; padding: 14px 16px; position: sticky; top: 0; z-index: 5;
  padding-top: calc(14px + env(safe-area-inset-top, 0px)); display: flex; align-items: center; gap: 12px; }
.gc header .ht { flex: 1 1 auto; min-width: 0; }
.gc header b { font-size: 18px; }
.gc header small { display: block; opacity: .8; margin-top: 2px; }
.gc header .acct { flex: none; width: 36px; height: 36px; border-radius: 10px; border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; font-size: 15px; font-weight: bold; }
.gc main { padding: 12px 16px 120px; max-width: 640px; margin: 0 auto; }
.gc .gcard { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin-bottom: 12px; }
.gc h2 { font-size: 15px; margin: 0 0 10px; color: var(--navy); text-transform: uppercase; letter-spacing: .03em; }
.gc .gseg { display: flex; gap: 6px; flex-wrap: wrap; }
.gc .gseg button { flex: 1; min-width: 30%; padding: 11px 6px; border: 1px solid var(--line); background: #fff; border-radius: 10px; font-size: 15px; color: #1c2433; font-family: inherit; }
.gc .gseg button.on { background: var(--navy); color: #fff; border-color: var(--navy); }
.gc input { width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 16px; font-family: inherit; color: #1c2433; background: #fff; }
.gc label { display: block; }
.gc .glist { max-height: 260px; overflow: auto; margin-top: 8px; }
.gc .grow { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 4px; border-bottom: 1px solid #eef1f6; }
.gc .grow .t { flex: 1; min-width: 0; } .gc .grow .t div { font-size: 13px; color: #667; }
.gc .pick { padding: 9px 12px; border-radius: 9px; border: 1px solid var(--navy); background: #fff; color: var(--navy); font-size: 14px; font-family: inherit; }
.gc .chosen { background: var(--mint); border: 1px solid #C6E3CE; border-radius: 10px; padding: 10px; margin-top: 8px; }
.gc .gqty { display: flex; align-items: center; gap: 6px; }
.gc .gqty button { width: 36px; height: 36px; border-radius: 9px; border: 1px solid var(--line); background: #fff; font-size: 20px; color: #1c2433; }
.gc .gqty input { width: 82px; min-width: 0; padding: 8px 3px; text-align: center; font-weight: bold; font-size: 16px; }
.gc .tot { display: flex; justify-content: space-between; padding: 4px 0; }
.gc .tot.big { font-weight: bold; font-size: 18px; border-top: 1px solid var(--line); margin-top: 6px; padding-top: 8px; }
.gc .bar { position: fixed; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid var(--line); padding: 10px 16px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 6; }
.gc .bar button { width: 100%; max-width: 640px; display: block; margin: 0 auto; padding: 15px; border: none; border-radius: 12px; background: var(--green); color: #fff; font-size: 17px; font-weight: bold; font-family: inherit; }
.gc .bar button:disabled { background: #b9c2cf; }
.gc .muted { color: #667; font-size: 13px; }
.gc .warn { color: var(--warn); font-size: 14px; margin-top: 6px; }
.gc .ok { color: var(--green); font-weight: bold; }
.gc a.gbtn, .gc button.gbtn { display: block; text-align: center; padding: 13px; border-radius: 11px; margin-top: 8px; text-decoration: none; font-size: 16px; border: none; width: 100%; font-family: inherit; }
.gc .wa { background: #25d366; color: #fff; } .gc .dr { background: var(--navy); color: #fff; } .gc .ghost { background: #fff; color: var(--navy); border: 1px solid var(--navy) !important; }
.gc nav { display: flex; gap: 6px; padding: 8px 16px; background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 56px; z-index: 4; overflow-x: auto; }
.gc nav button { flex: 1; padding: 9px 6px; border-radius: 9px; border: 1px solid var(--line); background: #fff; font-size: 14px; white-space: nowrap; color: #1c2433; font-family: inherit; }
.gc nav button.on { background: var(--navy); color: #fff; border-color: var(--navy); }
.gc .view { display: none; } .gc .view.on { display: block; }
.gc select { width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 16px; background: #fff; font-family: inherit; color: #1c2433; }
.gc .kv { display: flex; justify-content: space-between; padding: 3px 0; }
.gc .badge { display: inline-block; padding: 2px 8px; border-radius: 8px; background: var(--mint); font-size: 12px; }
.gc #overlay { display: none; position: fixed; inset: 0; background: rgba(11,15,36,.55); z-index: 9; align-items: center; justify-content: center; color: #fff; font-size: 17px; }
.gc a { color: var(--navy); }
.gc .hidden { display: none !important; }
.gc .mt8 { margin-top: 8px; } .gc .mt10 { margin-top: 10px; } .gc .my6 { margin: 6px 0; }
.gc .gseg button:disabled { opacity: .45; }
.gc input:disabled { background: #F4F6F5; }
/* Utilitaires (la politique de sécurité interdit les attributs style dans le HTML) */
.gc .mt6 { margin-top: 6px; } .gc .mt8 { margin-top: 8px; } .gc .mt10 { margin-top: 10px; } .gc .mt14 { margin-top: 14px; }
.gc .gmargin { margin: 6px 0; }
.gc .ghide { display: none !important; }
.gc .gshow { display: flex !important; }
.gc p { margin: 8px 0; }
.gc input[type=checkbox] { width: auto; margin-right: 6px; vertical-align: middle; }
.gc details summary { color: var(--navy); cursor: pointer; padding: 6px 0; }
.gc input[readonly] { background: #F4F6F5; }
.gc .grow.edited { background: #FDF0E6; }
.gc .gcard .grow input[type=number] { width: 82px; }
.gc .grow.gstrike .t b, .gc .grow.gstrike > span { text-decoration: line-through; color: #8a93a3; }
.gc .gcard > h2, .gc header .ghome { cursor: pointer; }
.gc .gstatut { font-weight: bold; color: var(--green); margin-top: 4px; }
