:root{--ink:#16302c;--muted:#5f6f6b;--line:#d9e3e0;--bg:#f2f6f5;--card:#fff;--brand:#0d2f2b;--accent:#13a077;--accent-d:#0d7a5b;--warn:#b8860b;--bad:#c0392b;--good:#1e8449;--real:#eef3f2;--fc:#eaf6ef;--focus:#1b6ef3}
*{box-sizing:border-box}
html{font-size:15px}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg)}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px;z-index:100}.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.topbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--brand);color:#fff}
.brand{display:flex;gap:10px;align-items:center}.brand small{display:block;color:#a9cfc5;font-size:.78rem}
.logo{width:32px;height:32px;border-radius:8px;background:#0a2420 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M7 22l6-7 5 4 7-9' stroke='%2313a077' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.ctl.dim{opacity:.4}.ctl.dim select{cursor:not-allowed}.ctlnote{font-size:.74rem;color:#a9cfc5;max-width:150px;line-height:1.2}
.ctl{display:flex;flex-direction:column;font-size:.72rem;color:#a9cfc5;gap:2px}.ctl select{min-width:200px;padding:6px 8px;border-radius:7px;border:1px solid #2e5b53;background:#13413a;color:#fff;font-size:.95rem}
.badge{padding:5px 10px;border-radius:999px;font-size:.78rem;background:#255a50;color:#d5efe7}.badge.bad{background:#7c2a22;color:#ffe3df}.badge.ok{background:#1d6b4c}.badge.warn{background:#7a5c0c;color:#fff1c6}
.tabs{display:flex;gap:4px;padding:8px 20px 0;background:#dfe9e6;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tabs button{border:0;background:transparent;padding:9px 16px;border-radius:9px 9px 0 0;font-size:.95rem;cursor:pointer;color:var(--muted);font-weight:600}
.tabs button[aria-selected=true]{background:var(--bg);color:var(--brand);box-shadow:0 -2px 0 var(--accent) inset}
main{padding:18px 20px 60px;max-width:1800px;margin:0 auto}
h2{margin:.2em 0 .4em;font-size:1.25rem}h3{margin:.2em 0 .5em;font-size:1.02rem}h4{margin:.8em 0 .3em;font-size:.9rem;color:var(--brand);border-bottom:1px solid var(--line);padding-bottom:4px}
.muted{color:var(--muted)}.small{font-size:.82rem}
.layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px;align-items:start}
.layout>section{min-width:0}
.sidebar{position:sticky;top:var(--stick,110px);max-height:calc(100vh - var(--stick,110px) - 14px);overflow:auto;align-self:start}
.stickytop{position:sticky;top:0;z-index:60}
html,body{overflow-x:hidden}
@media(max-width:1000px){.layout{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;max-height:none}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.card.flat{padding:10px 12px}
.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4,.g2{grid-template-columns:1fr 1fr}}@media(max-width:560px){.g3,.g4,.g2{grid-template-columns:1fr}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.kpi span{font-size:.78rem;color:var(--muted)}.kpi strong{display:block;font-size:1.45rem;margin:2px 0}.kpi small{font-size:.78rem}
.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}
label.f{display:flex;flex-direction:column;gap:3px;font-size:.82rem;color:var(--muted);margin-bottom:8px}
label.f input,label.f select,.inp{padding:6px 8px;border:1px solid #b8c9c4;border-radius:7px;font-size:.92rem;background:#fff;color:var(--ink);font-family:inherit}
label.f input[type=checkbox]{width:18px;height:18px;align-self:flex-start}
label.f small{color:var(--muted);font-size:.74rem}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
button,.btn{font-family:inherit;font-size:.9rem;padding:7px 13px;border-radius:8px;border:1px solid #9bb7af;background:#fff;color:var(--brand);cursor:pointer;font-weight:600}
button:hover:not(:disabled){background:#eaf4f1}button:disabled{opacity:.5;cursor:not-allowed}
button.primary{background:var(--accent);border-color:var(--accent-d);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-d)}
button.danger{border-color:#d9a09a;color:var(--bad)}
.subtabs{display:flex;gap:2px;flex-wrap:wrap;margin:6px 0 10px}.subtabs button{border-radius:8px;border:1px solid var(--line);background:#fff;font-weight:600;color:var(--muted)}.subtabs button[aria-pressed=true]{background:var(--brand);color:#fff;border-color:var(--brand)}
.lever{margin-bottom:10px}.lever .top{display:flex;justify-content:space-between;font-size:.84rem}.lever input[type=range]{width:100%;accent-color:var(--accent)}.lever output{font-weight:700;color:var(--brand)}
.sw{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;max-height:calc(100vh - var(--stick,110px) - 150px);min-height:260px}
.sw.full{max-height:none;min-height:0;overflow-y:visible}
table.st{border-collapse:separate;border-spacing:0;font-size:.82rem;min-width:100%}
table.st th,table.st td{padding:4px 8px;white-space:nowrap;border-bottom:1px solid #edf2f0;text-align:right}
table.st th:first-child,table.st td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1;min-width:300px;max-width:420px;overflow:hidden;text-overflow:ellipsis}
table.st thead th{position:sticky;top:0;background:var(--brand);color:#fff;z-index:2}table.st thead th:first-child{z-index:3;background:var(--brand)}
table.st tr.section td{background:#e3eeeb;font-weight:700;color:var(--brand);text-align:left}
table.st tr.total td{font-weight:700;background:#f4f9f7}table.st tr.check td{font-weight:700;background:#fffbe6}
table.st tr.detail td{color:#64736f}
table.st td.real,table.st th.real{background-image:linear-gradient(#0000,#0000)}table.st td.real{background:var(--real)}table.st td.fc{background:var(--fc)}table.st th.fc{background:#0f6b53}
table.st td.tot{font-weight:700;border-left:2px solid var(--line)}
table.st td.neg{color:var(--bad)}
table.st td.mv{cursor:pointer}table.st td.mv:hover,table.st td.mv:focus{outline:1px dashed #0f6b53;outline-offset:-2px}
#mvTip{position:fixed;z-index:60;width:max-content;max-width:min(780px,94vw);max-height:80vh;overflow:auto;background:#fff;color:#16302c;border:1px solid #9ab5ad;border-radius:8px;box-shadow:0 8px 26px #0003;padding:10px 12px;font-size:12.5px;}
#mvTip .neg,#mvTip2 .neg,.mvdet .neg,#mvTip tr.neg td,#mvTip2 tr.neg td,.mvdet tr.neg td{color:var(--bad,#c0392b)}#mvTip h4,#mvTip2 h4{margin:0 0 4px;font-size:13px}#mvTip tbody tr:nth-child(even),#mvTip2 tbody tr:nth-child(even),.mvdet tbody tr:nth-child(even){background:#f0f3f2}#mvTip .sa{cursor:default;border-radius:4px;padding:1px 3px;margin:0 -3px}#mvTip .sa:hover{background:#e3ece9}#mvTip .sa-i{float:right;margin-left:14px;color:#0f6b53}#mvTip{cursor:pointer}
#mvTip2{position:fixed;z-index:61;width:max-content;max-width:min(900px,94vw);background:#fff;color:#16302c;border:1px solid #9ab5ad;border-radius:8px;box-shadow:0 8px 26px #0003;padding:10px 12px;font-size:12.5px}#mvTip2 table{border-collapse:collapse;width:100%}#mvTip2 td{padding:2px 8px;text-align:left;white-space:normal}#mvTip2 td.num{text-align:right;white-space:nowrap;min-width:110px}#mvTip2 .more{color:#5f6f6b;margin-top:4px}#mvTip2 .sa-scroll{max-height:50vh;overflow:auto}#mvTip table{border-collapse:collapse;width:100%}#mvTip td{padding:2px 6px;border-bottom:1px solid #edf2f0;text-align:left;white-space:nowrap}#mvTip td:last-child{white-space:normal;min-width:240px}#mvTip td.num{white-space:nowrap}#mvTip td.num,.mvdet td.num{text-align:right}#mvTip .more,#mvTip .hint{color:#5f6f6b;margin-top:4px}
.mvdet table{border-collapse:collapse;width:100%;font-size:12.5px}.mvdet th,.mvdet td{padding:3px 8px;border-bottom:1px solid #edf2f0;text-align:left}.mvdet td.num,.mvdet th.num{text-align:right}.mvdet .scroll{max-height:55vh;overflow:auto}
table.st input.cell{width:84px;text-align:right;padding:2px 4px;border:1px solid #cdbf82;background:#fffdf0;border-radius:5px;font-size:.82rem}table.st input.cell.edited{background:#fff1b8;font-weight:700}
.checks{list-style:none;padding:0;margin:0}.checks li{display:flex;gap:8px;padding:6px 8px;border-radius:8px;margin-bottom:5px;font-size:.88rem}.checks li b{min-width:62px}
.checks li.ok{background:#e7f6ee}.checks li.warn{background:#fff6dc}.checks li.fail{background:#fde8e5}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:700}.pill.ok{background:#d5efe0;color:#176b43}.pill.warn{background:#fbe8b5;color:#7a5600}.pill.fail{background:#f8d4cf;color:#8f2a1f}.pill.info{background:#dfe9e6;color:#35504a}
.banner{padding:10px 14px;border-radius:10px;margin-bottom:12px;font-size:.9rem}.banner.fail{background:#fde8e5;border:1px solid #efb5ad}.banner.warn{background:#fff6dc;border:1px solid #ecd392}.banner.ok{background:#e7f6ee;border:1px solid #b6dec8}.banner.info{background:#e6eef9;border:1px solid #bdd0ee}
table.simple{border-collapse:collapse;width:100%;font-size:.85rem}table.simple th,table.simple td{border-bottom:1px solid var(--line);padding:5px 6px;text-align:left}table.simple input,table.simple select{width:100%;padding:4px 6px;border:1px solid #b8c9c4;border-radius:6px;font-size:.85rem}
table.simple td.num input{text-align:right}
canvas.chart{width:100%;height:190px;display:block}
#toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:200;max-width:440px}
.toast{padding:10px 14px;border-radius:10px;background:var(--brand);color:#fff;box-shadow:0 6px 18px #0004;font-size:.9rem}.toast.bad{background:#8f2a1f}.toast.ok{background:#176b43}
dialog{border:0;border-radius:14px;padding:20px 22px;max-width:620px;width:92%;box-shadow:0 20px 60px #0006}dialog::backdrop{background:#0a1f1c88}
.debt-op{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px;background:#fafcfb}
.tag{font-size:.7rem;padding:1px 6px;border-radius:6px;background:#dfe9e6;color:#35504a;margin-left:4px}.tag.real{background:#d6e4e0}.tag.pro{background:#d3efe0}
.empty{text-align:center;padding:50px 10px;color:var(--muted)}
.printhead{display:none}
@media print{
  .stickytop,.topbar,.tabs,.subtabs,.sidebar,.noprint,#toasts,button,.skip{display:none!important}
  body{background:#fff}main{padding:0;max-width:none}
  .sw{max-height:none;overflow:visible;border:0}
  table.st{font-size:7.5pt}table.st th:first-child,table.st td:first-child{position:static;min-width:200px}
  .printhead{display:block;margin-bottom:8px}.card{border:0;padding:0}
  .printonly{display:block!important}.screenonly{display:none!important}
  @page{size:A4 landscape;margin:10mm}
}

.toast{display:flex;gap:10px;align-items:flex-start}.toast .toast-x{background:transparent;border:0;color:#fff;font-size:1.2rem;line-height:1;padding:0 4px;cursor:pointer}

.topbar .exit{background:#7c2a22;border-color:#a8453b;color:#fff;padding:7px 18px}.topbar .exit:hover:not(:disabled){background:#9a362c}
.pendlist{margin:8px 0 0 18px;padding:0}.pendlist li{margin-bottom:4px}
tr.gen td,.debt-op.gen{background:#f1f7f5}.debt-op.gen{border-style:dashed}

.checks li.has-help{display:block;padding:0}.checks li.has-help details>summary{display:flex;gap:8px;padding:6px 8px;cursor:pointer;list-style:none;align-items:baseline;flex-wrap:wrap}
.checks li.has-help summary::-webkit-details-marker{display:none}.checks li.has-help summary span{flex:1 1 60%}
.fixhint{font-size:.74rem;color:var(--brand);font-style:normal;font-weight:600;border:1px solid #9bb7af;border-radius:999px;padding:1px 9px;background:#ffffffaa;white-space:nowrap}
.checks li.has-help .help{padding:4px 12px 10px 78px;font-size:.86rem}.checks li.has-help .help p{margin:.35em 0}.checks li.has-help .help .row{margin-top:8px}
.linkbtn{margin-left:auto;font-size:.74rem;padding:1px 9px}
.report p{line-height:1.5;max-width:110ch}.report h3{margin-top:0}.rep-table{margin:8px 0 14px}.rep-table th.num,.rep-table td.num{text-align:right;white-space:nowrap}
@media print{.report .card{break-inside:avoid-page;margin-bottom:10px}.report table{break-inside:avoid}}
table.st td.yr{font-weight:700;background:#f4f9f7;border-left:2px solid var(--line);border-right:2px solid var(--line)}table.st th.yr{background:#0d2f2b;border-left:2px solid #5d8e84;border-right:2px solid #5d8e84}table.st td.yr.neg{color:var(--bad)}
.checks-sum{margin:0 0 8px}.okgroup{margin-top:10px}.okgroup>summary{cursor:pointer;font-size:.86rem;color:var(--muted);font-weight:600;margin-bottom:6px}.checks-sum .bad{color:var(--bad)}.checks-sum .warn{color:var(--warn)}

/* Dashboard del CFO */
button.kpi.dk{text-align:left;cursor:pointer;width:100%;display:block;border-left:4px solid var(--line);font-weight:400;color:var(--ink)}button.kpi.dk:hover{background:#f4faf8}
button.kpi.dk.t-good{border-left-color:var(--good)}button.kpi.dk.t-warn{border-left-color:var(--warn)}button.kpi.dk.t-bad{border-left-color:var(--bad)}
.dash .dchart{height:230px;width:100%;display:block}.dash-head{padding:10px 16px}
@media print{.dash-filters{display:none!important}.dash .dchart{height:170px}.dash .kpi{break-inside:avoid}.dash .card{break-inside:avoid}}

/* Valor editable de las palancas */
.lever .lvnum{display:flex;align-items:center;gap:4px;font-weight:700}.lever .lvnum input[type=number]{width:84px;text-align:right;padding:2px 6px;border:1px solid transparent;border-radius:6px;background:transparent;font:inherit;font-weight:700;color:var(--ink);-moz-appearance:textfield}
.lever .lvnum input[type=number]:hover{border-color:#b8c9c4;background:#fff}.lever .lvnum input[type=number]:focus{border-color:var(--accent);background:#fff;outline:none;box-shadow:0 0 0 2px #13a07733}
.lever .lvnum input::-webkit-outer-spin-button,.lever .lvnum input::-webkit-inner-spin-button{opacity:.6}.lever .lvnum .u{min-width:30px;font-weight:600;color:var(--muted)}

.closepair{display:flex;gap:6px}.closepair select{min-width:0!important}

.hzc .lvnum input[type=number]{border-color:var(--line);background:#fff;width:64px}
