@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap";:root{--bg-color:#07111d;--surface:#0c1826e0;--surface-strong:#112234f0;--text-color:#f3f6f4;--text-muted:#aab7bd;--glass-bg:#0d1c2cc2;--glass-border:#bfd8d229;--glass-shadow:0 18px 60px #00000061;--accent-color:#0071bc;--accent-2:#bfd8d2;--accent-3:#f99514;--accent-deep:#2e3192;--gain-color:#ff6f69;--loss-color:#4c9696;--accent-glow:#0071bc47}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-color);background-image:linear-gradient(135deg,#07111df2,#0e142bf5),radial-gradient(circle at 16% 12%,#0071bc29,#0000 30%),radial-gradient(circle at 86% 4%,#2e319238,#0000 32%),radial-gradient(circle at 72% 86%,#f9951424,#0000 35%);background-attachment:fixed;min-height:100vh;font-family:Inter,sans-serif}#root{width:100%}.app-shell{grid-template-columns:280px minmax(0,1fr);width:100%;min-height:100vh;transition:grid-template-columns .22s;display:grid}.app-shell.sidebar-collapsed{grid-template-columns:86px minmax(0,1fr)}.sidebar{z-index:30;background:linear-gradient(#081523f7,#0c1024eb);border-right:1px solid #a7c4ff1f;flex-direction:column;height:100vh;padding:1.25rem;transition:padding .22s;display:flex;position:sticky;top:0;box-shadow:20px 0 70px #00000047}.sidebar-backdrop{display:none}.brand-block{align-items:center;gap:.85rem;padding:1rem .75rem .25rem;display:flex}.brand-copy,.nav-label,.mini-metric span,.logout-label{transition:opacity .16s,transform .16s}.brand-mark{background:#ffffff0a;border-radius:12px;place-items:center;width:44px;height:44px;display:grid;overflow:hidden;box-shadow:0 12px 30px #0071bc33}.brand-mark img{object-fit:cover;width:100%;height:100%}.brand-title{color:#f7fbff;letter-spacing:0;font-weight:800}.brand-subtitle{color:var(--text-muted);margin-top:.15rem;font-size:.78rem}.sidebar-toggle{width:46px;height:46px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;flex:none;justify-content:center;align-items:center;margin:0 auto 1.25rem;transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s;display:flex}.sidebar-toggle:hover{color:var(--accent-color);background:#0071bc1f;border-color:#0071bc3d;transform:rotate(90deg);box-shadow:0 0 15px #0071bc26}.sidebar-toggle:active{transform:scale(.92)rotate(90deg)}.sidebar-toggle span,.sidebar-toggle span:before,.sidebar-toggle span:after{background:currentColor;border-radius:999px;width:14px;height:2px;display:block}.sidebar-toggle span{position:relative}.sidebar-toggle span:before,.sidebar-toggle span:after{content:"";position:absolute;left:0}.sidebar-toggle span:before{top:-5px}.sidebar-toggle span:after{top:5px}.sidebar-toggle:hover,.sidebar-toggle:focus-visible{background:#0071bc24;border-color:#0071bc7a;outline:none}.sidebar-nav{flex-direction:column;gap:.45rem;padding:.75rem 0;display:flex}.nav-item{width:100%;color:var(--text-muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:.8rem;padding:.85rem .9rem;font-weight:700;transition:background .2s,border-color .2s,color .2s,transform .2s;display:flex}.nav-item:hover,.nav-item.active{color:#f7fbff;background:linear-gradient(135deg,#0071bc2e,#bfd8d214);border-color:#0071bc3d;transform:translate(2px)}.app-shell.sidebar-collapsed .sidebar{padding:1.25rem .75rem}.app-shell.sidebar-collapsed .brand-block{flex-direction:column;justify-content:center;gap:0;padding:.65rem 0 0}.app-shell.sidebar-collapsed .brand-mark{border-radius:11px;width:42px;height:42px}.app-shell.sidebar-collapsed .brand-copy,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .mini-metric span,.app-shell.sidebar-collapsed .logout-label{opacity:0;pointer-events:none;white-space:nowrap;width:0;height:0;overflow:hidden;transform:translate(-6px)}.app-shell.sidebar-collapsed .sidebar-toggle{width:46px;height:46px;margin:0 auto .75rem}.app-shell.sidebar-collapsed .sidebar-nav{align-items:center;gap:.55rem;padding-top:.35rem}.app-shell.sidebar-collapsed .nav-item{justify-content:center;width:46px;height:46px;padding:0}.app-shell.sidebar-collapsed .nav-item:hover,.app-shell.sidebar-collapsed .nav-item.active{transform:translateY(-1px)}.app-shell.sidebar-collapsed .sidebar-footer{justify-items:center}.app-shell.sidebar-collapsed .mini-metric{justify-content:center;width:46px;min-height:46px;padding:.4rem}.app-shell.sidebar-collapsed .mini-metric strong{font-size:1rem}.sidebar-logout{justify-content:center;align-items:center;gap:.45rem;width:100%;display:inline-flex}.logout-icon{border:2px solid;border-right:0;border-radius:3px 0 0 3px;flex:none;width:16px;height:16px;position:relative}.logout-icon:before{content:"";background:currentColor;width:10px;height:2px;position:absolute;top:5px;right:-8px}.logout-icon:after{content:"";border-top:2px solid;border-right:2px solid;width:7px;height:7px;position:absolute;top:2px;right:-8px;transform:rotate(45deg)}.app-shell.sidebar-collapsed .sidebar-logout{width:46px;height:46px;padding:0}.nav-icon{flex:none;width:20px;height:20px;position:relative}.nav-icon.grid{background:linear-gradient(var(--accent-color), var(--accent-color)) 0 0 / 8px 8px no-repeat, linear-gradient(var(--accent-2), var(--accent-2)) 12px 0 / 8px 8px no-repeat, linear-gradient(var(--accent-3), var(--accent-3)) 0 12px / 8px 8px no-repeat, linear-gradient(var(--accent-deep), var(--accent-deep)) 12px 12px / 8px 8px no-repeat;border-radius:4px}.nav-icon.chart:before{content:"";border-left:2px solid var(--accent-color);border-bottom:2px solid var(--accent-color);border-radius:2px;position:absolute;inset:2px}.nav-icon.chart:after{content:"";background:linear-gradient(135deg, transparent 0 40%, var(--accent-2) 42% 54%, transparent 56%), linear-gradient(45deg, transparent 0 54%, var(--accent-3) 56% 66%, transparent 68%);height:11px;position:absolute;bottom:5px;left:5px;right:1px}.nav-icon.debt{border:2px solid var(--accent-3);border-radius:4px}.nav-icon.debt:before,.nav-icon.debt:after{content:"";opacity:.9;background:currentColor;position:absolute}.nav-icon.debt:before{height:2px;top:5px;left:4px;right:4px;box-shadow:0 5px}.nav-icon.debt:after{background:var(--loss-color);border-radius:50%;width:5px;height:5px;bottom:3px;right:3px}.nav-icon.analysis{border-left:2px solid var(--accent-color);border-bottom:2px solid var(--accent-color);border-radius:2px}.nav-icon.analysis:before,.nav-icon.analysis:after{content:"";border-radius:999px;position:absolute;left:3px;right:1px}.nav-icon.analysis:before{background:linear-gradient(90deg, var(--accent-2), var(--accent-3));transform-origin:0;height:2px;bottom:4px;transform:rotate(-28deg)}.nav-icon.analysis:after{border:2px solid var(--accent-3);border-bottom:0;border-left:0;width:6px;height:6px;margin-left:auto;bottom:10px;right:2px;transform:rotate(45deg)}.sidebar-footer{gap:.9rem;margin-top:auto;display:grid}.mini-metric{border:1px solid var(--glass-border);background:#ffffff0a;border-radius:12px;justify-content:space-between;align-items:center;padding:.9rem;display:flex}.mini-metric span{color:var(--text-muted);font-size:.85rem}.mini-metric strong{color:#fff;font-size:1.4rem}.dashboard-container{flex-direction:column;gap:2rem;width:100%;max-width:1760px;padding:2rem 2.25rem 3rem;animation:1s ease-out fadeIn;display:flex}.topbar{justify-content:space-between;align-items:flex-start;gap:1.5rem;width:100%;display:flex}.header-info{text-align:left}h1{background:linear-gradient(90deg,#f3f6f4,#bfd8d2 45%,#f99514);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.2rem;font-size:2.35rem;font-weight:700}.eyebrow{color:var(--accent-2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.78rem;font-weight:800}p.subtitle{color:var(--text-muted);font-size:1.1rem}.glass-panel{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(12px);border-radius:14px;padding:2rem;overflow:hidden}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.family-scope-control{max-width:min(100%,560px);overflow-x:auto}.status-pill{color:var(--accent-2);background:#0071bc14;border:1px solid #0071bc40;border-radius:999px;padding:.5rem .8rem;font-size:.82rem;font-weight:800}.status-pill.loading{color:var(--accent-3);background:#f995141f;border-color:#f9951461}.status-pill-group{align-items:center;gap:.6rem;display:flex}.refresh-btn,.privacy-btn{width:36px;height:36px;color:var(--text-muted);cursor:pointer;-webkit-backdrop-filter:blur(8px);background:#ffffff0a;border:1px solid #a7c4ff29;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.refresh-btn:hover:not(:disabled),.privacy-btn:hover{color:var(--accent-color);background:#0071bc24;border-color:#0071bc7a;box-shadow:0 0 12px #0071bc26}.refresh-btn:hover:not(:disabled){transform:rotate(30deg)}.privacy-btn:hover{transform:translateY(-1px)}.refresh-btn:active:not(:disabled){transform:scale(.9)rotate(0)}.privacy-btn:active{transform:scale(.92)}.privacy-btn.active{color:var(--accent-3);background:#f9951424;border-color:#f995147a}.refresh-btn:disabled{opacity:.4;cursor:not-allowed}.refresh-btn.loading svg{color:var(--accent-3);animation:1s linear infinite spin}.privacy-mode .card-value:not(.public-value),.privacy-mode .asset-daily-change strong,.privacy-mode .asset-daily-change em,.privacy-mode .profit-loss-market-row strong,.privacy-mode .profit-loss-market-row em,.privacy-mode .settlements-row em,.privacy-mode .sensitive-usd-value,.privacy-mode .family-asset-share-row strong,.privacy-mode .holding-total-value,.privacy-mode .profit-loss-cell,.privacy-mode .accent-cell,.privacy-mode .holdings-group-label em,.privacy-mode .market-pie-heading strong,.privacy-mode .sensitive-accounting-metric strong,.privacy-mode .allocation-row em,.privacy-mode .liability-row strong,.privacy-mode .liability-distribution-chart .recharts-wrapper,.privacy-mode .liability-distribution-row em,.privacy-mode .liability-type-heading em,.privacy-mode .liability-management-main em,.privacy-mode .liability-transaction-amount,.privacy-mode .daily-trend-chart,.privacy-mode .daily-trend-chart .recharts-wrapper,.privacy-mode .allocation-chart .recharts-wrapper,.privacy-mode .asset-return-result strong,.privacy-mode .asset-return-allocation-status strong,.privacy-mode .asset-return-chart .recharts-wrapper,.privacy-mode .asset-return-pie .recharts-wrapper,.privacy-mode .asset-return-table td:not(:first-child),.privacy-mode .asset-return-decision-card .metric-caption{filter:blur(12px);opacity:.46;-webkit-user-select:none;user-select:none;color:#0000!important;text-shadow:0 0 24px #bfd8d2b8!important}.privacy-mode .card-value:not(.public-value) *,.privacy-mode .asset-daily-change strong *,.privacy-mode .asset-daily-change em *,.privacy-mode .profit-loss-market-row strong *,.privacy-mode .profit-loss-market-row em *,.privacy-mode .settlements-row em *,.privacy-mode .sensitive-usd-value *,.privacy-mode .family-asset-share-row strong *,.privacy-mode .holding-total-value *,.privacy-mode .profit-loss-cell *,.privacy-mode .accent-cell *,.privacy-mode .holdings-group-label em *,.privacy-mode .market-pie-heading strong *,.privacy-mode .sensitive-accounting-metric strong *,.privacy-mode .allocation-row em *,.privacy-mode .liability-row strong *,.privacy-mode .liability-distribution-chart .recharts-wrapper *,.privacy-mode .liability-distribution-row em *,.privacy-mode .liability-type-heading em *,.privacy-mode .liability-management-main em *,.privacy-mode .liability-transaction-amount *,.privacy-mode .daily-trend-chart .recharts-wrapper *,.privacy-mode .allocation-chart .recharts-wrapper *,.privacy-mode .asset-return-result strong *,.privacy-mode .asset-return-allocation-status strong *,.privacy-mode .asset-return-chart .recharts-wrapper *,.privacy-mode .asset-return-pie .recharts-wrapper *,.privacy-mode .asset-return-table td:not(:first-child) *,.privacy-mode .asset-return-decision-card .metric-caption *{filter:blur(12px);opacity:.5;color:#0000!important;fill:#bfd8d24d!important;stroke:#bfd8d22e!important;text-shadow:0 0 24px #bfd8d2b8!important}.dashboard-page{gap:1.25rem;display:grid}.portfolio-loading-banner,.portfolio-error-banner{color:var(--text-color);border-radius:8px;align-items:center;gap:.85rem;padding:.9rem 1rem;display:flex}.portfolio-loading-banner{background:#f9951417;border:1px solid #f9951447}.portfolio-error-banner{background:linear-gradient(135deg,#f851492e,#61172538);border:1px solid #f8514994;box-shadow:0 18px 42px #f8514924}.portfolio-loading-banner strong,.portfolio-loading-banner span,.portfolio-error-banner strong,.portfolio-error-banner span{display:block}.portfolio-loading-banner strong,.portfolio-error-banner strong{color:#f7fbff;font-size:.95rem}.portfolio-loading-banner span,.portfolio-error-banner span{color:var(--text-muted);margin-top:.16rem;font-size:.86rem;line-height:1.55}.portfolio-error-icon{color:#ffd5cf;background:#f8514938;border:1px solid #f85149a3;border-radius:50%;flex:none;place-items:center;width:1.45rem;height:1.45rem;font-weight:800;display:grid}.inline-spinner{border:2px solid #f995143d;border-top-color:var(--accent-3);border-radius:50%;flex:none;width:1.25rem;height:1.25rem;animation:.8s linear infinite spin}.portfolio-loading .dashboard-loading-surface{opacity:.72;transition:opacity .2s}.summary-grid{flex-wrap:wrap;align-items:stretch;gap:1.25rem;display:flex}.metric-card{border:1px solid var(--glass-border);min-width:0;min-height:164px;box-shadow:var(--glass-shadow);background:linear-gradient(150deg,#0f2b42eb,#0c1125db);border-radius:14px;flex:300px;padding:1.35rem;position:relative;overflow:hidden}.metric-card:after{content:"";background:radial-gradient(circle,#f9951438,#0000 68%);border-radius:50%;width:170px;height:170px;position:absolute;top:-70px;right:-60px}.primary-metric{background:linear-gradient(135deg,#005691db,#121a3ee6)}.primary-metric .card-value{white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums;font-size:clamp(2.15rem,2.8vw,2.9rem)}.profit-loss-summary-card .card-value.stock-change-up{color:var(--gain-color)}.profit-loss-summary-card .card-value.stock-change-down{color:var(--loss-color)}.profit-loss-market-breakdown{z-index:1;gap:.45rem;margin-top:1rem;display:grid;position:relative}.profit-loss-market-row{background:#ffffff09;border:1px solid #a7c4ff1f;border-radius:8px;grid-template-columns:3rem minmax(0,1fr) auto;align-items:center;gap:.65rem;min-width:0;padding:.48rem .6rem;display:grid}.family-profit-loss-breakdown{border-bottom:1px solid #bfd8d21f;padding-bottom:.75rem}.profit-loss-market-row.family-profit-loss-row{grid-template-columns:minmax(4.75rem,.8fr) minmax(0,1fr) auto}.profit-loss-market-row span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.8rem;font-weight:900;overflow:hidden}.profit-loss-market-row strong,.profit-loss-market-row em{color:#f7fbff;white-space:nowrap;min-width:0;font-style:normal;font-weight:900}.profit-loss-market-row strong{text-overflow:ellipsis;overflow:hidden}.profit-loss-market-row em{color:var(--text-muted);font-size:.78rem}.profit-loss-market-row .stock-change-up{color:var(--gain-color)}.profit-loss-market-row .stock-change-down{color:var(--loss-color)}.card-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.65rem;font-size:.9rem}.card-value{z-index:1;color:#fff;overflow-wrap:anywhere;max-width:100%;font-size:clamp(2rem,3vw,3rem);font-weight:700;line-height:1.08;position:relative}.card-value.compact{font-size:clamp(1.85rem,2.6vw,2.35rem)}.card-value.text-value{font-size:clamp(1.55rem,2.1vw,2rem)}.metric-caption{z-index:1;color:var(--text-muted);margin-top:.4rem;font-size:.92rem;position:relative}.metric-cost-line{z-index:1;max-width:100%;color:var(--text-muted);background:#070d1d38;border:1px solid #bfd8d21f;border-radius:8px;align-items:baseline;gap:.42rem;margin-top:.62rem;padding:.28rem .52rem;font-size:.82rem;line-height:1.25;display:inline-flex;position:relative}.metric-cost-line span,.metric-cost-line strong{min-width:0}.metric-cost-line span{flex:none;font-weight:800}.metric-cost-line strong{color:#f7fbffe0;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:850;overflow:hidden}.family-asset-share-list{z-index:1;border-top:1px solid #bfd8d21f;gap:.55rem;margin-top:.9rem;padding-top:.85rem;display:grid;position:relative}.family-asset-share-row{grid-template-columns:minmax(0,1fr) minmax(7rem,auto);align-items:center;gap:.45rem .75rem;min-width:0;display:grid}.family-asset-share-label{justify-content:space-between;align-items:baseline;gap:.65rem;min-width:0;display:flex}.family-asset-share-label span,.family-asset-share-label em,.family-asset-share-row strong{white-space:nowrap;min-width:0;font-style:normal;font-weight:900}.family-asset-share-label span{color:#f7fbff;text-overflow:ellipsis;overflow:hidden}.family-asset-share-label em{color:var(--accent-2);font-size:.82rem}.family-asset-share-row strong{color:#f7fbffe6;text-align:right;text-overflow:ellipsis;font-size:.88rem;overflow:hidden}.family-asset-share-track{background:#bfd8d221;border-radius:999px;grid-column:1/-1;height:.42rem;overflow:hidden}.family-asset-share-track span{border-radius:inherit;background:linear-gradient(90deg, var(--accent-color), var(--accent-3));height:100%;display:block}.market-index-card .card-value{font-size:clamp(1.55rem,2vw,1.85rem)}.asset-split-card .card-value{font-size:clamp(1.45rem,1.9vw,1.75rem)}.asset-daily-change{z-index:1;color:var(--text-muted);border-top:1px solid #bfd8d21f;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:1rem;padding-top:.8rem;font-size:.86rem;font-weight:800;display:flex;position:relative}.asset-daily-change strong,.asset-daily-change em{white-space:nowrap;font-style:normal}.asset-daily-change strong{color:inherit}.asset-daily-change em{color:var(--text-muted);font-size:.78rem}.asset-daily-change.stock-change-up{color:var(--gain-color)}.asset-daily-change.stock-change-down{color:var(--loss-color)}.asset-daily-change.muted{color:var(--text-muted);font-weight:700}.market-index-change{font-weight:800}.market-index-change-content{align-items:center;gap:.35rem;display:inline-flex}.market-index-change.market-index-up{color:var(--gain-color)}.market-index-change.market-index-down{color:var(--loss-color)}.market-index-timestamp{z-index:1;color:var(--text-muted);margin-top:.45rem;font-size:.78rem;position:relative}.settlements-strip{border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);background:#09111db8;border-radius:14px;grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);align-items:stretch;gap:1rem;padding:1rem;display:grid}.settlements-strip-heading{flex-direction:column;justify-content:center;gap:.25rem;min-width:0;display:flex}.settlements-strip-heading span{color:var(--text-muted);text-transform:uppercase;font-size:.86rem;font-weight:800}.settlements-strip-heading strong{color:#f7fbff;font-size:1.05rem;line-height:1.2}.settlements-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:.75rem;min-width:0;display:grid}.settlement-item,.settlement-empty{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:10px;min-width:0;padding:.75rem .85rem}.settlement-item{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;display:grid}.settlement-item span{color:var(--accent-2);font-size:.8rem;font-weight:900}.settlement-item strong{min-width:0;color:var(--text-color);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.settlement-item em{color:#f7fbff;white-space:nowrap;font-size:.98rem;font-style:normal;font-weight:900}.settlement-empty{color:var(--text-muted);text-align:center;grid-column:1/-1;font-weight:700}.charts-container{grid-template-columns:1fr;gap:2rem;min-width:0;display:grid}.chart-wrapper{flex-direction:column;justify-content:flex-start;align-items:stretch;min-width:0;min-height:500px;display:flex}.market-pie-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:0;display:grid}.market-pie-panel{background:#ffffff07;border:1px solid #a7c4ff24;border-radius:10px;flex-direction:column;min-width:0;padding:.95rem;display:flex}.market-pie-heading{justify-content:space-between;align-items:center;gap:.75rem;min-width:0;display:flex}.market-pie-heading strong{color:#f7fbff;white-space:nowrap;font-size:1rem;font-weight:900}.chart-container-inner{flex:1;align-items:center;width:100%;min-width:0;min-height:340px;display:flex}.chart-empty-state{width:100%;min-height:300px;color:var(--text-muted);background:#ffffff09;border:1px dashed #a7c4ff3d;border-radius:8px;justify-content:center;align-items:center;font-weight:700;display:flex}.panel-heading{justify-content:space-between;align-items:center;gap:1rem;width:100%;margin-bottom:1rem;display:flex}.panel-heading h2{color:#dce7f5;font-size:1.35rem;line-height:1.2}.panel-heading p{color:var(--text-muted);margin-top:.3rem;font-size:.92rem}.chart-legend{flex-wrap:wrap;justify-content:center;gap:.45rem .85rem;padding:0 1rem;display:flex}.chart-legend-item{color:var(--text-color);white-space:nowrap;align-items:center;gap:.35rem;font-size:.95rem;line-height:1.2;display:inline-flex}.chart-legend-color{flex:none;width:14px;height:14px}.holdings-list{border-collapse:collapse;width:100%;min-width:1080px;margin-top:1rem}.holdings-list th,.holdings-list td{text-align:left;border-bottom:1px solid var(--glass-border);white-space:nowrap;padding:1rem 1.1rem}.holdings-list th{z-index:2;color:var(--text-muted);-webkit-backdrop-filter:blur(10px);background:#0c1622fa;font-weight:600;position:sticky;top:0}.holding-name-cell{gap:.18rem;display:grid}.holding-name-cell small{color:var(--text-muted);font-size:.78rem;font-weight:800}.holding-price{flex-direction:column;align-items:flex-start;gap:.18rem;min-width:0;display:inline-flex}.holding-price strong{color:var(--text-main);font-size:.95rem;font-weight:900;line-height:1.15}.holding-price small,.quote-source-summary{color:var(--text-muted);font-size:.72rem;font-weight:800;line-height:1.2}.holding-price small{text-overflow:ellipsis;white-space:nowrap;max-width:8.5rem;overflow:hidden}.quote-source-badge{letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;align-items:center;gap:3.5px;max-width:7rem;padding:.5px 4.5px;font-size:.58rem;font-weight:700;line-height:1;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;overflow:hidden}.quote-source-badge .source-dot{border-radius:50%;flex-shrink:0;width:3.5px;height:3.5px;transition:all .25s}.quote-source-badge.source-shioaji{color:#00e6c4d1;background:#00f5d40a;border:1px solid #00f5d41f}.quote-source-badge.source-shioaji .source-dot{background-color:#00f5d4cc;animation:2.5s ease-in-out infinite source-glow-cyan;box-shadow:0 0 3px #00f5d480}.quote-source-badge.source-finnhub{color:#9cb0ffd1;background:#818cf80a;border:1px solid #818cf826}.quote-source-badge.source-finnhub .source-dot{background-color:#818cf8cc;animation:2.5s ease-in-out infinite source-glow-indigo;box-shadow:0 0 3px #818cf880}.quote-source-badge.source-other{color:var(--text-muted);opacity:.85;background:#ffffff08;border:1px solid #ffffff0f}.quote-source-badge.source-other .source-dot{background-color:var(--text-muted);opacity:.5}@keyframes source-glow-cyan{0%,to{opacity:.7;transform:scale(1);box-shadow:0 0 3px #00f5d466}50%{opacity:1;transform:scale(1.15);box-shadow:0 0 6px #00f5d4cc}}@keyframes source-glow-indigo{0%,to{opacity:.7;transform:scale(1);box-shadow:0 0 3px #818cf866}50%{opacity:1;transform:scale(1.15);box-shadow:0 0 6px #818cf8cc}}.quote-source-summary{align-items:center;min-width:0;display:inline-flex}.holdings-list th:nth-child(3),.holdings-list td:nth-child(3){min-width:10rem}.market-badge{min-width:48px;color:var(--accent-2);background:#0071bc1f;border:1px solid #0071bc52;border-radius:999px;justify-content:center;align-items:center;padding:.25rem .55rem;font-size:.78rem;font-weight:800;display:inline-flex}.market-badge.us{color:#bfd8d2;background:#32d6a31f;border-color:#32d6a357}.holding-total-value{flex-direction:column;align-items:flex-start;gap:.15rem;font-weight:800;display:inline-flex}.holding-total-value small{color:var(--text-muted);font-size:.78rem;font-weight:700}.holdings-list>tbody>tr:hover{background:#0071bc0f}.holdings-list>tbody>tr{cursor:pointer}.holdings-group-row,.holdings-group-row:hover{cursor:default!important;background:#0071bc14!important}.holdings-group-row td{border-bottom:1px solid #a7c4ff2e;padding:.85rem 1.1rem}.holdings-group-label{flex-wrap:wrap;align-items:center;gap:.65rem;min-width:0;display:flex}.holdings-group-label strong{color:#f7fbff;font-size:.95rem}.holdings-group-label em{color:var(--text-muted);font-size:.92rem;font-style:normal;font-weight:800}.holdings-list>tbody>tr.selected-row{background:#0071bc1f}.stock-change-value{align-items:center;gap:.35rem;font-weight:800;display:inline-flex}.stock-change-up{color:var(--gain-color)!important}.stock-change-down{color:var(--loss-color)!important}.stock-change-percent,.profit-loss-cell{align-items:center;gap:.25rem;font-weight:800;display:inline-flex}.stock-change-percent.stock-change-up,.profit-loss-cell.stock-change-up{color:var(--gain-color)}.stock-change-percent.stock-change-down,.profit-loss-cell.stock-change-down{color:var(--loss-color)}.positive-value{color:var(--gain-color)!important}.negative-value{color:var(--loss-color)!important}.limit-up{border-radius:4px;padding:.1rem .4rem;box-shadow:0 0 10px #ff6f6959;background-color:var(--gain-color)!important;color:#fff!important}.limit-down{border-radius:4px;padding:.1rem .4rem;box-shadow:0 0 10px #4c969659;background-color:var(--loss-color)!important;color:#fff!important}.profit-loss-value{color:var(--text-color);flex-direction:column;align-items:flex-start;gap:.15rem;font-weight:800;display:inline-flex}.profit-loss-value.stock-change-up{color:var(--gain-color)}.profit-loss-value.stock-change-down{color:var(--loss-color)}.profit-loss-value small{color:currentColor;opacity:.86;font-size:.78rem;font-weight:700}.stock-symbol-btn{color:var(--accent-2);font:inherit;cursor:pointer;background:#0071bc1f;border:1px solid #0071bc61;border-radius:8px;padding:.35rem .6rem;font-weight:800;transition:background .2s,border-color .2s,color .2s,transform .2s}.stock-symbol-btn:hover,.stock-symbol-btn:focus-visible{color:#f3f6f4;background:#0071bc24;border-color:#0071bcb3;outline:none;transform:translateY(-1px)}.technical-chart-panel{background:#060c1480;border:1px solid #0071bc38;border-radius:12px;margin:1rem 0 1.25rem;overflow:hidden}.expanded-detail-row{background:#0071bc08!important}.expanded-detail-row .technical-chart-panel{background:0 0;border:1px solid #0071bc26;border-left:none;border-right:none;border-radius:0;margin:0}.technical-chart-header{border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.1rem;display:flex}.technical-chart-header h3{color:#f7fbff;font-size:1.15rem;line-height:1.3}.technical-chart-header p{color:var(--text-muted);margin-top:.2rem;font-size:.88rem}.holding-detail-lots{border-top:1px solid #a7c4ff1f;gap:.7rem;margin-top:1rem;padding-top:1rem;display:grid}.holding-lots-table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.holding-lots-table-scroll::-webkit-scrollbar{height:4px}.holding-lots-table-scroll::-webkit-scrollbar-thumb{background:#0071bc4d;border-radius:2px}.holding-lots-table-scroll::-webkit-scrollbar-track{background:#ffffff03}.holding-lots-table{border-collapse:collapse;width:100%;min-width:720px}.holding-lots-table th,.holding-lots-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #a7c4ff1a;padding:.65rem .7rem}.holding-lots-table th{color:var(--text-muted);font-size:.78rem;font-weight:800}.technical-chart-actions{flex:none;align-items:center;gap:.6rem;display:flex}.chart-link,.chart-close-btn{border:1px solid var(--glass-border);min-height:36px;color:var(--text-color);font:inherit;cursor:pointer;background:#ffffff0f;border-radius:8px;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.chart-link{padding:0 .8rem}.chart-close-btn{width:36px;padding:0;font-size:1.4rem;line-height:1}.chart-link:hover,.chart-close-btn:hover{color:#fff;background:#0071bc24;border-color:#0071bc7a}.technical-chart-launch{background:linear-gradient(135deg,#0071bc1a,#bfd8d20f);justify-content:center;align-items:center;min-height:120px;padding:1.25rem;display:flex}.technical-chart-primary-link{color:#f3f6f4;background:#0071bc24;border:1px solid #0071bc61;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:0 1rem;font-weight:800;text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .2s;display:inline-flex}.technical-chart-primary-link:hover,.technical-chart-primary-link:focus-visible{color:#fff;background:#0071bc29;border-color:#0071bc99;outline:none;transform:translateY(-1px)}.chip-data-section{border-top:1px solid var(--glass-border);padding:1.1rem}.stock-technical-section{border-top:1px solid var(--glass-border);background:#ffffff05;padding:1.1rem}.chip-data-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;display:flex}.chip-data-heading h4,.chip-data-card h4{color:#f7fbff;font-size:1rem;line-height:1.2}.chip-data-heading span{color:var(--text-muted);font-size:.86rem;font-weight:700}.chip-status,.chip-empty{border:1px solid var(--glass-border);color:var(--text-muted);background:#ffffff0a;border-radius:8px;padding:.85rem;font-size:.9rem}.chip-status.error{color:#ffaca8;background:#f8514914;border-color:#f851495c}.technical-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.technical-metric{border:1px solid var(--glass-border);background:#ffffff09;border-radius:8px;min-width:0;padding:.8rem}.technical-metric span{color:var(--text-muted);margin-bottom:.35rem;font-size:.78rem;font-weight:700;display:block}.technical-metric strong{color:#f7fbff;white-space:nowrap;text-overflow:ellipsis;font-size:1rem;line-height:1.25;display:block;overflow:hidden}.best-four-card{border:1px solid var(--glass-border);background:#ffffff09;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:1rem;margin-top:.85rem;padding:.9rem;display:flex}.best-four-card.active{background:#f9951414;border-color:#f9951473;box-shadow:0 0 20px #f995140d}.best-four-card span{color:var(--text-muted);margin-bottom:.35rem;font-size:.78rem;font-weight:800;display:block}.best-four-card strong{color:#f7fbff;font-size:.98rem;line-height:1.45}.buy-signal-list{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:.45rem;display:flex}.buy-signal-list span{color:#ffd7a0;background:#f995141f;border:1px solid #f9951459;border-radius:999px;margin:0;padding:.32rem .55rem;font-size:.78rem;font-weight:700}.chip-data-grid{grid-template-columns:minmax(0,.98fr) minmax(0,1.42fr);gap:1rem;display:grid}.chip-data-card{border:1px solid var(--glass-border);background:#ffffff09;border-radius:10px;min-width:0;padding:1rem}.chip-data-card h4{margin-bottom:.75rem}.chip-table-scroll{scrollbar-width:thin;overflow-x:auto}.chip-data-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:0}.chip-data-table th,.chip-data-table td{color:var(--text-color);text-align:right;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #a7c4ff1a;padding:.58rem .48rem;font-size:.82rem;overflow:hidden}.chip-data-table th:first-child,.chip-data-table td:first-child{text-align:left;width:5.6rem}.chip-data-table th{color:var(--text-muted);font-weight:700}.chip-data-table tr:last-child td{border-bottom:0}.compact-chip-card .chip-table-scroll{overflow-x:hidden}.compact-chip-card .chip-data-table th,.compact-chip-card .chip-data-table td{padding-inline:.42rem}.table-scroll{scrollbar-width:thin;border:1px solid #a7c4ff1f;border-radius:10px;max-width:100%;overflow-x:auto}.accent-cell{color:var(--accent-color);font-weight:700}.daily-assets-page{align-content:start;gap:1rem;min-height:58vh;display:grid}.daily-assets-state{min-height:220px;color:var(--text-muted);text-align:center;place-items:center;font-weight:800;display:grid}.daily-assets-state.error{color:var(--loss-color)}.daily-assets-toolbar{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.daily-assets-toolbar h2{color:#f7fbff;font-size:1.05rem;line-height:1.25}.daily-assets-controls{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.daily-assets-inline-error{color:var(--loss-color);font-size:.86rem;font-weight:800}.daily-summary-grid{flex-wrap:wrap;gap:1rem;display:flex}.daily-summary-grid .metric-card{padding:1.15rem}.daily-summary-grid .card-value,.daily-summary-grid .primary-metric .card-value{white-space:normal;overflow-wrap:anywhere;word-break:normal;font-size:clamp(1.55rem,2.25vw,2.35rem);line-height:1.12}.daily-summary-grid .card-value.text-value{font-size:clamp(1.35rem,1.9vw,1.85rem)}.daily-assets-grid{grid-template-columns:minmax(0,1.5fr) minmax(340px,.85fr);align-items:stretch;gap:1rem;display:grid}.market-assets-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1rem;display:grid}.daily-chart-panel,.allocation-panel,.asset-forecast-panel,.liability-panel{min-width:0}.section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.section-heading h2{color:#f7fbff;font-size:1.25rem;line-height:1.2}.section-heading span{color:var(--text-muted);font-size:.86rem;font-weight:800}.daily-chart-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.7rem;display:inline-flex}.compact-control{padding:.18rem}.compact-control button{min-height:2rem;padding:.35rem .65rem;font-size:.76rem}.daily-trend-chart{min-width:0;height:340px}.market-asset-chart{height:280px}.market-profit-loss-panel{grid-column:1/-1}.asset-forecast-panel{margin-top:1rem}.forecast-chart-summary span{white-space:nowrap}.forecast-legend{flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:.85rem;display:flex}.forecast-legend span{color:var(--text-muted);align-items:center;gap:.42rem;font-size:.82rem;font-weight:850;display:inline-flex}.forecast-legend i{border-top:3px solid;width:1.45rem;height:0}.forecast-legend .actual-asset-line{color:#f99514}.forecast-legend .actual-growth-line{color:#4c9696;border-top-width:2px}.forecast-legend .forecast-asset-line{color:#7aa7ff;border-top-style:dashed}.forecast-legend .forecast-growth-line{color:#8ad7ff;border-top-style:dashed;border-top-width:2px}.allocation-content{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));align-items:center;gap:1rem;display:grid}.allocation-chart{min-width:0;height:240px}.allocation-list,.liability-list{gap:.7rem;min-width:0;display:grid}.allocation-row{background:#ffffff09;border:1px solid #a7c4ff1f;border-radius:8px;grid-template-columns:auto max-content minmax(7.5rem,1fr) auto;align-items:center;gap:.55rem;min-width:0;padding:.62rem .7rem;display:grid}.allocation-dot{border-radius:50%;width:.7rem;height:.7rem}.allocation-row strong,.allocation-row em,.liability-row strong,.liability-row em{color:#f7fbff;min-width:0;font-style:normal;font-weight:900}.allocation-row strong{white-space:nowrap}.allocation-row em{text-align:right;white-space:nowrap}.allocation-row small,.liability-row span{color:var(--text-muted);font-size:.8rem;font-weight:800}.liability-row{background:#ffffff09;border:1px solid #a7c4ff1f;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem .95rem;display:flex}.liability-row div{gap:.2rem;min-width:0;display:grid}.liability-row em{color:var(--loss-color);white-space:nowrap}.empty-inline{min-height:90px;color:var(--text-muted);border:1px dashed #a7c4ff29;border-radius:8px;place-items:center;font-weight:800;display:grid}.liabilities-page{align-content:start;gap:1rem;display:grid}.liabilities-summary-grid{grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,.8fr))}.liabilities-layout{grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);align-items:start;gap:1rem;display:grid}.liability-editor-panel,.liability-list-panel{min-width:0}.liability-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:.75rem;display:grid}.liability-form select.login-input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);background-position:calc(100% - 16px) 52%,calc(100% - 11px) 52%;background-repeat:no-repeat;background-size:5px 5px,5px 5px}.liability-form option{color:#0d1c2c}.liability-field-label-row{justify-content:space-between;align-items:center;gap:.5rem;min-height:22px;display:flex}.liability-field-label-row label{min-width:0}.liability-calculate-btn{color:#d8ecff;font:inherit;cursor:pointer;background:#2f9ff71f;border:1px solid #2f9ff76b;border-radius:7px;flex:none;padding:.2rem .5rem;font-size:.78rem;font-weight:800;line-height:1.2;transition:background .2s,border-color .2s,opacity .2s}.liability-calculate-btn:hover:not(:disabled){background:#2f9ff738;border-color:#2f9ff7bd}.liability-calculate-btn:disabled{cursor:not-allowed;opacity:.46}.liability-auto-switch{align-self:end;min-height:42px;padding-bottom:.38rem}.liability-wide-field{grid-column:span 2}.liability-wide-field textarea.login-input{resize:vertical;min-height:88px}.liability-submit{grid-column:1/-1;min-height:44px}.liability-management-list{gap:.8rem;display:grid}.liability-distribution-card{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:8px;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:.85rem;padding:.85rem;display:grid}.liability-distribution-chart{min-width:0;height:148px}.liability-distribution-list,.liability-type-items{gap:.6rem;min-width:0;display:grid}.liability-distribution-row{grid-template-columns:auto minmax(3rem,1fr) auto auto;align-items:center;gap:.5rem;min-width:0;display:grid}.liability-distribution-row strong,.liability-distribution-row em,.liability-type-heading strong,.liability-type-heading em{color:#f7fbff;font-style:normal;font-weight:900}.liability-distribution-row strong{overflow-wrap:anywhere;min-width:0}.liability-distribution-row em{color:var(--loss-color);white-space:nowrap}.liability-distribution-row small{color:var(--text-muted);text-align:right;white-space:nowrap;font-size:.78rem;font-weight:800}.liability-type-group{gap:.65rem;min-width:0;display:grid}.liability-type-heading{background:#091826a3;border:1px solid #a7c4ff24;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.58rem .72rem;display:flex}.liability-type-heading div{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.liability-type-heading strong{overflow-wrap:anywhere;min-width:0}.liability-type-heading em{color:var(--text-muted);white-space:nowrap;flex:none;font-size:.78rem}.liability-management-item{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:8px;gap:.75rem;padding:.9rem;display:grid}.liability-management-item.active{border-color:#ff6f6942}.liability-management-main{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.liability-management-main div{gap:.25rem;min-width:0;display:grid}.liability-management-main strong{color:#f7fbff;overflow-wrap:anywhere;font-size:1rem;line-height:1.25}.liability-management-main span,.liability-management-item p{color:var(--text-muted);font-size:.86rem;line-height:1.5}.liability-management-main em{color:var(--loss-color);white-space:nowrap;flex:none;font-style:normal;font-weight:900}.liability-management-meta{flex-wrap:wrap;gap:.45rem;display:flex}.liability-management-meta span{color:var(--text-muted);background:#060c1457;border:1px solid #a7c4ff24;border-radius:999px;padding:.28rem .5rem;font-size:.78rem;font-weight:800}.liability-management-actions{justify-content:flex-end;gap:.5rem;display:flex}.asset-return-page{align-content:start;gap:1rem;display:grid}.asset-return-settings-bar{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.asset-return-settings-bar>div:first-child{gap:.2rem;min-width:0;display:grid}.asset-return-settings-bar strong{color:#f7fbff;font-size:.98rem;font-weight:900}.asset-return-settings-bar span{color:var(--text-muted);font-size:.84rem;font-weight:800}.asset-return-settings-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:.6rem;display:inline-flex}.asset-return-preset-field{gap:.25rem;min-width:min(100%,150px);display:grid}.asset-return-preset-field span{color:var(--text-muted);font-size:.74rem;font-weight:900}.asset-return-preset-field select,.asset-return-preset-field input{color:#f7fbff;width:100%;min-height:38px;font:inherit;background:#070d1d99;border:1px solid #a7c4ff2e;border-radius:8px;outline:none;padding:.45rem .65rem;font-size:.88rem;font-weight:800}.asset-return-preset-field select:focus,.asset-return-preset-field input:focus{border-color:#0071bc94;box-shadow:0 0 0 3px #0071bc29}.asset-return-preset-field select:disabled,.asset-return-preset-field input:disabled{opacity:.62;cursor:not-allowed}.preset-name-field{min-width:min(100%,180px)}.danger-action-btn{color:#ffaca8;background:#f8514914;border-color:#f8514957}.danger-action-btn:hover:not(:disabled){color:#ffd5cf;background:#f8514924;border-color:#f851499e}.asset-return-settings-feedback{color:var(--accent-2);background:#bfd8d212;border:1px solid #bfd8d233;border-radius:8px;padding:.65rem .8rem;font-size:.88rem;font-weight:800}.asset-return-settings-feedback.error{color:#ffaca8;background:#f8514914;border-color:#f8514952}.asset-return-summary-grid .metric-card{min-height:148px}.asset-return-decision-card.positive{border-color:#ff6f694d}.asset-return-decision-card.positive .card-value{color:var(--gain-color)}.asset-return-decision-card.negative{border-color:#4c969657}.asset-return-decision-card.negative .card-value{color:var(--loss-color)}.asset-return-layout,.asset-return-charts-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.asset-return-tool-panel,.asset-return-chart-panel,.asset-return-table-panel{min-width:0}.asset-return-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:.75rem;display:grid}.investment-principal-form{grid-template-columns:minmax(180px,1fr) minmax(120px,.55fr) minmax(260px,1.15fr);margin-bottom:.85rem}.withdrawal-control-form{grid-template-columns:minmax(0,1fr) minmax(120px,.55fr) minmax(190px,.85fr);margin-bottom:1rem}.asset-return-note{color:var(--accent-3);background:#f9951414;border:1px solid #f9951447;border-radius:8px;margin-top:.75rem;padding:.65rem .75rem;font-size:.86rem;font-weight:800}.asset-return-result-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem;display:grid}.asset-return-result,.asset-return-allocation-status{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:8px;align-content:start;gap:.28rem;min-width:0;padding:.75rem;display:grid}.asset-return-allocation-status{align-content:center;align-self:stretch;gap:.35rem;padding:.68rem .8rem}.asset-return-allocation-status-main{justify-content:space-between;align-items:baseline;gap:.75rem;min-width:0;display:flex}.asset-return-result span,.asset-return-allocation-status span,.asset-return-result em,.asset-return-allocation-status em{color:var(--text-muted);font-size:.82rem;font-style:normal;font-weight:800;line-height:1.45}.asset-return-result strong,.asset-return-allocation-status strong{color:#f7fbff;overflow-wrap:anywhere;min-width:0;font-size:1.18rem;font-weight:900;line-height:1.2}.asset-return-allocation-status strong{white-space:nowrap;flex:none;font-size:1.28rem}.asset-allocation-editor{gap:.7rem;display:grid}.asset-allocation-row{background:#060c1447;border:1px solid #a7c4ff1f;border-radius:8px;grid-template-columns:minmax(110px,1fr) minmax(90px,.55fr) minmax(115px,.7fr) auto;align-items:end;gap:.65rem;padding:.72rem;display:grid}.asset-allocation-row .manual-us-holding-delete{min-height:42px}.asset-return-charts-grid .allocation-analysis-panel,.asset-return-charts-grid .withdrawal-analysis-panel,.asset-return-charts-grid .monthly-withdrawal-analysis-panel{grid-column:1/-1}.asset-return-chart{min-width:0;height:320px}.asset-return-chart-legend{border-top:1px solid #bfd8d21a;flex-wrap:wrap;gap:.55rem .9rem;margin-top:.35rem;padding-top:.75rem;display:flex}.asset-return-chart-legend span{color:var(--text-muted);align-items:center;gap:.42rem;font-size:.82rem;font-weight:800;display:inline-flex}.asset-return-chart-legend i{border-radius:3px;flex:none;width:.82rem;height:.82rem;display:inline-block}.asset-return-chart-legend i.dashed{border-top:2px dashed #bfd8d285;border-radius:0;width:1.2rem;height:0}.asset-return-allocation-analysis{grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);align-items:center;gap:1rem;display:grid}.asset-return-pie{min-width:0;height:230px}.asset-return-table{border-collapse:collapse;width:100%;min-width:780px}.asset-return-table th,.asset-return-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #a7c4ff1f;padding:.78rem .85rem}.asset-return-table th:first-child,.asset-return-table td:first-child{text-align:left}.asset-return-table th{color:var(--text-muted);letter-spacing:.03em;font-size:.78rem;font-weight:900}.asset-return-table td{color:#f7fbff;font-size:.9rem;font-weight:800}.asset-return-table td span{color:var(--text-muted);margin-top:.18rem;font-size:.76rem;display:block}.asset-return-table tr:last-child td{border-bottom:0}.asset-return-guidance-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.asset-return-guidance article{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:8px;gap:.35rem;padding:.9rem;display:grid}.asset-return-guidance strong{color:#f7fbff;font-size:.96rem}.asset-return-guidance span{color:var(--text-muted);font-size:.88rem;font-weight:700;line-height:1.65}.placeholder-panel{grid-template-columns:280px minmax(0,1fr);align-items:center;gap:2rem;display:grid}.placeholder-panel h2{color:#fff;margin-bottom:.65rem;font-size:2rem}.placeholder-panel p{max-width:680px;color:var(--text-muted);font-size:1.05rem;line-height:1.8}.placeholder-visual{background:linear-gradient(#0071bc24,#bfd8d20d);border:1px solid #a7c4ff24;border-radius:14px;height:210px;position:relative;overflow:hidden}.placeholder-visual span{background:linear-gradient(180deg, var(--accent-color), #0071bc33);border-radius:8px 8px 0 0;width:38px;position:absolute;bottom:28px}.placeholder-visual span:nth-child(2){height:74px;left:42px}.placeholder-visual span:nth-child(3){background:linear-gradient(180deg, var(--accent-2), #0071bc2e);height:118px;left:104px}.placeholder-visual span:nth-child(4){background:linear-gradient(180deg, var(--accent-3), #f9951429);height:154px;left:166px}.trend-line{transform-origin:0;border-top:3px solid #ffffffb8;height:90px;position:absolute;top:60px;left:34px;right:38px;transform:skewY(-16deg)}.loader-container{background-color:var(--bg-color);z-index:9999;background-image:radial-gradient(circle,#0071bc1f,#0000 50%),radial-gradient(circle at 0 0,#0071bc0d,#0000 30%),radial-gradient(circle at 100% 100%,#f995140d,#0000 30%);justify-content:center;align-items:center;width:100%;height:100vh;display:flex;position:fixed;inset:0;overflow:hidden}.loader-content{z-index:10;flex-direction:column;align-items:center;gap:2.5rem;display:flex}.loader-visual{justify-content:center;align-items:center;width:160px;height:160px;display:flex;position:relative}.loader-ring{border:2px solid #0000;border-top-color:var(--accent-color);border-right-color:#0071bc33;border-radius:50%;width:100%;height:100%;animation:1.2s cubic-bezier(.5,0,.5,1) infinite spin;position:absolute;box-shadow:0 0 15px #0071bc33}.loader-ring.outer{border-top-color:#0000;border-bottom-color:var(--accent-3);opacity:.4;border-left-color:#f995141a;width:130%;height:130%;animation:2s linear infinite reverse spin}.loader-logo-wrapper{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);background:#ffffff0d;border-radius:20px;justify-content:center;align-items:center;width:80px;height:80px;padding:12px;animation:3s ease-in-out infinite breathe;display:flex;position:relative;box-shadow:0 10px 30px #0000004d}.loader-logo{object-fit:contain;filter:drop-shadow(0 0 8px #0071bc80);width:100%;height:100%}.loader-text-group{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.loader-title{letter-spacing:.1rem;background:linear-gradient(90deg, #fff, var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:1.8rem;font-weight:700}.loader-subtitle{color:var(--text-muted);opacity:.8;margin:0;font-size:1rem;font-weight:500}.loader-progress-track{background:#ffffff0d;border-radius:999px;width:240px;height:4px;margin-top:1.5rem;position:relative;overflow:hidden}.loader-progress-bar{background:linear-gradient(90deg, transparent, var(--accent-color), transparent);border-radius:999px;width:40%;height:100%;animation:2s linear infinite progress-flow;position:absolute}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes breathe{0%,to{transform:scale(1);box-shadow:0 10px 30px #0000004d}50%{transform:scale(1.05);box-shadow:0 15px 40px #0071bc33}}@keyframes progress-flow{0%{left:-40%}to{left:100%}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=980px){.settlements-strip,.settlements-list{grid-template-columns:1fr}.settlement-item{grid-template-columns:auto minmax(0,1fr) auto}.daily-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-assets-grid,.market-assets-grid,.allocation-content,.liabilities-layout,.asset-return-layout,.asset-return-charts-grid,.asset-return-allocation-analysis,.asset-return-guidance-grid{grid-template-columns:1fr}.liability-form,.asset-return-form,.investment-principal-form,.withdrawal-control-form{grid-template-columns:repeat(2,minmax(0,1fr))}.investment-principal-form .asset-return-allocation-status{grid-column:1/-1}.asset-return-charts-grid .allocation-analysis-panel,.asset-return-charts-grid .withdrawal-analysis-panel,.asset-return-charts-grid .monthly-withdrawal-analysis-panel{grid-column:auto}.asset-allocation-row{grid-template-columns:repeat(3,minmax(0,1fr))}.asset-allocation-row .manual-us-holding-delete{grid-column:1/-1}.liability-distribution-card{grid-template-columns:minmax(140px,.55fr) minmax(0,1fr)}}@media (width<=768px){.app-shell{grid-template-columns:1fr;padding-top:64px}.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{contain:layout paint;background:#080f18f5;border-bottom:1px solid #a7c4ff1f;border-right:none;grid-template-columns:minmax(0,1fr) 46px;align-items:center;gap:.5rem;height:64px;min-height:64px;padding:.55rem .85rem;display:grid;position:fixed;inset:0 0 auto;box-shadow:0 8px 22px #00000042}.app-shell.sidebar-open .sidebar{grid-template-rows:46px auto auto;align-items:stretch;height:auto;max-height:min(86vh,460px);overflow-y:auto}.brand-block{gap:.65rem;min-width:0;padding:0}.brand-mark{border-radius:10px;width:40px;height:40px}.brand-title{font-size:.98rem}.brand-subtitle{display:none}.sidebar-toggle{background:#0071bc1a;border-color:#0071bc3d;grid-area:1/2;justify-self:end;width:46px;height:46px;margin:0}.app-shell.sidebar-collapsed .sidebar{padding:.55rem .85rem}.app-shell.sidebar-collapsed .brand-block{flex-direction:row;justify-content:flex-start;padding:0}.app-shell.sidebar-collapsed .brand-mark{width:40px;height:40px}.app-shell.sidebar-collapsed .brand-copy{opacity:1;pointer-events:auto;width:auto;height:auto;overflow:visible;transform:none}.app-shell.sidebar-collapsed .sidebar-toggle{margin:0}.sidebar-nav,.sidebar-footer{grid-column:1/-1}.sidebar-nav{flex-direction:column;gap:.55rem;padding:.75rem 0 0;display:none;overflow:visible}.app-shell.sidebar-open .sidebar-nav{display:flex}.nav-item,.app-shell.sidebar-collapsed .nav-item{justify-content:flex-start;width:100%;min-width:0;height:48px;padding:0 .9rem}.app-shell.sidebar-collapsed .nav-label{opacity:1;pointer-events:auto;width:auto;height:auto;overflow:visible;transform:none}.sidebar-footer{border-top:1px solid #a7c4ff1f;grid-template-columns:1fr;margin-top:.4rem;padding-top:.75rem;display:none}.app-shell.sidebar-open .sidebar-footer{display:grid}.app-shell.sidebar-collapsed .sidebar-footer{justify-items:stretch}.app-shell.sidebar-collapsed .sidebar-logout{width:100%;height:44px;padding:0 .9rem}.app-shell.sidebar-collapsed .logout-label{opacity:1;pointer-events:auto;width:auto;height:auto;overflow:visible;transform:none}.sidebar-backdrop{display:none}.app-shell.sidebar-open .sidebar-backdrop{z-index:20;touch-action:manipulation;background:#00000052;border:0;display:block;position:fixed;inset:64px 0 0}.dashboard-container{gap:1.25rem;padding:1rem}.topbar,.panel-heading,.holdings-heading,.daily-assets-toolbar,.asset-return-settings-bar{flex-direction:column;align-items:flex-start}.asset-return-settings-actions{justify-content:stretch;width:100%}.asset-return-settings-actions .secondary-action-btn{flex:140px}.daily-assets-toolbar .segmented-control{width:100%}.topbar-actions{justify-content:flex-end;gap:.6rem;width:100%}.topbar-actions .family-scope-control{width:100%;max-width:none}.topbar-actions .status-pill-group{margin-left:auto}.topbar-actions .status-pill{padding:.38rem .65rem;font-size:.72rem}.refresh-btn{width:32px;height:32px}.daily-assets-controls{justify-content:stretch;width:100%}.market-pie-grid,.daily-assets-grid,.market-assets-grid,.liabilities-summary-grid,.liability-form,.asset-return-form,.investment-principal-form,.withdrawal-control-form,.asset-return-result-grid,.asset-allocation-row,.asset-return-guidance-grid,.placeholder-panel{grid-template-columns:1fr}.summary-grid,.daily-summary-grid{flex-direction:column}.metric-card{flex:auto}.metric-cost-line{flex-wrap:wrap;width:fit-content;max-width:100%}.metric-cost-line strong{white-space:normal;overflow-wrap:anywhere}.asset-return-allocation-status-main{align-items:flex-start}.liability-wide-field{grid-column:auto}.liability-distribution-card,.liability-distribution-row{grid-template-columns:1fr}.liability-distribution-chart{height:180px}.liability-distribution-row{border-bottom:1px solid #a7c4ff1a;justify-items:start;padding-bottom:.55rem}.liability-distribution-row:last-child{border-bottom:none;padding-bottom:0}.liability-type-heading,.liability-management-main,.liability-management-actions{grid-template-columns:1fr;display:grid}.liability-management-main em{white-space:normal}.asset-return-chart{height:280px}.asset-return-pie{height:210px}.asset-return-table-panel .table-scroll{overflow:visible}.asset-return-table,.asset-return-table tbody,.asset-return-table tr,.asset-return-table td{width:100%;min-width:0;display:block}.asset-return-table{border-collapse:separate;border-spacing:0}.asset-return-table thead{display:none}.asset-return-table tbody{gap:.75rem;display:grid}.asset-return-table tr{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:10px;gap:.2rem;padding:.78rem;display:grid}.asset-return-table td,.asset-return-table td:first-child{text-align:right;white-space:normal;overflow-wrap:anywhere;border-bottom:1px solid #a7c4ff14;grid-template-columns:minmax(7rem,auto) minmax(0,1fr);align-items:baseline;gap:.65rem;min-width:0;padding:.48rem 0;display:grid}.asset-return-table td:before{content:attr(data-label);color:var(--text-muted);text-align:left;font-size:.76rem;font-weight:900}.asset-return-table td:first-child{color:var(--accent-2);font-size:1rem}.asset-return-table td:first-child:before{color:var(--text-muted);font-size:.76rem}.asset-return-table td:last-child{border-bottom:0}.asset-return-table td span{margin-top:.08rem}.asset-allocation-row .manual-us-holding-delete{grid-column:auto}.daily-trend-chart{height:280px}.allocation-row{grid-template-columns:auto minmax(0,1fr) auto}.allocation-row small{text-align:right;grid-column:2/-1}.chart-wrapper{min-height:0}.technical-chart-header{flex-direction:column}.technical-chart-actions{justify-content:space-between;width:100%}.chip-data-heading,.chip-data-grid,.us-holding-form,.technical-metric-grid{grid-template-columns:1fr}.chip-data-heading{flex-direction:column}.best-four-card{flex-direction:column;gap:.85rem;min-width:0;padding:.85rem}.best-four-card>div{width:100%;min-width:0}.best-four-card strong{white-space:normal;overflow-wrap:anywhere;font-size:.94rem;line-height:1.55;display:block}.buy-signal-list{grid-template-columns:1fr;justify-content:flex-start;width:100%;display:grid}.buy-signal-list span{white-space:normal;overflow-wrap:anywhere;border-radius:8px;width:100%;padding:.55rem .65rem;line-height:1.35}.chip-data-section,.stock-technical-section{padding:.9rem}.chip-data-card{padding:.85rem}.chip-table-scroll,.compact-chip-card .chip-table-scroll{overflow-x:visible}.chip-data-table,.chip-data-table tbody,.chip-data-table tr,.chip-data-table td{width:100%;display:block}.chip-data-table{table-layout:auto;border-collapse:separate;border-spacing:0}.chip-data-table thead{display:none}.chip-data-table tbody{gap:.75rem;display:grid}.chip-data-table tr{background:#ffffff08;border:1px solid #a7c4ff24;border-radius:8px;padding:.7rem}.chip-data-table td,.compact-chip-card .chip-data-table td{text-align:right;white-space:nowrap;text-overflow:clip;overflow-wrap:normal;word-break:keep-all;border-bottom:1px solid #a7c4ff14;grid-template-columns:minmax(4.4rem,auto) minmax(0,1fr);align-items:baseline;gap:.6rem;padding:.48rem 0;display:grid;overflow:visible}.chip-data-table td:first-child{color:#f7fbff;width:100%;padding-top:0;font-size:1rem;font-weight:900}.chip-data-table td:first-child:before{content:attr(data-label)}.chip-data-table td:before{content:attr(data-label);color:var(--text-muted);text-align:left;font-size:.78rem;font-weight:800}.chip-data-table td:not(:first-child){font-size:.86rem}.chip-data-table td:last-child{border-bottom:0}.dense-chip-card .chip-data-table tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;padding:.75rem;display:grid}.dense-chip-card .chip-data-table td{text-align:right;background:#ffffff09;border:1px solid #bfd8d21a;border-radius:8px;grid-template-columns:1fr;gap:.28rem;min-width:0;padding:.62rem .68rem;display:grid}.dense-chip-card .chip-data-table td:first-child{background:0 0;border:0;border-radius:0;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:.6rem;padding:0 0 .1rem;display:flex}.dense-chip-card .chip-data-table td:first-child:before{flex:none}.dense-chip-card .chip-data-table td:before{min-width:0;font-size:.76rem}.dense-chip-card .chip-data-table td:not(:first-child){font-size:.92rem;font-weight:900}.card-value{font-size:2.2rem}h1{font-size:1.82rem;line-height:1.18}p.subtitle{font-size:.96rem;line-height:1.55}.glass-panel{border-radius:12px;padding:1rem}.holdings-actions{justify-content:flex-start;width:100%}.holdings-actions .secondary-action-btn,.holdings-actions .switch-control{width:100%}.holdings-actions .secondary-action-btn{min-height:42px}.us-holdings-editor{min-width:0;margin-inline:-.1rem;padding:.85rem;overflow:hidden}.us-holdings-editor-heading{justify-content:space-between;align-items:flex-start;gap:.75rem;min-width:0;display:flex}.us-holdings-editor-heading>div{min-width:0}.us-holdings-editor-heading p{overflow-wrap:anywhere;line-height:1.55}.us-holdings-editor-heading .chart-close-btn{flex:0 0 36px;width:36px;height:36px;min-height:36px;padding:0}.us-holding-form{grid-template-columns:minmax(0,1fr);gap:.7rem;width:100%;display:grid}.compact-input,.compact-input .login-input{min-width:0}.us-holding-submit{width:100%;min-width:0}.manual-us-holdings-list{grid-template-columns:1fr;display:grid}.manual-us-holding-item,.manual-us-holding-empty{width:100%}.manual-us-holding-item{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:.45rem .6rem;display:grid}.manual-us-holding-item strong{grid-column:1/-1}.manual-us-holding-item span{overflow-wrap:anywhere;min-width:0}.manual-us-holding-item span:first-of-type{grid-column:1}.manual-us-holding-item span:nth-of-type(2){text-align:right;grid-column:2}.manual-us-holding-edit,.manual-us-holding-delete{min-height:34px}.manual-us-holding-edit{grid-column:1}.manual-us-holding-delete{grid-column:2}.segmented-control{width:100%}.segmented-control button{flex:1 1 0;padding-inline:.45rem}.table-scroll{background:0 0;border:0;border-radius:0;max-height:none;margin-inline:0;overflow:visible}.holdings-list{border-collapse:separate;border-spacing:0;min-width:0;margin-top:0;display:block}.holdings-list thead{display:none}.holdings-list>tbody{gap:.8rem;display:grid}.holdings-list>tbody>tr{cursor:pointer}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row){background:#ffffff09;border:1px solid #a7c4ff29;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;padding:.95rem;display:grid;position:relative;box-shadow:0 12px 30px #00000029}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row):hover,.holdings-list>tbody>tr.selected-row{background:#0071bc1f;border-color:#50b8ff47}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row):after{content:"點選查看技術與籌碼";color:var(--text-muted);letter-spacing:.01em;grid-column:1/-1;font-size:.74rem;font-weight:800}.holdings-list>tbody>tr.selected-row:after{content:"已展開詳細資料";color:var(--accent-2)}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td{white-space:normal;min-width:0;box-shadow:none;background:0 0;border:0;gap:.2rem;padding:0;display:grid;position:static}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:before{content:"";color:var(--text-muted);font-size:.72rem;font-weight:800;line-height:1.1}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:first-child{grid-area:1/1;align-self:start}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(2){grid-area:2/1}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(2) .stock-symbol-btn{justify-self:start;padding:0;font-size:1.28rem;line-height:1}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(3){grid-area:3/1/auto/-1;min-width:0}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(4),.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(5),.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(9){background:#ffffff09;border:1px solid #bfd8d21a;border-radius:8px;padding:.55rem .65rem}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(4):before{content:"股數"}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(5):before{content:"現價"}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(6){grid-area:1/2;align-self:start;justify-items:end}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(7){grid-area:4/1/auto/-1}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(7):before{content:"個人損益"}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(8){text-align:right;grid-area:2/2;justify-items:end}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(8):before{content:"總值"}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(9):before{content:"佔比"}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(4){grid-area:5/1}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(5){grid-area:5/2}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row)>td:nth-child(9){grid-area:6/1/auto/-1}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row) .holding-name-cell span{color:#f7fbff;overflow-wrap:anywhere;font-size:.98rem;font-weight:800}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row) .stock-change-percent,.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row) .profit-loss-cell,.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row) .holding-total-value{align-items:flex-end;font-weight:900}.holdings-list>tbody>tr:not(.holdings-group-row):not(.expanded-detail-row) .profit-loss-cell{align-items:flex-start}.holdings-group-row,.holdings-group-row:hover{background:0 0;display:block}.holdings-group-row td{border:0;padding:.4rem 0 0;display:block}.holdings-group-label{grid-template-columns:auto 1fr;gap:.4rem .65rem;width:100%;padding:0 .1rem;display:grid}.holdings-group-label strong{justify-self:start}.quote-source-summary,.holdings-group-label em{overflow-wrap:anywhere;grid-column:1/-1}.holding-price small{max-width:min(10rem,42vw)}.expanded-detail-row{display:block}.expanded-detail-row>td{border:0;padding:0;display:block}.expanded-detail-row .technical-chart-panel{border-radius:10px;margin-top:-.25rem}}.login-container{justify-content:center;align-items:center;width:100%;height:100vh;display:flex}.login-card{text-align:center;width:100%;max-width:400px}.login-form{flex-direction:column;gap:1.5rem;margin-top:2rem;display:flex}.input-group{text-align:left;flex-direction:column;gap:.5rem;display:flex}.input-group label{color:var(--text-muted);font-size:.9rem}.login-input{border:1px solid var(--glass-border);color:var(--text-color);background:#0003;border-radius:8px;outline:none;padding:.8rem 1rem;font-size:1rem;transition:border-color .3s}.login-input:focus{border-color:var(--accent-color)}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper .login-input{width:100%;padding-right:3rem}.password-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex;position:absolute;right:.5rem}.password-toggle:hover{color:var(--accent-color);background-color:#ffffff1a}.login-btn{background:var(--accent-color);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.8rem;font-size:1rem;font-weight:600;transition:background .3s,transform .1s}.login-btn:hover{background:#2e3192}.login-btn:active{transform:scale(.98)}.error-message{color:#ffb29e;margin-top:-1rem;font-size:.9rem}.holdings-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.9rem;display:inline-flex}.segmented-control{background:#ffffff0a;border:1px solid #a7c4ff29;border-radius:8px;align-items:center;gap:.2rem;min-height:38px;padding:.2rem;display:inline-flex}.segmented-control button{min-height:30px;color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:0 .7rem;font-size:.84rem;font-weight:900;transition:background .2s,color .2s,box-shadow .2s}.segmented-control button:hover,.segmented-control button:focus-visible{color:#f3f6f4;outline:none}.segmented-control button.active{color:#f3f6f4;background:#0071bc38;box-shadow:inset 0 0 0 1px #0071bc42}.secondary-action-btn{color:#f3f6f4;min-height:38px;font:inherit;cursor:pointer;background:#0071bc21;border:1px solid #0071bc5c;border-radius:8px;justify-content:center;align-items:center;padding:0 .9rem;font-size:.92rem;font-weight:900;transition:background .2s,border-color .2s,transform .2s;display:inline-flex}.secondary-action-btn:hover,.secondary-action-btn:focus-visible{background:#0071bc2e;border-color:#0071bca8;outline:none;transform:translateY(-1px)}.us-holdings-editor{background:#ffffff09;border:1px solid #a7c4ff24;border-radius:10px;gap:.85rem;margin:.25rem 0 1rem;padding:1rem;display:grid}.us-holdings-editor-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.us-holdings-editor-heading h3{color:#f7fbff;font-size:1.05rem;line-height:1.25}.us-holdings-editor-heading p{color:var(--text-muted);margin-top:.2rem;font-size:.88rem}.us-holding-form{grid-template-columns:minmax(95px,.55fr) minmax(120px,.85fr) minmax(110px,.65fr) minmax(120px,.7fr) minmax(130px,.8fr) auto;align-items:end;gap:.75rem;display:grid}.compact-input{gap:.35rem;min-width:0}.compact-input .login-input{width:100%;min-height:42px;padding:.65rem .75rem}.us-holding-submit{white-space:nowrap;min-height:42px;padding-inline:1rem}.us-holding-submit:disabled,.manual-us-holding-delete:disabled{cursor:not-allowed;opacity:.62}.us-holding-error{color:#ffaca8;background:#f8514914;border:1px solid #f8514952;border-radius:8px;padding:.7rem .8rem;font-size:.9rem;font-weight:700}.manual-us-holdings-list{flex-wrap:wrap;gap:.65rem;display:flex}.manual-us-holding-item,.manual-us-holding-empty{min-height:38px;color:var(--text-muted);background:#060c1461;border:1px solid #a7c4ff24;border-radius:8px;align-items:center;padding:.42rem .55rem;font-size:.88rem;font-weight:700;display:inline-flex}.manual-us-holding-item{gap:.55rem}.manual-us-holding-item strong{color:#bfd8d2;font-size:.95rem}.manual-us-holding-edit,.manual-us-holding-delete{border:1px solid var(--glass-border);color:var(--text-color);font:inherit;cursor:pointer;background:#ffffff0e;border-radius:7px;padding:.32rem .52rem;font-size:.82rem;font-weight:800;transition:background .2s,border-color .2s,color .2s}.manual-us-holding-edit:hover{background:#0071bc24;border-color:#0071bc7a}.manual-us-holding-delete:hover{color:#ffaca8;background:#f8514924;border-color:#f8514966}.logout-btn{border:1px solid var(--glass-border);color:var(--text-muted);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff0d;border-radius:8px;padding:.6rem 1.2rem;font-size:.9rem;font-weight:500;transition:all .3s}.logout-btn:hover{color:#ffb29e;background:#f8514926;border-color:#f8514966;transform:translateY(-2px)}.table-status{color:var(--text-muted);margin-bottom:.5rem;font-size:.9rem}.switch-control{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.65rem;font-size:.9rem;font-weight:600;transition:color .2s;display:inline-flex}.switch-control:hover{color:var(--accent-color)}.switch-control input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.switch-track{border:1px solid var(--glass-border);background:#ffffff14;border-radius:999px;flex:none;width:46px;height:26px;transition:background .2s,border-color .2s,box-shadow .2s;position:relative}.switch-thumb{background:#c9d1d9;border-radius:50%;width:18px;height:18px;transition:transform .2s,background .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 8px #00000059}.switch-control input:checked+.switch-track{background:#0071bc47;border-color:#0071bca6;box-shadow:0 0 0 3px #0071bc1a}.switch-control input:checked+.switch-track .switch-thumb{background:var(--accent-color);transform:translate(20px)}.switch-control input:focus-visible+.switch-track{outline:2px solid var(--accent-color);outline-offset:3px}.login-btn:disabled{opacity:.6;cursor:not-allowed;background:var(--text-muted);transform:none}@media (width<=768px){.us-holdings-editor{width:100%;min-width:0;overflow:hidden}.us-holdings-editor-heading{grid-template-columns:minmax(0,1fr) 36px;align-items:start;display:grid}.us-holdings-editor-heading>div{min-width:0}.us-holdings-editor-heading p{overflow-wrap:anywhere}.us-holdings-editor-heading .chart-close-btn{justify-self:end;width:36px;height:36px;min-height:36px;padding:0;display:inline-flex}.us-holding-form{grid-template-columns:minmax(0,1fr);width:100%;min-width:0;display:grid}.us-holding-form .compact-input,.us-holding-form .login-input,.us-holding-submit{width:100%;min-width:0}.manual-us-holdings-list{grid-template-columns:minmax(0,1fr);width:100%;display:grid}.manual-us-holding-item,.manual-us-holding-empty{width:100%;min-width:0}.manual-us-holding-item{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;display:grid}.manual-us-holding-item strong,.manual-us-holding-item span{min-width:0}.manual-us-holding-edit,.manual-us-holding-delete{white-space:nowrap;justify-content:center;align-items:center;min-height:34px;display:inline-flex}}.market-index-card{flex-direction:column;justify-content:flex-start;display:flex}.market-index-status{min-height:100px;color:var(--text-muted);justify-content:center;align-items:center;font-size:.92rem;font-weight:700;display:flex}.market-index-status.error{color:var(--loss-color)}.market-index-list{z-index:1;flex-direction:column;gap:.45rem;margin-top:.25rem;margin-bottom:.5rem;display:flex}.market-index-row{background:#ffffff05;border:1px solid #ffffff0a;border-radius:8px;justify-content:space-between;align-items:center;padding:.5rem .65rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.market-index-row:hover{background:#ffffff0e;border-color:#a7c4ff1f;transform:translateY(-1px)}.market-index-left{align-items:center;gap:.45rem;min-width:0;display:flex}.market-index-flag{flex-shrink:0;font-size:1.05rem;line-height:1}.market-index-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:800;overflow:hidden}.market-index-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.12rem;display:flex}.market-index-val{font-family:var(--font-mono,monospace);color:#fff;font-variant-numeric:tabular-nums;font-size:1.02rem;font-weight:700}.market-index-change-line{color:var(--text-muted);align-items:center;gap:.45rem;display:flex}.market-index-change-points{font-family:var(--font-mono,monospace);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem;font-weight:800}.market-index-pct{white-space:nowrap;font-size:.8rem;font-weight:800}.market-index-change-line.trend-up{color:var(--gain-color)}.market-index-change-line.trend-down{color:var(--loss-color)}.market-index-card .market-index-timestamp{color:var(--text-muted);border-top:1px solid #ffffff0d;margin-top:auto;padding-top:.5rem;font-size:.72rem}.scroll-to-top-btn{display:none}@media (width<=768px){.scroll-to-top-btn{width:38px;height:38px;color:var(--text-muted);-webkit-backdrop-filter:blur(8px);z-index:9999;cursor:pointer;opacity:.7;background:#0c16228c;border:1px solid #ffffff47;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .25s cubic-bezier(.4,0,.2,1);animation:.3s ease-out forwards fadeInBtn;display:flex;position:fixed;bottom:24px;right:20px;box-shadow:0 4px 16px #0000004d}.scroll-to-top-btn:hover{color:#fff;opacity:1;background:#0c1622bf;border-color:#ffffff7a;transform:translateY(-2px);box-shadow:0 6px 20px #0006}.scroll-to-top-btn:active{transform:scale(.9)translateY(0)}}@keyframes fadeInBtn{0%{opacity:0;transform:translateY(10px)}to{opacity:.7;transform:translateY(0)}}
