:root{--deep:#133c32;--dark:#173d34;--green:#207c5d;--mint:#e6f4e9;--bg:#f6f8f6;--ink:#233931;--muted:#73837a;--line:#e2e9e3;--red:#b74751;--blue:#4776a8;--radius:22px;--shadow:0 10px 34px rgba(24,61,43,.045);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.54}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8fceb1;outline-offset:2px}h1,h2,h3,p{margin-top:0}p{line-height:1.55}h1{font-size:clamp(29px,3.3vw,40px);line-height:1.17;letter-spacing:-1.4px;margin-bottom:9px;font-weight:790}h2{font-size:18px;letter-spacing:-.45px;margin:0;font-weight:760}h3{font-size:15px;margin:0}em{font-style:normal;color:var(--green)}small,.micro{font-size:11px;color:var(--muted)}.muted{color:var(--muted)}strong,b{font-weight:760}a{color:var(--green)}.eyebrow{color:#4b916e;font-size:10px;font-weight:870;letter-spacing:1.5px}.brandmark{width:43px;height:43px;display:flex;align-items:center;justify-content:center;border-radius:14px;color:#fff;background:#1c7255;font-weight:900;font-size:25px;letter-spacing:-3px;box-shadow:0 8px 16px #14574622}.brandmark span{font-size:14px;align-self:flex-start;transform:translate(3px,7px);font-weight:900}.brandmark.large{height:65px;width:65px;border-radius:20px;font-size:33px;margin:0 auto 23px}.brandmark.large span{font-size:19px}.btn{border:none;border-radius:14px;padding:12px 17px;font-weight:770;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:transform .15s,background .15s}.btn:active{transform:scale(.985)}.btn.main{background:#176c52;color:white;box-shadow:0 7px 18px rgba(23,108,82,.17)}.btn.main:hover{background:#115840}.btn.outline{border:1px solid #cddfd1;color:#235941;background:white}.btn.outline:hover{background:#f1faf3}.btn.ghost{background:#ecf1ed;color:#436255}.btn.full{width:100%}.text-btn{background:none;border:0;color:#217453;font-weight:760;font-size:12px;padding:7px 0}.icon-btn{height:38px;width:38px;border:1px solid #e6eee8;border-radius:12px;background:white;display:grid;place-items:center;color:#648075;font-size:18px}.icon-btn svg{width:20px;height:20px;stroke-linejoin:round;stroke-linecap:round}.notice{padding:13px 14px;border-radius:14px;font-size:12px;line-height:1.55;margin:8px 0 15px}.notice.info{background:#edf6f0;border:1px solid #d1e8d8;color:#386851}.notice.warn{background:#fff4e6;border:1px solid #f4ddbc;color:#8a5823}.notice.error{background:#fff0f0;border:1px solid #f0ced0;color:#a33c47}.mb{margin-bottom:18px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 10% 15%,#d9efe1 0,transparent 40%),radial-gradient(circle at 90% 85%,#e9f3ec 0,transparent 40%),#f8faf7}.auth-card{background:#fff;border:1px solid #e5ece5;border-radius:30px;padding:35px;max-width:420px;width:100%;box-shadow:0 24px 75px rgba(11,51,34,.075);text-align:center}.auth-card h1{margin:10px 0}.auth-card .muted{font-size:14px}.auth-card form{text-align:left;margin-top:20px}.auth-card label,.form-fields label,.filter-row label,#password-form label{display:flex;flex-direction:column;gap:7px;color:#52685a;font-size:12px;font-weight:720}.auth-card label{margin-bottom:16px}.auth-card .btn{margin-top:8px}.auth-card .micro{margin-top:26px}.auth-card input,.form-fields input,.form-fields select,.form-fields textarea,.filter-row input,.filter-row select,#password-form input{width:100%;border:1px solid #dce7df;background:#fff;border-radius:12px;padding:12px 13px;font-size:13px;color:#1d3d2e;min-height:43px}.form-fields textarea{min-height:86px;resize:vertical}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.top-inner{max-width:1500px;margin:auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.brand-btn{display:flex;align-items:center;gap:12px;background:none;border:0;text-align:left;padding:0}.brand-lines b{display:block;font-size:19px;letter-spacing:-.5px;color:var(--dark)}.brand-lines b span{color:var(--green)}.brand-lines small{display:block;margin-top:2px}.head-actions{display:flex;align-items:center;gap:12px}.sync-chip{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;color:#56846a;background:#eff8f1;font-size:11px;font-weight:730}.sync-chip .dot{width:7px;height:7px;border-radius:50%;background:#40a36b}.sync-chip.unsaved{color:#a16b24;background:#fcf3e9}.sync-chip.unsaved .dot{background:#d9a348}.sync-chip.error{background:#fff0f0;color:#a84b58}.sync-chip.error .dot{background:#c8505e}.app-layout{display:flex;max-width:1500px;margin:0 auto;min-height:calc(100vh - 84px)}.sidebar{width:230px;flex:0 0 230px;padding:28px 17px;border-right:1px solid #e8efea;display:flex;flex-direction:column;background:#f9fbf9}.side-caption{color:#a5b4aa;letter-spacing:1.3px;font-size:10px;font-weight:850;padding:0 16px 16px}#menu{display:grid;gap:4px}.nav-link{background:transparent;border:0;border-radius:13px;display:flex;gap:15px;align-items:center;text-align:left;padding:13px 16px;font-size:16px;color:#7e9487}.nav-link span{color:#516c5d;font-size:13px;font-weight:700}.nav-link.selected{background:#e6f4e9;color:#177553}.nav-link.selected span{color:#176b4e;font-weight:830}.sidebar-bottom{margin-top:auto;background:#eaf3ec;border:1px solid #e1e9e2;padding:17px;border-radius:18px;color:#4e785c}.sidebar-bottom .little-leaf{font-size:23px;margin-bottom:10px}.sidebar-bottom b{display:block;font-size:12px}.sidebar-bottom p{font-size:11px;margin:7px 0 0;color:#6d8974}.content{flex:1;min-width:0;padding:38px clamp(22px,4vw,55px) 25px}.tab{animation:fade .2s ease}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 30px}.page-head p{font-size:13px;color:#809087;margin:0}.page-head .eyebrow{display:block;margin-bottom:9px}.card{background:#fff;border:1px solid #e6ece7;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.card-head .eyebrow{display:block;margin-bottom:7px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}.kpi{background:white;border-radius:19px;border:1px solid #e4ece6;padding:18px 20px;min-width:0;box-shadow:var(--shadow)}.kpi .k-icon{display:grid;place-items:center;height:35px;width:35px;border-radius:12px;background:#e9f5ec;color:#23835d;margin-bottom:14px;font-size:17px}.kpi .label{font-size:12px;color:#758b7b;font-weight:720}.kpi .value{font-weight:860;font-size:clamp(20px,2vw,28px);letter-spacing:-1px;margin:7px 0 6px;white-space:nowrap}.kpi .sub{font-size:11px;color:#9eafa3;line-height:1.35}.kpi.accent{background:linear-gradient(135deg,#165e49,#1a7d5a);color:white;border-color:#165e49}.kpi.accent .k-icon{color:#c8f5d9;background:#ffffff20}.kpi.accent .label,.kpi.accent .sub{color:#c4e1cf}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.tag{font-size:10px;color:#60836e;background:#edf5ef;border:1px solid #dcebe0;padding:6px 10px;border-radius:99px;font-weight:800;white-space:nowrap}.tag.forecast{background:#fff6e8;color:#a06e30;border-color:#f0e2c5}.acc-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #edf2ee}.acc-row:last-child{border-bottom:0}.acc-icon{width:36px;height:36px;border-radius:12px;background:#eaf3ec;color:#3d8260;display:grid;place-items:center;font-weight:850;font-size:11px;flex:none}.acc-body{flex:1;min-width:0}.acc-body strong{display:block;font-size:13px}.acc-body small{display:block;margin-top:3px}.acc-value{font-size:13px;font-weight:850;white-space:nowrap}.stack-bar{height:10px;background:#e4eee6;border-radius:20px;display:flex;overflow:hidden;margin:7px 0 15px}.stack-bar span{height:100%;display:block;min-width:0}.mini-legend{display:flex;flex-wrap:wrap;gap:9px;font-size:10px;color:#7a8b81;margin:5px 0 13px}.mini-legend span:before{content:"";height:8px;width:8px;border-radius:2px;background:var(--color);display:inline-block;margin-right:5px}.small-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:19px}.small-kpis>div{border:1px solid #e6eee8;background:#fff;border-radius:16px;padding:16px}.small-kpis span{font-size:11px;color:#769084;display:block;margin-bottom:7px}.small-kpis strong{font-size:22px;letter-spacing:-.6px}.positive{color:#17825d}.negative{color:#b74751}.chart-area{width:100%;min-height:215px;display:flex;align-items:center;justify-content:center}.chart-area.taller{min-height:310px}.chart-svg{width:100%;height:auto;max-height:310px;display:block;overflow:visible}.empty{color:#9baaa0;font-size:13px;padding:24px;text-align:center}.filter-row{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:20px}.filter-row label{min-width:135px;flex:1}.filter-row input,.filter-row select{min-height:39px;padding:9px 11px}.mov-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf0ed}.mov-row:last-child{border:0}.mov-icon{display:grid;place-items:center;height:40px;width:40px;border-radius:13px;background:#edf7ef;color:#239363;font-weight:800;flex:none}.mov-icon.expense{background:#fff0ee;color:#bd5a5f}.mov-icon.transfer{background:#eaf1f9;color:#4f77a1}.mov-body{min-width:0;flex:1}.mov-body strong{font-size:12.5px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mov-body small{font-size:10px;color:#8ca099;display:block;margin-top:4px}.mov-price{display:flex;flex-direction:column;align-items:flex-end;gap:3px;white-space:nowrap;font-weight:830;font-size:13px}.mov-price button{border:0;background:transparent;color:#7da08d;font-size:11px;text-decoration:underline;padding:2px}.inv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.inv-card{background:#fff;border:1px solid #e5ece5;border-radius:19px;padding:19px;box-shadow:var(--shadow);min-width:0}.inv-top{display:flex;gap:12px;align-items:center}.inv-icon{height:44px;width:44px;border-radius:14px;background:#e8f3ea;color:#237655;display:grid;place-items:center;font-weight:850}.inv-title{min-width:0;flex:1}.inv-title h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inv-title small{display:block;margin-top:3px}.inv-values{display:flex;justify-content:space-between;gap:8px;padding:17px 0 12px}.inv-values .main-val{font-size:23px;font-weight:880;letter-spacing:-.5px}.inv-values .price-detail{color:#9aab9f;font-size:11px;display:block;margin-top:3px}.inv-return{font-size:12px;font-weight:850;align-self:flex-start;margin-top:5px}.inv-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eff3ee;padding-top:13px;gap:8px}.inv-footer span{font-size:11px;color:#91a398}.inv-footer button{border:0;background:#f0f7f1;color:#2c7a52;padding:7px 11px;border-radius:10px;font-size:11px;font-weight:770}.snapshot-history{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.snap-item{border:1px solid #e4ece5;background:#fafcfb;border-radius:13px;padding:13px;text-align:left}.snap-item b{display:block;font-size:14px;margin:4px 0}.snap-item small{display:block}.snap-item .tag{padding:3px 7px;display:inline-block;margin-top:5px}.note{font-size:11px;line-height:1.55;color:#889d8e;background:#f7faf7;padding:11px 13px;border-radius:12px;margin-top:14px}.file-field{padding:15px;border:1px dashed #a7d0b3;display:flex;flex-direction:column;gap:12px;border-radius:14px;color:#357757;font-size:13px;font-weight:760;margin:13px 0}.file-field input{font-size:12px;max-width:100%}.card .btn.outline{margin:6px 8px 6px 0}.legal-note{padding:16px;border-top:1px solid #e6ebe6;color:#879a89;font-size:11px;line-height:1.6;margin-top:20px}.form-fields{display:grid;gap:13px;max-height:60vh;overflow:auto;padding:4px 2px}.form-fields label.fullcol{grid-column:1/-1}.dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#10281ccc;padding:16px}.dialog{max-width:480px;width:100%;background:white;border-radius:24px;padding:22px;box-shadow:0 22px 80px #0004}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-head h2{font-size:22px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:22px}.toast{position:fixed;z-index:150;bottom:24px;right:24px;background:#184d3c;color:white;padding:14px 19px;border-radius:13px;box-shadow:0 15px 40px #1238;font-size:12px;max-width:360px}.mobile-tabs{display:none}footer{text-align:center;font-size:11px;color:#acb8af;margin:35px auto 10px}footer span{color:#94ac99}svg text{font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif}@keyframes fade{from{opacity:.65;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.sidebar{width:195px;flex-basis:195px}.content{padding:30px 20px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{gap:13px}}
@media(max-width:800px){.sidebar{display:none}.content{padding:25px 16px 100px}.topbar{height:70px}.top-inner{padding:0 16px}.brandmark{height:39px;width:39px}.brand-lines b{font-size:17px}.sync-chip{font-size:10px}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:22px}.page-head .btn{width:100%}.page-head h1{font-size:31px}.two-col{grid-template-columns:1fr}.inv-grid{grid-template-columns:1fr 1fr}.mobile-tabs{display:grid;position:fixed;bottom:0;left:0;right:0;height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);z-index:40;background:white;border-top:1px solid #e0eae1;grid-template-columns:repeat(6,minmax(0,1fr));box-shadow:0 -5px 24px #1232}.mobile-tabs button{border:0;background:transparent;font-size:9px;font-weight:730;color:#8fa295;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;padding:6px 0;min-width:0}.mobile-tabs button span{font-size:19px;line-height:1}.mobile-tabs button.active{color:#1a7859}.toast{bottom:85px;left:15px;right:15px}.snapshot-history{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.content{padding:21px 12px 110px}.page-head h1{font-size:28px}.card{padding:17px;border-radius:18px}.kpi-grid{gap:9px}.kpi{padding:14px 13px;border-radius:17px}.kpi .k-icon{height:29px;width:29px;border-radius:10px;margin-bottom:10px}.kpi .value{font-size:21px;letter-spacing:-.6px}.kpi .label{font-size:10px}.kpi .sub{font-size:10px}.small-kpis{gap:7px}.small-kpis>div{padding:12px 9px}.small-kpis strong{font-size:16px}.inv-grid{grid-template-columns:1fr}.filter-row label{min-width:45%;flex:1}.brand-lines small{display:none}.sync-chip{padding:7px 9px}.snapshot-history{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-card{padding:25px 20px}}


/* Ritmo Finanzas 1.1: navegación, liquidez y cambio de mes */
.header-nav{position:relative}.header-menu-btn{display:flex;align-items:center;gap:7px;border:1px solid #d9e9df;background:#f3f8f4;color:#1d5a43;border-radius:12px;font-size:13px;font-weight:800;padding:10px 13px;min-height:38px}
.header-menu{position:absolute;right:0;top:calc(100% + 12px);width:min(260px,calc(100vw - 24px));padding:8px;background:#fff;border:1px solid #dce8df;border-radius:18px;box-shadow:0 18px 50px rgba(18,57,42,.20);z-index:55;display:grid;gap:3px}
.header-menu button{display:flex;gap:11px;align-items:center;width:100%;border:0;border-radius:11px;background:#fff;text-align:left;color:#375c49;padding:12px;font-size:14px;font-weight:730}
.header-menu button:hover,.header-menu button.active{background:#eaf6ed;color:#146348}
.kpi-toggle{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.kpi-toggle:hover,.kpi-toggle[aria-expanded="true"]{border-color:#76b996;box-shadow:0 8px 25px rgba(34,125,82,.10)}
.kpi-toggle .k-icon,.kpi-toggle .value{flex-shrink:0}.kpi-toggle .label,.kpi-toggle .sub{display:block}
.kpi-hint{margin-top:9px;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:850;color:#157955}
.kpi-hint span{display:inline-block;transition:transform .16s}.kpi-toggle[aria-expanded="true"] .kpi-hint span{transform:rotate(180deg)}
.liquidity-detail{margin:-3px 0 20px;border-color:#c9e6d2;background:linear-gradient(180deg,#fff,#f8fcf9)}
.liquidity-detail .card-head{margin-bottom:6px}.liq-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e7efe9}.liq-mark{height:34px;width:34px;border-radius:11px;background:#e5f3ea;color:#267650;display:grid;place-items:center;font-size:15px;font-weight:900;flex:none}.liq-mark.pending{background:#f5eee2;color:#a3783b}
.liq-name{flex:1;min-width:0}.liq-name strong{display:block;font-size:13px}.liq-name small{display:block;margin-top:4px;font-size:11px;line-height:1.4}.liq-money{font-weight:820;font-size:13px;white-space:nowrap;text-align:right}.liq-money.pending{color:#a3783b;font-size:11px}
.liq-total{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0 6px;font-size:13px;font-weight:750}.liq-total strong{font-size:19px;color:#126347}
.liquidity-note{margin:10px 0 0;color:#5f7b68;background:#ecf6ee;border-radius:12px;padding:12px;font-size:12px;line-height:1.5}
.activity-card{margin-bottom:20px}
.month-filter{display:flex;flex-direction:column;gap:7px;min-width:195px;flex:1;color:#52685a;font-size:12px;font-weight:720}
.month-stepper{display:flex;align-items:center;gap:5px}.month-stepper input{width:100%;min-width:0;flex:1;min-height:43px;border:1px solid #dce7df;border-radius:11px;padding:9px 8px;background:#fff;color:#1d3d2e;font-size:13px}
.month-arrow{width:38px;min-width:38px;height:43px;border-radius:11px;border:1px solid #d7e7dc;background:#eaf5ed;color:#1e7652;font-size:25px;line-height:1;display:grid;place-items:center;font-weight:750}
.month-arrow:hover,.month-arrow:focus-visible{background:#d8eddf}
@media(max-width:520px){.header-menu-btn{padding:9px 11px}.header-menu-btn span{display:none}.liq-row{gap:8px}.liq-mark{height:30px;width:30px}.liq-money{font-size:12px}.month-filter{min-width:100%;flex-basis:100%}}
