/* Integrazioni grafiche del portale (compilazione azienda, consolle, pagine di servizio) */
.brand .logo{height:34px}
.azname{font-family:var(--cond);font-weight:700}
@media (max-width:640px){ .brand .sep,.azname{display:none} .brand .logo{height:28px} }
.hero h1{font-size:2rem;margin:0 0 8px}

/* messaggi */
.msg{border-radius:8px;padding:10px 12px;margin:12px 0;background:var(--soft);border:1px solid var(--line)}
.msg.ok{background:var(--okbg);border-color:transparent;color:var(--ok)}
.msg.err{background:var(--ncbg);border-color:transparent;color:var(--nc)}
.txt-nc{color:var(--nc)}

/* accesso e pagine di servizio */
.authbox{max-width:440px;margin:40px auto}
.authbox h1{font-size:1.6rem;margin-bottom:10px}
.authbox form{display:grid;gap:12px;margin-top:10px}
.legal{max-width:820px;margin:24px auto}
.legal h1{font-size:1.6rem}
.legal h2{font-size:1.1rem;margin:18px 0 6px}
.legal p,.legal li{max-width:75ch;line-height:1.55}

/* dashboard consolle */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 14px;border-bottom:2px solid var(--line)}
.tabs button{border:0;background:transparent;padding:10px 14px;font-weight:600;color:var(--ink2);border-bottom:3px solid transparent;margin-bottom:-2px;min-height:44px}
.tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}
.tabs .tnew{margin-left:auto;color:var(--brand)}
.tabs .cnt{display:inline-block;min-width:22px;padding:0 6px;border-radius:11px;background:var(--nabg);font-size:.8rem;margin-left:4px}
.tabs button.on .cnt{background:var(--brand);color:var(--brand-ink)}
.card h3 .chip{vertical-align:middle;margin-left:6px}
.linkbox{display:flex;gap:8px;margin-top:8px}
.linkbox input{flex:1}
.chip.st-consegnato{background:var(--partbg);color:var(--part)}
.chip.st-inviato{background:var(--okbg);color:var(--ok)}
.chip.st-invitato,.chip.st-in_compilazione{background:var(--nabg);color:var(--ink2)}
.aztxt{font-size:.82rem;color:var(--brand);margin-top:4px}
.sendbox{border:1px solid var(--brand);border-radius:10px;padding:14px;margin:18px 0}
.sendbox legend{padding:0 6px}
.sendbox textarea{width:100%}

/* compilazione azienda */
.progress{height:6px;background:var(--nabg);border-radius:3px;overflow:hidden;margin:4px 0 14px}
.progress i{display:block;height:100%;background:var(--brand);width:0;transition:width .3s}
@media (prefers-reduced-motion:reduce){.progress i{transition:none}}
.intro-panel{max-width:760px;margin:20px auto}
.intro-panel h1{font-size:1.8rem;margin-bottom:10px}
.howto{padding-left:20px;line-height:1.55;max-width:70ch}
.howto li{margin:6px 0}
.ttop{text-align:right;line-height:1.3}
.timer.paused{opacity:.55}
.az .q.azq{grid-template-columns:minmax(0,1fr) auto}
.azq .qtxt{font-weight:500;font-size:1.02rem;line-height:1.4}
.qhelp{margin-top:4px}
.qhelp summary{cursor:pointer;color:var(--brand);font-size:.85rem;font-weight:600;list-style:none}
.qhelp summary::-webkit-details-marker{display:none}
.qhelp summary::before{content:"+ "}
.qhelp[open] summary::before{content:"− "}
.qhelp p{margin:4px 0 0;font-size:.88rem;color:var(--ink2);max-width:70ch}
.yn3 button{min-width:64px;min-height:44px}
.yn3 button.on{background:var(--brand);color:var(--brand-ink)}
.yn3 button.on.a-C{background:var(--ok);color:#fff}
.yn3 button.on.a-NC{background:var(--nc);color:#fff}
.yn3 button.on.a-NV{background:var(--nv);color:#fff}
.fhelp{font-size:.8rem;font-weight:400;color:var(--ink2)}
.filt .fhelp{margin-top:2px}
.navbtns{justify-content:space-between;margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}
.done h1{color:var(--ok)}
.alert14{border-left:4px solid var(--nc);background:var(--ncbg);color:var(--ink);padding:12px 14px;border-radius:6px;margin:14px 0;line-height:1.5}
@media (max-width:640px){ .az .q.azq{grid-template-columns:1fr} .yn3{width:100%} .yn3 button{flex:1} .navbtns .btn{flex:1} }
input[type=email],input[type=password]{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:9px 10px;min-height:42px;color:var(--ink);font-weight:500;width:100%;font:inherit}
a.btn{display:inline-flex;align-items:center;text-decoration:none;color:var(--ink)}
a.btn.primary{color:var(--brand-ink)}
/* installazione guidata */
.wiz{max-width:640px;margin:24px auto}
.wiz h1{font-size:1.5rem;margin:6px 0 8px}
.wform{display:grid;gap:12px;margin-top:10px}
.wform fieldset{display:grid;gap:12px;margin:8px 0 0}
.wsteps{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 14px;flex-wrap:wrap}
.wsteps li{display:flex;align-items:center;gap:6px;color:var(--ink2);font-weight:600;font-size:.9rem}
.wsteps li span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--nabg)}
.wsteps li.on{color:var(--brand)}.wsteps li.on span{background:var(--brand);color:var(--brand-ink)}
.wsteps li.done span{background:var(--okbg);color:var(--ok)}
.wsteps li+li::before{content:"";width:18px;height:2px;background:var(--line);margin-right:4px}
/* Aggiornamenti */
.msg.warn{background:var(--partbg,#FFF4DE);border-color:transparent}
table.agg{width:100%;border-collapse:collapse;margin:10px 0 16px;font-size:.92rem}
table.agg th,table.agg td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
table.agg th{color:var(--ink2);font-weight:600;width:auto}
.aggform{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:8px 0}
.aggform label.f{flex:1 1 260px}
.verlab{font-size:.75rem;color:var(--ink2);margin-right:6px}
.panel form + h2{margin-top:24px}
/* Voci da preventivare */
.vcat{margin:18px 0 8px}
.vcat h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
table.vtab{width:100%;border-collapse:collapse;font-size:.92rem}
table.vtab th,table.vtab td{border-bottom:1px solid var(--line);padding:6px;text-align:left;vertical-align:top}
table.vtab th{color:var(--ink2);font-weight:600;font-size:.8rem}
table.vtab td:first-child{width:28px}
table.vtab td:nth-child(2){width:44px}
table.vtab tr:not(.on){opacity:.72}
table.vtab input.vq{width:76px}
table.vtab input.vn{width:100%;min-width:120px}
table.vtab input[type=text]{width:100%}
details.valt{margin:6px 0}
details.valt summary{cursor:pointer;color:var(--brand);font-weight:600;padding:4px 0}
@media (max-width:700px){table.vtab td:nth-child(5),table.vtab th:nth-child(5){display:none}}
/* Richiesta di accesso (pagina pubblica) */
.reqbox{max-width:640px;margin:8px 0 20px}
.reqbox h2{font-size:1.35rem;margin-bottom:4px}
.reqform{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.reqform .pcheck,.reqform .btnrow{grid-column:1/-1}
.pcheck{display:flex;gap:10px;align-items:flex-start;line-height:1.4}
.pcheck input{width:20px;height:20px;margin-top:1px;flex:none}
.reqform .btn.primary{min-height:46px;padding-left:22px;padding-right:22px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media (max-width:640px){ .reqform{grid-template-columns:1fr} .reqform .btn.primary{width:100%;justify-content:center} }
/* Consolle: richieste e codici QR */
.tabs .cnt.hot{background:var(--nc);color:#fff}
.chip.orig{background:var(--nvbg);color:var(--nv)}
.pubbox{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.pubbox .linkbox{flex:1 1 320px;margin:0}
dialog.qrdlg{border:0;border-radius:12px;padding:0;max-width:min(440px,calc(100vw - 32px));width:100%;background:var(--paper);color:var(--ink);box-shadow:0 12px 40px rgba(0,0,0,.35)}
dialog.qrdlg::backdrop{background:rgba(10,20,26,.55)}
.qrdlg .qin{padding:18px}
.qrdlg h2{font-size:1.2rem;margin:0 0 4px}
.qrdlg .qimg{display:block;width:100%;max-width:280px;margin:12px auto;background:#fff;border-radius:8px;image-rendering:pixelated}
.qrdlg .qlink{font-size:.8rem;color:var(--ink2);overflow-wrap:anywhere;text-align:center;margin:0 0 10px}
.qrdlg .btnrow{justify-content:center;flex-wrap:wrap}
.pcheck a{color:var(--brand)}
