/* Calculadora de costos 3D: formulario a la izquierda, resultado pegajoso a la derecha (≥ 900 px). */
.wrap.ancho{max-width:1120px;gap:22px}
.brand span{overflow:hidden;text-overflow:ellipsis}
.num,.cifra,.desglose td,.datos-fisicos dd,.barra b,.lineas b,.refs .cif{font-variant-numeric:tabular-nums}

/* tema: el botón muestra el icono del tema al que cambia */
#tema .sol{display:none}
:root[data-theme="dark"] #tema .sol{display:block}
:root[data-theme="dark"] #tema .luna{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #tema .sol{display:block}:root:not([data-theme="light"]) #tema .luna{display:none}}

/* pestañas */
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border-radius:16px;background:var(--card);border:1px solid var(--line)}
.tabs [role="tab"]{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:8px 10px;
  border:0;border-radius:11px;background:transparent;color:var(--fg-2);cursor:pointer;text-align:center;
}
.tabs [role="tab"] b{font-weight:600;font-size:15.5px}
.tabs [role="tab"] small{font-size:12.5px;color:var(--muted);line-height:1.25}
.tabs [role="tab"][aria-selected="true"]{background:var(--primary);color:var(--primary-ink)}
.tabs [role="tab"][aria-selected="true"] small{color:var(--primary-ink);opacity:.78}

/* columnas */
.calc{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}
.col-form,.col-res{display:flex;flex-direction:column;gap:16px;min-width:0}
@media (min-width:900px){
  .calc{grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:28px}
  .col-res{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:4px;scrollbar-width:thin}
}

/* formulario */
.form,.panel{display:flex;flex-direction:column;gap:16px}
.panel[hidden]{display:none}
.q{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:14px;margin:0;min-width:0;display:flex;flex-direction:column;gap:10px}
.q[hidden]{display:none}
.q>legend,.q-tit{float:left;width:100%;padding:0;font-weight:600;font-size:15.5px;letter-spacing:-.005em;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.q>legend+*{clear:both}
.q-num{color:var(--primary);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.ayuda{color:var(--muted);font-size:13.5px;line-height:1.45}
.ayuda.ambar,.nota-ambar{color:var(--ambar)}
.ayuda:empty{display:none}
.opc{color:var(--muted);font-weight:400;font-size:13px}

.campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.campo>label,.etq{font-size:14px;font-weight:550;color:var(--fg-2)}
.form>.campo{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:14px}
input[type="text"],input[type="number"],select,textarea{
  width:100%;min-width:0;min-height:44px;padding:10px 12px;border-radius:11px;border:1px solid var(--line-2);
  background:var(--bg);color:var(--fg);font-size:16px;line-height:1.3;
}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:1px;border-color:transparent}
input[aria-invalid="true"]{border-color:var(--ambar)}
select{appearance:none;-webkit-appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat}
textarea{min-height:110px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}
.con-unidad{position:relative;display:block}
.con-unidad input{padding-right:42px}
.con-unidad .u{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px;pointer-events:none}
.fila3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fila2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fila2,.fila3{align-items:end}

/* opciones en botones (radios y casillas reales, ocultas) */
.seg{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,128px),1fr));gap:6px}
.seg.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.seg.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.seg.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.op{position:relative;display:block;min-width:0}
.op input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.op span{
  display:flex;flex-direction:column;justify-content:center;gap:2px;height:100%;min-height:44px;padding:9px 11px;border-radius:11px;
  border:1px solid var(--line-2);background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s;
}
.op b{font-weight:550;font-size:14.5px;line-height:1.25;overflow-wrap:anywhere}
.op small{font-size:12.5px;color:var(--muted);line-height:1.3;overflow-wrap:anywhere}
.op:hover span{border-color:var(--muted)}
.op input:checked+span{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}
.op input:checked+span b{color:var(--primary)}
.op input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.op.centro span{align-items:center;text-align:center}

.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{
  display:inline-flex;align-items:center;min-height:44px;padding-inline:12px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:var(--bg);color:var(--fg-2);font:500 13.5px/1.2 var(--font);font-variant-numeric:tabular-nums;
}
.chip:hover{border-color:var(--line-2);color:var(--fg)}

/* plegables */
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
.afinar,.datos,.plegable{border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.afinar>summary,.datos>summary,.plegable>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 14px}
.sum-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.sum-txt b{font-weight:600;font-size:15.5px}
.sum-txt small{color:var(--muted);font-size:13px;line-height:1.35}
.flecha{color:var(--muted);transition:transform .2s}
details[open]>summary .flecha{transform:rotate(180deg)}
.afinar-cuerpo,.datos-cuerpo{display:flex;flex-direction:column;gap:14px;padding:4px 14px 16px}
.afinar .q{border:0;padding:0;background:transparent}

/* filamentos en Exacto */
.filas-fil{display:flex;flex-direction:column;gap:8px}
.fil{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 44px;gap:8px;align-items:end}
.btn-x{width:44px;height:44px;border-radius:11px;border:1px solid var(--line-2);background:var(--bg);color:var(--muted);cursor:pointer;display:grid;place-items:center}
.btn-x:hover{color:var(--fg)}
.btn-x[disabled]{visibility:hidden}
.acciones{display:flex;flex-wrap:wrap;gap:8px}
.gcode{display:flex;flex-direction:column;gap:8px}
.gcode[hidden]{display:none}

/* datos de SPAI */
.nota{color:var(--muted);font-size:13.5px;line-height:1.45}
.datos-acciones{display:flex;flex-wrap:wrap;gap:8px}
.datos-acciones .btn2{flex:1 1 180px}
.datos-campos{display:flex;flex-direction:column;gap:8px}
.grupo{border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.grupo>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:8px 12px;font-weight:550;font-size:15px}
.grupo>summary small{color:var(--primary);font-weight:500;font-size:12.5px}
.grupo-cuerpo{display:flex;flex-direction:column;gap:12px;padding:2px 12px 14px}
.sub-tit{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,136px),1fr));gap:10px}
.rejilla .campo>label{font-size:13px;font-weight:500;color:var(--fg-2)}
.rejilla .nota.ancha,.rejilla .campo.ancha{grid-column:1/-1}
.campo.cambiado>label::after{content:" · editado";color:var(--primary);font-weight:500}
/* nivel 1 ("Lo que sí se mueve") y nivel 2 ("Avanzado", plegado) */
.n1{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:12px}
.n1-titulo{font-size:15.5px;font-weight:600;letter-spacing:-.005em;padding-bottom:4px}
.n1-item{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-top:1px solid var(--line)}
.n1-item:last-child{padding-bottom:2px}
.n1-tit{font-weight:600;font-size:14.5px;color:var(--fg)}
.n1-item .rejilla{margin-top:6px}
.avanzado{border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.avanzado>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 12px}
.avanzado .sum-txt b{font-size:15px;font-weight:550}
.avanzado .cuenta{color:var(--primary);font-weight:500}
.avanzado-cuerpo{display:flex;flex-direction:column;gap:8px;padding:2px 10px 12px}
.avanzado .grupo{background:var(--card)}
.check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;color:var(--fg-2);cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--primary);flex:none}

/* resultado */
.res-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.plegable.res-card{padding:0;gap:0}
.precio-card{background:linear-gradient(160deg,var(--card),var(--elev));box-shadow:var(--sombra)}
.cifra{font-size:clamp(40px,11vw,52px);font-weight:650;letter-spacing:-.035em;line-height:1;color:var(--fg)}
.cifra small{font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted)}
.sub{color:var(--fg-2);font-size:15px}
.sub b{color:var(--fg);font-weight:600}
.tenue{color:var(--muted);font-size:14px}
.sub:empty,.tenue:empty{display:none}
.lineas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--fg-2)}
.lineas li{display:flex;gap:8px}
.lineas li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--primary);flex:none;margin-top:7px}
.lineas b{font-weight:600;color:var(--fg)}
.avisos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.avisos:empty{display:none}
.avisos li{padding:10px 12px;border-radius:10px;font-size:14px;line-height:1.45;background:var(--elev);color:var(--fg-2);border:1px solid var(--line-2)}
.avisos li.ambar{background:var(--ambar-soft);border-color:transparent;color:var(--ambar)}
#copiar-link{align-self:flex-start}
.contexto{color:var(--muted);font-size:13.5px;line-height:1.45}
.cifra-env{display:flex;flex-direction:column;gap:6px}
.leyenda{color:var(--muted);font-size:14px}
.cuentas{display:flex;flex-direction:column;gap:4px;padding-top:12px;border-top:1px solid var(--line)}
.cuentas .sub{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.switch.chico{font-size:13.5px;gap:10px}
.switch.chico .pista{width:36px;height:22px}
.switch.chico .pista::after{width:16px;height:16px}
.switch.chico input:checked+.pista::after{transform:translateX(14px)}

/* por cama */
.rot-nota{letter-spacing:0;text-transform:none;font-weight:500}
.cama-lead{font-size:16px;color:var(--fg-2)}
.cama-lead b{color:var(--fg);font-weight:650;font-variant-numeric:tabular-nums}
.filas-cama{margin:0;display:flex;flex-direction:column}
.filas-cama div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:9px 0;border-top:1px solid var(--line)}
.filas-cama dt{font-size:14.5px;color:var(--fg-2)}
.filas-cama dd{margin:0;font-size:16px;font-weight:650;text-align:right;font-variant-numeric:tabular-nums}
.filas-cama small{grid-column:1/-1;font-size:12.5px;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}
.filas-cama .margen dd{color:var(--primary)}

.switches{display:flex;flex-direction:column;gap:2px}
.switch{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-size:14.5px;color:var(--fg-2)}
.switch input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.pista{position:relative;width:42px;height:26px;border-radius:999px;background:var(--press);border:1px solid var(--line-2);flex:none;transition:background .15s}
.pista::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}
.switch input:checked+.pista{background:var(--primary);border-color:transparent}
.switch input:checked+.pista::after{transform:translateX(16px);background:var(--primary-ink)}
.switch input:focus-visible+.pista{outline:2px solid var(--primary);outline-offset:3px}

.datos-fisicos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:0}
.datos-fisicos div{display:flex;flex-direction:column;gap:1px;min-width:0}
.datos-fisicos dt{font-size:12.5px;color:var(--muted)}
.datos-fisicos dd{margin:0;font-size:16px;font-weight:600;overflow-wrap:anywhere}
.datos-fisicos dd small{font-weight:400;color:var(--muted);font-size:12.5px}

.tabla-env{overflow-x:auto;margin-inline:-4px}
.desglose{width:100%;border-collapse:collapse;font-size:14px}
.desglose th,.desglose td{padding:8px 4px;text-align:right;border-top:1px solid var(--line)}
.desglose th:first-child,.desglose td:first-child{text-align:left;color:var(--fg-2)}
.desglose thead th{border-top:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.desglose td small{display:block;font-size:12px;color:var(--muted)}
.desglose tr.total td{font-weight:650;color:var(--fg);border-top:1px solid var(--line-2)}
.desglose tr.margen td{color:var(--primary);font-weight:600}

.refs{list-style:none;margin:0;padding:0 14px 14px;display:flex;flex-direction:column}
.refs li{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-top:1px solid var(--line)}
.refs li:first-child{border-top:0}
.refs b{font-weight:600;font-size:14.5px;line-height:1.3}
.refs small{color:var(--muted);font-size:12.5px;line-height:1.4;overflow-wrap:anywhere}
.refs .cif{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13.5px;color:var(--fg-2)}
.refs .cif b{font-size:13.5px}
.refs .btn2{align-self:flex-start;min-height:44px;font-size:14px}

.resumen{
  margin:0;padding:12px;border-radius:11px;background:var(--bg);border:1px solid var(--line);
  white-space:pre-wrap;overflow-wrap:anywhere;font:13.5px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--fg-2);
}

/* barra inferior en móvil */
.barra{
  position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px max(16px,env(safe-area-inset-left,0px)) calc(10px + env(safe-area-inset-bottom,0px));
  background:var(--card);border-top:1px solid var(--line-2);box-shadow:0 -12px 30px -20px hsl(200 50% 2% / .6);
}
.barra[hidden]{display:none}
.barra-txt{display:flex;flex-direction:column;min-width:0}
.barra b{font-size:20px;font-weight:650;letter-spacing:-.02em}
.barra small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.con-barra{padding-bottom:76px}
@media (min-width:900px){.barra{display:none!important}body.con-barra{padding-bottom:0}}

.toast{
  position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:translate(-50%,12px);z-index:30;
  max-width:calc(100vw - 32px);padding:10px 16px;border-radius:12px;background:var(--fg);color:var(--bg);font-size:14px;font-weight:500;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;
}
.toast.ver{opacity:1;transform:translate(-50%,0)}
@media (min-width:900px){.toast{bottom:24px}}
