/* ============================================================
   Medical Concept - Private Collection (shop riservato) e gestione codici
   Usa i token di styles.css; riusa i componenti di area-riservata.css.
   ============================================================ */

.pc-hint{margin:1.6rem 0 0; font-size:.9rem; color:#6b6b6b; text-align:center}
[hidden]{display:none!important}

/* Barra "ritiro presso" */
.pc-bar{
  background:linear-gradient(180deg, #efede9 0%, var(--c-mist) 100%);
  color:var(--c-ink);
  border-top:1px solid rgba(38,38,38,.06);
  border-bottom:1px solid rgba(38,38,38,.08);
}
.pc-bar__inner{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding-top:16px; padding-bottom:16px;
}
.pc-bar__pickup{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0; font-size:.95rem}
.pc-bar__icon{flex:none; color:var(--c-gold)}
.pc-bar__label{
  font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#6b6b6b;
}
.pc-bar__pickup strong{font-weight:700; letter-spacing:-.005em; color:var(--c-ink)}
.pc-bar__exit{
  background:transparent; cursor:pointer; color:var(--c-ink);
  font:inherit; font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:9px 18px; border:1.5px solid rgba(38,38,38,.35); border-radius:999px;
  transition:background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
}
.pc-bar__exit:hover{background:var(--c-ink); border-color:var(--c-ink); color:var(--c-paper)}
@media (max-width:560px){
  .pc-bar__inner{padding-top:14px; padding-bottom:14px}
  .pc-bar__pickup{font-size:.88rem}
}

.pc-banner{
  margin:28px 0 0; padding:16px 20px; border-radius:var(--radius-sm);
  background:var(--c-mist); color:var(--c-ink); font-size:.95rem;
}
.pc-banner--ok{background:#e8efe6; color:#2f5a2a}
.pc-banner--warn{background:#f6efe2; color:#6a5226}

/* Box di acquisto dentro la scheda prodotto */
.pc-buy{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px;
  margin:1rem 0 1.6rem; padding:18px 20px;
  background:var(--c-white); border:1px solid var(--c-mist); border-radius:var(--radius);
}
.pc-buy__price{display:flex; flex-direction:column; line-height:1.15}
.pc-buy__price strong{font-size:1.5rem; font-weight:700; letter-spacing:-.01em}
.pc-buy__price span{font-size:.75rem; color:#6b6b6b; letter-spacing:.04em}
.pc-qty{
  display:inline-flex; align-items:center;
  border:1px solid var(--c-mist); border-radius:999px; background:var(--c-white);
}
.pc-qty button{
  width:38px; height:38px; border:0; background:none; cursor:pointer;
  font:inherit; font-size:1.1rem; color:var(--c-ink); border-radius:50%;
}
.pc-qty button:hover{color:var(--c-gold)}
.pc-qty span{min-width:28px; text-align:center; font-weight:600; font-size:.95rem}
.pc-buy .btn{padding:12px 24px; font-size:.8rem}
.pc-buy .btn.is-added{background:var(--c-gold); border-color:var(--c-gold)}

/* Pulsante carrello fisso */
.pc-cart-btn{
  position:fixed; right:22px; bottom:22px; z-index:60;
  display:flex; align-items:center; justify-content:center;
  width:60px; height:60px; border:0; border-radius:50%;
  background:var(--c-ink); color:var(--c-paper); cursor:pointer;
  box-shadow:0 14px 34px -10px rgba(38,38,38,.55);
  transition:background .25s var(--ease), transform .25s var(--ease);
}
.pc-cart-btn:hover{background:var(--c-gold); transform:translateY(-2px)}
.pc-cart-btn__count{
  position:absolute; top:-4px; right:-4px; min-width:22px; height:22px; padding:0 6px;
  border-radius:999px; background:var(--c-gold); color:var(--c-paper);
  font-size:.72rem; font-weight:700; line-height:22px; text-align:center;
}

/* Drawer carrello */
.pc-overlay{position:fixed; inset:0; z-index:90; background:rgba(38,38,38,.5)}
.pc-drawer{
  position:fixed; top:0; right:0; bottom:0; z-index:100;
  width:min(440px, 100%); background:var(--c-paper);
  display:flex; flex-direction:column;
  transform:translateX(100%); visibility:hidden;
  transition:transform .35s var(--ease), visibility 0s linear .35s;
  box-shadow:-20px 0 60px -30px rgba(38,38,38,.5);
}
.pc-drawer.is-open{transform:none; visibility:visible; transition:transform .35s var(--ease)}
.pc-drawer__head{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 26px; border-bottom:1px solid var(--c-mist);
}
.pc-drawer__head h2{margin:0; font-size:1.25rem}
.pc-drawer__close{
  width:38px; height:38px; border:0; background:none; cursor:pointer;
  font-size:1.8rem; line-height:1; color:var(--c-ink);
}
.pc-drawer__close:hover{color:var(--c-gold)}
.pc-drawer__body{flex:1; overflow-y:auto; padding:8px 26px 26px}

.pc-lines{list-style:none; margin:0; padding:0}
.pc-line{
  display:grid; grid-template-columns:64px 1fr auto; gap:14px; align-items:center;
  padding:16px 0; border-bottom:1px solid var(--c-mist);
}
.pc-line img{width:64px; height:64px; object-fit:contain; background:var(--c-white); border-radius:6px}
.pc-line__noimg{width:64px; height:64px; background:var(--c-mist); border-radius:6px}
.pc-line__name{margin:0; font-size:.95rem; font-weight:600; line-height:1.3}
.pc-line__meta{margin:2px 0 8px; font-size:.78rem; color:#6b6b6b}
.pc-line__total{font-weight:600; font-size:.95rem; white-space:nowrap}
.pc-line__remove{
  background:none; border:0; padding:0; margin-top:6px; cursor:pointer;
  font:inherit; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:#8a8a8a; text-decoration:underline;
}
.pc-line__remove:hover{color:var(--c-gold)}
.pc-sum{display:flex; justify-content:space-between; align-items:baseline; padding:20px 0 4px; font-size:1.05rem}
.pc-sum strong{font-size:1.4rem}
.pc-note{margin:0 0 18px; font-size:.8rem; color:#6b6b6b}
.pc-empty{padding:48px 0; text-align:center; color:#6b6b6b}
.pc-pickup-note{
  margin:18px 0; padding:14px 16px; border-radius:var(--radius-sm);
  background:var(--c-white); border:1px solid var(--c-mist); font-size:.88rem;
}
.pc-drawer .form{gap:16px}
.pc-drawer .btn{width:100%; text-align:center}
.pc-back{
  display:inline-block; margin-bottom:6px; background:none; border:0; padding:0; cursor:pointer;
  font:inherit; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--c-ink);
  border-bottom:1px solid var(--c-ink);
}
.pc-back:hover{color:var(--c-gold); border-bottom-color:var(--c-gold)}
.pc-check{display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; font-size:.82rem; color:#4a4a4a; line-height:1.45}
.pc-check input{width:18px; height:18px; margin-top:2px; accent-color:var(--c-gold)}
.pc-check a{color:var(--c-gold); font-weight:600}
.pc-secure{margin:14px 0 0; text-align:center; font-size:.75rem; color:#6b6b6b}

/* Pagina condizioni */
.pc-legal{max-width:760px}
.pc-legal h2{font-size:1.25rem; margin:2rem 0 .5rem}
.pc-legal p{color:#3d3d3d}
.pc-legal a{color:var(--c-gold); font-weight:600}

/* ---------- Gestione codici ---------- */
.gc-cards{display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:16px; margin-bottom:32px}
.gc-card{
  background:var(--c-white); border:1px solid var(--c-mist); border-radius:var(--radius);
  padding:20px 22px;
}
.gc-card p{margin:0}
.gc-card__label{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:#6b6b6b}
.gc-card__value{font-size:1.7rem; font-weight:700; letter-spacing:-.01em; margin-top:6px!important}
.gc-new{max-width:none}
.gc-new .form-row{grid-template-columns:1.4fr 1fr auto; align-items:end}
.gc-new .btn{padding:14px 26px}
.gc-created{
  margin-top:16px; padding:16px 20px; border-radius:var(--radius-sm);
  background:#e8efe6; color:#2f5a2a; font-size:.95rem; display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center;
}
.gc-created code{font-size:1.15rem; font-weight:700; letter-spacing:.08em}
.gc-table-wrap{overflow-x:auto}
.gc-table{width:100%; border-collapse:collapse; font-size:.9rem; min-width:880px}
.gc-table th{
  text-align:left; padding:10px 12px; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
  color:#6b6b6b; border-bottom:2px solid var(--c-mist); white-space:nowrap;
}
.gc-table td{padding:14px 12px; border-bottom:1px solid var(--c-mist); vertical-align:middle}
.gc-table td.num, .gc-table th.num{text-align:right}
.gc-table tr.is-off td{opacity:.5}
.gc-code{font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.85rem; letter-spacing:.06em; font-weight:600}
.gc-sub{display:block; font-size:.76rem; color:#6b6b6b}
.gc-actions{display:flex; gap:8px; flex-wrap:wrap}
.gc-mini{
  padding:7px 12px; border:1px solid var(--c-mist); border-radius:999px; background:var(--c-white); cursor:pointer;
  font:inherit; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--c-ink);
}
.gc-mini:hover{border-color:var(--c-gold); color:var(--c-gold)}
.gc-badge{display:inline-block; padding:3px 10px; border-radius:999px; font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase}
.gc-badge--on{background:#e8efe6; color:#2f5a2a}
.gc-badge--off{background:var(--c-mist); color:#6b6b6b}
.gc-orders{margin-top:28px}
.gc-orders h3{margin:0 0 14px}

@media (max-width:760px){
  .gc-new .form-row{grid-template-columns:1fr}
  .pc-buy{padding:16px}
  .pc-cart-btn{right:16px; bottom:16px}
}

/* ---------- QR code e dettaglio statistiche ---------- */
.gc-modal{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(38,38,38,.55);
}
.gc-modal__card{
  width:min(460px, 100%); max-height:100%; overflow-y:auto;
  background:var(--c-paper); border-radius:var(--radius); padding:28px;
  box-shadow:0 30px 80px -30px rgba(38,38,38,.6);
}
.gc-modal__card h3{margin:0 0 16px; font-size:1.2rem}
.gc-qr{background:var(--c-white); border:1px solid var(--c-mist); border-radius:var(--radius-sm); padding:8px; max-width:320px; margin:0 auto 16px}
.gc-qr svg{display:block; width:100%; height:auto}
.gc-modal__link{margin:0 0 6px; font-size:.78rem; word-break:break-all; color:#525252; text-align:center}
.gc-modal__card .area-hint{text-align:center; margin-bottom:18px}
.gc-modal__card .gc-actions{justify-content:center}
.gc-modal__card .btn{padding:11px 20px; font-size:.78rem}
.gc-detail{margin-bottom:24px}
.gc-detail h4{margin:22px 0 10px; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:#6b6b6b}
.gc-table--small{min-width:0}
