:root{
  --ink:#fbf6f1; --ink-2:#efe4d9; --surface:#fff; --surface-2:#f6efe8; --line:#e6d9cd;
  --champagne:#cda24e; --champagne-d:#9a7420; --rose:#cf6580; --mint:#3e9e72; --clay:#c07a4c;
  --text:#3b2e37; --muted:#7c6b76; --muted-2:#a08f99;
  --radius:14px; --shadow:0 14px 34px -20px rgba(59,46,55,.28); --slip:'Space Mono',ui-monospace,monospace;
  --brand:var(--champagne-d);
  --font-display:'Fraunces',serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Inter',system-ui,sans-serif;color:var(--text);line-height:1.5;min-height:100vh;
  background:radial-gradient(1200px 600px at 80% -10%,rgba(205,162,78,.14),transparent 60%),
             radial-gradient(900px 500px at -10% 110%,rgba(207,101,128,.12),transparent 55%),var(--ink);
  -webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}
.loading{padding:60px;text-align:center;color:var(--muted)}

/* nav */
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);
  background:linear-gradient(var(--ink-2),transparent);position:sticky;top:0;z-index:20;backdrop-filter:blur(6px)}
.brand{font-family:'Fraunces',serif;font-weight:600;font-size:20px;color:var(--text);display:flex;align-items:center;gap:9px}
.brand-mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--brand);color:#fff;
  font-size:15px;font-weight:600;box-shadow:var(--shadow)}
.nav-right{display:flex;gap:8px;align-items:center;font-size:14px}
.nav-right .who{color:var(--muted);font-size:13px}

main{max-width:760px;margin:0 auto;padding:24px 20px 90px}

/* typography */
h1.title{font-family:var(--font-display);font-weight:600;font-size:clamp(28px,7vw,42px);letter-spacing:-.01em;margin:0 0 6px}
h1.title .amp{color:var(--rose);font-style:italic}
.sub{color:var(--muted);margin:0 0 22px}
.eyebrow{font-family:var(--slip);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--brand);margin:0 0 6px}
.section-title{font-family:var(--slip);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2);
  margin:28px 0 14px;display:flex;align-items:center;gap:12px}
.section-title::after{content:"";flex:1;height:1px;background:var(--line)}

/* card */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);margin-bottom:14px}
.card.pad-lg{padding:22px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.grow{flex:1}
.stack{display:flex;flex-direction:column;gap:12px}

/* forms */
label.lbl{display:block;font-size:12px;letter-spacing:.03em;color:var(--muted);margin:0 0 6px}
input,select,textarea{width:100%;padding:12px 14px;font-size:16px;color:var(--text);background:var(--surface-2);
  border:1px solid var(--line);border-radius:10px;outline:none;font-family:inherit}
input:focus,select:focus,textarea:focus{border-color:var(--champagne);box-shadow:0 0 0 3px rgba(205,162,78,.22)}
.field{flex:1 1 200px}

/* buttons */
.btn{font:inherit;font-weight:600;cursor:pointer;padding:12px 18px;border-radius:10px;border:1px solid transparent;
  background:var(--brand);color:#fff;transition:transform .08s,filter .15s;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.btn:hover{filter:brightness(1.06)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;border-color:var(--line);color:var(--text)}
.btn.ghost:hover{border-color:var(--brand)}
.btn.rose{background:var(--rose);color:#fff}
.btn.small{padding:8px 12px;font-size:14px}
.btn.block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-link{background:none;border:none;color:var(--brand);cursor:pointer;font:inherit;padding:0;text-decoration:underline}

/* badges */
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--slip);font-size:11px;letter-spacing:.06em;
  padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.badge.plan-start{color:var(--muted);border-color:var(--line)}
.badge.plan-essential{color:var(--brand);border-color:rgba(205,162,78,.5);background:rgba(205,162,78,.08)}
.badge.plan-signature{color:var(--rose);border-color:rgba(207,101,128,.5);background:rgba(207,101,128,.08)}
.badge.role{color:var(--brand)}
.badge.open{color:var(--mint);border-color:rgba(62,158,114,.4);background:rgba(62,158,114,.06)}
.badge.closed{color:var(--clay);border-color:rgba(192,122,76,.4);background:rgba(192,122,76,.06)}

/* wedding cards on dashboard */
.wed-card{display:block;color:inherit}
.wed-card:hover{border-color:var(--brand)}
.wed-card .couple{font-family:var(--font-display);font-size:22px;font-weight:600}
.wed-card .meta{color:var(--muted);font-size:13px;margin-top:2px}
.code{font-family:var(--slip);font-weight:700;letter-spacing:.22em;background:var(--surface-2);border:1px dashed var(--line);
  padding:6px 12px;border-radius:8px;display:inline-block}

/* plan picker */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.plan{border:1px solid var(--line);border-radius:12px;padding:16px;cursor:pointer;background:var(--surface-2);transition:border-color .12s}
.plan:hover{border-color:var(--champagne-d)}
.plan.sel{border-color:var(--brand);background:rgba(205,162,78,.10)}
.plan h4{margin:0 0 4px;font-family:var(--font-display);font-size:19px}
.plan .price{font-family:var(--slip);color:var(--brand);font-size:13px;margin-bottom:8px}
.plan ul{margin:0;padding-left:18px;font-size:13px;color:var(--muted)}
.plan li{margin:2px 0}

/* tabs */
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:6px 0 18px;overflow-x:auto}
.tab{padding:10px 14px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;border:none;background:none;
  border-bottom:2px solid transparent;white-space:nowrap}
.tab.active{color:var(--text);border-bottom-color:var(--brand)}

/* bet slip */
.slip{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 18px 16px;margin-bottom:14px;box-shadow:var(--shadow)}
.slip::before{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;
  background-image:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 12px)}
.slip.resolved{border-color:rgba(62,158,114,.4)}
.slip-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.slip-title{font-family:var(--font-display);font-weight:600;font-size:19px;margin:0}
.slip-desc{color:var(--muted);font-size:14px;margin:4px 0 0}
.cat{font-family:var(--slip);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin:0 0 6px}
.payout{flex-shrink:0;text-align:right;font-family:var(--slip);color:var(--champagne-d);
  border:1px solid rgba(205,162,78,.45);background:rgba(205,162,78,.07);border-radius:8px;padding:4px 8px;line-height:1.1}
.payout b{display:block;font-size:16px}
.payout span{font-size:9px;letter-spacing:.16em;text-transform:uppercase}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:14px}
.opt{position:relative;cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:12px 12px 26px;text-align:left;
  background:var(--surface-2);color:var(--text);font:inherit}
.opt:hover{border-color:var(--champagne-d)}
.opt.picked{border-color:var(--champagne);background:rgba(205,162,78,.12)}
.opt.picked::after{content:"✓ la tua scelta";position:absolute;left:12px;bottom:8px;font-family:var(--slip);font-size:10px;color:var(--champagne-d)}
.opt.win{border-color:var(--mint);background:rgba(62,158,114,.12)}
.opt.lose{opacity:.55}
.opt .opt-name{font-weight:600;font-size:15px}
.opt .bar{margin-top:8px;height:4px;border-radius:4px;background:var(--ink-2);overflow:hidden}
.opt .bar>i{display:block;height:100%;background:var(--muted-2);border-radius:4px;transition:width .4s}
.opt.win .bar>i{background:var(--mint)}
.opt .pct{position:absolute;right:12px;bottom:8px;font-family:var(--slip);font-size:10px;color:var(--muted-2)}
.stamp{position:absolute;top:12px;right:14px;transform:rotate(9deg);font-family:var(--slip);font-weight:700;
  letter-spacing:.1em;border:2px solid;border-radius:6px;padding:3px 8px;font-size:12px;opacity:.9}
.stamp.vinto{color:var(--mint);border-color:var(--mint)} .stamp.perso{color:var(--clay);border-color:var(--clay)}
.stamp.esito{color:var(--muted);border-color:var(--line)} .stamp.chiusa{color:var(--clay);border-color:var(--clay)}
.proof{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.proof img{max-width:100%;border-radius:10px;display:block}
.proof .cap{font-family:var(--slip);font-size:11px;color:var(--mint);margin-bottom:6px}
.admin-row{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}

/* leaderboard */
.board{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.lb{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line);background:var(--surface)}
.lb:last-child{border-bottom:0}
.lb .rank{font-family:var(--slip);color:var(--muted-2)}
.lb .who{font-weight:600}
.lb .who small{display:block;color:var(--muted-2);font-weight:400;font-size:12px;font-family:var(--slip)}
.lb .pts{font-family:var(--slip);font-size:18px;color:var(--champagne-d)}
.lb.top1{background:linear-gradient(90deg,rgba(205,162,78,.16),var(--surface))}
.lb.me{box-shadow:inset 3px 0 0 var(--rose)}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.gallery figure{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2)}
.gallery img{width:100%;height:120px;object-fit:cover;display:block}
.gallery figcaption{font-size:11px;color:var(--muted);padding:6px 8px}

/* misc */
.empty{color:var(--muted);text-align:center;padding:26px;font-size:14px}
.muted{color:var(--muted)} .center{text-align:center} .hidden{display:none!important}
.err{color:var(--rose);font-size:13px;margin-top:6px}
.upsell{border:1px dashed var(--line);border-radius:10px;padding:12px 14px;color:var(--muted);font-size:13px;background:var(--surface-2)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:var(--surface);
  color:var(--text);border:1px solid var(--line);padding:11px 18px;border-radius:10px;box-shadow:var(--shadow);
  opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:50;font-size:14px;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.bad{border-color:var(--rose)}
footer{max-width:760px;margin:0 auto;padding:20px;color:var(--muted-2);font-size:12px;text-align:center}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* PWA install button */
.install-fab{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom,0px));
  z-index:40;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.4)}

/* ===== Modalità proiezione ===== */
body.projection .nav{display:none}
body.projection main{max-width:none;margin:0;padding:0;min-height:100vh}
.show{position:relative;min-height:100vh;padding:clamp(20px,4vw,54px);display:flex;flex-direction:column;gap:clamp(18px,3vw,34px);overflow:hidden}
.show-exit{position:fixed;top:16px;right:16px;z-index:5}
.show-head{text-align:center}
.show-eyebrow{font-family:var(--slip);font-size:clamp(11px,1.4vw,15px);letter-spacing:.35em;text-transform:uppercase;color:var(--brand);margin-bottom:8px}
.show-couple{font-family:var(--font-display);font-weight:600;font-size:clamp(38px,8vw,86px);line-height:1;margin:0}
.show-couple .amp{color:var(--rose);font-style:italic}
.show-stat{margin-top:12px;font-family:var(--slip);font-size:clamp(12px,1.6vw,18px);color:var(--muted)}

.podium{display:flex;justify-content:center;align-items:flex-end;gap:clamp(10px,2vw,26px);margin-top:auto}
.pod{width:clamp(120px,20vw,240px);background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:clamp(12px,1.6vw,20px);text-align:center;box-shadow:var(--shadow);position:relative}
.pod-crown{font-size:clamp(26px,4vw,52px);line-height:1}
.pod-name{font-family:var(--font-display);font-weight:600;font-size:clamp(16px,2.2vw,28px);margin:6px 0 2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pod-pts{font-family:var(--slip);font-weight:700;font-size:clamp(22px,3.4vw,44px);color:var(--champagne-d)}
.pod-pts span{font-size:.4em;letter-spacing:.1em;margin-left:4px;color:var(--muted)}
.pod-place{font-family:var(--slip);color:var(--muted-2);margin-top:6px}
.pod-bar{height:clamp(30px,8vh,90px);border-radius:10px 10px 0 0;margin:10px -1px -1px;
  background:linear-gradient(var(--surface-2),var(--ink-2))}
.pod-1{transform:translateY(-14px)}
.pod-1 .pod-bar{height:clamp(60px,14vh,150px);background:linear-gradient(rgba(205,162,78,.25),rgba(205,162,78,.5))}
.pod-2 .pod-bar{height:clamp(45px,10vh,115px)}
.pod-1{border-color:rgba(205,162,78,.5)}

.show-rest{max-width:620px;margin:0 auto;width:100%;display:grid;gap:6px}
.show-lb{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;background:var(--surface);
  border:1px solid var(--line);border-radius:10px;padding:9px 16px;font-size:clamp(13px,1.6vw,18px)}
.show-lb .r{font-family:var(--slip);color:var(--muted-2)}
.show-lb .n{font-weight:600} .show-lb .p{font-family:var(--slip);color:var(--champagne-d);font-weight:700}

.show-latest{max-width:900px;margin:0 auto;width:100%}
.show-latest-h{font-family:var(--slip);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2);text-align:center;margin-bottom:10px}
.res-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.res-chip{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:8px 12px 8px 8px;box-shadow:var(--shadow);max-width:280px}
.res-chip img,.res-noimg{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0;
  display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line)}
.res-t{font-weight:600;font-size:13px;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.res-w{font-family:var(--slip);font-size:12px;color:var(--mint);margin-top:2px}

/* coriandoli */
.confetti{position:fixed;inset:0;pointer-events:none;z-index:4;overflow:hidden}
.confetti i{position:absolute;top:-20px;width:10px;height:14px;border-radius:2px;opacity:.9;
  animation-name:fall;animation-timing-function:linear;animation-iteration-count:1}
@keyframes fall{to{transform:translateY(105vh) rotate(540deg);opacity:.7}}
@media (prefers-reduced-motion:reduce){.confetti{display:none}}

/* elenco partecipanti / inviti */
.mrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.mrow:last-child{border-bottom:0}
.mname{font-weight:600}

/* badge notifiche sulla tab Gestione */
.tab-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;
  border-radius:999px;background:var(--rose);color:#fff;font-size:11px;font-weight:700;line-height:1;vertical-align:middle}

/* selettore tema (white-label) */
.swatches{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.swatch{width:34px;height:34px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;transition:transform .1s}
.swatch:hover{transform:scale(1.08)}
.swatch.sel{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--brand);transform:scale(1.08)}

/* font picker + logo (white-label) */
.fontpick{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.fontbtn{padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer;font-size:18px;color:var(--text);line-height:1.1}
.fontbtn:hover{border-color:var(--brand)}
.fontbtn.sel{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.logo-preview{max-height:52px;max-width:160px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);object-fit:contain}
.wed-logo{max-height:56px;max-width:180px;margin-bottom:8px;display:block;object-fit:contain}
.show-logo{max-height:96px;max-width:280px;margin:0 auto 14px;display:block;object-fit:contain}

/* ===== Temi completi (white-label Signature) ===== */
html[data-wedtheme="hearts"]{--ink:#fbeef2;--ink-2:#f7dfe8;--surface:#ffffff;--surface-2:#fdf0f4;--line:#f1d7e1;--text:#4a2b38;--muted:#9c6f80;--muted-2:#c69fac;--brand:#c8536f;--rose:#d46a86;--champagne:#cda24e;--champagne-d:#b0466a;}
html[data-wedtheme="hearts"] body{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2246%22%20height%3D%2246%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cpath%20d%3D%22M24%2038%20C24%2038%208%2028%208%2017%20C8%2011%2014%208%2019%2011%20C22%2013%2024%2016%2024%2016%20C24%2016%2026%2013%2029%2011%20C34%208%2040%2011%2040%2017%20C40%2028%2024%2038%2024%2038%20Z%22%20fill%3D%22%23d46a86%22%20fill-opacity%3D%220.12%22%2F%3E%3C%2Fsvg%3E");background-size:46px 46px;background-repeat:repeat;background-attachment:fixed;}
html[data-wedtheme="toast"]{--ink:#fbf4e9;--ink-2:#f4e7d0;--surface:#fffdf9;--surface-2:#f8efe0;--line:#ecdcc2;--text:#4a3b25;--muted:#8c7658;--muted-2:#b3a184;--brand:#b9892f;--rose:#cf6580;--champagne:#cda24e;--champagne-d:#9a7420;}
html[data-wedtheme="toast"] body{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2260%22%20height%3D%2260%22%20viewBox%3D%220%200%2060%2060%22%3E%3Cg%20stroke%3D%22%23b9892f%22%20stroke-opacity%3D%220.16%22%20stroke-width%3D%222%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M23%2016%20L19%2032%20L15%2043%22%2F%3E%3Cpath%20d%3D%22M37%2016%20L41%2032%20L45%2043%22%2F%3E%3C%2Fg%3E%3Cellipse%20cx%3D%2224%22%20cy%3D%2213%22%20rx%3D%226%22%20ry%3D%224%22%20fill%3D%22%23b9892f%22%20fill-opacity%3D%220.16%22%2F%3E%3Cellipse%20cx%3D%2236%22%20cy%3D%2213%22%20rx%3D%226%22%20ry%3D%224%22%20fill%3D%22%23b9892f%22%20fill-opacity%3D%220.16%22%2F%3E%3C%2Fsvg%3E");background-size:60px 60px;background-repeat:repeat;background-attachment:fixed;}
html[data-wedtheme="rings"]{--ink:#f6f1ea;--ink-2:#eee3d4;--surface:#fffdf9;--surface-2:#f4ece0;--line:#e6d8c4;--text:#3e352a;--muted:#857a68;--muted-2:#ab9c84;--brand:#b08d3e;--rose:#cf6580;--champagne:#cda24e;--champagne-d:#9a7420;}
html[data-wedtheme="rings"] body{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2260%22%20height%3D%2260%22%20viewBox%3D%220%200%2060%2060%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23b08d3e%22%20stroke-opacity%3D%220.16%22%20stroke-width%3D%223%22%3E%3Ccircle%20cx%3D%2225%22%20cy%3D%2230%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2238%22%20cy%3D%2230%22%20r%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-size:60px 60px;background-repeat:repeat;background-attachment:fixed;}
html[data-wedtheme="petals"]{--ink:#eef4ee;--ink-2:#dfeadf;--surface:#ffffff;--surface-2:#eef5ef;--line:#d7e6d9;--text:#2f3d33;--muted:#6f8574;--muted-2:#9ab3a0;--brand:#3e9e72;--rose:#cf6580;--champagne:#cda24e;--champagne-d:#2f7d57;}
html[data-wedtheme="petals"] body{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2254%22%20height%3D%2254%22%20viewBox%3D%220%200%2054%2054%22%3E%3Cg%20fill%3D%22%233e9e72%22%20fill-opacity%3D%220.13%22%3E%3Cellipse%20cx%3D%2227%22%20cy%3D%2214%22%20rx%3D%225%22%20ry%3D%2210%22%2F%3E%3Cellipse%20cx%3D%2227%22%20cy%3D%2240%22%20rx%3D%225%22%20ry%3D%2210%22%2F%3E%3Cellipse%20cx%3D%2214%22%20cy%3D%2227%22%20rx%3D%2210%22%20ry%3D%225%22%2F%3E%3Cellipse%20cx%3D%2240%22%20cy%3D%2227%22%20rx%3D%2210%22%20ry%3D%225%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-size:54px 54px;background-repeat:repeat;background-attachment:fixed;}
html[data-wedtheme="confetti"]{--ink:#fff7ef;--ink-2:#ffe9d6;--surface:#ffffff;--surface-2:#fff1e6;--line:#f0dcc8;--text:#43302a;--muted:#997f72;--muted-2:#c2a897;--brand:#c07a4c;--rose:#cf6580;--champagne:#cda24e;--champagne-d:#9a7420;}
html[data-wedtheme="confetti"] body{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2264%22%20height%3D%2264%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cg%20fill-opacity%3D%220.9%22%3E%3Crect%20x%3D%228%22%20y%3D%2210%22%20width%3D%227%22%20height%3D%223%22%20rx%3D%221%22%20fill%3D%22%23c8536f%22%20transform%3D%22rotate%2825%2011%2011%29%22%2F%3E%3Crect%20x%3D%2242%22%20y%3D%2214%22%20width%3D%227%22%20height%3D%223%22%20rx%3D%221%22%20fill%3D%22%233e9e72%22%20transform%3D%22rotate%28-15%2045%2015%29%22%2F%3E%3Ccircle%20cx%3D%2230%22%20cy%3D%2230%22%20r%3D%222.6%22%20fill%3D%22%23c07a4c%22%2F%3E%3Crect%20x%3D%2218%22%20y%3D%2244%22%20width%3D%227%22%20height%3D%223%22%20rx%3D%221%22%20fill%3D%22%23cda24e%22%20transform%3D%22rotate%2840%2021%2045%29%22%2F%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2246%22%20r%3D%222.6%22%20fill%3D%22%237d5aa0%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2252%22%20r%3D%222.2%22%20fill%3D%22%233e9e72%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-size:64px 64px;background-repeat:repeat;background-attachment:fixed;}
html[data-wedtheme="night"]{--ink:#241b26;--ink-2:#2e2331;--surface:#322636;--surface-2:#3a2d40;--line:#4d3d54;--text:#f4e9ef;--muted:#b79fc0;--muted-2:#8f7799;--brand:#e0b062;--rose:#e28aa4;--champagne:#e0b062;--champagne-d:#e9c37e;}
html[data-wedtheme="night"] body{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2246%22%20height%3D%2246%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cpath%20d%3D%22M24%2038%20C24%2038%208%2028%208%2017%20C8%2011%2014%208%2019%2011%20C22%2013%2024%2016%2024%2016%20C24%2016%2026%2013%2029%2011%20C34%208%2040%2011%2040%2017%20C40%2028%2024%2038%2024%2038%20Z%22%20fill%3D%22%23e0b062%22%20fill-opacity%3D%220.16%22%2F%3E%3C%2Fsvg%3E");background-size:46px 46px;background-repeat:repeat;background-attachment:fixed;}
html[data-wedtheme="night"]{--shadow:0 14px 34px -20px rgba(0,0,0,.55);}
.themepick{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-top:6px}
.themebtn{border:2px solid var(--line);border-radius:12px;padding:0;cursor:pointer;overflow:hidden;background:var(--surface-2);text-align:center}
.themebtn .prev{height:44px;display:block}
.themebtn .lbl2{display:block;font-size:12px;padding:6px 4px;color:var(--text);background:var(--surface)}
.themebtn.sel{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.idchip{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-family:var(--slip);font-size:12px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:4px 10px}

/* modale (QR accesso, ecc.) */
.modal-backdrop{position:fixed;inset:0;background:rgba(30,20,26,.5);display:grid;place-items:center;z-index:60;padding:20px}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:24px 22px;max-width:340px;width:100%;position:relative;text-align:center}
.modal-close{position:absolute;top:8px;right:12px;background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted)}

/* footer legale */
.app-footer{max-width:760px;margin:0 auto;padding:18px 20px 30px;text-align:center;color:var(--muted-2);font-size:12px}
.app-footer a{color:var(--muted)}
body.projection .app-footer{display:none}

/* rifiniture UX: categorie, diretta, riepilogo classifica */
.cat-header{font-family:var(--slip);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brand);margin:22px 0 10px;display:flex;align-items:center;gap:10px}
.cat-header::before,.cat-header::after{content:"";flex:1;height:1px;background:var(--line)}
.live-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--mint);background:rgba(62,158,114,.08);border:1px solid rgba(62,158,114,.3);border-radius:999px;padding:3px 10px;margin-bottom:12px;animation:livepulse 2s ease-in-out infinite}
@keyframes livepulse{0%,100%{opacity:1}50%{opacity:.55}}
.me-summary{display:flex;justify-content:space-between;align-items:center;border-color:rgba(207,101,128,.4);background:linear-gradient(90deg,rgba(207,101,128,.08),var(--surface))}
.me-rankbig{font-size:34px;line-height:1}
@media (prefers-reduced-motion:reduce){.live-pill{animation:none}}

/* logo brand */
.brand-logo{height:26px;width:auto;display:block}
.brand-hero{display:block;margin:6px auto 20px;width:min(58%,210px)}
