:root{--bg:#112f3a;--panel:#193c46;--ink:#faf4e8;--muted:#bdc9c7;--gold:#e6b978;--red:#a93e39;--line:#ffffff25;--paper:#fffaf1;--dark:#17363e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 Arial,sans-serif}body[data-theme=bosco]{--bg:#173e30;--panel:#22513d;--gold:#e4b96d;--red:#b64a39}body[data-theme=crema]{--bg:#f7efdf;--panel:#ede1c9;--ink:#203e38;--muted:#586760;--gold:#a36c27;--red:#ae4540;--line:#244d3525}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button:disabled{cursor:default;opacity:.55}button[hidden],[hidden]{display:none!important}.top{max-width:1250px;margin:auto;padding:26px 34px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.top img{width:145px;background:white;padding:9px 12px;border-radius:8px}.top>a:last-child{font-size:14px}.top span{margin-left:12px;color:var(--gold)}main{max-width:1180px;margin:auto;padding:0 32px}.hero{position:relative;padding:75px 0 60px;overflow:hidden;min-height:435px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--gold);font-weight:bold}.hero-kicker{color:var(--muted);font-size:16px;margin:26px 0 10px}h1{font:normal clamp(46px,6.7vw,82px)/1.03 Georgia,serif;letter-spacing:-2px;margin:12px 0 22px;max-width:780px}h1 em{font-weight:normal;color:var(--gold)}.intro{font-size:18px;color:var(--muted);max-width:500px}.primary{border:0;background:var(--gold);color:#17343b;padding:15px 23px;font-weight:bold;border-radius:6px;min-height:50px}.primary span{margin-left:26px}.status{font-size:13px;color:var(--muted);margin-top:14px}.ornament{position:absolute;font:50px Georgia;color:var(--gold);right:13%;top:45px}.o2{font-size:28px;right:32%;top:160px}.tree-art{position:absolute;right:6%;top:110px;width:230px;height:270px;transform:rotate(5deg);opacity:.75;pointer-events:none}.tree-art i{position:absolute;display:block;width:0;height:0;border-left:115px solid transparent;border-right:115px solid transparent;border-bottom:125px solid #2d5d58;left:0;top:110px}.tree-art i:nth-child(2){transform:scale(.77);top:45px}.tree-art i:nth-child(3){transform:scale(.54);top:-12px}.tree-art b{position:absolute;left:99px;top:12px;font-size:33px;color:var(--gold)}.section-line{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;font-size:10px;letter-spacing:2px;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.door{position:relative;aspect-ratio:1/1.12;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--panel);overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;isolation:isolate}.door::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 47%,#ffffff08 47%,#ffffff08 53%,transparent 53%);z-index:-1}.door:nth-child(3n+2){background:#743b39}.door:nth-child(5n){background:#756347}.door:nth-child(4n)::after{content:'✧';position:absolute;right:12px;top:10px;color:#ffffff45;font-size:25px}.door .number{font:46px Georgia,serif}.door .label{font-size:9px;letter-spacing:2px;text-transform:uppercase;opacity:.7;margin-top:8px}.door.today{background:var(--gold);color:#183b40;border:2px solid #fff2ce;box-shadow:0 0 0 4px #e6b97818;transform:translateY(-3px)}.door.today .number{font-size:55px}.door.today .label{opacity:1;font-weight:bold}.door.past{opacity:.48}.door:not(:disabled):hover{transform:translateY(-4px)}.door.locked:disabled{opacity:.78}.how{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;padding:70px 0 45px}.how span{color:var(--gold);font-size:12px}.how h2{font:25px Georgia,serif;margin:10px 0}.how p,.wallet p{color:var(--muted);font-size:14px;max-width:290px}.wallet{border-top:1px solid var(--line);padding:20px 0 35px}.wallet h2{font:26px Georgia,serif}.wallet p{max-width:600px}.saved-code{display:inline-block;border:1px solid var(--line);background:transparent;color:var(--ink);padding:10px 15px;border-radius:6px;margin:4px}footer{border-top:1px solid var(--line);max-width:1250px;margin:15px auto 0;padding:34px;display:flex;justify-content:space-between;gap:25px;font-size:12px;color:var(--muted)}footer strong{color:var(--ink);font:24px Georgia,serif}.foot-links{display:flex;flex-direction:column;gap:14px}.foot-links button{background:none;color:inherit;border:0;text-align:left;padding:0}dialog{border:0;border-radius:18px;padding:36px;max-width:520px;width:calc(100% - 30px);background:var(--paper);color:var(--dark);box-shadow:0 20px 100px #0007}dialog::backdrop{background:#061d29b5;backdrop-filter:blur(6px)}.close{position:absolute;top:10px;right:15px;border:0;background:none;color:var(--dark);font-size:29px}.modal-kicker{text-transform:uppercase;letter-spacing:2px;font-size:11px;color:#8d5b20;font-weight:bold}dialog h2{font:36px/1.12 Georgia,serif;margin:14px 0}dialog p{font-size:14px}.offer-img{width:100%;height:185px;object-fit:contain;margin:12px 0}.benefit{font:48px Georgia,serif;color:#9b3c36;margin:12px 0}.conditions{padding:15px;background:#efe6d5;border-radius:8px;font-size:13px;white-space:pre-line}.coupon{font:20px monospace;background:#eee4ce;border:1px dashed #7d693e;padding:16px;text-align:center;overflow-wrap:anywhere}.gift{display:block;margin:30px auto;width:160px;height:140px;background:#a33c38;border:0;border-radius:10px;position:relative;color:#f2cf8b;font-size:67px;box-shadow:0 15px 0 #722929}.gift::before{content:'';position:absolute;left:70px;top:0;width:22px;height:100%;background:#e6b978}.gift::after{content:'✦';position:absolute;left:52px;top:-45px;font-size:72px}.gift.opening{animation:unwrap .45s ease-in forwards}.skip{display:block;margin:25px auto 0;background:none;border:0;text-decoration:underline;font-size:13px;color:#52666b}.demo-bar{background:#e6b978;color:#183b40;text-align:center;padding:10px 15px;font-size:12px;position:relative;z-index:2}.demo-bar label{margin-left:20px}.demo-bar select{padding:2px 10px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#fff2ce;color:#17343b;padding:15px 25px;border-radius:8px;z-index:99;max-width:90vw}.small{font-size:12px;color:#647475}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.button-row button{border-radius:5px;padding:10px 15px}.terms-text{white-space:pre-wrap}.error{color:#a32d28}.admin-page{background:#f4f0e7;color:#17363e}.admin-page main{max-width:1240px}.admin-page h1{font-size:38px;letter-spacing:0}.admin-nav{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.admin-nav button,.secondary{border:1px solid #bdc9c7;background:white;color:#17363e;border-radius:6px;padding:10px 16px}.admin-page section.box{background:white;border:1px solid #ddd6c8;padding:24px;border-radius:12px;margin:18px 0}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.form-grid label,.stack label{display:flex;flex-direction:column;gap:5px;font-size:13px}.form-grid input,.form-grid select,.form-grid textarea,.stack input,.stack textarea{width:100%;padding:10px;border:1px solid #bbc7c4;border-radius:6px;background:#fff;color:#17363e}.wide{grid-column:1/-1}.admin-page textarea{min-height:90px}.admin-page .calendar{grid-template-columns:repeat(8,1fr)}.admin-day{padding:14px;border:1px solid #ccc;border-radius:8px;background:#f7f4ec;text-align:left}.admin-day strong{display:block;font-size:24px}.admin-day span{font-size:10px}.admin-day.ready{border-color:#477b55;background:#e9f1e9}.admin-page .hint{font-size:13px;color:#586963}.admin-page .notice{padding:14px;background:#fff3ca;border-left:4px solid #d8aa4c}.admin-page .top{border-color:#ddd}.admin-page .top a{color:#17363e}.checkline{display:flex;gap:8px;align-items:flex-start;margin:15px 0}.checkline input{width:auto}.admin-page dialog{max-width:850px}.admin-page .stack{max-width:450px;display:grid;gap:15px}.statline{font-size:14px;padding:10px 0}.admin-page .savebar{position:sticky;bottom:0;padding:14px;background:#fff9;border-top:1px solid #ddd;backdrop-filter:blur(10px)}@keyframes unwrap{50%{transform:rotate(8deg) scale(1.07)}100%{transform:scale(.2);opacity:0}}@media(max-width:850px){.calendar{grid-template-columns:repeat(4,1fr)}.tree-art{right:0;opacity:.35;transform:scale(.75)}.form-grid{grid-template-columns:repeat(2,1fr)}.admin-page .calendar{grid-template-columns:repeat(6,1fr)}}@media(max-width:540px){.top{padding:18px 20px}.top img{width:120px}.top>a:last-child{font-size:12px}main{padding:0 18px}.hero{padding:45px 0 35px;min-height:400px}.hero h1{font-size:52px}.eyebrow{font-size:9px;letter-spacing:2px}.intro{font-size:16px;max-width:260px}.tree-art{right:-95px;top:120px;opacity:.3}.o2{display:none}.o1{right:12px;top:30px}.calendar{grid-template-columns:repeat(3,1fr);gap:10px}.door .number{font-size:37px}.door.today .number{font-size:44px}.section-line{font-size:8px;letter-spacing:1px}.how{grid-template-columns:1fr;gap:25px;padding:45px 0}.how p{max-width:100%}footer{padding:25px 20px;flex-direction:column}.form-grid{grid-template-columns:1fr}.admin-page .calendar{grid-template-columns:repeat(4,1fr)}dialog{padding:28px 22px}.demo-bar label{display:block;margin:4px 0}.benefit{font-size:40px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media print{body>*:not(dialog){display:none!important}dialog{position:static;display:block!important;box-shadow:none;width:100%;max-width:none}dialog .close,dialog button{display:none!important}dialog::backdrop{display:none}}

/* Illustrazioni natalizie v1.1 — decorazione separata dalle offerte */
.calendar .door{aspect-ratio:1/1.3;background:#efe5ce;border:1px solid #e8cf9c;border-radius:14px;box-shadow:inset 0 0 0 5px #ffffff45;opacity:1;color:#183d38}
.calendar .door:nth-child(3n+2){background:#e6d6cc}.calendar .door:nth-child(3n){background:#dce4d4}.calendar .door:nth-child(5n){background:#ead9b5}
.calendar .door::before{background:radial-gradient(circle at 50% 45%,#fff8 0%,transparent 64%);z-index:0}.calendar .door::after{display:none}
.door-art{position:absolute;left:0;top:8%;width:100%;aspect-ratio:1;display:block;background-image:url('personaggi-natale.png');background-size:300% 200%;background-repeat:no-repeat;pointer-events:none;filter:drop-shadow(0 4px 3px #4c251414)}
.art-0{background-position:0 0}.art-1{background-position:50% 0}.art-2{background-position:100% 0}.art-3{background-position:0 100%}.art-4{background-position:50% 100%}.art-5{background-position:100% 100%}
.calendar .door .number,.calendar .door.today .number{position:absolute;z-index:2;top:8px;left:8px;width:47px;height:47px;display:grid;place-items:center;border-radius:50%;background:#fff8e9;color:#234438;border:1px solid #d9b675;box-shadow:0 2px 5px #59462420;font:32px/1 Georgia,serif}
.calendar .door .label{position:absolute;bottom:0;left:0;width:100%;min-height:29px;padding:7px 3px;background:#21483d;color:#fff9e8;font-size:8px;line-height:15px;letter-spacing:1.5px;margin:0;opacity:1}
.calendar .door.today{background:#f3dfb6;border:2px solid #f2c777;box-shadow:0 0 0 4px #e6b97835,0 9px 22px #0002}.calendar .door.today .label{background:#a93932;color:#fff8e9}.calendar .door.today .number{background:#a93932;color:#fff8e9;border-color:#a93932}
.calendar .door.past .door-art{filter:grayscale(.4);opacity:.65}.calendar .door.past .label{background:#6e7669}.calendar .door:not(:disabled):hover .door-art{transform:rotate(-3deg);transition:transform .2s}
@media(max-width:540px){.calendar .door{aspect-ratio:1/1.45;border-radius:10px}.calendar .door .number,.calendar .door.today .number{width:34px;height:34px;font-size:25px;left:5px;top:5px}.door-art{top:17%}.calendar .door .label{font-size:7px;letter-spacing:.8px;padding:6px 1px;min-height:27px}}

.regole{border:1px solid var(--line);border-radius:14px;padding:28px;margin:0 0 35px;background:var(--panel)}.regole h2{font:30px Georgia,serif;margin:8px 0 18px}.regole ol{padding-left:23px}.regole li{margin:12px 0;font-size:14px}.regole .small{color:var(--muted)}@media(max-width:540px){.regole{padding:20px}.regole h2{font-size:26px}}

/* Albero interattivo e percorso Fidelity */
.hero{padding-right:43%;min-height:610px;overflow:visible}.hero h1{font-size:clamp(42px,5vw,67px);max-width:660px}.christmas-tree{position:absolute;right:0;top:22px;width:40%;height:560px}.christmas-tree svg{width:100%;height:480px;filter:drop-shadow(0 12px 18px #0003)}.tree-light{animation:twinkle 2.8s ease-in-out infinite;filter:drop-shadow(0 0 5px currentColor)}.light-1{animation-delay:.9s}.light-2{animation-delay:1.8s}@keyframes twinkle{0%,100%{opacity:1;filter:drop-shadow(0 0 7px #fff5b0)}50%{opacity:.2;filter:none}}.lights-paused .tree-light{animation:none;opacity:1}.bauble{position:absolute;display:flex;flex-direction:column;align-items:center;width:73px;border:0;background:none;color:var(--ink);padding:0;z-index:2;text-align:center;transition:transform .2s}.bauble:hover{transform:rotate(-5deg) scale(1.07);text-decoration:none}.bauble img{width:66px;height:66px;object-fit:contain;background:#fff;border:3px solid #f0cc76;border-radius:50%;box-shadow:0 4px 9px #0004}.bauble::before{content:'';width:13px;height:8px;background:#dab862;border-radius:3px 3px 0 0}.bauble span{font-size:10px;font-weight:bold;line-height:1.2;padding:4px 6px;margin-top:3px;border-radius:5px;background:#102e36e8;color:#fff}.bauble.shop{left:calc(50% - 36px);top:95px}.bauble.books{left:16%;top:205px}.bauble.fb{right:16%;top:205px}.bauble.ig{left:5%;top:325px}.bauble.wa{right:5%;top:325px}.bauble.channel{left:calc(50% - 36px);top:325px}.lights-control{display:block;margin:0 auto;background:none;color:var(--muted);border:1px solid var(--line);padding:7px 12px;border-radius:20px;font-size:11px}.tree-caption{text-align:center;font-size:11px;color:var(--muted);margin:8px}.passport{border:1px solid var(--line);padding:28px;border-radius:14px;margin-bottom:30px;background:var(--panel)}.passport h2{font:30px Georgia}.passport p{font-size:14px}.passport .small{color:var(--muted);font-size:12px}.passport form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.passport label{display:grid;gap:5px;font-size:12px}.passport input{padding:12px;border:1px solid #ccc;border-radius:5px;width:300px;max-width:100%}.progress-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;margin:18px 0}.progress-cell{border:1px solid #9aa7a0;border-radius:6px;text-align:center;padding:7px 2px;font-size:12px}.progress-cell.collected{background:#d5edd5;color:#16412d}.progress-cell.opened{background:#f6e2b4;color:#5e420d}.progress-cell span{display:block;font-size:9px}.reward-box{padding:16px;background:#fff2cf;color:#173b35;border-radius:8px;margin:15px 0}.access-code{font:18px monospace;overflow-wrap:anywhere}.fidelity-note{font-size:12px;color:#53686c}.admin-page .member-tools{display:grid;gap:15px}.admin-page .progress-grid{grid-template-columns:repeat(12,1fr)}
@media(max-width:850px){.hero{padding-right:44%;min-height:620px}.christmas-tree{width:44%;top:45px}.hero h1{font-size:47px}.bauble{width:60px}.bauble img{width:55px;height:55px}.bauble.shop,.bauble.channel{left:calc(50% - 30px)}}
@media(max-width:620px){.hero{padding-right:0;min-height:0}.hero h1{font-size:52px}.christmas-tree{position:relative;width:100%;max-width:400px;margin:25px auto 0;top:0;height:550px}.bauble{width:70px}.bauble img{width:64px;height:64px}.bauble.shop,.bauble.channel{left:calc(50% - 35px)}.passport{padding:20px}.progress-grid,.admin-page .progress-grid{grid-template-columns:repeat(6,1fr)}.passport input{width:100%}}
@media(prefers-reduced-motion:reduce){.tree-light{animation:none!important}.bauble{transition:none}}
.admin-page label.checkline{display:flex;flex-direction:row;align-items:center;gap:9px}.admin-page label.checkline input{width:auto;flex:0 0 auto}

/* Riepilogo personale: ritiro confermato e non riscosso */
.progress-grid,.admin-page .progress-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.progress-cell{padding:10px 4px;border-radius:10px;min-width:0}
.progress-cell.pending{background:#fff0ee;border-color:#c57b76;color:#8c2925}
.progress-cell.collected{background:#e2f3e7;border-color:#6caa81;color:#175637}
.progress-cell strong{font-size:16px}.progress-cell span{font-size:11px;font-weight:700}.progress-cell small{display:block;font-size:9px;margin-top:5px}
.progress-gift{display:block;width:54px;height:54px;margin:4px auto;overflow:visible}
.gift-box,.gift-lid rect{fill:currentColor}.gift-ribbon{stroke:#f4cf7b;stroke-width:6}.gift-bow{fill:none;stroke:currentColor;stroke-width:4}.gift-spark{display:none;stroke:#ad821d;stroke-width:2}.unwrapped .gift-lid{transform:translate(1px,-9px) rotate(-12deg);transform-origin:32px 24px}.unwrapped .gift-spark{display:block}
#profileDetails{margin:20px 0}#profileDetails summary{cursor:pointer;margin-bottom:15px}#profileForm{padding:10px 0}.member-match{display:block;margin:8px 0;text-align:left;width:100%}.selected-client{background:#e2f3e7;color:#175637;padding:12px;border-radius:8px}.admin-page .pending[role=button]{cursor:pointer}.admin-page .pending[role=button]:focus{outline:3px solid #bd841f;outline-offset:2px}
@media(max-width:620px){.progress-grid,.admin-page .progress-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.progress-cell small{font-size:8px}.progress-cell span{font-size:10px}.progress-gift{width:46px;height:46px}#profileForm label{width:100%}}

#registrationFields{border:0;padding:0;margin:0;min-width:0}#registrationFields:disabled{opacity:.65}#passportAccess details,#passwordDetails{margin-top:22px}#passportAccess summary,#passwordDetails summary{cursor:pointer;font-weight:600}#percorso{scroll-margin-top:24px}#registrationFields .checkline{margin:16px 0}#passportAccess .form-grid{margin-bottom:16px}.top>.button-row{flex-wrap:wrap;justify-content:flex-end}#passportAccess form{margin-top:16px}
