:root{--nav:#10283b;--ink:#183247;--muted:#647888;--line:#dce5ed;--bg:#f2f5f8;--mint:#b5f3da;--green:#097651;--blue:#2165d1;--red:#b23d4e;--orange:#bf7318}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600}button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:default}a{color:var(--blue)}:focus-visible{outline:3px solid #367bdf;outline-offset:3px}.skip{position:absolute;top:-100px;z-index:100;background:white;padding:15px}.skip:focus{top:0}aside{position:fixed;width:235px;inset:0 auto 0 0;padding:28px 18px;background:var(--nav);color:#fff;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:0 10px;font-size:22px;font-weight:700}.mark{background:var(--mint);color:var(--nav);width:36px;height:38px;display:grid;place-items:center;border-radius:9px}small{font-size:13px}small,.muted{color:var(--muted)}.brand small{display:block;letter-spacing:1.8px;font-size:10px;color:#98b5c9;margin-top:2px}nav{display:grid;gap:5px;margin-top:36px}nav button{border:0;background:transparent;color:#bdd0de;text-align:left;padding:12px;font-weight:500}nav button.active{background:var(--mint);color:var(--nav);font-weight:650}nav .navicon{display:inline-block;width:26px}.sidebottom{margin-top:auto;padding:24px 12px 0}.sidebottom p{color:#adc5d5;font-size:14px}.tag{font-size:12px;letter-spacing:1px;background:#264354;padding:5px 8px;border-radius:4px}.quiet{background:transparent;color:inherit;border-color:#436071}.workspace{margin-left:235px}header{height:80px;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}.dot{display:inline-block;width:7px;height:7px;background:#c38735;border-radius:50%;margin-right:8px}.primary{background:var(--nav);color:white;border-color:var(--nav)}main{max-width:1500px;margin:auto;padding:32px 36px 40px}.heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}h1{font-size:30px;letter-spacing:-1px;line-height:1.2;margin:0 0 8px}h2{font-size:18px;letter-spacing:-.3px;margin:0 0 16px}h3{font-size:16px;margin:0 0 8px}p{margin:6px 0 15px}.heading p{margin:0;color:var(--muted);font-size:15px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.5px;color:var(--muted);margin-bottom:8px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.card,.panel{background:white;border:1px solid var(--line);border-radius:13px;padding:22px;min-width:0}.card .label{font-size:14px;color:var(--muted)}.card .value{font-size:29px;letter-spacing:-1px;font-weight:700;margin:9px 0 6px;line-height:1.1;font-variant-numeric:tabular-nums}.card.featured{background:var(--nav);color:white;border:0}.featured .label,.featured small{color:#bed1df}.positive{color:var(--green)}.negative{color:var(--red)}.grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:22px;margin-bottom:22px}.equal{grid-template-columns:1fr 1fr}.stack{display:grid;gap:18px}.panel{margin-bottom:20px}.grid>.panel{margin-bottom:0}.panelhead{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.panelhead h2{margin:0}.legend{display:flex;flex-wrap:wrap;gap:18px;font-size:13px;margin:12px 0;color:var(--muted)}.legend i{display:inline-block;width:20px;height:3px;margin-right:6px;vertical-align:middle}.chart{width:100%;height:auto;display:block}.chart text{font:12px system-ui;fill:var(--muted)}.row{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #edf1f5;padding:13px 0}.row:last-child{border:0}.row strong{font-variant-numeric:tabular-nums}.bar{height:7px;background:#edf1f6;border-radius:4px;overflow:hidden;margin:7px 0 15px}.bar span{height:100%;display:block;border-radius:4px}.pill{display:inline-block;font-size:12px;padding:4px 8px;border-radius:5px;background:#eaf2ff;color:#255ca0}.note{padding:15px 18px;background:#eaf2fc;border:1px solid #d4e3f8;border-radius:9px;font-size:14px;margin:18px 0}.warn{background:#fff5e5;border-color:#edd8b5;color:#77521f}.success{background:#e8f7ee;border-color:#c9e4d4;color:#256545}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:15px 10px;border-bottom:1px solid #edf1f5;vertical-align:middle}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}td small{display:block}tbody tr:last-child td{border-bottom:0}.controls{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin:18px 0}.controls label,.formgrid label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:14px}input,select,textarea{max-width:100%;padding:9px 10px;border:1px solid #cbd7e1;border-radius:6px;background:white;color:var(--ink);font-size:14px}input[type=number]{width:125px}input[type=checkbox]{width:18px;height:18px}textarea{width:100%;min-height:120px}.formgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.formgrid input,.formgrid select{width:100%}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.tabs .selected{background:var(--nav);color:white}.large{font-size:32px;font-weight:700;letter-spacing:-1px}.actions{display:flex;gap:10px;flex-wrap:wrap}.step{display:flex;gap:15px;padding:15px 0;border-bottom:1px solid var(--line)}.step b{background:#eff4fa;min-width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.step p{font-size:14px;color:var(--muted);margin:4px 0}.step button{margin-left:auto;align-self:center}.splitbar{display:flex;height:14px;border-radius:6px;overflow:hidden;margin:18px 0}.splitbar span{min-width:0}.checklabel{display:flex;gap:10px;align-items:center;margin:14px 0}.footnote{font-size:13px;color:var(--muted)}details{border-top:1px solid var(--line);padding-top:12px;margin-top:16px}summary{cursor:pointer;font-size:14px;font-weight:600}footer{font-size:12px;color:var(--muted);padding:0 36px 26px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--nav);color:white;padding:13px 20px;border-radius:8px;box-shadow:0 6px 30px #142a4333;z-index:20;display:none;max-width:90vw}.inlineinput{width:80px!important}.kicker{margin-top:25px}.nowrap{white-space:nowrap}@media(min-width:1500px){main{padding-top:40px}.card .value{font-size:34px}}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.formgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){aside{position:static;width:100%;padding:16px}.brand{font-size:20px}.sidebottom{display:none}nav{display:flex;overflow-x:auto;margin-top:18px;padding-bottom:4px}nav button{white-space:nowrap}.workspace{margin-left:0}header{padding:15px 18px;height:auto;gap:12px}header div{font-size:12px}main{padding:24px 16px}h1{font-size:26px}.heading{align-items:start;flex-direction:column;gap:10px}.cards{gap:10px}.card{padding:15px}.card .value{font-size:24px}.panel{padding:17px}.formgrid{grid-template-columns:1fr 1fr}footer{padding:0 16px 20px}.step{flex-wrap:wrap}.step button{margin-left:47px}th,td{padding:10px 8px}.legend{gap:10px}.equal{grid-template-columns:1fr}}
.report{border:1px solid var(--line);border-radius:10px;padding:20px;margin:16px 0}.reportbody{white-space:pre-wrap;overflow-wrap:anywhere}.report .note{margin:12px 0}.attachments{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:18px 0}.attachments>div{border:1px solid var(--line);padding:12px;border-radius:9px;overflow-wrap:anywhere}.attachments img,.attachments video{display:block;width:100%;max-height:300px;object-fit:contain;margin:12px 0;background:#eef3f7}.feedbackfloat{position:fixed;bottom:18px;right:22px;background:var(--nav);color:white;box-shadow:0 4px 15px #10283b33;z-index:10}.report small{overflow-wrap:anywhere}#reportdetail{scroll-margin-top:20px}

.catdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}
.inlineinput.wide{width:190px;max-width:52vw}

.pill.ok{background:rgba(11,149,114,.14);color:#0b7d60}
.pill.warn{background:rgba(214,130,20,.16);color:#9a5a00}
tr.rowwarn td{background:rgba(214,130,20,.06)}

/* ---- Densidad tipo hoja de cálculo (Finanzas personales, Deudas y Resumen) ---- */
main.dense{font-size:13px}
main.dense .heading{margin-bottom:12px}
main.dense .heading h1{font-size:22px;margin:2px 0}
main.dense .heading p{margin:0;font-size:13px}
main.dense .cards{gap:8px;margin-bottom:10px}
main.dense .card{padding:10px 12px;border-radius:8px}
main.dense .card .label{font-size:11.5px}
main.dense .card .value{font-size:20px;margin:3px 0 2px}
main.dense .card small,main.dense .card .sub{font-size:11px}
main.dense .panel{padding:10px 12px;border-radius:8px;margin-bottom:10px}
main.dense .grid{gap:10px}
main.dense h2{font-size:14px;margin:0 0 6px}
main.dense h3{font-size:12.5px;margin:8px 0 4px}
main.dense .panelhead{margin-bottom:6px}
main.dense .row{padding:4px 0;gap:8px}
main.dense .note{padding:6px 10px;font-size:12px;margin:6px 0;border-radius:6px}
main.dense p{margin:4px 0 6px}
main.dense table{font-size:12.5px;line-height:1.2}
main.dense th{padding:4px 6px;font-size:10.5px;letter-spacing:.3px;background:#f6f8fa;position:sticky;top:0;z-index:1;border-bottom:1px solid #dfe5ec;white-space:nowrap}
main.dense td{padding:2px 6px;height:24px;border-bottom:1px solid #eef1f4;border-right:1px solid #f3f5f7}
main.dense td:last-child{border-right:0}
main.dense tbody tr:nth-child(even) td{background:#fafbfc}
main.dense tbody tr:hover td{background:#eef5ff}
main.dense td.num,main.dense th.num{white-space:nowrap;font-variant-numeric:tabular-nums}
main.dense td small{display:inline;font-size:11px;color:var(--muted)}
main.dense input,main.dense select{padding:1px 5px;font-size:12px;height:22px;border-radius:4px;border-color:#dde4ea}
main.dense td input,main.dense td select{border-color:transparent;background:transparent}
main.dense td input:hover,main.dense td select:hover,main.dense td input:focus,main.dense td select:focus{border-color:#9db8d6;background:white}
main.dense input[type=number]{width:78px;text-align:right}
main.dense .inlineinput.wide{width:190px}
main.dense button{padding:3px 9px;font-size:12px;border-radius:5px}
main.dense button.quiet{padding:1px 6px;font-size:11.5px}
main.dense .actions{gap:6px;margin-top:6px}
main.dense .pill{padding:1px 6px;font-size:10.5px}
main.dense .catdot{width:7px;height:7px;margin-right:5px}
main.dense .bar{height:5px}
main.dense details summary{font-size:12px;cursor:pointer;padding:3px 0}
main.dense .tablewrap{max-height:none}
main.dense td:first-child{min-width:210px;white-space:nowrap}
main.dense td .inlineinput.wide{width:100%;min-width:190px}
main.dense td select{max-width:220px}
main.dense td button.quiet{opacity:.35;border-color:transparent;background:transparent}
main.dense tr:hover td button.quiet{opacity:1;border-color:#cbd7e1}

.pasosgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.paso{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfe}
.paso>b{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eff4fa;font-size:13px}
.paso.hecho>b{background:rgba(11,149,114,.16);color:#0b7d60}
.paso.hecho{background:#f6fbf9}
.paso details{margin-top:6px}.paso summary{cursor:pointer;color:var(--blue);font-size:12.5px}
.paso details p{font-size:12.5px;margin:6px 0}
.paso .pill{margin:2px 2px 2px 0}
.uploadbtn{display:inline-block;cursor:pointer;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;margin:4px 0}
main.dense .uploadbtn{padding:5px 12px;font-size:13px}
tr.sect td{background:#eef3f8;font-size:11px;letter-spacing:1px;font-weight:700;color:var(--muted)}
main.dense .tabs{margin:0 0 10px}main.dense .tabs button{padding:6px 12px;font-size:13px}
@media(max-width:1000px){.pasosgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.pasosgrid{grid-template-columns:1fr}}

main.dense button.quiet.visible{opacity:1;border-color:var(--line)}
.archivadas{margin-top:8px}
td.acciones{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
main.dense td.acciones button{padding:2px 8px;font-size:12px}
button.danger{color:var(--red);border-color:rgba(178,61,78,.35)}

/* Cada mes (verde) frente a de vez en cuando (gris) */
.fintabs{align-items:center}
.fintabs .tabsep{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin:0 4px}
.fintabs .tabdiv{width:1px;height:22px;background:var(--line);margin:0 8px}
.fintabs .tab-mes{border-color:#0b9572;color:#0b7d60;background:#effaf5}
.fintabs .tab-mes.selected{background:#0b9572;color:#fff;border-color:#0b9572}
.fintabs .tab-oc{background:transparent;color:var(--muted);border-color:var(--line);font-weight:500}
.fintabs .tab-oc.selected{background:#5d7282;color:#fff;border-color:#5d7282}
.zona-mes .panel{border-left:3px solid #0b9572}
.zona-mes .card.featured{background:#0b6e53}
.zona-oc .panel{border-left:3px solid #c3cfd9;background:#fbfcfd}
.zona-oc h2{color:#40596b}
.btn-mes{background:#0b9572;border-color:#0b9572}

.pasosgrid.cinco{grid-template-columns:repeat(5,minmax(0,1fr))}
input.saldo{width:120px;text-align:right}

.col-sep{border-left:2px solid var(--line)}

/* Columnas redimensionables */
th{position:relative}
main.dense th{position:sticky}
.colgrip{position:absolute;top:0;right:0;width:7px;height:100%;cursor:col-resize;z-index:3;touch-action:none}
.colgrip:hover,body.resizing .colgrip:active{background:rgba(33,101,209,.35)}
body.resizing{cursor:col-resize;user-select:none}
table.sized td,table.sized th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main.dense table.sized td:first-child{min-width:0}
table.sized input,table.sized select{max-width:100%}

/* Tablas de doce meses: ocupan todo el ancho y los meses miden lo mismo */
table.tmeses{table-layout:fixed;width:100%}
table.tmeses col.c-label{width:190px}
table.tmeses col.c-extra{width:92px}
table.tmeses td,table.tmeses th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main.dense table.tmeses td:first-child{min-width:0}
table.tmeses.ancha{min-width:1320px}
table.tmeses.ancha col.c-extra{width:84px}
input.saldo.sats{width:150px}
main tr.rowwarn td{background:#fff4e0 !important}
input.saldo::placeholder{color:#b08a4a;font-style:italic}

/* ===== Tablas con tonos por bloque (estilo P/L) ===== */
main.dense th{background:#1f2d3a;color:#fff;border-bottom:0;font-weight:700}
main.dense th .colgrip:hover{background:rgba(255,255,255,.35)}
table.tonos tbody td{border-bottom:1px solid rgba(255,255,255,.7)}
table.tonos tr.sect td{color:#fff;font-size:11px;letter-spacing:1px;font-weight:800}
table.tonos tr.sect td small,table.tonos tr.sect td .muted{color:rgba(255,255,255,.8)}
table.tonos tr.sect td button{color:#fff;border-color:rgba(255,255,255,.5)}
table.tonos tr.fila-total td{font-weight:800;color:#fff}
table.tonos tr.fila-total td .negative{color:#ffe1e1}table.tonos tr.fila-total td .positive{color:#e4ffe9}
table.tonos tr.fila-total td small,table.tonos tr.fila-total td .muted{color:rgba(255,255,255,.85)}
table.tonos tr.t-verde.sect td{background:#2f8f5b !important}
table.tonos tr.t-verde td{background:#e2f3e8 !important}
table.tonos tr.t-verde.fila-total td{background:#4fae78 !important}
table.tonos tr.t-verde:hover td{filter:brightness(.97)}
table.tonos tr.t-rojo.sect td{background:#b3313d !important}
table.tonos tr.t-rojo td{background:#f8e4e5 !important}
table.tonos tr.t-rojo.fila-total td{background:#cf5560 !important}
table.tonos tr.t-rojo:hover td{filter:brightness(.97)}
table.tonos tr.t-azul.sect td{background:#2c5a86 !important}
table.tonos tr.t-azul td{background:#e3edf7 !important}
table.tonos tr.t-azul.fila-total td{background:#4478ab !important}
table.tonos tr.t-azul:hover td{filter:brightness(.97)}
table.tonos tr.t-naranja.sect td{background:#c8741d !important}
table.tonos tr.t-naranja td{background:#fcefdd !important}
table.tonos tr.t-naranja.fila-total td{background:#e0923a !important}
table.tonos tr.t-naranja:hover td{filter:brightness(.97)}
table.tonos tr.t-morado.sect td{background:#6d45a6 !important}
table.tonos tr.t-morado td{background:#eee6f8 !important}
table.tonos tr.t-morado.fila-total td{background:#8b66c4 !important}
table.tonos tr.t-morado:hover td{filter:brightness(.97)}
table.tonos tr.t-gris.sect td{background:#5b6b78 !important}
table.tonos tr.t-gris td{background:#edf1f4 !important}
table.tonos tr.t-gris.fila-total td{background:#7d8c98 !important}
table.tonos tr.t-gris:hover td{filter:brightness(.97)}
main table.tonos tr.rowwarn td{background:#fff1d6 !important}

/* Cartera: gráfico valor frente a aportado */
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:2px 0 6px}
.legend i{display:inline-block;width:18px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px}
.legend i.dash{height:0;border-top:2px dashed;background:none;opacity:.8}
.charttip{position:absolute;min-width:170px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 4px 14px rgba(16,40,59,.12);pointer-events:none}
.charttip .tiphead{font-weight:700;margin-bottom:4px}
.charttip div{display:flex;justify-content:space-between;gap:12px}

/* Cartera: barras de reparto y reglas */
.asigbar{display:flex;height:18px;border-radius:5px;overflow:hidden;gap:2px;margin:8px 0 4px}
.asigbar span{display:block;height:100%}
.asigbar.obj{height:8px;opacity:.55;margin-top:0}
.regla{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;margin:6px 0;background:#fbfcfe}
.regla small{display:block;color:var(--muted);font-size:11.5px}
.regla .num{text-align:right}
.regla.bien{border-color:rgba(11,149,114,.35);background:#f3fbf7}
.regla.mal{border-color:rgba(178,61,78,.45);background:#fdf1f2}
.regla.mal strong{color:var(--red)}

main td small.dmov,main.dense td small.dmov{display:block;font-size:10px;line-height:1.1;font-weight:600}main td small.dmov.sube{color:var(--orange)}main td small.dmov.baja{color:var(--green)}
main table.tonos tr.sect td small.dmov.sube{color:#ffd9a8}main table.tonos tr.sect td small.dmov.baja{color:#c9f7d9}table.tonos tr.sect td .positive{color:#e4ffe9}
main td small.dmov.mas{color:var(--green)}main td small.dmov.menos{color:var(--red)}main table.tonos tr.sect td small.dmov.mas,main table.tonos tr.fila-total td small.dmov.mas{color:#c9f7d9}main table.tonos tr.sect td small.dmov.menos,main table.tonos tr.fila-total td small.dmov.menos{color:#ffd0d0}main table.tonos tr.fila-total td small.dmov.sube{color:#ffd9a8}main table.tonos tr.fila-total td small.dmov.baja{color:#c9f7d9}
.btcchart{width:100%;height:auto;display:block;margin-top:8px}.note.warn{border-color:#f0b35a;background:#fff6e8}.row.wrap{flex-wrap:wrap;gap:6px}
.grid.carvis{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media(max-width:900px){.grid.carvis{grid-template-columns:1fr}}
.donutwrap{display:flex;flex-direction:column;align-items:center;gap:12px}.donut{width:100%;max-width:220px;height:auto}
.donutleg{width:100%}.donutleg div{display:grid;grid-template-columns:12px 1fr auto;column-gap:8px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--line)}
.donutleg i{width:10px;height:10px;border-radius:3px;display:inline-block}.donutleg strong{text-align:right}.donutleg small{grid-column:2/4;color:var(--muted)}
table.heat{border-collapse:separate;border-spacing:3px;width:100%}table.heat th{font-size:11px;color:var(--muted);font-weight:600;text-align:center;padding:2px}
table.heat td{text-align:center;font-size:12px;font-weight:600;border-radius:6px;padding:9px 2px;font-variant-numeric:tabular-nums}table.heat td.vacio{background:#f3f5f7}
table.heat td.tot{background:none;text-align:right;white-space:nowrap;padding-left:8px}svg .hit:hover{fill:rgba(31,42,51,.06)}
main table.heat th,main table.heat thead th{background:none!important;color:var(--muted)!important;border:0!important;text-transform:none;letter-spacing:0}
table.heat{table-layout:fixed}table.heat th:first-child{width:52px}table.heat th:last-child{width:110px}
.modpill{background:#efe9fb;color:#6d45a6;font-weight:700}
.st{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}.st-ok{background:#e3f4ec;color:#097651}.st-warn{background:#fff1dc;color:#9a5b00}.st-bad{background:#fde7e7;color:#b3261e}
.bullet{position:relative;height:18px;background:#f1f4f7;border-radius:5px;overflow:hidden}.bullet .band{position:absolute;top:0;bottom:0;background:#d7dee5}.bullet .tgt{position:absolute;top:-2px;bottom:-2px;width:3px;margin-left:-1px;background:#1f2a33}
.bullet .cur{position:absolute;left:0;top:5px;height:8px;border-radius:4px}.bullet .cur.st-ok{background:#1baf7a}.bullet .cur.st-warn{background:#eda100}.bullet .cur.st-bad{background:#c42b2b}
.capasbar{display:flex;height:22px;border-radius:7px;overflow:hidden;gap:2px;margin:6px 0 12px}.capasbar span{display:block;height:100%}
.capasleg{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.capasleg div{display:flex;flex-direction:column;gap:2px}.capasleg span{font-size:20px;font-weight:700}.capasleg small{color:var(--muted)}
@media(max-width:800px){.capasleg{grid-template-columns:1fr}}
.avisos{display:flex;flex-direction:column;gap:8px}.aviso{display:flex;gap:10px;align-items:flex-start;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font:inherit;cursor:pointer;color:inherit}
.aviso span{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px}.aviso.bad span{background:#fde7e7;color:#b3261e}.aviso.info span{background:#e8f0fb;color:#2a5ea8}.aviso:hover{border-color:#b9c6d0}
.cards.limites .value{font-size:22px}.tesis{margin-top:14px}.tesis h3{margin:0 0 6px}
.parecidos{display:flex;gap:12px;flex-wrap:wrap}.parecido{flex:1;min-width:180px;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:3px}.parecido strong{font-size:28px}.parecido.top{border-color:#6d45a6;background:#faf7ff}
tr.elegida td{background:#faf7ff}
.secc{border-top:1px solid var(--line);padding:12px 0}.secchead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.secbar{display:flex;height:12px;border-radius:5px;overflow:hidden;gap:2px;margin:4px 0}.secbar span{display:block}
.filtros{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:900px){.filtros{grid-template-columns:1fr}}
.filtro{border:1px solid var(--line);border-radius:12px;padding:12px 14px}.filtro.bad{border-color:#f0b4b0;background:#fffafa}.filtro>div{display:flex;justify-content:space-between;align-items:center}.filtro p{margin:8px 0 0}.accion{color:#8a2a22;font-weight:600}
table.desv td{vertical-align:middle}table.desv td:first-child{white-space:nowrap}
.ltv{position:relative;margin:10px 0 26px}.ltvbar{display:flex;height:22px;border-radius:7px;overflow:hidden;font-size:11px;color:#fff;font-weight:700}.ltvbar span{display:flex;align-items:center;padding-left:8px}.ltvbar .z1{background:#1baf7a}.ltvbar .z2{background:#eda100}.ltvbar .z3{background:#c42b2b}.ltvbar::after{content:'';flex:1;background:#7a1b16}
.ltvnow{position:absolute;top:24px;transform:translateX(-50%);font-size:12px;font-weight:700;white-space:nowrap}.ltvnow::before{content:'▲ '}
.reparto{display:flex;flex-direction:column;gap:6px;margin:8px 0}.rp{display:grid;grid-template-columns:14px 1fr auto;column-gap:8px;align-items:baseline;border:1px solid var(--line);border-radius:10px;padding:9px 12px}.rp small{grid-column:2/4;color:var(--muted)}.rpv{font-size:20px;font-weight:700}
table.heat tr.media th,table.heat tr.media td{border-top:2px solid #cfd8e0}
.timeline{display:flex;flex-direction:column}.tl{display:grid;grid-template-columns:18px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.tl.pend{background:#fffaf0}.tldot{width:12px;height:12px;border-radius:50%;margin-top:5px}.tlhead{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tl p{margin:6px 0 0}
.conex{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.cx{border:1px solid var(--line);background:#fff;border-radius:13px;padding:14px;display:flex;flex-direction:column;gap:6px}.cxhead{display:flex;justify-content:space-between;align-items:center}.cx small{color:var(--muted)}.cx p{margin:0}.cx.nuevo{border-style:dashed;justify-content:center;align-items:flex-start}
.chatfab{position:fixed;right:22px;bottom:18px;z-index:12;background:#6d45a6;color:#fff;border:0;border-radius:99px;padding:11px 16px;font-weight:700;box-shadow:0 4px 15px #3b1f6d44;cursor:pointer}
.chatpanel{position:fixed;right:22px;bottom:70px;width:min(380px,calc(100vw - 32px));max-height:70vh;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px #10283b33;z-index:12;display:none;flex-direction:column;padding:12px;gap:8px}.chatpanel.open{display:flex}
.chathead{display:flex;justify-content:space-between;align-items:center}.chatbody{overflow:auto;display:flex;flex-direction:column;gap:8px}.msg{padding:9px 11px;border-radius:12px;font-size:14px;line-height:1.4}.msg.u{align-self:flex-end;background:#6d45a6;color:#fff;max-width:85%}.msg.a{background:#f3f0fa;max-width:95%}
.chatin{display:flex;gap:6px}.chatin input{flex:1;padding:8px;border:1px solid var(--line);border-radius:8px}
.lista{margin:6px 0 0;padding-left:18px}.lista li{margin:4px 0}
@media print{aside,.workspace header,footer,.feedbackfloat,.chatfab,.chatpanel,.noprint{display:none!important}.workspace{margin:0!important}.panel{break-inside:avoid;box-shadow:none}}
.modos{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 11px;font:inherit;font-size:13px;cursor:pointer;margin-left:4px}.chip.on{background:#1f2a33;color:#fff;border-color:#1f2a33}
.niveles{display:flex;flex-direction:column-reverse;gap:6px}.nivel{display:grid;grid-template-columns:44px 1fr;column-gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;opacity:.55}.nivel small{grid-column:2;color:var(--muted)}.nivel.hecho{opacity:1;background:#f3faf6}.nivel.actual{border-color:#097651;box-shadow:0 0 0 2px #09765133;opacity:1}
.explica{margin:10px 0;border:1px solid var(--line);border-radius:10px;padding:10px 14px}.explica summary{font-weight:700;cursor:pointer}.linkish{border:0;background:none;padding:0;font:inherit;color:#2a5ea8;cursor:pointer;text-decoration:underline}

.refchip{display:inline-flex;gap:6px;align-items:baseline;margin:3px 6px 3px 0;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel,#fff);cursor:pointer;font:inherit;font-size:13px}.refchip:hover{border-color:#6d45a6}.refchip small{color:var(--muted,#6b7a87)}table.refperf td{vertical-align:top}
.cards.limites{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.pin{display:inline-flex;align-items:center;gap:6px}.pin input[type=text]{text-align:right;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit}.pin input[type=range]{width:220px}.pin em{font-style:normal;color:var(--muted);font-size:13px;min-width:28px}
.planform .row{align-items:center}.planform select,#franja select,.panel .row select{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;max-width:320px}
.caminos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.camino{border:1px solid var(--line);border-radius:12px;padding:16px}.camino h3{margin:4px 0 10px}
.metaline{display:flex;gap:40px;flex-wrap:wrap}.metaline .big{font-size:30px;font-weight:700;margin:2px 0}.okc{color:var(--green)}.warnc{color:var(--orange)}
.st.st-warn{background:#fff3e0;color:#8a4b00}
/* v3.24 · reparto por clase */
.reparto .rephead{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.repdonuts{display:flex;gap:8px}.repdonut{margin:0;text-align:center}.repdonut figcaption{font-size:12px;font-weight:700;color:var(--muted);margin-top:2px}
.repside{flex:1;min-width:260px;display:flex;flex-direction:column;gap:10px}.repmeta{display:flex;flex-direction:column;gap:2px}.repaport{display:flex;flex-direction:column;gap:6px}.repaport label{font-weight:600}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;width:max-content}.seg button{border:0;background:#fff;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer;color:var(--ink)}.seg button.on{background:var(--nav);color:#fff}.seg button+button{border-left:1px solid var(--line)}
.repnec{background:#f6f8fa;border-radius:8px;padding:8px 10px;font-size:14px}.reptabla td,.reptabla th{padding:7px 10px}.reptabla tr.total td{border-top:2px solid var(--line)}.repctas{display:block;font-size:11px;margin-left:16px}
.reptabla .sobre{color:var(--orange)}.reptabla .bajo{color:var(--blue)}.repadd{font-size:12px;margin-left:6px}.repdet{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.repdet summary{cursor:pointer;font-weight:600;color:var(--ink)}
.repsplit{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:12px}.repno{margin:6px 0;padding-left:18px;font-size:13px;color:var(--muted)}.linkish{background:none;border:0;padding:0;color:var(--blue);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px;text-align:left}
details.plegable{padding:12px 16px}details.plegable>summary{cursor:pointer}details.plegable[open]>summary{margin-bottom:10px}
main .repdet select,main.dense .repdet select{max-width:none;min-width:200px;height:auto;padding:3px 6px}main.dense .repdet td select{border-color:#dde4ea;background:#fff}.repsplit label{white-space:nowrap}
@media (min-width:901px){aside{overflow-y:auto}}
.repdonuts{flex-wrap:wrap;max-width:100%}.repdonut svg{width:min(148px,26vw);height:auto}.repside{min-width:0;flex-basis:260px}
/* v3.25 · conexiones */
.cxtotal{display:flex;align-items:baseline;gap:10px;margin:6px 0 10px}.cxtotal strong{font-size:24px}.cxtotal small{color:var(--muted)}
.cxapunta{margin-top:10px;padding:10px;background:#f6f8fa;border-radius:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cxapunta select{padding:4px 6px}
.mcrow{display:flex;gap:8px;flex-wrap:wrap}.mcrow input{padding:8px 10px;min-width:260px;font:inherit}
/* v3.26 · posiciones */
.accbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.filebtn{cursor:pointer;display:inline-flex;align-items:center}
.accchips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.accchip{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;cursor:pointer;font:inherit;min-width:92px}
.accchip.on{border-color:var(--nav);box-shadow:inset 0 0 0 1px var(--nav)}.accchip small{font-size:12px;color:var(--muted)}.accsep{margin:0 4px 0 10px;font-size:12px}.acctot{margin-top:10px;font-size:14px}
.acckpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:12px}.acck{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}.acck span{font-size:12px;color:var(--muted)}.acck strong{font-size:18px}.acck small{font-size:12px;color:var(--muted)}
.accchart{position:relative}.acctip{position:absolute;background:#10283b;color:#fff;padding:6px 9px;border-radius:6px;font-size:12px;pointer-events:none}.accman{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.accman .inlineinput{padding:5px 7px}
