/* ================================================================
   MonQuartier — CSS extrait de maquette.html + extensions Symfony
   Palette : #FF4500 · #222220 · #FAF7F2 · Manrope
================================================================ */

/* === RESET === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --orange:#FF4500;--orange-h:#E03D00;
  --dark:#222220;--dark2:#2E2E2B;
  --cream:#FAF7F2;--cream2:#F5F0E8;
  --white:#FFFFFF;--gray:#888880;--text:#1A1A18;
  --green:#2EC464;--red:#FF3B30;--gold:#FFB800;
  --font:'Manrope',sans-serif;
  --r-sm:12px;--r-md:16px;--r-lg:24px;--r-pill:50px;
  /* Shop theme (injecté côté client) */
  --shop-primary:#1A1A1A;--shop-secondary:#F5F0E8;--shop-font:'Manrope',sans-serif;
}
html,body{font-family:var(--font);background:var(--dark);color:var(--white);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
ul{list-style:none}

/* === BUTTONS === */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-weight:700;border:none;cursor:pointer;transition:background .2s,transform .1s;text-decoration:none}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--orange);color:var(--white);padding:14px 32px;border-radius:var(--r-pill);font-size:16px}
.btn-primary:hover{background:var(--orange-h)}
.btn-secondary{background:transparent;color:var(--white);padding:13px 32px;border-radius:var(--r-pill);font-size:16px;border:2px solid var(--white)}
.btn-secondary:hover{background:rgba(255,255,255,.1)}
.btn-dark{background:var(--dark);color:var(--white);padding:14px 32px;border-radius:var(--r-pill);font-size:16px}
.btn-dark:hover{background:#333330}

/* === LOGO === */
.logo{font-size:22px;font-weight:800;color:var(--white);cursor:pointer;text-decoration:none}
.logo span{color:var(--orange)}

/* ================================================================
   LANDING
================================================================ */
.nav-landing{display:flex;align-items:center;justify-content:space-between;padding:24px 60px;position:sticky;top:0;background:var(--dark);z-index:100}
.nav-landing-links{display:flex;align-items:center;gap:12px}

.hero{text-align:center;padding:100px 40px 80px;max-width:700px;margin:0 auto}
.hero h1{font-size:clamp(2.5rem,6vw,3.75rem);font-weight:900;line-height:1.1;margin-bottom:20px}
.hero h1 em{color:var(--orange);font-style:italic}
.hero-sub{color:var(--gray);font-size:17px;line-height:1.6;max-width:440px;margin:0 auto 40px}
.hero-ctas{display:flex;flex-direction:column;align-items:center;gap:20px}
.hero-arrow{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--gray);font-size:14px;cursor:pointer;animation:bounce 2s infinite;text-decoration:none}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

.section-label{text-align:center;color:var(--orange);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}
.section-how{background:var(--cream2);padding:80px 60px}
.section-title{text-align:center;font-size:36px;font-weight:800;color:var(--text);margin-bottom:32px}
.steps-grid{display:grid;gap:16px;max-width:600px;margin:0 auto}
.step-card{background:var(--white);border-radius:var(--r-md);padding:24px;display:flex;align-items:flex-start;gap:20px;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.step-num{width:40px;height:40px;min-width:40px;background:var(--orange);color:var(--white);border-radius:50%;font-size:18px;font-weight:900;display:flex;align-items:center;justify-content:center}
.step-card h3{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px}
.step-card p{font-size:14px;color:var(--gray);line-height:1.5}

.section-pricing{background:var(--dark);padding:80px 60px}
.section-title-light{text-align:center;font-size:36px;font-weight:800;color:var(--white);margin-bottom:8px}
.section-sub{text-align:center;color:var(--gray);font-size:15px;margin-bottom:48px}
.pricing-grid{display:flex;justify-content:center;gap:24px;max-width:700px;margin:0 auto 24px;flex-wrap:wrap}
.price-card{background:var(--dark2);border-radius:var(--r-lg);padding:36px 32px;width:300px;display:flex;flex-direction:column}
.price-card.featured{background:var(--orange)}
.price-card-name{font-size:22px;font-weight:800;margin-bottom:12px}
.price-amount{font-size:48px;font-weight:900;line-height:1;margin-bottom:4px}
.price-amount span{font-size:22px}
.price-amount sub{font-size:16px;font-weight:600}
.price-annual{font-size:13px;opacity:.7;margin-bottom:24px}
.price-features{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:32px}
.price-features li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}
.check-circle{width:20px;height:20px;min-width:20px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:11px}
.price-card:not(.featured) .check-circle{background:rgba(255,69,0,.15);color:var(--orange)}
.price-sms-note{text-align:center;color:var(--gray);font-size:13px}

/* ================================================================
   AUTH (login / register)
================================================================ */
.auth-page{background:var(--dark);min-height:100vh;display:flex;flex-direction:column}
.nav-auth{padding:32px 60px}
.auth-content{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px 80px}
.auth-card{background:var(--cream);border-radius:var(--r-lg);padding:48px 40px;width:100%;max-width:420px;color:var(--text);box-shadow:0 24px 60px rgba(0,0,0,.3)}
.auth-card h1{font-size:28px;font-weight:800;text-align:center;margin-bottom:32px;color:var(--text)}
.form-group,.auth-form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.form-group label,.auth-form-group label{font-size:13px;font-weight:700;color:var(--text)}
.form-input{background:var(--white);border:2px solid transparent;border-radius:var(--r-sm);padding:14px 16px;font-family:var(--font);font-size:15px;color:var(--text);outline:none;transition:border-color .2s;width:100%}
.form-input:focus{border-color:var(--orange)}
select.form-input{-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}
.auth-footer{text-align:center;font-size:14px;color:var(--gray);margin-top:20px}
.auth-footer a{color:var(--orange);font-weight:700;text-decoration:underline}
.auth-error{background:#FFEBEE;color:#C62828;border:1px solid #FFCDD2;border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:14px}

/* ================================================================
   CLIENT REGISTER (page publique du commerce)
================================================================ */
body.client-layout{background:var(--cream);color:var(--text);font-family:var(--font)}
.client-page{min-height:100vh;display:flex;flex-direction:column}
.client-banner{background:var(--shop-primary,var(--orange));padding:20px 32px;display:flex;align-items:center;gap:16px}
.client-banner-icon{width:44px;height:44px;background:rgba(255,255,255,.2);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:20px;overflow:hidden;flex-shrink:0}
.client-banner-icon img{width:100%;height:100%;object-fit:cover}
.client-banner-info h2{font-size:17px;font-weight:800;color:var(--white)}
.client-banner-info p{font-size:13px;color:rgba(255,255,255,.75)}
.client-content{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px}
.client-card{background:var(--white);border-radius:var(--r-lg);padding:40px 32px;width:100%;max-width:400px;box-shadow:0 8px 32px rgba(0,0,0,.08)}
.client-card h2{font-size:22px;font-weight:800;color:var(--text);margin-bottom:8px}
.client-card>p{font-size:14px;color:var(--gray);margin-bottom:28px;line-height:1.5}
.client-form{display:flex;flex-direction:column;gap:16px}
.form-input-cream{background:var(--cream);border:2px solid transparent;border-radius:var(--r-sm);padding:14px 16px;font-family:var(--font);font-size:15px;color:var(--text);outline:none;transition:border-color .2s;width:100%}
.form-input-cream:focus{border-color:var(--shop-primary,var(--orange))}
.legal-note{text-align:center;font-size:11px;color:#BBB;margin-top:16px;line-height:1.5}

/* ================================================================
   LOYALTY CARD PAGE (card/show)
================================================================ */
.card-page{min-height:100dvh;padding:0 0 40px;background:var(--cream)}
.card-page__header{padding:16px 20px 0;text-align:center}
.card-page__back{
  display:inline-flex;align-items:center;gap:5px;
  font-size:12px;font-weight:700;color:rgba(26,26,24,.4);
  text-decoration:none;margin-bottom:10px;
  transition:color .15s;
}
.card-page__back:hover{color:var(--shop-primary,var(--orange))}
.card-page__shop-name{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.5;margin-bottom:4px;color:var(--text)}
.card-page__card-area{padding:20px 16px 0;display:flex;flex-direction:column;align-items:center}
.card-page__qr{padding:24px 16px 0;max-width:412px;margin:0 auto;width:100%}
.card-page__qr-inner{background:#fff;border-radius:16px;padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:14px;border:1px solid #EEE;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.card-page__qr-img{width:min(260px,80vw);height:min(260px,80vw);border-radius:8px;image-rendering:crisp-edges}
.card-page__qr-label{display:flex;flex-direction:column;gap:4px;text-align:center}
.card-page__qr-label strong{font-size:14px;color:#111}
.card-page__qr-label span{font-size:12px;color:#666;line-height:1.5}
.card-page__offers{padding:16px 16px 0;max-width:412px;margin:0 auto;width:100%}
.card-page__offer{background:var(--white);border-radius:12px;padding:14px 16px;margin-bottom:10px;border:1px solid #EEE;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.card-page__offer-text{font-size:14px;color:var(--text);line-height:1.5}
.card-page__offer-date{font-size:11px;color:#AAA;margin-top:6px}
.stamp-added-banner{background:rgba(46,196,100,.15);border:1px solid rgba(46,196,100,.3);border-radius:12px;padding:10px 16px;font-size:13px;font-weight:700;color:var(--green);display:flex;align-items:center;gap:8px}
.flip-hint{display:flex;align-items:center;gap:6px;font-size:12px;color:rgba(0,0,0,.35);margin-top:16px}

/* Card 3D flip */
.card-scene{width:340px;max-width:100%;perspective:1000px;cursor:pointer}
.card-inner{position:relative;width:100%;aspect-ratio:85.6/54;transition:transform .6s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}
.card-inner.is-flipped{transform:rotateY(180deg)}
.card-face{position:absolute;inset:0;border-radius:14px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;transition:box-shadow .4s}
.card-face--front{background:linear-gradient(135deg,color-mix(in srgb,var(--shop-primary) 90%,#fff),var(--shop-primary));box-shadow:0 24px 64px rgba(0,0,0,.5),0 4px 16px rgba(0,0,0,.3)}
.card-face--back{transform:rotateY(180deg);background:var(--shop-primary);box-shadow:0 0 0 rgba(0,0,0,0);background-size:200% 200%!important;animation:cardGradient 8s ease-in-out infinite}
.card-face-content{padding:14px;display:flex;flex-direction:column;height:100%}
.card-face__top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.card-face__shop-logo{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;color:#fff;overflow:hidden}
.card-face__shop-logo img{width:100%;height:100%;object-fit:cover}
.card-face__mq-logo{font-size:11px;font-weight:900;color:rgba(255,255,255,.5)}
.card-face__shop-name{font-size:13px;font-weight:800;color:#fff;margin-bottom:2px}
.card-face__shop-type{font-size:10px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.06em;margin-bottom:auto}
.card-face__bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:auto;padding-top:10px}
.card-face__client-name{font-size:13px;font-weight:800;color:#fff}
.card-face__level{font-size:10px;color:rgba(255,255,255,.7);margin-top:2px}
.card-chip{width:28px;height:20px;border-radius:4px;background:linear-gradient(135deg,#ffd700,#ffaa00);opacity:.8}
.card-magnetic-stripe{height:36px;background:rgba(0,0,0,.35);margin-bottom:12px}
.card-back-content{padding:8px 14px 14px;display:flex;flex-direction:column;gap:10px;color:#fff}
.card-back__stamps-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.6)}
.stamp-dots{display:flex;flex-wrap:wrap;gap:5px}
.stamp-dot{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s}
.stamp-dot--empty{border:1.5px solid rgba(255,255,255,.3);background:transparent}
.stamp-dot--filled{background:rgba(255,255,255,.25);border:1.5px solid rgba(255,255,255,.6)}
.stamp-dot--new{animation:stamp-pop .5s cubic-bezier(.16,1,.3,1)}
@keyframes stamp-pop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}
.reward-unlocked{font-size:12px;font-weight:700;color:#fff;background:rgba(255,255,255,.2);border-radius:8px;padding:6px 10px;text-align:center}
.card-back__progress{display:flex;flex-direction:column;gap:4px}
.card-back__progress-labels{display:flex;justify-content:space-between;font-size:10px;color:rgba(255,255,255,.6)}
.pub-progress{height:4px;background:rgba(255,255,255,.2);border-radius:99px;overflow:hidden}
.pub-progress__fill{height:100%;background:#fff;border-radius:99px;transition:width .6s ease}
.card-back__reward{font-size:10px;color:rgba(255,255,255,.7);font-style:italic}
.card-back__footer{display:flex;justify-content:space-between;font-size:9px;color:rgba(255,255,255,.4);margin-top:auto}

/* Card animations */
@keyframes shimmer{0%{background-position:200% 50%}100%{background-position:-200% 50%}}
@keyframes cardGradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.card-face::after{content:'';position:absolute;inset:0;border-radius:14px;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 39%,rgba(255,255,255,.07) 41%,transparent 52%);background-size:260% 100%;animation:shimmer 5s ease-in-out infinite;pointer-events:none;z-index:10}
.card-inner.is-flipped .card-face--front{box-shadow:0 0 0 rgba(0,0,0,0)}
.card-inner.is-flipped .card-face--back{box-shadow:0 24px 64px rgba(0,0,0,.5),0 4px 16px rgba(0,0,0,.3)}

/* ================================================================
   DASHBOARD LAYOUT
================================================================ */
.dash-body-wrap{min-height:100vh;display:flex;flex-direction:column;padding-top:60px}
.nav-dashboard{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:var(--white);border-bottom:1px solid #EEEEE8;position:fixed;top:0;left:0;right:0;z-index:200}
.nav-dashboard .logo{color:var(--text)}
/* Bouton Quitter visible uniquement dans la barre mobile */
.sidebar-item--logout{display:none}
.avatar-btn{width:40px;height:40px;border-radius:50%;background:var(--orange);color:var(--white);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;font-family:var(--font);text-decoration:none;box-shadow:0 4px 16px rgba(255,69,0,.25)}
.dash-body{display:flex;flex:1;background:var(--cream)}
.dash-sidebar{width:240px;min-width:240px;background:var(--orange);padding:28px 0;display:flex;flex-direction:column;position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}
.sidebar-greeting{padding:0 24px 24px;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:14px}
.sidebar-greeting p{font-size:13px;color:rgba(255,255,255,.75)}
.sidebar-greeting h2{font-size:17px;font-weight:800;color:var(--white);margin-top:2px}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 12px}
.sidebar-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r-sm);cursor:pointer;color:rgba(255,255,255,.85);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em;transition:background .2s,color .2s;text-decoration:none;border:none;background:none;font-family:var(--font);width:100%;text-align:left}
.sidebar-item:hover{background:rgba(0,0,0,.12);color:var(--white)}
.sidebar-item.is-active,.sidebar-item.active{background:rgba(0,0,0,.2);color:var(--white)}
.sidebar-item svg{flex-shrink:0;stroke:rgba(255,255,255,.85)}
.sidebar-item:hover svg,.sidebar-item.is-active svg,.sidebar-item.active svg{stroke:var(--white)}
.dash-content{flex:1;padding:40px 48px;overflow-y:auto;min-width:0}

/* Subscription expired banner */
.sub-banner{background:rgba(255,59,48,.1);border-bottom:1px solid rgba(255,59,48,.25);padding:10px 32px;display:flex;align-items:center;gap:8px;font-size:13px;color:#D32F2F}
.sub-banner svg{width:16px;height:16px;flex-shrink:0}
.sub-banner span{flex:1}
.sub-banner a{color:var(--text);font-weight:700;text-decoration:underline;flex-shrink:0}

/* Flash messages */
.flash{padding:12px 32px;font-size:14px;font-weight:600;border-bottom:1px solid transparent}
.flash--success{background:#E8F5E9;color:#2E7D32;border-color:#A5D6A7}
.flash--error{background:#FFEBEE;color:#C62828;border-color:#FFCDD2}
.flash--info{background:#FFF3E0;color:#E65100;border-color:#FFCC80}

/* Alert (used in forms) */
.alert{padding:14px 16px;border-radius:var(--r-sm);font-size:14px;margin-bottom:12px;display:flex;align-items:flex-start;gap:10px}
.alert svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}
.alert--success{background:#E8F5E9;color:#2E7D32;border:1px solid #A5D6A7}
.alert--error{background:#FFEBEE;color:#C62828;border:1px solid #FFCDD2}
.alert--info{background:#FFF3E0;color:#E65100;border:1px solid #FFCC80}

/* ================================================================
   DASHBOARD SECTIONS (SPA)
================================================================ */
[data-section]{display:none}
[data-section].active{display:block}

/* ================================================================
   DASHBOARD CONTENT — basé sur les sections de la maquette
================================================================ */
.dash-page-title{font-size:26px;font-weight:800;color:var(--text);margin-bottom:28px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}
.stat-box{background:var(--white);border-radius:var(--r-md);padding:22px;box-shadow:0 2px 12px rgba(0,0,0,.05)}
.stat-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gray);margin-bottom:8px}
.stat-value{font-size:34px;font-weight:900;color:var(--text);line-height:1;margin-bottom:8px}
.stat-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px}
.stat-badge.up{background:#E8F5E9;color:#2E7D32}
.stat-badge.neutral{background:#FFF3E0;color:#E65100}
.dash-grid{display:grid;grid-template-columns:1fr 300px;gap:22px}
.dash-card{background:var(--white);border-radius:var(--r-md);padding:26px;box-shadow:0 2px 12px rgba(0,0,0,.05)}
.dash-card+.dash-card{margin-top:0}
.dash-card-title{font-size:14px;font-weight:800;color:var(--text);margin-bottom:18px}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.clients-count{font-size:26px;font-weight:900;color:var(--text)}
.clients-count span{font-size:15px;font-weight:600;color:var(--gray);margin-left:5px}

/* Chips / filter pills */
.chips-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.chip{padding:6px 16px;border-radius:var(--r-pill);font-size:13px;font-weight:700;cursor:pointer;border:2px solid transparent;transition:all .2s;background:var(--white);color:var(--gray);text-decoration:none;display:inline-block}
.chip.active{background:var(--orange);color:var(--white)}
.chip:not(.active):hover{border-color:var(--orange);color:var(--orange)}

/* Clients table */
.clients-table{width:100%;border-collapse:collapse}
.clients-table th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gray);text-align:left;padding:7px 0;border-bottom:1px solid #EEEEE8}
.clients-table td{padding:13px 0;border-bottom:1px solid #F5F5F0;vertical-align:middle}
.clients-table tr:last-child td{border-bottom:none}
.clients-table tbody tr:hover td{background:var(--cream)}
.client-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--white);flex-shrink:0}
.client-name-cell{display:flex;align-items:center;gap:10px}
.client-name{font-size:14px;font-weight:700;color:var(--text)}
.stamps-dots{display:flex;gap:3px}
.stamp-dot-sm,.stamps-dots .stamp-dot{width:8px;height:8px;border-radius:50%;background:#DDD}
.stamp-dot-sm.on,.stamps-dots .stamp-dot.on{background:var(--orange)}
.level-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.lb-bronze{background:#FDF0E6;color:#CD7F32}
.lb-silver{background:#F5F5F5;color:#6E6E6E}
.lb-gold{background:#FFFBE6;color:#B8860B}
.rewards-badge{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:800;padding:3px 10px;border-radius:20px;background:#FFFBE6;color:#B8860B}
.rewards-badge::before{content:'🏆';font-size:11px}
.date-cell{font-size:12px;color:var(--gray)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* QR panel */
.qr-panel{display:flex;flex-direction:column;align-items:center;gap:14px}
.qr-box{width:150px;height:150px;background:var(--orange);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center}
.qr-info{text-align:center;font-size:12px;color:var(--gray);line-height:1.5}

/* SMS history table */
.history-table{width:100%;border-collapse:collapse}
.history-table th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gray);text-align:left;padding:7px 0;border-bottom:1px solid #EEEEE8}
.history-table td{padding:11px 0;border-bottom:1px solid #F5F5F0;font-size:13px;color:var(--text)}
.history-table tr:last-child td{border-bottom:none}

/* SMS textarea */
.sms-textarea{width:100%;background:var(--cream);border:2px solid #EEEEE8;border-radius:var(--r-sm);padding:14px;font-family:var(--font);font-size:14px;color:var(--text);resize:vertical;min-height:110px;outline:none;margin:14px 0;transition:border-color .2s;display:block}
.sms-textarea:focus{border-color:var(--orange)}
.sms-meta{display:flex;align-items:center;justify-content:space-between}
.sms-count{font-size:13px;color:var(--gray)}
.sms-count strong{color:var(--text)}

/* Settings — layout 2 colonnes */
.settings-layout{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}
.settings-main{}
.settings-side{}
.stg-section-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--gray);margin:22px 0 12px;padding-top:16px;border-top:1px solid #EEEEE8}
.stg-section-title:first-child{border-top:none;margin-top:0;padding-top:0}
.stg-label{display:block;font-size:12px;font-weight:700;color:var(--gray);margin-bottom:6px}
.stg-field{margin-bottom:12px}
.stg-hint{font-size:11px;color:var(--gray);margin-top:-6px;margin-bottom:10px}
.stg-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stg-color-row{display:flex;align-items:center;gap:10px;background:var(--cream);border:2px solid #EEEEE8;border-radius:var(--r-sm);padding:10px 14px}
.stg-color-row input[type="color"]{width:28px;height:28px;border:none;border-radius:6px;cursor:pointer;padding:0;background:none;flex-shrink:0}
.stg-hex{font-size:13px;font-weight:700;color:var(--text);font-family:monospace}
.stg-tpl-btn{width:100%;padding:12px 10px;border:2px solid transparent;border-radius:var(--r-sm);cursor:pointer;font-family:inherit;font-weight:700;font-size:13px;text-align:left;transition:opacity .2s}
.stg-tpl-btn:hover{opacity:.85}
.stg-tpl-label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;opacity:.6;margin-bottom:3px}

/* Settings — form inputs */
.settings-form{max-width:480px}
.settings-section-title{font-size:14px;font-weight:800;color:var(--text);margin:26px 0 14px;padding-top:18px;border-top:1px solid #EEEEE8}
.settings-section-title:first-child{border-top:none;margin-top:0}
.settings-input{width:100%;background:var(--cream);border:2px solid #EEEEE8;border-radius:var(--r-sm);padding:13px 16px;font-family:var(--font);font-size:15px;color:var(--text);outline:none;transition:border-color .2s;margin-bottom:10px;display:block}
.settings-input:focus{border-color:var(--orange)}
select.settings-input{-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}
.sub-info{background:#FFF3E0;border-radius:var(--r-sm);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.sub-plan-name{font-size:17px;font-weight:800;color:var(--text)}
.plan-tag{background:var(--orange);color:var(--white);font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;margin-left:8px}
.sub-renewal{font-size:12px;color:var(--gray);margin-top:3px}

/* Progress bar */
.progress-bar{height:6px;background:#EEEEE8;border-radius:99px;overflow:hidden}
.progress-bar__fill{height:100%;background:var(--orange);border-radius:99px;transition:width .6s ease}

/* Stamp history (client show) */
.stamp-history{display:flex;flex-direction:column;gap:8px}
.stamp-history__item{display:flex;align-items:center;gap:10px;font-size:13px;padding:10px 14px;background:var(--cream2);border-radius:var(--r-sm);color:var(--text)}
.stamp-history__dot{width:8px;height:8px;border-radius:50%;background:var(--orange);flex-shrink:0}
.stamp-history__date{color:var(--gray);font-size:12px;margin-left:auto}

/* Client SMS form toggle */
.client-sms-form{margin-top:12px;padding-top:14px;border-top:1px solid #EEEEE8;display:none}
.client-sms-form.is-open{display:block}

/* ================================================================
   PERSONNALISATION (standalone dark page)
================================================================ */
.perso-page{background:var(--dark);min-height:100vh;display:flex;flex-direction:column}
.nav-perso{display:flex;align-items:center;justify-content:space-between;padding:18px 48px;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;background:var(--dark);z-index:100}
.nav-perso-center{text-align:center}
.nav-perso-center .sub{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--gray);font-weight:700}
.nav-perso-center .title{font-size:14px;font-weight:800;color:var(--white)}
.perso-layout{display:grid;grid-template-columns:1fr 400px;min-height:calc(100vh - 65px)}
.perso-form-col{padding:40px 48px;overflow-y:auto}
.perso-preview-col{background:var(--dark2);padding:36px 28px;position:sticky;top:65px;height:calc(100vh - 65px);overflow-y:auto;display:flex;flex-direction:column;gap:28px}
.perso-section{margin-bottom:36px}
.perso-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--orange);margin-bottom:18px}
.perso-field{margin-bottom:16px}
.perso-field label{display:block;font-size:13px;font-weight:600;color:rgba(255,255,255,.55);margin-bottom:7px}
.perso-input{background:var(--dark2);border:1.5px solid rgba(255,255,255,.1);border-radius:var(--r-sm);padding:12px 16px;font-family:var(--font);font-size:15px;color:var(--white);outline:none;width:100%;transition:border-color .2s;display:block}
.perso-input:focus{border-color:var(--orange)}
select.perso-input{-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}
.color-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.color-field label{font-size:12px;font-weight:600;color:rgba(255,255,255,.55);margin-bottom:7px;display:block}
.color-wrap{display:flex;align-items:center;gap:10px;background:var(--dark2);border:1.5px solid rgba(255,255,255,.1);border-radius:var(--r-sm);padding:10px 14px}
.color-wrap input[type="color"]{width:28px;height:28px;border:none;border-radius:6px;cursor:pointer;padding:0;background:none}
.color-hex{font-size:13px;font-weight:700;color:var(--white);font-family:monospace}
.drop-zone{border:2px dashed rgba(255,255,255,.2);border-radius:var(--r-sm);padding:28px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.drop-zone:hover{border-color:var(--orange);background:rgba(255,69,0,.05)}
.drop-zone p{font-size:13px;color:var(--gray);line-height:1.5}
.drop-zone span{color:var(--orange);font-weight:700}
.preview-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gray);margin-bottom:10px}
.save-bar{display:flex;justify-content:flex-end;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);margin-top:8px}

/* Admin */
.admin-table{width:100%;border-collapse:collapse}
.admin-table th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gray);text-align:left;padding:7px 0;border-bottom:1px solid #EEEEE8}
.admin-table td{padding:13px 0;border-bottom:1px solid #F5F5F0;vertical-align:middle}

/* ================================================================
   ONBOARDING — Choix du template
================================================================ */
.onboarding-page{background:var(--dark);min-height:100vh;display:flex;flex-direction:column}
.nav-template{padding:28px 60px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08)}
.template-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px}
.template-title{font-size:38px;font-weight:900;color:var(--white);margin-bottom:10px;text-align:center}
.template-sub{color:var(--gray);font-size:16px;margin-bottom:52px;text-align:center}
.template-grid{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;margin-bottom:44px}
.template-card{width:300px;border-radius:var(--r-lg);overflow:hidden;cursor:pointer;border:3px solid transparent;transition:border-color .25s,transform .25s,box-shadow .25s;position:relative;background:var(--dark2);box-shadow:0 4px 20px rgba(0,0,0,.3)}
.template-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,0,0,.4)}
.template-card.selected{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange),0 12px 40px rgba(255,69,0,.25)}
.template-preview{height:190px;padding:18px;display:flex;align-items:stretch}
.template-preview-a{background:#222220;border-radius:8px;flex:1;display:flex;gap:10px;overflow:hidden}
.tpa-sidebar{width:36px;background:var(--orange);border-radius:6px;display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:8px}
.tpa-dot{width:18px;height:18px;background:rgba(255,255,255,.3);border-radius:4px}
.tpa-dot.active{background:rgba(255,255,255,.9)}
.tpa-content{flex:1;padding:10px 8px;display:flex;flex-direction:column;gap:7px;justify-content:center}
.tpa-line{height:7px;background:rgba(255,255,255,.25);border-radius:3px}
.tpa-line.short{width:55%}.tpa-line.med{width:75%}.tpa-line.full{width:90%}
.tpa-stat{height:28px;background:rgba(255,255,255,.1);border-radius:6px;margin-top:4px}
.template-preview-b{background:#FAF7F2;border-radius:8px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px}
.tpb-card{width:100%;background:white;border-radius:10px;padding:12px;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.tpb-accent{height:6px;background:var(--orange);border-radius:3px;width:45%;margin-bottom:8px}
.tpb-line{height:5px;background:#EEEEE8;border-radius:3px;margin-bottom:5px}
.tpb-line.short{width:65%}.tpb-line.full{width:90%}
.template-info{padding:18px 20px 20px;background:var(--dark2)}
.template-name{font-size:16px;font-weight:800;color:var(--white);margin-bottom:4px}
.template-desc{font-size:13px;color:var(--gray);line-height:1.4}
.template-check{position:absolute;top:12px;right:12px;width:26px;height:26px;background:var(--orange);border-radius:50%;display:none;align-items:center;justify-content:center;font-size:13px;color:var(--white);font-weight:900}
.template-card.selected .template-check{display:flex}

/* ================================================================
   ONBOARDING — Personnalisation extras
================================================================ */
.nav-perso-center .title{font-size:14px;font-weight:800;color:var(--white)}
.font-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.font-option{border:2px solid rgba(255,255,255,.1);border-radius:var(--r-sm);padding:14px 12px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.font-option:hover,.font-option.selected{border-color:var(--orange);background:rgba(255,69,0,.1)}
.font-preview{font-size:20px;font-weight:700;margin-bottom:4px;color:var(--white)}
.font-name{font-size:11px;color:var(--gray)}
.stamps-row{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.stamps-row label{font-size:13px;font-weight:600;color:rgba(255,255,255,.55);white-space:nowrap}
.stamps-counter{display:flex;align-items:center;gap:12px;background:var(--dark2);border-radius:var(--r-sm);padding:8px 16px}
.stamps-counter button{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.1);border:none;color:var(--white);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;font-family:var(--font)}
.stamps-counter button:hover{background:var(--orange)}
.stamps-counter span{font-size:20px;font-weight:800;min-width:28px;text-align:center;color:var(--white)}
.rewards-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.reward-row{display:flex;align-items:center;gap:12px}
.reward-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap}
.rb-bronze{background:#CD7F32;color:#fff}
.rb-silver{background:#A8A9AD;color:#fff}
.rb-gold{background:#FFD700;color:#333}
.perso-input-sm{flex:1;background:var(--dark2);border:1.5px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 14px;font-family:var(--font);font-size:14px;color:var(--white);outline:none}
.perso-input-sm:focus{border-color:var(--orange)}

/* ================================================================
   LANDING — How tabs
================================================================ */
.how-tabs-row{display:flex;justify-content:center;gap:0;background:#E0DBD3;border-radius:var(--r-pill);padding:4px;max-width:360px;margin:0 auto 40px}
.how-tab{flex:1;text-align:center;padding:11px 20px;border-radius:var(--r-pill);font-weight:700;font-size:14px;cursor:pointer;transition:background .2s,color .2s;color:var(--gray);white-space:nowrap}
.how-tab.active{background:var(--white);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.how-panel{display:none;max-width:660px;margin:0 auto}
.how-panel.active{display:block}
.step-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.1)}
.step-icon{font-size:17px;margin-right:4px}
.step-demo-link{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-size:12px;font-weight:700;color:var(--orange);cursor:pointer;background:rgba(255,69,0,.07);border-radius:20px;padding:4px 10px;transition:background .2s;text-decoration:none}
.step-demo-link:hover{background:rgba(255,69,0,.15)}
.how-cta{text-align:center;margin-top:32px}
.how-note{font-size:13px;color:var(--gray);margin-top:10px}

/* ================================================================
   AUTH — Tabs
================================================================ */
.auth-tabs{display:flex;background:#E8E3DC;border-radius:var(--r-pill);padding:4px;margin-bottom:32px}
.auth-tab{flex:1;text-align:center;padding:10px;border-radius:var(--r-pill);font-weight:700;font-size:14px;cursor:pointer;transition:background .2s,color .2s;color:var(--gray)}
.auth-tab.active{background:var(--white);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.1)}
.auth-form{display:none;flex-direction:column;gap:16px}
.auth-form.active{display:flex}
.forgot-link{text-align:right;font-size:13px;color:var(--orange);font-weight:600;cursor:pointer;text-decoration:none;display:block;margin-top:4px}

/* ================================================================
   BUTTONS — Extra
================================================================ */
.btn-outline-orange{background:transparent;color:var(--orange);padding:9px 20px;border-radius:var(--r-pill);font-size:13px;border:2px solid var(--orange);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .2s;text-decoration:none}
.btn-outline-orange:hover{background:rgba(255,69,0,.08)}

/* ================================================================
   DASHBOARD — Loyalty levels
================================================================ */
.loyalty-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}
.loyalty-level-card{background:var(--cream);border-radius:var(--r-sm);padding:18px 14px;text-align:center}
.level-icon{font-size:26px;margin-bottom:7px}
.level-title{font-size:13px;font-weight:800;color:var(--text);margin-bottom:3px}
.level-stamps{font-size:12px;color:var(--gray);margin-bottom:7px}
.level-reward{font-size:13px;font-weight:700;color:var(--orange);margin-bottom:10px}

/* ================================================================
   SCANNER QR
================================================================ */
#sec-scanner{background:var(--dark);border-radius:var(--r-lg);margin:-40px -48px;padding:48px}
.scanner-wrap{display:flex;flex-direction:column;align-items:center;max-width:480px;margin:0 auto}
.scanner-title{font-size:24px;font-weight:800;color:var(--white);margin-bottom:10px;text-align:center}
.scanner-sub{font-size:14px;color:var(--gray);text-align:center;margin-bottom:36px;line-height:1.6}
.scanner-viewfinder{width:260px;height:260px;position:relative;margin-bottom:32px}
.scanner-viewfinder-bg{width:100%;height:100%;background:#111110;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.scanner-viewfinder-bg::after{content:'';position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--orange),transparent);animation:scanLine 2s linear infinite;top:10%}
@keyframes scanLine{0%{top:10%}100%{top:90%}}
.scanner-cam-icon{font-size:52px;opacity:.2;position:relative;z-index:1}
.corner{position:absolute;width:26px;height:26px;border-color:var(--orange);border-style:solid}
.corner-tl{top:10px;left:10px;border-width:3px 0 0 3px;border-radius:3px 0 0 0}
.corner-tr{top:10px;right:10px;border-width:3px 3px 0 0;border-radius:0 3px 0 0}
.corner-bl{bottom:10px;left:10px;border-width:0 0 3px 3px;border-radius:0 0 0 3px}
.corner-br{bottom:10px;right:10px;border-width:0 3px 3px 0;border-radius:0 0 3px 0}
.scanner-divider{width:100%;border:none;border-top:1px solid rgba(255,255,255,.1);margin:28px 0;position:relative}
.scanner-divider::after{content:'ou';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--dark);padding:0 12px;font-size:12px;color:var(--gray);font-weight:700}
.scanner-manual{width:100%;display:flex;gap:12px}
.scanner-manual-input{flex:1;background:var(--dark2);border:1.5px solid rgba(255,255,255,.1);border-radius:var(--r-sm);padding:14px 16px;font-family:var(--font);font-size:15px;color:var(--white);outline:none;transition:border-color .2s}
.scanner-manual-input:focus{border-color:var(--orange)}

/* ================================================================
   RESPONSIVE
================================================================ */

/* ── Tablet ≤ 900px ── */
@media (max-width:900px){
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .dash-grid{grid-template-columns:1fr}
  .perso-layout{grid-template-columns:1fr 320px}
  .section-how{padding:60px 32px}
  .section-pricing{padding:60px 32px}
  .nav-landing{padding:18px 32px}
  .hero{padding:80px 32px 60px}
  .hero h1{font-size:48px}
  /* Masque téléphone + date sur tablette (sidebar toujours visible = espace réduit) */
  .col-phone,.col-date,.col-rewards{display:none}
  .dash-content{padding:28px 28px}
  #sec-scanner{margin:-28px -28px;padding:40px 28px}
  .settings-layout{grid-template-columns:1fr 240px;gap:14px}
  .stg-row-2{grid-template-columns:1fr}
}

/* ── Mobile ≤ 768px ── */
@media (max-width:768px){
  html,body{overflow-x:hidden}

  /* Landing */
  .nav-landing{padding:14px 18px}
  .nav-landing-links .btn-secondary{display:none}
  .nav-landing-links .btn-primary{font-size:13px;padding:10px 18px}
  .logo{font-size:19px}
  .hero{padding:48px 20px 40px;max-width:100%}
  .hero h1{font-size:32px;line-height:1.18}
  .hero-sub{font-size:14px;max-width:100%;margin-bottom:32px}
  .hero-ctas{gap:12px;width:100%}
  .hero-ctas .btn-primary{width:100%!important;font-size:16px!important;padding:16px 20px!important;border-radius:14px;justify-content:center}
  .hero-arrow{font-size:13px}
  .section-how{padding:44px 18px}
  .section-title{font-size:22px;margin-bottom:24px}
  .step-card{padding:14px 16px;gap:12px}
  .step-num{width:32px;height:32px;min-width:32px;font-size:14px}
  .step-card h3{font-size:14px}
  .step-card p{font-size:13px}
  .section-pricing{padding:44px 18px}
  .section-title-light{font-size:22px}
  .section-sub{font-size:13px;margin-bottom:32px}
  .pricing-grid{flex-direction:column;align-items:stretch;gap:16px}
  .price-card{width:100%;padding:28px 22px}
  .price-amount{font-size:42px}
  .price-card .btn-primary{width:100%;justify-content:center;margin-top:auto}

  /* Auth */
  .nav-auth{padding:16px 18px}
  .auth-content{padding:16px 16px 48px;align-items:stretch}
  .auth-card{padding:28px 20px;border-radius:20px;box-shadow:0 12px 40px rgba(0,0,0,.22);max-width:100%}
  .auth-card h1{font-size:22px;margin-bottom:24px}
  .auth-card .btn-primary{width:100%!important;padding:15px!important;justify-content:center}

  /* Perso */
  .nav-perso{padding:12px 16px}
  .nav-perso-center .sub{font-size:9px}
  .nav-perso-center .title{font-size:11px}
  .perso-layout{display:flex;flex-direction:column;min-height:0}
  .perso-preview-col{order:1;position:static;height:auto;padding:20px 16px 16px;gap:10px}
  .perso-form-col{order:2;padding:20px 16px 100px;overflow-y:visible}
  .perso-section{margin-bottom:22px}
  .color-grid{grid-template-columns:1fr 1fr}
  .save-bar{position:fixed;bottom:0;left:0;right:0;padding:12px 16px;margin:0;background:rgba(34,34,32,.96);backdrop-filter:blur(8px);border-top:1px solid rgba(255,255,255,.1);z-index:300;justify-content:stretch}
  .save-bar .btn-primary{width:100%!important;justify-content:center;padding:15px!important;font-size:15px!important}

  /* Client register */
  .client-banner{padding:14px 16px;gap:10px}
  .client-banner-info h2{font-size:15px}
  .client-content{padding:16px 16px;align-items:stretch}
  .client-card{padding:24px 18px;border-radius:18px;max-width:100%}
  .client-card h2{font-size:20px}
  .client-card .btn-primary{width:100%!important;padding:15px!important;justify-content:center}

  /* Dashboard — top nav masquée, navigation uniquement en bas */
  .nav-dashboard{display:none}
  .dash-body-wrap{padding-top:0;height:100vh;height:100dvh;overflow:hidden}
  .dash-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
  .dash-content{order:1;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:16px 16px}
  .sidebar-item--logout{display:flex}

  /* Sidebar → barre de navigation collée en bas (pas de position:fixed) */
  .dash-sidebar{
    order:2;
    position:static;
    width:100%;min-width:0;
    flex-shrink:0;
    height:calc(56px + env(safe-area-inset-bottom,0px));
    padding-bottom:env(safe-area-inset-bottom,0px);
    padding-top:0;
    flex-direction:row;
    border-top:1px solid rgba(0,0,0,.18);
    box-shadow:0 -2px 16px rgba(0,0,0,.2);
    background:var(--orange);
    display:flex;
  }
  .sidebar-greeting{display:none}
  .sidebar-nav{flex-direction:row;padding:0;margin:0;width:100%;gap:0;align-items:stretch}
  .sidebar-item{
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    flex:1;
    padding:6px 4px 4px;
    border-radius:0;
    font-size:9px;
    font-weight:700;
    text-transform:none;
    letter-spacing:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    min-width:0;
    color:rgba(255,255,255,.7);
  }
  .sidebar-item svg{width:21px;height:21px;flex-shrink:0;stroke:rgba(255,255,255,.7)}
  .sidebar-item.is-active,.sidebar-item.active{background:rgba(0,0,0,.2);color:var(--white)}
  .sidebar-item.is-active svg,.sidebar-item.active svg{stroke:var(--white)}

  /* Stats */
  .dash-page-title{font-size:19px;margin-bottom:14px}
  .stat-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
  .stat-box{padding:14px 12px}
  .stat-value{font-size:26px;margin-bottom:4px}
  .stat-label{font-size:10px;margin-bottom:4px}
  .stat-badge{font-size:10px;padding:2px 6px}

  /* Dash grid */
  .dash-grid{grid-template-columns:1fr;gap:12px}
  .dash-card{padding:16px 14px;border-radius:14px;overflow:hidden}
  .dash-card-title{font-size:13px;margin-bottom:14px}

  /* Tables */
  .col-phone,.col-date,.col-rewards{display:none}
  .history-table th:nth-child(2),.history-table td:nth-child(2){display:none}
  .history-table th:nth-child(4),.history-table td:nth-child(4){display:none}
  .clients-table{font-size:13px}
  .client-avatar{width:28px;height:28px;font-size:11px}
  .stamp-dot{width:6px;height:6px}
  .stamps-dots{gap:2px;flex-wrap:wrap;max-width:80px}
  .level-badge{font-size:10px;padding:2px 7px}

  /* SMS */
  .sms-meta{flex-direction:column;gap:10px}
  .sms-meta .btn{width:100%!important;padding:13px!important;justify-content:center}
  .sms-count{font-size:12px}
  .section-header{flex-direction:column;align-items:flex-start;gap:8px}
  .clients-count{font-size:22px}

  /* Settings */
  .settings-form{max-width:100%}
  .settings-layout{grid-template-columns:1fr}
  .stg-row-2{grid-template-columns:1fr}
  .sub-info{flex-direction:column;align-items:flex-start;gap:10px}
  .sub-info .btn-primary{width:100%!important;justify-content:center}

  /* QR panel */
  .qr-panel .btn-primary{width:100%!important;justify-content:center}
  .qr-panel .btn-outline-orange{width:100%;justify-content:center}

  /* How tabs */
  .how-tabs-row{max-width:100%}
  .how-cta .btn-primary{width:100%;justify-content:center}

  /* Template */
  .nav-template{padding:14px 18px}
  .template-content{padding:24px 16px 40px;justify-content:flex-start}
  .template-title{font-size:22px;margin-bottom:8px}
  .template-sub{font-size:13px;margin-bottom:24px}
  .template-grid{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:20px;width:100%}
  .template-card{width:100%}
  .template-preview{height:160px}

  /* Scanner */
  #sec-scanner{margin:-20px -16px;padding:28px 16px;border-radius:0}
  .scanner-title{font-size:20px}
  .scanner-sub{font-size:13px;margin-bottom:24px}
  .scanner-viewfinder{width:min(240px,72vw);height:min(240px,72vw);margin-bottom:20px}
  .scanner-manual{flex-direction:column;gap:10px}
  .scanner-manual .btn{width:100%!important;padding:14px!important;justify-content:center}
  .scanner-manual-input{width:100%}

  /* Loyalty levels */
  .loyalty-levels{grid-template-columns:1fr 1fr;gap:10px}
  .loyalty-level-card .btn-primary{font-size:11px!important;padding:8px 12px!important;width:100%;justify-content:center}
}

/* ── Petit mobile ≤ 430px ── */
@media (max-width:430px){
  /* Landing */
  .hero h1{font-size:27px}
  .hero{padding:40px 16px 36px}
  .section-how,.section-pricing{padding:36px 16px}
  .step-card{padding:12px 14px;gap:10px}
  .step-num{width:30px;height:30px;min-width:30px;font-size:13px}

  /* Auth */
  .auth-card{padding:24px 16px}
  .auth-card h1{font-size:20px}

  /* Perso */
  .color-grid{grid-template-columns:1fr}

  /* Dashboard — stats sur 1 colonne */
  .stat-grid{grid-template-columns:1fr 1fr}
  .stat-value{font-size:22px}
  .stat-box{padding:12px 10px}
  .dash-content{padding:16px 12px}
  .sidebar-item{font-size:8px}
  .sidebar-item svg{width:19px;height:19px}
  .qr-box{width:120px;height:120px}
  .dash-page-title{font-size:17px}

  /* Client register */
  .client-banner{flex-wrap:wrap;padding:12px 14px}

  /* Pricing */
  .price-amount{font-size:36px}
  .price-card{padding:24px 18px}

  /* Loyalty */
  .loyalty-levels{grid-template-columns:1fr}

  /* Scanner */
  .scanner-viewfinder{width:min(200px,70vw);height:min(200px,70vw)}
  #sec-scanner{margin:-16px -12px;padding:28px 12px}

  /* Card page */
  .card-page__qr{padding:16px 12px 0}
  .card-page__qr-inner{padding:18px 14px;gap:10px}
  .card-page__qr-img{width:min(220px,78vw);height:min(220px,78vw)}
  .card-scene{width:100%;padding:0 12px;box-sizing:border-box}
  .flip-hint{font-size:11px;margin-top:10px}
}

/* ── Très petit mobile ≤ 375px ── */
@media (max-width:375px){
  /* Landing */
  .hero h1{font-size:24px}
  .nav-landing{padding:10px 14px}
  .nav-landing-links .btn-primary{font-size:12px;padding:9px 14px}

  /* Dashboard */
  .stat-grid{grid-template-columns:1fr}
  .stat-box{padding:10px 10px}
  .sidebar-item{font-size:7px;padding:5px 2px 3px}
  .sidebar-item svg{width:17px;height:17px}
  .dash-content{padding:12px 10px}
  .dash-card{padding:14px 12px}
  .clients-table{font-size:12px}
  .stamp-dot{width:5px;height:5px}
  .stamps-dots{max-width:60px}

  /* Scanner */
  .scanner-viewfinder{width:min(180px,68vw);height:min(180px,68vw)}
  #dash-scanner-btn{font-size:14px;padding:12px 20px}

  /* Card page */
  .card-page__qr-img{width:min(200px,76vw);height:min(200px,76vw)}
  .card-page__header{padding:10px 14px 0}
}

/* ================================================================
   SCANNER CAMÉRA — dashboard/scanner/index.html.twig
================================================================ */
.scanner-wrap{display:flex;flex-direction:column;align-items:center;padding:24px 16px;min-height:100vh}
.scanner-viewport{position:relative;width:100%;max-width:360px;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:1/1}
.scanner-viewport video{width:100%;height:100%;object-fit:cover}
.scanner-frame{position:absolute;inset:20%;border:3px solid var(--orange);border-radius:12px;animation:pulse-frame 1.5s infinite;pointer-events:none}
@keyframes pulse-frame{0%,100%{opacity:1}50%{opacity:.4}}
.scanner-hint{position:absolute;bottom:12px;width:100%;text-align:center;color:#fff;font-size:13px;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.scanner-result{text-align:center;padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:16px}
.result-icon{font-size:64px}
.result-name{font-size:22px;font-weight:800;color:var(--white)}
.result-msg{font-size:16px;color:var(--gray)}
.result-meta{font-size:14px;color:var(--orange);font-weight:600}
.scanner-error{color:#ff3b30;text-align:center;padding:40px 20px;line-height:1.6}

.bottom-nav{display:none}

/* ================================================================
   THÈME DASHBOARD — sombre / marine (Template A & B)
   Activé par body.dash-themed injecté depuis base.html.twig
   --shop-primary  : couleur principale du commerce
   --shop-secondary: couleur d'accent
================================================================ */

/* ── Layout global ────────────────────────────────────────────── */
body.dash-themed{background:color-mix(in srgb,var(--shop-primary,#222220) 55%,#000)}

.dash-themed .nav-dashboard{
  background:color-mix(in srgb,var(--shop-primary,#222220) 75%,#000);
  border-bottom-color:rgba(255,255,255,.07);
}
.dash-themed .nav-dashboard .logo{color:#FAF7F2}
.dash-themed .avatar-btn{background:var(--shop-secondary,var(--orange));color:color-mix(in srgb,var(--shop-primary,#222220) 90%,#000);box-shadow:none}

.dash-themed .dash-body{background:color-mix(in srgb,var(--shop-primary,#222220) 55%,#000)}
.dash-themed .dash-content{color:#FAF7F2}

/* ── Bandeau abonnement ───────────────────────────────────────── */
.dash-themed .sub-banner{background:rgba(255,59,48,.15);color:#FF7070;border-color:rgba(255,59,48,.3)}
.dash-themed .sub-banner a{color:#FAF7F2}

/* ── Flash messages ───────────────────────────────────────────── */
.dash-themed .flash--success{background:rgba(46,125,50,.2);color:#81C784;border-color:rgba(46,125,50,.3)}
.dash-themed .flash--error{background:rgba(198,40,40,.2);color:#EF9A9A;border-color:rgba(198,40,40,.3)}
.dash-themed .flash--info{background:rgba(230,81,0,.15);color:#FFCC80;border-color:rgba(230,81,0,.3)}

/* ── Titres de page ───────────────────────────────────────────── */
.dash-themed .dash-page-title{color:#FAF7F2}
.dash-themed .clients-count{color:#FAF7F2}
.dash-themed .clients-count span{color:rgba(250,247,242,.5)}

/* ── Stats ────────────────────────────────────────────────────── */
.dash-themed .stat-box{
  background:rgba(255,255,255,.08);
  box-shadow:none;
  border:1px solid rgba(255,255,255,.1)
}
.dash-themed .stat-label{color:rgba(250,247,242,.55)}
.dash-themed .stat-value{color:#FAF7F2}
.dash-themed .stat-badge.up{background:rgba(46,125,50,.25);color:#81C784}
.dash-themed .stat-badge.neutral{background:rgba(230,81,0,.18);color:#FFCC80}

/* ── Cards ────────────────────────────────────────────────────── */
.dash-themed .dash-card{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:none
}
.dash-themed .dash-card-title{color:rgba(250,247,242,.6)}

/* ── Chips / filtres ──────────────────────────────────────────── */
.dash-themed .chip{background:rgba(255,255,255,.08);color:rgba(250,247,242,.65);border-color:transparent}
.dash-themed .chip.active{background:var(--shop-secondary,var(--orange));color:color-mix(in srgb,var(--shop-primary,#222220) 90%,#000)}
.dash-themed .chip:not(.active):hover{border-color:var(--shop-secondary,var(--orange));color:var(--shop-secondary,var(--orange))}

/* ── Table clients ────────────────────────────────────────────── */
.dash-themed .clients-table th{color:rgba(250,247,242,.45);border-bottom-color:rgba(255,255,255,.1)}
.dash-themed .clients-table td{color:#FAF7F2;border-bottom-color:rgba(255,255,255,.07)}
.dash-themed .clients-table tbody tr:hover td{background:rgba(255,255,255,.06)}
.dash-themed .client-name{color:#FAF7F2}
.dash-themed .date-cell{color:rgba(250,247,242,.5)}

/* ── Table historique SMS ─────────────────────────────────────── */
.dash-themed .history-table th{color:rgba(250,247,242,.45);border-bottom-color:rgba(255,255,255,.1)}
.dash-themed .history-table td{color:#FAF7F2;border-bottom-color:rgba(255,255,255,.07)}

/* ── QR panel ─────────────────────────────────────────────────── */
.dash-themed .qr-box{background:rgba(255,255,255,.1)}
.dash-themed .qr-info{color:rgba(250,247,242,.55)}

/* ── SMS ──────────────────────────────────────────────────────── */
.dash-themed .sms-textarea{background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.15);color:#FAF7F2}
.dash-themed .sms-textarea:focus{border-color:var(--shop-secondary,var(--orange))}
.dash-themed .sms-textarea::placeholder{color:rgba(250,247,242,.3)}
.dash-themed .sms-count{color:rgba(250,247,242,.5)}
.dash-themed .sms-count strong{color:#FAF7F2}

/* ── Niveaux fidélité ─────────────────────────────────────────── */
.dash-themed .loyalty-level-card{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1)
}
.dash-themed .level-title{color:#FAF7F2}
.dash-themed .level-stamps{color:rgba(250,247,242,.55)}
.dash-themed .level-reward{color:rgba(250,247,242,.45)}

/* ── Réglages ─────────────────────────────────────────────────── */
.dash-themed .settings-section-title{color:rgba(250,247,242,.45);border-top-color:rgba(255,255,255,.1)}
.dash-themed .stg-section-title{color:rgba(250,247,242,.4);border-top-color:rgba(255,255,255,.1)}
.dash-themed .stg-label{color:rgba(250,247,242,.5)}
.dash-themed .stg-color-row{background:rgba(0,0,0,.2);border-color:rgba(255,255,255,.12)}
.dash-themed .stg-hex{color:#FAF7F2}
.dash-themed .stg-hint{color:rgba(250,247,242,.4)}
.dash-themed .settings-input{
  background:rgba(0,0,0,.25)!important;
  border-color:rgba(255,255,255,.18)!important;
  color:#FAF7F2!important
}
.dash-themed .settings-input:focus{border-color:var(--shop-secondary,var(--orange))!important}
.dash-themed .settings-input::placeholder{color:rgba(250,247,242,.3)}
.dash-themed select.settings-input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23FAF7F2' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")
}
.dash-themed .settings-form label,.dash-themed .settings-form p{color:rgba(250,247,242,.55)!important}

/* ── Abonnement ───────────────────────────────────────────────── */
.dash-themed .sub-info{background:rgba(255,255,255,.07)}
.dash-themed .sub-plan-name{color:#FAF7F2}
.dash-themed .plan-tag{background:var(--shop-secondary,var(--orange));color:color-mix(in srgb,var(--shop-primary,#222220) 90%,#000)}
.dash-themed .sub-renewal{color:rgba(250,247,242,.5)}

/* ── Historique tampons ───────────────────────────────────────── */
.dash-themed .stamp-history__item{background:rgba(255,255,255,.06);color:#FAF7F2}
.dash-themed .stamp-history__date{color:rgba(250,247,242,.5)}
.dash-themed .client-sms-form{border-top-color:rgba(255,255,255,.1)}

/* ================================================================
   PAGE CLIENT — Template B (Clair)
   Design "boutique locale" : header orange, tampons directs, épuré
================================================================ */

/* ── Page wrapper ─────────────────────────────────────────────── */
.lc-page{
  min-height:100vh;
  background:#F5F3EF;
  font-family:var(--shop-font,'Instrument Sans','Manrope',sans-serif);
  display:flex;
  flex-direction:column;
  align-items:center;
}

/* ── Header orange ────────────────────────────────────────────── */
.lc-header{
  width:100%;
  background:var(--shop-primary,var(--orange));
  padding:40px 24px 56px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  color:#fff;
}
.lc-header__logo{
  width:80px;height:80px;border-radius:50%;
  background:rgba(255,255,255,.2);border:3px solid rgba(255,255,255,.35);
  display:flex;align-items:center;justify-content:center;
  font-size:30px;font-weight:800;color:#fff;
  margin-bottom:14px;overflow:hidden;flex-shrink:0;
}
.lc-header__logo img{width:100%;height:100%;object-fit:cover}
.lc-header__name{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:5px}
.lc-header__type{font-size:12px;opacity:.75;text-transform:uppercase;letter-spacing:.1em;font-weight:600}

/* ── Corps (remonté sur le header) ───────────────────────────── */
.lc-body{
  width:100%;max-width:440px;
  padding:0 16px 48px;
  margin-top:-32px;
  display:flex;flex-direction:column;gap:14px;
}

/* ── Bandeaux succès ──────────────────────────────────────────── */
.lc-stamp-added{
  background:#EDFAF0;border:1.5px solid #A8DFBC;color:#1A6636;
  border-radius:14px;padding:12px 16px;
  display:flex;align-items:center;gap:10px;
  font-size:14px;font-weight:600;
}
.lc-unlocked{
  background:#FFF8ED;border:1.5px solid #FFD08C;color:#A85600;
  border-radius:14px;padding:12px 16px;
  font-size:14px;font-weight:600;text-align:center;
}

/* ── Carte principale blanche ─────────────────────────────────── */
.lc-card{
  background:#fff;
  border-radius:20px;
  padding:24px 22px;
  box-shadow:0 4px 28px rgba(0,0,0,.09),0 1px 4px rgba(0,0,0,.05);
}
.lc-card__top{
  display:flex;align-items:flex-start;
  justify-content:space-between;margin-bottom:20px;
}
.lc-greeting{font-size:20px;font-weight:800;color:#1A1A18;margin-bottom:8px}
.lc-level{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--shop-primary,var(--orange));color:#fff;
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  padding:4px 12px;border-radius:99px;
}
.lc-mq-badge{
  width:36px;height:36px;border-radius:10px;
  background:var(--shop-primary,var(--orange));
  color:#fff;font-size:11px;font-weight:900;letter-spacing:-.02em;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}

/* ── Grille tampons ───────────────────────────────────────────── */
.lc-stamps-label{
  font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:#AAA8A4;margin-bottom:14px;
}
.lc-stamps-grid{
  display:grid;
  grid-template-columns:repeat(var(--cols,5),1fr);
  gap:8px;margin-bottom:20px;
}
.lc-dot{
  aspect-ratio:1;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.lc-dot--empty{background:#EDE9E4;border:2px solid #DDD9D4}
.lc-dot--filled{background:var(--shop-primary,var(--orange));color:#fff}

/* ── Barre de progression ─────────────────────────────────────── */
.lc-progress-wrap{
  height:7px;background:#EDE9E4;border-radius:99px;overflow:hidden;margin-bottom:10px;
}
.lc-progress-fill{
  height:100%;background:var(--shop-primary,var(--orange));
  border-radius:99px;transition:width .6s ease;
}
.lc-progress-info{
  display:flex;justify-content:space-between;
  font-size:13px;color:#999;margin-bottom:0;
}
.lc-progress-info strong{color:#1A1A18}

/* ── Récompense ───────────────────────────────────────────────── */
.lc-reward-box{
  margin-top:16px;
  background:#FFF5F0;border:1.5px solid #FFCDB8;border-radius:12px;
  padding:12px 16px;display:flex;align-items:center;gap:10px;
  font-size:14px;color:#C84A00;font-weight:600;
}
.lc-reward-icon{font-size:18px;flex-shrink:0}

/* ── Offres ───────────────────────────────────────────────────── */
.lc-section-title{
  font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:#AAA8A4;padding:0 4px;
}
.lc-offer{
  background:#fff;border-radius:14px;padding:14px 16px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  display:flex;align-items:flex-start;gap:12px;
}
.lc-offer__dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px;
  background:var(--shop-primary,var(--orange));
}
.lc-offer__text{font-size:14px;color:#1A1A18;font-weight:500;margin-bottom:3px}
.lc-offer__date{font-size:12px;color:#BBB8B4}

/* ── Lien retour (Template B) ─────────────────────────────────── */
.lc-back{
  display:inline-flex;align-items:center;gap:6px;
  color:rgba(26,26,24,.5);font-size:13px;font-weight:600;
  padding:14px 16px 0;text-decoration:none;
  transition:color .15s;
}
.lc-back:hover{color:var(--shop-primary,var(--orange))}

/* ── Pied de page ─────────────────────────────────────────────── */
.lc-footer{
  text-align:center;font-size:12px;color:#C0BDB8;margin-top:4px;
}
.lc-footer strong{color:var(--shop-primary,var(--orange))}

/* ── Responsive ───────────────────────────────────────────────── */
@media(max-width:480px){
  .lc-header{padding:32px 20px 48px}
  .lc-header__name{font-size:20px}
  .lc-body{padding:0 12px 40px}
  .lc-card{padding:20px 16px}
  .lc-stamps-grid{gap:6px}
}

/* ================================================================
   PAGE PORTEFEUILLE CLIENT — /portefeuille/{token}
   Design MonQuartier brand (dark + orange)
================================================================ */

/* ── Page wrapper ─────────────────────────────────────────────── */
.wlt-page{
  min-height:100vh;
  background:#18181A;
  font-family:var(--font);
  display:flex;flex-direction:column;
}

/* ── En-tête ──────────────────────────────────────────────────── */
.wlt-header{
  background:linear-gradient(160deg,#222220 0%,#1A1A18 100%);
  padding:40px 24px 36px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.wlt-header__brand{
  display:flex;align-items:center;gap:10px;margin-bottom:24px;
}
.wlt-header__mq{
  width:36px;height:36px;border-radius:10px;
  background:var(--orange);color:#fff;
  font-size:13px;font-weight:900;letter-spacing:-.02em;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.wlt-header__brand span{
  font-size:15px;font-weight:700;color:rgba(255,255,255,.5);letter-spacing:.04em;
}
.wlt-header__greeting{
  font-size:26px;font-weight:800;color:#FAF7F2;
  letter-spacing:-.02em;margin-bottom:6px;
}
.wlt-header__sub{
  font-size:14px;color:rgba(250,247,242,.45);font-weight:500;
}

/* ── Corps ────────────────────────────────────────────────────── */
.wlt-body{
  flex:1;display:flex;flex-direction:column;gap:12px;
  padding:20px 16px 32px;max-width:560px;width:100%;margin:0 auto;
}

/* ── État vide ────────────────────────────────────────────────── */
.wlt-empty{
  text-align:center;padding:56px 24px;
}
.wlt-empty__icon{font-size:48px;margin-bottom:16px}
.wlt-empty__title{
  font-size:18px;font-weight:800;color:#FAF7F2;margin-bottom:10px;
}
.wlt-empty__text{
  font-size:14px;color:rgba(250,247,242,.45);line-height:1.6;
}

/* ── Corps (empty state) ──────────────────────────────────────── */
.wlt-body{flex:1;display:flex;flex-direction:column;padding:20px 16px 32px;max-width:560px;width:100%;margin:0 auto}

/* ── Cartes crédit portefeuille ───────────────────────────────── */
.wlt-cards-list{
  display:flex;flex-direction:column;gap:32px;
  padding:28px 20px 48px;max-width:440px;width:100%;margin:0 auto;
}
.wlt-mini-card{
  display:flex;flex-direction:column;
  aspect-ratio:85.6/54;width:100%;
  border-radius:18px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--shop-primary,var(--orange)) 88%,#fff),var(--shop-primary,var(--orange)));
  padding:16px 18px;position:relative;overflow:hidden;
  box-shadow:0 22px 60px rgba(0,0,0,.55),0 4px 16px rgba(0,0,0,.35);
  text-decoration:none;color:#fff;font-family:var(--font);
  transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;
  cursor:pointer;
}
.wlt-mini-card:hover{transform:translateY(-5px);box-shadow:0 30px 72px rgba(0,0,0,.6)}
.wlt-mini-card:active{transform:scale(.98)}
.wlt-mini-card::after{
  content:'';position:absolute;inset:0;border-radius:18px;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 39%,rgba(255,255,255,.07) 41%,transparent 52%);
  background-size:260% 100%;animation:shimmer 5s ease-in-out infinite;pointer-events:none;
}
.wlt-mc-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}
.wlt-mc-logo{
  width:34px;height:34px;border-radius:9px;
  background:rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:14px;color:#fff;overflow:hidden;
}
.wlt-mc-logo img{width:100%;height:100%;object-fit:cover}
.wlt-mc-mq{font-size:11px;font-weight:900;color:rgba(255,255,255,.5)}
.wlt-mc-shop-name{font-size:14px;font-weight:800;color:#fff;margin-bottom:2px}
.wlt-mc-shop-type{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.55)}
.wlt-mc-dots{display:flex;flex-wrap:wrap;gap:4px;margin:auto 0;padding:7px 0}
.wlt-mc-dot{width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.3)}
.wlt-mc-dot--on{background:rgba(255,255,255,.85);border-color:rgba(255,255,255,.9)}
.wlt-mc-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:auto}
.wlt-mc-client{font-size:13px;font-weight:800;color:#fff}
.wlt-mc-level{font-size:9px;color:rgba(255,255,255,.65);margin-top:2px}
.wlt-mc-chip{width:26px;height:19px;border-radius:4px;background:linear-gradient(135deg,#ffd700,#ffaa00);opacity:.8}

/* Info sous la carte */
.wlt-mc-meta{margin-top:10px}
.wlt-mc-bar{height:3px;background:rgba(255,255,255,.08);border-radius:2px;margin-bottom:8px;overflow:hidden}
.wlt-mc-bar__fill{height:100%;border-radius:2px;transition:width .4s}
.wlt-mc-meta-row{display:flex;justify-content:space-between;font-size:11px;color:rgba(250,247,242,.4)}
.wlt-reward-ready{color:var(--orange);font-weight:600}

/* ── Pied de page ─────────────────────────────────────────────── */
.wlt-footer{
  text-align:center;font-size:12px;color:rgba(250,247,242,.2);
  padding:16px 0 24px;
}
.wlt-footer strong{color:rgba(255,69,0,.6)}

/* ── Responsive ───────────────────────────────────────────────── */
@media(max-width:480px){
  .wlt-header{padding:32px 16px 28px}
  .wlt-header__greeting{font-size:22px}
  .wlt-cards-list{padding:20px 14px 36px;gap:24px}
  .wlt-mini-card{padding:14px 15px;border-radius:14px}
}

/* ================================================================
   BANNIÈRE COOKIES RGPD
================================================================ */
.cookie-banner{
  position:fixed;bottom:0;left:0;right:0;z-index:9999;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--dark2);border-top:1px solid rgba(255,255,255,.1);
  padding:14px 24px;font-size:13px;color:rgba(255,255,255,.8);
}
.cookie-banner__text a{color:var(--orange);text-decoration:underline}
.cookie-banner__actions{display:flex;gap:10px;flex-shrink:0}
.cookie-banner__btn{padding:8px 20px;border-radius:var(--r-pill);font-size:13px;font-weight:700;cursor:pointer;border:none;font-family:var(--font);transition:background .2s}
.cookie-banner__btn--accept{background:var(--orange);color:var(--white)}
.cookie-banner__btn--accept:hover{background:var(--orange-h)}
.cookie-banner__btn--more{background:transparent;color:rgba(255,255,255,.7);border:1.5px solid rgba(255,255,255,.25);text-decoration:none;display:flex;align-items:center}
.cookie-banner__btn--more:hover{border-color:rgba(255,255,255,.5);color:var(--white)}
@media(max-width:600px){
  .cookie-banner{flex-direction:column;align-items:flex-start;padding:14px 16px}
}

/* ================================================================
   PAGES LÉGALES
================================================================ */
.legal-page{min-height:100vh;background:var(--cream);color:var(--text)}
.legal-page .nav-auth{padding:20px 24px;border-bottom:1px solid rgba(0,0,0,.06)}
.legal-content{max-width:780px;margin:0 auto;padding:48px 32px 80px}
.legal-content h1{font-size:2rem;font-weight:900;color:var(--text);margin-bottom:8px}
.legal-date{font-size:13px;color:var(--gray);margin-bottom:40px}
.legal-content section{margin-bottom:36px}
.legal-content h2{font-size:1.1rem;font-weight:800;color:var(--text);margin-bottom:12px;padding-top:4px}
.legal-content h3{font-size:.95rem;font-weight:700;color:var(--text);margin:14px 0 8px}
.legal-content p{font-size:.9375rem;line-height:1.7;color:#444;margin-bottom:12px}
.legal-content ul{padding-left:20px;margin-bottom:12px}
.legal-content ul li{list-style:disc;font-size:.9375rem;line-height:1.7;color:#444;margin-bottom:6px}
.legal-content a{color:var(--orange);text-decoration:underline}
.legal-content code{background:#f0ede8;padding:2px 6px;border-radius:4px;font-size:.85rem;word-break:break-all}
.legal-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:16px;border-radius:6px}
.legal-table{width:100%;border-collapse:collapse;font-size:.875rem;margin-top:12px;margin-bottom:0;min-width:400px}
.legal-table th{background:var(--cream2);font-weight:700;text-align:left;padding:10px 12px;border:1px solid #ddd;white-space:nowrap}
.legal-table td{padding:9px 12px;border:1px solid #ddd;vertical-align:top;line-height:1.5}
@media(max-width:768px){
  .legal-content{padding:32px 20px 60px}
  .legal-content h1{font-size:1.6rem}
  .legal-content h2{font-size:1rem}
  .legal-page .nav-auth{padding:16px 20px}
}
@media(max-width:480px){
  .legal-content{padding:24px 16px 48px}
  .legal-content h1{font-size:1.35rem}
  .legal-content h2{font-size:.95rem}
  .legal-content p,.legal-content ul li{font-size:.875rem}
  .legal-date{margin-bottom:28px}
  .legal-content section{margin-bottom:28px}
  .legal-page .nav-auth{padding:14px 16px}
}

/* ================================================================
   FOOTER
================================================================ */
/* Dashboard (fond sombre) */
.dash-footer{
  padding:14px 32px;
  border-top:1px solid rgba(255,255,255,.07);
  display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;
  font-size:11px;color:rgba(255,255,255,.28);
  background:transparent;
}
.dash-footer a{
  color:rgba(255,255,255,.38);
  padding:3px 10px;
  border-right:1px solid rgba(255,255,255,.12);
  transition:color .2s;
  white-space:nowrap;
}
.dash-footer a:last-child{border-right:none}
.dash-footer a:hover{color:var(--orange)}

/* Pages publiques (fond clair) */
.public-footer{
  background:var(--cream2);
  border-top:1px solid #E2DDD6;
  padding:20px 32px;
}
.public-footer__links{
  display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;
  margin-bottom:6px;
}
.public-footer__links a{
  color:var(--gray);
  font-size:12px;
  padding:3px 12px;
  border-right:1px solid #D0CCC6;
  transition:color .2s;
  white-space:nowrap;
}
.public-footer__links a:last-child{border-right:none}
.public-footer__links a:hover{color:var(--orange)}
.public-footer__copy{text-align:center;font-size:11px;color:#BBB8B2}

/* ================================================================
   MOT DE PASSE — toggle voir/cacher + règles
================================================================ */
.pwd-wrap{position:relative}
.pwd-wrap .form-input{padding-right:46px}
.pwd-toggle{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;
  color:var(--gray);padding:4px;
  display:flex;align-items:center;justify-content:center;
  transition:color .2s;
}
.pwd-toggle:hover{color:var(--text)}
.pwd-toggle svg{width:18px;height:18px;pointer-events:none}

.pwd-rules{
  margin-top:8px;
  display:flex;flex-direction:column;gap:5px;
}
.pwd-rule{
  display:flex;align-items:center;gap:7px;
  font-size:12px;color:var(--gray);
  transition:color .2s;
}
.pwd-rule.ok{color:var(--green)}
.pwd-rule__icon{
  width:16px;height:16px;
  border-radius:50%;
  border:1.5px solid currentColor;
  display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:800;
  flex-shrink:0;transition:background .2s,color .2s;
}
.pwd-rule.ok .pwd-rule__icon{
  background:var(--green);border-color:var(--green);color:#fff;
}

/* ================================================================
   FAUX STRIPE CHECKOUT
================================================================ */
.fk-body{
  font-family:'Manrope',sans-serif;
  background:#F6F9FC;
  min-height:100vh;
  color:#0A2540;
  margin:0;
}

/* Bandeau test */
.fk-test-banner{
  background:#FFF3CD;
  border-bottom:1px solid #FFE082;
  color:#856404;
  font-size:12px;font-weight:700;
  text-align:center;
  padding:8px 16px;
  display:flex;align-items:center;justify-content:center;gap:6px;
}

/* Layout 2 colonnes */
.fk-layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:calc(100vh - 37px);
}

/* Colonne gauche */
.fk-left{
  background:#0A2540;
  color:#fff;
  padding:48px 40px;
  display:flex;flex-direction:column;gap:0;
}
.fk-brand__logo{
  font-size:22px;font-weight:900;color:#fff;letter-spacing:-.5px;
  text-decoration:none;
}
.fk-brand__logo span{color:#FF4500}
.fk-brand__shop{font-size:13px;color:rgba(255,255,255,.5);margin-top:4px}
.fk-order{
  margin-top:40px;
  padding:28px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
}
.fk-order__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.45);margin-bottom:12px}
.fk-order__plan{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.fk-plan-badge{
  display:inline-block;
  padding:3px 12px;
  border-radius:50px;
  font-size:12px;font-weight:800;
}
.fk-plan-badge--starter{background:rgba(99,91,255,.25);color:#a8a2ff}
.fk-plan-badge--pro{background:rgba(255,184,0,.2);color:#FFD55A}
.fk-order__cycle{font-size:13px;color:rgba(255,255,255,.5)}
.fk-order__price{display:flex;align-items:baseline;gap:4px}
.fk-order__amount{font-size:40px;font-weight:900;color:#fff}
.fk-order__period{font-size:15px;color:rgba(255,255,255,.45)}
.fk-order__savings{
  margin-top:12px;
  font-size:12px;font-weight:700;
  color:#34D399;
  display:flex;align-items:center;gap:5px;
}

/* Inclus */
.fk-includes{margin-top:32px}
.fk-includes__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.35);margin-bottom:12px}
.fk-includes__item{
  display:flex;align-items:center;gap:8px;
  font-size:13px;color:rgba(255,255,255,.65);
  margin-bottom:8px;
}
.fk-includes__item svg{stroke:#34D399;flex-shrink:0}

.fk-cancel-link{
  margin-top:auto;padding-top:40px;
  font-size:13px;color:rgba(255,255,255,.35);
  text-decoration:none;transition:color .2s;
}
.fk-cancel-link:hover{color:rgba(255,255,255,.65)}

/* Colonne droite */
.fk-right{
  background:#fff;
  padding:48px 40px;
  display:flex;flex-direction:column;justify-content:center;
}
.fk-card-form{max-width:420px;width:100%}
.fk-form-title{font-size:18px;font-weight:800;color:#0A2540;margin-bottom:24px}

/* Cartes de test */
.fk-test-cards{
  background:#F0F4FF;
  border:1px solid #D6DCFF;
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:24px;
  font-size:12px;
}
.fk-test-cards__title{font-weight:800;color:#425466;margin-bottom:8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.fk-test-cards__row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.fk-test-cards__row code{font-size:12px;background:#fff;padding:2px 8px;border-radius:4px;border:1px solid #D6DCFF;color:#0A2540;font-family:monospace;cursor:pointer;user-select:all}
.fk-test-cards__row span{font-size:11px;color:#425466}
.fk-test-cards__hint{margin-top:6px;font-size:11px;color:#888;font-style:italic}

/* Champs */
.fk-field-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.fk-label{font-size:13px;font-weight:700;color:#425466}
.fk-input{
  background:#F6F9FC;
  border:1.5px solid #E0E7EF;
  border-radius:8px;
  padding:13px 14px;
  font-family:inherit;font-size:15px;color:#0A2540;
  outline:none;transition:border-color .2s,background .2s;
  width:100%;box-sizing:border-box;
}
.fk-input:focus{border-color:#635BFF;background:#fff;box-shadow:0 0 0 3px rgba(99,91,255,.12)}
.fk-input--card{padding-right:52px}
.fk-card-input-wrap{position:relative}
.fk-card-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;opacity:.5}
.fk-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* Bouton payer */
.fk-pay-btn{
  width:100%;padding:16px;margin-top:8px;
  background:#635BFF;color:#fff;
  border:none;border-radius:10px;
  font-family:inherit;font-size:16px;font-weight:800;
  cursor:pointer;transition:background .2s,transform .1s;
  display:flex;align-items:center;justify-content:center;gap:8px;
}
.fk-pay-btn:hover{background:#4F46E5}
.fk-pay-btn:active{transform:scale(.99)}
.fk-pay-btn:disabled{background:#9CA3AF;cursor:not-allowed;transform:none}

/* Spinner */
.fk-spinner{
  display:inline-block;width:16px;height:16px;
  border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;
  border-radius:50%;
  animation:fk-spin .7s linear infinite;
}
@keyframes fk-spin{to{transform:rotate(360deg)}}

.fk-secure-notice{
  display:flex;align-items:center;justify-content:center;gap:5px;
  font-size:11px;color:#9CA3AF;margin-top:12px;
}

/* Responsive */
@media(max-width:860px){
  .fk-layout{grid-template-columns:1fr}
  .fk-left{padding:32px 24px}
  .fk-right{padding:32px 24px}
  .fk-order__amount{font-size:32px}
}
@media(max-width:480px){
  .fk-left{padding:24px 16px}
  .fk-right{padding:24px 16px}
  .fk-card-form{max-width:100%}
}

/* ================================================================
   TEMPLATE A — "Minuit" (sombre, premium, glassmorphism)
   Pages publiques : .client-layout.dash-theme-a et .public-layout.dash-theme-a
================================================================ */

/* ── Variables & typo ──────────────────────────────────────────── */
.dash-theme-a{
  --tpl-bg:#0A0A0A;
  --tpl-surface:rgba(255,255,255,.05);
  --tpl-border:rgba(255,255,255,.08);
  --tpl-text:#F5F5F5;
  --tpl-muted:rgba(245,245,245,.5);
  --tpl-accent:var(--shop-primary,#FF4D00);
  font-family:'Cabinet Grotesk','Manrope',sans-serif;
}

/* ── Layout page ───────────────────────────────────────────────── */
.dash-theme-a.client-layout{background:var(--tpl-bg);color:var(--tpl-text)}
.dash-theme-a .lc-page{background:var(--tpl-bg);color:var(--tpl-text)}

/* ── Header ────────────────────────────────────────────────────── */
.dash-theme-a .lc-header{
  background:linear-gradient(160deg,color-mix(in srgb,var(--tpl-accent) 30%,#0A0A0A),#0A0A0A);
  border-bottom:1px solid var(--tpl-border);
  padding-bottom:48px;
}
.dash-theme-a .lc-header__logo{
  background:var(--tpl-surface);
  border:2px solid var(--tpl-border);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.dash-theme-a .lc-header__name{font-size:26px;font-weight:800;letter-spacing:-.03em}
.dash-theme-a .lc-header__type{color:rgba(245,245,245,.45)}

/* ── Carte principale ──────────────────────────────────────────── */
.dash-theme-a .lc-card{
  background:var(--tpl-surface);
  border:1px solid var(--tpl-border);
  box-shadow:none;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-radius:20px;
}
.dash-theme-a .lc-greeting{color:var(--tpl-text)}
.dash-theme-a .lc-level{background:var(--tpl-accent)}
.dash-theme-a .lc-mq-badge{background:var(--tpl-accent)}
.dash-theme-a .lc-stamps-label{color:var(--tpl-muted)}

/* ── Tampons — grille 5 colonnes ───────────────────────────────── */
.dash-theme-a .lc-stamps-grid{grid-template-columns:repeat(5,1fr)}
.dash-theme-a .lc-dot--empty{
  background:rgba(255,255,255,.06);
  border:2px solid rgba(255,255,255,.12);
}
.dash-theme-a .lc-dot--filled{
  background:var(--tpl-accent);
  box-shadow:0 0 14px rgba(255,77,0,.4);
}

/* ── Barre de progression ──────────────────────────────────────── */
.dash-theme-a .lc-progress-wrap{background:rgba(255,255,255,.1)}
.dash-theme-a .lc-progress-fill{background:var(--tpl-accent)}
.dash-theme-a .lc-progress-info{color:var(--tpl-muted)}
.dash-theme-a .lc-progress-info strong{color:var(--tpl-text)}

/* ── Récompense ────────────────────────────────────────────────── */
.dash-theme-a .lc-reward-box{
  background:rgba(255,77,0,.1);
  border-color:rgba(255,77,0,.25);
  color:var(--tpl-accent);
}

/* ── Offres ────────────────────────────────────────────────────── */
.dash-theme-a .lc-section-title{color:var(--tpl-muted)}
.dash-theme-a .lc-offer{
  background:var(--tpl-surface);
  border:1px solid var(--tpl-border);
  box-shadow:none;
}
.dash-theme-a .lc-offer__text{color:var(--tpl-text)}
.dash-theme-a .lc-offer__dot{background:var(--tpl-accent)}
.dash-theme-a .lc-offer__date{color:var(--tpl-muted)}

/* ── Bandeaux ──────────────────────────────────────────────────── */
.dash-theme-a .lc-stamp-added{background:rgba(46,196,100,.1);border-color:rgba(46,196,100,.25);color:#5CDB95}
.dash-theme-a .lc-unlocked{background:rgba(255,77,0,.1);border-color:rgba(255,77,0,.25);color:var(--tpl-accent)}

/* ── Footer ────────────────────────────────────────────────────── */
.dash-theme-a .lc-footer{color:rgba(245,245,245,.2)}
.dash-theme-a .lc-footer strong{color:var(--tpl-accent)}
.dash-theme-a .lc-back{color:rgba(245,245,245,.3)}
.dash-theme-a .lc-back:hover{color:var(--tpl-accent)}

/* ── Card flip (carte fidélité /carte/{token}) ─────────────────── */
.dash-theme-a.public-layout{background:var(--tpl-bg);color:var(--tpl-text)}
.dash-theme-a .card-page{background:#0A0A0A}
.dash-theme-a .card-page__shop-name{color:rgba(245,245,245,.45)}
.dash-theme-a .card-page__back{color:rgba(245,245,245,.3)}
.dash-theme-a .card-page__back:hover{color:var(--tpl-accent)}
.dash-theme-a .card-page__qr-inner{background:rgba(255,255,255,.04);border-color:var(--tpl-border);box-shadow:none}
.dash-theme-a .card-page__qr-label strong{color:var(--tpl-text)}
.dash-theme-a .card-page__qr-label span{color:var(--tpl-muted)}
.dash-theme-a .card-page__offer{background:var(--tpl-surface);border-color:var(--tpl-border);box-shadow:none}
.dash-theme-a .card-page__offer-text{color:var(--tpl-text)}
.dash-theme-a .card-page__offer-date{color:var(--tpl-muted)}
.dash-theme-a .flip-hint{color:rgba(245,245,245,.3)}
.dash-theme-a .public-footer{background:#0D0D0D;border-top-color:var(--tpl-border)}
.dash-theme-a .public-footer__links a{color:var(--tpl-muted)}
.dash-theme-a .public-footer__links a:hover{color:var(--tpl-accent)}
.dash-theme-a .public-footer__copy{color:rgba(245,245,245,.2)}

/* ── Responsive ────────────────────────────────────────────────── */
@media(max-width:480px){
  .dash-theme-a .lc-stamps-grid{grid-template-columns:repeat(5,1fr)}
}

/* ================================================================
   TEMPLATE B — "Ivoire" (clair, élégant, Playfair + Instrument Sans)
================================================================ */

.dash-theme-b{
  --tpl-bg:#FAF7F2;
  --tpl-surface:#FFFFFF;
  --tpl-border:#EDE8E1;
  --tpl-text:#1A1A1A;
  --tpl-muted:#8A8882;
  --tpl-accent:var(--shop-primary,#FF4500);
  font-family:'Instrument Sans','Manrope',sans-serif;
}

/* ── Layout ────────────────────────────────────────────────────── */
.dash-theme-b.client-layout{background:var(--tpl-bg);color:var(--tpl-text)}
.dash-theme-b .lc-page{background:var(--tpl-bg)}

/* ── Header — accent léger sur fond ivoire ─────────────────────── */
.dash-theme-b .lc-header{
  background:var(--tpl-accent);
  padding-bottom:52px;
}
.dash-theme-b .lc-header__name{
  font-family:'Playfair Display','Georgia',serif;
  font-size:26px;font-weight:700;
}
.dash-theme-b .lc-header__type{color:rgba(255,255,255,.7)}

/* ── Carte principale ──────────────────────────────────────────── */
.dash-theme-b .lc-card{
  background:var(--tpl-surface);
  border:1px solid var(--tpl-border);
  box-shadow:0 2px 20px rgba(0,0,0,.06);
  border-radius:18px;
}
.dash-theme-b .lc-greeting{
  font-family:'Playfair Display','Georgia',serif;
  color:var(--tpl-text);
}
.dash-theme-b .lc-level{background:var(--tpl-accent)}
.dash-theme-b .lc-mq-badge{background:var(--tpl-text)}
.dash-theme-b .lc-stamps-label{color:var(--tpl-muted)}

/* ── Tampons — ligne horizontale scrollable ─────────────────────── */
.dash-theme-b .lc-stamps-grid{
  display:flex;flex-wrap:nowrap;overflow-x:auto;
  gap:10px;padding-bottom:6px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.dash-theme-b .lc-stamps-grid::-webkit-scrollbar{display:none}
.dash-theme-b .lc-dot{
  min-width:36px;height:36px;flex-shrink:0;
  border-radius:50%;font-size:13px;
}
.dash-theme-b .lc-dot--empty{background:#F5F2EE;border:2px solid var(--tpl-border)}
.dash-theme-b .lc-dot--filled{background:var(--tpl-accent);color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.15)}

/* ── Barre de progression ──────────────────────────────────────── */
.dash-theme-b .lc-progress-wrap{background:#EDE8E1}
.dash-theme-b .lc-progress-fill{background:var(--tpl-accent)}
.dash-theme-b .lc-progress-info{color:var(--tpl-muted)}
.dash-theme-b .lc-progress-info strong{color:var(--tpl-text)}

/* ── Récompense ────────────────────────────────────────────────── */
.dash-theme-b .lc-reward-box{
  background:#FFF5F0;border-color:#FFCDB8;color:#C84A00;
}

/* ── Offres ────────────────────────────────────────────────────── */
.dash-theme-b .lc-section-title{color:var(--tpl-muted)}
.dash-theme-b .lc-offer{
  background:var(--tpl-surface);
  border:1px solid var(--tpl-border);
  box-shadow:0 2px 12px rgba(0,0,0,.05);
}
.dash-theme-b .lc-offer__text{color:var(--tpl-text)}
.dash-theme-b .lc-offer__dot{background:var(--tpl-accent)}
.dash-theme-b .lc-offer__date{color:var(--tpl-muted)}

/* ── Footer ────────────────────────────────────────────────────── */
.dash-theme-b .lc-footer{color:#C0BDB8}
.dash-theme-b .lc-footer strong{color:var(--tpl-accent)}
.dash-theme-b .lc-back{color:rgba(26,26,26,.4)}
.dash-theme-b .lc-back:hover{color:var(--tpl-accent)}

/* ── Card flip ─────────────────────────────────────────────────── */
.dash-theme-b.public-layout{background:var(--tpl-bg);color:var(--tpl-text)}
.dash-theme-b .card-page{background:var(--tpl-bg)}
.dash-theme-b .card-page__shop-name{color:rgba(26,26,26,.4)}
.dash-theme-b .card-page__back{color:rgba(26,26,26,.35)}
.dash-theme-b .card-page__back:hover{color:var(--tpl-accent)}
.dash-theme-b .card-page__qr-inner{background:#fff;border-color:var(--tpl-border);box-shadow:0 2px 12px rgba(0,0,0,.06)}
.dash-theme-b .card-page__qr-label strong{color:var(--tpl-text)}
.dash-theme-b .card-page__qr-label span{color:var(--tpl-muted)}
.dash-theme-b .card-page__offer{background:#fff;border-color:var(--tpl-border)}
.dash-theme-b .card-page__offer-text{color:var(--tpl-text)}
.dash-theme-b .card-page__offer-date{color:var(--tpl-muted)}
.dash-theme-b .flip-hint{color:rgba(26,26,26,.3)}
.dash-theme-b .public-footer{background:#F2EDE6;border-top-color:var(--tpl-border)}
.dash-theme-b .public-footer__links a{color:var(--tpl-muted)}
.dash-theme-b .public-footer__links a:hover{color:var(--tpl-accent)}
.dash-theme-b .public-footer__copy{color:#BDB9B3}

/* ================================================================
   TEMPLATE C — "Néon" (énergique, glow, Bricolage Grotesque)
================================================================ */

.dash-theme-c{
  --tpl-bg:#111111;
  --tpl-surface:transparent;
  --tpl-border:var(--shop-primary,#FF4500);
  --tpl-text:#FFFFFF;
  --tpl-muted:rgba(255,255,255,.5);
  --tpl-accent:var(--shop-primary,#FF4500);
  --tpl-glow:0 0 20px color-mix(in srgb,var(--shop-primary,#FF4500) 50%,transparent);
  font-family:'Bricolage Grotesque','Manrope',sans-serif;
}

/* ── Layout ────────────────────────────────────────────────────── */
.dash-theme-c.client-layout{background:var(--tpl-bg);color:var(--tpl-text)}
.dash-theme-c .lc-page{background:var(--tpl-bg);color:var(--tpl-text)}

/* ── Header — pleine largeur avec glow ─────────────────────────── */
.dash-theme-c .lc-header{
  background:var(--tpl-accent);
  padding:48px 24px 60px;
  position:relative;
  overflow:hidden;
}
.dash-theme-c .lc-header::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 150%,rgba(0,0,0,.4),transparent 70%);
  pointer-events:none;
}
.dash-theme-c .lc-header__logo{
  background:rgba(0,0,0,.3);
  border:2px solid rgba(255,255,255,.3);
}
.dash-theme-c .lc-header__name{font-size:28px;font-weight:800;letter-spacing:-.01em}

/* ── Carte principale ──────────────────────────────────────────── */
.dash-theme-c .lc-card{
  background:transparent;
  border:2px solid var(--tpl-accent);
  box-shadow:var(--tpl-glow),0 2px 8px rgba(0,0,0,.3);
  border-radius:20px;
  color:#fff;
}
.dash-theme-c .lc-greeting{color:#fff;font-size:22px;font-weight:800}
.dash-theme-c .lc-level{
  background:var(--tpl-accent);
  font-size:12px;font-weight:800;
  box-shadow:var(--tpl-glow);
}
.dash-theme-c .lc-mq-badge{
  background:var(--tpl-accent);
  box-shadow:var(--tpl-glow);
}
.dash-theme-c .lc-stamps-label{color:var(--tpl-muted)}

/* ── Tampons — cercles larges avec glow ────────────────────────── */
.dash-theme-c .lc-stamps-grid{
  grid-template-columns:repeat(var(--cols,5),1fr);
  gap:10px;
}
.dash-theme-c .lc-dot{
  aspect-ratio:1;
  border-radius:50%;
  min-height:44px;
  font-size:16px;font-weight:800;
  transition:box-shadow .3s;
}
.dash-theme-c .lc-dot--empty{
  background:transparent;
  border:2px solid rgba(255,255,255,.2);
}
.dash-theme-c .lc-dot--filled{
  background:var(--tpl-accent);
  border:2px solid var(--tpl-accent);
  box-shadow:var(--tpl-glow);
  animation:neon-pulse 2s ease-in-out infinite;
}
@keyframes neon-pulse{
  0%,100%{box-shadow:var(--tpl-glow)}
  50%{box-shadow:0 0 28px color-mix(in srgb,var(--shop-primary,#FF4500) 70%,transparent)}
}

/* ── Barre de progression ──────────────────────────────────────── */
.dash-theme-c .lc-progress-wrap{background:rgba(255,255,255,.1)}
.dash-theme-c .lc-progress-fill{
  background:var(--tpl-accent);
  box-shadow:0 0 8px color-mix(in srgb,var(--shop-primary,#FF4500) 60%,transparent);
}
.dash-theme-c .lc-progress-info{color:var(--tpl-muted)}
.dash-theme-c .lc-progress-info strong{color:#fff}

/* ── Récompense ────────────────────────────────────────────────── */
.dash-theme-c .lc-reward-box{
  background:rgba(255,255,255,.05);
  border:1.5px solid var(--tpl-accent);
  color:var(--tpl-accent);
  box-shadow:var(--tpl-glow);
}

/* ── Offres ────────────────────────────────────────────────────── */
.dash-theme-c .lc-section-title{color:var(--tpl-muted)}
.dash-theme-c .lc-offer{
  background:transparent;
  border:2px solid rgba(255,255,255,.12);
  box-shadow:none;
  color:#fff;
}
.dash-theme-c .lc-offer:hover{border-color:var(--tpl-accent);box-shadow:var(--tpl-glow)}
.dash-theme-c .lc-offer__text{color:#fff}
.dash-theme-c .lc-offer__dot{background:var(--tpl-accent)}
.dash-theme-c .lc-offer__date{color:var(--tpl-muted)}

/* ── Bandeaux ──────────────────────────────────────────────────── */
.dash-theme-c .lc-stamp-added{background:rgba(46,196,100,.1);border-color:rgba(46,196,100,.3);color:#5CDB95}
.dash-theme-c .lc-unlocked{background:rgba(255,255,255,.05);border-color:var(--tpl-accent);color:var(--tpl-accent)}

/* ── Footer ────────────────────────────────────────────────────── */
.dash-theme-c .lc-footer{color:rgba(255,255,255,.2)}
.dash-theme-c .lc-footer strong{color:var(--tpl-accent)}
.dash-theme-c .lc-back{color:rgba(255,255,255,.3)}
.dash-theme-c .lc-back:hover{color:var(--tpl-accent)}

/* ── Card flip ─────────────────────────────────────────────────── */
.dash-theme-c.public-layout{background:var(--tpl-bg);color:#fff}
.dash-theme-c .card-page{background:#111111}
.dash-theme-c .card-page__shop-name{color:rgba(255,255,255,.4)}
.dash-theme-c .card-page__back{color:rgba(255,255,255,.3)}
.dash-theme-c .card-page__back:hover{color:var(--tpl-accent)}
.dash-theme-c .card-page__qr-inner{
  background:transparent;
  border:2px solid var(--tpl-accent);
  box-shadow:var(--tpl-glow);
}
.dash-theme-c .card-page__qr-label strong{color:#fff}
.dash-theme-c .card-page__qr-label span{color:rgba(255,255,255,.5)}
.dash-theme-c .card-page__offer{background:transparent;border:2px solid rgba(255,255,255,.12);box-shadow:none;color:#fff}
.dash-theme-c .card-page__offer-text{color:#fff}
.dash-theme-c .card-page__offer-date{color:rgba(255,255,255,.4)}
.dash-theme-c .flip-hint{color:rgba(255,255,255,.3)}
.dash-theme-c .public-footer{background:#0D0D0D;border-top-color:rgba(255,255,255,.07)}
.dash-theme-c .public-footer__links a{color:rgba(255,255,255,.4)}
.dash-theme-c .public-footer__links a:hover{color:var(--tpl-accent);text-shadow:0 0 8px color-mix(in srgb,var(--shop-primary,#FF4500) 50%,transparent)}
.dash-theme-c .public-footer__copy{color:rgba(255,255,255,.2)}

/* ================================================================
   --shop-secondary : badges niveau, barres de progression, hovers
================================================================ */

/* Badges niveau dans le dashboard */
.lb-bronze{background:color-mix(in srgb,var(--shop-secondary,#FAF7F2) 15%,#FDF0E6);color:#CD7F32}
.lb-silver{background:color-mix(in srgb,var(--shop-secondary,#FAF7F2) 10%,#F5F5F5);color:#6E6E6E}
.lb-gold{background:color-mix(in srgb,var(--shop-secondary,#FAF7F2) 12%,#FFFBE6);color:#B8860B}

/* Barre de progression dashboard */
.progress-bar__fill{background:color-mix(in srgb,var(--shop-secondary,var(--orange)) 80%,var(--orange))}

/* Chip actif hover */
.chip:not(.active):hover{border-color:var(--shop-secondary,var(--orange));color:var(--shop-secondary,var(--orange))}

/* ================================================================
   ONBOARDING — Sélecteur template (mis à jour pour 3 templates)
================================================================ */
.tpl-c-preview{background:#111111;border-radius:8px;flex:1;display:flex;flex-direction:column;padding:14px;gap:8px;position:relative;overflow:hidden}
.tpl-c-header{height:40px;background:#0099FF;border-radius:6px;margin-bottom:4px;display:flex;align-items:center;padding:0 10px;gap:6px}
.tpl-c-dot-glow{width:14px;height:14px;border-radius:50%;background:#00C8FF;box-shadow:0 0 10px rgba(0,200,255,.9);opacity:.9}
.tpl-c-line{height:5px;border-radius:3px;margin-bottom:4px}
.tpl-c-line.neon{background:rgba(0,153,255,.7);box-shadow:0 0 8px rgba(0,200,255,.6)}
.tpl-c-line.dim{background:rgba(255,255,255,.1)}
.tpl-c-cards{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.tpl-c-card{height:28px;background:transparent;border:1.5px solid rgba(0,153,255,.6);border-radius:5px;box-shadow:0 0 8px rgba(0,200,255,.25)}
