:root{--forest:#133f32;--forest-deep:#0b2a22;--cream:#fff8e8;--gold:#f3b84b;--terra:#cf6845;--ink:#17211d;--muted:#5d6b64;--white:#fff;--line:rgba(19,63,50,.16)}
*{box-sizing:border-box}html{min-height:100%}body{min-height:100vh;margin:0;color:var(--ink);background:var(--cream);font-family:"Segoe UI",Inter,Arial,sans-serif;font-size:16px;line-height:1.6;display:flex;flex-direction:column}a{color:inherit}
.site-header{width:min(1180px,calc(100% - 3rem));margin:0 auto;padding:1.25rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem}.brand{display:flex;align-items:center;gap:.8rem;color:var(--ink);font-weight:650;line-height:1.2;text-decoration:none}.brand strong{color:var(--terra)}.brand-mark{width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;color:var(--cream);background:var(--forest);font-size:.82rem;font-weight:800;letter-spacing:-.04em}.system-label{padding:.55rem .9rem;color:var(--forest);border:1px solid var(--line);border-radius:999px;font-size:.86rem;font-weight:700}
.welcome-shell{width:min(1180px,calc(100% - 3rem));margin:auto;padding:3rem 0 5rem;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,7vw,7rem);align-items:center}.eyebrow{margin:0 0 1rem;color:var(--terra);font-size:.8rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.eyebrow.dark{margin-bottom:.25rem}h1,h2{margin:0;color:var(--forest-deep);line-height:1.05;letter-spacing:-.045em}h1{max-width:720px;font-size:clamp(2.9rem,6vw,5.8rem)}h2{font-size:clamp(1.75rem,3vw,2.4rem)}.lead{max-width:600px;margin:1.5rem 0 2.2rem;color:var(--muted);font-size:clamp(1.05rem,1.7vw,1.25rem)}
.button{min-height:3.25rem;padding:.82rem 1.4rem;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;font:inherit;font-weight:750;text-decoration:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.button:hover,.button:focus-visible{transform:translateY(-2px);outline:none}.button.primary{color:var(--cream);background:var(--forest);box-shadow:0 12px 30px rgba(11,42,34,.18)}.button.primary:hover,.button.primary:focus-visible{background:var(--forest-deep)}.button.secondary{color:var(--forest);background:transparent;border:1px solid var(--line)}.actions{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.75rem}
.session-card{width:min(100%,430px);margin-top:2rem;padding:1rem 1.15rem;display:flex;align-items:center;gap:.9rem;background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:1rem}.session-icon{width:2.5rem;height:2.5rem;border-radius:50%;display:grid;place-items:center;color:var(--cream);background:var(--forest);font-weight:800}.session-card small,.session-card strong{display:block}.session-card small{color:var(--muted)}
.visual-panel{min-height:490px;position:relative;overflow:hidden;isolation:isolate;border-radius:22rem 22rem 2rem 2rem;background:linear-gradient(#eebf68 0 32%,#de8754 32% 47%,#244d3d 47%);box-shadow:0 28px 80px rgba(11,42,34,.18)}.sun{width:6.2rem;aspect-ratio:1;position:absolute;top:9%;right:14%;border-radius:50%;background:#fff6d4;box-shadow:0 0 50px rgba(255,246,212,.5)}.mountain{position:absolute;clip-path:polygon(0 100%,40% 19%,54% 43%,68% 26%,100% 100%)}.mountain-back{inset:23% -12% 34% -10%;background:#815945;opacity:.6}.mountain-front{inset:33% -22% 8% -20%;background:var(--forest-deep)}.path{width:27%;height:52%;position:absolute;left:39%;bottom:-8%;background:#dfb66c;clip-path:polygon(49% 0,58% 0,100% 100%,0 100%);transform:rotate(-7deg)}.panel-message{position:absolute;z-index:2;left:2rem;right:2rem;bottom:1.6rem;color:var(--cream)}.panel-message span,.panel-message strong{display:block}.panel-message span{color:var(--gold);font-size:.82rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.panel-message strong{max-width:370px;margin-top:.35rem;font-size:1.25rem;line-height:1.3}
.login-page{background:linear-gradient(115deg,var(--cream) 0 58%,var(--forest) 58%)}.login-shell{width:min(1050px,calc(100% - 3rem));margin:auto;padding:3rem 0 5rem;display:grid;grid-template-columns:1fr .88fr;gap:clamp(2.5rem,8vw,8rem);align-items:center}.login-intro p:last-child{max-width:480px;color:var(--muted);font-size:1.12rem}.login-card{padding:clamp(1.5rem,4vw,2.5rem);background:var(--white);border-radius:1.5rem;box-shadow:0 28px 80px rgba(4,24,18,.25)}.card-heading{margin-bottom:2rem;display:flex;align-items:center;gap:1rem}.lock-icon{width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;color:var(--gold);background:var(--forest);font-size:.6rem;box-shadow:inset 0 0 0 .45rem rgba(255,255,255,.08)}.field{margin-bottom:1.1rem}.field label{margin-bottom:.4rem;display:block;color:var(--forest-deep);font-size:.92rem;font-weight:750}.field input{width:100%;min-height:3.25rem;padding:.75rem .9rem;color:var(--ink);background:#fbfcfa;border:1px solid #c9d1cd;border-radius:.75rem;font:inherit;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.field input:focus{border-color:var(--forest);outline:none;box-shadow:0 0 0 4px rgba(19,63,50,.12)}.submit-button{width:100%;margin-top:.5rem}.back-link{margin-top:1.4rem;display:block;color:var(--muted);font-size:.92rem;font-weight:650;text-align:center;text-decoration:none}.back-link:hover{color:var(--forest);text-decoration:underline}
footer{width:100%;padding:1.7rem max(1.5rem,calc((100% - 1180px)/2));display:flex;justify-content:space-between;align-items:end;gap:2rem;color:rgba(255,248,232,.72);background:var(--forest-deep);font-size:.9rem}footer p{margin:0}footer strong{color:var(--cream)}footer a{color:var(--gold);font-weight:700;text-underline-offset:4px}
@media(max-width:820px){.welcome-shell,.login-shell{grid-template-columns:1fr}.visual-panel{min-height:390px;border-radius:13rem 13rem 1.5rem 1.5rem}.login-page{background:var(--cream)}.login-card{box-shadow:0 22px 60px rgba(11,42,34,.16)}}
@media(max-width:560px){.site-header,.welcome-shell,.login-shell{width:min(100% - 2rem,1180px)}.brand>span:last-child{font-size:.86rem}.system-label{display:none}h1{font-size:clamp(2.65rem,14vw,4.2rem)}.welcome-shell,.login-shell{padding-top:2.2rem;padding-bottom:3.5rem}.actions{flex-direction:column}.actions .button{width:100%}.visual-panel{min-height:320px}footer{flex-direction:column;align-items:flex-start;gap:1rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

/* Panel del estado de cuenta */
.account-page{background:#f6f4ec}.account-header{width:min(1280px,calc(100% - 3rem))}.logout-button{padding:.7rem 1rem;color:var(--forest);background:var(--white);border:1px solid var(--line);border-radius:999px;font-weight:750;text-decoration:none;transition:background .2s ease,color .2s ease}.logout-button:hover{color:var(--cream);background:var(--forest)}
.account-shell{width:min(1280px,calc(100% - 3rem));margin:0 auto;padding:3rem 0 5rem;flex:1}.account-welcome{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:end;gap:2rem}.account-welcome h1{font-size:clamp(2.25rem,5vw,4.5rem)}.account-subtitle{max-width:720px;margin:1rem 0 0;color:var(--muted);font-size:1.05rem}
.balance-card{margin:2rem 0 3rem;padding:clamp(1.4rem,4vw,2.25rem);display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative;color:var(--cream);background:var(--forest);border-radius:1.4rem;box-shadow:0 20px 50px rgba(11,42,34,.17)}.balance-card span{display:block;color:rgba(255,248,232,.72);font-size:.9rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.balance-card strong{display:block;margin-top:.2rem;font-size:clamp(2.1rem,6vw,4.2rem);line-height:1.05;letter-spacing:-.04em}.balance-card .balance-mark{width:5.5rem;height:5.5rem;display:grid;place-items:center;color:var(--forest);background:var(--gold);border-radius:50%;font-size:2rem;font-weight:800}
.movements-section h2{font-size:clamp(1.8rem,4vw,3rem)}.section-heading{margin-bottom:1.4rem;display:flex;justify-content:space-between;align-items:end;gap:1.5rem}.movement-legend{display:flex;gap:.65rem;flex-wrap:wrap}.movement-legend span{padding:.4rem .7rem;border-radius:999px;font-size:.82rem;font-weight:750}.legend-in{color:#17623e;background:#e1f4e9}.legend-out{color:#9b3f26;background:#f9e5df}
.movement-tools{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}.export-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.6rem}.export-button{min-height:2.65rem;padding:.58rem .95rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;font-size:.88rem;font-weight:750;text-decoration:none;transition:transform .2s ease,background .2s ease,color .2s ease}.export-button:hover,.export-button:focus-visible{transform:translateY(-2px);outline:none}.export-button.pdf{color:#fff;background:#a3452c;border-color:#a3452c}.export-button.csv{color:#fff;background:#17623e;border-color:#17623e}.export-button.pdf:hover{background:#84331f}.export-button.csv:hover{background:#0f4d30}
.filter-card{margin:0 0 1.35rem;padding:1rem;display:flex;align-items:end;gap:.85rem;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:1rem}.filter-field{display:flex;flex-direction:column;gap:.3rem}.filter-field label{color:var(--forest-deep);font-size:.8rem;font-weight:800;text-transform:uppercase}.filter-field input{min-height:2.75rem;padding:.55rem .7rem;color:var(--ink);background:#fbfcfa;border:1px solid #c9d1cd;border-radius:.65rem;font:inherit}.filter-field input:focus{border-color:var(--forest);outline:3px solid rgba(19,63,50,.12)}.filter-search{flex:1 1 260px}.filter-search input{width:100%}.filter-submit{min-height:2.75rem;padding:.6rem 1.1rem;color:var(--cream);background:var(--forest);border:0;border-radius:999px;font:inherit;font-weight:750;cursor:pointer}.filter-submit:hover{background:var(--forest-deep)}.filter-help{color:var(--muted);font-size:.82rem}.period-summary{margin:0 0 1.35rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.period-stat{padding:1rem;background:#fff;border:1px solid var(--line);border-radius:.9rem}.period-stat span,.period-stat strong{display:block}.period-stat span{color:var(--muted);font-size:.78rem;font-weight:750;text-transform:uppercase}.period-stat strong{margin-top:.15rem;color:var(--forest-deep);font-size:1.3rem}.period-stat.in strong{color:#17623e}.period-stat.out strong{color:#a3452c}.results-note{margin:.8rem 0 0;color:var(--muted);font-size:.85rem}
.table-card{overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:1.15rem;box-shadow:0 15px 45px rgba(11,42,34,.08)}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll table{width:100%!important;min-width:760px;border:0!important;border-collapse:collapse!important;background:var(--white);font-size:.94rem}.table-scroll th,.table-scroll td{padding:.9rem 1rem!important;border:0!important;border-bottom:1px solid #e5e9e6!important;vertical-align:top}.table-scroll th{position:sticky;top:0;z-index:1;color:var(--cream);background:var(--forest)!important;font-size:.8rem;letter-spacing:.035em;text-align:left;text-transform:uppercase}.table-scroll th a{color:var(--cream)!important;text-decoration:none}.table-scroll tr:nth-child(even) td{background:#f8faf8}.table-scroll tr:hover td{background:#fff8e8}.table-scroll td:first-child{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.table-scroll td:nth-child(2),.table-scroll td:nth-child(3){white-space:nowrap;text-align:right;font-weight:750;font-variant-numeric:tabular-nums}.table-scroll td:nth-child(2){color:#17623e}.table-scroll td:nth-child(3){color:#a3452c}.table-scroll td:last-child{min-width:360px;text-align:left}
.account-alert{max-width:760px;margin:3rem auto;padding:1.25rem 1.4rem;color:var(--forest-deep);background:var(--white);border-left:5px solid var(--gold);border-radius:.8rem;box-shadow:0 15px 40px rgba(11,42,34,.1)}.account-alert.error{border-left-color:var(--terra)}.account-alert a{color:var(--forest);font-weight:750;text-underline-offset:3px}
@media(max-width:680px){.account-header,.account-shell{width:min(100% - 2rem,1280px)}.account-shell{padding-top:2rem}.logout-button{padding:.65rem .8rem;font-size:.86rem}.account-welcome,.section-heading{align-items:flex-start;flex-direction:column}.movement-tools{width:100%;align-items:flex-start}.export-actions{width:100%;justify-content:flex-start}.export-button{flex:1}.filter-card{align-items:stretch}.filter-field{flex:1 1 140px}.filter-submit{width:100%}.period-summary{grid-template-columns:1fr}.balance-card{margin-bottom:2.2rem}.balance-card .balance-mark{width:3.5rem;height:3.5rem;font-size:1.25rem}.table-card{margin-left:-.25rem;margin-right:-.25rem}.table-scroll th,.table-scroll td{padding:.75rem .8rem!important}}
