/* Stile delle pagine applicative: portale produttori, firma, area riservata */
.app{max-width:1100px;margin:0 auto;padding:2.5rem 1.25rem 5rem;display:flex;flex-direction:column;gap:1.5rem;position:relative;z-index:1}
.app h1{font-family:var(--fd);font-weight:300;font-size:clamp(2rem,4.5vw,3rem);letter-spacing:-1px;line-height:1.08;text-wrap:balance}
.app h1 em{font-style:italic;color:var(--gtext)}
.app h2{font-family:var(--fd);font-weight:300;font-size:1.55rem;letter-spacing:-.3px;line-height:1.2}
.app h3{font-family:var(--fm);font-weight:400;font-size:.64rem;color:var(--muted);letter-spacing:1.8px;text-transform:uppercase}
.app p{line-height:1.7}
.muted{color:var(--muted)}
.mono{font-family:var(--fm);font-variant-numeric:tabular-nums}
.stack{display:flex;flex-direction:column;gap:1.1rem}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.panel{background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:1.6rem;display:flex;flex-direction:column;gap:1.2rem;min-width:0}
:root[data-theme="light"] .panel{box-shadow:0 1px 2px rgba(11,26,28,.04)}
.wizard{display:grid;grid-template-columns:230px minmax(0,1fr);gap:1.8rem;align-items:start}
.rail{display:flex;flex-direction:column;gap:1rem;position:sticky;top:90px}
.steps{list-style:none;display:flex;flex-direction:column;gap:2px;counter-reset:s}
.steps li{counter-increment:s;display:flex;gap:.75rem;align-items:center;padding:.6rem .7rem;border-radius:10px;color:var(--muted);font-size:.92rem;cursor:pointer}
.steps li::before{content:counter(s);font-family:var(--fm);font-size:.75rem;width:26px;height:26px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;flex:none}
.steps li.on{color:var(--fg);background:var(--raise)}
.steps li.on::before{background:var(--g1);border-color:var(--g1);color:#fff}
.steps li.done::before{content:"✓";color:var(--gtext);border-color:var(--gtext)}
.steps li.locked{cursor:default;opacity:.5}
.help{border:1px solid var(--line);border-radius:12px;padding:1rem;font-size:.85rem;display:flex;flex-direction:column;gap:.5rem}
.help b{font-family:var(--fd);font-weight:400;font-size:1.05rem}
.grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}
.c6{grid-column:span 6}.c4{grid-column:span 4}.c3{grid-column:span 3}.c2{grid-column:span 2}.c1{grid-column:span 1}
.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.field label,.legend{font-size:.84rem;font-weight:500;color:var(--fg2)}
.field label small{font-weight:300;color:var(--muted)}
.hint{font-size:.78rem;color:var(--muted);line-height:1.5}
.warnhint{font-size:.8rem;color:var(--warn)}
.err{font-size:.8rem;color:var(--bad);min-height:0}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=password],input[type=search],select,textarea{font:400 1rem var(--fb);color:var(--fg);background:var(--field);border:1px solid var(--line2);border-radius:10px;padding:.72rem .85rem;width:100%;min-width:0;transition:border-color .2s}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--g2);outline:none}
input.up{text-transform:uppercase;font-family:var(--fm)}
[aria-invalid="true"]{border-color:var(--bad)!important}
.linkbtn{background:none;border:0;padding:0;color:var(--gtext);font:500 .8rem var(--fb);text-decoration:underline;cursor:pointer}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.seg label{display:flex;flex-direction:column;gap:.3rem;border:1px solid var(--line2);border-radius:14px;padding:1.1rem 1.2rem;cursor:pointer;transition:border-color .2s,background .2s}
.seg label:has(input:checked){border-color:var(--g2);background:var(--gsoft)}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg .t{font-weight:600;font-size:1rem}
.seg .v{font-family:var(--fd);font-weight:300;font-size:1.7rem;color:var(--gtext);letter-spacing:-.5px}
.seg .d{font-size:.82rem;color:var(--muted);line-height:1.5}
.plant{display:flex;gap:.8rem;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem}
.plant .who{display:flex;flex-direction:column;min-width:0}
.plant .who b{font-family:var(--fm);font-weight:400;overflow-wrap:anywhere}
.editor{border:1px solid var(--line);border-radius:14px;padding:1.2rem;background:var(--raise);display:flex;flex-direction:column;gap:1rem}
dl.recap{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.35rem 1.2rem;font-size:.9rem}
dl.recap dt{color:var(--muted)}
dl.recap dd{overflow-wrap:anywhere}
.checks{display:flex;flex-direction:column;gap:.75rem}
.checks label{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;line-height:1.55;color:var(--fg2)}
.checks input{margin-top:.25rem;accent-color:var(--g1);width:17px;height:17px;flex:none}
.pdfview{max-height:620px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--raise);padding:.8rem;display:flex;flex-direction:column;gap:.8rem}
.pdfview canvas{width:100%;height:auto;display:block;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.actions{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:space-between;align-items:center}
.ok-box{border:1px solid var(--ok);border-radius:16px;padding:1.6rem;display:flex;flex-direction:column;gap:1rem}
.ok-box h2{color:var(--ok)}
ol.how{padding-left:1.2rem;display:flex;flex-direction:column;gap:.4rem;line-height:1.6}
.otp-input{font:500 2rem var(--fm)!important;letter-spacing:.45em;text-align:center;max-width:300px}
.pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;border-radius:99px;padding:.18rem .65rem;border:1px solid currentColor;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.wait{color:var(--warn)}.pill.ok{color:var(--ok)}.pill.info{color:var(--gtext)}.pill.off{color:var(--muted)}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:820px){
  .wizard{grid-template-columns:minmax(0,1fr)}
  .rail{position:static}
  .steps{flex-direction:row;gap:4px}
  .steps li{flex:1;justify-content:center;padding:.5rem .2rem;font-size:.78rem}
  .steps li span{display:none}
  .steps li.on span{display:inline}
  .help{display:none}
  .grid,.seg{grid-template-columns:minmax(0,1fr)}
  .c6,.c4,.c3,.c2,.c1{grid-column:1/-1}
  .panel{padding:1.2rem}
  dl.recap{grid-template-columns:minmax(0,1fr);gap:0}
  dl.recap dd{margin-bottom:.5rem}
}
/* pagine del sito (Luce & Gas, Partner, Area Clienti, legali) */
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:.88rem;line-height:1.55;color:var(--fg2)}
.check input{margin-top:.25rem;accent-color:var(--g1);width:17px;height:17px;flex:none}
.app .split-list{list-style:none;display:flex;flex-direction:column;gap:.6rem;padding:0;margin:0}
.app .split-list li{display:flex;align-items:flex-start;gap:.7rem;font-size:.92rem;color:var(--fg2);line-height:1.6}
.app .split-list li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--g2);flex:none;margin-top:.6rem}
.testo-legale{line-height:1.75}
.testo-legale h2{margin-top:.6rem}.testo-legale ul,.testo-legale ol{padding-left:1.2rem;display:flex;flex-direction:column;gap:.4rem}
.testo-legale a{color:var(--gtext)}
.testo-legale{gap:.9rem;max-width:860px}
.testo-legale h2{font-size:1.3rem;margin-top:1rem;scroll-margin-top:90px}
.testo-legale h3{margin-top:.4rem}
.testo-legale p,.testo-legale li{color:var(--fg2);font-size:.95rem}
.indice{border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem;background:var(--raise)}
.indice ol{padding-left:1.2rem;columns:2;column-gap:2rem;font-size:.9rem;line-height:1.9}
.tablebox-l{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.tablebox-l table{border-collapse:collapse;width:100%;font-size:.88rem;min-width:520px}
.tablebox-l th{font:500 .62rem var(--fm);letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--line)}
.tablebox-l td{padding:.75rem .9rem;border-top:1px solid var(--line);vertical-align:top;color:var(--fg2);line-height:1.55}
.tablebox-l td:first-child{color:var(--fg);font-weight:500;width:34%}
.testo-legale code{font-family:var(--fm);font-size:.82rem}
@media (max-width:640px){.indice ol{columns:1}.tablebox-l table{min-width:0}.tablebox-l thead{display:none}.tablebox-l table,.tablebox-l tbody,.tablebox-l tr,.tablebox-l td{display:block;width:auto!important}.tablebox-l tr{padding:.7rem .9rem;border-top:1px solid var(--line)}.tablebox-l tr:first-child{border-top:0}.tablebox-l td{border:0;padding:.15rem 0}}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--fg);color:var(--ink);padding:.7rem 1.1rem;border-radius:10px;font-size:.9rem;z-index:300;box-shadow:0 6px 24px rgba(0,0,0,.25);max-width:calc(100% - 32px)}
