/* FlickAround demo · stile di base dell'app originale (Inter, blu #1D4ED8, arancio #EA580C) · mobile first */
:root{
  --bg:#FFFFFF; --soft:#F8FAFC; --page:#F8FAFC; --sky:#F0F9FF; --peach:#FFF7ED;
  --line:#E5E5E5; --line2:#EDF0F4;
  --blue:#1D4ED8; --blue2:#1E40AF; --blue-t:rgba(29,78,216,.08);
  --orange:#EA580C; --orange-t:rgba(234,88,12,.1);
  --dark:#0A0A0A; --text:#0A0A0A; --muted:#6B7280; --faint:#9CA3AF;
  --green:#059669; --green-t:#ECFDF5; --red:#DC2626; --red-t:#FEF2F2; --amber:#D97706; --amber-t:#FFFBEB;
  --purple:#7C3AED; --purple-t:#F5F3FF;
  --r:16px; --sh-sm:0 1px 2px rgba(0,0,0,.05); --sh:0 10px 30px rgba(15,23,42,.10);
  --tabbar-h:64px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px))}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.narrow{max-width:720px;margin:0 auto;padding:0 16px}
#view{min-height:70vh;outline:none}

/* ---------- demo bar ---------- */
#demo-bar{background:var(--dark);color:#fff;font-size:12px;text-align:center;padding:6px 12px}
#demo-bar a,#demo-bar button{color:#fff;text-decoration:underline;background:none;border:0;cursor:pointer;padding:0;font-size:12px}

/* ---------- top bar ---------- */
#topbar{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.tb{display:flex;align-items:center;gap:12px;height:58px;max-width:1120px;margin:0 auto;padding:0 16px}
.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:17px;color:var(--dark);letter-spacing:-.01em;flex:none}
.brand b{color:var(--blue);font-weight:800}
.brand .logo{width:30px;height:30px;border-radius:11px;background:var(--blue);display:grid;place-items:center;color:#fff}
.brand .logo svg{width:18px;height:18px}
.tb-nav{display:none;gap:2px;flex:1}
.tb-nav a{color:var(--muted);font-weight:600;font-size:14px;padding:8px 11px;border-radius:9px}
.tb-nav a.on,.tb-nav a:hover{color:var(--blue);background:var(--blue-t)}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.lang button{border:0;background:none;padding:5px 10px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer}
.lang button.on{background:var(--blue);color:#fff}
.iconbtn{position:relative;width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--dark)}
.iconbtn .dot{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;border-radius:9px;background:var(--orange);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}
.avatar-btn{border:0;background:none;padding:0;cursor:pointer}
@media (min-width:960px){.tb-nav{display:flex}}

/* ---------- tab bar ---------- */
#tabbar{position:fixed;left:0;right:0;bottom:0;z-index:45;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabs{display:grid;grid-template-columns:repeat(5,1fr);height:var(--tabbar-h)}
.tabs a{display:grid;justify-items:center;align-content:center;gap:3px;font-size:10.5px;font-weight:600;color:var(--muted)}
.tabs a.on{color:var(--blue)}
.tabs svg{width:22px;height:22px}
@media (min-width:960px){#tabbar{display:none}body{padding-bottom:0}}

/* ---------- icons ---------- */
.ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.ic.fill{fill:currentColor;stroke:none}
.ic.s{width:14px;height:14px;vertical-align:-2px}
.ic.l{width:26px;height:26px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:11px 16px;font-weight:600;font-size:14.5px;border:1px solid transparent;cursor:pointer;text-align:center;line-height:1.2;transition:transform .12s,background .12s;white-space:normal}
.btn:active{transform:scale(.98)}
.btn[disabled],.btn.dis{opacity:.5;cursor:not-allowed;transform:none}
.btn.primary{background:var(--blue);color:#fff;box-shadow:0 8px 20px rgba(29,78,216,.22)}
.btn.primary:hover{background:var(--blue2)}
.btn.orange{background:var(--orange);color:#fff;box-shadow:0 8px 20px rgba(234,88,12,.22)}
.btn.ghost{background:#fff;border-color:var(--line);color:var(--dark)}
.btn.ghost:hover{background:var(--soft)}
.btn.outline{background:#fff;border-color:var(--blue);color:var(--blue)}
.btn.danger{background:var(--red-t);color:var(--red);border-color:rgba(220,38,38,.25)}
.btn.success{background:var(--green-t);color:var(--green);border-color:rgba(5,150,105,.25)}
.btn.sm{padding:8px 12px;font-size:13px;border-radius:10px}
.btn.lg{padding:14px 20px;font-size:16px;border-radius:14px}
.btn.block{width:100%}
.btn.link{background:none;border:0;padding:0;color:var(--blue);font-weight:600}
.btn.wa{background:#25D366;color:#063;}
.btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.btns.three{grid-template-columns:repeat(3,1fr)}
.row-actions{display:flex;flex-wrap:wrap;gap:8px}

/* ---------- layout ---------- */
.page{padding-top:20px;padding-bottom:40px}
.page-head{display:grid;gap:6px;margin-bottom:18px}
.page-head h1{font-size:26px;font-weight:800;line-height:1.15}
.page-head p{color:var(--muted)}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange)}
.sec{margin-top:28px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.sec-head h2{font-size:21px;font-weight:800;line-height:1.2}
.sec-head p{color:var(--muted);font-size:14px;margin-top:3px}
.stack{display:grid;gap:10px}
.stack.lg{gap:16px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cards{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:640px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:960px){.cards.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.page-head h1{font-size:34px}.sec-head h2{font-size:24px}}
.split{display:grid;gap:18px}
@media (min-width:960px){.split{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}.split .side{position:sticky;top:80px}}
.flex{display:flex;align-items:center;gap:10px}
.between{display:flex;align-items:center;justify-content:space-between;gap:10px}
.grow{flex:1;min-width:0}
.wrapflex{flex-wrap:wrap}
.muted{color:var(--muted)}
.faint{color:var(--faint)}
.small{font-size:13px}
.xs{font-size:12px}
.center{text-align:center}
.mt1{margin-top:6px}.mt2{margin-top:12px}.mt3{margin-top:20px}.mt4{margin-top:32px}
.hr{height:1px;background:var(--line);margin:14px 0}
.hide{display:none!important}
.nowrap{white-space:nowrap}
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tnum{font-variant-numeric:tabular-nums}

/* ---------- cards ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;box-shadow:var(--sh-sm)}
.card.pad-lg{padding:18px}
.card.soft{background:var(--soft)}
.card.sky{background:var(--sky);border-color:#DCEBFA}
.card.green{background:var(--green-t);border-color:#C9EAD9}
.card.amber{background:var(--amber-t);border-color:#F4E1B5}
.card.red{background:var(--red-t);border-color:#F5CFCF}
.card.hover{cursor:pointer;transition:box-shadow .15s,transform .15s}
.card.hover:hover{box-shadow:var(--sh);transform:translateY(-2px)}
.card.sel{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.card h3{font-size:16px;font-weight:700}
.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14px}
.kv:last-child{border-bottom:0}
.kv>span:first-child{color:var(--muted);flex:none;max-width:45%}
.kv>span:last-child{font-weight:600;text-align:right}

/* ---------- badges, chips ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.badge.blue{background:var(--blue-t);color:var(--blue)}
.badge.orange{background:var(--orange-t);color:var(--orange)}
.badge.green{background:var(--green-t);color:var(--green)}
.badge.red{background:var(--red-t);color:var(--red)}
.badge.amber{background:var(--amber-t);color:var(--amber)}
.badge.gray{background:#F1F5F9;color:var(--muted)}
.badge.purple{background:var(--purple-t);color:var(--purple)}
.badge.dark{background:var(--dark);color:#fff;letter-spacing:.06em}
.badge .dotc{width:7px;height:7px;border-radius:50%;background:currentColor}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px 0 4px;margin:0 -16px;padding-left:16px;padding-right:16px}
.chips.scroll::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:500;color:#374151;cursor:pointer}
.chip.on{background:var(--blue);border-color:var(--blue);color:#fff}
.chip.tint{background:var(--sky);border-color:#DCEBFA;color:var(--blue);cursor:default}
.chip[disabled]{opacity:.45;cursor:not-allowed}

/* ---------- forms ---------- */
.field{display:grid;gap:5px;font-size:13px;font-weight:600;color:#374151}
.field .hint{font-weight:400;color:var(--muted);font-size:12px}
.input,select.input,textarea.input{width:100%;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font:inherit;font-size:15px;color:var(--text)}
textarea.input{min-height:90px;resize:vertical}
.input:focus{outline:2px solid rgba(29,78,216,.25);border-color:var(--blue)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;cursor:pointer}
.check input{width:19px;height:19px;margin:1px 0 0;accent-color:var(--blue);flex:none}
.opt{display:flex;gap:12px;align-items:center;cursor:pointer}
.opt input{width:19px;height:19px;accent-color:var(--blue);flex:none;margin:0}
.switch{position:relative;width:42px;height:24px;flex:none}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:#D1D5DB;border-radius:99px;cursor:pointer;transition:.15s}
.switch span::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch input:checked+span{background:var(--green)}
.switch input:checked+span::after{left:21px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:3px}
.seg button{border:0;background:none;padding:8px;border-radius:9px;font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer}
.seg button.on{background:#fff;color:var(--blue);box-shadow:var(--sh-sm)}
.range{width:100%;accent-color:var(--blue)}

/* ---------- media ---------- */
.ph{position:relative;border-radius:14px;overflow:hidden;background:#E5E7EB}
.ph img{width:100%;height:100%;object-fit:cover}
.ph.r43{aspect-ratio:4/3}.ph.r34{aspect-ratio:3/4}.ph.r1{aspect-ratio:1}.ph.r169{aspect-ratio:16/9}.ph.r21{aspect-ratio:2/1}
.ph .ov{position:absolute;inset:auto 0 0 0;padding:12px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff}
.ph .tl{position:absolute;left:8px;top:8px}
.ph .tr{position:absolute;right:8px;top:8px}
.ph .bl{position:absolute;left:8px;bottom:8px}
.ph .br{position:absolute;right:8px;bottom:8px}
.glass{background:rgba(10,10,10,.6);color:#fff;border-radius:999px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex;gap:4px;align-items:center;border:0}
.glass.light{background:rgba(255,255,255,.92);color:var(--dark)}
button.glass{cursor:pointer}
.av{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:#E5E7EB;display:grid;place-items:center;color:#fff;font-weight:700;overflow:hidden}
.av img{width:100%;height:100%;object-fit:cover}
.av.sm{width:30px;height:30px;font-size:11px}
.av.lg{width:64px;height:64px}
.av.xl{width:92px;height:92px}
.frame-maestrale{box-shadow:0 0 0 3px #fff,0 0 0 6px #1D4ED8}
.frame-scirocco{box-shadow:0 0 0 3px #fff,0 0 0 6px #EA580C}
.frame-grecale{box-shadow:0 0 0 3px #fff,0 0 0 6px #059669}
.frame-libeccio{box-shadow:0 0 0 3px #fff,0 0 0 6px #7C3AED}
.frame-oro{box-shadow:0 0 0 3px #fff,0 0 0 6px #D97706}
.frame-none{box-shadow:0 0 0 3px #fff}

/* ---------- carousel ---------- */
.car{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;padding:2px 16px 10px;margin:0 -16px;scrollbar-width:none}
.car::-webkit-scrollbar{display:none}
.car>*{scroll-snap-align:start;flex:none}
.car-ctrl{display:flex;gap:6px}
.car-ctrl button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center}
.occ-card{width:230px;border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);color:var(--text);box-shadow:var(--sh-sm)}
.occ-card .ph{border-radius:14px;margin:8px 8px 0}
.occ-card .t{padding:10px 12px 14px}
.occ-card b{display:block;font-size:16px}
.occ-card span{font-size:13px;color:var(--muted)}
@media (min-width:960px){.car{margin:0;padding:2px 0 10px;scroll-padding:0}.chips.scroll{margin:0;padding-left:0;padding-right:0}}

/* ---------- hero ---------- */
.hero{background:linear-gradient(to bottom right,var(--sky),#fff,var(--peach));padding:28px 0 26px;border-bottom:1px solid var(--line2)}
.hero .inner{display:grid;gap:22px;align-items:center}
.hero .pill{display:inline-flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--muted);box-shadow:var(--sh-sm)}
.hero h1{font-size:clamp(32px,8.5vw,56px);line-height:1.08;font-weight:800;letter-spacing:-.035em;margin:14px 0 12px}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--blue),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:var(--muted);font-size:16.5px;max-width:560px}
.hero .imgs{display:grid;grid-template-columns:1.25fr 1fr;gap:10px}
.hero .imgs .ph{height:clamp(170px,42vw,340px)}
.hero .imgs .ph:last-child{margin-top:26px}
.hero-cta{margin-top:18px;display:grid;gap:10px}
@media (min-width:640px){.hero-cta{display:flex}}
@media (min-width:960px){.hero{padding:56px 0}.hero .inner{grid-template-columns:1.1fr 1fr}}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.steps i{height:5px;border-radius:9px;background:#E5E7EB}
.steps i.on{background:var(--blue)}
.num{width:34px;height:34px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}

/* ---------- sticky bottom action ---------- */
.sticky-act{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));z-index:30;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 20px rgba(15,23,42,.06);padding:12px 16px;margin:18px -16px 0}
.fullscreen .sticky-act{bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:960px){.sticky-act{bottom:0;margin:18px 0 0;border:1px solid var(--line);border-radius:16px}}
body.fs #tabbar{display:none}
body.fs{padding-bottom:0}

/* ---------- ribbon / countdown ---------- */
.ribbon{background:linear-gradient(to bottom right,var(--blue),#1E3A8A);color:#fff;border-radius:20px;padding:16px}
.ribbon .muted{color:#C7D2FE}
.ribbon.orange{background:linear-gradient(to bottom right,#EA580C,#C2410C)}
.count{display:flex;gap:8px}
.count div{flex:1;background:rgba(255,255,255,.14);border-radius:12px;padding:8px 0;text-align:center}
.count b{display:block;font-size:24px;line-height:1.1;font-weight:800}
.count span{font-size:11px;opacity:.85}

/* ---------- progress ---------- */
.bar{height:8px;border-radius:99px;background:#E5E7EB;overflow:hidden}
.bar i{display:block;height:100%;background:var(--blue);border-radius:99px;transition:width .3s}
.bar.orange i{background:var(--orange)}
.bar.green i{background:var(--green)}
.bar.amber i{background:var(--amber)}

/* ---------- stamps ---------- */
.stamp{width:78px;height:78px;border-radius:50%;border:2px solid var(--blue);background:#EFF6FF;color:var(--blue);display:grid;place-items:center;text-align:center;position:relative;flex:none}
.stamp::before{content:"";position:absolute;inset:4px;border-radius:50%;border:1px dashed rgba(29,78,216,.5)}
.stamp b{font-size:9.5px;line-height:1.15;text-transform:uppercase;letter-spacing:.04em;position:relative;padding:0 6px}
.stamp.off{border-color:#D1D5DB;background:#F3F4F6;color:var(--faint)}
.stamp.off::before{border-color:#D1D5DB}

/* ---------- profile cover ---------- */
.cover{position:relative;border-radius:20px;overflow:hidden;height:150px;background:#E5E7EB}
.cover img{width:100%;height:100%;object-fit:cover}
.prof-head{position:relative;z-index:3;margin-top:-54px;padding:0 14px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.prof-head .av{position:relative;z-index:3;border:4px solid #fff}
@media (min-width:960px){.cover{height:220px}}

/* ---------- map ---------- */
.map{height:220px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#DBEAFE;position:relative;z-index:0}
.map.tall{height:320px}
.map.short{height:160px}
.leaflet-container{font:inherit}
.pin{width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--blue);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);display:grid;place-items:center}
.pin.orange{background:var(--orange)}
.pin.green{background:var(--green)}
.pin.gray{background:#9CA3AF}
.pin i{transform:rotate(45deg);color:#fff;font-style:normal;font-size:12px;font-weight:800}
.flagpin{color:var(--orange);filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}

/* ---------- feed ---------- */
.post .ph{border-radius:14px}
.likebtn{display:inline-flex;align-items:center;gap:5px;border:0;background:none;cursor:pointer;font-weight:700;color:var(--dark);padding:4px 0}
.likebtn.on{color:var(--orange)}
.likebtn.on .ic{fill:currentColor}

/* ---------- gallery ---------- */
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
@media (min-width:640px){.gal{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:960px){.gal{grid-template-columns:repeat(5,minmax(0,1fr))}}
.gal .ph{aspect-ratio:1;border-radius:10px;cursor:pointer}
.gal .ph.selected{outline:3px solid var(--blue);outline-offset:-3px}
.dropzone{border:2px dashed #CBD5E1;border-radius:16px;background:var(--soft);padding:24px;text-align:center;cursor:pointer}
.dropzone.over{border-color:var(--blue);background:var(--sky)}

/* ---------- chat ---------- */
.chat{display:grid;gap:8px;max-height:360px;overflow:auto;padding:4px}
.msg{max-width:80%;padding:9px 12px;border-radius:14px;font-size:14px;background:var(--soft);border:1px solid var(--line)}
.msg.me{justify-self:end;background:var(--blue);color:#fff;border-color:var(--blue)}
.msg .t{font-size:11px;opacity:.7;margin-top:2px}

/* ---------- calendar ---------- */
.weekcal{display:grid;grid-template-columns:40px repeat(7,minmax(0,1fr));gap:3px;font-size:11px}
.weekcal .h{text-align:center;color:var(--muted);font-weight:700;padding:3px 0}
.weekcal .h.today{color:var(--blue)}
.weekcal .t{color:var(--faint);text-align:right;padding-right:4px;line-height:20px}
.weekcal .c{height:20px;border-radius:5px;background:#F1F5F9}
.weekcal .c.free{background:#D1FAE5}
.weekcal .c.book{background:var(--blue)}
.weekcal .c.req{background:var(--orange)}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.dayline{display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:stretch;font-size:13.5px}
.dayline .tm{color:var(--muted);padding-top:9px;font-weight:600}
.slotchip{display:inline-flex;flex-direction:column;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 10px;min-width:74px;background:#fff;cursor:pointer}
.slotchip.on{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:var(--sky)}
.slotchip b{font-size:18px}
.slotchip small{color:var(--muted);font-size:11.5px}

/* ---------- footer ---------- */
#footer{background:var(--dark);color:rgba(255,255,255,.72);font-size:14px;margin-top:40px}
#footer .wrap{padding-top:32px;padding-bottom:32px;display:grid;gap:22px}
#footer .brand{color:#fff}
#footer .brand b{color:#fff}
#footer a{color:rgba(255,255,255,.78)}
#footer a:hover{color:#fff}
#footer .cols{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
#footer h4{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.45);margin-bottom:8px}
#footer .cols div{display:grid;gap:6px;align-content:start}
#footer .bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:16px;font-size:12.5px;color:rgba(255,255,255,.5);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}
@media (min-width:960px){#footer .wrap{grid-template-columns:1.4fr 2fr}#footer .cols{grid-template-columns:repeat(4,1fr)}}

/* ---------- modal & toast ---------- */
.modal-bg{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.5);display:flex;align-items:flex-end;justify-content:center}
.modal{background:#fff;width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:22px 22px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px))}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.modal-head h3{font-size:18px;font-weight:800}
@media (min-width:640px){.modal-bg{align-items:center}.modal{border-radius:22px;padding:22px}}
#toast-root{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + 14px + env(safe-area-inset-bottom,0px));z-index:90;display:grid;justify-items:center;gap:8px;pointer-events:none;padding:0 16px}
.toast{background:var(--dark);color:#fff;padding:11px 16px;border-radius:12px;font-size:14px;box-shadow:var(--sh);max-width:480px;pointer-events:auto}
.toast.err{background:var(--red)}
.toast.ok{background:var(--green)}
@media (min-width:960px){#toast-root{bottom:22px}}
.lightbox{position:fixed;inset:0;z-index:95;background:rgba(0,0,0,.92);display:grid;place-items:center;padding:16px}
.lightbox img{max-height:84vh;border-radius:10px}
.lightbox .bar2{position:absolute;top:12px;right:12px;display:flex;gap:8px}

/* ---------- empty / faq / legal ---------- */
.empty{text-align:center;color:var(--muted);padding:32px 12px}
.empty .ic{width:36px;height:36px;color:#CBD5E1;margin:0 auto 8px;display:block}
details.faq{border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 14px}
details.faq+details.faq{margin-top:8px}
details.faq summary{cursor:pointer;list-style:none;padding:14px 0;font-weight:600;display:flex;justify-content:space-between;gap:12px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:20px;line-height:1;color:var(--blue)}
details.faq[open] summary::after{content:"–"}
details.faq .a{padding:0 0 14px;color:#374151;font-size:14.5px;line-height:1.6}
.legal h2{font-size:18px;margin:22px 0 6px}
.legal p,.legal li{color:#374151;line-height:1.65;font-size:15px}
.legal ul{padding-left:18px}

/* ---------- admin ---------- */
.adm{display:grid;gap:16px}
.adm-nav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.adm-nav a{flex:none;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--muted);font-weight:600;font-size:13.5px}
.adm-nav a.on{background:var(--dark);color:#fff;border-color:var(--dark)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
table.t{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}
table.t th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);background:var(--soft)}
table.t td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
table.t tr:last-child td{border-bottom:0}
.stat{display:grid;gap:2px}
.stat b{font-size:24px;font-weight:800;letter-spacing:-.02em}
.stat span{font-size:12.5px;color:var(--muted)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- protezione dallo scorrimento orizzontale su mobile ---------- */
#view{overflow-x:clip}
.stack,.page-head{grid-template-columns:minmax(0,1fr)}
.cards{grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:960px){.cards.c3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.split{grid-template-columns:minmax(0,1fr)}
@media (min-width:960px){.split{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.stack>*,.split>*,.cards>*,.grid2>*,.grid3>*,.btns>*,.page-head>*{min-width:0}
.ribbon .badge{background:#fff}
.stamp b{overflow:hidden;text-overflow:ellipsis;max-width:70px}
.adm{grid-template-columns:minmax(0,1fr)}.adm>*,#adm>*{min-width:0}
