@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f0f12;--bg-elevated:#16161c;--surface:#1a1a22;--surface-subtle:#14141a;--surface-input:#1e1e28;--surface-hover:#22222c;--border:#2a2a35;--border-subtle:#1f1f28;--border-strong:#3a3a48;--text:#f0f0f5;--text-secondary:#b4b4c0;--text-muted:#7a7a8c;--text-faint:#5a5a6a;--accent:#6c5ce7;--accent-hover:#7d6ff0;--accent-soft:#2d2a5e;--accent-text:#a29bfe;--accent-muted:#4a4580;--on-accent:#fff;--icon:var(--text-muted);--icon-hover:var(--text-secondary);--icon-active:var(--accent-text);--btn-primary-bg:var(--accent);--btn-primary-bg-hover:var(--accent-hover);--btn-primary-text:var(--on-accent);--btn-ghost-bg:transparent;--btn-ghost-bg-hover:var(--surface-hover);--btn-ghost-border:var(--border-strong);--btn-ghost-text:var(--text-muted);--gain:#22c55e;--gain-soft:#1a3a28;--loss:#ef4444;--loss-soft:#3a1a1a;--info:#60a5fa;--warn:#f39c12;--warn-soft:#3a2a0a;--chart-port:#6c5ce7;--chart-cost:#fbbf24;--chart-benchmark:#e17055;--chart-set:#00b894;--overlay:#000000b8;--shadow-sm:0 1px 3px #00000040;--shadow-md:0 4px 24px #00000059;--radius-sm:8px;--radius:12px;--radius-lg:14px;--font:"Inter", system-ui, -apple-system, sans-serif}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4efe7;--bg-elevated:#fcf8f1;--surface:#fcf8f1;--surface-subtle:#eee6da;--surface-input:#fffdf9;--surface-hover:#ebe2d7;--surface-inset:#e7decf;--border:#d8cdbd;--border-subtle:#e4dbce;--border-strong:#beaf9b;--text:#3b352f;--text-secondary:#575046;--text-muted:#756c61;--text-faint:#968c80;--accent:#5a4ad6;--accent-hover:#4d3dcb;--accent-soft:#e9e3f7;--accent-text:#4f3fc0;--accent-muted:#b6abe7;--on-accent:#fff;--icon:#7a7268;--icon-hover:#5c554c;--icon-active:#4f3fc0;--btn-primary-bg:var(--accent);--btn-primary-bg-hover:var(--accent-hover);--btn-primary-text:var(--on-accent);--btn-ghost-bg:transparent;--btn-ghost-bg-hover:var(--surface-hover);--btn-ghost-border:var(--border-strong);--btn-ghost-text:var(--text-muted);--gain:#15803d;--gain-soft:#e4f3e8;--loss:#b91c1c;--loss-soft:#fce8e8;--info:#1d4ed8;--warn:#b45309;--warn-soft:#faf0e4;--chart-port:#5b4cdb;--chart-cost:#b45309;--chart-benchmark:#c2410c;--chart-set:#047857;--overlay:#3d383266;--shadow-sm:0 1px 2px #3d30200f;--shadow-md:0 4px 20px #3d302014}html{font-family:var(--font)}body,#root{background:var(--bg);color:var(--text)}.theme-toggle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;display:inline-flex;overflow:hidden}.theme-toggle button{color:var(--text-muted);font-size:12px;font-weight:500;font-family:var(--font);white-space:nowrap;cursor:pointer;background:0 0;border:none;padding:7px 12px;line-height:1.2;transition:background .15s,color .15s}.theme-toggle button:hover{color:var(--text);background:var(--surface-hover)}.theme-toggle button.active{background:var(--accent-soft);color:var(--accent-text)}.theme-toggle.dash-settings-theme-toggle{width:100%}.theme-toggle.dash-settings-theme-toggle button{flex:1;padding:10px 16px}.dash-shell{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font)}.dash-header h1{letter-spacing:-.02em;margin:0 0 2px;font-size:18px;font-weight:600}.dash-header-sub{color:var(--text-muted);margin:0;font-size:13px}.dash-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:20px;display:grid}.dash-kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px}.dash-kpi-label{color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:500}.dash-kpi-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--text);font-size:28px;font-weight:700;line-height:1.15}.dash-kpi-value--accent{color:var(--accent-text)}.dash-kpi-value--gain{color:var(--gain)}.dash-kpi-value--loss{color:var(--loss)}.dash-kpi-value--info{color:var(--info)}.dash-kpi-sub{color:var(--text-faint);margin-top:6px;font-size:12px}.dash-overview-charts{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:stretch;gap:16px;margin-bottom:16px;display:grid}.dash-overview-charts .dash-chart-card,.dash-overview-charts .dash-donut{box-sizing:border-box;height:100%;margin-bottom:0}.dash-overview-charts .dash-donut{flex-direction:column;justify-content:center}@media (width<=900px){.dash-overview-charts{grid-template-columns:1fr}}.dash-tab-btn{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:400;font-family:var(--font);background:0 0;padding:7px 18px;transition:background .15s,color .15s,border-color .15s}.dash-tab-btn:hover{color:var(--text);border-color:var(--border-strong)}.dash-tab-btn--active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:500}.dash-segment{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.dash-segment-btn{cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font);color:var(--text-muted);background:0 0;border:none;padding:7px 16px;transition:background .15s,color .15s}.dash-segment-btn--active{background:var(--accent);color:var(--on-accent)}.dash-segment-btn--soft-active{background:var(--accent-soft);color:var(--accent-text)}.dash-select{background:var(--surface);color:var(--text);cursor:pointer;min-width:140px;font-size:13px;font-family:var(--font);border:none;flex:1;padding:7px 12px}.dash-icon-btn{border:none;border-left:1px solid var(--border);color:var(--icon);cursor:pointer;font-size:12px;font-weight:500;font-family:var(--font);white-space:nowrap;background:0 0;padding:7px 10px;line-height:1.2}.dash-icon-btn:hover{color:var(--icon-hover)}.dash-icon-btn--accent{background:var(--accent-soft);color:var(--accent-text);font-size:16px}.dash-date-input-wrap{box-sizing:border-box}.dash-date-input{box-sizing:border-box;align-items:stretch;gap:8px;display:flex}.dash-date-input-text{flex:1;min-width:0}.dash-date-input-clear{border:1px solid var(--border-strong);background:var(--surface);width:36px;height:100%;min-height:42px;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-shrink:0;padding:0;font-size:20px;line-height:1;transition:background .15s,border-color .15s,color .15s}.dash-date-input-clear:hover{background:var(--surface-hover);border-color:var(--loss);color:var(--loss)}.dash-date-input-picker{background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;width:44px;font-family:var(--font);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s;display:flex;position:relative;overflow:hidden}.dash-date-input-native-overlay{opacity:0;cursor:pointer;border:none;width:100%;height:100%;margin:0;padding:0;font-size:16px;position:absolute;inset:0}.dash-date-input-picker:hover{background:var(--surface-hover);border-color:var(--accent-muted)}.dash-date-input-picker-icon{pointer-events:none;-webkit-user-select:none;user-select:none;font-size:18px;line-height:1}.dash-date-input-error{color:var(--loss);margin:6px 0 0;font-size:12px;line-height:1.4}.dash-action-btn{cursor:pointer;font-size:12px;font-family:var(--font);border:1px solid var(--accent-text);color:var(--accent-text);background:0 0;border-radius:6px;margin-left:6px;padding:4px 10px}.dash-action-btn--danger{border-color:var(--loss);color:var(--loss)}.dash-journal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:10px;padding:16px 18px}.dash-journal-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.dash-tag{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:2px 9px;font-size:11px}.dash-ticker-chip{background:var(--surface-subtle);color:var(--text-muted);border-radius:5px;padding:2px 7px;font-size:11px}.dash-ticker-chip--link{cursor:pointer;font:inherit;color:var(--accent-text);background:var(--accent-soft);border:none}.dash-ticker-chip--link:hover{filter:brightness(1.08)}.dash-currency-chip{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.dash-currency-chip--usd{background:var(--accent-soft);color:var(--accent-text)}.dash-currency-chip--thb{background:var(--gain-soft);color:var(--gain)}.dash-currency-chip--other{background:var(--surface-subtle);color:var(--text-secondary)}.dash-empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.dash-chart-segment-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:12px;font-family:var(--font);background:0 0;border-radius:6px;padding:5px 12px;transition:background .15s,color .15s,border-color .15s}.dash-chart-segment-btn--active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.dash-settings-section-title{color:var(--accent-text);margin-bottom:12px;font-size:13px;font-weight:600}.dash-settings-divider{border-top:1px solid var(--border);margin-top:4px;padding-top:20px}.dash-link{color:var(--accent-text);cursor:pointer}.dash-text-muted{color:var(--text-muted)}.dash-text-faint{color:var(--text-faint)}.dash-text-gain{color:var(--gain)}.dash-text-loss{color:var(--loss)}.dash-text-accent{color:var(--accent-text)}.modal-head{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-title{color:var(--text);margin:0;font-size:16px;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.modal-close:hover{color:var(--text)}.field-wrap{margin-bottom:12px}.field-label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font-size:11px;display:block}.dash-overview-charts .dash-chart-svg{height:320px}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:20px}.dash-card-title{color:var(--text);letter-spacing:-.01em;margin:0 0 4px;font-size:15px;font-weight:600}.dash-card-sub{color:var(--text-muted);margin:0 0 14px;font-size:12px}.dash-inset{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}.dash-inset--gain{background:var(--gain-soft);border-color:color-mix(in srgb, var(--gain) 35%, var(--border))}.dash-inset--loss{background:var(--loss-soft);border-color:color-mix(in srgb, var(--loss) 35%, var(--border))}.dash-inset--accent{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 25%, var(--border))}.dash-inset--warn{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 35%, var(--border))}.news-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);box-shadow:var(--shadow-sm);margin-bottom:10px;padding:12px 14px;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:block}.news-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.news-card-title{color:var(--text);margin:0 0 6px;font-size:13px;font-weight:500;line-height:1.45}.news-card-meta{color:var(--text-muted);margin:0;font-size:11px}.dash-section-title{color:var(--accent-text);border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:6px;font-size:14px;font-weight:600}.dash-section-title--muted{color:var(--text-secondary)}.dash-ai-btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;color:var(--on-accent);border:none;padding:8px 18px;font-size:13px;font-weight:500}.dash-ai-btn:disabled{cursor:not-allowed;background:var(--surface-subtle)!important;color:var(--text-faint)!important}.dash-ai-btn--primary{background:var(--accent)}.dash-ai-btn--news{background:#00b894}.dash-ai-btn--copilot{background:#6c5ce7;width:100%;margin-top:8px}.dash-copilot-chips{flex-wrap:wrap;gap:8px;display:flex}.dash-copilot-chip{border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;transition:border-color .15s,background .15s;display:inline-flex}.dash-copilot-chip:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}.dash-copilot-chip--active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent-text)}.dash-copilot-chip:disabled{opacity:.5;cursor:not-allowed}.dash-copilot-custom{flex-direction:column;gap:0;display:flex}.dash-copilot-input{border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text-primary);resize:vertical;border-radius:8px;min-height:56px;padding:10px 12px;font-family:inherit;font-size:13px}.dash-copilot-input:focus{border-color:var(--accent);outline:none}.dash-donut-label{fill:var(--text-muted)}.dash-donut-value{fill:var(--text)}.dash-donut-ticker{color:var(--text)}.dash-donut-bar{background:var(--surface-inset,var(--surface-subtle))}[data-theme=light]{--surface-inset:#e5ddd0}[data-theme=dark]{--surface-inset:#22222c}.dash-privacy-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font-size:12px;font-family:var(--font);cursor:pointer;white-space:nowrap;padding:7px 12px;transition:background .15s,color .15s,border-color .15s}.dash-privacy-btn:hover{color:var(--text);border-color:var(--border-strong)}.dash-privacy-btn--active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}.dash-modal-summary{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);margin-bottom:16px;padding:12px;font-size:13px}.dash-modal-summary-badge{color:var(--accent-text);margin-top:4px;font-size:12px}.dash-btn-ghost-accent,.dash-btn-ghost-danger{cursor:pointer;width:100%;font-size:14px;font-family:var(--font);background:0 0;border-radius:8px;padding:10px 20px;transition:background .15s,border-color .15s}.dash-btn-ghost-accent{border:1px solid var(--accent);color:var(--accent-text)}.dash-btn-ghost-accent:hover:not(:disabled){background:var(--accent-soft)}.dash-btn-ghost-danger{border:1px solid var(--loss);color:var(--loss)}.dash-btn-ghost-danger:hover:not(:disabled){background:var(--loss-soft)}.dash-btn-ghost-accent:disabled,.dash-btn-ghost-danger:disabled{opacity:.5;cursor:not-allowed}.dash-chip-group{flex-wrap:wrap;gap:8px;display:flex}.dash-chip-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-width:70px;color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font);background:0 0;flex:1;padding:9px;transition:background .15s,border-color .15s,color .15s}.dash-chip-btn:hover{border-color:var(--accent-muted);color:var(--text)}.dash-chip-btn--active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.dash-csv-preview{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:200px;overflow:auto}.dash-csv-preview table{border-collapse:collapse;width:100%;font-size:12px}.dash-csv-preview th{border-bottom:1px solid var(--border);color:var(--text-muted);text-align:left;padding:6px 8px;font-weight:500}.dash-csv-preview td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:6px 8px}.dash-header-util{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;align-items:center;display:inline-flex;overflow:hidden}.dash-util-btn{border:none;border-left:1px solid var(--border);color:var(--text-muted);white-space:nowrap;cursor:pointer;font-size:12px;font-weight:500;line-height:1.2;font-family:var(--font);background:0 0;padding:7px 10px;transition:background .15s,color .15s}.dash-util-btn:first-child{border-left:none}.dash-util-btn:hover{background:var(--surface-hover);color:var(--text)}.dash-util-btn--active{background:var(--accent-soft);color:var(--accent-text)}.dash-util-btn--logout{padding:7px 12px;font-size:12px;font-weight:500}.dash-util-btn--logout:hover{color:var(--loss)}.dash-util-btn--admin{color:var(--warn)}.dash-util-btn--admin:hover,.dash-util-btn--help{color:var(--accent-text)}.dash-ai-cta{color:#fff;font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;background:linear-gradient(135deg,#6c5ce7,#8b7cf7);border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex;box-shadow:0 2px 10px #6c5ce759}.dash-ai-cta:hover{filter:brightness(1.06);box-shadow:0 4px 14px #6c5ce773}.dash-ai-cta--active{background:linear-gradient(135deg,#5a4bd6,#6c5ce7);box-shadow:inset 0 2px 6px #0000002e}.dash-ai-cta-icon{font-size:16px;line-height:1}.dash-ai-cta-text{line-height:1}@media (width<=640px){.dash-ai-cta{gap:6px;padding:8px 12px}.dash-ai-cta-text{display:none}.dash-ai-cta-icon{font-size:18px}}.dash-admin-layout{grid-template-columns:minmax(280px,360px) 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.dash-admin-layout{grid-template-columns:1fr}}.dash-admin-list{max-height:calc(100vh - 220px);padding:0;overflow:hidden auto}.dash-admin-detail{min-height:320px}.dash-admin-ticket-row{text-align:left;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;padding:14px 16px;display:block}.dash-admin-ticket-row:hover{background:var(--surface-subtle)}.dash-admin-ticket-row--active{background:var(--accent-soft)}.dash-admin-ticket-row-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.dash-admin-ticket-subject{margin-bottom:4px;font-size:14px;font-weight:600;line-height:1.4}.dash-admin-status{background:var(--surface-subtle);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px}.dash-admin-status--open{background:var(--accent-soft);color:var(--accent-text)}.dash-admin-status--in_progress{color:var(--warn);background:#ffc10726}.dash-admin-status--resolved{color:var(--gain);background:#2ecc711f}.dash-admin-status--closed{background:var(--surface-subtle);color:var(--text-faint)}.dash-admin-user-search{flex:1;min-width:200px;max-width:320px}.dash-admin-plan-actions{flex-wrap:wrap;gap:10px;display:flex}.dash-admin-receipt-badge{background:var(--gain-soft);color:var(--gain);vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 6px;font-size:10px;font-weight:600}.dash-admin-receipt-link{color:inherit;text-decoration:none;display:block}.dash-admin-receipt-img{object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#fff;max-width:100%;max-height:280px;margin-bottom:6px;display:block}.dash-story-section{border-bottom:1px solid var(--border-subtle);margin-bottom:20px;padding-bottom:20px}.dash-story-heading{color:var(--accent-text);margin:0 0 12px;font-size:14px;font-weight:600}.dash-story-heading-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.dash-story-heading-row .dash-story-heading{margin-bottom:0}.dash-timeline{border-left:2px solid var(--border);flex-direction:column;gap:0;margin-left:8px;padding-left:16px;display:flex}.dash-timeline-item{padding-bottom:16px;position:relative}.dash-timeline-item:last-child{padding-bottom:0}.dash-timeline-dot{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:-25px}.dash-timeline-dot--tx{background:var(--info)}.dash-timeline-dot--journal{background:var(--accent)}.dash-timeline-dot--div{background:var(--gain)}.dash-timeline-meta{color:var(--text-faint);margin-bottom:4px;font-size:11px}.dash-timeline-title{color:var(--text);font-size:13px;font-weight:600}.dash-timeline-note{color:var(--text-muted);white-space:pre-wrap;margin:6px 0 0;font-size:12px;line-height:1.55}.dash-holdings-hint code,.dash-holdings-hint strong{font-weight:600}.amount-input{background:var(--surface-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);align-items:center;display:flex;overflow:hidden}.amount-input-affix{color:var(--text-muted);border-right:1px solid var(--border);flex-shrink:0;padding:0 10px;font-size:14px;line-height:40px}.amount-input-affix--suffix{border-right:none;border-left:1px solid var(--border)}.amount-input-field{color:var(--text);width:100%;font-size:14px;font-family:var(--font);background:0 0;border:none;outline:none;flex:1;padding:10px 12px}.amount-input-field::placeholder{color:var(--text-faint)}.dash-type-toggle{background:var(--surface-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);height:40px;display:flex;overflow:hidden}.dash-type-toggle button{cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);color:var(--text-muted);background:0 0;border:none;flex:1;transition:background .15s,color .15s}.dash-type-toggle button.active-buy{background:var(--gain-soft);color:var(--gain)}.dash-type-toggle button.active-sell{background:var(--loss-soft);color:var(--loss)}.dash-sell-pct{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:8px;display:flex}.dash-sell-pct-hint{color:var(--text-muted);width:100%;margin:0;font-size:11px}.dash-sell-pct-hint--warn{color:var(--loss);margin-bottom:6px}.dash-sell-pct-btns{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.dash-sell-pct-btn{font-size:11px;font-weight:500;font-family:var(--font);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:3px 9px;transition:background .15s,border-color .15s,color .15s}.dash-sell-pct-btn:hover{border-color:var(--loss);color:var(--loss)}.dash-sell-pct-btn--active{border-color:var(--loss);background:var(--loss-soft);color:var(--loss)}.dash-sell-pct-custom-wrap{align-items:center;gap:2px;margin-left:2px;display:inline-flex}.dash-sell-pct-custom{width:44px;font-size:11px;font-family:var(--font);border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:center;border-radius:999px;padding:3px 6px}.dash-sell-pct-custom:focus,.dash-sell-pct-custom--active{border-color:var(--loss);background:var(--loss-soft);outline:none}.dash-sell-pct-suffix{color:var(--text-muted);font-size:11px}.dash-tx-total{background:var(--gain-soft);border:1px solid color-mix(in srgb, var(--gain) 35%, var(--border));border-radius:var(--radius-sm);margin-bottom:12px;padding:10px 14px}.dash-tx-infer-hint{color:var(--text-muted);margin:0 0 10px;font-size:12px;line-height:1.45}.dash-tx-advanced-toggle{text-align:left;width:100%;color:var(--text-secondary);background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;margin-bottom:8px;padding:10px 12px;font-size:13px;display:block}.dash-tx-advanced-toggle:hover{background:var(--surface);color:var(--text)}.dash-tx-advanced{border-top:1px dashed var(--border);margin-bottom:4px;padding:12px 0 4px}.dash-workflow{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px 18px}.dash-workflow--compact{margin-bottom:12px;padding:14px 16px}.dash-workflow--here-tx{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 5%, var(--surface))}.dash-workflow-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.dash-workflow-eyebrow{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 4px;font-size:11px;font-weight:600}.dash-workflow-title{color:var(--text);margin:0;font-size:15px;font-weight:700;line-height:1.35}.dash-workflow-collapse,.dash-workflow-bar{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);flex-shrink:0;padding:6px 12px}.dash-workflow-bar{text-align:left;background:var(--surface);justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:12px;padding:10px 14px;display:flex}.dash-workflow-bar-lead{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.dash-workflow-bar-tab{color:var(--accent);font-weight:700}.dash-workflow-bar-arrow{color:var(--text-faint)}.dash-workflow-bar-more{color:var(--text-muted);font-size:11px}.dash-workflow-flow{flex-wrap:wrap;align-items:stretch;gap:6px 4px;display:flex}.dash-workflow-flow-item{flex:140px;align-items:center;min-width:0;display:flex}.dash-workflow-connector{color:var(--text-faint);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;font-size:14px}.dash-workflow-card{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);cursor:pointer;min-width:0;font-family:var(--font);flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:12px 12px 10px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.dash-workflow-card:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));box-shadow:0 2px 8px color-mix(in srgb, var(--text) 6%, transparent)}.dash-workflow-card--primary{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg))}.dash-workflow-card--active{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent)}.dash-workflow-card--optional{opacity:.92}.dash-workflow-card-top{flex-wrap:wrap;align-items:center;gap:4px;width:100%;margin-bottom:4px;display:flex}.dash-workflow-card-num{background:var(--surface);border:1px solid var(--border);width:20px;height:20px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.dash-workflow-card--primary .dash-workflow-card-num{background:var(--accent);border-color:var(--accent);color:#fff}.dash-workflow-card-icon{margin-bottom:2px;font-size:18px;line-height:1}.dash-workflow-card-tab{color:var(--text);font-size:14px;font-weight:700;line-height:1.25}.dash-workflow-card-action{color:var(--accent);font-size:12px;font-weight:600}.dash-workflow-card-desc{color:var(--text-muted);margin-top:2px;font-size:11px;line-height:1.4}.dash-workflow-card-cta{background:var(--accent);color:#fff;border-radius:6px;margin-top:8px;padding:5px 10px;font-size:11px;font-weight:700;display:inline-block}.dash-workflow-card--primary:hover .dash-workflow-card-cta{filter:brightness(1.05)}.dash-workflow-pill{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.02em;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}.dash-workflow-pill--muted{background:var(--border);color:var(--text-muted)}.dash-workflow-pill--main{background:color-mix(in srgb, var(--accent) 85%, #000)}.dash-workflow-pill--here{background:var(--gain-soft);color:var(--gain);margin-left:4px}.dash-workflow-meta{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;display:flex}.dash-workflow-extra{border:1px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;width:100%;font-family:var(--font);color:var(--text-muted);text-align:left;background:0 0;align-items:flex-start;gap:8px;padding:8px 10px;font-size:12px;display:flex}.dash-workflow-extra:hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--border));color:var(--text)}.dash-workflow-extra-desc{font-weight:400}.dash-workflow-view{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px;margin:0;font-size:12px;line-height:1.5;display:flex}.dash-workflow-view--muted{opacity:.9}@media (width<=640px){.dash-workflow-connector{display:none}.dash-workflow-flow-item{flex:100%}.dash-workflow-bar{flex-direction:column;align-items:flex-start}}.dash-workflow-journal-hint{color:var(--text-muted);background:color-mix(in srgb, var(--accent) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:var(--radius-sm);margin:0 0 14px;padding:10px 12px;font-size:13px;line-height:1.5}.dash-checkbox-row{background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:10px;margin-top:16px;padding:10px 12px;display:flex}.dash-checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin:2px 0 0}.dash-checkbox-row span{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-checkbox-label{color:var(--text);font-size:13px;font-weight:500}.dash-checkbox-hint{color:var(--text-faint);font-size:11px;line-height:1.4}.dash-holdings-hint{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:12px;padding:10px 14px;font-size:13px;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);width:100%;min-height:100vh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}body{overflow-x:hidden}input,button,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface-subtle)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.landing{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font)}.landing-nav{z-index:50;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:16px 24px;display:flex;position:sticky;top:0}.landing-nav.scrolled{border-bottom-color:var(--border-subtle)}.landing-logo{align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.landing-nav-actions{align-items:center;gap:10px;display:flex}.landing-btn-ghost{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;font-size:13px;transition:border-color .2s,color .2s}.landing-btn-ghost:hover{border-color:var(--text-faint);color:var(--text)}.landing-btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:500;transition:background .2s,transform .15s}.landing-btn-primary:hover{background:#5b4bd4}.landing-btn-primary.lg{padding:12px 28px;font-size:15px}.landing-hero{grid-template-columns:1fr 1fr;align-items:center;gap:48px;max-width:1100px;margin:0 auto;padding:48px 24px 64px;display:grid}.landing-hero-text h1{letter-spacing:-.02em;margin-bottom:18px;font-size:clamp(32px,5vw,48px);font-weight:700;line-height:1.15}.landing-hero-text h1 span{color:var(--accent-text)}.landing-hero-text p{color:var(--text-muted);max-width:480px;margin-bottom:32px;font-size:16px;line-height:1.7}.landing-hero-cta{flex-wrap:wrap;gap:12px;display:flex}.landing-hero-badges{flex-wrap:wrap;gap:16px;margin-top:28px;display:flex}.landing-badge{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.landing-preview{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 24px 80px #6c5ce71f}.landing-preview-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.landing-preview-title{font-size:13px;font-weight:600}.landing-preview-sub{color:var(--text-muted);font-size:11px}.landing-preview-stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px;display:grid}.landing-stat-card{background:var(--surface-subtle);border:1px solid var(--border);border-radius:10px;padding:12px}.landing-stat-label{color:var(--text-muted);margin-bottom:4px;font-size:10px}.landing-stat-value{font-size:16px;font-weight:600}.landing-stat-value.green{color:var(--gain)}.landing-stat-value.purple{color:var(--accent-text)}.landing-preview-chart{background:var(--surface-subtle);border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:14px}.landing-chart-line{width:100%;height:60px}.landing-preview-holdings{flex-direction:column;gap:6px;display:flex}.landing-holding-row{background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.landing-holding-ticker{color:var(--accent);min-width:44px;font-weight:600}.landing-holding-bar{background:var(--surface-inset,var(--border-subtle));border-radius:999px;flex:1;height:4px;overflow:hidden}.landing-holding-bar-fill{background:var(--accent);border-radius:999px;height:100%}.landing-holding-pct{color:var(--text-muted);text-align:right;min-width:36px;font-size:11px}.landing-features{max-width:1100px;margin:0 auto;padding:0 24px 80px}.landing-section-title{text-align:center;margin-bottom:40px}.landing-section-title h2{margin-bottom:10px;font-size:28px;font-weight:600}.landing-section-title p{color:var(--text-muted);font-size:14px}.landing-feature-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.landing-feature-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px;transition:border-color .2s,transform .2s}.landing-feature-card:hover{border-color:#3a3a5a;transform:translateY(-2px)}.landing-feature-icon{margin-bottom:14px;font-size:28px}.landing-feature-card h3{margin-bottom:8px;font-size:15px;font-weight:600}.landing-feature-card p{color:#777;font-size:13px;line-height:1.65}.landing-cta-section{max-width:1100px;margin:0 auto 80px;padding:0 24px}.landing-cta-box{background:linear-gradient(135deg, #1a1a2e 0%, var(--surface) 50%, #1a2a1a 100%);border:1px solid var(--border);text-align:center;border-radius:20px;padding:48px 40px}.landing-cta-box h2{margin-bottom:12px;font-size:26px;font-weight:600}.landing-cta-box p{color:#777;margin-bottom:28px;font-size:14px}.landing-footer{border-top:1px solid var(--border-subtle);text-align:center;color:var(--text-faint);padding:24px;font-size:12px}.landing-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);margin:0 0 12px;font-size:13px;font-weight:600}.landing-hero--suite{text-align:center;grid-template-columns:1fr;padding-bottom:24px}.landing-hero-text--center{max-width:720px;margin:0 auto}.landing-hero-text--center h1{margin-bottom:14px}.landing-hero-text--center p{margin-left:auto;margin-right:auto}.landing-apps{grid-template-columns:1fr 1fr;gap:16px;max-width:960px;margin:0 auto 48px;padding:0 24px;display:grid}.landing-app-card{text-align:left;background:var(--surface);border:1px solid var(--border);cursor:pointer;color:inherit;font:inherit;border-radius:16px;flex-direction:column;align-items:flex-start;gap:12px;padding:28px 24px;transition:border-color .2s,transform .2s,background .2s;display:flex}.landing-app-card:hover{border-color:var(--accent);background:color-mix(in srgb, var(--surface) 88%, var(--accent) 12%);transform:translateY(-2px)}.landing-app-card--trip:hover{border-color:var(--text-muted);background:color-mix(in srgb, var(--surface) 92%, var(--text-muted) 8%)}.landing-app-card-top{flex-direction:column;gap:10px;width:100%;display:flex}.landing-app-card-tag{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:600}.landing-app-card-tag--soon{color:var(--text-muted);border-color:var(--border)}.landing-app-card h2{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700}.landing-app-card p{color:var(--text-muted);flex:1;margin:0;font-size:14px;line-height:1.65}.landing-app-card-cta{color:var(--accent-text);margin-top:4px;font-size:14px;font-weight:600}.landing-app-card--trip .landing-app-card-cta{color:var(--text-secondary)}.landing-cta-box--suite{background:var(--surface)}.landing--hub .landing-hero--suite{padding-top:32px}@media (width<=860px){.landing-hero{grid-template-columns:1fr;gap:36px;padding-top:24px}.landing-preview{order:-1}.landing-feature-grid,.landing-apps{grid-template-columns:1fr}.landing-nav-actions .landing-btn-ghost{display:none}.landing--hub .landing-nav-actions .landing-btn-ghost{display:inline-flex}.landing-cta-box{padding:36px 24px}}.trip-place-search{margin-bottom:14px}.trip-place-search-hint{margin:6px 0 10px;font-size:12px}.trip-place-search-results{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;max-height:320px;padding-right:2px;display:grid;overflow-y:auto}.trip-place-search-item{text-align:left;border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 55%, var(--surface));color:inherit;cursor:pointer;font:inherit;border-radius:10px;align-items:flex-start;gap:10px;padding:10px;display:flex}.trip-place-search-item:hover:not(:disabled){border-color:var(--accent)}.trip-place-search-item:disabled{opacity:.6;cursor:not-allowed}.trip-place-search-thumb,.trip-place-photo-fallback{object-fit:cover;border:1px solid var(--border-subtle);border-radius:8px;flex-shrink:0;width:56px;height:56px}.trip-place-photo-fallback{background:color-mix(in srgb, var(--accent) 8%, var(--surface));justify-content:center;align-items:center;font-size:22px;display:flex}.trip-place-search-meta{flex-direction:column;gap:4px;min-width:0;display:flex}.trip-place-search-meta strong{font-size:13px;line-height:1.35}.trip-place-search-meta span{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.trip-place-row-with-photo{align-items:flex-start;gap:12px;display:flex}.trip-place-row-thumb,.trip-place-row-with-photo .trip-place-photo-fallback{object-fit:cover;border-radius:10px;flex-shrink:0;width:64px;height:64px}.trip-place-row-body{flex:1;min-width:0}.trip-add-mode-tabs{gap:8px;margin-bottom:12px;display:flex}.trip-add-mode-tab{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font:inherit;background:0 0;border-radius:999px;padding:6px 14px;font-size:13px}.trip-add-mode-tab.is-active{border-color:var(--accent);color:var(--accent-text);background:color-mix(in srgb, var(--accent) 12%, transparent)}.trip-ai-chat{flex-direction:column;gap:10px;max-height:260px;margin-bottom:12px;padding-right:4px;display:flex;overflow-y:auto}.trip-ai-empty{border:1px dashed var(--border);color:var(--text-muted);text-align:center;border-radius:10px;padding:16px;font-size:13px}.trip-ai-bubble{white-space:pre-wrap;border-radius:12px;max-width:92%;padding:10px 12px;font-size:13px;line-height:1.55}.trip-ai-bubble--user{background:color-mix(in srgb, var(--accent) 16%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));align-self:flex-end}.trip-ai-bubble--assistant{background:color-mix(in srgb, var(--bg) 70%, var(--surface));border:1px solid var(--border-subtle);align-self:flex-start}.trip-ai-questions-list{color:var(--text-secondary);margin:0 0 12px;padding-left:18px;font-size:13px;line-height:1.5}.trip-ai-plan-preview{border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 55%, var(--surface));border-radius:12px;margin-bottom:12px;padding:12px}.trip-ai-plan-days{flex-direction:column;gap:10px;max-height:220px;margin:10px 0 12px;display:flex;overflow-y:auto}.trip-ai-plan-day-title{margin-bottom:4px;font-size:13px;font-weight:600}.trip-ai-plan-day ul{color:var(--text-secondary);margin:0;padding-left:18px;font-size:12px}.trip-ai-plan-day li{margin-bottom:4px}.trip-ai-booking-hint{color:var(--accent);font-size:11px}.trip-ai-compose{flex-direction:column;gap:10px;margin-top:8px;display:flex}.trip-ai-compose-actions{justify-content:flex-end;gap:8px;display:flex}.trip-tl{--tl-ink:#1f3531;--tl-muted:#5d736e;--tl-surface:#fffcf7;--tl-body:#eef5f2;--tl-head:#3f7a70;--tl-period:#5a8f86;--tl-link:#2f6b62;--tl-border:#c5d9d3;--tl-cover0:#e8f3ef;--tl-cover1:#f7f3eb;--tl-cover2:#eef6f3;color:var(--tl-ink);flex-direction:column;gap:18px;display:flex}[data-theme=dark] .trip-tl{--tl-ink:#e6efec;--tl-muted:#9bb0aa;--tl-surface:#1c2623;--tl-body:#16201d;--tl-head:#3f7a70;--tl-period:#5a8f86;--tl-link:#8fd0c4;--tl-border:#334843;--tl-cover0:#1a2925;--tl-cover1:#1e2620;--tl-cover2:#182421;color:var(--tl-ink)}.trip-tl-cover{border:1px solid var(--tl-border);background:linear-gradient(160deg, var(--tl-cover0) 0%, var(--tl-cover1) 48%, var(--tl-cover2) 100%);min-height:220px;color:var(--tl-ink);border-radius:16px;flex-direction:column;justify-content:center;padding:28px 24px;display:flex}.trip-tl-cover-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--tl-link);margin:0 0 10px;font-size:12px;font-weight:700}.trip-tl-cover-title{letter-spacing:-.03em;margin:0 0 10px;font-size:clamp(26px,4vw,34px);line-height:1.25}.trip-tl-cover-meta,.trip-tl-cover-duration{color:var(--tl-muted);margin:0 0 6px;font-size:14px}.trip-tl-cover-duration{color:var(--tl-link);font-weight:700}.trip-tl-cover-highlights{border-top:1px solid color-mix(in srgb, var(--tl-border) 80%, transparent);margin-top:18px;padding-top:14px}.trip-tl-cover-highlights-label{color:var(--tl-muted);margin:0 0 8px;font-size:12px;font-weight:700}.trip-tl-cover-highlights ul{color:var(--tl-ink);margin:0;padding-left:18px;font-size:13px;line-height:1.55}.trip-tl-cover-note{color:var(--tl-muted);margin:18px 0 0;font-size:12px}.trip-tl-day{border:1px solid var(--tl-border);background:var(--tl-surface);border-radius:14px;overflow:hidden}.trip-tl-day-head{background:var(--tl-head);color:#fff;grid-template-columns:minmax(100px,140px) 1fr;align-items:start;gap:12px;padding:14px 16px;display:grid}.trip-tl-day-label{flex-direction:column;gap:2px;display:flex}.trip-tl-day-label strong{letter-spacing:-.02em;font-size:18px;font-weight:700}.trip-tl-day-label span{opacity:.85;font-size:12px}.trip-tl-day-summary{opacity:.95;margin:0;font-size:13px;line-height:1.55}.trip-tl-day-body{background:var(--tl-body);padding:16px 16px 20px}.trip-tl-empty{color:var(--tl-muted);text-align:center;margin:0;padding:18px;font-size:13px}.trip-tl-block+.trip-tl-block{margin-top:16px}.trip-tl-period{letter-spacing:.02em;color:#fff;background:var(--tl-period);border-radius:999px;align-items:center;margin:4px 0 10px 116px;padding:4px 12px;font-size:13px;font-weight:800;display:inline-flex;box-shadow:0 1px #0000001a}.trip-tl-row{grid-template-columns:100px minmax(0,1fr);align-items:start;gap:14px;display:grid}.trip-tl-time{color:var(--tl-link);font-variant-numeric:tabular-nums;text-align:right;padding-top:2px;font-size:15px;font-weight:700}.trip-tl-text{color:var(--tl-ink);margin:0;font-size:14px;line-height:1.7}.trip-tl-place-name{color:var(--tl-link);font-weight:700}.trip-tl-place-name--btn{color:var(--tl-link);font:inherit;cursor:pointer;text-align:left;text-underline-offset:2px;background:0 0;border:none;margin:0;padding:0;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;display:inline}.trip-tl-place-name--btn:hover{color:var(--tl-head)}.trip-tl-block.is-map-focused{outline:2px solid color-mix(in srgb, var(--tl-link) 55%, transparent);outline-offset:4px;background:color-mix(in srgb, var(--tl-link) 8%, transparent);border-radius:10px}.trip-tl-type{color:var(--tl-muted);font-size:13px;font-weight:500}.trip-tl-end{color:var(--tl-muted)}.trip-tl-photo-hero{margin-top:12px}.trip-tl-img-hero,.trip-tl-photo-hero .trip-place-photo-fallback{object-fit:cover;border:1px solid var(--tl-border);border-radius:12px;width:100%;height:220px;max-height:280px;display:block}.trip-tl-photo-hero .trip-place-photo-fallback{background:color-mix(in srgb, var(--tl-head) 12%, var(--tl-surface));justify-content:center;align-items:center;font-size:48px;display:flex}.trip-tl-photo-inline{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:12px;margin-top:12px;display:grid}.trip-tl-img-thumb,.trip-tl-photo-inline .trip-place-photo-fallback{object-fit:cover;border:1px solid var(--tl-border);border-radius:10px;width:120px;height:90px}.trip-tl-photo-inline .trip-place-photo-fallback{background:color-mix(in srgb, var(--tl-head) 12%, var(--tl-surface));justify-content:center;align-items:center;font-size:28px;display:flex}.trip-tl-caption{color:var(--tl-muted);margin:0;font-size:13px;line-height:1.45}.trip-booking-links{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 4px;display:flex}.trip-booking-links-label{color:var(--tl-muted);font-size:12px}.trip-booking-chip{border:1px solid color-mix(in srgb, var(--tl-link) 35%, var(--tl-border));background:color-mix(in srgb, var(--tl-link) 12%, var(--tl-surface));color:var(--tl-link);border-radius:999px;align-items:center;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.trip-booking-chip:hover{background:color-mix(in srgb, var(--tl-link) 20%, var(--tl-surface))}.trip-flight-panel{border:1px solid var(--tl-border);background:color-mix(in srgb, var(--tl-surface) 92%, var(--tl-link) 8%);border-radius:12px;margin:8px 0 4px;overflow:hidden}.trip-flight-panel--compact{margin-top:10px}.trip-flight-summary{border-bottom:1px solid var(--tl-border);padding:10px 12px}.trip-flight-summary-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.trip-flight-summary-head strong{font-size:13px}.trip-flight-meta{color:var(--tl-muted);font-size:11px}.trip-flight-leg{flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;display:flex}.trip-flight-code{letter-spacing:.04em;font-weight:700}.trip-flight-arrow{color:var(--tl-muted)}.trip-flight-dates,.trip-flight-route-label{color:var(--tl-muted);margin:4px 0 0;font-size:12px}.trip-flight-options{padding:8px 10px 4px}.trip-flight-options-head{color:var(--tl-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:11px;font-weight:600}.trip-flight-options-list{margin:0;padding:0;list-style:none}.trip-flight-option{color:inherit;background:var(--tl-surface);border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;padding:8px 10px;text-decoration:none;display:flex}.trip-flight-option:hover{border-color:color-mix(in srgb, var(--tl-link) 40%, var(--tl-border));background:color-mix(in srgb, var(--tl-link) 8%, var(--tl-surface))}.trip-flight-option-name{font-size:13px;font-weight:600}.trip-flight-option-cta{color:var(--tl-link);white-space:nowrap;font-size:12px;font-weight:600}.trip-flight-disclaimer{color:var(--tl-muted);margin:0;padding:6px 12px 10px;font-size:10px;line-height:1.4}.trip-tl-trip-title{padding:12px 16px 4px}.trip-tl-trip-title h1{letter-spacing:-.02em;margin:0 0 4px;font-size:22px;line-height:1.25}.trip-tl-trip-title p{color:var(--tl-muted);margin:0;font-size:13px}.trip-tl-print-root{display:none}@media (width<=700px){.trip-tl-day-head{grid-template-columns:1fr}.trip-tl-period{margin-left:0}.trip-tl-row{grid-template-columns:72px minmax(0,1fr);gap:10px}.trip-tl-time{text-align:left;font-size:13px}.trip-tl-photo-inline{grid-template-columns:88px minmax(0,1fr)}.trip-tl-img-thumb,.trip-tl-photo-inline .trip-place-photo-fallback{width:88px;height:72px}}@media print{.trip-tl-print-root{display:block!important}.trip-tl-cover{break-after:page;page-break-after:always;-webkit-print-color-adjust:exact;print-color-adjust:exact;border:none;border-radius:0;min-height:88vh;background:linear-gradient(160deg,#e8f3ef 0%,#f7f3eb 55%,#eef6f3 100%)!important}.trip-tl-cover-title{font-size:28px}.trip-tl-day{break-inside:auto;page-break-inside:auto;border-color:#3f7a70}.trip-tl-day-head{break-after:avoid;page-break-after:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#fff!important;background:#3f7a70!important}.trip-tl-day-body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#eef5f2!important}.trip-tl-period{-webkit-print-color-adjust:exact;print-color-adjust:exact;margin-left:0;color:#fff!important;background:#5a8f86!important}.trip-tl-img-hero,.trip-tl-img-thumb{-webkit-print-color-adjust:exact;print-color-adjust:exact}.trip-tl-img-hero{height:180px;max-height:200px}.trip-booking-chip{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#2f6b62!important;border-color:#3f7a70!important}}.trip-shell{--trip-bg0:#eef4f1;--trip-bg1:#f6f2ea;--trip-ink:#1f3531;--trip-muted:#5d736e;--trip-surface:#fffcf7eb;--trip-accent:#3f7a70;--trip-accent-strong:#2f6b62;--trip-border:#c9dbd5;--trip-feature-bg:#ecf5f2;background:radial-gradient(900px 420px at 12% -10%, #d9ebe6 0%, transparent 55%), radial-gradient(700px 380px at 92% 8%, #f0e8d8 0%, transparent 50%), linear-gradient(180deg, var(--trip-bg0), var(--trip-bg1));min-height:100vh;color:var(--trip-ink)}[data-theme=dark] .trip-shell{--trip-bg0:#121a19;--trip-bg1:#171f1d;--trip-ink:#e6efec;--trip-muted:#9bb0aa;--trip-surface:#1c2623f0;--trip-accent:#6fb5a8;--trip-accent-strong:#8fd0c4;--trip-border:#334843;--trip-feature-bg:#22322d;background:radial-gradient(900px 420px at 12% -10%, #3f7a7047 0%, transparent 55%), radial-gradient(700px 380px at 92% 8%, #5a50372e 0%, transparent 50%), linear-gradient(180deg, var(--trip-bg0), var(--trip-bg1));color:var(--trip-ink)}.trip-topbar{border-bottom:1px solid color-mix(in srgb, var(--trip-border) 70%, transparent);background:color-mix(in srgb, var(--trip-surface) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex;position:sticky;top:0}.trip-topbar-left{align-items:center;gap:12px;display:flex}.trip-brand-btn{cursor:pointer;background:0 0;border:none;padding:0}.trip-topbar-title{font-size:15px;font-weight:700}.trip-topbar-sub{color:var(--text-muted);font-size:12px}.trip-topbar-actions{align-items:center;gap:8px;display:flex}.trip-main{max-width:1180px;margin:0 auto;padding:24px 20px 56px}.trip-list-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.trip-list-head h1,.trip-detail-head h1{letter-spacing:-.03em;margin:8px 0;font-size:clamp(22px,3vw,30px);line-height:1.25}.trip-detail-head-text{flex:1;min-width:0}.trip-detail-meta{color:var(--text-muted);flex-wrap:wrap;gap:8px 14px;margin:0;font-size:13px;display:flex}.trip-detail-meta span:not(:last-child):after{content:""}.trip-route-edit-toggle{margin-top:6px;font-size:13px}.trip-route-edit{border:1px solid var(--trip-border,var(--border));background:color-mix(in srgb, var(--trip-surface,var(--surface)) 92%, var(--text-muted));border-radius:12px;margin-top:12px;padding:12px 14px}.trip-route-edit-hint{color:var(--text-muted);margin:0 0 10px;font-size:12px}.trip-route-edit-fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:10px;display:grid}.trip-route-edit-actions{flex-wrap:wrap;gap:8px;display:flex}.trip-card{background:var(--trip-surface,var(--surface));border:1px solid var(--trip-border,var(--border));border-radius:16px;margin-bottom:16px;padding:18px 18px 20px;box-shadow:0 8px 24px #1f35310a}.trip-card h3,.trip-card h4{margin:0 0 12px;font-size:15px}.trip-form-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:12px;display:grid}.trip-form-row label{color:var(--trip-muted,var(--text-muted));flex-direction:column;gap:6px;font-size:12px;display:flex}.trip-list{flex-direction:column;gap:10px;display:flex}.trip-list-item{text-align:left;border:1px solid var(--trip-border,var(--border));background:var(--trip-surface,var(--surface));width:100%;color:inherit;cursor:pointer;font:inherit;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.trip-list-item:hover{border-color:var(--trip-accent,var(--accent))}.trip-list-meta{color:var(--trip-muted,var(--text-muted));white-space:nowrap;font-size:12px}.trip-home-intro{border:1px solid var(--trip-border);background:var(--trip-surface);border-radius:18px;margin-bottom:22px;padding:22px 22px 20px;box-shadow:0 10px 28px #1f35310d}.trip-home-intro h1{letter-spacing:-.03em;color:var(--trip-ink);margin:0 0 8px;font-size:clamp(24px,3.2vw,32px)}.trip-home-intro-lead{max-width:58ch;color:var(--trip-muted);margin:0 0 16px;font-size:15px;line-height:1.65}.trip-home-actions{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.trip-btn-ai{font:inherit;cursor:pointer;color:#fff;background:linear-gradient(135deg, var(--trip-accent) 0%, var(--trip-accent-strong) 100%);box-shadow:0 8px 18px color-mix(in srgb, var(--trip-accent-strong) 28%, transparent);border:none;border-radius:12px;padding:12px 18px;font-size:14px;font-weight:700}.trip-btn-ai:hover{filter:brightness(1.05)}[data-theme=dark] .trip-btn-ai{color:#10201c;background:linear-gradient(135deg,#6fb5a8 0%,#8fd0c4 100%);box-shadow:0 8px 18px #6fb5a838}.trip-btn-secondary{border:1px solid var(--trip-border);font:inherit;cursor:pointer;color:var(--trip-ink);background:color-mix(in srgb, var(--trip-surface) 80%, transparent);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600}.trip-home-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.trip-home-feature{background:var(--trip-feature-bg,#ecf5f2);border:1px solid color-mix(in srgb, var(--trip-border) 70%, transparent);border-radius:12px;padding:12px 14px}.trip-home-feature strong{color:var(--trip-accent-strong);margin-bottom:4px;font-size:13px;display:block}.trip-home-feature p{color:var(--trip-muted);margin:0;font-size:12px;line-height:1.5}.trip-section-label{color:var(--trip-muted);margin:8px 0 12px;font-size:13px;font-weight:700}@media (width<=800px){.trip-home-features{grid-template-columns:1fr}}.trip-empty{border:1px dashed var(--trip-border,var(--border));text-align:center;color:var(--trip-muted,var(--text-muted));border-radius:12px;padding:28px 18px;font-size:14px}.trip-empty-compact{padding:20px 14px;font-size:13px}.trip-detail-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);align-items:stretch;gap:18px;display:grid}.trip-map-col{align-self:stretch;min-width:0}.trip-map-card{z-index:5;max-height:calc(100vh - 96px);position:sticky;top:80px;overflow:auto}.trip-map-frame{background:#e8eee9;border:0;border-radius:12px;width:100%;height:min(42vh,380px);min-height:280px}.trip-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.trip-add-day-btn{border:1px solid var(--border);color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:12px}.trip-add-day-btn:hover{border-color:var(--accent);color:var(--accent-text)}.trip-day-tabs{scrollbar-width:thin;gap:8px;margin-bottom:16px;padding-bottom:4px;display:flex;overflow-x:auto}.trip-day-tab{border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 40%, var(--surface));min-width:88px;color:var(--text-secondary);cursor:pointer;font:inherit;border-radius:12px;flex-direction:column;flex:none;align-items:flex-start;gap:2px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.trip-day-tab-index{font-size:13px;font-weight:650}.trip-day-tab-date{color:var(--text-muted);font-size:11px}.trip-day-tab.is-active{border-color:var(--accent);color:var(--accent-text);background:color-mix(in srgb, var(--accent) 12%, transparent)}.trip-day-tab.is-active .trip-day-tab-date{color:color-mix(in srgb, var(--accent-text) 70%, var(--text-muted))}.trip-list-head-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.trip-places{flex-direction:column;gap:0;margin-bottom:18px;display:flex;position:relative}.trip-place-card{border:none;border-bottom:1px solid var(--border-subtle);cursor:grab;background:0 0;border-radius:0;grid-template-columns:52px 72px minmax(0,1fr);align-items:start;gap:12px 14px;padding:14px 4px 14px 0;display:grid}.trip-place-card:last-child{border-bottom:none}.trip-place-card.is-dragging{opacity:.55;background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-radius:12px}.trip-place-card-time{font-variant-numeric:tabular-nums;color:var(--text-muted);flex-direction:column;align-items:center;gap:4px;padding-top:4px;font-size:12px;font-weight:600;display:flex}.trip-place-card-time-sep{background:var(--border);width:1px;height:18px}.trip-place-card-thumb,.trip-place-card .trip-place-photo-fallback{object-fit:cover;border:1px solid var(--border-subtle);border-radius:12px;flex-shrink:0;width:72px;height:72px}.trip-place-card .trip-place-photo-fallback{background:color-mix(in srgb, var(--accent) 8%, var(--surface));justify-content:center;align-items:center;font-size:26px;display:flex}.trip-place-card-body{flex-direction:column;gap:6px;min-width:0;display:flex}.trip-place-card-top{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.trip-place-card-title{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:650;line-height:1.35}.trip-place-card-title-btn{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;padding:0;display:block}.trip-place-card-title-btn:hover .trip-place-card-title{color:var(--trip-accent-strong,var(--accent));text-decoration:underline}.trip-place-card-address{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.trip-place-card-budget{color:var(--text-secondary);margin:0;font-size:12px}.trip-place-card-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:2px;display:flex}.trip-place-card-actions{align-items:center;gap:6px;display:flex}.trip-reorder-btn{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;font:inherit;border-radius:8px;line-height:1}.trip-reorder-btn:hover:not(:disabled){border-color:var(--accent)}.trip-reorder-btn:disabled{opacity:.35;cursor:not-allowed}.trip-place-delete-btn{color:var(--text-muted);cursor:pointer;font:inherit;background:0 0;border:none;padding:4px 6px;font-size:12px}.trip-place-delete-btn:hover{color:var(--loss)}.trip-place-card-links{flex-wrap:wrap;gap:12px;display:flex}.trip-place-card-links .dash-link-btn{font-size:12px}.trip-place-edit-time{grid-template-columns:1fr 1fr auto auto;align-items:center;gap:8px;margin-top:4px;display:grid}.trip-place-type{color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.trip-place-form{border-top:1px solid var(--border-subtle);margin-top:4px;padding-top:16px}.trip-view-switch{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.trip-view-btn{border:1px solid var(--border);color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:12px}.trip-view-btn.is-active{border-color:var(--accent);color:var(--accent-text);background:color-mix(in srgb, var(--accent) 12%, transparent)}.trip-tl-print-root{opacity:0;pointer-events:none;z-index:-1;width:800px;position:fixed;top:0;left:-10000px}.trip-tl-print-root.is-exporting{opacity:1}@media print{.trip-topbar,.trip-no-print{display:none!important}.trip-shell,.trip-main{max-width:none;margin:0;padding:0;color:#111!important;background:#fff!important}.trip-tl-print-root,.trip-tl-print-root.is-exporting{opacity:1!important;pointer-events:auto!important;z-index:auto!important;width:auto!important;display:block!important;position:static!important;left:auto!important}@page{size:A4;margin:14mm}}@media (width<=960px){.trip-detail-grid{grid-template-columns:1fr}.trip-map-card{position:static}.trip-map-frame{height:320px;min-height:280px}}@media (width<=860px){.trip-topbar-actions .landing-btn-ghost{display:none}.trip-list-head{flex-direction:column}.trip-place-card{grid-template-columns:44px 56px minmax(0,1fr);gap:10px}.trip-place-card-thumb,.trip-place-card .trip-place-photo-fallback{width:56px;height:56px}.trip-place-edit-time{grid-template-columns:1fr 1fr}}@media (width<=520px){.trip-place-card{grid-template-columns:40px minmax(0,1fr)}.trip-place-card-thumb,.trip-place-card .trip-place-photo-fallback{display:none}}.trip-map-place-card{border:1px solid var(--trip-border,var(--border));background:color-mix(in srgb, var(--trip-surface,var(--surface)) 88%, #fff);border-radius:12px;grid-template-columns:96px minmax(0,1fr);gap:12px;margin-bottom:12px;padding:10px;display:grid}.trip-map-place-photo,.trip-map-place-card .trip-place-photo-fallback{object-fit:cover;border-radius:10px;width:96px;height:96px}.trip-map-place-body{min-width:0}.trip-map-place-type{color:var(--trip-muted,var(--text-muted));letter-spacing:.04em;font-size:11px;font-weight:700}.trip-map-place-name{color:var(--trip-ink,var(--text));word-break:normal;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;margin:4px 0 6px;font-size:16px;line-height:1.35}.trip-map-match-warn{color:#8a5a00;background:#f5e6b8b3;border:1px solid #d4a01759;border-radius:8px;margin:0 0 6px;padding:6px 8px;font-size:11px;line-height:1.4}.trip-map-place-rating{color:#b8860b;margin:0 0 6px;font-size:13px;font-weight:650}.trip-map-place-address{color:var(--trip-muted,var(--text-muted));margin:0 0 8px;font-size:12px;line-height:1.45}.trip-map-place-actions{margin-bottom:6px}.trip-map-open-btn{color:#fff;background:#1a73e8;border-radius:999px;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.trip-map-open-btn:hover{filter:brightness(1.05)}@media (width<=520px){.trip-map-place-card{grid-template-columns:1fr}.trip-map-place-photo,.trip-map-place-card .trip-place-photo-fallback{width:100%;height:140px}}.dash-shell{min-height:100vh;display:flex}.dash-admin-page{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.dash-admin-header{background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.dash-admin-title{letter-spacing:-.02em;margin:0 0 4px;font-size:20px;font-weight:600}.dash-admin-sub{color:var(--text-muted);margin:0;font-size:13px}.dash-admin-main{box-sizing:border-box;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px}@media (width<=640px){.dash-admin-header,.dash-admin-main{padding:16px}}.dash-sidebar-backdrop{z-index:190;background:var(--overlay);cursor:pointer;border:none;margin:0;padding:0;display:none;position:fixed;inset:0}.dash-sidebar{background:var(--bg-elevated);border-right:1px solid var(--border);box-sizing:border-box;z-index:200;flex-direction:column;flex-shrink:0;width:240px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0}.dash-sidebar-brand{border-bottom:1px solid var(--border-subtle);margin-bottom:16px;padding:0 8px 16px}.dash-sidebar-title{letter-spacing:-.02em;margin:0 0 4px;font-size:17px;font-weight:600;display:block}.dash-sidebar-brand-btn{text-align:left;cursor:pointer;border-radius:var(--radius-sm);width:100%;font-family:var(--font);background:0 0;border:none;margin:0 0 4px -8px;padding:4px 8px;transition:background .15s;display:block}.dash-sidebar-brand-btn:hover{background:var(--surface-hover)}.dash-sidebar-brand-btn:hover .dash-sidebar-title,.dash-sidebar-brand-btn:hover .pd-logo-text{color:var(--accent-text)}.pd-logo{align-items:center;gap:calc(var(--logo-size,32px) * .35);display:inline-flex}.pd-logo-mark{width:var(--logo-size,32px);height:var(--logo-size,32px);flex-shrink:0;display:block}.pd-logo-mark--icon{object-fit:cover;border-radius:22%}.pd-logo-text{font-size:max(14px, calc(var(--logo-size,32px) * .62));letter-spacing:-.02em;color:var(--text);white-space:nowrap;font-weight:600;line-height:1.1}.auth-logo{margin-bottom:2px}.dash-sidebar-logo{pointer-events:none}.dash-sidebar-brand-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-sidebar-sub{color:var(--text-muted);margin:0;font-size:12px}.dash-sidebar-section{margin-bottom:8px;padding:0 4px 16px}.dash-sidebar-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);margin-bottom:8px;padding:0 4px;font-size:11px;font-weight:600}.dash-portfolio-select--sidebar{width:100%;max-width:none}.dash-sidebar-nav{flex-direction:column;flex:1;gap:4px;min-height:0;padding:0 4px;display:flex;overflow-y:auto}.dash-sidebar-nav-btn{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--text-muted);cursor:pointer;font-size:13px;font-family:var(--font);background:0 0;border:1px solid #0000;padding:10px 12px;transition:background .15s,color .15s,border-color .15s;display:block}.dash-sidebar-nav-btn:hover{color:var(--text);background:var(--surface-hover)}.dash-sidebar-nav-btn--active{background:var(--accent-soft);border-color:var(--accent-muted);color:var(--accent-text);font-weight:500}.dash-sidebar-pro{margin-top:4px;padding:10px 4px 4px}.dash-sidebar-pro-btn{border-radius:var(--radius-sm);border:1px solid var(--accent-muted);background:linear-gradient(135deg, var(--accent-soft) 0%, color-mix(in srgb, var(--accent) 12%, transparent) 100%);width:100%;color:var(--accent-text);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);align-items:center;gap:8px;padding:11px 12px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.dash-sidebar-pro-btn:hover{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 2px 10px color-mix(in srgb, var(--accent) 22%, transparent)}.dash-sidebar-pro-btn--active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-muted)}.dash-sidebar-pro-btn--owned{border-color:var(--accent-muted);background:linear-gradient(135deg, var(--accent-soft) 0%, var(--surface-hover) 100%)}.dash-sidebar-pro-icon{opacity:.95;font-size:13px;line-height:1}.dash-sidebar-pro-tag{letter-spacing:.02em;background:var(--accent);color:#fff;white-space:nowrap;border-radius:999px;margin-left:auto;padding:3px 8px;font-size:10px;font-weight:700}.dash-sidebar-pro-tag--owned{background:color-mix(in srgb, var(--accent) 18%, var(--surface));color:var(--accent-text);border:1px solid var(--accent-muted);font-weight:600}.dash-sidebar-footer{border-top:1px solid var(--border-subtle);margin-top:auto;padding:12px 4px 0}.dash-sidebar-cta{border-radius:var(--radius-sm);background:var(--accent);color:#fff;width:100%;font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;border:none;padding:11px 14px;transition:background .15s}.dash-sidebar-cta:hover{background:var(--accent-hover)}.dash-sidebar-close{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;display:none;position:absolute;top:14px;right:12px}.dash-main{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}.dash-topbar{border-bottom:1px solid var(--border-subtle);background:var(--bg);z-index:50;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;display:flex;position:sticky;top:0}.dash-topbar-left{align-items:center;gap:12px;min-width:0;display:flex}.dash-menu-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;flex-shrink:0;font-size:18px;line-height:1;display:none}.dash-topbar-title{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:600}.dash-topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-inner{box-sizing:border-box;flex:1;width:100%;max-width:none;margin:0;padding:24px}.dash-ai-backdrop{z-index:170;background:var(--overlay);cursor:pointer;border:none;margin:0;padding:0;position:fixed;inset:0}.dash-ai-drawer{z-index:180;background:var(--bg-elevated);border-left:1px solid var(--border);width:min(420px,100vw);height:100dvh;box-shadow:var(--shadow-md);pointer-events:none;flex-direction:column;transition:transform .22s;display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.dash-ai-drawer--open{pointer-events:auto;transform:translate(0)}.dash-ai-drawer-head{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 12px;display:flex}.dash-ai-drawer-title{letter-spacing:-.02em;margin:0 0 2px;font-size:16px;font-weight:600}.dash-ai-drawer-sub{color:var(--text-faint);margin:0;font-size:11px}.dash-ai-drawer-close{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:36px;height:36px;color:var(--text-muted);cursor:pointer;flex-shrink:0;font-size:16px;line-height:1}.dash-ai-drawer-close:hover{color:var(--text);border-color:var(--border-strong,var(--border))}.dash-ai-drawer-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:12px 14px 20px;overflow-y:auto}.dash-ai-fab{z-index:160;color:#fff;cursor:pointer;background:linear-gradient(135deg,#6c5ce7,#a29bfe);border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;line-height:1;transition:transform .15s,box-shadow .15s;display:none;position:fixed;bottom:20px;right:20px;box-shadow:0 6px 20px #6c5ce773}.dash-ai-fab:hover{transform:scale(1.06);box-shadow:0 8px 24px #6c5ce78c}.dash-ai-rail{z-index:155;color:#fff;cursor:pointer;font-family:var(--font);background:linear-gradient(#6c5ce7,#7b6cf0);border:none;border-radius:12px 0 0 12px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;transition:padding-right .15s,box-shadow .15s;display:none;position:fixed;top:50%;right:0;transform:translateY(-50%);box-shadow:-4px 0 16px #6c5ce759}.dash-ai-rail:hover{padding-right:14px;box-shadow:-6px 0 22px #6c5ce780}.dash-ai-rail-icon{font-size:20px;line-height:1}.dash-ai-rail-label{letter-spacing:.06em;writing-mode:vertical-rl;text-orientation:mixed;font-size:11px;font-weight:700}.dash-ai-panel--drawer .dash-card{margin-bottom:10px;padding:14px}.dash-ai-panel--drawer .dash-ai-header{flex-direction:column;align-items:stretch;gap:10px}.dash-ai-panel--drawer .dash-ai-btn{width:100%}.dash-ai-panel--drawer .dash-ai-grid{grid-template-columns:1fr}@media (width>=861px){.dash-ai-rail{display:flex}}@media (width<=860px){.dash-ai-fab{display:inline-flex}}.dash-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.dash-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-portfolio-select{background:var(--surface);border:1px solid var(--border);border-radius:8px;max-width:320px;display:flex;overflow:hidden}.dash-tabs{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.dash-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.dash-toolbar-left{flex-wrap:wrap;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.dash-search{background:var(--surface);border:1px solid var(--border);max-height:34px;color:var(--text);border-radius:6px;flex:1;width:260px;min-width:140px;max-width:100%;padding:6px 12px;font-size:13px}.dash-table-wrap{background:var(--surface);border:1px solid var(--border);-webkit-overflow-scrolling:touch;border-radius:10px;overflow-x:auto}.dash-table{border-collapse:collapse;width:100%;color:var(--text);font-size:13px}.dash-table--holdings{min-width:820px}.dash-table--transactions{min-width:940px}.dash-table--dividends{min-width:720px}.dash-donut{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:24px;margin-bottom:16px;padding:20px;display:flex}.dash-news-grid{grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;display:grid}.dash-ai-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.dash-ai-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.modal-overlay{background:var(--overlay);z-index:100;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:440px;max-width:100%;max-height:92vh;padding:28px;overflow-y:auto}.modal-panel--wide{width:560px}.auth-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:380px;max-width:100%;padding:36px}@media (width<=860px){.dash-sidebar-backdrop{display:block}.dash-sidebar{box-shadow:var(--shadow-md);transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-100%)}.dash-sidebar--open{transform:translate(0)}.dash-sidebar-close{display:block}.dash-menu-btn{justify-content:center;align-items:center;display:inline-flex}.dash-topbar{padding:12px 14px}.dash-topbar-actions{justify-content:flex-start;width:100%}.dash-inner{padding:16px 14px 24px}.dash-header{flex-direction:column;align-items:stretch;margin-bottom:20px}.dash-header-actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;width:100%}.dash-header-util{margin-left:auto}.dash-currency-toggle{flex:1;min-width:0}.dash-currency-toggle button{flex:1}.dash-portfolio-select{flex:1;min-width:0;max-width:none}.dash-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;margin-bottom:18px;padding-bottom:4px;overflow-x:auto}.dash-tabs::-webkit-scrollbar{display:none}.dash-tabs button{flex-shrink:0}.dash-toolbar{flex-direction:column;align-items:stretch}.dash-toolbar-left{width:100%}.dash-search{width:100%;min-width:0}.dash-toolbar>.dash-toolbar-actions{flex-wrap:wrap;gap:8px;width:100%;display:flex}.dash-toolbar>.dash-toolbar-actions button{flex:1;min-width:140px}.dash-toolbar>button{width:100%}.dash-donut{flex-direction:column;gap:16px;padding:16px}.dash-donut svg{margin:0 auto;width:140px!important}.dash-news-grid{grid-template-columns:1fr;gap:24px}.dash-ai-header{flex-direction:column;align-items:stretch}.dash-ai-header button{width:100%}.dash-ai-grid{grid-template-columns:1fr}.modal-panel{max-height:88vh;padding:20px 18px}.modal-panel .dash-modal-row{flex-direction:column}.modal-panel .dash-modal-type{width:100%!important}.modal-panel .dash-modal-actions{flex-direction:column}.dash-table tbody td[colspan]{text-align:center;justify-content:center;display:block}.dash-table tbody td[colspan]:before{content:none}.auth-card{padding:28px 22px}.dash-table--holdings,.dash-table--transactions{min-width:0}.dash-table thead{display:none}.dash-table tbody tr{border:1px solid var(--border);background:var(--surface-subtle);border-radius:10px;margin-bottom:10px;display:block;overflow:hidden}.dash-table tbody tr:last-child{margin-bottom:0}.dash-table tbody td{border-bottom:1px solid var(--border-subtle);text-align:right;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 14px;display:flex}.dash-table tbody td:last-child{border-bottom:none;flex-wrap:wrap;justify-content:flex-end;gap:6px}.dash-table tbody td:before{content:attr(data-label);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;text-align:left;flex-shrink:0;max-width:45%;font-size:11px}.dash-table tbody td[data-label=""]:before,.dash-table tbody td:not([data-label]):before{content:none}.dash-table-wrap--scroll-hint{position:relative}}@media (width<=480px){.dash-inner{padding:12px 10px 20px}.dash-header h1{font-size:16px!important}.dash-tabs button{padding:7px 14px!important;font-size:12px!important}}.dash-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px}.dash-chart-card--empty{text-align:center;color:var(--text-faint);font-size:13px}.dash-chart-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.dash-chart-title{color:var(--text);letter-spacing:-.01em;margin:0 0 2px;font-size:15px;font-weight:600}.dash-chart-sub{color:var(--text-faint);margin:0;font-size:12px}.dash-chart-stats{text-align:right}.dash-chart-stat-value{font-variant-numeric:tabular-nums;color:var(--text);font-size:22px;font-weight:700}.dash-chart-stat-chg{font-size:12px}.dash-chart-toolbar{flex-wrap:wrap;gap:12px 20px;margin-bottom:12px;display:flex}.dash-chart-toolbar-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dash-chart-toolbar-label{color:var(--text-muted);margin-right:4px;font-size:11px}.dash-chart-loading{color:var(--text-muted);margin:0 0 8px;font-size:12px}.dash-chart-period{color:var(--text-muted);margin:0 0 8px;font-size:12px;line-height:1.5}.dash-chart-period strong{color:var(--text-secondary);font-weight:600}.dash-currency-toggle--toolbar{flex-shrink:0}.dash-currency-toggle--toolbar .dash-segment-btn{padding:6px 12px;font-size:12px}.dash-chart-hint{color:var(--text-muted);margin:0 0 8px;font-size:12px;line-height:1.4}.dash-chart-svg{width:100%;height:300px;display:block}.dash-chart-grid-line{stroke:var(--border-subtle);stroke-width:1px;stroke-dasharray:4 4}.dash-chart-baseline{stroke:var(--accent-text);stroke-width:1px;stroke-dasharray:6 4;opacity:.45}.dash-chart-tick{fill:var(--text-muted);font-size:9px;font-family:var(--font)}.dash-chart-axis-label{fill:var(--text-faint);font-size:10px;font-family:var(--font);font-weight:500}.dash-chart-check{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--border-subtle);background:var(--surface-raised);border-radius:8px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:inline-flex}.dash-chart-check input{opacity:0;width:0;height:0;position:absolute}.dash-chart-check-mark{border:2px solid var(--border);border-radius:4px;flex-shrink:0;width:14px;height:14px;position:relative}.dash-chart-check input:checked+.dash-chart-check-mark{background:currentColor;border-color:currentColor}.dash-chart-check input:checked+.dash-chart-check-mark:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:0;left:3px;transform:rotate(45deg)}.dash-chart-check:has(input:checked){color:var(--accent-text);border-color:var(--accent);background:var(--accent-soft)}.dash-chart-check:has(input:disabled){opacity:.5;cursor:not-allowed}.dash-chart-foot{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:6px;font-size:11px;display:flex}.dash-chart-foot-note{color:var(--text-faint);font-size:11px}.dash-chart-legend{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.dash-chart-legend-line{vertical-align:middle;border-radius:999px;width:14px;height:3px;margin-right:4px;display:inline-block}.dash-chart-legend-line--dashed{opacity:.85}@media (width<=640px){.dash-chart-head{flex-direction:column}.dash-chart-stats{text-align:left}.dash-chart-toolbar-group{width:100%}}.dash-report-empty{text-align:center;padding:60px 20px}.dash-report-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.dash-report-scope{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.dash-report-scope-label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:500}.dash-report-scope-select{min-width:160px;max-width:220px;font-size:13px}.dash-report-header{background:var(--surface);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;padding:20px 22px;display:flex}.dash-report-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:6px;font-size:11px}.dash-report-title{color:var(--text);margin:0 0 6px;font-size:22px;font-weight:600}.dash-report-meta{color:var(--text-muted);margin:0;font-size:13px}.dash-report-asof{color:var(--text-muted);text-align:right;flex-shrink:0;font-size:12px}.dash-report-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px;display:grid}.dash-report-kpi{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.dash-report-kpi-label{color:var(--text-muted);margin-bottom:6px;font-size:11px}.dash-report-kpi-value{color:var(--text);font-size:18px;font-weight:500}.dash-report-kpi-value--accent{color:var(--accent-text)}.dash-report-kpi-value.dash-report-kpi-value--gain{color:var(--gain)}.dash-report-kpi-value.dash-report-kpi-value--loss{color:var(--loss)}.dash-report-print-btn{background:var(--accent);color:#fff;cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font);border:none;border-radius:8px;padding:8px 18px}.dash-report-print-btn:hover{background:var(--accent-hover)}.dash-report-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.dash-report-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.dash-report-card--wide{grid-column:1/-1}.dash-report-card h3{color:var(--text-secondary);margin:0 0 14px;font-size:14px;font-weight:500}.dash-report-table-wrap{overflow-x:auto}.dash-report-aside-grid{display:contents}.dash-report-table{border-collapse:collapse;width:100%;min-width:860px;font-size:12px}.dash-report-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-weight:400}.dash-report-table td{border-bottom:1px solid var(--border-subtle);padding:8px 10px}.dash-report-table td.dash-report-num,.dash-report-table th.dash-report-num{white-space:nowrap;font-variant-numeric:tabular-nums}.dash-report-table td.dash-report-wrap{white-space:normal;word-break:break-word;max-width:11rem}.dash-report-table td.dash-text-gain,.dash-report-table .dash-text-gain{color:var(--gain)}.dash-report-table td.dash-text-loss,.dash-report-table .dash-text-loss{color:var(--loss)}.dash-report-ticker{color:var(--accent-text);font-weight:600}.dash-report-muted{color:var(--text-muted)}.dash-report-bars{margin:0;padding:0;list-style:none}.dash-report-bars li{margin-bottom:12px}.dash-report-bars li:last-child{margin-bottom:0}.dash-report-bar-head{color:var(--text-secondary);justify-content:space-between;margin-bottom:5px;font-size:12px;display:flex}.dash-report-bar-track{background:var(--surface-input);border-radius:999px;height:6px;overflow:hidden}.dash-report-bar-fill{border-radius:999px;height:100%}.dash-report-subhead{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:11px}.dash-report-mini-list{margin:0 0 14px;padding:0;list-style:none}.dash-report-mini-list:last-child{margin-bottom:0}.dash-report-mini-list li{border-bottom:1px solid var(--border-subtle);justify-content:space-between;padding:6px 0;font-size:13px;display:flex}.dash-report-disclaimer{color:var(--text-faint);text-align:center;margin-top:20px;font-size:11px}.dash-report-allocation-strip{background:var(--surface-input);border-radius:999px;height:10px;margin-bottom:10px;display:flex;overflow:hidden}.dash-report-allocation-seg{min-width:2px;transition:width .3s}.dash-report-allocation-legend{color:var(--text-muted);flex-wrap:wrap;gap:10px 16px;margin-bottom:20px;font-size:11px;display:flex}.dash-report-legend-item{align-items:center;gap:5px;display:inline-flex}.dash-report-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dash-report-charts{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;display:grid}.dash-report-chart-card{background:var(--surface);border:1px solid var(--border);break-inside:avoid;border-radius:10px;padding:16px 18px}.dash-report-chart-card--wide{grid-column:1/-1}.dash-report-chart-card h3{color:var(--text-secondary);margin:0 0 12px;font-size:14px;font-weight:500}.dash-report-donut{flex-direction:column;align-items:center;gap:16px;display:flex}.dash-report-donut-svg{aspect-ratio:1;flex-shrink:0;width:100%;max-width:260px;height:auto}.dash-report-donut-center-label{fill:#7a7268;font-size:13px;font-family:var(--font)}.dash-report-donut-center-value{fill:#3d3832;font-size:22px;font-weight:700;font-family:var(--font)}.dash-report-donut-legend{flex-direction:column;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.dash-report-donut-legend li{grid-template-columns:10px 1fr auto auto;align-items:center;gap:8px;font-size:13px;display:grid}.dash-report-donut-legend-label{text-overflow:ellipsis;white-space:nowrap;color:var(--text);overflow:hidden}.dash-report-donut-legend-pct{color:var(--text-muted);font-variant-numeric:tabular-nums}.dash-report-donut-legend-val{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:11px}.dash-report-line-wrap{width:100%}.dash-report-line-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 20px;margin-bottom:8px;display:flex}.dash-report-line-stats{text-align:right}.dash-report-line-stat-value{font-variant-numeric:tabular-nums;color:var(--text);font-size:22px;font-weight:700;line-height:1.2}.dash-report-line-stat-chg{margin-top:2px;font-size:12px}.dash-report-line-toolbar{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.dash-report-benchmark-toggle{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--border-subtle);background:var(--surface-raised);border-radius:8px;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:inline-flex}.dash-report-benchmark-toggle input{accent-color:var(--chart-benchmark)}.dash-report-benchmark-toggle:has(input:checked){color:var(--chart-benchmark);border-color:color-mix(in srgb, var(--chart-benchmark) 40%, var(--border-subtle));background:color-mix(in srgb, var(--chart-benchmark) 8%, var(--surface-raised))}.dash-report-chart-caption{color:var(--text-muted);margin:0 0 10px;font-size:12px;line-height:1.45}.dash-report-bars--chart{margin:0;padding:0;list-style:none}.dash-report-bars--chart li{margin-bottom:10px}.dash-report-bar-label{color:var(--text);font-weight:500}.dash-report-charts--holdings-bars .dash-report-chart-card--wide:first-child{grid-column:1/-1}.dash-report-line-meta{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:13px;display:flex}.dash-report-line-svg{width:100%;height:260px;display:block}.dash-report-line-grid{stroke:var(--border-subtle);stroke-width:1px;stroke-dasharray:4 4}.dash-report-line-port{stroke:var(--chart-port);stroke-width:2.5px;stroke-linejoin:round}.dash-report-line-cost{stroke:var(--chart-cost);stroke-width:2px;stroke-dasharray:6 4;stroke-linejoin:round}.dash-report-line-benchmark{stroke:var(--chart-benchmark);stroke-width:2px;stroke-dasharray:6 4;stroke-linejoin:round}.dash-report-line-axis-label{fill:var(--text-faint);font-size:10px;font-family:var(--font);font-weight:500}.dash-report-line-tick{fill:#7a7268;font-size:10px;font-family:var(--font)}.dash-report-line-legend{color:var(--text-muted);gap:16px;margin-top:8px;font-size:12px;display:flex}.dash-report-line-swatch{vertical-align:middle;border-radius:2px;width:14px;height:3px;margin-right:6px;display:inline-block}.dash-report-line-swatch--port{background:var(--chart-port)}.dash-report-line-swatch--cost{background:var(--chart-cost)}.dash-report-line-swatch--benchmark{background:var(--chart-benchmark)}@media (width<=900px){.dash-report-charts{grid-template-columns:1fr}}.onboarding-overlay{z-index:2000}.onboarding-panel{width:100%;max-width:480px}.onboarding-progress{gap:6px;margin-bottom:20px;display:flex}.onboarding-dot{background:var(--border);border-radius:999px;flex:1;height:3px}.onboarding-dot.active{background:var(--accent)}.onboarding-icon{margin-bottom:12px;font-size:40px}.onboarding-title{color:var(--text);margin:0 0 10px;font-size:18px;font-weight:600}.onboarding-body{color:var(--text-muted);margin:0 0 16px;font-size:14px;line-height:1.7}.onboarding-checklist{color:var(--text-secondary);margin:0 0 8px;padding-left:20px;font-size:13px;line-height:1.9}.onboarding-input{background:var(--surface-input);border:1px solid var(--border-strong);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;margin-bottom:8px;padding:12px 14px;font-size:14px}.onboarding-actions{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.onboarding-btn-primary,.onboarding-btn-ghost{cursor:pointer;border:none;border-radius:8px;padding:11px 18px;font-size:14px;font-weight:500}.onboarding-btn-primary{background:var(--accent);color:var(--text)}.onboarding-btn-ghost{border:1px solid var(--border-strong);color:var(--text-secondary);background:0 0}.onboarding-btn-full{width:100%}.onboarding-skip{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:12px}.onboarding-tour{margin:0;padding:0;list-style:none}.onboarding-tour li{margin-bottom:8px}.onboarding-tour-btn{text-align:left;background:var(--border-subtle);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;gap:3px;width:100%;padding:12px 14px;display:flex}.onboarding-tour-btn:hover{border-color:var(--accent);background:#1e1a2e}.onboarding-tour-label{color:var(--accent-text);font-size:13px;font-weight:600}.onboarding-tour-desc{color:var(--text-muted);font-size:12px}.onboarding-footer{border-top:1px solid var(--border);justify-content:space-between;gap:10px;margin-top:24px;padding-top:16px;display:flex}@media (width<=640px){.dash-report-header{flex-direction:column}.dash-report-asof{text-align:left}.dash-report-table{font-size:11px}}@media print{@page{size:A4 portrait;margin:10mm}body,#root,.dash-shell,.dash-main,.dash-inner,.dash-report{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#111!important;background:#fff!important}.dash-sidebar,.dash-topbar,.dash-sidebar-backdrop,.dash-menu-btn,.dash-ai-drawer,.dash-ai-backdrop,.dash-ai-fab,.dash-ai-rail,.dash-header,.dash-tabs,.dash-report-toolbar,.dash-report-scope,.report-no-print{display:none!important}.dash-shell{min-height:auto!important;display:block!important}.dash-main{width:100%!important}.dash-inner{max-width:none!important;padding:0!important}.dash-report-header,.dash-report-kpi,.dash-report-card,.dash-report-chart-card{break-inside:avoid;box-shadow:none!important;background:#fff!important;border:none!important}.dash-report-allocation-strip{border:1px solid #ddd}.dash-report-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dash-report-grid{flex-direction:column!important;gap:14px!important;display:flex!important}.dash-report-aside-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid!important}.dash-report-card--wide{grid-column:auto!important}.dash-report-table-wrap{overflow:visible!important}.dash-report-table{table-layout:fixed;width:100%!important;min-width:0!important;font-size:9.5px!important}.dash-report-col-print-hide{display:none!important}.dash-report-table--holdings .dash-report-col-ticker{width:22%}.dash-report-table--holdings .dash-report-col-weight{width:12%}.dash-report-table--holdings .dash-report-col-value{width:32%}.dash-report-table--holdings .dash-report-col-pnl,.dash-report-table--holdings .dash-report-col-day{width:17%}.dash-report-table--tx .dash-report-col-date,.dash-report-table--tx .dash-report-col-ticker{width:18%}.dash-report-table--tx .dash-report-col-type{width:12%}.dash-report-table--tx .dash-report-col-shares{width:22%}.dash-report-table--tx .dash-report-col-total{width:30%}.dash-report-chart-card--wide{grid-column:1/-1}.dash-report-donut-svg{width:180px;max-width:none;height:180px}.dash-report-donut-center-label{fill:#666!important;font-size:11px!important}.dash-report-donut-center-value{fill:#111!important;font-size:16px!important}.dash-report-line-tick{fill:#666!important}.dash-report-chart-caption{color:#666!important}.dash-report-title,.dash-report-kpi-value:not(.dash-report-kpi-value--gain):not(.dash-report-kpi-value--loss):not(.dash-report-kpi-value--accent){color:#111!important}.dash-report-kpi-value.dash-report-kpi-value--gain{color:#15803d!important}.dash-report-kpi-value.dash-report-kpi-value--loss{color:#b91c1c!important}.dash-report-meta,.dash-report-asof,.dash-report-kpi-label,.dash-report-muted,.dash-report-card h3,.dash-report-chart-card h3{color:#555!important}.dash-report-table th,.dash-report-table td{color:#111!important;border-color:#ddd!important;padding:4px 5px!important;font-size:9.5px!important;line-height:1.3!important}.dash-report-table td.dash-report-num,.dash-report-table th.dash-report-num{white-space:nowrap!important;word-break:keep-all!important}.dash-report-table td.dash-report-wrap{word-break:break-word;white-space:normal!important}.dash-report-ticker{color:#333!important}.dash-report-title{font-size:20px!important}.dash-report-meta,.dash-report-asof,.dash-report-kpi-label,.dash-report-chart-caption,.dash-report-line-legend,.dash-report-line-tick,.dash-report-donut-legend li{font-size:11px!important;line-height:1.35!important}.dash-report-kpi-value,.dash-report-line-stat-value{font-size:18px!important}.dash-report-donut-legend-label{word-break:break-word;white-space:normal!important;text-overflow:clip!important;overflow:visible!important}.dash-report-bar-track{background:#eee!important}.dash-report-bar-fill,.dash-report-allocation-seg,.dash-report-donut-svg path,.dash-report-donut-svg circle,.dash-report-line-svg path,.dash-report-line-svg polyline,.dash-chart-svg polyline{-webkit-print-color-adjust:exact;print-color-adjust:exact}.dash-report-table td.dash-text-gain,.dash-report-table .dash-text-gain{color:#15803d!important}.dash-report-table td.dash-text-loss,.dash-report-table .dash-text-loss{color:#b91c1c!important}.dash-text-gain{color:#15803d!important}.dash-text-loss{color:#b91c1c!important}.dash-report-disclaimer{color:#666!important}.dash-report-kpi,.dash-report-card,.dash-report-chart-card,.dash-report-mini-list li,.dash-report-table tr{break-inside:avoid;page-break-inside:avoid}.dash-report-table--holdings,.dash-report-table--tx{break-inside:auto;page-break-inside:auto}}.dash-plan-badge{vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.dash-plan-badge--pro{background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-muted)}.dash-sub-page{max-width:960px}.dash-sub-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.dash-sub-title{margin:0 0 8px;font-size:22px;font-weight:700}.dash-sub-lead{color:var(--text-muted);max-width:520px;margin:0;font-size:14px;line-height:1.6}.dash-sub-status{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);min-width:180px;padding:14px 18px}.dash-sub-status--pro{border-color:var(--accent-muted);background:var(--accent-soft)}.dash-sub-status-label{color:var(--text-muted);margin-bottom:4px;font-size:11px;display:block}.dash-sub-status-plan{color:var(--text);font-size:20px;font-weight:700;display:block}.dash-sub-status-note{color:var(--text-muted);margin-top:6px;font-size:12px;display:block}.dash-sub-quota{margin-bottom:20px}.dash-sub-quota-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.dash-sub-quota-item{flex-direction:column;gap:4px;font-size:13px;display:flex}.dash-sub-quota-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-elevated,var(--surface));padding:12px 14px}.dash-sub-quota-card--exhausted{border-color:color-mix(in srgb, var(--loss) 35%, var(--border))}.dash-sub-quota-card-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.dash-sub-quota-card-label{color:var(--text-muted);font-size:13px;line-height:1.3}.dash-sub-quota-card-num{color:var(--text);font-size:20px;font-weight:600;line-height:1}.dash-sub-quota-card-num strong{font-weight:700}.dash-sub-quota-card-of{color:var(--text-muted);font-size:14px;font-weight:500}.dash-sub-quota-bar{background:var(--border);border-radius:99px;height:6px;margin-bottom:6px;overflow:hidden}.dash-sub-quota-bar-fill{background:var(--accent);border-radius:99px;height:100%;transition:width .2s}.dash-sub-quota-card--exhausted .dash-sub-quota-bar-fill{background:var(--loss);width:0!important}.dash-sub-quota-card-foot{color:var(--text-faint);font-size:11px}.dash-sub-cancel-notice{border-color:color-mix(in srgb, var(--warning,#e8a317) 45%, var(--border));background:color-mix(in srgb, var(--warning,#e8a317) 8%, var(--surface));margin-bottom:16px;padding:12px 14px}.dash-sub-plans{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:20px;display:grid}.dash-sub-plan{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:20px;position:relative}.dash-sub-plan--pro{border-color:var(--accent-muted);box-shadow:0 0 0 1px var(--accent-soft)}.dash-sub-plan--current{outline:2px solid var(--accent);outline-offset:2px}.dash-sub-plan-badge{background:var(--accent);color:var(--on-accent,var(--text));border-radius:999px;padding:3px 8px;font-size:10px;font-weight:600;position:absolute;top:12px;right:12px}.dash-sub-plan-name{margin:0 0 4px;font-size:18px;font-weight:700}.dash-sub-plan-price{color:var(--accent-text);margin-bottom:16px;font-size:24px;font-weight:700}.dash-sub-plan-features{margin:0 0 16px;padding:0;list-style:none}.dash-sub-plan-features li{border-bottom:1px solid var(--border-subtle);justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;display:flex}.dash-sub-feature-label{color:var(--text-secondary)}.dash-sub-feature-val{text-align:right;font-weight:500}.dash-sub-upgrade-btn{width:100%}.dash-sub-plan-active{color:var(--gain);margin:0;font-size:13px;font-weight:500}.dash-sub-note{margin-bottom:20px}.dash-sub-steps{color:var(--text-secondary);margin:0;padding-left:1.25rem;font-size:13px;line-height:1.75}.dash-sub-steps li+li{margin-top:4px}.dash-sub-pay-tabs{flex-wrap:wrap;gap:4px;display:inline-flex}.dash-sub-pay-panel{margin-top:4px}.dash-sub-payment{grid-template-columns:minmax(200px,280px) 1fr;align-items:start;gap:20px;margin-top:16px;display:grid}@media (width<=720px){.dash-sub-payment{grid-template-columns:1fr}}.dash-sub-qr-wrap{text-align:center}.dash-sub-qr{border-radius:var(--radius);border:1px solid var(--border-subtle);background:#fff;max-width:100%;height:auto}.dash-sub-receipt-preview{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);object-fit:contain;max-width:100%;max-height:200px;margin-top:12px;display:block}.dash-sub-file{width:100%;color:var(--text-secondary);font-size:13px}.dash-link-btn{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.dash-ticket-attachments{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:12px;display:grid}.dash-ticket-attachment-item{position:relative}.dash-ticket-attachment-remove{color:var(--text-loss);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:0;font-size:12px}.dash-admin-attachments-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.dash-admin-attachment-cell{min-width:0}.dash-sub-compare{margin-bottom:20px}.dash-sub-table-wrap{overflow-x:auto}.dash-sub-table{border-collapse:collapse;width:100%;font-size:13px}.dash-sub-table th,.dash-sub-table td{text-align:left;border-bottom:1px solid var(--border-subtle);padding:10px 12px}.dash-sub-table th{color:var(--text-muted);font-size:12px;font-weight:600}.dash-sub-table-pro{color:var(--accent-text);font-weight:500}.dash-sub-retry{margin-top:12px}
