*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:#132b45;background:#f7fbfe}a{text-decoration:none;color:inherit}.top{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,28px);background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid #e4eef5}.brand{font-size:26px;font-weight:800;letter-spacing:-1.2px}.brand span{color:#143a5b}.brand b{color:#16a9e1}.brand em{font-size:15px;font-style:normal;margin-left:5px;color:#143a5b}.top nav{display:flex;align-items:center;gap:26px;font-weight:650;font-size:14px}.login{border:1px solid #0c86c8;padding:10px 18px;border-radius:12px;color:#0876b1}.hero{min-height:680px;display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:45px;padding:55px max(6vw,30px);overflow:hidden;background:linear-gradient(145deg,#f8fcff 50%,#e7f5fc)}.hero-copy{max-width:620px}.eyebrow,.section-title span,.kicker,.cta>p{font-size:12px;letter-spacing:2.2px;font-weight:800;color:#0c91cf}.hero h1{font-size:clamp(46px,5.4vw,76px);line-height:.98;margin:18px 0 25px;letter-spacing:-3px;color:#123652}.hero h1 span{color:#0b8fd3}.hero-copy>p{font-size:18px;line-height:1.65;color:#50677c}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 16px}.primary,.secondary{display:inline-block;padding:15px 24px;border-radius:13px;font-weight:800}.primary{background:#0b8fd3;color:#fff;box-shadow:0 10px 25px #0b8fd330}.secondary{background:#fff;border:1px solid #cfe1ec;color:#17415e}.hero small{color:#7890a2}.hero-art img{display:block;width:100%;max-width:660px;margin:auto;border-radius:28px;box-shadow:0 28px 70px #173e5930}.strip{background:#123b58;color:#dcecf5;text-align:center;padding:23px;font-size:16px}.strip b{color:#fff}.section{padding:88px max(7vw,35px)}.real-app{display:grid;grid-template-columns:1fr .7fr;align-items:center;gap:70px;max-width:1180px;margin:auto}.real-copy h2,.section-title h2,.faq h2{font-size:42px;letter-spacing:-1.5px;margin:12px 0 18px}.real-copy p{font-size:18px;line-height:1.65;color:#687f91;margin-bottom:28px}.screen-wrap{text-align:center}.screen-wrap img{width:min(100%,310px);border-radius:24px;box-shadow:0 25px 60px #21485e2a;border:1px solid #d9e8f1}.features{background:#fff}.section-title{text-align:center;max-width:720px;margin:auto}.section-title p{color:#687f91;font-size:17px}.cards{max-width:1100px;margin:45px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cards article{background:#f9fcfe;border:1px solid #e2edf4;border-radius:20px;padding:28px;box-shadow:0 10px 30px #21485e0b}.cards i{font-style:normal;font-size:28px}.cards h3{margin:15px 0 8px}.cards p{margin:0;color:#698092;line-height:1.55}.how{background:#eef8fd;padding:75px max(8vw,40px);display:grid;grid-template-columns:repeat(3,1fr);gap:45px;text-align:center}.how span{font-size:42px;font-weight:900;color:#b7ddec}.how p{color:#698092}.memory{position:relative;max-height:500px;overflow:hidden;background:#123b58}.memory img{display:block;width:100%;height:500px;object-fit:cover;filter:brightness(.72)}.memory div{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;padding:25px;text-shadow:0 2px 18px #001}.memory p{font-size:13px;letter-spacing:2px;font-weight:800}.memory h2{font-size:clamp(38px,5vw,62px);line-height:1.05;margin:8px 0}.cta{text-align:center;background:#087fbd;color:#fff;padding:85px 25px}.cta>p{color:#bcecff}.cta h2{font-size:45px;letter-spacing:-1.5px;margin:10px 0 30px}.light{background:#fff;color:#087fbd;box-shadow:none}.faq{max-width:900px;margin:auto}.faq h2{text-align:center;margin-bottom:35px}.faq details{background:#fff;border:1px solid #dfebf2;border-radius:14px;margin:10px 0;padding:18px 20px}.faq summary{font-weight:750;cursor:pointer}.faq details p{color:#627a8d;line-height:1.6}footer{text-align:center;background:#102f47;color:#bdd0dd;padding:45px 20px}footer .brand span{color:#fff}.copy{font-size:12px;margin:25px 0 5px}.mail{font-size:13px;margin:0}@media(max-width:800px){.top nav>a:not(.login){display:none}.hero{grid-template-columns:1fr;padding:45px 22px}.hero-copy{text-align:center}.hero h1{letter-spacing:-2px}.actions{justify-content:center}.hero-art{order:-1}.hero-art img{max-width:520px;border-radius:20px}.real-app{grid-template-columns:1fr;text-align:center;gap:35px}.screen-wrap{order:-1}.cards{grid-template-columns:1fr}.how{grid-template-columns:1fr;gap:20px}.section{padding:65px 22px}.cta h2,.section-title h2,.faq h2,.real-copy h2{font-size:34px}.memory img{height:360px}.memory{max-height:360px}}@media(max-width:380px){.top{padding:0 15px}.brand{font-size:22px}.hero h1{font-size:43px}}

/* Rifiniture finali desktop */
@media(min-width:801px){
.hero{min-height:560px;padding-top:38px;padding-bottom:38px;gap:38px}
.hero-art img{max-width:570px}
.section{padding-top:68px;padding-bottom:68px}
.real-app{grid-template-columns:.92fr .78fr;gap:45px;max-width:1050px}
.screen-wrap img{width:min(100%,385px)}
.features.section{padding-top:68px;padding-bottom:72px}
.cards{margin-top:36px}
.how{padding-top:52px;padding-bottom:52px}
}

/* Schede funzioni cliccabili */
.feature-card{
  cursor:pointer;
  position:relative;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.feature-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 45px rgba(20,72,91,.15);
  border-color:#9fd7ee;
}

.scopri{
  display:inline-block;
  margin-top:18px;
  color:#169ae1;
  font-size:14px;
  font-weight:800;
}

/* Finestra dettaglio funzione */
.feature-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(8,31,49,.68);
  padding:25px;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(5px);
}

.feature-modal.open{
  display:flex;
}

.feature-modal-box{
  position:relative;
  width:min(100%,680px);
  max-height:90vh;
  overflow-y:auto;
  background:#fff;
  border-radius:26px;
  padding:42px;
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}

.feature-close{
  position:absolute;
  top:17px;
  right:20px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#eef8fd;
  color:#123b58;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.modal-icon{
  font-size:38px;
  margin-bottom:15px;
}

.modal-kicker{
  margin:0 0 8px;
  color:#169ae1;
  font-size:12px;
  font-weight:900;
  letter-spacing:2px;
}

.feature-modal h2{
  margin:0 45px 12px 0;
  color:#132b45;
  font-size:36px;
  line-height:1.1;
}

.modal-subtitle{
  margin:0 0 25px;
  color:#698092;
  font-size:18px;
  line-height:1.55;
}

.modal-list{
  list-style:none;
  padding:0;
  margin:0;
}

.modal-list li{
  display:flex;
  gap:12px;
  padding:13px 0;
  border-bottom:1px solid #e6eef3;
  color:#314b60;
  line-height:1.5;
}

.modal-list li span{
  color:#169ae1;
  font-weight:900;
}

.modal-actions{
  margin-top:28px;
}

.modal-open{
  overflow:hidden;
}

@media(max-width:600px){
  .feature-modal{
    padding:14px;
  }

  .feature-modal-box{
    padding:32px 23px 26px;
    border-radius:20px;
  }

  .feature-modal h2{
    font-size:29px;
  }

  .modal-subtitle{
    font-size:16px;
  }
}

/* Screenshot reale nei dettagli delle funzioni */
.modal-screen{
  display:block;
  width:auto;
  max-width:260px;
  max-height:360px;
  margin:25px auto 28px;
  border-radius:16px;
  border:1px solid #dcebf3;
  box-shadow:0 12px 30px rgba(20,72,91,.12);
  object-fit:contain;
}

@media(max-width:600px){
  .modal-screen{
    max-width:210px;
    max-height:310px;
    margin:20px auto 24px;
  }
}
/* Popup funzioni - layout desktop orizzontale */
@media (min-width:801px){

  .feature-modal-box{
    width:min(94vw,1050px);
    max-height:88vh;
    overflow-y:auto;
    padding:42px 48px;
  }

  #featureContent{
    display:grid;
    grid-template-columns:1fr 380px;
    column-gap:55px;
    align-items:center;
  }

  #featureContent .modal-icon,
  #featureContent .modal-kicker,
  #featureContent h2,
  #featureContent .modal-subtitle,
  #featureContent .modal-list,
  #featureContent .modal-actions{
    grid-column:1;
  }

  #featureContent .modal-screen{
    grid-column:2;
    grid-row:1 / 7;
    width:auto;
    max-width:100%;
    max-height:72vh;
    margin:0 auto;
    align-self:center;
  }
}
/* Rifinitura popup desktop - tutto visibile senza scroll */
@media (min-width:801px){

  .feature-modal{
    padding:15px 25px;
  }

  .feature-modal-box{
    max-height:94vh;
    padding-top:30px;
    padding-bottom:30px;
    overflow:hidden;
  }

  #featureContent .modal-screen{
    max-height:78vh;
  }

  .modal-list li{
    padding:10px 0;
  }

  .modal-actions{
    margin-top:20px;
  }
}
/* =========================
   CAMPERSMART - AREA ADMIN
   ========================= */

.admin-page{
  min-height:100vh;
  background:#f4f9fc;
  padding:40px max(5vw,30px) 70px;
}

.admin-header{
  max-width:1200px;
  margin:0 auto 55px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
}

.admin-header p{
  margin:6px 0 0;
  color:#0b8fd3;
  font-size:11px;
  font-weight:900;
  letter-spacing:2px;
}

.admin-back{
  background:#fff;
  border:1px solid #d7e8f2;
  border-radius:12px;
  padding:12px 18px;
  color:#17415e;
  font-size:14px;
  font-weight:800;
}

.admin-welcome{
  max-width:1200px;
  margin:0 auto 35px;
}

.admin-welcome span{
  color:#0b8fd3;
  font-size:12px;
  font-weight:900;
  letter-spacing:2px;
}

.admin-welcome h1{
  margin:8px 0 8px;
  font-size:48px;
  letter-spacing:-2px;
  color:#132b45;
}

.admin-welcome p{
  margin:0;
  font-size:18px;
  color:#698092;
}

.admin-grid{
  max-width:1200px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
#admin-access-card{
    grid-column: 1;
}

#admin-stats-card{
    grid-column: 3;
}

.admin-card{
  background:#fff;
  border:1px solid #dfebf2;
  border-radius:20px;
  padding:30px;
  min-height:190px;
  box-shadow:0 12px 35px rgba(20,72,91,.07);
  transition:transform .2s ease, box-shadow .2s ease;
}

.admin-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 45px rgba(20,72,91,.13);
}

.admin-icon{
  font-size:30px;
  margin-bottom:18px;
}

.admin-card h2{
  margin:0 0 9px;
  font-size:21px;
  color:#132b45;
}

.admin-card p{
  margin:0;
  color:#698092;
  line-height:1.55;
}

@media(max-width:800px){

  .admin-page{
    padding:25px 20px 50px;
  }

  .admin-header{
    margin-bottom:40px;
  }

  .admin-grid{
    grid-template-columns:1fr;
  }

  .admin-welcome h1{
    font-size:38px;
  }

  .admin-back{
    padding:10px 13px;
  }
}
/* SICUREZZA AREA ADMIN */
body.admin-locked .admin-header,
body.admin-locked .admin-welcome,
body.admin-locked .admin-grid,
body.admin-locked main {
    display: none !important;
}
body.admin-locked #admin-login {
    display: block !important;
}

body.admin-locked {
    min-height: 100vh;
}

body.admin-locked #admin-login {
    width: min(460px, calc(100% - 40px));
    margin: 40px auto;
    padding: 32px;
    background: white;
    border-radius: 22px;
    box-shadow: 0 15px 45px rgba(0,0,0,.12);
}

body.admin-locked #admin-login input {
    width: 100%;
    box-sizing: border-box;
    padding: 14px;
    margin: 12px 0;
    border: 1px solid #ccd9e2;
    border-radius: 10px;
    font-size: 16px;
}

body.admin-locked #admin-login button {
    padding: 13px 20px;
    border: 0;
    border-radius: 10px;
    cursor: pointer;
}
/* ===== REGISTRAZIONE CAMPERSMART ===== */

.registration-page {
  min-height: calc(100vh - 80px);
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 60px 20px;
  background: #f5f8fa;
}

.registration-card {
  width: 100%;
  max-width: 560px;
  background: #ffffff;
  border-radius: 22px;
  padding: 40px;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.10);
}

.registration-card h1 {
  margin: 10px 0 12px;
  font-size: 32px;
  line-height: 1.15;
}

.registration-card > p {
  margin-bottom: 28px;
  color: #5b6570;
}

.registration-card form {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.registration-card label {
  font-weight: 600;
  margin-top: 8px;
}

.registration-card input[type="text"],
.registration-card input[type="email"],
.registration-card input[type="tel"] {
  width: 100%;
  box-sizing: border-box;
  padding: 14px 15px;
  border: 1px solid #cfd7df;
  border-radius: 10px;
  font-size: 16px;
  background: #ffffff;
}

.registration-card input:focus {
  outline: none;
  border-color: #0b78b8;
  box-shadow: 0 0 0 3px rgba(11, 120, 184, 0.12);
}

.privacy-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 16px 0 10px;
  font-size: 14px;
  font-weight: 400 !important;
  line-height: 1.4;
}

.privacy-check input {
  margin-top: 3px;
}

.registration-card button.primary {
  width: 100%;
  border: 0;
  cursor: pointer;
  font-size: 16px;
  margin-top: 6px;
}

.registration-card button.primary:disabled {
  opacity: 0.6;
  cursor: wait;
}

#registration-message {
  margin-top: 18px;
  text-align: center;
  font-weight: 600;
}

.already-account {
  margin-top: 24px !important;
  margin-bottom: 0 !important;
  text-align: center;
}

.already-account a {
  font-weight: 700;
  color: #0b78b8;
}

@media (max-width: 600px) {
  .registration-page {
    padding: 25px 14px;
  }

  .registration-card {
    padding: 25px 20px;
    border-radius: 16px;
  }

  .registration-card h1 {
    font-size: 27px;
  }
}

/* ===== PAGINE INTERNE ADMIN ===== */

.admin-detail {
  max-width: 1400px;
  margin: 0 auto;
  padding: 20px 5vw 70px;
}

.admin-detail h2 {
  font-size: 32px;
  color: #123652;
  margin: 0 0 24px;
}

.admin-back {
  display: inline-block;
  padding: 11px 18px;
  margin-bottom: 25px;
  background: #ffffff;
  border: 1px solid #d9e8f1;
  border-radius: 12px;
  color: #123652;
  font-weight: 700;
  cursor: pointer;
}

.admin-users-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}

.admin-user-card {
  background: #ffffff;
  border: 1px solid #e2edf4;
  border-radius: 20px;
  padding: 25px;
  box-shadow: 0 10px 30px rgba(18, 54, 82, 0.06);
}

.admin-user-card h3 {
  margin: 0 0 10px;
  color: #123652;
  font-size: 21px;
}

.admin-user-card p {
  margin: 7px 0;
  color: #50677c;
  line-height: 1.45;
}

.admin-user-status {
  display: inline-block;
  margin-top: 12px;
  padding: 7px 13px;
  border-radius: 999px;
  background: #e8f7ff;
  color: #0876b1;
  font-weight: 800;
  font-size: 13px;
}

/* ===== CARD UTENTI ADMIN - CORREZIONE ===== */

#admin-users-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 20px;
  margin-top: 20px;
}

.admin-user-row {
  background: #ffffff;
  border: 1px solid #e2edf4;
  border-radius: 20px;
  padding: 25px;
  box-shadow: 0 10px 30px rgba(18, 54, 82, 0.06);
  color: #123652;
  line-height: 1.55;
}

.admin-user-row strong {
  display: inline-block;
  margin-bottom: 6px;
  font-size: 21px;
  color: #123652;
}

.admin-user-row small {
  font-size: 15px;
  color: #50677c;
}

/* ===== DETTAGLI CARD UTENTE ===== */

.admin-user-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
}

.admin-user-row > div:last-child {
  min-width: 150px;
  text-align: right;
  padding-left: 20px;
  border-left: 1px solid #e2edf4;
}

.admin-user-row > div:last-child strong {
  color: #0876b1;
  font-size: 16px;
}

@media (max-width: 650px) {
  .admin-user-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .admin-user-row > div:last-child {
    width: 100%;
    min-width: 0;
    text-align: left;
    padding-left: 0;
    padding-top: 15px;
    border-left: 0;
    border-top: 1px solid #e2edf4;
  }
}

/* ===== PULSANTE TORNA AL PANNELLO ===== */

#admin-users-close,
#admin-demos-close,
#admin-clients-close,
#admin-expirations-close,
#admin-access-close,
#admin-stats-close {  appearance: none;
  border: 1px solid #d5e5ef;
  background: #ffffff;
  color: #123652;
  padding: 11px 18px;
  border-radius: 12px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  margin-bottom: 25px;
  transition: transform .15s ease, box-shadow .15s ease;
}

#admin-users-close:hover,
#admin-demos-close:hover,
#admin-clients-close:hover,
#admin-expirations-close:hover,
#admin-access-close:hover,
#admin-stats-close:hover {  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(18, 54, 82, 0.10);
}
/* ==============================
   DISPOSITIVI
============================== */

.devices{
    background:#ffffff;
}

.device-cards{
    max-width:1200px;
    margin:40px auto 0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}

.device-card{
    background:#ffffff;
    border:1px solid #dfeaf2;
    border-radius:20px;
    padding:30px;
    min-height:220px;
    text-align:center;
    box-shadow:0 12px 35px rgba(20,72,91,.07);
}

.device-icon{
    font-size:38px;
    margin-bottom:18px;
    min-height:46px;
}

.device-card h3{
    margin:0 0 12px;
    font-size:21px;
    color:#132b45;
}

.device-card p{
    margin:0;
    color:#698092;
    line-height:1.55;
}

.device-link{
    appearance:none;
    border:0;
    background:transparent;
    color:#0797dc;
    font-family:inherit;
    font-size:15px;
    font-weight:700;
    cursor:pointer;
    margin-top:18px;
    padding:0;
}

.device-link:hover{
    text-decoration:underline;
}

@media (max-width:800px){
    .device-cards{
        grid-template-columns:1fr;
    }

    .device-card{
        min-height:auto;
    }
}

/* POPUP INSTALLAZIONE IOS / ANDROID */

.device-modal{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(10,35,55,.55);
    z-index:9999;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.device-modal.open{
    display:flex;
}

.device-modal-box{
    position:relative;
    background:#fff;
    width:min(560px, 100%);
    max-height:90vh;
    overflow-y:auto;
    border-radius:24px;
    padding:38px;
    box-shadow:0 25px 70px rgba(20,72,91,.20);
}

.device-modal-close{
    position:absolute;
    top:16px;
    right:18px;
    border:0;
    background:transparent;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    color:#132b45;
}

.device-modal-icon{
    font-size:42px;
    margin-bottom:12px;
}

.device-modal-box h2{
    margin:0 0 12px;
    color:#132b45;
    font-size:28px;
}

.device-modal-box p{
    color:#698092;
    line-height:1.6;
}

.device-modal-box ol{
    margin:22px 0;
    padding-left:24px;
    color:#132b45;
    line-height:1.9;
}

.device-modal-note{
    background:#f2f8fb;
    padding:16px 18px;
    border-radius:14px;
    margin-bottom:0;
}

@media (max-width:600px){
    .device-modal-box{
        padding:32px 24px 26px;
        border-radius:20px;
    }

    .device-modal-box h2{
        font-size:24px;
    }
}
/* Ricerca utenti Admin */
.admin-users-search {
  margin: 0 0 28px 0;
  max-width: 620px;
}

.admin-users-search input {
  width: 100%;
  padding: 16px 20px;
  border: 1px solid #d6e3ec;
  border-radius: 14px;
  background: #ffffff;
  font: inherit;
  font-size: 16px;
  color: #102d4b;
  outline: none;
  box-sizing: border-box;
}

.admin-users-search input:focus {
  border-color: #0797dc;
  box-shadow: 0 0 0 3px rgba(7, 151, 220, 0.10);
}

.admin-users-search input::placeholder {
  color: #7890a5;
}
/* Pulsante Attiva come cliente */
.admin-activate-btn {
  appearance: none;
  border: none;
  background: #0797dc;
  color: #ffffff;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  padding: 10px 18px;
  border-radius: 12px;
  cursor: pointer;
  margin-top: 10px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.admin-activate-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(7, 151, 220, 0.25);
}

.admin-activate-btn:disabled {
  opacity: 0.6;
  cursor: wait;
  transform: none;
}

.site-legal-links{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;padding:24px 16px;font-size:16px;line-height:1.5;background:#f3f9fd;color:#123652}
.site-legal-links a{color:#086b9f;text-decoration:underline;text-underline-offset:3px}
.site-legal-links a:focus-visible{outline:3px solid #086b9f;outline-offset:4px}