*{margin:0;padding:0;box-sizing:border-box}body{min-height:100vh;background:var(--gris);color:var(--texto);font-family:"Segoe UI",Arial,sans-serif}a{color:inherit}button{font:inherit}.app-shell{min-height:100vh;max-width:var(--max-width);margin:0 auto;padding-bottom:88px;background:linear-gradient(180deg,#fff,var(--gris),#fff)}body.splash{background:#fff}.splash-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.splash-card{text-align:center;animation:fadeUp .8s ease both}.splash-logo{width:min(230px,70vw);margin-bottom:24px}.splash-card h1{color:var(--vino);font-size:clamp(28px,8vw,44px)}.splash-card p{margin-top:8px;color:var(--texto-suave)}.loader{width:54px;height:54px;border-radius:50%;border:5px solid var(--gris-2);border-top-color:var(--vino);margin:28px auto 0;animation:spin 1s linear infinite}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--vino),var(--vino-oscuro));color:#fff;padding:18px 18px 34px;border-bottom-left-radius:32px;border-bottom-right-radius:32px;box-shadow:var(--sombra)}.hero-top{display:flex;justify-content:space-between;margin-bottom:20px}.back-portal,.install-pill{border:1px solid rgba(255,255,255,.32);color:#fff;background:rgba(255,255,255,.12);text-decoration:none;padding:9px 13px;border-radius:999px;font-size:14px;cursor:pointer}.hero-content{text-align:center}.hero-logo{width:120px;height:120px;object-fit:contain;background:#fff;border-radius:26px;padding:12px;box-shadow:0 10px 25px rgba(0,0,0,.18);margin-bottom:14px}.saludo{color:var(--dorado-suave);font-weight:700}.hero h1{font-size:clamp(30px,8vw,48px);line-height:1.05}.hero-subtitle{margin-top:8px;opacity:.9}.status-card{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:-20px 18px 18px;padding:16px;background:#fff;border-radius:18px;box-shadow:var(--sombra-suave);position:relative;z-index:3}.status{font-weight:700}.status.online{color:var(--verde)}.status.offline{color:var(--rojo)}.date-text{color:var(--texto-suave);font-size:14px}.install-card{margin:0 18px 20px;background:linear-gradient(135deg,#fff,var(--dorado-suave));border:1px solid rgba(196,168,107,.45);border-radius:var(--radio);box-shadow:var(--sombra-suave);padding:18px;display:grid;gap:12px}.install-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:var(--vino);color:#fff;font-size:30px}.install-info h2{color:var(--vino);font-size:20px}.install-info p{color:var(--texto-suave);line-height:1.4}.install-main-btn,.action-btn{width:100%;border:0;border-radius:16px;background:var(--vino);color:#fff;padding:15px 18px;font-weight:800;cursor:pointer;text-align:center;text-decoration:none;display:block}.dashboard{padding:0 18px 24px}.section-title{margin:10px 4px 16px}.section-title h2{color:var(--vino);font-size:24px}.section-title p{color:var(--texto-suave);margin-top:5px}.service-grid{display:grid;gap:14px}.service-card{width:100%;border:0;text-align:left;text-decoration:none;background:#fff;color:var(--texto);border-radius:var(--radio);padding:18px;display:flex;align-items:center;gap:16px;box-shadow:var(--sombra-suave);cursor:pointer;transition:.18s}.service-card:active{transform:scale(.985)}.icon-wrap{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;background:linear-gradient(135deg,var(--dorado-suave),#fff);border:1px solid rgba(196,168,107,.38);border-radius:18px}.icon-wrap svg{width:38px;height:38px;fill:none;stroke:var(--vino);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.service-card strong{display:block;color:var(--vino);font-size:18px;margin-bottom:4px}.service-card small{color:var(--texto-suave)}.dynamic-view{margin:0 18px 24px;background:#fff;border-radius:var(--radio);box-shadow:var(--sombra-suave);padding:20px;animation:fadeUp .35s ease both}.dynamic-view h2{color:var(--vino);margin-bottom:10px}.dynamic-view p{color:var(--texto-suave);line-height:1.5;margin-bottom:14px}.option-list,.contact-actions{display:grid;gap:10px;margin-top:14px}.option-btn{border:1px solid var(--gris-2);background:#fff;border-radius:14px;padding:14px;text-align:left;cursor:pointer}.bottom-nav{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);width:min(94%,var(--max-width));display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:#fff;border:1px solid var(--gris-2);padding:8px;border-radius:24px;box-shadow:var(--sombra);z-index:50}.nav-item{border:0;background:transparent;color:var(--texto-suave);border-radius:16px;padding:10px 6px;font-size:13px;cursor:pointer}.nav-item.active{background:var(--vino);color:#fff;font-weight:700}.report-form{display:grid;gap:14px}.report-form label{display:grid;gap:7px;color:var(--vino);font-weight:700}.report-form input,.report-form textarea{width:100%;border:1px solid var(--gris-2);border-radius:14px;padding:13px 14px;font:inherit}.form-note{background:var(--dorado-suave);color:var(--vino)!important;padding:12px;border-radius:14px}.gps-card{border:1px solid rgba(196,168,107,.45);background:linear-gradient(135deg,#fff,var(--dorado-suave));border-radius:18px;padding:15px;display:grid;gap:12px}.gps-card h3{color:var(--vino)}.gps-grid{display:grid;gap:10px}.success-card{display:grid;gap:12px}.report-list{display:grid;gap:12px;margin-top:14px}.report-item{display:grid;gap:4px;padding:14px;border:1px solid var(--gris-2);border-radius:16px;background:#fff}.report-item strong{color:var(--vino)}.report-item span{font-weight:700}.report-item small{color:var(--texto-suave)}
/* Ajustes v1.2.0 */
.install-left{
  margin-right:auto;
}
.hero-top{
  justify-content:flex-start;
}
.form-section{
  border:1px solid var(--gris-2);
  border-radius:18px;
  padding:15px;
  display:grid;
  gap:14px;
}
.form-section legend{
  color:var(--vino);
  font-weight:800;
  padding:0 8px;
}
.form-grid-2{
  display:grid;
  gap:10px;
}
.map-card{
  border:1px solid rgba(196,168,107,.45);
  background:#fff;
  border-radius:18px;
  padding:15px;
  display:grid;
  gap:12px;
}
.map-card h3{
  color:var(--vino);
}
.map-card iframe{
  width:100%;
  min-height:260px;
  border:0;
  border-radius:16px;
  background:var(--gris-2);
}
.map-link{
  color:var(--vino);
  font-weight:800;
  text-decoration:none;
}
@media(min-width:720px){
  .form-grid-2{
    grid-template-columns:repeat(2,1fr);
  }
  .map-card iframe{
    min-height:340px;
  }
}
