html{zoom:1.275}
@media(max-width:1100px){html{zoom:1}}

/* ── THEMES ─────────────────────────────────────────────────────────────── */
:root,[data-theme=cyber]{
  --bg:#050a12;--text:#e0f0ff;--muted:#4a7a99;
  --accent:#00d4ff;--ar:0,212,255;
  --card-bg:rgba(5,20,35,0.8);--overlay-bg:rgba(5,20,35,0.98);
  --income:#00ff9f;--ar-income:0,255,159;
  --expense:#ff4d6d;--ar-expense:255,77,109;
  --portfolio:#bf7fff;--ar-portfolio:191,127,255;
  --select-bg:#0a1520;--select-arrow:%234a7a99;
}
[data-theme=light]{
  --bg:#edf1f7;--text:#0d1f2d;--muted:#5577aa;
  --accent:#0077aa;--ar:0,119,170;
  --card-bg:rgba(255,255,255,0.93);--overlay-bg:rgba(248,252,255,0.99);
  --income:#0a7840;--ar-income:10,120,64;
  --expense:#cc2244;--ar-expense:204,34,68;
  --portfolio:#7744bb;--ar-portfolio:119,68,187;
  --income-bg:rgba(10,120,64,0.12);--income-border:rgba(10,120,64,0.35);
  --select-bg:#e4eaf2;--select-arrow:%235577aa;
}
[data-theme=pink]{
  --bg:#0e0812;--text:#ffe8f8;--muted:#994477;
  --accent:#ff5db1;--ar:255,93,177;
  --card-bg:rgba(28,6,38,0.88);--overlay-bg:rgba(18,3,26,0.98);
  --income:#ff9ef0;--ar-income:255,158,240;
  --expense:#ff5577;--ar-expense:255,85,119;
  --portfolio:#dd88ff;--ar-portfolio:221,136,255;
  --select-bg:#180e22;--select-arrow:%23994477;
}
[data-theme=green]{
  --bg:#020d04;--text:#d0ffd8;--muted:#2a7035;
  --accent:#00e844;--ar:0,232,68;
  --card-bg:rgba(3,22,7,0.88);--overlay-bg:rgba(1,12,4,0.98);
  --income:#00ff9f;--ar-income:0,255,159;
  --expense:#ff4d6d;--ar-expense:255,77,109;
  --portfolio:#aaff55;--ar-portfolio:170,255,85;
  --select-bg:#071209;--select-arrow:%232a7035;
}
[data-theme=negative]{
  --bg:#000000;--text:#f0f0f0;--muted:#777777;
  --accent:#eeeeee;--ar:238,238,238;
  --card-bg:rgba(18,18,18,0.92);--overlay-bg:rgba(10,10,10,0.98);
  --income:#cccccc;--ar-income:204,204,204;
  --expense:#999999;--ar-expense:153,153,153;
  --portfolio:#bbbbbb;--ar-portfolio:187,187,187;
  --select-bg:#161616;--select-arrow:%23777777;
}
[data-theme=pro]{
  --bg:#080f1a;--text:#e0e0e8;--muted:#8888a0;
  --accent:#c9a84c;--ar:201,168,76;
  --card-bg:rgba(8,15,26,0.92);--overlay-bg:rgba(5,10,18,0.98);
  --income:#5ab87a;--ar-income:90,184,122;
  --expense:#d45d5d;--ar-expense:212,93,93;
  --portfolio:#7a8ec9;--ar-portfolio:122,142,201;
  --select-bg:#0d1624;--select-arrow:%238888a0;
}
[data-theme=lpink]{
  --bg:#fce8f4;--text:#3d1030;--muted:#b06090;
  --accent:#d4307a;--ar:212,48,122;
  --card-bg:rgba(255,240,250,0.95);--overlay-bg:rgba(255,245,252,0.99);
  --income:#0a7a48;--ar-income:10,122,72;
  --expense:#c02040;--ar-expense:192,32,64;
  --portfolio:#7744bb;--ar-portfolio:119,68,187;
  --income-bg:rgba(10,122,72,0.12);--income-border:rgba(10,122,72,0.35);
  --select-bg:#f5ddef;--select-arrow:%23b06090;
}

/* ── BASE ───────────────────────────────────────────────────────────────── */
*{box-sizing:border-box;font-family:'Space Grotesk',sans-serif;margin:0;padding:0}
body{background:var(--bg);color:var(--text);min-height:100vh;padding:1.5rem 1.25rem;position:relative;overflow-x:hidden;transition:background 0.3s,color 0.3s}
.grid-bg{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(var(--ar),0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--ar),0.04) 1px,transparent 1px);background-size:40px 40px}
[data-theme=light] .grid-bg,[data-theme=lpink] .grid-bg{background-image:linear-gradient(rgba(var(--ar),0.14) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--ar),0.14) 1px,transparent 1px)}
.scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(var(--ar),0.27),transparent);pointer-events:none;z-index:0;animation:scan 18s linear infinite}
[data-theme=light] .scan-line,[data-theme=lpink] .scan-line{display:none}
@keyframes scan{0%{top:var(--scan-start,160px);opacity:1}85%{opacity:1}100%{top:100%;opacity:0}}
.content{position:relative;z-index:2;max-width:820px;margin:0 auto}
.header{display:flex;align-items:center;gap:8px;margin-bottom:1.5rem;flex-wrap:wrap;position:relative}
.header h1{flex:1;min-width:0}
h1{font-size:26px;font-weight:700;letter-spacing:0.12em;color:var(--accent);text-shadow:0 0 20px rgba(var(--ar),0.5)}
.version{font-size:10px;color:var(--muted);letter-spacing:0.15em}
.save-status{margin-left:auto;font-size:10px;letter-spacing:0.1em}

/* ── METRICS ────────────────────────────────────────────────────────────── */
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:1.5rem}
.metrics.metrics-cartera{grid-template-columns:repeat(3,minmax(0,1fr))}
.metric-nav{transition:background 0.15s,border-color 0.15s}
.metric-nav:hover{background:rgba(var(--ar),0.10);border-color:rgba(var(--ar),0.3)}
.metric-nav,.is-metric,.is-metric-2,.is-metric-3{cursor:pointer}

/* ── Hover animado tarjetas Ingresos/Gastos ─────────────────────────────── */
.is-metric,.is-metric-2{transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease,background .28s ease}
.is-metric:hover,.is-metric-2:hover{transform:translateY(-4px) scale(1.025);border-color:rgba(var(--ar),.45);box-shadow:0 10px 26px rgba(var(--ar),.22),0 2px 6px rgba(0,0,0,.18)}
.is-metric:active,.is-metric-2:active{transform:translateY(-1px) scale(1.005);transition-duration:.08s}
.is-metric .metric-val,.is-metric-2 .metric-val{transition:transform .28s cubic-bezier(.22,1,.36,1)}
.is-metric:hover .metric-val,.is-metric-2:hover .metric-val{transform:scale(1.06)}
.is-metric::before,.is-metric-2::before{transition:opacity .28s ease,filter .28s ease;opacity:.6}
.is-metric:hover::before,.is-metric-2:hover::before{opacity:1;filter:drop-shadow(0 0 6px var(--ac))}
.is-metric .corner,.is-metric-2 .corner{transition:opacity .28s ease,transform .28s ease}
.is-metric:hover .corner,.is-metric-2:hover .corner{opacity:1}
@media(prefers-reduced-motion:reduce){.is-metric,.is-metric-2,.is-metric .metric-val,.is-metric-2 .metric-val{transition:none;transform:none}}

.metric{background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.15);border-radius:12px;padding:1rem 1.25rem;position:relative;overflow:hidden}
[data-theme=light] .metric,[data-theme=lpink] .metric{background:var(--card-bg);box-shadow:0 2px 10px rgba(0,0,0,0.07)}
.metric::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--ac),transparent)}
.metric-label{font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.metric-val{font-size:22px;font-weight:600;white-space:nowrap;overflow:hidden;width:100%;display:block}

/* ── TABS ───────────────────────────────────────────────────────────────── */
.tab-bar{display:flex;gap:2px;background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.1);border-radius:10px;padding:4px;margin-bottom:1.5rem}
.tab{flex:1;border:1px solid transparent;background:transparent;color:var(--muted);font-size:13px;font-weight:500;padding:9px;border-radius:7px;cursor:pointer;letter-spacing:0.05em;transition:all 0.2s}
.tab.active{background:rgba(var(--ar),0.1);color:var(--accent);border:1px solid rgba(var(--ar),0.25);box-shadow:0 0 12px rgba(var(--ar),0.15)}
.tab-fade-in{animation:tabFadeIn 0.45s cubic-bezier(0.16,1,0.3,1)}
@keyframes tabFadeIn{0%{opacity:0;transform:translateY(14px) scale(0.98);filter:blur(4px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}

/* ── CARDS ──────────────────────────────────────────────────────────────── */
.card{background:var(--card-bg);border:1px solid rgba(var(--ar),0.12);border-radius:14px;padding:1.25rem;margin-bottom:14px;position:relative;overflow:hidden}
[data-theme=light] .card,[data-theme=lpink] .card{box-shadow:0 2px 12px rgba(0,0,0,0.08)}
.card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.dash-tour-btn{margin-left:auto;width:22px;height:22px;border-radius:50%;border:1px solid rgba(var(--ar),0.35);background:rgba(var(--ar),0.06);color:var(--accent);font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:background 0.15s,border-color 0.15s}
.dash-tour-btn:hover{background:rgba(var(--ar),0.15);border-color:var(--accent)}
.card-title{font-size:13px;font-weight:500;letter-spacing:0.08em}
.card-total{margin-left:auto;font-size:13px;font-weight:600}

/* ── ROWS / INPUTS ──────────────────────────────────────────────────────── */
.row-item{display:flex;gap:8px;align-items:center;margin-bottom:0;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid rgba(var(--ar),0.07)}.row-item:last-of-type{border-bottom:none}
.row-item .fut-input.nombre{flex:2;min-width:140px}
/* Cabecera tipo tabla en secciones de Activos (hipoteca/deuda/inmueble). Solo escritorio. */
.activo-thead{padding:2px 0 4px;border-bottom:1px solid rgba(var(--ar),0.12);margin-bottom:2px;flex-wrap:nowrap;opacity:0.9}
.activo-thead .activo-th{display:flex;align-items:flex-end}
@media(max-width:1060px){.activo-thead{display:none}}
@media(max-width:1060px){.row-item .fut-input.nombre{flex:1 1 100%}.two-col{grid-template-columns:1fr}}
.fut-input{background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.12);border-radius:8px;padding:7px 11px;font-size:13px;color:var(--text);outline:none;transition:border-color 0.2s}
[data-theme=light] .fut-input{background:rgba(var(--ar),0.04);border-color:rgba(var(--ar),0.2)}
.fut-input:focus{border-color:rgba(var(--ar),0.4);box-shadow:0 0 8px rgba(var(--ar),0.1)}
/* ── SELECT STYLING ─────────────────────────────────────────────────────── */
select.fut-input{
  background-color:var(--select-bg);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 4 5-4' stroke='%234a7a99' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 11px center;
  background-size:12px;
  padding-right:30px;
  appearance:none;-webkit-appearance:none;
  cursor:pointer;
  width:100%;
}
[data-theme=light] select.fut-input,[data-theme=lpink] select.fut-input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 4 5-4' stroke='%235577aa' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
[data-theme=pink] select.fut-input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 4 5-4' stroke='%23994477' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
[data-theme=green] select.fut-input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 4 5-4' stroke='%232a7035' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
select.fut-input option{background-color:var(--select-bg);color:var(--text)}
.add-btn{width:100%;margin-top:10px;background:rgba(var(--ar),0.05);border:1px dashed rgba(var(--ar),0.2);border-radius:8px;color:var(--muted);font-size:12px;padding:8px;cursor:pointer;letter-spacing:0.08em;transition:all 0.2s}
.add-btn:hover{border-color:rgba(var(--ar),0.4);color:var(--accent)}
.del-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px;padding:0 4px;line-height:1;flex-shrink:0;transition:color 0.15s}
.del-btn:hover{color:#ff4d6d}
.cartera-search-btn{background:none;border:none;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0;opacity:0.6;transition:opacity 0.15s;display:flex;align-items:center}
.cartera-search-btn:hover{opacity:1}
/* Cartera desktop: summary oculto, detail como flex inline */
.cartera-summary{display:none}
.cartera-detail{display:flex;flex:1;gap:8px;align-items:center;min-width:0}
/* Fila de efectivo fija en ValueAcademia */
.va-cash-row{background:rgba(45,212,163,0.07);border:1px solid rgba(45,212,163,0.18);border-radius:8px;margin-top:4px}
.va-cash-row .cartera-detail{padding:6px 8px}
/* Botón expand (solo visible en móvil via .cartera-summary) */
.car-expand-btn{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;padding:0;line-height:1;flex-shrink:0;transition:transform 0.2s;font-family:inherit}
.car-expand-btn.rotated{transform:rotate(90deg)}
/* Columnas del resumen móvil */
.sum-col{display:flex;flex-direction:column;gap:3px}
.sum-lbl{font-size:9px;letter-spacing:0.09em;color:var(--muted);text-transform:uppercase;line-height:1}
.sum-col-tk{flex:1;min-width:0}
.sum-col-pr{flex:1;min-width:0}
.sum-col-pl{flex:1;min-width:0}
.sum-col-pe{flex:1;min-width:0;align-items:flex-end}
.sum-ticker{font-size:14px;font-weight:700;color:var(--accent);letter-spacing:0.07em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sum-precio{display:flex;flex-direction:column;gap:1px}
.sum-pl{font-size:13px;font-weight:600;white-space:nowrap}
.sum-pe{font-size:13px;color:#a0c0d0;white-space:nowrap}
.cinfo-row{border:1px solid rgba(191,127,255,0.12);border-radius:9px;padding:10px 12px;cursor:pointer;transition:background 0.15s;user-select:none}
.cinfo-row:hover{background:rgba(191,127,255,0.06)}
.cinfo-head{display:flex;justify-content:space-between;align-items:center}
.cinfo-chev{font-size:15px;color:#4a7a99;transition:transform 0.2s;line-height:1}
.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}
.lang-btn{background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.15);border-radius:7px;color:var(--muted);font-size:11px;font-weight:600;padding:5px 10px;cursor:pointer;font-family:'Space Grotesk',sans-serif;letter-spacing:0.04em;transition:all 0.15s}
.lang-btn:hover{border-color:rgba(var(--ar),0.4);color:var(--accent)}
.lang-btn.lang-active{background:rgba(var(--ar),0.12);border-color:rgba(var(--ar),0.5);color:var(--accent);box-shadow:0 0 8px rgba(var(--ar),0.2)}

/* ── PILLS ──────────────────────────────────────────────────────────────── */
.pill-bar{display:flex;gap:4px;background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.1);border-radius:8px;padding:3px}
.pill{border:none;background:transparent;color:var(--muted);font-size:12px;padding:5px 14px;border-radius:6px;cursor:pointer;letter-spacing:0.05em;transition:all 0.2s}
.pill.active{background:rgba(var(--ar),0.12);color:var(--accent);box-shadow:0 0 8px rgba(var(--ar),0.1)}

/* ── LAYOUT ─────────────────────────────────────────────────────────────── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.corner{position:absolute;width:12px;height:12px;border-color:rgba(var(--ar),0.4);border-style:solid}
.corner-tl{top:8px;left:8px;border-width:1px 0 0 1px}
.corner-tr{top:8px;right:8px;border-width:1px 1px 0 0}
.corner-bl{bottom:8px;left:8px;border-width:0 0 1px 1px}
.corner-br{bottom:8px;right:8px;border-width:0 1px 1px 0}

/* ── PROYECCIÓN CONTROLS ─────────────────────────────────────────────────── */
.controls{display:flex;gap:8px;align-items:center;margin-bottom:20px;flex-wrap:wrap}
.ctrl-box{display:flex;align-items:center;gap:8px;border-radius:8px;padding:5px 12px}
.ctrl-label{font-size:10px;letter-spacing:0.12em}
.ctrl-val{border:none;background:transparent;font-weight:600;font-size:13px;outline:none;color:var(--accent)}
.proj-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.proj-card{background:var(--card-bg);border:1px solid rgba(var(--ar),0.12);border-radius:14px;padding:1.25rem}
[data-theme=light] .proj-card,[data-theme=lpink] .proj-card{box-shadow:0 2px 12px rgba(0,0,0,0.08)}
.legend{display:flex;gap:16px;margin-bottom:12px;align-items:center;flex-wrap:wrap}
.legend-item{display:flex;align-items:center;gap:6px;font-size:11px}
.legend-line{width:20px;height:2px;border-radius:1px}
.suffix{font-size:11px;color:var(--muted);min-width:14px;flex-shrink:0}

/* Tooltip propio para los sufijos con explicación (R. esperada / R. anual…).
   El title nativo no se muestra en táctil y es poco fiable, así que pintamos
   un globo con ::after que aparece al pasar el ratón (hover) y al tocar/enfocar
   (tap → :focus/:active). */
.suffix-tip{position:relative;cursor:help}
.suffix-tip::after{
  content:attr(data-tip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 8px);
  transform:translateX(-50%) translateY(4px);
  background:rgba(12,18,28,0.97);
  color:var(--text);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  padding:7px 10px;
  font-size:11px;
  line-height:1.3;
  letter-spacing:normal;
  white-space:normal;
  width:max-content;
  max-width:220px;
  text-align:center;
  box-shadow:0 6px 20px rgba(0,0,0,0.45);
  opacity:0;
  pointer-events:none;
  transition:opacity 0.15s ease, transform 0.15s ease;
  z-index:9999;
}
.suffix-tip::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:calc(100% + 3px);
  transform:translateX(-50%) translateY(4px);
  border:5px solid transparent;
  border-top-color:rgba(12,18,28,0.97);
  opacity:0;
  pointer-events:none;
  transition:opacity 0.15s ease, transform 0.15s ease;
  z-index:9999;
}
.suffix-tip:hover::after,.suffix-tip:focus::after,.suffix-tip:active::after,.suffix-tip.tip-open::after,
.suffix-tip:hover::before,.suffix-tip:focus::before,.suffix-tip:active::before,.suffix-tip.tip-open::before{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.pat-total-bar{display:flex;justify-content:space-between;align-items:center;background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.15);border-radius:12px;padding:1rem 1.25rem}
input[type=number]::-webkit-inner-spin-button{display:none}
input[type=number]::-webkit-outer-spin-button{display:none}
input[type=number].keep-arrows::-webkit-inner-spin-button{display:block;opacity:0.4}
input[type=number].keep-arrows::-webkit-outer-spin-button{display:block;opacity:0.4}

/* ── BUTTONS ────────────────────────────────────────────────────────────── */
.btn-guardar{background:rgba(var(--ar),0.08);border:1px solid rgba(var(--ar),0.3);border-radius:8px;color:var(--accent);font-size:12px;font-weight:600;padding:7px 18px;cursor:pointer;letter-spacing:0.1em;font-family:'Space Grotesk',sans-serif;margin-left:0;transition:all 0.2s}
.btn-guardar:hover{background:rgba(0,255,159,0.15);border-color:rgba(0,255,159,0.5);color:#00ff9f;transform:scale(1.05)}
[data-theme=light] .btn-guardar:hover{background:rgba(5,77,40,0.15);border-color:rgba(5,77,40,0.5);color:#054d28}
[data-theme=light] #subscribeBtn[style*="00ff9f"],[data-theme=lpink] #subscribeBtn[style*="00ff9f"]{background:var(--income) !important;border-color:var(--income) !important;color:#e0fff0 !important}
.btn-salir{background:none;border:1px solid rgba(255,77,109,0.25);border-radius:8px;color:var(--muted);font-size:12px;font-weight:600;padding:7px 18px;cursor:pointer;letter-spacing:0.1em;font-family:'Space Grotesk',sans-serif;margin-left:4px;transition:all 0.2s}
.btn-salir:hover{background:rgba(255,77,109,0.12);border-color:rgba(255,77,109,0.5);color:#ff4d6d;transform:scale(1.05)}
.btn-suscribir{background:rgba(191,127,255,0.08);border:1px solid rgba(191,127,255,0.3);border-radius:8px;color:#bf7fff;font-size:12px;font-weight:600;padding:7px 18px;cursor:pointer;letter-spacing:0.1em;font-family:'Space Grotesk',sans-serif;margin-left:0;transition:all 0.2s}
.btn-suscribir:hover{background:rgba(191,127,255,0.18);border-color:rgba(191,127,255,0.6);color:#d4aaff;transform:scale(1.05)}
.btn-expandir{background:none;border:1px solid rgba(var(--ar),0.15);border-radius:6px;color:var(--muted);font-size:10px;padding:4px 10px;cursor:pointer;letter-spacing:0.08em;font-family:'Space Grotesk',sans-serif;margin-left:auto;transition:all 0.2s}
.btn-expandir:hover{border-color:rgba(var(--ar),0.4);color:var(--accent)}

/* ── THEME SWITCHER ─────────────────────────────────────────────────────── */
.theme-switcher{position:relative}

/* ── TRENDING MENU ──────────────────────────────────────────────────────── */
.trending-switcher{position:relative}
.trending-toggle-btn{background:none;border:1px solid rgba(var(--ar),0.2);border-radius:50%;width:32px;height:32px;font-size:15px;padding:0;cursor:pointer;transition:all 0.2s;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.trending-toggle-btn:hover{border-color:rgba(var(--ar),0.4);background:rgba(var(--ar),0.08)}
.is-header-menubtn{background:none;border:1px solid rgba(var(--ar),0.2);border-radius:50%;width:32px;height:32px;color:#4a7a99;cursor:pointer;padding:0;flex-shrink:0;align-items:center;justify-content:center;transition:all 0.2s;display:none}
.is-header-menubtn:hover{border-color:rgba(var(--ar),0.4);background:rgba(var(--ar),0.08);color:var(--accent)}
.is-header-menudropdown{position:absolute;top:calc(100% + 6px);right:0;background:var(--card-bg,#0d1520);border:1px solid rgba(var(--ar),0.2);border-radius:12px;padding:12px;min-width:180px;z-index:9999;display:none;flex-direction:column;gap:6px;box-shadow:0 8px 24px rgba(0,0,0,0.4)}
.is-header-menudropdown.open{display:flex}
.header-menu-section{font-size:9px;letter-spacing:0.15em;color:var(--muted,#4a7a99);padding:2px 4px 6px;font-weight:600}
.header-menu-theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.header-menu-theme-grid button{background:rgba(var(--ar),0.06);border:1px solid rgba(var(--ar),0.15);border-radius:6px;color:var(--text,#c0d0e0);font-size:9px;font-weight:600;padding:5px 6px;cursor:pointer;letter-spacing:0.06em;font-family:'Space Grotesk',sans-serif;display:flex;align-items:center;gap:4px;transition:all 0.15s}
.header-menu-theme-grid button:hover{background:rgba(var(--ar),0.15);border-color:rgba(var(--ar),0.35)}
.header-menu-divider{height:1px;background:rgba(var(--ar),0.12);margin:4px 0}
.header-menu-item{background:none;border:1px solid rgba(var(--ar),0.15);border-radius:8px;color:var(--text,#c0d0e0);font-size:11px;font-weight:500;padding:7px 10px;cursor:pointer;letter-spacing:0.05em;font-family:'Space Grotesk',sans-serif;text-align:left;transition:all 0.15s;width:100%}
.header-menu-item[href]{display:flex;align-items:center;text-decoration:none}
.ff-studio .header .header-menu-item[href]{min-height:40px}
.header-menu-item:hover{background:rgba(var(--ar),0.1);border-color:rgba(var(--ar),0.3);color:var(--accent,#00d4ff)}
.trending-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--overlay-bg);border:1px solid rgba(var(--ar),0.2);border-radius:10px;padding:4px;display:none;z-index:300;min-width:238px;box-shadow:0 8px 24px rgba(0,0,0,0.4)}
[data-theme=light] .trending-menu,[data-theme=lpink] .trending-menu{box-shadow:0 8px 24px rgba(0,0,0,0.15)}
.trending-menu.open{display:block}
.trending-title{font-size:10px;font-weight:700;letter-spacing:0.12em;color:var(--muted);padding:5px 10px 6px;border-bottom:1px solid rgba(var(--ar),0.12);margin-bottom:2px;text-transform:uppercase}
.trending-link{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text);font-size:12px;font-weight:500;padding:7px 10px;border-radius:6px;text-decoration:none;transition:all 0.15s;font-family:'Space Grotesk',sans-serif}
.trending-link:hover{background:rgba(var(--ar),0.1);color:var(--accent)}
.trending-live{display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700;letter-spacing:0.08em;color:#ff4d6d;opacity:0.85;flex-shrink:0}
.trending-live-dot{width:5px;height:5px;border-radius:50%;background:#ff4d6d;animation:live-pulse 2s ease-in-out infinite}
/* ValueAcademia — resaltado PREMIUM en el menú Tendencias */
.trending-link.trending-va{position:relative;margin-top:5px;padding-top:8px;padding-bottom:8px;border:1px solid rgba(212,175,55,0.5);border-radius:8px;background:linear-gradient(100deg,rgba(212,175,55,0.15),rgba(212,175,55,0.04));box-shadow:0 0 0 0 rgba(212,175,55,0);transition:all 0.18s}
.trending-link.trending-va::before{content:"";position:absolute;top:-1px;bottom:-1px;left:-1px;width:3px;border-radius:8px 0 0 8px;background:linear-gradient(180deg,#f7d774,#d4af37)}
.trending-link.trending-va span[data-i18n]{background:linear-gradient(90deg,#f9e08a,#d4af37);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#d4af37;font-weight:700;letter-spacing:0.02em}
.trending-link.trending-va:hover{background:linear-gradient(100deg,rgba(212,175,55,0.26),rgba(212,175,55,0.1));border-color:rgba(212,175,55,0.85);box-shadow:0 0 14px rgba(212,175,55,0.28)}
.trending-va-badge{display:inline-flex;align-items:center;gap:3px;font-size:8px;font-weight:800;letter-spacing:0.09em;color:#231a05;background:linear-gradient(90deg,#f9e08a,#d4af37);padding:2px 6px;border-radius:6px;flex-shrink:0;text-transform:uppercase;box-shadow:0 1px 4px rgba(212,175,55,0.4)}
/* AgenteBoe — enlace destacado que abre la lista de Tendencias. Usa una
   identidad roja propia (el resto de enlaces son texto plano y ValueAcademia
   es dorado) para que se lea como una sección aparte, no como un enlace más. */
.trending-link.trending-boe{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:8px;row-gap:3px;margin-bottom:7px;padding:9px 10px 9px 12px;border:1px solid rgba(226,42,66,0.45);border-radius:8px;background:linear-gradient(100deg,rgba(226,42,66,0.17),rgba(226,42,66,0.04));transition:all 0.18s}
.trending-link.trending-boe::before{content:"";position:absolute;top:-1px;bottom:-1px;left:-1px;width:3px;border-radius:8px 0 0 8px;background:linear-gradient(180deg,#ff7a7a,#c81e3a)}
.trending-link.trending-boe:hover{background:linear-gradient(100deg,rgba(226,42,66,0.3),rgba(226,42,66,0.1));border-color:rgba(255,90,110,0.85);box-shadow:0 0 14px rgba(226,42,66,0.3)}
.trending-boe-mark{grid-column:1;grid-row:1 / span 2;align-self:center;font-size:7.5px;font-weight:900;letter-spacing:0.06em;color:#fff;background:linear-gradient(135deg,#ff6b6b,#c81e3a);padding:4px 5px;border-radius:5px;line-height:1;box-shadow:0 1px 5px rgba(200,30,58,0.45)}
.trending-boe-name{grid-column:2;grid-row:1;font-size:12.5px;font-weight:800;letter-spacing:0.02em;background:linear-gradient(90deg,#ff8a8a,#e02040);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#e02040}
.trending-boe-live{grid-column:3;grid-row:1;color:#ff5a72;opacity:1}
.trending-boe-live .trending-live-dot{background:#ff5a72}
.trending-boe-desc{grid-column:2 / -1;grid-row:2;font-size:9.5px;font-weight:500;line-height:1.35;letter-spacing:0.01em;color:var(--muted);text-transform:none}
.trending-link.trending-boe:hover .trending-boe-desc{color:var(--text)}
[data-theme=light] .trending-link.trending-boe,[data-theme=lpink] .trending-link.trending-boe{background:linear-gradient(100deg,rgba(226,42,66,0.12),rgba(226,42,66,0.03))}
[data-theme=light] .trending-boe-name,[data-theme=lpink] .trending-boe-name{background-image:linear-gradient(90deg,#e02040,#a5142c);color:#c2102b}
@keyframes live-pulse{0%,100%{opacity:1}50%{opacity:0.25}}
.theme-toggle-btn{background:rgba(var(--ar),0.06);border:1px solid rgba(var(--ar),0.18);border-radius:8px;color:var(--muted);font-size:11px;font-weight:600;padding:6px 10px;cursor:pointer;letter-spacing:0.08em;font-family:'Space Grotesk',sans-serif;transition:all 0.2s;white-space:nowrap}
.theme-toggle-btn:hover{border-color:rgba(var(--ar),0.4);color:var(--accent)}
.theme-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--overlay-bg);border:1px solid rgba(var(--ar),0.2);border-radius:10px;padding:4px;display:none;z-index:300;min-width:108px;box-shadow:0 8px 24px rgba(0,0,0,0.4)}
[data-theme=light] .theme-menu{box-shadow:0 8px 24px rgba(0,0,0,0.15)}
.theme-menu.open{display:block}
.theme-menu button{display:block;width:100%;background:none;border:none;color:var(--muted);font-size:11px;font-weight:600;padding:7px 12px;cursor:pointer;letter-spacing:0.1em;text-align:left;border-radius:6px;font-family:'Space Grotesk',sans-serif;transition:all 0.15s}
.theme-menu button:hover,.theme-menu button.active-theme{background:rgba(var(--ar),0.1);color:var(--accent)}
.theme-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle}

/* ── OVERLAY / MODAL overrides (defeat inline styles) ──────────────────── */
#authOverlay{background:var(--bg) !important}
.is-authoverlay{background:var(--bg) !important}
#authOverlay > div,#subscribeModal > div,#donutExpandOverlay > div{background:var(--overlay-bg) !important;border-color:rgba(var(--ar),0.2) !important}
#authSubmitBtn{background:rgba(var(--ar),0.1) !important;border-color:rgba(var(--ar),0.3) !important;color:var(--accent) !important}
#authEmail,#authPassword,#authPasswordConfirm{color:var(--text) !important;background:rgba(var(--ar),0.05) !important;border-color:rgba(var(--ar),0.15) !important}
#authOverlay .is-h2{color:var(--accent);text-shadow:0 0 20px rgba(var(--ar),0.5)}
#authOverlay .is-p-2{color:var(--accent)}
#authOverlay .is-p-3{color:var(--text);opacity:0.7}
#authOverlay .is-authverifyemail{color:var(--text)}
#authOverlay .is-button-5{color:var(--accent);border-color:rgba(var(--ar),0.3)}
#authOverlay .is-button-3{background:rgba(var(--ar),0.05);border-color:rgba(var(--ar),0.15)}
#authOverlay .is-div-7{background:rgba(var(--ar),0.15)}

/* Light mode: fix inline semantic colors for contrast */
[data-theme=light] [style*="color:#e0f0ff"],[data-theme=lpink] [style*="color:#e0f0ff"]{color:var(--text) !important}
[data-theme=light] [style*="color:#4a7a99"],[data-theme=lpink] [style*="color:#4a7a99"]{color:var(--muted) !important}
[data-theme=light] [style*="color:#00d4ff"],[data-theme=lpink] [style*="color:#00d4ff"]{color:var(--accent) !important}
[data-theme=light] [style*="color:#00ff9f"],[data-theme=lpink] [style*="color:#00ff9f"]{color:var(--income) !important}
[data-theme=light] [style*="color:#bf7fff"],[data-theme=lpink] [style*="color:#bf7fff"]{color:var(--portfolio) !important}
[data-theme=light] [style*="text-shadow"],[data-theme=lpink] [style*="text-shadow"]{text-shadow:none !important}
[data-theme=light] #patrimonioTotal,[data-theme=lpink] #patrimonioTotal{color:var(--accent) !important;text-shadow:none !important}
/* Green backgrounds and borders */
[data-theme=light] [style*="background:#00ff9f"],[data-theme=lpink] [style*="background:#00ff9f"]{background:var(--income) !important}
[data-theme=light] [style*="background:rgba(0,255,159"],[data-theme=lpink] [style*="background:rgba(0,255,159"]{background:var(--income-bg) !important}
[data-theme=light] [style*="border:1px solid rgba(0,255,159"],[data-theme=lpink] [style*="border:1px solid rgba(0,255,159"]{border-color:var(--income-border) !important}
[data-theme=light] [style*="border-color:#00ff9f"],[data-theme=lpink] [style*="border-color:#00ff9f"]{border-color:var(--income) !important}
[data-theme=light] [style*="color:#00ff9f"] .dot{background:var(--income) !important;box-shadow:0 0 6px rgba(5,77,40,0.4) !important}
[data-theme=lpink] [style*="color:#00ff9f"] .dot{background:var(--income) !important;box-shadow:0 0 6px rgba(7,100,50,0.4) !important}
[data-theme=light] .is-card-title,[data-theme=lpink] .is-card-title{color:var(--income) !important}
[data-theme=light] .is-dot,[data-theme=lpink] .is-dot{background:var(--income) !important;color:var(--income) !important;box-shadow:none}
[data-theme=light] .is-authresetok,[data-theme=lpink] .is-authresetok{color:var(--income) !important}
[data-theme=lpink] .fut-input{background:rgba(var(--ar),0.04);border-color:rgba(var(--ar),0.2)}
[data-theme=lpink] .theme-menu{box-shadow:0 8px 24px rgba(212,48,122,0.15)}
[data-theme=pro] .scan-line{display:none}
[data-theme=pro] .grid-bg{background-image:none}
[data-theme=pro] .metric{background:var(--card-bg);box-shadow:0 2px 10px rgba(0,0,0,0.25)}
[data-theme=pro] .card{box-shadow:0 2px 12px rgba(0,0,0,0.2)}
[data-theme=pro] .proj-card{box-shadow:0 2px 12px rgba(0,0,0,0.2)}
[data-theme=pro] .theme-menu{box-shadow:0 8px 24px rgba(0,0,0,0.35)}
[data-theme=pro] h1{text-shadow:none}
[data-theme=pro] [style*="text-shadow"]{text-shadow:none !important}
[data-theme=pro] #patrimonioTotal{color:var(--accent) !important;text-shadow:none !important}

/* Pink mode: fix inline colors */
[data-theme=pink] [style*="color:#00ff9f"]{color:var(--income) !important}
[data-theme=pink] [style*="color:#bf7fff"]{color:var(--portfolio) !important}
[data-theme=pink] [style*="color:#00d4ff"]{color:var(--accent) !important}
[data-theme=pink] #patrimonioTotal{color:var(--accent) !important}

/* Green mode: inline overrides */
[data-theme=green] [style*="color:#00d4ff"]{color:var(--accent) !important}
[data-theme=green] [style*="color:#bf7fff"]{color:var(--portfolio) !important}
[data-theme=green] #patrimonioTotal{color:var(--accent) !important}

/* Negative mode: replace all color glows/accents */
[data-theme=negative] [style*="color:#00d4ff"]{color:var(--accent) !important}
[data-theme=negative] [style*="color:#00ff9f"]{color:var(--income) !important}
[data-theme=negative] [style*="color:#bf7fff"]{color:var(--portfolio) !important}
[data-theme=negative] [style*="color:#e0f0ff"]{color:var(--text) !important}
[data-theme=negative] [style*="color:#4a7a99"]{color:var(--muted) !important}
[data-theme=negative] [style*="text-shadow"]{text-shadow:none !important}
[data-theme=negative] #patrimonioTotal{color:var(--accent) !important;text-shadow:none !important}
[data-theme=negative] .metric::before{display:none}

/* ── ONBOARDING ─────────────────────────────────────────────────────────── */
#onboardingOverlay{display:none}
#onboardingOverlay.active{display:flex}
.ob-step{width:28px;height:4px;border-radius:2px;background:rgba(0,212,255,0.15);transition:all 0.3s}
.ob-step.active{background:#00d4ff;box-shadow:0 0 8px rgba(0,212,255,0.5);width:40px}
.ob-investor-card{border:1px solid rgba(0,212,255,0.12);border-radius:10px;padding:12px 14px;cursor:pointer;transition:all 0.2s}
.ob-investor-card:hover{border-color:rgba(0,212,255,0.3);background:rgba(0,212,255,0.04)}
.ob-investor-card.selected{border-color:var(--sel-color,#00d4ff);background:rgba(0,212,255,0.07);box-shadow:0 0 12px rgba(0,212,255,0.1)}
#ob-inv-conservador.selected{border-color:#00d4ff;background:rgba(0,212,255,0.07);box-shadow:0 0 12px rgba(0,212,255,0.12)}
#ob-inv-moderado.selected{border-color:#00ff9f;background:rgba(0,255,159,0.07);box-shadow:0 0 12px rgba(0,255,159,0.12)}
#ob-inv-ambicioso.selected{border-color:#bf7fff;background:rgba(191,127,255,0.07);box-shadow:0 0 12px rgba(191,127,255,0.12)}
.ob-theme-card{border:1px solid rgba(0,212,255,0.1);border-radius:10px;padding:10px;cursor:pointer;transition:all 0.2s;text-align:center}
.ob-theme-card:hover{border-color:rgba(var(--th,0,212,255),0.4)}
.ob-theme-card.selected{border-color:var(--th,#00d4ff);box-shadow:0 0 10px rgba(0,212,255,0.2)}

/* ── FLUJO MOBILE PILLS (ocultas en escritorio) ──────────────────────────── */
.flujo-mobile-pills{display:none}
/* Etiquetas de campos cartera — wrapper transparente en desktop */
.car-lbl{display:none}
/* display:contents hace el wrapper invisible en desktop: el input queda como item flex directo */
.car-labeled{display:contents}

/* ── MOBILE ─────────────────────────────────────────────────────────────── */
@media(max-width:1100px){
  html{zoom:1}

  /* 1. HEADER ───────────────── */
  .header{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    row-gap:6px;
    column-gap:6px;
    margin-bottom:1rem;
  }
  .header > *{flex-shrink:0}
  .header h1{flex:1 1 auto;min-width:120px;font-size:18px;white-space:nowrap;margin-right:auto}
  .version{display:none}
  #saveBtn{padding:6px 10px;font-size:11px}
  .theme-toggle-btn{padding:5px 8px;font-size:10px}
  #subscribeBtn{font-size:10px;padding:6px 8px}
  #guestLangBtn,#userEmailBtn,#seguimientoBtn{font-size:9px;padding:6px 8px}
  #saveStatus{display:none}
  .cartera-freq-label{display:none}

  /* 1c. HEADER MENU (hamburguesa) ─── */
  #headerMenuBtn{display:flex!important}
  .theme-switcher,.is-contactbtn,.is-logoutbtn,.privacy-btn{display:none!important}

  /* 1b. HEADER — pantallas muy pequeñas ───────────────── */
  @media(max-width:600px){
    .header{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      row-gap:5px;
      column-gap:5px;
      margin-bottom:1rem;
    }
    .header > *{flex-shrink:0}
    .header h1{flex:1 1 auto;min-width:0;max-width:160px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:auto}
    #subscribeBtn{font-size:9px;padding:5px 8px;flex-shrink:0;white-space:nowrap}
    #guestLangBtn,#userEmailBtn,#seguimientoBtn{font-size:8px;padding:5px 7px;display:none!important}
  }

  /* 2. METRICS ──────────────── */
  .metrics{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:6px;
    margin-bottom:1rem;
    overflow:visible;
  }
  .metrics.metrics-cartera{grid-template-columns:repeat(3,1fr)}
  .metric{
    padding:0.6rem 0.5rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .metric-label{font-size:8px;letter-spacing:0.08em;margin-bottom:4px;text-align:center;line-height:1.3}
  .metric-val{font-size:clamp(11px,4vw,20px);font-weight:700;text-align:center;width:100%;white-space:nowrap;overflow:hidden}

  /* 3. INPUTS nombre — no se desborden */
  .row-item .fut-input.nombre{flex:1.5 1 0;min-width:64px;width:0}
  .fut-input{min-width:0}

  /* Tabs */
  .tab-bar{gap:1px;padding:3px;margin-bottom:1rem}
  .tab{font-size:10px;padding:7px 1px;letter-spacing:0}
  tv-economic-map{height:320px}
  .advanced-chart-wrap{height:380px}
  .heatmap-wrap{height:360px}
  .mercados-row{grid-template-columns:1fr;gap:0.75rem}
  .mercados-widget-tall{height:400px}

  /* Cards */
  .card{padding:0.875rem 0.75rem}

  /* 4. FLUJO mobile: pills selector, oculta el two-col */
  .flujo-mobile-pills{display:block;margin-bottom:10px}
  .two-col{grid-template-columns:1fr;gap:0}
  /* Ambas cards ocultas por defecto en móvil */
  #flujoCardIngresos,#flujoCardGastos{display:none}
  /* Solo la activa se muestra */
  #flujoCardIngresos.mob-active,#flujoCardGastos.mob-active{display:block}

  /* Proyección controles */
  .proj-metrics{grid-template-columns:repeat(3,minmax(110px,1fr));overflow-x:auto}
  @media(max-width:600px){
    .proj-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible}
    .proj-metrics .metric{padding:0.55rem 0.35rem;text-align:center}
  }
  .controls{gap:6px;flex-wrap:wrap}

  /* Cartera: card layout on mobile */
  .cartera-header{display:none!important}
  #listCartera{overflow-x:visible}

  /* Fila: bloque simple con borde */
  .cartera-row{
    display:block!important;
    border-radius:10px;
    background:rgba(var(--ar),0.04);
    border:1px solid rgba(var(--ar),0.1);
    margin-bottom:8px;
    overflow:hidden;
  }

  /* Resumen: siempre visible, una sola línea */
  .cartera-summary{
    display:flex!important;
    align-items:flex-end;
    gap:8px;
    padding:10px 12px;
    cursor:pointer;
    user-select:none;
  }

  /* Detalle: oculto por defecto, se muestra al expandir */
  .cartera-detail{
    display:none!important;
    padding:10px 12px 12px;
    border-top:1px solid rgba(var(--ar),0.1);
    row-gap:8px;column-gap:8px;
  }
  .cartera-row.expanded .cartera-detail{display:grid!important}
  .cartera-detail>*{width:auto!important;min-width:0!important;flex-shrink:unset!important}

  /* ── READ-ONLY layout ── */
  .cartera-detail:not(:has(.car-labeled)){
    grid-template-areas:
      "s  n  t  ."
      "s  v  p  ."
      ".  pl pe ."
      ".  u  c  .";
    grid-template-columns:28px 1fr 1fr auto;
  }

  /* ── ADMIN layout ── */
  .cartera-detail:has(.car-labeled){
    grid-template-areas:
      "s  n  n  n  n"
      "s  t  p  p  d"
      ".  u  c  c  ."
      ".  v  pl pe .";
    grid-template-columns:28px 1fr 1fr 1fr 32px;
  }

  /* Etiquetas */
  .car-lbl{
    display:block;
    font-size:9px;letter-spacing:0.1em;
    color:#4a7a99;font-weight:600;
    font-family:'Space Grotesk',sans-serif;
    margin-bottom:3px;
  }
  .car-labeled{display:flex!important;flex-direction:column}
  .car-labeled .fut-input{width:100%!important;min-height:38px;font-size:14px!important;padding:6px 8px!important}

  /* Pseudo-etiqueta PRECIO */
  .cartera-detail:has(.car-labeled) .car-p::before{
    content:'PRECIO';
    display:block;
    font-size:9px;letter-spacing:0.1em;color:#4a7a99;font-weight:600;
    font-family:'Space Grotesk',sans-serif;
    margin-bottom:3px;
  }

  /* Áreas de grid */
  .car-n{grid-area:n;align-self:start}
  .car-t{grid-area:t}
  .car-p{grid-area:p;align-self:start;display:flex;flex-direction:column;gap:2px}
  .car-u{grid-area:u}
  .car-c{grid-area:c}
  .car-v{grid-area:v}
  .car-pl{grid-area:pl;align-self:center;font-size:15px!important;font-weight:600!important}
  .car-pe{grid-area:pe;align-self:center;text-align:right!important;justify-self:end;font-size:12px!important;color:#a0c0d0!important}
  .car-del{grid-area:d;align-self:center;justify-self:end;color:#ff4d6d!important}
  .car-s{grid-area:s;align-self:start;justify-self:center;padding-top:2px}

  /* Separador visual en nombre */
  .car-n{padding-bottom:8px;border-bottom:1px solid rgba(var(--ar),0.1)}

  /* Read-only spans */
  .cartera-detail:not(:has(.car-labeled)) .car-n{
    font-size:13px!important;font-weight:600!important;color:#e0f0ff!important;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .cartera-detail:not(:has(.car-labeled)) .car-t{
    font-size:10px!important;font-weight:700!important;
    letter-spacing:0.07em!important;color:#4a7a99!important;
    align-self:center;text-align:center;
  }
  .cartera-detail:not(:has(.car-labeled)) .car-v{
    font-size:20px!important;font-weight:700!important;color:#bf7fff!important;align-self:center;
  }

  /* Admin nombre */
  .cartera-detail:has(.car-labeled) .car-n{flex-direction:column!important;align-items:stretch!important}
  .cartera-detail:has(.car-labeled) .car-n input{width:100%!important;min-height:38px;font-size:14px!important;padding:6px 8px!important}

  /* Pat total bar */
  .pat-total-bar{padding:0.75rem 1rem}

  /* Theme menu */
  .theme-menu{right:0;min-width:100px}

  /* Donut expand overlay */
  #donutExpandBox{padding:1rem}
}

/* ── EVENTOS EXTRAORDINARIOS ──────────────────────────────────────────────── */
.ext-item-row{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid rgba(74,122,153,0.1)}
.ext-item-row:last-child{border-bottom:none}
.ext-item-row input{box-sizing:border-box}
@media(max-width:1060px){.ext-two-col{grid-template-columns:1fr !important}}

/* Date picker styling — dark calendar popup + purple icon */
#extModal input[type="date"]{color-scheme:dark}
#extModal input[type="date"]::-webkit-calendar-picker-indicator{
  background:transparent;
  cursor:pointer;
  border-radius:3px;
  padding:2px;
  opacity:0.75;
  /* recolor to app purple #bf7fff */
  filter:invert(67%) sepia(40%) saturate(900%) hue-rotate(220deg) brightness(115%);
  transition:opacity 0.2s;
}
#extModal input[type="date"]::-webkit-calendar-picker-indicator:hover{opacity:1}
#extModal input[type="date"]::-webkit-datetime-edit-month-field:focus,
#extModal input[type="date"]::-webkit-datetime-edit-day-field:focus,
#extModal input[type="date"]::-webkit-datetime-edit-year-field:focus{
  background:rgba(191,127,255,0.2);
  border-radius:3px;
  color:#bf7fff;
  outline:none;
}

/* ═══════════════════════════════════════════════════════════════════════
   EXTRACTED INLINE STYLES
   ═══════════════════════════════════════════════════════════════════════ */

.is-strong /* 17× */ {
  color: #e0f0ff;
}

.is-span-9 /* 10× */ {
  color: #00d4ff;
}

.is-button-6 /* 6× */ {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 20px;
  cursor: pointer;
  line-height: 1;
}

.is-cinfo-body /* 6× */ {
  font-size: 12px;
  color: var(--text);
  line-height: 1.7;
  margin-top: 8px;
}

.is-div-11 /* 6× */ {
  text-align: center;
  margin-bottom: 1.5rem;
}

.is-div-21 /* 6× */ {
  gap: 8px;
}

.is-precioanualmes /* 6× */ {
  color: #bf7fff;
}

.is-div-25 /* 5× */ {
  font-size: 11px;
  color: #4a7a99;
  margin-top: 5px;
  letter-spacing: 0.08em;
}

.is-div-71 /* 5× */ {
  font-size: 9px;
  letter-spacing: 0.15em;
  color: #4a7a99;
  margin-bottom: 7px;
}

.is-donutingresos /* 5× */ {
  max-height: 260px;
}

.is-label-2 /* 5× */ {
  font-size: 10px;
  letter-spacing: 0.1em;
  color: #4a7a99;
  margin-bottom: 4px;
}

.is-lang-btn /* 5× */ {
  flex: 1;
}

.is-legendingresos /* 5× */ {
  margin-top: 12px;
}

.is-button-8 /* 4× */ {
  flex: 0 0 auto;
  background: none;
  border: 1px solid rgba(0,212,255,0.15);
  border-radius: 8px;
  color: #4a7a99;
  font-size: 12px;
  font-weight: 600;
  padding: 10px 14px;
  cursor: pointer;
  font-family: 'Space Grotesk',sans-serif;
}

.is-div-14 /* 4× */ {
  font-size: 10px;
  color: #4a7a99;
  margin-top: 4px;
}

.is-div-24 /* 4× */ {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #00d4ff;
}

.is-span-18 /* 4× */ {
  color: #00ff9f;
  font-weight: 600;
}

.is-span-19 /* 4× */ {
  color: #00d4ff;
  font-weight: 600;
}

.is-span-2 /* 4× */ {
  color: #00ff9f;
  font-weight: 700;
  text-shadow: 0 0 10px rgba(0,255,159,0.3);
}

.is-authemail /* 3× */ {
  width: 100%;
  margin-bottom: 8px;
}

.is-button-17 /* 3× */ {
  position: absolute;
  top: 12px;
  right: 14px;
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 20px;
  cursor: pointer;
  line-height: 1;
}

.is-button-9 /* 3× */ {
  flex: 1;
  background: rgba(0,212,255,0.1);
  border: 1px solid rgba(0,212,255,0.3);
  border-radius: 8px;
  color: #00d4ff;
  font-size: 13px;
  font-weight: 600;
  padding: 10px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
}

.is-card /* 3× */ {
  margin-top: 14px;
}

.is-div-27 /* 3× */ {
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}

.is-div-28 /* 3× */ {
  font-size: 11px;
  color: #4a7a99;
  line-height: 1.5;
}

.is-div-30 /* 3× */ {
  font-size: 22px;
  flex-shrink: 0;
}

.is-div-31 /* 3× */ {
  text-align: left;
}

.is-div-33 /* 3× */ {
  font-size: 9px;
  color: #4a7a99;
  margin-top: 2px;
}

.is-div-64 /* 3× */ {
  margin-left: auto;
}

.is-div-73 /* 3× */ {
  margin-bottom: 0.9rem;
}

.is-legend-item /* 3× */ {
  color: #ff9f3f;
}

.is-span-23 /* 3× */ {
  font-size: 11px;
  color: #4a7a99;
}

.is-tickersearchmodal /* 3× */ {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.88);
  z-index: 400;
  flex-direction: column;
  align-items: center;
  overflow-y: auto;
  padding: 1.25rem;
}

.is-authsubmitbtn /* 2× */ {
  width: 100%;
  background: rgba(0,212,255,0.1);
  border: 1px solid rgba(0,212,255,0.3);
  border-radius: 8px;
  color: #00d4ff;
  font-size: 13px;
  font-weight: 600;
  padding: 10px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
}

.is-button-31 /* 2× */ {
  background: none;
  border: none;
  color: #00d4ff;
  font-size: 11px;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
}

.is-button-34 /* 2× */ {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 22px;
  cursor: pointer;
}

.is-button-37 /* 2× */ {
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 10px;
  cursor: pointer;
  letter-spacing: 0.08em;
  transition: color 0.2s;
}

.is-button-4 /* 2× */ {
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 11px;
  cursor: pointer;
  text-decoration: underline;
  letter-spacing: 0.05em;
}

.is-card-2 /* 2× */ {
  margin-bottom: 14px;
}

.is-carterainfosynctext /* 2× */ {
  font-size: 12px;
  color: var(--text);
  line-height: 1.7;
}

.is-chev-datos /* 2× */ {
  color: #4a7a99;
  font-size: 14px;
  line-height: 1;
  transition: transform 0.2s;
}

.is-ctrl-box-3 /* 2× */ {
  background: rgba(0,255,159,0.04);
  border: 1px solid rgba(0,255,159,0.15);
}

.is-ctrl-label-2 /* 2× */ {
  color: #2a7a55;
}

.is-div-13 /* 2× */ {
  font-size: 10px;
  letter-spacing: 0.15em;
  color: #4a7a99;
  margin-bottom: 8px;
}

.is-div-131 /* 2× */ {
  font-size: 10px;
  color: #4a7a99;
  margin-bottom: 20px;
}

.is-div-15 /* 2× */ {
  font-size: 10px;
  color: #4a7a99;
  margin-top: 8px;
  letter-spacing: 0.05em;
}

.is-div-26 /* 2× */ {
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}

.is-div-34 /* 2× */ {
  margin-left: auto;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #c0c0cc;
  background: rgba(180,180,200,0.1);
  border: 1px solid rgba(180,180,200,0.3);
  border-radius: 5px;
  padding: 3px 7px;
  white-space: nowrap;
}

.is-div-38 /* 2× */ {
  font-size: 32px;
  margin-bottom: 8px;
}

.is-div-39 /* 2× */ {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.is-div-63 /* 2× */ {
  justify-content: center;
  margin-bottom: 16px;
}

.is-div-68 /* 2× */ {
  margin-bottom: 0.9rem;
  border: 1px solid rgba(0,212,255,0.08);
  border-radius: 10px;
  overflow: hidden;
}

.is-div-69 /* 2× */ {
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 8px 12px;
  background: rgba(0,212,255,0.04);
}

.is-div-7 /* 2× */ {
  flex: 1;
  height: 1px;
  background: rgba(0,212,255,0.1);
}

.is-div-72 /* 2× */ {
  flex-direction: column;
  gap: 5px;
}

.is-div-87 /* 2× */ {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #00ff9f;
  margin-bottom: 1.25rem;
}

.is-extlistgastos /* 2× */ {
  flex-direction: column;
  gap: 10px;
  min-height: 36px;
}

.is-label /* 2× */ {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #4a7a99;
  margin-bottom: 5px;
}

.is-ob-err-1 /* 2× */ {
  font-size: 11px;
  color: #ff4d6d;
  min-height: 16px;
  margin-bottom: 10px;
  text-align: center;
}

.is-patdonutlegend /* 2× */ {
  margin-top: 10px;
}

.is-pill-bar /* 2× */ {
  width: 100%;
}

.is-planmensual /* 2× */ {
  border: 1px solid rgba(191,127,255,0.2);
  border-radius: 12px;
  padding: 1.25rem;
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
}

.is-preciomensual /* 2× */ {
  font-size: 26px;
  font-weight: 600;
  color: #bf7fff;
}

.is-privacymodal /* 2× */ {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.92);
  z-index: 8000;
  overflow-y: auto;
  padding: 1.25rem;
  align-items: flex-start;
  justify-content: center;
}

.is-prof-datos-body /* 2× */ {
  padding: 10px 12px 12px;
}

.is-prof-edad /* 2× */ {
  width: 100%;
  margin-bottom: 10px;
}

.is-prof-pass-err /* 2× */ {
  font-size: 11px;
  color: #ff4d6d;
  min-height: 14px;
  margin-bottom: 8px;
  text-align: center;
}

.is-span-11 /* 2× */ {
  color: #4a7a99;
}

.is-span-15 /* 2× */ {
  font-size: 10px;
  color: #2a7a55;
}

.is-span-16 /* 2× */ {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #bf7fff;
}

.is-span-17 /* 2× */ {
  font-size: 9px;
  letter-spacing: 0.15em;
  color: #4a7a99;
}

.is-span-24 /* 2× */ {
  color: #bf7fff;
  font-weight: 600;
  font-size: 12px;
}

.is-span-26 /* 2× */ {
  color: #00ff9f;
  font-weight: 600;
  font-size: 12px;
}

.is-tab-bar /* 2× */ {
  margin-bottom: 1.25rem;
}

.is-tscatcripto /* 2× */ {
  background: rgba(0,212,255,0.05);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 20px;
  color: #4a7a99;
  font-size: 10px;
  font-weight: 600;
  padding: 4px 12px;
  cursor: pointer;
  font-family: 'Space Grotesk',sans-serif;
  letter-spacing: 0.08em;
  transition: all 0.15s;
}

.is-a {
  background: rgba(var(--ar),0.1);
  border: 1px solid rgba(var(--ar),0.3);
  border-radius: 10px;
  padding: 12px 16px;
  color: var(--accent);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: all 0.2s;
}

.is-a-2 {
  color: #4a7a99;
  text-decoration: none;
  letter-spacing: 0.08em;
  transition: color 0.2s;
}

.is-accountdeletedmodal {
  position: fixed;
  inset: 0;
  z-index: 10003;
  background: rgba(0,0,0,0.82);
  align-items: center;
  justify-content: center;
}

.is-autherror {
  margin-top: 4px;
  font-size: 11px;
  color: #ff4d6d;
  text-align: center;
  letter-spacing: 0.05em;
  min-height: 16px;
}

.is-authoverlay {
  position: fixed;
  inset: 0;
  background: #050a12;
  z-index: 100;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.is-authpasshint {
  font-size: 10px;
  color: #4a7a99;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
  line-height: 1.6;
}

.is-authpasswordconfirm {
  width: 100%;
  margin-bottom: 4px;
}

.is-authresendbox {
  margin-top: 6px;
  text-align: center;
}

.is-authresetok {
  margin-top: 4px;
  font-size: 11px;
  color: #00ff9f;
  text-align: center;
  letter-spacing: 0.05em;
}

.is-authverifyarea {
  text-align: center;
  padding: 10px 0;
}

.is-authverifyemail {
  font-size: 12px;
  color: #e0e8f0;
  font-weight: 600;
  margin-bottom: 12px;
}

.is-btnveractivos {
  margin-left: auto;
  align-items: center;
  gap: 5px;
  background: rgba(var(--ar),0.08);
  border: 1px solid rgba(var(--ar),0.2);
  border-radius: 7px;
  color: var(--accent);
  font-size: 9px;
  font-weight: 600;
  padding: 5px 10px;
  cursor: pointer;
  letter-spacing: 0.06em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}
.btn-ia-patrimonio {
  margin-left: 6px;
  background: rgba(191,127,255,0.08);
  border: 1px solid rgba(191,127,255,0.25);
  color: #bf7fff;
}
.btn-ia-patrimonio:hover {
  background: rgba(191,127,255,0.18);
  box-shadow: 0 0 10px rgba(191,127,255,0.3);
}

.is-button {
  width: 100%;
  background: rgba(0,255,159,0.1);
  border: 1px solid rgba(0,255,159,0.35);
  border-radius: 10px;
  color: var(--income);
  font-size: 13px;
  font-weight: 700;
  padding: 12px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
  margin-bottom: 10px;
}

.is-button-10 {
  flex: 1;
  background: rgba(0,255,159,0.12);
  border: 1px solid rgba(0,255,159,0.4);
  border-radius: 8px;
  color: #00ff9f;
  font-size: 13px;
  font-weight: 600;
  padding: 10px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
}

.is-button-11 {
  width: 100%;
  margin: 14px 0 0;
  background: rgba(191,127,255,0.05);
  border: 1px dashed rgba(191,127,255,0.22);
  border-radius: 10px;
  color: #bf7fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  padding: 11px 16px;
  cursor: pointer;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
  align-items: center;
  justify-content: center;
  gap: 9px;
}

.is-button-12 {
  background: rgba(0,255,159,0.07);
  border: 1px solid rgba(0,255,159,0.35);
  border-radius: 50%;
  width: 30px;
  height: 30px;
  color: #00ff9f;
  font-size: 14px;
  font-weight: 400;
  font-style: italic;
  cursor: pointer;
  padding: 0;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: Georgia,serif;
  transition: all 0.2s;
  letter-spacing: 0;
  line-height: 1;
}

.is-button-13 {
  background: rgba(191,127,255,0.07);
  border: 1px solid rgba(191,127,255,0.35);
  border-radius: 50%;
  width: 16px;
  height: 16px;
  color: #bf7fff;
  font-size: 10px;
  font-weight: 400;
  font-style: italic;
  cursor: pointer;
  padding: 0;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: Georgia,serif;
  line-height: 1;
  transition: all 0.2s;
  margin-left: 6px;
}

.is-button-14 {
  margin-left: auto;
  background: rgba(191,127,255,0.08);
  border: 1px solid rgba(191,127,255,0.3);
  border-radius: 8px;
  padding: 5px 10px;
  cursor: pointer;
  align-items: center;
  gap: 6px;
  transition: all 0.2s;
  flex-shrink: 0;
}

.is-button-15 {
  margin-left: 6px;
  background: rgba(191,127,255,0.08);
  border: 1px solid rgba(191,127,255,0.3);
  border-radius: 8px;
  padding: 5px 10px;
  cursor: pointer;
  align-items: center;
  gap: 6px;
  transition: all 0.2s;
  flex-shrink: 0;
}

.is-button-16 {
  position: absolute;
  top: 12px;
  right: 14px;
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 20px;
  cursor: pointer;
  line-height: 1;
  font-family: 'Space Grotesk',sans-serif;
}

.is-button-18 {
  width: 100%;
  background: rgba(0,212,255,0.1);
  border: 1px solid rgba(0,212,255,0.3);
  border-radius: 8px;
  color: #00d4ff;
  font-size: 12px;
  font-weight: 600;
  padding: 9px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-button-19 {
  background: rgba(0,255,159,0.07);
  border: 1px solid rgba(0,255,159,0.35);
  border-radius: 50%;
  width: 16px;
  height: 16px;
  color: #00ff9f;
  font-size: 10px;
  font-weight: 400;
  font-style: italic;
  cursor: pointer;
  padding: 0;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: Georgia,serif;
  line-height: 1;
}

.is-button-2 {
  width: 100%;
  background: none;
  border: 1px solid rgba(var(--ar),0.2);
  border-radius: 10px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 600;
  padding: 10px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-button-20 {
  flex: 1;
  background: rgba(0,255,159,0.06);
  border: 1px solid rgba(0,255,159,0.2);
  border-radius: 8px;
  color: #00ff9f;
  font-size: 11px;
  font-weight: 600;
  padding: 8px 6px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-button-22 {
  flex: 1;
  background: rgba(0,212,255,0.06);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 8px;
  color: #00d4ff;
  font-size: 11px;
  font-weight: 600;
  padding: 8px 6px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.btn-html-report {
  width: 100%;
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(191,127,255,0.06);
  border: 1px solid rgba(191,127,255,0.2);
  border-radius: 8px;
  color: #bf7fff;
  font-size: 11px;
  font-weight: 600;
  padding: 10px 6px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}
.btn-html-report:hover {
  background: rgba(191,127,255,0.15);
  border-color: rgba(191,127,255,0.4);
  box-shadow: 0 0 12px rgba(191,127,255,0.2);
}

.is-button-21 {
  width: 100%;
  background: transparent;
  border: 1px solid rgba(0,212,255,0.15);
  border-radius: 8px;
  color: #4a7a99;
  font-size: 11px;
  font-weight: 600;
  padding: 9px;
  cursor: pointer;
  letter-spacing: 0.12em;
  font-family: 'Space Grotesk',sans-serif;
  margin-bottom: 20px;
  transition: all 0.2s;
}
.is-button-21:hover {
  background: rgba(0,212,255,0.06);
  border-color: rgba(0,212,255,0.3);
  color: #00d4ff;
}

.is-button-22 {
  background: none;
  border: 1px solid rgba(255,77,109,0.15);
  border-radius: 8px;
  color: #4a7a99;
  font-size: 10px;
  font-weight: 600;
  padding: 8px 20px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
  text-align: center;
  transition: all 0.2s;
  width: auto;
}

.is-button-23 {
  width: 100%;
  background: rgba(255,77,109,0.1);
  border: 1px solid rgba(255,77,109,0.35);
  border-radius: 8px;
  color: #ff4d6d;
  font-size: 12px;
  font-weight: 600;
  padding: 9px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-button-24 {
  background: rgba(0,255,159,0.1);
  border: 1px solid rgba(0,255,159,0.3);
  border-radius: 8px;
  color: #00ff9f;
  font-size: 12px;
  font-weight: 600;
  padding: 0 14px;
  cursor: pointer;
  font-family: 'Space Grotesk',sans-serif;
  white-space: nowrap;
  transition: all 0.2s;
}

.is-button-25 {
  flex: 1;
  background: rgba(0,212,255,0.08);
  border: 1px solid rgba(0,212,255,0.25);
  border-radius: 8px;
  color: #00d4ff;
  font-size: 12px;
  font-weight: 600;
  padding: 10px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
}

.is-button-26 {
  flex: 1;
  background: rgba(255,77,109,0.1);
  border: 1px solid rgba(255,77,109,0.3);
  border-radius: 8px;
  color: #ff4d6d;
  font-size: 12px;
  font-weight: 600;
  padding: 10px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
}

.is-button-27 {
  width: 100%;
  background: rgba(255,77,109,0.1);
  border: 1px solid rgba(255,77,109,0.3);
  border-radius: 8px;
  color: #ff4d6d;
  font-size: 12px;
  font-weight: 600;
  padding: 10px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
}

.is-button-28 {
  width: 100%;
  background: rgba(191,127,255,0.08);
  border: 1px solid rgba(191,127,255,0.3);
  border-radius: 10px;
  cursor: pointer;
  align-items: center;
  justify-content: space-between;
  padding: 11px 14px;
  transition: all 0.2s;
  font-family: 'Space Grotesk',sans-serif;
}

.is-button-29 {
  margin-top: 12px;
  width: 100%;
  background: rgba(255,77,109,0.06);
  border: 1px dashed rgba(255,77,109,0.3);
  border-radius: 8px;
  color: #ff4d6d;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 8px;
  cursor: pointer;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-button-3 {
  width: 100%;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 8px;
  color: #e0e8f0;
  font-size: 13px;
  font-weight: 600;
  padding: 10px;
  cursor: pointer;
  letter-spacing: 0.05em;
  font-family: 'Space Grotesk',sans-serif;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.is-button-30 {
  margin-top: 12px;
  width: 100%;
  background: rgba(0,255,159,0.06);
  border: 1px dashed rgba(0,255,159,0.3);
  border-radius: 8px;
  color: #00ff9f;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 8px;
  cursor: pointer;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-button-32 {
  background: #00d4ff;
  border: none;
  border-radius: 8px;
  color: #050a12;
  font-size: 11px;
  font-weight: 700;
  padding: 8px 18px;
  cursor: pointer;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.is-button-33 {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  color: #4a7a99;
  font-size: 11px;
  padding: 8px 14px;
  cursor: pointer;
  white-space: nowrap;
}

.is-button-35 {
  margin-top: 10px;
  background: rgba(0,212,255,0.1);
  border: 1px solid rgba(0,212,255,0.3);
  border-radius: 8px;
  color: #00d4ff;
  font-size: 11px;
  font-weight: 700;
  padding: 10px 24px;
  cursor: pointer;
  letter-spacing: 0.1em;
}

.is-button-36 {
  margin-top: 10px;
  background: rgba(191,127,255,0.1);
  border: 1px solid rgba(191,127,255,0.3);
  border-radius: 8px;
  color: #bf7fff;
  font-size: 11px;
  font-weight: 700;
  padding: 10px 24px;
  cursor: pointer;
  letter-spacing: 0.1em;
}

.is-button-5 {
  background: none;
  border: 1px solid rgba(0,212,255,0.3);
  border-radius: 8px;
  color: #00d4ff;
  font-size: 12px;
  font-weight: 600;
  padding: 8px 16px;
  cursor: pointer;
  letter-spacing: 0.08em;
}

.is-button-7 {
  background: rgba(191,127,255,0.1);
  border: 1px solid rgba(191,127,255,0.3);
  border-radius: 8px;
  color: #bf7fff;
  font-size: 10px;
  font-weight: 700;
  padding: 9px 16px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
  white-space: nowrap;
}

.is-cancelsubbtn {
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 10px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
  padding: 4px 0;
  text-align: center;
  transition: color 0.2s;
  opacity: 0.6;
}

.is-card-3 {
  align-items: center;
}

.is-card-head {
  flex-wrap: wrap;
  row-gap: 6px;
}

.is-card-title {
  color: #00ff9f;
  letter-spacing: 0.12em;
}

.is-card-title-2 {
  color: #ff4d6d;
  letter-spacing: 0.12em;
}

.is-card-title-3 {
  color: var(--muted);
  letter-spacing: 0.1em;
}

.is-card-title-4 {
  color: #bf7fff;
  letter-spacing: 0.12em;
}

.is-cartera-freq-label {
  font-size: 11px;
  color: #6a8a9a;
  letter-spacing: 0.04em;
  margin-left: 8px;
  flex-shrink: 0;
}

.is-carterapricestatus {
  font-size: 10px;
  color: #4a7a99;
  letter-spacing: 0.06em;
  margin-left: 10px;
}

.is-carteraresumenbody {
  flex-direction: column;
  gap: 14px;
}

.is-carteraresumendonut {
  max-height: 300px;
}

.is-carteraresumendonutchev {
  font-size: 16px;
  color: #bf7fff;
  transition: transform 0.2s;
  line-height: 1;
}

.is-carteraresumenoverlay {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.9);
  z-index: 300;
  flex-direction: column;
  align-items: center;
  overflow-y: auto;
  padding: 1.5rem;
}

.is-carteraresumenrate {
  font-size: 10px;
  color: #4a7a99;
  letter-spacing: 0.06em;
  margin-top: 14px;
}

.is-carteraresumenstatus {
  font-size: 10px;
  color: #4a7a99;
  letter-spacing: 0.06em;
  margin-top: 6px;
}

.is-consentbanner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  background: rgba(5,10,18,0.97);
  border-top: 1px solid rgba(0,212,255,0.2);
  padding: 14px 20px;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.is-contactbtn {
  background: none;
  border: 1px solid rgba(var(--ar),0.2);
  border-radius: 50%;
  width: 32px;
  height: 32px;
  color: #4a7a99;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.is-contactbtn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.is-contactmodal {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.88);
  z-index: 10004;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.is-ctrl-box {
  background: rgba(0,212,255,0.05);
  border: 1px solid rgba(0,212,255,0.12);
}

.is-ctrl-box-2 {
  background: rgba(255,159,63,0.05);
  border: 1px solid rgba(255,159,63,0.2);
}

.is-ctrl-label {
  color: #a06030;
}

.is-cuponinput {
  flex: 1;
  background: rgba(191,127,255,0.05);
  border: 1px solid rgba(191,127,255,0.2);
  border-radius: 8px;
  color: var(--text);
  font-size: 12px;
  padding: 9px 12px;
  font-family: 'Space Grotesk',sans-serif;
  outline: none;
  letter-spacing: 0.06em;
  transition: border-color 0.2s;
}

.is-cuponmsg {
  font-size: 10px;
  margin-top: 7px;
  min-height: 14px;
  text-align: center;
  letter-spacing: 0.04em;
}

.is-div {
  background: var(--overlay-bg);
  border: 1px solid rgba(0,212,255,0.25);
  border-radius: 16px;
  padding: 2rem;
  width: 100%;
  max-width: 380px;
  text-align: center;
  position: relative;
  margin: auto;
}

.is-div-10 {
  background: rgba(5,20,35,0.98);
  border: 1px solid rgba(191,127,255,0.3);
  border-radius: 16px;
  padding: 2rem;
  width: 100%;
  max-width: 480px;
  position: relative;
  margin: auto;
}

.is-div-100 {
  background: #0d1929;
  border: 1px solid rgba(255,77,109,0.3);
  border-radius: 14px;
  padding: 32px 26px 26px;
  max-width: 330px;
  width: 90%;
  text-align: center;
  box-shadow: 0 8px 40px rgba(0,0,0,0.9);
}

.is-div-101 {
  font-size: 36px;
  margin-bottom: 14px;
}

.is-div-102 {
  font-size: 13px;
  font-weight: 700;
  color: #e0f0ff;
  letter-spacing: 0.08em;
  margin-bottom: 10px;
}

.is-div-103 {
  font-size: 12px;
  color: #a0c0d0;
  line-height: 1.7;
  margin-bottom: 6px;
}

.is-div-104 {
  font-size: 11px;
  color: #4a7a99;
  margin-bottom: 24px;
}

.is-div-105 {
  background: var(--overlay-bg);
  border: 1px solid rgba(var(--ar),0.25);
  border-radius: 16px;
  padding: 2rem 1.75rem 1.75rem;
  max-width: 360px;
  width: 100%;
  text-align: center;
  position: relative;
  box-shadow: 0 8px 48px rgba(0,0,0,0.7);
}

.is-div-106 {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(var(--ar),0.1);
  border: 1px solid rgba(var(--ar),0.25);
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
}

.is-div-107 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--accent);
  margin-bottom: 0.9rem;
}

.is-div-108 {
  background: var(--overlay-bg);
  border: 1px solid rgba(191,127,255,0.25);
  border-radius: 16px;
  padding: 1.75rem;
  width: 100%;
  max-width: 460px;
  position: relative;
  margin: auto;
}

.is-div-109 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #bf7fff;
  margin-bottom: 1.25rem;
}

.is-div-110 {
  flex-direction: column;
  gap: 8px;
}

.is-div-111 {
  background: rgba(0,255,159,0.07);
  border: 1px solid rgba(0,255,159,0.25);
  border-radius: 10px;
  padding: 10px 14px;
}

.is-div-112 {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #00ff9f;
  margin-bottom: 6px;
  font-weight: 700;
}

.is-div-113 {
  font-size: 12px;
  color: #00ff9f;
  line-height: 1.7;
}

.is-div-114 {
  background: rgba(255,179,71,0.07);
  border: 1px solid rgba(255,179,71,0.2);
  border-radius: 10px;
  padding: 10px 14px;
}

.is-div-115 {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #ffb347;
  margin-bottom: 6px;
  font-weight: 700;
}

.is-div-116 {
  background: rgba(191,127,255,0.07);
  border: 1px solid rgba(191,127,255,0.2);
  border-radius: 10px;
  padding: 10px 14px;
}

.is-div-117 {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #bf7fff;
  margin-bottom: 6px;
  font-weight: 700;
}

.is-div-118 {
  background: rgba(5,20,35,0.98);
  border: 1px solid rgba(191,127,255,0.25);
  border-radius: 16px;
  padding: 1.75rem;
  width: 100%;
  max-width: 420px;
  position: relative;
  margin: auto;
}

.is-div-119 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #bf7fff;
  margin-bottom: 1.25rem;
  align-items: center;
  gap: 8px;
}

.is-div-12 {
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 10px;
}

.is-div-120 {
  margin-top: 18px;
}

.is-div-121 {
  align-items: center;
  gap: 8px;
}

.is-div-122 {
  background: var(--overlay-bg);
  border: 1px solid rgba(191,127,255,0.2);
  border-radius: 16px;
  padding: 1.75rem;
  width: 100%;
  max-width: 720px;
  position: relative;
  margin: auto;
}

.is-div-123 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #bf7fff;
  margin-bottom: 4px;
}

.is-div-124 {
  font-size: 11px;
  color: #4a7a99;
  margin-bottom: 1.4rem;
  line-height: 1.65;
}

.is-div-125 {
  background: rgba(255,77,109,0.04);
  border: 1px solid rgba(255,77,109,0.18);
  border-radius: 12px;
  padding: 14px;
}

.is-div-126 {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #ff4d6d;
  margin-bottom: 12px;
}

.is-div-127 {
  background: rgba(0,255,159,0.04);
  border: 1px solid rgba(0,255,159,0.18);
  border-radius: 12px;
  padding: 14px;
}

.is-div-128 {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #00ff9f;
  margin-bottom: 12px;
}

.is-div-129 {
  background: #0d1929;
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 16px;
  padding: 2rem;
  width: 100%;
  max-width: 680px;
  margin: auto;
  position: relative;
  color: #a0c0d0;
  font-size: 13px;
  line-height: 1.7;
}

.is-div-130 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #00d4ff;
  margin-bottom: 6px;
}

.is-div-132 {
  background: #0d1929;
  border: 1px solid rgba(191,127,255,0.2);
  border-radius: 16px;
  padding: 2rem;
  width: 100%;
  max-width: 680px;
  margin: auto;
  position: relative;
  color: #a0c0d0;
  font-size: 13px;
  line-height: 1.7;
}

.is-div-133 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #bf7fff;
  margin-bottom: 6px;
}

.is-div-16 {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: #bf7fff;
  color: #050a12;
  font-size: 9px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.is-div-17 {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: #c9a84c;
  color: #050a12;
  font-size: 9px;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 20px;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.is-div-18 {
  font-size: 10px;
  letter-spacing: 0.15em;
  color: #a08030;
  margin-bottom: 4px;
}

.is-div-19 {
  font-size: 10px;
  color: #7a6020;
  letter-spacing: 0.03em;
}

.is-div-2 {
  font-size: 32px;
  margin-bottom: 12px;
}

.is-div-20 {
  text-align: right;
  flex-shrink: 0;
}

.is-div-22 {
  background: rgba(5,20,35,0.98);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 16px;
  padding: 2rem;
  width: 100%;
  max-width: 440px;
  position: relative;
  max-height: 92vh;
  overflow-y: auto;
  margin: auto;
}

.is-div-23 {
  gap: 6px;
  justify-content: center;
  margin-bottom: 1.75rem;
}

.is-div-29 {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #bf7fff;
}

.is-div-3 {
  background: rgba(5,20,35,0.98);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 16px;
  padding: 2rem;
  width: 100%;
  max-width: 360px;
  position: relative;
}

.is-div-32 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #bf7fff;
}

.is-div-35 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #00ff9f;
}

.is-div-36 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #ff9f3f;
}

.is-div-37 {
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 24px;
}

.is-div-4 {
  justify-content: center;
  gap: 6px;
  margin-bottom: 1.25rem;
}

.is-auth-theme-toggle {
  position: absolute;
  bottom: 16px;
  right: 16px;
  display: flex;
  gap: 4px;
  background: rgba(0,212,255,0.04);
  border: 1px solid rgba(0,212,255,0.1);
  border-radius: 20px;
  padding: 3px;
}

.is-auth-theme-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 16px;
  border: none;
  background: transparent;
  color: #3a6a88;
  cursor: pointer;
  transition: background 0.18s, color 0.18s;
}

.is-auth-theme-btn:hover {
  color: var(--accent);
  background: rgba(0,212,255,0.08);
}

.is-auth-theme-btn.is-auth-theme-active {
  background: rgba(0,212,255,0.14);
  color: var(--accent);
  box-shadow: 0 0 8px rgba(0,212,255,0.2);
}

.is-div-40 {
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 20px;
}

.is-div-41 {
  height: 36px;
  background: #050a12;
  border-radius: 6px;
  margin-bottom: 8px;
  border: 1px solid rgba(0,212,255,0.3);
  position: relative;
  overflow: hidden;
}

.is-div-42 {
  position: absolute;
  bottom: 4px;
  left: 4px;
  right: 4px;
  height: 2px;
  background: linear-gradient(90deg,#00d4ff,#bf7fff);
  border-radius: 1px;
}

.is-div-43 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #00d4ff;
}

.is-div-44 {
  height: 36px;
  background: #edf1f7;
  border-radius: 6px;
  margin-bottom: 8px;
  border: 1px solid rgba(0,119,170,0.3);
  position: relative;
  overflow: hidden;
}

.is-div-45 {
  position: absolute;
  bottom: 4px;
  left: 4px;
  right: 4px;
  height: 2px;
  background: #0077aa;
  border-radius: 1px;
}

.is-div-46 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #0077aa;
}

.is-div-47 {
  height: 36px;
  background: #0e0812;
  border-radius: 6px;
  margin-bottom: 8px;
  border: 1px solid rgba(255,93,177,0.3);
  position: relative;
  overflow: hidden;
}

.is-div-48 {
  position: absolute;
  bottom: 4px;
  left: 4px;
  right: 4px;
  height: 2px;
  background: linear-gradient(90deg,#ff5db1,#dd88ff);
  border-radius: 1px;
}

.is-div-49 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #ff5db1;
}

.is-div-5 {
  text-align: center;
  margin-bottom: 1.75rem;
}

.is-div-50 {
  height: 36px;
  background: #020d04;
  border-radius: 6px;
  margin-bottom: 8px;
  border: 1px solid rgba(0,232,68,0.3);
  position: relative;
  overflow: hidden;
}

.is-div-51 {
  position: absolute;
  bottom: 4px;
  left: 4px;
  right: 4px;
  height: 2px;
  background: #00e844;
  border-radius: 1px;
}

.is-div-52 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #00e844;
}

.is-div-53 {
  height: 36px;
  background: #000;
  border-radius: 6px;
  margin-bottom: 8px;
  border: 1px solid rgba(238,238,238,0.3);
  position: relative;
  overflow: hidden;
}

.is-div-54 {
  position: absolute;
  bottom: 4px;
  left: 4px;
  right: 4px;
  height: 2px;
  background: #eee;
  border-radius: 1px;
}

.is-div-55 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #eee;
}

.is-div-56 {
  height: 36px;
  background: #1a1a2e;
  border-radius: 6px;
  margin-bottom: 8px;
  border: 1px solid rgba(201,168,76,0.3);
  position: relative;
  overflow: hidden;
}

.is-div-57 {
  position: absolute;
  bottom: 4px;
  left: 4px;
  right: 4px;
  height: 2px;
  background: linear-gradient(90deg,#c9a84c,#7a8ec9);
  border-radius: 1px;
}

.is-div-58 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #c9a84c;
}

.is-div-58b {
  height: 36px;
  background: #fce8f4;
  border-radius: 6px;
  margin-bottom: 8px;
  border: 1px solid rgba(212,48,122,0.35);
  position: relative;
  overflow: hidden;
}

.is-div-58c {
  position: absolute;
  bottom: 4px;
  left: 4px;
  right: 4px;
  height: 2px;
  background: linear-gradient(90deg,#d4307a,#bf7fff);
  border-radius: 1px;
}

.is-div-58d {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #d4307a;
}

.is-div-59 {
  font-size: 48px;
  margin-bottom: 16px;
}

.is-div-6 {
  align-items: center;
  gap: 8px;
  margin: 14px 0 10px;
}

.is-div-60 {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #00d4ff;
  margin-bottom: 6px;
}

.is-div-61 {
  font-size: 13px;
  font-weight: 600;
  color: #ff8c00;
  letter-spacing: 0.08em;
  margin-bottom: 10px;
}

.is-div-62 {
  font-size: 12px;
  color: #4a7a99;
  line-height: 1.6;
  margin-bottom: 24px;
}

.is-div-65 {
  background: var(--overlay-bg);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 16px;
  padding: 1.25rem 1.25rem 1rem;
  width: 100%;
  max-width: 420px;
  position: relative;
  margin: auto;
}

.is-div-66 {
  align-items: baseline;
  gap: 10px;
  margin-bottom: 1.1rem;
}

.is-div-67 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #00d4ff;
}

.is-div-70 {
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 0.9rem;
}

.is-div-74 {
  gap: 5px;
  flex-wrap: wrap;
}

.is-div-75 {
  gap: 6px;
  flex-wrap: wrap;
}

.is-div-76 {
  gap: 6px;
}

.is-div-77 {
  align-items: center;
  gap: 7px;
}

.is-div-78 {
  border-top: 1px solid rgba(0,212,255,0.08);
  margin: 8px 0;
}

.is-div-79 {
  border-top: 1px solid rgba(0,212,255,0.08);
  margin-top: 12px;
  padding-top: 12px;
  flex-direction: column;
  align-items: center;
  gap: 7px;
}

.is-div-8 {
  text-align: right;
  margin-top: 6px;
  margin-bottom: 28px;
}

.is-div-80 {
  font-size: 11px;
  color: #ff4d6d;
  margin-bottom: 10px;
  line-height: 1.6;
}

.is-div-81 {
  background: var(--overlay-bg);
  border: 1px solid rgba(0,255,159,0.2);
  border-radius: 16px;
  padding: 1.75rem;
  width: 100%;
  max-width: 480px;
  position: relative;
  margin: auto;
}

.is-div-82 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #00ff9f;
  margin-bottom: 4px;
}

.is-div-83 {
  font-size: 10px;
  color: #4a7a99;
  letter-spacing: 0.06em;
  margin-bottom: 1rem;
}

.is-div-84 {
  gap: 6px;
  margin-bottom: 1rem;
}

.is-div-85 {
  gap: 8px;
  margin-bottom: 12px;
}

.is-div-86 {
  background: var(--overlay-bg);
  border: 1px solid rgba(0,255,159,0.25);
  border-radius: 16px;
  padding: 1.75rem;
  width: 100%;
  max-width: 400px;
  position: relative;
  margin: auto;
}

.is-div-88 {
  font-size: 12px;
  color: var(--text);
  line-height: 1.8;
  flex-direction: column;
  gap: 12px;
}

.is-div-89 {
  background: rgba(0,255,159,0.05);
  border: 1px solid rgba(0,255,159,0.15);
  border-radius: 10px;
  padding: 10px 14px;
}

.is-div-9 {
  font-size: 36px;
  margin-bottom: 16px;
}

.is-div-90 {
  font-size: 11px;
  color: #4a7a99;
  line-height: 1.6;
}

.is-div-91 {
  background: var(--overlay-bg);
  border: 1px solid rgba(0,255,159,0.25);
  border-radius: 16px;
  padding: 1.75rem;
  width: 100%;
  max-width: 480px;
  position: relative;
  margin: auto;
}

.is-div-92 {
  font-size: 12px;
  color: var(--text);
  line-height: 1.8;
  flex-direction: column;
  gap: 10px;
}

.is-div-93 {
  background: rgba(0,255,159,0.05);
  border: 1px solid rgba(0,255,159,0.15);
  border-radius: 10px;
  padding: 10px 14px;
  margin-top: 4px;
}

.is-div-94 {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #4a7a99;
  margin-bottom: 6px;
}

.is-div-95 {
  gap: 16px;
}

.is-div-96 {
  background: #0d1929;
  border: 1px solid rgba(0,212,255,0.3);
  border-radius: 14px;
  padding: 28px 26px 22px;
  max-width: 330px;
  width: 90%;
  text-align: center;
  box-shadow: 0 8px 40px rgba(0,0,0,0.8);
}

.is-div-97 {
  font-size: 13px;
  font-weight: 700;
  color: #e0f0ff;
  margin-bottom: 10px;
  letter-spacing: 0.06em;
}

.is-div-98 {
  font-size: 12px;
  color: #a0c0d0;
  line-height: 1.7;
  margin-bottom: 22px;
}

.is-div-99 {
  gap: 10px;
}

.is-donutexpandbox {
  background: rgba(5,20,35,0.98);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 16px;
  padding: 1.5rem;
  width: 100%;
  max-width: 560px;
  position: relative;
  max-height: 92vh;
  overflow-y: auto;
}

.is-donutexpandoverlay {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.9);
  z-index: 200;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.is-donutexpandsvg {
  max-height: 380px;
}

.is-donutexpandtitle {
  font-size: 11px;
  letter-spacing: 0.15em;
  color: #4a7a99;
  margin-bottom: 14px;
}

.is-dot {
  background: #00ff9f;
  color: #00ff9f;
}

.is-dot-2 {
  background: #ff4d6d;
  color: #ff4d6d;
}

.is-dot-3 {
  background: var(--income);
  color: var(--income);
}

.is-dot-4 {
  background: #bf7fff;
  color: #bf7fff;
}

.is-ext-two-col {
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 20px;
}

.is-extmodal {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.92);
  z-index: 500;
  flex-direction: column;
  align-items: center;
  overflow-y: auto;
  padding: 1.25rem;
}

.is-footer {
  align-items: center;
  text-align: center;
  padding: 20px;
  margin-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.05);
  font-size: 10px;
  color: #4a7a99;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

.is-forgotpassbtn {
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 11px;
  cursor: pointer;
  letter-spacing: 0.05em;
  text-decoration: underline;
}

.is-gateprompt {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.88);
  z-index: 99;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.is-gatetext {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 20px;
}

.is-gatetitle {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--accent);
  margin-bottom: 8px;
}

.is-guestlangbtn {
  font-size: 10px;
  letter-spacing: 0.06em;
}

.is-h2 {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.15em;
  color: #00d4ff;
  text-shadow: 0 0 20px rgba(0,212,255,0.5);
}

.is-h2-2 {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.15em;
  color: #bf7fff;
  text-shadow: 0 0 20px rgba(191,127,255,0.4);
}

.is-horizonte {
  cursor: pointer;
}

.is-inflacion {
  color: #ff9f3f;
  width: 46px;
  font-family: 'Space Grotesk',sans-serif;
}

.is-label-3 {
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: rgba(0,212,255,0.06);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 8px;
  color: #00d4ff;
  font-size: 11px;
  font-weight: 600;
  padding: 8px 6px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-legend-line {
  background: linear-gradient(90deg,#00d4ff,#bf7fff);
}

.is-legend-line-2 {
  background: #ff9f3f;
}

.is-legendcartera {
  width: 100%;
  margin-top: 8px;
}

.is-logoutbtn {
  background: none;
  border: 1px solid rgba(255,77,109,0.25);
  border-radius: 50%;
  width: 32px;
  height: 32px;
  color: #4a7a99;
  font-size: 17px;
  cursor: pointer;
  line-height: 1;
  padding: 0;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.is-logoutconfirmmodal {
  position: fixed;
  inset: 0;
  z-index: 10002;
  background: rgba(0,0,0,0.72);
  align-items: center;
  justify-content: center;
}

.is-metric {
  --ac: #00ff9f;
}

.is-metric-2 {
  --ac: #ff4d6d;
}

.is-metric-3 {
  --ac: #00d4ff;
}

.is-metricgastos {
  color: #ff4d6d;
  text-shadow: 0 0 16px #ff4d6d88;
}

.is-metricingresos {
  color: #00ff9f;
  text-shadow: 0 0 16px #00ff9f88;
}

.is-ob-ai-chatgpt {
  cursor: pointer;
  border: 2px solid rgba(0,255,159,0.2);
  border-radius: 12px;
  background: rgba(0,255,159,0.04);
  padding: 14px 16px;
  align-items: center;
  gap: 12px;
  transition: all 0.2s;
}

.is-ob-ai-claude {
  cursor: pointer;
  border: 2px solid rgba(180,180,200,0.45);
  border-radius: 12px;
  background: rgba(191,127,255,0.04);
  padding: 14px 16px;
  align-items: center;
  gap: 12px;
  transition: all 0.2s;
}

.is-ob-ai-perplexity {
  cursor: pointer;
  border: 2px solid rgba(180,180,200,0.45);
  border-radius: 12px;
  background: rgba(255,159,63,0.04);
  padding: 14px 16px;
  align-items: center;
  gap: 12px;
  transition: all 0.2s;
}

.is-ob-cur-eur {
  cursor: pointer;
  border: 2px solid rgba(0,212,255,0.4);
  border-radius: 12px;
  background: rgba(0,212,255,0.1);
  padding: 20px 12px;
  text-align: center;
  color: #00d4ff;
  transition: all 0.2s;
}

.is-ob-cur-usd {
  cursor: pointer;
  border: 2px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  background: rgba(255,255,255,0.03);
  padding: 20px 12px;
  text-align: center;
  color: #4a7a99;
  transition: all 0.2s;
}

.is-ob-edad {
  width: 100%;
  margin-bottom: 20px;
}

.is-ob-err-6 {
  font-size: 11px;
  color: #ff4d6d;
  min-height: 16px;
  margin-bottom: 8px;
}

.is-ob-nombre {
  width: 100%;
  margin-bottom: 14px;
}

.is-ob-step-6 {
  text-align: center;
}

.is-ob-th-cyber {
  --th: #00d4ff;
}

.is-ob-th-green {
  --th: #00e844;
}

.is-ob-th-light {
  --th: #0077aa;
}

.is-ob-th-negative {
  --th: #eeeeee;
}

.is-ob-th-pink {
  --th: #ff5db1;
}

.is-ob-th-lpink {
  --th: #d4307a;
}

.is-ob-th-pro {
  --th: #c9a84c;
}

.is-ob-verify-btn {
  width: 100%;
  background: rgba(0,255,159,0.12);
  border: 1px solid rgba(0,255,159,0.4);
  border-radius: 8px;
  color: #00ff9f;
  font-size: 13px;
  font-weight: 600;
  padding: 11px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
  margin-bottom: 10px;
}

.is-ob-verify-resend-ok {
  font-size: 11px;
  color: #00ff9f;
  margin-top: 6px;
}

.is-onboardingoverlay {
  position: fixed;
  inset: 0;
  background: #050a12;
  z-index: 101;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  overflow-y: auto;
}

.is-p {
  font-size: 10px;
  color: #4a7a99;
  letter-spacing: 0.1em;
  margin-top: 4px;
}

.is-p-10 {
  font-size: 13px;
  color: var(--text);
  line-height: 1.75;
  margin-bottom: 1.25rem;
}

.is-p-2 {
  font-size: 13px;
  font-weight: 600;
  color: #00d4ff;
  letter-spacing: 0.1em;
  margin-bottom: 10px;
}

.is-p-3 {
  font-size: 12px;
  color: #a0c0d0;
  margin-bottom: 6px;
}

.is-p-4 {
  font-size: 11px;
  color: #4a7a99;
  margin-bottom: 12px;
}

.is-p-5 {
  font-size: 12px;
  font-weight: 700;
  color: #c9a84c;
  letter-spacing: 0.06em;
  margin-bottom: 20px;
  border: 1px solid rgba(201,168,76,0.3);
  border-radius: 8px;
  padding: 8px 12px;
  background: rgba(201,168,76,0.07);
}

.is-p-6 {
  font-size: 11px;
  letter-spacing: 0.06em;
  margin-top: 10px;
  line-height: 1.9;
  color: #4a7a99;
  background: rgba(0,255,159,0.04);
  border: 1px solid rgba(0,255,159,0.12);
  border-radius: 10px;
  padding: 12px 14px;
  text-align: left;
}

.is-p-7 {
  font-size: 10px;
  color: #4a7a99;
  text-align: center;
  margin-top: 12px;
  letter-spacing: 0.05em;
}

.is-p-8 {
  font-size: 9px;
  color: #2a4a5a;
  margin-top: 10px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.is-p-9 {
  font-size: 9px;
  color: #2a4a5a;
  margin-top: 12px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.is-patdonutsvg {
  max-height: 240px;
}

.is-patdonutwrap {
  margin-top: 12px;
  padding: 0 8px 8px;
}

.is-patrentamt {
  font-size: 13px;
  font-weight: 600;
  color: var(--income);
}

.is-patrentpct {
  font-size: 20px;
  font-weight: 700;
  color: var(--accent);
}

.is-patrimoniototal {
  font-size: 28px;
  font-weight: 700;
  color: var(--income);
  letter-spacing: -0.01em;
}

.is-paypalcontainer {
  min-height: 50px;
}

.is-pctinvertido {
  color: #00ff9f;
  width: 42px;
  font-family: 'Space Grotesk',sans-serif;
}

.is-planvida {
  border: 1px solid rgba(201,168,76,0.2);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 1.5rem;
  background: rgba(201,168,76,0.04);
}

.is-preciolifetime {
  font-size: 30px;
  font-weight: 700;
  color: #c9a84c;
  line-height: 1;
}

.is-preciolifetimeorig {
  font-size: 9px;
  color: #a08030;
  margin-top: 3px;
  letter-spacing: 0.05em;
  text-decoration: none;
}

.is-pricemodebtn {
  margin-left: 0;
  background: rgba(0,212,255,0.07);
  border: 1px solid rgba(0,212,255,0.25);
  border-radius: 8px;
  padding: 5px 12px;
  cursor: pointer;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #00d4ff;
  transition: all 0.2s;
  flex-shrink: 0;
  align-items: center;
  gap: 4px;
}

.is-prof-ai-btn {
  flex: 1;
  min-width: 60px;
  background: rgba(191,127,255,0.06);
  border: 1px solid rgba(191,127,255,0.2);
  border-radius: 7px;
  color: #4a7a99;
  font-size: 9px;
  font-weight: 600;
  padding: 7px 4px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-ai-btn-2 {
  flex: 1;
  min-width: 60px;
  background: rgba(0,255,159,0.06);
  border: 1px solid rgba(0,255,159,0.2);
  border-radius: 7px;
  color: #4a7a99;
  font-size: 9px;
  font-weight: 600;
  padding: 7px 4px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-ai-btn-3 {
  flex: 1;
  min-width: 60px;
  background: rgba(255,159,63,0.06);
  border: 1px solid rgba(255,159,63,0.2);
  border-radius: 7px;
  color: #4a7a99;
  font-size: 9px;
  font-weight: 600;
  padding: 7px 4px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-backup-msg {
  font-size: 11px;
  min-height: 14px;
  margin-top: 7px;
  text-align: center;
}

.is-prof-cur-btn {
  background: rgba(0,212,255,0.04);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 7px;
  color: #4a7a99;
  font-size: 11px;
  font-weight: 600;
  padding: 7px 4px;
  cursor: pointer;
  letter-spacing: 0.06em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-cur-btn-2 {
  background: rgba(0,255,159,0.04);
  border: 1px solid rgba(0,255,159,0.2);
  border-radius: 7px;
  color: #4a7a99;
  font-size: 11px;
  font-weight: 600;
  padding: 7px 4px;
  cursor: pointer;
  letter-spacing: 0.06em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-delete-confirm {
  background: rgba(255,77,109,0.04);
  border: 1px solid rgba(255,77,109,0.15);
  border-radius: 10px;
  padding: 14px;
}

.is-prof-delete-text {
  width: 100%;
  margin-bottom: 8px;
  border-color: rgba(255,77,109,0.3);
}

.is-prof-err {
  font-size: 11px;
  color: #ff4d6d;
  min-height: 0;
  margin-bottom: 4px;
  text-align: center;
}

.is-prof-inv-ambicioso {
  background: none;
  border: 1px solid rgba(191,127,255,0.2);
  border-radius: 7px;
  color: #4a7a99;
  font-size: 9px;
  font-weight: 600;
  padding: 7px 4px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-inv-conservador {
  background: none;
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 7px;
  color: #4a7a99;
  font-size: 9px;
  font-weight: 600;
  padding: 7px 4px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-inv-moderado {
  background: none;
  border: 1px solid rgba(0,255,159,0.2);
  border-radius: 7px;
  color: #4a7a99;
  font-size: 9px;
  font-weight: 600;
  padding: 7px 4px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-ok {
  font-size: 11px;
  color: #00ff9f;
  min-height: 0;
  margin-bottom: 6px;
  text-align: center;
}

.is-prof-pass-area {
  border-top: 1px solid rgba(0,212,255,0.08);
  padding-top: 10px;
  flex-direction: column;
  gap: 6px;
}

.is-prof-pass-nueva {
  width: 100%;
  margin-bottom: 12px;
}

.is-prof-pass-ok {
  font-size: 11px;
  color: #00ff9f;
  min-height: 14px;
  margin-bottom: 8px;
  text-align: center;
}

.is-prof-pass-section {
  background: rgba(0,212,255,0.03);
  border: 1px solid rgba(0,212,255,0.1);
  border-radius: 10px;
  padding: 14px;
}

.is-prof-th-cyber {
  flex: 1;
  min-width: 52px;
  background: rgba(0,212,255,0.06);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 7px;
  color: #00d4ff;
  font-size: 9px;
  font-weight: 600;
  padding: 6px 2px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-th-green {
  flex: 1;
  min-width: 52px;
  background: rgba(0,232,68,0.06);
  border: 1px solid rgba(0,232,68,0.2);
  border-radius: 7px;
  color: #00e844;
  font-size: 9px;
  font-weight: 600;
  padding: 6px 2px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-th-light {
  flex: 1;
  min-width: 52px;
  background: rgba(0,119,170,0.06);
  border: 1px solid rgba(0,119,170,0.2);
  border-radius: 7px;
  color: #0077aa;
  font-size: 9px;
  font-weight: 600;
  padding: 6px 2px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-th-negative {
  flex: 1;
  min-width: 52px;
  background: rgba(238,238,238,0.06);
  border: 1px solid rgba(238,238,238,0.2);
  border-radius: 7px;
  color: #ccc;
  font-size: 9px;
  font-weight: 600;
  padding: 6px 2px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-th-pink {
  flex: 1;
  min-width: 52px;
  background: rgba(255,93,177,0.06);
  border: 1px solid rgba(255,93,177,0.2);
  border-radius: 7px;
  color: #ff5db1;
  font-size: 9px;
  font-weight: 600;
  padding: 6px 2px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-th-pro {
  flex: 1;
  min-width: 52px;
  background: rgba(201,168,76,0.06);
  border: 1px solid rgba(201,168,76,0.2);
  border-radius: 7px;
  color: #c9a84c;
  font-size: 9px;
  font-weight: 600;
  padding: 6px 2px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-prof-th-lpink {
  flex: 1;
  min-width: 52px;
  background: rgba(212,48,122,0.07);
  border: 1px solid rgba(212,48,122,0.25);
  border-radius: 7px;
  color: #d4307a;
  font-size: 9px;
  font-weight: 600;
  padding: 6px 2px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk',sans-serif;
  transition: all 0.2s;
}

.is-profchangepassbtn {
  background: none;
  border: 1px solid rgba(0,212,255,0.15);
  border-radius: 8px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  padding: 8px 14px;
  cursor: pointer;
  letter-spacing: 0.1em;
  font-family: 'Space Grotesk',sans-serif;
  text-align: left;
  transition: all 0.2s;
  width: 100%;
}

.is-profilemodal {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.88);
  z-index: 300;
  flex-direction: column;
  align-items: center;
  overflow-y: auto;
  padding: 1rem;
}

.is-profresetok {
  font-size: 11px;
  color: #00ff9f;
  letter-spacing: 0.05em;
}

.is-profresetpassbtn {
  background: none;
  border: none;
  color: #4a7a99;
  font-size: 10px;
  cursor: pointer;
  letter-spacing: 0.08em;
  font-family: 'Space Grotesk',sans-serif;
  padding: 4px 0;
  text-align: left;
  text-decoration: underline;
}

.is-profuidlabel {
  font-size: 9px;
  color: #3a5a6a;
  letter-spacing: 0.04em;
  user-select: all;
}

.is-projinfomodal {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.85);
  z-index: 300;
  flex-direction: column;
  align-items: center;
  overflow-y: auto;
  padding: 1.25rem;
}

.is-projnote {
  font-size: 11px;
  margin-top: 12px;
  letter-spacing: 0.06em;
}

.is-rent-patrimonio {
  align-items: center;
  gap: 4px;                /* más juntos dentro de cada grupo */
  padding: 8px 12px 4px;
  border-top: 1px solid rgba(255,255,255,0.05);
  margin-top: 4px;
}
/* Separación EXTRA entre el grupo RENT y el grupo YIELD (separador ·) */
.is-rent-patrimonio #patYieldSep{margin:0 16px;opacity:0.45}
/* La flecha → dentro de cada grupo queda ceñida a sus valores */
.is-rent-patrimonio .pat-arrow{margin:0 4px}

.is-rentnueva {
  color: #00ff9f;
  width: 46px;
  font-family: 'Space Grotesk',sans-serif;
}

.is-savestatus {
  font-size: 10px;
  letter-spacing: 0.1em;
}

.is-span {
  font-size: 10px;
  color: #4a7a99;
  letter-spacing: 0.1em;
}

.is-span-10 {
  color: #00ff9f;
}

.is-span-12 {
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--muted);
  flex-shrink: 0;
}

.is-span-13 {
  font-size: 11px;
  color: var(--muted);
}

.is-span-14 {
  font-size: 10px;
  color: #a06030;
}

.is-span-20 {
  color: #4a7a99;
  font-weight: 600;
}

.is-span-21 {
  color: #ff9f3f;
  font-weight: 600;
}

.is-span-22 {
  color: #ff4d6d;
  font-weight: 600;
}

.is-span-25 {
  color: #00d4ff;
  font-weight: 600;
  font-size: 12px;
}

.is-span-27 {
  color: #4a7a99;
  border: 1px solid #4a7a9944;
  border-radius: 3px;
  padding: 0 3px;
}

.is-span-28 {
  color: #ffb347;
  border: 1px solid #ffb34744;
  border-radius: 3px;
  padding: 0 3px;
}

.is-span-29 {
  color: #a0c0d0;
  font-weight: 600;
  font-size: 12px;
}

.is-span-3 {
  font-size: 13px;
  font-weight: 600;
  color: #00d4ff;
  letter-spacing: 0.06em;
}

.is-span-30 {
  color: #a0c0d0;
}

.is-span-31 {
  font-size: 10px;
  letter-spacing: 0.15em;
  color: #bf7fff;
  font-weight: 700;
}

.is-span-32 {
  font-size: 11px;
  color: #a0c0d0;
  flex: 1;
  min-width: 200px;
}

.is-span-33 {
  letter-spacing: 0.06em;
}

.is-span-4 {
  font-size: 9px;
  background: rgba(0,212,255,0.12);
  border: 1px solid rgba(0,212,255,0.25);
  border-radius: 4px;
  padding: 2px 7px;
  color: #00d4ff;
  letter-spacing: 0.08em;
}

.is-span-5 {
  font-size: 13px;
  font-weight: 600;
  color: #00ff9f;
  letter-spacing: 0.06em;
}

.is-span-6 {
  font-size: 9px;
  background: rgba(0,255,159,0.12);
  border: 1px solid rgba(0,255,159,0.25);
  border-radius: 4px;
  padding: 2px 7px;
  color: #00ff9f;
  letter-spacing: 0.08em;
}

.is-span-7 {
  font-size: 13px;
  font-weight: 600;
  color: #bf7fff;
  letter-spacing: 0.06em;
}

.is-span-8 {
  font-size: 9px;
  background: rgba(191,127,255,0.12);
  border: 1px solid rgba(191,127,255,0.25);
  border-radius: 4px;
  padding: 2px 7px;
  color: #bf7fff;
  letter-spacing: 0.08em;
}

.is-subscribemodal {
  position: fixed;
  inset: 0;
  background: rgba(5,10,18,0.85);
  z-index: 99;
  flex-direction: column;
  align-items: center;
  overflow-y: auto;
  padding: 1.25rem;
}

.is-svg {
  vertical-align: -1px;
  margin-right: 6px;
}

.is-theme-dot {
  background: #00d4ff;
}

.is-theme-dot-2 {
  background: #0077aa;
}

.is-theme-dot-3 {
  background: #ff5db1;
}

.is-theme-dot-4 {
  background: #00e844;
}

.is-theme-dot-5 {
  background: #eeeeee;
  border: 1px solid #555;
}

.is-theme-dot-7 {
  background: #d4307a;
}

.is-theme-dot-6 {
  background: #c9a84c;
}

.is-tickersearchresults {
  flex-direction: column;
  gap: 6px;
  max-height: 300px;
  overflow-y: auto;
}

.is-tickersearchstatus {
  font-size: 11px;
  color: #4a7a99;
  min-height: 14px;
  margin-bottom: 8px;
  text-align: center;
}

.is-tscatacciones {
  background: rgba(0,255,159,0.15);
  border: 1px solid rgba(0,255,159,0.4);
  border-radius: 20px;
  color: #00ff9f;
  font-size: 10px;
  font-weight: 600;
  padding: 4px 12px;
  cursor: pointer;
  font-family: 'Space Grotesk',sans-serif;
  letter-spacing: 0.08em;
  transition: all 0.15s;
}

.is-useremailbtn {
  font-size: 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  width: fit-content;
  max-width: 100%;
}
.is-useremailbtn .user-btn-icon { flex: 0 0 auto; }
.is-useremailbtn .user-btn-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

/* ── WELCOME OVERLAY ─────────────────────────────────────────────────────────── */
.is-welcomeoverlay {
  position: fixed;
  inset: 0;
  background: #050a12;
  z-index: 99;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  overflow-y: auto;
}

/* Halos de color muy difusos detrás del panel: dan profundidad sin distraer */
.is-welcome-aura {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.is-welcome-aura::before,
.is-welcome-aura::after {
  content: '';
  position: absolute;
  width: 46vmax;
  height: 46vmax;
  border-radius: 50%;
  filter: blur(90px);
  opacity: 0.5;
}

.is-welcome-aura::before {
  top: -18vmax;
  left: -14vmax;
  background: radial-gradient(circle, rgba(0,212,255,0.28), transparent 70%);
  animation: ffWelcomeAura 22s ease-in-out infinite alternate;
}

.is-welcome-aura::after {
  bottom: -20vmax;
  right: -16vmax;
  background: radial-gradient(circle, rgba(0,255,159,0.2), transparent 70%);
  animation: ffWelcomeAura 26s ease-in-out infinite alternate-reverse;
}

@keyframes ffWelcomeAura {
  from { transform: translate3d(0,0,0) scale(1); }
  to   { transform: translate3d(4vmax,3vmax,0) scale(1.15); }
}

@keyframes ffWelcomeIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

.is-welcome-inner {
  position: relative;
  width: 100%;
  max-width: 640px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2.75rem 2.25rem 2.25rem;
  background: linear-gradient(160deg, rgba(10,22,36,0.92), rgba(5,12,20,0.86));
  border: 1px solid rgba(0,212,255,0.14);
  border-radius: 22px;
  box-shadow: 0 30px 80px rgba(0,0,0,0.55);
  backdrop-filter: blur(14px);
  margin: auto;
}

.is-welcome-inner > * {
  animation: ffWelcomeIn 0.55s cubic-bezier(0.22,0.9,0.3,1) both;
}
.is-welcome-inner > *:nth-child(1) { animation-delay: 0.02s; }
.is-welcome-inner > *:nth-child(2) { animation-delay: 0.08s; }
.is-welcome-inner > *:nth-child(3) { animation-delay: 0.14s; }
.is-welcome-inner > *:nth-child(4) { animation-delay: 0.20s; }
.is-welcome-inner > *:nth-child(5) { animation-delay: 0.26s; }
.is-welcome-inner > *:nth-child(6) { animation-delay: 0.32s; }
.is-welcome-inner > *:nth-child(7) { animation-delay: 0.38s; }
.is-welcome-inner > *:nth-child(8) { animation-delay: 0.44s; }

@media (prefers-reduced-motion: reduce) {
  .is-welcome-inner > * { animation: none; }
  .is-welcome-aura::before, .is-welcome-aura::after { animation: none; }
  .is-welcome-prev-line { animation: none; stroke-dashoffset: 0; }
  .is-welcome-prev-area { animation: none; opacity: 1; }
}

.is-welcome-logo-wrap {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 0.6rem;
}

.is-welcome-logo {
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  background: linear-gradient(135deg, #00d4ff 0%, #00ff9f 55%, #bf7fff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  filter: drop-shadow(0 0 24px rgba(0,212,255,0.35));
}

.is-welcome-version {
  font-size: 10px;
  font-weight: 700;
  color: #4a7a99;
  letter-spacing: 0.15em;
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: 4px;
  padding: 2px 7px;
}

.is-welcome-tagline {
  font-size: 12px;
  font-weight: 700;
  color: #e0f0ff;
  letter-spacing: 0.2em;
  margin-bottom: 1rem;
}

/* El párrafo que tiene que hacer entender la app en 5 segundos: legible,
   no un pie de foto. Por eso 15px y color claro, no gris de apoyo. */
.is-welcome-desc {
  font-size: 15px;
  color: #a8c6dc;
  line-height: 1.7;
  margin: 0 0 1.5rem;
  max-width: 470px;
}

.is-welcome-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-bottom: 1.9rem;
}

.is-welcome-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 13px;
  border-radius: 999px;
  background: rgba(0,212,255,0.06);
  border: 1px solid rgba(0,212,255,0.16);
  color: #8fb8d4;
  font-size: 11.5px;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.is-welcome-pill i {
  font-style: normal;
  color: #00d4ff;
  font-size: 12px;
  line-height: 1;
  filter: drop-shadow(0 0 7px rgba(0,212,255,0.6));
}

/* ── Vista previa del producto (hueco del futuro vídeo) ─────────────────── */
.is-welcome-preview {
  width: 100%;
  max-width: 430px;
  margin-bottom: 1.6rem;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(0,212,255,0.18);
  background: #071624;
  box-shadow: 0 18px 44px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.02) inset;
}

.is-welcome-prev-bar {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 7px 11px;
  background: rgba(255,255,255,0.03);
  border-bottom: 1px solid rgba(0,212,255,0.12);
}

.is-welcome-prev-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0,212,255,0.28);
}

.is-welcome-prev-tab {
  margin-left: auto;
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #4a7a99;
}

.is-welcome-prev-screen {
  padding: 13px 14px 12px;
  text-align: left;
}

.is-welcome-prev-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 2px;
}

.is-welcome-prev-k {
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #4a7a99;
  margin-bottom: 3px;
}

.is-welcome-prev-v {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #eaf6ff;
  line-height: 1;
}

.is-welcome-prev-delta {
  font-size: 10.5px;
  font-weight: 700;
  color: #00ff9f;
  white-space: nowrap;
}

.is-welcome-prev-delta span {
  font-weight: 400;
  color: #4a7a99;
  letter-spacing: 0.04em;
}

.is-welcome-prev-chart {
  display: block;
  width: 100%;
  height: 74px;
  margin: 6px 0 10px;
}

/* La curva se dibuja sola al abrir: sugiere "esto crece" sin explicarlo */
.is-welcome-prev-line {
  stroke-dasharray: 420;
  stroke-dashoffset: 420;
  animation: ffPrevDraw 1.7s cubic-bezier(0.32,0.72,0.3,1) 0.35s forwards;
  filter: drop-shadow(0 0 6px rgba(0,255,159,0.45));
}

.is-welcome-prev-area {
  opacity: 0;
  animation: ffPrevFade 1.1s ease 1.1s forwards;
}

@keyframes ffPrevDraw { to { stroke-dashoffset: 0; } }
@keyframes ffPrevFade { to { opacity: 1; } }

.is-welcome-prev-split {
  display: flex;
  gap: 3px;
  height: 6px;
  margin-bottom: 8px;
}

.is-welcome-prev-seg {
  border-radius: 3px;
  opacity: 0.75;
}

.is-welcome-prev-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 9.5px;
  color: #5a8aaa;
  letter-spacing: 0.05em;
}

.is-welcome-prev-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.is-welcome-prev-legend i {
  width: 6px;
  height: 6px;
  border-radius: 2px;
  display: inline-block;
}

.is-welcome-prev-legend b { font-weight: 500; }

/* Las dos puertas de entrada: mirar sin registrarse / crear cuenta */
.is-welcome-choices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  width: 100%;
  margin-bottom: 14px;
}

.is-welcome-choice {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  text-align: left;
  padding: 18px 17px 16px;
  border-radius: 16px;
  cursor: pointer;
  font-family: 'Space Grotesk', sans-serif;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(0,212,255,0.14);
  transition: transform 0.22s, border-color 0.22s, background 0.22s, box-shadow 0.22s;
}

.is-welcome-choice:hover {
  transform: translateY(-3px);
}

.is-welcome-choice-icon {
  font-size: 1.25rem;
  line-height: 1;
  margin-bottom: 2px;
}

.is-welcome-choice-title {
  font-size: 14px;
  font-weight: 700;
  color: #eaf4ff;
  letter-spacing: 0.01em;
}

.is-welcome-choice-desc {
  font-size: 12px;
  color: #6f9bb8;
  line-height: 1.55;
  flex: 1;
}

.is-welcome-choice-cta {
  margin-top: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.is-welcome-choice-explore {
  background: rgba(0,255,159,0.06);
  border-color: rgba(0,255,159,0.32);
  box-shadow: 0 0 26px rgba(0,255,159,0.07);
}
.is-welcome-choice-explore:hover {
  background: rgba(0,255,159,0.12);
  border-color: rgba(0,255,159,0.55);
  box-shadow: 0 12px 38px rgba(0,255,159,0.18);
}
.is-welcome-choice-explore .is-welcome-choice-icon,
.is-welcome-choice-explore .is-welcome-choice-cta { color: #00ff9f; }

.is-welcome-choice-signup:hover {
  background: rgba(0,212,255,0.09);
  border-color: rgba(0,212,255,0.42);
  box-shadow: 0 12px 38px rgba(0,212,255,0.14);
}
.is-welcome-choice-signup .is-welcome-choice-icon,
.is-welcome-choice-signup .is-welcome-choice-cta { color: #00d4ff; }

.is-welcome-login {
  background: none;
  border: none;
  color: #5a8aaa;
  font-size: 12px;
  cursor: pointer;
  letter-spacing: 0.04em;
  font-family: 'Space Grotesk', sans-serif;
  transition: color 0.2s;
  padding: 8px;
}

.is-welcome-login:hover { color: #9dc4dd; }

.is-welcome-trust {
  width: 100%;
  margin-top: 20px;
}

.is-welcome-trust-line {
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(0,212,255,0.12), transparent);
  margin-bottom: 14px;
}

.is-welcome-trust-body {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #3a5a72;
  font-size: 10px;
  letter-spacing: 0.08em;
}

.is-welcome-trust-body svg:first-child {
  color: #3a5a72;
  flex-shrink: 0;
}

.is-welcome-google-g {
  flex-shrink: 0;
  opacity: 0.75;
}

.is-welcome-trust-brand {
  font-weight: 700;
  color: #4a7a99;
  letter-spacing: 0.06em;
}

/* En escritorio la explicación va a la izquierda y la vista previa a la
   derecha: se lee igual de rápido y el panel entra entero en pantalla sin
   scroll, que es lo que decide si alguien se queda. */
@media (min-width: 880px) {
  .is-welcome-inner {
    display: grid;
    grid-template-columns: minmax(0,1fr) 340px;
    column-gap: 32px;
    align-items: start;
    max-width: 940px;
    text-align: left;
    padding: 2.5rem 2.5rem 2rem;
  }
  .is-welcome-logo-wrap { grid-column: 1; grid-row: 1; }
  .is-welcome-tagline   { grid-column: 1; grid-row: 2; }
  .is-welcome-desc      { grid-column: 1; grid-row: 3; max-width: none; margin-bottom: 1.2rem; }
  .is-welcome-pills     { grid-column: 1; grid-row: 4; justify-content: flex-start; margin-bottom: 0; }
  .is-welcome-preview   { grid-column: 2; grid-row: 1 / span 4; align-self: center; margin-bottom: 0; max-width: none; }
  .is-welcome-choices   { grid-column: 1 / -1; grid-row: 5; margin: 1.9rem 0 12px; }
  .is-welcome-login     { grid-column: 1 / -1; grid-row: 6; justify-self: center; }
  .is-welcome-trust     { grid-column: 1 / -1; grid-row: 7; }
}

@media (max-width: 560px) {
  /* El banner de cookies vive abajo: dejamos aire para que no tape el
     enlace de "Ya tengo cuenta". */
  .is-welcomeoverlay { padding: 1rem 1rem 5.5rem; }
  .is-welcome-choices { grid-template-columns: 1fr; gap: 9px; }
  .is-welcome-logo { font-size: 1.75rem; }
  .is-welcome-version { font-size: 9px; }
  .is-welcome-inner { padding: 1.6rem 1.15rem 1.3rem; border-radius: 18px; }
  .is-welcome-tagline { font-size: 11px; letter-spacing: 0.14em; margin-bottom: 0.6rem; }
  .is-welcome-desc { font-size: 13px; line-height: 1.55; margin-bottom: 0.9rem; }
  .is-welcome-pills { gap: 6px; margin-bottom: 0.9rem; }
  .is-welcome-pill { font-size: 10.5px; padding: 5px 10px; gap: 5px; }
  .is-welcome-choice { padding: 13px 14px 12px; gap: 4px; border-radius: 14px; }
  .is-welcome-choice-icon { font-size: 1.1rem; }
  .is-welcome-choice-title { font-size: 13.5px; }
  .is-welcome-choice-desc { font-size: 11.5px; line-height: 1.5; }
  .is-welcome-choice-cta { margin-top: 5px; }
  .is-welcome-trust { margin-top: 12px; }
  .is-welcome-preview { margin-bottom: 0.9rem; border-radius: 12px; }
  .is-welcome-prev-bar { padding: 5px 10px; }
  .is-welcome-prev-screen { padding: 9px 12px 9px; }
  .is-welcome-prev-v { font-size: 19px; }
  .is-welcome-prev-chart { height: 46px; margin: 4px 0 7px; }
  /* En móvil la leyenda es ruido: la barra de colores ya se entiende sola */
  .is-welcome-prev-legend { display: none; }
  .is-welcome-prev-split { margin-bottom: 0; }
  /* Icono en línea con el título: dos filas menos por tarjeta, que es lo que
     hace que la segunda opción entre en pantalla sin scroll. */
  .is-welcome-choice { display: grid; grid-template-columns: auto 1fr; column-gap: 9px; row-gap: 3px; }
  .is-welcome-choice-icon { grid-column: 1; grid-row: 1; align-self: center; }
  .is-welcome-choice-title { grid-column: 2; grid-row: 1; align-self: center; }
  .is-welcome-choice-desc { grid-column: 2; grid-row: 2; }
  .is-welcome-choice-cta { grid-column: 2; grid-row: 3; }
}

/* Pantallas bajas (portátiles pequeños, móvil en horizontal): el preview es lo
   primero que sobra — las dos opciones de entrada nunca deben quedar fuera. */
@media (max-height: 660px) {
  .is-welcome-preview { display: none; }
  .is-welcome-inner { padding: 1.6rem 1.75rem 1.4rem; }
  .is-welcome-desc { margin-bottom: 1rem; }
  .is-welcome-pills { margin-bottom: 1.2rem; }
}

/* Sin preview no hay segunda columna que llenar: volvemos a una sola. */
@media (max-height: 660px) and (min-width: 880px) {
  .is-welcome-inner { grid-template-columns: minmax(0,1fr); max-width: 760px; }
  .is-welcome-logo-wrap,
  .is-welcome-tagline,
  .is-welcome-desc,
  .is-welcome-pills,
  .is-welcome-choices,
  .is-welcome-login,
  .is-welcome-trust { grid-column: 1; grid-row: auto; }
  .is-welcome-choices { margin: 0 0 10px; }
}

/* ── RESPONSIVE MÓVIL: activos + cartera ──────────────────────────────────── */
@media (max-width: 640px) {

  /* Activos — valor patrimonio total */
  .is-patrimoniototal { font-size: 22px; }

  /* Activos — fila RENT. ESPERADA / YIELD: repartir los componentes de forma
     uniforme a lo ancho del móvil, juntar los dos grupos y sustituir el punto
     de separación grande por un "|" fino. */
  .is-rent-patrimonio {
    gap: 6px;
    justify-content: space-between;
    flex-wrap: nowrap;
  }
  .is-patrentpct      { font-size: 14px; }
  .is-patrentamt      { font-size: 11px; }
  .is-btnveractivos   { padding: 4px 7px; font-size: 8px; gap: 4px; }
  /* Separador entre grupo RENT y grupo YIELD: "|" fino y márgenes mínimos.
     Ocultamos el "·" original (font-size:0) y pintamos el "|" con ::before. */
  .is-rent-patrimonio #patYieldSep {
    margin: 0 2px;
    font-size: 0;
    opacity: 0.3;
  }
  .is-rent-patrimonio #patYieldSep::before {
    content: "|";
    font-size: 12px;
  }

  /* Cartera — cabecera: ocultar etiqueta de frecuencia, reducir botones */
  .is-cartera-freq-label          { display: none; }
  .is-carterapricestatus          { font-size: 9px; letter-spacing: 0.03em; }
  .is-button-14, .is-button-15    { padding: 4px 8px; gap: 4px; }
  .is-span-16                     { font-size: 9px; }
}

/* ── COUNTRY MODAL ───────────────────────────────────────────────────────── */
.is-countrymodal {
  position: fixed;
  inset: 0;
  z-index: 10010;
  background: rgba(0,0,0,0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.is-div-country {
  background: var(--overlay-bg);
  border: 1px solid rgba(var(--ar),0.18);
  border-radius: 18px;
  padding: 36px 28px;
  max-width: 400px;
  width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 40px rgba(var(--ar),0.08);
}

.is-div-country-icon {
  font-size: 42px;
  line-height: 1;
}

.is-div-country-title {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--accent);
  text-shadow: 0 0 16px rgba(var(--ar),0.4);
}

.is-div-country-sub {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
  max-width: 300px;
}

.is-country-modal-select {
  width: 100%;
  padding: 10px 30px 10px 12px;
  font-size: 13px;
}

.is-country-modal-err {
  font-size: 11px;
  color: #ff4d6d;
  min-height: 14px;
}

.is-country-modal-btn {
  width: 100%;
  padding: 12px;
  background: linear-gradient(135deg, rgba(var(--ar),0.15), rgba(var(--ar),0.08));
  border: 1px solid rgba(var(--ar),0.35);
  border-radius: 10px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
}
.is-country-modal-btn:hover {
  background: rgba(var(--ar),0.2);
  box-shadow: 0 0 16px rgba(var(--ar),0.2);
}

/* ── MOBILE AI BLOCK MODAL ──────────────────────────────────────────────── */
.is-mobileai-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,0.75);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:1.5rem}
.is-mobileai-card{background:var(--card-bg);border:1px solid rgba(var(--ar),0.25);border-radius:20px;padding:2.5rem 2rem 2rem;max-width:320px;width:100%;text-align:center;position:relative;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,0.5),0 0 0 1px rgba(var(--ar),0.08)}
.is-mobileai-glow{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.is-mobileai-icon{font-size:52px;margin-bottom:1.25rem;display:block;filter:drop-shadow(0 0 18px rgba(var(--ar),0.4))}
.is-mobileai-title{font-size:15px;font-weight:700;letter-spacing:0.2em;color:var(--accent);margin-bottom:0.4rem}
.is-mobileai-sub{font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem}
.is-mobileai-msg{font-size:13px;line-height:1.65;color:var(--text);opacity:0.8;margin-bottom:2rem}
.is-mobileai-btn{background:rgba(var(--ar),0.08);border:1px solid rgba(var(--ar),0.3);border-radius:10px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:0.15em;padding:10px 28px;cursor:pointer;font-family:'Space Grotesk',sans-serif;transition:all 0.2s}
.is-mobileai-btn:hover{background:rgba(var(--ar),0.16);border-color:rgba(var(--ar),0.5);transform:scale(1.03)}

/* ── WEB VIEWER MODAL ───────────────────────────────────────────────────── */
.is-webviewer-modal{position:fixed;inset:0;z-index:2000;background:var(--bg);display:flex;flex-direction:column}
.is-webviewer-header{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid rgba(var(--ar),0.15);background:var(--overlay-bg);flex-shrink:0}
.is-webviewer-back{background:none;border:1px solid rgba(var(--ar),0.2);border-radius:8px;color:var(--text);font-size:12px;font-weight:600;padding:5px 12px;cursor:pointer;font-family:'Space Grotesk',sans-serif;letter-spacing:0.06em;transition:all 0.2s;white-space:nowrap}
.is-webviewer-back:hover{border-color:rgba(var(--ar),0.5);color:var(--accent)}
.is-webviewer-title{font-size:13px;font-weight:600;color:var(--text);letter-spacing:0.06em;flex:1}
.is-webviewer-live{display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700;letter-spacing:0.08em;color:#ff4d6d;opacity:0.85}
.is-webviewer-frame{flex:1;width:100%;border:none;background:var(--bg)}
/* ── VALUEACADEMIA como página interna (estilo webviewer, no modal) ── */
.va-page{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;flex-direction:column}
.va-page-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid rgba(var(--ar),0.15);background:var(--overlay-bg);flex-shrink:0}
.va-page-header-left{display:flex;align-items:center;gap:14px;min-width:0}
.va-page-header-center{display:flex;align-items:center;justify-content:center;min-width:0}
.va-page-header-right{display:flex;align-items:center;gap:8px;justify-content:flex-end;min-width:0}
.va-page-titlewrap{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}
.va-page-title{font-size:13px;font-weight:700;letter-spacing:0.12em;color:var(--accent);text-shadow:0 0 16px rgba(var(--ar),0.4)}
.va-page-sub{font-size:10px;color:var(--muted);letter-spacing:0.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.va-page-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:20px;max-width:900px;width:100%;margin:0 auto}
@media(max-width:640px){
  .va-page-header{padding:9px 12px;gap:8px 10px;grid-template-columns:auto 1fr;grid-template-areas:"left right" "center center"}
  .va-page-header-left{grid-area:left;min-width:0}
  .va-page-header-center{grid-area:center;justify-content:center}
  .va-page-header-right{grid-area:right}
  .va-page-sub{display:none}
  .va-page-body{padding:14px}
}

/* ── MERCADOS TAB ───────────────────────────────────────────────────────── */
#tabMercados{flex-direction:column;gap:0}
.mercados-section{margin-bottom:1rem}
.mercados-section-header{display:flex;align-items:center;gap:10px;background:rgba(var(--ar),0.04);border:1px solid rgba(var(--ar),0.12);border-radius:10px;padding:10px 14px;cursor:pointer;width:100%;text-align:left;transition:all 0.2s;font-family:'Space Grotesk',sans-serif}
.mercados-section-header:hover{background:rgba(var(--ar),0.09);border-color:rgba(var(--ar),0.28)}
.mercados-section-icon{font-size:16px;flex-shrink:0}
.mercados-section-title{font-size:11px;font-weight:700;letter-spacing:0.18em;color:var(--text);flex:1}
.mercados-live{display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700;letter-spacing:0.08em;color:#ff4d6d;opacity:0.85}
.mercados-drag-handle{font-size:14px;color:var(--muted);opacity:0.4;cursor:grab;transition:opacity 0.2s;user-select:none}
.mercados-drag-handle:hover{opacity:0.8}
.mercados-draggable.mercados-dragging{opacity:0.3;transition:opacity 0.15s}
.mercados-draggable.mercados-drag-over{box-shadow:0 -2px 0 0 var(--accent);border-radius:10px}

.mercados-section-chevron{font-size:16px;color:var(--muted);transition:transform 0.25s ease;line-height:1}
.mercados-section-body{padding-top:0.75rem}
tv-economic-map{display:block;width:100%;height:480px;border-radius:10px;filter:invert(1) hue-rotate(180deg);opacity:0.88}
[data-theme=light] tv-economic-map,[data-theme=lpink] tv-economic-map{filter:none;opacity:1}
.mercados-row{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-bottom:1rem;align-items:start}
.mercados-half{margin-bottom:0}
.mercados-widget-wrap{border-radius:10px;overflow:hidden;border:1px solid rgba(var(--ar),0.1);max-width:100%;min-width:0}
.mercados-widget-wrap .tradingview-widget-container,.mercados-widget-wrap .tradingview-widget-container__widget{width:100%;height:100%}
.mercados-widget-tall{height:min(500px,62vh)}
.advanced-chart-wrap{height:min(500px,68vh);border-radius:10px;overflow:hidden;border:1px solid rgba(var(--ar),0.1);max-width:100%;min-width:0}
.heatmap-wrap{height:min(480px,60vh);border-radius:10px;overflow:hidden;border:1px solid rgba(var(--ar),0.1);max-width:100%;min-width:0}
.heatmap-wrap .tradingview-widget-container,.heatmap-wrap .tradingview-widget-container__widget{width:100%;height:100%}

/* Forzar que el <iframe> que TradingView inyecta respete el ancho del contenedor y no desborde la pantalla */
.mercados-widget-wrap iframe,.heatmap-wrap iframe,.advanced-chart-wrap iframe{width:100%!important;max-width:100%!important;display:block;border:0;box-sizing:border-box}
.mercados-section,.mercados-section-body{max-width:100%;min-width:0;overflow:hidden}
tv-economic-map{max-width:100%;min-width:0}

/* ── MARKETS COLLAPSIBLE ────────────────────────────────────────────────── */
.markets-collapse{margin-bottom:1rem}
.markets-header{display:flex;align-items:center;gap:10px;background:rgba(var(--ar),0.04);border:1px solid rgba(var(--ar),0.12);border-radius:10px;padding:10px 14px;cursor:pointer;width:100%;text-align:left;transition:all 0.2s;font-family:'Space Grotesk',sans-serif}
.markets-header:hover{background:rgba(var(--ar),0.09);border-color:rgba(var(--ar),0.28)}
.markets-live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:market-heartbeat 1.8s ease-in-out infinite}
.markets-title{font-size:11px;font-weight:700;letter-spacing:0.18em;color:var(--text);flex:1}
.markets-chevron{font-size:16px;color:var(--muted);transition:transform 0.25s ease;line-height:1}
.markets-body{padding-top:0.5rem;display:flex;flex-direction:column;gap:0}
.markets-body .tradingview-widget-container{width:100%;flex:1}
.markets-body .tradingview-widget-copyright{font-size:9px;opacity:0.5;margin-top:2px}
@keyframes market-heartbeat{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--ar),0.5)}30%{transform:scale(1.35);box-shadow:0 0 0 0 rgba(var(--ar),0.4)}50%{transform:scale(1);box-shadow:0 0 0 7px rgba(var(--ar),0)}70%{transform:scale(1.15);box-shadow:0 0 0 0 rgba(var(--ar),0.2)}}

/* ── TRADINGVIEW TICKER TAPE ─────────────────────────────────────────────── */
.tv-ticker-tape-widget{display:block;border-radius:10px;overflow:hidden;opacity:0.88;filter:invert(1) hue-rotate(180deg)}
.tv-ticker-tape-widget .tradingview-widget-container__widget{max-height:58px;overflow:hidden}
[data-theme=light] .tv-ticker-tape-widget,[data-theme=lpink] .tv-ticker-tape-widget{filter:none;opacity:1}

.tv-ticker-grid-widget{display:block;border-radius:0;overflow:hidden;filter:invert(1) hue-rotate(180deg);margin:0;padding:0}
.tv-ticker-grid-widget .tradingview-widget-container{margin:0;padding:0}
.tv-ticker-grid-widget .tradingview-widget-container__widget{width:100%;margin:0;padding:0}
.tv-ticker-grid-widget .tradingview-widget-container__widget table{width:100%}
[data-theme=light] .tv-ticker-grid-widget,[data-theme=lpink] .tv-ticker-grid-widget{filter:none}

@media(max-width:600px){
  /* TradingView ahora devuelve un unico <iframe> por widget; el grid antiguo lo dejaba en una columna estrecha y rompia el layout. Ahora cada fila ocupa el ancho completo y respeta el render interno. */
  .tv-ticker-grid-widget{display:block;width:100%;margin:0 0 6px 0;padding:0;border:none;overflow:hidden}
  .tv-ticker-grid-widget .tradingview-widget-container,
  .tv-ticker-grid-widget .tradingview-widget-container__widget{display:block;width:100%;margin:0;padding:0;max-height:none;min-height:0}
  .tv-ticker-grid-widget iframe{display:block;width:100%!important;max-width:100%!important;border:0}
  .tv-ticker-grid-widget:first-child iframe{height:68px!important;overflow:hidden!important;direction:rtl}
  .tv-ticker-grid-widget:nth-child(2){display:none!important}
  .tv-copyright-hide,.tv-copyright-hide *{display:none!important}
  .markets-body{gap:6px}
  .markets-body::after{content:'TradingView';font-size:8px;opacity:0.35;padding:0;text-align:center;width:100%;display:block}
  /* MERCADOS: en móvil, una sola columna y widgets más compactos para que no desborden la pantalla */
  .mercados-row{grid-template-columns:1fr}
  .mercados-widget-tall{height:min(380px,55vh)}
  .advanced-chart-wrap{height:min(400px,60vh)}
  .heatmap-wrap{height:min(360px,55vh)}
  tv-economic-map{height:min(360px,55vh)}
}

/* Country selects share fut-input select styling */
.is-ob-pais { width: 100%; }

/* ════════════════════════════════════════════════════════════════════════════
   SEGUIMIENTO PATRIMONIAL — botón header + modal con gráfico
   ════════════════════════════════════════════════════════════════════════════ */

/* Botón header — clonado del estilo de #contactBtn pero con label visible en escritorio */
.is-seguimientobtn{
  display:none;
  align-items:center;
  gap:6px;
  background:none;
  border:1px solid rgba(var(--ar),0.2);
  color:#4a7a99;
  padding:7px 10px;
  border-radius:8px;
  font-size:11px;
  font-weight:600;
  letter-spacing:0.1em;
  font-family:'Space Grotesk',sans-serif;
  cursor:pointer;
  transition:all 0.2s;
  width:fit-content;
  max-width:100%;
  box-sizing:border-box;
}
.is-seguimientobtn:hover{
  background:rgba(var(--ar),0.06);
}
.seg-btn-label{font-size:10px;white-space:nowrap}

/* Modal overlay full-screen */
.seg-modal{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.78);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:9999;
  /* El OVERLAY scrollea, no el inner — patrón robusto en móvil + desktop */
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;   /* iOS WKWebView */
  overscroll-behavior:contain;        /* evita "rubber band" hacia el body */
  padding:20px 0;
}
.seg-modal-inner{
  width:calc(100% - 40px);   /* simula padding lateral del overlay */
  max-width:726px;           /* +10% sobre 660 */
  margin:0 auto;             /* horizontal centrado */
  background:var(--bg);
  border:1px solid rgba(var(--ar),0.25);
  border-radius:16px;
  padding:22px;
  position:relative;
  box-shadow:0 0 60px rgba(var(--ar),0.15);
}
[data-theme=light] .seg-modal-inner,
[data-theme=lpink] .seg-modal-inner{
  background:var(--card-bg, #fff);
}

.seg-modal-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:20px;
}
.seg-modal-title{
  font-size:14px;
  font-weight:700;
  letter-spacing:0.12em;
  color:var(--accent);
  text-shadow:0 0 16px rgba(var(--ar),0.4);
}
.seg-modal-sub{
  font-size:11px;
  color:var(--muted);
  margin-top:4px;
  letter-spacing:0.04em;
}
.seg-close-btn{
  background:none;
  border:1px solid rgba(var(--ar),0.2);
  color:var(--muted);
  width:32px;height:32px;
  border-radius:8px;
  font-size:20px;
  line-height:1;
  cursor:pointer;
  transition:all 0.15s;
}
.seg-close-btn:hover{
  border-color:rgba(255,77,109,0.5);
  color:#ff4d6d;
  background:rgba(255,77,109,0.08);
}

.seg-range-bar{
  display:flex;
  gap:4px;
  background:rgba(var(--ar),0.05);
  border:1px solid rgba(var(--ar),0.1);
  border-radius:10px;
  padding:4px;
  margin-bottom:14px;
}
.seg-range-btn{
  flex:1;
  background:transparent;
  border:1px solid transparent;
  color:var(--muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:0.08em;
  padding:8px;
  border-radius:7px;
  cursor:pointer;
  font-family:'Space Grotesk',sans-serif;
  transition:all 0.15s;
}
.seg-range-btn:hover{ color:var(--accent); }
.seg-range-btn.active{
  background:rgba(var(--ar),0.12);
  border-color:rgba(var(--ar),0.3);
  color:var(--accent);
  box-shadow:0 0 10px rgba(var(--ar),0.2);
}

.seg-legend{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:8px;
  font-size:11px;
  color:var(--muted);
  letter-spacing:0.04em;
}
.seg-legend-item{
  display:flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  background:rgba(var(--ar),0.04);
  border:1px solid rgba(var(--ar),0.12);
  border-radius:14px;
  color:var(--muted);
  font-family:inherit;
  font-size:11px;
  letter-spacing:0.04em;
  cursor:pointer;
  transition:opacity .15s ease, background .15s ease, border-color .15s ease;
  user-select:none;
}
.seg-legend-item:hover{
  background:rgba(var(--ar),0.10);
  border-color:rgba(var(--ar),0.22);
}
.seg-legend-item.off{
  opacity:0.38;
  text-decoration:line-through;
}
.seg-legend-item.off .seg-legend-dot{
  background:#3a3a3a !important;
  box-shadow:none !important;
}
.seg-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}

.seg-chart-wrap{
  position:relative;
  background:rgba(var(--ar),0.03);
  border:1px solid rgba(var(--ar),0.08);
  border-radius:12px;
  padding:12px;
  margin-bottom:16px;
}
.seg-chart-host{
  position:relative;
  width:100%;
  min-height:281px;
}
.seg-chart-svg{
  display:block;
  width:100%;
  height:auto;
  max-height:314px;
}

.seg-hover-zone{cursor:crosshair}
.seg-hover-zone:hover{fill:rgba(var(--ar),0.06)}

.seg-tooltip{
  position:absolute;
  background:rgba(0,0,0,0.92);
  border:1px solid rgba(var(--ar),0.4);
  border-radius:8px;
  padding:8px 12px;
  font-size:11px;
  color:#e0f0ff;
  pointer-events:none;
  z-index:10;
  white-space:nowrap;
  box-shadow:0 4px 16px rgba(0,0,0,0.4);
}
.seg-tt-date{
  font-size:10px;
  color:rgba(255,255,255,0.6);
  letter-spacing:0.05em;
  margin-bottom:4px;
}
.seg-tt-row{display:flex;align-items:center;gap:6px;line-height:1.6}
.seg-tt-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.seg-tt-row strong{font-variant-numeric:tabular-nums}

.seg-loading,.seg-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:300px;
  text-align:center;
  color:var(--muted);
  padding:40px 20px;
}
.seg-empty-icon{font-size:48px;margin-bottom:12px;opacity:0.6}
.seg-empty-title{
  font-size:14px;
  font-weight:700;
  color:var(--accent);
  letter-spacing:0.1em;
  margin-bottom:8px;
}
.seg-empty-desc{
  font-size:12px;
  max-width:380px;
  line-height:1.6;
  color:var(--muted);
}

.seg-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:10px;
  margin-bottom:14px;
}
.seg-stat{
  background:rgba(var(--ar),0.04);
  border:1px solid rgba(var(--ar),0.1);
  border-radius:10px;
  padding:12px 14px;
}
.seg-stat-label{
  font-size:9px;
  letter-spacing:0.12em;
  color:var(--muted);
  text-transform:uppercase;
  font-weight:600;
}
.seg-stat-value{
  font-size:18px;
  font-weight:700;
  color:var(--accent);
  margin-top:4px;
  font-variant-numeric:tabular-nums;
}
.seg-stat-delta{
  font-size:10px;
  margin-top:3px;
  letter-spacing:0.04em;
  font-variant-numeric:tabular-nums;
}
.seg-stat-pos{color:#00ff9f}
.seg-stat-neg{color:#ff6b8a}

.seg-footer-note{
  font-size:10px;
  color:var(--muted);
  line-height:1.6;
  text-align:center;
  border-top:1px solid rgba(var(--ar),0.08);
  padding-top:12px;
  margin-top:8px;
}

@media (max-width:600px){
  .seg-modal-inner{padding:18px;border-radius:12px}
  .seg-modal-title{font-size:12px}
  .seg-chart-host{min-height:198px}
  .seg-stats{grid-template-columns:1fr 1fr}
}

/* Edición de snapshots — botón +Día, date picker, popover */
.seg-header-actions{
  display:flex;
  gap:8px;
  align-items:center;
}
.seg-refresh-today-btn{
  display:flex;
  align-items:center;
  gap:5px;
  background:rgba(var(--ar),0.08);
  border:1px solid rgba(var(--ar),0.3);
  color:var(--accent);
  height:32px;
  padding:0 12px;
  border-radius:8px;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.05em;
  font-family:'Space Grotesk',sans-serif;
  cursor:pointer;
  transition:all 0.15s;
}
.seg-refresh-today-btn:hover{
  background:rgba(var(--ar),0.15);
  box-shadow:0 0 12px rgba(var(--ar),0.25);
}
.seg-refresh-icon{
  font-size:16px;
  line-height:1;
  font-weight:400;
}
.seg-add-day-btn{
  display:flex;
  align-items:center;
  gap:5px;
  background:rgba(var(--ar),0.08);
  border:1px solid rgba(var(--ar),0.3);
  color:var(--accent);
  height:32px;
  padding:0 12px;
  border-radius:8px;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.1em;
  font-family:'Space Grotesk',sans-serif;
  cursor:pointer;
  transition:all 0.15s;
}
.seg-add-day-btn:hover{
  background:rgba(var(--ar),0.15);
  box-shadow:0 0 12px rgba(var(--ar),0.25);
}
.seg-add-day-plus{
  font-size:18px;
  line-height:1;
  font-weight:400;
}
.seg-date-picker-hidden{
  position:absolute;
  width:1px;height:1px;
  padding:0;border:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;
}

/* Hover-zone clickeable */
.seg-hover-zone{cursor:pointer}

/* Popover de edición — superpuesto al modal */
.seg-editor-popover{
  position:fixed;        /* respecto al viewport, no al .seg-modal-inner */
  inset:0;
  background:rgba(0,0,0,0.55);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:10000;         /* por encima del overlay del modal (9999) */
  animation:segPopFadeIn 0.15s ease-out;
}
@keyframes segPopFadeIn{
  from{opacity:0;transform:scale(0.97)}
  to{opacity:1;transform:scale(1)}
}
.seg-editor-inner{
  background:var(--bg);
  border:1px solid rgba(var(--ar),0.4);
  border-radius:14px;
  padding:22px 24px 18px;
  width:min(360px,calc(100% - 32px));
  box-shadow:0 0 40px rgba(var(--ar),0.25),0 8px 32px rgba(0,0,0,0.5);
}
[data-theme=light] .seg-editor-inner,
[data-theme=lpink] .seg-editor-inner{
  background:var(--card-bg, #fff);
}
.seg-editor-head{margin-bottom:14px}
.seg-editor-title{
  font-size:11px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--accent);
  text-shadow:0 0 12px rgba(var(--ar),0.3);
}
.seg-editor-date{
  font-size:14px;
  font-weight:600;
  color:var(--text);
  margin-top:4px;
  text-transform:capitalize;
}
.seg-editor-row{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:10px;
}
.seg-editor-label{
  font-size:9px;
  letter-spacing:0.12em;
  color:var(--muted);
  font-weight:600;
  text-transform:uppercase;
}
.seg-editor-input{
  width:100%;
  background:rgba(var(--ar),0.05);
  border:1px solid rgba(var(--ar),0.2);
  border-radius:8px;
  padding:9px 12px;
  color:var(--text);
  font-size:14px;
  font-family:'Space Grotesk',sans-serif;
  font-variant-numeric:tabular-nums;
  outline:none;
  transition:border-color 0.15s;
}
.seg-editor-input:focus{
  border-color:rgba(var(--ar),0.6);
  box-shadow:0 0 8px rgba(var(--ar),0.15);
}
.seg-editor-actions{
  display:flex;
  gap:6px;
  margin-top:14px;
  flex-wrap:wrap;
}
.seg-editor-btn{
  flex:1;
  min-width:90px;
  background:rgba(var(--ar),0.06);
  border:1px solid rgba(var(--ar),0.2);
  color:var(--muted);
  height:36px;
  padding:0 10px;
  border-radius:8px;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.1em;
  font-family:'Space Grotesk',sans-serif;
  cursor:pointer;
  transition:all 0.15s;
}
.seg-editor-btn:hover{color:var(--text)}
.seg-editor-save{
  background:rgba(0,212,255,0.12);
  border-color:rgba(0,212,255,0.4);
  color:#00d4ff;
}
.seg-editor-save:hover{
  background:rgba(0,212,255,0.18);
  box-shadow:0 0 12px rgba(0,212,255,0.25);
}
.seg-editor-delete{
  background:rgba(255,77,109,0.08);
  border-color:rgba(255,77,109,0.3);
  color:#ff4d6d;
  flex:0 0 auto;
}
.seg-editor-delete:hover{
  background:rgba(255,77,109,0.15);
}

@media (max-width:600px){
  .seg-add-day-label{display:none}
  .seg-add-day-btn{padding:0 9px}
  .seg-editor-actions{flex-direction:column}
  .seg-editor-btn{width:100%}
}

/* Variante morada del botón Seguimiento — usuarios free (gancho premium).
   Mismo color que el botón Suscribirse (#bf7fff). !important para vencer a los
   onmouseover/onmouseout inline del HTML. */
.is-seguimientobtn.seg-locked{
  background:rgba(191,127,255,0.08) !important;
  border-color:rgba(191,127,255,0.35) !important;
  color:#bf7fff !important;
}
.is-seguimientobtn.seg-locked:hover{
  background:rgba(191,127,255,0.18) !important;
  border-color:rgba(191,127,255,0.6) !important;
  color:#d4aaff !important;
  transform:scale(1.03);
}
.is-seguimientobtn.seg-locked .seg-btn-label{
  font-weight:700;
}

/* Variante verde del botón Seguimiento — usuarios suscritos.
   Mismo color que el botón 'SUSCRITO' (#00ff9f). */
.is-seguimientobtn.seg-active{
  background:rgba(0,255,159,0.10) !important;
  border-color:rgba(0,255,159,0.40) !important;
  color:#00ff9f !important;
}
.is-seguimientobtn.seg-active:hover{
  background:rgba(0,255,159,0.18) !important;
  border-color:rgba(0,255,159,0.65) !important;
  color:#5fffbe !important;
  box-shadow:0 0 12px rgba(0,255,159,0.25);
}
.is-seguimientobtn.seg-active .seg-btn-label{
  font-weight:700;
}
/* Tema light: verde oscuro legible sobre fondo claro */
[data-theme=light] .is-seguimientobtn.seg-active{
  background:rgba(5,77,40,0.10) !important;
  border-color:rgba(5,77,40,0.45) !important;
  color:#054d28 !important;
}
[data-theme=light] .is-seguimientobtn.seg-active:hover{
  background:rgba(5,77,40,0.18) !important;
  border-color:rgba(5,77,40,0.7) !important;
  color:#054d28 !important;
  box-shadow:0 0 10px rgba(5,77,40,0.3);
}

/* ── FIRE: tick compacto a la izquierda en filas de Ingresos / Gastos ─── */
.fire-check-mini{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;flex-shrink:0;
  border:1px solid rgba(var(--ar),0.3);
  border-radius:5px;
  background:rgba(var(--ar),0.04);
  cursor:pointer;
  transition:all 0.15s;
  margin-left:2px;
  margin-right:2px;
  position:relative;
}
.fire-check-mini:hover{
  border-color:rgba(0,255,159,0.5);
  background:rgba(0,255,159,0.08);
}
.fire-check-input{
  position:absolute;opacity:0;pointer-events:none;width:0;height:0;
}
.fire-check-mark{
  display:inline-flex;align-items:center;justify-content:center;
  color:transparent;
  transition:color 0.15s;
}
.fire-check-mini.fire-check-on{
  background:rgba(0,255,159,0.18);
  border-color:rgba(0,255,159,0.65);
  box-shadow:0 0 8px rgba(0,255,159,0.25);
}
.fire-check-mini.fire-check-on .fire-check-mark{
  color:#00ff9f;
}

/* ── Botón 'i' en cabecera de Ingresos / Gastos ───────────────────────── */
.fire-info-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;
  margin-left:8px;
  background:rgba(0,255,159,0.07);
  border:1px solid rgba(0,255,159,0.3);
  border-radius:50%;
  color:#00ff9f;
  font-size:10px;font-weight:700;font-style:italic;
  font-family:Georgia,'Times New Roman',serif;
  cursor:pointer;
  transition:all 0.15s;
  flex-shrink:0;
  line-height:1;
  padding:0;
}
.fire-info-btn:hover{
  background:rgba(0,255,159,0.2);
  box-shadow:0 0 10px rgba(0,255,159,0.3);
}
.fire-info-btn-red{
  background:rgba(255,77,109,0.07);
  border-color:rgba(255,77,109,0.3);
  color:#ff4d6d;
}
.fire-info-btn-red:hover{
  background:rgba(255,77,109,0.2);
  box-shadow:0 0 10px rgba(255,77,109,0.3);
}
.seg-info-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;
  margin-left:10px;
  background:rgba(0,212,255,0.07);
  border:1px solid rgba(0,212,255,0.3);
  border-radius:50%;
  color:#00d4ff;
  font-size:10px;font-weight:700;font-style:italic;
  font-family:Georgia,'Times New Roman',serif;
  cursor:pointer;
  transition:all 0.15s;
  flex-shrink:0;
  line-height:1;
  padding:0;
  vertical-align:middle;
}
.seg-info-btn:hover{
  background:rgba(0,212,255,0.2);
  box-shadow:0 0 10px rgba(0,212,255,0.3);
}
[data-theme=light] .seg-info-btn,
[data-theme=lpink] .seg-info-btn{
  background:rgba(0,212,255,0.12);
  border-color:rgba(0,212,255,0.5);
  color:#0088aa;
}
[data-theme=light] .seg-info-btn:hover,
[data-theme=lpink] .seg-info-btn:hover{
  background:rgba(0,212,255,0.25);
  box-shadow:0 0 10px rgba(0,212,255,0.4);
}

/* ── Modal info FIRE ─────────────────────────────────────────────────── */
.fire-info-modal{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.78);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:9999;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:20px 0;
  display:flex;
  align-items:flex-start;
  justify-content:center;
}
.fire-info-inner{
  width:calc(100% - 40px);
  max-width:540px;
  margin:auto;
  background:var(--bg);
  border:1px solid rgba(var(--ar),0.3);
  border-radius:14px;
  padding:24px 26px 22px;
  position:relative;
  box-shadow:0 0 40px rgba(var(--ar),0.2);
}
[data-theme=light] .fire-info-inner,
[data-theme=lpink] .fire-info-inner{background:var(--card-bg, #fff);}
.fire-info-close{
  position:absolute;top:12px;right:12px;
  background:none;
  border:1px solid rgba(var(--ar),0.2);
  color:var(--muted);
  width:30px;height:30px;
  border-radius:8px;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  transition:all 0.15s;
}
.fire-info-close:hover{
  border-color:rgba(255,77,109,0.5);
  color:#ff4d6d;
  background:rgba(255,77,109,0.08);
}
.fire-info-title{
  font-size:13px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--accent);
  text-shadow:0 0 12px rgba(var(--ar),0.4);
  padding-right:32px;
  margin-bottom:18px;
}
.fire-info-section{
  margin-bottom:14px;
  font-size:13px;
  color:var(--text);
  line-height:1.6;
}
.fire-info-section:last-child{margin-bottom:0;}
.fire-info-h{
  font-size:10px;
  font-weight:700;
  letter-spacing:0.12em;
  color:var(--accent);
  text-transform:uppercase;
  margin-bottom:6px;
}
.fire-info-section strong{color:var(--accent);font-weight:700;}

@media (max-width:600px){
  .fire-info-inner{padding:20px;border-radius:12px}
  .fire-info-title{font-size:12px;margin-bottom:14px}
  .fire-info-section{font-size:12px}
}

/* ── Cabecera de columnas en Ingresos / Gastos ───────────────────────── */
.flujo-list-header{
  display:flex;
  gap:8px;
  align-items:center;
  padding:8px 0 6px;
  margin-bottom:2px;
  border-bottom:1px solid rgba(var(--ar),0.10);
  font-size:9px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--muted);
  text-transform:uppercase;
  user-select:none;
}
.flujo-rh-cell{flex-shrink:0}
/* Primera columna ajustada al tick (22px) + un poco extra para los labels
   abreviados I.P / G.F → 38px es suficiente y queda más limpio. */
.flujo-rh-tick{
  width:38px;
  min-width:38px;
  color:#00ff9f;       /* mismo verde que el tick activo */
}
.flujo-list-header-red .flujo-rh-tick{color:#ff4d6d;}  /* rojo en gastos */
/* Segunda columna ocupa el espacio del input nombre */
.flujo-rh-name{
  flex:1;
}
/* Tercera columna alineada con la zona del importe (88px) + suffix + ×.
   Se posiciona a la derecha con padding para que cuadre con la celda del importe. */
.flujo-rh-amount{
  width:auto;
  margin-left:auto;
  padding-right:42px;  /* deja hueco para el botón × y el suffix */
  text-align:right;
}

/* En móvil (cuando la fila se rompe en 2 líneas con flex-wrap) la cabecera
   pierde sentido, así que la ocultamos para no desordenar el layout. */
@media (max-width:1060px){
  .flujo-list-header{
    padding:6px 0 4px;
  }
  .flujo-rh-tick{width:32px;min-width:32px;font-size:8px;letter-spacing:0.08em}
  .flujo-rh-name{display:none}    /* en móvil el nombre ocupa toda la fila, no hace falta etiqueta */
  .flujo-rh-amount{padding-right:36px;font-size:8px;letter-spacing:0.1em}
}

/* ════════════════════════════════════════════════════════════════════════
   Tarjeta FIRE en Flujo — Independencia Financiera
   ════════════════════════════════════════════════════════════════════════ */
.fire-card{
  background:linear-gradient(135deg, rgba(0,255,159,0.05), rgba(255,77,109,0.04));
  border:1px solid rgba(var(--ar),0.18);
  border-radius:12px;
  padding:14px 18px 12px;
  margin-top:18px;          /* separación respecto al elemento anterior (Extraordinarios) */
  margin-bottom:14px;
  position:relative;
  overflow:hidden;
}
[data-theme=light] .fire-card,
[data-theme=lpink] .fire-card{
  background:linear-gradient(135deg, rgba(0,255,159,0.10), rgba(255,77,109,0.06));
}

/* Cabecera del desplegable: botón clickable a ancho completo */
.fire-card-toggle{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  background:none;
  border:none;
  padding:0;
  margin:0;
  color:inherit;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
  user-select:none;
}
.fire-card-toggle:focus-visible{
  outline:2px solid rgba(var(--ar),0.4);
  outline-offset:2px;
  border-radius:6px;
}
.fire-card-chevron{
  margin-left:6px;
  display:inline-flex;
  align-items:center;
  color:var(--muted);
  transition:transform 0.25s ease, color 0.15s;
}
.fire-card-toggle:hover .fire-card-chevron{color:var(--accent);}

/* Body del desplegable: animación de altura */
.fire-card-body{
  margin-top:12px;
  overflow:hidden;
  transition:max-height 0.32s cubic-bezier(0.4,0,0.2,1), margin-top 0.25s, opacity 0.2s;
  max-height:400px;        /* generoso, basta para el contenido normal */
  opacity:1;
}

/* Estado colapsado */
.fire-card.fire-collapsed .fire-card-body{
  max-height:0;
  margin-top:0;
  opacity:0;
}
.fire-card.fire-collapsed .fire-card-chevron{
  transform:rotate(-90deg);
}
.fire-card.fire-collapsed{
  padding-bottom:14px;       /* compensa el margen perdido del body */
}

/* Cabecera ya no necesita el margin-bottom (lo lleva el body) */
.fire-card-head{
  display:flex;
  align-items:center;
  gap:10px;
}
.fire-card-icon{
  font-size:18px;
  filter:drop-shadow(0 0 8px rgba(255,159,63,0.5));
}
.fire-card-title{
  font-size:11px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--text);
  text-transform:uppercase;
  flex:1;
}
.fire-card-pct{
  font-size:22px;
  font-weight:800;
  letter-spacing:0.02em;
  font-variant-numeric:tabular-nums;
  transition:color 0.4s, text-shadow 0.4s;
}

/* Barra de progreso */
.fire-card-bar{
  position:relative;
  height:8px;
  background:rgba(var(--ar),0.08);
  border:1px solid rgba(var(--ar),0.12);
  border-radius:4px;
  overflow:hidden;
  margin-bottom:14px;
}
.fire-card-bar-fill{
  height:100%;
  border-radius:4px 0 0 4px;
  transition:width 0.6s cubic-bezier(0.16, 1, 0.3, 1), background 0.4s, box-shadow 0.4s;
}
/* Marcador del 100% (objetivo FIRE) — línea vertical sutil al final de la barra */
.fire-card-bar-marker{
  position:absolute;
  top:-2px;bottom:-2px;
  right:0;
  width:1px;
  background:rgba(0,255,159,0.5);
  box-shadow:0 0 6px rgba(0,255,159,0.4);
}

/* Stats: pasivos / fijos lado a lado */
.fire-card-stats{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.fire-card-stat{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:100px;
}
.fire-card-stat-label{
  font-size:9px;
  font-weight:700;
  letter-spacing:0.12em;
  color:var(--muted);
}
.fire-card-stat-val{
  font-size:16px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.fire-stat-green{color:#00ff9f;text-shadow:0 0 10px rgba(0,255,159,0.35);}
.fire-stat-red{color:#ff4d6d;text-shadow:0 0 10px rgba(255,77,109,0.35);}
.fire-card-stat-arrow{
  font-size:18px;
  color:var(--muted);
  font-weight:300;
  margin-bottom:14px;
}
.fire-card-stat-msg{
  flex:1;
  min-width:0;
  margin-left:auto;
  text-align:right;
  font-size:11px;
  font-weight:500;
  color:var(--muted);
  letter-spacing:0.04em;
  font-style:italic;
  line-height:1.4;
}

@media (max-width:600px){
  .fire-card{padding:12px 14px 10px}
  .fire-card-pct{font-size:18px}
  .fire-card-stat{min-width:80px}
  .fire-card-stat-val{font-size:14px}
  .fire-card-stat-arrow{display:none}
  .fire-card-stat-msg{flex:1 1 100%;text-align:left;margin-left:0;margin-top:6px}
}

/* ════════════════════════════════════════════════════════════════════════
   PROYECCIÓN DE FLUJO (premium) — bloque debajo del chart de Proyección
   ════════════════════════════════════════════════════════════════════════ */
.flow-proj-section{
  position:relative;
  margin-top:24px;
  padding-top:24px;
  border-top:1px dashed rgba(var(--ar),0.18);
}
.flow-proj-head{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:14px;
}
.flow-proj-title-wrap{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.flow-proj-icon{font-size:18px;filter:drop-shadow(0 0 8px rgba(0,255,159,0.4));}
.flow-proj-title{
  font-size:13px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--accent);
  text-shadow:0 0 12px rgba(var(--ar),0.4);
  text-transform:uppercase;
}
.flow-proj-sub{
  font-size:11px;
  color:var(--muted);
  letter-spacing:0.04em;
  font-style:italic;
}

/* 4 controles: ingresos / pasivos / gastos / fijos */
.flow-proj-ctrls{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:8px;
  margin-bottom:14px;
}
.flow-ctrl-box{
  display:flex;
  align-items:center;
  gap:6px;
  background:rgba(var(--ar),0.04);
  border:1px solid rgba(var(--ar),0.14);
  border-radius:10px;
  padding:9px 12px;
  transition:border-color 0.15s;
}
.flow-ctrl-box:hover{border-color:rgba(var(--ar),0.3);}
.flow-ctrl-label{
  font-size:9px;
  font-weight:700;
  letter-spacing:0.1em;
  color:var(--muted);
  flex:1;
  min-width:0;
  text-transform:uppercase;
}
.flow-ctrl-val{
  width:50px;
  background:rgba(var(--ar),0.06);
  border:1px solid rgba(var(--ar),0.18);
  border-radius:6px;
  padding:5px 7px;
  font-size:13px;
  font-weight:600;
  color:var(--text);
  font-family:'Space Grotesk',sans-serif;
  font-variant-numeric:tabular-nums;
  text-align:right;
  outline:none;
}
.flow-ctrl-val:focus{border-color:rgba(var(--ar),0.5);}
.flow-ctrl-suffix{
  font-size:9px;
  color:var(--muted);
  letter-spacing:0.03em;
  white-space:nowrap;
}

/* Card del chart */
.flow-proj-card{position:relative;}
.flow-chart-host{
  width:100%;
  min-height:280px;
  margin-top:8px;
}
.flow-chart-svg{display:block;width:100%;height:auto;max-height:300px;}

/* Leyenda */
.flow-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:11px;
  color:var(--muted);
  letter-spacing:0.04em;
  margin-bottom:6px;
}
.flow-legend-item{display:flex;align-items:center;gap:6px;}
.flow-legend-line{
  display:inline-block;
  width:18px;
  height:2.5px;
  border-radius:2px;
}
.flow-legend-ing{background:#7fffce;height:2px;background-image:linear-gradient(90deg,#7fffce 60%,transparent 60%);background-size:5px 100%;}
.flow-legend-pas{background:#00ff9f;}
.flow-legend-gas{background:#ff8a9d;height:2px;background-image:linear-gradient(90deg,#ff8a9d 60%,transparent 60%);background-size:5px 100%;}
.flow-legend-fij{background:#ff4d6d;}

/* Empty state */
.flow-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:240px;
  padding:20px;
}

/* Badge inferior con el año FIRE */
.flow-fire-badge{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:8px;
  margin-top:10px;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.04em;
}
.flow-fire-icon{font-size:16px;}
.flow-fire-badge-good{
  background:rgba(0,255,159,0.08);
  border:1px solid rgba(0,255,159,0.35);
  color:#00ff9f;
  text-shadow:0 0 8px rgba(0,255,159,0.25);
}
.flow-fire-badge-warn{
  background:rgba(255,159,63,0.08);
  border:1px solid rgba(255,159,63,0.3);
  color:#ff9f3f;
}

/* Gating: usuarios free → blur + overlay con CTA */
.flow-locked{
  filter:blur(2px) grayscale(0.6);
  pointer-events:none;
  user-select:none;
}
.flow-proj-lock{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.55);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  border-radius:12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
  z-index:5;
}
.flow-proj-lock-icon{font-size:32px;margin-bottom:10px;filter:drop-shadow(0 0 10px rgba(191,127,255,0.5));}
.flow-proj-lock-title{
  font-size:13px;
  font-weight:700;
  letter-spacing:0.14em;
  color:#bf7fff;
  margin-bottom:8px;
  text-transform:uppercase;
}
.flow-proj-lock-desc{
  font-size:12px;
  color:var(--text);
  max-width:380px;
  line-height:1.55;
  margin-bottom:16px;
}
.flow-proj-lock-btn{
  background:rgba(191,127,255,0.12);
  border:1px solid rgba(191,127,255,0.4);
  border-radius:8px;
  color:#bf7fff;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.1em;
  padding:11px 22px;
  cursor:pointer;
  font-family:'Space Grotesk',sans-serif;
  transition:all 0.2s;
}
.flow-proj-lock-btn:hover{
  background:rgba(191,127,255,0.22);
  border-color:rgba(191,127,255,0.7);
  color:#d4aaff;
  box-shadow:0 0 14px rgba(191,127,255,0.3);
  transform:scale(1.03);
}

@media (max-width:600px){
  .flow-proj-title{font-size:12px}
  .flow-proj-sub{display:none}
  .flow-chart-host{min-height:220px}
  .flow-chart-svg{max-height:240px}
}

/* ════════════════════════════════════════════════════════════════════════
   Verdes oscuros para temas claros (light + lpink)
   El verde fluo #00ff9f es ilegible sobre fondos claros — los componentes
   nuevos (FIRE, ticks, proyección de flujo) usan colores hardcoded; aquí
   los sustituimos por tonos más oscuros (#076432 = var(--income) en lpink).
   ════════════════════════════════════════════════════════════════════════ */

/* Tick FIRE activo */
[data-theme=light] .fire-check-mini.fire-check-on,
[data-theme=lpink] .fire-check-mini.fire-check-on{
  background:rgba(7,100,50,0.14);
  border-color:rgba(7,100,50,0.5);
  box-shadow:0 0 6px rgba(7,100,50,0.18);
}
[data-theme=light] .fire-check-mini.fire-check-on .fire-check-mark,
[data-theme=lpink] .fire-check-mini.fire-check-on .fire-check-mark{
  color:#076432;
}
[data-theme=light] .fire-check-mini:hover,
[data-theme=lpink] .fire-check-mini:hover{
  border-color:rgba(7,100,50,0.4);
  background:rgba(7,100,50,0.06);
}

/* Botón "i" verde (Ingresos) */
[data-theme=light] .fire-info-btn,
[data-theme=lpink] .fire-info-btn{
  background:rgba(7,100,50,0.10);
  border-color:rgba(7,100,50,0.4);
  color:#076432;
}
[data-theme=light] .fire-info-btn:hover,
[data-theme=lpink] .fire-info-btn:hover{
  background:rgba(7,100,50,0.18);
  box-shadow:0 0 8px rgba(7,100,50,0.3);
}

/* Cabecera columna I.P (verde de la cabecera de Ingresos) */
[data-theme=light] .flujo-rh-tick,
[data-theme=lpink] .flujo-rh-tick{
  color:#076432;
}

/* Tarjeta FIRE: gradiente y stat verde */
[data-theme=light] .fire-card,
[data-theme=lpink] .fire-card{
  background:linear-gradient(135deg, rgba(7,100,50,0.07), rgba(192,32,64,0.06));
  border-color:rgba(var(--ar),0.25);
}
[data-theme=light] .fire-stat-green,
[data-theme=lpink] .fire-stat-green{
  color:#076432;
  text-shadow:none;
}
/* Marcador 100% en la barra */
[data-theme=light] .fire-card-bar-marker,
[data-theme=lpink] .fire-card-bar-marker{
  background:rgba(7,100,50,0.55);
  box-shadow:0 0 4px rgba(7,100,50,0.4);
}

/* Proyección de flujo (premium) */
[data-theme=light] .flow-proj-icon,
[data-theme=lpink] .flow-proj-icon{
  filter:drop-shadow(0 0 5px rgba(7,100,50,0.4));
}
[data-theme=light] .flow-legend-pas,
[data-theme=lpink] .flow-legend-pas{
  background:#076432;
}
[data-theme=light] .flow-legend-ing,
[data-theme=lpink] .flow-legend-ing{
  background:#5db38a;
  background-image:linear-gradient(90deg,#5db38a 60%,transparent 60%);
}
[data-theme=light] .flow-legend-fij,
[data-theme=lpink] .flow-legend-fij{
  background:#c02040;
}
[data-theme=light] .flow-legend-gas,
[data-theme=lpink] .flow-legend-gas{
  background:#d97585;
  background-image:linear-gradient(90deg,#d97585 60%,transparent 60%);
}
[data-theme=light] .flow-fire-badge-good,
[data-theme=lpink] .flow-fire-badge-good{
  background:rgba(7,100,50,0.10);
  border-color:rgba(7,100,50,0.4);
  color:#076432;
  text-shadow:none;
}

/* ════════════════════════════════════════════════════════════════════════
   Tema LIGHT: tono verde aún más oscuro (#054d28) para mejor contraste
   sobre el fondo claro. Sobreescribe los valores compartidos light/lpink.
   ════════════════════════════════════════════════════════════════════════ */
[data-theme=light] .fire-check-mini.fire-check-on{
  background:rgba(5,77,40,0.14);
  border-color:rgba(5,77,40,0.5);
  box-shadow:0 0 6px rgba(5,77,40,0.18);
}
[data-theme=light] .fire-check-mini.fire-check-on .fire-check-mark{color:#054d28;}
[data-theme=light] .fire-check-mini:hover{
  border-color:rgba(5,77,40,0.4);
  background:rgba(5,77,40,0.06);
}
[data-theme=light] .fire-info-btn{
  background:rgba(5,77,40,0.10);
  border-color:rgba(5,77,40,0.4);
  color:#054d28;
}
[data-theme=light] .fire-info-btn:hover{
  background:rgba(5,77,40,0.18);
  box-shadow:0 0 8px rgba(5,77,40,0.3);
}
[data-theme=light] .flujo-rh-tick{color:#054d28;}
[data-theme=light] .fire-card{
  background:linear-gradient(135deg, rgba(5,77,40,0.07), rgba(192,32,64,0.06));
}
[data-theme=light] .fire-stat-green{color:#054d28;}
[data-theme=light] .fire-card-bar-marker{
  background:rgba(5,77,40,0.55);
  box-shadow:0 0 4px rgba(5,77,40,0.4);
}
[data-theme=light] .flow-proj-icon{filter:drop-shadow(0 0 5px rgba(5,77,40,0.4));}
[data-theme=light] .flow-legend-pas{background:#054d28;}
[data-theme=light] .flow-legend-ing{
  background:#3d8a64;
  background-image:linear-gradient(90deg,#3d8a64 60%,transparent 60%);
}
[data-theme=light] .flow-fire-badge-good{
  background:rgba(5,77,40,0.10);
  border-color:rgba(5,77,40,0.4);
  color:#054d28;
}
/* Proyección: cajas INVIERTO / RENT. AHORRO y sus inputs */
[data-theme=light] .is-ctrl-box-3{
  background:rgba(5,77,40,0.06);
  border:1px solid rgba(5,77,40,0.25);
}
[data-theme=light] .is-ctrl-label-2{color:#054d28;}
[data-theme=light] .is-pctinvertido,
[data-theme=light] .is-rentnueva{color:#054d28;}

/* Flujo > botón "Gastos e ingresos extraordinarios": en light mode el fondo
   semitransparente y el texto morado claro se ven lavados → invertimos
   contraste: fondo morado sólido oscuro + texto claro. Usamos !important
   para neutralizar los handlers inline onmouseover/onmouseout. */
[data-theme=light] .is-button-11{
  background:#5a2e9c !important;
  border:1px solid #5a2e9c !important;
  border-style:solid !important;
  color:#f4ecff !important;
  box-shadow:0 2px 8px rgba(90,46,156,0.25);
}
[data-theme=light] .is-button-11:hover{
  background:#46237c !important;
  border-color:#46237c !important;
  color:#ffffff !important;
  box-shadow:0 4px 12px rgba(90,46,156,0.35);
}
[data-theme=light] .is-button-11 svg rect,
[data-theme=light] .is-button-11 svg circle{
  stroke:#f4ecff !important;
  fill:#f4ecff !important;
}
/* Las <rect> sin fill no deben rellenarse */
[data-theme=light] .is-button-11 svg rect{fill:none !important;}
[data-theme=light] .is-button-11 svg circle{stroke:none !important;}

/* ════════════════════════════════════════════════════════════════════════
   MODO DE PRIVACIDAD — botón candado y modales
   ════════════════════════════════════════════════════════════════════════ */

/* Botón candado — mismo estilo que .theme-toggle-btn (su vecino derecho) */
.privacy-btn{
  background:rgba(var(--ar),0.06);
  border:1px solid rgba(var(--ar),0.18);
  border-radius:8px;
  color:var(--muted);
  padding:6px 10px;
  cursor:pointer;
  font-family:'Space Grotesk',sans-serif;
  transition:all 0.2s;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  line-height:1;
  width:fit-content;
  max-width:100%;
  box-sizing:border-box;
}
.privacy-btn:hover{
  border-color:rgba(var(--ar),0.4);
  color:var(--accent);
}
.privacy-icon{display:block;}

/* Estado activo: modo privado → ROJO claro y visible */
.privacy-btn.priv-on{
  background:rgba(255,77,109,0.12);
  border-color:rgba(255,77,109,0.55);
  color:#ff4d6d;
  box-shadow:0 0 8px rgba(255,77,109,0.35);
}
.privacy-btn.priv-on:hover{
  background:rgba(255,77,109,0.22);
  border-color:rgba(255,77,109,0.8);
  color:#ff7088;
  box-shadow:0 0 12px rgba(255,77,109,0.5);
}
[data-theme=light] .privacy-btn.priv-on,
[data-theme=lpink] .privacy-btn.priv-on{
  background:rgba(192,32,64,0.10);
  border-color:rgba(192,32,64,0.55);
  color:#c02040;
  box-shadow:0 0 6px rgba(192,32,64,0.3);
}

/* ── Modales de privacidad (overlay + inner scrollable) ──────────────── */
.priv-modal{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.78);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:9999;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:20px 0;
  display:none;            /* JS pone display:flex */
  align-items:flex-start;
  justify-content:center;
}
.priv-modal[style*="flex"]{display:flex !important;}

.priv-modal-inner{
  width:calc(100% - 40px);
  max-width:560px;
  margin:auto;
  background:var(--bg);
  border:1px solid rgba(var(--ar),0.3);
  border-radius:14px;
  padding:24px 26px 22px;
  position:relative;
  box-shadow:0 0 50px rgba(var(--ar),0.18);
}
[data-theme=light] .priv-modal-inner,
[data-theme=lpink] .priv-modal-inner{background:var(--card-bg, #fff);}

.priv-modal-warn{
  border-color:rgba(255,77,109,0.4) !important;
  box-shadow:0 0 50px rgba(255,77,109,0.2) !important;
}

.priv-modal-close{
  position:absolute;top:12px;right:12px;
  background:none;
  border:1px solid rgba(var(--ar),0.2);
  color:var(--muted);
  width:30px;height:30px;
  border-radius:8px;
  font-size:18px;line-height:1;
  cursor:pointer;
  transition:all 0.15s;
}
.priv-modal-close:hover{
  border-color:rgba(255,77,109,0.5);
  color:#ff4d6d;
  background:rgba(255,77,109,0.08);
}

.priv-modal-icon{
  font-size:32px;
  text-align:center;
  margin-bottom:8px;
  filter:drop-shadow(0 0 12px rgba(var(--ar),0.4));
}
.priv-modal-icon-warn{filter:drop-shadow(0 0 12px rgba(255,77,109,0.5));}

.priv-modal-title{
  text-align:center;
  font-size:14px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--accent);
  text-shadow:0 0 12px rgba(var(--ar),0.4);
  margin-bottom:14px;
  text-transform:uppercase;
}
.priv-modal-title-warn{
  color:#ff4d6d;
  text-shadow:0 0 12px rgba(255,77,109,0.4);
}

.priv-status-line{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-bottom:20px;
  font-size:12px;
}
.priv-status-label{color:var(--muted);font-weight:600;letter-spacing:0.08em;}
.priv-status-val{
  color:var(--accent);
  font-weight:700;
  letter-spacing:0.05em;
}
.priv-status-val.priv-status-on{color:#ff4d6d;}

.priv-modal-section{
  margin-bottom:14px;
  padding:12px 14px;
  background:rgba(var(--ar),0.04);
  border:1px solid rgba(var(--ar),0.1);
  border-radius:10px;
}
.priv-section-h{
  font-size:11px;
  font-weight:700;
  letter-spacing:0.1em;
  color:var(--accent);
  margin-bottom:6px;
}
.priv-section-body{
  font-size:12px;
  line-height:1.55;
  color:var(--text);
}
.priv-section-body strong{color:var(--accent);font-weight:700;}

.priv-modal-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:18px;
}

.priv-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  background:rgba(var(--ar),0.06);
  border:1px solid rgba(var(--ar),0.25);
  color:var(--text);
  height:42px;
  padding:0 14px;
  border-radius:9px;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.1em;
  font-family:'Space Grotesk',sans-serif;
  cursor:pointer;
  transition:all 0.15s;
  text-align:center;
}
.priv-btn:hover{
  background:rgba(var(--ar),0.12);
  border-color:rgba(var(--ar),0.45);
}
.priv-btn-active{
  outline:2px solid var(--accent);
  outline-offset:-2px;
  background:rgba(var(--ar),0.16);
}
.priv-btn-remote.priv-btn-active{
  background:rgba(0,212,255,0.15);
  border-color:rgba(0,212,255,0.5);
  color:#00d4ff;
}
.priv-btn-private.priv-btn-active{
  background:rgba(255,77,109,0.15);
  border-color:rgba(255,77,109,0.5);
  color:#ff4d6d;
}
[data-theme=light] .priv-btn-remote.priv-btn-active,
[data-theme=lpink] .priv-btn-remote.priv-btn-active{color:var(--accent);}
[data-theme=light] .priv-btn-private.priv-btn-active,
[data-theme=lpink] .priv-btn-private.priv-btn-active{color:#c02040;}

.priv-btn-delete{
  margin-top:6px;
  background:rgba(255,77,109,0.06);
  border-color:rgba(255,77,109,0.3);
  color:#ff4d6d;
}
.priv-btn-delete:hover{
  background:rgba(255,77,109,0.18);
  border-color:rgba(255,77,109,0.6);
  color:#ff7088;
}

.priv-modal-foot{
  text-align:center;
  font-size:10px;
  color:var(--muted);
  letter-spacing:0.05em;
  margin-top:14px;
  padding-top:10px;
  border-top:1px solid rgba(var(--ar),0.08);
  font-style:italic;
}

/* ── Submodal de confirmación de borrado ──────────────────────────────── */
.priv-warn-text{
  font-size:13px;
  line-height:1.6;
  color:var(--text);
  background:rgba(255,77,109,0.06);
  border:1px solid rgba(255,77,109,0.25);
  border-radius:10px;
  padding:14px 16px;
  margin-bottom:14px;
}
.priv-warn-text strong{color:#ff4d6d;font-weight:700;}
.priv-warn-recommend{
  font-size:11px;
  color:var(--muted);
  text-align:center;
  margin-bottom:14px;
  font-style:italic;
}
.priv-del-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.priv-btn-cancel{
  background:rgba(var(--ar),0.04);
  color:var(--muted);
}
.priv-btn-backup{
  background:rgba(0,212,255,0.10);
  border-color:rgba(0,212,255,0.4);
  color:#00d4ff;
}
.priv-btn-backup:hover{
  background:rgba(0,212,255,0.20);
  border-color:rgba(0,212,255,0.6);
}
[data-theme=light] .priv-btn-backup,
[data-theme=lpink] .priv-btn-backup{color:var(--accent);}
.priv-btn-delete-confirm{
  background:rgba(255,77,109,0.12);
  border-color:rgba(255,77,109,0.5);
  color:#ff4d6d;
  font-weight:700;
}
.priv-btn-delete-confirm:hover{
  background:rgba(255,77,109,0.25);
  border-color:rgba(255,77,109,0.75);
}

/* ── Modal de recordatorio al cargar ──────────────────────────────────── */
.priv-rem-text{
  font-size:13px;
  line-height:1.6;
  color:var(--text);
  background:rgba(255,77,109,0.05);
  border:1px solid rgba(255,77,109,0.25);
  border-radius:10px;
  padding:14px 16px;
  margin-bottom:18px;
}
.priv-rem-text strong{color:#ff4d6d;font-weight:700;}
.priv-rem-actions{
  display:flex;
  gap:8px;
  flex-direction:column;
}

@media (min-width:560px){
  .priv-del-actions,
  .priv-rem-actions{flex-direction:row;}
  .priv-del-actions .priv-btn,
  .priv-rem-actions .priv-btn{flex:1;}
}

@media (max-width:600px){
  .priv-modal-inner{padding:20px 18px;border-radius:12px;}
  .priv-modal-title{font-size:12px;}
  .priv-section-body, .priv-warn-text, .priv-rem-text{font-size:12px;}
}

/* ── Submodal de sincronización privado→remoto ──────────────────────── */
.priv-btn-sync-push,
.priv-btn-sync-pull,
.priv-btn-sync-skip{
  height:auto;
  padding:14px 16px;
  text-align:center;
  flex-direction:column;
  gap:4px;
  line-height:1.35;
}
.priv-btn-sync-push{
  background:rgba(0,212,255,0.08);
  border-color:rgba(0,212,255,0.35);
  color:#00d4ff;
}
.priv-btn-sync-push:hover{
  background:rgba(0,212,255,0.18);
  border-color:rgba(0,212,255,0.6);
}
.priv-btn-sync-pull{
  background:rgba(0,255,159,0.08);
  border-color:rgba(0,255,159,0.35);
  color:#00ff9f;
}
.priv-btn-sync-pull:hover{
  background:rgba(0,255,159,0.18);
  border-color:rgba(0,255,159,0.6);
}
.priv-btn-sync-skip{
  background:rgba(var(--ar),0.04);
  border-color:rgba(var(--ar),0.2);
  color:var(--muted);
}
.priv-btn-sync-skip:hover{
  background:rgba(var(--ar),0.10);
  color:var(--text);
}
[data-theme=light] .priv-btn-sync-push,
[data-theme=lpink] .priv-btn-sync-push{color:var(--accent);}
[data-theme=light] .priv-btn-sync-pull,
[data-theme=lpink] .priv-btn-sync-pull{
  background:rgba(7,100,50,0.10);
  border-color:rgba(7,100,50,0.4);
  color:#076432;
}

.priv-btn-sub{
  font-size:9px;
  font-weight:500;
  color:var(--muted);
  letter-spacing:0.04em;
  text-transform:none;
  display:block;
  margin-top:2px;
}

.priv-btn:disabled{
  opacity:0.55;
  cursor:wait;
  pointer-events:none;
}

/* ════════════════════════════════════════════════════════════
   MERCADOS OVERLAY (botón globe en header)
   ════════════════════════════════════════════════════════════ */
.mercados-overlay{position:fixed;inset:0;background:rgba(var(--ar),0.04);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;display:flex;align-items:stretch;justify-content:center;animation:mercadosFadeIn 0.25s ease}
@keyframes mercadosFadeIn{0%{opacity:0}100%{opacity:1}}
.mercados-overlay-inner{width:100%;max-width:1100px;height:100vh;background:var(--bg);border-left:1px solid rgba(var(--ar),0.18);border-right:1px solid rgba(var(--ar),0.18);display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:-20px 0 60px rgba(0,0,0,0.5)}
.mercados-overlay-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:linear-gradient(180deg,var(--bg) 70%,rgba(0,0,0,0));border-bottom:1px solid rgba(var(--ar),0.1);flex-shrink:0}
.mercados-overlay-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;letter-spacing:0.12em;color:var(--accent);text-shadow:0 0 16px rgba(var(--ar),0.4)}
.mercados-overlay-close{background:none;border:1px solid rgba(var(--ar),0.2);border-radius:50%;width:32px;height:32px;color:var(--muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s;line-height:1;padding:0}
.mercados-overlay-close:hover{border-color:rgba(var(--ar),0.5);color:var(--accent);background:rgba(var(--ar),0.08)}
.mercados-overlay-body{flex:1;overflow-y:auto;padding:14px 20px 32px;scrollbar-width:thin;scrollbar-color:rgba(var(--ar),0.25) transparent}
.mercados-overlay-body::-webkit-scrollbar{width:6px}
.mercados-overlay-body::-webkit-scrollbar-track{background:transparent}
.mercados-overlay-body::-webkit-scrollbar-thumb{background:rgba(var(--ar),0.25);border-radius:3px}
@media(max-width:600px){
  .mercados-overlay-inner{max-width:100%;border-left:none;border-right:none}
  .mercados-overlay-header{padding:12px 14px}
  .mercados-overlay-body{padding:12px 14px 24px}
}

/* Botón globe: color verde con contraste en TODOS los temas (mismo verde que "SUSCRIBIRSE") */
#mercadosBtn{color:#00ff9f}
#mercadosBtn:hover{color:#00ff9f;border-color:rgba(0,255,159,0.45);background:rgba(0,255,159,0.08)}
[data-theme=light] #mercadosBtn{color:#054d28}
[data-theme=light] #mercadosBtn:hover{color:#054d28;border-color:rgba(5,77,40,0.4);background:rgba(5,77,40,0.06)}
[data-theme=lpink] #mercadosBtn{color:#0a7a48}
[data-theme=lpink] #mercadosBtn:hover{color:#0a7a48;border-color:rgba(10,122,72,0.4);background:rgba(10,122,72,0.06)}

/* ════════════════════════════════════════════════════════════
   DASHBOARD "INICIO" — Tab 0
   Reutiliza .card / .metric / .corner-* / variables de tema.
   ════════════════════════════════════════════════════════════ */

/* Banner de bienvenida */
.dash-welcome{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:11px;letter-spacing:0.08em;color:var(--muted);text-transform:uppercase}
.dash-welcome-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px rgba(var(--ar),0.5)}
.dash-welcome-name{color:var(--accent);font-weight:600}

/* Grid principal */
.dash-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin-bottom:14px}
.dash-col-12{grid-column:span 12}
.dash-col-8{grid-column:span 8}
.dash-col-6{grid-column:span 6}
.dash-col-4{grid-column:span 4}
.dash-col-3{grid-column:span 3}

/* Bloque genérico (envuelve un .card) */
.dash-block{display:flex;flex-direction:column;gap:0}
.dash-block .card{margin-bottom:0;height:100%}

/* Hero de salud financiera */
.dash-hero{background:linear-gradient(135deg,rgba(var(--ar),0.08),rgba(191,127,255,0.05));border:1px solid rgba(var(--ar),0.18);border-radius:14px;padding:18px 20px;position:relative;overflow:hidden;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:18px;align-items:center}
.dash-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.dash-hero-cell{display:flex;flex-direction:column;gap:4px;min-width:0}
.dash-hero-alertrow{grid-column:1/-1;min-width:0}
.dash-hero-label{font-size:9px;font-weight:700;letter-spacing:0.14em;color:var(--muted);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-hero-val{font-size:22px;font-weight:700;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-hero-sub{font-size:10px;color:var(--muted);letter-spacing:0.05em;margin-top:2px}
.dash-hero-alert{margin-top:8px;padding:6px 12px;border-radius:7px;font-size:11px;line-height:1.35;display:flex;align-items:center;gap:8px}
.dash-hero-alert-ok{background:rgba(0,255,159,0.06);border:1px solid rgba(0,255,159,0.18);color:#00ff9f}
.dash-hero-alert-warn{background:rgba(255,159,63,0.06);border:1px solid rgba(255,159,63,0.2);color:#ff9f3f}
.dash-hero-alert-bad{background:rgba(255,77,109,0.06);border:1px solid rgba(255,77,109,0.2);color:#ff4d6d}
.dash-hero-alert-fire{background:rgba(191,127,255,0.06);border:1px solid rgba(191,127,255,0.2);color:#bf7fff}
[data-theme=light] .dash-hero-alert-ok,[data-theme=lpink] .dash-hero-alert-ok{color:#0a7840;background:rgba(10,120,64,0.08);border-color:rgba(10,120,64,0.25)}
[data-theme=light] .dash-hero-alert-warn,[data-theme=lpink] .dash-hero-alert-warn{color:#b06010;background:rgba(176,96,16,0.08);border-color:rgba(176,96,16,0.25)}
[data-theme=light] .dash-hero-alert-bad,[data-theme=lpink] .dash-hero-alert-bad{color:#c02040;background:rgba(192,32,64,0.08);border-color:rgba(192,32,64,0.25)}
[data-theme=light] .dash-hero-alert-fire,[data-theme=lpink] .dash-hero-alert-fire{color:#7744bb;background:rgba(119,68,187,0.08);border-color:rgba(119,68,187,0.25)}

/* Cartera (Live) — mini-stats dentro del card */
.dash-cartera-mini{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.dash-cartera-mini-box{border-radius:10px;padding:10px 12px;min-width:0;display:flex;flex-direction:column;gap:2px}
.dash-cartera-mini-box.purple{background:rgba(var(--ar-portfolio),0.05);border:1px solid rgba(var(--ar-portfolio),0.15);cursor:pointer;transition:background 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease}
.dash-cartera-mini-box.green{background:rgba(var(--ar-income),0.04);border:1px solid rgba(var(--ar-income),0.12)}
.dash-cartera-mini-label{font-size:9px;font-weight:700;letter-spacing:0.1em;color:var(--muted);text-transform:uppercase}
.dash-cartera-mini-val{font-size:18px;font-weight:700;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-cartera-mini-val.purple{color:var(--portfolio);text-shadow:0 0 8px rgba(var(--ar-portfolio),0.3)}
.dash-cartera-mini-val.green{color:var(--income);text-shadow:0 0 8px rgba(var(--ar-income),0.25)}
.dash-cartera-mini-sub{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* VALOR (purple) — clickable: abre el resumen de cartera con el donut expandido.
   En escritorio (puntero fino) muestra un hover elegante que indica que es pulsable. */
@media (hover:hover) and (pointer:fine){
  .dash-cartera-mini-box.purple:hover{
    background:rgba(var(--ar-portfolio),0.12);
    border-color:rgba(var(--ar-portfolio),0.5);
    box-shadow:0 0 14px rgba(var(--ar-portfolio),0.25);
    transform:translateY(-1px);
  }
  .dash-cartera-mini-box.purple:hover .dash-cartera-mini-val{text-shadow:0 0 12px rgba(var(--ar-portfolio),0.5)}
  .dash-cartera-mini-box.purple:active{transform:translateY(0);transition:transform 0.08s ease}
}
.dash-cartera-mini-box.purple:focus-visible{outline:2px solid rgba(var(--ar-portfolio),0.6);outline-offset:2px}

/* Mini-donut container */
.dash-mini-donut-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;padding:4px 0 0}
.dash-mini-donut-wrap svg{width:140px;height:140px;max-width:100%}
.dash-mini-legend{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;width:100%;font-size:10px}
.dash-mini-legend-item{display:flex;align-items:center;gap:6px;color:var(--muted);letter-spacing:0.04em;min-width:0}
.dash-mini-legend-item .ldot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 4px currentColor}
.dash-mini-legend-item .lval{color:var(--text);font-weight:600;margin-left:auto;white-space:nowrap}

/* Proyección chips */
.dash-proj-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.dash-proj-chip{background:rgba(var(--ar),0.04);border:1px solid rgba(var(--ar),0.12);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.dash-proj-chip.hl{background:rgba(0,212,255,0.06);border-color:rgba(0,212,255,0.22)}
.dash-proj-chip-label{font-size:9px;font-weight:700;letter-spacing:0.1em;color:var(--muted);text-transform:uppercase}
.dash-proj-chip-nom{font-size:16px;font-weight:700;color:#e0f0ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-proj-chip-real{font-size:11px;color:#ff9f3f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-theme=light] .dash-proj-chip-nom,[data-theme=lpink] .dash-proj-chip-nom{color:var(--text)}
.dash-proj-chart-wrap svg{width:100%;height:90px;display:block}

/* Top posiciones */
.dash-toppos-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto}
.dash-toppos-row{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:10px;align-items:center;padding:6px 8px;border-radius:8px;background:rgba(var(--ar),0.03);border:1px solid rgba(var(--ar),0.08);transition:background 0.15s}
.dash-toppos-row:hover{background:rgba(var(--ar),0.07)}
.dash-toppos-rank{font-size:10px;font-weight:700;color:var(--muted);width:18px;text-align:center}
.dash-toppos-tk{font-size:13px;font-weight:700;color:var(--accent);letter-spacing:0.05em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-toppos-name{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-toppos-pct{font-size:12px;font-weight:600;color:var(--text);text-align:right;white-space:nowrap}
.dash-toppos-pl{font-size:11px;font-weight:700;text-align:right;white-space:nowrap;min-width:54px}
.dash-toppos-pl.pos{color:#00ff9f}
.dash-toppos-pl.neg{color:#ff4d6d}
.dash-toppos-pl.zero{color:var(--muted)}
.dash-toppos-val{font-size:11px;color:var(--muted);text-align:right;white-space:nowrap;min-width:70px}
.dash-toppos-empty{text-align:center;padding:24px 12px;color:var(--muted);font-size:11px;letter-spacing:0.05em;line-height:1.6}
.dash-toppos-empty button{margin-top:8px;background:none;border:1px dashed rgba(var(--ar),0.3);color:var(--accent);padding:6px 14px;border-radius:6px;cursor:pointer;font-size:10px;letter-spacing:0.08em;font-family:inherit}
.dash-toppos-empty button:hover{border-style:solid;background:rgba(var(--ar),0.08)}

/* Sparkline seguimiento */
.dash-seg-wrap{display:flex;flex-direction:column;gap:8px}
.dash-seg-head{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap}
.dash-seg-val{font-size:20px;font-weight:700;color:var(--accent);text-align:right}
.dash-seg-range{display:inline-flex;gap:3px;background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.12);border-radius:8px;padding:3px;margin-left:auto}
.dash-seg-range-btn{background:transparent;border:1px solid transparent;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:0.05em;padding:4px 8px;border-radius:5px;cursor:pointer;font-family:inherit;transition:all 0.15s}
.dash-seg-range-btn:hover{color:var(--accent);background:rgba(var(--ar),0.06)}
.dash-seg-range-btn.active{background:rgba(var(--ar),0.15);border-color:rgba(var(--ar),0.35);color:var(--accent);box-shadow:0 0 6px rgba(var(--ar),0.18)}
@media (max-width:600px){
  .dash-seg-head{flex-direction:row;gap:6px}
  .dash-seg-val{flex:0 0 auto;text-align:right;font-size:16px}
  .dash-seg-range{flex:1 1 auto;justify-content:flex-end}
  .dash-seg-range-btn{padding:3px 6px;font-size:9px}
}
.dash-seg-open:hover{color:var(--accent);border-color:rgba(var(--ar),0.5);background:rgba(var(--ar),0.08)}
.dash-seg-delta{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;white-space:nowrap}
.dash-seg-delta.pos{background:rgba(0,255,159,0.08);color:#00ff9f}
.dash-seg-delta.neg{background:rgba(255,77,109,0.08);color:#ff4d6d}
.dash-seg-chart{width:100%;height:180px;display:block;cursor:default;border-radius:6px;background:rgba(var(--ar),0.02);overflow:visible;position:relative}
.dash-seg-chart svg[data-interactive="true"]{cursor:crosshair}
.dash-seg-hover-zone{transition:fill 0.12s}
.dash-seg-hover-zone:hover{fill:rgba(var(--ar),0.10) !important}

.dash-seg-tooltip{
  position:absolute;
  background:rgba(0,0,0,0.92);
  border:1px solid rgba(var(--ar),0.4);
  border-radius:8px;
  padding:7px 11px;
  font-size:10.5px;
  color:#e0f0ff;
  pointer-events:none;
  z-index:10;
  white-space:nowrap;
  box-shadow:0 4px 16px rgba(0,0,0,0.45);
  font-family:'Space Grotesk',sans-serif;
}
.dash-seg-tt-date{
  font-size:9.5px;
  color:rgba(255,255,255,0.6);
  letter-spacing:0.05em;
  margin-bottom:3px;
  text-transform:uppercase;
}
.dash-seg-tt-row{display:flex;align-items:center;gap:6px;line-height:1.55}
.dash-seg-tt-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}
.dash-seg-tt-row strong{font-variant-numeric:tabular-nums;font-weight:700}
.dash-seg-legend{display:flex;gap:8px;flex-wrap:wrap;padding:4px 2px 0;font-size:10px;letter-spacing:0.04em;color:var(--muted);text-transform:uppercase;align-items:center}
.dash-seg-leg-item{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.15);border-radius:14px;color:var(--muted);font-family:inherit;font-size:10px;font-weight:600;letter-spacing:0.05em;cursor:pointer;transition:background 0.15s,border-color 0.15s,opacity 0.15s;user-select:none;line-height:1}
.dash-seg-leg-item:hover{background:rgba(var(--ar),0.12);border-color:rgba(var(--ar),0.3);color:var(--accent)}
.dash-seg-leg-item:active{transform:scale(0.97)}
.dash-seg-leg-item.off{opacity:0.4;text-decoration:line-through;text-decoration-thickness:1px}
.dash-seg-leg-item.off .dash-seg-leg-dot{background:#3a3a3a !important;box-shadow:none !important;filter:grayscale(1)}
.dash-seg-leg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 4px currentColor;transition:background 0.15s,box-shadow 0.15s}
.dash-seg-leg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 4px currentColor}
.dash-seg-empty{text-align:center;padding:18px 12px;color:var(--muted);font-size:11px;line-height:1.6}
.dash-seg-empty button{margin-top:8px;background:none;border:1px dashed rgba(191,127,255,0.3);color:#bf7fff;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:10px;letter-spacing:0.08em;font-family:inherit}
.dash-seg-empty button:hover{border-style:solid;background:rgba(191,127,255,0.08)}

/* FIRE mini-bar */
.dash-fire-bar{height:6px;border-radius:3px;background:rgba(var(--ar),0.08);overflow:hidden;margin-top:8px;position:relative}
.dash-fire-fill{height:100%;border-radius:3px;transition:width 0.4s ease;background:linear-gradient(90deg,rgba(0,255,159,0.4),#00ff9f);box-shadow:0 0 6px rgba(0,255,159,0.4)}
.dash-fire-fill.warn{background:linear-gradient(90deg,rgba(255,159,63,0.4),#ff9f3f);box-shadow:0 0 6px rgba(255,159,63,0.4)}
.dash-fire-fill.bad{background:linear-gradient(90deg,rgba(255,77,109,0.4),#ff4d6d);box-shadow:0 0 6px rgba(255,77,109,0.4)}

/* Acciones rápidas */
.dash-quick-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:6px}
.dash-quick-btn{background:rgba(var(--ar),0.05);border:1px solid rgba(var(--ar),0.15);border-radius:10px;padding:12px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;transition:all 0.18s;font-family:inherit;text-align:center;min-width:0;position:relative;overflow:hidden;will-change:transform}
.dash-quick-btn .qicon{font-size:18px;line-height:1;width:22px;height:22px;display:flex;align-items:center;justify-content:center;transition:transform 0.25s cubic-bezier(0.34,1.56,0.64,1)}
.dash-quick-btn .qicon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;transition:transform 0.3s ease}

/* Per-button accent color (used on hover). Posiciones del grid (orden actual):
   1 INGRESO · 2 GASTO · 3 ACTIVOS · 4 CARTERA · 5 SEGUIMIENTO · 6 ANÁLISIS PATRIMONIO IA
   Usa variables de tema (--income / --expense / --accent / --portfolio) para que
   el hover tenga contraste correcto en los 7 temas automáticamente. */
.dash-quick-btn:nth-child(1){--qb-accent:var(--income);--qb-rgb:var(--ar-income,0,255,159)}    /* INGRESO         → verde */
.dash-quick-btn:nth-child(2){--qb-accent:var(--expense);--qb-rgb:var(--ar-expense,255,77,109)} /* GASTO           → rojo */
.dash-quick-btn:nth-child(3){--qb-accent:var(--accent);--qb-rgb:var(--ar,0,212,255)}           /* ACTIVOS         → accent */
.dash-quick-btn:nth-child(4){--qb-accent:var(--portfolio);--qb-rgb:var(--ar-portfolio,191,127,255)} /* CARTERA      → violeta */
.dash-quick-btn:nth-child(5){--qb-accent:var(--accent);--qb-rgb:var(--ar,0,212,255)}           /* SEGUIMIENTO     → accent */
.dash-quick-btn:nth-child(6){--qb-accent:var(--portfolio);--qb-rgb:var(--ar-portfolio,191,127,255)} /* ANÁLISIS IA → violeta */

/* Sweep de luz que cruza el botón en hover (pseudo-elemento) */
.dash-quick-btn::before{content:'';position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(120deg,transparent 0%,rgba(var(--qb-rgb),0.18) 50%,transparent 100%);transition:left 0.6s cubic-bezier(0.16,1,0.3,1);pointer-events:none;z-index:0}
.dash-quick-btn>*{position:relative;z-index:1}

/* Hover elegante — SOLO en dispositivos con puntero fino (ratón/trackpad).
   En móvil/táctil se queda el estado base, evitando sticky hover. */
@media (hover:hover) and (pointer:fine){
  .dash-quick-btn:hover{
    background:rgba(var(--qb-rgb),0.12);
    border-color:rgba(var(--qb-rgb),0.55);
    color:var(--qb-accent);
    transform:translateY(-3px) scale(1.04);
    box-shadow:0 8px 20px rgba(var(--qb-rgb),0.18),0 2px 6px rgba(0,0,0,0.25);
    text-shadow:0 0 12px rgba(var(--qb-rgb),0.5);
  }
  .dash-quick-btn:hover::before{left:120%}
  .dash-quick-btn:hover .qicon{transform:scale(1.18) rotate(-4deg)}
  .dash-quick-btn:hover .qicon svg{transform:scale(1.05)}
  .dash-quick-btn:active{transform:translateY(-1px) scale(1.01);transition:transform 0.08s ease}
}

/* Foco accesible (teclado) */
.dash-quick-btn:focus-visible{outline:2px solid var(--qb-accent);outline-offset:2px}

/* Estado vacío general */
.dash-empty-state{text-align:center;padding:28px 14px;color:var(--muted);font-size:11px;line-height:1.6;letter-spacing:0.05em}
.dash-empty-state-icon{font-size:28px;margin-bottom:6px;opacity:0.6}
.dash-empty-state button{margin-top:10px;background:none;border:1px dashed rgba(var(--ar),0.3);color:var(--accent);padding:7px 16px;border-radius:6px;cursor:pointer;font-size:11px;letter-spacing:0.08em;font-family:inherit;font-weight:600}
.dash-empty-state button:hover{border-style:solid;background:rgba(var(--ar),0.08)}
.tab:focus-visible,.dash-quick-btn:focus-visible,.dash-tour-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dash-quick-btn{min-height:64px}

/* Responsive */
@media(max-width:1060px){
  .dash-hero{grid-template-columns:1fr 1fr;gap:14px}
  .dash-col-8,.dash-col-6{grid-column:span 12}
  .dash-col-4,.dash-col-3{grid-column:span 6}
  .dash-quick-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:600px){
  .dash-grid{gap:10px}
  .dash-hero{grid-template-columns:1fr 1fr;padding:14px;gap:12px 10px;align-items:start}
  .dash-hero-val{font-size:16px}
  .dash-hero-label{font-size:8.5px;letter-spacing:0.1em}
  .dash-hero-sub{font-size:9.5px}
  .dash-fire-bar{height:5px;margin-top:6px}
  .dash-hero-alert{font-size:10.5px;padding:5px 11px;margin-top:6px;line-height:1.25}
  .dash-proj-chips{grid-template-columns:1fr}
  .dash-col-3,.dash-col-4,.dash-col-6,.dash-col-8,.dash-col-12{grid-column:span 12}
  .dash-quick-grid{grid-template-columns:repeat(2,1fr)}
  .dash-mini-donut-wrap svg{width:120px;height:120px}
  .dash-proj-chart-wrap svg{height:70px}
  .dash-cartera-mini-val{font-size:16px}
  .dash-cartera-mini-box{padding:9px 10px}
  .dash-toppos-row{grid-template-columns:auto 1fr auto auto auto;gap:8px;padding:5px 6px}
  .dash-toppos-name{font-size:9.5px}
  .dash-toppos-pct{font-size:11px}
}

/* Móviles pequeños (≤480px) — iPhone SE, mini, etc.
   El hero se convierte en un "window pane": 4 cuadrantes EXACTAMENTE iguales
   (mismo ancho y mismo alto) separados solo por líneas finas internas, formando
   un único bloque que reparte el 100% del ancho disponible de la pantalla. */
@media(max-width:480px){
  /* Banner de bienvenida */
  .dash-welcome{font-size:10px;gap:8px;letter-spacing:0.05em;flex-wrap:wrap;margin-bottom:10px}

  /* Hero — 2×2 window pane: 4 celdas del mismo tamaño separadas por líneas finas.
     · 2 columnas 1fr 1fr → cada celda = 50% del ancho
     · Celdas sin gap; la separación son bordes internos (1px)
     · Altura natural del contenido (sin min-height ni space-between)
       para que NO quede un hueco vacío grande en la parte inferior. */
  .dash-hero{
    padding:0;
    gap:0;
    grid-template-columns:1fr 1fr;
  }
  .dash-hero-cell{
    background:transparent;
    border:none;
    border-right:1px solid rgba(var(--ar),0.18);
    border-bottom:1px solid rgba(var(--ar),0.18);
    border-radius:0;
    padding:11px 13px;
    align-items:flex-start;
  }
  /* Quitamos los bordes que darían al exterior del hero (ya está el border del propio hero) */
  .dash-hero-cell:nth-child(2n){border-right:none}
  .dash-hero-cell:nth-child(n+3){border-bottom:none}
  .dash-hero-val{font-size:15.5px;line-height:1.15}
  .dash-hero-label{font-size:8px;letter-spacing:0.06em}
  .dash-hero-sub{font-size:9px}
  .dash-fire-bar{height:4px;border-radius:2px}
  .dash-hero-alert{font-size:10.5px;padding:5px 11px;gap:6px;margin:4px 12px 6px;line-height:1.25;border-radius:6px}

  /* Cartera (Live) mini-stats */
  .dash-cartera-mini{gap:8px;margin-bottom:10px}
  .dash-cartera-mini-box{padding:8px 10px;border-radius:9px}
  .dash-cartera-mini-val{font-size:14.5px}
  .dash-cartera-mini-sub{font-size:9.5px}

  /* Acciones rápidas — más compactas (sobre todo el botón "ANÁLISIS PATRIMONIO IA") */
  .dash-quick-grid{gap:6px}
  .dash-quick-btn{padding:10px 4px;font-size:9.5px;letter-spacing:0.04em;border-radius:9px;gap:5px}
  .dash-quick-btn .qicon{font-size:16px;width:20px;height:20px}

  /* Cabecera del chart de seguimiento: 2 filas
     · fila 1: label + valor
     · fila 2: rango 1M 3M 6M 1A MAX a todo ancho */
  .dash-seg-head{flex-direction:column;align-items:stretch;gap:6px}
  .dash-seg-val{align-self:flex-end;text-align:right;font-size:18px}
  .dash-seg-range{align-self:stretch;margin-left:0;justify-content:space-between;width:100%}
  .dash-seg-range-btn{flex:1 1 0;padding:5px 2px;font-size:9.5px;text-align:center}
  .dash-seg-delta{align-self:flex-end}
  .dash-seg-chart{height:160px}

  /* Top posiciones — ocultamos el nombre largo del activo para no comerse el ancho */
  .dash-toppos-row{grid-template-columns:auto 1fr auto auto auto;gap:7px;padding:5px 6px}
  .dash-toppos-name{display:none}
  .dash-toppos-val{min-width:54px;font-size:10px}
  .dash-toppos-tk{font-size:12px}
  .dash-toppos-pct{font-size:11px}
  .dash-toppos-pl{min-width:46px;font-size:10.5px}

  /* Proyección 20 años */
  .dash-proj-chips{grid-template-columns:1fr 1fr;gap:6px}
  .dash-proj-chip{padding:8px 10px;border-radius:9px}
  .dash-proj-chip-nom{font-size:14px}
  .dash-proj-chip-real{font-size:10px}
}


/* ═══ TOUR GUIADO (primera visita) ═══ */
#tourOverlay{position:fixed;inset:0;z-index:99999;pointer-events:none}
#tourOverlay.tour-dim{background:rgba(0,0,0,0.78);pointer-events:auto}
.tour-block{position:fixed;pointer-events:auto;background:transparent}
.tour-hole{position:fixed;border-radius:12px;box-shadow:0 0 0 200vmax rgba(0,0,0,0.78);border:1px solid rgba(var(--ar),0.7);transition:top 0.25s ease,left 0.25s ease,width 0.25s ease,height 0.25s ease;pointer-events:none}
.tour-hole.click{animation:tourPulse 1.4s ease-in-out infinite;border-color:var(--accent)}
@keyframes tourPulse{0%,100%{box-shadow:0 0 0 200vmax rgba(0,0,0,0.78),0 0 0 0 rgba(var(--ar),0.55)}50%{box-shadow:0 0 0 200vmax rgba(0,0,0,0.78),0 0 0 9px rgba(var(--ar),0.18)}}
.tour-click-hint{font-size:11.5px;font-weight:700;color:var(--accent);letter-spacing:0.04em;margin:-4px 0 12px;animation:tourHintBlink 1.4s ease-in-out infinite}
@keyframes tourHintBlink{0%,100%{opacity:1}50%{opacity:0.55}}
.tour-tip{position:fixed;pointer-events:auto;width:min(330px,calc(100vw - 24px));background:var(--card-bg,#0d1622);border:1px solid rgba(var(--ar),0.4);border-radius:14px;padding:16px 18px;box-shadow:0 12px 40px rgba(0,0,0,0.55);transition:top 0.25s ease,left 0.25s ease}
.tour-tip-title{font-size:13px;font-weight:700;letter-spacing:0.08em;color:var(--accent);margin-bottom:8px;text-transform:uppercase;padding-right:64px}
.tour-skip{position:absolute;top:9px;right:9px;font-family:inherit;font-size:9px;font-weight:700;letter-spacing:0.08em;padding:4px 8px;border-radius:6px;cursor:pointer;border:1px solid rgba(var(--ar),0.25);background:none;color:var(--muted);transition:color 0.15s,border-color 0.15s}
.tour-skip:hover{border-color:var(--accent);color:var(--accent)}
.tour-tip-body{font-size:12.5px;line-height:1.55;color:var(--text,#cfe8ff);margin-bottom:14px}
.tour-tip-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tour-progress{font-size:10px;color:var(--muted);letter-spacing:0.08em;margin-right:auto}
.tour-btn{font-family:inherit;font-size:10.5px;font-weight:700;letter-spacing:0.06em;padding:7px 12px;border-radius:7px;cursor:pointer;border:1px solid rgba(var(--ar),0.3);background:none;color:var(--muted);transition:color 0.15s,border-color 0.15s,background 0.15s}
.tour-btn:hover{border-color:var(--accent);color:var(--accent)}
.tour-btn.primary{background:rgba(var(--ar),0.12);border-color:var(--accent);color:var(--accent)}
.tour-btn.primary:hover{background:rgba(var(--ar),0.22)}
@media(max-width:600px){
  .tour-tip{padding:13px 14px}
  .tour-tip-body{font-size:12px}
}


/* ═══ FEEDBACK TÁCTIL AL PULSAR (móvil + desktop) ═══
   Efecto visual claro de "he pulsado": encoge ligeramente y se ilumina. */
.dash-quick-btn,.dash-cartera-mini-box,.dash-toppos-row,.dash-seg-range-btn,
.dash-card-link,.tab,.pill,.dash-tour-btn,.tour-btn,.tour-skip,.trending-toggle-btn{
  -webkit-tap-highlight-color:transparent;
  transition:transform 0.12s ease,filter 0.12s ease,background 0.12s ease,border-color 0.12s ease;
}
.dash-quick-btn:active{transform:scale(0.94);background:rgba(var(--ar),0.18)!important;border-color:var(--accent);filter:brightness(1.2)}
.dash-cartera-mini-box:active{transform:scale(0.96);filter:brightness(1.35)}
.dash-toppos-row:active{transform:scale(0.985);background:rgba(var(--ar),0.14)}
.dash-seg-range-btn:active,.pill:active{transform:scale(0.92);filter:brightness(1.3)}
.tab:active{transform:scale(0.95);filter:brightness(1.25)}
.dash-tour-btn:active,.tour-btn:active,.tour-skip:active,.trending-toggle-btn:active{transform:scale(0.9);filter:brightness(1.3)}
.dash-card-link:active{transform:scale(0.94);filter:brightness(1.3)}
.btn-expandir{-webkit-tap-highlight-color:transparent;transition:transform 0.12s ease,filter 0.12s ease}
.btn-expandir:active{transform:scale(0.92);filter:brightness(1.35)}

/* Botón Tutorial en el perfil */
.prof-tutorial-btn{display:block;width:100%;margin:4px 0 12px;padding:9px 12px;background:rgba(var(--ar),0.06);border:1px dashed rgba(var(--ar),0.35);border-radius:8px;color:var(--accent);font-family:inherit;font-size:11px;font-weight:700;letter-spacing:0.08em;cursor:pointer;transition:background 0.15s,border-color 0.15s,transform 0.12s}
.prof-tutorial-btn:hover{background:rgba(var(--ar),0.14);border-style:solid}
.prof-tutorial-btn:active{transform:scale(0.97)}

/* ═══ MERCADOS móvil: ticker tape en lugar de los widgets grandes ═══ */
.mercados-ticker-tape{display:none;color-scheme:dark;border-radius:10px;overflow:hidden;border:1px solid rgba(var(--ar),0.12)}
[data-theme=light] .mercados-ticker-tape,[data-theme=lpink] .mercados-ticker-tape{color-scheme:light}
@media(max-width:600px){
  .mercados-ticker-tape{display:block}
  .markets-body .tv-ticker-grid-widget{display:none!important}
}

/* ════════════════════════════════════════════════════════════════════════════
   FF6 — Nuevas funciones (CSV import · Dividendos · Notificaciones · What-if ·
   Benchmark · Informe mensual) — añadido 2026-06-11
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Bell button (header) ──────────────────────────────────────────────────── */
.ff6-bell-btn { position: relative; }
.ff6-bell-dot {
  position: absolute; top: 4px; right: 4px; width: 7px; height: 7px;
  border-radius: 50%; background: #ff5470;
  box-shadow: 0 0 6px rgba(255,84,112,0.8);
}

/* ── Botones pequeños en card-head de cartera ─────────────────────────────── */
.ff6-cartera-btn { gap: 4px; align-items: center; }

/* ── Modal ancho (CSV / Dividendos) ───────────────────────────────────────── */
.ff6-modal-wide { max-width: 760px !important; width: min(760px, 94vw) !important; }

.ff6-label {
  font-size: 10px; letter-spacing: 0.12em; color: var(--accent, #00d4ff);
  opacity: 0.85; font-weight: 700;
}
.ff6-select {
  padding: 6px 10px; font-size: 12px; min-width: 170px;
  background: rgba(0,0,0,0.25); border: 1px solid rgba(var(--ar),0.25);
  border-radius: 6px; color: inherit;
}
.ff6-note { font-size: 11px; opacity: 0.65; line-height: 1.5; margin: 10px 0 0; }
.ff6-csv-row { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }

.ff6-dropzone {
  border: 1.5px dashed rgba(var(--ar),0.4); border-radius: 10px;
  padding: 26px 16px; text-align: center; cursor: pointer;
  font-size: 12.5px; opacity: 0.8; transition: all .15s ease;
  margin-bottom: 12px;
}
.ff6-dropzone:hover, .ff6-dropzone.ff6-dragover {
  border-color: var(--accent, #00d4ff); opacity: 1;
  background: rgba(var(--ar),0.06); box-shadow: 0 0 14px rgba(var(--ar),0.15) inset;
}
.ff6-csv-detected { font-size: 11.5px; margin: 4px 0 10px; color: #2dd4a3; }
.ff6-csv-detected.ff6-err { color: #ff7c4d; }

.ff6-csv-preview { max-height: 300px; overflow: auto; border: 1px solid rgba(var(--ar),0.18); border-radius: 8px; margin-bottom: 10px; }
.ff6-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.ff6-table th {
  position: sticky; top: 0; background: rgba(10,20,30,0.92); backdrop-filter: blur(4px);
  text-align: left; padding: 7px 9px; font-size: 10px; letter-spacing: 0.08em;
  color: var(--accent, #00d4ff); border-bottom: 1px solid rgba(var(--ar),0.25);
  z-index: 1;
}
[data-theme="light"] .ff6-table th, [data-theme="lightpink"] .ff6-table th { background: rgba(240,245,250,0.95); }
.ff6-table td { padding: 5px 9px; border-bottom: 1px solid rgba(var(--ar),0.08); }
.ff6-table input[type="text"], .ff6-table input[type="number"] {
  width: 90px; padding: 4px 6px; font-size: 12px;
  background: rgba(0,0,0,0.2); border: 1px solid rgba(var(--ar),0.2);
  border-radius: 5px; color: inherit;
}
.ff6-table input.ff6-cell-name { width: 130px; }
.ff6-csv-dup { display: flex; flex-direction: column; gap: 6px; font-size: 12px; margin-bottom: 12px; }
.ff6-csv-dup label { display: flex; align-items: flex-start; gap: 7px; cursor: pointer; opacity: 0.85; }

.ff6-modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; }

/* ── Dividendos ───────────────────────────────────────────────────────────── */
.ff6-div-totals {
  display: flex; gap: 14px; flex-wrap: wrap; margin-top: 14px;
  padding: 12px 14px; border: 1px solid rgba(var(--ar),0.2); border-radius: 10px;
  background: rgba(var(--ar),0.05);
}
.ff6-div-total-item { display: flex; flex-direction: column; gap: 2px; min-width: 120px; }
.ff6-div-total-label { font-size: 9.5px; letter-spacing: 0.1em; opacity: 0.6; font-weight: 700; }
.ff6-div-total-value { font-size: 17px; font-weight: 800; color: #2dd4a3; }
.ff6-div-total-value.ff6-muted { color: inherit; opacity: 0.9; }
.ff6-div-fire-note { font-size: 11px; opacity: 0.7; margin-top: 10px; line-height: 1.5; }
.ff6-div-empty { font-size: 12.5px; opacity: 0.7; padding: 18px 6px; text-align: center; }

/* ── Dividendos · sub-sección CASH en cartera ─────────────────────────────── */
/* CASH:EUR / CASH:USD se contabiliza como Banco (no como dividendo). Tono verde banco
   para que el usuario lo identifique como sección paralela, no parte de los dividendos. */
.ff6-div-cash {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(0,255,159,0.25);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(0,255,159,0.06), rgba(0,255,159,0.02));
}
.ff6-div-cash-head { display:flex; flex-direction:column; gap:3px; margin-bottom:10px; }
.ff6-div-cash-title {
  font-size: 10px; font-weight: 800; letter-spacing: 0.1em; color: #00ff9f;
  display: flex; align-items: center; gap: 6px;
}
.ff6-div-cash-title::before { content: '💰'; font-size: 12px; }
.ff6-div-cash-tip { font-size: 11px; opacity: 0.7; line-height: 1.45; }
.ff6-table.ff6-table-cash th { color: #00ff9f; }
.ff6-table.ff6-table-cash td { border-bottom: 1px solid rgba(0,255,159,0.12); }
[data-theme="light"] .ff6-div-cash,
[data-theme="lightpink"] .ff6-div-cash {
  background: linear-gradient(180deg, rgba(0,160,100,0.07), rgba(0,160,100,0.02));
  border-color: rgba(0,140,80,0.3);
}
[data-theme="light"] .ff6-div-cash-title,
[data-theme="lightpink"] .ff6-div-cash-title { color: #0a6b3d; }
[data-theme="light"] .ff6-table.ff6-table-cash th,
[data-theme="lightpink"] .ff6-table.ff6-table-cash th { color: #0a6b3d; }

/* ── Notificaciones ───────────────────────────────────────────────────────── */
.ff6-perm-btn { width: 100%; margin-bottom: 14px; font-size: 11px; }
.ff6-perm-btn[disabled] { opacity: 0.55; cursor: default; }
.ff6-notif-settings { display: flex; flex-direction: column; gap: 8px; font-size: 12.5px; margin-bottom: 16px; }
.ff6-notif-settings label { display: flex; align-items: center; gap: 8px; cursor: pointer; opacity: 0.85; }
.ff6-threshold-row { padding-left: 24px; font-size: 11.5px; opacity: 0.75; }
.ff6-mini-input { width: 58px; padding: 3px 6px; font-size: 12px; }
.ff6-notif-log-head {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 10px; letter-spacing: 0.12em; opacity: 0.6; font-weight: 700; margin-bottom: 6px;
}
.ff6-link-btn { background: none; border: none; color: var(--accent, #00d4ff); font-size: 10.5px; cursor: pointer; opacity: 0.8; }
.ff6-link-btn:hover { opacity: 1; text-decoration: underline; }
.ff6-notif-log { max-height: 220px; overflow: auto; display: flex; flex-direction: column; gap: 6px; }
.ff6-notif-item {
  display: flex; gap: 9px; align-items: flex-start; font-size: 12px; line-height: 1.45;
  padding: 8px 10px; border: 1px solid rgba(var(--ar),0.14); border-radius: 8px;
  background: rgba(var(--ar),0.04);
}
.ff6-notif-item .ff6-notif-ts { font-size: 10px; opacity: 0.5; display: block; margin-top: 1px; }
.ff6-notif-log-empty { font-size: 12px; opacity: 0.55; text-align: center; padding: 14px 0; }

/* ── Toasts ───────────────────────────────────────────────────────────────── */
.ff6-toast-host {
  position: fixed; bottom: 18px; right: 18px; z-index: 99999;
  display: flex; flex-direction: column; gap: 10px; pointer-events: none;
  max-width: min(360px, calc(100vw - 36px));
}
.ff6-toast {
  pointer-events: auto; display: flex; gap: 10px; align-items: center;
  padding: 12px 16px; border-radius: 10px; font-size: 13px; line-height: 1.4;
  background: rgba(8,18,28,0.94); color: #e8f4ff;
  border: 1px solid rgba(0,255,159,0.35);
  box-shadow: 0 6px 24px rgba(0,0,0,0.45), 0 0 18px rgba(0,255,159,0.12);
  animation: ff6ToastIn .28s ease;
}
.ff6-toast .ff6-toast-icon { font-size: 20px; }
.ff6-toast.ff6-out { animation: ff6ToastOut .3s ease forwards; }
@keyframes ff6ToastIn  { from { transform: translateY(14px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes ff6ToastOut { to { transform: translateY(10px); opacity: 0; } }

/* ── What-if simulator ────────────────────────────────────────────────────── */
.ff6-whatif-section { margin-top: 26px; }
.ff6-whatif-ctrls { align-items: center; }
.ff6-whatif-payoff {
  display: flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 700;
  letter-spacing: 0.08em; cursor: pointer; opacity: 0.85;
  border: 1px solid rgba(var(--ar),0.25); border-radius: 8px; padding: 9px 12px;
}
.ff6-whatif-payoff:hover { opacity: 1; border-color: rgba(var(--ar),0.5); }
.ff6-legend-line { display: inline-block; width: 22px; height: 0; border-top: 2.5px solid; margin-right: 6px; vertical-align: middle; }
.ff6-line-base { border-color: #4a7a99; border-top-style: dashed; }
.ff6-line-what { border-color: #00ff9f; }
.ff6-whatif-result {
  margin-top: 10px; font-size: 13.5px; font-weight: 700; text-align: center;
  letter-spacing: 0.02em;
}
.ff6-whatif-result .ff6-pos { color: #00ff9f; text-shadow: 0 0 12px rgba(0,255,159,0.35); }
.ff6-whatif-result .ff6-neg { color: #ff7c4d; }

/* ── Benchmark ────────────────────────────────────────────────────────────── */
#benchModal .ff6-select { min-width: 150px; }
.ff6-bench-empty { text-align: center; padding: 44px 18px; opacity: 0.75; font-size: 13px; line-height: 1.6; }
.ff6-bench-empty .ff6-bench-empty-icon { font-size: 30px; display: block; margin-bottom: 10px; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .ff6-modal-wide { width: 96vw !important; }
  .ff6-table input[type="text"], .ff6-table input[type="number"] { width: 64px; }
  .ff6-table input.ff6-cell-name { width: 90px; }
  .ff6-whatif-payoff { width: 100%; justify-content: center; }
  .ff6-toast-host { bottom: 74px; }
}

/* ════════════════════════════════════════════════════════════════════════════
   FF7 — Ingresos automáticos (Dividendos / Alquileres) + botón ALQUILER
   ════════════════════════════════════════════════════════════════════════════ */

/* Filas automáticas bloqueadas en Ingresos */
.ff6-auto-row {
  background: rgba(45,212,163,0.05);
  border: 1px solid rgba(45,212,163,0.22) !important;
  border-radius: 8px;
}
.ff6-auto-row input.nombre { color: #2dd4a3; font-weight: 700; letter-spacing: 0.02em; }
.ff6-auto-row input.ff6-locked { opacity: 0.95; color: #2dd4a3; font-weight: 700; }
.ff6-auto-row input[readonly] { pointer-events: auto; }
.ff6-sync-badge {
  flex-shrink: 0; font-size: 12px; color: #2dd4a3; opacity: 0.85;
  margin: 0 2px; cursor: help; animation: ff6SyncSpin 6s linear infinite;
  display: inline-block;
}

/* Fila automática «Hipotecas» (gasto) en NARANJA, para distinguirla de un ingreso */
.ff6-auto-row.ff6-auto-mort {
  background: rgba(255,124,77,0.08);
  border: 1px solid rgba(255,124,77,0.3) !important;
}
.ff6-auto-row.ff6-auto-mort input.nombre,
.ff6-auto-row.ff6-auto-mort input.ff6-locked { color: #ff7c4d; }
.ff6-auto-row.ff6-auto-mort .ff6-sync-badge { color: #ff7c4d; }
@keyframes ff6SyncSpin { 0%,80% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Botón ALQUILER en inmuebles */
.ff6-alq-btn {
  flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px;
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em;
  padding: 5px 9px; border-radius: 7px; cursor: pointer;
  background: rgba(191,127,255,0.07); color: #bf7fff;
  border: 1px solid rgba(191,127,255,0.3);
  transition: all .15s ease;
}
.ff6-alq-btn:hover { background: rgba(191,127,255,0.18); box-shadow: 0 0 10px rgba(191,127,255,0.25); }
.ff6-alq-btn.ff6-on { background: rgba(45,212,163,0.1); color: #2dd4a3; border-color: rgba(45,212,163,0.4); }
.ff6-alq-input { width: 76px !important; }
.ff6-alq-suffix { font-size: 10px; letter-spacing: 0.04em; }

@media (max-width: 600px) {
  .ff6-alq-btn { padding: 5px 7px; font-size: 9px; }
  .ff6-alq-input { width: 64px !important; }
}

/* FF8 tour foot: hasta 3 botones en pasos interactivos */
.tour-tip-foot { flex-wrap: wrap; row-gap: 6px; }

/* ════════════════════════════════════════════════════════════════════════════
   FF11 — Menú compacto de acciones en la card CARTERA
   ════════════════════════════════════════════════════════════════════════════ */
.ff6-cmenu-wrap { position: relative; display: inline-flex; flex-shrink: 0; }
.ff6-cmenu {
  display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 5000;
  min-width: 200px; padding: 6px; border-radius: 10px;
  background: rgba(8,16,26,0.97); border: 1px solid rgba(191,127,255,0.35);
  box-shadow: 0 10px 30px rgba(0,0,0,0.5), 0 0 18px rgba(191,127,255,0.12);
  flex-direction: column; gap: 2px;
}
.ff6-cmenu.open { display: flex; }
.ff6-cmenu button {
  display: flex; align-items: center; gap: 9px; width: 100%;
  background: none; border: none; cursor: pointer; text-align: left;
  padding: 9px 10px; border-radius: 7px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em; color: #bf7fff;
  transition: background .12s ease;
}
.ff6-cmenu button:hover { background: rgba(191,127,255,0.14); }
[data-theme="light"] .ff6-cmenu, [data-theme="lightpink"] .ff6-cmenu {
  background: rgba(250,252,255,0.98);
  box-shadow: 0 10px 30px rgba(30,50,80,0.18);
}
@media (max-width: 600px) {
  .ff6-cmenu { right: -8px; min-width: 185px; }
}

/* FF12 — menú ⋮ y "Actualizado" pegados al borde derecho de la card CARTERA */
#carteraMenuWrap { margin-left: auto; }
.is-carterapricestatus { margin-left: 0; text-align: right; flex-shrink: 0; }

/* ════════════════════════════════════════════════════════════════════════════
   FF13 — Menú ⋮ SOLO en móvil; escritorio mantiene los 4 botones de siempre
   ════════════════════════════════════════════════════════════════════════════ */
.ff6-cmenu-wrap { display: none; }
.ff6-head-desktop { display: flex; }
.is-carterapricestatus { margin-left: 10px; text-align: left; }
@media (max-width: 600px) {
  .ff6-head-desktop { display: none !important; }
  .ff6-cmenu-wrap { display: inline-flex; margin-left: auto; }
  .is-carterapricestatus { margin-left: 0; text-align: right; flex-shrink: 0; }
}

/* ════════════════════════════════════════════════════════════════════════════
   FF14 — Resumen pulsable de dividendos en la card RENDIMIENTO
   ════════════════════════════════════════════════════════════════════════════ */
.ff6-divsum {
  display: block; width: 100%; margin-top: 12px; padding: 11px 13px;
  background: rgba(45,212,163,0.05); border: 1px solid rgba(45,212,163,0.28);
  border-radius: 10px; cursor: pointer; text-align: left;
  transition: all .15s ease; color: inherit;
}
.ff6-divsum:hover {
  background: rgba(45,212,163,0.1); border-color: rgba(45,212,163,0.55);
  box-shadow: 0 0 14px rgba(45,212,163,0.18);
}
.ff6-divsum-head {
  display: flex; align-items: center; gap: 7px;
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em; color: #2dd4a3;
  margin-bottom: 8px;
}
.ff6-divsum-arrow { margin-left: auto; font-size: 15px; opacity: 0.7; }
.ff6-divsum-row { display: flex; gap: 14px; flex-wrap: wrap; }
.ff6-divsum-item { display: flex; flex-direction: column; gap: 2px; min-width: 84px; }
.ff6-divsum-lbl { font-size: 9px; letter-spacing: 0.1em; opacity: 0.6; font-weight: 700; }
.ff6-divsum-val { font-size: 16px; font-weight: 800; color: #2dd4a3; }
.ff6-divsum-hint { font-size: 10.5px; opacity: 0.6; margin-top: 7px; }
@media (max-width: 600px) {
  .ff6-divsum-row { gap: 10px; }
  .ff6-divsum-val { font-size: 14px; }
}


/* ════ FF12 — Cuadro de amortización de hipotecas ════ */
.amort-row-btn{background:rgba(255,124,77,0.10);border:1px solid rgba(255,124,77,0.35);color:#ff7c4d;border-radius:8px;width:30px;height:30px;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,box-shadow .15s;padding:0;line-height:1}
.amort-row-btn:hover{background:rgba(255,124,77,0.22);box-shadow:0 0 10px rgba(255,124,77,0.35)}
.amort-global-btn{background:rgba(255,124,77,0.12);border:1px solid rgba(255,124,77,0.4);color:#ff7c4d;border-radius:8px;width:26px;height:26px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:8px;transition:background .15s,box-shadow .15s;padding:0;line-height:1;vertical-align:middle}
.amort-global-btn:hover{background:rgba(255,124,77,0.25);box-shadow:0 0 10px rgba(255,124,77,0.4)}

.amort-modal{position:fixed;inset:0;z-index:9000;background:rgba(2,10,20,0.78);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto}
.amort-modal-inner{position:relative;background:linear-gradient(160deg,#06182b,#03101d);border:1px solid rgba(255,124,77,0.28);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.6);max-width:880px;width:100%;padding:26px 24px 20px;font-family:'Space Grotesk',sans-serif}
.amort-modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:#4a7a99;font-size:26px;line-height:1;cursor:pointer;transition:color .15s}
.amort-modal-close:hover{color:#ff7c4d}
.amort-modal-title{font-size:14px;font-weight:700;letter-spacing:0.12em;color:#ff7c4d;margin-bottom:16px;padding-right:30px}
.amort-sub-title{font-size:13px;font-weight:600;color:#e0f0ff;letter-spacing:0.04em;margin:22px 0 10px}
.amort-summary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.amort-summary-global{margin-bottom:6px}
.amort-kpi{flex:1;min-width:120px;background:rgba(0,212,255,0.05);border:1px solid rgba(0,212,255,0.14);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column;gap:3px}
.amort-kpi span{font-size:9px;letter-spacing:0.1em;color:#4a7a99;text-transform:uppercase}
.amort-kpi b{font-size:15px;font-weight:700;color:#e0f0ff}
.amort-table-wrap{max-height:340px;overflow-y:auto;border:1px solid rgba(255,255,255,0.06);border-radius:10px}
.amort-table{width:100%;border-collapse:collapse;font-size:12px}
.amort-table thead th{position:sticky;top:0;background:#0a1f33;color:#9ec5e0;font-size:9px;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;padding:8px 10px;text-align:right;border-bottom:1px solid rgba(255,124,77,0.25)}
.amort-table thead th:first-child{text-align:center}
.amort-table tbody td{padding:6px 10px;text-align:right;color:#cfe6f5;border-bottom:1px solid rgba(255,255,255,0.04)}
.amort-table tbody td:first-child{text-align:center;color:#4a7a99;font-weight:600}
.amort-table tbody tr:hover td{background:rgba(255,124,77,0.06)}
.amort-empty{font-size:12px;color:#4a7a99;text-align:center;padding:32px 0}
.amort-modal-note{font-size:10px;color:#4a7a99;margin-top:12px;line-height:1.5;font-style:italic}

/* Tema claro */
[data-theme="light"] .amort-modal-inner,[data-theme="lpink"] .amort-modal-inner{background:linear-gradient(160deg,#fff,#f3f6fa);border-color:rgba(255,124,77,0.4)}
[data-theme="light"] .amort-kpi b,[data-theme="lpink"] .amort-kpi b{color:#0a2540}
[data-theme="light"] .amort-table tbody td,[data-theme="lpink"] .amort-table tbody td{color:#1a2a3a}
[data-theme="light"] .amort-table thead th,[data-theme="lpink"] .amort-table thead th{background:#ffe6d8;color:#7a3a1a}
[data-theme="light"] .amort-sub-title,[data-theme="lpink"] .amort-sub-title{color:#0a2540}


/* ════ FF17 — Fila info dividendos en Activos→Inversión ════ */
.ff17-divrow{cursor:pointer;border-radius:8px;transition:background .2s;padding-left:10px}
.ff17-divrow:hover{background:rgba(45,212,163,0.06)}


/* ════ FF12 — Gráfica del cuadro de amortización ════ */
.amort-chart{margin:4px 0 16px;background:rgba(0,212,255,0.03);border:1px solid rgba(255,255,255,0.06);border-radius:10px;padding:12px 12px 6px}
.amort-chart-legend{display:flex;gap:18px;justify-content:flex-end;margin-bottom:6px;font-size:10px;color:#9ec5e0;letter-spacing:0.04em}
.amort-chart-legend span{display:inline-flex;align-items:center;gap:6px}
.amort-chart-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.amort-chart svg rect{transition:opacity .15s}
.amort-chart svg rect:hover{opacity:1}
[data-theme="light"] .amort-chart,[data-theme="lpink"] .amort-chart{background:rgba(0,90,140,0.04)}
[data-theme="light"] .amort-chart-legend,[data-theme="lpink"] .amort-chart-legend{color:#3a5a70}

/* ════════════════════════════════════════════════════════════════════
   FF18 — PANEL BALANCE: barras horizontales Ingresos vs Gastos
   Reemplaza visualmente las 3 tarjetas en modo flujo (tabs 0,1,2,4).
   En Cartera (tab 3) se ocultan y reaparecen las tarjetas originales.
   ════════════════════════════════════════════════════════════════════ */
.flowbars{
  position:relative;
  background:rgba(var(--ar),0.05);
  border:1px solid rgba(var(--ar),0.15);
  border-radius:14px;
  padding:1.05rem 1.25rem 1.15rem;
  margin-bottom:1.5rem;
  overflow:hidden;
}
[data-theme=light] .flowbars,[data-theme=lpink] .flowbars{
  background:var(--card-bg);box-shadow:0 2px 10px rgba(0,0,0,0.07);
}
.flowbars::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
}
.flowbars-corner{position:absolute;width:12px;height:12px;border-color:rgba(var(--ar),0.4);border-style:solid;pointer-events:none}
.flowbars-corner.tl{top:8px;left:8px;border-width:1px 0 0 1px}
.flowbars-corner.tr{top:8px;right:8px;border-width:1px 1px 0 0}
.flowbars-corner.bl{bottom:8px;left:8px;border-width:0 0 1px 1px}
.flowbars-corner.br{bottom:8px;right:8px;border-width:0 1px 1px 0}

.fb-row{display:flex;align-items:center;gap:12px}
.fb-row + .fb-row{margin-top:14px}
.fb-side{
  flex:0 0 92px;display:flex;flex-direction:column;gap:1px;cursor:pointer;
  transition:opacity .15s;
}
.fb-side:hover{opacity:0.85}
.fb-side-label{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);line-height:1.2}
.fb-side-val{font-size:18px;font-weight:700;white-space:nowrap;line-height:1.1;font-variant-numeric:tabular-nums}
.fb-side-val.inc{color:var(--income);text-shadow:0 0 14px rgba(var(--ar-income),0.45)}
.fb-side-val.exp{color:var(--expense);text-shadow:0 0 14px rgba(var(--ar-expense),0.45)}
[data-theme=light] .fb-side-val,[data-theme=lpink] .fb-side-val{text-shadow:none}

.fb-track{
  position:relative;flex:1;height:26px;border-radius:8px;
  background:rgba(var(--ar),0.07);
  border:1px solid rgba(var(--ar),0.10);
  overflow:hidden;
}
[data-theme=light] .fb-track,[data-theme=lpink] .fb-track{background:rgba(0,0,0,0.05)}
.fb-fill{
  position:absolute;top:0;bottom:0;left:0;display:flex;
  width:0;border-radius:7px;overflow:hidden;
  transition:width .15s linear; /* JS controla el width; esto suaviza micro-cambios */
}
.fb-seg{height:100%;transition:width .15s linear}
/* Ingresos: activo (sólido) + pasivo (rayado más claro) */
.fb-seg.inc-active{background:var(--income)}
.fb-seg.inc-passive{
  background:
    repeating-linear-gradient(45deg,
      rgba(var(--ar-income),0.85) 0 6px,
      rgba(var(--ar-income),0.55) 6px 12px);
}
/* Gastos: fijo (sólido) + variable (rayado más claro) */
.fb-seg.exp-fixed{background:var(--expense)}
.fb-seg.exp-var{
  background:
    repeating-linear-gradient(45deg,
      rgba(var(--ar-expense),0.85) 0 6px,
      rgba(var(--ar-expense),0.5) 6px 12px);
}
.fb-fill.inc{box-shadow:0 0 16px rgba(var(--ar-income),0.4)}
.fb-fill.exp{box-shadow:0 0 16px rgba(var(--ar-expense),0.4)}
[data-theme=light] .fb-fill,[data-theme=lpink] .fb-fill{box-shadow:none}

/* Marca del valor opuesto sobre la barra (para comparar a simple vista) */
.fb-marker{
  position:absolute;top:-2px;bottom:-2px;width:2px;
  background:var(--text);opacity:0.35;border-radius:2px;
  transition:left .15s linear;pointer-events:none;
}

/* Pie: ahorro + tasa de ahorro */
.fb-foot{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-top:14px;padding-top:12px;
  border-top:1px solid rgba(var(--ar),0.12);
}
.fb-save-lbl{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted)}
.fb-save-wrap{display:flex;align-items:baseline;gap:10px}
.fb-save-val{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.fb-save-rate{
  font-size:12px;font-weight:700;padding:3px 9px;border-radius:20px;
  font-variant-numeric:tabular-nums;
}

/* Leyenda compacta de segmentos */
.fb-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px}
.fb-legend span{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);letter-spacing:0.04em}
.fb-legend i{width:11px;height:11px;border-radius:3px;flex-shrink:0;display:inline-block}
.fb-legend i.inc-active{background:var(--income)}
.fb-legend i.inc-passive{background:repeating-linear-gradient(45deg,rgba(var(--ar-income),0.85) 0 4px,rgba(var(--ar-income),0.5) 4px 8px)}
.fb-legend i.exp-fixed{background:var(--expense)}
.fb-legend i.exp-var{background:repeating-linear-gradient(45deg,rgba(var(--ar-expense),0.85) 0 4px,rgba(var(--ar-expense),0.5) 4px 8px)}

@media(max-width:560px){
  .fb-side{flex:0 0 74px}
  .fb-side-val{font-size:15px}
  .fb-track{height:22px}
  .fb-save-val{font-size:18px}
  .fb-legend{gap:5px 10px}
}

/* ===== Barra de partición de activos (Patrimonio Total) ===== */
.patbar{ margin-top:10px; }
.patbar-track{
  position:relative; display:flex; width:100%; height:13px;
  border-radius:7px; overflow:hidden; cursor:pointer;
  background:rgba(var(--ar),0.07);
  border:1px solid rgba(var(--ar),0.12);
}
.patbar-seg{
  position:relative; height:100%; min-width:0;
  transition:flex-grow .55s cubic-bezier(.22,1,.36,1), filter .2s ease, opacity .2s ease;
  outline:none;
}
.patbar-seg + .patbar-seg{ box-shadow:-1px 0 0 rgba(0,0,0,0.25); }
.patbar-seg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,0.22), rgba(255,255,255,0) 55%);
  opacity:.0; transition:opacity .2s ease; pointer-events:none;
}
.patbar-seg.is-empty{ flex:0 0 0 !important; }
.patbar-seg:hover, .patbar-seg.is-active{
  filter:brightness(1.18) saturate(1.1);
}
.patbar-seg:hover::after, .patbar-seg.is-active::after{ opacity:1; }
.patbar-track:hover .patbar-seg:not(:hover){ opacity:.55; }

/* Leyenda */
.patbar-legend{
  display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:9px;
}
.patbar-leg-item{
  display:flex; align-items:center; gap:6px; cursor:pointer;
  padding:2px 4px; border-radius:6px; line-height:1.1;
  transition:background .18s ease, transform .18s cubic-bezier(.22,1,.36,1), opacity .18s ease;
}
.patbar-leg-item:hover, .patbar-leg-item.is-active{
  background:rgba(var(--ar),0.08); transform:translateY(-1px);
}
.patbar-leg-item.is-zero{ opacity:.42; }
.patbar-leg-dot{
  width:9px; height:9px; border-radius:50%; flex-shrink:0;
  transition:box-shadow .2s ease, transform .2s cubic-bezier(.22,1,.36,1);
}
.patbar-leg-item:hover .patbar-leg-dot, .patbar-leg-item.is-active .patbar-leg-dot{
  transform:scale(1.35);
}
.patbar-leg-label{ font-size:10.5px; letter-spacing:.04em; color:var(--muted); }
.patbar-leg-pct{ font-size:11px; font-weight:700; font-variant-numeric:tabular-nums; }

/* Pulso al hacer click (scroll a sección) */
@keyframes patbarPulse{
  0%{ box-shadow:0 0 0 0 currentColor; }
  100%{ box-shadow:0 0 0 8px transparent; }
}
.patbar-seg.is-pulse{ animation:patbarPulse .5s ease-out; }

/* Resaltado de la sección destino al navegar */
@keyframes patbarFlash{
  0%,100%{ box-shadow:0 0 0 0 rgba(var(--ar),0); }
  35%{ box-shadow:0 0 0 2px rgba(var(--ar),0.55), 0 0 22px rgba(var(--ar),0.35); }
}
.patbar-flash{ animation:patbarFlash 1.1s ease-out; border-radius:14px; }

/* ===== Selector de divisa por fila de Banco/Efectivo ===== */
.cur-btn{
  font-size:12px; font-weight:600; color:var(--accent);
  background:rgba(var(--ar),0.08); border:1px solid rgba(var(--ar),0.22);
  border-radius:7px; padding:3px 7px; cursor:pointer; line-height:1;
  display:inline-flex; align-items:center; gap:3px; min-width:0; flex-shrink:0;
  transition:background .18s ease, border-color .18s ease, transform .12s ease;
}
.cur-btn:hover{ background:rgba(var(--ar),0.16); border-color:rgba(var(--ar),0.45); }
.cur-btn:active{ transform:scale(.94); }
.cur-caret{ font-size:8px; opacity:.7; }

.cur-menu{
  z-index:10000; min-width:96px;
  background:var(--card-bg,#0d1929);
  border:1px solid rgba(var(--ar),0.30);
  border-radius:10px; padding:4px;
  box-shadow:0 10px 32px rgba(0,0,0,0.55);
  opacity:0; transform:translateY(-6px) scale(.97);
  transition:opacity .14s ease, transform .14s cubic-bezier(.22,1,.36,1);
}
.cur-menu.is-open{ opacity:1; transform:translateY(0) scale(1); }
.cur-menu-opt{
  display:flex; align-items:center; gap:9px; width:100%;
  background:transparent; border:0; cursor:pointer;
  padding:7px 10px; border-radius:7px; color:var(--text);
  font-size:13px; text-align:left; transition:background .14s ease;
}
.cur-menu-opt:hover{ background:rgba(var(--ar),0.12); }
.cur-menu-opt.is-sel{ background:rgba(var(--ar),0.18); }
.cur-menu-opt.is-sel .cur-menu-code{ color:var(--accent); font-weight:700; }
.cur-menu-sym{
  font-weight:700; color:var(--accent); min-width:20px; text-align:center;
  font-variant-numeric:tabular-nums;
}
.cur-menu-code{ letter-spacing:.06em; color:var(--muted); }

/* ===== Yield por alquiler en inmuebles ===== */
.ff6-yield{
  display:inline-flex; align-items:center; gap:4px; flex-shrink:0;
  font-size:11px; font-weight:700; color:#2dd4a3;
  background:rgba(45,212,163,0.1); border:1px solid rgba(45,212,163,0.35);
  border-radius:7px; padding:3px 8px; white-space:nowrap;
  font-variant-numeric:tabular-nums; letter-spacing:.02em;
}
.ff6-yield-lbl{ font-size:9px; font-weight:600; color:#4a9e85; letter-spacing:.06em; text-transform:uppercase; }
@media(max-width:600px){
  .ff6-yield{ font-size:10px; padding:2px 6px; }
  .ff6-yield-lbl{ display:none; }
}

/* Yield global en la cabecera de la sección Inmuebles */
.inm-global-yield{ display:inline-flex; align-items:center; gap:6px; flex-shrink:0; }
.inm-global-yield-lbl{
  font-size:10px; letter-spacing:0.1em; color:#4a7a99; flex-shrink:0;
}
.inm-global-yield-val{
  font-size:15px; font-weight:700; color:#2dd4a3;
  text-shadow:0 0 12px rgba(45,212,163,0.4); font-variant-numeric:tabular-nums;
}

/* ── Yield pasivo (componente PATRIMONIO TOTAL): etiqueta corta en móvil ──────
   Desktop: etiqueta completa («YIELD PASIVO») + icono 💸.
   Pantallas pequeñas (≤600px): solo siglas del idioma (Y.P/P.Y/R.P/P.R) y
   sin icono, para que quepa correctamente en la barra. */
.patyield-lbl-short { display: none; }
@media (max-width: 600px) {
  .patyield-lbl-full { display: none; }
  .patyield-lbl-short { display: inline; }
  .patyield-icon { display: none; }
}

/* ── Botones VER GLOBAL / ANÁLISIS IA (cabecera PATRIMONIO TOTAL) ─────────────
   En móvil (≤600px) ocultamos el texto y dejamos solo el icono SVG, para que
   quepan correctamente junto al yield pasivo. El título (tooltip) se conserva. */
@media (max-width: 600px) {
  #btnVerActivos .btn-label-txt,
  #btnIAPatrimonio .btn-label-txt { display: none; }
  #btnVerActivos,
  #btnIAPatrimonio { gap: 0; }
}

/* ── ALQUILER NETO MODAL ─────────────────────────────────────────────────── */
.alq-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.alq-field label{font-size:10px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}
.alq-input-wrap{display:flex;align-items:center;gap:6px}
.alq-input-wrap .fut-input{flex:1;width:100%;text-align:right}
.alq-suf{font-size:12px;color:var(--muted);min-width:16px;flex-shrink:0}
.alq-section-lbl{font-size:9px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#bf7fff;margin:6px 0 8px;opacity:0.85}
.alq-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:12px}
@media(max-width:520px){.alq-grid{grid-template-columns:1fr}}
.alq-result{background:rgba(191,127,255,0.06);border:1px solid rgba(191,127,255,0.2);border-radius:10px;padding:12px 14px;margin:8px 0 14px;display:flex;flex-direction:column;gap:7px}
.alq-result-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}
.alq-result-row span:last-child{font-weight:600;color:var(--text)}
.alq-result-net{border-top:1px solid rgba(191,127,255,0.2);padding-top:8px;margin-top:2px}
.alq-result-net span{font-size:13px;font-weight:700;letter-spacing:0.04em;color:#bf7fff!important}
.alq-result-net span:last-child{font-size:18px;color:#00ff9f!important}
#alqSaveBtn{width:100%;margin-top:4px}

/* Totales agregados de Activos visibles solo en escritorio (hipoteca: cuota mensual; inmueble: alquiler neto) */
.activos-desktop-only{display:flex}
@media(max-width:1060px){.activos-desktop-only{display:none !important}}

/* Campos de impuestos en el modal de dividendos */
.div-tax-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:6px 0 14px;padding-bottom:12px;border-bottom:1px solid rgba(191,127,255,0.18)}
@media(max-width:520px){.div-tax-grid{grid-template-columns:1fr}}

/* Flechas → desde % hacia su importe monetario en la barra de patrimonio global (escritorio) */
.pat-arrow{display:inline-flex;align-items:center;margin:0 9px;color:var(--muted);opacity:0.7;font-size:18px;font-weight:700;line-height:1}
.pat-amt-arrow{margin-left:2px}
/* El bloque YIELD se mantiene en una sola línea horizontal */
.is-patyield{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.is-patyield .pat-arrow{margin:0 9px}

/* Etiqueta "RENT. ESPERADA (ANUAL)" en la barra de patrimonio global: fuente más pequeña para que ocupe lo mismo que la versión corta */
.rent-esperada-lbl{font-size:8px;letter-spacing:0.06em;line-height:1.2}

/* ── Filtros de Visión Global: patrimonio líquido + sin vivienda habitual ── */
.btn-filtro {
  margin-left: 6px;
  display: flex;
}
.btn-filtro.filtro-on {
  background: rgba(var(--ar),0.22);
  border-color: var(--accent);
  box-shadow: 0 0 10px rgba(var(--ar),0.35);
  color: var(--accent);
}
.btn-filtro:hover {
  background: rgba(var(--ar),0.16);
}

/* ── Tick "Vivienda habitual" en filas de inmueble (patrón fire-check) ───── */
.habit-check-mini {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; flex-shrink: 0;
  border: 1px solid rgba(191,127,255,0.3);
  border-radius: 5px;
  background: rgba(191,127,255,0.05);
  cursor: pointer;
  transition: all 0.15s;
  margin-left: 2px; margin-right: 2px;
  position: relative;
}
.habit-check-mini:hover {
  border-color: rgba(191,127,255,0.5);
  background: rgba(191,127,255,0.10);
}
.habit-check-input {
  position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0;
}
.habit-check-mark {
  display: inline-flex; align-items: center; justify-content: center;
  color: rgba(191,127,255,0.35);
  transition: color 0.15s;
}
.habit-check-mini.habit-check-on {
  background: rgba(191,127,255,0.2);
  border-color: rgba(191,127,255,0.7);
  box-shadow: 0 0 8px rgba(191,127,255,0.3);
}
.habit-check-mini.habit-check-on .habit-check-mark {
  color: #bf7fff;
}

/* ════════════════════════════════════════════════════════════════════════
   PATRIMONIO TOTAL — cabecera reorganizada (métricas en chips + acciones)
   ════════════════════════════════════════════════════════════════════════ */
.pat-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 12px 12px 6px;
  border-top: 1px solid rgba(255,255,255,0.05);
  margin-top: 4px;
}
.pat-metrics {
  display: flex;
  align-items: stretch;
  gap: 10px;
  flex-wrap: wrap;
}
.pat-metric {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 8px 14px;
  border-radius: 10px;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.06);
  min-width: 0;
}
.pat-metric-rent  { border-left: 2px solid var(--accent); }
.pat-metric-yield { border-left: 2px solid #00ff9f; }
.pat-metric-lbl {
  font-size: 8.5px;
  letter-spacing: 0.12em;
  color: var(--muted);
  text-transform: uppercase;
  white-space: nowrap;
}
.pat-metric-vals {
  display: flex;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
}
.pat-metric .is-patrentpct,
.pat-metric .is-patyieldpct {
  font-size: 19px;
  font-weight: 700;
  line-height: 1;
}
.pat-metric .is-patrentpct  { color: var(--accent); }
.pat-metric .is-patyieldpct { color: #00ff9f; }
.pat-metric-amt {
  font-size: 12px;
  font-weight: 600;
  color: var(--income);
  line-height: 1;
}
.pat-metric-amt-yield { color: #00ff9f; }
.pat-metric-unit {
  font-size: 9px;
  font-weight: 400;
  color: var(--muted);
  margin-left: 1px;
}
.pat-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
/* Dentro de la nueva fila de acciones, los botones ya no necesitan margin-left:auto */
.pat-actions .is-btnveractivos { margin-left: 0; }
.pat-actions .btn-filtro       { margin-left: 0; }
.pat-actions .btn-ia-patrimonio{ margin-left: 0; }

/* ── Responsive: en móvil las métricas ocupan toda la fila y los botones debajo ── */
@media (max-width: 720px) {
  .pat-head-row {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .pat-metrics {
    justify-content: space-between;
  }
  .pat-metric {
    flex: 1 1 0;
    padding: 7px 10px;
  }
  .pat-metric .is-patrentpct,
  .pat-metric .is-patyieldpct { font-size: 16px; }
  .pat-actions {
    justify-content: flex-start;
    gap: 6px;
  }
  .pat-actions .is-btnveractivos { padding: 5px 8px; font-size: 8.5px; gap: 4px; flex: 1 1 auto; justify-content: center; }
}
@media (max-width: 420px) {
  .pat-metric-lbl { font-size: 8px; }
  .pat-actions .is-btnveractivos { font-size: 8px; padding: 5px 6px; }
}

/* ── AUTH · Botón Google recomendado (encima del form) ───────────────────── */
#authOverlay .is-button-google-primary {
  position: relative;
  margin-top: 14px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(0,255,159,0.45);
  box-shadow: 0 0 0 1px rgba(0,255,159,0.18) inset, 0 4px 18px rgba(0,255,159,0.08);
  padding: 12px 14px;
  font-weight: 600;
  color: var(--text);
  transition: all 0.2s ease;
}
#authOverlay .is-button-google-primary:hover {
  background: rgba(0,255,159,0.10);
  border-color: rgba(0,255,159,0.75);
  box-shadow: 0 0 0 1px rgba(0,255,159,0.35) inset, 0 6px 22px rgba(0,255,159,0.18);
  transform: translateY(-1px);
}
#authOverlay .is-button-google-primary:active { transform: translateY(0); }
#authOverlay .is-google-recommended {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 3px 7px;
  border-radius: 999px;
  background: linear-gradient(135deg, #00ff9f 0%, #00d4ff 100%);
  color: #0a1a14;
  text-transform: uppercase;
  box-shadow: 0 0 12px rgba(0,255,159,0.45);
  white-space: nowrap;
  animation: recommendedPulse 2.4s ease-in-out infinite;
}
#authOverlay .is-google-recommended::before {
  content: "★";
  font-size: 9px;
  color: #0a1a14;
}
@keyframes recommendedPulse {
  0%, 100% { box-shadow: 0 0 12px rgba(0,255,159,0.45); }
  50%      { box-shadow: 0 0 20px rgba(0,255,159,0.75); }
}
[data-theme=light] #authOverlay .is-button-google-primary {
  background: #ffffff;
  border-color: rgba(0,180,120,0.55);
  color: #1a2a24;
}
[data-theme=light] #authOverlay .is-button-google-primary:hover {
  background: rgba(0,180,120,0.06);
}
[data-theme=light] #authOverlay .is-google-recommended { color: #ffffff; }



/* ════════════════════════════════════════════════════════════════════════════
   GUÍA GUIADA DE RELLENADO (#ffg*) — sustituye al tour informativo
   REGLA DE ORO: el overlay NUNCA intercepta el ratón. Solo el panel de la
   guía es clicable; el resto de la página sigue siendo 100 % usable para que
   el cliente pueda pulsar «+ AÑADIR» y escribir mientras la guía le acompaña.
   ════════════════════════════════════════════════════════════════════════════ */

#ffgOverlay {
  position: fixed; inset: 0;
  z-index: 99998;
  pointer-events: none;            /* ← imprescindible: deja pasar los clics */
  background: transparent;
}
#ffgOverlay.ffg-full { background: rgba(2,8,14,0.55); }
[data-theme=light] #ffgOverlay.ffg-full { background: rgba(245,250,255,0.62); }

/* Foco: el sombreado exterior gigante hace de "dim" y deja el hueco limpio. */
#ffgSpot {
  position: fixed;
  background: transparent;
  border: 2px solid #00ff9f;
  border-radius: 14px;
  box-shadow: 0 0 0 200vmax rgba(2,8,14,0.55), 0 0 26px rgba(0,255,159,0.45);
  pointer-events: none;
  animation: ffgSpotPulse 2.4s ease-in-out infinite;
}
@keyframes ffgSpotPulse {
  0%, 100% { box-shadow: 0 0 0 200vmax rgba(2,8,14,0.55), 0 0 18px rgba(0,255,159,0.32); }
  50%      { box-shadow: 0 0 0 200vmax rgba(2,8,14,0.55), 0 0 34px rgba(0,255,159,0.62); }
}
[data-theme=light] #ffgSpot {
  border-color: #00b06b;
  animation: ffgSpotPulseLight 2.4s ease-in-out infinite;
}
@keyframes ffgSpotPulseLight {
  0%, 100% { box-shadow: 0 0 0 200vmax rgba(245,250,255,0.62), 0 0 18px rgba(0,180,120,0.35); }
  50%      { box-shadow: 0 0 0 200vmax rgba(245,250,255,0.62), 0 0 34px rgba(0,180,120,0.65); }
}

/* Dentro de un modal (que ya trae su propio fondo oscuro) atenuamos menos */
#ffgSpot.ffg-soft {
  animation: none;
  box-shadow: 0 0 0 200vmax rgba(2,8,14,0.30), 0 0 26px rgba(0,255,159,0.5);
}
[data-theme=light] #ffgSpot.ffg-soft {
  box-shadow: 0 0 0 200vmax rgba(245,250,255,0.30), 0 0 26px rgba(0,180,120,0.55);
}

/* Panel flotante de la guía (lo único clicable) */
#ffgPanel {
  position: fixed;
  z-index: 99999;
  width: min(400px, calc(100vw - 32px));
  background: linear-gradient(160deg, #0c1a26 0%, #142233 100%);
  color: var(--text, #e0f0ff);
  border: 1px solid rgba(0,255,159,0.35);
  border-radius: 14px;
  padding: 16px 18px 14px;
  box-shadow: 0 18px 50px rgba(0,0,0,0.55), 0 0 24px rgba(0,255,159,0.18);
  font-family: 'Space Grotesk', sans-serif;
  pointer-events: auto;
  animation: ffgPanelIn 260ms cubic-bezier(0.18,0.89,0.32,1.28);
}
@keyframes ffgPanelIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
#ffgPanel .ffg-close {
  position: absolute; top: 8px; right: 10px;
  background: transparent; border: 1px solid rgba(255,255,255,0.15);
  color: #8fa5b8;
  font-size: 9.5px; font-weight: 600; letter-spacing: 0.08em;
  padding: 4px 9px; border-radius: 999px; cursor: pointer;
  transition: all 0.2s; font-family: inherit;
}
#ffgPanel .ffg-close:hover { background: rgba(255,77,109,0.12); color: #ff8095; border-color: rgba(255,77,109,0.35); }
#ffgPanel .ffg-sec {
  font-size: 9px; font-weight: 700; letter-spacing: 0.16em;
  color: #00ff9f; text-transform: uppercase; margin-bottom: 4px;
}
#ffgPanel .ffg-title {
  font-size: 16px; font-weight: 700; color: #fff;
  margin-bottom: 7px; letter-spacing: 0.01em; padding-right: 34px;
}
#ffgPanel .ffg-body {
  font-size: 12.5px; line-height: 1.55; color: #c0d4e0; margin-bottom: 10px;
}
#ffgPanel .ffg-status {
  font-size: 11px; border-radius: 8px; padding: 6px 10px; margin-bottom: 10px;
  line-height: 1.45;
}
#ffgPanel .ffg-status.hint { color: #00d4ff; background: rgba(0,212,255,0.08); border: 1px solid rgba(0,212,255,0.28); }
#ffgPanel .ffg-status.ok   { color: #00ff9f; background: rgba(0,255,159,0.10); border: 1px solid rgba(0,255,159,0.32); }
#ffgPanel .ffg-foot { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
#ffgPanel .ffg-prog { font-size: 10px; color: #6b8aa3; letter-spacing: 0.1em; margin-right: auto; }
#ffgPanel .ffg-btn {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.18);
  color: #c0d4e0;
  font-size: 10.5px; font-weight: 700; letter-spacing: 0.08em;
  padding: 8px 14px; border-radius: 999px; cursor: pointer;
  transition: all 0.2s; font-family: inherit;
}
#ffgPanel .ffg-btn:hover { background: rgba(255,255,255,0.12); color: #fff; }
#ffgPanel .ffg-btn.primary {
  background: linear-gradient(135deg, #00ff9f 0%, #00d4ff 100%);
  border-color: transparent; color: #0a1a14;
  box-shadow: 0 0 16px rgba(0,255,159,0.4);
}
#ffgPanel .ffg-btn.primary:hover { transform: translateY(-1px); box-shadow: 0 4px 22px rgba(0,255,159,0.55); }
#ffgPanel .ffg-btn.primary.ready { animation: ffgReady 1.6s ease-in-out infinite; }
@keyframes ffgReady {
  0%, 100% { box-shadow: 0 0 12px rgba(0,255,159,0.35); }
  50%      { box-shadow: 0 0 26px rgba(0,255,159,0.85); }
}

[data-theme=light] #ffgPanel {
  background: linear-gradient(160deg, #ffffff 0%, #f0f7fa 100%);
  border-color: rgba(0,180,120,0.4);
  color: #1a2a24;
  box-shadow: 0 18px 50px rgba(0,0,0,0.18), 0 0 24px rgba(0,180,120,0.18);
}
[data-theme=light] #ffgPanel .ffg-title { color: #1a2a24; }
[data-theme=light] #ffgPanel .ffg-body { color: #2a3a44; }
[data-theme=light] #ffgPanel .ffg-sec { color: #00b06b; }
[data-theme=light] #ffgPanel .ffg-close { color: #6a7a84; border-color: rgba(0,0,0,0.18); }
[data-theme=light] #ffgPanel .ffg-btn { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.12); color: #2a3a44; }
[data-theme=light] #ffgPanel .ffg-btn:hover { background: rgba(0,0,0,0.08); }
[data-theme=light] #ffgPanel .ffg-btn.primary { color: #ffffff; }
[data-theme=light] #ffgPanel .ffg-prog { color: #5a6a74; }
[data-theme=light] #ffgPanel .ffg-status.hint { color: #007aaa; background: rgba(0,122,170,0.08); border-color: rgba(0,122,170,0.28); }
[data-theme=light] #ffgPanel .ffg-status.ok   { color: #00875a; background: rgba(0,180,120,0.10); border-color: rgba(0,180,120,0.3); }

/* Móvil: panel anclado abajo, compacto, sin tapar el teclado */
@media (max-width: 600px) {
  #ffgPanel {
    width: calc(100vw - 20px);
    left: 10px !important; right: 10px;
    top: auto !important; bottom: 12px !important;
    padding: 13px 14px 11px;
  }
  #ffgPanel .ffg-title { font-size: 15px; padding-right: 32px; }
  #ffgPanel .ffg-body { font-size: 12px; }
  #ffgPanel .ffg-foot { flex-wrap: wrap; }
  #ffgPanel .ffg-btn { padding: 7px 10px; font-size: 10px; flex: 1 1 auto; }
  #ffgPanel.ffg-min .ffg-body, #ffgPanel.ffg-min .ffg-status { display: none; }
}

/* ═══ Modal de bienvenida a la guía ═══ */
.fill-welcome-back {
  position: fixed; inset: 0;
  z-index: 110000;
  background: radial-gradient(circle at 50% 35%, rgba(0,255,159,0.08) 0%, rgba(2,8,14,0.85) 60%);
  backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  animation: fillWelcomeFade 380ms ease-out;
}
@keyframes fillWelcomeFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.fill-welcome-card {
  width: min(540px, 100%);
  background: linear-gradient(165deg, #0c1a26 0%, #142233 60%, #0a1a14 100%);
  color: var(--text, #e0f0ff);
  border: 1px solid rgba(0,255,159,0.4);
  border-radius: 22px;
  padding: 32px 32px 24px;
  box-shadow: 0 30px 80px rgba(0,0,0,0.7), 0 0 60px rgba(0,255,159,0.18);
  font-family: 'Space Grotesk', sans-serif;
  text-align: center;
  animation: fillWelcomeCardIn 460ms cubic-bezier(0.18,0.89,0.32,1.28);
}
@keyframes fillWelcomeCardIn {
  from { opacity: 0; transform: translateY(20px) scale(0.94); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.fill-welcome-eyebrow {
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.2em;
  color: #00ff9f; text-transform: uppercase;
  margin-bottom: 10px;
}
.fill-welcome-icon {
  font-size: 48px; line-height: 1;
  margin: 0 auto 10px;
  width: 80px; height: 80px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(0,255,159,0.12) 0%, rgba(0,212,255,0.12) 100%);
  border: 1px solid rgba(0,255,159,0.3);
  border-radius: 50%;
  box-shadow: 0 0 32px rgba(0,255,159,0.18);
  animation: fillWelcomeIconPulse 2.4s ease-in-out infinite;
}
@keyframes fillWelcomeIconPulse {
  0%, 100% { box-shadow: 0 0 24px rgba(0,255,159,0.18); transform: scale(1); }
  50%      { box-shadow: 0 0 36px rgba(0,255,159,0.4); transform: scale(1.04); }
}
.fill-welcome-title {
  font-size: 22px; font-weight: 700; color: #fff;
  margin: 14px 0 8px; letter-spacing: 0.01em;
  line-height: 1.25;
}
.fill-welcome-body {
  font-size: 13.5px; line-height: 1.6; color: #b0c4d4;
  margin-bottom: 22px;
}
.fill-welcome-steps {
  display: flex; flex-direction: column; gap: 10px;
  text-align: left;
  margin-bottom: 22px;
  background: rgba(0,0,0,0.18);
  border: 1px solid rgba(0,255,159,0.1);
  border-radius: 12px;
  padding: 14px;
}
.fill-welcome-step {
  display: flex; gap: 12px; align-items: flex-start;
}
.fill-welcome-step .num {
  flex: 0 0 26px; height: 26px; width: 26px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #00ff9f 0%, #00d4ff 100%);
  color: #0a1a14;
  border-radius: 50%;
  font-size: 13px; font-weight: 700;
  box-shadow: 0 0 12px rgba(0,255,159,0.4);
}
.fill-welcome-step > div { display: flex; flex-direction: column; gap: 1px; }
.fill-welcome-step b { color: #fff; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; }
.fill-welcome-step span { color: #8fa5b8; font-size: 11.5px; line-height: 1.45; }
.fill-welcome-cta {
  display: flex; flex-direction: column; gap: 8px;
  margin-bottom: 14px;
}
.fill-welcome-btn {
  width: 100%;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.15);
  color: #c0d4e0;
  font-size: 12.5px; font-weight: 700; letter-spacing: 0.1em;
  padding: 12px 18px; border-radius: 999px; cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
}
.fill-welcome-btn:hover { background: rgba(255,255,255,0.12); color: #fff; }
.fill-welcome-btn.primary {
  background: linear-gradient(135deg, #00ff9f 0%, #00d4ff 100%);
  border-color: transparent;
  color: #0a1a14;
  font-size: 14px; padding: 14px 18px;
  box-shadow: 0 0 22px rgba(0,255,159,0.45);
}
.fill-welcome-btn.primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 28px rgba(0,255,159,0.6);
}
.fill-welcome-foot {
  font-size: 10.5px; color: #6b8aa3; line-height: 1.5;
  margin-top: 4px;
}

[data-theme=light] .fill-welcome-back {
  background: radial-gradient(circle at 50% 35%, rgba(0,180,120,0.1) 0%, rgba(245,250,255,0.85) 60%);
}
[data-theme=light] .fill-welcome-card {
  background: linear-gradient(165deg, #ffffff 0%, #f0f7fa 60%, #e8f5ee 100%);
  border-color: rgba(0,180,120,0.45);
  color: #1a2a24;
  box-shadow: 0 30px 80px rgba(0,0,0,0.18), 0 0 60px rgba(0,180,120,0.2);
}
[data-theme=light] .fill-welcome-eyebrow { color: #00b06b; }
[data-theme=light] .fill-welcome-title { color: #1a2a24; }
[data-theme=light] .fill-welcome-body { color: #2a3a44; }
[data-theme=light] .fill-welcome-steps { background: rgba(0,0,0,0.03); border-color: rgba(0,180,120,0.18); }
[data-theme=light] .fill-welcome-step b { color: #1a2a24; }
[data-theme=light] .fill-welcome-step span { color: #5a6a74; }
[data-theme=light] .fill-welcome-step .num { color: #ffffff; }
[data-theme=light] .fill-welcome-btn { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.12); color: #2a3a44; }
[data-theme=light] .fill-welcome-btn:hover { background: rgba(0,0,0,0.08); }
[data-theme=light] .fill-welcome-btn.primary { color: #ffffff; }
[data-theme=light] .fill-welcome-foot { color: #5a6a74; }

@media (max-width: 600px) {
  .fill-welcome-card { padding: 24px 18px 18px; border-radius: 18px; }
  .fill-welcome-title { font-size: 19px; }
  .fill-welcome-body { font-size: 12.5px; }
  .fill-welcome-icon { width: 64px; height: 64px; font-size: 38px; }
}
[data-theme=light] #authOverlay .is-google-recommended::before { color: #ffffff; }


/* ════════════════════════════════════════════════════════════════════════════
   ZONAS DE ENTRADA DE DATOS EN LA BARRA DE PESTAÑAS
   Flujo (1), Activos (2) y Cartera (3) son las tres zonas que el cliente tiene
   que rellenar: van marcadas de forma permanente con borde punteado, un fondo
   muy tenue y un puntito de acento, para que se distingan de Inicio y
   Proyección (que solo muestran resultados).
   ════════════════════════════════════════════════════════════════════════════ */

.tab-bar .tab[data-tab="1"],
.tab-bar .tab[data-tab="2"],
.tab-bar .tab[data-tab="3"] {
  position: relative;
  color: var(--text);
  border: 1px dashed rgba(var(--ar), 0.30);
  background: rgba(var(--ar), 0.035);
}
.tab-bar .tab[data-tab="1"]:hover,
.tab-bar .tab[data-tab="2"]:hover,
.tab-bar .tab[data-tab="3"]:hover {
  border-color: rgba(var(--ar), 0.5);
  background: rgba(var(--ar), 0.07);
}
/* Puntito de acento arriba a la derecha */
.tab-bar .tab[data-tab="1"]::before,
.tab-bar .tab[data-tab="2"]::before,
.tab-bar .tab[data-tab="3"]::before {
  content: '';
  position: absolute;
  top: 5px; right: 6px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 6px rgba(var(--ar), 0.7);
  opacity: 0.7;
  transition: opacity 0.2s;
}
/* En la pestaña activa el punto sobra: ya sabes dónde estás */
.tab-bar .tab.active::before { opacity: 0; }
/* Y la activa manda: borde sólido, como el resto */
.tab-bar .tab[data-tab="1"].active,
.tab-bar .tab[data-tab="2"].active,
.tab-bar .tab[data-tab="3"].active {
  border-style: solid;
  border-color: rgba(var(--ar), 0.25);
  background: rgba(var(--ar), 0.1);
  color: var(--accent);
}

/* Temas claros: el borde punteado se pierde sobre fondo claro → lo subimos */
[data-theme=light] .tab-bar .tab[data-tab="1"],
[data-theme=light] .tab-bar .tab[data-tab="2"],
[data-theme=light] .tab-bar .tab[data-tab="3"],
[data-theme=lpink] .tab-bar .tab[data-tab="1"],
[data-theme=lpink] .tab-bar .tab[data-tab="2"],
[data-theme=lpink] .tab-bar .tab[data-tab="3"] {
  border-color: rgba(var(--ar), 0.55);
  background: rgba(var(--ar), 0.07);
}

@media (max-width: 600px) {
  .tab-bar .tab[data-tab="1"]::before,
  .tab-bar .tab[data-tab="2"]::before,
  .tab-bar .tab[data-tab="3"]::before {
    top: 3px; right: 3px;
    width: 4px; height: 4px;
  }
}

/* ── RECORDATORIO IA (modal de suscripción, una sola vez) ─────────────────── */
.ff-iap-overlay{position:fixed;inset:0;background:rgba(3,7,15,0.82);backdrop-filter:blur(6px);
  display:flex;align-items:flex-start;justify-content:center;z-index:10050;padding:20px;overflow-y:auto}
.ff-iap-card{position:relative;width:100%;max-width:460px;margin:auto;
  background:linear-gradient(160deg,#0d1523 0%,#0a1119 100%);
  border:1px solid rgba(0,212,255,0.28);border-radius:16px;padding:26px 24px 22px;
  box-shadow:0 24px 70px rgba(0,0,0,0.6),0 0 0 1px rgba(255,255,255,0.03) inset;
  font-family:'Space Grotesk',system-ui,sans-serif;animation:ffIapIn .28s ease-out}
@keyframes ffIapIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.ff-iap-close{position:absolute;top:10px;right:12px;background:none;border:none;color:#4a7a99;
  font-size:24px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .15s}
.ff-iap-close:hover{color:#c8d6e5}
.ff-iap-badge{display:inline-block;background:rgba(0,255,159,0.12);border:1px solid rgba(0,255,159,0.4);
  border-radius:20px;font-size:9px;font-weight:700;color:#00ff9f;letter-spacing:0.12em;padding:4px 10px}
.ff-iap-title{font-size:20px;font-weight:800;color:#e0e8f0;letter-spacing:0.02em;margin:12px 0 8px;line-height:1.25}
.ff-iap-lead{font-size:12.5px;color:#8fa6bd;line-height:1.55;margin-bottom:16px}
.ff-iap-shot{border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,0.09);
  box-shadow:0 8px 26px rgba(0,0,0,0.45);margin-bottom:16px;background:#0a0e1a}
.ff-iap-shot svg{display:block}
.ff-iap-list{list-style:none;padding:0;margin:0 0 14px}
.ff-iap-list li{position:relative;padding-left:22px;font-size:12.5px;color:#c8d6e5;line-height:1.5;margin-bottom:8px}
.ff-iap-list li::before{content:'✓';position:absolute;left:0;top:0;color:#00ff9f;font-weight:700;font-size:12px}
.ff-iap-how{font-size:11px;color:#6b8299;line-height:1.5;margin-bottom:12px;font-style:italic}
.ff-iap-risk{display:flex;gap:9px;align-items:flex-start;background:rgba(0,212,255,0.06);
  border:1px solid rgba(0,212,255,0.22);border-radius:10px;padding:11px 13px;margin-bottom:18px;
  font-size:11.5px;color:#9dc4d8;line-height:1.5}
.ff-iap-risk-ico{color:#00d4ff;font-size:14px;line-height:1.2;flex-shrink:0}
.ff-iap-cta{width:100%;background:linear-gradient(135deg,#00d4ff,#00ff9f);border:none;border-radius:10px;
  color:#04121c;font-size:13px;font-weight:800;padding:14px;cursor:pointer;letter-spacing:0.08em;
  font-family:'Space Grotesk',system-ui,sans-serif;transition:filter .18s,transform .18s;
  box-shadow:0 6px 22px rgba(0,212,255,0.28)}
.ff-iap-cta:hover{filter:brightness(1.08);transform:translateY(-1px)}
.ff-iap-later{width:100%;background:none;border:none;color:#4a7a99;font-size:11.5px;
  padding:12px 0 2px;cursor:pointer;letter-spacing:0.06em;font-family:'Space Grotesk',system-ui,sans-serif}
.ff-iap-later:hover{color:#8fa6bd}
@media(max-width:600px){
  .ff-iap-card{padding:22px 18px 18px;max-width:100%}
  .ff-iap-title{font-size:17px}
  .ff-iap-lead,.ff-iap-list li{font-size:12px}
}
/* Tema claro */
html[data-theme="light"] .ff-iap-card,html[data-theme="lpink"] .ff-iap-card{
  background:linear-gradient(160deg,#ffffff 0%,#f4f8fb 100%);border-color:rgba(0,120,170,0.3)}
html[data-theme="light"] .ff-iap-title,html[data-theme="lpink"] .ff-iap-title{color:#0d2233}
html[data-theme="light"] .ff-iap-lead,html[data-theme="lpink"] .ff-iap-lead{color:#4a6376}
html[data-theme="light"] .ff-iap-list li,html[data-theme="lpink"] .ff-iap-list li{color:#22384a}
html[data-theme="light"] .ff-iap-badge,html[data-theme="lpink"] .ff-iap-badge{
  background:rgba(5,77,40,0.1);border-color:rgba(5,77,40,0.35);color:#054d28}
html[data-theme="light"] .ff-iap-list li::before,html[data-theme="lpink"] .ff-iap-list li::before{color:#054d28}
html[data-theme="light"] .ff-iap-risk,html[data-theme="lpink"] .ff-iap-risk{color:#2a5568}

/* ══ TENDENCIAS · EVOLUCIÓN DE LA IA ══════════════════════════════════════════
   Entrada destacada con animación "digital" en morado: rejilla que se desplaza,
   barrido de luz y núcleo que late. Todo con transform/opacity para que no
   provoque reflow, y desactivable con prefers-reduced-motion.                */
.trending-link.trending-ia{
  position:relative;display:grid;
  grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;
  gap:2px 9px;align-items:center;
  padding:11px 12px;margin:4px 0;border-radius:10px;overflow:hidden;isolation:isolate;
  background:linear-gradient(135deg,rgba(191,127,255,0.13) 0%,rgba(124,77,255,0.07) 100%);
  border:1px solid rgba(191,127,255,0.42);
  box-shadow:0 0 0 rgba(191,127,255,0);
  transition:border-color .25s,box-shadow .25s,transform .25s}
.trending-link.trending-ia:hover{
  border-color:rgba(191,127,255,0.85);
  box-shadow:0 0 22px rgba(191,127,255,0.32),inset 0 0 18px rgba(191,127,255,0.07);
  transform:translateY(-1px)}

/* Rejilla digital en movimiento */
.trending-ia-grid{
  position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(191,127,255,0.16) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(191,127,255,0.16) 1px,transparent 1px);
  background-size:14px 14px;
  animation:iaGrid 3.2s linear infinite}
@keyframes iaGrid{from{background-position:0 0,0 0}to{background-position:0 14px,14px 0}}

/* Barrido de luz que recorre el recuadro */
.trending-ia-scan{
  position:absolute;top:0;bottom:0;left:-45%;width:45%;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,transparent 0%,rgba(191,127,255,0.30) 45%,rgba(224,190,255,0.5) 50%,rgba(191,127,255,0.30) 55%,transparent 100%);
  filter:blur(2px);
  animation:iaScan 3.6s cubic-bezier(.45,0,.35,1) infinite}
@keyframes iaScan{0%{left:-45%}55%{left:100%}100%{left:100%}}

/* Núcleo que late */
.trending-ia-mark{
  grid-row:1 / span 2;display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:9px;color:#d9b3ff;flex-shrink:0;
  background:rgba(191,127,255,0.14);border:1px solid rgba(191,127,255,0.4);
  animation:iaPulse 2.4s ease-in-out infinite}
.trending-ia-mark svg{animation:iaSpin 14s linear infinite;transform-origin:50% 50%}
@keyframes iaPulse{0%,100%{box-shadow:0 0 0 0 rgba(191,127,255,0.42)}
                   70%{box-shadow:0 0 0 9px rgba(191,127,255,0)}}
@keyframes iaSpin{to{transform:rotate(360deg)}}

.trending-ia-name{font-size:12.5px;font-weight:700;color:#e6d4ff;letter-spacing:0.04em;line-height:1.2}
.trending-ia-badge{
  justify-self:end;font-size:8.5px;font-weight:700;letter-spacing:0.12em;
  color:#0d0618;background:linear-gradient(135deg,#d9b3ff,#bf7fff);
  border-radius:20px;padding:3px 8px;text-transform:uppercase}
.trending-ia-desc{
  grid-column:2 / span 2;font-size:10px;color:#a98fc4;letter-spacing:0.02em;line-height:1.35}

@media(prefers-reduced-motion:reduce){
  .trending-ia-grid,.trending-ia-scan,.trending-ia-mark,.trending-ia-mark svg{animation:none}
  .trending-ia-scan{display:none}
}

/* ══ VISOR DEL INFORME ════════════════════════════════════════════════════ */
.ia-doc-overlay{position:fixed;inset:0;background:rgba(4,2,10,0.9);backdrop-filter:blur(7px);
  z-index:10060;display:flex;align-items:center;justify-content:center;
  padding:16px;box-sizing:border-box}
/* Altura REAL (no solo max-height): con únicamente max-height el contenedor
   flex crece con el contenido, el panel de páginas no encoge y el pie (con la
   navegación y el botón de descarga) se queda fuera de la pantalla.
   Y se mide contra el overlay (100%), NO en vh: la app aplica zoom al <html>
   (control de tamaño de interfaz) y las unidades vh lo ignoran, así que con el
   zoom activo el modal se desbordaba y el pie quedaba inalcanzable. */
.ia-doc-shell{width:100%;max-width:1000px;height:100%;max-height:100%;
  display:flex;flex-direction:column;min-height:0;
  background:linear-gradient(165deg,#120a1f 0%,#0b0713 100%);
  border:1px solid rgba(191,127,255,0.38);border-radius:16px;overflow:hidden;
  box-shadow:0 26px 80px rgba(0,0,0,.7);font-family:'Space Grotesk',system-ui,sans-serif}

/* Banda de origen (Anthropic) */
.ia-doc-source{display:flex;align-items:center;gap:11px;padding:11px 16px;text-decoration:none;
  background:linear-gradient(90deg,rgba(191,127,255,0.16),rgba(124,77,255,0.06));
  border-bottom:1px solid rgba(191,127,255,0.28);transition:background .2s}
.ia-doc-source:hover{background:linear-gradient(90deg,rgba(191,127,255,0.26),rgba(124,77,255,0.12))}
.ia-doc-source-logo{display:flex;color:#d9b3ff;flex-shrink:0}
.ia-doc-burst{transform-origin:20px 20px;animation:iaBurst 6s ease-in-out infinite}
@keyframes iaBurst{0%,100%{transform:rotate(0) scale(1);opacity:.85}
                   50%{transform:rotate(180deg) scale(1.1);opacity:1}}
.ia-doc-source-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.ia-doc-source-txt strong{font-size:11.5px;color:#e6d4ff;font-weight:700;letter-spacing:0.03em}
.ia-doc-source-txt span{font-size:10px;color:#a98fc4;letter-spacing:0.02em}
.ia-doc-source-arrow{margin-left:auto;color:#bf7fff;font-size:15px;flex-shrink:0}

.ia-doc-head{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 10px}
.ia-doc-titles h2{font-size:16px;font-weight:800;color:#f0e6ff;letter-spacing:0.02em;margin:0 0 2px}
.ia-doc-titles p{font-size:11px;color:#a98fc4;margin:0;letter-spacing:0.02em}
.ia-doc-close{margin-left:auto;background:none;border:none;color:#8a6fa8;font-size:26px;
  line-height:1;cursor:pointer;padding:0 4px;transition:color .15s}
.ia-doc-close:hover{color:#e6d4ff}

/* Sin scroll-behavior:smooth aquí: al asignar el scroll por JS mientras se
   cargan imágenes, la animación del CSS se cancelaba y el panel se quedaba
   clavado en 0. La suavidad la pide iaDocGo() en cada scrollTo(). */
.ia-doc-pages{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 16px 12px;
  -webkit-overflow-scrolling:touch}
.ia-doc-pages img{display:block;width:100%;height:auto;border-radius:9px;margin-bottom:12px;
  background:#f2f0ea;border:1px solid rgba(191,127,255,0.16)}

.ia-doc-foot{display:flex;align-items:center;gap:10px;padding:11px 16px;
  border-top:1px solid rgba(191,127,255,0.22);background:rgba(191,127,255,0.05)}
.ia-doc-nav{width:34px;height:34px;border-radius:9px;cursor:pointer;font-size:19px;line-height:1;
  background:rgba(191,127,255,0.12);border:1px solid rgba(191,127,255,0.4);color:#d9b3ff;
  transition:background .18s,opacity .18s}
.ia-doc-nav:hover:not(:disabled){background:rgba(191,127,255,0.26)}
.ia-doc-nav:disabled{opacity:.3;cursor:default}
.ia-doc-counter{font-size:11.5px;color:#a98fc4;letter-spacing:0.06em;min-width:56px;text-align:center}
.ia-doc-dl{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:0.08em;text-decoration:none;
  color:#0d0618;background:linear-gradient(135deg,#d9b3ff,#bf7fff);border-radius:8px;padding:9px 14px;
  transition:filter .18s}
.ia-doc-dl:hover{filter:brightness(1.1)}

@media(max-width:600px){
  .ia-doc-overlay{padding:0}
  .ia-doc-shell{height:100%;max-height:100%;border-radius:0;border:none}
  .ia-doc-titles h2{font-size:14px}
  .ia-doc-source-txt strong{font-size:10.5px}
  .ia-doc-source-txt span{font-size:9px}
  .ia-doc-dl{padding:9px 11px;font-size:10px}
}
/* Tema claro: el visor mantiene el fondo oscuro (el documento es claro y
   contrasta), pero suavizamos el borde para que no cante. */
html[data-theme="light"] .ia-doc-shell,html[data-theme="lpink"] .ia-doc-shell{
  border-color:rgba(124,77,255,0.5)}
html[data-theme="light"] .trending-ia-name,html[data-theme="lpink"] .trending-ia-name{color:#3b1d63}
html[data-theme="light"] .trending-ia-desc,html[data-theme="lpink"] .trending-ia-desc{color:#6b4a90}
html[data-theme="light"] .trending-link.trending-ia,html[data-theme="lpink"] .trending-link.trending-ia{
  background:linear-gradient(135deg,rgba(124,77,255,0.12) 0%,rgba(191,127,255,0.06) 100%);
  border-color:rgba(124,77,255,0.45)}
html[data-theme="light"] .trending-ia-mark,html[data-theme="lpink"] .trending-ia-mark{
  color:#5b2ea6;background:rgba(124,77,255,0.12);border-color:rgba(124,77,255,0.4)}

/* ── GASTOS AGRUPADOS: SUSCRIPCIONES Y SEGUROS ──────────────────────────── */
/* La fila del flujo no se teclea: es un boton que abre su ventana de detalle.
   Colores por variable de tema para que funcione igual en claro y oscuro. */
.grupo-name-btn{
  display:flex;align-items:center;gap:7px;
  font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:600;
  color:var(--expense);text-align:left;cursor:pointer;
  background:rgba(var(--ar-expense),0.06);
  border:1px solid rgba(var(--ar-expense),0.22);
  transition:background 0.2s,border-color 0.2s}
.grupo-name-btn:hover{background:rgba(var(--ar-expense),0.12);border-color:rgba(var(--ar-expense),0.45)}
.grupo-name-ico{display:flex;flex-shrink:0;opacity:0.8}
.grupo-name-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grupo-count{
  flex-shrink:0;min-width:18px;padding:1px 5px;border-radius:9px;
  background:rgba(var(--ar-expense),0.18);color:var(--expense);
  font-size:10px;font-weight:700;text-align:center;line-height:1.5}
.grupo-count-empty{opacity:0.55}
/* Importe calculado: se ve y se pulsa, pero no se edita a mano. */
.grupo-amount-ro{cursor:pointer;color:var(--expense);font-weight:600}
.grupo-amount-ro:hover{border-color:rgba(var(--ar-expense),0.35)}

/* Ventana de detalle */
.grupo-modal-box{max-width:460px;border-color:rgba(var(--ar-expense),0.22)}
.grupo-modal-title{color:var(--expense)}
.grupo-modal-list{display:flex;flex-direction:column;max-height:46vh;overflow-y:auto}
.grupo-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid rgba(var(--ar),0.08)}
.grupo-row:last-child{border-bottom:none}
.grupo-row-name{flex:1;min-width:0}
.grupo-row-amount{width:92px;flex-shrink:0;color:var(--expense);font-weight:600}
.grupo-empty{font-size:11px;color:var(--muted);text-align:center;padding:14px 0}
.grupo-modal-total{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:14px;padding-top:12px;border-top:1px solid rgba(var(--ar-expense),0.2)}
.grupo-total-lbl{font-size:10px;font-weight:700;letter-spacing:0.14em;color:var(--muted)}
.grupo-total-val{font-size:18px;font-weight:700;color:var(--expense)}
@media(max-width:600px){
  .grupo-modal-box{padding:1.25rem}
  .grupo-row-amount{width:78px}
  /* En movil el nombre manda: el icono se va para que no se corte el texto. */
  .grupo-name-ico{display:none}
  .grupo-name-btn{gap:5px}
}

/* Telegram contact: a normal footer link, accessible with keyboard or touch. */
.ff-telegram-contact {
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:44px;max-width:100%;box-sizing:border-box;padding:11px 18px;
  border:1px solid #63c9ed66;border-radius:999px;background:#12678f;color:#fff;
  font-family:inherit;font-size:12px;font-weight:600;line-height:1.4;
  text-decoration:none;text-align:center;box-shadow:0 4px 16px #12678f20;
  transition:background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.ff-telegram-contact svg{flex-shrink:0}
.ff-telegram-contact:focus-visible{outline:3px solid #63c9ed;outline-offset:4px}
@media(hover:hover){.ff-telegram-contact:hover{background:#0e5477;transform:translateY(-2px);box-shadow:0 7px 20px #12678f38}}
@media(prefers-reduced-motion:reduce){.ff-telegram-contact{transition:none}.ff-telegram-contact:hover{transform:none}}

/* A single public welcome, without a second framed application preview. */
.is-welcome-inner{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:760px;padding:30px 38px;isolation:isolate}
.is-welcome-inner>:not(.ff-entry-particles){position:relative;z-index:1;grid-column:auto;grid-row:auto}
.is-welcome-inner>.ff-entry-particles{animation:none;opacity:1}
.is-welcome-logo-wrap{flex-direction:column-reverse;align-items:center;gap:16px;margin-bottom:12px}
.is-welcome-symbol{position:relative;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;color:#00d4ff;border:1px solid #00d4ff55;background:#00d4ff08;box-shadow:0 0 35px #00d4ff12;--entry-orbit:35px}
.is-welcome-symbol svg{width:32px;height:32px;animation:ff-entry-bot 6s ease-in-out infinite}
.is-welcome-symbol i{position:absolute;top:50%;left:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor;transform:translateX(var(--entry-orbit));animation:ff-entry-orbit 12s linear infinite}
.is-welcome-symbol i:last-child{color:#c8ef80;animation-direction:reverse;animation-duration:17s;animation-delay:-6s}
.is-welcome-tagline{margin:0 0 16px}.is-welcome-desc{max-width:590px;margin:0 0 20px;line-height:1.7}
.is-welcome-pills{justify-content:center;margin-bottom:24px}.is-welcome-choices{width:100%;margin:0 0 16px}.is-welcome-login{margin:0 0 12px}.is-welcome-trust{margin:0}
@media(max-width:560px){.is-welcomeoverlay{padding:12px}.is-welcome-inner{padding:24px 20px}.is-welcome-logo-wrap{gap:12px}.is-welcome-logo{font-size:34px}.is-welcome-symbol{width:48px;height:48px;--entry-orbit:29px}.is-welcome-desc{font-size:13px}.is-welcome-pills{gap:7px;margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){.is-welcome-symbol svg,.is-welcome-symbol i{animation:none}}

.is-welcome-resources{font-size:11px;margin:0 0 12px;color:#8da6b5}.is-welcome-resources a{color:inherit;text-underline-offset:3px}

/* Flujo: botones Ingresos (verde) y Gastos (rojo), en el selector móvil de
   listas y en el selector del gráfico. Cada par ocupa toda la barra a partes
   iguales; en el gráfico, "Expandir" queda a la derecha. El seleccionado va en
   color sólido y el otro tintado, para que siga viéndose cuál está activo.
   Usa los tokens del tema (--income / --expense) y --bg para el texto, así
   funciona en claro y oscuro. */
.flujo-mobile-pills .pill-bar{display:flex;width:100%;gap:6px;padding:4px;box-sizing:border-box}
#tabFlujo .pill-bar:has(#pillFlujoIng){flex:1 1 auto;display:flex;gap:6px;padding:4px;min-width:0}
#tabFlujo .pill-bar:has(#pillFlujoIng)+.btn-expandir{margin-left:10px;flex:0 0 auto}
:is(#pillFlujoMobIng,#pillFlujoMobGas,#pillFlujoIng,#pillFlujoGas){flex:1 1 0;min-width:0;text-align:center;font-weight:700;letter-spacing:.06em;padding:10px 8px;border-radius:7px;transition:background .2s,color .2s,box-shadow .2s}
:is(#pillFlujoMobIng,#pillFlujoIng){background:color-mix(in srgb,var(--income) 20%,transparent);color:var(--income);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--income) 45%,transparent)}
:is(#pillFlujoMobGas,#pillFlujoGas){background:color-mix(in srgb,var(--expense) 20%,transparent);color:var(--expense);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--expense) 45%,transparent)}
:is(#pillFlujoMobIng,#pillFlujoIng).active{background:var(--income);color:var(--bg);box-shadow:0 0 14px color-mix(in srgb,var(--income) 40%,transparent)}
:is(#pillFlujoMobGas,#pillFlujoGas).active{background:var(--expense);color:var(--bg);box-shadow:0 0 14px color-mix(in srgb,var(--expense) 40%,transparent)}
