/* FinanFocus / Perspective — shared visual language for overview and portfolio. */
html.ff-studio{zoom:1}
.ff-studio{--ff-surface:var(--card-bg);--ff-line:rgba(154,177,188,.16);--ff-soft:rgba(154,177,188,.055);--ff-muted:#9aaeb5;--ff-lime:#c8ef80;--ff-positive:#a6df94;--ff-negative:#f397a3;--ff-ink:#15211b}
.ff-studio[data-theme=pro]{--bg:#10191c;--card-bg:#172226;--text:#edf4ef;--muted:#99acb3;--accent:#c8ef80;--ar:200,239,128;--portfolio:#aab8f3;--income:#a6df94;--expense:#f397a3;--select-bg:#1b292e;--overlay-bg:#142024}
.ff-studio[data-theme=light],.ff-studio[data-theme=lpink]{--ff-muted:#52676a;--ff-line:rgba(29,64,61,.16);--ff-soft:rgba(29,64,61,.04);--ff-positive:#267047;--ff-negative:#a72b43;--ff-surface:var(--card-bg)}
/* The same theme and typography are present while the application modules load. */
.app-startup{position:fixed;inset:0;z-index:2147483647;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:28px;background:var(--bg);color:var(--text);text-align:center;overflow:auto}
.app-startup-brand{font-size:28px;font-weight:500;letter-spacing:-1px;line-height:1.3}
.app-startup-brand>span{color:var(--accent)}
.app-startup-brand>small{font-size:15px;color:var(--ff-muted);letter-spacing:0}
.app-startup p{font-size:13px;line-height:1.7;color:var(--ff-muted);max-width:330px;margin:0}
.app-startup a{color:var(--accent)}
.app-startup [hidden]{display:none!important}
.app-startup-orbit{display:flex;gap:8px;align-items:center;height:24px}
.app-startup-orbit i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:ff-startup-float 1.6s ease-in-out infinite}
.app-startup-orbit i:nth-child(2){animation-delay:.16s}
.app-startup-orbit i:nth-child(3){animation-delay:.32s}
[data-app-state=error] .app-startup-orbit{display:none}
@keyframes ff-startup-float{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-5px);opacity:1}}
@media(prefers-reduced-motion:reduce){.app-startup-orbit i{animation:none;opacity:.65}}
.ff-studio body{padding:24px 28px 40px}
.ff-studio .content{max-width:1160px}
.ff-studio .header{margin-bottom:22px}
.ff-studio .header h1{font-size:24px;letter-spacing:-.7px}
.ff-studio .header button{min-height:40px}
/* Match the header's minimum height on both axes so icon controls stay circular. */
.ff-studio .header :is(.trending-toggle-btn,.theme-toggle-btn,.privacy-btn,.is-contactbtn,.is-logoutbtn,.is-header-menubtn,.is-seguimientobtn){
  box-sizing:border-box;
  width:40px;height:40px;
  min-width:40px;min-height:40px;
  max-width:40px;max-height:40px;
  aspect-ratio:1;
  flex-shrink:0;
  padding:0;
  border-radius:50%;
  align-items:center;justify-content:center;
  line-height:1;letter-spacing:0;
}
.ff-studio .header .theme-toggle-btn{display:flex}
@media(max-width:420px){
  .ff-studio .header::after{content:"";flex-basis:100%;height:0;order:1}
  .ff-studio .header>:is(.trending-switcher,#mercadosBtn,#headerMenuBtn,.is-seguimientobtn){order:2}
  .ff-studio .header>.trending-switcher{margin-left:auto}
}
.ff-studio .tab-bar{border:0;border-bottom:1px solid var(--ff-line);border-radius:0;background:none;box-shadow:none;padding:0 0 10px;gap:8px;margin-bottom:32px}
.ff-studio .tab{border:0!important;background:none;color:var(--ff-muted);box-shadow:none!important;border-radius:9px;letter-spacing:0;font-size:14px;font-weight:500;min-height:44px;transition:background .15s,color .15s}
.ff-studio .tab.active{background:var(--ff-lime)!important;color:var(--ff-ink)!important}
.ff-studio .tab::before,.ff-studio .tab::after{display:none!important}
.ff-focus-view .metrics{display:none!important}
.ff-eyebrow{display:block;font-size:10px;font-weight:600;letter-spacing:1.7px;color:var(--ff-muted);text-transform:uppercase;line-height:1.5}
.ff-studio :is(#tabDashboard,#tabCartera) [hidden]{display:none!important}
.ff-studio :is(#tabDashboard,#tabCartera) .corner{display:none}
.ff-studio :is(#tabDashboard,#tabCartera) .card,.ff-panel{border:1px solid var(--ff-line);border-radius:20px;background:var(--ff-surface);box-shadow:none;padding:25px;min-width:0}
.ff-studio :is(#tabDashboard,#tabCartera) .card-head{gap:10px;margin-bottom:20px;flex-wrap:wrap}
.ff-studio :is(#tabDashboard,#tabCartera) .card-title{font-size:15px!important;letter-spacing:-.2px;font-weight:500;color:var(--text)!important;text-transform:none}
.ff-studio :is(#tabDashboard,#tabCartera) .dot{display:none}
.ff-studio :is(#tabDashboard,#tabCartera) button{cursor:pointer}
.ff-studio :is(#tabDashboard,#tabCartera) button:disabled{cursor:default}
.ff-studio :is(#tabDashboard,#tabCartera) button:focus-visible,.ff-studio :is(#tabDashboard,#tabCartera) summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.ff-primary,.ff-secondary{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;padding:11px 18px;border-radius:10px;border:1px solid transparent;font-size:13px;font-weight:600;line-height:1.4;transition:transform .15s,background .15s}
.ff-primary{background:var(--ff-lime);color:var(--ff-ink)}
.ff-primary:hover{background:#daf6ab;transform:translateY(-1px)}
.ff-secondary{background:var(--ff-soft);border-color:var(--ff-line);color:var(--text)}
.ff-secondary:hover{background:rgba(154,177,188,.15)}
.ff-text-btn{border:0;background:transparent;color:var(--text);font-size:12px;display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:8px 0}
.ff-positive{color:var(--ff-positive)!important}.ff-negative{color:var(--ff-negative)!important}
.ff-studio #tabDashboard .dash-welcome{display:none}
.ff-studio .dash-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}
.ff-studio .dash-grid>div,.ff-studio .dash-grid>section{min-width:0}
.ff-studio .dash-grid>.ff-wealth{grid-column:span 8;order:0}
.ff-studio .dash-grid>.ff-flow{grid-column:span 4;order:1}
.ff-studio .dash-grid>.ff-history{grid-column:span 8;order:2}
.ff-studio .dash-grid>.ff-top{grid-column:span 4;order:3}
.ff-studio .dash-grid>.ff-future{grid-column:span 8;order:4}
.ff-studio .dash-grid>.ff-focus{grid-column:span 4;order:5}
.ff-studio .dash-grid>.ff-actions{grid-column:span 12;order:6}
.ff-studio .dash-grid>.dash-col-12>.card{height:100%}
.ff-studio #tabDashboard .dash-hero{height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--ff-line);border-radius:20px;padding:30px 30px 0;background:radial-gradient(ellipse at 95% 0,rgba(200,239,128,.08),transparent 65%),var(--ff-surface);align-items:start}
.ff-studio .dash-hero::before{display:none}
.ff-studio #tabDashboard .dash-hero-cell{padding:20px 16px;border:0;border-top:1px solid var(--ff-line);background:transparent;gap:7px;border-radius:0}
.ff-studio #tabDashboard .dash-hero-cell:first-child{grid-column:1/-1;border:0;padding:0 0 26px}
.ff-studio #tabDashboard .dash-hero-cell:nth-child(2){padding-left:0}
.ff-studio #tabDashboard .dash-hero-cell:nth-child(4){padding-right:0}
.ff-studio #tabDashboard .dash-hero-label{font-size:10px;font-weight:500;letter-spacing:.3px;white-space:normal;color:var(--ff-muted)}
.ff-studio #tabDashboard .dash-hero-cell:first-child .dash-hero-label{font-size:13px}
.ff-studio #tabDashboard .dash-hero-val{font-size:26px;font-weight:500;letter-spacing:-1px;color:var(--text)!important;text-shadow:none!important;line-height:1.25}
.ff-studio #dashPatTotal{font-size:clamp(40px,5.1vw,66px)!important;letter-spacing:-3px!important;color:var(--text)!important;margin:5px 0 3px}
.ff-studio #tabDashboard .dash-hero-sub{font-size:10px;color:var(--ff-muted)!important;letter-spacing:0;line-height:1.6}
.ff-studio #dashPatRent{font-size:11px!important}
.ff-studio .dash-hero-alertrow{display:none}
.ff-studio .dash-fire-bar{height:3px;margin-top:3px;background:var(--ff-line)}
.ff-studio .dash-fire-fill{background:var(--ff-positive)}
.ff-composition{margin-top:20px}
.ff-wealth-equation{display:flex;gap:24px;margin-bottom:19px;align-items:center}
.ff-wealth-equation>span{font-size:11px;color:var(--ff-muted)}
.ff-wealth-equation b{display:block;font-size:18px;color:var(--text);font-weight:500;margin-top:5px;letter-spacing:-.4px}
.ff-equation-minus{align-self:flex-end;font-size:20px!important;padding-bottom:2px}
.ff-allocation-bar{display:flex;gap:4px;height:7px;border-radius:6px;overflow:hidden;background:var(--ff-line)}
.ff-allocation-bar span{min-width:2px;border-radius:2px}
.ff-composition-legend{display:flex;gap:15px;flex-wrap:wrap;margin-top:12px;font-size:10px;color:var(--ff-muted)}
.ff-composition-legend>span{display:flex;gap:6px;align-items:center}
.ff-composition-legend i,.ff-map-legend i{display:inline-block;width:6px;height:6px;border-radius:2px;flex-shrink:0}
.ff-composition-legend b{font-weight:500;color:var(--text)}
.ff-section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}
.ff-section-top>span:last-child{color:var(--ff-lime);font-size:20px}
.ff-flow h3{font-size:19px;line-height:1.35;font-weight:500;letter-spacing:-.6px;margin-bottom:27px}
.ff-flow-row{display:flex;justify-content:space-between;font-size:12px;color:var(--ff-muted);gap:8px}
.ff-flow-row b{font-size:14px;font-weight:500;color:var(--text)}
.ff-flow-track{height:6px;background:var(--ff-soft);border-radius:4px;margin:9px 0 23px;overflow:hidden}
.ff-flow-track i{display:block;height:100%;border-radius:4px;background:var(--ff-lime)}
.ff-out i{background:#82c6f7}
.ff-flow-bottom{padding-top:9px;display:flex;flex-direction:column;gap:6px;color:var(--ff-muted);font-size:11px}
.ff-flow-bottom strong{color:var(--ff-positive);font-size:38px;line-height:1.25;font-weight:500;letter-spacing:-1.6px}
.ff-flow>.ff-text-btn{margin-top:13px;width:100%;border-top:1px solid var(--ff-line);padding-top:15px}
.ff-studio .ff-history .dash-cartera-mini{display:none}
.ff-studio .ff-history .dash-seg-head>span:first-child{display:none}
.ff-studio .dash-seg-head{flex-wrap:wrap}
.ff-studio .dash-seg-range-btn{min-height:30px;min-width:34px;border:0;letter-spacing:0;color:var(--ff-muted)}
.ff-studio .dash-seg-range-btn.active{background:var(--ff-soft);color:var(--text);box-shadow:none}
.ff-history-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:10px 0 8px}
.ff-history-mark{font-size:42px;line-height:1;color:var(--ff-lime)}
.ff-history-empty strong{font-size:20px;font-weight:500;letter-spacing:-.5px}
.ff-history-empty p{color:var(--ff-muted);font-size:12px;line-height:1.7;max-width:380px}
.ff-studio .dash-toppos-empty{padding:25px 0;font-size:13px;line-height:1.8;color:var(--ff-muted)}
.ff-studio .dash-toppos-empty button{margin-top:20px;border:1px solid var(--ff-line);background:var(--ff-soft);color:var(--text);padding:12px;min-height:44px;letter-spacing:0}
.ff-studio .dash-toppos-row{grid-template-columns:20px minmax(0,1fr) auto;gap:7px;min-height:58px;border-bottom:1px solid var(--ff-line)}
.ff-studio .dash-toppos-pct,.ff-studio .dash-toppos-pl{display:none}
.ff-studio .dash-toppos-tk{font-size:12px}.ff-studio .dash-toppos-name{font-size:10px}
.ff-studio .dash-toppos-val{font-size:13px;color:var(--text)}
.ff-studio .dash-proj-chip{background:none;border:0;border-left:1px solid var(--ff-line);padding:8px 15px;box-shadow:none;border-radius:0}
.ff-studio .dash-proj-chip:first-child{border:0;padding-left:0}
.ff-studio .dash-proj-chip-nom{font-size:23px;color:var(--text);letter-spacing:-.5px;font-weight:500}
.ff-studio .dash-proj-chip-real{font-size:10px;color:var(--ff-muted)}
.ff-studio .dash-proj-chip-label{font-size:10px;color:var(--ff-muted)}
.ff-studio .dash-proj-chip.hl .dash-proj-chip-nom{color:var(--ff-positive)}
.ff-studio .dash-proj-chart-wrap{height:110px;margin-top:20px}
.ff-focus{background:var(--ff-lime);color:var(--ff-ink);display:flex;flex-direction:column;align-items:flex-start}
.ff-focus .ff-eyebrow{color:#4c6341}
.ff-focus-icon{font-size:32px;line-height:1;margin:19px 0}
.ff-focus h3{font-size:24px;font-weight:500;letter-spacing:-.8px;line-height:1.2;margin-bottom:10px}
.ff-focus p{font-size:12px;line-height:1.7;color:#40543a;margin-bottom:20px}
.ff-focus .ff-primary{background:var(--ff-ink);color:var(--ff-lime);margin-top:auto;width:100%;justify-content:space-between}
.ff-studio .dash-quick-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.ff-studio .dash-quick-btn{background:var(--ff-soft);border:1px solid var(--ff-line);border-radius:12px;min-height:85px;padding:15px 8px;color:var(--ff-muted);letter-spacing:.2px;font-size:10px;box-shadow:none}
.ff-studio .dash-quick-btn .qicon{font-family:Arial,sans-serif;color:var(--text);font-size:20px}
.ff-studio .monthly-review{border:1px solid var(--ff-line);border-radius:20px;background:var(--ff-surface);padding:28px;margin:18px 0}
.ff-studio .monthly-heading h2{font-size:22px;font-weight:500;letter-spacing:-.5px}
.ff-studio .monthly-muted{color:var(--ff-muted);line-height:1.7}
.ff-studio .monthly-grid{gap:36px;margin-top:24px}
.ff-studio .monthly-grid strong{font-size:27px;font-weight:500;letter-spacing:-.8px;margin:12px 0}
.ff-studio .monthly-review button,.ff-studio .monthly-review select{min-height:44px;border:1px solid var(--ff-line);border-radius:9px;background:var(--ff-soft);color:var(--text);font-size:12px}
.ff-studio .monthly-review progress{height:7px;accent-color:var(--ff-positive)}
.ff-studio .monthly-status{font-size:10px!important;border:0!important;color:var(--ff-muted)!important;background:none!important}
.ff-studio .monthly-review h3{font-size:13px;font-weight:500;margin-top:24px}
.ff-studio .monthly-review button.monthly-cookies{background:none;border:0;padding-left:0;color:var(--ff-muted)}
.ff-portfolio-hero{display:grid;grid-template-columns:1fr 1fr;background:radial-gradient(ellipse at 90% 10%,rgba(174,156,243,.08),transparent 65%),var(--ff-surface);border:1px solid var(--ff-line);border-radius:20px;overflow:hidden;margin-bottom:26px}
.ff-portfolio-main{padding:32px}
.ff-portfolio-value{font-size:clamp(38px,5vw,64px);font-weight:500;letter-spacing:-2.8px;margin:12px 0 10px;line-height:1.2;overflow-wrap:anywhere}
.ff-portfolio-meta{display:flex;flex-wrap:wrap;gap:16px;color:var(--ff-muted);font-size:11px}
.ff-portfolio-meta>span+span{border-left:1px solid var(--ff-line);padding-left:16px}
.ff-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 20px}
.ff-quote-note{font-size:10px;line-height:1.8;color:var(--ff-muted);max-width:380px}
.ff-capital-map{display:flex;align-items:center;justify-content:center;gap:16px;padding:26px 26px 26px 0;min-width:0}
.ff-donut{width:220px;flex-shrink:0;position:relative}
.ff-donut svg{display:block;width:100%}
.ff-donut>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.ff-donut strong{font-size:40px;font-weight:500;letter-spacing:-2px}
.ff-donut span{font-size:11px;color:var(--ff-muted)}
.ff-map-legend{min-width:0;max-width:200px;flex:1}
.ff-map-legend>.ff-eyebrow{margin-bottom:18px;letter-spacing:1px}
.ff-map-legend>div{display:flex;align-items:center;gap:7px;font-size:10px;margin-bottom:14px}
.ff-map-legend>div>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ff-map-legend b{font-size:11px;font-weight:500;margin-left:auto}
.ff-map-legend p,.ff-map-legend small{font-size:12px;line-height:1.6;color:var(--ff-muted)}
.ff-portfolio-kpis{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ff-line);padding:24px 32px;gap:24px}
.ff-portfolio-kpis>div{display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--ff-line);padding-left:24px;min-width:0}
.ff-portfolio-kpis>div:first-child{border:0;padding:0}
.ff-portfolio-kpis span{font-size:11px;color:var(--ff-muted)}
.ff-portfolio-kpis strong{font-size:24px;font-weight:500;letter-spacing:-.7px;overflow-wrap:anywhere}
.ff-portfolio-kpis strong small{font-size:13px;color:inherit;white-space:nowrap}
.ff-portfolio-kpis small{font-size:10px;line-height:1.6;color:var(--ff-muted)}
.ff-studio .ff-holdings{margin-bottom:18px}
.ff-holdings-toolbar{display:flex;align-items:center;gap:12px;border-top:1px solid var(--ff-line);padding:20px 0}
.ff-search{display:flex;align-items:center;gap:10px;background:var(--ff-soft);border:1px solid var(--ff-line);border-radius:9px;padding:0 12px;max-width:380px;flex:1}
.ff-search>span{font-size:24px;color:var(--ff-muted)}
.ff-search input{width:100%;min-width:0;color:var(--text);background:none;border:0;min-height:42px;font-size:12px;outline-offset:2px}
.ff-search input::placeholder{color:var(--ff-muted)}
.ff-holdings-toolbar select{min-height:44px;background:var(--ff-surface);border:1px solid var(--ff-line);border-radius:9px;color:var(--text);padding:0 12px;font-size:12px;max-width:200px}
#ff-result-count{font-size:11px;color:var(--ff-muted);margin-left:auto;white-space:nowrap}
.ff-studio #listCartera{overflow:visible}
.ff-studio #listCartera .cartera-header{display:none!important}
.ff-studio #listCartera .cartera-row{display:block!important;border:1px solid var(--ff-line)!important;border-radius:12px;margin:0 0 10px;background:var(--ff-soft)!important;padding:0;overflow:hidden}
.ff-studio #listCartera .cartera-row[hidden]{display:none!important}
.ff-studio #listCartera .cartera-summary{display:grid!important;grid-template-columns:32px minmax(120px,1fr) 85px 105px 90px 58px;align-items:center;padding:16px 12px;gap:12px;cursor:pointer}
.ff-studio #listCartera .car-expand-btn{display:flex;align-items:center;justify-content:center;height:40px;width:30px;border:0;color:var(--ff-muted);font-size:23px;background:none;flex-shrink:0}
.ff-studio #listCartera .sum-col-tk{display:none}
.ff-studio #listCartera .sum-col{width:auto;min-width:0;text-align:right;align-items:flex-end}
.ff-studio #listCartera .sum-lbl{font-size:9px;font-weight:400;color:var(--ff-muted);letter-spacing:.3px;margin-bottom:5px;display:block}
.ff-studio #listCartera .sum-col-pr{order:0}
.ff-studio #listCartera .sum-precio>span:first-child{color:var(--text)!important;font-size:13px!important}
.ff-studio #listCartera .sum-precio>span:last-child{font-size:9px!important}
.ff-studio #listCartera .sum-pl{font-size:13px}
.ff-studio #listCartera .sum-pe{font-size:12px;color:var(--ff-muted)}
.ff-holding-identity{display:flex;align-items:center;gap:12px;min-width:0}
.ff-asset-avatar{--asset-color:#c8ef80;display:flex;justify-content:center;align-items:center;flex-shrink:0;width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--asset-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--asset-color) 23%,transparent);color:var(--asset-color);font-size:12px;font-weight:600}
.ff-holding-identity>span:last-child{min-width:0}
.ff-holding-identity strong{display:block;font-size:13px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:5px}
.ff-holding-identity small{font-size:10px;color:var(--ff-muted);word-break:break-word}
.ff-holding-value{text-align:right}
.ff-holding-value strong{font-size:15px;font-weight:500;white-space:nowrap}
.ff-studio #listCartera .cartera-detail{display:none!important;padding:20px;border-top:1px solid var(--ff-line);gap:12px;background:var(--ff-surface)}
.ff-studio #listCartera .cartera-row.expanded .cartera-detail{display:grid!important;grid-template-areas:'n n n t t s d' 'u u v v c c p' 'pl pl pe pe . . .';grid-template-columns:repeat(7,minmax(0,1fr));align-items:center}
.ff-studio #listCartera .cartera-detail>*{width:auto!important;min-width:0!important;flex-shrink:unset!important}
.ff-studio #listCartera .car-n{grid-area:n}.ff-studio #listCartera .car-t{grid-area:t}.ff-studio #listCartera .car-s{grid-area:s}.ff-studio #listCartera .car-del{grid-area:d;justify-self:end}
.ff-studio #listCartera .car-u{grid-area:u}.ff-studio #listCartera .car-v{grid-area:v}.ff-studio #listCartera .car-c{grid-area:c}.ff-studio #listCartera .car-p{grid-area:p}.ff-studio #listCartera .car-pl{grid-area:pl}.ff-studio #listCartera .car-pe{grid-area:pe}
.ff-studio #listCartera .car-lbl{display:block;font-size:9px;color:var(--ff-muted);margin-bottom:5px}
.ff-studio #listCartera .fut-input{min-height:42px;width:100%!important;background:var(--ff-soft);border:1px solid var(--ff-line);border-radius:7px;color:var(--text);font-size:13px!important}
.ff-studio #listCartera .cartera-detail .car-p::before{display:none}
.ff-studio .ff-holdings .cartera-add-btn-dynamic{border:1px dashed var(--ff-line);color:var(--text);letter-spacing:0;border-radius:9px;background:none;min-height:44px}
.ff-studio .ff-holdings .is-cartera-freq-label{display:none}
.ff-studio .ff-holdings .card-head>button,.ff-studio .ff-holdings .ff6-cmenu-wrap>button{min-height:36px;border-color:var(--ff-line);background:var(--ff-soft);border-radius:8px;box-shadow:none!important}
.ff-studio .ff-holdings .is-carterapricestatus{width:100%;font-size:10px}
.ff-portfolio-empty{display:grid;grid-template-columns:200px 1fr;align-items:center;gap:38px;padding:38px 5%;border-top:1px solid var(--ff-line)}
.ff-portfolio-empty h3{font-size:29px;font-weight:500;letter-spacing:-1px;line-height:1.2;margin:10px 0 12px}
.ff-portfolio-empty p{font-size:13px;line-height:1.8;color:var(--ff-muted);max-width:430px;margin-bottom:22px}
.ff-portfolio-empty .ff-text-btn{display:block}
.ff-empty-art{height:170px;display:flex;gap:12px;align-items:flex-end;padding:20px;position:relative;border:1px solid var(--ff-line);border-radius:20px;transform:rotate(-5deg);background:var(--ff-soft)}
.ff-empty-art span{position:absolute;top:15px;left:20px;font-size:40px;color:var(--ff-lime)}
.ff-empty-art i{height:30%;flex:1;background:#82c6f7;border-radius:6px}
.ff-empty-art i:nth-last-child(2){height:50%;background:#ae9cf3}.ff-empty-art i:last-child{height:80%;background:var(--ff-lime)}
.ff-sample{padding:24px;border:1px dashed var(--ff-line);border-radius:12px}
.ff-sample h3{font-size:16px;font-weight:500}.ff-sample p{font-size:11px;color:var(--ff-muted);line-height:1.7;margin:8px 0 20px}
.ff-sample-row{display:grid;grid-template-columns:40px 1fr 55px 90px;align-items:center;gap:12px;border-top:1px solid var(--ff-line);padding:12px 0;font-size:12px}
.ff-sample-row strong,.ff-sample-row b{font-weight:500}.ff-sample-row>span:not(.ff-asset-avatar){color:var(--ff-muted)}
.ff-no-match{padding:24px;text-align:center;color:var(--ff-muted);font-size:13px;line-height:1.7}
.ff-no-match button{margin-top:12px;min-height:44px;background:var(--ff-soft);border:1px solid var(--ff-line);color:var(--text);padding:10px 18px;border-radius:8px}
.ff-analysis{border:1px solid var(--ff-line);border-radius:16px;margin-bottom:18px;background:var(--ff-surface)}
.ff-analysis>summary{padding:21px 24px;cursor:pointer;font-size:14px;color:var(--text)}
.ff-studio .ff-analysis .two-col{padding:0 18px 18px;margin-bottom:0}.ff-studio .ff-analysis .card{background:var(--ff-soft)}
.ff-studio #tabCartera .markets-collapse{border:1px solid var(--ff-line);background:var(--ff-surface);border-radius:16px;margin-bottom:20px;overflow:hidden}
.ff-studio #tabCartera .markets-header{padding:21px 24px;min-height:56px}.ff-studio .markets-title{font-size:12px;letter-spacing:1px;color:var(--ff-muted)}
.ff-studio #tabCartera>.is-p-9{color:var(--ff-muted);font-size:10px;line-height:1.8}
@media(min-width:1101px){.ff-studio .header{display:grid;grid-template-columns:minmax(180px,1fr);grid-auto-flow:column;grid-auto-columns:auto;align-items:center}}
@media(max-width:1100px){.ff-studio .header{display:flex}.ff-donut{width:185px}.ff-capital-map{gap:6px}.ff-studio .ff-holdings .ff6-head-desktop{display:none!important}}
@media(max-width:860px){
 .ff-studio .dash-grid>.ff-wealth{grid-column:span 7}.ff-studio .dash-grid>.ff-flow{grid-column:span 5}.ff-studio .dash-grid>.ff-history,.ff-studio .dash-grid>.ff-future{grid-column:span 7}.ff-studio .dash-grid>.ff-top,.ff-studio .dash-grid>.ff-focus{grid-column:span 5}
 .ff-studio #tabDashboard .dash-hero{padding:24px 22px 0}.ff-studio #tabDashboard .dash-hero-val{font-size:22px}.ff-studio #tabDashboard .dash-hero-cell{padding:17px 8px}.ff-studio #tabDashboard .dash-hero-label{font-size:9px}
 .ff-portfolio-main{padding:26px}.ff-capital-map{flex-direction:column;padding:20px}.ff-donut{width:170px}.ff-map-legend{width:100%;max-width:220px}.ff-map-legend>div{margin-bottom:8px}.ff-map-legend>.ff-eyebrow{display:none}
 .ff-studio #listCartera .cartera-summary{grid-template-columns:28px minmax(90px,1fr) 95px 75px;gap:8px}.ff-studio #listCartera .sum-col-pr,.ff-studio #listCartera .sum-col-pe{display:none}
 .ff-studio .dash-proj-chips{gap:0}.ff-studio .dash-proj-chip-nom{font-size:18px}.ff-studio .dash-proj-chip{padding:6px 10px}
}
@media(max-width:600px){
 .ff-studio body{padding:16px 14px 28px}.ff-studio .header{gap:6px;margin-bottom:16px}.ff-studio .header h1{font-size:23px}.ff-studio .tab-bar{gap:2px;margin-bottom:25px}.ff-studio .tab{font-size:11px;min-height:42px;padding:8px 5px;white-space:nowrap}
 .ff-eyebrow{font-size:9px;letter-spacing:1.4px}
 .ff-studio .dash-grid{gap:14px}.ff-studio .dash-grid>:is(.ff-wealth,.ff-flow,.ff-history,.ff-top,.ff-future,.ff-focus,.ff-actions){grid-column:span 12}
 .ff-studio #tabDashboard .dash-hero{padding:24px 20px 0}.ff-studio #dashPatTotal{font-size:49px!important;letter-spacing:-2px!important;white-space:normal;overflow-wrap:anywhere}.ff-studio #tabDashboard .dash-hero-cell{padding:18px 8px}.ff-studio #tabDashboard .dash-hero-cell:first-child{padding:0 0 23px}.ff-studio #tabDashboard .dash-hero-val{font-size:22px}.ff-studio #tabDashboard .dash-hero-label{font-size:9px;letter-spacing:0}.ff-studio #tabDashboard .dash-hero-sub{font-size:9px}.ff-studio #dashPatRent{font-size:10px!important}
 .ff-composition-legend{gap:9px;font-size:9px}.ff-wealth-equation{gap:22px}.ff-wealth-equation b{font-size:18px}
 .ff-studio :is(#tabDashboard,#tabCartera) .card,.ff-panel{padding:22px 20px;border-radius:17px}.ff-flow h3{font-size:22px;margin-bottom:22px}.ff-flow-bottom strong{font-size:40px}.ff-flow-track{margin-bottom:18px}
 .ff-studio .dash-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ff-studio .dash-quick-btn{min-height:78px;font-size:9px}.ff-studio .dash-proj-chip-nom{font-size:18px}.ff-studio .dash-proj-chip-label{font-size:9px}
 .ff-studio .monthly-review{padding:23px 20px;border-radius:17px}.ff-studio .monthly-grid{grid-template-columns:1fr;gap:26px}.ff-studio .monthly-heading{align-items:flex-start;gap:8px;flex-direction:column}.ff-studio .monthly-heading h2{font-size:22px}.ff-studio .monthly-status{min-height:20px!important;padding:0}.ff-studio .monthly-grid strong{font-size:25px}
 .ff-portfolio-hero{grid-template-columns:1fr;border-radius:17px;margin-bottom:16px}.ff-portfolio-main{padding:27px 22px 0}.ff-portfolio-value{font-size:49px;letter-spacing:-2px}.ff-hero-actions{margin:21px 0 17px}.ff-hero-actions .ff-primary,.ff-hero-actions .ff-secondary{font-size:12px;padding:11px 13px}.ff-quote-note{font-size:9px}
 .ff-capital-map{flex-direction:row;padding:20px 18px;gap:14px;justify-content:flex-start}.ff-donut{width:145px}.ff-donut strong{font-size:33px}.ff-donut span{font-size:10px}.ff-map-legend>div{font-size:9px;gap:6px;margin-bottom:11px}.ff-map-legend b{font-size:10px}.ff-map-legend p{font-size:12px}
 .ff-portfolio-kpis{grid-template-columns:1fr;padding:4px 22px 20px;gap:0;border:0}.ff-portfolio-kpis>div,.ff-portfolio-kpis>div:first-child{border:0;border-top:1px solid var(--ff-line);padding:16px 0 2px;margin-top:12px;display:grid;grid-template-columns:1fr auto;gap:7px 12px}.ff-portfolio-kpis strong{font-size:22px;text-align:right}.ff-portfolio-kpis small{grid-column:1/-1}.ff-portfolio-kpis strong small{font-size:11px}
 .ff-holdings-toolbar{flex-wrap:wrap;gap:10px}.ff-search{max-width:none;flex-basis:100%}.ff-holdings-toolbar select{flex:1;max-width:none;font-size:11px}.ff-studio #listCartera .cartera-summary{grid-template-columns:22px minmax(0,1fr) auto;padding:14px 8px;gap:6px}.ff-studio #listCartera .car-expand-btn{width:22px;height:44px}.ff-studio #listCartera .sum-col-pl{grid-column:3;grid-row:2;display:flex;gap:6px;align-items:center;flex-direction:row;justify-content:flex-end}.ff-studio #listCartera .sum-col-pl .sum-lbl{margin:0;font-size:8px}.ff-studio #listCartera .sum-col-pl .sum-pl{font-size:11px}.ff-holding-identity{gap:8px;grid-row:1/3;grid-column:2}.ff-holding-identity strong{font-size:12px}.ff-asset-avatar{width:30px;height:34px;font-size:10px;border-radius:8px}.ff-holding-identity small{font-size:9px}.ff-holding-value{grid-column:3;grid-row:1}.ff-holding-value strong{font-size:13px}.ff-holding-value>.sum-lbl{display:none!important}
 .ff-studio #listCartera .cartera-row.expanded .cartera-detail{grid-template-areas:'n n n n' 't t s d' 'u u c c' 'v v p p' 'pl pl pe pe';grid-template-columns:repeat(4,minmax(0,1fr));padding:16px 12px}.ff-studio #listCartera .cartera-detail input{font-size:16px!important}.ff-studio #listCartera .car-lbl{font-size:9px}
 .ff-portfolio-empty{grid-template-columns:1fr;gap:22px;padding:25px 0 5px}.ff-empty-art{height:120px;width:140px;margin:5px auto 15px}.ff-empty-art span{font-size:27px;top:8px}.ff-portfolio-empty h3{font-size:26px}.ff-portfolio-empty p{font-size:12px}.ff-portfolio-empty .ff-primary{width:100%}.ff-portfolio-empty .ff-text-btn{margin:5px auto 0}.ff-sample{padding:16px 12px}.ff-sample-row{grid-template-columns:30px 1fr 34px 70px;gap:7px;font-size:10px}.ff-sample-row .ff-asset-avatar{width:28px}
 .ff-studio .ff-analysis .two-col{padding:0 10px 10px;grid-template-columns:1fr}.ff-studio #tabCartera .markets-header,.ff-analysis>summary{padding:19px 20px}.ff-studio .ff-holdings .card-head{gap:8px}
}
@media(prefers-reduced-motion:reduce){.ff-studio .tab-fade-in{animation:none}.ff-primary,.ff-secondary{transition:none}.ff-primary:hover{transform:none}}

.ff-projection-note{font-size:10px;line-height:1.6;color:var(--ff-muted);margin-top:10px}
@media(max-width:600px){.ff-studio .header h1{font-size:22px;letter-spacing:-.8px}.ff-studio .header h1 .is-span-11{display:none}}

/* Portfolio: a readable day change and an explorable capital map. */
.ff-portfolio-total{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin:12px 0 10px}
.ff-portfolio-total .ff-portfolio-value{margin:0}
.ff-daily-change{display:flex;flex-direction:column;gap:5px;color:var(--ff-muted);max-width:100%;font-variant-numeric:tabular-nums}
.ff-daily-change>span{font-size:clamp(15px,1.65vw,22px);font-weight:600;letter-spacing:-.45px;line-height:1.3}
.ff-daily-change>small{font-size:10px;font-weight:500;letter-spacing:.3px;color:var(--ff-muted)}
.ff-daily-change.ff-positive{color:var(--ff-positive)}
.ff-daily-change.ff-negative{color:var(--ff-negative)}
.ff-import svg{flex-shrink:0}
.ff-donut path[data-allocation]{pointer-events:stroke;cursor:pointer;transition:stroke-width .22s,filter .22s;outline:none}
.ff-donut path.is-selected,.ff-donut path:focus-visible{stroke-width:25;filter:drop-shadow(0 0 4px currentColor)}
.ff-donut path:focus-visible{stroke-dasharray:3 2}
.ff-donut>.ff-donut-center{inset:23%;pointer-events:none;text-align:center;gap:7px}
.ff-donut-center.has-selection strong{font-size:clamp(15px,1.65vw,23px);letter-spacing:-.7px;white-space:nowrap;font-variant-numeric:tabular-nums}
.ff-donut-center .ff-donut-name{font-size:11px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;overflow-wrap:anywhere;color:var(--text)}
.ff-donut-center .ff-donut-weight{font-size:10px;white-space:nowrap;color:var(--ff-positive)}
.ff-map-legend>.ff-allocation-list{display:block;max-height:192px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;margin:0 0 12px;padding:2px}
.ff-allocation-list>button{display:flex;align-items:center;gap:8px;min-height:36px;width:100%;padding:7px 5px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);text-align:left;font:inherit;font-size:11px;cursor:pointer;transition:background .2s,border-color .2s}
.ff-allocation-list>button i{width:7px;height:7px;flex-shrink:0;border-radius:50%}
.ff-allocation-list>button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ff-allocation-list>button b{font-size:11px;font-weight:500;margin-left:auto;white-space:nowrap}
.ff-allocation-list>button:hover,.ff-allocation-list>button.is-selected{background:var(--ff-soft);border-color:var(--ff-line)}
.ff-allocation-list>button:focus-visible,.ff-allocation-reset:focus-visible{outline:2px solid var(--ff-positive);outline-offset:2px}
.ff-map-legend>small{display:block;font-size:10px;line-height:1.5}
.ff-allocation-reset{border:0;padding:8px 0;background:none;color:var(--ff-muted);font:inherit;font-size:10px;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media(max-width:600px){
 .ff-portfolio-total{gap:8px 10px}.ff-portfolio-total .ff-portfolio-value{font-size:clamp(30px,9vw,42px)}.ff-daily-change>span{font-size:clamp(11px,3.3vw,14px)}
 .ff-capital-map{gap:10px}.ff-map-legend{max-width:none}
 .ff-donut-center.has-selection strong{font-size:15px}.ff-donut-center .ff-donut-name{font-size:9px}.ff-donut-center .ff-donut-weight{font-size:8px}
 .ff-allocation-list>button{min-height:44px}.ff-allocation-reset{min-height:44px}
}
@media(prefers-reduced-motion:reduce){.ff-donut path[data-allocation],.ff-allocation-list>button{transition:none}}

/* Daily leaders replace concentration. Unknown or incompatible periods stay explicit. */
.ff-portfolio-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.ff-portfolio-kpis .ff-day-leader b{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ff-holding-day,.ff-holding-return{display:none;text-align:right;min-width:0;font-variant-numeric:tabular-nums}
.ff-holding-day strong,.ff-holding-return strong{font-size:15px;font-weight:600;white-space:nowrap;display:block}
.ff-holding-day small,.ff-holding-return small{display:block;font-size:10px;line-height:1.6;color:var(--ff-muted)}
.ff-row-day-percent{font-size:12px;line-height:1.7}
.ff-portfolio-analysis{position:relative;isolation:isolate;animation:ff-analysis-float 6s ease-in-out infinite}
.ff-portfolio-analysis::before,.ff-portfolio-analysis::after{content:"";position:absolute;pointer-events:none;width:3px;height:3px;border-radius:50%;background:#bf7fff;box-shadow:0 0 8px #bf7fff;top:15%;left:10%;animation:ff-analysis-spark 5s ease-in-out infinite}
.ff-portfolio-analysis::after{left:auto;right:8%;top:75%;animation-delay:-2.5s;animation-duration:7s}
@keyframes ff-analysis-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
@keyframes ff-analysis-spark{0%,100%{transform:translate(0,0);opacity:.25}50%{transform:translate(7px,-8px);opacity:.8}}
@media(min-width:1101px){
 .ff-studio #listCartera .cartera-summary{grid-template-columns:30px minmax(160px,1.5fr) minmax(80px,.7fr) minmax(100px,.9fr) minmax(140px,1fr) minmax(120px,1fr) 62px;gap:18px;padding:20px 18px}
 .ff-studio #listCartera .ff-holding-day,.ff-studio #listCartera .ff-holding-return{display:block}
 .ff-studio #listCartera .sum-col-pl{display:none}
 .ff-studio #listCartera .sum-precio>span:last-child{display:none}
 .ff-studio #listCartera .sum-col-pr .sum-precio>span:first-child::after{content:attr(data-currency);display:block;font-size:10px;font-weight:400;color:var(--ff-muted);margin-top:5px}
 .ff-holding-identity strong{font-size:15px}.ff-holding-identity small{font-size:11px}.ff-holding-value strong{font-size:17px}
}
@media(max-width:800px){.ff-portfolio-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.ff-portfolio-kpis>div:nth-child(3){border-left:0;padding-left:0}}
@media(prefers-reduced-motion:reduce){.ff-portfolio-analysis,.ff-portfolio-analysis::before,.ff-portfolio-analysis::after{animation:none}}
