/* ============================================================================
   RIVANDO MALL — UI overlay (assistente, scheda prodotto, camerino, carrello)
   ========================================================================== */

/* ---------- Toasts ---------- */
.rv-toasts{ position:fixed; left:50%; bottom:24px; transform:translateX(-50%); z-index:var(--rv-z-toast); display:flex; flex-direction:column; gap:10px; align-items:center; pointer-events:none; }
.rv-toast{ pointer-events:auto; min-width:240px; max-width:90vw; padding:12px 18px; border-radius:12px; background:var(--rv-bg-3); border:1px solid var(--rv-line-strong); box-shadow:var(--rv-shadow-2); opacity:0; transform:translateY(14px); transition:.3s var(--rv-ease); font-size:14px; }
.rv-toast.on{ opacity:1; transform:none; }
.rv-toast--ok{ border-left:3px solid var(--rv-ok); } .rv-toast--warn{ border-left:3px solid var(--rv-warn); }
.rv-toast--info{ border-left:3px solid var(--rv-info); } .rv-toast--danger{ border-left:3px solid var(--rv-danger); }

/* ---------- Scheda prodotto ---------- */
.rv-detail{ position:fixed; inset:0; z-index:var(--rv-z-product); display:grid; place-items:center; opacity:0; pointer-events:none; transition:opacity .3s; }
.rv-detail.on{ opacity:1; pointer-events:auto; }
.rv-detail-backdrop{ position:absolute; inset:0; background:rgba(5,5,5,.7); backdrop-filter:blur(6px); }
.rv-detail-panel{ position:relative; width:min(940px,94vw); max-height:92vh; overflow:auto; display:grid; grid-template-columns:1.1fr 1fr; gap:0; background:var(--rv-bg-2); border:1px solid var(--rv-line-strong); border-radius:var(--rv-r-lg); box-shadow:var(--rv-shadow-2); transform:scale(.96); transition:transform .3s var(--rv-ease); }
.rv-detail.on .rv-detail-panel{ transform:scale(1); }
.rv-detail-close{ position:absolute; top:12px; right:12px; z-index:3; width:38px; height:38px; border-radius:50%; border:1px solid var(--rv-line-strong); background:rgba(0,0,0,.45); color:var(--rv-ink); cursor:pointer; font-size:16px; }
.rv-detail-close:hover{ background:rgba(0,0,0,.7); }
.rv-detail-gallery{ position:relative; background:#0c0b09; padding:18px; display:flex; flex-direction:column; gap:12px; }
.rv-detail-main{ width:100%; height:420px; object-fit:cover; border-radius:var(--rv-r-md); }
.rv-detail-thumbs{ display:flex; gap:8px; flex-wrap:wrap; }
.rv-thumb{ width:58px; height:58px; border-radius:8px; overflow:hidden; border:1px solid var(--rv-line); background:none; cursor:pointer; padding:0; }
.rv-thumb.on{ border-color:var(--rv-gold); }
.rv-thumb img{ width:100%; height:100%; object-fit:cover; }
.rv-detail-info{ padding:34px 30px; display:flex; flex-direction:column; gap:10px; }
.rv-detail-title{ font-size:30px; margin:2px 0; line-height:1.1; }
.rv-detail-price{ font-size:24px; font-weight:800; color:var(--rv-gold-soft); }
.rv-detail-desc{ color:var(--rv-ink-mute); font-size:13px; line-height:1.6; }
.rv-detail-soldout{ color:var(--rv-danger); font-weight:700; }
.rv-size-row{ display:flex; gap:8px; flex-wrap:wrap; }
.rv-size{ min-width:52px; padding:10px 12px; border-radius:10px; border:1px solid var(--rv-line-strong); background:var(--rv-bg-3); color:var(--rv-ink); cursor:pointer; font-weight:600; transition:.15s; }
.rv-size:hover{ border-color:var(--rv-gold-deep); }
.rv-size.on{ background:var(--rv-gold); color:#1a1610; border-color:var(--rv-gold); }
.rv-size--out{ opacity:.4; cursor:not-allowed; text-decoration:line-through; }
.rv-detail-buy{ display:flex; gap:12px; align-items:center; margin-top:6px; }
.rv-qty{ display:flex; align-items:center; gap:4px; border:1px solid var(--rv-line-strong); border-radius:10px; padding:4px; }
.rv-qty-btn{ width:34px; height:34px; border:0; background:none; color:var(--rv-ink); font-size:18px; cursor:pointer; border-radius:8px; }
.rv-qty-btn:hover{ background:rgba(255,255,255,.07); }
.rv-qty-val{ min-width:26px; text-align:center; font-weight:700; }
.rv-detail-add{ flex:1; }
.rv-detail-channels{ margin-top:10px; display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.rv-chan-pill{ font-size:11px; padding:4px 9px; border-radius:999px; background:var(--rv-bg-4); color:var(--rv-ink-soft); }
@media (max-width:760px){ .rv-detail-panel{ grid-template-columns:1fr; } .rv-detail-main{ height:300px; } }

/* ---------- Camerino virtuale ---------- */
.rv-fitting{ position:fixed; inset:0; z-index:var(--rv-z-fitting); display:grid; place-items:center; opacity:0; pointer-events:none; transition:opacity .3s; }
.rv-fitting.on{ opacity:1; pointer-events:auto; }
.rv-fitting-panel{ position:relative; width:min(880px,94vw); max-height:92vh; overflow:auto; display:grid; grid-template-columns:1fr 1.1fr; background:var(--rv-bg-2); border:1px solid var(--rv-line-strong); border-radius:var(--rv-r-lg); box-shadow:var(--rv-shadow-2); transform:scale(.96); transition:transform .3s var(--rv-ease); }
.rv-fitting.on .rv-fitting-panel{ transform:scale(1); }
.rv-fitting-stage{ position:relative; background:radial-gradient(70% 70% at 50% 30%, #1d1a14, #0b0a08); display:grid; place-items:center; min-height:420px; }
.rv-fit-mannequin{ position:relative; width:160px; height:360px; }
.rv-fit-figure{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; }
.rv-fit-head{ width:46px; height:46px; border-radius:50%; background:#cfc8ba; }
.rv-fit-torso{ width:96px; height:150px; border-radius:24px 24px 10px 10px; margin-top:6px; transition:width .3s var(--rv-ease); }
.rv-fit-legs{ width:70px; height:150px; border-radius:8px 8px 14px 14px; margin-top:4px; transition:width .3s var(--rv-ease); }
.rv-fit-garment{ position:absolute; top:54px; left:50%; transform:translateX(-50%); width:150px; height:230px; object-fit:cover; border-radius:18px; opacity:.92; box-shadow:0 20px 40px rgba(0,0,0,.5); mix-blend-mode:normal; }
.rv-fit-tight .rv-fit-torso{ width:84px; } .rv-fit-tight .rv-fit-legs{ width:60px; }
.rv-fit-loose .rv-fit-torso{ width:112px; } .rv-fit-loose .rv-fit-legs{ width:86px; }
.rv-fitting-form{ padding:30px 28px; display:flex; flex-direction:column; gap:14px; }
.rv-fitting-form h2{ font-size:22px; margin:0; }
.rv-field{ display:flex; flex-direction:column; gap:7px; font-size:13px; color:var(--rv-ink-soft); }
.rv-field b{ color:var(--rv-gold-soft); }
.rv-range{ width:100%; accent-color:var(--rv-gold); }
.rv-select{ padding:10px; border-radius:10px; background:var(--rv-bg-3); border:1px solid var(--rv-line-strong); color:var(--rv-ink); }
.rv-fit-result{ display:flex; flex-direction:column; gap:12px; padding:14px; border-radius:var(--rv-r-md); background:var(--rv-bg-3); border:1px solid var(--rv-line); }
.rv-fit-size{ display:flex; align-items:center; justify-content:space-between; }
.rv-fit-sizeval{ font-size:28px; font-family:var(--rv-serif); color:var(--rv-gold-soft); }
.rv-gauge-head{ display:flex; justify-content:space-between; font-size:13px; margin-bottom:5px; }
.rv-gauge-bar{ height:9px; border-radius:5px; background:rgba(255,255,255,.08); overflow:hidden; }
.rv-gauge-bar i{ display:block; height:100%; border-radius:5px; transition:width .4s var(--rv-ease); }
.rv-gauge--ok .rv-gauge-bar i{ background:var(--rv-ok); } .rv-gauge--warn .rv-gauge-bar i{ background:var(--rv-warn); } .rv-gauge--danger .rv-gauge-bar i{ background:var(--rv-danger); }
.rv-fit-note{ font-size:12px; color:var(--rv-ink-mute); }
@media (max-width:760px){ .rv-fitting-panel{ grid-template-columns:1fr; } }

/* ---------- Assistente AI ---------- */
.rv-ai-launcher{ position:fixed; right:22px; bottom:22px; z-index:var(--rv-z-assistant); width:60px; height:60px; border-radius:50%; border:1px solid var(--rv-gold-deep); cursor:pointer; background:radial-gradient(circle at 30% 30%, var(--rv-gold-soft), var(--rv-gold-deep)); color:#1a1610; font-size:24px; box-shadow:var(--rv-shadow-glow); transition:transform .25s var(--rv-ease); }
.rv-ai-launcher:hover{ transform:scale(1.08) rotate(8deg); }
.rv-ai-launcher.hidden{ display:none; }
.rv-ai-spark{ animation:rvSparkSpin 6s linear infinite; display:inline-block; }
@keyframes rvSparkSpin{ to{ transform:rotate(360deg); } }
.rv-ai-panel{ position:fixed; right:22px; bottom:22px; z-index:var(--rv-z-assistant); width:min(390px,94vw); height:min(580px,82vh); display:flex; flex-direction:column; background:var(--rv-bg-2); border:1px solid var(--rv-line-strong); border-radius:var(--rv-r-lg); box-shadow:var(--rv-shadow-2); transform:translateY(20px) scale(.96); opacity:0; pointer-events:none; transition:.3s var(--rv-ease); }
.rv-ai-panel.on{ transform:none; opacity:1; pointer-events:auto; }
.rv-ai-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--rv-line); }
.rv-ai-id{ display:flex; align-items:center; gap:10px; }
.rv-ai-avatar{ width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:radial-gradient(circle at 30% 30%,var(--rv-gold-soft),var(--rv-gold-deep)); color:#1a1610; }
.rv-ai-id strong{ font-size:14px; display:block; } .rv-ai-status{ font-size:11px; color:var(--rv-ok); }
.rv-ai-headbtns{ display:flex; gap:6px; }
.rv-ai-mini{ width:30px; height:30px; border-radius:8px; border:1px solid var(--rv-line); background:rgba(0,0,0,.25); color:var(--rv-ink); cursor:pointer; font-size:14px; }
.rv-ai-mini:hover{ background:rgba(255,255,255,.07); }
.rv-ai-log{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:12px; }
.rv-ai-msg{ max-width:86%; font-size:14px; line-height:1.5; }
.rv-ai-msg--user{ align-self:flex-end; background:var(--rv-gold); color:#1a1610; padding:9px 13px; border-radius:14px 14px 4px 14px; }
.rv-ai-msg--bot{ align-self:flex-start; background:var(--rv-bg-3); border:1px solid var(--rv-line); padding:11px 14px; border-radius:14px 14px 14px 4px; }
.rv-ai-text{ margin:0; }
.rv-ai-chips{ display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.rv-ai-chip{ font-size:12px; padding:7px 11px; border-radius:999px; border:1px solid color-mix(in srgb,var(--rv-gold) 40%, transparent); background:rgba(200,164,92,.08); color:var(--rv-gold-soft); cursor:pointer; transition:.15s; }
.rv-ai-chip:hover{ background:rgba(200,164,92,.18); }
.rv-ai-strip{ display:flex; gap:10px; margin-top:10px; overflow-x:auto; padding-bottom:4px; }
.rv-ai-prod{ flex:0 0 116px; background:var(--rv-bg-2); border:1px solid var(--rv-line); border-radius:10px; overflow:hidden; cursor:pointer; text-align:left; padding:0; transition:.2s; }
.rv-ai-prod:hover{ border-color:var(--rv-gold-deep); transform:translateY(-3px); }
.rv-ai-prod img{ width:100%; height:90px; object-fit:cover; }
.rv-ai-prod--out img{ filter:grayscale(.85) brightness(.55); }
.rv-ai-prod-t{ display:block; font-size:11px; padding:6px 7px 0; height:42px; overflow:hidden; }
.rv-ai-prod-p{ display:block; font-size:12px; font-weight:800; color:var(--rv-gold-soft); padding:2px 7px 8px; }
.rv-ai-foot{ display:flex; gap:8px; padding:12px; border-top:1px solid var(--rv-line); }
.rv-ai-input{ flex:1; padding:11px 13px; border-radius:10px; background:var(--rv-bg-3); border:1px solid var(--rv-line-strong); color:var(--rv-ink); outline:none; font-size:14px; }
.rv-ai-input:focus{ border-color:var(--rv-gold-deep); }
.rv-ai-send{ width:44px; border-radius:10px; border:0; background:var(--rv-gold); color:#1a1610; font-size:16px; cursor:pointer; }

/* ---------- Carrello drawer ---------- */
.rv-cartdrawer{ position:fixed; top:0; right:0; bottom:0; z-index:var(--rv-z-fitting); width:min(420px,94vw); background:var(--rv-bg-2); border-left:1px solid var(--rv-line-strong); box-shadow:var(--rv-shadow-2); transform:translateX(100%); transition:transform .35s var(--rv-ease); display:flex; flex-direction:column; }
.rv-cartdrawer.on{ transform:none; }
.rv-cart-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--rv-line); }
.rv-cart-head h3{ margin:0; font-size:22px; }
.rv-cart-empty{ padding:40px 24px; color:var(--rv-ink-mute); text-align:center; }
.rv-cart-list{ flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:12px; }
.rv-cart-line{ display:grid; grid-template-columns:60px 1fr auto auto; gap:12px; align-items:center; padding:10px; border-radius:12px; background:var(--rv-bg-3); border:1px solid var(--rv-line); }
.rv-cart-line img{ width:60px; height:60px; object-fit:cover; border-radius:8px; }
.rv-cart-line-info strong{ display:block; font-size:13px; } .rv-cart-line-info span{ font-size:12px; color:var(--rv-ink-mute); }
.rv-cart-line-qty{ display:flex; align-items:center; gap:6px; }
.rv-cart-line-qty button{ width:26px; height:26px; border-radius:6px; border:1px solid var(--rv-line-strong); background:none; color:var(--rv-ink); cursor:pointer; }
.rv-cart-line-rm{ width:28px; height:28px; border:0; background:none; color:var(--rv-ink-mute); cursor:pointer; }
.rv-cart-line-rm:hover{ color:var(--rv-danger); }
.rv-cart-foot{ padding:18px 20px; border-top:1px solid var(--rv-line); }
.rv-cart-total{ display:flex; justify-content:space-between; font-size:18px; margin-bottom:12px; }
.rv-cart-total b{ color:var(--rv-gold-soft); }
.rv-cart-checkout{ width:100%; }
.rv-cart-note{ font-size:11px; color:var(--rv-ink-mute); text-align:center; margin:10px 0 0; }
