:root{--navy:#071426;--blue:#b88a3b;--blue-soft:#fff8e8;--ink:#14213a;--muted:#657089;--line:#dce2eb;--bg:#f1f4f8;--shadow:0 10px 32px rgba(7,20,38,.08);--gold:#c8a35a;--gold-dark:#9a6f25;--gold-light:#f4e4bd}
body{background:radial-gradient(circle at 85% -10%,rgba(200,163,90,.13),transparent 26rem),var(--bg)}
.topbar{background:linear-gradient(118deg,#071426 0%,#102744 68%,#152f50 100%);border-bottom:1px solid rgba(244,228,189,.28);box-shadow:0 8px 24px rgba(7,20,38,.16)}
.brand{letter-spacing:-.01em}.brand span{color:#071426;background:linear-gradient(145deg,#f1d795,#b8893c);box-shadow:inset 0 1px rgba(255,255,255,.65),0 4px 14px rgba(200,163,90,.22)}
nav a{color:#c9d2df}nav a:hover,nav a.active{color:#fff7e3;border-color:var(--gold)}
.user form{margin:0}.user button{border:1px solid rgba(244,228,189,.34);border-radius:8px;background:rgba(255,255,255,.04);color:#f7e7c2;padding:6px 11px;cursor:pointer;font:inherit}
.eyebrow{color:var(--gold-dark)}.page-head h1{color:#0a1b32}
.card,.stat,.auth-card form{border-color:rgba(20,33,58,.11);box-shadow:var(--shadow)}.card{border-top:2px solid rgba(200,163,90,.48)}
.btn.primary{color:#101b2c;background:linear-gradient(135deg,#e2c47e,#b8893c);border-color:#ad7e31;box-shadow:0 5px 14px rgba(154,111,37,.18)}.btn.primary:hover{background:linear-gradient(135deg,#eed493,#c4984a)}.btn.secondary{color:#14213a;border-color:#c9b17e}.btn.secondary:hover,.btn.ghost:hover{background:var(--blue-soft);color:#79551c}
.chip.selected{color:#79551c;border-color:var(--gold);background:var(--blue-soft)}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,163,90,.22)}
.stat{position:relative;overflow:hidden}.stat::after{content:"";position:absolute;inset:auto 0 0;height:3px;background:#203a5e}.stat.income::after{background:var(--green)}.stat.expense::after{background:var(--red)}.stat.balance::after{background:linear-gradient(90deg,#9a6f25,#e2c47e)}.stat.balance .stat-icon{color:#5f4315;background:#fff4d7}
th{color:#59647a;background:#f8f9fb}tbody tr:hover{background:#fffbf2}.category-dot,.category-swatch{box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(7,20,38,.1)}
.pagination .page.current{color:#111c2c;background:linear-gradient(135deg,#e2c47e,#b8893c)}
.auth-card>div h1{color:#0a1b32}.auth-card>div::before{content:"";display:block;width:56px;height:4px;margin-bottom:22px;border-radius:99px;background:linear-gradient(90deg,#9a6f25,#e2c47e)}
@media(max-width:850px){.topbar{background:#071426}}

/* Movimiento sutil y accesible */
@keyframes page-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes card-enter{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes alert-enter{0%{opacity:0;transform:translateY(-8px)}100%{opacity:1;transform:translateY(0)}}

.container{animation:page-enter .42s cubic-bezier(.22,1,.36,1) both}
.stats .stat,.card,.auth-card form{animation:card-enter .5s cubic-bezier(.22,1,.36,1) both}
.stats .stat:nth-child(2){animation-delay:.06s}.stats .stat:nth-child(3){animation-delay:.12s}
.alert{animation:alert-enter .34s ease-out both}

.btn,.chip,.page,.user button,.link,.link-danger,.actions a{
  position:relative;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease;
}
.btn:hover,.chip:hover,.user button:hover{transform:translateY(-2px)}
.btn.primary:hover{box-shadow:0 9px 20px rgba(154,111,37,.26)}
.btn:active,.chip:active,.page:active,.user button:active{transform:translateY(0) scale(.97);transition-duration:.08s}
.page:hover{background:#fff4d7;color:#79551c}
.actions a:hover,.link:hover,.link-danger:hover{transform:translateY(-1px);text-decoration:underline;text-underline-offset:3px}

nav a{transition:color .2s ease,border-color .2s ease,background-color .2s ease}
nav a:hover{background:rgba(255,255,255,.035)}
.stat{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.stat:hover{transform:translateY(-3px);border-color:rgba(200,163,90,.42);box-shadow:0 15px 36px rgba(7,20,38,.12)}
tbody tr{transition:background-color .16s ease}
input,select,textarea{transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}

/* Tema integral azul marino */
:root{--ink:#f5f7fb;--muted:#aebbd0;--line:#29415f;--bg:#071426;--white:#10243e;--shadow:0 12px 34px rgba(0,0,0,.24)}
body{color:var(--ink);background:radial-gradient(circle at 82% -8%,rgba(200,163,90,.13),transparent 30rem),radial-gradient(circle at 0 45%,rgba(41,79,124,.22),transparent 35rem),#071426;background-attachment:fixed}
.topbar{background:rgba(4,14,28,.94);border-bottom-color:rgba(222,190,119,.28);backdrop-filter:blur(12px)}
.page-head h1,.section-head h2,.card h2,.auth-card>div h1{color:#f8f3e8}
.eyebrow{color:#dfbd72}.muted,footer{color:#aebbd0}
.card,.stat,.auth-card form{color:#eef3f9;background:linear-gradient(145deg,rgba(19,43,72,.98),rgba(12,32,55,.98));border-color:#29415f}.card{border-top-color:rgba(222,190,119,.58)}
.stat p{color:#aebbd0}.stat strong{color:#fff}.stat.balance strong{color:#f3d58f}
.btn.primary{color:#142033;background:linear-gradient(135deg,#f0d38d,#bd8d3d);border-color:#dfbd72}.btn.primary:hover{color:#0b1729;background:linear-gradient(135deg,#ffe2a0,#c99a4a)}
.btn.secondary{color:#f2d999;background:#122a48;border-color:#9c7a3e}.btn.secondary:hover{color:#fff0c9;background:#193658}.btn.ghost{color:#c9d3e2}.btn.ghost:hover{color:#f3d58f;background:rgba(222,190,119,.1)}
.chip{color:#d4ddeb;background:#10243e;border-color:#35506f}.chip:hover{color:#f4d895;border-color:#9c7a3e;background:#162e4d}.chip.selected{color:#17243a;background:linear-gradient(135deg,#efd38e,#c49546);border-color:#dfbd72}
label{color:#cbd5e4}input,select,textarea{color:#f5f7fb;background:#091b30;border-color:#38516f;color-scheme:dark}input::placeholder,textarea::placeholder{color:#7789a3}input:focus,select:focus,textarea:focus{background:#0c213a;border-color:#dfbd72;box-shadow:0 0 0 3px rgba(222,190,119,.18)}
.type-switch label{background:#0a1d33;border-color:#38516f}.type-switch label:has(input:checked){color:#f2d999;border-color:#c5984b;background:rgba(197,152,75,.1)}
th{color:#b9c6d8;background:#091a2e;border-bottom-color:#35506f}td{border-bottom-color:#29415f}tbody tr:hover{background:rgba(222,190,119,.055)}
.notes,.category-list small{color:#aebbd0}.category-list article{border-bottom-color:#29415f}.category-dot,.category-swatch{box-shadow:0 0 0 2px #10243e,0 0 0 3px rgba(255,255,255,.16)}
.pagination .page{color:#cbd5e4}.pagination .page:hover{color:#f3d58f;background:#183454}.pagination .page.current{color:#142033;background:linear-gradient(135deg,#efd38e,#bd8d3d)}
.alert.success{color:#b8f3d3;background:#0c392f;border:1px solid #246550}.alert.error{color:#ffc2c8;background:#44202c;border:1px solid #733342}.field-error{color:#ff9da7}
.badge.income{color:#7ee2ac;background:#123b31}.badge.expense{color:#ff9ca5;background:#49222d}
.stat.income .stat-icon{color:#67d99b;background:#10392f}.stat.expense .stat-icon{color:#ff8995;background:#46202a}.stat.balance .stat-icon{color:#f3d58f;background:#3a3020}
.income-text{color:#70dfa4}.expense-text{color:#ff8d98}.link,.actions a{color:#e3c77f}.link-danger{color:#ff8d98}
.auth-card>div::before{background:linear-gradient(90deg,#b48131,#f0d38d)}
footer{border-top:1px solid rgba(222,190,119,.12)}

/* Acento turquesa sobre azul marino */
:root{--blue:#22c7d6;--blue-soft:#0d3345;--accent:#39d5e3;--accent-strong:#13aabc;--accent-soft:rgba(57,213,227,.13)}
body{background:radial-gradient(circle at 82% -8%,rgba(34,199,214,.14),transparent 30rem),radial-gradient(circle at 0 45%,rgba(41,79,124,.25),transparent 35rem),#071426}
.topbar{border-bottom-color:rgba(57,213,227,.25)}
.brand span{color:#061522;background:linear-gradient(145deg,#72edf3,#1db7ca);box-shadow:inset 0 1px rgba(255,255,255,.55),0 4px 14px rgba(34,199,214,.22)}
nav a:hover,nav a.active{color:#e7fdff;border-color:var(--accent)}
.user button{color:#bdf7fb;border-color:rgba(57,213,227,.32)}
.eyebrow{color:#55dbe6}.card{border-top-color:rgba(57,213,227,.48)}
.btn.primary{color:#061923;background:linear-gradient(135deg,#63e5ec,#1eb9cb);border-color:#46d9e5;box-shadow:0 5px 14px rgba(21,176,193,.2)}.btn.primary:hover{color:#04151f;background:linear-gradient(135deg,#89f1f5,#32cada);box-shadow:0 9px 20px rgba(21,176,193,.28)}
.btn.secondary{color:#aef4f8;background:#122a48;border-color:#288c9b}.btn.secondary:hover{color:#e3fdff;background:#153a55}.btn.ghost:hover{color:#8cebf0;background:rgba(57,213,227,.09)}
.chip:hover{color:#9ceef3;border-color:#2ab4c3;background:#12334b}.chip.selected{color:#061923;background:linear-gradient(135deg,#66e7ee,#20bbcc);border-color:#46d9e5}
input:focus,select:focus,textarea:focus{border-color:#39d5e3;box-shadow:0 0 0 3px rgba(57,213,227,.16)}
.type-switch label:has(input:checked){color:#a8f2f6;border-color:#2ab9c8;background:rgba(57,213,227,.09)}
.stat.balance strong{color:#69e4eb}.stat.balance::after{background:linear-gradient(90deg,#119eb1,#5ae5ec)}.stat.balance .stat-icon{color:#62e5ec;background:#123a48}
.stat:hover{border-color:rgba(57,213,227,.35)}tbody tr:hover{background:rgba(57,213,227,.045)}
.pagination .page:hover{color:#8deaf0;background:#153a55}.pagination .page.current{color:#061923;background:linear-gradient(135deg,#66e7ee,#20bbcc)}
.link,.actions a{color:#63dfe7}.auth-card>div::before{background:linear-gradient(90deg,#149daf,#65e8ee)}
footer{border-top-color:rgba(57,213,227,.1)}

/* Restauración de la paleta original */
:root{--navy:#0f1d35;--blue:#2563eb;--blue-soft:#eff6ff;--green:#168653;--green-soft:#ecfdf5;--red:#dc3945;--red-soft:#fff1f2;--ink:#172033;--muted:#667085;--line:#e4e8ef;--bg:#f5f7fb;--white:#fff;--shadow:0 8px 30px rgba(15,29,53,.06)}
body{color:var(--ink);background:var(--bg)}
.topbar{background:var(--navy);border-bottom:0;box-shadow:none;backdrop-filter:none}
.brand span{color:#fff;background:var(--blue);box-shadow:none}
nav a{color:#b9c3d4}nav a:hover,nav a.active{color:#fff;border-color:#60a5fa;background:transparent}
.user button{color:#fff;border:0;background:transparent;padding:0}
.eyebrow{color:var(--blue)}.page-head h1,.section-head h2,.card h2,.auth-card>div h1{color:var(--ink)}.muted,footer{color:var(--muted)}
.card,.stat,.auth-card form{color:var(--ink);background:var(--white);border-color:var(--line);box-shadow:var(--shadow)}.card{border-top:1px solid var(--line)}
.btn.primary{color:#fff;background:var(--blue);border-color:transparent;box-shadow:none}.btn.primary:hover{color:#fff;background:#1d4ed8;box-shadow:0 7px 18px rgba(37,99,235,.22)}
.btn.secondary{color:var(--ink);background:#fff;border-color:var(--line)}.btn.secondary:hover{color:var(--ink);background:#f8fafc}.btn.ghost{color:var(--muted)}.btn.ghost:hover{color:var(--blue);background:var(--blue-soft)}
.chip{color:var(--ink);background:#fff;border-color:var(--line)}.chip:hover{color:var(--blue);background:#f8fafc;border-color:#93b4f6}.chip.selected{color:var(--blue);background:var(--blue-soft);border-color:var(--blue)}
label{color:#344054}input,select,textarea{color:var(--ink);background:#fff;border-color:#ccd3de;color-scheme:light}input::placeholder,textarea::placeholder{color:#98a2b3}input:focus,select:focus,textarea:focus{background:#fff;border-color:#6ba1ff;box-shadow:0 0 0 3px #dbeafe}
.type-switch label{color:#344054;background:#fff;border-color:var(--line)}.type-switch label:has(input:checked){color:var(--blue);border-color:#93b4f6;background:var(--blue-soft)}
.stat p{color:var(--muted)}.stat strong,.stat.balance strong{color:var(--ink)}.stat{border-color:var(--line)}.stat:hover{border-color:#cdd5df}.stat.balance::after{background:var(--blue)}
.stat.income .stat-icon{color:var(--green);background:var(--green-soft)}.stat.expense .stat-icon{color:var(--red);background:var(--red-soft)}.stat.balance .stat-icon{color:var(--blue);background:var(--blue-soft)}
th{color:var(--muted);background:transparent;border-bottom-color:var(--line)}td{border-bottom-color:#eef1f5}tbody tr:hover{background:#fafbfc}.notes,.category-list small{color:var(--muted)}.category-list article{border-bottom-color:var(--line)}.category-dot,.category-swatch{box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(7,20,38,.1)}
.pagination .page{color:var(--ink)}.pagination .page:hover{color:var(--blue);background:var(--blue-soft)}.pagination .page.current{color:#fff;background:var(--blue)}
.alert.success{color:#11623f;background:var(--green-soft);border:0}.alert.error{color:#a41928;background:var(--red-soft);border:0}.field-error{color:var(--red)}
.badge.income{color:var(--green);background:var(--green-soft)}.badge.expense{color:var(--red);background:var(--red-soft)}.income-text{color:var(--green)}.expense-text{color:var(--red)}.link,.actions a{color:var(--blue)}.link-danger{color:var(--red)}
.auth-card>div::before{display:none}footer{border-top:0}

/* Calendario personalizado */
.date-picker{position:relative;width:100%}.date-picker input{padding-right:44px}.date-picker input::-webkit-calendar-picker-indicator{opacity:0;width:0;padding:0;margin:0}
.date-picker-trigger{position:absolute;right:5px;top:5px;width:34px;height:34px;border:0;border-radius:7px;color:var(--blue);background:var(--blue-soft);font-size:20px;line-height:1;cursor:pointer;transition:transform .16s ease,background-color .16s ease}.date-picker-trigger:hover{transform:translateY(-1px);background:#dbeafe}.date-picker-trigger:active{transform:scale(.94)}.date-picker input:disabled+.date-picker-trigger{opacity:.45;cursor:not-allowed}
.date-picker-panel{position:absolute;z-index:50;top:calc(100% + 8px);left:0;width:310px;padding:14px;border:1px solid #d9e1ec;border-radius:14px;background:#fff;box-shadow:0 20px 50px rgba(15,29,53,.2);animation:calendar-open .18s ease-out both}.date-picker-panel[hidden]{display:none}
@keyframes calendar-open{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.calendar-head{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;margin-bottom:10px}.calendar-head strong{text-align:center;color:#14213a;font-size:15px;text-transform:capitalize}.calendar-head button,.calendar-today{border:0;border-radius:8px;color:var(--blue);background:var(--blue-soft);cursor:pointer;font-weight:700}.calendar-head button{width:34px;height:34px;font-size:24px}.calendar-head button:hover,.calendar-today:hover{background:#dbeafe}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-week span{text-align:center;color:#7a8598;font-size:10px;font-weight:750;text-transform:uppercase;padding:5px 0}.calendar-days button{display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:8px;color:#293449;background:transparent;cursor:pointer;font-size:12px}.calendar-days button:hover{color:var(--blue);background:var(--blue-soft)}.calendar-days button.outside{color:#b8c0cd}.calendar-days button.today{box-shadow:inset 0 0 0 1px #93b4f6;color:var(--blue);font-weight:750}.calendar-days button.selected{color:#fff;background:var(--blue);box-shadow:0 4px 10px rgba(37,99,235,.26);font-weight:750}
.calendar-today{width:100%;margin-top:9px;padding:8px;font-size:12px}
@media(max-width:420px){.date-picker-panel{position:fixed;top:50%;left:50%;width:min(310px,calc(100vw - 28px));transform:translate(-50%,-50%);animation:none;box-shadow:0 24px 70px rgba(15,29,53,.35)}}

/* Gráfica financiera */
.chart-card{margin-bottom:22px}.chart-legend{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:12px}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{display:block;width:10px;height:10px;border-radius:3px}.chart-legend i.income{background:var(--green)}.chart-legend i.expense{background:var(--red)}
.chart-scroll{overflow-x:auto;padding:12px 4px 2px}.bar-chart{position:relative;display:flex;align-items:stretch;gap:10px;min-width:max(620px,100%);height:260px;padding:12px 10px 0 48px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),#edf0f4 25%)}
.chart-grid{position:absolute;inset:6px auto 25px 0;width:40px;display:flex;flex-direction:column;justify-content:space-between;color:#98a2b3;font-size:9px;text-align:right}.chart-group{flex:1;min-width:34px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}.bars{display:flex;align-items:flex-end;justify-content:center;gap:4px;width:100%;height:210px}.bar{position:relative;width:min(18px,38%);height:max(2px,var(--height));border-radius:5px 5px 2px 2px;transform-origin:bottom;animation:bar-grow .58s cubic-bezier(.22,1,.36,1) both;transition:filter .16s ease,transform .16s ease}.bar.income{background:linear-gradient(to top,#117744,#2bb673)}.bar.expense{background:linear-gradient(to top,#bb2635,#ef5865)}.bar:hover{filter:brightness(1.08);transform:scaleX(1.08)}.bar b{position:absolute;left:50%;bottom:calc(100% + 6px);z-index:2;display:none;transform:translateX(-50%);padding:5px 7px;border-radius:6px;color:#fff;background:#172033;box-shadow:0 4px 12px rgba(15,29,53,.18);font-size:10px;white-space:nowrap}.bar:hover b{display:block}.chart-group small{height:25px;padding-top:6px;color:var(--muted);font-size:10px;white-space:nowrap}.chart-empty{display:grid;place-items:center;min-height:180px;color:var(--muted);border:1px dashed var(--line);border-radius:10px;background:#fafbfc}
@keyframes bar-grow{from{transform:scaleY(0);opacity:.35}to{transform:scaleY(1);opacity:1}}
@media(max-width:620px){.chart-card .section-head{align-items:flex-start;flex-direction:column}.bar-chart{height:230px}.bars{height:180px}}

/* Emblema financiero animado */
.brand .brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:0;background:transparent;box-shadow:none;animation:brand-float 3.2s ease-in-out infinite;transform-origin:center}
.brand .brand-mark img{display:block;width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(0,0,0,.24))}
.brand:hover .brand-mark{animation-duration:1.25s}
@keyframes brand-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.brand .brand-mark{animation:none}}

/* Estado visual del tipo de movimiento */
.type-switch label{min-width:126px;justify-content:center;font-weight:700;cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.type-switch label:hover{transform:translateY(-1px)}
.type-switch label:has(input[value="income"]:checked){color:#11623f;background:#fff;border-color:#41a879;box-shadow:0 0 0 3px rgba(22,134,83,.1)}
.type-switch label:has(input[value="expense"]:checked){color:#a41928;background:#fff;border-color:#e36c77;box-shadow:0 0 0 3px rgba(220,57,69,.1)}
.type-switch input[value="income"]{accent-color:var(--green)}
.type-switch input[value="expense"]{accent-color:var(--red)}

/* Icono animado para cerrar sesión */
.user .logout-button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:10px;color:#fff;background:rgba(255,255,255,.06);overflow:hidden;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,transform .18s ease}
.user .logout-button span{display:block;background:transparent;box-shadow:none;font-size:24px;line-height:1;animation:logout-move 2.4s ease-in-out infinite}
.user .logout-button:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.52);background:rgba(255,255,255,.13)}.user .logout-button:hover span{animation-duration:.85s}
@keyframes logout-move{0%,100%{transform:translateX(-2px);opacity:.82}50%{transform:translateX(3px);opacity:1}}
@media(prefers-reduced-motion:reduce){.user .logout-button span{animation:none}}

.user .logout-button img{display:block;width:24px;height:24px;object-fit:contain;animation:logout-move 2.4s ease-in-out infinite}.user .logout-button:hover img{animation-duration:.85s}
.transaction-stats{margin:0 0 18px}.transaction-stats .stat{padding:17px}.transaction-stats .stat strong{font-size:20px}

/* Mantiene el calendario de Movimientos por encima de las tarjetas de resumen. */
.filter-grid{position:relative;z-index:100;overflow:visible}
.filter-grid .date-picker,.filter-grid .date-picker-panel{z-index:200}
.transaction-stats{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.user .logout-button img{animation:none}}

/* Salir: imagen limpia, sin apariencia de botón */
.user .logout-button{
  width:44px;
  height:44px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.user .logout-button:hover{
  border-color:transparent;
  background:transparent;
  transform:translateY(-2px);
}
.user .logout-button img{
  width:36px;
  height:36px;
  filter:drop-shadow(0 3px 5px rgba(0,0,0,.25));
}

/* Pictogramas automáticos de categorías */
.category-icon{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:7px;border:1px solid #dce4ee;border-radius:9px;background:#f6f8fb;font-size:17px;line-height:1;vertical-align:middle;box-shadow:0 2px 6px rgba(15,29,53,.06)}

/* Evita el cuadro azul al seleccionar botones y listas */
button:focus,
button:focus-visible,
.btn:focus,
.btn:focus-visible,
.chip:focus,
.chip:focus-visible,
select:focus,
select:focus-visible{
  outline:none;
  box-shadow:none !important;
}
select:focus,
select:focus-visible{
  border-color:#aab3c0;
}

/* Radio de Ingreso/Gasto sin fondo ni contorno rectangular */
.type-switch input[type="radio"],
.type-switch input[type="radio"]:focus,
.type-switch input[type="radio"]:focus-visible{
  width:18px;
  height:18px;
  margin:0;
  padding:0;
  border:0;
  outline:none !important;
  background:transparent;
  box-shadow:none !important;
}
.type-switch input[type="radio"][value="income"]{accent-color:#168653}
.type-switch input[type="radio"][value="expense"]{accent-color:#dc3945}

/* Icono de salir fijo */
.user .logout-button img,
.user .logout-button span,
.user .logout-button:hover img,
.user .logout-button:hover span{
  animation:none !important;
}
.category-icon.large{flex:0 0 auto;width:40px;height:40px;margin-right:11px;border-radius:11px;font-size:23px}.category-preview{display:flex;align-items:center;padding:11px;border:1px dashed #ccd6e2;border-radius:10px;background:#f8fafc}.category-preview small{color:var(--muted);line-height:1.35}

.period-summary strong{color:#1d4ed8;font-weight:800;letter-spacing:.01em}

/* Pagos recibidos */
.payment-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px;align-items:start}.payment-form{display:flex;flex-direction:column;gap:14px}.payment-form textarea{resize:vertical}.payment-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-period{display:flex;gap:8px;align-items:center}.payment-period select{min-width:120px}@media(max-width:850px){.payment-layout{grid-template-columns:1fr}.payment-stats{grid-template-columns:1fr}}
