:root{
  color-scheme:light;
  --bg:#fff; --bg2:#fff8f7; --card:#fff; --line:#f0dede; --line2:#eee;
  --ink:#211922; --mut:#7a6f75; --red:#e60023; --red-d:#ad081b; --redsoft:#fff1f2;
  --ok:#0a8a3f; --radius:20px; --max:1120px; --shadow:0 4px 18px rgba(0,0,0,.07);
  --nav-bg:rgba(255,255,255,.92); --soft:#fff0f2;
  --chip-bg:#f3f3f3; --chip-fg:#555; --tint-ok:#eef7f0; --tint-viola:#f4efff; --hover:#f6eff1; --viola:#6b28d9;
  --tint-warn:#fff4e0; --line-warn:#ffd8ad; --fg-warn:#b45309;
  --tint-info:#e9eeff; --line-info:#d4e2ff; --fg-info:#2f5fd0;
  --tint-danger:#fde2e2; --fg-danger:#b91c1c;
  --line-ok:#bfe6cd; --line-danger:#ffd7dc;
  --soft-2:#fff1e0; --soft-3:#e7f0ff; --soft-4:#f1e9ff; --soft-5:#e6f7ee;
  --font:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
}
/* Tema scuro: override dei soli token. "system" (nessuna scelta) segue prefers-color-scheme;
   una scelta esplicita (data-theme) vince in entrambe le direzioni. Tenere i due blocchi allineati. */
:root[data-theme="dark"], .theme-dark-vars{
  color-scheme:dark;
  --bg:#141118; --bg2:#1b1720; --card:#1e1a24; --line:#39313f; --line2:#2a2531;
  --ink:#f4eff3; --mut:#b7adb5; --redsoft:#2b1620;
  --ok:#3ecb76; --shadow:0 6px 22px rgba(0,0,0,.55);
  --nav-bg:rgba(20,17,24,.9); --soft:#2b1620;
  --chip-bg:#2c2733; --chip-fg:#cbc3cc; --tint-ok:#16241c; --tint-viola:#221a2f; --hover:#272130; --viola:#b79bff;
  --tint-warn:#2a1f12; --line-warn:#5a4423; --fg-warn:#f0b968;
  --tint-info:#161d2e; --line-info:#2f3d5c; --fg-info:#8db4ff;
  --tint-danger:#3a1a1e; --fg-danger:#ff9a9a;
  --line-ok:#2c5e3f; --line-danger:#5a2b30;
  --soft-2:#2a1f12; --soft-3:#141d2b; --soft-4:#1f1630; --soft-5:#0f2419;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#141118; --bg2:#1b1720; --card:#1e1a24; --line:#39313f; --line2:#2a2531;
    --ink:#f4eff3; --mut:#b7adb5; --redsoft:#2b1620;
    --ok:#3ecb76; --shadow:0 6px 22px rgba(0,0,0,.55);
    --nav-bg:rgba(20,17,24,.9); --soft:#2b1620;
    --chip-bg:#2c2733; --chip-fg:#cbc3cc; --tint-ok:#16241c; --tint-viola:#221a2f; --hover:#272130; --viola:#b79bff;
    --tint-warn:#2a1f12; --line-warn:#5a4423; --fg-warn:#f0b968;
    --tint-info:#161d2e; --line-info:#2f3d5c; --fg-info:#8db4ff;
    --tint-danger:#3a1a1e; --fg-danger:#ff9a9a;
    --line-ok:#2c5e3f; --line-danger:#5a2b30;
  --soft-2:#2a1f12; --soft-3:#141d2b; --soft-4:#1f1630; --soft-5:#0f2419;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.55}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{line-height:1.12;margin:0}
.grad{color:var(--red)}
.mut{color:var(--mut)}

/* NAV */
.nav{position:sticky;top:0;z-index:20;background:var(--nav-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line2)}
.nav-inner{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px clamp(14px,3vw,32px)}
.brand{display:flex;align-items:center;gap:9px;font-weight:900;font-size:22px;letter-spacing:-.02em;color:var(--red)}
.brand-mark{display:inline-grid;place-items:center;color:var(--red)}
.brand-name{position:relative;display:inline-block}
.brand-beta{position:absolute;right:-2px;bottom:-7px;font-size:9px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--mut);background:var(--redsoft);border:1px solid var(--line-danger);border-radius:5px;padding:0 4px;line-height:1.3}
/* Logo/wordmark: parola in UPPERCASE (solo visivo, il testo resta "megafono.it") + .it piccolo e grigio */
.bn-word{text-transform:uppercase;letter-spacing:.01em}
.bn-tld{font-size:.62em;font-weight:800;color:var(--mut);text-transform:none;letter-spacing:0}
.nav-links{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;font-size:14px;color:var(--mut);font-weight:600}
.nav-links .btn-cart{padding:8px 14px;font-size:14px}
/* le voci non vanno mai spezzate a metà parola: se non entrano, vanno a capo INTERE */
.nav-links>a,.nav-links .nav-drop>summary{white-space:nowrap}
.nav-links a:hover{color:var(--ink)}
.nav-toggle{display:none;background:none;border:0;font-size:26px;line-height:1;color:var(--red);cursor:pointer;padding:4px 6px}
/* menu a tendina (admin) */
.nav-drop{position:relative}
.nav-drop>summary{list-style:none;cursor:pointer;color:var(--mut);font-weight:600;display:inline-flex;align-items:center;gap:5px}
.nav-drop>summary::-webkit-details-marker{display:none}
.nav-drop>summary::after{content:"▾";font-size:11px;color:var(--red);transition:transform .15s}
.nav-drop[open]>summary,.nav-drop>summary:hover{color:var(--ink)}
.nav-drop[open]>summary::after{transform:rotate(180deg)}
.nav-drop-menu{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);min-width:190px;background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:30}
.nav-drop-menu::before{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:11px;height:11px;background:var(--card);border-left:1px solid var(--line2);border-top:1px solid var(--line2)}
.nav-drop-menu a{padding:9px 12px;border-radius:8px;white-space:nowrap;color:var(--mut)}
.nav-drop-menu a:hover{background:var(--soft,#fff0f2);color:var(--red)}
@media(max-width:1080px){
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:100%;left:0;right:0;background:var(--card);border-bottom:1px solid var(--line2);box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 16px;display:none}
  .nav-links.open{display:flex}
  .nav-links a{padding:13px 4px;border-bottom:1px solid var(--line2)}
  .nav-links a.btn{margin-top:12px;text-align:center;justify-content:center;border-bottom:0}
  /* tendine inline nel menu mobile */
  .nav-drop>summary{padding:13px 4px;border-bottom:1px solid var(--line2);justify-content:space-between}
  .nav-drop-menu{position:static;transform:none;border:0;box-shadow:none;border-radius:0;padding:0 0 6px 12px;min-width:0}
  .nav-drop-menu::before{display:none}
  .nav-drop-menu a{padding:11px 4px}
}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:11px 20px;font-weight:800;font-size:15px;cursor:pointer;border:2px solid transparent;transition:.16s}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:var(--red-d)}
.btn-ghost{background:var(--line2);color:var(--ink)}
.btn-ghost:hover{background:var(--line)}
.btn-lg{padding:14px 28px;font-size:16px}

/* FLASH */
.flash-wrap{position:fixed;top:78px;left:50%;transform:translateX(-50%);z-index:1200;width:min(560px,92vw);display:grid;gap:8px;pointer-events:none}
.flash{padding:12px 16px;border-radius:12px;font-weight:600;box-shadow:var(--shadow);pointer-events:auto;cursor:pointer;animation:flashIn .22s ease}
.flash::after{content:"✕";float:right;opacity:.5;font-weight:700;margin-left:12px}
@keyframes flashIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.flash{animation:none}}
.flash-ok{background:var(--tint-ok);color:var(--ok)}
.flash-error{background:var(--redsoft);color:var(--red-d)}

/* HERO */
.hero{padding:clamp(36px,6vw,76px) 0;background:radial-gradient(900px 500px at 85% -20%,var(--redsoft) 0,transparent 60%)}
.hero.acc-2{background:radial-gradient(900px 500px at 85% -20%,var(--soft-2) 0,transparent 60%)}
.hero.acc-3{background:radial-gradient(900px 500px at 85% -20%,var(--soft-3) 0,transparent 60%)}
.hero.acc-4{background:radial-gradient(900px 500px at 85% -20%,var(--soft-4) 0,transparent 60%)}
.hero.acc-5{background:radial-gradient(900px 500px at 85% -20%,var(--soft-5) 0,transparent 60%)}
.hero.hero-compact{padding-top:clamp(20px,3.5vw,40px);padding-bottom:clamp(14px,2.5vw,26px)}
.hero.hero-compact .hero-img{max-width:380px}
.hero.w-content .hero-wrap{max-width:860px}
/* come-funziona: thumbnail illustrate dei mondi + card abbonamenti */
.mondo-thumb{width:100%;height:150px;object-fit:contain;margin-bottom:6px}
.world-thumb{display:block;width:100%;max-width:300px;height:auto;margin:4px 0 14px;filter:drop-shadow(0 12px 26px rgba(0,0,0,.08))}
/* come-funziona: sintesi compatta dei 3 mondi (rimando a /servizi) */
.cf-mondi{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
@media(max-width:760px){.cf-mondi{grid-template-columns:1fr}}
.cf-mondo{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--line2);border-radius:14px;background:var(--card);color:var(--ink);transition:.15s}
.cf-mondo:hover{border-color:var(--red);box-shadow:var(--shadow);transform:translateY(-2px)}
.cf-mondo .cf-ic{width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--redsoft);color:var(--red)}
.cf-mondo.m2 .cf-ic{background:var(--soft-2);color:var(--m2)}
.cf-mondo.m3 .cf-ic{background:var(--soft-3);color:var(--m3)}
.cf-mondo b{font-size:16px}
.cf-mondo .cf-d{color:var(--mut);font-size:14px}
/* lista schede azienda (multi-scheda) */
.sch-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.sch-item{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.sch-item-main{min-width:0;flex:1 1 240px}
.sch-item-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sch-item-act form{margin:0}
/* overlay "Mega sta calcolando" sul Campaign Builder */
.mega-calc{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(20,17,24,.55);backdrop-filter:blur(3px);padding:20px}
.mega-calc[hidden]{display:none}
.mega-calc-box{background:var(--card);border:1px solid var(--line2);border-radius:18px;padding:26px 28px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35);max-width:340px}
.mega-calc-mascot{position:relative;display:inline-block}
.mega-calc-mascot img{width:118px;height:auto;animation:mcbob 1.6s ease-in-out infinite}
.mega-calc-gear{position:absolute;top:-4px;right:-8px;color:var(--red);display:inline-flex;animation:mcspin 2.4s linear infinite}
.mega-calc-txt{margin:12px 0 2px;font-size:15px}
.mega-dots i{animation:mcblink 1.4s infinite}.mega-dots i:nth-child(2){animation-delay:.2s}.mega-dots i:nth-child(3){animation-delay:.4s}
@keyframes mcspin{to{transform:rotate(360deg)}}
@keyframes mcbob{50%{transform:translateY(-8px)}}
@keyframes mcblink{0%,100%{opacity:.25}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.mega-calc-mascot img,.mega-calc-gear{animation:none}}
/* Mega presenta il piano composto (Campaign Builder) */
.plan-mega{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.plan-mega img{width:66px;height:auto;flex:0 0 auto;filter:drop-shadow(0 6px 12px rgba(230,0,35,.16))}
.plan-mega p{margin:0;font-size:14px;line-height:1.45}
@media(max-width:520px){.plan-mega{flex-direction:column;text-align:center}}
.cf-abbo{margin-top:44px;display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.cf-abbo>img{width:280px;max-width:100%;height:auto;flex:0 0 auto}
.cf-abbo-txt{flex:1 1 320px}
@media(max-width:620px){.cf-abbo{flex-direction:column;text-align:center}}
/* nel hero il testo va a sinistra (accanto all'illustrazione), non centrato come le intro di sezione */
.hero-copy{text-align:left}
.hero-copy .h2{text-align:left}
.hero-copy .sub{text-align:left;margin-left:0;margin-right:0;max-width:54ch}
/* hero con variante dark (es. mappa Italia): mostra light di default, dark nel tema scuro */
.hero-img-dark{display:none}
:root[data-theme="dark"] .hero-img-light{display:none}
:root[data-theme="dark"] .hero-img-dark{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hero-img-light{display:none}:root:not([data-theme="light"]) .hero-img-dark{display:block}}
/* mappe Leaflet reali scure nel tema scuro: inverte SOLO i tile OSM, non i marker/controlli */
:root[data-theme="dark"] .leaflet-container{background:#15151a}
:root[data-theme="dark"] .leaflet-tile{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9)}
:root[data-theme="dark"] .leaflet-control-attribution{background:rgba(20,17,24,.8);color:var(--mut)}
:root[data-theme="dark"] .leaflet-control-attribution a{color:var(--fg-info)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .leaflet-container{background:#15151a}
  :root:not([data-theme="light"]) .leaflet-tile{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9)}
  :root:not([data-theme="light"]) .leaflet-control-attribution{background:rgba(20,17,24,.8);color:var(--mut)}
  :root:not([data-theme="light"]) .leaflet-control-attribution a{color:var(--fg-info)}}
.hero-wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(16px,4vw,40px);display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.eyebrow{display:inline-block;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--red);background:var(--redsoft);border:1px solid var(--line-danger);padding:7px 14px;border-radius:999px}
/* nelle pagine hero (titolo centrato) l'eyebrow si centra come titolo e sottotitolo */
.section:has(> h1.h2:not(.left)) > .eyebrow{display:block;width:fit-content;margin:0 auto 6px}
.hero h1{font-size:clamp(38px,6vw,60px);font-weight:900;letter-spacing:-.03em;margin:18px 0}
.lead{font-size:clamp(17px,2.2vw,21px);color:var(--mut);max-width:40ch}
.hero-cta{display:flex;gap:12px;margin:26px 0 30px;flex-wrap:wrap}
.hero-badges{display:flex;gap:30px;flex-wrap:wrap}
.hero-badges div{display:flex;flex-direction:column}
.hero-badges b{font-size:26px;font-weight:900;color:var(--red)}
.hero-badges span{font-size:13px;color:var(--mut);font-weight:600}
.hero-art{display:grid;place-items:center}
.hero-img{width:100%;max-width:460px;height:auto;filter:drop-shadow(0 22px 44px rgba(0,0,0,.10))}
@media(max-width:760px){.hero-wrap{grid-template-columns:1fr}.hero-art{display:none}}
/* mascotte megafono + empty state riutilizzabile */
.mascotte{display:inline-block;height:auto;filter:drop-shadow(0 10px 22px rgba(230,0,35,.14))}
.mascotte-lg{width:min(220px,52vw);margin:0 auto 6px}
.empty{display:grid;place-items:center;text-align:center;gap:6px;padding:clamp(24px,5vw,44px) 16px}
.empty .mascotte{width:min(150px,40vw);margin-bottom:2px}
.empty h3{margin:0;font-size:18px}
.empty p{margin:0;color:var(--mut);max-width:46ch}
.empty .btn{margin-top:12px}

/* TRUST */
.trust{border-block:1px solid var(--line2);background:var(--bg2)}
.trust p{max-width:var(--max);margin:0 auto;padding:16px 24px;text-align:center;color:var(--mut);font-size:14px}

/* SECTIONS */
.section{max-width:var(--max);margin:0 auto;padding:clamp(44px,6vw,76px) clamp(16px,4vw,40px)}
.section.alt{max-width:100%;background:var(--bg2);border-block:1px solid var(--line2)}
.section.alt>*{max-width:var(--max);margin-inline:auto}
.h2{font-size:clamp(26px,4vw,40px);font-weight:900;letter-spacing:-.02em;text-align:center}
.h2.left{text-align:left}
.sub{text-align:center;color:var(--mut);margin:12px auto 0;max-width:58ch;font-size:17px}
.sub-left{text-align:left;margin-left:0;max-width:70ch}

/* STEPS */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px}
.step{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.step .num{display:grid;place-items:center;width:40px;height:40px;border-radius:999px;background:var(--red);color:#fff;font-weight:900;margin-bottom:14px}
.step h3{font-size:19px;margin-bottom:6px}.step p{color:var(--mut);margin:0}
@media(max-width:760px){.steps{grid-template-columns:1fr}}

/* TIERS */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.tier{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);text-align:center;transition:.15s}
.tier:hover{transform:translateY(-3px);border-color:var(--line-danger)}
.tier .tier-ic{font-size:34px;color:var(--red);line-height:1}.tier h3{font-size:20px;margin:8px 0 2px}
.tier .traffic{font-size:13px;color:var(--mut);font-weight:600}
.tier .from{margin:16px 0 2px}.tier .from b{font-size:30px;color:var(--red);font-weight:900}
.tier .unit{font-size:13px;color:var(--mut)}
@media(max-width:760px){.tiers{grid-template-columns:1fr}}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.card{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;transition:.15s}
.card:hover{transform:translateY(-3px);border-color:var(--line-danger)}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.card h3{font-size:19px}
.card-arg{color:var(--mut);font-size:14px;margin:0}
.card-foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--line2);display:flex;align-items:baseline;gap:6px}
.card-foot b{font-size:22px;color:var(--red);font-weight:900}
.card-foot span{font-size:12px;color:var(--mut)}
@media(max-width:820px){.cards{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.cards{grid-template-columns:1fr}}

/* CHIPS / FASCE / STATO */
.chip{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--chip-bg);color:var(--chip-fg);white-space:nowrap}
.chip-nazionale{background:var(--tint-danger);color:var(--red-d)}
.chip-verticale{background:var(--tint-warn);color:var(--fg-warn)}
.chip-locale{background:var(--tint-ok);color:var(--ok)}
.chip-obj{background:var(--tint-viola);color:var(--viola)}
/* ===== Campaign object: intestazione + ciclo di vita ===== */
.camp-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:16px}
.camp-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.camp-nome{font-size:17px}
.camp-report-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--ok);text-decoration:none}
.camp-report-link:hover{text-decoration:underline}
.camp-flow{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0;counter-reset:cf}
.camp-flow li{counter-increment:cf;font-size:12px;font-weight:700;color:var(--chip-fg);padding:4px 10px 4px 8px;border-radius:999px;background:var(--chip-bg);display:flex;align-items:center;gap:6px}
.camp-flow li::before{content:counter(cf);display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#d9dbde;color:#fff;font-size:10px}
.camp-flow li.done{color:var(--ok);background:var(--tint-ok)}
.camp-flow li.done::before{content:"✓";background:#0a8a3f}
.camp-flow li.now{color:var(--viola);background:var(--tint-viola)}
.camp-flow li.now::before{background:#6b28d9}
/* ===== Media Score sulla pagina testata ("perché sceglierla") ===== */
.ms-card{margin-top:20px}
.ms-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:16px}
.ms-factors{display:flex;flex-direction:column;gap:10px}
.ms-row{display:grid;grid-template-columns:130px 1fr 32px;align-items:center;gap:10px;font-size:13px;font-weight:600}
.ms-row .ms-lbl{color:var(--mut)}
.ms-row>b{text-align:right;font-variant-numeric:tabular-nums;color:var(--viola)}
.ms-bar{height:8px;border-radius:999px;background:var(--line2);overflow:hidden}
.ms-bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#8a3ffc,#6b28d9)}
.ms-motivi{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
/* ===== Quality Score / SLA publisher ===== */
.qs-card{margin-top:16px}
.qs-facts{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:6px}
.qs-f{font-size:13px;color:var(--mut)}
.qs-f>b{font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums;margin-right:3px}
.q-badge{font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;white-space:nowrap;font-variant-numeric:tabular-nums}
.q-badge.q-top{background:var(--tint-ok);color:var(--ok)}
.q-badge.q-good{background:var(--tint-info);color:var(--fg-info)}
.q-badge.q-mid{background:var(--tint-warn);color:var(--fg-warn)}
.q-badge.q-low{background:var(--tint-danger);color:var(--fg-danger)}
/* ===== Strategia AI sopra il Builder (proposta, non decisione) ===== */
.ai-strategia{margin-top:14px;padding:16px;border-radius:12px;background:var(--tint-viola);border:1px solid var(--line)}
.ai-strategia p{margin:8px 0;line-height:1.55}
.ai-strategia .ms-head{margin-bottom:6px}
.ai-consiglio{background:var(--card);border-radius:8px;padding:10px 12px;font-weight:600}
/* Brief intelligente (Brand Profile) */
.brief-box{border:1px solid var(--line);background:var(--tint-viola)}
.brief-box textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-family:inherit;font-size:15px;box-sizing:border-box;background:var(--card)}
.brief-filled{background:var(--tint-ok) !important;border-color:var(--ok) !important;transition:background .3s}
/* ===== Abbonamenti: presenza continuativa ===== */
.sub-current-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.sub-credit{text-align:right;line-height:1.1}
.sub-credit>b{font-size:26px;color:var(--viola)}.sub-credit small{display:block}
.sub-meta{display:flex;flex-wrap:wrap;gap:18px;margin:14px 0;font-size:14px;color:var(--mut)}
.sub-benefici{list-style:none;padding:0;margin:10px 0;display:flex;flex-direction:column;gap:6px;font-size:14px}
.sub-benefici li{display:flex;align-items:center;gap:8px}
.sub-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px}
.sub-report{display:flex;flex-wrap:wrap;gap:28px;margin:6px 0 12px}
.sub-stat{line-height:1.1}.sub-stat>b{font-size:30px;font-variant-numeric:tabular-nums}.sub-stat span{display:block;color:var(--mut);font-size:13px}
.sub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.sub-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.sub-grid{grid-template-columns:1fr}}
.sub-plan{display:flex;flex-direction:column}
.sub-toggle{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line2);border-radius:999px;background:var(--bg2)}
.sub-toggle-btn{border:0;background:none;padding:8px 16px;border-radius:999px;font-weight:700;font-size:14px;color:var(--mut);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.sub-toggle-btn.on{background:var(--card);color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.sub-toggle-badge{background:var(--tint-ok);color:var(--ok);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800}
.ric-presets{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:8px 0}
.ric-presets form{margin:0}
.ric-preset{width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line2);background:var(--card);border-radius:12px;padding:10px 8px;cursor:pointer;color:var(--ink);transition:.15s}
.ric-preset:hover{border-color:var(--red);box-shadow:var(--shadow)}
.ric-preset b{font-size:17px}
.ric-hot{border-color:var(--line-ok)}
.ric-bonus{font-size:12px;font-weight:700;color:var(--ok)}
.ric-bonus-off{color:var(--mut);font-weight:400}
.sub-plan.is-current{border:2px solid #6b28d9}
.sub-plan-ic{width:46px;height:46px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--tint-viola);color:var(--viola);margin-bottom:4px}
.sub-plan-ic .ic{width:24px;height:24px}
.sub-price{font-size:30px;font-weight:900;margin:4px 0}.sub-price span{font-size:14px;font-weight:600;color:var(--mut)}
.sub-bonus{display:inline-block;background:var(--tint-viola);color:var(--viola);font-weight:700;font-size:13px;padding:3px 10px;border-radius:999px;margin-bottom:8px}
.sub-desc{color:var(--mut);font-size:14px;margin:6px 0}
.sub-plan form,.sub-plan>.btn{margin-top:auto}
/* ===== Codice colore dei 3 mondi (1 raccontare=rosso · 2 pubblicizzare=arancio · 3 trovare=blu) ===== */
:root{--m1:var(--red);--m2:#ff7a00;--m3:#2f76e6}
.chip-m2{background:var(--tint-warn);color:var(--fg-warn)}
.chip-m3{background:var(--tint-info);color:var(--fg-info)}
.world-2 .eyebrow{color:var(--fg-warn);background:var(--tint-warn);border-color:var(--line-warn)}
.world-2 h1 .ic,.world-2 .h2 .ic{color:var(--m2)}
.world-3 .eyebrow{color:var(--fg-info);background:var(--tint-info);border-color:var(--line-info)}
.world-3 h1 .ic,.world-3 .h2 .ic{color:var(--m3)}
/* accento colore su un intero blocco-mondo (titolo + card) */
.world-1 .h2 .ic{color:var(--red)}
.world-1 .serv{border-top:3px solid var(--red)}.world-1 .serv .ch-ic .ic{color:var(--red)}
.world-2 .serv{border-top:3px solid var(--m2)}.world-2 .serv .ch-ic .ic{color:var(--m2)}
.world-3 .serv{border-top:3px solid var(--m3)}.world-3 .serv .ch-ic .ic{color:var(--m3)}
/* mondo 4: add-on speciali/tecnologici, fuori dai 3 mondi (viola) */
:root{--m4:#8a3ffc}
.chip-m4{background:var(--tint-viola);color:var(--viola)}
.world-4 h1 .ic,.world-4 .h2 .ic{color:var(--m4)}
.world-4 .serv{border-top:3px solid var(--m4)}.world-4 .serv .ch-ic .ic{color:var(--m4)}
.world-1,.world-2,.world-3,.world-4{scroll-margin-top:90px}
.mondo-more{display:inline-block;margin-top:10px;font-size:13px;font-weight:700;color:var(--mut)}
.mondo-more:hover{color:var(--ink)}
/* CTA nel colore del mondo (mondo 1 = rosso di default) */
.world-2 .btn-primary,.serv.m2 .btn-primary{background:var(--m2)}
.world-2 .btn-primary:hover,.serv.m2 .btn-primary:hover{background:#e06e00}
.world-3 .btn-primary,.serv.m3 .btn-primary{background:var(--m3)}
.world-3 .btn-primary:hover,.serv.m3 .btn-primary:hover{background:#255fbf}
.world-4 .btn-primary{background:var(--m4)}.world-4 .btn-primary:hover{background:#7325e0}
/* home: card-link dei 3 mondi */
.diff-card.m1{border-top:4px solid var(--red)}.diff-card.m1 .ch-ic .ic{color:var(--red)}
.diff-card.m2{border-top:4px solid var(--m2)}.diff-card.m2 .ch-ic .ic{color:var(--m2)}.diff-card.m2 .promo-cta{color:var(--m2)}
.diff-card.m3{border-top:4px solid var(--m3)}.diff-card.m3 .ch-ic .ic{color:var(--m3)}.diff-card.m3 .promo-cta{color:var(--m3)}
.fascia{font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;white-space:nowrap}
.f-alta{background:var(--tint-danger);color:var(--red-d)}
.f-media{background:var(--tint-warn);color:var(--fg-warn)}
.f-bassa{background:var(--tint-ok);color:var(--ok)}
.stato{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px}
.stato-attiva{background:var(--tint-ok);color:var(--ok)}.stato-bozza{background:var(--chip-bg);color:var(--chip-fg)}.stato-sospesa{background:var(--redsoft);color:var(--red-d)}

/* FILTERS */
/* Stile base delle select: armonizza con gli input (bordo/raggio/colori). Le regole
   per-contesto piu' specifiche vincono; color-scheme:dark rende la freccia nativa leggibile. */
select{font-family:inherit;font-size:14px;color:var(--ink);background-color:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 11px;cursor:pointer}
select:focus{outline:none;border-color:var(--red)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:26px;background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:14px}
.filters input,.filters select{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:15px;background:var(--card)}
.filters input[type=search]{flex:1;min-width:200px}
.filters input:focus,.filters select:focus{outline:none;border-color:var(--red)}
.count-line{color:var(--mut);margin:18px 0 0;font-weight:600}

/* DETAIL */
.back{display:inline-block;color:var(--red);font-weight:700;margin-bottom:14px}
.detail-grid{display:grid;grid-template-columns:1.5fr .9fr;gap:28px;margin-top:8px}
.detail-meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--mut);margin:14px 0;font-weight:600}
.detail-desc{color:var(--ink);font-size:17px}
.detail-url{color:var(--mut);font-size:14px}
.buy{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);align-self:start;position:sticky;top:80px}
.buy-price{font-size:38px;font-weight:900;color:var(--red)}
.buy-price small{display:block;font-size:13px;color:var(--mut);font-weight:600}
.buy-list{list-style:none;padding:0;margin:16px 0;display:grid;gap:8px;color:var(--ink)}
.buy-note{color:var(--mut);font-size:13px;margin-top:12px}
@media(max-width:820px){.detail-grid{grid-template-columns:1fr}.buy{position:static}}

/* BAND / WAITLIST / FOOTER */
.footer{padding:48px 24px 28px;border-top:1px solid var(--line2);background:var(--bg2);text-align:center}
.f-brand{font-weight:900;font-size:20px;display:inline-flex;gap:8px;align-items:center;color:var(--red)}
.footer p{color:var(--mut);margin:8px 0}
.f-links a{color:var(--red);font-weight:600}
.footer small{color:#a99ea4;font-size:12px}
/* Footer organizzato in colonne, centrato */
.f-top{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:26px}
.f-about{max-width:520px}
.f-about p{font-size:14px;line-height:1.55;margin-top:6px}
.f-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:24px 28px;justify-items:center}
.f-col h4{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink);margin:0 0 10px}
/* --fa = accento della sottolineatura in hover: colore dell'area di destinazione,
   default currentColor (= identico al colore del font) per le voci neutre */
.f-col a{display:block;color:var(--mut);font-weight:500;font-size:14px;padding:4px 0;text-decoration:none;--fa:currentColor}
.f-col a.fa-m1{--fa:var(--red)}
.f-col a.fa-m2{--fa:var(--m2)}
.f-col a.fa-m3{--fa:var(--m3)}
.f-col a.fa-m4{--fa:var(--m4)}
.f-col a:hover{text-decoration:underline;text-decoration-color:var(--fa);text-decoration-thickness:2px;text-underline-offset:4px}
.f-bottom{max-width:920px;margin:28px auto 0;padding-top:18px;border-top:1px solid var(--line2)}
.f-bottom small{display:block;margin:2px 0}.f-bottom a{color:var(--mut);font-weight:600}.f-bottom a:hover{color:var(--red)}
/* Pagine legali */
.legal-body{max-width:760px}
.legal-body h3{font-size:16px;margin:22px 0 6px}
.legal-body p,.legal-body li{line-height:1.62}
.legal-body ul{margin:6px 0 10px 18px}
.legal-body code{background:var(--tint-warn);color:var(--fg-warn);padding:0 4px;border-radius:4px}
@media(max-width:900px){.f-cols{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.f-cols{grid-template-columns:repeat(2,1fr);gap:20px}}

/* CART BUTTON */
.btn-cart{background:var(--card);border:2px solid var(--red);color:var(--red)}
.btn-cart:hover{background:var(--redsoft)}
.cart-badge{background:var(--red);color:#fff;border-radius:999px;font-size:12px;padding:1px 7px;margin-left:2px}

/* CARD split (body link + add button) */
.card-body{display:flex;flex-direction:column;gap:8px;color:inherit}
.card .card-foot{justify-content:space-between}
.card .card-foot form{margin:0}

/* CAMPAGNA (cart) */
.cart-grid{display:grid;grid-template-columns:1.6fr .8fr;gap:24px;margin-top:26px}
.cart-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;align-content:start}
.cart-item{display:flex;align-items:flex-start;gap:12px;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:14px;box-shadow:var(--shadow)}
.ci-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:1;min-width:0}
.ci-main a{color:inherit}
.ci-main .chip{align-self:flex-start}
.ci-price{font-weight:900;color:var(--red);font-size:18px;white-space:nowrap}
.cart-item form{margin:0}
.cart-clear{grid-column:1/-1;justify-self:end;margin-top:4px}
@media(max-width:560px){.cart-list{grid-template-columns:1fr}}
.cart-summary{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);align-self:start;position:sticky;top:80px;display:flex;flex-direction:column;gap:6px}
.cart-summary h3{margin-bottom:8px}
.cs-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}
.cs-row[hidden]{display:none}
.cs-row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:12px;font-size:20px}
.cs-row.total b{color:var(--red);font-weight:900}
.cs-note{color:var(--mut);font-size:13px;margin:6px 0 12px}
.cart-summary .btn{width:100%}
.empty{text-align:center;padding:40px 0;display:grid;gap:16px;place-items:center;color:var(--mut)}

/* CHECKOUT */
.checkout-grid{display:grid;grid-template-columns:1.5fr .9fr;gap:24px;margin-top:20px;align-items:start}
.co-main{display:flex;flex-direction:column;gap:18px}
.co-card{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.co-card h3{margin-bottom:14px}
.co-card label{display:grid;gap:6px;font-weight:600;font-size:14px;color:var(--mut);margin-bottom:12px}
.co-card input,.co-card textarea{border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-family:inherit;font-size:15px;background:var(--card);color:var(--ink)}
.co-card input:focus,.co-card textarea:focus{outline:none;border-color:var(--red)}
/* consenso/checkbox: checkbox inline a inizio testo, il testo scorre come prosa
   (vale sia nelle card acquisto .co-card sia nei form auth .admin-login) */
.co-card label.opt,.admin-login label.opt{display:block;font-weight:600;color:var(--ink);text-align:left;line-height:1.5}
.co-card label.opt input,.admin-login label.opt input{width:17px;height:17px;accent-color:var(--red);margin-right:9px;vertical-align:-3px}
.co-summary{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);position:sticky;top:80px}
.co-testate{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}
.co-testate li{display:flex;justify-content:space-between;gap:10px;font-size:14px;border-bottom:1px solid var(--line2);padding-bottom:8px}
.pay-mock{background:var(--redsoft);border:1px dashed #ffb3bd;border-radius:12px;padding:12px;font-size:13px;color:var(--red-d);margin:14px 0}
@media(max-width:820px){.cart-grid,.checkout-grid{grid-template-columns:1fr}.cart-summary,.co-summary{position:static}}

/* PASSO 1 comunicato */
.step1-card{border:2px solid var(--red);background:var(--redsoft)}
.step1-card label{display:grid;gap:6px;font-weight:600;font-size:14px;color:var(--mut);margin-bottom:12px}
.step1-card input,.step1-card textarea{border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-family:inherit;font-size:15px;background:var(--card)}
.step1-card input:focus,.step1-card textarea:focus{outline:none;border-color:var(--red)}

/* CONFERMA */
.ok-hero{text-align:center;margin-bottom:24px}
.ok-badge{width:64px;height:64px;border-radius:999px;background:var(--tint-ok);color:var(--ok);font-size:34px;display:grid;place-items:center;margin:0 auto 14px;font-weight:900}
.next-steps{margin:0;padding-left:20px;display:grid;gap:8px;color:var(--ink)}

/* STATI ORDINE */
.stato-ord-in_attesa{background:var(--chip-bg);color:var(--chip-fg)}
.stato-ord-pagato{background:var(--tint-ok);color:var(--ok)}
.stato-ord-in_revisione{background:var(--tint-warn);color:var(--fg-warn)}
.stato-ord-pubblicato{background:var(--tint-danger);color:var(--red-d)}
.stato-ord-annullato{background:var(--chip-bg);color:var(--mut)}
.stato-form{display:flex;gap:10px}
.stato-form select{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px;font-family:inherit;background:var(--card)}
/* form in linea (Fase, azioni rapide) — stile coerente coi campi */
.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0}
.inline-form input,.inline-form select{border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-family:inherit;font-size:14px;background:var(--card);color:var(--ink);height:40px}
.inline-form textarea{border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-family:inherit;font-size:14px}
.inline-form input:focus,.inline-form select:focus,.inline-form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(230,0,35,.08)}

/* STATI PER-TESTATA */
.stato-tt-in_attesa_revisione{background:var(--chip-bg);color:var(--chip-fg)}
.stato-tt-in_revisione{background:var(--tint-warn);color:var(--fg-warn)}
.stato-tt-richiede_modifiche{background:var(--tint-danger);color:var(--fg-danger)}
.stato-tt-approvato{background:var(--tint-info);color:var(--fg-info)}
.stato-tt-inviato_publisher{background:#ede9fe;color:var(--viola)}
.stato-tt-pubblicato{background:var(--tint-ok);color:var(--ok)}
.stato-tt-report_pronto{background:#dff5ea;color:var(--ok)}

/* TRACKING */
.track-list{display:flex;flex-direction:column;gap:10px}
.track-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line2);border-radius:12px;background:var(--bg2)}
.track-name{display:flex;flex-direction:column;gap:2px}
.pub-link{color:var(--red);font-size:13px;word-break:break-all}

/* TIMELINE */
.timeline{list-style:none;margin:0;padding:0}
.tl-item{display:flex;gap:12px;padding:0 0 16px 4px;position:relative}
.tl-item:not(:last-child)::before{content:"";position:absolute;left:9px;top:16px;bottom:0;width:2px;background:var(--line)}
.tl-dot{width:16px;height:16px;border-radius:999px;background:var(--red);flex:0 0 auto;margin-top:2px;box-shadow:0 0 0 3px var(--redsoft)}
.tl-cliente .tl-dot{background:#1d4ed8;box-shadow:0 0 0 3px #e6f0ff}
.tl-redazione .tl-dot{background:var(--fg-warn);box-shadow:0 0 0 3px var(--tint-warn)}
.tl-publisher .tl-dot{background:var(--ok);box-shadow:0 0 0 3px var(--tint-ok)}
.tl-item div{display:flex;flex-direction:column;gap:2px}
.tl-item small{font-size:12px}

/* PUBLISHER */
.pub-form{display:flex;gap:10px;flex-wrap:wrap}
.pub-form input{flex:1;min-width:240px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-family:inherit;font-size:15px}
.pub-form input:focus{outline:none;border-color:var(--red)}

/* NOTIFICHE */
.notif-list{display:flex;flex-direction:column;gap:12px;margin-top:22px}
.notif{background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.notif-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.notif-to{font-size:13px}.notif-time{font-size:12px;margin-left:auto}
.notif-body{color:var(--ink);margin:8px 0 0}

/* LAVORAZIONE extra */
.row-actions.wrap{flex-wrap:wrap;gap:8px}
.row-actions form{margin:0}
.cell-note{max-width:280px}
.inline-modifiche summary{cursor:pointer;color:var(--fg-warn);font-weight:700;list-style:none}
.inline-modifiche form{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.inline-modifiche input{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-family:inherit;min-width:160px}

/* CANALI / SERVIZI */
.channels{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.channel{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);text-align:center}
.ch-ic{font-size:32px;margin-bottom:8px}
.channel h3{font-size:19px;margin-bottom:8px}
.channel p{color:var(--mut);margin:0}
.soon{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:var(--tint-warn);color:var(--fg-warn);padding:2px 8px;border-radius:999px;vertical-align:middle}
.tag{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:var(--tint-warn);color:var(--fg-warn);padding:2px 8px;border-radius:999px;vertical-align:middle}
.tag-alt{background:var(--tint-ok);color:var(--ok)}
.tag{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:var(--tint-warn);color:var(--fg-warn);padding:2px 8px;border-radius:999px;vertical-align:middle}
.tag-alt{background:var(--tint-ok);color:var(--ok)}
@media(max-width:760px){.channels{grid-template-columns:1fr}}

.serv-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.serv{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}
.serv h3{font-size:20px}
.serv p{color:var(--mut);margin:0}
.serv-points{margin:4px 0 12px;padding-left:18px;color:var(--ink);display:grid;gap:4px;font-size:14px}
.serv .btn{margin-top:auto;align-self:flex-start}
@media(max-width:820px){.serv-list{grid-template-columns:1fr}}
/* accento colore per i 3 mondi (come-funziona / servizi) */
.serv.mondo{border-top:4px solid var(--line2)}
.serv.mondo .ch-ic{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:0}
.serv.mondo .ch-ic .ic{width:26px;height:26px}
.serv.m1{border-top-color:#e60023}.serv.m1 .ch-ic{background:var(--tint-danger)}.serv.m1 .ch-ic .ic{color:#e60023}
.serv.m2{border-top-color:#ff7a00}.serv.m2 .ch-ic{background:var(--tint-warn)}.serv.m2 .ch-ic .ic{color:#ff7a00}
.serv.m3{border-top-color:#2f76e6}.serv.m3 .ch-ic{background:var(--tint-info)}.serv.m3 .ch-ic .ic{color:#2f76e6}
.serv-bundle{background:var(--redsoft);border:1px solid var(--line-danger);border-radius:var(--radius);padding:24px;margin-top:24px;text-align:center}
.serv-bundle h3{color:var(--red-d)}.serv-bundle p{color:var(--ink);margin:8px 0 0}
.trust-guard{display:flex;gap:18px;align-items:flex-start;background:var(--tint-ok);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);margin-top:22px}
.trust-guard .tg-ic{font-size:34px;flex:0 0 auto}
.trust-guard h3{font-size:20px;margin-bottom:8px;color:var(--ok)}
.trust-guard p{color:var(--ink);margin:0 0 8px}
.serv-addon{display:flex;gap:18px;align-items:flex-start;background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);margin-top:22px}
.serv-addon .ch-ic{font-size:34px;flex:0 0 auto}
.serv-addon-body h3{font-size:20px;margin-bottom:8px}
.serv-addon-body p{color:var(--mut);margin:0 0 8px}
@media(max-width:600px){.serv-addon{flex-direction:column}}

/* DIFFERENZA (framing) */
.diff{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.diff-card{background:var(--card);border:1px solid var(--line2);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
a.diff-card{display:block;color:inherit;text-decoration:none;transition:transform .15s,border-color .15s}
a.diff-card:hover{transform:translateY(-3px);border-color:var(--line-danger)}
a.diff-card .promo-cta{display:inline-block;margin-top:12px}
.diff-card h3{font-size:19px;margin:8px 0 6px}
.diff-card p{color:var(--mut);margin:0}
.diff-claim{text-align:center;font-size:clamp(18px,2.4vw,24px);font-weight:800;margin-top:28px}
@media(max-width:760px){.diff{grid-template-columns:1fr}}

/* 4 canali */
.channels-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:960px){.channels-4{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.channels-4{grid-template-columns:1fr}}

/* ---- Landing partner: identità cromatica per profilo (accento del "mondo") ---- */
.lp{--lp:var(--red);--lp-d:var(--red-d);--lp-soft:var(--redsoft);--lp-border:var(--line-danger)}
.lp.lp-m2{--lp:var(--m2);--lp-d:#b45309;--lp-soft:#fff1e0;--lp-border:var(--line-warn)}
.lp.lp-m3{--lp:var(--m3);--lp-d:#1e5bbf;--lp-soft:#e7f0ff;--lp-border:#cfe0ff}
.lp.lp-m4{--lp:var(--m4);--lp-d:#6b28d9;--lp-soft:#f1e9ff;--lp-border:#e0cfff}
.lp .hero{background:radial-gradient(900px 500px at 85% -20%,var(--lp-soft) 0,transparent 60%)}
.lp .eyebrow{color:var(--lp);background:var(--lp-soft);border-color:var(--lp-border)}
.lp .grad{color:var(--lp)}
.lp .hero-badges b{color:var(--lp)}
.lp .diff-card{border-top:4px solid var(--lp)}
.lp .diff-card .ch-ic .ic,.lp .channel .ch-ic .ic{color:var(--lp)}
.lp .steps .num{background:var(--lp)}
.lp .serv-bundle{background:var(--lp-soft);border-color:var(--lp-border)}
.lp .serv-bundle h3{color:var(--lp-d)}
.lp .btn-primary{background:var(--lp)}
.lp .btn-primary:hover{background:var(--lp-d)}

/* teaser doppio */
.teaser-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;text-align:left}
.teaser-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:20px}
.teaser-card h3{color:#fff;font-size:18px;margin-bottom:6px}
.teaser-card p{color:#e8dfe4;font-size:14px;margin:0 0 12px}
.teaser-card .wl-form{margin-top:0;flex-wrap:nowrap}
.teaser-card input{min-width:0;flex:1}
@media(max-width:640px){.teaser-2{grid-template-columns:1fr}}

/* TALENT TEASER */
.talent-teaser{background:linear-gradient(135deg,#211922,#3a2230);color:#fff;border-radius:24px;padding:44px 28px;text-align:center}
.talent-teaser .eyebrow{background:rgba(255,255,255,.14);border-color:transparent;color:#fff}
.talent-teaser .h2{color:#fff;margin-top:14px}
.talent-teaser .sub{color:#e8dfe4}
.talent-teaser .wl-form{margin-top:22px}
.talent-teaser input{min-width:240px}

/* LEAD FORM / PROSE / FAQ */
.lead-form{display:grid;gap:14px;margin-top:8px}
.lead-form label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--mut)}
.lead-form input,.lead-form textarea,.lead-form select{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-family:inherit;font-size:15px;background:var(--card);color:var(--ink);box-sizing:border-box}
.lead-form textarea{resize:vertical;min-height:120px}
.lead-form input:focus,.lead-form textarea:focus,.lead-form select:focus{outline:none;border-color:var(--red)}
.lead-form .hint{font-weight:400}
.lead-form>button{margin-top:4px}
.contact-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:22px;margin-top:26px}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
.prose{margin-top:22px;color:var(--ink)}
.prose h3{margin:26px 0 8px;font-size:20px}
.prose ul{padding-left:20px;display:grid;gap:6px}
.note-box{background:var(--bg2);border:1px dashed var(--line);border-radius:12px;padding:14px;margin-top:22px;font-size:14px}
.faq{display:grid;gap:10px}
.faq-item{background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:4px 18px;box-shadow:var(--shadow)}
.faq-item summary{cursor:pointer;font-weight:700;padding:14px 0;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"+ ";color:var(--red);font-weight:900}
.faq-item[open] summary::before{content:"− "}
.faq-item p{color:var(--ink);margin:0 0 14px}

/* BARRA DIVULGA (scrivi+divulga) */
.divulga-bar{background:var(--ink);color:#fff;text-align:center;padding:10px 16px;font-size:14px}
.consent-bar{background:var(--tint-warn);border-bottom:1px solid var(--line-warn);color:var(--fg-warn);padding:10px 16px;font-size:14px;display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap}
.consent-bar a{color:var(--fg-warn);font-weight:700;text-decoration:underline}
.consent-bar form{margin:0}
.divulga-bar b{color:#ff9d7a}

/* MAPPA */
.map-box{height:560px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line2);box-shadow:var(--shadow);margin-top:8px;z-index:0}
.map-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:14px;font-size:.9rem;color:var(--muted)}
.cop-key{display:inline-flex;align-items:center;gap:6px}
.cop-dot{width:12px;height:12px;border-radius:50%;display:inline-block;opacity:.75}
.crumbs{font-size:.9rem;color:var(--mut);margin-bottom:10px}
.crumbs a{color:var(--red);font-weight:600}
.map-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:0}
.map-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:12px 4px;border-bottom:1px solid var(--line2)}
.map-list .ml-meta{color:var(--mut);font-size:.9rem}
.map-list .ml-prezzi{margin-left:auto;font-weight:700;white-space:nowrap}
.social-login{margin-top:18px;display:flex;flex-direction:column;align-items:center;gap:12px}
.social-login .g_id_signin{display:flex;justify-content:center;width:100%}
.or-sep{display:flex;align-items:center;gap:12px;width:100%;color:var(--mut);font-size:.85rem}
.or-sep::before,.or-sep::after{content:"";flex:1;height:1px;background:var(--line2)}
.doc-privacy{margin-top:10px;padding:10px 14px;background:var(--tint-ok);border:1px solid var(--line-ok);border-radius:10px;font-size:.85rem;color:var(--ok);line-height:1.4}

/* relazioni giornalista/testate */
.rel-list{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:8px}
.rel-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line2);border-radius:10px;flex-wrap:wrap}
.rel-stato{font-size:.76rem;font-weight:700;padding:2px 8px;border-radius:999px;color:#fff}
.rel-dichiarata{background:#ff7a00}.rel-verificata{background:#1a9e5c}.rel-rifiutata{background:#c33}

/* scouting */
.fascia-badge{display:inline-block;min-width:20px;text-align:center;font-weight:800;font-size:.78rem;padding:2px 7px;border-radius:6px;color:#fff}
.fascia-a{background:#1a9e5c}.fascia-b{background:#3b82f6}.fascia-c{background:#ff7a00}.fascia-d{background:#8a8f98}
.scout-counts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.scout-count{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line2);border-radius:999px;font-size:.88rem;color:var(--mut)}
.scout-count:hover{border-color:var(--red);color:var(--ink)}
.scout-count .dot,.kb-col-head .dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.scout-grid{display:grid;grid-template-columns:1fr 320px;gap:24px;margin-top:20px;align-items:start}
.scout-grid .co-card{margin-bottom:20px;padding:20px 22px}
.scout-grid .co-card>h3{margin:0 0 16px}
.scout-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line2);align-items:center}
.tpl-row{display:flex;gap:8px;flex-wrap:wrap}
.scout-timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.scout-timeline li{display:flex;gap:10px;font-size:.9rem}
.tl-ic{flex:0 0 auto}
.scout-timeline .tl-txt{color:var(--ink)}
.kanban{display:flex;gap:14px;overflow-x:auto;padding:8px 2px 18px}
.kb-col{flex:0 0 240px;background:var(--soft,#fff6f7);border-radius:14px;padding:8px;min-height:120px}
.kb-col-head{display:flex;align-items:center;gap:7px;font-weight:700;font-size:.92rem;padding:6px 8px 10px;border-bottom:2px solid var(--line2);margin-bottom:8px}
.kb-col-head b{margin-left:auto;color:var(--mut)}
.kb-list{display:flex;flex-direction:column;gap:8px;min-height:60px}
.kb-list.kb-over{outline:2px dashed var(--red);outline-offset:2px;border-radius:10px}
.kb-card{display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.kb-card:hover{border-color:var(--red)}
.kb-card.dragging{opacity:.5}
.kb-card .kb-tag{font-size:.8rem}
.kb-card .kb-next{color:var(--red);font-weight:600}
@media(max-width:820px){.scout-grid{grid-template-columns:1fr}}

.svc-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:16px 0 6px;padding:12px 16px;background:var(--soft,#fff0f2);border:1px solid var(--line2);border-radius:12px;font-size:.92rem}
.svc-strip-lead{font-weight:700;color:var(--ink)}
.svc-strip a{font-weight:600;color:var(--red)}
.svc-strip a:hover{text-decoration:underline}

.faq-cat{margin:60px 0 22px;padding-bottom:12px;border-bottom:2px solid var(--line2);color:var(--red);letter-spacing:-.01em}
.faq-cat:first-of-type{margin-top:34px}
.faq{display:flex;flex-direction:column;gap:14px}
@media(max-width:600px){.faq-cat{margin:44px 0 18px}}

/* dialog modale (creazione elementi) */
dialog.modal{border:0;border-radius:18px;padding:0;max-width:540px;width:calc(100% - 40px);max-height:90vh;box-shadow:0 30px 80px rgba(20,10,12,.28);color:var(--ink);overflow:hidden}
dialog.modal[open]{display:flex;flex-direction:column}
dialog.modal::backdrop{background:rgba(20,10,12,.4);backdrop-filter:blur(3px)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:24px 26px 8px}
.modal-head h3{margin:0;font-size:1.25rem;font-weight:800}
.modal-x{background:none;border:0;font-size:24px;line-height:1;color:var(--mut);cursor:pointer;padding:4px 8px;border-radius:10px;margin:-4px -8px 0 0}
.modal-x:hover{background:var(--soft,#fff0f2);color:var(--red)}
.modal-body{padding:10px 26px 8px;overflow:auto;display:flex;flex-direction:column;gap:18px}
.modal-body .form-row{margin:0}
.modal-foot{display:flex;gap:12px;justify-content:flex-end;padding:22px 26px 24px;margin-top:14px}
.field-hint{display:block;color:var(--mut);font-size:.82rem;margin-top:4px;line-height:1.35}
.field-err{display:block;color:var(--red);font-size:.82rem;margin-top:5px;font-weight:600}
.admin-form .is-invalid, .lead-form .is-invalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(230,0,35,.12)}
@media(max-width:600px){
  dialog.modal{width:calc(100% - 22px);max-height:92vh;border-radius:16px}
  .modal-head{padding:20px 18px 6px}
  .modal-body{padding:6px 18px}
  .modal-foot{padding:18px 18px 20px;gap:10px}
  .modal-foot .btn{flex:1;text-align:center;justify-content:center}
}

/* feedback caricamento HTMX */
#catalogo-results{transition:opacity .15s}
#catalogo-results.htmx-request{opacity:.45}
.leaflet-popup-content a{color:var(--red);font-weight:700}

/* PAGINATORE */
.pager{display:flex;gap:14px;align-items:center;justify-content:center;margin-top:22px}

/* PORTAFOGLIO / WALLET */
.wallet-top{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}
.wallet-saldo{display:flex;flex-direction:column;gap:4px;justify-content:center;background:linear-gradient(135deg,var(--card),var(--redsoft));border-color:var(--line-danger)}
.wallet-saldo b{font-size:38px;color:var(--red);font-weight:900;line-height:1}
.wallet-ric{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.wallet-ric input{flex:1;min-width:150px;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-family:inherit;font-size:15px}
.wallet-ric input:focus{outline:none;border-color:var(--red)}
.pay-wallet{background:var(--tint-warn);border:1px solid var(--line-warn);border-radius:12px;padding:12px;font-size:14px;margin:14px 0}
@media(max-width:600px){.wallet-top{grid-template-columns:1fr}}

/* GUADAGNI AFFILIATO */
.earn-card{border:2px solid var(--red);background:linear-gradient(135deg,var(--card),var(--redsoft))}
.earn-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.earn-saldo{text-align:right}
.earn-saldo b{font-size:34px;color:var(--red);font-weight:900;display:block;line-height:1}
.earn-saldo span{font-size:12px;color:var(--mut)}

/* LINK & AFFILIAZIONE */
.aff-card{background:var(--redsoft);border-color:var(--line-danger)}
.aff-link{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}
.aff-link input{flex:1;min-width:260px;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-family:inherit;font-size:15px;background:var(--card)}
.aff-stats{font-size:14px;color:var(--mut)}
.aff-stats b{color:var(--red)}
.link-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:18px;margin-top:20px}
@media(max-width:760px){.link-grid{grid-template-columns:1fr}}

/* CALENDARIO */
.cal-list{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.cal-item{display:flex;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.cal-item.cal-late{border-color:var(--red);background:var(--redsoft)}
.cal-date{min-width:120px;font-size:15px}
.cal-date b{display:block}
.cal-badge{display:inline-block;font-size:11px;font-weight:800;color:var(--fg-danger);background:var(--tint-danger);padding:2px 8px;border-radius:999px;margin-top:4px}
.cal-body{flex:1}

/* PROVA CARTACEA (upload) */
.pub-proof{display:grid;gap:12px;margin-top:8px}
.pub-proof label{display:grid;gap:6px;font-size:14px;color:var(--mut);font-weight:600}
.pub-proof input,.pub-proof textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:15px;background:var(--card)}
.pub-proof input:focus,.pub-proof textarea:focus{outline:none;border-color:var(--red)}

/* RICEVUTA */
.ricevuta{border-top:4px solid var(--red)}
.ric-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ric-head .brand-mark{font-size:22px}
.ric-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line2);margin-top:16px;padding-top:12px;font-size:13px}

/* VERIFY (premium discreto) */
.verify-box{margin-top:20px;border:1px solid var(--line2);border-radius:var(--radius);background:var(--bg2);padding:20px;box-shadow:var(--shadow)}
.verify-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.verify-head h3{font-size:18px}
.verify-locked{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.verify-lock-ic{font-size:30px;opacity:.6}
.verify-locked h3{font-size:18px;margin-bottom:4px}
.verify-locked p{margin:0;font-size:14px;max-width:52ch}
.verify-activate{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.verify-activate input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px;min-width:190px}
.verify-activate input:focus{outline:none;border-color:var(--red)}
.v-esito{font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap}
.v-ok{background:var(--tint-ok);color:var(--ok)}
.v-nofollow{background:var(--tint-warn);color:var(--fg-warn)}
.v-solo_citazione{background:var(--tint-info);color:var(--fg-info)}
.v-mancante,.v-pagina_ko,.v-errore{background:var(--tint-danger);color:var(--fg-danger)}
.v-scaduto{background:var(--tint-info);color:var(--fg-info)}

/* MEZZI (web/cartaceo) */
.mezzi{display:flex;gap:4px}
.mz{font-size:14px}
.mz-chip{background:var(--tint-info);color:var(--fg-info)}
.mezzi-foot{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start}
.mezzi-foot form{margin:0}
.buy-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--bg2)}
.buy-opt-price{display:flex;flex-direction:column}
.buy-opt-price span{font-size:13px;color:var(--mut)}
.buy-opt-price b{font-size:22px;color:var(--red)}
.buy-opt .btn{white-space:nowrap}

/* PANNELLO PREZZI PUBLISHER */
.price-card{margin-bottom:16px}
.price-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.price-grid label{display:grid;gap:5px;font-size:14px;color:var(--mut);font-weight:600}
.price-grid input,.price-grid select{border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-family:inherit;font-size:15px}
.price-grid input:focus,.price-grid select:focus{outline:none;border-color:var(--red)}
.price-toggle{flex-direction:row!important;align-items:center;gap:8px;color:var(--ink)!important}
.price-toggle input{width:17px;height:17px;accent-color:var(--red)}
.form-fieldset{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:4px}
.form-fieldset legend{padding:0 8px;color:var(--mut);font-weight:700;font-size:14px}
.chk{flex-direction:row!important;align-items:center;gap:8px}
.chk input{width:17px;height:17px;accent-color:var(--red)}
@media(max-width:600px){.price-grid{grid-template-columns:1fr}}

/* INTEGRAZIONI */
.integr-grid{display:grid;gap:16px;margin-top:22px}
.integr-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.integr-head h3{margin:0}
.badge{font-size:12px;font-weight:800;padding:4px 12px;border-radius:999px}
.badge-on{background:var(--tint-ok);color:var(--ok)}
.badge-off{background:var(--chip-bg);color:var(--mut)}
.badge-plan{background:var(--chip-bg);color:var(--mut);border:1px dashed var(--line)}
/* Tag tematici testate */
.tag-chips{display:flex;flex-wrap:wrap;gap:8px}
.tag-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:13px;font-weight:700;background:var(--chip-bg);color:var(--chip-fg);border:1px solid var(--line)}
.tag-chip.tag-ai{border-style:dashed;background:var(--tint-viola)}
.tag-chip small{font-weight:600;opacity:.65}
.tag-dot{width:9px;height:9px;border-radius:50%;background:#8a8f98;display:inline-block;flex:0 0 auto}
.tag-x{border:none;background:transparent;cursor:pointer;font-size:14px;line-height:1;padding:0 1px;color:inherit;opacity:.6}
.tag-x:hover{opacity:1}
.tag-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--chip-bg);color:var(--chip-fg);text-decoration:none;border:1px solid var(--line)}
.tag-pill.is-sel{background:var(--ink);color:var(--bg)}
.tag-filter{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
/* Template email */
.email-card .card-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.tpl-vars{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0}
.email-actions{display:flex;gap:8px;align-items:center;margin-top:10px}
.email-sub{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--line2,#eee)}
/* Ticket / help desk */
.ticket-thread{display:flex;flex-direction:column;gap:10px}
.tk-msg{border:1px solid var(--line2,#eee);border-radius:12px;padding:12px 14px;background:var(--card)}
.tk-msg.tk-me{background:var(--chip-bg)}
.tk-msg.tk-int{background:var(--tint-warn);border-color:var(--line-warn);border-style:dashed}
.tk-meta{font-size:.8rem;font-weight:700;margin-bottom:6px}
.tk-body{white-space:pre-wrap;line-height:1.5;color:var(--ink)}
/* Invito notifiche push */
.push-nudge{position:fixed;left:16px;right:16px;bottom:16px;max-width:460px;margin:0 auto;z-index:60;
  background:var(--card);border:1px solid var(--line2,#e6e2df);border-radius:14px;padding:14px 16px;
  box-shadow:0 8px 28px rgba(0,0,0,.16);display:flex;flex-direction:column;gap:10px;font-size:14px}
.push-nudge a{color:var(--red,#e60023)}
.push-nudge-btns{display:flex;gap:8px;justify-content:flex-end}
/* Campanella avvisi + centro notifiche */
.nav-bell{position:relative;text-decoration:none;font-size:18px;padding:2px 6px;line-height:1}
.bell-badge{position:absolute;top:-4px;right:-2px;background:var(--red,#e60023);color:#fff;font-size:11px;font-weight:800;min-width:16px;height:16px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}
.nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;margin-left:6px;background:var(--red);color:#fff;font-size:11px;font-weight:800;border-radius:999px;vertical-align:1px}
.avvisi-layout{display:grid;grid-template-columns:1fr 340px;gap:26px;align-items:start;margin-top:10px}
.avvisi-side{position:sticky;top:88px}
@media(max-width:860px){.avvisi-layout{grid-template-columns:1fr}.avvisi-side{position:static;order:-1}}
.notif-settings{background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.notif-settings .ns-head{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:800;color:var(--ink)}
.notif-settings .ns-head .ic{color:var(--red)}
.ns-sub{color:var(--mut);font-size:14px;line-height:1.5;margin:8px 0 16px}
.ns-actions{display:flex;flex-direction:column;gap:10px}
.ns-btn{width:100%;justify-content:center}
.notif-settings .field-hint{margin-top:12px}
.avvisi-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.avviso{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line2,#eee);border-radius:12px;padding:12px 14px}
.avviso.is-unread{border-color:var(--red);box-shadow:0 0 0 1px var(--red) inset}
.avviso.is-unread .av-ic .ic{color:var(--red)}
.avvisi-empty{background:var(--card);border:1px dashed var(--line);border-radius:12px;padding:22px;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px}
.av-ic{font-size:18px;flex:0 0 auto}
.av-ogg{font-weight:700;color:var(--ink)}
.av-txt{color:var(--mut);font-size:14px;margin:2px 0;white-space:pre-wrap}
.integr-list{margin:0;padding-left:18px;color:var(--ink);display:grid;gap:4px;font-size:14px}
code{background:var(--chip-bg);padding:2px 6px;border-radius:6px;font-size:13px}

/* AI BOX (checkout) */
.ai-box{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 4px}
.ai-box input{flex:1;min-width:130px;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-family:inherit;font-size:14px}
.ai-box input:focus{outline:none;border-color:var(--red)}

/* STRIPE badge checkout */
.pay-real{background:var(--tint-ok);border:1px dashed #9ad4b3;border-radius:12px;padding:12px;font-size:13px;color:var(--ok);margin:14px 0}

/* PUBLISHER DASHBOARD / ADMIN PUBLISHERS */
.pub-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:16px}
.pub-admin-grid{display:grid;grid-template-columns:1.5fr .9fr;gap:24px;margin-top:20px;align-items:start}
.admin-form select[multiple]{border:1px solid var(--line);border-radius:12px;padding:8px;font-family:inherit;background:var(--card)}
@media(max-width:820px){.pub-cards,.pub-admin-grid{grid-template-columns:1fr}}

/* ADMIN */
.admin-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.admin-sub{color:var(--mut);margin:6px 0 0}
.table-wrap{overflow-x:auto;margin-top:22px;border:1px solid var(--line2);border-radius:16px}
.admin-table{width:100%;border-collapse:collapse;font-size:14px;min-width:820px}
/* Lavorazione: colonne calibrate (layout fisso), badge stato e link senza a-capo brutti */
.cols-lav{table-layout:fixed;min-width:940px}
.cols-lav .stato{white-space:nowrap;display:inline-block}
.cols-lav .cell-note{max-width:none}
.cols-lav .pub-link{display:inline-block;max-width:100%;overflow-wrap:anywhere}
.cols-lav td:first-child small{display:inline-block;line-height:1.35}
.admin-table th{text-align:left;padding:12px 14px;background:var(--bg2);color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line2)}
.admin-table td{padding:12px 14px;border-bottom:1px solid var(--line2);vertical-align:top}
.admin-table tr:hover td{background:var(--hover)}
.row-actions{display:flex;gap:12px;align-items:center;white-space:nowrap}
.row-actions a{color:var(--red);font-weight:700}
.row-actions a.btn-primary{color:#fff}         /* il link-bottone pieno resta bianco su rosso */
.row-actions a.btn-ghost{color:var(--ink)}
.row-actions form{margin:0}
.link-danger{background:none;border:none;color:var(--mut);cursor:pointer;font:inherit;font-weight:700;padding:0}
.link-danger:hover{color:var(--red)}
.admin-login,.admin-form{display:grid;gap:16px;margin-top:22px}
.admin-form label,.admin-login label{display:grid;gap:6px;font-weight:600;font-size:14px;color:var(--mut)}
.admin-form input,.admin-form select,.admin-form textarea,.admin-login input{border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-family:inherit;font-size:15px;background:var(--card);color:var(--ink)}
.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.admin-login input:focus{outline:none;border-color:var(--red)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.form-actions{display:flex;gap:12px;align-items:center;margin-top:8px}
.hint{color:var(--mut);font-size:13px}.hint code{background:var(--chip-bg);padding:2px 6px;border-radius:6px}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}

/* ===== Pagina Directory (Presenza & Citazioni) ===== */
.dir-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.dir-step{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:16px 18px}
.dir-step>.ic{color:var(--red);width:26px;height:26px;flex:none}
.dir-step b{display:block;margin-bottom:2px}
.dir-step small{color:var(--mut)}
@media(max-width:760px){.dir-steps{grid-template-columns:1fr}}
.dir-packs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}
.dir-pack{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line2);border-radius:18px;padding:22px 20px;box-shadow:var(--shadow);transition:.15s}
.dir-pack:hover{transform:translateY(-4px);border-color:var(--line-danger)}
.dir-pack-ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--redsoft);margin-bottom:12px}
.dir-pack-ic .ic{width:24px;height:24px;color:var(--red)}
.dir-pack h3{font-size:18px;margin:0 0 4px}
.dir-pack .price{font-size:30px;font-weight:900;color:var(--ink);line-height:1;margin:0}
.dir-pack .price span{font-size:13px;font-weight:600;color:var(--mut)}
.dir-pack .desc{color:var(--mut);font-size:14px;margin:10px 0 14px}
.dir-pack ul{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:8px}
.dir-pack li{display:flex;gap:8px;align-items:flex-start;font-size:14px}
.dir-pack li .ic{color:var(--ok);width:16px;height:16px;flex:none;margin-top:2px}
.dir-pack .btn{margin-top:auto}
.dir-pack.hot{border:2px solid var(--red);background:linear-gradient(180deg,var(--redsoft),var(--card) 130px)}
.dir-pack .ribbon{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--red);color:#fff;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:4px 12px;border-radius:999px;white-space:nowrap}
@media(max-width:960px){.dir-packs{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.dir-packs{grid-template-columns:1fr}}
.dir-how{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px}
.dir-how .card-how{border-radius:16px;padding:22px;border:1px solid}
.dir-how .good{background:var(--tint-ok);border-color:var(--line-ok)}
.dir-how .bad{background:var(--redsoft);border-color:var(--line-danger)}
.dir-how h3{display:flex;align-items:center;gap:8px;font-size:17px;margin:0 0 8px}
.dir-how .good h3 .ic{color:var(--ok)}
.dir-how .bad h3 .ic{color:var(--red)}
.dir-how p{margin:0;color:var(--mut)}
@media(max-width:640px){.dir-how{grid-template-columns:1fr}}

/* Campaign Builder */
.obj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}
.obj-opt{position:relative;display:flex;flex-direction:column;gap:3px;padding:14px;border:1px solid var(--line2);border-radius:12px;cursor:pointer;background:var(--card);transition:.12s}
.obj-opt input{position:absolute;opacity:0;pointer-events:none}
.obj-opt .obj-ic{font-size:22px}
.obj-opt b{font-size:14px}
.obj-opt small{color:var(--mut);font-size:12.5px;line-height:1.4}
.obj-opt:hover{border-color:var(--line-danger)}
.obj-opt:has(input:checked),.obj-opt.sel{border-color:var(--red);background:var(--redsoft)}
.budget-presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.plan-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.plan-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line2);border-radius:12px;cursor:pointer}
.plan-item:has(input:checked){border-color:var(--line-danger);background:var(--card)}
.plan-item input{width:18px;height:18px;accent-color:var(--red);flex:none}
.pi-main{display:flex;flex-direction:column;flex:1;min-width:0}
.pi-main small{color:var(--mut)}
.pi-price{white-space:nowrap;color:var(--red);font-weight:900}
.pi-score{display:flex;flex-direction:column;align-items:center;min-width:46px;line-height:1.1}
.pi-score b{font-size:18px;font-weight:900}
.pi-score small{font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.03em}
.pi-score.s5 b,.pi-score.s4 b{color:var(--ok)}
.pi-score.s3 b{color:var(--fg-warn)}
.pi-score.s2 b,.pi-score.s1 b,.pi-score.s0 b{color:var(--mut)}
/* Builder — controlli form uniformi (select stilizzata, freccia custom) */
.builder-form input:not([type=radio]):not([type=checkbox]),.builder-form select,.builder-form textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-family:inherit;font-size:15px;background:var(--card);color:var(--ink);box-sizing:border-box;margin-top:4px}
.builder-form select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 12px center}
.builder-form input:focus,.builder-form select:focus,.builder-form textarea:focus{outline:none;border-color:var(--red)}
/* allineamento colonne: label a fondo cella, così gli input sono allineati anche se le etichette hanno altezze diverse */
.builder-form .form-row{align-items:stretch}
.builder-form .form-row>label{display:flex;flex-direction:column;gap:0}
.builder-form .form-row>label>.lbl{font-weight:600;font-size:15px;line-height:1.3;margin-bottom:2px}
.builder-form .form-row>label>input,.builder-form .form-row>label>select{margin-top:auto}
/* Obiettivo — icona flat in badge colorato per mondo */
.obj-opt .obj-ic{width:40px;height:40px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--chip-bg);color:var(--chip-fg)}
.obj-opt .obj-ic .ic{width:22px;height:22px}
.obj-ic.w1{background:var(--redsoft);color:var(--m1)}
.obj-ic.w2{background:var(--tint-warn);color:var(--m2)}
.obj-ic.w3{background:var(--tint-info);color:var(--m3)}
/* Budget — input corto + preset di spesa a destra */
.budget-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px}
.budget-row #bud{width:150px;flex:0 0 auto;margin-top:0}
.budget-row .budget-presets{margin-top:0}
/* Proposte — griglia di blocchi quadrati */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:8px}
.plan-tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--line2);border-radius:14px;cursor:pointer;background:var(--card);transition:.12s}
.plan-tile:hover{border-color:var(--line-danger)}
.plan-tile:has(input:checked){border-color:var(--red);background:var(--redsoft)}
.plan-tile input{position:absolute;top:12px;right:12px;width:18px;height:18px;accent-color:var(--red)}
.plan-tile .chip{align-self:flex-start}
.pt-nome{font-size:15px;padding-right:26px;line-height:1.25}
.pt-motivi{color:var(--mut);font-size:12.5px;line-height:1.4;flex:1}
.pt-foot{display:flex;align-items:flex-end;justify-content:space-between;margin-top:6px}
.pt-price{color:var(--red);font-weight:900;font-size:17px}
.pt-ai{display:block;font-size:12px;font-weight:600;margin-top:3px}
.pt-ai.ai-keep{color:var(--ok)}
.pt-ai.ai-drop{color:var(--fg-danger)}
@media(max-width:760px){.obj-grid{grid-template-columns:1fr}}
/* Banner cookie informativo (non bloccante, basso a destra) */
/* Toggle tema nel footer (stile link, non pulsante pieno) */
.theme-toggle{background:none;border:1px solid var(--line);color:inherit;font:inherit;cursor:pointer;padding:2px 10px;border-radius:999px;line-height:1.6}
.theme-toggle:hover{border-color:var(--red);color:var(--red)}
.theme-choice{display:flex;gap:8px;flex-wrap:wrap}
.theme-choice .is-active{background:var(--red);color:#fff;border-color:var(--red)}

/* Freccia "torna su" (desktop + mobile) */
.to-top{position:fixed;right:16px;bottom:16px;z-index:940;width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:var(--card);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.16);align-items:center;justify-content:center;transition:.15s;display:none}
.to-top.show{display:flex}
.to-top:hover{color:var(--red);border-color:var(--red)}
body.has-cookie-banner .to-top{bottom:200px}
@media(max-width:560px){body.has-cookie-banner .to-top{bottom:150px}}

/* Profilo · griglia "Le tue aree" (ruoli on/off, pulsanti uniformi) */
.ruolo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:10px}
.ruolo-card{border:1px solid var(--line2);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--card)}
.ruolo-card.on{border-color:var(--ok);background:var(--tint-ok)}
.ruolo-head{display:flex;align-items:center;gap:7px;font-size:15px}
.ruolo-head .lbl{font-weight:800}
.ruolo-state{margin-left:auto;font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap}
.ruolo-state.on{color:var(--ok);background:var(--tint-ok)}
.ruolo-state.off{color:var(--mut);background:var(--bg2)}
.ruolo-desc{color:var(--mut);font-size:13px;line-height:1.45;margin:0;flex:1}
.ruolo-cta{margin-top:2px}
.ruolo-btn{min-width:140px;justify-content:center}
.ruolo-primario{font-size:11px;color:var(--mut);font-weight:700}

/* Checkout: sezione fattura a scomparsa (ospite) */
.fatt-details{margin-top:10px;border:1px solid var(--line2);border-radius:12px;padding:10px 14px;background:var(--bg2)}
.fatt-details>summary{cursor:pointer;font-weight:700;list-style:none}
.fatt-details>summary::-webkit-details-marker{display:none}
.fatt-details>summary::before{content:"▸ ";color:var(--mut)}
.fatt-details[open]>summary::before{content:"▾ "}

/* mentre il banner cookie è visibile, lascia spazio in fondo così non copre l'ultima card */
body.has-cookie-banner{padding-bottom:160px}
.cookie-banner{position:fixed;right:16px;bottom:16px;z-index:950;max-width:330px;background:var(--card);border:1px solid var(--line2);border-radius:14px;box-shadow:0 8px 30px rgba(0,0,0,.16);padding:16px 18px}
.cookie-banner p{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--ink)}
.cookie-banner a{color:var(--red);font-weight:700}
.cookie-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:560px){.cookie-banner{left:16px;right:16px;max-width:none;bottom:76px}}

/* Impostazioni: form di config a campo singolo affiancati (non stretti a tutta larghezza) */
.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}
.config-grid>form{margin-top:16px}
.config-grid input{width:100%}

/* Fasi di lavorazione affissione (stepper) */
.fasi{display:inline-flex;gap:4px;flex-wrap:wrap}
.fase-step{font-size:11px;padding:3px 8px;border-radius:999px;background:var(--bg2);color:var(--mut);border:1px solid var(--line2)}
.fase-step.done{background:var(--tint-ok);color:var(--ok);border-color:var(--line-ok)}
.fase-step[style*="background:"]{color:#fff;border-color:transparent;font-weight:700}

/* Planning affissioni: timeline occupazione impianti */
.plan{border:1px solid var(--line2);border-radius:12px;overflow:hidden}
.plan-axis,.plan-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line2)}
.plan-row:last-child{border-bottom:0}
.plan-axis{background:var(--bg2)}
.plan-namecol{flex:0 0 190px;padding:8px 12px;border-right:1px solid var(--line2);font-size:13px;display:flex;flex-direction:column;justify-content:center}
.plan-track{position:relative;flex:1;min-height:44px;background:repeating-linear-gradient(90deg,transparent,transparent 0,rgba(0,0,0,.015) 0)}
.plan-months{min-height:26px}
.plan-month{position:absolute;top:6px;font-size:11px;color:var(--mut);transform:translateX(2px);white-space:nowrap}
/* linea verticale del Gantt planning — NON confondere con .plan-grid del Builder (griglia proposte) */
.plan-gridline{position:absolute;top:0;bottom:0;width:1px;background:var(--line2)}
.plan-bar{position:absolute;top:8px;bottom:8px;border-radius:7px;display:flex;align-items:center;padding:0 8px;color:#fff;font-size:11px;font-weight:700;overflow:hidden;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.plan-bar.ok{background:#1a9e5c}
.plan-bar.todo{background:var(--m2)}
.plan-key{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px}
.plan-key.ok{background:#1a9e5c}.plan-key.todo{background:var(--m2)}
@media(max-width:640px){.plan-namecol{flex:0 0 120px}}

/* Griglia card (catalogo affissioni e simili) */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:8px}
/* Form prenotazione affissione dentro la card: si adatta, il pulsante non esce mai */
.aff-book{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:auto;padding-top:12px}
.aff-book label{display:flex;flex-direction:column;gap:3px;flex:1 1 130px;min-width:0;font-size:12px;color:var(--mut)}
.aff-book input{width:100%;min-width:0;height:40px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-family:inherit;font-size:14px}
.aff-book .btn{flex:0 0 auto;height:40px}

/* Mantenimento annuale del link (pagina ordine) */
.mant-box{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;padding:8px 10px;border-radius:10px;background:var(--bg2);font-size:13px}
.mant-box.on{background:var(--tint-ok);border:1px solid var(--line-ok)}
.linklike{border:0;background:none;color:var(--red);font-weight:700;cursor:pointer;font-size:13px;padding:0;text-decoration:underline}

/* Assistente AI (chat pubblica, in basso a sinistra) */
#mgf-chat{position:fixed;left:16px;bottom:16px;z-index:940}
.mgf-chat-launch{display:inline-flex;align-items:flex-end;gap:2px;border:0;background:none;padding:0;cursor:pointer}
.mgf-launch-mascot{width:82px;height:auto;flex:0 0 auto;filter:drop-shadow(0 8px 18px rgba(230,0,35,.24));transition:transform .18s ease}
.mgf-chat-launch:hover .mgf-launch-mascot{transform:translateY(-4px) rotate(-3deg)}
.mgf-launch-tag{background:var(--card);border:1px solid var(--line2);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;color:var(--ink);box-shadow:0 4px 14px rgba(0,0,0,.14);margin-bottom:18px;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.mgf-chat-launch:hover .mgf-launch-mascot{transform:none}}
/* l'attributo hidden deve vincere sul display della classe (apertura/chiusura) */
.mgf-chat-launch[hidden],.mgf-chat-panel[hidden]{display:none}
.mgf-chat-launch .ic{color:#fff}
/* Avatar di Mega: megafono bianco in cerchio rosso (nel launcher: rosso su bianco) */
.mgf-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;overflow:hidden}
.mgf-chat-launch .mgf-avatar{background:#fff;color:var(--red)}
.mgf-avatar svg{width:18px;height:18px}
.mgf-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.mgf-avatar-sm{width:26px;height:26px}.mgf-avatar-sm svg{width:15px;height:15px}
.mgf-avatar-xs{width:24px;height:24px}.mgf-avatar-xs svg{width:14px;height:14px}
.mgf-chat-head .mgf-avatar{box-shadow:0 1px 4px rgba(0,0,0,.15)}
.mgf-row{display:flex;align-items:flex-end;gap:7px;max-width:92%}
.mgf-row .mgf-b{margin:0}
.mgf-chat-panel{width:340px;max-width:calc(100vw - 32px);height:462px;max-height:calc(100vh - 96px);display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line2);border-radius:16px;box-shadow:0 16px 44px rgba(0,0,0,.24);overflow:hidden}
.mgf-chat-head{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--bg2);border-bottom:1px solid var(--line2);font-size:14px}
.mgf-chat-head .ic{color:var(--red)}
.mgf-chat-head button{margin-left:auto;border:0;background:none;font-size:22px;line-height:1;color:var(--mut);cursor:pointer}
.mgf-chat-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--bg2)}
.mgf-b{max-width:86%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.5;white-space:pre-wrap}
.mgf-ai{align-self:flex-start;background:var(--card);border:1px solid var(--line2);border-bottom-left-radius:4px}
.mgf-user{align-self:flex-end;background:var(--red);color:#fff;border-bottom-right-radius:4px}
.mgf-typing{color:var(--mut)}
.mgf-chat-cta{padding:2px 14px 8px}
.mgf-chat-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line2)}
.mgf-chat-form input{flex:1;border:1px solid var(--line);border-radius:999px;padding:9px 14px;font-family:inherit;font-size:14px}
.mgf-chat-note{margin:0;padding:0 14px 10px;font-size:11px;color:var(--mut)}
.mgf-chat-note a{color:var(--red);font-weight:700}
@media(max-width:560px){#mgf-chat{left:10px;bottom:10px}.mgf-chat-panel{height:72vh}}

/* Pannello Preferenze cookie (Consent Mode v2) */
.cookie-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,15,20,.55)}
.cookie-modal[hidden]{display:none}
.cookie-modal-box{position:relative;width:100%;max-width:560px;max-height:90vh;overflow:auto;background:var(--card);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.3);padding:26px 26px 20px}
.cookie-modal-x{position:absolute;top:14px;right:16px;border:0;background:none;font-size:26px;line-height:1;color:var(--mut);cursor:pointer}
.cookie-modal-x:hover{color:var(--ink)}
.cookie-modal-head{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;margin-bottom:8px}
.cookie-modal-head .ic{width:30px;height:30px;color:var(--m1)}
.cookie-modal-head h3{margin:0;font-size:20px}
.cookie-modal .mut{font-size:13.5px;line-height:1.55;text-align:center;margin:0 0 14px}
.cookie-cats{display:flex;flex-direction:column}
.cookie-cat{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 2px;border-top:1px solid var(--line2);cursor:pointer}
.cookie-cat div{display:flex;flex-direction:column;gap:2px}
.cookie-cat b{font-size:15px}
.cookie-cat span:not(.switch){font-size:12.5px;color:var(--mut)}
.switch{position:relative;flex:0 0 auto;width:44px;height:24px}
.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.switch::before{content:"";position:absolute;inset:0;background:#d0d0d8;border-radius:999px;transition:background .15s}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--card);border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.switch:has(input:checked)::before{background:var(--m1)}
.switch:has(input:checked)::after{transform:translateX(20px)}
.switch:has(input:disabled)::before{background:var(--m1);opacity:.5}
.switch:has(input:disabled){cursor:not-allowed}
.cookie-modal-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line2)}
@media(max-width:560px){.cookie-modal-actions{justify-content:stretch}.cookie-modal-actions .btn{flex:1}}
/* Barra "prossima azione dell'agente" (scouting) */
.agente-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 6px;padding:10px 14px;border-radius:12px;background:var(--tint-info);border:1px solid var(--line-info);font-size:14px}
.agente-bar.scaduta{background:var(--redsoft);border-color:var(--line-danger)}
.agente-bar .ic{color:#3b82f6}
.agente-bar.scaduta .ic{color:var(--red)}
/* Panoramica admin — KPI */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:16px}
.kpi{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--line2);border-radius:14px;background:var(--card);text-decoration:none;transition:.12s}
.kpi:hover{border-color:var(--red);transform:translateY(-2px);box-shadow:var(--shadow)}
.kpi-n{font-size:30px;font-weight:900;color:var(--ink);line-height:1}
.kpi-l{font-size:13px;color:var(--mut);font-weight:600;display:flex;align-items:center;gap:6px}
.kpi.kpi-warn .kpi-n{color:var(--red)}
.kpi.kpi-warn{border-color:var(--line-danger);background:var(--redsoft)}
/* Barra auto-login di test (fase alpha) */
.dev-switch{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:900;display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 20px);padding:6px 8px;background:#1a1a1a;color:#fff;border-radius:999px;box-shadow:0 6px 24px rgba(0,0,0,.28);font-size:12.5px}
.dev-switch-tag{padding:0 8px 0 6px;color:#ffd43b;font-weight:700;white-space:nowrap}
.dev-switch a{color:#eee;text-decoration:none;padding:5px 10px;border-radius:999px;white-space:nowrap}
.dev-switch a:hover{background:#333}
.dev-switch a.on{background:var(--red);color:#fff;font-weight:700}
.dev-switch a.dev-switch-out{background:#3a3a3a;margin-left:2px}
@media(max-width:600px){.dev-switch-tag{width:100%;text-align:center;padding-bottom:2px}}
/* Pulsanti filtro (inventario, qualità, audit…) */
.fbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.fbtns{display:flex;flex-wrap:wrap;gap:8px}
.fbtn{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;padding:8px 14px;border-radius:11px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;transition:.12s;white-space:nowrap}
.fbtn:hover{border-color:var(--red);background:var(--hover)}
.fbtn-n{font-size:11.5px;font-weight:800;min-width:20px;text-align:center;padding:1px 6px;border-radius:999px;background:var(--chip-bg);color:var(--mut)}
.fbtn.on{color:#fff;border-color:var(--red);background:var(--red)}
.fbtn.on .fbtn-n{background:rgba(255,255,255,.25);color:#fff}
.fbtn.fw1:hover{border-color:var(--m1);color:var(--m1)}
.fbtn.fw2:hover{border-color:var(--m2);color:var(--m2)}
.fbtn.fw3:hover{border-color:var(--m3);color:var(--m3)}
.fbtn.fw1.on{background:var(--m1);border-color:var(--m1);color:#fff}
.fbtn.fw2.on{background:var(--m2);border-color:var(--m2);color:#fff}
.fbtn.fw3.on{background:var(--m3);border-color:var(--m3);color:#fff}
/* icona lente nei campi di ricerca (tutti gli input[type=search]) */
input[type="search"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239a9aa2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:13px center;padding-left:38px !important;
}
.fsearch{display:inline-flex;gap:6px}
.fsearch input{border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-family:inherit;font-size:14px;background:var(--card);min-width:220px}
/* Report di campagna (pubblico, condivisibile, stampabile) */
.report-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.report-doc{background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:36px 40px;box-shadow:var(--shadow)}
.report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid var(--red);padding-bottom:14px}
.report-brand{font-weight:900;font-size:20px;color:var(--red);display:flex;align-items:center;gap:8px}
.report-meta{text-align:right;font-size:13px;color:var(--mut);line-height:1.5}
.report-title{font-size:28px;font-weight:900;margin:22px 0 10px;line-height:1.15}
.report-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 26px;padding:18px;background:var(--bg2);border-radius:12px}
.report-stat{text-align:center}.report-stat b{display:block;font-size:32px;font-weight:900;color:var(--red);line-height:1}
.report-stat span{font-size:13px;color:var(--mut)}
.report-h2{font-size:17px;margin:24px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line2)}
.report-table{width:100%;border-collapse:collapse;font-size:14px}
.report-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--mut);padding:6px 8px;border-bottom:1px solid var(--line2)}
.report-table td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.report-timeline{list-style:none;padding:0;margin:6px 0}
.report-timeline li{display:flex;gap:10px;padding:6px 0;font-size:14px;align-items:baseline}
.report-timeline .rt-dot{width:8px;height:8px;border-radius:50%;background:var(--red);flex:none;margin-top:5px}
.report-timeline small{display:block}
.report-foot{margin-top:28px;padding-top:16px;border-top:1px solid var(--line2);font-size:12px;color:var(--mut)}
@media print{
  .nav,.footer,.dev-switch,.no-print,#pwa-install,.push-nudge{display:none !important}
  body{background:var(--card)}
  .report-doc{border:none;box-shadow:none;padding:0}
  .section{padding:0}
}
/* Home — sezione Campagna intelligente */
.smart{text-align:center}
.smart-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px auto 20px;text-align:left;max-width:900px}
.smart-step{padding:20px 18px 18px;border:1px solid var(--line2);border-radius:14px;background:var(--card)}
.smart-step .smart-n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;font-weight:800;font-size:15px;margin-bottom:8px}
.smart-step b{display:block;font-size:16px;margin-bottom:3px}
.smart-step small{color:var(--mut);line-height:1.45;display:block}
@media(max-width:760px){.smart-steps{grid-template-columns:1fr}}
/* Home — banda Presenza continuativa (abbonamenti) */
.section.cont{text-align:center;background:var(--tint-viola);border:1px solid var(--line);border-radius:20px;padding-top:36px;padding-bottom:36px;margin-top:8px;margin-bottom:clamp(40px,6vw,72px)}
.section.cont .eyebrow{color:var(--viola);background:var(--tint-viola);border-color:#e0cfff}

/* Nota beta (pagina segnalazioni) */
.beta-note{display:flex;gap:10px;align-items:flex-start;margin:14px 0 2px;padding:12px 16px;border:1px solid var(--line-danger);background:var(--redsoft);border-radius:12px;font-size:14px;color:var(--ink)}
.beta-note .ic{color:var(--red);flex:none;margin-top:2px}

/* Richiamo pacchetti nel catalogo */
.promo-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px;padding:13px 18px;border:1px solid var(--line-danger);background:linear-gradient(90deg,var(--redsoft),var(--card));border-radius:14px;color:var(--ink);font-size:15px}
.promo-bar:hover{border-color:var(--red)}
.promo-bar .ic{color:var(--red);vertical-align:-.16em}
.promo-cta{font-weight:800;color:var(--red);white-space:nowrap}

/* chip lingua testata (mostrato solo se non italiano) */
.chip-lang{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.04em;background:var(--ink);color:var(--bg);border-radius:5px;padding:1px 5px;vertical-align:1px}

/* ===== Icone SVG (set unico 'line', currentColor) ===== */
.ic{width:1.15em;height:1.15em;display:inline-block;vertical-align:-0.16em;flex:none}
.ic-lg{width:1.5em;height:1.5em}
.ic-sm{width:1em;height:1em}
/* icona accanto al titolo di pagina */
h1 .ic,.h2 .ic,h2.h2 .ic{width:.82em;height:.82em;color:var(--red);margin-right:.12em;vertical-align:baseline;position:relative;top:.04em}
/* icona nei sottotitoli card */
h3 .ic{width:1.05em;height:1.05em;color:var(--red);margin-right:.28em;vertical-align:-0.15em}
/* icona nella campanella / voci nav */
.nav-bell .ic{width:21px;height:21px;vertical-align:middle}
.av-ic .ic{width:20px;height:20px}

/* ===== Coerenza layout ===== */
/* Larghezze standard dei contenitori: usa queste classi invece di max-width inline */
.section.w-form{max-width:480px}      /* login, form brevi */
.section.w-narrow{max-width:640px}    /* pagine di preferenze / testo */
.section.w-content{max-width:860px}   /* contenuto e tabelle utente */
.section.w-wide{max-width:var(--max)}  /* dashboard, tabelle ampie — allineate al frame principale */
/* Spazio verticale tra card impilate nella stessa sezione */
.section>.co-card+.co-card{margin-top:18px}
/* Tabella che sta nel suo contenitore: niente scrollbar orizzontale forzata */
.table-wrap.fit{overflow-x:auto}
.table-wrap.fit .admin-table{min-width:0}

/* ===== Preferenze notifiche (interruttori) ===== */
.pref-card{padding:0;overflow:hidden;margin-top:18px}
.pref-head,.pref-row{display:grid;grid-template-columns:1fr 86px 86px;align-items:center;gap:8px;padding:12px 18px}
.pref-head{background:var(--bg2);border-bottom:1px solid var(--line2);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:700}
.pref-head span:not(:first-child){text-align:center}
.pref-row{border-bottom:1px solid var(--line2)}
.pref-row:last-child{border-bottom:0}
.pref-label{font-weight:600;font-size:14px;color:var(--ink)}
.pref-cell{display:flex;align-items:center;justify-content:center}
.pref-sempre{font-size:12px;color:var(--mut);white-space:nowrap}
.switch{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .track{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:background .15s}
.switch .track::before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:var(--card);border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.switch input:checked+.track{background:var(--ok)}
.switch input:checked+.track::before{transform:translateX(20px)}
.switch input:focus-visible+.track{outline:2px solid var(--red);outline-offset:2px}
@media(max-width:520px){.pref-head,.pref-row{grid-template-columns:1fr 60px 60px;padding:12px}}

/* Tabelle → card impilate su mobile (celle etichettate via JS in base.html) */
@media(max-width:600px){
  .admin-table{min-width:0}
  .admin-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:auto}
  .admin-table tr{border:1px solid var(--line2);border-radius:12px;padding:4px 14px;margin-bottom:10px;background:var(--card)}
  .admin-table tr:last-child{margin-bottom:0}
  .admin-table tr:hover td{background:transparent}
  .admin-table td{border:0;border-bottom:1px solid var(--line2);padding:9px 0;display:flex;justify-content:space-between;gap:14px;align-items:baseline;text-align:right}
  .admin-table tr td:last-child{border-bottom:0}
  .admin-table td::before{content:attr(data-label);font-weight:700;color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.03em;flex:none;text-align:left}
  .admin-table td[colspan]{justify-content:center;text-align:center}
  .admin-table td[colspan]::before{content:none}
  .table-wrap,.table-wrap.fit{border:0;overflow:visible;margin-top:14px}
}

/* Accordion gruppi (es. template email admin) */
.email-group>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:10px 0;font-weight:800;border-bottom:1px solid var(--line2)}
.email-group>summary::-webkit-details-marker{display:none}
.email-group>summary::before{content:"▾";color:var(--red);font-size:12px;transition:transform .15s}
.email-group:not([open])>summary::before{transform:rotate(-90deg)}

/* Pagine locali geo (SEO): breadcrumb + card-link zona */
.crumbs{font-size:13px;color:var(--mut);margin-bottom:12px}
.crumbs a{color:var(--mut);text-decoration:none}
.crumbs a:hover{color:var(--red);text-decoration:underline}
.loc-card{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:var(--ink);font-weight:700}
.loc-card:hover{border-color:var(--red)}

/* Pagine locali: comuni vicini + FAQ (accordion) */
.loc-vicini{display:flex;flex-wrap:wrap;gap:8px}
.loc-vicini a.chip{text-decoration:none}
.loc-faq{border-bottom:1px solid var(--line2)}
.loc-faq summary{cursor:pointer;font-weight:700;padding:12px 0;list-style:none;color:var(--ink)}
.loc-faq summary::-webkit-details-marker{display:none}
.loc-faq summary::before{content:'+';color:var(--red);font-weight:900;margin-right:10px}
.loc-faq[open] summary::before{content:'–'}
.loc-faq p{color:var(--mut);margin:0 0 14px;padding-left:22px}
