/* ===== Eure'iginal Swipe — styles (mobile first) ===== */
:root{
  --bg:#fdf6f0; --card:#ffffff; --ink:#2b2b2b; --muted:#8a8580;
  --primary:#e76f51; --primary-2:#f4a261; --like:#2a9d8f; --nope:#e63946;
  --line:#eee3da; --shadow:0 10px 30px rgba(0,0,0,.10);
  --radius:22px; --nav-h:64px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{
  font-family:Poppins,system-ui,Arial,sans-serif;color:var(--ink);
  background:linear-gradient(180deg,#fdf6f0,#fbeee6);
  display:flex;flex-direction:column;min-height:100dvh;overflow-x:hidden;
}
h1{font-size:1.5rem;margin:.2em 0 .1em;font-weight:800}
h2{font-size:1.1rem;margin:1.4em 0 .6em;font-weight:700}
.muted{color:var(--muted)}
.tiny{font-size:.78rem}
.center{text-align:center}

/* Header */
.app-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:max(env(safe-area-inset-top),12px) 18px 12px;
}
.brand{font-weight:800;font-size:1.15rem}
.brand span{color:var(--primary)}

/* Layout principal */
.app-main{flex:1;position:relative}
.screen{display:none;animation:fade .25s ease}
.screen.active{display:flex;flex-direction:column;min-height:calc(100dvh - var(--nav-h) - 60px)}
.screen-pad{padding:8px 18px 110px;flex:1}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Boutons */
.btn{border:0;border-radius:14px;padding:14px 20px;font:inherit;font-weight:700;cursor:pointer;transition:.15s}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;box-shadow:var(--shadow)}
.btn-primary:active{transform:scale(.97)}
.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}
.btn-wa{background:#25d366;color:#fff;box-shadow:var(--shadow)}
.btn-wa:active{transform:scale(.97)}
.btn-block{width:100%}
.btn-sm{padding:9px 12px;font-size:.85rem;border-radius:11px}
.icon-btn{background:#fff;border:1px solid var(--line);border-radius:12px;width:40px;height:40px;font-size:1.1rem;cursor:pointer}
.link-back,.link-rm{background:none;border:0;color:var(--primary);font:inherit;font-weight:600;cursor:pointer;padding:0;margin:6px 0}
.link-rm{color:var(--nope);margin-left:auto;font-size:.85rem}

.sticky-actions{
  position:sticky;bottom:var(--nav-h);display:flex;gap:10px;padding:14px 18px;
  background:linear-gradient(180deg,transparent,#fbeee6 30%);
}
.sticky-actions .btn{flex:1}

/* ÉTAPE 1 : thèmes */
.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}
.chip{
  display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);
  border-radius:14px;padding:12px 12px;font:inherit;font-weight:600;cursor:pointer;text-align:left;transition:.15s
}
.chip-emoji{font-size:1.2rem}
.chip.on{border-color:var(--primary);background:#fff3ec;color:var(--primary)}

/* ÉTAPE 2 : config */
.config-preview{width:170px;height:170px;margin:6px auto 4px;background:#fff;border-radius:18px;box-shadow:var(--shadow)}
.config-preview svg{width:100%;height:100%}
.field-label{display:block;font-weight:700;margin:16px 0 8px}
.row-wrap{display:flex;flex-wrap:wrap;gap:8px}
.pill{background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:9px 15px;font:inherit;font-weight:600;cursor:pointer}
.pill.on{border-color:var(--primary);background:var(--primary);color:#fff}
.swatch{display:flex;align-items:center;gap:7px;background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:7px 12px 7px 9px;font:inherit;font-weight:600;cursor:pointer}
.swatch span{width:18px;height:18px;border-radius:50%;background:var(--sw);border:1px solid rgba(0,0,0,.15)}
.swatch.on{border-color:var(--primary)}

/* ÉTAPE 3 : swipe */
.swipe-top{padding:4px 18px}
.card-stack{position:relative;flex:1;margin:6px 16px;min-height:60vh;display:flex;align-items:center;justify-content:center}
.swipe-card{
  position:absolute;inset:0;background:var(--card);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;
  transform:scale(.94) translateY(14px);transition:.2s;will-change:transform
}
.swipe-card:nth-last-child(2){transform:scale(.97) translateY(7px)}
.swipe-card.top{transform:none;z-index:3;cursor:grab}
.swipe-card.top:active{cursor:grabbing}
.card-mockup{flex:1;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 35%,#fff,#f3ece4)}
.card-mockup svg{width:88%;height:88%}
.card-info{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-top:1px solid var(--line)}
.card-info h3{margin:0;font-size:1.15rem}
.card-tags{margin:2px 0 0;color:var(--muted);font-size:.8rem}
.card-price{font-weight:800;color:var(--primary);font-size:1.2rem;white-space:nowrap}
.card-badge{
  position:absolute;top:22px;font-weight:800;font-size:1.4rem;padding:6px 14px;border-radius:10px;
  border:3px solid;opacity:0;pointer-events:none;transition:opacity .1s
}
.card-badge.like{left:18px;color:var(--like);border-color:var(--like);transform:rotate(-12deg)}
.card-badge.nope{right:18px;color:var(--nope);border-color:var(--nope);transform:rotate(12deg)}

.swipe-controls{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 0 18px}
.round{width:62px;height:62px;border-radius:50%;border:0;background:#fff;box-shadow:var(--shadow);font-size:1.6rem;cursor:pointer;display:grid;place-items:center;transition:.15s}
.round:active{transform:scale(.9)}
.round.small{width:48px;height:48px;font-size:1.2rem;color:var(--muted)}
.nope-btn{color:var(--nope)}
.like-btn{color:#fff;background:linear-gradient(135deg,var(--like),#43aa8b)}

.empty-deck{text-align:center;padding:30px}
.empty-emoji{font-size:3rem}

/* Favoris */
.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:12px}
.product-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.pc-mockup{aspect-ratio:1;background:radial-gradient(circle at 50% 35%,#fff,#f3ece4)}
.pc-mockup svg{width:100%;height:100%}
.pc-body{padding:10px 12px}
.pc-body h4{margin:0 0 4px;font-size:.95rem}
.pc-price{color:var(--primary);font-weight:800;margin-bottom:8px}
.pc-actions{display:flex;gap:6px;align-items:center}
.pc-actions .btn{flex:1}

.reco-block h2{margin-top:24px}
.mini-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}
.mini-card{flex:0 0 110px;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:8px;text-align:center;cursor:pointer}
.mini-mockup{aspect-ratio:1}
.mini-mockup svg{width:100%;height:100%}
.mini-card span{display:block;font-size:.78rem;margin-top:4px;font-weight:600}

/* Panier */
.cart-list{margin-top:10px}
.cart-row{display:flex;gap:12px;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:10px;margin-bottom:12px}
.cart-thumb{width:74px;height:74px;flex:0 0 74px;background:#f3ece4;border-radius:10px}
.cart-thumb svg{width:100%;height:100%}
.cart-meta{flex:1}
.cart-meta h4{margin:0 0 2px}
.qty{display:flex;align-items:center;gap:10px;margin-top:8px}
.qty button{width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:1.1rem;cursor:pointer}
.cart-line-price{font-weight:800;color:var(--primary)}
.cart-summary{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:16px;margin-top:6px}
.sum-row{display:flex;justify-content:space-between;margin-bottom:8px}
.sum-row.total{font-weight:800;font-size:1.2rem;border-top:1px solid var(--line);padding-top:10px}
.cart-summary .btn{margin-top:8px}

/* Bottom nav */
.bottom-nav{
  position:sticky;bottom:0;z-index:20;height:var(--nav-h);
  display:grid;grid-template-columns:repeat(3,1fr);
  background:#fff;border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom)
}
.nav-btn{
  background:none;border:0;font:inherit;font-size:.72rem;color:var(--muted);font-weight:600;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;text-decoration:none;position:relative
}
.nav-btn span{font-size:1.35rem;position:relative}
.nav-btn.active{color:var(--primary)}
.badge{
  position:absolute;top:-6px;right:-12px;background:var(--nope);color:#fff;font-style:normal;
  font-size:.62rem;min-width:16px;height:16px;border-radius:9px;display:none;place-items:center;padding:0 4px
}

/* Header actions + Compte */
.header-actions{display:flex;gap:8px}
.account-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:20px;margin-top:14px}
.account-card label{display:block;font-weight:600;font-size:.85rem;margin:12px 0 4px}
.account-card input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:11px;font:inherit;background:#fff}
.account-card .btn{margin-top:16px}
.acc-avatar{width:64px;height:64px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;font-size:1.8rem;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2))}
.acc-stats{display:flex;gap:20px;justify-content:center;margin:12px 0}
.acc-stats b{color:var(--primary);font-size:1.2rem}
.auth-tabs{display:flex;gap:8px;margin-top:14px}
.auth-tab{flex:1;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:11px;font:inherit;font-weight:700;color:var(--muted);cursor:pointer}
.auth-tab.on{border-color:var(--primary);background:#fff3ec;color:var(--primary)}
.auth-msg{min-height:1.1em;color:var(--nope);font-size:.85rem;margin:8px 0 0}

/* Bulle WhatsApp flottante */
.wa-bubble{
  position:fixed;right:16px;bottom:calc(var(--nav-h) + 16px);z-index:40;
  width:56px;height:56px;border-radius:50%;border:0;background:#25d366;cursor:pointer;
  box-shadow:0 6px 18px rgba(37,211,102,.45);display:grid;place-items:center;
  animation:wa-pop .3s ease;
}
.wa-bubble:active{transform:scale(.9)}
@keyframes wa-pop{from{transform:scale(0)}to{transform:scale(1)}}
@media(min-width:760px){.wa-bubble{right:calc(50vw - 240px + 16px)}}

/* Toast */
.toast{
  position:fixed;left:50%;bottom:calc(var(--nav-h) + 18px);transform:translateX(-50%) translateY(20px);
  background:#2b2b2b;color:#fff;padding:11px 18px;border-radius:12px;font-size:.88rem;
  opacity:0;pointer-events:none;transition:.25s;z-index:50;max-width:90vw;text-align:center
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Desktop */
@media(min-width:760px){
  .app-main{max-width:480px;margin:0 auto;width:100%}
  .bottom-nav{max-width:480px;margin:0 auto;border-radius:18px 18px 0 0}
  .theme-grid{grid-template-columns:repeat(3,1fr)}
  .card-stack{min-height:520px}
}
