:root{--g:#008C4F;--n:#052F5E;--b:#ACDCF2;--bs:#EAF6FB;--ink:#142033;--m:#657181;--line:#D8E7EE;--bg:#F8FBFC;--h:66px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}.tv-app{min-height:100dvh}
.tv-header{height:var(--h);padding:0 clamp(14px,3vw,34px);display:flex;align-items:center;justify-content:space-between;background:var(--g);color:#C4F5B4;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tv-logo{width:132px}.tv-logo img{display:block;width:100%}
.tv-screen{display:none;min-height:calc(100dvh - var(--h))}.tv-screen.is-active{display:block}.tv-shell{width:min(1180px,calc(100% - 34px));margin:auto;padding:36px 0}.tv-top{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;padding-bottom:22px;border-bottom:1px solid var(--line)}small,.tv-top small{color:var(--n);font-size:8px;font-weight:950;letter-spacing:.14em}.tv-top h1{margin:7px 0 0;color:var(--n);font-size:clamp(36px,4vw,58px);line-height:.95;letter-spacing:-.055em}.tv-top p{margin:9px 0 0;color:var(--m);font-size:12px}.tv-progress{width:240px}.tv-progress b{display:block;margin-bottom:7px;color:var(--n);text-align:right;font-size:9px}.tv-progress span{display:block;height:6px;border-radius:99px;background:#DCEAF0;overflow:hidden}.tv-progress i{display:block;width:25%;height:100%;background:var(--n)}
.tv-step{display:none;padding-top:44px}.tv-step.is-active{display:block}.tv-step>em{display:block;color:#7AAEC4;font-style:normal;font-size:10px;font-weight:950}.tv-step h2{margin:6px 0 20px;color:var(--n);font-size:clamp(30px,3.3vw,47px);line-height:1;letter-spacing:-.05em}.tv-grid{display:grid;gap:11px}.tv-grid.two{grid-template-columns:repeat(2,1fr)}.tv-grid.four{grid-template-columns:repeat(4,1fr)}.tv-grid.compact{gap:7px}.tv-grid button{min-height:105px;padding:17px;border:1.5px solid var(--line);border-radius:17px;background:#fff;color:var(--n);text-align:left}.tv-grid button strong{display:block;font-size:16px}.tv-grid button span{display:block;margin-top:5px;color:var(--m);font-size:9px}.tv-grid button.selected{border-color:var(--n);background:var(--bs)}
.tv-actions{margin-top:20px;display:flex;justify-content:space-between;gap:12px}.tv-actions>button{min-height:46px;padding:0 17px;border:1px solid var(--n);border-radius:99px;background:#fff;color:var(--n);font-size:10px;font-weight:950}.tv-actions>button:first-child{border:0;background:none;color:#74818B}.tv-actions .primary{background:var(--n);color:var(--b)}
.tv-switch{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:15px;background:#fff;display:flex;justify-content:space-between;align-items:center}.tv-switch strong{display:block;color:var(--n);font-size:10px}.tv-switch small{display:block;margin-top:3px;color:#7A8793;font-size:8px;letter-spacing:0}.tv-switch input{display:none}.tv-switch i{position:relative;width:46px;height:27px;border-radius:99px;background:#D6E6ED}.tv-switch i:after{content:"";position:absolute;top:4px;left:4px;width:19px;height:19px;border-radius:50%;background:#fff}.tv-switch input:checked+i{background:var(--n)}.tv-switch input:checked+i:after{left:23px;background:var(--b)}
.tv-note{padding:18px;border-left:4px solid var(--n);background:var(--bs)}.tv-note strong,.tv-note span{display:block}.tv-note strong{color:var(--n);font-size:13px}.tv-note span{margin-top:3px;color:var(--m);font-size:9px}
.tv-pet{display:grid;grid-template-columns:1.1fr .9fr .9fr .9fr;gap:11px;align-items:end}.tv-pet label>span,.tv-pet>div>label{display:block;margin-bottom:6px;color:var(--n);font-size:8px;font-weight:900}.tv-pet select,.tv-unit{width:100%;height:49px;border:1.5px solid var(--line);border-radius:13px;background:#fff}.tv-pet select{padding:0 10px}.tv-unit{display:grid;grid-template-columns:1fr 35px;align-items:center}.tv-unit input{width:100%;height:100%;padding:0 10px;border:0;outline:0;background:none}.tv-unit b{color:#7A8A95;font-size:9px}
.tv-check-shell{width:min(1280px,calc(100% - 34px));margin:auto;padding:26px 0 38px;display:grid;grid-template-columns:260px 1fr;gap:40px}.tv-side{align-self:start;position:sticky;top:22px}.tv-side h2{margin:7px 0 0;color:var(--n);font-size:27px;line-height:1}.tv-side p{color:var(--m);font-size:9px}.tv-score{margin-top:18px;display:flex;align-items:end;gap:3px}.tv-score b{color:var(--n);font-size:48px;line-height:.85}.tv-score span{color:#7C8C97;font-size:10px}.tv-bar{height:6px;margin-top:11px;border-radius:99px;background:#DCEAF0;overflow:hidden}.tv-bar i{display:block;width:0;height:100%;background:var(--n)}.tv-side>button{margin-top:11px;padding:0;border:0;background:none;color:var(--n);font-size:8px;font-weight:900;text-decoration:underline}
.tv-main-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px}.tv-main-head h1{margin:6px 0 0;color:var(--n);font-size:clamp(34px,4vw,52px);line-height:.95;letter-spacing:-.055em}.tv-main-head>button{min-height:42px;padding:0 15px;border:0;border-radius:99px;background:var(--n);color:var(--b);font-size:9px;font-weight:950}
.tv-group{margin-top:22px}.tv-group-head{display:flex;justify-content:space-between;gap:14px;padding-bottom:8px;border-bottom:1px solid #BDD4DE}.tv-group-head h3{margin:0;color:var(--n);font-size:14px}.tv-group-head span{color:#80939E;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.tv-task{display:grid;grid-template-columns:29px 1fr auto;gap:11px;align-items:center;padding:11px 2px;border-bottom:1px solid #E4EEF2}.tv-check{width:26px;height:26px;border:1.5px solid #B8CED7;border-radius:50%;display:grid;place-items:center;background:#fff;color:transparent;font-size:10px;font-weight:950}.tv-task.done .tv-check{border-color:var(--n);background:var(--n);color:var(--b)}.tv-copy strong{display:block;color:#273747;font-size:10px}.tv-copy small{display:block;margin-top:3px;color:#7B8A95;font-size:8px;line-height:1.35;letter-spacing:0}.tv-task.done .tv-copy strong{color:#6C7A84;text-decoration:line-through}.tv-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.tv-links a{min-height:29px;padding:0 9px;border:1px solid #BCD2DC;border-radius:99px;display:inline-flex;align-items:center;color:var(--n);text-decoration:none;font-size:7.5px;font-weight:900}.tv-links a.download{background:var(--bs);border-color:var(--n)}.tv-warning{margin-bottom:12px;padding:10px 12px;border-left:3px solid var(--n);background:var(--bs);color:#435866;font-size:8.5px}
.tv-result{width:min(1200px,calc(100% - 34px));margin:auto;padding:42px 0;display:grid;grid-template-columns:1fr 390px;gap:55px}.tv-big{display:flex;align-items:end;gap:9px;margin-top:12px}.tv-big b{color:var(--n);font-size:64px;line-height:.78}.tv-big span{max-width:100px;color:#71818C;font-size:9px}.tv-result main>h1{margin:15px 0 6px;color:var(--n);font-size:clamp(38px,4.5vw,62px);line-height:.95;letter-spacing:-.06em}.tv-result main>p{margin:0;color:var(--m);font-size:12px}.tv-cols{margin-top:24px;padding-top:14px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:30px}.tv-cols>div>strong{color:var(--n);font-size:7px;letter-spacing:.12em}.tv-cols ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:5px}.tv-cols li{position:relative;padding-left:13px;color:#5F6E79;font-size:8px}.tv-cols li:before{content:"✓";position:absolute;left:0;color:var(--n);font-weight:950}.tv-cols>div:last-child li:before{content:"•";font-size:12px;line-height:.7}.tv-result aside{padding-left:30px;border-left:1px solid var(--line)}.tv-result aside>h2{margin:7px 0 16px;color:var(--n);font-size:30px;line-height:1}.tv-result aside>button{width:100%;min-height:46px;margin-bottom:7px;border:1px solid #BDD3DD;border-radius:99px;background:#fff;color:var(--n);font-size:9px;font-weight:950}.tv-result aside>button.save{border:0;background:var(--n);color:var(--b)}.tv-patyta{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.tv-patyta span{color:#7A8D98;font-size:7px;font-weight:950;letter-spacing:.12em}.tv-patyta h3{margin:6px 0;color:var(--n);font-size:23px;line-height:1}.tv-patyta p{color:#73818B;font-size:8px}.tv-patyta a{color:var(--n);font-size:9px;font-weight:950;text-decoration:none}
@media(max-width:760px){:root{--h:56px}.tv-header{padding:0 11px}.tv-logo{width:97px}.tv-shell{width:calc(100% - 22px);padding:18px 0}.tv-top{align-items:flex-start;flex-direction:column;gap:12px}.tv-top h1{font-size:34px}.tv-progress{width:100%}.tv-progress b{text-align:left}.tv-step{padding-top:24px}.tv-step h2{font-size:29px}.tv-grid.four,.tv-grid.two{grid-template-columns:1fr 1fr}.tv-grid button{min-height:78px;padding:12px}.tv-grid button strong{font-size:12px}.tv-pet{grid-template-columns:1fr}.tv-check-shell{width:calc(100% - 20px);grid-template-columns:1fr;gap:18px}.tv-side{position:static}.tv-main-head h1{font-size:33px}.tv-task{grid-template-columns:27px 1fr}.tv-links{grid-column:2;justify-content:flex-start}.tv-result{width:calc(100% - 22px);padding:20px 0;grid-template-columns:1fr;gap:24px}.tv-result aside{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}.tv-result main>h1{font-size:38px}}
@media print{@page{size:A4;margin:15mm}.tv-header,[data-screen="wizard"],[data-screen="checklist"],.tv-result aside>button,.tv-patyta{display:none!important}.tv-screen[data-screen="result"]{display:block!important}.tv-result{width:100%;display:block;padding:0}.tv-result aside{border:0;padding-top:20px}}

/* ==========================================================
   R1B · LEGIBILIDAD + UI/UX
   Mantiene la identidad y los títulos principales.
   ========================================================== */

/* Texto general más cómodo */
.tv-top p{
  font-size:14px;
  line-height:1.5;
  max-width:680px;
}

.tv-step h2{
  margin-bottom:12px;
}

.tv-step::after{
  content:"";
  display:block;
  clear:both;
}

/* Opciones del wizard */
.tv-grid button{
  min-height:118px;
  padding:20px;
  border-radius:18px;
}

.tv-grid button strong{
  font-size:18px;
  line-height:1.2;
}

.tv-grid button span{
  margin-top:7px;
  font-size:12px;
  line-height:1.35;
}

.tv-grid button.selected{
  box-shadow:0 0 0 3px rgba(5,47,94,.07);
}

/* Controles más legibles */
.tv-switch{
  padding:17px 18px;
}

.tv-switch strong{
  font-size:13px;
}

.tv-switch small{
  margin-top:4px;
  font-size:11px;
  line-height:1.35;
}

.tv-note{
  padding:20px;
}

.tv-note strong{
  font-size:15px;
}

.tv-note span{
  margin-top:5px;
  font-size:12px;
  line-height:1.4;
}

.tv-pet label>span,
.tv-pet>div>label{
  margin-bottom:8px;
  font-size:11px;
}

.tv-pet select,
.tv-unit{
  height:54px;
  border-radius:14px;
}

.tv-pet select,
.tv-unit input{
  font-size:15px;
}

.tv-unit b{
  font-size:11px;
}

/* Botones de navegación */
.tv-actions>button{
  min-height:50px;
  padding:0 21px;
  font-size:12px;
}

/* ==========================================================
   CHECKLIST
   ========================================================== */

.tv-check-shell{
  grid-template-columns:290px minmax(0,1fr);
  gap:48px;
  padding-top:32px;
}

/* Resumen lateral */
.tv-side h2{
  font-size:31px;
  line-height:1.03;
}

.tv-side p{
  font-size:12px;
  line-height:1.45;
}

.tv-side>button{
  margin-top:14px;
  font-size:11px;
}

.tv-score{
  margin-top:23px;
}

.tv-score b{
  font-size:54px;
}

.tv-score span{
  font-size:12px;
}

.tv-bar{
  height:8px;
  margin-top:14px;
}

/* Cabecera del checklist */
.tv-main-head{
  margin-bottom:20px;
}

.tv-main-head>button{
  min-height:46px;
  padding:0 18px;
  font-size:11px;
}

/* Cada grupo se entiende como una sección,
   sin convertir cada requisito en una tarjeta separada */
.tv-group{
  margin-top:26px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
}

.tv-group:first-child{
  margin-top:0;
}

.tv-group-head{
  padding:16px 18px 13px;
  border-bottom:1px solid #BCD3DE;
  background:linear-gradient(180deg,#F7FCFE 0%,#F2F9FC 100%);
}

.tv-group-head h3{
  font-size:18px;
  line-height:1.2;
}

.tv-group-head span{
  font-size:9px;
}

/* Requisitos: tipografía realmente legible */
.tv-task{
  min-height:82px;
  padding:15px 18px;
  grid-template-columns:38px minmax(0,1fr) auto;
  gap:14px;
  border-bottom:1px solid #E4EEF2;
}

.tv-task:last-child{
  border-bottom:0;
}

.tv-check{
  width:34px;
  height:34px;
  font-size:13px;
  border-width:2px;
}

.tv-copy strong{
  font-size:14px;
  line-height:1.3;
  letter-spacing:-.01em;
}

.tv-copy small{
  max-width:690px;
  margin-top:5px;
  color:#687A87;
  font-size:11.5px;
  line-height:1.45;
}

.tv-links{
  max-width:285px;
  gap:7px;
}

.tv-links a{
  min-height:38px;
  padding:0 13px;
  font-size:10px;
  line-height:1.2;
}

.tv-warning{
  margin-bottom:16px;
  padding:14px 16px;
  border-left-width:4px;
  border-radius:0 12px 12px 0;
  font-size:11.5px;
  line-height:1.45;
}

/* Un poco más de feedback cuando está listo */
.tv-task.done{
  background:#F8FBFC;
}

.tv-task.done .tv-copy strong{
  text-decoration-thickness:1.5px;
  text-decoration-color:#91A7B2;
}

/* ==========================================================
   RESULTADO
   ========================================================== */

.tv-result main>p{
  font-size:14px;
  line-height:1.5;
}

.tv-cols{
  gap:38px;
}

.tv-cols>div>strong{
  font-size:9px;
}

.tv-cols li{
  padding-left:17px;
  font-size:11.5px;
  line-height:1.4;
}

.tv-result aside>h2{
  font-size:33px;
  line-height:1.03;
}

.tv-result aside>button{
  min-height:50px;
  font-size:11px;
}

.tv-patyta h3{
  font-size:26px;
  line-height:1.05;
}

.tv-patyta p{
  font-size:11.5px;
  line-height:1.45;
}

.tv-patyta a{
  font-size:12px;
}

/* ==========================================================
   MOBILE
   ========================================================== */

@media(max-width:760px){

  .tv-top p{
    font-size:12px;
  }

  .tv-grid button{
    min-height:92px;
    padding:14px;
  }

  .tv-grid button strong{
    font-size:14px;
  }

  .tv-grid button span{
    font-size:10.5px;
  }

  .tv-switch strong{
    font-size:12px;
  }

  .tv-switch small{
    font-size:10px;
  }

  .tv-note strong{
    font-size:13px;
  }

  .tv-note span{
    font-size:10.5px;
  }

  .tv-pet label>span,
  .tv-pet>div>label{
    font-size:10px;
  }

  .tv-actions>button{
    min-height:47px;
    font-size:11px;
  }

  .tv-check-shell{
    gap:20px;
    padding-top:20px;
  }

  .tv-side h2{
    font-size:27px;
  }

  .tv-side p{
    font-size:11px;
  }

  .tv-main-head{
    align-items:center;
  }

  .tv-main-head>button{
    min-height:42px;
    font-size:10px;
  }

  .tv-group{
    margin-top:18px;
    border-radius:16px;
  }

  .tv-group-head{
    padding:13px 12px 11px;
  }

  .tv-group-head h3{
    font-size:16px;
  }

  .tv-group-head span{
    font-size:8px;
  }

  .tv-task{
    min-height:0;
    padding:14px 12px;
    grid-template-columns:34px minmax(0,1fr);
    gap:11px;
  }

  .tv-check{
    width:31px;
    height:31px;
    font-size:11px;
  }

  .tv-copy strong{
    font-size:13px;
    line-height:1.28;
  }

  .tv-copy small{
    margin-top:4px;
    font-size:11px;
    line-height:1.4;
  }

  .tv-links{
    grid-column:2;
    max-width:none;
    justify-content:flex-start;
    margin-top:2px;
  }

  .tv-links a{
    min-height:37px;
    padding:0 11px;
    font-size:9.5px;
  }

  .tv-warning{
    font-size:11px;
  }

  .tv-result main>p{
    font-size:12px;
  }

  .tv-cols{
    gap:18px;
  }

  .tv-cols li{
    font-size:10.5px;
  }

  .tv-result aside>h2{
    font-size:29px;
  }

  .tv-result aside>button{
    font-size:10.5px;
  }

  .tv-patyta p{
    font-size:10.5px;
  }

  .tv-patyta a{
    font-size:11px;
  }
}

/* Teléfonos angostos: mantener lectura antes que meter 2 columnas */
@media(max-width:430px){
  .tv-grid.four{
    grid-template-columns:1fr 1fr;
  }

  .tv-check-shell{
    width:calc(100% - 16px);
  }

  .tv-copy strong{
    font-size:13.5px;
  }

  .tv-copy small{
    font-size:11px;
  }

  .tv-links{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }

  .tv-links a{
    width:100%;
    justify-content:center;
  }
}
