/* App de teléfono: cabecera con la deuda, contenido en una columna, pestañas fijas abajo
   y el botón de abono siempre a mano. */
:root{
  --bg:#f2f4f3; --card:#ffffff; --ink:#14201d; --muted:#5f6c68; --line:#dde3e0; --soft:#e9eeec;
  --accent:#0b6e5f; --accent-ink:#ffffff; --accent-soft:#d9efe9;
  --ok:#1d7a4b; --ok-bg:#ddf1e6; --due:#b3372d; --due-bg:#fbe4e0; --ex:#3157a8; --ex-bg:#e3eaf8;
  --cut:#6b7471; --cut-bg:#e6e9e8; --warn:#8f5b00; --warn-bg:#fcefd3;
  --f:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --tabbar:64px; color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0e1614; --card:#162120; --ink:#e5edea; --muted:#94a39f; --line:#26332f; --soft:#1d2a27;
  --accent:#3fb39f; --accent-ink:#04201a; --accent-soft:#173a33;
  --ok:#6fd39c; --ok-bg:#16382a; --due:#ff8b7f; --due-bg:#41201c; --ex:#93b2f2; --ex-bg:#1d2a45;
  --cut:#9aa5a1; --cut-bg:#25302d; --warn:#f2c26b; --warn-bg:#3b2e12; color-scheme:dark}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--f);-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.small{font-size:.8rem}
a{color:var(--accent)}

/* cabecera */
.top{background:var(--accent);color:var(--accent-ink);padding:calc(14px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 18px max(16px,env(safe-area-inset-left,0px))}
.top-in{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:6px}
.top-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.82rem;opacity:.9}
.top-row a{color:inherit;text-decoration:none;opacity:.85}
.lbl{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;opacity:.85;margin-top:6px}
.big{font-family:var(--mono);font-size:2.4rem;line-height:1.05;letter-spacing:-.02em}
.kpis{display:flex;gap:16px;flex-wrap:wrap;font-size:.82rem;opacity:.92;margin-top:4px}
.kpis b{font-family:var(--mono);font-weight:500}

/* contenido */
main{max-width:680px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-right,0px)) calc(var(--tabbar) + 96px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:20px}
.view{display:flex;flex-direction:column;gap:20px}
.block{display:flex;flex-direction:column;gap:8px}
.bh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
h2{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0}
.list{background:var(--card);border-radius:14px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer}
.row:first-child{border-top:0}
.row.static{cursor:default}
.row .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.row .t{font-weight:600;overflow-wrap:anywhere}
.row .s{font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}
.row .end{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.row .amt{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500}
.chev{color:var(--muted);flex-shrink:0}
.empty{padding:22px 16px;text-align:center;color:var(--muted);font-size:.9rem}

/* acciones rápidas del inicio */
.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qbtn{display:flex;align-items:center;gap:10px;padding:14px;border-radius:14px;border:0;background:var(--card);cursor:pointer;text-align:left;font-weight:600}
.qbtn svg{flex-shrink:0;color:var(--accent)}
.qbtn.pri{background:var(--ink);color:var(--bg)}
.qbtn.pri svg{color:var(--bg)}

/* barras por mes */
.mrow{display:grid;grid-template-columns:3.2rem 1fr auto;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line)}
.mrow:first-child{border-top:0}
.bar{height:8px;border-radius:4px;background:var(--soft);overflow:hidden}
.bar i{display:block;height:100%;background:var(--due);border-radius:4px}

/* pastillas y meses */
.pill{display:inline-block;font-size:.7rem;font-weight:600;border-radius:999px;padding:2px 8px;white-space:nowrap}
.pill.due{background:var(--due-bg);color:var(--due)}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.cut{background:var(--cut-bg);color:var(--cut)}
.dots{display:flex;gap:3px}
.dot{width:16px;height:16px;border-radius:4px;font:600 .58rem/16px var(--mono);text-align:center;background:var(--soft);color:var(--muted)}
.dot.p,.dot.a{background:var(--ok-bg);color:var(--ok)}
.dot.x{background:var(--ex-bg);color:var(--ex)}
.dot.c{background:var(--cut-bg);color:var(--cut)}
.dot.d{background:var(--due);color:#fff}
.dot.f{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.mtile{border:0;border-radius:10px;padding:10px 8px;text-align:left;cursor:pointer;background:var(--soft);display:flex;flex-direction:column;gap:2px;min-height:58px}
.mtile b{font-size:.85rem;text-transform:capitalize}
.mtile span{font-size:.72rem}
.mtile.p,.mtile.a{background:var(--ok-bg);color:var(--ok)}
.mtile.x{background:var(--ex-bg);color:var(--ex)}
.mtile.c{background:var(--cut-bg);color:var(--cut)}
.mtile.d{background:var(--due-bg);color:var(--due);box-shadow:inset 0 0 0 1.5px var(--due)}
.mtile.f{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted)}
.mtile.n{opacity:.4;cursor:default}
.legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.74rem;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend .dot{width:12px;height:12px}

/* buscador y filtros */
.search{position:sticky;top:0;z-index:4;background:var(--bg);padding-block:4px 8px;display:flex;flex-direction:column;gap:8px}
.seg{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.seg::-webkit-scrollbar{display:none}
.seg button{flex-shrink:0;font-size:.82rem;font-weight:600;padding:7px 12px;border-radius:999px;border:0;background:var(--card);color:var(--muted);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
input,select,textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}
label{display:flex;flex-direction:column;gap:5px;font-size:.8rem;font-weight:600;color:var(--muted)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* botones */
.btn{font-weight:600;font-size:.92rem;border-radius:12px;padding:12px 16px;border:0;background:var(--soft);color:var(--ink);cursor:pointer;text-align:center}
.btn.pri{background:var(--accent);color:var(--accent-ink)}
.btn.dan{background:var(--due-bg);color:var(--due)}
.btn.sm{padding:8px 12px;font-size:.84rem;border-radius:10px}
.btn:disabled{opacity:.5}
.btns{display:flex;gap:8px;flex-wrap:wrap}
.btns.end{justify-content:flex-end}
.btns.full>.btn{flex:1}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* botón flotante y pestañas */
.fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(var(--tabbar) + 14px + env(safe-area-inset-bottom,0px));z-index:9;display:flex;align-items:center;gap:8px;padding:14px 18px;border-radius:16px;border:0;background:var(--ink);color:var(--bg);font-weight:700;box-shadow:0 6px 20px rgb(0 0 0 / .22);cursor:pointer}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabbar-in{max-width:680px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);height:var(--tabbar);padding-inline:max(0px,env(safe-area-inset-left,0px))}
.tabbar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.7rem;font-weight:600;color:var(--muted);cursor:pointer}
.tabbar button[aria-selected="true"]{color:var(--accent)}
.tabbar button[aria-selected="true"] svg{stroke-width:2.4}

/* hojas (diálogos) */
dialog{border:0;padding:0;background:var(--card);color:var(--ink);width:100%;max-width:560px;max-height:92vh;margin:auto auto 0;border-radius:20px 20px 0 0}
@media (min-width:640px){dialog{margin:auto;border-radius:20px}}
dialog::backdrop{background:rgb(0 0 0 / .45)}
.sheet{display:flex;flex-direction:column;gap:14px;padding:8px 18px calc(18px + env(safe-area-inset-bottom,0px))}
.grab{width:40px;height:4px;border-radius:2px;background:var(--line);margin:4px auto 2px}
.sh{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sh h3{margin:0;font-size:1.1rem}
.x{border:0;background:var(--soft);border-radius:999px;width:32px;height:32px;cursor:pointer;flex-shrink:0;font-size:1.1rem;line-height:1}
.stack{display:flex;flex-direction:column;gap:8px}
.prev{background:var(--soft);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;font-size:.88rem}
.prev .tot{display:flex;justify-content:space-between;gap:8px;font-weight:600}
.cov{font-size:.86rem}
.cov summary{cursor:pointer;padding:4px 0;list-style:none;display:flex;justify-content:space-between;gap:8px}
.cov summary::-webkit-details-marker{display:none}
.cov summary::before{content:"›";display:inline-block;margin-right:6px;transition:transform .15s}
.cov[open] summary::before{transform:rotate(90deg)}
.cov .names{color:var(--muted);padding:2px 0 6px 14px}
.photo{display:flex;align-items:center;gap:12px;padding:12px;border:1.5px dashed var(--line);border-radius:12px;cursor:pointer;color:var(--muted);font-weight:600}
.photo img{width:56px;height:56px;object-fit:cover;border-radius:8px}
.photo input{display:none}
.thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;flex-shrink:0;background:var(--soft)}
.big-thumb{width:100%;max-height:260px;object-fit:contain;border-radius:12px;background:var(--soft)}
.note{font-size:.82rem;color:var(--muted)}
.err{color:var(--due);font-size:.86rem}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tabbar) + 80px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;font-size:.88rem;z-index:30;max-width:calc(100vw - 32px)}
.skel{height:56px;border-radius:14px;background:var(--card);opacity:.6}

/* login */
.login{max-width:380px;margin:0 auto;padding:18vh 20px 40px;display:flex;flex-direction:column;gap:14px}
.login h1{margin:0 0 6px;font-size:1.5rem}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* v3: botones grandes, filtros rápidos (gusto de Paul) */
.btn{min-height:50px;font-size:1rem;border-radius:14px;padding:13px 18px}
.btn.sm{min-height:42px;font-size:.9rem;padding:9px 14px}
.seg button{min-height:40px;font-size:.88rem;padding:8px 14px}
.row{min-height:64px}
.row .t{font-size:1rem}
.rbtn{flex-shrink:0;min-height:44px;padding:0 16px;border-radius:12px;border:0;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:.9rem;cursor:pointer}
.rbtn.ghost{background:var(--soft);color:var(--ink)}
.tag{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.03em;border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:1px}
.tag.yo{background:var(--warn-bg);color:var(--warn)}
.tag.iv{background:var(--ex-bg);color:var(--ex)}
.alerta{display:flex;align-items:center;gap:12px;padding:16px;border-radius:14px;background:var(--warn-bg);color:var(--warn);border:0;font-weight:700;font-size:1rem;cursor:pointer;width:100%;text-align:left}
.alerta .n{font-family:var(--mono);font-size:1.4rem;min-width:2ch}
.msg{background:var(--ok-bg);color:var(--ink);border-radius:14px 14px 14px 4px;padding:12px 14px;font-size:.92rem;white-space:pre-wrap}
.check{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 14px;border-radius:12px;background:var(--soft);font-size:1rem;font-weight:600;color:var(--ink)}
.check input{width:22px;height:22px;flex-shrink:0}
.switch{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;font-size:.95rem;font-weight:600;color:var(--ink)}
.switch input{width:22px;height:22px}
.tabbar-in{grid-template-columns:repeat(4,1fr)}
.tabbar button{font-size:.74rem}
.top.cob{background:#1f3b57}
@media (prefers-color-scheme:dark){.top.cob{background:#20374d}}
.url{font-family:var(--mono);font-size:.8rem;word-break:break-all;background:var(--soft);padding:10px;border-radius:10px}
.rep{display:flex;flex-direction:column;gap:10px;padding:14px;border-top:1px solid var(--line)}
.rep:first-child{border-top:0}
.rep img{width:100%;max-height:300px;object-fit:contain;border-radius:10px;background:var(--soft)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:.88rem}
.kv b{color:var(--muted);font-weight:600}
a.btn{display:flex;align-items:center;justify-content:center;text-decoration:none}
.rbtn{display:inline-flex;align-items:center;justify-content:center}
