/* Ahorrito V10 – account carousel, renewed dashboard and tables */
html{scroll-behavior:smooth}html[data-theme=dark] .v9-shell{--v10-primary:#a8efd4;--v10-bg:#102324;--v10-border:#315250;--v10-panel:#1a3432}html:not([data-theme=dark]) .v9-shell{--v10-primary:#05685f;--v10-bg:#edf7f3;--v10-border:#d6e5de;--v10-panel:#fff}
.v9-shell{background:transparent}.v9-shell .v9-topbar{position:sticky;top:0;z-index:60;background:rgba(248,252,248,.96)!important;border:1px solid #dbe8df!important;border-radius:19px!important;padding:10px 18px!important;box-shadow:0 12px 35px rgba(12,68,58,.08)!important;backdrop-filter:blur(20px);margin:0 0 23px}.v9-main .home-heading-v4{background:linear-gradient(122deg,#0f4141,#087f71)!important;position:relative;overflow:hidden}.v9-main .home-heading-v4:after{content:'';position:absolute;width:270px;height:270px;border-radius:50%;border:1px solid rgba(255,255,255,.18);right:-55px;top:-128px;pointer-events:none}.v9-main .home-heading-v4 .add-movement{position:relative;z-index:1}.v9-main .v9-home-workspace{gap:17px}.v9-main .v9-wallet-section{position:relative;overflow:hidden}.v10-wallets-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 14px}.v10-wallets-heading p{font-size:13px;color:#68847b;margin:7px 0 0}.v10-wallet-view-tools,.v10-wallet-nav{display:flex;align-items:center;gap:8px}.v10-wallet-nav{justify-content:flex-end;margin:-6px 0 10px}.v10-wallet-view-tools button,.v10-wallet-nav button{height:40px;width:42px;display:grid;place-items:center;border-radius:12px;background:#e5f4ed;border:1px solid #d5e6db;font-size:21px;color:#1b6253;cursor:pointer}.v10-wallet-rail,.v9-wallet-cards.v10-wallet-rail{display:flex!important;grid-template-columns:none!important;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:2px;overscroll-behavior-inline:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding:4px 4px 15px;min-width:0}.v10-wallet-rail:focus-visible{outline:2px solid #0a9b78}.v10-wallet-rail-full{margin-bottom:25px}.v10-account-card{position:relative;flex:0 0 clamp(220px,29vw,310px);min-width:0;min-height:220px;background:#103f43;color:#f4fff8;scroll-snap-align:start;border:1px solid #ffffff3b;border-radius:22px;padding:21px 21px 16px;display:flex;flex-direction:column;gap:4px;overflow:hidden;text-align:left;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 13px 29px rgba(17,65,48,.08)}.v10-account-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(17,65,48,.16)}.v10-account-card:before{content:'';position:absolute;width:200px;height:200px;border:1px solid #ffffff2d;border-radius:50%;right:-68px;bottom:-108px;pointer-events:none}.v10-account-card.is-selected{outline:3px solid #22be96;outline-offset:-5px}.v10-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.v10-card-icon{width:40px;height:40px;background:#ffffff24;border-radius:12px;display:grid;place-items:center;font-size:22px}.v10-card-code{border-radius:9px;border:1px solid #ffffff4a;padding:6px 9px;font-size:11px;font-weight:900}.v10-card-name{font-weight:850;font-size:16px;color:inherit;overflow-wrap:anywhere}.v10-card-caption{font-size:11px;opacity:.75}.v10-card-amount{font-size:clamp(23px,2.3vw,31px);line-height:1.25;letter-spacing:-.055em;margin-top:auto;font-weight:900;overflow-wrap:anywhere;color:inherit}.v10-card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff36;padding-top:11px;margin-top:9px;color:inherit;opacity:.83;font-size:11px}.v10-card-footer span{font-size:19px}.v10-account-card.tone-mint{background:#d3f7e1;color:#154b41;border-color:#c1e3d0}.v10-account-card.tone-mint:before{border-color:#5a9d8940}.v10-account-card.tone-mint .v10-card-icon{background:#a8e6c8}.v10-account-card.tone-mint .v10-card-code{border-color:#63998a}.v10-account-card.tone-mint .v10-card-footer{border-color:#72aa9b}.v10-account-card.tone-sky{background:#d4edf7;color:#194957;border-color:#b7d7e6}.v10-account-card.tone-sky:before{border-color:#5a9d8940}.v10-account-card.tone-sky .v10-card-icon{background:#b6dce9}.v10-account-card.tone-sky .v10-card-code{border-color:#769eb1}.v10-account-card.tone-sky .v10-card-footer{border-color:#98bfca}.v10-account-card.tone-sand{background:#f8e8c5;color:#675139;border-color:#efdbad}.v10-account-card.tone-sand:before{border-color:#aa965440}.v10-account-card.tone-sand .v10-card-icon{background:#ecd2a0}.v10-account-card.tone-sand .v10-card-code{border-color:#b9a07b}.v10-account-card.tone-sand .v10-card-footer{border-color:#d7bd96}
.v10-wallet-table-bar{display:flex;align-items:center;justify-content:space-between;background:var(--v10-panel);border:1px solid var(--v10-border);border-radius:17px;padding:17px 20px;margin:12px 0}.v10-wallet-table-bar>div{display:grid;gap:3px}.v10-wallet-table-bar strong{color:var(--v10-primary);font-weight:850}.v10-wallet-table-bar span{color:#6f8a7e;font-size:12px}.v10-wallet-table-panel{margin:0 0 20px}.v10-wallet-table-panel.hidden{display:none!important}.v9-main #view-billeteras>.heading{margin-bottom:6px}.v9-main #view-billeteras>.heading h1{font-size:clamp(34px,4vw,52px)}
html[data-theme=dark] .v9-shell .v9-topbar{background:rgba(18,39,37,.98)!important;border-color:#31514a!important}html[data-theme=dark] .v10-wallets-heading p,html[data-theme=dark] .v10-wallet-table-bar span{color:#bbd9cb}html[data-theme=dark] .v10-wallet-view-tools button,html[data-theme=dark] .v10-wallet-nav button{background:#29473e;color:#cdf5de;border-color:#41695a}html[data-theme=dark] .v10-wallet-table-bar{background:var(--v10-panel);border-color:var(--v10-border)}html[data-theme=dark] .v10-wallet-table-bar strong{color:#c4f4d9}html[data-theme=dark] .v10-account-card.tone-mint,html[data-theme=dark] .v10-account-card.tone-sky,html[data-theme=dark] .v10-account-card.tone-sand{filter:brightness(.9)}
@media(max-width:850px){.v9-shell .v9-topbar{border-radius:0 0 16px 16px!important;margin:0 -10px 18px!important}.v10-account-card{flex-basis:clamp(225px,56vw,300px)}.v10-wallet-rail-full{margin-inline:-3px}.v10-wallet-view-tools button,.v10-wallet-nav button{width:36px;height:36px}}
@media(max-width:480px){.v10-account-card{flex-basis:77vw;min-height:210px}.v10-wallets-heading{align-items:flex-start}.v10-wallet-table-bar{padding:15px}.v10-wallet-table-bar .btn{min-width:100px}}
@media(prefers-reduced-motion:reduce){.v10-account-card{transition:none!important}}


/* V10.1 | Income / Expense category manager */
.v101-categories>.heading{margin-bottom:20px}.v101-categories .heading h1{font-size:clamp(30px,4vw,48px)}
.v101-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:16px}
.v101-category-panel{--category-accent:#0d9277;--category-tint:#daf8ee;display:flex;flex-direction:column;gap:16px;min-width:0;border:1px solid #dbe9df;border-radius:24px;padding:24px;background:var(--v10-panel,#fff);box-shadow:0 12px 30px rgba(14,73,62,.05)}
.v101-expense-panel{--category-accent:#b85849;--category-tint:#ffe8e2}
.v101-category-head{display:flex;align-items:flex-start;gap:13px}.v101-category-symbol{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;background:var(--category-tint);border-radius:16px;font-size:25px;font-weight:900;color:var(--category-accent)}
.v101-category-head h2{font-size:clamp(20px,2vw,25px);letter-spacing:-.04em;line-height:1.18;margin:4px 0 7px}.v101-category-head p{font-size:13px;line-height:1.5;margin:0;opacity:.75}
.v101-category-eyebrow{font-size:10px;letter-spacing:.13em;font-weight:900;color:var(--category-accent)}
.v101-category-counter{display:flex;align-items:baseline;gap:9px;padding:12px 0;border-bottom:1px solid #b3c9be55}.v101-category-counter strong{font-size:32px;font-weight:900;letter-spacing:-.05em;color:var(--category-accent)}.v101-category-counter span{font-size:13px;opacity:.75}
.v101-category-items{display:flex;flex-direction:column;gap:9px;max-height:460px;min-height:85px;overflow:auto;scrollbar-width:thin}.v101-category-item{display:flex;align-items:center;gap:12px;border:1px solid #b3c9be55;border-radius:15px;padding:12px 13px;min-width:0}.v101-category-dot{width:11px;height:11px;border-radius:50%;background:var(--cat-color,#28cba9);flex:0 0 auto}
.v101-category-info{display:flex;flex:1 1 auto;flex-direction:column;gap:3px;min-width:0}.v101-category-info strong{overflow-wrap:anywhere;font-size:14px;line-height:1.25}.v101-category-info>span:not(.v101-category-default){font-size:12px;color:#69867a;overflow-wrap:anywhere}.v101-category-default{font-size:10px;border-radius:100px;background:var(--category-tint);color:var(--category-accent);padding:4px 8px;width:max-content}
.v101-category-actions{display:flex;flex:0 0 auto;gap:5px}.v101-small-button{border:1px solid #cadfd6;background:transparent;color:inherit;border-radius:9px;padding:7px;font-size:11px;font-weight:800;cursor:pointer}.v101-small-danger{color:#ad6059}.v101-category-protected{font-size:11px;color:#6e8e80}.v101-category-empty{padding:24px 8px;margin:0;font-size:13px;opacity:.75}
.v101-category-add{display:flex;align-items:center;gap:10px;justify-content:center;padding:14px 12px;margin-top:auto;border-radius:13px;background:var(--category-tint);border:1px dashed var(--category-accent);color:var(--category-accent);font-weight:900;font-size:13px;cursor:pointer;text-align:center}.v101-category-add>span:first-child{font-size:20px}.v101-category-add:hover{filter:brightness(.97)}.v101-category-help{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.5;opacity:.86;padding:5px 2px 18px}.v101-category-help p{margin:0}.v101-category-details{border:1px solid #b3c9be55;background:var(--v10-panel,#fff);border-radius:17px;padding:16px;margin-top:0}.v101-category-details summary{cursor:pointer;font-weight:850}.v101-category-details .panel{margin:14px 0 0}
.v101-type-picker{padding:0;border:0;margin:0;min-width:0}.v101-type-picker legend{font-weight:800;margin-bottom:10px}.v101-type-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.v101-type-choice{position:relative;cursor:pointer;min-width:0}.v101-type-choice input{position:absolute;opacity:0;width:1px;height:1px}.v101-choice-inner{display:flex;flex-direction:column;gap:6px;padding:16px;border:2px solid #d5e7dc;border-radius:15px;background:#fff;transition:border-color .15s,background .15s;color:#173f34}.v101-choice-inner b{font-size:16px}.v101-choice-inner small{font-size:12px;opacity:.72}.v101-type-choice input:checked+.v101-choice-inner{border-color:#0a9c79;background:#e3f8ed}.v101-expense-choice input:checked+.v101-choice-inner{border-color:#ce7864;background:#fff0e8}.v101-type-choice input:focus-visible+.v101-choice-inner{outline:3px solid #5294db;outline-offset:3px}.v101-category-warning{padding:13px;background:#fff4df;border:1px solid #e8c792;border-radius:11px;font-size:13px;color:#805d28;line-height:1.5}
html[data-theme=dark] .v101-category-panel,html[data-theme=dark] .v101-category-details{background:#1b3430;border-color:#34534a;color:#ecfff4}
html[data-theme=dark] .v101-income-panel{--category-tint:#153f36;--category-accent:#85eac0}html[data-theme=dark] .v101-expense-panel{--category-tint:#49312f;--category-accent:#ffc1b4}
html[data-theme=dark] .v101-category-info>span:not(.v101-category-default),html[data-theme=dark] .v101-category-protected{color:#b8d4c6}
html[data-theme=dark] .v101-category-item,html[data-theme=dark] .v101-small-button,html[data-theme=dark] .v101-choice-inner{border-color:#406357}
html[data-theme=dark] .v101-choice-inner{background:#19352c;color:#eaf9f1}
html[data-theme=dark] .v101-type-choice input:checked+.v101-choice-inner{background:#204e3f;border-color:#85eac0}
html[data-theme=dark] .v101-expense-choice input:checked+.v101-choice-inner{background:#503b36;border-color:#ffc1b4}
html[data-theme=dark] .v101-category-warning{background:#443926;color:#f5dfac;border-color:#755935}
@media(max-width:850px){.v101-category-grid{grid-template-columns:1fr}.v101-category-panel{padding:19px;border-radius:20px}.v101-category-items{max-height:340px}}
@media(max-width:420px){.v101-category-actions{flex-direction:column}.v101-type-options{gap:7px}.v101-choice-inner{padding:12px}.v101-category-item{gap:8px;padding:10px}}


/* Ahorrito 12.0 — solid header and a peekable, scrollbar-free wallet carousel */
body[data-mode="app"] #appScreen .v9-shell .v9-topbar,
body[data-mode="web"] #appScreen .v9-shell .v9-topbar{
  background:#ffffff!important;
  background-color:#ffffff!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border:1px solid #d5e7df!important;
  box-shadow:0 8px 26px rgba(12,62,51,.09)!important;
}
html[data-theme="dark"] body[data-mode="app"] #appScreen .v9-shell .v9-topbar,
html[data-theme="dark"] body[data-mode="web"] #appScreen .v9-shell .v9-topbar{
  background:#142a26!important;
  background-color:#142a26!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-color:#36564b!important;
  box-shadow:0 8px 26px rgba(0,0,0,.24)!important;
}
/* The rail still scrolls on touchpad, swipe, mouse wheel with shift, and arrow buttons. */
#appScreen .v10-wallet-rail,
#appScreen .v9-wallet-cards.v10-wallet-rail{
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none!important;
  -ms-overflow-style:none;
  padding-bottom:6px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
#appScreen .v10-wallet-rail::-webkit-scrollbar,
#appScreen .v9-wallet-cards.v10-wallet-rail::-webkit-scrollbar{
  display:none!important;
  width:0!important;
  height:0!important;
}
@media(max-width:850px){
  #appScreen .v10-wallet-rail .v10-account-card{flex:0 0 79%!important;max-width:320px;scroll-snap-align:start}
  #appScreen .v10-wallet-rail{gap:12px!important;padding-right:12px!important}
}
@media(max-width:480px){
  #appScreen .v10-wallet-rail .v10-account-card{flex-basis:78%!important;max-width:none}
}

/* V10.1.2 - saludo alineado naturalmente a la izquierda en teléfonos/tablets */
@media (max-width:850px) {
 body[data-mode="app"] #view-inicio .home-heading,
 body[data-mode="web"] #view-inicio .home-heading,
 #appScreen #view-inicio .home-heading-v4 {
  text-align:left!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  flex-direction:column!important;
 }
 #appScreen #view-inicio .home-heading-v4 .home-greeting,
 #appScreen #view-inicio .home-heading-v4 .greeting-eyebrow-row,
 #appScreen #view-inicio .home-heading-v4 h1,
 #appScreen #view-inicio .home-heading-v4 p {
  text-align:left!important;
  margin-left:0!important;
  margin-right:0!important;
  align-self:flex-start!important;
  direction:ltr;
 }
 #appScreen #view-inicio .home-heading-v4 .greeting-eyebrow-row{justify-content:flex-start!important}
 #appScreen #view-inicio .home-heading-v4 .add-movement{align-self:stretch!important;text-align:center}
}


/* Ahorrito V10.1.3 - un encabezado de borde a borde, sin card, siempre fijo.
   Esta sección tiene la última prioridad de la capa visual en app y web. */
:root { --ah-fixed-header-height: calc(76px + env(safe-area-inset-top, 0px)); }
body[data-mode="app"] #appScreen .v9-shell .topbar.topbar-v5.v9-topbar,
body[data-mode="web"] #appScreen .v9-shell .topbar.topbar-v5.v9-topbar {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  width: 100% !important;
  max-width: none !important;
  height: var(--ah-fixed-header-height) !important;
  min-height: var(--ah-fixed-header-height) !important;
  box-sizing: border-box !important;
  padding: env(safe-area-inset-top, 0px) max(18px, calc((100vw - 1450px)/2)) 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #dbe9e2 !important;
  border-radius: 0 !important;
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  opacity: 1 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: 0 6px 24px rgba(13, 57, 45, .09) !important;
  z-index: 120 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
}
html[data-theme="dark"] body[data-mode="app"] #appScreen .v9-shell .topbar.topbar-v5.v9-topbar,
html[data-theme="dark"] body[data-mode="web"] #appScreen .v9-shell .topbar.topbar-v5.v9-topbar {
  background: #142a26 !important;
  background-color: #142a26 !important;
  background-image: none !important;
  border-bottom-color: #34564a !important;
  box-shadow: 0 7px 26px rgba(0, 0, 0, .28) !important;
}
body[data-mode="app"] #appScreen .shell.v9-shell,
body[data-mode="web"] #appScreen .shell.v9-shell {
  padding-top: calc(var(--ah-fixed-header-height) + 24px) !important;
}
#appScreen .topbar-v5 .header-tools-v5 {margin-left: auto !important; flex-wrap: nowrap !important; align-items: center !important;}
#appScreen .topbar-v5 .brand-v5 {margin:0 !important;}
#appScreen .topbar-v5 .brand-v5 .brand-mark {display:block !important;}
#appScreen .topbar-v5 .v5-icon-button {flex-shrink: 0 !important;}
/* Los enlaces hash y las secciones activas tampoco deben quedar ocultos bajo la barra. */
#appScreen .view {scroll-margin-top: calc(var(--ah-fixed-header-height) + 12px);}
@media(max-width:950px) {
  :root { --ah-fixed-header-height: calc(67px + env(safe-area-inset-top, 0px)); }
  body[data-mode="app"] #appScreen .v9-shell .topbar.topbar-v5.v9-topbar,
  body[data-mode="web"] #appScreen .v9-shell .topbar.topbar-v5.v9-topbar {
    padding: env(safe-area-inset-top, 0px) max(15px, env(safe-area-inset-right, 0px)) 0 max(15px, env(safe-area-inset-left, 0px)) !important;
    margin: 0 !important;
    border-radius: 0 !important;
    min-height: var(--ah-fixed-header-height) !important;
    height: var(--ah-fixed-header-height) !important;
  }
  #appScreen #view-inicio .v7-welcome.v8-welcome,
  #appScreen #view-inicio .v7-welcome.v8-welcome .v7-welcome-copy {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    text-align: left !important;
    width: 100%;
  }
  #appScreen #view-inicio .v7-welcome.v8-welcome :is(h1, p, .v7-welcome-tag, .sync-inline-badge) {
    text-align: left !important;
    align-self: flex-start !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  #appScreen #view-inicio .v7-welcome.v8-welcome .v7-welcome-tools {
    align-self: stretch !important;
    justify-content: flex-start !important;
  }
}
@media(max-width:380px) {
  #appScreen .topbar-v5 .v5-icon-button {width: 40px !important; height: 40px !important; flex-basis:40px !important;}
}

/* Keep all modal sheets and notices above the fixed toolbar. */
#modalRoot .modal-backdrop { z-index: 320 !important; }
