:root{color:#142033;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{color:#e9effa;background:#101827}*{box-sizing:border-box}body{background:inherit;min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{max-width:1240px;margin:0 auto;padding:32px 24px 64px}.topbar,.section-heading,.header-actions,.card-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar{margin-bottom:30px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:6px;font-size:clamp(1.75rem,4vw,2.5rem)}h2{margin-bottom:0;font-size:1.35rem}h3{margin:4px 0 0;font-size:1.1rem}.eyebrow,.ticker{color:#41c59b;letter-spacing:.12em;margin-bottom:5px;font-size:.74rem;font-weight:800}.muted,small{color:#8794aa}.header-actions{flex-wrap:wrap;justify-content:flex-end}.user-chip,.status{color:#27364c;background:#dde5f0;border-radius:999px;padding:8px 12px;font-size:.82rem}:root[data-theme=dark] .user-chip{color:#dbe7f8;background:#202c3f}.status.active{color:#087052;background:#d1f5e6}.status.draft{color:#526173;background:#e6eaf0}:root[data-theme=dark] .status.active{color:#91e4c5;background:#153f35}:root[data-theme=dark] .status.draft{color:#c7d4e6;background:#293649}.hero-grid,.strategy-grid,.template-grid{gap:16px;display:grid}.hero-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:40px}.strategy-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.template-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.hero-card,.strategy-card,.template-card,.empty,.auth-card{background:#fff;border:1px solid #dbe3ef;border-radius:18px;padding:20px;box-shadow:0 10px 24px #1b2a440f}:root[data-theme=dark] .hero-card,:root[data-theme=dark] .strategy-card,:root[data-theme=dark] .template-card,:root[data-theme=dark] .empty,:root[data-theme=dark] .auth-card{box-shadow:none;background:#172235;border-color:#2b3a53}.hero-card span{color:#8794aa;font-size:.86rem}.hero-card strong{margin:10px 0;font-size:1.9rem;display:block}.content-section{margin-top:34px}.section-heading{margin-bottom:14px}.strategy-summary{color:#70809a;min-height:42px;margin:18px 0;font-size:.9rem}dl{grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 18px;display:grid}dt{color:#8794aa;font-size:.73rem}dd{margin:4px 0 0;font-size:.88rem;font-weight:700}.primary,.secondary,.ghost{border:1px solid #0000;border-radius:10px;padding:10px 14px;font-weight:700}.primary{color:#fff;background:#19ae84}.primary:hover{background:#109673}.secondary{color:#169c77;background:0 0;border-color:#57c9a8;width:100%}.ghost{color:inherit;background:0 0;border-color:#c8d3e2}:root[data-theme=dark] .ghost{border-color:#40516b}.template-card{flex-direction:column;gap:8px;display:flex}.template-card .secondary{margin-top:10px}.empty{color:#8794aa}.error-banner,.form-error{color:#b42318;background:#fee4e2;border-radius:10px;padding:10px 12px}:root[data-theme=dark] .error-banner,:root[data-theme=dark] .form-error{color:#ffb4ad;background:#4a2227}.centered,.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{gap:14px;width:min(420px,100%);display:grid}.auth-card label{gap:6px;font-size:.88rem;font-weight:700;display:grid}.auth-card input{color:inherit;background:0 0;border:1px solid #bfcddd;border-radius:10px;padding:12px}.auth-card .primary{margin-top:8px}.form-error{margin-bottom:0}.modal-backdrop{z-index:50;background:#030812c7;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.strategy-builder{background:#172235;border:1px solid #40516b;border-radius:16px;gap:16px;width:min(980px,100%);max-height:calc(100vh - 40px);padding:22px;display:grid;overflow:auto;box-shadow:0 24px 80px #00000073}.builder-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.strategy-builder label{gap:5px;font-size:.82rem;font-weight:700;display:grid}.strategy-builder input,.strategy-builder select,.strategy-builder textarea{width:100%;color:inherit;background:#101827;border:1px solid #40516b;border-radius:8px;padding:9px}.strategy-builder textarea{resize:vertical;min-height:70px}.builder-fieldset{border:1px solid #40516b;border-radius:10px;padding:12px}.builder-fieldset legend{padding:0 6px;font-weight:800}.condition-row{grid-template-columns:1.4fr 1.1fr .8fr 1.4fr auto;gap:7px;margin-bottom:8px;display:grid}.condition-params{align-items:end;gap:4px;display:flex}.condition-params input{min-width:0}.condition-input{gap:3px;min-width:0;display:grid}.condition-input>span{color:#9cabc0;font-size:.68rem;font-weight:700}.condition-help{color:#8794aa;margin:2px 0 9px;font-size:.72rem}.secondary.compact,.ghost.compact,.primary.compact{width:auto;padding:6px 10px;font-size:.78rem}.strategy-toolbar{background:#ffffff80;border:1px solid #dbe3ef;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;padding:10px;display:flex}.strategy-toolbar input{min-width:min(100%,220px);color:inherit;background:0 0;border:1px solid #c8d3e2;border-radius:8px;flex:1;padding:8px 10px}.strategy-toolbar>div{flex-wrap:wrap;gap:5px;display:flex}.strategy-toolbar small{margin-left:auto}:root[data-theme=dark] .strategy-toolbar{background:#1722358c;border-color:#40516b}:root[data-theme=dark] .strategy-toolbar input{border-color:#40516b}.strategy-rule-summary{color:#c9d8ec;background:#38bdf812;border:1px solid #38bdf83d;border-radius:9px;padding:10px 12px;font-size:.78rem;line-height:1.5}.signal-explanation{background:#38bdf80d;border:1px solid #38bdf847;border-radius:9px;margin:0 0 1.2rem}.signal-explanation summary{cursor:pointer;color:#7dd3fc;padding:10px 12px;font-size:.84rem;font-weight:750}.signal-explanation-list{gap:5px;padding:0 10px 10px;display:grid}.signal-explanation-list>div{border-radius:6px;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;font-size:.76rem;display:grid}.signal-explanation-list .passed{background:#10b9811c}.signal-explanation-list .failed{color:#a8b6c9;background:#ffffff0a}.signal-explanation-list .passed b{color:#6ee7b7}.signal-explanation-list .failed b{color:#fbbf24}.chart-toolbar,.chart-periods,.chart-range{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chart-toolbar{justify-content:space-between;margin-bottom:8px}.chart-periods>span,.chart-range{color:#8794aa;font-size:.74rem}.chart-button{border-radius:7px;padding:4px 8px;font-size:.72rem}.chart-button:disabled{opacity:.4;cursor:not-allowed}.chart-range{justify-content:space-between;margin:0 0 4px}.chart-range input{accent-color:#19ae84;width:min(280px,54vw)}.strategy-card{flex-direction:column;display:flex}.strategy-signal-chip{color:#b5c2d4;background:#ffffff0d;border-radius:8px;margin:-6px 0 8px;padding:7px 9px;font-size:.74rem}.strategy-signal-chip.action{color:#fde68a;background:#fbbf241f;border:1px solid #fbbf2447}.jobs-button{position:relative}.jobs-button b{color:#fff;background:#ef4444;border-radius:999px;place-items:center;min-width:18px;height:18px;margin-left:3px;font-size:.68rem;display:inline-grid}.jobs-overlay{z-index:90;background:#030812a3;justify-content:flex-end;display:flex;position:fixed;inset:0}.jobs-center{background:#172235;border-left:1px solid #40516b;width:min(460px,100vw);min-height:100%;padding:24px;overflow-y:auto;box-shadow:-18px 0 52px #0000004d}.jobs-center-head,.job-row-head,.jobs-center-actions,.job-row-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.jobs-center-head{margin-bottom:18px}.jobs-center-actions{color:#9cabc0;padding:8px 0 12px;font-size:.78rem}.jobs-list{gap:9px;display:grid}.job-row{background:#ffffff06;border:1px solid #ffffff1f;border-radius:10px;gap:7px;padding:12px;display:grid}.job-row.running{border-color:#38bdf873}.job-row.failed{border-color:#f8717173}.job-row.succeeded{border-color:#34d39940}.job-row-head span{color:#9cabc0;font-size:.72rem}.job-row small{color:#9cabc0}.job-progress{background:#ffffff1f;border-radius:999px;height:4px;overflow:hidden}.job-progress i{border-radius:inherit;background:#38bdf8;height:100%;transition:width .2s;display:block}.job-row details{color:#fda4af;font-size:.73rem}.job-row code{white-space:pre-wrap;word-break:break-word;margin-top:4px;display:block}.job-row-actions{justify-content:flex-end}.strategy-card .secondary{width:auto}.optimization-heatmap{border:1px solid #ffffff1a;border-radius:6px;margin-top:.75rem;overflow-x:auto}.optimization-heatmap-row{min-width:max-content;display:grid}.optimization-heatmap-row>span,.optimization-heatmap-row>strong{text-align:center;border-bottom:1px solid #ffffff12;border-right:1px solid #ffffff12;padding:7px 6px;font-size:.72rem}.optimization-heatmap-row>strong{text-align:left;color:#8794aa}.optimization-heatmap-header{color:#8794aa;background:#ffffff0d}.optimization-cell{cursor:help;color:#f8fafc;font-weight:650}.optimization-cell.empty{color:#64748b;background:#ffffff04}.optimization-insight{background:#6366f117;border:1px solid #818cf829;border-radius:5px;padding:.55rem}.portfolio-dashboard{max-width:1040px;margin-left:auto;margin-right:auto}.portfolio-dashboard-head{border-bottom:1px solid #ffffff1a;padding:12px 4px 20px}.portfolio-dashboard .eyebrow{color:#41e980}.portfolio-dashboard .hero-card{box-shadow:none;border-radius:18px}.mobile-only{display:none}.portfolio-total-card{grid-column:span 2;background:linear-gradient(135deg,#20302dfa,#182231fa)!important;border-color:#41e9803d!important}.portfolio-total-card strong{color:#fff;letter-spacing:-.045em;font-size:clamp(2.15rem,5vw,3.9rem)}.portfolio-dashboard .data-table tbody tr:hover{background:#41e9800f}.portfolio-account-overlay{z-index:80;background:#04080dad;align-items:stretch;display:flex;position:fixed;inset:0}.portfolio-account-drawer{background:#182126;border-right:1px solid #ffffff1a;width:min(430px,88vw);min-height:100%;padding:28px 22px;overflow-y:auto;box-shadow:22px 0 60px #00000057}.portfolio-drawer-head{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.portfolio-drawer-head h2{font-size:2rem}.portfolio-drawer-total{background:#2a3238;border-radius:20px;align-items:center;gap:14px;margin-bottom:18px;padding:20px;display:flex}.portfolio-drawer-total>span{color:#41e980;font-size:2rem}.portfolio-drawer-total small,.portfolio-account-row small{display:block}.portfolio-drawer-total strong{margin-top:4px;font-size:1.7rem;display:block}.portfolio-account-list{gap:4px;display:grid}.portfolio-account-row{width:100%;color:inherit;text-align:left;background:0 0;border:0;border-radius:12px;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;padding:14px 6px;display:grid}.portfolio-account-row:hover{background:#ffffff0d}.portfolio-account-mark{color:#101827;background:linear-gradient(135deg,#41e980,#38bdf8);border-radius:50%;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.portfolio-account-copy b{display:block}.portfolio-account-copy strong{margin-top:4px;font-size:1.1rem;display:block}.portfolio-drawer-actions{color:#d6deeb;border-top:1px solid #ffffff1f;gap:20px;margin:18px -22px 0;padding:18px 28px;font-weight:650;display:grid}.link-button{appearance:none;color:#38bdf8;text-align:left;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.link-button:hover{color:#7dd3fc}@media (width<=720px){.shell{padding:22px 16px 48px}.topbar{flex-direction:column;align-items:flex-start}.header-actions{justify-content:flex-start}.hero-grid{grid-template-columns:1fr}.section-heading{align-items:flex-end}dl{grid-template-columns:1fr 1fr}.portfolio-dashboard{margin-top:0}.portfolio-dashboard-head{padding-top:0}.portfolio-total-card{grid-column:auto}.portfolio-dashboard .hero-grid{gap:10px;margin-bottom:20px!important}.portfolio-dashboard .hero-card{padding:16px}.portfolio-dashboard .hero-card strong{font-size:1.65rem}.portfolio-dashboard .portfolio-total-card strong{font-size:clamp(2rem,10vw,2.8rem)}.topbar,.app-navigation,.portfolio-subnav,.desktop-only{display:none!important}.mobile-only{display:block}.shell{padding-top:18px}.portfolio-dashboard-head{border-bottom:0;padding-bottom:10px}.portfolio-dashboard-head>div:last-child{display:none}.portfolio-dashboard .section-heading{margin-bottom:8px}.mobile-total-refresh{border-top:1px solid #ffffff17;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding-top:10px;display:flex}.mobile-total-refresh small{font-size:.68rem}.mobile-total-refresh .ghost{white-space:nowrap;border-radius:8px;padding:5px 8px;font-size:.72rem}.portfolio-allocation-section{margin-top:14px;grid-template-columns:minmax(0,1fr)!important;gap:12px!important}.portfolio-allocation-section .panel{padding:15px}.mobile-holding-list{display:grid}.mobile-holding-row{border-bottom:1px solid #ffffff14;grid-template-columns:38px minmax(0,1fr) minmax(104px,auto);align-items:center;gap:9px;padding:12px 0;display:grid}.mobile-holding-row:last-child{border-bottom:0}.mobile-holding-mark{border-radius:50%;place-items:center;width:34px;height:34px;font-size:.9rem;font-weight:850;display:grid}.mobile-holding-name,.mobile-holding-value{min-width:0}.mobile-holding-name b,.mobile-holding-value strong{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;display:block;overflow:hidden}.mobile-holding-name small,.mobile-holding-value small{white-space:nowrap;margin-top:3px;font-size:.7rem;display:block}.mobile-holding-name .quote-fallback{color:#fbbf24;font-weight:700}.mobile-holding-value{text-align:right}.mobile-dividend-summary{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mobile-dividend-summary>div{background:#ffffff0a;border-radius:10px;padding:10px}.mobile-dividend-summary small,.mobile-dividend-summary strong{display:block}.mobile-dividend-summary strong{color:#a78bfa;margin-top:3px;font-size:.9rem}.mobile-dividend-months{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.mobile-dividend-month{background:#ffffff05;border:1px solid #ffffff12;border-radius:9px;min-width:0;padding:8px}.mobile-dividend-month.active{background:#38bdf80e;border-color:#38bdf833}.mobile-dividend-month.current{outline:1px solid #41e980}.mobile-dividend-month b{justify-content:space-between;align-items:center;margin-bottom:5px;font-size:.76rem;display:flex}.mobile-dividend-month b span{color:#41e980;font-size:.58rem}.mobile-dividend-month small{white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;display:block;overflow:hidden}.mobile-dividend-month em,.mobile-dividend-month i{font-style:normal;font-weight:700}.mobile-dividend-month em{color:#38bdf8}.mobile-dividend-month i{color:#c084fc}}@media (width<=560px){.portfolio-account-drawer{width:92vw;padding:22px 16px}.portfolio-drawer-actions{margin-left:-16px;margin-right:-16px;padding-left:22px}.portfolio-dashboard-head h2{font-size:1.75rem}}@media (width<=720px){.condition-row{grid-template-columns:1fr 1fr}.strategy-builder{padding:15px}.strategy-toolbar{align-items:stretch}.strategy-toolbar input{flex-basis:100%}.strategy-toolbar small{margin-left:0}.signal-explanation-list>div{grid-template-columns:48px minmax(0,1fr)}.signal-explanation-list>div span:last-child{grid-column:2}}@media (width<=560px){.chart-toolbar,.chart-range{flex-direction:column;align-items:flex-start}.chart-range input{width:100%}.primary,.secondary,.ghost{padding:8px 10px}}
