/* QuiServe — palette e ritmo presi dal prototipo QUISERVE.IT (ChatGPT), ricostruiti a mano. */
:root{--ink:#15201d;--green:#0b4b3f;--green-2:#0f6a58;--paper:#f4f4ef;--card:#fffefa;--line:#d9ddd8;--signal:#f0643c;--signal-2:#dc4f29;--muted:#68736f;--sidebar:#102d28;--mint:#e3eee8;--mint-2:#dfeee8;--radius:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Geist,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.5}
button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}img{display:block;max-width:100%}
::selection{background:#f0643c33}
h1,h2,h3{margin:0;letter-spacing:-.04em;line-height:1.05}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
[hidden]{display:none!important}

/* banner conferma */
.banner{position:fixed;left:0;right:0;top:0;z-index:60;transform:translateY(-110%);transition:transform .45s cubic-bezier(.2,.9,.25,1.1);pointer-events:none}
.banner.show{transform:none;pointer-events:auto}
.banner-inner{max-width:720px;margin:12px auto 0;background:var(--sidebar);color:#fff;border-radius:14px;padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;box-shadow:0 22px 60px #102d2845}
.banner-check{width:40px;height:40px;border-radius:12px;background:var(--signal);display:grid;place-items:center;color:#fff;animation:pop .5s .2s cubic-bezier(.2,1.4,.4,1) both}
.banner-inner b,.banner-inner span:not(.banner-check){display:block}.banner-inner b{font-size:16px}.banner-inner div>span{font-size:13px;color:#b8d0c9;margin-top:2px}
.banner-close{border:0;background:#ffffff14;color:#cfe0da;width:34px;height:34px;border-radius:9px;display:grid;place-items:center}.banner-close:hover{background:#ffffff26}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 #f0643c55}50%{box-shadow:0 0 0 8px #f0643c00}}

/* strip cliente che torna */
.returning{background:#fff;border-bottom:1px solid var(--line)}
.returning-inner{max-width:1060px;margin:0 auto;padding:9px 24px;display:flex;align-items:center;gap:10px;font-size:13px;color:#40534c;flex-wrap:wrap}
.returning .dot{width:8px;height:8px;border-radius:50%;background:var(--signal);animation:pulse 1.6s infinite}
.returning em{font-style:normal;color:var(--green);font-weight:700}.returning a{margin-left:auto;font-weight:700;color:var(--green)}

/* header */
.header{height:72px;max-width:1060px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:11px;align-items:center;text-decoration:none;font-weight:800;font-size:21px;letter-spacing:-.04em}
.brand-mark{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:var(--green);color:#fff;font-size:17px}
.header-actions{display:flex;align-items:center;gap:20px}
.pro-link{font-size:15px;font-weight:700;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#0b4b3f55}
.area-button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 13px;font-size:14px;font-weight:700;text-decoration:none}.area-button:hover{border-color:var(--green)}

/* hero */
.hero{max-width:1060px;margin:0 auto;padding:36px 24px 26px;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:stretch}
.hero-copy{display:flex;flex-direction:column;min-width:0}
.hero-copy>.cat-dots{margin-top:10px}
.eyebrow{display:inline-flex;gap:9px;align-items:center;color:var(--green-2);font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.eyebrow span{width:7px;height:7px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 5px #f0643c20}
.hero h1{margin:18px 0 16px;font-size:clamp(44px,5.4vw,68px);line-height:.97;letter-spacing:-.05em;font-weight:780}
.hero h1 em{font-style:normal;color:var(--green-2)}
.hero h1 .h1-hot{color:var(--signal);font-size:1.04em}
.hero h1 .h1-cool{color:#2e74b5;font-size:1.04em}
.lead{max-width:540px;margin:0;color:#4a5a54;font-size:18px;line-height:1.55}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.chips button,.cat-picker button{border:1px solid #ccd5d0;background:#fff;border-radius:999px;padding:8px 12px;color:#40534c;font-size:13px;font-weight:650}
.chips button:hover,.cat-picker button:hover{border-color:var(--green);color:var(--green)}
.hero-reel{margin-top:24px;flex:1 1 0;min-height:0;display:flex;align-items:stretch;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;padding:4px 2px 12px;-webkit-overflow-scrolling:touch}
.hero-reel::-webkit-scrollbar{display:none}
.reel-card{flex:0 0 calc(50% - 6px);scroll-snap-align:start;position:relative;aspect-ratio:auto;min-height:260px;height:auto;border:0;padding:0;border-radius:16px;overflow:hidden;background:#dfe6e2;box-shadow:0 18px 44px #18392f18;text-align:left;cursor:pointer;transition:transform .2s}
.reel-card:active{transform:scale(.98)}
.reel-card img{width:100%;height:100%;object-fit:cover;object-position:center 15%;display:block}
.glass-cap{position:absolute;left:10px;right:10px;bottom:10px;padding:10px 12px;border-radius:12px;display:flex;flex-direction:column;gap:2px;color:#fff;
  background:linear-gradient(90deg,rgba(16,45,40,.84) 0%,rgba(16,45,40,.52) 14%,rgba(16,45,40,.16) 32%,rgba(16,45,40,.04) 50%,rgba(16,45,40,.16) 68%,rgba(16,45,40,.52) 86%,rgba(16,45,40,.84) 100%);
  -webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3);
  border:1px solid rgba(255,255,255,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(0,0,0,.15),0 8px 24px rgba(16,45,40,.25)}
.glass-cap b{font-size:16px;letter-spacing:-.02em;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.glass-cap small{font-size:12px;color:rgba(255,255,255,.9);text-shadow:0 1px 3px rgba(0,0,0,.5)}
.reel-dots{display:flex;gap:6px;justify-content:center;margin-top:2px}
.reel-dots i{width:6px;height:6px;border-radius:50%;background:#c8d3cd;transition:.25s}
.reel-dots i.on{width:18px;border-radius:3px;background:var(--green-2)}

/* card / form */
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 24px 70px #18392f12;animation:rise .5s ease both}
.form-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.form-heading>span{width:38px;height:38px;border-radius:11px;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:850;font-size:18px;flex:none}
.form-heading small{display:block;font-size:11.5px;color:#7f8b86;text-transform:uppercase;letter-spacing:.09em}
.form-heading h2{font-size:31px;letter-spacing:-.04em;margin:0}
.request-form label{display:block;font-size:16px;font-weight:750;margin:0 0 7px}.request-form label small{font-weight:500;color:var(--muted)}
.request-form textarea,.request-form input,.request-form select,.pro-login input,.pro-form input,.pro-form textarea,.pro-form select{width:100%;border:1px solid #ccd3ce;border-radius:10px;background:#fff;padding:13px 14px;outline:none;font-size:16px}
.request-form textarea{min-height:92px;resize:vertical;line-height:1.5}
.request-form textarea:focus,.request-form input:focus,.request-form select:focus,.pro-login input:focus,.pro-form input:focus,.pro-form textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 4px #0f6a5815}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.cat-detected{margin-top:9px;font-size:13px;color:#56645f;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cat-detected b{color:var(--green);background:var(--mint);border-radius:999px;padding:3px 9px;font-size:12px}
.cat-detected button{border:0;background:none;color:var(--green-2);text-decoration:underline;padding:0;font-size:12px}
.cat-picker{margin-top:9px;display:flex;gap:6px;flex-wrap:wrap}.cat-picker button{font-size:12px;padding:6px 10px}.cat-picker button.on{background:var(--green);color:#fff;border-color:var(--green)}
.primary-cta{margin-top:16px;width:100%;border:0;border-radius:10px;background:var(--signal);color:#fff;padding:15px 18px;font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 10px 24px #f0643c30;transition:transform .15s,background .15s}
.primary-cta:hover{background:var(--signal-2);transform:translateY(-1px)}.primary-cta:disabled{opacity:.6;transform:none;cursor:wait}
.form-note{margin:12px 0 0;text-align:center;color:#5f6d67;font-size:12px;line-height:1.45}.form-note svg{color:var(--green-2);vertical-align:-2px}
.form-error{margin:12px 0 -4px;color:#b53c21;font-size:13px;font-weight:650}
.assurance{margin:12px 0 0;padding:4px 16px;list-style:none;background:var(--mint);border:1px solid #d1dfd8;border-radius:12px;display:grid}
.assurance li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid #c8ddd4}
.assurance li:last-child{border-bottom:0}
.assurance i{width:22px;height:22px;border-radius:7px;background:var(--green);color:#fff;display:grid;place-items:center;margin-top:1px}
.assurance b,.assurance small{display:block}
.assurance b{font-size:14px;color:var(--ink);line-height:1.3}
.assurance small{font-size:12px;color:#56645f;line-height:1.4;margin-top:2px}

/* status card */
.status-card{padding:24px}
.status-top{display:flex;gap:14px;align-items:center}
.success-icon{width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--mint-2);color:var(--green);animation:pop .5s cubic-bezier(.2,1.4,.4,1) both}
.kicker{margin:0;color:var(--green-2);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.status-card h2{font-size:26px;margin-top:3px}
.status-lead{margin:14px 0 16px;color:#56645f;font-size:15px}
.status-box{border:1px solid var(--line);border-radius:14px;background:#f9faf7;padding:16px}
.status-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#6d7a75;margin-bottom:12px}
.status-head span{display:inline-flex;align-items:center;gap:7px}.status-head i{width:7px;height:7px;border-radius:50%;background:#64d49e;box-shadow:0 0 0 4px #64d49e22}
.status-head b{font-size:15px;color:var(--ink);letter-spacing:.02em;font-family:ui-monospace,Menlo,Consolas,monospace}
.status-steps{list-style:none;margin:0;padding:0 0 0 6px;border-left:2px solid #d7ddd8;display:grid;gap:14px}
.status-steps li{position:relative;padding-left:18px;display:flex;color:#98a19e}
.status-steps li i{position:absolute;left:-13px;top:4px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #cfd6d1}
.status-steps li b,.status-steps li small{display:block}.status-steps li b{font-size:14px;color:#8a9490}.status-steps li small{font-size:12px;line-height:1.4}
.status-steps li.done b,.status-steps li.active b{color:var(--ink)}
.status-steps li.done i{background:var(--green-2);border-color:var(--green-2)}
.status-steps li.active i{background:var(--signal);border-color:var(--signal);animation:pulse 1.6s infinite}
.status-steps li.active small{color:#56645f}
.status-relief{margin:14px 0 0;font-size:13px;color:#56645f}
.status-summary{margin-top:14px;font-size:13px;color:#56645f;display:grid;gap:4px}.status-summary b{color:var(--ink)}
.status-actions{display:grid;gap:8px;margin-top:16px}
.quiet-button{border:1px solid var(--line);background:#fff;color:var(--green);border-radius:9px;padding:11px 14px;font-weight:700;font-size:14px}.quiet-button:hover{border-color:var(--green)}

/* coverage / sections */
.coverage{background:#fff;border:1px solid var(--line);border-radius:14px;max-width:1012px;width:calc(100% - 48px);margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px;overflow:hidden}
.coverage>div{display:flex;align-items:center;gap:14px}.coverage b{font-size:14px}.coverage p{margin:0;color:var(--muted);font-size:12px;text-align:right}
.coverage-live{display:inline-flex;align-items:center;gap:7px;background:#e4f0ea;border:1px solid #d6e5de;color:var(--green);border-radius:999px;padding:0 10px;height:24px;font-size:11px;font-weight:700;white-space:nowrap;flex:none}
.coverage-live i{width:6px;height:6px;border-radius:50%;background:#68d59f;box-shadow:0 0 0 4px #68d59f20}
.process,.catalog,.faq{max-width:1060px;margin:0 auto;padding:16px 24px}
.section-heading{text-align:center;margin-bottom:26px}
.section-heading>span{display:block;color:var(--green-2);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.11em;margin-bottom:10px}
.section-heading h2{font-size:clamp(30px,3.8vw,44px)}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.process-grid article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}
.process-grid article{display:grid;grid-template-columns:32px 1fr;column-gap:12px;align-items:baseline}
.process-grid i{color:var(--signal);font-style:normal;font-weight:800;font-size:13px;grid-row:1}
.process-grid b{display:block;font-size:16px;grid-column:2}.process-grid p{color:var(--muted);font-size:13px;line-height:1.55;margin:6px 0 0;grid-column:1/3}
.catalog{padding-top:6px}
.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.catalog-grid button{border:1px solid var(--line);border-radius:14px;padding:0;background:#fff;text-align:left;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,border-color .15s}
.catalog-grid button:hover{border-color:var(--green);transform:translateY(-2px)}
.catalog-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 18%}
.catalog-grid span{padding:13px 14px 15px;display:block}.catalog-grid b{display:block;font-size:15px}.catalog-grid small{display:block;color:#7e8985;font-size:12px;margin-top:3px}
.catalog-note{text-align:center;color:var(--muted);font-size:13px;margin:18px 0 0}.catalog-note a{color:var(--green);font-weight:700}
.pro-banner{max-width:1012px;margin:24px auto;background:var(--mint);border:1px solid #d1dfd8;border-radius:16px;overflow:hidden;display:grid;grid-template-columns:.9fr 1.1fr}
.pro-banner-media img{width:100%;height:100%;object-fit:cover;object-position:center 20%;min-height:280px}
.pro-banner-copy{padding:36px}.pro-banner-copy>span{color:var(--green-2);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.pro-banner-copy h2{font-size:34px;margin:11px 0}.pro-banner-copy p{color:#5d6d67;font-size:14px;line-height:1.6;margin:0 0 20px}
.pro-cta{display:inline-flex;align-items:center;gap:14px;background:var(--green);color:#fff;border-radius:10px;padding:14px 17px;font-weight:800;text-decoration:none}.pro-cta:hover{background:var(--green-2)}
.faq{padding-top:10px}
.faq-list{max-width:760px;margin:0 auto;display:grid;gap:8px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 18px}
.faq summary{cursor:pointer;padding:15px 0;font-weight:700;font-size:15px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::after{content:"+";color:var(--green-2);font-size:20px;font-weight:400;flex:none}.faq details[open] summary::after{content:"–"}
.faq p{margin:0 0 16px;color:#56645f;font-size:14px;line-height:1.6}
.footer{max-width:1012px;margin:0 auto;padding:24px;display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}
.footer b{color:var(--ink);font-size:17px}.footer p{margin:5px 0}

/* proof: numeri, mappa, feed */
.proof{max-width:1060px;margin:0 auto;padding:28px 24px 10px}
.proof-numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}
.pn{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;grid-template-columns:44px 1fr;column-gap:12px;row-gap:8px;align-items:center;overflow:hidden;animation:rise .5s ease both}
.pn:nth-child(2){animation-delay:.06s}.pn:nth-child(3){animation-delay:.12s}.pn:nth-child(4){animation-delay:.18s}
.pn i{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center}
.pn-green i{background:#dff0e8;color:#0f6a58}.pn-blue i{background:#e2ecf4;color:#326783}.pn-amber i{background:#fff0ca;color:#b07a12}.pn-orange i{background:#fee5dd;color:#d94c26}
.pn strong{display:block;font-size:30px;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums;grid-column:2}
.pn-green strong{color:#0f6a58}.pn-blue strong{color:#326783}.pn-amber strong{color:#b07a12}.pn-orange strong{color:#d94c26}
.pn span{display:block;font-size:13.5px;color:#4a5a54;line-height:1.35;grid-column:1/3;margin:0}.pn span b{color:var(--ink)}
.pn-live{position:absolute;right:10px;top:10px;font-style:normal;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#d94c26;display:inline-flex;align-items:center;gap:5px}
.pn-live b{width:6px;height:6px;border-radius:50%;background:#d94c26;animation:pulse 1.4s infinite}
.pn.bump strong{animation:bump .5s ease}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.12)}100%{transform:scale(1)}}
.proof-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);gap:12px;align-items:stretch}
.map-card,.feed-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0;max-width:100%}
.map-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end}
.map-head h2{font-size:22px;margin-top:4px}.map-head p{margin:0;font-size:12px;color:var(--muted);max-width:220px;text-align:right}
.map{flex:none;height:420px;border-radius:12px;overflow:hidden;background:#e5ebe7;z-index:0}
.leaflet-container{font-family:inherit}
.map-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:#56645f}.map-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.zone-list{display:flex;gap:6px;flex-wrap:wrap}.zone-list span{font-size:11px;background:#f3f5f2;border:1px solid var(--line);border-radius:999px;padding:4px 9px;color:#56645f}.zone-list b{color:var(--ink)}
.recent-feed{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.recent-feed li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf0ec}
.recent-feed li:last-child{border-bottom:0}
.rf-cat{font-size:10px;font-weight:800;color:var(--green);background:#e7f2ed;padding:5px 7px;border-radius:6px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.rf-cat i{width:6px;height:6px;border-radius:50%;background:#0f6a58}.rf-cat.elettricita i{background:#e4a837}.rf-cat.climatizzazione i{background:#5d8fc0}.rf-cat.refrigerazione i{background:#6b7fd6}.rf-cat.caldaie i{background:#d9673a}.rf-cat.fotovoltaico i{background:#c9a227}.rf-cat.altro i{background:#8a948f}
.rf-main{font-size:13px;min-width:0}.rf-main b{font-weight:700}.rf-main small{display:block;color:var(--muted);font-size:11px;line-height:1.35;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rf-side{text-align:right;font-size:10px;color:#8b9591;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.rf-side em{color:#e4a837;display:flex}
.rf-skel{height:38px;background:linear-gradient(90deg,#f3f5f2,#e9ede9,#f3f5f2);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px}
@keyframes sk{from{background-position:200% 0}to{background-position:-200% 0}}
.cat-bars-wrap{border-top:1px solid #edf0ec;padding-top:12px}
.cat-bars{display:grid;gap:7px;margin-top:8px}
.cat-bars>div{display:grid;grid-template-columns:110px 1fr 44px;gap:8px;align-items:center;font-size:12px;color:#56645f}
.cat-bars>div>div{height:7px;background:#ebeeeb;border-radius:99px;overflow:hidden}.cat-bars i{display:block;height:100%;background:var(--green-2);border-radius:99px}
.cat-bars b{text-align:right;color:var(--ink)}
@media(max-width:980px){.proof-numbers{grid-template-columns:1fr 1fr}.proof-grid{grid-template-columns:1fr}.map{height:320px}}
@media(max-width:680px){.proof{padding:30px 16px 6px}.proof-numbers{grid-template-columns:1fr 1fr;gap:8px}.pn{padding:12px;grid-template-columns:36px 1fr;column-gap:10px;row-gap:6px}.pn i{width:36px;height:36px;border-radius:10px}.pn i svg{width:18px;height:18px}.pn strong{font-size:32px}.pn span{font-size:13px}.map-head{flex-direction:column;align-items:flex-start}.map-head p{text-align:left;max-width:none}.map{height:280px}}

/* ---------- PRO PANEL ---------- */
.pro-body{background:#eff1ed;min-height:100vh}
.pro-shell{max-width:1180px;margin:0 auto;padding:0 18px 90px}
.pro-top{height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}
.pro-top .brand{font-size:19px}.pro-top .brand small{color:var(--signal);font-size:9px;letter-spacing:.14em;margin-left:-4px;align-self:flex-start;margin-top:4px}
.me{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#d9e9e3;color:var(--green);font-size:11px;font-weight:850}
.me b,.me small{display:block}.me b{font-size:13px}.me small{font-size:11px;color:#83908b}
.linkish{border:0;background:none;color:var(--green);font-weight:700;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.pro-login{max-width:420px;margin:60px auto;padding:26px}
.pro-login h1{font-size:26px;margin:8px 0 6px}.pro-login p{color:var(--muted);font-size:14px;margin:0 0 16px}
.pro-login label{display:block;font-size:13px;font-weight:750;margin:0 0 7px}
.pro-login .primary-cta{margin-top:12px}
.pro-login .split{margin:22px 0 14px;text-align:center;font-size:12px;color:#8a948f;position:relative}.pro-login .split::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--line);z-index:0}.pro-login .split span{background:var(--card);padding:0 10px;position:relative}
.pro-form label{display:block;font-size:13px;font-weight:750;margin:10px 0 6px}
.pro-form .skills{display:flex;gap:6px;flex-wrap:wrap}.pro-form .skills button{border:1px solid var(--line);background:#fafbf8;border-radius:999px;padding:6px 10px;font-size:12px}.pro-form .skills button.on{background:var(--green);color:#fff;border-color:var(--green)}
.pro-form .quiet-button{margin-top:12px;width:100%}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 14px}
.metric{background:#fbfcf9;border:1px solid #dde2dd;border-radius:14px;padding:14px 16px}
.metric p{margin:0 0 6px;font-size:12px;color:#77827e}.metric strong{font-size:26px;letter-spacing:-.04em}.metric small{display:block;font-size:11px;color:#7c8984;margin-top:3px}
.metric.orange strong{color:var(--signal-2)}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filters button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:650;color:#40534c}
.filters button.on{background:var(--green);color:#fff;border-color:var(--green)}
.filters .spacer{flex:1}.filters .live{font-size:11px;color:#6d7a75;display:inline-flex;gap:6px;align-items:center}.filters .live i{width:7px;height:7px;border-radius:50%;background:#64d49e;box-shadow:0 0 0 4px #64d49e22}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.job{background:#fff;border:1px solid #dfe4df;border-radius:14px;padding:15px;display:flex;flex-direction:column;gap:9px;animation:rise .35s ease both;position:relative}
.job.mine{border-color:#7ab49f;box-shadow:0 0 0 3px #0f6a5812}
.job.new-flash{border-color:var(--signal);box-shadow:0 0 0 3px #f0643c22}
.job-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tag{font-size:11px;font-weight:800;color:var(--green);background:#e7f2ed;padding:5px 8px;border-radius:6px;display:inline-flex;align-items:center;gap:6px}
.tag i{width:7px;height:7px;border-radius:50%;background:#4a9b80}
.tag.elettricita i{background:#e4a837}.tag.climatizzazione i{background:#5d8fc0}.tag.refrigerazione i{background:#6b7fd6}.tag.caldaie i{background:#d9673a}.tag.fotovoltaico i{background:#c9a227}.tag.altro i{background:#8a948f}
.age{font-size:11px;color:#8b9591}
.job h3{font-size:15px;line-height:1.35;letter-spacing:-.02em;font-weight:650}
.job .meta{font-size:12px;color:#76827d;display:flex;gap:10px;flex-wrap:wrap}
.job .meta b{color:var(--ink);font-weight:650}
.urg-Urgente{color:#bd4527!important;font-weight:800}
.pill{border-radius:999px;padding:4px 8px;font-size:10px;font-weight:750;background:#edf0ed;color:#5d6d67;white-space:nowrap}
.pill.nuova{background:#ffe7df;color:#bd4527}.pill.chiamato{background:#fff0ca;color:#8b6310}.pill.assegnata{background:#e7eef7;color:#376991}.pill.in_corso{background:#fff0ca;color:#8b6310}.pill.completata{background:#dff1e8;color:#267156}.pill.annullata{background:#eee;color:#777}
.contact{border-top:1px solid #edf0ed;padding-top:10px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#75817d}
.contact b{font-size:14px;color:var(--ink);letter-spacing:.02em}
.contact.locked b{color:#8b9591;letter-spacing:.06em}
.claim{border:0;border-radius:9px;background:var(--signal);color:#fff;padding:12px;font-weight:850;font-size:13px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 8px 20px #f0643c30}
.claim:hover{background:var(--signal-2)}
.taken{font-size:12px;color:#6d7a75;background:#f3f5f2;border-radius:9px;padding:9px 11px}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.actions a,.actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 6px;font-size:12px;font-weight:700;text-align:center;text-decoration:none;color:var(--ink)}
.actions .call{background:var(--green);color:#fff;border-color:var(--green);grid-column:1/3;display:flex;justify-content:center;gap:8px;align-items:center;padding:11px}
.actions button.done{background:var(--mint);border-color:#c8ddd4;color:var(--green)}
.actions button.warn{color:#b53c21}
.note{width:100%;border:1px solid #dfe4df;border-radius:8px;padding:8px 10px;font-size:12px;resize:vertical;min-height:38px;background:#fbfcf9}
.admin-only{font-size:11px;color:#8b9591;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.admin-only select{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:11px;background:#fff}
.empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:40px 20px;background:#fff;border:1px dashed var(--line);border-radius:14px}
.log{margin-top:26px;background:#fbfcf9;border:1px solid #dfe3de;border-radius:14px;padding:16px}
.log h2{font-size:15px;margin-bottom:10px}.log ul{list-style:none;margin:0;padding:0;font-size:12px;color:#56645f;display:grid;gap:5px;max-height:260px;overflow:auto}
.log li b{color:var(--ink)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);opacity:0;background:#163f36;color:#fff;padding:11px 16px;border-radius:10px;font-size:13px;box-shadow:0 10px 30px #102d2830;transition:.25s;z-index:70;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%)}

@media(max-width:980px){
  .hero{grid-template-columns:1fr;gap:28px;max-width:720px}
  .hero-copy{text-align:center}.lead{margin:0 auto}.chips{justify-content:center}
  .hero-reel{max-width:560px;margin-left:auto;margin-right:auto;flex:none}
  .reel-card{aspect-ratio:3/4;min-height:0}
  .coverage{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 16px;width:calc(100% - 32px)}.coverage>div{gap:10px;flex-wrap:wrap}.coverage b{font-size:14px}.coverage p{text-align:left;font-size:12px}
  .process-grid{grid-template-columns:1fr 1fr}.catalog-grid{grid-template-columns:repeat(3,1fr);gap:10px}
  .pro-banner{grid-template-columns:1fr;margin-left:18px;margin-right:18px}.pro-banner-media img{min-height:0;aspect-ratio:16/9}
  .metrics{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .header{height:64px;padding:0 16px}.pro-link{display:none}
  .hero{padding:26px 16px 36px}.hero h1{font-size:42px}.lead{font-size:16px}
  .hero-reel{gap:8px;margin-top:18px}.reel-card{flex-basis:calc(50% - 4px);border-radius:12px}.glass-cap{left:8px;right:8px;bottom:8px;padding:9px 10px}.glass-cap b{font-size:15px}
  .card{padding:18px;border-radius:16px}.field-row{grid-template-columns:1fr}
  .assurance{padding:2px 14px}.assurance li{padding:10px 0}
  .process,.catalog,.faq{padding:40px 16px}.process-grid{grid-template-columns:1fr}
  .catalog-grid{grid-template-columns:1fr 1fr;gap:8px}.catalog-grid img{aspect-ratio:3/4}.catalog-grid span{padding:10px 11px 12px}.catalog-grid b{font-size:13px}.catalog-grid small{font-size:11px}
  .pro-banner{margin:0;border-radius:0;border-left:0;border-right:0}.pro-banner-copy{padding:26px 18px}.pro-banner-copy h2{font-size:28px}
  .footer{flex-direction:column;gap:8px}
  .banner-inner{margin:8px 8px 0;border-radius:12px}
  .returning-inner{padding:9px 14px}.returning a{margin-left:0}
  .pro-shell{padding:0 12px 80px}.cards{grid-template-columns:1fr}
}

/* ---------- PRO: ingresso ---------- */
.pro-hero-in{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:34px 0 50px;align-items:start}
.pro-hero-copy h1{margin:16px 0 14px;font-size:clamp(40px,4.8vw,60px);line-height:.97;letter-spacing:-.05em}.pro-hero-copy h1 em{font-style:normal;color:var(--green-2)}
.pro-hero-copy>p{color:#56645f;font-size:16px;line-height:1.55;max-width:520px;margin:0}
.pro-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}
.pro-points li{display:flex;gap:11px;align-items:flex-start}
.pro-points i{width:24px;height:24px;flex:none;border-radius:7px;background:#dcece5;color:var(--green);display:grid;place-items:center}
.pro-points b,.pro-points small{display:block}.pro-points b{font-size:14px}.pro-points small{font-size:12px;color:#75827d;margin-top:2px}
.pro-hero-photo{margin-top:24px;border-radius:16px;overflow:hidden;aspect-ratio:3/2;box-shadow:0 18px 44px #18392f18}.pro-hero-photo img{width:100%;height:100%;object-fit:cover}
.pro-hero-side{display:grid;gap:14px}
.pro-login{margin:0;max-width:none}.pro-login h1{font-size:24px}
.demo-buttons{display:grid;gap:8px}
.demo-btn{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;transition:.15s}
.demo-btn:hover{border-color:var(--green);transform:translateY(-1px)}
.demo-btn b,.demo-btn small{display:block}.demo-btn b{font-size:13px}.demo-btn small{font-size:11px;color:var(--muted);margin-top:2px}
.avatar.adm{background:var(--sidebar);color:#fff}
.pro-form-card h2{font-size:20px;margin:4px 0 6px}

/* ---------- PRO: dashboard ---------- */
.today-strip{margin:16px 0;background:var(--sidebar);color:#fff;border-radius:14px;padding:12px 18px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.today-strip>div{display:flex;align-items:baseline;gap:8px}
.today-strip span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#9fc1b7;font-weight:800}
.today-strip b{font-size:22px;letter-spacing:-.04em}.today-strip small{font-size:12px;color:#b8d0c9}
.today-strip .live-dot{width:8px;height:8px;border-radius:50%;background:#64d49e;box-shadow:0 0 0 4px #64d49e22;align-self:center;animation:pulse 1.6s infinite}
.today-clock{margin-left:auto;font-variant-numeric:tabular-nums;font-size:14px;color:#cfe0da}
.dash-grid{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
.dash-block{margin-bottom:22px}
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px}
.dash-head h2{font-size:22px;margin-top:3px}
.dash-head.small{align-items:center;margin-bottom:8px}.dash-head.small small{font-size:11px;color:#8b9591;text-transform:capitalize}
.count-badge{min-width:30px;height:30px;padding:0 9px;border-radius:9px;background:var(--signal);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800}
.watchers{font-size:11px;color:#8b9591;display:flex;align-items:center;gap:6px}.watchers i{width:6px;height:6px;border-radius:50%;background:#e4a837;animation:pulse 1.6s infinite}
.job.gone{opacity:.4;filter:grayscale(1)}
.contact .stars{color:#e4a837;display:flex}.contact small{color:var(--muted);font-size:11px;text-align:right;max-width:70%}
.dash-side{display:grid;gap:12px;position:sticky;top:12px}
.side-card{background:#fbfcf9;border:1px solid #dfe3de;border-radius:14px;padding:16px}
.me-card{background:#fff}
.me-top{display:flex;gap:12px;align-items:center;margin-bottom:12px}.avatar.big{width:46px;height:46px;font-size:14px;border-radius:13px}.avatar.sm{width:26px;height:26px;font-size:9px;border-radius:7px}
.me-top b{display:block;font-size:15px}.me-top small{font-size:11px;color:#83908b}
.me-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.me-grid>div{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.me-grid strong{display:block;font-size:22px;letter-spacing:-.04em;color:var(--green)}.me-grid span{font-size:10px;color:#7c8984;line-height:1.3;display:block;margin-top:2px}
.me-foot{display:flex;justify-content:space-between;font-size:11px;color:#6d7a75;margin-top:10px}.me-foot b{color:var(--ink)}
.leaderboard{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.leaderboard li{display:grid;grid-template-columns:20px auto 1fr;gap:9px;align-items:center;padding:6px 8px;border-radius:9px}
.leaderboard li.me{background:#edf5f1;box-shadow:inset 0 0 0 1px #c8ddd4}
.leaderboard .pos{font-size:11px;font-weight:800;color:#8b9591;text-align:center}.leaderboard li:nth-child(1) .pos{color:var(--signal)}
.leaderboard .who b,.leaderboard .who small{display:block}.leaderboard .who b{font-size:12px}.leaderboard .who small{font-size:10px;color:#7c8984}
.leaderboard .empty{padding:14px;font-size:12px}
.netfeed{list-style:none;margin:0;padding:0;display:grid;gap:7px;max-height:420px;overflow:auto}
.netfeed li{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:start;font-size:12px;color:#56645f;line-height:1.35}
.netfeed li b{color:var(--ink)}.netfeed small{font-size:10px;color:#9aa4a0;white-space:nowrap}
.netfeed .dot{width:7px;height:7px;border-radius:50%;background:#cfd6d1;margin-top:5px}.netfeed .dot.creata{background:var(--signal)}.netfeed .dot.presa{background:#5d8fc0}.netfeed .dot.stato{background:#4a9b80}
.chart30{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:12px}
.chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.chart-head small{font-size:11px;color:#8b9591}
.bars{height:110px;display:flex;gap:3px;align-items:flex-end;border-bottom:1px solid #edf0ec}
.bars span{flex:1;height:100%;display:flex;align-items:flex-end}.bars i{display:block;width:100%;background:#d8e9e2;border-radius:3px 3px 0 0;min-height:2px}.bars span:last-child i{background:var(--signal)}.bars span:hover i{background:var(--green-2)}
.cats-inline{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.cats-inline span{font-size:11px;background:#f3f5f2;border:1px solid var(--line);border-radius:999px;padding:4px 9px;color:#56645f}.cats-inline b{color:var(--ink)}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}
.crm{width:100%;border-collapse:collapse;font-size:12px;min-width:960px}
.crm th{position:sticky;top:0;background:#f8f9f6;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7b8581;padding:10px 10px;border-bottom:1px solid var(--line)}
.crm td{padding:8px 10px;border-bottom:1px solid #edf0ec;vertical-align:middle;white-space:nowrap}
.crm td.prob{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm select{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:11px;background:#fff;max-width:140px}
.crm select.st.nuova{background:#ffe7df;color:#bd4527;border-color:#ffd2c4}.crm select.st.assegnata{background:#e7eef7;color:#376991}.crm select.st.in_corso,.crm select.st.chiamato{background:#fff0ca;color:#8b6310}.crm select.st.completata{background:#dff1e8;color:#267156}
@media(max-width:1040px){.dash-grid{grid-template-columns:1fr}.dash-side{position:static;grid-template-columns:1fr 1fr}.me-card{grid-column:1/3}}

@media(max-width:680px){.dash-side{grid-template-columns:1fr}.me-card{grid-column:auto}.today-strip{gap:14px;padding:12px 14px}.today-strip b{font-size:18px}.today-clock{display:none}.dash-head h2{font-size:19px}.pro-hero-copy h1{font-size:38px}.pro-hero-photo{aspect-ratio:4/3}}

/* ---------- CIRCLE ---------- */
.demo-note{margin:12px 0 0;font-size:11px;color:#6d7a75;display:flex;gap:8px;align-items:center}
.demo-note span{background:#fff0ca;color:#8b6310;border-radius:6px;padding:3px 7px;font-weight:800;letter-spacing:.08em;font-size:10px}
.circle-welcome{margin:12px 0 16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 20px 16px;display:grid;gap:14px}
.circle-welcome h1{font-size:clamp(26px,3.4vw,36px);margin:6px 0 6px}
.circle-welcome p{margin:0;color:#56645f;font-size:15px;line-height:1.5;max-width:640px}.circle-welcome p b{color:var(--ink)}
.circle-welcome .today-strip{margin:0}
.race-rule{margin:12px 0 0;font-size:12px;color:#6d7a75;background:#fff;border:1px dashed var(--line);border-radius:10px;padding:10px 12px}.race-rule b{color:var(--ink)}
.prio{font-size:10px;font-weight:800;color:#fff;background:var(--sidebar);border-radius:6px;padding:4px 7px;letter-spacing:.04em}
.job-top .tag{margin-left:2px}.job-top .age{margin-left:auto}
.agenda{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.agenda li{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #edf0ec}
.agenda li:last-child{border-bottom:0}
.agenda time{font-size:12px;font-weight:800;color:var(--green);font-variant-numeric:tabular-nums}
.agenda li b,.agenda li small{display:block}.agenda li b{font-size:13px}.agenda li small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}
.agenda em{font-style:normal;font-size:10px;font-weight:700;color:#376991;background:#e7eef7;border-radius:999px;padding:4px 8px;white-space:nowrap}
.agenda li.now em{background:#fff0ca;color:#8b6310}.agenda li.now time{color:var(--signal)}
.agenda li.free{background:#f9faf7}.agenda li.free time{color:#8b9591}.agenda li.free b{color:#56645f}
.ritmo-bars{height:64px;display:flex;gap:3px;align-items:flex-end;border-bottom:1px solid #edf0ec;padding-bottom:2px}
.ritmo-bars span{flex:1;height:100%;display:flex;align-items:flex-end}.ritmo-bars i{display:block;width:100%;background:#d8e9e2;border-radius:3px 3px 0 0}.ritmo-bars span:last-child i{background:var(--signal)}
.ritmo-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}
.ritmo-kpi strong{display:block;font-size:18px;letter-spacing:-.04em;color:var(--green)}.ritmo-kpi span{font-size:10px;color:#7c8984}
.territory{display:grid;gap:7px}
.territory>div{display:grid;grid-template-columns:96px 1fr 30px;gap:8px;align-items:center;font-size:12px;color:#56645f}
.territory>div>div{height:7px;background:#ebeeeb;border-radius:99px;overflow:hidden}.territory i{display:block;height:100%;background:var(--signal);border-radius:99px}
.territory>div:first-child i{background:var(--signal)}.territory>div:not(:first-child) i{background:var(--green-2)}
.territory b{text-align:right;color:var(--ink)}
.empty-small{font-size:12px;color:var(--muted);margin:0}
@media(max-width:680px){.circle-welcome{padding:16px}.circle-welcome p{font-size:14px}.agenda li{grid-template-columns:52px 1fr}.agenda em{display:none}}
.demo-note.public{margin:0 0 14px;justify-content:center;text-align:center;flex-wrap:wrap}

/* ---------- RITMO: una griglia, un passo (8px), un'altezza per le plashke ---------- */
:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--chip:24px;--r-card:14px}
.pro-shell{padding:0 var(--s4) 90px}
.pro-top{height:60px;gap:var(--s3)}
.pro-top .brand{font-size:19px;flex:none}
.me{gap:var(--s2);min-width:0}
.me>div{min-width:0}.me b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.demo-note,.circle-welcome,.dash-block,.side-card,.race-rule,.agenda,.chart30,.table-wrap{margin-left:0;margin-right:0}
.demo-note{margin:var(--s3) 0 0}
.circle-welcome{margin:var(--s3) 0 var(--s4);padding:var(--s4);border-radius:var(--r-card)}
.circle-welcome .today-strip{padding:var(--s3) var(--s4);gap:var(--s4);border-radius:12px}
.dash-block{margin-bottom:var(--s5)}
.dash-head{margin-bottom:var(--s3)}
.filters{gap:var(--s2);margin-bottom:var(--s3)}
.filters button,.filters .live{height:32px;display:inline-flex;align-items:center}
.cards{gap:var(--s3)}
.job{padding:var(--s4);gap:var(--s2);border-radius:var(--r-card)}
.job-top{gap:var(--s2)}
.tag,.prio,.pill,.age,.watchers{height:var(--chip);display:inline-flex;align-items:center;line-height:1;box-sizing:border-box}
.tag,.prio,.pill{padding:0 var(--s2);border-radius:6px;font-size:11px}
.age,.watchers{font-size:11px}
.contact{padding-top:var(--s2)}
.claim{height:44px;padding:0 var(--s4)}
.actions{gap:var(--s2)}.actions a,.actions button{height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 var(--s2)}
.race-rule{margin-top:var(--s3);padding:var(--s3) var(--s4)}
.agenda li{padding:var(--s3) var(--s4)}
.side-card{padding:var(--s4);border-radius:var(--r-card)}
.dash-side{gap:var(--s3)}
.me-grid{gap:var(--s2)}.me-grid>div{padding:var(--s3)}
.count-badge{height:32px;min-width:32px;border-radius:9px}
.metrics{gap:var(--s3);margin:var(--s4) 0}
.metric{padding:var(--s4);border-radius:var(--r-card)}
@media(max-width:680px){
  .pro-shell{padding:0 var(--s3) 80px}
  .pro-top{height:56px}
  .me small{display:none}.me b{font-size:13px;max-width:120px}.me .avatar{width:32px;height:32px}
  .circle-welcome{padding:var(--s4)}
  .circle-welcome .today-strip{padding:var(--s3);gap:var(--s3)}
  .today-strip>div{gap:6px}
  .job{padding:var(--s3)}
  .job h3{font-size:15px}
  .metrics{grid-template-columns:1fr 1fr}
}

/* ---------- AREA CLIENTE ---------- */
.area-login-wrap{max-width:460px;margin:28px auto 40px;display:grid;gap:12px}
.area-login-wrap .pro-login{margin:0}
.area-note{text-align:center;font-size:13px;color:var(--muted);margin:0}.area-note a{color:var(--green);font-weight:700}
.area-new{width:auto;justify-self:start;margin:0;gap:14px;text-decoration:none}
.circle-welcome .area-new{margin-top:0}
.who{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-top:1px solid #edf0ec;padding-top:10px}
.who-main{min-width:0}.who-main b,.who-main small{display:block}.who-main b{font-size:13px}.who-main small{font-size:11px;color:var(--muted);line-height:1.35;overflow:hidden;text-overflow:ellipsis}
.who-main em{font-style:normal;color:var(--green-2);font-weight:700}
.tel-btn{background:var(--green);color:#fff;border-radius:8px;padding:0 12px;height:34px;display:inline-flex;align-items:center;font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap}
.star-btn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;color:#c8d3cd;display:grid;place-items:center}
.star-btn.on{color:#e4a837;border-color:#f0d9a0;background:#fff7e0}
.actions.one{grid-template-columns:1fr}
.again{border:1px solid var(--line);background:#fff;border-radius:8px;height:38px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;text-decoration:none;color:var(--green)}
.again:hover{border-color:var(--green)}
.again.sm{height:30px;padding:0 10px;font-size:11px}
.pro-list{display:grid;gap:8px}
.pro-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}
.pro-item.fid{border-color:#f0d9a0;background:#fffaf0}
.fid-badge{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b07a12;background:#fff0ca;border-radius:5px;padding:2px 5px;vertical-align:2px;margin-left:4px}
.pro-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.pref-box{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:var(--mint);border:1px solid #c8ddd4;border-radius:12px;padding:10px 12px;margin-bottom:14px}
.pref-box b,.pref-box small{display:block}.pref-box b{font-size:13px}.pref-box small{font-size:11px;color:#56645f;line-height:1.35}.pref-box em{font-style:normal;color:var(--green-2)}
.pref-box button{border:0;background:none;font-size:20px;color:#8b9591;width:30px;height:30px}
.quiet-button.center{text-align:center;text-decoration:none;display:block}
.pill.ritorno{background:#fff0ca;color:#8b6310}
.sheet{position:fixed;inset:0;background:rgba(16,45,40,.45);z-index:80;display:flex;align-items:flex-end;justify-content:center;padding:0}
.sheet-card{background:#fff;border-radius:18px 18px 0 0;padding:20px 18px 24px;width:100%;max-width:520px;animation:rise .3s ease both}
.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.sheet-head h2{font-size:22px;margin-top:3px}
.banner-close.dark{background:#f3f5f2;color:#56645f}
.sheet-sub{margin:6px 0 12px;font-size:13px;color:var(--muted)}
.rv-stars{display:flex;gap:6px;margin-bottom:12px}.rv-stars button{border:1px solid var(--line);background:#fff;border-radius:10px;width:48px;height:48px;display:grid;place-items:center;color:#d7ddd8}.rv-stars button.on{color:#e4a837;border-color:#f0d9a0;background:#fff7e0}
.sheet .note{min-height:72px;font-size:14px;margin-bottom:4px}
@media(min-width:681px){.sheet{align-items:center;padding:20px}.sheet-card{border-radius:18px}}

/* account icon + map filters */
.account-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--line);background:#fff;border-radius:10px;font-size:14px;font-weight:700;text-decoration:none;color:var(--green)}
.account-btn:hover{border-color:var(--green)}
.map-filters{display:grid;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 6px 16px -12px rgba(16,45,40,.22);min-width:0}.map-filters .kicker{font-size:12.5px;text-align:center}
.map-legend{display:flex;gap:8px;flex-wrap:wrap;row-gap:8px;justify-content:center}
.zone-list{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;min-width:0;max-width:100%}
.zone-list>button[data-z="all"]{flex:none}
.zone-scroll{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.zone-scroll::-webkit-scrollbar{display:none}
.zone-track{display:flex;gap:8px;width:max-content;padding:2px 0}
.zone-dots{margin-top:8px}
.map-legend button,.zone-list button{height:34px;padding:0 13px;border:1px solid var(--line);background:#fff;border-radius:999px;font-size:13.5px;font-weight:600;color:#40534c;display:inline-flex;align-items:center;gap:7px;transition:.15s}
.map-legend button i{width:9px;height:9px;border-radius:50%;display:inline-block}
.map-legend button:hover,.zone-list button:hover{border-color:var(--green)}
.map-legend button.on,.zone-list button.on{background:var(--green);border-color:var(--green);color:#fff}
.map-legend button.on i{box-shadow:0 0 0 2px #fff}
.zone-list b{font-weight:700}
.field-hint{margin:6px 0 0;font-size:11px;color:var(--muted)}
@media(max-width:680px){.account-btn span{display:none}.account-btn{width:40px;padding:0;justify-content:center}}

/* map chips: leggibili + colore per mestiere + pulsazione */
.zone-list button.on b,.zone-list button.on{color:#fff}
.map-legend button{color:#40534c;background:#f3f5f2;border-color:#d7ded9}
.map-legend button i{animation:blink 1.8s infinite;animation-delay:var(--d,0s)}
.map-legend button.on{background:var(--cc);border-color:var(--cc);color:#fff}
.map-legend button.on i{background:#fff!important;box-shadow:none;animation:none}
@keyframes blink{0%,100%{box-shadow:0 0 0 0 var(--cc)}50%{box-shadow:0 0 0 5px transparent}}

/* ---------- AREA v2: due colonne, bell, thread, scelta, livello ---------- */
.area-grid{display:grid;grid-template-columns:380px 1fr;gap:16px;align-items:start}
.area-left{display:grid;gap:12px;position:sticky;top:12px}
.cards.one-col{grid-template-columns:1fr}
.request-form.inline label{font-size:13px;margin:0 0 6px}.request-form.inline textarea{min-height:74px;font-size:15px}.request-form.inline input,.request-form.inline select{font-size:15px;padding:11px 12px}
.cat-picker.on-always{display:flex;margin:8px 0 2px}
.rubrica-hint{margin:0 0 10px;font-size:12px;color:var(--muted);line-height:1.4}
.rub-cat{display:grid;gap:6px;margin-bottom:10px}.rub-cat>.tag{justify-self:start}
.bell{position:relative;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--green);display:grid;place-items:center}
.bell i{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--signal);color:#fff;font-size:10px;font-weight:800;font-style:normal;display:grid;place-items:center;animation:pulse 1.6s infinite}
.me .avatar{border:0;cursor:pointer}
.notif-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-top:10px;box-shadow:0 18px 44px #18392f18}
.notif-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:320px;overflow:auto}
.notif-panel li{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:start;font-size:12px;color:#56645f;padding:7px 8px;border-radius:8px;cursor:pointer;line-height:1.35}
.notif-panel li.unread{background:#fff7f3;color:var(--ink);font-weight:600}
.notif-panel li small{font-size:10px;color:#9aa4a0;white-space:nowrap}
.notif-panel .dot{width:7px;height:7px;border-radius:50%;background:#cfd6d1;margin-top:5px}.notif-panel .dot.proposta,.notif-panel .dot.scelto,.notif-panel .dot.richiesto{background:var(--signal)}.notif-panel .dot.messaggio{background:#5d8fc0}.notif-panel .dot.completata,.notif-panel .dot.recensione,.notif-panel .dot.raccomandazione{background:#4a9b80}
.status-card-c{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#f9faf7;display:grid;gap:8px}
.lv-top{display:flex;justify-content:space-between;align-items:center}.lv-top b{font-size:13px}
.lv-badge{background:var(--sidebar);color:#fff;border-radius:999px;padding:0 10px;height:24px;display:inline-flex;align-items:center;font-size:11px;font-weight:800;letter-spacing:.04em}
.lv-bar{height:7px;background:#e7ebe7;border-radius:99px;overflow:hidden}.lv-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--green-2),var(--signal));border-radius:99px}
.status-card-c small{font-size:11px;color:var(--muted)}.status-card-c p{margin:0;font-size:13px;color:#40534c}
.lv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.lv-grid>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;text-align:center}
.lv-grid strong{display:block;font-size:18px;letter-spacing:-.04em;color:var(--green)}.lv-grid span{font-size:10px;color:#7c8984;line-height:1.25;display:block}
.circle-welcome{grid-template-columns:1fr}
.job.attention{border-color:var(--signal);box-shadow:0 0 0 3px #f0643c22;animation:glow 2s infinite}
@keyframes glow{0%,100%{box-shadow:0 0 0 3px #f0643c22}50%{box-shadow:0 0 0 6px #f0643c10}}
.choose{border-top:1px solid #edf0ec;padding-top:10px;display:grid;gap:8px}
.choose-title{margin:0;font-size:13px;color:#40534c}
.cand{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;background:#f9faf7;border:1px solid var(--line);border-radius:12px;padding:10px}
.cand .who-main{grid-column:2}.cand .avatar{grid-row:1}
.cand-msg{grid-column:1/3;font-size:13px;color:var(--ink);display:flex;justify-content:space-between;gap:8px;align-items:baseline}.cand-msg small{color:#9aa4a0;font-size:10px;white-space:nowrap}
.claim.sm{grid-column:1/3;height:38px;font-size:12px;justify-content:center;gap:8px}
.thread{margin-top:6px;border-top:1px solid #edf0ec;padding-top:8px}
.thread ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px;max-height:220px;overflow:auto}
.thread li{display:flex;flex-direction:column;max-width:85%}.thread li span{padding:8px 11px;border-radius:12px;font-size:13px;line-height:1.4}.thread li small{font-size:10px;color:#9aa4a0;margin:2px 6px 0}
.thread li.them{align-self:flex-start}.thread li.them span{background:#f1f4f2;border-bottom-left-radius:4px}
.thread li.me{align-self:flex-end;align-items:flex-end}.thread li.me span{background:var(--green);color:#fff;border-bottom-right-radius:4px}
.thread li.sys{max-width:100%}.thread li.sys span{background:transparent;color:var(--muted);font-size:12px;padding:0}
.thread-form{display:grid;grid-template-columns:1fr 40px;gap:6px}
.thread-form input{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;background:#fff}
.thread-form button{border:0;background:var(--green);color:#fff;border-radius:9px;display:grid;place-items:center}
.actions.two{grid-template-columns:1fr 1fr}
.again.rac{color:#8b6310;border-color:#f0d9a0;background:#fffaf0;gap:6px}
.pulse-cta{animation:pulse 1.8s infinite}
.forgot{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.forgot label{display:block;font-size:13px;font-weight:750;margin:0 0 7px}
.forgot .quiet-button{width:100%;margin-top:12px}
.linkish.center{display:block;margin:12px auto 0;font-size:12px}
.form-note.privacy{text-align:left;display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;background:#f3f5f2;border-radius:10px;padding:10px 12px;color:#40534c}
.form-note.privacy svg{color:var(--green);margin-top:2px}
/* marquee zone */
.coverage>div small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.marquee{overflow:hidden;flex:1;min-width:0;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex;gap:8px;width:max-content;animation:slide 60s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track button{height:28px;padding:0 11px;border:1px solid var(--line);background:#fff;border-radius:999px;font-size:12px;font-weight:650;color:#40534c;white-space:nowrap;animation:breathe 3.6s ease-in-out infinite;animation-delay:var(--d,0s)}
.marquee-track button:hover,.marquee-track button.on{background:var(--green);color:#fff;border-color:var(--green)}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.coverage{gap:16px}
@media(max-width:980px){.area-grid{grid-template-columns:1fr}.area-left{position:static}.coverage{flex-direction:column;align-items:stretch}.marquee{width:100%}}
@media(max-width:680px){.lv-grid{grid-template-columns:repeat(4,1fr)}.lv-grid strong{font-size:16px}.lv-grid span{font-size:9px}.actions.two{grid-template-columns:1fr 1fr}}

.demo-buttons.compact{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.demo-buttons.compact .demo-btn{padding:8px 10px}.demo-buttons.compact .demo-btn b{font-size:12px}.demo-buttons.compact .demo-btn small{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.passaparola{margin-top:10px;border-top:1px solid var(--line);padding-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pp-row{display:flex;gap:8px;align-items:center}.pp-row strong{font-size:22px;letter-spacing:-.04em;color:#8b6310}.pp-row span{font-size:10px;color:#7c8984;line-height:1.25}
.passaparola small{grid-column:1/3;font-size:11px;color:#56645f}
@media(max-width:680px){.demo-buttons.compact{grid-template-columns:1fr}}

.god{border:1px solid var(--green);background:#fff;color:var(--green);border-radius:7px;height:28px;padding:0 9px;font-size:11px;font-weight:700;white-space:nowrap}
.god:hover{background:var(--green);color:#fff}.god.warn{border-color:#d94c26;color:#d94c26}.god.warn:hover{background:#d94c26;color:#fff}
.rec-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff7f3;border:1px solid #ffd2c4;border-radius:10px;padding:8px 12px;font-size:12px;margin-top:6px}
.parole{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:10px;min-height:48px}
.parole span{color:var(--green);line-height:1.1}.parole b{font-size:10px;color:#8b9591;font-weight:700}
#registro-tipi{margin-bottom:10px}

/* PRO map */
.pro-map-block{margin-top:4px}
.pro-map{height:360px;border-radius:14px;overflow:hidden;background:#e5ebe7;border:1px solid var(--line);z-index:0}
#map-cat button,#map-time button{height:28px;font-size:12px}
#map-cat button{color:var(--cc,#40534c)}#map-cat button i{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}
#map-cat button.on{background:var(--cc);border-color:var(--cc);color:#fff}#map-cat button.on i{background:#fff!important}
#map-cat .kicker,#map-time .kicker{font-size:10px;margin-right:2px}
.map-legend-pro{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:#56645f;margin-top:8px}
.map-legend-pro i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.map-legend-pro i.live{background:var(--signal);box-shadow:0 0 0 3px #f0643c33}.map-legend-pro i.mine{background:#0f6a58;box-shadow:0 0 0 2px #102d28}.map-legend-pro i.grey{background:#b8c0bb}
.pt-open{animation:ptpulse 1.8s infinite}
@keyframes ptpulse{0%,100%{stroke-width:1.2}50%{stroke-width:6;stroke-opacity:.35}}
#map-pick{margin-top:10px}#map-pick .job.pick{border-color:var(--green)}
@media(max-width:680px){.pro-map{height:300px}}

/* CRM */
.crm-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:8px 0 14px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px}
.crm-tabs button{height:32px;padding:0 12px;border:1px solid transparent;background:transparent;border-radius:8px;font-size:13px;font-weight:700;color:#56645f}
.crm-tabs button.on{background:var(--sidebar);color:#fff}
.crm-only-real{margin-left:auto;font-size:12px;color:#56645f;display:inline-flex;gap:6px;align-items:center}
.test-dot{display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 6px;border-radius:9px;background:#e9ede9;color:#7c8984;font-size:9px;font-weight:800;letter-spacing:.08em;border:1px dashed #c8cfca}
tr.is-test td{color:#7c8984}
.temp{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.temp.in_attesa{background:#ffe7df;color:#bd4527}.temp.da_valutare{background:#fff0ca;color:#8b6310}.temp.fedele{background:#dff1e8;color:#267156}.temp.nuovo{background:#e7eef7;color:#376991}.temp.silente{background:#e7ebe7;color:#6d7a75}
.funnel-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:12px}
.conv-list{display:grid;gap:6px}
.conv-row{display:grid;grid-template-columns:200px 1fr auto;gap:12px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:12px}
.conv-row.c{border-left:3px solid var(--signal)}.conv-row.p{border-left:3px solid var(--green-2)}
.conv-row .who b,.conv-row .who small{display:block}.conv-row .who small{color:#8b9591;font-size:10px}
.conv-row .txt{color:var(--ink)}.conv-row>small{color:#9aa4a0;white-space:nowrap}
@media(max-width:680px){.conv-row{grid-template-columns:1fr}.crm-only-real{margin-left:0}}

.map-switch{display:inline-flex;background:#f3f5f2;border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px;align-self:flex-start}
.map-switch button{height:36px;padding:0 14px;border:0;background:transparent;border-radius:8px;font-size:13.5px;font-weight:700;color:#56645f;display:inline-flex;align-items:center;justify-content:center}
.map-switch button.on{background:var(--green);color:#fff}.map-switch button b{font-weight:800;margin-left:4px;opacity:.8}
.pro-pin i{display:block;width:12px;height:12px;transform:rotate(45deg);border:2px solid #fff;border-radius:2px;box-shadow:0 1px 4px rgba(16,45,40,.35)}

.pro-map.tall{height:440px}
.gd{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.gd.o{background:#f0643c}.gd.g{background:#2d9a6a}.gd.b{background:#5d8fc0}.gd.r{background:#c62828}
#geo-filters button.on{background:var(--sidebar);border-color:var(--sidebar);color:#fff}
.mv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0}
.mv-grid .side-card .kicker{display:block;margin-bottom:8px}
.abb .dash-head{margin-bottom:8px}
.abb-list{display:grid;gap:6px}.abb-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-left:3px solid var(--signal);border-radius:10px;padding:8px 12px;font-size:12px}
.abb-row .txt{color:var(--ink)}.abb-row small{color:#9aa4a0;white-space:nowrap}
@media(max-width:980px){.mv-grid{grid-template-columns:1fr 1fr}}@media(max-width:680px){.mv-grid{grid-template-columns:1fr}.pro-map.tall{height:340px}}
.pro-net-map{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.pro-net-map .pro-map{height:280px;margin-top:6px}

/* ---------- CRM Dio (shtab) ---------- */
.shtab-login{max-width:460px;margin:40px auto}
body.shtab .pro-hero-in{display:none}
body.shtab #view-dash .circle-welcome,body.shtab #pro-map-block,body.shtab .dash-side,body.shtab #view-dash .dash-main>.dash-block:not(.crm-pane){display:none}
body.shtab .dash-grid{grid-template-columns:200px 1fr;gap:18px;align-items:start}
body.shtab .crm-tabs{flex-direction:column;align-items:stretch;position:sticky;top:12px;margin:0;padding:8px;grid-column:1}
body.shtab .crm-tabs button{text-align:left;height:38px;padding:0 12px}
body.shtab .crm-only-real{margin:8px 0 0 4px}
body.shtab .dash-main{display:contents}
body.shtab .crm-pane{grid-column:2;margin-bottom:0}
body.shtab .pro-top .brand small{content:"DIO"}
body.shtab{background:#e9ede9}
@media(max-width:980px){body.shtab .dash-grid{grid-template-columns:1fr}body.shtab .crm-tabs{position:static;flex-direction:row;flex-wrap:wrap}body.shtab .crm-pane{grid-column:1}}

/* CIRCLE hub: un solo blocco */
.circle-hub{gap:14px;padding:var(--s4)}
.hub-head{display:grid;grid-template-columns:228px 1fr;gap:16px;align-items:end}
.hub-head .piano-box{grid-column:1/3}
.hub-filters{display:grid;gap:6px}
.circle-hub .filters{margin-bottom:0}
.circle-hub .pro-map{height:380px;border-radius:12px}
.circle-hub .map-legend-pro{margin-top:0}
.today-strip>div b#map-open-count{color:#ffb59b}
.piano-box{border-radius:12px;padding:12px 14px;display:grid;gap:4px}
.piano-box.prova{background:#fff7f3;border:1px solid #ffd2c4}.piano-box.pro{background:var(--mint);border:1px solid #c8ddd4}
.piano-box .kicker{font-size:10px}.piano-box b{font-size:14px}.piano-box small{font-size:12px;color:#56645f;line-height:1.4}.piano-box small b{font-size:12px}
.piano-box .claim.sm{margin-top:6px;justify-content:center;gap:8px;height:38px;font-size:12px}
#map-time button.locked{opacity:.55;position:relative;padding-right:26px}
#map-time button.locked::after{content:"";position:absolute;right:9px;top:50%;width:9px;height:11px;transform:translateY(-50%);border:2px solid currentColor;border-radius:3px;border-top-left-radius:6px;border-top-right-radius:6px;box-shadow:inset 0 -4px 0 currentColor;opacity:.8}
@media(max-width:680px){.hub-head{grid-template-columns:1fr}.hub-head .piano-box{grid-column:1}}
@media(max-width:680px){.circle-hub .pro-map{height:300px}}

/* calendario + orologio vivo (sintesi con il prototipo ChatGPT) */
.cal{display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto auto auto;column-gap:12px;row-gap:2px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#f8faf7}
.cal>span{grid-column:2;grid-row:1;color:var(--green-2);font-size:11px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.cal>div{grid-column:1;grid-row:1/4;display:grid;place-items:center;align-self:stretch;border-radius:10px;background:var(--signal);color:#fff;padding:4px 0}
.cal>div strong{font-size:28px;line-height:1;letter-spacing:-.03em}.cal>div small{margin-top:2px;font-size:10px;font-weight:800;text-transform:uppercase}
.cal time{grid-column:2;grid-row:2;display:flex;align-items:center;gap:2px;font-size:20px;font-weight:850;font-variant-numeric:tabular-nums;color:var(--ink)}
.cal time i{font-style:normal;animation:clockblink 1s step-end infinite}
.cal .cl-s{min-width:28px;margin-left:4px;border-radius:6px;background:#e2eee8;color:var(--green);padding:2px 4px;font-size:13px;text-align:center}
@keyframes clockblink{50%{opacity:.2}}
.today-live{margin-left:auto;font-size:11px;color:#b8d0c9;display:inline-flex;align-items:center;gap:7px}.today-live i{width:7px;height:7px;border-radius:50%;background:#64d49e;box-shadow:0 0 0 4px #64d49e22;animation:pulse 1.6s infinite}
.pro-map-wrap{position:relative}
.map-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:rgba(244,244,239,.72);backdrop-filter:blur(2px);border-radius:12px;z-index:5;padding:20px}
.map-empty b{font-size:15px}.map-empty span{font-size:12px;color:var(--muted);margin-top:4px}
.map-hint{margin:0;font-size:11px;color:#8b9591}
@media(max-width:680px){.today-live{display:none}}
.leaderboard .who small .stars{color:#e4a837;display:inline-flex;vertical-align:-1px}

.cal em{grid-column:2;grid-row:3;font-style:normal;font-size:11px;font-weight:700;color:#40534c;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal em i{width:6px;height:6px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 3px #f0643c22;animation:pulse 1.6s infinite;flex:none}
.circle-welcome-copy h1{margin-top:0}
.circle-welcome-copy p{margin-bottom:2px}

/* ===== CIRCLE hub: mobile dieta ===== */
@media(max-width:680px){
  .circle-hub{gap:10px;padding:12px}
  .hub-head{gap:8px}
  .cal{grid-template-columns:auto auto auto 1fr;grid-template-rows:auto;column-gap:8px;row-gap:0;padding:6px 10px;border-radius:10px;align-items:center;max-width:none}
  .cal>div{grid-column:auto;grid-row:auto;display:flex;gap:4px;align-items:baseline;background:transparent;color:var(--signal);padding:0}
  .cal>div strong{font-size:15px}.cal>div small{font-size:10px;margin:0}
  .cal>span{grid-column:auto;grid-row:auto;font-size:10px}
  .cal time{grid-column:auto;grid-row:auto;font-size:14px}
  .cal time i{animation:none}.cal time i:last-of-type,.cal .cl-s{display:none}
  .cal em{grid-column:auto;grid-row:auto;justify-self:end;font-size:10px}
  .circle-welcome h1{font-size:24px;margin:2px 0}
  .circle-welcome p{font-size:13px;line-height:1.35}
  .piano-box{padding:10px 12px}.piano-box b{font-size:13px}.piano-box small{font-size:11px}
  .today-strip{padding:10px 12px;gap:12px;flex-wrap:nowrap;overflow:hidden}
  .today-live{display:none}
  .today-strip b{font-size:17px}.today-strip small{font-size:11px}
  .today-strip>div{gap:5px}.today-strip>div:nth-child(4) small{font-size:0}.today-strip>div:nth-child(4) small::after{content:"aperte";font-size:11px}
  .hub-filters{gap:6px}
  .circle-hub .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;margin-right:-12px;padding-right:12px}
  .circle-hub .filters::-webkit-scrollbar{display:none}
  .circle-hub .filters button{flex:none;height:30px;font-size:12px;padding:0 10px}
  .circle-hub .filters .kicker{flex:none;font-size:9px}
  .circle-hub .filters .spacer{display:none}
  .circle-hub .pro-map{height:260px}
  .map-legend-pro{display:none}
  .map-hint{font-size:10px}
}

/* ===== today-strip: griglia rigida, mai a capo ===== */
.today-strip{display:grid;grid-template-columns:auto auto auto auto 1fr;align-items:center;column-gap:22px;row-gap:0;flex-wrap:nowrap}
.today-strip>div{display:flex;align-items:baseline;gap:6px;white-space:nowrap;min-width:0}
.today-strip>div b{line-height:1}
.today-strip .today-live,.today-strip .today-clock{justify-self:end;white-space:nowrap}
@media(max-width:980px){
  .today-strip{grid-template-columns:auto auto auto auto;column-gap:16px;padding:12px 14px}
  .today-strip>.today-live,.today-strip>div.today-live{display:none}
  .circle-hub .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;margin-right:-16px;padding-right:16px}
  .circle-hub .filters::-webkit-scrollbar{display:none}
  .circle-hub .filters button{flex:none}
  .circle-hub .filters .kicker{flex:none}
  .circle-hub .filters .spacer{display:none}
}
@media(max-width:680px){
  .today-strip>div.today-live{display:none}
}
@media(max-width:400px){.today-strip b{font-size:16px}.today-strip small{font-size:10px}.today-strip span{font-size:10px}}

/* today-strip v3: OGGI grande, punto centrato, 4 numeri equidistanti */
.today-strip{grid-template-columns:auto repeat(4,1fr) auto;column-gap:16px;padding:12px 18px}
.today-strip>div{justify-content:flex-start}
.today-strip .ts-oggi{display:flex;align-items:center;gap:10px;padding-right:14px;margin-right:6px;border-right:1px solid #ffffff22}
.today-strip .ts-oggi .live-dot{align-self:center;margin:0}
.today-strip .ts-oggi span{font-size:13px;letter-spacing:.12em;color:#cfe0da}
.today-strip>div b{font-size:24px}
.circle-hub .hub-row{margin:0}
@media(max-width:980px){.today-strip{grid-template-columns:auto repeat(4,1fr);column-gap:12px;padding:10px 14px}.today-strip>div b{font-size:20px}}
@media(max-width:680px){.today-strip{grid-template-columns:auto repeat(3,1fr);column-gap:8px;padding:10px 12px}.today-strip .ts-oggi{padding-right:8px;margin-right:0}.today-strip .ts-oggi span{font-size:11px}.today-strip>div b{font-size:17px}.today-strip>div:nth-child(4){display:none}}

/* LAVORO = bottone "tutti", acceso di default; chip spenti in modalita tutti */
#map-cat .lav-all{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:#56645f;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}
#map-cat .lav-all small{font-size:10px;font-weight:700;letter-spacing:0;text-transform:none;opacity:.8}
#map-cat .lav-all.on{background:var(--signal);border-color:var(--signal);color:#fff;box-shadow:0 6px 16px #f0643c33}
#map-cat.all-mode [data-c]{opacity:.55}
#map-cat [data-c].on{opacity:1}

/* strip icons */
.ts-ico{width:28px;height:28px;border-radius:8px;background:#ffffff14;color:#b8d0c9;display:inline-grid;place-items:center;margin-right:8px;align-self:center;flex:none}
.ts-ico.open{background:#f0643c2e;color:#ffb59b}
.today-strip>div{align-items:center}
.today-strip>div b{align-self:center}
.today-strip .ts-oggi{padding-right:18px;margin-right:8px}
@media(max-width:680px){
  .today-strip{grid-template-columns:auto repeat(4,1fr);column-gap:6px;padding:10px 10px}
  .today-strip>div:nth-child(4){display:flex}
  .today-strip>div small{display:none}
  .today-strip>div b{font-size:16px}
  .ts-ico{width:24px;height:24px;margin-right:6px}.ts-ico svg{width:14px;height:14px}
  .today-strip .ts-oggi{padding-right:10px;margin-right:2px}.today-strip .ts-oggi span{font-size:10px}
}

.today-strip{align-items:center}.today-strip>div{align-self:center}.today-strip .ts-oggi{align-self:center}
@media(max-width:680px){.today-strip>div:nth-child(3){display:flex}}

.open-more{width:100%;margin-top:10px}
#open-cards.expanded{max-height:70vh;overflow:auto;padding-right:4px}

.ps-check{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;margin:12px 0 4px;font-size:13px}
.ps-check input{width:18px;height:18px;margin-top:2px}.ps-check b,.ps-check small{display:block}.ps-check small{color:var(--muted);font-size:12px;line-height:1.35}
.share-btn{justify-self:start;border:1px solid var(--line);background:#fff;color:#56645f;border-radius:8px;height:30px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px}
.share-btn:hover{border-color:var(--green);color:var(--green)}
.job .share-btn{position:absolute;right:14px;bottom:64px}
.job.pick .share-btn{position:static;margin-bottom:2px}

/* ---------- PRO landing: stessi componenti della home ---------- */
.pro-land{display:grid;gap:16px;padding:8px 0 56px}
.pro-land .map-card{gap:12px}
.pro-land .map{height:420px}
.land-numbers{margin:0}
.land-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.process-grid.one{grid-template-columns:1fr;gap:8px}
.process-grid.one article{padding:14px 16px}
.land-assurance{margin:0;background:#fff;border-color:var(--line)}
.land-assurance li{border-bottom-color:#edf0ec}
.land-cta{background:var(--sidebar);color:#fff;border-radius:16px;padding:28px 32px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.land-cta .kicker{color:#9fc1b7}.land-cta h2{font-size:28px;margin:6px 0}.land-cta h2 b{color:#ffb59b}.land-cta p{margin:0;color:#b8d0c9;font-size:14px}
.land-cta .primary-cta{width:auto;min-width:280px;margin:0;text-decoration:none;gap:16px}
.pro-hero-in{padding-bottom:20px}
@media(max-width:980px){.land-grid{grid-template-columns:1fr}.pro-land .map{height:340px}.land-cta{grid-template-columns:1fr}.land-cta .primary-cta{width:100%}}
@media(max-width:680px){.pro-land{gap:12px;padding-bottom:40px}.pro-land .map{height:280px}.land-cta{padding:20px 18px}.land-cta h2{font-size:22px}}

/* categorie: un colore, ovunque (chip, catalogo, mappa) */
.cat-colored{border-color:color-mix(in srgb,var(--cc) 55%,#fff)!important;color:color-mix(in srgb,var(--cc) 85%,#000)!important}
.cat-colored:hover{border-color:var(--cc)!important;background:color-mix(in srgb,var(--cc) 8%,#fff)!important}
.cat-colored.on,.cat-picker .cat-colored.on{background:var(--cc)!important;border-color:var(--cc)!important;color:#fff!important}
.cdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--cc);margin-right:7px;vertical-align:1px;box-shadow:0 0 0 3px color-mix(in srgb,var(--cc) 18%,transparent)}
.cat-colored.on .cdot{background:#fff;box-shadow:none}

#catalog .cat-colored b{color:color-mix(in srgb,var(--cc) 85%,#000)}
.hero-motiv{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;gap:12px;text-align:left}
.hm-main b{display:block;font-size:15px}.hm-main span{display:block;font-size:13px;color:#56645f;line-height:1.45;margin-top:3px}
.hm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hm-stats>div{background:var(--mint);border-radius:10px;padding:9px 10px}
.hm-stats strong{display:block;font-size:20px;letter-spacing:-.04em;color:var(--green);line-height:1}.hm-stats small{display:block;font-size:10px;color:#56645f;line-height:1.3;margin-top:3px}
@media(max-width:980px){.hero-motiv{max-width:560px;margin-left:auto;margin-right:auto}}

/* mappa pubblica: LAVORO tutti */
.map-legend .lav-all{height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:#fff;color:#56645f;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;display:inline-flex;align-items:center;gap:5px}
.map-legend .lav-all small{font-size:10px;font-weight:700;letter-spacing:0;text-transform:none;opacity:.8}
.map-legend .lav-all.on{background:var(--signal)!important;border-color:var(--signal)!important;color:#fff!important;box-shadow:0 6px 16px #f0643c33}
.map-legend.all-mode [data-cat]:not(.lav-all){opacity:.55}
.map-legend [data-cat].on{opacity:1}

/* privacy box */
.privacy-box{margin-top:12px;display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;background:var(--mint);border:1px solid #c8ddd4;border-radius:12px;padding:12px 14px}
.privacy-box>i{width:40px;height:40px;border-radius:11px;background:var(--green);color:#fff;display:grid;place-items:center}
.privacy-box b{display:block;font-size:14px;margin-bottom:4px}
.privacy-box ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.privacy-box li{font-size:12px;color:#40534c;padding-left:16px;position:relative;line-height:1.4}
.privacy-box li::before{content:"";position:absolute;left:0;top:6px;width:8px;height:5px;border-left:2px solid var(--green-2);border-bottom:2px solid var(--green-2);transform:rotate(-45deg)}
/* foto nella richiesta */
.photo-row{margin-top:12px;display:grid;gap:8px}
.photo-add{display:inline-flex;align-items:center;gap:10px;border:1px dashed #b9c5bf;border-radius:10px;padding:10px 12px;cursor:pointer;color:#40534c;font-size:13px;font-weight:700;background:#fff}
.photo-add small{font-weight:500;color:var(--muted)}.photo-add:hover{border-color:var(--green)}
.photo-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.thumb{position:relative;width:72px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb button{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:0;background:#102d28cc;color:#fff;font-size:13px;line-height:1}
.job-photos{display:flex;gap:6px;flex-wrap:wrap}
.job-photos img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
/* profilo pro: foto */
.ps-photo{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;margin-bottom:6px}
.ps-foto-prev{width:72px;height:72px;border-radius:16px;background:#d9e9e3;color:var(--green);display:grid;place-items:center;font-weight:850;overflow:hidden;cursor:pointer}
.ps-foto-prev img{width:100%;height:100%;object-fit:cover}
.ps-photo small{display:block;font-size:11px;color:var(--muted);margin-top:6px;line-height:1.35}
.ps-photo .quiet-button{width:auto;display:inline-block;cursor:pointer;font-size:12px;padding:8px 12px}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.avatar{overflow:hidden}
.linkish.inline{display:inline;margin:0;font-size:11px;padding:0}
.prof-top{display:flex;gap:12px;align-items:center}.prof-top b{display:block;font-size:16px}.prof-top small{display:block;font-size:12px;color:var(--muted)}
.prof-bio{margin:12px 0 0;font-size:14px;color:#40534c;line-height:1.5}
.lv-grid.three{grid-template-columns:repeat(3,1fr);margin-top:12px}
.rev-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:260px;overflow:auto}
.rev-list li{display:grid;gap:3px;padding:9px 11px;background:#f9faf7;border:1px solid var(--line);border-radius:10px;font-size:13px}
.rev-list .stars{color:#e4a837;display:flex}.rev-list small{font-size:11px;color:#8b9591}

/* scheda professionista (carta del mestiere) */
.prof-hero{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:center}
.prof-photo{width:96px;height:96px;border-radius:18px;overflow:hidden;background:#d9e9e3;color:var(--green);display:grid;place-items:center;font-size:24px;font-weight:850}
.prof-photo img{width:100%;height:100%;object-fit:cover}
.prof-title h3{font-size:18px;line-height:1.2;letter-spacing:-.02em}.prof-title small{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.prof-rating{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#40534c;margin-top:6px}.prof-rating .stars{color:#e4a837;display:inline-flex}
.prof-bullets{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.prof-bullets li{font-size:13px;color:var(--ink);padding-left:18px;position:relative;line-height:1.4}
.prof-bullets li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:5px;border-left:2px solid var(--green-2);border-bottom:2px solid var(--green-2);transform:rotate(-45deg)}
#prof-body .kicker{display:block;margin:14px 0 6px}
.prof-skills{display:flex;gap:6px;flex-wrap:wrap}.prof-skills .tag em{font-style:normal;margin-left:6px;padding-left:6px;border-left:1px solid #ffffff88;opacity:.85;font-weight:700}
.prof-port{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.prof-port figure{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.prof-port img{width:100%;aspect-ratio:4/3;object-fit:cover}.prof-port figcaption{font-size:11px;color:#56645f;padding:6px 8px;line-height:1.3}
.rev-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.rev-job{font-weight:600}
.sheet-card.wide{max-width:640px}
/* editor scheda */
.ps-bullets{display:grid;gap:6px}.ps-bullets input{font-size:13px;padding:9px 11px}
.ps-levels{display:grid;gap:6px;margin-top:8px}
.lv-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}
.lv-opts{display:inline-flex;gap:4px;justify-self:end}.lv-opts button{height:26px;padding:0 9px;border:1px solid var(--line);background:#fff;border-radius:999px;font-size:11px;color:#56645f}.lv-opts button.on{background:var(--green);border-color:var(--green);color:#fff}
.ps-port{display:grid;gap:6px;margin-bottom:6px}
.port-item{display:grid;grid-template-columns:56px 1fr 28px;gap:8px;align-items:center}
.port-item img{width:56px;height:42px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.port-item input{font-size:12px;padding:7px 9px}.port-item button{border:0;background:#f3f5f2;border-radius:6px;height:28px}
.ps-port-add{display:inline-block;width:auto;cursor:pointer;font-size:12px;padding:8px 12px;margin-bottom:6px}
@media(max-width:680px){.prof-port{grid-template-columns:1fr 1fr}.prof-hero{grid-template-columns:72px 1fr}.prof-photo{width:72px;height:72px}}

.request-form .photo-add{display:inline-flex;align-items:center;gap:10px;margin:0;height:44px;padding:0 14px;font-size:13px;font-weight:700;line-height:1}
.request-form .photo-add svg{flex:none;display:block}
.request-form .photo-add span{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
.request-form .photo-add small{font-weight:500;color:var(--muted);font-size:12px}
@media(max-width:400px){.request-form .photo-add span{white-space:normal}}

/* select con freccia staccata dal bordo */
.request-form select,.pro-form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%2340534c%27 stroke-width=%272.4%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><path d=%27m6 9 6 6 6-6%27/></svg>");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px}
.hm-stats{grid-template-columns:1.4fr 1fr 1fr}
.hm-stats .hm-hero{background:var(--green);color:#fff}.hm-stats .hm-hero strong{color:#fff;font-size:24px}.hm-stats .hm-hero small{color:#cfe0da}.hm-stats .hm-hero small b{color:#fff;font-weight:700}
@media(max-width:680px){.hm-stats{grid-template-columns:1fr 1fr}.hm-stats .hm-hero{grid-column:1/3}}

.skills .cat-colored{background:#fff}
.skills .cat-colored.on{background:var(--cc)!important;border-color:var(--cc)!important;color:#fff!important}
.pro-form .primary-cta{margin-top:14px}

/* ===== PRO landing: geometria ===== */
.pro-hero-in{grid-template-columns:1fr 440px;gap:24px;align-items:start;padding:32px 0 16px}
.pro-hero-side{display:grid;gap:16px}
.pro-hero-side .card{margin:0;max-width:none;width:100%}
.pro-land{gap:16px;padding:8px 0 56px}
.land-grid{grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.land-grid .feed-card{height:100%}
.land-assurance{margin-top:12px}
.recent-feed li{padding:10px 0}
@media(max-width:1040px){.pro-hero-in{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.pro-hero-in{grid-template-columns:1fr;gap:16px;padding-top:20px}.pro-hero-copy{order:2}.pro-hero-side{order:1}.land-grid{grid-template-columns:1fr}.pro-land .map{height:300px}}

.hero-map{margin-top:22px;padding:16px;gap:10px}
.hero-map .map{height:360px}
.hero-map .map-head h2{font-size:20px}.hero-map .map-head p{font-size:12px;max-width:240px}
.hero-map.new-flash{box-shadow:0 0 0 3px #f0643c33}
@media(max-width:700px){.hero-map{margin-top:16px}.hero-map .map{height:280px}}

.post-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.post-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:8px;align-content:start}
.post-card h3{font-size:17px}.post-card p{margin:0;font-size:13px;color:var(--muted);line-height:1.45}
.post-card .primary-cta{margin-top:4px;text-decoration:none}
.post-card .quiet-button{width:100%}
.post-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}
@media(max-width:700px){.post-grid{grid-template-columns:1fr}}

/* modulo in finestra + campi mancanti lampeggianti */
.form-sheet .sheet-card{max-width:560px;max-height:92vh;overflow:auto}
.form-sheet .sheet-card .card{box-shadow:none;border:0;padding:0;animation:none}
.form-sheet .form-heading{display:none}
body.noscroll{overflow:hidden}
.field-missing{animation:blinkfield .7s ease-in-out 4;border-color:#dc4f29!important;box-shadow:0 0 0 4px #f0643c33!important}
@keyframes blinkfield{0%,100%{background:#fff}50%{background:#ffe7df}}
.photo-add.has{border-style:solid;border-color:var(--green);background:var(--mint)}.photo-add .ok{color:var(--green)}

/* tag di categoria colorati come i punti sulla mappa */
.tag{--tc:#0f6a58}
.tag.elettricita{--tc:#e4a837}.tag.climatizzazione{--tc:#5d8fc0}.tag.refrigerazione{--tc:#6b7fd6}.tag.caldaie{--tc:#d9673a}.tag.fotovoltaico{--tc:#c9a227}.tag.altro{--tc:#8a948f}
.tag{background:color-mix(in srgb,var(--tc) 12%,#fff);color:color-mix(in srgb,var(--tc) 80%,#000);border:1px solid color-mix(in srgb,var(--tc) 35%,#fff)}
.tag i{background:var(--tc)!important}
/* feed: una riga categoria+zona, testo a tutta larghezza, stato sotto */
.recent-feed li.rf{display:grid;grid-template-columns:1fr;gap:6px;padding:12px 0}
.rf-top{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}
.rf-top b{font-size:14px}.rf-top small{font-size:11px;color:#9aa4a0;white-space:nowrap}
.rf-text{margin:0;font-size:13px;color:#40534c;line-height:1.4}
.recent-feed li.rf .pill{justify-self:start}
.rf-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rf-foot .stars{color:#e4a837;display:inline-flex}.rf-foot small{font-size:11px;color:var(--muted)}

/* legale + cookie bar */
.legal{max-width:760px;margin:0 auto;padding:36px 24px 60px}
.legal h1{font-size:clamp(30px,4vw,40px);margin-bottom:6px}
.legal-updated{color:var(--muted);font-size:12px;margin:0 0 24px}
.legal h2{font-size:19px;margin:26px 0 8px}
.legal p,.legal li{font-size:15px;line-height:1.65;color:#33413c}
.legal ul{padding-left:20px;display:grid;gap:6px;margin:8px 0}
.legal b{color:var(--ink)}
.footer a{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.cookie-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:70;max-width:720px;margin:0 auto;background:var(--sidebar);color:#cfe0da;border-radius:14px;padding:12px 16px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;box-shadow:0 22px 60px #102d2845;animation:rise .4s ease both}
.cookie-bar p{margin:0;font-size:12px;line-height:1.45}.cookie-bar b{color:#fff}.cookie-bar a{color:#9fc1b7;font-weight:700}
.cookie-bar button{border:0;background:var(--signal);color:#fff;border-radius:9px;height:38px;padding:0 18px;font-weight:800;font-size:13px}
@media(max-width:560px){.cookie-bar{grid-template-columns:1fr}.cookie-bar button{width:100%}}

/* FAQ a due colonne con nastro di foto */
.faq-wrap{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:stretch}
.faq-wrap .faq-list{max-width:none;margin:0;align-content:start}
.faq-reel{position:relative;border-radius:16px;overflow:hidden;background:#e8ede9;border:1px solid var(--line);-webkit-mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent)}
.faq-reel-track{display:grid;gap:10px;padding:10px;animation:faqscroll 48s linear infinite;will-change:transform}
.faq-reel img{width:100%;border-radius:10px;display:block}
.faq-reel:hover .faq-reel-track{animation-play-state:paused}
@keyframes faqscroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@media(max-width:980px){.faq-wrap{grid-template-columns:1fr}.faq-reel{display:none}}
/* catalogo: bagliore pulsante del mestiere sul bordo sinistro */
#catalog .cat-colored{overflow:visible;position:relative}
#catalog .cat-colored img{border-radius:13px 13px 0 0}
#catalog .cat-colored>span{border-radius:0 0 13px 13px;background:#fff;position:relative;z-index:1}
#catalog .cat-colored::before{content:"";position:absolute;left:-4px;top:25%;bottom:25%;width:8px;border-radius:8px;background:var(--cc);filter:blur(6px);opacity:.6;animation:edgeglow 2.6s ease-in-out infinite;animation-delay:var(--gd,0s);pointer-events:none}
#catalog .cat-colored::after{content:"";position:absolute;left:-1px;top:32%;bottom:32%;width:3px;border-radius:3px;background:var(--cc);opacity:.9;pointer-events:none}
#catalog .cat-colored:nth-child(2){--gd:.4s}#catalog .cat-colored:nth-child(3){--gd:.8s}#catalog .cat-colored:nth-child(4){--gd:1.2s}#catalog .cat-colored:nth-child(5){--gd:1.6s}#catalog .cat-colored:nth-child(6){--gd:2s}
@keyframes edgeglow{0%,100%{opacity:.45;filter:blur(6px)}50%{opacity:.95;filter:blur(10px)}}

/* glass-cap: radar + cursore che "clicca" */
.glass-cap{display:grid;grid-template-columns:1fr auto;column-gap:8px;align-items:center}
.glass-cap b{grid-column:1}.glass-cap small{grid-column:1}
.cap-go{grid-column:2;grid-row:1/3;position:relative;width:34px;height:34px;display:grid;place-items:center;flex:none}
.cap-dot{width:11px;height:11px;border-radius:50%;background:var(--signal);box-shadow:0 0 8px #f0643c99}
.cap-go::before,.cap-go::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(240,100,60,.85);animation:capradar 2.2s ease-out infinite;pointer-events:none}
.cap-go::after{animation-delay:1.1s}
@keyframes capradar{0%{transform:scale(.32);opacity:.95}100%{transform:scale(1.3);opacity:0}}
.cap-tap{position:absolute;left:52%;top:52%;color:#fff;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55));animation:captap 3.4s ease-in-out infinite;pointer-events:none}
@keyframes captap{0%,18%{transform:translate(16px,18px);opacity:0}32%{opacity:1}44%{transform:translate(1px,1px) scale(1)}52%{transform:translate(1px,1px) scale(.78)}60%{transform:translate(1px,1px) scale(1)}78%,100%{transform:translate(16px,18px);opacity:0}}
.reel-card:nth-child(2) .cap-tap{animation-delay:.9s}.reel-card:nth-child(3) .cap-tap{animation-delay:1.7s}.reel-card:nth-child(4) .cap-tap{animation-delay:.5s}.reel-card:nth-child(5) .cap-tap{animation-delay:1.3s}.reel-card:nth-child(6) .cap-tap{animation-delay:2.1s}
@media(max-width:680px){.cap-go{width:30px;height:30px}.cap-dot{width:9px;height:9px}}
/* numeri: tutto centrato, il fatto principale gigante */
.hm-stats.v2{grid-template-columns:1fr 1fr;gap:8px}
.hm-stats.v2 .hm-hero{grid-column:1/3;display:grid;justify-items:center;gap:3px;text-align:center;padding:18px 14px;background:var(--green);border-radius:12px}
.hm-stats.v2 .hm-hero strong{font-size:46px;line-height:1;letter-spacing:-.05em;color:#fff}
.hm-stats.v2 .hm-cap{font-size:16px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;color:#fff}
.hm-stats.v2 .hm-sub{font-size:12px;font-weight:650;color:#bfe0d4}
.hm-stats.v2 .hm-tile{background:var(--mint);border-radius:12px;padding:12px 10px;display:grid;justify-items:center;gap:3px;text-align:center}
.hm-stats.v2 .hm-tile strong{font-size:28px;line-height:1;letter-spacing:-.04em;color:var(--green)}
.hm-stats.v2 .hm-tile small{font-size:11px;color:#40534c;line-height:1.35}
@media(max-width:680px){.hm-stats.v2 .hm-hero strong{font-size:38px}.hm-stats.v2 .hm-cap{font-size:14px}}

/* punto-radar allo zoom alto: nucleo grande + onde larghe, l indirizzo esatto non si vede */
.prad-wrap{background:none;border:none}
.prad{position:relative;width:22px;height:22px;display:block}
.prad b{position:absolute;inset:4px;border-radius:50%;background:var(--pc);border:2.5px solid #fff;box-shadow:0 0 12px var(--pc),0 2px 6px rgba(16,45,40,.35)}
.prad.rombo b{border-radius:5px;transform:rotate(45deg)}
.prad::before,.prad::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:2px solid var(--pc);opacity:0;animation:pradar 2.6s ease-out infinite;pointer-events:none}
.prad::after{animation-delay:1.3s}
@keyframes pradar{0%{transform:scale(.35);opacity:.85}100%{transform:scale(1.9);opacity:0}}

/* catalogo: bagliore intorno a tutta la carta (sostituisce il bordo sinistro) */
#catalog .cat-colored::before,#catalog .cat-colored::after{display:none}
#catalog button.cat-colored{border:1.5px solid var(--cc)!important;border-color:color-mix(in srgb,var(--cc) 55%,#fff)!important;color:inherit!important;box-shadow:0 0 12px -2px color-mix(in srgb,var(--cc) 45%,transparent);animation:cardglow 2.8s ease-in-out infinite;animation-delay:var(--gd,0s)}
#catalog .cat-colored:hover{border-color:var(--cc)!important}
@keyframes cardglow{0%,100%{box-shadow:0 0 10px -2px color-mix(in srgb,var(--cc) 45%,transparent)}50%{box-shadow:0 0 26px 3px color-mix(in srgb,var(--cc) 70%,transparent)}}

/* FAQ: nastro ORIZZONTALE sopra le domande (sostituisce la colonna verticale) */
.faq-wrap{display:block}
.faq-reel{display:block!important;height:132px;margin-bottom:14px;border-radius:14px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.faq-reel-track{display:flex;flex-direction:row;gap:10px;width:max-content;height:100%;padding:8px;animation:faqscrollx 55s linear infinite}
.faq-reel img{height:100%;width:auto;border-radius:10px;flex:none}
@keyframes faqscrollx{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:980px){.faq-reel{height:104px}}

/* FAQ v3: finestra stretta a UNA foto a sinistra, domande a destra */
.faq-wrap{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:stretch}
.faq-reel{display:block!important;height:auto;min-height:100%;margin-bottom:0;border-radius:16px;overflow:hidden;-webkit-mask-image:none;mask-image:none;border:1px solid var(--line)}
.faq-reel-track{display:flex;flex-direction:row;gap:0;width:max-content;height:100%;padding:0;animation:faqscrollx 42s linear infinite}
.faq-reel img{width:300px;height:100%;object-fit:cover;border-radius:0;flex:none}
.faq-wrap .faq-list{max-width:none;margin:0;align-content:start}
@media(max-width:980px){
  .faq-wrap{grid-template-columns:1fr;gap:12px}
  .faq-reel{height:220px;min-height:0}
  .faq-reel img{width:calc(100vw - 32px)}
}

/* FAQ v4: altezza finestra = altezza reale delle domande; niente su mobile */
.faq-wrap{align-items:start}
.faq-reel{min-height:0;height:520px}
@media(max-width:980px){.faq-reel{display:none!important}.faq-wrap{grid-template-columns:1fr}}

/* FAQ v5: la finestra tiene la proporzione VERA della foto (9:16), mai tagli */
.faq-wrap{grid-template-columns:auto 1fr}
.faq-reel{width:300px}
.faq-reel img{width:auto;height:100%;object-fit:unset}

/* Штаб: два мира — REALE / TEST */
.shtab-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 12px}
#crm-tabs .shtab-mode button{height:44px;border:1px solid var(--line);border-radius:12px;background:#f3f5f2;font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#56645f;cursor:pointer;font-family:inherit}
#crm-tabs .shtab-mode button.on[data-m="reale"]{background:var(--green);border-color:var(--green);color:#fff}
#crm-tabs .shtab-mode button.on[data-m="prova"]{background:var(--signal);border-color:var(--signal);color:#fff}
body.mode-prova #funnel,body.mode-prova #chart-visite{display:none}
.real-only-note{display:none;margin:0 0 12px;padding:10px 14px;border:1px dashed var(--line);border-radius:10px;font-size:13px;color:#56645f;background:#f7f8f6}
body.mode-prova .real-only-note{display:block}

/* Штаб: страница входа — только вход, никакой витрины */
body.shtab .pro-land{display:none}
body.shtab .pro-top .linkish{display:none}
body.shtab #shtab-login{min-height:calc(100vh - 140px);display:flex;align-items:center;justify-content:center;margin:0 auto}
body.shtab #shtab-form input{margin-bottom:12px}

/* Panorama movimento */
#pan-periodo{margin:0 0 14px}
.pan-tiles{margin-bottom:14px}
button.pan-tile{cursor:pointer;text-align:left;font-family:inherit;border:1px solid var(--line)}
button.pan-tile.sel{outline:2px solid var(--green);outline-offset:-2px}
body.mode-prova button.pan-tile.sel{outline-color:var(--signal)}
.pan-rows{display:flex;flex-direction:column}
.pan-row{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;min-width:0}
.pan-row:last-child{border-bottom:0}
.pan-row .txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pan-row small{color:#8b9591;white-space:nowrap;margin-left:auto}
.pan-row.wide{flex-wrap:wrap}
.pan-row .god{flex:0 0 auto}
#pan-detail .side-card{margin-top:14px}
#geo-days{height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px;font-weight:700;color:#56645f;padding:0 8px;font-family:inherit}

/* Classifica: riga simmetrica — nome a sinistra, stelle e voto in colonna destra */
#leaderboard li{align-items:center}
#leaderboard .who{min-width:0;flex:1}
#leaderboard .who small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.lb-score{margin-left:auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px;color:#3d4a45}
.lb-score b{font-weight:700}

/* Imbuto: righe in griglia (la classe si era persa) */
.funnel-row{display:grid;grid-template-columns:190px 56px 1fr 52px;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid #eef1ee;font-size:13px}
.funnel-row:last-child{border-bottom:0}
.funnel-row b{font-size:16px;text-align:right}
.funnel-row>div{height:10px;background:#eef1ee;border-radius:6px;overflow:hidden}
.funnel-row>div i{display:block;height:100%;background:var(--green);border-radius:6px}
.funnel-row small{color:#8b9591;text-align:right}
@media(max-width:680px){.funnel-row{grid-template-columns:104px 40px 1fr 40px;gap:8px;font-size:12px}}
/* Grafici con numeri e date */
.bars.nums span{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}
.bars.nums em{font-style:normal;font-size:9px;font-weight:700;color:#3d4a45;height:12px;line-height:12px}
.bars.nums u{text-decoration:none;font-size:9px;color:#8b9591;height:12px;line-height:12px;margin-top:2px;white-space:nowrap}
/* Foglio impostazioni profilo */
.sheet[hidden]{display:none}
#pro-settings .sheet-card{max-height:92vh;overflow:auto}
.ps-level{display:flex;align-items:center;gap:10px;padding:6px 0}
.ps-level .tag{flex:0 0 auto}
.lv-btns{margin-left:auto;display:inline-flex;gap:4px}
.lv-btns button{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#f3f5f2;font-size:11px;font-weight:700;color:#56645f;cursor:pointer;font-family:inherit}
.lv-btns button.on{background:var(--green);border-color:var(--green);color:#fff}
.ps-work{display:flex;align-items:center;gap:10px;padding:6px 0}
.ps-work img{width:56px;height:56px;object-fit:cover;border-radius:10px;flex:0 0 auto}
.ps-work input{flex:1;min-width:0}
.ps-work button{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#8a4444;font-size:15px;cursor:pointer}

/* Rubrica professionisti: righe dritte */
.pro-item{grid-template-columns:auto minmax(0,1fr) 100px}
.pro-item .who-main{min-width:0}
.pro-item .who-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pro-item .who-main small{display:block;line-height:1.45}
.pro-actions{width:100px}
.pro-actions button,.pro-actions .quiet-button{width:100%;height:34px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
/* Richiesta del cliente: modifica ed elimina */
.own-actions .del{color:#b53c21;border-color:#e8cfc6}
.mod-form{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.mod-form textarea{min-height:72px}
.mod-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rv-foto-row{display:flex;align-items:center;gap:10px;margin:8px 0}
/* Valutazione del cliente (lato pro) */
.vc-box{margin-top:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;display:flex;flex-direction:column;gap:8px}
.vc-stars{display:flex;gap:4px}
.vc-stars button{background:none;border:0;cursor:pointer;padding:2px;opacity:.3;font-size:0}
.vc-stars button.on{opacity:1}
.vc-save{align-self:flex-start;height:32px;padding:0 14px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:#fff;font-weight:700;font-size:12px;cursor:pointer;font-family:inherit}
/* Segnalazioni */
.seg-link{background:none;border:0;color:#8a4444;font-size:12px;text-decoration:underline;cursor:pointer;margin-top:10px;padding:0;align-self:flex-start;font-family:inherit}
.seg-box{margin:14px 0}
.seg-form{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.seg-form textarea{min-height:64px}

/* Editor foto della richiesta */
.mod-photos{display:flex;gap:8px;flex-wrap:wrap}
.mod-photos:empty{display:none}
.mod-thumb{position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;cursor:pointer;border:2px solid transparent;flex:0 0 auto}
.mod-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.mod-thumb i{position:absolute;top:2px;right:2px;background:rgba(16,45,40,.75);color:#fff;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:12px;line-height:1}
.mod-thumb.off{opacity:.35;border-color:#b53c21}

/* Rubrica: tipografia pulita */
.pro-item .who-main b{font-size:15px;line-height:1.3}
.pi-sub,.pi-meta{display:block;color:#6b7772;font-size:12px;line-height:1.55;margin-top:2px;font-weight:500}
.pi-sub .stars{color:#d9a62e;vertical-align:-1px}
.pi-meta .linkish{font-size:12px}
/* Bandierina segnalazione */
.flag-btn{background:none;border:0;color:#b08c8c;cursor:pointer;padding:2px;vertical-align:-2px;margin-left:8px;line-height:1}
.flag-btn:hover{color:#b53c21}
.who{grid-template-columns:auto 1fr auto auto}
.who .flag-btn{justify-self:end;margin-left:0}
.seg-note{display:block;margin-top:6px;font-size:11px;color:#8b9591;line-height:1.5;max-width:440px}
.seg-box .quiet-button svg{vertical-align:-2px;margin-right:5px}

/* Altro: elenco dei mestieri */
#chip-altro svg{vertical-align:-1px;margin-left:2px;transition:transform .2s}
#chip-altro.open svg{transform:rotate(180deg)}
.altro-panel{margin:10px 0 4px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:14px}
.altro-panel .kicker{display:block;margin-bottom:10px}
.altro-list{display:flex;flex-wrap:wrap;gap:10px;max-height:224px;overflow-y:auto;padding:2px}
.altro-list button{flex:1 1 auto;height:38px;padding:0 14px;border:1px solid var(--line);border-radius:19px;background:#fff;font-size:13.5px;font-weight:650;color:#2f3f39;cursor:pointer;font-family:inherit;white-space:nowrap;text-align:center;box-shadow:0 2px 6px rgba(16,45,40,.08)}
.altro-list button:hover{border-color:var(--green);color:var(--green)}

/* Altro selezionato */
.altro-list button.on{background:var(--green);border-color:var(--green);color:#fff}
.prof-skills.alt{margin-top:6px}


/* Vista del professionista: tutto o solo i miei mestieri */
#vista-row{margin-bottom:2px}
#vista-mode button.on{background:var(--green);color:#fff}

/* /pro/: legge della simmetria — le carte a destra seguono le linee della colonna sinistra */
@media(min-width:981px){
  .pro-hero-in{align-items:stretch}
  .pro-hero-side{display:flex;flex-direction:column;align-content:start;padding-top:32px;padding-bottom:8px}
  .pro-hero-side .pro-login{flex:0 0 auto}
  #cand-card{margin-top:auto}
}

/* Candidati: bottone vivo sotto Entra */
@keyframes candpulse{0%,100%{box-shadow:0 0 0 0 rgba(240,100,60,.40)}55%{box-shadow:0 0 0 11px rgba(240,100,60,0)}}
.cand-cta{margin-top:12px;width:100%;height:44px;border:2px solid var(--signal);border-radius:12px;background:#fff6f1;color:var(--signal);font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;animation:candpulse 1.9s ease-out infinite}
.cand-cta:hover{background:var(--signal);color:#fff}
@media(prefers-reduced-motion:reduce){.cand-cta{animation:none}}
/* La candidatura scende come un cassetto, non come una seconda scheda */
#cand-card.open{animation:dropin .35s ease}
@keyframes dropin{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}

/* Popup del punto: cosa vuole il cliente */
.leaflet-popup-content{margin:12px 14px;font-family:inherit}
.pt-pop{max-width:230px}
.pt-pop p{margin:7px 0 5px;font-size:13px;line-height:1.5;color:#22302b;font-weight:600}
.pt-pop small{color:#6b7772;font-size:11.5px;display:block}
.pt-pop b{display:block;margin-top:7px;font-size:11.5px;color:var(--signal)}
/* Tre passi: cascata colorata, ogni passo si apre */
.passi{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.passo{border:1px solid var(--line);border-left:5px solid var(--pc);border-radius:12px;background:#fff}
.passo.p1{--pc:#0f6a58}
.passo.p2{--pc:#f0643c;margin-left:16px}
.passo.p3{--pc:#5d8fc0;margin-left:32px}
.passo summary{display:flex;align-items:center;gap:14px;padding:13px 40px 13px 16px;cursor:pointer;list-style:none;position:relative}
.passo summary::-webkit-details-marker{display:none}
.passo summary i{font-weight:800;color:var(--pc);font-size:15px;flex:0 0 auto}
.passo summary b{display:block;font-size:15.5px}
.passo summary small{display:block;color:#6b7772;font-size:12px;margin-top:2px}
.passo summary::after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:2.2px solid var(--pc);border-bottom:2.2px solid var(--pc);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.passo[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.passo-body{padding:0 16px 14px 45px;font-size:13.5px;line-height:1.65;color:#4a5651}
@media(max-width:680px){.passo.p2{margin-left:8px}.passo.p3{margin-left:16px}}
/* Feed a sinistra: righe separate, non un mucchio */
#land-feed li{padding:10px 0;border-bottom:1px solid #edf0ec;box-shadow:0 7px 6px -6px rgba(16,45,40,.07)}
#land-feed li:last-child{border-bottom:0;box-shadow:none}

/* Chi vede il numero: "?" e spiegazione */
.tel-why{width:18px;height:18px;border-radius:50%;border:1.6px solid var(--green);background:#fff;color:var(--green);font-size:12px;font-weight:800;line-height:1;cursor:pointer;vertical-align:1px;margin-left:6px;padding:0}
.tel-pop{margin:8px 0 4px;padding:12px 14px;background:#eef5f1;border:1px solid #d7e5dd;border-radius:12px;font-size:12.5px;line-height:1.55;color:#2f3f39}
.tel-pop b{display:block;margin-bottom:4px}
.tel-pop p{margin:0}
/* Chat con il candidato prima della scelta */
.cand-thread{margin:6px 0 14px;padding-left:10px;border-left:3px solid #e3e9e4}

/* Area: header compatto con menu; benvenuto snello */
.area-nav{display:flex;gap:18px;margin-left:28px;margin-right:auto}
.area-nav a{font-size:13px;font-weight:700;color:#3d4a45;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.area-nav a:hover{color:var(--green);border-bottom-color:var(--green)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto;margin-right:6px}
.burger i{display:block;height:3.5px;border-radius:2px;background:#22302b}
.burger i:first-child{width:16px;margin-bottom:5px}
.burger i:last-child{width:24px}
#open-cards,#done-cards,#pro-list{scroll-margin-top:76px}
#view-area .circle-welcome{padding:14px 18px 12px;gap:8px;margin:10px 0 12px}
#view-area .circle-welcome .kicker{display:none}
#view-area .circle-welcome h1{font-size:21px}
#view-area .circle-welcome p{font-size:13.5px}
@media(max-width:980px){
  .area-nav{display:none;position:absolute;top:60px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 20px -14px rgba(16,45,40,.25);flex-direction:column;gap:0;margin:0;padding:6px 0;z-index:60}
  .area-nav.open{display:flex}
  .area-nav a{padding:12px 18px;border-bottom:1px solid #f0f2ef}
  .burger{display:block}
  #view-area .pro-top{position:relative}
  /* prima le risposte, poi il modulo */
  .area-grid{display:flex;flex-direction:column}
  .area-grid > .area-left{order:2}
  .area-grid > *:not(.area-left){order:1}
}
/* Rubrica v3: avatar e nome in alto, testo a tutta larghezza */
.pro-item.v3{display:grid;grid-template-columns:auto minmax(0,1fr) 100px;grid-template-rows:auto auto auto;gap:4px 10px;align-items:center}
.pro-item.v3 .avatar{grid-column:1;grid-row:1}
.pro-item.v3 .pi-nome{grid-column:2;grid-row:1;font-size:15px;line-height:1.3;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pro-item.v3 .pro-actions{grid-column:3;grid-row:1 / span 3;width:100px;align-self:center}
.pro-item.v3 .pi-sub{grid-column:1 / span 2;grid-row:2;margin:0}
.pro-item.v3 .pi-meta{grid-column:1 / span 2;grid-row:3;margin:0}
/* Fidato con etichetta nella carta conclusa */
.who-side{display:inline-flex;align-items:center;gap:8px;justify-self:end}
.fid-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--line);border-radius:16px;background:#fff;font-size:12px;font-weight:700;color:#56645f;cursor:pointer;font-family:inherit}
.fid-btn.on{border-color:#e6c268;background:#fff8e8;color:#8a6d1f}

/* Segnalazione: bottone esplicito e voce di QuiServe nella chat */
.again.seg-open{color:#b53c21;border-color:#e8cfc6;background:#fff8f5}
.again.seg-open svg{vertical-align:-2px;margin-right:4px}
.thread li.qs span{background:#fdf1ec;border:1px dashed #e0a98f;color:#6e3a26}
.thread li.qs small{color:#b06a4a}

/* Pane Segnalazioni */
.seg-row{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:10px;background:#fff}
.seg-row .pan-row{border-bottom:0;padding:4px 0}
.seg-testo{margin:4px 0 8px;font-size:13px;color:#22302b;font-weight:600}
.seg-azioni{display:flex;gap:8px;flex-wrap:wrap}
.seg-detail{margin-top:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:#f9faf7}

/* Classifica: colonna ordinata accanto all avatar */
#leaderboard li{display:flex;align-items:center;gap:10px}
#leaderboard .who{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
#leaderboard .who b{font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#leaderboard .who small{font-size:11.5px;color:#8b9591;line-height:1.3;white-space:nowrap}
#leaderboard .lb-stars{display:inline-flex;align-items:center;gap:5px}
#leaderboard .lb-stars .stars{color:#d9a62e}
#leaderboard .lb-stars b{font-weight:700;color:#3d4a45;font-size:11.5px}

#leaderboard .who{align-items:flex-start;text-align:left}

/* Pulsantiera della centrale */
.hq-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.hq-item{display:block;text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f9faf7;text-decoration:none;color:inherit;cursor:pointer;font-family:inherit}
.hq-item b{display:block;font-size:14px;margin-bottom:3px}
.hq-item small{font-size:11.5px;color:#6b7772;line-height:1.45;display:block}
.hq-item:hover{border-color:var(--green)}
.hq-item.warn:hover{border-color:#b53c21}
.hq-item.passive{cursor:default}
.hq-item.passive:hover{border-color:var(--line)}
@media(max-width:560px){.hq-grid{grid-template-columns:1fr}}
/* Candidato cliccabile */
.cand-line{display:contents;cursor:pointer}
.cand .who-main b{text-decoration:underline;text-decoration-color:#cfd9d2;text-underline-offset:3px}

/* Scheda professionista v2: blocchi chiari */
.prof-sec{margin-top:16px;padding-top:14px;border-top:1px solid #eef1ee}
.prof-sec .kicker{margin-bottom:8px;display:block}
.prof-rating{display:flex;align-items:center;gap:8px;margin-top:6px}
.prof-rating .stars.big{color:#d9a62e}
.prof-rating b{font-size:16px}
.prof-rating small{color:#6b7772}
.prof-chat{margin-top:10px;align-self:flex-start}
#prof-nome{font-size:24px}

/* Scheda: nome al livello della foto, testata compatta */
#prof-sheet .sheet-head{margin-bottom:8px}
#prof-sheet .sheet-head h2:empty{display:none}
.prof-hero{display:flex;gap:14px;align-items:flex-start}
.ph-nome{font-size:21px;line-height:1.15;margin:0}
.ph-tit{margin:3px 0 0;font-size:13.5px;font-weight:600;color:#3d4a45}
.prof-title small{display:block;margin-top:3px}
.seg-box .seg-note{margin-top:10px}

/* Richieste aperte: numero attaccato al titolo */
.dash-head.inlinecount h2{display:flex;align-items:center;gap:10px}
.dash-head.inlinecount .count-badge{position:static}
/* Un blocco = un pensiero: separatori a puntini */
#view-area .area-right > .dash-block + .dash-block{border-top:2px dashed #d8ded9;padding-top:18px;margin-top:18px}
#view-area .area-right > .dash-block[hidden] + .dash-block{border-top:0;padding-top:0;margin-top:0}
#view-area .area-left > .side-card + .side-card{border-top:2px dashed #d8ded9;padding-top:18px;margin-top:6px;border-radius:0;border-left:0;border-right:0;border-bottom:0;background:transparent}
/* Nessuna aperta: prima la statistica e il modulo, niente scatole vuote */
@media(max-width:980px){
  body.no-open .area-grid > .area-left{order:1}
  body.no-open .area-grid > *:not(.area-left){order:2}
}

/* Liste lunghe: 4 plashki e poi il triangolo */
.clamped{max-height:520px;overflow:hidden;position:relative}
.clamped::after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(to bottom,rgba(249,250,247,0),#eff1ed);pointer-events:none}
.vedi-tutto{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:40px;margin-top:8px;border:1px dashed #cfd8d1;border-radius:12px;background:#fff;font-size:13px;font-weight:700;color:var(--green);cursor:pointer;font-family:inherit}
.vt-arr{width:8px;height:8px;border-right:2.2px solid var(--green);border-bottom:2.2px solid var(--green);transform:rotate(45deg) translateY(-2px);display:inline-block}
.vt-arr.up{transform:rotate(225deg) translateY(-2px)}

/* Carta lavoro: professionista con avatar in alto, info a tutta larghezza fino ai bottoni */
.job .who{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:auto auto;gap:2px 10px;align-items:center}
.job .who .who-main{display:contents}
.job .who .avatar{grid-column:1;grid-row:1}
.job .who .who-main b{grid-column:2;grid-row:1;font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.job .who .who-main small{grid-column:1 / span 2;grid-row:2;display:block;line-height:1.5}
.job .who .who-side,.job .who .tel-btn,.job .who > .flag-btn{grid-row:1 / span 2;align-self:center}
.job .who .who-side{grid-column:3 / span 2}
.job .who > .flag-btn{grid-column:3}
.job .who .tel-btn{grid-column:4}

/* La faccio io: il lavoro chiama il professionista */
.faccio-io{margin-left:auto;display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:15px;background:var(--signal);color:#fff;font-size:12px;font-weight:800;text-decoration:none;white-space:nowrap}
.faccio-io:hover{background:#d9552f}
#feed-switch button{white-space:nowrap;display:inline-flex;align-items:center}
#fs-n{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;margin-left:8px;border-radius:6px;background:var(--signal);color:#fff;font-size:12px;font-weight:800;line-height:1;animation:fsradar 1.6s ease-out infinite}
#fs-n:empty{display:none;animation:none}
@keyframes fsradar{0%{box-shadow:0 0 0 0 rgba(240,100,60,.55)}70%{box-shadow:0 0 0 9px rgba(240,100,60,0)}100%{box-shadow:0 0 0 0 rgba(240,100,60,0)}}
@media(prefers-reduced-motion:reduce){#fs-n{animation:none}}

/* Classifica v3: nome al livello dell icona, righe nette, mestieri */
#leaderboard li{display:grid !important;grid-template-columns:22px auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;row-gap:2px;align-items:center;padding:12px 0;border-bottom:1px solid #e3e8e3}
#leaderboard li:last-child{border-bottom:0}
#leaderboard li .pos{grid-column:1;grid-row:1}
#leaderboard li .avatar{grid-column:2;grid-row:1}
#leaderboard li .who{display:contents}
#leaderboard li .who b{grid-column:3;grid-row:1;font-size:14.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#leaderboard li .who small{grid-column:2 / span 2;grid-row:2;font-size:11.5px;color:#6b7772;white-space:normal;line-height:1.5}
#leaderboard li .who small.lb-cats{grid-row:3}
#leaderboard .lb-cats i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:0}
#leaderboard .who small .stars{color:#d9a62e;vertical-align:-1px}
#leaderboard .who small b{color:#3d4a45}

/* Tre passi v2: stesso bordo per tutti, colore a gradiente fino al numero,
   numero e titolo sulla stessa riga, descrizione a tutta larghezza,
   freccia giu tra un passo e l altro sotto la colonna dei numeri */
.passi{gap:22px}
.passo{border:1px solid var(--line);border-left:1px solid var(--line);position:relative;overflow:visible}
.passo.p2,.passo.p3{margin-left:0}
.passo.p1{background:linear-gradient(90deg, rgba(15,106,88,.16) 0, rgba(15,106,88,.05) 46px, #fff 78px)}
.passo.p2{background:linear-gradient(90deg, rgba(240,100,60,.16) 0, rgba(240,100,60,.05) 46px, #fff 78px)}
.passo.p3{background:linear-gradient(90deg, rgba(93,143,192,.18) 0, rgba(93,143,192,.06) 46px, #fff 78px)}
.passo summary{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:14px;row-gap:3px;align-items:center}
.passo summary i{grid-column:1;grid-row:1}
.passo summary > span{display:contents}
.passo summary b{grid-column:2;grid-row:1}
.passo summary small{grid-column:1 / span 2;grid-row:2;margin-top:0}
.passo-body{padding-left:16px}
/* frecce tra i passi rimosse su richiesta: basta il chevron a destra */

/* Diritto di Dio: eliminare per sempre */
.god.del{color:#b53c21;border-color:#e0b7ab}
.god.del:hover{background:#b53c21;color:#fff;border-color:#b53c21}
.conv-row .msgdel{margin-right:8px;flex:0 0 auto}

/* Pagine servizio (SEED) */
.sv-body{background:var(--bg, #eff1ed)}
.sv-hero{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start;margin:18px 0 20px}
.sv-copy h1{font-size:clamp(30px,4.6vw,44px);line-height:1.06;margin:10px 0 14px}
.sv-copy h1 em{font-style:normal;color:var(--green)}
.sv-copy p{font-size:15.5px;line-height:1.65;color:#33413b;max-width:56ch}
.sv-points{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:8px}
.sv-points li{padding-left:24px;position:relative;font-size:14px;color:#2f3f39;font-weight:600}
.sv-points li::before{content:"";position:absolute;left:2px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--green)}
.sv-photo{margin:0;border-radius:16px;overflow:hidden;box-shadow:0 18px 34px -22px rgba(16,45,40,.4)}
.sv-photo img{display:block;width:100%;height:auto}
.sv-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 20px;margin:0 0 22px}
.sv-card h2{font-size:22px;margin-bottom:12px}
.sv-card .field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sv-card label{display:block;font-size:13px;font-weight:700;margin:12px 0 6px}
.sv-card input,.sv-card textarea,.sv-card select{width:100%;box-sizing:border-box}
.sv-ok{background:#eef5f1;border:1px solid #cfe3d8;border-radius:12px;padding:16px 18px}
.sv-ok b{display:block;margin-bottom:6px}
.sv-ok p{margin:0;font-size:14px;line-height:1.6;color:#2f3f39}
.sv-sec{margin:0 0 22px}
.sv-sec h2{font-size:20px;margin-bottom:10px}
.sv-sec > p{font-size:14.5px;line-height:1.7;color:#3d4a45;max-width:72ch}
.sv-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px 20px}
.sv-list li{padding:9px 0 9px 24px;position:relative;font-size:14px;color:#2f3f39;border-bottom:1px solid #e6eae6}
.sv-list li::before{content:"";position:absolute;left:2px;top:15px;width:7px;height:7px;border-radius:50%;background:var(--signal)}
.sv-cta{display:inline-flex;margin-top:16px;text-decoration:none}
.sv-final{text-align:center}
.sv-final .sv-cta{margin-top:12px}
.sv-foot{border-top:1px solid var(--line);padding:18px 0 26px;margin-top:8px}
.sv-foot p{font-size:12.5px;color:#6b7772}
.sv-foot a{color:var(--green)}
@media(max-width:860px){.sv-hero{grid-template-columns:1fr}.sv-photo{max-width:340px}}

/* Perché è nato QuiServe */
.perche{margin:26px 0}
.perche-grid{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;display:grid;gap:12px;max-width:860px}
.perche-grid p{margin:0;font-size:14.5px;line-height:1.7;color:#33413b}
/* Lavori non chiusi */
.nc-warn{display:block;margin-top:10px;color:#b53c21}
.rv-lim{color:#8b9591;font-size:11px}
.linkish.del{color:#b53c21}

/* Griglia visiva: situazioni riconoscibili */
.vis-sec{margin:26px 0}
.vis-lead{margin:0 0 14px;font-size:14.5px;color:#3d4a45;max-width:64ch}
.vis-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vis-grid.lav{grid-template-columns:repeat(4,1fr);margin-top:12px}
.vis-card{position:relative;border:0;padding:0;background:none;border-radius:14px;overflow:hidden;cursor:pointer;aspect-ratio:4/5;box-shadow:0 12px 24px -18px rgba(16,45,40,.45);text-align:left;font-family:inherit}
.vis-card.still{cursor:default;margin:0}
.vis-card img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block;transition:transform .35s}
.vis-card:not(.still):hover img{transform:scale(1.04)}
.vis-cap{position:absolute;left:8px;right:8px;bottom:8px;background:linear-gradient(160deg,rgba(16,45,40,.92),rgba(16,45,40,.78));border-radius:10px;padding:8px 11px;color:#fff}
.vis-cap b{display:block;font-size:13.5px;line-height:1.25}
.vis-cap small{display:block;font-size:11px;color:#bcd3c8;margin-top:2px}
@media(max-width:860px){.vis-grid,.vis-grid.lav{grid-template-columns:repeat(2,1fr)}}

/* Catalogo a tre file-livelli che girano in cerchio */
.cat-liv{margin:22px 0 10px}
.cat-liv .kicker{font-size:16px;font-weight:850;letter-spacing:.07em}
.cat-liv.lv1 .kicker{color:#2e74b5}
.cat-liv.lv2 .kicker{color:var(--signal-2)}
.cat-liv.lv3 .kicker{color:var(--green-2)}
.cat-row{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;border-radius:14px;min-width:0;max-width:100%;scroll-snap-type:x mandatory;scroll-padding-left:2px}
.cat-row::-webkit-scrollbar{display:none}
.cat-track{display:flex;gap:12px;width:max-content;padding:3px 2px}
.cat-track button{flex:0 0 232px;min-width:0;border:.5px solid transparent;border-radius:14px;padding:0;background:linear-gradient(#fff,#fff) padding-box, linear-gradient(150deg, color-mix(in srgb, var(--cc, #9aa8a0) 30%, transparent), color-mix(in srgb, var(--cc, #9aa8a0) 6%, transparent) 45%, transparent 75%) border-box;text-align:left;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;font-family:inherit;box-shadow:2px 4px 10px -8px rgba(16,45,40,.28) !important;scroll-snap-align:start}
@supports not (background: color-mix(in srgb, red 50%, transparent)){.cat-track button{border-color:var(--line);background:#fff}}
#catalog .cat-track button, #catalog .cat-track button.cat-colored{animation:none !important;outline:none !important;border:.5px solid transparent !important;box-shadow:1px 3px 8px -7px rgba(16,45,40,.22) !important}
.cat-track button:hover{background:linear-gradient(#fff,#fff) padding-box, linear-gradient(150deg, color-mix(in srgb, var(--cc, #9aa8a0) 45%, transparent), color-mix(in srgb, var(--cc, #9aa8a0) 10%, transparent) 55%, transparent 80%) border-box}
.cat-track img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center 30%;display:block}
.cat-track span{padding:12px 14px 14px;display:block;flex:1}
.cat-track b{display:block;font-size:17px;line-height:1.25}
.cat-track small{display:block;color:#5d6a65;font-size:13px;line-height:1.4;margin-top:4px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.8em}
@media(max-width:680px){.cat-track button{flex:0 0 calc((var(--catw, 100vw) - 12px)/2)}.cat-track b{font-size:17px}.cat-track small{font-size:13.5px}.cat-liv .kicker{font-size:15px}}

/* /pro/: la coda viva degli specialisti */
.pro-hero-side{min-width:0}
.giro{margin-top:16px;min-width:0;max-width:100%}
.giro-head{margin-bottom:10px}
.giro-head b{display:block;font-size:17px;margin-top:2px}
.giro-body{position:static;min-width:0;max-width:100%}
.giro-frame{width:100%;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;border-radius:16px}
.giro-frame::-webkit-scrollbar{display:none}
.giro-track{display:flex;flex-direction:row;gap:10px;width:max-content}
.giro-card{position:relative;border:0;padding:0;background:none;border-radius:14px;overflow:hidden;cursor:pointer;width:calc((var(--girow, 440px) - 10px)/2);aspect-ratio:3/4;flex:0 0 auto;box-shadow:0 12px 22px -18px rgba(16,45,40,.4);font-family:inherit}
.giro-card img{width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block}
.giro-top{position:absolute;top:8px;left:8px;right:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:linear-gradient(160deg,rgba(16,45,40,.92),rgba(16,45,40,.72));border-radius:10px;padding:7px 11px;color:#fff;z-index:1}
.giro-top b{font-size:13.5px}
.giro-top i{font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:9px}
.giro-top i.gia{background:#2d9a6a;color:#fff}
.giro-top i.cerca{background:var(--signal);color:#fff;animation:candpulse 2s ease-out infinite}


.pro-foot-links{max-width:1148px;margin:0 auto;padding:18px 18px 28px}
@media(max-width:680px){.map-switch{width:100%;display:flex}.map-switch button{flex:1 1 0;height:42px;font-size:14.5px}.map-legend,.zone-list{justify-content:center}.map-filters .kicker{text-align:center}.map-legend button,.zone-list button{height:38px;font-size:14px}}

/* ===== Installazione app (PWA) ===== */
.app-get{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--signal);background:var(--signal);color:#fff;border-radius:999px;font-size:13.5px;font-weight:800;font-family:inherit;cursor:pointer}
.app-get:hover{background:var(--signal-2);border-color:var(--signal-2)}
header.pro-top .app-get{margin-left:auto;margin-right:10px}
header.pro-top .app-get + a.linkish, header.pro-top .app-get + .me{margin-left:0}
.qsi-lock{overflow:hidden}
.qsi-ovl{position:fixed;inset:0;background:rgba(16,45,40,.55);z-index:200;display:grid;place-items:center;padding:14px;overflow-y:auto}
.qsi-card{position:relative;background:#fff;border-radius:10px;max-width:560px;width:92%;max-height:94vh;overflow-y:auto;padding:26px 22px 22px;box-shadow:0 24px 70px -20px rgba(0,0,0,.45)}
.qsi-x{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;background:#f3f5f2;border-radius:50%;font-size:14px;color:#40534c;cursor:pointer}
.qsi-q{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--green);color:#fff;font-size:28px;font-weight:700;flex:none}
.qsi-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.qsi-head b{font-size:25px;line-height:1.15}
.qsi-note{font-size:17px;line-height:1.55;color:#33413c;margin:0 0 12px}
.qsi-plus{margin:0 0 16px;padding:0 0 0 2px;list-style:none;display:grid;gap:7px}
.qsi-plus li{font-size:15.5px;color:#40534c;padding-left:24px;position:relative}
.qsi-plus li::before{content:"";position:absolute;left:0;top:4px;width:14px;height:14px;border-radius:50%;background:#dff0e8 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%230f6a58" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="m5 13 4 4 10-10"/></svg>') center/9px no-repeat}
.qsi-cta{width:100%;height:56px;border:0;border-radius:12px;background:var(--signal);color:#fff;font-size:18.5px;font-weight:800;font-family:inherit;cursor:pointer}
.qsi-cta:hover{background:var(--signal-2)}
.qsi-later{width:100%;margin-top:8px;height:40px;border:0;background:transparent;color:#68736f;font-size:15px;font-family:inherit;cursor:pointer;text-decoration:underline}
.qsi-okwrap{text-align:center;display:grid;justify-items:center;gap:10px;padding:8px 0 2px}
.qsi-okwrap b{font-size:22px}
.qsi-okwrap p{font-size:16px;color:#40534c;margin:0 0 6px;line-height:1.5}
@media(max-width:680px){.app-get span{display:inline}.qsi-card{width:94%;padding:22px 15px 16px}.qsi-head b{font-size:23px}.form-heading h2{font-size:26px}.lead{font-size:17px}.section-heading>span{font-size:12.5px}}

/* Separatore di sezione */
.sec-div{border:0;border-top:2px dashed #c6cfc8;height:0;background:none;margin:20px auto;max-width:1120px;width:calc(100% - 32px)}
.sec-div:first-child,main>.sec-div:first-of-type:first-child{display:none}
/* Punti di scorrimento sotto le file del catalogo */
.cat-dots{display:flex;gap:5px;justify-content:center;margin:10px 0 0;flex-wrap:wrap}
.cat-dots i{width:7px;height:7px;border-radius:99px;background:#cfd6d0;transition:.2s}
.cat-dots i.on{background:var(--signal);width:18px}
/* ===== Guida installazione: modello Euroveneta, colori QuiServe ===== */
.qsi-q-sm{width:34px;height:34px;border-radius:9px;font-size:19px}
.inst-tabs{display:flex;gap:10px;margin:6px 0 16px}
.inst-tab{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:15.5px;font-weight:700;color:#40534c;font-family:inherit;cursor:pointer}
.inst-tab.active{background:var(--green);color:#fff;border-color:var(--green)}
.mk-step{margin:8px 0 12px;font-size:16.5px;line-height:1.45}
.mk-bar{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:0 8px 22px -12px rgba(16,45,40,.18)}
.mk-url{flex:1;background:#eef1ee;border-radius:999px;padding:11px 16px;color:#56645f;font-size:15px}
.mk-ring{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--green);border:2.5px solid var(--green-2);box-shadow:0 0 0 4px rgba(15,106,88,.14);flex:0 0 auto}
.mk-menu{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;box-shadow:0 8px 22px -12px rgba(16,45,40,.18)}
.mk-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#eef1ee;border-radius:12px;padding:13px 14px;margin:6px 0;color:#56645f;font-size:15.5px}
.mk-item.active{background:rgba(15,106,88,.08);border:2px solid var(--green-2);color:var(--ink);font-weight:700}
.mk-plus{width:26px;height:26px;border-radius:8px;border:1.6px solid var(--green-2);color:var(--green);display:flex;align-items:center;justify-content:center;flex:0 0 auto;background:#fff}
.mk-home{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 22px -12px rgba(16,45,40,.18);text-align:center}
.mk-apps{display:flex;gap:12px;justify-content:center}
.mk-app{width:56px;height:56px;border-radius:14px;background:#eef1ee;display:flex;align-items:center;justify-content:center;position:relative}
.mk-app-q{background:#fff;border:2px solid var(--green-2);box-shadow:0 4px 12px rgba(15,106,88,.25)}
.mk-ok{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:var(--green-2);color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(16,45,40,.25)}
.mk-cap{margin-top:10px;font-size:14px;color:#56645f}
.inst-panel .wstep{display:none}
.inst-panel .wstep.on{display:block;animation:wfade .25s ease}
.wnav{display:flex;align-items:center;gap:10px;margin-top:16px}
.wnav>span{width:64px}
.wback{background:none;border:none;color:#68736f;font:inherit;font-size:14px;cursor:pointer;padding:6px 0;width:64px;text-align:left}
.wnext{flex:1;background:var(--signal);color:#fff;border:none;border-radius:999px;font:inherit;font-weight:800;font-size:16.5px;padding:15px 18px;cursor:pointer;box-shadow:0 4px 14px rgba(240,100,60,.3)}
.wnext:hover{background:var(--signal-2)}
.wdots{display:flex;gap:5px;justify-content:center;margin-top:12px}
.wdots i{width:7px;height:7px;border-radius:99px;background:#d7ded9}
.wdots i.on{background:var(--signal);width:18px}
.mk-target{position:relative;animation:mkGrow 1.3s ease-in-out infinite}
.mk-tap{position:absolute;width:40px;height:40px;border:3px solid var(--green-2);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;animation:mkPulse 1.3s ease-out infinite}
.mk-arrow{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);pointer-events:none;z-index:3;animation:mkBob 1.3s ease-in-out infinite;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
.mk-sheet{background:#f2f2f6;border:1px solid #ddd;border-radius:16px;padding:12px 14px}
.mk-sheethead{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid #e3e3e8;margin-bottom:12px}
.mk-siteicon{width:38px;height:38px;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.mk-sitename{font-size:13px;font-weight:700;line-height:1.25}
.mk-sitename small{font-weight:400;color:#8a8f96}
.mk-acts{display:flex;gap:18px;justify-content:center;padding:8px 0 4px}
.mk-actc{width:48px;height:48px;border-radius:50%;background:#e4e4ea;display:flex;align-items:center;justify-content:center;color:#333}
.mk-actlbls{display:flex;gap:18px;justify-content:center;font-size:11px;color:#68736f;text-align:center}
.mk-actlbls span{width:48px}
.mk-confirm{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f8f8fa;border:1px solid #e2e2e8;border-radius:12px;padding:12px 14px;font-size:13.5px;margin-bottom:10px}
.mk-cancel{color:#8a8f96}
.mk-ctitle{font-weight:700;font-size:12px;text-align:center}
.mk-add{color:#0a72e8;font-weight:800;padding:4px 8px}
@keyframes mkGrow{0%,100%{transform:scale(1)}50%{transform:scale(1.13)}}
@keyframes mkPulse{0%{box-shadow:0 0 0 0 rgba(15,106,88,.5)}70%{box-shadow:0 0 0 14px rgba(15,106,88,0)}100%{box-shadow:0 0 0 0 rgba(15,106,88,0)}}
@keyframes mkBob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,7px)}}
@keyframes wfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Accenti colorati nei titoli (legge nonna-first) */
.hl-o{font-style:normal;color:var(--signal)}
.hl-b{font-style:normal;color:#2e74b5}
.hl-g{font-style:normal;color:var(--green-2)}

.lbl-start{color:var(--signal)}
h1 em,h2 em{font-style:normal}
.giro-dots{margin-top:10px}
@media(max-width:680px){.form-heading h2{font-size:27px}.request-form label{font-size:15.5px}.lead{font-size:17px}}

.foot-neo a{color:inherit;font-weight:700}

.stars-empty{color:#bcc6bf}
.pill.incorso{background:#fdebd3;color:#9a6a15}
@media(max-width:680px){.hero h1 .h1-hot,.hero h1 .h1-cool{font-size:1.09em}.map{height:280px !important}}

.feed-card{min-height:0}
.feed-card .recent-feed{flex:1 1 0;min-height:0;overflow-y:auto;scrollbar-width:thin;padding-right:4px}
@media(max-width:980px){.feed-card .recent-feed{flex:none;min-height:auto;overflow:visible}}

.hm-wrap{max-width:760px;margin:26px auto 0;padding:0 16px}
.hm-wrap .hero-motiv{margin:0}
