:root{--navy:#082b49;--navy-deep:#052039;--blue:#0079b7;--blue-light:#d9f1ff;--orange:#fa7928;--ink:#16364f;--muted:#698397;--bg:#f1f6f9;--line:#dce7ee;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.5}a{color:#087bb2;text-underline-offset:3px}.container{width:min(1160px,calc(100% - 36px));margin-inline:auto}.brand-accent{height:5px;background:linear-gradient(90deg,var(--orange),#ffb35a,#028ac7)}.site-header{background:#fff;border-bottom:1px solid #e8eff4}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:78px}.brand{display:flex;align-items:center;text-decoration:none;gap:11px;color:var(--navy)}.brand-mark{width:44px;height:44px;border-radius:13px;background:var(--blue);display:grid;place-items:center;color:#fff;font-size:24px;font-weight:900;position:relative}.mark-road{position:absolute;bottom:6px;left:19px;width:7px;height:6px;border-left:1px dashed #fff;opacity:.85}.brand-name{font-size:20px;letter-spacing:-.5px}.brand-name small{display:block;font-size:10px;font-weight:550;color:var(--muted);letter-spacing:.1px}.site-nav{display:flex;align-items:center;gap:21px;flex-wrap:wrap}.site-nav a{text-decoration:none;font-size:13px;font-weight:650;color:#31536c}.site-nav .nav-account{background:#102f4c;border-radius:9px;color:white;padding:11px 15px}.hero-movilidad{overflow:hidden;background:radial-gradient(circle at 95% 18%,#0b83b5 0,transparent 36%),linear-gradient(118deg,#062b4c,#085d91 77%,#087db1);color:#fff;padding:65px 0 113px;position:relative}.hero-movilidad:after{content:'';position:absolute;bottom:0;width:100%;height:11px;background:repeating-linear-gradient(90deg,transparent 0,transparent 40px,rgba(255,255,255,.14) 41px,rgba(255,255,255,.14) 74px,transparent 75px,transparent 110px);opacity:.45}.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr);align-items:center;gap:20px}.eyebrow,.section-tag{font-size:11px;font-weight:850;letter-spacing:1.7px}.eyebrow{color:#b4ebff}.live-dot{display:inline-block;width:7px;height:7px;background:#43d3a1;border-radius:50%;margin-right:7px;box-shadow:0 0 0 4px rgba(67,211,161,.14)}.hero-copy h1{font-size:clamp(36px,4.6vw,59px);letter-spacing:-2.3px;line-height:1.12;margin:22px 0 19px}.hero-copy h1 em{font-style:normal;color:#bfefff}.hero-copy>p{color:#d9eff9;max-width:575px;font-size:16px;line-height:1.7}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.hero-primary,.hero-secondary{display:inline-flex;align-items:center;gap:15px;padding:14px 19px;border-radius:11px;text-decoration:none;font-size:13px;font-weight:760}.hero-primary{background:var(--orange);color:#fff}.hero-secondary{color:#fff;border:1px solid #67b1d6}.hero-trust{display:flex;gap:15px;flex-wrap:wrap;margin-top:27px;color:#d2efff;font-size:11px}.hero-trust span:before{content:'✓';color:#69eec7;padding-right:6px}.hero-art svg{display:block;width:100%;filter:drop-shadow(0 20px 38px rgba(0,0,0,.11))}.today-wrap{position:relative;margin-top:-72px;z-index:1}.today-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 15px 44px rgba(10,46,72,.09);padding:31px 33px}.today-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.today-head h2{font-size:27px;letter-spacing:-.8px;margin:6px 0 8px}.section-tag{color:#0781b9}.subtle,.panel-lead{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.today-select{min-width:240px;display:grid;gap:6px}.today-select label{font-size:12px;font-weight:750}.today-select select,.form-field input,.form-field select,.form-field textarea{width:100%;background:#f9fcff;border:1px solid #cfdfeb;border-radius:9px;padding:12px;color:var(--ink);font:inherit}.today-select select{min-height:44px}.location-action{background:none;border:0;padding:4px;color:#0879a8;text-align:left;cursor:pointer;font-size:12px;text-decoration:underline;text-underline-offset:3px}.today-result{margin-top:19px}.today-status{border:1px solid #e0e9f0;border-radius:13px;padding:21px;background:linear-gradient(180deg,#f6fbfe,#fff)}.today-status.is-unknown{background:#fffaf0;border-color:#f3dba7}.today-status.is-free{background:#f2fcf8;border-color:#c4e9d4}.today-overview{display:flex;justify-content:space-between;gap:15px;align-items:center}.today-datetime{font-size:12px;color:#637e92;font-weight:700;text-transform:capitalize}.today-overview h3{font-size:22px;letter-spacing:-.6px;margin:6px 0}.today-overview p{margin:0;font-size:13px;color:#617d90}.status-pill{font-size:10px;font-weight:850;letter-spacing:.7px;color:#a54b07;background:#fff0dc;border:1px solid #ffd4a6;border-radius:8px;padding:9px 11px;white-space:nowrap}.restriction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:22px}.restriction-box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.restriction-label{font-size:11px;color:#678298;font-weight:800;letter-spacing:1px}.digit-row{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.digit-token{height:48px;width:48px;background:#0b3456;color:white;font-size:26px;font-weight:850;border-radius:12px;display:grid;place-items:center}.no-digits{color:#617d90}.today-hours,.hours{display:flex;gap:8px;flex-wrap:wrap}.hour-chip,.hours strong{padding:7px 10px;border:1px solid #d6e7f1;border-radius:7px;background:#f2f8fc;color:#244f69;font-size:12px}.source{font-size:12px;color:#55788d}.source a{font-weight:700}.warning-small{color:#698397;font-size:11px;line-height:1.6;margin:15px 0 2px}.content-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.8fr);align-items:start;gap:24px;margin-top:26px;margin-bottom:31px}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:29px;box-shadow:0 6px 25px rgba(16,59,89,.035)}.panel h2{font-size:27px;letter-spacing:-.7px;margin:7px 0 10px}.panel h3{margin:10px 0;font-size:19px}.panel-lead{margin-bottom:25px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.form-field label{font-size:12px;font-weight:760}.form-field input,.form-field select{min-height:47px}.form-field small{font-size:11px;color:var(--muted)}.form-field textarea{min-height:120px}.primary,.secondary,.promo-button{border:0;cursor:pointer;padding:15px 17px;border-radius:10px;font-size:13px;font-weight:770;text-decoration:none}.primary{background:#047bb6;color:white;display:flex;align-items:center;justify-content:space-between;width:100%}.secondary{background:#113c5d;color:white;width:100%}.primary:hover,.secondary:hover{filter:brightness(.92)}.primary:disabled{opacity:.55}.side-column{display:grid;gap:20px}.account-promo{border-radius:17px;background:linear-gradient(150deg,#0e3c5a,#062743);color:white;padding:31px;position:relative;overflow:hidden}.account-promo:after{content:'';position:absolute;right:-65px;top:-75px;width:175px;height:175px;border:28px solid rgba(255,255,255,.055);border-radius:50%}.account-promo .section-tag{color:#8ee3ff}.account-promo h2{font-size:30px;line-height:1.15;letter-spacing:-.7px;margin:12px 0}.account-promo p{font-size:13px;line-height:1.7;color:#d2e7f5}.promo-icon{width:43px;height:43px;background:rgba(255,255,255,.11);border-radius:12px;display:grid;place-items:center;color:var(--orange);font-size:26px;margin-bottom:20px}.promo-button{background:var(--orange);color:#fff;display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px}.promo-secondary{color:#d0f4ff;font-size:12px}.promo-facts{display:flex;gap:17px;flex-wrap:wrap;color:#b4d8e8;font-size:11px;margin-top:22px}.promo-facts span:before{content:'✓ ';color:#79e0c2}.notice p{font-size:13px;color:var(--muted);line-height:1.6}.checkline{display:flex;align-items:flex-start;gap:9px;margin-bottom:12px;font-size:12px;color:#4c6a7f}.checkline input{margin-top:3px;accent-color:#0079b7}.trap{display:none}.form-message{font-size:12px;color:#1a7094}.result{border:1px solid;margin-top:23px;padding:19px;border-radius:11px}.result h3{font-size:18px}.result.danger{background:#fff4eb;border-color:#ffc99e}.result.success{background:#edf9f2;border-color:#a8dfc2}.result.unknown{background:#fffbec;border-color:#f2dba1}.result-tag{font-weight:850;letter-spacing:1px;font-size:11px}.next-dates{margin-top:21px}.dates{display:flex;gap:10px;flex-wrap:wrap}.date-item{border:1px solid #d9e8f1;padding:10px;border-radius:8px;display:grid;font-size:12px}.date-item span{color:#627f90}.text-link{display:inline-block;margin-top:12px;font-weight:700;font-size:12px}.info-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;border-top:1px solid var(--line);padding:35px 0 53px}.info-strip>div{display:grid;gap:5px}.info-strip strong{font-size:13px}.info-strip span{font-size:12px;color:var(--muted)}.footer{background:#072740;color:#ecf8ff;padding:32px 0}.footer-inner{display:flex;justify-content:space-between;gap:24px;font-size:12px}.footer-inner small{display:block;color:#a9cbda;margin-top:6px}.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:11px;max-width:410px;color:#bbd0df}.footer a{color:#d3f0ff}.loading-line{color:var(--muted);font-size:13px}.site-nav form{display:inline}.site-nav button{background:none;border:0;cursor:pointer;color:#31536c;font-weight:700}
@media(max-width:860px){.hero-layout{grid-template-columns:1fr}.hero-art{display:none}.hero-movilidad{padding:51px 0 103px}.content-grid{grid-template-columns:1fr}.today-head{flex-wrap:wrap}.today-select{min-width:min(100%,300px)}.site-nav{gap:9px}.site-nav a{font-size:12px}.restriction-grid{grid-template-columns:1fr}}
@media(max-width:580px){.container{width:calc(100% - 24px)}.brand-name{font-size:17px}.brand-name small{font-size:9px}.topbar{align-items:flex-start;padding:13px 0;flex-direction:column}.site-nav{width:100%;justify-content:space-between}.hero-copy h1{font-size:36px;letter-spacing:-1.1px}.hero-movilidad{padding:35px 0 94px}.hero-actions{flex-direction:column}.hero-primary,.hero-secondary{justify-content:center}.today-card,.panel,.account-promo{padding:19px}.today-head h2{font-size:23px}.today-overview{align-items:flex-start;flex-direction:column}.digit-token{width:43px;height:43px}.form-row{grid-template-columns:1fr;gap:0}.info-strip{grid-template-columns:1fr}.footer-inner{flex-direction:column}.footer-links{justify-content:start}}


/* Identidad oficial de Puro Ingenio Samario en todos los pies de pagina. */
.pis-footer{padding:0}
.footer-branding{background:#fff;border-top:1px solid var(--line);color:var(--ink)}
.footer-branding-inner{display:flex;align-items:center;justify-content:space-between;gap:26px;padding-top:22px;padding-bottom:22px}
.footer-branding-link{display:inline-flex;align-items:center;min-width:0;max-width:290px;text-decoration:none}
.footer-branding-link img{width:min(280px,100%);height:auto;max-height:94px;object-fit:contain}
.footer-branding-message{display:grid;gap:5px;max-width:500px}
.footer-branding-message strong{font-size:17px;letter-spacing:-.3px;color:var(--navy)}
.footer-branding-message span{font-size:13px;color:var(--muted)}
.pis-footer .footer-bottom{padding-top:26px;padding-bottom:27px;align-items:center}
.pis-footer .footer-copyright{font-size:12px}
.pis-footer .footer-links{align-items:center}
@media(max-width:620px){
  .footer-branding-inner{flex-direction:column;align-items:flex-start;gap:15px}
  .footer-branding-link{max-width:250px}
  .footer-branding-link img{width:min(250px,100%)}
  .footer-branding-message strong{font-size:15px}
}

.footer-avatar{width:64px;height:64px;object-fit:contain;border-radius:50%;background:#f1f6f9;border:1px solid #dce7ee;margin-bottom:5px}

/* Identidad visual oficial PIS Movilidad: logo e ícono derivados de la propuesta aprobada. */
.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0}
.brand-logo{width:186px;height:60px;display:block;object-fit:contain;object-position:left center}
.brand-lockup small{font-size:9px;letter-spacing:.18px;color:var(--muted);font-weight:600;margin-top:-3px}
.standalone-brand{display:inline-flex;max-width:235px;margin:2px 0 15px;align-items:center}
.standalone-brand .brand-logo{width:210px;height:auto}
.footer-system-logo{width:156px;height:auto;max-height:51px;display:block;object-fit:contain;object-position:left center;background:#fff;border-radius:8px;padding:3px 6px;margin:0 0 12px}
@media(max-width:580px){.brand-logo{width:162px;height:53px}.brand-lockup small{font-size:8px}.standalone-brand .brand-logo{width:190px}}


/* Vista compacta por familias: un solo bloque por tipo, varias franjas por matrícula. */
.families-title{font-size:13px;letter-spacing:.4px;color:var(--navy);margin:24px 0 13px}
.vehicle-families-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.family-card{background:#fff;border:1px solid #dbe8f1;border-radius:15px;padding:20px;min-width:0;box-shadow:0 3px 16px rgba(15,49,74,.035)}
.family-heading{display:flex;align-items:center;gap:12px}
.family-emblem{flex:none;display:grid;place-items:center;width:58px;height:58px;border-radius:14px;background:#eef7fd}
.family-emblem img{width:40px;height:40px;object-fit:contain}
.family-motos .family-emblem{background:#f0f0ff}
.family-transporte_publico .family-emblem{background:#fff4e9}
.family-otros .family-emblem{background:#eff6f2}
.family-title h5{margin:0;color:#133d5b;font-size:17px;letter-spacing:-.25px}
.family-subtitle{color:#668496;font-size:11px;line-height:1.5;margin:4px 0 0}
.family-badges{margin:14px 0 8px}
.family-state{display:inline-block;font-weight:800;font-size:10px;letter-spacing:.25px;padding:7px 9px;border-radius:8px;background:#edf5fa;color:#386b88}
.family-state.state-programada{background:#ffedda;color:#a65710}
.family-state.state-sin_restriccion{background:#e8f7ef;color:#19754d}
.family-state.state-sin_norma_verificada{background:#fff7e8;color:#946618}
.family-turn{border-top:1px solid #e4eef4;padding:13px 0 7px}
.family-matricula{display:block;font-size:12px;font-weight:800;color:#355f7a}
.family-digits{display:flex;gap:7px;margin:10px 0}
.family-digits .digit-token{height:43px;width:43px;font-size:22px;border-radius:9px}
.family-types{font-size:11px;line-height:1.55;color:#7390a1;margin:9px 0 1px}
.family-unknown,.family-clear{font-size:12px;line-height:1.55;margin:2px 0;color:#8b661f}
.family-clear{color:#2b7558}
.family-now{display:block;color:#9c5316;font-weight:700;margin-top:9px}
@media(max-width:800px){.vehicle-families-grid{grid-template-columns:1fr}}
@media(max-width:580px){.family-card{padding:16px}.family-emblem{width:49px;height:49px}.family-emblem img{width:34px;height:34px}}


/* Medidas múltiples: no mezclar dígitos de pico y placa con horarios nocturnos. */
.measures-list{display:grid;gap:9px;margin-top:13px}
.measure-card{padding:13px;border:1px solid #d9e9f3;background:#f8fcff;border-radius:11px}
.measure-name{font-size:12px;font-weight:850;color:#0d4165;display:block;margin-bottom:9px}
.measure-card .family-digits{margin:5px 0 9px}
.measure-card .digit-token{height:35px;width:35px;font-size:19px}
.measure-card .today-hours{margin:8px 0}
.measure-zones,.measure-matricula,.measure-source{font-size:11px;color:#547489;margin:5px 0;line-height:1.5}
.measure-source{font-weight:700}
.measure-warning{font-size:11px;line-height:1.55;color:#486779}
.all-plates{font-size:11px;letter-spacing:.4px;font-weight:850;color:#ba6416;margin:3px 0 10px}
.measure-card details,.family-alerts{margin-top:11px;font-size:12px;color:#526e80}
.measure-card summary,.family-alerts summary{cursor:pointer;font-weight:800;color:#0c668d}
.family-alert{padding:11px 0;border-bottom:1px dashed #cedfe9}
.family-alert strong{font-size:11px;color:#244f66}
.family-alert p{font-size:11px;line-height:1.6;margin:4px 0;color:#536e81}
.family-state.state-parcialmente_verificada{background:#fff2db;color:#8d5b0d}

/* Evitar falsos resultados "libre" o dígitos estimados en el calendario de taxis. */
.taxi-calendar-pending{border:1px solid #e6c791;background:#fff8e9;border-radius:10px;padding:14px;margin:11px 0;color:#744f13}
.pending-title{display:block;color:#82520a;font-weight:850;font-size:13px;line-height:1.45}
.pending-message{font-size:12px;line-height:1.6;color:#755c32;margin:9px 0}
.taxi-calendar-pending .hour-chip{background:#fff0d0;border-color:#f4dfb8;color:#775016}
.taxi-calendar-pending details{font-size:11px;margin-top:10px}
.taxi-calendar-pending summary{cursor:pointer;font-weight:800}
.taxi-calendar-pending .source{margin:8px 0 0;font-size:11px}
.family-state.state-calendario_pendiente{background:#ffedcf;color:#85520b}


/* La rotación semanal de taxis proviene de la información del propietario;
   mostrarla sin atribuirle falsamente la calidad de anexo oficial validado. */
.taxi-source-warning{font-size:11px;line-height:1.45;background:#fff3d9;color:#81521b;
  padding:8px 10px;border-radius:7px;font-weight:700;margin:6px 0 10px;
  border:1px solid #f4deb2}


/* 5 familias: lectura compacta, separación visual de taxis y menos ruido. */
.vehicle-families-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:start}
.family-card{padding:18px;border-radius:16px;box-shadow:0 5px 22px rgba(10,51,77,.045);height:auto}
.family-card.family-otros{grid-column:1/-1}
.family-card.family-taxis{border-color:#f0d5a7;background:linear-gradient(160deg,#fffcf5,#ffffff 45%);box-shadow:0 6px 23px rgba(200,128,30,.07)}
.family-taxis .family-emblem{background:#fff1c9}
.family-taxis .family-title h5{color:#7d5208}
.family-heading{gap:11px;align-items:center}
.family-emblem{width:52px;height:52px;border-radius:13px}
.family-emblem img{width:36px;height:36px}
.family-title h5{font-size:16px}
.family-subtitle{font-size:11px}
.family-badges{margin:12px 0 7px}
.family-turn{padding:8px 0}
.measures-list{gap:8px;margin-top:9px}
.measure-card{padding:12px;border-radius:10px;background:#f7fbff}
.family-taxis .measure-card{background:#fffdf7;border-color:#f2dfb8}
.measure-name{margin-bottom:5px}
.family-digits{margin:7px 0}
.family-digits .digit-token{width:38px;height:38px;font-size:19px}
.measure-card .family-digits .digit-token{width:38px;height:38px;font-size:19px}
.family-types{margin-top:9px}
.family-more{border-top:1px solid #e5edf3;padding-top:10px;margin-top:12px}
.family-more summary{font-size:11px}
.family-alerts summary,.measure-legal summary{cursor:pointer;font-size:11px;font-weight:800;color:#156c91}
.measure-legal{margin-top:9px;border-top:1px solid #e4edf3;padding-top:7px}
.measure-legal p{margin-top:7px}
.summary-sources{margin-top:18px;border-top:1px solid #dce9f2;padding-top:12px}
.summary-sources summary{font-size:12px;font-weight:800;color:#245879;cursor:pointer}
.summary-sources .source{font-size:11px;margin:9px 0}
.family-otros .family-unknown{max-width:580px}
@media(max-width:800px){.vehicle-families-grid{grid-template-columns:1fr}.family-card.family-otros{grid-column:auto}}
@media(min-width:801px){.family-card.family-carros,.family-card.family-motos{grid-row:auto}}


/* Portada mobile-first: el estado de hoy debe ser visible sin desplazar
   el hero promocional. Escritorio conserva la composición existente. */
.mobile-site-menu,.mobile-mobility-snapshot{display:none}
@media(max-width:580px){
  .site-header{position:relative;z-index:5}
  .topbar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;
    min-height:62px;padding:5px 0;gap:8px}
  .brand-logo{width:112px;height:38px}
  .brand-lockup small{font-size:7px;margin-top:-2px;max-width:120px}
  .site-nav{display:none}
  .mobile-site-menu{display:block;position:relative;flex:none;align-self:center}
  .mobile-site-menu>summary{display:block;list-style:none;cursor:pointer;border:1px solid #d2e4ee;
    border-radius:9px;padding:9px 12px;color:#153d5b;font-weight:800;font-size:12px;
    background:#f5fafd;min-width:64px;text-align:center}
  .mobile-site-menu>summary::-webkit-details-marker{display:none}
  .mobile-site-menu[open]>summary{background:#0d3d60;color:white}
  .mobile-site-menu nav{position:absolute;right:0;top:calc(100% + 7px);display:grid;
    background:white;box-shadow:0 12px 35px rgba(9,45,72,.17);
    border:1px solid #dce8ef;border-radius:12px;padding:7px;min-width:210px;z-index:20}
  .mobile-site-menu nav a{padding:12px;color:#163e59;text-decoration:none;font-size:13px;
    font-weight:700;border-radius:7px}
  .mobile-site-menu nav a:focus,.mobile-site-menu nav a:hover{background:#ecf7fd}
  .hero-movilidad{display:none}
  .today-wrap{margin-top:0;padding-top:9px}
  .today-card{padding:12px 12px 15px;border-radius:14px;box-shadow:none}
  .today-head{gap:5px;flex-direction:column}
  .today-head .section-tag{font-size:9px;letter-spacing:1px}
  .today-head h2{font-size:21px;line-height:1.12;letter-spacing:-.5px;margin:4px 0 1px}
  .today-head .subtle{font-size:10px;line-height:1.35}
  .today-select{min-width:0;width:100%;display:flex;align-items:center;gap:7px;margin-top:7px;flex-wrap:wrap}
  .today-select label{font-size:10px;white-space:nowrap}
  .today-select select{width:auto;flex:1;min-width:0;min-height:34px;padding:5px 7px;font-size:11px}
  .today-select .location-action{font-size:10px;padding:1px}
  .today-result{margin-top:8px}
  .today-status{padding:10px;border-radius:11px}
  .today-overview{display:block}
  .today-datetime{font-size:10px}
  .today-overview h3{font-size:15px;line-height:1.23;margin:3px 0 2px}
  .today-overview p{font-size:10px;line-height:1.35}
  .today-overview .status-pill{display:none}
  .mobile-mobility-snapshot{display:block;margin-top:10px}
  .mobile-snapshot-title{font-size:11px;font-weight:850;color:#0f4669;margin:0 0 7px}
  .mobile-snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .mobile-snapshot-item{display:flex;flex-direction:column;justify-content:center;gap:2px;
    min-width:0;padding:8px 10px;background:#fff;border:1px solid #d6e6f0;
    border-radius:9px;color:#164462;text-decoration:none;min-height:62px}
  .mobile-snapshot-item:nth-child(3){border-color:#efd4a2;background:#fffcf4}
  .mobile-snapshot-item:nth-child(5){grid-column:1/-1;min-height:48px}
  .mobile-snapshot-name{font-size:11px;line-height:1.1}
  .mobile-snapshot-digits{font-weight:900;font-size:19px;line-height:1.15;color:#0b3555}
  .mobile-snapshot-hours{color:#527186;font-size:9px;line-height:1.25}
  .mobile-snapshot-unknown{font-size:12px;font-weight:800;color:#916111}
  .mobile-snapshot-clear{font-size:12px;font-weight:800;color:#267b51}
  .mobile-snapshot-caution{font-size:9px;color:#916111}
  .families-title{margin:20px 0 9px;font-size:12px}
  .family-card{scroll-margin-top:12px}
  .content-grid{margin-top:13px}
}
@media(max-width:360px){
  .today-head h2{font-size:19px}
  .mobile-snapshot-item{padding:7px 8px}
}


/* Resumen ejecutivo de cinco familias, sin duplicar los detalles normativos. */
.today-card{padding:24px 28px}
.today-status{padding:18px}
.mobile-mobility-snapshot{display:block;margin-top:15px}
.mobile-snapshot-title{font-size:14px;color:#123f5c;margin:0 0 12px;font-weight:800}
.mobile-snapshot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.mobile-snapshot-item{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:15px;background:#fff;border:1px solid #d9e6ef;border-radius:12px;text-decoration:none;color:#133d5b;transition:border-color .15s,transform .15s}
.mobile-snapshot-item:hover,.mobile-snapshot-item:focus-visible{border-color:#087db4;transform:translateY(-2px);outline-offset:3px}
.mobile-snapshot-item:nth-child(3){border-color:#eacb93;background:#fffaf2}
.mobile-snapshot-name{font-size:13px;font-weight:850;line-height:1.25}
.mobile-snapshot-digits{font-size:24px;font-weight:900;line-height:1.1;letter-spacing:.4px;color:#083956}
.mobile-snapshot-hours{font-size:11px;line-height:1.4;color:#57778e}
.mobile-snapshot-caution{font-size:10px;line-height:1.35;color:#9b5e0c}
.mobile-snapshot-unknown{font-size:12px;color:#966512;font-weight:800}
.mobile-snapshot-clear{font-size:12px;color:#277951;font-weight:800}
.snapshot-all-link{display:inline-flex;margin-top:15px;padding:11px 14px;border-radius:9px;color:#fff;background:#0b608b;font-size:13px;font-weight:800;text-decoration:none}
.snapshot-all-link:hover{background:#084b70}
.detail-page{padding-top:31px;padding-bottom:45px}
.detail-intro{max-width:900px;margin-bottom:24px}
.detail-back{display:inline-block;color:#0a6694;font-weight:800;font-size:13px;margin:0 0 20px}
.detail-intro .section-tag{display:block;font-size:11px}
.detail-intro h1{color:#0b304c;font-size:clamp(27px,4vw,39px);letter-spacing:-1px;margin:7px 0 12px}
.detail-intro>p{font-size:14px;color:#536f82;line-height:1.6}
.detail-city-control{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0}
.detail-city-control label{font-size:12px;font-weight:800}
.detail-city-control select{padding:11px;border:1px solid #cfdfeb;background:white;border-radius:9px;min-width:180px}
.detail-city-control a{font-size:12px;font-weight:750;color:#096b99}
.detail-status{background:#f7fbff;padding:22px}
.detail-heading h2{font-size:23px;letter-spacing:-.5px;margin:0 0 7px}
.detail-heading p{margin:0 0 15px}
.detail-page .vehicle-families-grid{align-items:start}
.detail-page .family-card{scroll-margin-top:22px}
.detail-page .family-card.family-otros{grid-column:1/-1}
@media(max-width:1050px){.mobile-snapshot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){
  .mobile-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-page .vehicle-families-grid{grid-template-columns:1fr}
  .detail-page .family-card.family-otros{grid-column:auto}
}
@media(max-width:580px){
  .mobile-mobility-snapshot{margin-top:10px}
  .mobile-snapshot-title{font-size:11px;margin-bottom:7px}
  .mobile-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .mobile-snapshot-item{padding:8px 10px;gap:2px;min-height:62px}
  .mobile-snapshot-item:nth-child(5){grid-column:1/-1;min-height:48px}
  .mobile-snapshot-name{font-size:11px}
  .mobile-snapshot-digits{font-size:19px}
  .mobile-snapshot-hours,.mobile-snapshot-caution{font-size:9px}
  .snapshot-all-link{width:100%;justify-content:center;margin-top:10px;font-size:12px}
  .detail-page{padding-top:18px;padding-bottom:28px}
  .detail-city-control{display:grid;gap:8px}
  .detail-city-control select{width:100%}
  .detail-status{padding:12px}
}


/* Consulta pública por placa y rango de fechas. */
.plate-consult-page{padding-top:32px;padding-bottom:42px}
.plate-intro{max-width:790px;margin-bottom:23px}
.plate-intro h1{color:#0b304c;font-size:clamp(27px,4vw,38px);letter-spacing:-1px;margin:9px 0}
.plate-intro p{color:#5d788c;font-size:14px;line-height:1.6}
.plate-query-panel{max-width:1010px}
.plate-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:19px;row-gap:3px}
.plate-date-mode{border:0;padding:0;margin:9px 0 18px;display:flex;align-items:center;flex-wrap:wrap;gap:18px}
.plate-date-mode legend{font-size:12px;font-weight:850;color:#1c4d6b;padding:0;margin-bottom:9px}
.plate-date-mode label{display:flex;align-items:center;gap:8px;color:#244e68;font-size:13px;cursor:pointer}
.plate-date-mode input{accent-color:#087bb5}
.plate-dates{max-width:690px}
.plate-submit{max-width:500px}
.plate-feedback{margin:13px 0 0;color:#476e84;font-size:12px}
.plate-results{margin-top:25px;scroll-margin-top:18px}
.plate-result-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;background:#fff;border:1px solid #dce9f0;border-radius:17px;padding:23px}
.plate-result-intro h2{font-size:23px;color:#103b59;margin:6px 0}
.plate-metrics{display:flex;flex-wrap:wrap;gap:10px}
.plate-metric{display:flex;flex-direction:column;gap:5px;padding:11px 14px;border-radius:10px;background:#eef6fa;min-width:126px}
.plate-metric strong{font-size:25px;color:#143e5b}
.plate-metric span{font-size:10px;font-weight:800;color:#4d6b7f}
.metric-restringido{background:#fff0e2}.metric-restringido strong{color:#9a4b0a}
.metric-libre{background:#eaf9f1}.metric-libre strong{color:#23724e}
.metric-sin_confirmar{background:#fff6dc}.metric-sin_confirmar strong{color:#92660e}
.plate-days{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.plate-day-card{border:1px solid #d8e6ee;border-radius:12px;background:#fff;padding:16px;min-width:0}
.plate-day-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.plate-day-heading h3{font-size:17px;color:#183c55;margin:0}
.plate-day-badge{font-size:11px;font-weight:800;color:#446880;background:#edf5fa;border-radius:7px;padding:7px 9px}
.plate-state-restringido{border-color:#edcaab;background:#fffdfa}
.plate-state-restringido .plate-day-badge{color:#a04e0f;background:#fff0de}
.plate-state-libre .plate-day-badge{color:#187349;background:#eaf8f0}
.plate-day-hours{font-weight:850;color:#183e59;font-size:13px}
.plate-day-message,.plate-day-warning{font-size:12px;line-height:1.55;color:#60798b}
.plate-day-warning{color:#965a11}
.plate-day-card details{margin-top:11px;border-top:1px solid #e0eaf0;padding-top:10px;color:#526e80;font-size:12px}
.plate-day-card summary{cursor:pointer;font-weight:800;color:#0b6690}
.plate-day-measure{border-top:1px dotted #dae8ef;margin-top:10px;padding-top:10px}
.plate-day-measure p{font-size:12px;line-height:1.5}
.plate-day-measure a{color:#076d9b;font-weight:800}
.plate-disclaimer{font-size:12px;line-height:1.6;max-width:960px;margin:20px 0;color:#627f90}
@media(max-width:760px){.plate-days{grid-template-columns:1fr}.plate-input-grid{grid-template-columns:1fr}.plate-result-summary{align-items:stretch}.plate-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.plate-metric{min-width:0}}
@media(max-width:580px){.plate-consult-page{padding-top:17px}.plate-query-panel{padding:17px}.plate-date-mode{gap:12px}.plate-result-summary{padding:15px}.plate-metric{padding:10px}.plate-metric strong{font-size:21px}.plate-metric span{font-size:9px}.plate-day-card{padding:13px}}
