
/* Maqueta PC (1366 px): datos a la izquierda, lienzo al centro, resultados a la derecha. */
html, body { margin: 0; height: 100%; background: var(--fondo); color: var(--texto); font-family: var(--fuente); }
.pc { display: grid; grid-template-rows: 56px 1fr; height: 100vh; }
.pc-barra { display: flex; align-items: center; gap: var(--e-3); padding: 0 var(--e-4); background: var(--superficie); border-bottom: 1px solid var(--borde); min-width: 0; }
.pc-marca { font-weight: var(--peso-fuerte); color: var(--primario); font-size: var(--t-lg); display: flex; align-items: center; gap: 8px; }
.pc-logo { width: 26px; height: 26px; border-radius: 7px; background: var(--primario); display: grid; place-items: center; }
.pc-proy { display: grid; line-height: 1.15; padding-left: var(--e-3); border-left: 1px solid var(--borde); min-width: 0; }
.pc-proy b { font-size: var(--t-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-proy span { font-size: var(--t-xs); color: var(--texto-3); }
.pc-espacio { flex: 1; }
.pc-barra .btn { min-height: 38px; }
.pc-cuerpo { display: grid; grid-template-columns: 320px minmax(0, 1fr) 320px; min-height: 0; }
.pc-panel { background: var(--superficie); overflow: auto; padding: var(--e-4); display: grid; align-content: start; gap: var(--e-3); min-width: 0; }
.pc-izq { border-right: 1px solid var(--borde); }
.pc-der { border-left: 1px solid var(--borde); }
.pc-centro { position: relative; min-width: 0; background: var(--lienzo); overflow: hidden; }
.pc-izq .pestanas { display: grid; grid-template-columns: repeat(5, auto); justify-content: space-between; gap: 0; }
.pc-izq .pestanas button { padding-left: 6px; padding-right: 6px; font-size: var(--t-sm); }
.pc-centro #lienzo { user-select: none; -webkit-user-select: none; position: absolute; inset: 64px 0 56px 0; width: 100%; height: calc(100% - 120px); touch-action: none; }
.pc-herr { position: absolute; top: var(--e-3); left: 50%; transform: translateX(-50%); z-index: 2; }
.pc-desact { position: absolute; bottom: var(--e-3); right: var(--e-3); max-width: 300px; z-index: 2; display: none; box-shadow: var(--sombra-2); }
.pc-desact.ver { display: grid; }
.pc-herr.apagado button:not([data-d='']) { opacity: .4; pointer-events: none; }
.pc-zoom { position: absolute; left: var(--e-3); bottom: var(--e-3); z-index: 2; display: flex; gap: 4px; }
.pc-zoom .btn { min-height: 36px; min-width: 36px; padding: 0 10px; }
/* tablas editables */
table.pc-tabla { width: 100%; border-collapse: collapse; font-size: var(--t-sm); font-variant-numeric: tabular-nums; table-layout: fixed; }
.pc-tabla th, .pc-tabla td { text-align: left; padding: 3px 3px; border-bottom: 1px solid var(--borde); }
.pc-tabla th { color: var(--texto-3); font-weight: var(--peso-medio); font-size: var(--t-xs); padding-top: 0; }
.pc-tabla td:first-child { font-weight: var(--peso-medio); color: var(--texto-2); width: 42px; }
.pc-tabla tr.mov td, .pc-tabla tr.sel td { background: var(--primario-suave); }
.pc-tabla tr.mov td:first-child, .pc-tabla tr.sel td:first-child { color: var(--primario); font-weight: var(--peso-fuerte); box-shadow: inset 3px 0 0 var(--seleccion, var(--primario)); }
.pc-tabla tr.err td { background: var(--peligro-suave); }
.pc-tabla tr.err td:first-child { color: var(--peligro); box-shadow: inset 3px 0 0 var(--peligro); }
.pc-tabla tr { cursor: default; }
.pc-tabla[data-sel] tbody tr { cursor: pointer; }
.pc-in, .pc-sel { width: 100%; box-sizing: border-box; height: 30px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--texto); font: inherit; font-family: var(--fuente-num, inherit); padding: 0 6px; }
.pc-in:hover, .pc-sel:hover { border-color: var(--borde); }
.pc-in:focus, .pc-sel:focus { outline: none; border-color: var(--primario); background: var(--superficie); box-shadow: 0 0 0 3px var(--primario-suave); }
.pc-in[readonly] { color: var(--texto-3); pointer-events: none; }
.pc-in.error { border-color: var(--peligro); color: var(--peligro); }
.pc-sel { -webkit-appearance: none; appearance: none; padding-right: 4px; font-family: var(--fuente); }
.pc-sel option { background: var(--superficie); color: var(--texto); }
.pc-quitar { width: 26px; height: 26px; border: 0; border-radius: 6px; background: transparent; color: var(--texto-3); cursor: pointer; font-size: 16px; line-height: 1; }
.pc-quitar:hover { background: var(--peligro-suave); color: var(--peligro); }
.pc-agregar { justify-self: start; min-height: 34px; font-size: var(--t-sm); }
.pc-uni { font-size: var(--t-xs); color: var(--texto-3); font-weight: 400; }
.pc-pie { display: flex; justify-content: space-between; align-items: center; gap: var(--e-2); }
.pc-pane[hidden] { display: none; }
.pc-pane { display: grid; gap: var(--e-3); }
/* resultados */
.pc-tarjetas { display: grid; gap: var(--e-2); }
.pc-res { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 2px var(--e-3); padding: var(--e-3); cursor: pointer; text-align: left; font: inherit; color: inherit; width: 100%; }
.pc-res:hover { border-color: var(--primario); }
.pc-res[aria-pressed="true"] { border-color: var(--primario); box-shadow: 0 0 0 3px var(--primario-suave); }
.pc-res .pc-q { grid-row: span 2; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; font-weight: var(--peso-fuerte); }
.pc-res .pc-q.N { background: color-mix(in srgb, var(--diag-n) 16%, transparent); color: color-mix(in srgb, var(--diag-n) 65%, var(--texto)); }
.pc-res .pc-q.V { background: color-mix(in srgb, var(--diag-v) 16%, transparent); color: color-mix(in srgb, var(--diag-v) 65%, var(--texto)); }
.pc-res .pc-q.M { background: color-mix(in srgb, var(--diag-m) 16%, transparent); color: color-mix(in srgb, var(--diag-m) 65%, var(--texto)); }
.pc-res h4 { margin: 0; font-size: var(--t-xs); color: var(--texto-3); font-weight: var(--peso-medio); }
.pc-res .resultado-valor { font-size: var(--t-xl); }
.pc-res .pc-donde { grid-column: 3; grid-row: 1 / span 2; font-size: var(--t-xs); color: var(--texto-3); text-align: right; line-height: 1.5; }
.pc-res .pc-donde .chip { height: 20px; }
.fila-reaccion { gap: var(--e-2); }
.fila-reaccion span:last-child { text-align: right; font-variant-numeric: tabular-nums; }
/* estado vacío dentro del lienzo */
.pc-vacio { position: absolute; inset: 0; display: grid; place-items: center; z-index: 3; background: var(--lienzo); padding: var(--e-4); }
.pc-vacio[hidden] { display: none; }
.pc-vacio .tarjeta { max-width: 440px; width: 100%; box-shadow: var(--sombra-2); }
.pc-vacio-lado { color: var(--texto-3); font-size: var(--t-sm); text-align: center; padding: var(--e-6, 24px) var(--e-2); border: 1px dashed var(--borde-fuerte); border-radius: var(--r-lg); }
/* ayuda de atajos */
.pc-atajos { position: absolute; right: var(--e-3); top: calc(var(--e-3) + 44px); z-index: 4; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--r-md); padding: var(--e-2) var(--e-3); font-size: var(--t-xs); color: var(--texto-2); box-shadow: var(--sombra-2); display: grid; grid-template-columns: auto auto; gap: 4px var(--e-3); align-items: center; }
.pc-atajos[hidden] { display: none; }
.pc-btn-atajos { position: absolute; right: var(--e-3); top: var(--e-3); z-index: 4; min-height: 36px; font-size: var(--t-sm); }
kbd { font: var(--peso-medio) 11px var(--fuente-mono, monospace); padding: 1px 5px; border: 1px solid var(--borde-fuerte); border-bottom-width: 2px; border-radius: 4px; background: var(--superficie-2); color: var(--texto); }
.pc-pestana-kbd { display: none; }
.pc-pequena { display: none; }
@media (max-width: 899px) {
  .pc { display: none; }
  .pc-pequena { display: grid; place-content: center; gap: var(--e-4); min-height: 100vh; padding: var(--e-6, 24px) var(--e-4); box-sizing: border-box; text-align: center; }
  .pc-pequena .btn { text-decoration: none; }
  .pc-pequena p { margin: 0; color: var(--texto-2); max-width: 32ch; justify-self: center; }
}
@media (max-width: 1180px) { .pc-cuerpo { grid-template-columns: 290px minmax(0, 1fr) 280px; } }
h2.pc-tit { margin: 0; font-size: var(--t-xs); color: var(--texto-3); text-transform: uppercase; letter-spacing: .05em; }
.pc-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 10; }

/* ---- StrucPlan app (F2B) ---- */
.pc-selbarra { height: 34px; border: 1px solid var(--borde); border-radius: 8px; background: var(--superficie); padding: 0 8px; max-width: 190px; }
.pc-par { display: flex; align-items: center; gap: 2px; }
.pc-par .pc-in { min-width: 0; padding: 0 3px; text-align: right; }
.pc-tabla tr.sub td { border-bottom: 1px solid var(--borde); padding-top: 0; padding-bottom: 6px; }
.pc-tabla tr:not(.sub):has(+ tr.sub) td { border-bottom: 0; }
.pc-linea { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.pc-linea .pc-in { width: 56px; display: inline-block; }
.pc-linea .pc-sel { width: auto; min-width: 0; max-width: 130px; border-color: var(--borde); }
.pc-tabla tr.sub label { display: inline-flex; align-items: center; gap: 3px; cursor: pointer; }
.app-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 10; box-shadow: var(--sombra-2); }
.pc-barra button:disabled { opacity: .35; pointer-events: none; }
#matCampos[hidden] { display: none; }
.pc-tools { position: absolute; left: var(--e-3); top: var(--e-3); z-index: 3; display: grid; gap: 4px; padding: 4px; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--r-lg, 14px); box-shadow: var(--sombra-2); width: 64px; }
.pc-tools button { display: grid; justify-items: center; gap: 0; min-height: 46px; border: 0; border-radius: 10px; background: transparent; color: var(--texto-2); font: inherit; font-size: 18px; line-height: 1.1; cursor: pointer; padding: 4px 0; }
.pc-tools button span { font-size: 10.5px; font-weight: var(--peso-medio); }
.pc-tools button:hover { background: var(--primario-suave); }
.pc-tools button[aria-pressed="true"] { background: var(--primario); color: var(--sobre-primario); }
.pc-tools select { width: 100%; max-width: none; font-size: 11px; height: 30px; padding: 0 2px; }
.pc-ayudaherr { position: absolute; left: 50%; transform: translateX(-50%); bottom: var(--e-3); z-index: 3; max-width: 420px; padding: 6px 12px; font-size: var(--t-xs); }
.pc-dialogo { border: 1px solid var(--borde); border-radius: var(--r-lg, 14px); background: var(--superficie); color: var(--texto); box-shadow: var(--sombra-3); width: min(520px, 92vw); padding: var(--e-4); }
.pc-dialogo::backdrop { background: rgba(8, 22, 44, .35); }
.pc-dlg-cab { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--e-3); }
.pc-dlg-cab h3 { margin: 0; }
.pp-acciones { display: grid; gap: var(--e-2); }
.pp-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; max-height: 240px; overflow: auto; }
.pp-lista li { display: flex; align-items: center; gap: 4px; border-bottom: 1px solid var(--borde); }
.pp-abrir { flex: 1; text-align: left; border: 0; background: transparent; color: var(--texto); font: inherit; padding: 8px 4px; cursor: pointer; display: grid; min-height: 44px; }
.pp-abrir span { font-size: var(--t-xs); color: var(--texto-3); }
.pp-abrir:hover b { color: var(--primario); }
#nombre { cursor: pointer; }

.pc-menu { position: relative; }
.pc-menu summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; min-height: 38px; }
.pc-menu summary::-webkit-details-marker { display: none; }
.pc-menu-lista { position: absolute; right: 0; top: 44px; z-index: 20; display: grid; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--r-md); box-shadow: var(--sombra-3); min-width: 230px; overflow: hidden; }
.pc-menu-lista button { text-align: left; border: 0; background: transparent; color: var(--texto); font: inherit; padding: 10px 14px; cursor: pointer; }
.pc-menu-lista button:hover { background: var(--primario-suave); }
.tabla-max { width: 100%; border-collapse: collapse; font-size: var(--t-xs); font-variant-numeric: tabular-nums; }
.tabla-max th, .tabla-max td { text-align: left; padding: 4px 3px; border-bottom: 1px solid var(--borde); }
.tabla-max th { color: var(--texto-3); font-weight: var(--peso-medio); }
.tabla-max small { color: var(--texto-3); }
#eqDet summary { cursor: pointer; }
.eq-tramo { border-top: 1px solid var(--borde); padding: 6px 0; font-size: var(--t-sm); }
.eq { display: grid; grid-template-columns: 46px 1fr; gap: 4px; align-items: baseline; }
.eq code { font-family: var(--fuente-mono, monospace); font-size: 12px; overflow-wrap: anywhere; }

/* F5: selector de unidades de resultados (PC y hoja de resultados del móvil) */
.pc-tit-fila { display: flex; align-items: center; justify-content: space-between; gap: var(--e-2, 8px); flex-wrap: wrap; }
.uni-sal { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-xs); color: var(--texto-3); }
.uni-sal select { width: auto; min-height: 32px; }
h3 + .uni-sal { margin: 0 0 var(--e-2, 8px); }
.pc-res .resultado-valor.largo { font-size: var(--t-md, 1rem); }
