:root{--green:#00572f;--green2:#003f23;--yellow:#ffd329;--bg:#f4f7f5;--text:#102016;--muted:#66746c;--danger:#b00020;--ok:#087a3d;--card:#fff;--border:#dfe7e2}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.app-shell{min-height:100vh;padding-bottom:84px}.topbar{position:sticky;top:0;z-index:9;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;padding:18px 18px 16px;border-bottom:4px solid var(--yellow);box-shadow:0 2px 12px #0002}.topbar .row{display:flex;align-items:center;gap:12px}.topbar img{width:48px;height:48px;border-radius:50%;background:#fff}.topbar h1{font-size:20px;margin:0;font-weight:800}.topbar p{margin:3px 0 0;font-size:13px;opacity:.9}.container{padding:16px;max-width:760px;margin:auto}.login-bg{min-height:100vh;background:linear-gradient(160deg,var(--green),#00331c);display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:440px;background:#fff;border-radius:28px;padding:28px;box-shadow:0 20px 40px #0004;border-top:8px solid var(--yellow)}.login-logo{display:block;width:116px;height:116px;margin:0 auto 14px}.login-card h1{text-align:center;color:var(--green);font-size:25px;margin:0 0 8px}.login-card p{text-align:center;color:#53635a;margin:0 0 22px}.field{margin:12px 0}.field label{display:block;font-weight:700;font-size:14px;margin:0 0 7px}.input,select,textarea{width:100%;border:1px solid #cfdcd4;border-radius:16px;padding:14px 14px;font-size:16px;background:#fff}textarea{min-height:90px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:16px;padding:14px 18px;text-decoration:none;font-weight:800;cursor:pointer}.btn-primary{background:var(--green);color:#fff}.btn-secondary{background:#eef5f1;color:var(--green)}.btn-yellow{background:var(--yellow);color:#122}.btn-danger{background:#fff0f0;color:var(--danger)}.btn-full{width:100%}.alert{border-radius:16px;padding:13px 14px;margin:14px 0;font-size:14px}.alert-danger{background:#fff0ef;color:#9b0a0a;border:1px solid #ffc9c5}.alert-ok{background:#eefaf2;color:#086b35;border:1px solid #bde8ca}.small{font-size:13px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:22px;padding:16px;box-shadow:0 2px 12px #002b1510}.tile{text-decoration:none;min-height:108px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.tile .ico{font-size:30px;margin-bottom:9px}.tile b{color:var(--green)}.list{display:flex;flex-direction:column;gap:12px}.item{background:#fff;border:1px solid var(--border);border-radius:18px;padding:14px}.item h3{margin:0 0 6px;font-size:17px;color:var(--green)}.item p{margin:4px 0;color:#506158}.badge{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;background:#eef5f1;color:var(--green)}.badge.warn{background:#fff6d7;color:#8a6500}.badge.danger{background:#ffecec;color:#a40000}.section-title{font-size:20px;margin:4px 0 14px;color:var(--green)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:8px 5px calc(8px + env(safe-area-inset-bottom));z-index:10}.bottom-nav a{flex:1;text-decoration:none;text-align:center;color:#617269;font-size:11px;font-weight:700;padding:6px 0}.bottom-nav a span{display:block;font-size:20px;margin-bottom:2px}.bottom-nav a.active{color:var(--green)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.progress{height:10px;background:#e7eee9;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:var(--green)}@media(min-width:700px){.grid{grid-template-columns:repeat(3,1fr)}.login-card{margin-top:30px}}


/* Guida rapida primo accesso */
.guide-card{border-top:5px solid var(--yellow);margin-bottom:14px;animation:guideIn .22s ease-out}.guide-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.guide-close{width:36px;height:36px;border:0;border-radius:50%;background:#eef5f1;color:var(--green);font-size:24px;font-weight:800;line-height:1;cursor:pointer}.guide-steps{display:flex;flex-direction:column;gap:10px;margin-top:12px}.guide-step{display:grid;grid-template-columns:40px 1fr;gap:10px;text-decoration:none;background:#f8fbf9;border:1px solid var(--border);border-radius:16px;padding:12px;align-items:center}.guide-step span{width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center}.guide-step b{display:block;color:var(--green);font-size:15px}.guide-step em{display:block;color:var(--muted);font-style:normal;font-size:12px;margin-top:2px}.guide-check{display:flex;gap:8px;align-items:flex-start;margin-top:12px;font-size:13px;color:var(--muted);line-height:1.3}.guide-check input{margin-top:2px}.flow-chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;margin-bottom:6px}.flow-chips a{white-space:nowrap;text-decoration:none;background:#ff7900;color:#fff;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:800}@keyframes guideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
/* v14.2 layout mobile */
.topbar-row{gap:10px}.help-fab{width:50px;height:50px;border:0;border-radius:50%;background:var(--yellow);color:#092;font-size:25px;font-weight:900;box-shadow:0 5px 14px #0002;flex:0 0 auto}.topbar-title{flex:1;min-width:0}.logout-top{margin-left:auto;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:10px 14px;font-weight:800;background:rgba(255,255,255,.12)}.flow-chips a.current{background:#ff7900}.flow-chips a.done{background:var(--green)}.flow-chips a:not(.current):not(.done){background:#67737a}.checkline{display:block;margin:12px 0;font-weight:700;line-height:1.3}.checkline input{width:18px;height:18px;vertical-align:-3px;margin-right:8px}.soft-card{background:#f8fbf9;margin:14px 0;border-radius:18px}.soft-card h3{margin:0 0 10px;color:var(--green)}.guide-overlay{position:fixed;inset:0;background:rgba(0,30,16,.62);z-index:99;display:none;align-items:center;justify-content:center;padding:18px}.guide-overlay.open{display:flex}.guide-modal{max-width:430px;width:100%;position:relative;max-height:90vh;overflow:auto;border-top:7px solid var(--yellow)}.guide-x{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#eef5f1;color:var(--green);font-size:24px;font-weight:900}.guide-logo{display:block;width:86px;height:86px;margin:4px auto 8px}.guide-modal h2{text-align:center;color:var(--green);margin:6px 0}.progress-card{display:flex;flex-direction:column;gap:10px}.progress-step{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;text-decoration:none;background:#f9fbfa;border:1px solid var(--border);border-radius:16px;padding:12px}.progress-step span{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#66737a;color:#fff;font-weight:900}.progress-step.done span{background:var(--green)}.progress-step.current span{background:#ff7900}.progress-step b{color:var(--green)}.progress-step em{font-style:normal;color:var(--muted);font-size:12px;margin-top:2px;display:block}

/* v14.7 - Guida rapida ottimizzata mobile */
.guide-modal-v147{
  max-width:560px;
  width:min(94vw,560px);
  padding:18px 18px 20px;
  border-radius:26px;
  max-height:86vh;
  overflow:auto;
}
.guide-modal-v147 .guide-logo{
  width:72px;
  height:72px;
  margin:0 auto 4px;
}
.guide-modal-v147 h2{
  font-size:26px;
  line-height:1.05;
  margin:4px 42px 8px;
}
.guide-intro{
  color:var(--muted);
  text-align:center;
  line-height:1.35;
  font-size:15px;
  margin:0 0 14px;
}
.guide-steps-v147{
  gap:10px;
  margin-top:10px;
}
.guide-step-v147{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:13px;
  align-items:center;
  min-height:96px;
  padding:14px 16px;
  border-radius:20px;
  text-align:left;
}
.guide-step-v147 span{
  width:42px;
  height:42px;
  font-size:19px;
  align-self:center;
}
.guide-step-v147 b{
  font-size:18px;
  line-height:1.15;
  margin:0 0 6px;
}
.guide-step-v147 em{
  font-size:14px;
  line-height:1.28;
  color:#596960;
  margin:0;
  max-width:100%;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.guide-check{
  justify-content:center;
  text-align:center;
  margin:15px 0 12px;
}
@media (max-width:420px){
  .guide-modal-v147{padding:16px 14px 18px;border-radius:24px;max-height:84vh;}
  .guide-step-v147{grid-template-columns:42px 1fr;gap:10px;min-height:92px;padding:13px 12px;}
  .guide-step-v147 span{width:38px;height:38px;font-size:18px;}
  .guide-step-v147 b{font-size:16px;}
  .guide-step-v147 em{font-size:13px;line-height:1.25;}
}

/* v14.8 - guida popup leggibile e compatta */
.guide-modal-v148{
  width:min(94vw,560px);
  max-height:86vh;
  overflow:auto;
  padding:18px 18px 20px;
  border-radius:28px;
  border-top:8px solid var(--yellow);
}
.guide-modal-v148 .guide-logo{width:74px;height:74px;margin:0 auto 6px;display:block;}
.guide-modal-v148 h2{font-size:27px;line-height:1.08;text-align:center;color:var(--green);margin:4px 42px 8px;}
.guide-list-v148{display:flex;flex-direction:column;gap:10px;margin:12px 0 8px;}
.guide-row-v148{
  display:flex!important;
  align-items:center;
  gap:14px;
  width:100%;
  min-height:96px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:20px;
  background:#fbfdfc;
  text-decoration:none;
  text-align:left;
}
.guide-num-v148{
  flex:0 0 44px;
  width:44px!important;
  height:44px!important;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  display:flex!important;
  align-items:center;
  justify-content:center;
  font-size:19px;
  font-weight:900;
  line-height:1;
}
.guide-copy-v148{flex:1 1 auto;min-width:0;max-width:none;display:block;}
.guide-copy-v148 strong{display:block;color:var(--green);font-size:18px;line-height:1.16;margin:0 0 5px;}
.guide-copy-v148 p{display:block;margin:0;color:#596960;font-size:14px;line-height:1.34;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word;hyphens:none;}
@media(max-width:420px){
  .guide-modal-v148{padding:16px 14px 18px;border-radius:24px;max-height:84vh;}
  .guide-row-v148{gap:11px;min-height:90px;padding:13px 12px;}
  .guide-num-v148{flex-basis:40px;width:40px!important;height:40px!important;font-size:18px;}
  .guide-copy-v148 strong{font-size:16px;}
  .guide-copy-v148 p{font-size:13px;line-height:1.32;}
}
/* HEADER PWA - HELP VICINO A ESCI */

.topbar .topbar-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    gap: 12px !important;
}

.topbar-left {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
}

.topbar-actions {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin-left: auto !important;
    flex: 0 0 auto !important;
}

.topbar-actions .help-fab.help-fab-inline {
    position: static !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #ffffff !important;
    border: 2px solid rgba(255,255,255,.85) !important;
    box-shadow: none !important;
    font-size: 22px !important;
    line-height: 1 !important;
    padding: 0 !important;
}

.topbar-actions .logout-top {
    margin-left: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    color: #ffffff !important;
    text-decoration: none !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    font-weight: 800 !important;
}
.topbar-divider {
    width: 1px;
    height: 34px;
    background: rgba(255,255,255,.28);
    display: block;
}

.logout-top {
    margin-left: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #ffffff !important;
    text-decoration: none !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    font-weight: 800 !important;
}

.logout-svg {
    width: 32px !important;
    height: 32px !important;
    color: #ffffff !important;
    flex: 0 0 auto !important;
    display: block !important;
}

@media (max-width: 560px) {
    .topbar {
        padding: 14px 12px 12px !important;
    }

    .topbar img {
        width: 44px !important;
        height: 44px !important;
    }

    .topbar h1 {
        font-size: 18px !important;
    }

    .topbar p {
        font-size: 12px !important;
    }

    .topbar-actions {
        gap: 9px !important;
    }

    .topbar-actions .help-fab.help-fab-inline {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        font-size: 20px !important;
    }

    .topbar-actions .logout-top {
        font-size: 14px !important;
    }
    
}
