:root{font-family:Saira Semi Condensed,sans-serif;color:#f7fbff;background:#050609;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100svh;background:#050609}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.loading,.login-screen{min-height:100svh;display:grid;place-items:center;background:#050609;color:#a8b7ce;font-weight:800;letter-spacing:.06em}.login-card{width:min(420px,calc(100vw - 32px));border:1px solid #27364d;border-radius:18px;background:#0d1420;padding:32px 24px;box-shadow:0 24px 60px #00000073}.brand{color:#fff;font-size:1.65rem;line-height:1;font-weight:900;letter-spacing:.04em}.brand span{color:#0a1720;background:#1fc5b0;padding:2px 7px;margin-left:4px;font-size:.72em;letter-spacing:.08em}.login-card p{color:#91a1b8;margin:9px 0 26px;font-weight:600;letter-spacing:.03em}.login-card form{display:grid;gap:17px}.login-card label{display:grid;gap:6px;color:#aebbd0;font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.login-card input{width:100%;min-height:52px;padding:10px 12px;color:#fff;background:#070b12;border:1px solid #34455e;border-radius:10px;outline:none}.login-card input:focus{border-color:#1fc5b0}.login-button{min-height:56px;border:0;border-radius:12px;color:#04100f;background:#1fc5b0;font-weight:900;letter-spacing:.08em;cursor:pointer}.login-button:disabled{opacity:.6}.form-error{color:#ff9cac;background:#f43f5e1f;border-left:3px solid #fb5570;padding:10px;font-weight:700}.mobile-shell{height:100svh;max-width:650px;margin:0 auto;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;background:#050609}.mobile-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(env(safe-area-inset-top) + 15px) 18px 14px;border-bottom:1px solid #1c2a3d;background:#080b11}.mobile-header time{display:block;margin-top:6px;color:#97a7bd;font-size:.86rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.connection{border:1px solid #226c60;border-radius:9px;color:#37ddc5;background:#188f7e29;font-size:.74rem;font-weight:900;letter-spacing:.05em;padding:8px 9px;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.connection.offline{color:#ffbd69;border-color:#704d21;background:#9e651929}.control-section{padding:15px 15px 11px;border-bottom:1px solid #1d2a3b;background:#0b1018}.control-section h2{margin:0 0 8px;color:#98aac3;font-size:.8rem;font-weight:900;letter-spacing:.05em;display:flex;align-items:center;gap:6px}.pv-grid,.tipo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #39485d;border-radius:11px;overflow:hidden}.pv-grid{margin-bottom:12px;max-height:102px;overflow-y:auto}.choice{min-height:54px;padding:8px;border:0;border-right:1px solid #39485d;color:#d4deed;background:#eef1f5;color:#2b3d54;font-size:1.15rem;font-weight:900;text-transform:uppercase;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.choice:nth-child(2n){border-right:0}.choice.selected{color:#fff;background:#078dcb}.tipo-grid .choice{color:#31445c;background:#f8fafc}.tipo-grid .ingreso.selected{color:#fff;background:#129d8d}.tipo-grid .egreso.selected{color:#fff;background:#d84c65}.quick-section{min-height:0;padding:15px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}.quick-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:11px;color:#f3f7fc;font-size:1rem;font-weight:900;letter-spacing:.05em}.quick-title small{overflow:hidden;color:#90a1b8;font-size:.75rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.quick-grid{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,148px);grid-auto-rows:148px;gap:11px;overflow-y:auto;padding-bottom:8px;align-content:start}.quick-button{height:148px;min-height:0;border:1px solid #138f80;border-radius:14px;color:#fff;background:linear-gradient(145deg,#103a3b,#0d252a);padding:16px 13px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;box-shadow:inset 0 0 0 1px #1fc5b01f}.quick-button:active{transform:scale(.98);filter:brightness(1.15)}.quick-button.is-egreso{border-color:#aa3a52;background:linear-gradient(145deg,#41202a,#27131b)}.quick-button strong{overflow:hidden;font-size:1.42rem;line-height:1.03;font-weight:900;letter-spacing:.02em;text-overflow:ellipsis;text-transform:uppercase}.quick-button i{align-self:flex-start;color:#fff;background:#ffffff29;border-radius:999px;font-style:normal;font-size:.95rem;font-weight:900;line-height:1;padding:4px 8px}.quick-button span{color:#38e1c7;font-size:1.5rem;font-weight:900}.quick-button.is-egreso span{color:#ff9cae}.empty-state{grid-column:1 / -1;align-self:center;color:#8fa0b8;text-align:center;font-weight:700;padding:28px}.toast{position:fixed;left:50%;bottom:108px;z-index:5;transform:translate(-50%);width:max-content;max-width:calc(100vw - 32px);padding:11px 16px;border-radius:11px;color:#fff;background:#106c61;border:1px solid #46e2cb;box-shadow:0 8px 25px #00000073;font-weight:900;letter-spacing:.04em}.recent-footer{border-top:1px solid #2d3a4d;background:#080b11;padding:11px 15px max(30px,calc(env(safe-area-inset-bottom) + 12px))}.recent-label{margin-bottom:8px;color:#92a2b9;font-size:.76rem;font-weight:900;letter-spacing:.06em;display:flex;align-items:center;gap:6px}.recent-track{display:flex;gap:8px;overflow-x:auto;min-height:53px}.recent-card{min-width:132px;border-left:3px solid #32d4bc;border-radius:8px;background:#101a26;padding:6px 8px;display:grid;gap:1px;color:#eaf0f7}.recent-card.is-egreso{border-left-color:#fd7088}.recent-card b{overflow:hidden;font-size:.76rem;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase}.recent-card span{color:#35dcc3;font-size:1rem;font-weight:900}.recent-card.is-egreso span{color:#ff9cab}.recent-card small{color:#8798af;font-size:.67rem;font-weight:700}.no-recent{display:grid;place-items:center;color:#6f8099;font-weight:600}@media (min-width: 680px){.mobile-shell{border-inline:1px solid #1c2a3d}.quick-grid{grid-auto-rows:132px}}
