
/*
 * Tutte le variabili sono prefissate --pz- e vivono sul contenitore.
 * Nessuna dichiarazione su :root: il widget non può più influenzare
 * il resto della pagina, in particolare le --ptop-* del plugin.
 */
.ptop-compact-wrap, .ptop4-wrap {
    --pz-brand:#6C4176; --pz-gold:#D4A017; --pz-silver:#8A9BA8; --pz-bronze:#A0622A;
    --pz-canvas:#FAFAFC; --pz-surface:#FFFFFF; --pz-line:#EAE7EF;
    --pz-ink:#12101A; --pz-muted:#6B6676; --pz-faint:#A6A1B0;
    --pz-r-lg:16px; --pz-r-md:12px; --pz-r-sm:9px;
    --pz-font: ui-sans-serif,-apple-system,"SF Pro Text","Segoe UI Variable","Inter",system-ui,sans-serif;
    --pz-shadow: 0 1px 2px rgba(18,16,26,.04), 0 10px 28px -16px rgba(18,16,26,.18);
    font-family: var(--pz-font);
    box-sizing: border-box;
}
.ptop-compact-wrap *, .ptop4-wrap * { box-sizing: border-box; }

/* Cifre tabulari: i punteggi non ballano in larghezza */
.ptop-compact-price, .ptop-compact-score, .ptop4-price, .ptop4-score-num {
    font-variant-numeric: tabular-nums; font-feature-settings:"tnum" 1;
}

/* ── LAYOUT COMPATTO (sidebar) ── */
.ptop-compact-wrap {
    background: var(--pz-surface); border:1px solid var(--pz-line);
    border-radius: var(--pz-r-lg); padding:18px 16px; margin:16px 0;
    box-shadow: var(--pz-shadow); width:100%;
}
.ptop-compact-head { margin-bottom:14px; }
.ptop-compact-eyebrow {
    font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
    color:var(--pz-faint); display:block; margin-bottom:6px;
}
.ptop-compact-title { font-size:15px; font-weight:800; letter-spacing:-.025em; color:var(--pz-ink); margin:0; line-height:1.25; }
.ptop-compact-title strong { color:var(--pz-brand); }
.ptop-compact-list { display:flex; flex-direction:column; gap:8px; }
.ptop-compact-card {
    background:var(--pz-surface); border:1px solid var(--pz-line); border-radius:var(--pz-r-md);
    padding:12px; display:flex; flex-direction:column; gap:8px; position:relative;
    transition:border-color .15s, box-shadow .15s;
}
.ptop-compact-card:hover { border-color:#DCD7E4; box-shadow:var(--pz-shadow); }
/* Il metallo è un filo sul bordo superiore, non più un bordo spesso a sinistra */
.ptop-compact-card::before { content:''; position:absolute; inset:0 auto auto 0; height:2px; width:100%; border-radius:var(--pz-r-md) var(--pz-r-md) 0 0; }
.ptop-compact-gold::before   { background:var(--pz-gold); }
.ptop-compact-silver::before { background:var(--pz-silver); }
.ptop-compact-bronze::before { background:var(--pz-bronze); }
.ptop-compact-toprow { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.ptop-compact-rank { font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--pz-muted); }
.ptop-compact-badge { font-size:9px; font-weight:700; padding:3px 8px; border-radius:999px; border:1px solid currentColor; background:transparent; }
.ptop-compact-body { display:flex; gap:10px; align-items:center; }
.ptop-compact-thumb {
    width:52px; height:52px; border-radius:var(--pz-r-sm); background:var(--pz-canvas);
    border:1px solid var(--pz-line); flex-shrink:0; display:flex; align-items:center; justify-content:center;
}
.ptop-compact-thumb img { width:100%; height:100%; object-fit:contain; padding:4px; }
.ptop-compact-info { flex:1; min-width:0; }
.ptop-compact-name {
    font-size:12.5px; font-weight:650; letter-spacing:-.01em; color:var(--pz-ink); margin:0 0 4px; line-height:1.35;
    display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.ptop-compact-price { font-size:14px; font-weight:800; letter-spacing:-.03em; color:var(--pz-ink); }
.ptop-compact-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ptop-compact-score { font-size:10px; font-weight:700; color:var(--pz-faint); background:var(--pz-canvas); padding:4px 8px; border-radius:var(--pz-r-sm); border:1px solid var(--pz-line); }
.ptop-compact-score strong { color:var(--pz-ink); font-size:12px; }
.ptop-compact-btn {
    padding:6px 12px; background:var(--pz-ink); color:#fff; font-size:11px; font-weight:700;
    text-decoration:none; border-radius:var(--pz-r-sm); white-space:nowrap;
}
.ptop-compact-btn:hover { background:var(--pz-brand); color:#fff; }

/* ── LAYOUT ESTESO ── */
.ptop4-wrap { background:var(--pz-canvas); padding:48px 24px 56px; border-radius:24px; margin:40px auto; max-width:1080px; border:1px solid var(--pz-line); }
.ptop4-header { text-align:center; margin-bottom:44px; }
.ptop4-eyebrow { display:inline-block; font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--pz-faint); margin-bottom:14px; }
.ptop4-title { font-size:clamp(1.6rem,4vw,2.5rem); font-weight:800; color:var(--pz-ink); margin:0 0 10px; letter-spacing:-.035em; line-height:1.15; }
.ptop4-title strong { color:var(--pz-brand); }
.ptop4-sub { font-size:14px; color:var(--pz-muted); margin:0; }
.ptop4-stage { display:flex; align-items:flex-end; justify-content:center; gap:18px; }
.ptop4-item { display:flex; flex-direction:column; align-items:center; }
.ptop4-item:nth-child(2) { margin-bottom:28px; }
.ptop4-medal { font-size:26px; margin-bottom:4px; filter:grayscale(.15); }
.ptop4-rank { font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin-bottom:10px; color:var(--pz-faint); }
.ptop4-card { background:var(--pz-surface); border-radius:var(--pz-r-lg); border:1px solid var(--pz-line); padding:22px 20px 24px; width:300px; text-align:center; position:relative; box-shadow:var(--pz-shadow); overflow:hidden; }
.ptop4-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; }
.ptop4-gold .ptop4-card::before   { background:var(--pz-gold); }
.ptop4-silver .ptop4-card::before { background:var(--pz-silver); }
.ptop4-bronze .ptop4-card::before { background:var(--pz-bronze); }
.ptop4-img { width:96px; height:96px; border-radius:var(--pz-r-md); overflow:hidden; margin:0 auto 14px; background:var(--pz-canvas); display:flex; align-items:center; justify-content:center; border:1px solid var(--pz-line); }
.ptop4-img img { width:100%; height:100%; object-fit:contain; padding:8px; }
.ptop4-name { font-size:13px; font-weight:650; letter-spacing:-.012em; color:var(--pz-ink); line-height:1.45; margin:0 0 12px; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px; }
.ptop4-price { font-size:22px; font-weight:800; color:var(--pz-ink); margin:0 0 12px; letter-spacing:-.04em; }
.ptop4-price span { font-size:11px; font-weight:600; color:var(--pz-faint); letter-spacing:.04em; text-transform:uppercase; }
.ptop4-score-box { background:var(--pz-canvas); border:1px solid var(--pz-line); border-radius:var(--pz-r-md); padding:12px; margin-bottom:12px; }
.ptop4-score-label { font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--pz-faint); display:block; margin-bottom:4px; }
.ptop4-score-num { font-size:38px; font-weight:800; line-height:1; display:block; margin-bottom:8px; letter-spacing:-.055em; color:var(--pz-ink); }
.ptop4-score-num span { font-size:13px; color:var(--pz-faint); font-weight:600; letter-spacing:-.01em; }
.ptop4-bar { height:3px; background:var(--pz-line); border-radius:999px; overflow:hidden; }
.ptop4-bar-fill { height:100%; border-radius:999px; transition:width 1s cubic-bezier(.4,0,.2,1); }
.ptop4-gold .ptop4-bar-fill   { background:var(--pz-gold); }
.ptop4-silver .ptop4-bar-fill { background:var(--pz-silver); }
.ptop4-bronze .ptop4-bar-fill { background:var(--pz-bronze); }
.ptop4-btn { display:block; padding:11px 16px; border-radius:var(--pz-r-sm); font-size:13px; font-weight:700; text-decoration:none; background:var(--pz-ink); color:#fff; }
.ptop4-btn:hover { background:var(--pz-brand); color:#fff; }
.ptop4-badge { margin-top:10px; font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--pz-faint); }
.ptop4-badge-dynamic { position:absolute; top:12px; right:12px; font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:4px 9px; border-radius:999px; white-space:nowrap; background:var(--pz-surface); border:1px solid currentColor; }
.ptop4-footer { text-align:center; margin-top:40px; font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--pz-faint); }
.ptop4-share-block { margin-top:14px; padding-top:14px; border-top:1px solid var(--pz-line); }
.ptop4-share-label { font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--pz-faint); margin-bottom:10px; }
.ptop4-share-row { display:flex; align-items:center; gap:12px; }
.ptop4-qr-wrap { flex-shrink:0; width:72px; height:72px; background:#fff; border-radius:var(--pz-r-sm); border:1px solid var(--pz-line); padding:4px; display:flex; align-items:center; justify-content:center; }
.ptop4-qr-wrap img, .ptop4-qr-wrap canvas { width:64px !important; height:64px !important; border-radius:4px; }
.ptop4-social-btns { flex:1; display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.ptop4-social-btn { display:flex; align-items:center; justify-content:center; padding:7px 6px; border-radius:var(--pz-r-sm); font-size:11px; font-weight:700; text-decoration:none; color:#fff; white-space:nowrap; }
.ptop4-social-btn:hover { opacity:.88; color:#fff; }
.ptop4-wa{background:#25D366}.ptop4-fb{background:#1877F2}.ptop4-tg{background:#229ED9}.ptop4-tw{background:#000}
.ptop4-empty { text-align:center; color:var(--pz-muted); padding:36px 20px; font-size:14px; }
@media(max-width:860px){
  .ptop4-stage{flex-direction:column;align-items:center;gap:18px}
  .ptop4-item:nth-child(2){margin-bottom:0;order:-1}
  .ptop4-card{width:100%;max-width:340px}
  .ptop4-wrap{padding:32px 16px 40px}
}
@media (prefers-reduced-motion: reduce){ .ptop4-bar-fill{transition:none !important} }
