/* ---------- Físicas · calculadora de la nota (página propia) ---------- */
.opr-fcal-cabeza .opr-h2{max-width:18ch !important}
.opr-fcal-cabeza .opr-entradilla{max-width:62ch !important}
.opr-fcal-texto{max-width:760px !important}

/* --- la calculadora --- */
.opr-fcal-tarjeta{display:grid !important; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) !important; overflow:hidden !important}
.opr-fcal-izq{padding:clamp(22px,3vw,34px) !important}
.opr-fcal-der{padding:clamp(22px,3vw,34px) !important; background:var(--p50) !important; border-left:1px solid var(--borde) !important;
  display:flex !important; flex-direction:column !important; gap:18px !important}
.opr-fcal-sub{margin-top:8px !important; font-size:.9375rem !important; line-height:1.5 !important; color:var(--suave) !important; max-width:48ch !important}
.opr-fcal-sexo{margin-top:18px !important}

.opr-fcal-campos{margin-top:22px !important; display:flex !important; flex-direction:column !important; gap:16px !important}
.opr-fcal-campo{display:grid !important; grid-template-columns:minmax(0,1fr) 150px !important; grid-template-areas:"eti ent" "res res" !important;
  align-items:center !important; column-gap:16px !important; row-gap:6px !important; padding-bottom:16px !important; border-bottom:1px solid var(--borde) !important}
.opr-fcal-campo:last-child{border-bottom:0 !important; padding-bottom:0 !important}
.opr-fcal-campo label{grid-area:eti !important; display:flex !important; flex-direction:column !important; gap:3px !important; cursor:default !important}
.opr-fcal-campo label b{font-size:1rem !important; font-weight:700 !important; letter-spacing:-.015em !important; line-height:1.25 !important}
.opr-fcal-campo label i{font-size:.8125rem !important; font-style:normal !important; color:var(--tenue) !important; line-height:1.4 !important}
.opr-fcal-entrada{grid-area:ent !important; display:flex !important; align-items:center !important; gap:8px !important; padding:0 12px !important; height:48px !important;
  border-radius:var(--radio-s) !important; background:var(--superficie) !important; box-shadow:inset 0 0 0 1.5px var(--borde2) !important}
.opr-fcal-entrada:focus-within{box-shadow:inset 0 0 0 2px var(--tinta) !important}
.opr-fcal-entrada input:focus-visible{outline:none !important}
.opr-fcal-entrada input{flex:1 !important; width:100% !important; height:100% !important; font-size:1.125rem !important; font-weight:700 !important;
  font-variant-numeric:tabular-nums !important; color:var(--tinta) !important; text-align:right !important; background:transparent !important}
.opr-fcal-entrada input::placeholder{color:var(--p300) !important; font-weight:600 !important}
.opr-fcal-unidad{flex:none !important; font-size:.8125rem !important; font-weight:600 !important; color:var(--tenue) !important}
.opr-fcal-res{grid-area:res !important; font-size:.875rem !important; line-height:1.45 !important; color:var(--suave) !important; min-height:1.45em !important}
.opr-fcal-res b{font-weight:800 !important; font-variant-numeric:tabular-nums !important; color:var(--tinta) !important}
.opr-fcal-campo.es-ok .opr-fcal-entrada{box-shadow:inset 0 0 0 1.5px var(--ok500) !important}
.opr-fcal-campo.es-fuera .opr-fcal-entrada{box-shadow:inset 0 0 0 1.5px var(--no500) !important}
.opr-fcal-campo.es-fuera .opr-fcal-res b{color:var(--no600) !important}
.opr-fcal-campo.es-raro .opr-fcal-res{color:var(--av600) !important}
.opr-fcal-borrar{margin-top:22px !important}

.opr-fcal-marcador{display:flex !important; align-items:baseline !important; gap:10px !important}
.opr-fcal-marcador b{font-size:clamp(3rem,6vw,4.25rem) !important; font-weight:800 !important; line-height:1 !important}
.opr-fcal-marcador span{font-size:.9375rem !important; font-weight:600 !important; color:var(--tenue) !important}

.opr-fcal-reglas{list-style:none !important; display:flex !important; flex-direction:column !important; gap:10px !important}
.opr-fcal-reglas li{position:relative !important; padding:12px 14px 12px 40px !important; border-radius:var(--radio-s) !important;
  background:var(--superficie) !important; box-shadow:inset 0 0 0 1px var(--borde) !important}
.opr-fcal-reglas li::before{content:"" !important; position:absolute !important; left:14px !important; top:15px !important; width:14px !important; height:14px !important;
  border-radius:999px !important; box-shadow:inset 0 0 0 2px var(--p300) !important}
.opr-fcal-reglas li b{display:block !important; font-size:.9375rem !important; font-weight:700 !important; line-height:1.3 !important}
.opr-fcal-reglas li i{display:block !important; margin-top:2px !important; font-size:.8125rem !important; font-style:normal !important; color:var(--tenue) !important; line-height:1.4 !important}
.opr-fcal-reglas li.es-ok::before{background:var(--ok500) !important; box-shadow:none !important}
.opr-fcal-reglas li.es-fuera::before{background:var(--no500) !important; box-shadow:none !important}

.opr-fcal-veredicto{font-size:1rem !important; font-weight:600 !important; line-height:1.45 !important; color:var(--suave) !important}
.opr-fcal-veredicto.es-ok{color:var(--ok600) !important}
.opr-fcal-veredicto.es-fuera{color:var(--no600) !important}
.opr-fcal-cta{align-self:flex-start !important; margin-top:auto !important}
.opr-fcal-fuente{margin-top:18px !important; max-width:90ch !important; line-height:1.5 !important}

/* --- texto corrido --- */
.opr-fcal-texto .opr-h2{margin-top:10px !important}
.opr-fcal-lista{margin-top:24px !important; padding-left:1.3em !important}
/* Sin flex: un hijo de flex deja de ser list-item y pierde el número. Y el
   núcleo pone `list-style:none` a todo: el número hay que pedirlo en el li. */
.opr-fcal-lista li{list-style:decimal outside !important}
.opr-fcal-lista li + li{margin-top:12px !important}
.opr-fcal-lista li{font-size:1.0625rem !important; line-height:1.6 !important; color:var(--suave) !important; padding-left:.3em !important}
.opr-fcal-lista li b{color:var(--tinta) !important; font-weight:700 !important}
.opr-fcal-lista li::marker{font-weight:800 !important; color:var(--tinta) !important}

.opr-fcal-ejercicios{margin-top:clamp(26px,3vw,40px) !important; display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:clamp(22px,3vw,36px) !important}
.opr-fcal-ej{display:flex !important; flex-direction:column !important; gap:10px !important}
.opr-fcal-ej p{font-size:.96875rem !important; line-height:1.6 !important; color:var(--suave) !important}
.opr-fcal-ej p b{color:var(--tinta) !important; font-weight:700 !important}
.opr-fcal-ej .opr-nota{font-size:.8125rem !important; line-height:1.5 !important}

.opr-fcal-tabla-caja{margin-top:6px !important; overflow-x:auto !important; border-radius:var(--radio-s) !important; box-shadow:inset 0 0 0 1px var(--borde) !important}
.opr-fcal-tabla{width:100% !important; border-collapse:collapse !important; font-variant-numeric:tabular-nums !important}
.opr-fcal-tabla caption{text-align:left !important; padding:10px 14px 8px !important; font-size:.8125rem !important; font-weight:700 !important; color:var(--tenue) !important}
.opr-fcal-tabla th{padding:9px 12px !important; font-size:.8125rem !important; font-weight:700 !important; text-align:center !important;
  background:var(--p100) !important; color:var(--suave) !important; border-top:1px solid var(--borde) !important}
.opr-fcal-tabla td{padding:8px 12px !important; font-size:.90625rem !important; text-align:center !important; color:var(--tinta) !important;
  border-top:1px solid var(--borde) !important; white-space:nowrap !important}
.opr-fcal-tabla td:nth-child(2){font-weight:800 !important}
.opr-fcal-tabla tr.es-tuya td{background:var(--p100) !important}
.opr-fcal-tabla tr.es-tuya td:nth-child(2){box-shadow:inset 3px 0 0 var(--tinta) !important}

.opr-fcal-faq .opr-h3{margin-top:26px !important}
.opr-fcal-faq p{margin-top:8px !important; font-size:1rem !important; line-height:1.6 !important; color:var(--suave) !important}
.opr-fcal-faq a,.opr-fcal-mas a{color:var(--tinta) !important; font-weight:700 !important; text-decoration:underline !important;
  text-underline-offset:3px !important}
.opr-fcal-mas{margin-top:30px !important}

@media (max-width:900px){
  .opr-fcal-tarjeta{grid-template-columns:minmax(0,1fr) !important}
  .opr-fcal-der{border-left:0 !important; border-top:1px solid var(--borde) !important}
  .opr-fcal-ejercicios{grid-template-columns:minmax(0,1fr) !important}
}
@media (max-width:520px){
  .opr-fcal-campo{grid-template-columns:minmax(0,1fr) 124px !important; column-gap:12px !important}
  .opr-fcal-tabla td,.opr-fcal-tabla th{padding:8px 8px !important}
}

/* `hidden` tiene que ganar a las reglas de esta hoja: (0,3,0) al final. */
.opr.opr-fcal [hidden]{display:none !important}
