/* Gift Card Manager 2.0 – base condivisa (pagina cliente + cassa). Solo variabili --gcm-*: nessun colore fisso. */
.gcm-root{--gcm-focus:var(--gcm-accent);box-sizing:border-box;min-height:100vh;background:var(--gcm-bg);color:var(--gcm-text);font-family:var(--gcm-font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-size-adjust:100%}
.gcm-root *,.gcm-root *::before,.gcm-root *::after{box-sizing:inherit}
.gcm-root img{max-width:100%;height:auto}
.gcm-root a{color:var(--gcm-primary)}
.gcm-root :focus-visible{outline:3px solid var(--gcm-focus);outline-offset:3px}
.gcm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gcm-root [hidden]{display:none!important}

.gcm-page{max-width:480px;margin:0 auto;padding:0 calc(var(--gcm-space)*2) calc(var(--gcm-space)*5);display:flex;flex-direction:column;gap:calc(var(--gcm-space)*2)}

/* Intestazione */
.gcm-header{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:calc(var(--gcm-space)*3) calc(var(--gcm-space)*2) calc(var(--gcm-space)*2);margin:0 calc(var(--gcm-space)*-2);text-align:center}
.gcm-root[data-gcm-header="light"] .gcm-header{background:var(--gcm-surface);border-bottom:1px solid var(--gcm-border)}
.gcm-root[data-gcm-header="dark"] .gcm-header{background:var(--gcm-email-header-bg);color:var(--gcm-email-header-text);border-bottom:1px solid var(--gcm-border)}
.gcm-root[data-gcm-header="dark"] .gcm-back,.gcm-root[data-gcm-header="dark"] .gcm-tagline{color:var(--gcm-email-header-text);opacity:.85}
.gcm-logo{display:block;height:56px;width:auto;max-width:260px;object-fit:contain}
.gcm-wordmark{font-family:var(--gcm-font-heading);font-size:24px;font-style:var(--gcm-heading-style);text-transform:var(--gcm-heading-transform);letter-spacing:var(--gcm-heading-tracking)}
.gcm-tagline{margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gcm-text-muted)}
.gcm-back{position:absolute;left:calc(var(--gcm-space)*2);top:calc(var(--gcm-space)*2);font-size:13px;color:var(--gcm-text-muted);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.gcm-back:hover{text-decoration:underline}
.gcm-header--compact{padding-block:calc(var(--gcm-space)*2)}

.gcm-main{display:flex;flex-direction:column;gap:calc(var(--gcm-space)*2)}

/* Tipografia */
.gcm-h1,.gcm-h2,.gcm-h3,.gcm-balance,.gcm-new-balance{font-family:var(--gcm-font-heading);font-style:var(--gcm-heading-style);text-transform:var(--gcm-heading-transform);font-weight:var(--gcm-heading-weight);letter-spacing:var(--gcm-heading-tracking);margin:0}
.gcm-h1{font-size:clamp(28px,8vw,36px);line-height:1.15}
.gcm-h2{font-size:24px}
.gcm-h3{font-size:18px}
.gcm-eyebrow{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gcm-accent)}
.gcm-label{margin:0;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gcm-text-muted)}
.gcm-muted,.gcm-hint,.gcm-progress-note{color:var(--gcm-text-muted);font-size:14px}

/* Schede */
.gcm-card{background:var(--gcm-surface);border:1px solid var(--gcm-border);border-radius:var(--gcm-radius-card);box-shadow:var(--gcm-shadow-card);padding:calc(var(--gcm-space)*3)}

/* Pulsanti */
.gcm-root .gcm-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:14px 24px;border:1px solid var(--gcm-primary);border-radius:var(--gcm-radius-button);background:var(--gcm-primary);color:var(--gcm-primary-contrast);font:700 16px/1.2 var(--gcm-font-body);text-decoration:none;cursor:pointer;transition:filter .15s,transform .05s}
.gcm-btn:hover{filter:brightness(1.08)}
.gcm-btn:active{transform:translateY(1px)}
.gcm-btn:disabled{opacity:.55;cursor:not-allowed}
.gcm-root[data-gcm-button="outline"] .gcm-btn{background:transparent;color:var(--gcm-primary)}
.gcm-root[data-gcm-button="pill"] .gcm-btn{border-radius:999px}
.gcm-root .gcm-btn--ghost{background:transparent!important;color:var(--gcm-primary)!important}
.gcm-btn--inline{width:auto;min-height:44px;padding:10px 20px}
.gcm-link{background:none;border:0;padding:8px;color:var(--gcm-primary);font:600 14px var(--gcm-font-body);cursor:pointer;min-height:44px}

/* Pillole di stato (mai solo colore: sempre testo) */
.gcm-pill{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:700;background:var(--gcm-surface-alt);color:var(--gcm-text-muted);border:1px solid var(--gcm-border)}
.gcm-pill--active{background:var(--gcm-success-soft);color:var(--gcm-success);border-color:transparent}
.gcm-pill--expired,.gcm-pill--void{background:var(--gcm-danger-soft);color:var(--gcm-danger);border-color:transparent}

/* Form */
.gcm-root label{display:block;margin:14px 0 6px;font-size:14px;font-weight:600}
.gcm-root input[type=text],.gcm-root input[type=password],.gcm-root input[type=search],.gcm-root input[type=date],.gcm-root select{width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--gcm-text-muted);border-radius:var(--gcm-radius-input);background:var(--gcm-surface);color:var(--gcm-text);font:16px var(--gcm-font-body)}
.gcm-error{margin:8px 0 0;min-height:1.2em;color:var(--gcm-danger);font-size:14px;font-weight:600}
.gcm-root[dir=rtl] .gcm-back{left:auto;right:calc(var(--gcm-space)*2)}
@media (prefers-reduced-motion:reduce){.gcm-root *{transition:none!important;animation:none!important}}

/* ---------- Pagina cliente ---------- */
.gcm-hero{padding:calc(var(--gcm-space)*2) 0 0;text-align:center}
.gcm-root[data-gcm-hero="left"] .gcm-hero{text-align:start}
.gcm-sub{margin:10px 0 0;color:var(--gcm-text-muted);font-size:16px}
.gcm-voucher{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding-top:calc(var(--gcm-space)*3.5)}
.gcm-card-image{width:100%;max-width:300px;border-radius:calc(var(--gcm-radius-card)*.7);max-height:380px;object-fit:cover;margin-bottom:12px;box-shadow:0 6px 18px rgba(0,0,0,.14)}
.gcm-for{margin:0;color:var(--gcm-text-muted);font-size:15px}
.gcm-for strong{color:var(--gcm-text)}
.gcm-balance{font-size:clamp(44px,14vw,60px);line-height:1.05;color:var(--gcm-primary);font-variant-numeric:tabular-nums}
.gcm-progress{width:100%;max-width:260px;height:6px;border-radius:99px;background:var(--gcm-surface-alt);overflow:hidden;margin-top:8px}
.gcm-progress span{display:block;height:100%;background:var(--gcm-primary);border-radius:99px;transition:width .4s}
.gcm-progress-note{margin:4px 0 0;font-size:13px}

.gcm-qr-frame{margin:18px 0 6px;padding:14px;background:#fff;border-radius:calc(var(--gcm-radius-card)*.8);border:2px solid var(--gcm-border);line-height:0}
.gcm-root[data-gcm-qr="dashed"] .gcm-qr-frame{border-style:dashed;border-color:var(--gcm-primary)}
.gcm-root[data-gcm-qr="none"] .gcm-qr-frame{border-color:transparent;padding:6px}
.gcm-qr{width:208px;height:208px}
.gcm-qr svg,.gcm-qr img{width:100%;height:100%;display:block}
.gcm-qr.is-loading{background:linear-gradient(90deg,#eee,#f7f7f7,#eee);background-size:200% 100%;animation:gcm-sh 1.2s infinite}
@keyframes gcm-sh{to{background-position:-200% 0}}
.gcm-qr-hint{margin:6px 0 0;font-weight:600}
.gcm-qr-timer{margin:0;font-size:12px;color:var(--gcm-text-muted)}
.gcm-msg{margin:14px 0;padding:18px;border-radius:var(--gcm-radius-input);background:var(--gcm-surface-alt);color:var(--gcm-text-muted);width:100%}
.gcm-sep{width:100%;border:0;border-top:1px solid var(--gcm-border);margin:14px 0 6px}
.gcm-code-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.gcm-code{margin:0;font-size:14px;color:var(--gcm-text-muted)}
.gcm-code strong{color:var(--gcm-text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em}
.gcm-copy{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 14px;border:1px solid var(--gcm-border);border-radius:var(--gcm-radius-button);background:var(--gcm-surface);color:var(--gcm-primary);font:600 13px var(--gcm-font-body);cursor:pointer}
.gcm-copy.is-copied{background:var(--gcm-success-soft);color:var(--gcm-success)}
.gcm-voucher .gcm-pill{margin-top:8px}

.gcm-details{padding:0}
.gcm-details summary{display:flex;justify-content:space-between;align-items:center;min-height:56px;padding:0 calc(var(--gcm-space)*3);font-weight:700;cursor:pointer;list-style:none}
.gcm-details summary::-webkit-details-marker{display:none}
.gcm-chev{transition:transform .15s}
.gcm-details:not([open]) .gcm-chev{transform:rotate(180deg)}
.gcm-dl{margin:0;padding:0 calc(var(--gcm-space)*3) calc(var(--gcm-space)*3);display:grid;gap:16px}
.gcm-dl dt{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gcm-text-muted)}
.gcm-dl dd{margin:2px 0 0;font-weight:600}
.gcm-dl .gcm-quote{font-family:var(--gcm-font-heading);font-style:italic;font-weight:400;font-size:18px;line-height:1.5;padding-inline-start:14px;border-inline-start:3px solid var(--gcm-accent)}

.gcm-help{display:flex;gap:12px;align-items:center;padding:16px 20px;border-radius:var(--gcm-radius-card);background:var(--gcm-surface-alt);font-size:14px;color:var(--gcm-text-muted)}
.gcm-help a{font-weight:700;font-size:16px;text-decoration:none}
.gcm-help-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--gcm-surface);color:var(--gcm-primary)}
.gcm-notfound{text-align:center}
.gcm-footer{text-align:center;padding-top:8px;font-size:13px}
.gcm-footer p{margin:6px 0 0}
.gcm-footer a{color:var(--gcm-text-muted)}
.gcm-ornament{display:block;width:40px;height:1px;margin:0 auto;background:var(--gcm-accent)}
