:root{color:#0f172a;background:#f1f5f9;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.4}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}a{color:#2563eb}.app{max-width:860px;margin:0 auto;padding:12px 12px 40px}.top{justify-content:space-between;align-items:flex-end;gap:12px;margin:6px 0 12px;display:flex}.top h1{margin:0;font-size:1.35rem}.sub{color:#64748b;font-size:.9rem}.top select,.refresh{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font-weight:600}.tabs{gap:8px;margin-bottom:10px;display:flex}.tabs button{color:#334155;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;flex:1;padding:10px;font-weight:700}.tabs button.on{color:#fff;background:#0f172a;border-color:#0f172a}.hint{color:#475569;margin:10px 0}.rlist{flex-direction:column;gap:10px;display:flex}.rhead{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.bars{flex-direction:column;gap:6px;display:flex}.barRow{grid-template-columns:74px 1fr auto;align-items:center;gap:8px;font-size:.85rem;display:grid}.bl{color:#475569}.bv{color:#0f172a;white-space:nowrap;font-weight:600}.track{background:#e2e8f0;border-radius:999px;height:10px;overflow:hidden}.fill{border-radius:999px;height:100%}.b-real{background:#64748b}.b-proj{background:#94a3b8}.b-pago{background:#16a34a}.b-open{background:#dc2626}.rvals{color:#334155;flex-wrap:wrap;gap:10px 14px;margin-top:10px;font-size:.85rem;display:flex}.rvals .neg b{color:#dc2626}.rvals .pos b{color:#2563eb}.rvals .ok b{color:#16a34a}.addbox{margin:10px 0}.addbtn,.primary{color:#fff;background:#0f172a;border:none;border-radius:10px;width:100%;padding:10px 14px;font-weight:700}.actions{margin-top:10px}.actions button{background:#fff;border:1px solid #cbd5e1;border-radius:10px;flex:1;padding:10px;font-weight:600}.actions .primary{color:#fff;background:#0f172a;border-color:#0f172a}.row.wrap{flex-wrap:wrap}.quick{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip{background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;padding:6px 10px;font-size:.85rem}.chip.clear{background:#fff}.dlist{flex-direction:column;gap:8px;margin-top:8px;display:flex}.drow{border:1px solid #e2e8f0;border-radius:10px;justify-content:space-between;gap:10px;padding:8px;display:flex}.drow.d-ok{background:#dcfce7;border-color:#86efac}.drow.d-neg{background:#fee2e2;border-color:#fca5a5}.drow.d-pos{background:#e0f2fe;border-color:#7dd3fc}.dname{font-weight:600;display:block}.dmeta{color:#475569;font-size:.85rem}.dright{text-align:right;font-size:.85rem}.addform input{width:100%}.grid2 .full{grid-column:1/-1}.danger{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:10px;width:100%;padding:10px;font-weight:700}.card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:12px;box-shadow:0 1px 2px #0000000a}.controls{margin-bottom:10px}.controls .row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.search{border:1px solid #cbd5e1;border-radius:10px;width:100%;padding:10px 12px}select,input[type=number],input[type=password]{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px}.chk{color:#334155;align-items:center;gap:6px;display:flex}.totals{grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0;display:grid}.t{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px}.t span{color:#64748b;font-size:.8rem;display:block}.t b{font-size:1rem}.t.neg b{color:#dc2626}.t.pos b{color:#2563eb}.t.ok b{color:#16a34a}.list{flex-direction:column;gap:10px;display:flex}.item .main{align-items:flex-start;gap:10px;display:flex}.pay{color:#16a34a;background:#fff;border:2px solid #94a3b8;border-radius:12px;flex:none;width:40px;height:40px;font-size:20px;font-weight:700}.pay.on{color:#fff;background:#16a34a;border-color:#16a34a}.info{flex:1;min-width:0}.titleRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.title{font-size:1.02rem;font-weight:700}.meta{color:#64748b;margin-top:2px;font-size:.88rem}.badge{color:#334155;background:#e2e8f0;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600}.badge.rec{color:#3730a3;background:#e0e7ff}.badge.due.soon{color:#92400e;background:#fef3c7}.badge.due.overdue{color:#991b1b;background:#fee2e2}.grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.cell{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:4px;padding:8px;display:flex}.cell span{color:#475569;font-size:.75rem;font-weight:600}.cell input{width:100%}.cell b{font-size:1rem}.cell.hl-paid{background:#dbeafe;border-color:#93c5fd}.cell.ap.hl-neg{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.cell.ap.hl-ok{color:#166534;background:#dcfce7;border-color:#86efac}.cell.ap.hl-pos{color:#075985;background:#e0f2fe;border-color:#7dd3fc}.more{margin-top:8px}.more summary{cursor:pointer;color:#2563eb;font-weight:600}.grid2{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px;display:grid}.grid2 label{color:#334155;flex-direction:column;gap:4px;font-size:.85rem;display:flex}.err{color:#b91c1c;margin:8px 0}.foot{color:#64748b;text-align:center;margin-top:16px;font-size:.8rem}.login{flex-direction:column;gap:10px;max-width:380px;margin:40px auto;display:flex}.login form{flex-direction:column;gap:8px;display:flex}.login button{color:#fff;background:#0f172a;border:none;border-radius:10px;padding:10px 12px;font-weight:700}@media (width<=640px){.totals{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.top{flex-direction:column;align-items:stretch}}
