
:root{--bg:#f3f7fb;--panel:#fff;--panel2:#eef4f8;--text:#0a2139;--muted:#64748b;--line:#d8e3ec;--nav:#071a2e;--nav2:#0d2d4f;--blue:#0b73d9;--blue2:#00a8e8;--lime:#9add22;--lime2:#63b51c;--danger:#e84b56;--warning:#f3a719;--success:#32b86b;--shadow:0 14px 38px rgba(8,36,63,.12)}
[data-theme=dark]{--bg:#07111d;--panel:#0d1d2e;--panel2:#12273d;--text:#eef7ff;--muted:#9cb2c7;--line:#1f3b55;--nav:#04101e;--nav2:#092847;--blue:#28a2ff;--blue2:#03c6ef;--lime:#a8e930;--lime2:#73c51d;--shadow:0 16px 42px rgba(0,0,0,.34)}
[data-theme=neon]{--bg:#02090f;--panel:#061725;--panel2:#09253b;--text:#effcff;--muted:#8bb7cd;--line:#0d3e5e;--nav:#01070d;--nav2:#06253c;--blue:#00bfff;--blue2:#13e8ff;--lime:#aaff2b;--lime2:#59e000;--shadow:0 0 32px rgba(0,191,255,.12)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.side{position:sticky;top:0;height:100vh;padding:18px 14px;background:linear-gradient(180deg,var(--nav2),var(--nav));color:#fff;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.06)}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px}.logo-shell{width:58px;height:58px;border-radius:18px;overflow:hidden;background:#07182b;box-shadow:0 0 0 1px rgba(255,255,255,.18),0 10px 28px rgba(0,0,0,.28);flex:0 0 auto}.logo-shell video,.logo-shell img,.logo-shell svg{width:100%;height:100%;object-fit:cover;display:block}.sf-blue{animation:logoBlue 2.7s ease-in-out infinite}.sf-lime{animation:logoLime 2.7s ease-in-out infinite}.sf-arrow{transform-origin:75px 52px;animation:logoArrow 1.7s ease-in-out infinite}@keyframes logoBlue{50%{filter:brightness(1.35);transform:translateY(-1px)}}@keyframes logoLime{50%{filter:brightness(1.25);transform:translateY(1px)}}@keyframes logoArrow{50%{transform:translate(4px,-4px) scale(1.05)}}.brand b{font-size:20px;display:block}.brand small{display:block;color:var(--lime);font-weight:800;letter-spacing:1.8px;font-size:10px}.nav button{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:rgba(255,255,255,.82);padding:13px 14px;margin:3px 0;border-radius:12px;font-weight:750;cursor:pointer}.nav button:hover,.nav button.active{color:#fff;background:linear-gradient(90deg,rgba(0,168,232,.24),rgba(154,221,34,.17));box-shadow:inset 3px 0 0 var(--lime)}.profile{margin-top:auto;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);border-radius:14px;padding:11px;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:9px}.avatar{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--lime));font-weight:900}.profile b,.profile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile b{font-size:12px}.profile small{font-size:10px;opacity:.7;margin-top:2px}.profile button{border:0;background:rgba(255,255,255,.12);color:#fff;width:31px;height:31px;border-radius:9px;cursor:pointer}main{padding:25px;max-width:1550px;width:100%;margin:auto}.top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.top h1{margin:0;font-size:28px}.top p{margin:5px 0 0;color:var(--muted)}.themes{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);padding:4px;border-radius:13px;box-shadow:var(--shadow)}.themes button{width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}.themes button.active{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.section{display:none}.section.active{display:block}.hero{background:linear-gradient(120deg,var(--nav2),var(--blue) 58%,var(--blue2));border-radius:24px;padding:25px;color:#fff;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;box-shadow:var(--shadow);margin-bottom:16px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-80px;top:-110px;background:rgba(154,221,34,.18)}.hero span,.hero small{opacity:.82}.hero strong{display:block;font-size:39px;margin:7px 0}.quick{display:flex;gap:9px;flex-wrap:wrap;position:relative;z-index:2}.quick button,.btn{border:0;border-radius:12px;padding:11px 14px;font-weight:850;cursor:pointer}.quick button{background:#fff;color:var(--nav2)}.quick button:hover{background:var(--lime)}.btn.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.btn.lime{background:linear-gradient(135deg,var(--lime2),var(--lime));color:#09203a}.btn.ghost{background:var(--panel);border:1px solid var(--line);color:var(--text)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.metric{position:relative;overflow:hidden}.metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--blue)}.metric:nth-child(2):before{background:var(--lime)}.metric:nth-child(3):before{background:var(--success)}.metric:nth-child(4):before{background:var(--danger)}.metric span{font-size:12px;color:var(--muted)}.metric b{display:block;font-size:24px;margin-top:8px}.layout{display:grid;grid-template-columns:1.45fr .85fr;gap:16px}.headrow{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.headrow h2{margin:0;font-size:19px}.chart{height:245px;display:flex;align-items:flex-end;gap:11px;padding-top:22px}.barcol{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.bar{width:100%;max-width:34px;min-height:4px;border-radius:8px 8px 2px 2px;background:linear-gradient(var(--blue2),var(--blue))}.barcol small{font-size:10px;color:var(--muted)}.donut{width:176px;height:176px;border-radius:50%;margin:15px auto;background:conic-gradient(var(--blue) 0 40%,var(--lime) 40% 68%,var(--danger) 68% 100%);position:relative}.donut:after{content:"";position:absolute;inset:34px;border-radius:50%;background:var(--panel)}.legend div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;color:var(--text)}.table th{font-size:10px;color:var(--muted);text-transform:uppercase;background:var(--panel2)}.status{display:inline-block;padding:6px 9px;border-radius:999px;font-weight:850;font-size:10px}.paid{background:rgba(50,184,107,.18);color:var(--success)}.late{background:rgba(232,75,86,.17);color:var(--danger)}.future{background:var(--panel2);color:var(--muted)}.partial{background:rgba(243,167,25,.2);color:var(--warning)}input,select{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text)}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.formgrid label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;place-items:center;padding:20px;z-index:50}.modal.open{display:grid}.modalbox{width:min(720px,100%);background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow)}.actions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}.movement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.movement-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--panel2)}.movement-card small{color:var(--muted)}.movement-card b{display:block;margin:7px 0}.type-income{border-left:4px solid var(--success)}.type-payment{border-left:4px solid var(--blue)}.type-abono{border-left:4px solid var(--lime)}.type-micro{border-left:4px solid var(--warning)}.auth{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at 20% 10%,rgba(0,168,232,.22),transparent 34%),radial-gradient(circle at 85% 90%,rgba(154,221,34,.15),transparent 33%),var(--bg);display:grid;place-items:center;padding:22px}.auth.hidden{display:none}.authbox{width:min(460px,100%);background:var(--panel);border:1px solid var(--line);border-radius:25px;padding:27px;box-shadow:var(--shadow)}.authbrand{display:flex;align-items:center;gap:12px;margin-bottom:20px}.authbox h1{margin:0}.authbox p{color:var(--muted)}.tabs{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:12px;background:var(--panel2);margin:18px 0}.tabs button{border:0;background:transparent;padding:10px;border-radius:9px;color:var(--muted);font-weight:800}.tabs button.active{background:var(--blue);color:#fff}.authbox label{display:grid;gap:6px;margin:11px 0;color:var(--muted);font-size:12px}.error{min-height:20px;color:var(--danger);font-size:12px}.mobile{display:none}
@media(max-width:960px){.app{grid-template-columns:1fr}.side{display:none}main{padding:16px 14px 82px}.kpis{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.formgrid,.movement-grid{grid-template-columns:1fr}.mobile{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--panel);border-top:1px solid var(--line);justify-content:space-around;padding:8px}.mobile button{border:0;background:transparent;color:var(--muted);font-size:11px}.top{align-items:flex-start}.hero strong{font-size:31px}}

/* Acceso profesional StockFlow */
.logo-shell{background:transparent!important;box-shadow:none!important;overflow:visible!important}.logo-shell img{object-fit:contain!important;filter:drop-shadow(0 8px 18px rgba(0,0,0,.28));animation:sfLogoFloat 3.2s ease-in-out infinite}@keyframes sfLogoFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.025)}}
.auth{padding:28px;background:radial-gradient(circle at 12% 15%,rgba(11,115,217,.22),transparent 34%),radial-gradient(circle at 88% 90%,rgba(154,221,34,.18),transparent 34%),linear-gradient(135deg,var(--nav),var(--bg) 58%,var(--panel2));overflow:auto}.auth-layout{width:min(1040px,100%);display:grid;grid-template-columns:1.08fr .92fr;background:var(--panel);border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:0 30px 90px rgba(2,15,30,.32)}.auth-visual{min-height:650px;padding:54px;display:flex;flex-direction:column;justify-content:center;gap:30px;color:#fff;background:linear-gradient(155deg,#06172a 0%,#073e6b 55%,#0b73d9 100%);position:relative;overflow:hidden}.auth-visual:before,.auth-visual:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.auth-visual:before{width:320px;height:320px;right:-110px;top:-110px;background:rgba(154,221,34,.14)}.auth-visual:after{width:230px;height:230px;left:-90px;bottom:-100px;background:rgba(0,168,232,.22)}.auth-logo-large{width:150px;height:140px;position:relative;z-index:1}.auth-logo-large img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 28px rgba(0,0,0,.38));animation:sfLogoFloat 3.2s ease-in-out infinite}.auth-kicker{display:inline-block;color:var(--lime);font-size:12px;font-weight:900;letter-spacing:2.2px;margin-bottom:12px}.auth-visual h2{font-size:38px;line-height:1.12;margin:0;max-width:520px}.auth-visual p{font-size:16px;line-height:1.65;color:rgba(255,255,255,.78);max-width:500px}.auth-features{display:grid;gap:12px;font-weight:750;color:rgba(255,255,255,.88)}.auth-features span:before{color:var(--lime)}.authbox{width:100%;border:0;border-radius:0;box-shadow:none;padding:54px 48px;display:flex;flex-direction:column;justify-content:center}.authbrand{margin-bottom:26px}.authbrand .auth-logo{width:64px;height:64px}.authbrand b{font-size:23px}.authbrand small{display:block;color:var(--blue);font-weight:900;letter-spacing:1.8px;font-size:10px}.authbox h1{font-size:31px;line-height:1.15}.authbox>p{margin:9px 0 0;line-height:1.55}.tabs{margin:24px 0 18px}.tabs button{cursor:pointer}.authbox label{font-weight:700;color:var(--text);font-size:12px}.authbox input{height:46px;background:var(--panel);border:1px solid var(--line);transition:.18s}.authbox input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,115,217,.13)}.password-wrap{position:relative}.password-wrap input{padding-right:48px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--muted);width:36px;height:36px;border-radius:9px;cursor:pointer}.password-toggle:hover{background:var(--panel2);color:var(--blue)}.auth-options{display:flex;align-items:center;justify-content:space-between;margin:4px 0 2px}.check{display:flex!important;grid-template-columns:18px 1fr!important;align-items:center;gap:8px!important;margin:0!important;color:var(--muted)!important;font-weight:600!important}.check input{width:16px;height:16px;accent-color:var(--blue)}.auth-submit{width:100%;height:48px;margin-top:4px;font-size:14px;box-shadow:0 10px 26px rgba(11,115,217,.23)}.auth-note{text-align:center!important;font-size:11px!important;margin:16px 0 0!important;color:var(--muted)!important}.auth-themes{width:max-content;margin:16px auto 0;box-shadow:none}.error{font-weight:700}.brand .logo-shell{width:58px;height:58px}
[data-theme=dark] .auth-layout,[data-theme=neon] .auth-layout{box-shadow:0 30px 90px rgba(0,0,0,.55)}[data-theme=dark] .authbox input,[data-theme=neon] .authbox input{background:var(--panel2)}
@media(max-width:820px){.auth{padding:14px}.auth-layout{grid-template-columns:1fr;max-width:500px}.auth-visual{display:none}.authbox{padding:34px 25px;min-height:auto}.authbox h1{font-size:27px}}
.movement-actions,.row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.btn.danger{color:#b42318;border-color:rgba(180,35,24,.28)}[data-theme=dark] .btn.danger,[data-theme=neon] .btn.danger{color:#ff8c82;border-color:rgba(255,140,130,.3)}
textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);resize:vertical;font:inherit}.obligation-box{width:min(880px,100%)}.obligation-form{grid-template-columns:repeat(3,minmax(0,1fr))}.full-field{grid-column:1/-1}.mobile-brand{display:none;align-items:center;gap:9px}.mobile-brand .logo-shell{width:44px;height:44px}.mobile-brand b{display:block;font-size:16px}.mobile-brand small{display:block;font-size:9px;color:var(--blue);font-weight:900;letter-spacing:1px}.logo-shell img,.auth-logo-large img{will-change:transform;animation:sfLogoFloat 2.8s ease-in-out infinite,sfLogoGlow 3.6s ease-in-out infinite}@keyframes sfLogoGlow{0%,100%{filter:drop-shadow(0 8px 18px rgba(0,0,0,.28)) drop-shadow(0 0 0 rgba(11,142,232,0))}50%{filter:drop-shadow(0 12px 22px rgba(0,0,0,.34)) drop-shadow(0 0 14px rgba(154,221,34,.42))}}
@media(max-width:960px){.mobile-brand{display:flex;width:100%;margin-bottom:10px}.top{display:flex;flex-direction:column;gap:8px}.top>.themes{position:absolute;right:14px;top:16px}.brand .logo-shell{width:50px;height:50px}.obligation-form{grid-template-columns:1fr 1fr}.obligation-box{max-height:88vh;overflow:auto}}
@media(max-width:600px){.obligation-form{grid-template-columns:1fr}.full-field{grid-column:auto}.modal{padding:10px}.modalbox{padding:17px;border-radius:17px}.actions{position:sticky;bottom:-17px;background:var(--panel);padding:12px 0 2px}.mobile-brand .logo-shell{width:48px;height:48px}}

/* Logo animado StockFlow: recorte limpio en escritorio y móvil */
.logo-shell,.auth-logo-large{overflow:hidden;isolation:isolate;background:#06172b}
.stockflow-logo-video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.08);border:0;background:#06172b;pointer-events:none}
.mobile-brand{display:none;align-items:center;gap:10px}
.mobile-brand .logo-shell{width:42px;height:42px;min-width:42px;border-radius:12px}
.obligation-box{width:min(900px,calc(100vw - 32px));max-height:90vh;overflow:auto}
.obligation-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.obligation-form .full-field{grid-column:1/-1}
.obligation-form textarea{width:100%;resize:vertical;min-height:84px}
@media(max-width:900px){
  .mobile-brand{display:flex}
  .top{align-items:flex-start;gap:12px;flex-wrap:wrap}
  .top>div:nth-child(2){order:2;width:100%}
  .obligation-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .auth-visual{display:none}
  .auth-layout{grid-template-columns:1fr;padding:16px}
  .authbox{width:100%;padding:22px 18px}
  .obligation-box{width:calc(100vw - 20px);padding:18px 14px;max-height:92vh}
  .obligation-form{grid-template-columns:1fr}
  .obligation-form .full-field{grid-column:auto}
  .formgrid label{min-width:0}
  .actions{flex-wrap:wrap}
  .actions .btn{flex:1 1 130px}
  .mobile-brand b{display:block}.mobile-brand small{display:block}
}

/* Optimización móvil 2026-08-06 */
@media(max-width:600px){
  html{scroll-behavior:smooth}
  body{overflow-x:hidden}
  main{padding:10px 10px 96px}
  .top{position:sticky;top:0;z-index:15;margin:0 -10px 12px;padding:10px 12px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
  .top h1{font-size:20px;line-height:1.15}.top p{font-size:12px;line-height:1.35}
  .mobile-brand{width:100%;align-items:center}.mobile-brand .logo-shell{width:46px;height:46px}.mobile-brand b{font-size:17px}.mobile-brand small{font-size:9px}
  .themes{margin-left:auto}.themes button{width:40px;height:40px;font-size:17px}
  .hero{padding:18px 15px;border-radius:18px;gap:14px}.hero strong{font-size:28px;overflow-wrap:anywhere}.hero small{font-size:11px;line-height:1.35}
  .quick{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.quick button{min-height:48px;padding:12px 8px;font-size:13px}.quick button:first-child{grid-column:1/-1}
  .kpis{grid-template-columns:1fr 1fr;gap:9px}.card{border-radius:15px;padding:14px}.metric{min-height:92px}.metric b{font-size:18px;overflow-wrap:anywhere}.metric span{font-size:11px}
  .headrow{align-items:stretch;flex-direction:column}.headrow>.btn,.headrow>button{width:100%;min-height:48px}
  .movement-grid{gap:10px}.movement-card{padding:14px}.movement-card .btn{min-height:42px}
  .tablewrap{overflow:visible}.table,.table thead,.table tbody,.table tr,.table th,.table td{display:block;width:100%}.table thead{display:none}.table tr{margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--panel2);box-shadow:0 6px 18px rgba(8,36,63,.06)}.table td{display:grid;grid-template-columns:minmax(105px,42%) 1fr;gap:10px;align-items:center;padding:8px 0;border:0;white-space:normal;overflow-wrap:anywhere}.table td:before{font-size:10px;font-weight:850;color:var(--muted);text-transform:uppercase}.table td:nth-child(1):before{content:'Obligación'}.table td:nth-child(2):before{content:'Cuota mensual'}.table td:nth-child(3):before{content:'Meses activos'}.table td:nth-child(4):before{content:'Total programado'}.table td:nth-child(5):before{content:'Estado'}.table td:nth-child(6):before{content:'Acciones'}.table td:last-child>div{display:grid!important;grid-template-columns:1fr 1fr;width:100%;gap:8px!important}.table td:last-child .btn{min-height:42px;padding:10px 8px}
  .modal{align-items:end;padding:0}.modalbox,.obligation-box{width:100%;max-width:none;max-height:92dvh;overflow:auto;border-radius:22px 22px 0 0;padding:18px 14px calc(18px + env(safe-area-inset-bottom))}.modalbox .headrow{position:sticky;top:-18px;z-index:2;background:var(--panel);padding:12px 0 10px;margin-bottom:10px}.modalbox .headrow>.btn{width:46px;min-height:46px;align-self:flex-end}.formgrid,.obligation-form{grid-template-columns:1fr!important;gap:13px}.formgrid label,.obligation-form label{font-size:13px}.formgrid input,.formgrid select,.obligation-form input,.obligation-form select,.obligation-form textarea{min-height:48px;font-size:16px;border-radius:12px}.obligation-form textarea{min-height:96px}.actions{position:sticky;bottom:-18px;background:var(--panel);padding:12px 0 2px;margin-top:16px;display:grid;grid-template-columns:1fr 1fr}.actions .btn{min-height:48px;width:100%}
  .mobile{padding:7px 6px calc(7px + env(safe-area-inset-bottom));gap:4px;box-shadow:0 -8px 24px rgba(8,36,63,.12)}.mobile button{flex:1;min-height:56px;border-radius:12px;font-size:10px;font-weight:800;display:grid;place-items:center;gap:2px;padding:6px 3px}.mobile button.active{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.mobile button:before{font-size:19px;line-height:1}.mobile button[data-page=dashboard]:before{content:'⌂'}.mobile button[data-page=movimientos]:before{content:'↕'}.mobile button[data-page=obligaciones]:before{content:'▣'}.mobile button[data-page=hormiga]:before{content:'☕'}
  .chart{height:190px;gap:5px;overflow-x:auto;padding-bottom:4px}.barcol{min-width:28px}.donut{width:145px;height:145px}
}
