:root{--background:#eef2f4;--surface:#fff;--field:#f8fafc;--button:#f3f4f6;--border:#d7dde3;--text:#374151;--text-strong:#0f172a;--muted:#64748b;--shadow:0 18px 48px #0f172a1f;color:var(--text);background:var(--background);letter-spacing:0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.4}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}#root{min-height:100svh}.shell{width:min(1360px,100vw - 32px);margin:0 auto;padding:28px 0 44px}.widget-panel,.config-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px}.widget-panel{overflow:hidden}.topbar,.section-heading{justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;display:flex}.topbar{color:#fff;background:linear-gradient(90deg,#111827 0%,#16352f 55%,#2a2730 100%);grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:start;display:grid;position:relative}.topbar-content{width:100%;min-width:0}.topbar-meta{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:14px;margin-top:10px;display:flex}.topbar-meta .actions{z-index:2;justify-content:flex-end;gap:6px;position:absolute;top:14px;right:22px}.topbar .icon-button{border-radius:6px;min-height:28px;padding:0 9px;font-size:.78rem;line-height:1}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:.78rem;font-weight:700}.topbar .eyebrow{color:#bdc8cf}h1,h2{color:var(--text-strong);letter-spacing:0;margin:0;font-weight:750}.topbar h1{color:#fff;font-size:clamp(2rem,6vw,3.4rem);line-height:1}.portfolio-mainline{flex-wrap:nowrap;align-items:baseline;gap:18px;width:100%;min-width:0;display:flex}.portfolio-total{font-variant-numeric:tabular-nums;align-items:baseline;gap:.08em;display:flex}.portfolio-total-tail{font-size:.66em;line-height:1}.portfolio-total-currency{margin-left:.16em;font-size:.75em}.forecast-path{color:#dbeafe;font-variant-numeric:tabular-nums;flex-wrap:nowrap;flex:auto;align-items:center;gap:14px;min-width:0;font-size:1rem;font-weight:700;display:flex}.forecast-step{white-space:nowrap;grid-template-rows:auto auto;grid-template-columns:auto auto;align-items:center;gap:1px 6px;display:inline-grid}.forecast-arrow{color:#7dd3fc;grid-row:1/3;font-size:1.22rem}.forecast-label{color:#b6c7d5;text-transform:uppercase;text-align:center;font-size:.9rem}.forecast-step strong{color:#fff;text-align:center;font-size:1.16rem;line-height:1}.last-updated{color:#dbeafe;letter-spacing:0;align-items:center;gap:8px;margin:0;font-size:.9rem;font-weight:700;display:flex}h2{font-size:1.25rem}.actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}button{min-height:40px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:7px;padding:0 14px;font-weight:700;transition:transform .14s,background .14s,border-color .14s}button:hover{transform:translateY(-1px)}button:disabled{opacity:.5;cursor:default}button:disabled:hover{transform:none}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #0ea5e94d}.icon-button{color:#fff;background:#ffffff1f;border-color:#ffffff38}.icon-button.primary{background:#16a34a;border-color:#16a34a}.secondary-button{background:var(--button);border-color:var(--border);color:var(--text-strong)}.metric-strip{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.metric{border-right:1px solid var(--border);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:76px;padding:14px 18px;display:flex}.metric:last-child{border-right:0}.metric span{color:var(--muted);font-size:.82rem;font-weight:700}.metric strong{color:var(--text-strong);overflow-wrap:anywhere;font-size:1.1rem;line-height:1.1}.compact-shell{width:min(430px,100vw - 12px);padding:8px 0 24px}.compact-shell .widget-panel{border-radius:10px}.compact-shell .topbar{padding:14px 16px 12px}.compact-shell .topbar h1{font-size:clamp(2.35rem,15vw,4rem)}.compact-shell .forecast-path{display:none}.compact-shell .last-updated{margin-top:0;font-size:.84rem}.compact-shell .actions{justify-content:flex-end;width:auto}.compact-shell .topbar-meta .actions{top:10px;right:12px}.compact-shell .actions button{flex:none;min-height:28px;padding:0 8px}.compact-shell .metric-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-shell .metric{border-bottom:0;min-height:58px;padding:10px 8px}.compact-shell .metric span{font-size:.72rem}.compact-shell .metric strong{font-size:.98rem}.compact-shell .config-panel{display:none}.compact-view{background:#eef2f4;gap:10px;padding:12px;display:grid}.compact-status{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;min-height:42px;padding:9px 10px;display:grid}.compact-status strong{color:#0f172a;font-size:.86rem;font-weight:900}.compact-status span:last-child{color:#64748b;white-space:nowrap;text-overflow:ellipsis;grid-column:2;font-size:.68rem;font-weight:750;overflow:hidden}.compact-forecast-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.compact-forecast{border:1px solid var(--border);text-align:center;background:#fff;border-radius:8px;align-content:center;gap:4px;min-height:54px;padding:8px;display:grid}.compact-forecast span,.compact-holding-grid small{color:#64748b;text-transform:uppercase;font-size:.68rem;font-weight:850}.compact-forecast strong{color:#0f172a;white-space:nowrap;font-size:.9rem;font-weight:900}.compact-holdings-list{gap:9px;display:grid}.compact-holding-card{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.compact-holding-card header,.compact-holding-main,.compact-holding-grid{padding:9px 10px}.compact-holding-card header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:10px;display:flex}.compact-holding-card header strong{color:#0f172a;font-size:1rem;font-weight:950}.compact-holding-card header span{color:#475569;font-size:.78rem;font-weight:850}.compact-holding-main{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.compact-holding-main>strong{color:#0f172a;font-size:1.28rem;font-weight:950}.compact-holding-main>span{text-align:right;font-size:.86rem;font-weight:900}.compact-holding-grid{background:#f8fafc;border-top:1px solid #e2e8f0;grid-template-columns:1.4fr .8fr .8fr;gap:8px;display:grid}.compact-holding-grid>span{gap:3px;display:grid}.compact-holding-grid strong{color:#0f172a;white-space:nowrap;font-size:.82rem;font-weight:900}.portfolio-grid{border-bottom:1px solid var(--border);width:100%;min-width:0;display:grid;overflow-x:auto}.corner-cell,.ticker-cell,.row-label,.value-cell{text-align:center;font-variant-numeric:tabular-nums;border-bottom:1px solid #1f2937;border-right:1px solid #1f2937;justify-content:center;align-items:center;min-height:40px;padding:8px 10px;display:flex;overflow:hidden}.corner-cell,.ticker-cell{color:#030712;background:#c8c8c8;font-weight:800}.row-label{color:#030712;text-align:right;background:#fff;justify-content:flex-end;font-weight:800}.value-cell{color:#030712;background:#f8fafc;font-weight:650}.positive{color:#064e3b}.negative{color:#7f1d1d}.neutral{color:#111827}.value-cell.positive{background:#24f433}.value-cell.negative{background:#e98080}.value-cell.neutral{background:#f3f4f6}.portfolio-value-cell{color:#030712;background:#fff;font-weight:800}.plain-metric-cell{color:#0f172a;background:#fff;font-weight:800}.final-score-stack{gap:2px;line-height:1.1;display:grid}.final-score-stack strong{font-size:1.05rem;font-weight:900}.final-score-stack span{color:currentColor;text-transform:uppercase;font-size:.74rem;font-weight:800}.financial-health-cell{background:#fff;justify-content:center;align-items:stretch;min-height:76px;padding:8px 12px}.financial-health-stack{gap:4px;width:100%;font-size:.78rem;line-height:1.15;display:grid}.financial-health-stack>span{white-space:nowrap;justify-content:space-between;gap:8px;display:flex}.financial-health-stack span span{color:#64748b;font-weight:750}.financial-health-stack strong{font-weight:850}.financial-health-missing{color:#64748b;font-size:.82rem;font-weight:750}.momentum-cell{background:#fff;justify-content:center;align-items:stretch;min-height:76px;padding:8px 12px}.momentum-stack{text-align:left;gap:4px;width:100%;font-size:.76rem;line-height:1.2;display:grid}.momentum-stack strong{text-transform:uppercase;letter-spacing:.02em;font-size:.64rem;font-weight:850}.momentum-headline{white-space:nowrap;line-height:1.3;display:block}.momentum-arrow{color:#64748b;font-weight:900}.momentum-eta{color:#64748b;text-transform:none;letter-spacing:0;white-space:nowrap;font-weight:750}.momentum-stack>span{color:#475569;font-weight:650}.momentum-missing{color:#64748b;font-size:.82rem;font-weight:750}.dividend-payment-cell{background:#fff;min-height:54px;padding:8px 10px}.dividend-payment-stack{color:#0f172a;white-space:nowrap;gap:3px;font-size:.82rem;line-height:1.15;display:grid}.dividend-payment-stack strong{font-size:.92rem;font-weight:850}.dividend-payment-stack span,.dividend-payment-muted{color:#64748b;font-size:.78rem;font-weight:750}.intelligence-panel{border-bottom:1px solid var(--border);background:#fff;gap:0;display:grid}.source-status-strip{border-bottom:1px solid var(--border);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.source-status{border-right:1px solid var(--border);grid-template-columns:auto 1fr;align-items:center;gap:2px 7px;min-height:68px;padding:10px 12px;display:grid}.source-status:last-child{border-right:0}.source-status span:not(.source-dot){color:#475569;text-transform:uppercase;font-size:.72rem;font-weight:800}.source-status strong,.source-status small{grid-column:2}.source-status strong{color:#0f172a;font-size:.88rem}.source-status small{color:#64748b;font-size:.72rem;font-weight:700}.source-dot{border-radius:999px;width:9px;height:9px}.source-dot.fresh{background:#16a34a}.source-dot.stale{background:#dc2626}.intelligence-grid{border-bottom:1px solid var(--border);grid-template-columns:minmax(220px,.9fr) minmax(260px,1fr) minmax(300px,1.4fr);display:grid}.alerts-panel,.history-panel,.assumptions-panel{border-right:1px solid var(--border);min-height:150px;padding:14px 18px}.assumptions-panel{border-right:0}.alerts-list{gap:7px;display:grid}.alert-line{color:#0f172a;border-left:4px solid #0ea5e9;padding-left:8px;font-size:.84rem;font-weight:750;line-height:1.25}.alert-line.warning{border-left-color:#f59e0b}.alert-line.danger{border-left-color:#dc2626}.history-summary{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.history-summary strong{color:#0f172a;font-size:1.05rem}.history-summary span{font-size:.84rem;font-weight:850}.history-panel svg{width:100%;height:76px;overflow:visible}.history-panel polyline{fill:none;stroke:#0ea5e9;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.assumptions-panel summary{cursor:pointer;list-style:none}.assumptions-panel summary::-webkit-details-marker{display:none}.config-panel summary::-webkit-details-marker{display:none}.assumptions-panel summary strong{color:#0f172a;font-size:.95rem;display:block}.assumption-table{gap:7px;margin-top:12px;display:grid}.assumption-row{color:#475569;grid-template-columns:58px repeat(5,minmax(0,1fr));align-items:center;gap:8px;font-size:.78rem;font-weight:750;display:grid}.assumption-row strong{color:#0f172a;font-size:.86rem}.holding-history-panel{border-bottom:1px solid var(--border);background:#fff;padding:14px 18px 16px}.holding-history-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.holding-history-heading strong{color:#0f172a;font-size:.94rem}.holding-history-grid{grid-template-columns:repeat(5,minmax(220px,1fr));gap:10px;min-width:0;padding-bottom:2px;display:grid;overflow-x:auto}.holding-history-card{border:1px solid var(--border);background:#f8fafc;border-radius:8px;min-width:0;overflow:hidden}.holding-history-card header{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;gap:10px;min-height:36px;padding:8px 10px;display:flex}.holding-history-card header strong{color:#0f172a;font-size:.95rem;font-weight:900}.holding-history-card header span{color:#64748b;text-transform:uppercase;font-size:.72rem;font-weight:800}.holding-history-metric{border-bottom:1px solid #e2e8f0;grid-template-rows:auto 22px;grid-template-columns:1fr minmax(62px,auto);align-items:center;column-gap:8px;min-height:54px;padding:7px 10px;display:grid}.holding-history-metric:last-child{border-bottom:0}.holding-history-metric>span{color:#64748b;text-transform:uppercase;font-size:.7rem;font-weight:850}.holding-history-metric>strong{color:#0f172a;text-align:right;white-space:nowrap;font-size:.86rem;font-weight:900}.holding-sparkline{color:#0ea5e9;grid-column:1/-1;width:100%;height:22px;overflow:visible}.holding-sparkline.positive{color:#16a34a}.holding-sparkline.negative{color:#dc2626}.holding-sparkline polyline{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.holding-sparkline circle{fill:currentColor}.market-regime-panel{border-bottom:1px solid var(--border);background:#fff;padding:16px 18px 18px}.market-regime-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.market-regime-heading h2{font-size:1.05rem}.market-regime-heading>span{color:#64748b;white-space:nowrap;font-size:.78rem;font-weight:850}.market-context-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.market-context-item{border:1px solid var(--border);background:#f8fafc;border-radius:8px;align-content:start;gap:4px;min-height:86px;padding:11px 12px;display:grid}.market-context-item span,.market-context-item small,.market-table-title span,.market-method-note{color:#64748b;font-size:.76rem;font-weight:750}.market-context-item span{text-transform:uppercase}.market-context-item strong{color:#0f172a;font-size:1.04rem;font-weight:950}.market-table-block{margin-top:12px}.market-table-title{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:7px;display:flex}.market-table-title strong{color:#0f172a;font-size:.93rem}.market-table-scroll{border:1px solid var(--border);border-radius:8px;max-width:100%;overflow-x:auto}.market-table{border-collapse:collapse;color:#0f172a;background:#fff;width:100%;min-width:850px;font-size:.78rem}.market-risk-table{min-width:1180px}.market-table th,.market-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;padding:9px 10px}.market-table th{color:#334155;white-space:nowrap;background:#f1f5f9;font-weight:900}.market-table tbody th{color:#0f172a;background:#fff}.market-table tr:last-child th,.market-table tr:last-child td{border-bottom:0}.market-table th:last-child,.market-table td:last-child{border-right:0}.probability-cell,.risk-cell{text-align:center;white-space:nowrap;font-weight:950}.probability-cell.low,.risk-cell.low{color:#065f46;background:#ecfdf5}.probability-cell.medium,.risk-cell.medium{color:#9a3412;background:#fff7ed}.probability-cell.high,.risk-cell.high{color:#991b1b;background:#fef2f2}.market-method-note{margin:12px 0 0;line-height:1.35}.invest-now-panel{border-bottom:1px solid var(--border);background:#fff;padding:16px 18px 18px}.invest-now-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:4px;display:flex}.invest-now-heading h2{font-size:1.05rem}.invest-now-heading>span{color:#64748b;white-space:nowrap;font-size:.82rem}.invest-now-sub{color:#475569;margin:0 0 12px;font-size:.85rem;line-height:1.35}.invest-now-table{min-width:620px}.invest-rank{text-align:center;color:#64748b;width:34px;font-weight:900}.invest-asset strong{font-size:.92rem;display:block}.invest-asset span{color:#64748b;font-size:.78rem;font-weight:650}.invest-score{white-space:nowrap}.invest-score strong{font-weight:900;display:block}.invest-score span{text-transform:uppercase;letter-spacing:.03em;opacity:.85;font-size:.72rem;font-weight:800}.invest-why{white-space:normal;color:#334155;min-width:260px;font-size:.85rem;line-height:1.35}.portfolio-snapshot-line{color:#475569;flex-wrap:wrap;justify-content:center;gap:14px;padding:10px 18px;font-size:.82rem;font-weight:800;display:flex}.install-help-backdrop{z-index:50;background:#0206178c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.install-help{color:#0f172a;background:#fff;border-radius:12px;gap:12px;width:100%;max-width:380px;padding:20px;display:grid;box-shadow:0 20px 60px #02061766}.install-help strong{font-size:1.05rem}.install-help p{color:#334155;margin:0;font-size:.9rem;line-height:1.4}.install-help .install-help-note{color:#64748b;border-top:1px solid #e2e8f0;padding-top:10px;font-size:.82rem}.install-help button{justify-self:end}.lang-select{appearance:none;color:inherit;font:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #94a3b880;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700}.lang-select:hover{border-color:#94a3b8e6}.lang-select option{color:#0f172a}.live-dot{border-radius:50%;flex:none;width:10px;height:10px}.live-dot.active{background:#24f433}.live-dot.inactive{background:#dc2626}.live-dot.refreshing{animation:1s ease-in-out 4 update-dot-blink}@keyframes update-dot-blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.72)}}.config-panel{margin-top:18px;padding-bottom:0}.config-panel[open]{padding-bottom:20px}.config-panel .section-heading{cursor:pointer;list-style:none}.config-toggle{border:1px solid var(--border);background:var(--button);min-height:36px;color:var(--text-strong);border-radius:7px;justify-content:center;align-items:center;padding:0 12px;font-size:.86rem;font-weight:800;display:inline-flex}.config-toggle:after{content:"Mostrar"}.config-panel[open] .config-toggle:after{content:"Ocultar"}.controls-grid{grid-template-columns:.8fr 1fr;gap:12px;padding:0 22px 16px;display:grid}.sheet-input{padding:0 22px 18px}label{color:var(--muted);text-transform:uppercase;flex-direction:column;gap:7px;font-size:.78rem;font-weight:750;display:flex}input{box-sizing:border-box;border:1px solid var(--border);background:var(--field);width:100%;min-height:40px;color:var(--text-strong);font:inherit;text-transform:none;border-radius:7px;padding:0 10px;font-size:.95rem;font-weight:650}input[readonly]{color:#334155;cursor:default;background:#eef2f6}.editor-list{gap:10px;padding:0 22px;display:grid}.position-row{border:1px solid var(--border);background:#fafafa;border-radius:8px;grid-template-columns:90px repeat(4,minmax(112px,1fr));align-items:end;gap:10px;padding:12px;display:grid}.position-row label,.position-row input{text-align:center}.ticker-input{text-align:center;align-self:end;height:40px;font-weight:850}@media (width<=820px){.shell{width:min(100vw - 18px,720px);padding-top:10px}.topbar,.section-heading{flex-direction:column;align-items:flex-start}.actions{width:100%}.actions button,.section-heading button{flex:140px}.topbar .actions{width:auto}.topbar .actions button{flex:none}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.metric:nth-child(2){border-right:0}.portfolio-grid{overflow-x:auto}.source-status-strip,.intelligence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.holding-history-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.market-context-strip{grid-template-columns:1fr}.assumptions-panel{grid-column:1/-1}.source-status:nth-child(2n),.alerts-panel,.history-panel{border-right:0}.assumption-row{grid-template-columns:1fr}.controls-grid,.position-row{grid-template-columns:repeat(2,minmax(0,1fr))}.ticker-input{width:100%}}@media (width<=520px){.metric-strip,.source-status-strip,.intelligence-grid,.holding-history-grid,.controls-grid,.position-row{grid-template-columns:1fr}.compact-shell .metric-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.source-status,.alerts-panel,.history-panel,.assumptions-panel{border-right:0;border-bottom:1px solid var(--border)}.holding-history-heading,.market-regime-heading,.market-table-title{gap:3px;display:grid}.metric{border-right:0;border-bottom:1px solid var(--border)}.metric:last-child{border-bottom:0}}
