:root{--bg:#f6f4ef;--panel:#fff;--fg:#1f1d1a;--muted:#6b665e;--line:#e3dfd6;--ok:#1f8a5b;--okbg:#e5f3ec;--bad:#b3392f;--badbg:#f8e8e5;--accent:#1f1d1a;--chart:#b9b4aa;--r:12px}
@media (prefers-color-scheme:dark){:root{--bg:#171613;--panel:#211f1b;--fg:#f1eee8;--muted:#a39d92;--line:#35322c;--ok:#4cc38a;--okbg:#17302452;--bad:#ef7b6f;--badbg:#3a1f1c;--accent:#f1eee8;--chart:#5b574f}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.wrap{max-width:46rem;margin:0 auto;padding:1rem 1rem 4rem}
h1,h2,.big{font-family:Georgia,"Times New Roman",serif;font-weight:400}
h1{font-size:1.7rem;margin:.5rem 0 .25rem}
h2{font-size:1.25rem;margin:0 0 .25rem}
h3{font-size:1rem;margin:1.25rem 0 .4rem}
.muted{color:var(--muted)}.small{font-size:.85rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1rem;margin:0 0 1rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem;margin:0 0 1rem}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:.85rem}
.big{font-size:1.7rem;display:block;font-variant-numeric:tabular-nums;line-height:1.2}
label{display:block;font-size:.85rem;color:var(--muted);margin:.6rem 0 .2rem}
input,select{width:100%;font:inherit;padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg)}
button{font:inherit;cursor:pointer;border:0;border-radius:10px;padding:.75rem 1.1rem;background:var(--accent);color:var(--bg);margin-top:.9rem;width:100%}
button.ghost{background:transparent;color:var(--fg);border:1px solid var(--line);width:auto;margin:0;padding:.4rem .8rem;font-size:.85rem}
.err{color:var(--bad);margin:.6rem 0 0;min-height:1.2rem}
.hero{border-width:2px}.hero.ok{border-color:var(--ok);background:var(--okbg)}.hero.debe{border-color:var(--bad)}
.row{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.row:last-child{border-bottom:0}.row b{white-space:nowrap}
.tot{font-weight:600}
.bar{display:grid;grid-template-columns:minmax(6rem,40%) 1fr auto;gap:.5rem;align-items:center;font-size:.85rem;padding:.2rem 0}
.bar i{display:block;height:.8rem;border-radius:4px;background:var(--chart)}.bar i.g{background:var(--ok)}
table{width:100%;border-collapse:collapse;font-size:.85rem;font-variant-numeric:tabular-nums}
th,td{text-align:right;padding:.45rem .35rem;border-bottom:1px solid var(--line);white-space:nowrap}
th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:500}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
details{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);margin:0 0 .75rem}
summary{cursor:pointer;padding:.9rem 1rem;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}summary::after{content:"+";color:var(--muted)}details[open] summary::after{content:"–"}
details>div{padding:0 1rem 1rem}
.pill{display:inline-block;padding:.1rem .55rem;border-radius:99px;font-size:.75rem;background:var(--line)}
.pill.bad{background:var(--badbg);color:var(--bad)}.pill.ok{background:var(--okbg);color:var(--ok)}
.loan{border:1px solid var(--line);border-radius:10px;padding:.75rem;margin:.6rem 0}
.hide{display:none!important}
.bank{background:var(--bg);border-radius:10px;padding:.7rem .9rem;margin-top:.75rem}
.top{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.hero .big{font-size:2.5rem}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem}
.dline{display:flex;gap:.5rem;align-items:center}.dline input{flex:1}
.datebox{margin-top:.9rem;border-top:1px solid var(--line);padding-top:.4rem}
.abrow{display:grid;grid-template-columns:6.5rem 1fr auto;gap:.5rem;align-items:center;margin:.4rem 0}
button:disabled{opacity:.45;cursor:default}
.tiles .tile .big{font-size:1.5rem}

.btnlink{background:#0f766e;color:#fff;padding:.55rem .9rem;border-radius:.5rem;text-decoration:none;font-weight:600}
.cal{border-collapse:separate;border-spacing:3px;width:100%;table-layout:fixed;min-width:30rem}
.cal th{font-size:.7rem;text-align:center;padding:.2rem 0;border:0;white-space:nowrap}
.cal td{border:0;padding:0;text-align:center}
.cal th:first-child{width:4.4rem;text-align:left}
.cal td:first-child{text-align:left;font-size:.8rem;color:var(--muted)}
.cell{display:block;width:100%;margin:0;padding:.55rem 0;border-radius:8px;font-size:1rem;line-height:1;border:2px solid transparent;color:var(--fg);background:var(--line)}
.cell.ok{background:var(--okbg);color:var(--ok)}
.cell.tarde{background:#fdf0d5;color:#8a5a00}
.cell.debe{background:var(--badbg);color:var(--bad)}
.cell.gracia{background:#fdf0d5;color:#8a5a00;border-style:dashed;border-color:#d9a43a}
.cell.futuro{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.cell.vacio{background:transparent;color:var(--line);cursor:default}
.cell.sel{border-color:var(--fg)}
@media (prefers-color-scheme:dark){.cell.tarde,.cell.gracia{background:#3a2e12;color:#f0c46a}}
.leyenda{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.78rem;color:var(--muted);margin:.5rem 0}
.leyenda span::before{content:"";display:inline-block;width:.8rem;height:.8rem;border-radius:3px;margin-right:.3rem;vertical-align:-1px;background:var(--line)}
.leyenda .l-ok::before{background:var(--ok)}.leyenda .l-tarde::before{background:#d9a43a}.leyenda .l-debe::before{background:var(--bad)}
.progreso{height:.9rem;background:var(--line);border-radius:99px;overflow:hidden;margin:.4rem 0}
.progreso i{display:block;height:100%;background:var(--ok)}
.detalle{background:var(--bg);border-radius:10px;padding:.7rem .9rem;margin:.6rem 0;font-size:.9rem}
.detalle a{display:inline-block;margin-top:.4rem;font-size:.85rem}
.mbar{display:grid;grid-template-columns:3.2rem 1fr auto;gap:.5rem;align-items:center;font-size:.8rem;padding:.15rem 0}
.mbar div{display:flex;height:.8rem;border-radius:4px;overflow:hidden;background:var(--line)}
.mbar i{display:block;height:100%}.mbar i.p{background:var(--ok)}.mbar i.d{background:var(--bad)}
.btnsec{background:transparent;color:var(--fg);border:1px solid var(--line);width:auto;margin:.5rem .5rem 0 0;padding:.45rem .8rem;font-size:.85rem}
.cal{min-width:0;border-spacing:2px}
.cal th:first-child{width:2.9rem}
.cal td:first-child{font-size:.72rem}
.cell{padding:.5rem 0;font-size:.85rem;border-radius:6px}
.cal th{font-size:.62rem}
.cell.opc{background:#dcebf7;color:#1d5a8a}.leyenda .l-opc::before{background:#3b82b6}.mbar i.o{background:#3b82b6}
@media (prefers-color-scheme:dark){.cell.opc{background:#15304a;color:#8ec3ee}}
.logo{display:block;width:min(11rem,55%);height:auto;margin:.5rem auto 0}
.logo.sm{width:3.6rem;margin:0;flex:none}
.lw{display:flex;align-items:center;gap:.7rem}
#login h1,#login>p{text-align:center}

.chk{display:flex;gap:.6rem;align-items:center;color:var(--fg);font-size:.9rem;margin:.35rem 0;padding:.45rem .6rem;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.chk input{width:auto;margin:0;flex:none}.chk span{flex:1}.chk b{white-space:nowrap;font-variant-numeric:tabular-nums}
.segs{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:.5rem}
.segs.mk{margin:.6rem 0 0}.mkc{font-size:.7rem;text-align:center;color:var(--fg);min-height:1rem;font-weight:600}
.seg{margin:0;padding:.65rem .1rem;font-size:.75rem;border-radius:8px;border:2px solid transparent;color:var(--fg);width:100%}
.seg.s0{background:var(--okbg);color:var(--ok)}.seg.s1{background:#fdf0d5;color:#8a5a00}.seg.s2{background:#f9dcc2;color:#a2500c}.seg.s3{background:var(--badbg);color:var(--bad)}
.seg.sel{border-color:var(--fg)}
.alerta.n0{border-color:var(--ok)}.alerta.n1{border-color:#d9a43a}.alerta.n2{border-color:#d9822b}.alerta.n3{border-color:var(--bad)}
.amsg p{margin:.3rem 0}
@media (prefers-color-scheme:dark){.seg.s1{background:#3a2e12;color:#f0c46a}.seg.s2{background:#43260f;color:#f2a465}}

.hero.pend{border-color:#d9a43a}
.quick p{margin:.35rem 0}
.quick .btnsec{margin:.4rem 0 0}
.hero .quick{border:0;background:none;padding:0;margin:.8rem 0 0;border-top:1px solid var(--line);padding-top:.6rem;border-radius:0}
.hero .bankd{margin:.8rem 0 0;background:var(--bg)}.hero .bankd summary{padding:.7rem .9rem}.hero .bankd>div{padding:0 .9rem .9rem}.hero .bankd .bank{margin-top:0;padding:0;background:none}
