/* Copiado de la app actual (Index.html, líneas 10–274). */
:root{--bg:#111317;--s1:#1B1E24;--s2:#262A33;--br:#2E333D;--tx:#F3F1EC;--mu:#A3A8B3;--mu2:#8C92A0;--am:#F5B83D;--am2:#F5D38A;--amf:#2A2415;--amb:#4A3A18;--gr:#5BD68A;--co:#FF7A6B;--bl:#7AA7FF}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--tx);font-family:Figtree,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font-family:inherit}
.app{max-width:480px;margin:0 auto;min-height:100vh;padding:20px 16px 110px}
.cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.cab small{font-size:13px;color:var(--mu);font-weight:500}
h1{margin:2px 0 0;font-family:Sora,sans-serif;font-size:26px;font-weight:700;letter-spacing:-.02em}
h2{margin:0;font-family:Sora,sans-serif;font-size:16px;font-weight:600}
.ayu{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:8px;border-radius:50%;border:1px solid var(--br);background:var(--s1);color:var(--mu);font-size:12px;font-weight:700;text-decoration:none;vertical-align:1px}
.ayu:active{background:var(--br)}
.chip-user{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:var(--s1);border:1px solid var(--br);font-size:13px;color:var(--mu)}
.avatar{width:28px;height:28px;border-radius:999px;background:var(--am);color:#1A1405;display:flex;align-items:center;justify-content:center;font-weight:700}
.pila{display:flex;flex-direction:column;gap:16px}
.lbl{font-size:13px;color:var(--mu);font-weight:500;margin-bottom:8px;display:block}
.seg{display:grid;gap:4px;padding:4px;background:var(--s1);border-radius:14px;border:1px solid var(--br)}
.seg button{height:44px;border:0;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;background:transparent;color:var(--mu)}
.seg button.on{background:var(--am);color:#1A1405}
.seg.tipo button.on.Gasto{background:var(--co);color:#111317}
.seg.tipo button.on.Ingreso{background:var(--gr);color:#111317}
.seg.tipo button.on.Transferencia{background:var(--bl);color:#111317}
.caja{padding:16px;border-radius:20px;background:var(--s1);border:1px solid var(--br)}
.monto{display:flex;flex-direction:column;align-items:center;gap:4px}
.monto .fila{display:flex;align-items:baseline;gap:6px}
.monto input{width:230px;background:transparent;border:0;outline:none;font-family:Sora,sans-serif;font-size:40px;font-weight:700;letter-spacing:-.02em;color:inherit;font-variant-numeric:tabular-nums}
.monto .signo{font-family:Sora,sans-serif;font-size:30px;font-weight:600}
.fecha-mini{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--mu);min-height:40px}
.fecha-mini input{background:transparent;border:0;color:var(--mu);font-size:16px;color-scheme:dark;min-height:40px}
input,select,textarea{font-size:max(16px,1em)}
.reint{display:none;height:46px;padding:0 24px;border-radius:14px;border:1.5px solid var(--am);background:transparent;color:var(--am2);font:600 15px Figtree,system-ui,sans-serif;cursor:pointer}
.reint.on{display:inline-flex;align-items:center}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.btn-amb{height:44px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;border:1px solid var(--br);background:var(--s1);color:var(--mu)}
.btn-amb.on{border-color:var(--am);background:var(--amf);color:var(--am2)}
.fld{width:100%;height:52px;padding:0 12px;border-radius:14px;border:1px solid var(--br);background:var(--s1);color:var(--tx);font-size:16px;font-weight:500;color-scheme:dark}
textarea.fld{height:80px;padding:12px 14px;resize:none;line-height:1.4}
.fld:focus{outline:2px solid var(--am);outline-offset:1px}
.aviso{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:#16233A;border:1px solid #2B4166;font-size:13px;line-height:1.45;color:#C9D8F5;margin-top:8px}
.cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 6px}
.cat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:0;background:transparent;cursor:pointer;color:#C4C8D0}
.cat .cir{width:56px;height:56px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:var(--s1);border:2px solid var(--br)}
.cat span.t{font-size:12px;line-height:1.2;font-weight:500;text-align:center}
.sel-cat{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.atras{width:44px;height:44px;border-radius:999px;border:1px solid var(--br);background:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer}
.cir-on{width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:var(--amf);border:2px solid var(--am)}
.subs{display:flex;flex-wrap:wrap;gap:8px}
.sub{height:44px;display:flex;align-items:center;gap:8px;padding:0 14px 0 10px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;background:var(--bg);border:1px solid var(--br);color:#E3E1DC}
.sub.on{background:var(--am);border-color:var(--am);color:#1A1405}
.tc{padding:16px;border-radius:18px;background:#1E1A12;border:1px solid var(--amb);display:flex;flex-direction:column;gap:14px}
.mini{display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:12px;background:var(--bg)}
.mini span:first-child{font-size:11px;color:var(--mu)}
.mini b{font-family:Sora,sans-serif;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.guardar{height:56px;border:0;border-radius:16px;background:var(--am);color:#1A1405;font-family:Sora,sans-serif;font-size:17px;font-weight:700;cursor:pointer;width:100%}
.guardar:disabled{opacity:.6}
.ref{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:12px;background:var(--amf);border:1px solid var(--amb);font-size:13px;color:var(--am2)}
.ref button{border:0;background:transparent;color:var(--am2);font-size:18px;cursor:pointer;width:32px;height:32px}
nav{position:fixed;left:0;right:0;bottom:0;height:78px;padding:8px 8px calc(14px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;background:#16181D;border-top:1px solid var(--br);z-index:5}
nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--mu);font-size:11px;padding:0;min-width:0;font-weight:600;cursor:pointer}
nav button.on{color:var(--am)}
.hero{padding:20px 18px 18px;border-radius:24px;background:#1E1A12;border:1px solid var(--amb);display:flex;flex-direction:column;gap:14px}
.hero .big{font-family:Sora,sans-serif;font-size:38px;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.tile{display:flex;flex-direction:column;gap:6px;padding:14px 12px;border-radius:16px;background:var(--bg);border:1px solid var(--br)}
.tile span{font-size:12px;line-height:1.3;color:var(--mu)}
.tile b{font-family:Sora,sans-serif;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.kpi{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:18px;background:var(--s1);border:1px solid var(--br)}
.kpi .l{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mu)}
.dot{width:8px;height:8px;border-radius:999px;display:inline-block}
.kpi b{font-family:Sora,sans-serif;font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.kpi small{font-size:12px;color:var(--mu2)}
.barra{position:relative;height:10px;border-radius:999px;background:var(--s2)}
.barra i{position:absolute;left:0;top:0;height:10px;border-radius:999px}
.barra em{position:absolute;top:-3px;width:2px;height:16px;border-radius:2px;background:var(--tx)}
.fila-mov{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--s2)}
.ico{width:40px;height:40px;flex-shrink:0;border-radius:999px;display:flex;align-items:center;justify-content:center}
.crece{flex-grow:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.crece b{font-size:14px;font-weight:600}
.crece span{font-size:12px;color:var(--mu);line-height:1.35}
.der{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.der b{font-family:Sora,sans-serif;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.est{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}
.mesnav{display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--s1);border:1px solid var(--br)}
.mesnav button{width:36px;height:36px;border:0;border-radius:999px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}
.mesnav span{font-size:14px;font-weight:600;min-width:92px;text-align:center}
.vacio{padding:14px 0 6px;border-top:1px solid var(--s2);font-size:14px;color:var(--mu2)}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-cel{height:56px;padding:5px 0 6px;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:transparent;border:1px solid transparent}
.cal-cel.on{background:var(--amf);border-color:var(--am)}
.cal-cel .n{width:26px;height:26px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;border:1.5px solid transparent}
.puntos{display:flex;gap:3px;height:8px;align-items:center}
.puntos i{width:7px;height:7px;border-radius:999px;display:inline-block}
.puntos i.rombo{border-radius:1px;transform:rotate(45deg)}
.dia{border-radius:20px;background:var(--s1);border:1px solid var(--br);overflow:hidden}
.dia.on{border-color:var(--amb)}
.dia-cab{display:flex;align-items:center;gap:12px;padding:12px 14px;border:0;background:transparent;width:100%;cursor:pointer;text-align:left;color:var(--tx)}
.dia.on .dia-cab{background:#221E14}
.chipdia{width:46px;height:46px;flex-shrink:0;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);border:1.5px solid transparent}
.chipdia small{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--mu2)}
.chipdia b{font-family:Sora,sans-serif;font-size:18px;font-weight:700;line-height:1.1}
.evt{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--bg);border:1px solid var(--br)}
.btn-pagar{margin-top:4px;height:32px;padding:0 10px;border-radius:10px;border:1px solid var(--amb);background:var(--amf);color:var(--am2);font-size:12px;font-weight:600;cursor:pointer}
.fecha-sel{height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--br);background:var(--s1);color:var(--tx);font-size:15px;font-weight:600;color-scheme:dark;min-width:0;flex-grow:1}
.leyenda{display:flex;flex-wrap:wrap;gap:6px 14px;padding:6px 4px 2px;font-size:11px;color:var(--mu)}
.leyenda span{display:flex;align-items:center;gap:5px}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);padding:12px 18px;border-radius:14px;background:var(--gr);color:#111317;font-weight:700;font-size:15px;z-index:9;display:none;max-width:90%}
.toast.err{background:var(--co)}
.toast{display:none;align-items:center;gap:10px}
.toast.fijo{background:var(--s2);color:var(--tx);border:1px solid var(--br)}
.spin3{width:16px;height:16px;border:2px solid var(--br);border-top-color:var(--am);border-radius:999px;animation:g 1s linear infinite;flex-shrink:0}
.cargando{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);z-index:10;flex-direction:column;gap:18px;color:var(--mu);transition:opacity .45s ease}
.cargando.sale{opacity:0;pointer-events:none}
.logo{width:84px;height:84px;border-radius:26px;background:linear-gradient(145deg,#F7C65A,#E9A21F);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 40px rgba(245,184,61,.28);opacity:0;transform:scale(.6);animation:logoEntra .6s cubic-bezier(.2,.9,.3,1.2) forwards,respira 1.6s ease-in-out .7s infinite}
.cargando.sale .logo{animation:logoSale .45s ease forwards}
.marca{text-align:center;opacity:0;transform:translateY(10px);animation:subeTxt .5s ease .25s forwards}
.marca b{display:block;font-family:Sora,sans-serif;font-size:22px;font-weight:700;color:var(--tx);letter-spacing:-.02em}
.marca small{font-size:13px;color:var(--mu)}
#cargaTxt{min-height:18px;font-size:13px;color:var(--co);text-align:center;padding:0 24px}
@keyframes logoEntra{to{opacity:1;transform:scale(1)}}
@keyframes respira{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes logoSale{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.25)}}
@keyframes subeTxt{to{opacity:1;transform:translateY(0)}}
.entra{animation:entraPant .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes entraPant{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.cta{border-radius:20px;background:var(--s1);border:1px solid var(--br);overflow:hidden}
.cta-cab{display:flex;align-items:center;gap:12px;padding:14px 14px 10px}
.cta-cab .ico{background:var(--s2)}
.edit{height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--br);background:var(--bg);color:var(--mu);font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0}
.cta-fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;font-size:14px;color:#D6D3CC}
.cta-fila b{font-family:Sora,sans-serif;font-weight:600;font-variant-numeric:tabular-nums}
.cta-fila.bol{padding-left:26px;color:var(--mu)}
.cta-fila.bol>span:before{content:'';display:inline-block;width:8px;height:8px;margin-right:8px;border-left:1.5px solid #4A505C;border-bottom:1.5px solid #4A505C;transform:translateY(-3px)}
.cta-tot{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;margin-top:4px;border-top:1px dashed var(--br);background:#1E1A12}
.cta-tot span{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--am2)}
.cta-tot b{font-family:Sora,sans-serif;font-size:20px;font-weight:700;color:var(--tx);font-variant-numeric:tabular-nums}
.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--s2);color:var(--mu)}
.mas-cta{height:52px;width:100%;border-radius:16px;border:1.5px dashed var(--amb);background:transparent;color:var(--am2);font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.frm-fila{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 40px;gap:8px;align-items:center}
.frm-fila .fld{height:46px;font-size:15px}
.x{width:40px;height:40px;border-radius:12px;border:1px solid var(--br);background:var(--bg);color:var(--mu);font-size:20px;cursor:pointer}
.sw{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:var(--s1);border:1px solid var(--br);font-size:15px;font-weight:500}
.compra{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:var(--bg);border:1px solid var(--br)}
.peligro{height:48px;width:100%;border-radius:14px;border:1px solid #5C2A26;background:#3A1C1A;color:#FF9A8E;font-size:15px;font-weight:600;cursor:pointer}
.fld:disabled{opacity:.55}
.nota{font-size:12px;line-height:1.45;color:var(--mu2);margin-top:6px}
.cta-cab[role=button]{cursor:pointer}
.chev{display:flex;transition:transform .25s ease}
.cta.abierta .chev{transform:rotate(90deg)}
.det{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}
.det>div{overflow:hidden}
.cta.abierta .det{grid-template-rows:1fr}
.cta .cta-tot{margin-top:0}
.cta-mov{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:44px;border:0;border-top:1px solid var(--br);background:transparent;color:var(--am2);font-size:13px;font-weight:600;cursor:pointer}
.busca-fake{display:flex;align-items:center;gap:10px;width:100%;height:44px;padding:0 14px;margin:2px 0 6px;border-radius:14px;border:1px solid var(--br);background:var(--bg);color:#8C92A0;font-size:14px;font-weight:500;cursor:pointer;text-align:left}
.mov-dia{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:14px 0 2px;font-size:12px;font-weight:700;letter-spacing:.04em;color:#8C92A0;text-transform:uppercase}
.mov-dia b{font-family:Sora,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;font-size:12px}
.mov-cab{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-top:10px;border-top:1px solid var(--s2);font-size:12px;font-weight:700;letter-spacing:.04em;color:#8C92A0;text-transform:uppercase}
.mov-cab span{font-family:Sora,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none}
.mov-dia + .fila-mov{border-top:0}
.puntos i.mv{background:transparent;border:1.5px solid #8C92A0;width:7px;height:7px;box-sizing:border-box}
.monto-btn{width:230px;min-height:52px;background:transparent;border:0;border-bottom:2px solid transparent;font-family:Sora,sans-serif;font-size:40px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;cursor:pointer;padding:0;text-align:left}
.monto-btn.vacio{color:#4A505C!important}
.calc-fondo{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}
.calc-fondo.on{opacity:1;pointer-events:auto}
.calc{position:fixed;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;z-index:21;background:#16181D;border-top:1px solid var(--br);border-radius:24px 24px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom));transform:translateY(105%);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.calc.on{transform:translateY(0)}
.calc-pant{padding:4px 8px 12px;text-align:right;min-height:74px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px}
.calc-exp{font-size:15px;color:var(--mu);font-variant-numeric:tabular-nums;word-break:break-all;min-height:20px}
.calc-res{font-family:Sora,sans-serif;font-size:36px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}
.teclas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.teclas button{height:56px;border:0;border-radius:14px;background:var(--s2);color:var(--tx);font-family:Sora,sans-serif;font-size:22px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.teclas button:active{filter:brightness(1.35)}
.teclas .op{background:#2A2415;color:var(--am2)}
.teclas .fn{background:#20232A;color:var(--mu);font-size:18px}
.teclas .listo{grid-column:span 2;background:var(--am);color:#1A1405;font-size:18px}
.iconos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.icb{height:46px;border-radius:12px;border:1px solid var(--br);background:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer}
.icb.on{background:var(--am);border-color:var(--am)}
.ins{display:flex;gap:10px;padding:12px;border-radius:14px;background:var(--bg);border:1px solid var(--br);font-size:13px;line-height:1.45}
.ins b{color:var(--am2)}
.leg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--mu)}
.leg span{display:flex;align-items:center;gap:6px}
.tag{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--s2);color:var(--mu);white-space:nowrap}
.caja{display:flex;flex-direction:column;gap:12px}
.num{font-variant-numeric:tabular-nums}
.barra em{top:-4px;height:16px}
svg text{font-family:Figtree,system-ui,sans-serif}
.btn-fact{flex:1;height:48px;border-radius:14px;border:1.5px dashed var(--amb);background:transparent;color:var(--am2);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.spin2{width:32px;height:32px;border:3px solid var(--br);border-top-color:var(--am);border-radius:999px;animation:g 1s linear infinite}
@keyframes g{to{transform:rotate(360deg)}}
.alerta-plan{background:#3A1C1A;border:1px solid #5C2A26;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.45;color:#FF9A8E}
.edita-ban{display:flex;gap:10px;align-items:center;justify-content:space-between;background:#16233A;border:1px solid #2B4166;border-radius:14px;padding:12px 14px}
.edita-ban div{display:flex;flex-direction:column;gap:3px;min-width:0}.edita-ban b{font-size:14px;color:#A9C4FF}.edita-ban span{font-size:12px;line-height:1.4;color:#C4C8D0}
.edita-ban button{flex-shrink:0;height:36px;padding:0 12px;border-radius:10px;border:1px solid #2B4166;background:transparent;color:#A9C4FF;font:inherit;font-size:13px;cursor:pointer}
.clip{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--am2);background:var(--amf);padding:1px 7px;border-radius:999px;margin-left:4px;vertical-align:middle}
.det-fact{display:flex;flex-direction:column;gap:5px;padding:10px 12px 10px 52px;margin:-4px 0 6px;border-radius:12px;background:var(--bg);border:1px solid var(--br)}
.subtabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.subtabs button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border-radius:14px;border:1px solid var(--br);background:var(--s1);color:var(--mu);cursor:pointer;text-align:left}
.subtabs button span{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600}
.subtabs button b{font-family:Sora,sans-serif;font-size:16px;color:var(--tx);font-variant-numeric:tabular-nums}
.subtabs button.on{background:var(--amf);border-color:var(--am);color:var(--am2)}
.subtabs button.act{border-color:#1F5A45;color:#9BE8CF}
.subtabs button.act.on{background:#4FD1A5;border-color:#4FD1A5;color:#0F1412}
.subtabs button.act.on b{color:#0F1412}
.segact button.on{background:#4FD1A5;color:#0F1412}
.uno-amb .bloque-amb{display:none!important}
.obj{border-radius:20px;background:var(--s1);border:1px solid var(--br);padding:14px;display:flex;flex-direction:column;gap:12px}
.obj.ok{border-color:#1F5A45;background:#12201B}
.obj-cab{display:flex;align-items:center;gap:12px}
.obj-num{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.obj-num b{font-family:Sora,sans-serif;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.obj-num span{font-size:13px;color:var(--mu)}
.sem{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4;padding:10px 12px;border-radius:12px}
.sem i{width:10px;height:10px;border-radius:999px;flex-shrink:0;margin-top:4px}
.btn2{height:40px;padding:0 14px;border-radius:12px;border:1px solid var(--amb);background:var(--amf);color:var(--am2);font-size:14px;font-weight:600;cursor:pointer}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--br);background:var(--bg);color:var(--mu);font-size:13px;font-weight:600;cursor:pointer}
.pf-fila{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--bg);border:1px solid var(--br);cursor:pointer;text-align:left;width:100%;color:var(--tx)}
.mini-barra{height:6px;border-radius:999px;background:var(--s2);overflow:hidden}
.mini-barra i{display:block;height:6px;border-radius:999px}
@media (prefers-reduced-motion:reduce){.logo,.marca,.entra,.cargando.sale .logo{animation:none;opacity:1;transform:none}}

/* ---- conciencia del gasto ---- */
.conc-op{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;border-radius:14px;border:1px solid var(--br);background:var(--bg);color:var(--tx);cursor:pointer;font:inherit}
.conc-op b{display:block;font-size:14px;font-weight:600}.conc-op small{display:block;font-size:12px;color:var(--mu)}
.conc-op .pt{width:12px;height:12px;border-radius:50%;flex-shrink:0}.conc-op.on{border-width:2px;padding:9px 11px}
.cbar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--s2)}
.cfila{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:center;font-size:12px}
.cmsg{display:flex;gap:8px;padding:10px 12px;border-radius:14px;font-size:13px;line-height:1.45}
.cmsg.ok{background:#15291E;color:#7BE0A2}.cmsg.wr{background:#2A2415;color:#F5D38A}.cmsg.bad{background:#3A1C1A;color:#FF9A8E}.cmsg.inf{background:#16233A;color:#A9C4FF}
.chist{display:flex;gap:8px;height:110px;align-items:flex-end}
.chist button{flex:1;display:flex;flex-direction:column-reverse;border:0;padding:0;border-radius:4px;overflow:hidden;cursor:pointer;background:var(--s2);min-height:4px}
.chist button.on{outline:2px solid var(--am2);outline-offset:1px}
.cleg{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--mu)}.cleg i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}
/* ---- tablet y computador (diseño adaptable) ---- */
.nav-marca{display:none}
@media (min-width:700px){
.app{max-width:680px;padding:28px 24px 120px}
.cats{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (min-width:1024px){
body:not(.sin-nav){padding-left:240px}
nav{top:0;bottom:0;right:auto;width:240px;height:auto;display:flex;flex-direction:column;gap:4px;padding:24px 14px;border-top:0;border-right:1px solid var(--br);background:#15171C}
nav button{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;height:48px;padding:0 14px;border-radius:12px;font-size:15px}
nav button:hover{background:var(--s1);color:var(--tx)}
nav button.on{background:var(--amf);color:var(--am2)}
.nav-marca{display:flex;align-items:center;gap:12px;padding:4px 8px 20px;margin-bottom:12px;border-bottom:1px solid var(--br)}
.nav-logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,#F7C65A,#E9A21F);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-marca b{display:block;font-family:Sora,sans-serif;font-size:15px;line-height:1.25}
.nav-marca small{display:block;font-size:12px;color:var(--mu);margin-top:2px}
.app{max-width:760px;padding:36px 40px 64px}
h1{font-size:30px}
body.ancha .app{max-width:1240px}
body.ancha .app>.pila{display:block;column-count:2;column-gap:20px}
body.ancha .app>.pila>*{break-inside:avoid;margin-bottom:20px}
body.ancha .app>.pila>.bloque-amb,body.ancha .app>.pila>.seg,body.ancha .app>.pila>.subtabs,body.ancha .app>.pila>.busca-fake{column-span:all}
.cats{grid-template-columns:repeat(6,minmax(0,1fr))}
.toast{left:calc(50% + 120px);bottom:32px}
.calc{left:50%;right:auto;top:50%;bottom:auto;width:420px;max-width:calc(100vw - 32px);margin:0;border:1px solid var(--br);border-radius:24px;padding:18px;transform:translate(-50%,-46%);opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease}
.calc.on{transform:translate(-50%,-50%);opacity:1;pointer-events:auto}
nav button:focus-visible{outline:2px solid var(--am);outline-offset:2px}
}
@media (min-width:1600px){
body.ancha .app{max-width:1560px}
body[data-pant=res].ancha .app>.pila{column-count:3}
}

/* ---- Web nueva: Ingresos, Gastos y Faltó en una sola fila cuando hay espacio (pedido de Carlos, 29-10-2026) */
@media (min-width:700px){.grid2:has(>.kpi:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---- Web nueva: pantalla de entrar con Google (no existe en la app actual) */
.cargando.sin-sesion .logo{animation:none;opacity:1;transform:none}
.entrar-txt{color:var(--mu);font-size:15px;line-height:1.5;max-width:320px;margin:0 auto 16px}
.entrar-google{width:100%;max-width:340px;height:52px;border-radius:16px;border:1px solid #fff;background:#fff;color:#1F1F1F;font:600 16px Figtree,system-ui,sans-serif;cursor:pointer}
.entrar-pol{display:block;margin-top:14px;color:var(--mu);font-size:12px}
.salir-app{background:none;border:0;color:var(--mu);font:500 13px Figtree,system-ui,sans-serif;text-decoration:underline;cursor:pointer;padding:8px}
/* Web nueva: crear y editar categorías llega en la Fase 3; mientras tanto esos botones no se muestran */
body.sin-categorias .cat[onclick="nuevoGrupo()"], body.sin-categorias .sub[onclick^="nuevaSub"], body.sin-categorias .sub[onclick^="gestionarGrupo"]{display:none}
