:root{--bg:#040b1b;--bg-deep:#020613;--surface:rgba(8,18,42,0.78);--surface-strong:rgba(11,28,62,0.92);--surface-soft:rgba(14,39,82,0.56);--text:#edf5ff;--muted:#8aa5d4;--line:rgba(112,169,255,0.16);--shadow:0 34px 90px rgba(0,0,0,0.34);--glow:0 0 0 1px rgba(112,169,255,0.08),0 0 42px rgba(61,117,255,0.18)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(circle at top left,rgba(59,130,246,.18),transparent 24%),radial-gradient(circle at 88% 12%,rgba(34,211,238,.12),transparent 18%),linear-gradient(135deg,rgba(29,78,216,.22),transparent 42%),linear-gradient(180deg,#07112a 0,var(--bg) 42%,var(--bg-deep) 100%);font-family:Space Grotesk,IBM Plex Sans,Segoe UI,sans-serif;position:relative;font-size:14px}body:before{background-image:linear-gradient(rgba(112,169,255,.06) 1px,transparent 0),linear-gradient(90deg,rgba(112,169,255,.06) 1px,transparent 0);background-size:48px 48px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 95%);mask-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 95%);opacity:.38}body:after,body:before{content:"";position:fixed;inset:0;pointer-events:none}body:after{background:radial-gradient(circle at center,transparent 54%,rgba(2,6,19,.62) 100%)}a{color:inherit;text-decoration:none}.page-shell{padding:40px 20px 56px}.page-auth-bar{max-width:1440px;margin:0 auto 14px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.auth-status-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(112,169,255,.16);background:rgba(8,18,42,.72);color:var(--muted);font-size:.78rem;font-family:IBM Plex Mono,SFMono-Regular,monospace}.auth-status-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.auth-status-dot.is-authenticated{background:#63f5d0;box-shadow:0 0 12px rgba(99,245,208,.6)}.auth-status-dot.is-guest{background:#f5d66e;box-shadow:0 0 12px rgba(245,214,110,.45)}.auth-action{min-width:108px}.auth-modal-card{width:min(520px,calc(100vw - 32px));display:grid;grid-gap:18px;gap:18px}.auth-form{display:grid;grid-gap:14px;gap:14px}.auth-form-label{color:var(--muted);font-size:.84rem}.page-grid{max-width:1440px;margin:0 auto;display:grid;grid-gap:20px;gap:20px}.fx-ticker-bar{padding:12px 18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;align-items:center;background:linear-gradient(90deg,rgba(9,24,55,.92),rgba(10,30,66,.82))}.fx-item{display:grid;grid-gap:2px;gap:2px;min-width:0}.fx-item span{color:var(--muted);font-size:.68rem;font-family:IBM Plex Mono,SFMono-Regular,monospace;letter-spacing:.05em;text-transform:uppercase}.fx-item strong{font-size:.94rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fx-item:last-child strong{font-size:.8rem;letter-spacing:0}.card{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:28px;box-shadow:var(--shadow),var(--glow)}.hero-card{padding:32px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);grid-gap:24px;gap:24px;position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(28,77,202,.36),rgba(5,12,29,.94)),var(--surface)}.hero-card:before{content:"";position:absolute;inset:auto -10% -35% 30%;height:260px;background:radial-gradient(circle,rgba(72,191,255,.28),transparent 68%);pointer-events:none}.eyebrow{margin:0 0 10px;color:#7cc7ff;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;font-family:IBM Plex Mono,SFMono-Regular,monospace}.hero-card h1,.panel h2{margin:0;font-size:clamp(2rem,2.4vw,3rem);line-height:1.02;letter-spacing:-.03em}.panel h2{font-size:1.5rem}.hero-copy{max-width:760px;margin:18px 0 0;color:var(--muted);font-size:.95rem;line-height:1.75}.hero-side{display:grid;grid-gap:18px;gap:18px;align-content:flex-start;padding:22px;border-radius:22px;background:linear-gradient(180deg,rgba(14,36,79,.76),rgba(5,15,34,.84));border:1px solid rgba(112,169,255,.16);box-shadow:inset 0 1px 0 rgba(180,220,255,.06)}.hero-label{display:block;color:var(--muted);font-size:.76rem;margin-bottom:8px;font-family:IBM Plex Mono,SFMono-Regular,monospace}.metrics-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.top-visual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:24px;gap:24px;align-items:stretch}.metric-card{padding:24px;position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(12,29,68,.92),rgba(6,16,38,.94))}.metric-card-expandable{display:grid;grid-gap:14px;gap:14px}.metric-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.metric-action{flex-shrink:0}.metric-card:after{content:"";position:absolute;inset:auto 18px 0 18px;height:3px;border-radius:999px}.accent-emerald:after{background:linear-gradient(90deg,#22d3ee,#60a5fa)}.accent-rose:after{background:linear-gradient(90deg,#fb7185,#f97316)}.accent-amber:after{background:linear-gradient(90deg,#f59e0b,#fde047)}.metric-helper,.metric-label{display:block}.metric-label{color:var(--muted);margin-bottom:18px;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.metric-value{display:block;font-size:1.55rem;line-height:1.1;margin-bottom:8px;letter-spacing:-.03em}.metric-helper{color:var(--muted);font-size:.82rem}.metric-detail-list{display:grid;grid-gap:10px;gap:10px;padding-top:6px;border-top:1px solid rgba(116,147,193,.16)}.metric-detail-row{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.86rem}.metric-detail-row span{color:var(--muted)}.metric-detail-row strong{font-size:.92rem;line-height:1.1;text-align:right}.dashboard-row{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);grid-gap:20px;gap:20px}.dashboard-row.wide{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}.dashboard-row-single{grid-template-columns:1fr}.panel{padding:24px;background:linear-gradient(180deg,rgba(9,23,53,.9),rgba(5,14,34,.94))}.panel-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}.panel-action{border:1px solid rgba(112,169,255,.2);background:rgba(255,255,255,.03);color:var(--text);padding:8px 12px;border-radius:999px;font:inherit;font-size:.74rem;cursor:pointer}.expand-card{border-top:1px solid var(--line);padding-top:12px}.expand-summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;color:var(--text);font-size:.82rem;font-family:IBM Plex Mono,SFMono-Regular,monospace;letter-spacing:.04em}.expand-summary::-webkit-details-marker{display:none}.expand-hint{color:var(--muted);font-size:.72rem}.trend-panel{padding-bottom:14px;min-height:100%;padding-left:14px;padding-right:14px}.trend-highlight{display:grid;grid-gap:6px;gap:6px;justify-items:start;margin-bottom:8px}.trend-highlight span{color:var(--muted);font-size:.72rem;font-family:IBM Plex Mono,SFMono-Regular,monospace;text-transform:uppercase;letter-spacing:.08em}.trend-highlight strong{font-size:.98rem;color:#8fe3ff}.trend-chart-wrap{display:grid;margin-top:4px;margin-left:-2px;margin-right:-2px;position:relative}.trend-empty-state{min-height:248px;display:grid;align-content:center;grid-gap:10px;gap:10px;padding:18px 10px 8px;color:var(--muted)}.trend-empty-state strong{color:var(--text);font-size:1rem}.trend-empty-state p{max-width:28ch;line-height:1.6;font-size:.9rem}.trend-chart{width:100%;overflow:visible;display:block;height:100%}.trend-chart-wrap-compact{margin-top:0}.trend-chart-compact{height:280px;min-height:280px}.trend-chart-modal{height:420px;min-height:420px}.trend-grid-line{stroke:rgba(125,169,255,.16);stroke-width:.4;stroke-dasharray:2 2}.trend-dot{fill:#9de6ff;filter:drop-shadow(0 0 4px rgba(104,201,255,.45))}.trend-dot-interactive{cursor:pointer}.trend-value-label{fill:#bfdcff;font-size:3px;font-family:IBM Plex Mono,SFMono-Regular,monospace}.trend-axis-label{fill:#d7e7ff;font-size:4.6px}.trend-axis-label,.trend-axis-value{font-weight:600;font-family:IBM Plex Mono,SFMono-Regular,monospace}.trend-axis-value{fill:#e6f0ff;font-size:5px}.trend-marker-label{fill:#beddff;font-size:2.4px;font-family:IBM Plex Mono,SFMono-Regular,monospace}.marker-buy{fill:#63f5d0}.marker-sell{fill:#ff8f8f}.marker-rebalance{fill:#facc15}.marker-observe{fill:#7aa2ff}.ai-panel,.donut-panel{min-height:100%}.daily-advice-panel{display:grid;grid-gap:10px;gap:10px}.daily-advice-actions{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}.daily-advice-error{color:#ffb4b4;font-size:.8rem}.daily-advice-actions-left .panel-action{color:#d7e6ff}.ai-panel-refined{display:grid;grid-gap:16px;gap:16px}.ai-panel-header{align-items:flex-start}.ai-panel-heading{display:grid;grid-gap:6px;gap:6px;justify-items:start;text-align:left}.ai-compact-title{margin:0;color:var(--muted);font-size:.8rem;line-height:1.7}.ai-preview-roomy{gap:12px}.ai-summary-roomy{margin:0;font-size:.88rem;line-height:1.9}.donut-wrap{position:relative;width:min(190px,100%);margin:0 auto}.donut-chart{width:100%;transform:rotate(-90deg);overflow:visible}.donut-track{fill:transparent;stroke:rgba(131,169,255,.14);stroke-width:4.4}.donut-segment{transform-origin:center;filter:drop-shadow(0 0 10px rgba(115,170,255,.2))}.donut-center{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;grid-gap:6px;gap:6px;text-align:center}.donut-center span{color:var(--muted);font-size:.68rem;font-family:IBM Plex Mono,SFMono-Regular,monospace;text-transform:uppercase;letter-spacing:.08em}.donut-center strong{font-size:1rem}.donut-summary-layout{display:grid;justify-items:center;grid-gap:14px;gap:14px}.donut-inline-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px 14px;gap:10px 14px;width:100%}.donut-inline-item{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:.72rem;white-space:nowrap}.donut-inline-text{line-height:1}.legend-dot{width:9px;height:9px;border-radius:999px;display:inline-block}.ai-list,.allocation-stack,.status-list,.transaction-list{display:grid;grid-gap:16px;gap:16px}.workbench-row{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-dropzone{display:grid;grid-gap:8px;gap:8px;padding:20px;border:1px dashed rgba(112,169,255,.22);border-radius:20px;background:rgba(255,255,255,.02);cursor:pointer}.upload-dropzone input{display:none}.upload-dropzone strong{font-size:.96rem}.upload-dropzone span{color:var(--muted);font-size:.8rem}.workbench-error{margin-top:14px}.stock-analysis-panel{display:grid;grid-gap:16px;gap:16px}.stock-analysis-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px}.stock-analysis-input{width:100%;border-radius:16px;border:1px solid rgba(112,169,255,.22);background:rgba(255,255,255,.03);color:var(--foreground);padding:14px 16px;font:inherit}.stock-analysis-input::placeholder{color:var(--muted)}.stock-analysis-submit[disabled]{opacity:.7;cursor:wait}.stock-analysis-result{display:grid;grid-gap:14px;gap:14px}.symbol-detail-tabs{display:flex;flex-wrap:wrap;gap:8px}.stock-analysis-tech{display:grid;grid-gap:8px;gap:8px}.stock-analysis-tech-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px 14px;gap:8px 14px;color:var(--muted);font-size:.84rem}.stock-analysis-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.stock-analysis-summary-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.stock-analysis-action{font-size:.8rem;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.08)}.action-buy{color:#63f5d0;background:rgba(31,157,139,.12)}.action-hold{color:#beddff;background:rgba(58,112,255,.12)}.action-reduce{color:#ffb4b4;background:rgba(239,68,68,.12)}.action-watch{color:#f5d66e;background:rgba(234,179,8,.12)}.stock-analysis-headlines{display:grid;grid-gap:12px;gap:12px}.financial-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.financial-card{display:grid;grid-gap:12px;gap:12px;padding:16px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(112,169,255,.12)}.financial-metric-list{display:grid;grid-gap:8px;gap:8px;color:var(--muted);font-size:.84rem}.inline-link{color:#beddff;text-decoration:none}.inline-link:hover{text-decoration:underline}.advice-modal-card{width:min(1040px,calc(100vw - 40px));max-height:min(82vh,860px);display:grid;grid-gap:18px;gap:18px}.advice-tab-bar{display:flex;flex-wrap:wrap;gap:8px}.advice-modal-body{overflow-y:auto;padding-right:4px}.advice-modal-section{display:grid;grid-gap:14px;gap:14px}.market-snapshot-panel{display:grid}.snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.snapshot-column{display:grid;grid-gap:14px;gap:14px}.snapshot-list{display:grid;grid-gap:12px;gap:12px}.snapshot-item{display:grid;grid-gap:8px;gap:8px;padding:14px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(112,169,255,.12)}.snapshot-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.stock-analysis-history{display:grid;grid-gap:12px;gap:12px}.stock-history-item{width:100%;text-align:left;color:inherit;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.stock-history-item:hover{transform:translateY(-2px);border-color:rgba(112,169,255,.26);background:rgba(255,255,255,.05)}.stock-history-item.is-active{border-color:rgba(124,199,255,.44);background:rgba(22,62,132,.34);box-shadow:0 0 0 1px rgba(124,199,255,.08)}.compact-top-bar{justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--line);border-radius:18px;background:rgba(8,18,42,.78);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.compact-brand{display:inline-flex;align-items:center;gap:10px;min-width:0;flex-wrap:nowrap}.compact-brand strong{font-size:.92rem;white-space:nowrap}.compact-brand span:last-child{color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-brand-mark{width:12px;height:12px;border-radius:999px;background:linear-gradient(135deg,#63f5d0,#65a7ff);box-shadow:0 0 12px rgba(99,245,208,.45);flex-shrink:0}.compact-top-meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.compact-status-chip{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-visibility-action{white-space:nowrap}.portfolio-ai-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start}.portfolio-workbench{display:grid;grid-gap:18px;gap:18px;min-height:100%}.portfolio-workbench-header{margin-bottom:0}.portfolio-workbench-actions{display:inline-flex;align-items:center;gap:10px}.compact-tabs{gap:6px}.compact-tabs .treemap-tab{min-width:unset}.portfolio-workbench-body{display:grid;grid-gap:18px;gap:18px}.portfolio-metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.portfolio-mini-metric{display:grid;grid-gap:6px;gap:6px;padding:14px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(112,169,255,.12)}.portfolio-mini-metric span{color:var(--muted);font-size:.72rem;font-family:IBM Plex Mono,SFMono-Regular,monospace}.portfolio-mini-metric strong{font-size:1rem;line-height:1.15}.portfolio-mini-metric em{color:var(--muted);font-size:.78rem;font-style:normal}.portfolio-trend-frame{display:grid;grid-gap:6px;gap:6px;padding:14px 12px 8px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(112,169,255,.12)}.portfolio-trend-svg{width:100%;height:220px}.portfolio-mix-body{grid-template-columns:180px 1fr;align-items:center}.portfolio-inline-donut{margin:0 auto}.portfolio-inline-legend{align-content:center}.dashboard-footer-strip{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:.78rem;padding-bottom:8px}.footer-logout-link{margin-left:8px;background:none;border:0;padding:0;cursor:pointer}.daily-advice-top-actions{display:inline-flex;align-items:center;gap:10px}.import-preview{margin-top:16px;display:grid;grid-gap:14px;gap:14px}.import-preview-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.import-preview-head span,.import-warning,.manual-trade-empty{color:var(--muted);font-size:.8rem}.import-holding-list,.manual-trade-list{display:grid;grid-gap:10px;gap:10px}.import-holding-item,.manual-trade-item{display:flex;justify-content:space-between;gap:14px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(112,169,255,.08)}.import-holding-item div,.manual-trade-item div{display:grid;grid-gap:4px;gap:4px}.import-holding-item span,.manual-trade-item p,.manual-trade-item span,.transaction-detail-line{color:var(--muted);font-size:.78rem;margin:0}.transaction-detail-line{display:block;margin-top:6px}.import-holding-meta{justify-items:end}.import-text-preview summary{cursor:pointer;color:var(--text);font-size:.82rem}.import-text-preview pre{margin:10px 0 0;max-height:220px;overflow:auto;padding:12px;border-radius:14px;background:rgba(0,0,0,.24);color:#c9dbff;font-size:.72rem;line-height:1.5;white-space:pre-wrap}.manual-trade-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.manual-trade-form input,.manual-trade-form select{width:100%;border:1px solid rgba(112,169,255,.12);background:rgba(255,255,255,.03);color:var(--text);border-radius:14px;padding:10px 12px;font:inherit}.allocation-row{display:grid;grid-gap:8px;gap:8px}.modal-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:rgba(2,6,19,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-card{width:min(920px,100%);max-height:88vh;overflow:auto;padding:24px;background:linear-gradient(180deg,rgba(9,23,53,.98),rgba(5,14,34,.98))}.trend-modal-layout{display:grid;grid-template-columns:1fr;grid-gap:24px;gap:24px}.trend-modal-chart-block{display:grid;grid-gap:16px;gap:16px}.trend-detail-list{display:grid;grid-gap:10px;gap:10px}.trend-detail-item{border:1px solid rgba(112,169,255,.12);border-radius:16px;background:rgba(255,255,255,.02);padding:12px 14px}.trend-detail-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.trend-detail-summary::-webkit-details-marker{display:none}.trend-detail-summary-main{display:inline-flex;align-items:center;gap:10px;font-size:.82rem}.trend-detail-summary-main strong{font-size:.76rem;color:#c2dcff}.trend-detail-summary-value{color:var(--muted);font-size:.78rem;font-family:IBM Plex Mono,SFMono-Regular,monospace}.trend-detail-body{display:grid;grid-gap:12px;gap:12px;padding-top:12px}.trend-detail-note{margin:0;color:var(--muted);font-size:.8rem;line-height:1.6}.trend-detail-movers{display:grid;grid-gap:8px;gap:8px}.trend-detail-mover{list-style:none;display:grid;grid-template-columns:36px minmax(0,1fr) 80px 110px;grid-gap:10px;gap:10px;align-items:center;font-size:.78rem;cursor:pointer}.trend-detail-mover::-webkit-details-marker{display:none}.trend-detail-category,.trend-detail-rank{color:var(--muted)}.trend-detail-name{color:var(--text)}.trend-detail-change{text-align:right;font-family:IBM Plex Mono,SFMono-Regular,monospace}.trend-subdetail-item{border:1px solid rgba(112,169,255,.08);border-radius:12px;background:rgba(255,255,255,.015);padding:10px 12px}.trend-subdetail-static{padding-top:12px;padding-bottom:12px}.trend-subdetail-body{display:grid;grid-gap:8px;gap:8px;padding-top:10px}.trend-subdetail-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 110px;grid-gap:10px;gap:10px;align-items:center;font-size:.76rem}.trend-subdetail-type{color:var(--muted)}.trend-detail-mover-static{cursor:default}.trend-chart-modal-wrap{position:relative}.trend-tooltip{position:absolute;transform:translate(-50%,-110%);min-width:150px;padding:10px 12px;border-radius:12px;background:rgba(8,18,42,.94);border:1px solid rgba(112,169,255,.16);box-shadow:var(--shadow);display:grid;grid-gap:4px;gap:4px;pointer-events:none;z-index:2}.trend-tooltip strong{font-size:.78rem}.trend-tooltip span{color:var(--muted);font-size:.72rem;line-height:1.4}.trend-tooltip-modal{min-width:170px}.allocation-modal-list{display:grid;grid-gap:16px;gap:16px}.allocation-modal-row{display:grid;grid-gap:8px;gap:8px}.allocation-modal-header{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.85rem}.allocation-modal-name{display:inline-flex;align-items:center;gap:8px}.allocation-modal-bar{height:18px;border-radius:999px;overflow:hidden;background:rgba(224,236,255,.08);border:1px solid rgba(112,169,255,.08)}.allocation-modal-fill{height:100%;border-radius:999px;box-shadow:0 0 18px rgba(110,161,255,.22)}.allocation-modal-value{color:var(--muted);font-size:.78rem}.allocation-label-row{display:flex;justify-content:space-between;gap:12px;font-size:.84rem}.allocation-bar{height:12px;overflow:hidden;border-radius:999px;background:rgba(224,236,255,.08);border:1px solid rgba(112,169,255,.08)}.allocation-fill{height:100%;border-radius:999px;box-shadow:0 0 18px rgba(110,161,255,.22)}.allocation-value{color:var(--muted);font-size:.76rem}.heatmap-section{display:grid;grid-template-columns:1fr;grid-gap:20px;gap:20px}.heatmap-error{border:1px solid rgba(239,68,68,.28);background:rgba(80,15,20,.32);border-radius:18px;padding:18px;display:grid;grid-gap:8px;gap:8px}.heatmap-error strong{color:#ffd4d4;font-size:.92rem}.heatmap-error p{margin:0;color:rgba(255,225,225,.82);font-size:.82rem;line-height:1.55}.market-error-inline{margin-top:6px}.heatmap-tooltip{position:fixed;z-index:30;pointer-events:none;min-width:160px;display:grid;grid-gap:4px;gap:4px;padding:10px 12px;border-radius:14px;background:rgba(5,14,34,.94);border:1px solid rgba(112,169,255,.22);box-shadow:0 12px 36px rgba(0,0,0,.38);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.heatmap-tooltip strong{font-size:.84rem;color:var(--text)}.heatmap-tooltip span{color:var(--muted);font-size:.72rem}.marketmap-card{display:grid;grid-gap:14px;gap:14px}.treemap-header-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.treemap-header-actions{display:inline-flex;align-items:center;gap:10px}.treemap-tabs{display:inline-flex;gap:8px}.treemap-tab{border:1px solid rgba(112,169,255,.12);background:rgba(255,255,255,.02);color:var(--muted);border-radius:999px;padding:8px 12px;font:inherit;font-size:.74rem;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease,border-color .18s ease}.treemap-tab:hover{transform:translateY(-1px)}.treemap-tab.is-active,.treemap-tab:hover{border-color:rgba(112,169,255,.24);color:var(--text)}.treemap-tab.is-active{background:rgba(59,130,246,.18)}.heatmap-market-label{margin:0;color:var(--muted);font-size:.72rem;font-family:IBM Plex Mono,SFMono-Regular,monospace;text-transform:uppercase;letter-spacing:.08em}.marketmap-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:44px;grid-gap:8px;gap:8px}.market-sector{border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.06);display:grid;grid-template-rows:auto 1fr;min-height:120px}.market-sector-header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 10px;background:rgba(6,14,32,.44);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:rgba(238,245,255,.9);font-size:.68rem;font-weight:600;font-family:IBM Plex Mono,SFMono-Regular,monospace;border-bottom:1px solid rgba(255,255,255,.05)}.market-symbol-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:34px;grid-gap:3px;gap:3px;padding:4px}.market-symbol-tile{position:relative;border-radius:6px;border:1px solid rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}.market-symbol-tile:hover{transform:scale(1.02);filter:brightness(1.04);z-index:2}.market-symbol-tile.is-held{border:2px solid rgba(255,255,190,.95);box-shadow:0 0 0 1px rgba(255,255,190,.35),inset 0 0 0 1px rgba(255,255,190,.15)}.market-symbol-tile.is-held span,.market-symbol-tile.is-held strong{color:#ffffff;font-weight:800}.market-symbol-tile.is-not-held span,.market-symbol-tile.is-not-held strong{color:rgba(228,236,245,.86);font-weight:500}.market-symbol-content{display:grid;grid-gap:3px;gap:3px;justify-items:center;text-align:center;padding:6px;width:100%}.market-symbol-content strong{font-size:.82rem;line-height:1.05;letter-spacing:-.02em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-symbol-change{font-size:.7rem;line-height:1;white-space:nowrap}.market-symbol-tile.is-xl .market-symbol-content{gap:5px}.market-symbol-tile.is-xl .market-symbol-content strong{font-size:1.28rem}.market-symbol-tile.is-xl .market-symbol-change{font-size:.94rem}.market-symbol-tile.is-lg .market-symbol-content strong{font-size:1rem}.market-symbol-tile.is-lg .market-symbol-change,.market-symbol-tile.is-md .market-symbol-content strong{font-size:.78rem}.market-symbol-tile.is-md .market-symbol-change{font-size:.66rem}.market-symbol-tile.is-sm .market-symbol-content{gap:0;padding:4px}.market-symbol-tile.is-sm .market-symbol-content strong{font-size:.62rem}.market-symbol-tile.is-sm .market-symbol-change{display:none}.heat-up-strong{background:rgba(21,167,95,.92)}.heat-up{background:rgba(34,146,89,.8)}.heat-flat{background:rgba(148,163,184,.42)}.heat-down{background:rgba(187,68,68,.8)}.heat-down-strong{background:rgba(216,72,72,.92)}.treemap-held-badge{position:absolute;top:6px;right:6px;font-size:.62rem;padding:2px 5px;border-radius:999px;background:rgba(255,244,163,.18);color:#fff4a3;border:1px solid rgba(255,244,163,.3)}.treemap-manage-panel{border:1px solid rgba(112,169,255,.08);border-radius:18px;background:rgba(255,255,255,.02);padding:14px;display:grid;grid-gap:12px;gap:12px}.treemap-manage-title{margin:0;font-size:.82rem;color:var(--text)}.treemap-manage-chips{display:flex;flex-wrap:wrap;gap:8px}.treemap-chip{border:1px solid rgba(112,169,255,.12);background:rgba(255,255,255,.02);color:var(--muted);border-radius:999px;padding:8px 10px;font:inherit;font-size:.74rem;cursor:pointer}.treemap-chip.is-active{color:var(--text);background:rgba(59,130,246,.18);border-color:rgba(112,169,255,.24)}.treemap-manage-note{margin:0;color:var(--muted);font-size:.74rem}.status-item,.transaction-item{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.status-item:last-child,.transaction-item:last-child{padding-bottom:0;border-bottom:0}.status-item p,.transaction-item p{margin:6px 0 0;color:var(--muted);font-size:.82rem;line-height:1.5}.holding-tabs{display:inline-flex;gap:8px;margin-bottom:16px}.ai-badge,.status-badge{align-self:flex-start;padding:8px 12px;border-radius:999px;font-size:.74rem;font-weight:700;font-family:IBM Plex Mono,SFMono-Regular,monospace;letter-spacing:.04em}.status-ready{background:rgba(34,211,238,.16);color:#9be7ff}.status-planned{background:rgba(245,158,11,.18);color:#ffd27d}.status-blocked{background:rgba(239,68,68,.16);color:#ffb1b1}.ai-buy,.ai-hold,.ai-rebalance,.ai-watch{background:rgba(96,165,250,.14);color:#b4d8ff}.ai-summary{margin:0 0 18px;color:var(--text);font-size:.84rem;line-height:1.75}.ai-preview{display:grid;grid-gap:10px;gap:10px}.ai-preview-bullet{margin:0;padding:10px 12px;border-radius:14px;background:rgba(79,127,214,.12);color:#d7e6ff;font-size:.79rem;line-height:1.65}.ai-item{display:grid;grid-template-columns:12px minmax(0,1fr);grid-gap:12px;gap:12px;align-items:start;padding:14px 0;border-top:1px solid var(--line)}.ai-item:first-child{border-top:0;padding-top:0}.ai-item p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.65}.ai-item-dot{width:10px;height:10px;margin-top:6px;border-radius:999px;background:linear-gradient(180deg,#7dd3fc,#60a5fa);box-shadow:0 0 12px rgba(96,165,250,.6)}.table-wrap{overflow-x:auto}.holdings-table{width:100%;border-collapse:collapse;min-width:720px}.holdings-table td,.holdings-table th{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line)}.holdings-table th{color:var(--muted);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,SFMono-Regular,monospace}.asset-cell{display:grid;grid-gap:4px;gap:4px}.asset-cell span,.transaction-meta span{color:var(--muted);font-size:.76rem}.value-positive{color:#7fd7ff;font-weight:700}.value-negative{color:#ff9d9d;font-weight:700}.holdings-table tbody tr{transition:background .16s ease}.holdings-table tbody tr:hover{background:rgba(112,169,255,.05)}.transaction-meta{display:grid;justify-items:end;grid-gap:6px;gap:6px}@media (max-width:1360px){.top-visual-grid{grid-template-columns:1fr}}@media (max-width:1080px){.dashboard-row,.dashboard-row.wide,.fx-ticker-bar,.heatmap-section,.hero-card,.metrics-grid,.portfolio-ai-grid,.top-visual-grid,.workbench-row{grid-template-columns:1fr}.marketmap-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:40px}.market-symbol-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.manual-trade-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.page-shell{padding:18px 12px 36px}.page-auth-bar{margin-bottom:10px}.compact-top-bar{flex-wrap:nowrap;gap:8px;padding:10px 12px}.compact-brand{min-width:0;gap:8px}.compact-brand strong{font-size:.84rem}.compact-brand span:last-child{font-size:.7rem}.compact-top-meta{gap:6px}.compact-status-chip{max-width:34vw;padding:6px 8px;font-size:.68rem}.compact-visibility-action{padding:7px 10px;font-size:.68rem}.card,.hero-side{border-radius:20px}.hero-card,.metric-card,.panel{padding:18px}.hero-card{gap:16px}.hero-card h1{font-size:1.65rem;line-height:1.08}.hero-side{padding:16px;gap:14px}.panel-header{margin-bottom:16px;gap:12px;flex-direction:column;align-items:stretch}.panel-header .panel-action{align-self:flex-start}.fx-ticker-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.fx-item{padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(112,169,255,.08)}.fx-item:last-child{grid-column:1/-1}.metrics-grid{grid-template-columns:1fr;gap:12px}.metric-value{font-size:1.42rem}.metric-card-top{flex-direction:column}.metric-action{align-self:flex-start}.trend-chart{height:220px;min-height:220px}.trend-highlight strong{font-size:.92rem}.donut-inline-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portfolio-workbench{gap:14px}.portfolio-workbench-actions{width:100%;justify-content:space-between}.portfolio-metric-strip,.portfolio-mix-body{grid-template-columns:1fr}.portfolio-trend-svg{height:184px}.donut-inline-item{justify-content:flex-start;white-space:normal}.advice-tab-bar,.holding-tabs,.treemap-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:none}.advice-tab-bar::-webkit-scrollbar,.holding-tabs::-webkit-scrollbar,.treemap-tabs::-webkit-scrollbar{display:none}.treemap-tab{flex:0 0 auto}.table-wrap{overflow:visible}.holdings-table{min-width:0;border-collapse:separate;border-spacing:0}.holdings-table thead{display:none}.holdings-table tbody{display:grid;grid-gap:12px;gap:12px}.holdings-table tbody tr{display:grid;grid-gap:10px;gap:10px;padding:14px;border-radius:16px;border:1px solid rgba(112,169,255,.1)}.holdings-table tbody tr,.holdings-table tbody tr:hover{background:rgba(255,255,255,.03)}.holdings-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0;border-bottom:0;font-size:.84rem;text-align:right}.holdings-table td:before{content:attr(data-label);color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;font-family:IBM Plex Mono,SFMono-Regular,monospace;text-align:left}.holdings-table td:first-child{display:grid;grid-gap:6px;gap:6px;text-align:left}.holdings-table td:first-child:before{margin-bottom:2px}.asset-cell span{font-size:.72rem;line-height:1.45}.trend-detail-mover{grid-template-columns:32px minmax(0,1fr)}.trend-detail-category,.trend-detail-change{grid-column:2;text-align:left}.trend-subdetail-row{grid-template-columns:minmax(0,1fr)}.stock-analysis-form{grid-template-columns:1fr}.stock-analysis-summary{align-items:flex-start;flex-direction:column}.stock-analysis-summary-actions{justify-content:flex-start}.financial-card-grid,.stock-analysis-tech-grid{grid-template-columns:1fr}.daily-advice-actions{align-items:stretch}.daily-advice-actions .panel-action{width:100%}.daily-advice-top-actions{width:100%;justify-content:space-between}.snapshot-grid{grid-template-columns:1fr}.snapshot-item-top{flex-direction:column}.advice-modal-card{width:min(100vw - 12px,1040px);max-height:92vh;padding:16px}.trend-subdetail-row .trend-detail-change,.trend-subdetail-type{text-align:left}.manual-trade-form{grid-template-columns:1fr}.status-item,.transaction-item{grid-template-columns:1fr;display:grid;grid-gap:10px;gap:10px}.transaction-meta{justify-items:start}.dashboard-footer-strip{justify-content:space-between;flex-wrap:wrap}}