:root,[data-theme=light]{--color-primary: #5367f5;--color-primary-muted: rgba(83, 103, 245, .08);--color-success: #00c853;--color-warning: #ffb300;--color-error: #e53935;--color-bg: #f7f8fa;--color-surface: #ffffff;--color-surface-elevated: #ffffff;--color-text-primary: #1a1a2e;--color-text-secondary: #6b7280;--color-separator: #e5e7eb;--color-glass: rgba(255, 255, 255, .72);--groww-blue: #5367f5;--groww-blue-deep: #3948d5;--groww-blue-light: #7b93ff;--groww-blue-soft: #eef1ff;--groww-mint: #00d09c;--groww-panel-bg: linear-gradient(145deg, #f9faff 0%, #f7f8fa 50%, #f8f9ff 100%);--groww-blob-1: rgba(83, 103, 245, .06);--groww-blob-2: rgba(123, 147, 255, .05);--groww-blob-3: rgba(0, 208, 156, .03);--grid-idle-border: rgba(83, 103, 245, .03);--grid-peak-bg: rgba(83, 103, 245, .035);--grid-peak-shadow: rgba(83, 103, 245, .05);--grid-peak-border: rgba(83, 103, 245, .1);--grid-alt-idle-border: rgba(123, 147, 255, .02);--grid-alt-peak-bg: rgba(123, 147, 255, .025);--grid-alt-peak-shadow: rgba(123, 147, 255, .04);--grid-alt-peak-border: rgba(123, 147, 255, .08);--grid-layer-opacity: .2;--grid-layer-alt-opacity: .1;--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", sans-serif;--text-large-title: 700 34px/41px var(--font-family);--text-title-1: 700 28px/34px var(--font-family);--text-title-2: 600 22px/28px var(--font-family);--text-title-3: 600 20px/25px var(--font-family);--text-headline: 600 17px/22px var(--font-family);--text-body: 400 17px/22px var(--font-family);--text-callout: 400 16px/21px var(--font-family);--text-subhead: 400 15px/20px var(--font-family);--text-footnote: 400 13px/18px var(--font-family);--text-caption: 400 12px/16px var(--font-family);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12);--motion-fast: .2s ease-out;--motion-normal: .35s ease-out}[data-theme=dark]{--color-primary: #6b7ff7;--color-primary-muted: rgba(107, 127, 247, .15);--color-success: #00e676;--color-warning: #ffc107;--color-error: #ef5350;--color-bg: #0d0d0f;--color-surface: #1c1c1e;--color-surface-elevated: #2c2c2e;--color-text-primary: #f5f5f7;--color-text-secondary: #98989d;--color-separator: #38383a;--color-glass: rgba(28, 28, 30, .72);--groww-blue: #6b7ff7;--groww-blue-deep: #5367f5;--groww-blue-light: #8fa0ff;--groww-blue-soft: #1a1d33;--groww-mint: #00e6a8;--groww-panel-bg: linear-gradient(145deg, #0f1018 0%, #0d0d0f 50%, #10121c 100%);--groww-blob-1: rgba(107, 127, 247, .12);--groww-blob-2: rgba(83, 103, 245, .09);--groww-blob-3: rgba(0, 230, 168, .06);--grid-idle-border: rgba(107, 127, 247, .07);--grid-peak-bg: rgba(107, 127, 247, .1);--grid-peak-shadow: rgba(107, 127, 247, .14);--grid-peak-border: rgba(143, 160, 255, .22);--grid-alt-idle-border: rgba(0, 230, 168, .05);--grid-alt-peak-bg: rgba(0, 230, 168, .07);--grid-alt-peak-shadow: rgba(0, 230, 168, .1);--grid-alt-peak-border: rgba(0, 230, 168, .16);--grid-layer-opacity: .34;--grid-layer-alt-opacity: .18;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .32);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .48)}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text-primary)}a{color:var(--color-primary)}.app-shell{max-width:768px;margin:0 auto;min-height:100vh;padding:var(--space-md) var(--space-md) 88px}.app-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.app-topbar-caption{font:var(--text-caption);color:var(--color-text-secondary)}.theme-toggle{font:var(--text-subhead);padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-separator);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;min-height:44px}.large-title{font:var(--text-large-title);margin:0 0 var(--space-sm);letter-spacing:-.02em}.section-title{font:var(--text-title-2);margin:0 0 var(--space-md)}.disclaimer{background:var(--color-surface);border-left:4px solid var(--color-warning);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm)}.disclaimer strong{font:var(--text-subhead)}.disclaimer p{font:var(--text-footnote);color:var(--color-text-secondary);margin:4px 0 0}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm);margin-bottom:var(--space-md);transition:box-shadow var(--motion-fast)}.card.glass{background:var(--color-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--color-separator)}.caption{font:var(--text-caption);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;font:var(--text-caption);background:var(--color-primary-muted);color:var(--color-primary);padding:2px 8px;border-radius:999px;margin-bottom:var(--space-sm)}.fund-name{font:var(--text-headline);margin:0}.price-row{display:flex;align-items:baseline;gap:var(--space-sm);margin-top:var(--space-sm)}.price{font:var(--text-headline)}.change{font:var(--text-footnote);padding:2px 8px;border-radius:999px}.change.gain{color:var(--color-success);background:#00c8531f}.change.loss{color:var(--color-error);background:#e539351f}.change.neutral{color:var(--color-text-secondary)}.footnote{font:var(--text-footnote);color:var(--color-text-secondary);margin:8px 0 0}.btn{font:var(--text-subhead);padding:12px 16px;border-radius:var(--radius-md);border:none;cursor:pointer;min-height:44px;transition:opacity var(--motion-fast)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;width:100%}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-separator);width:100%}.btn-chip{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-separator);text-align:left;font:var(--text-footnote);padding:10px 12px;border-radius:var(--radius-sm)}.chip-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-md)}.fund-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-md)}.chat-thread{display:flex;flex-direction:column;gap:var(--space-md);margin:var(--space-md) 0}.bubble-row{display:flex;width:100%}.bubble-row.user{justify-content:flex-end}.bubble-row.assistant{justify-content:flex-start}.bubble{max-width:85%;padding:12px 16px;border-radius:var(--radius-md);font:var(--text-body);white-space:pre-wrap;word-wrap:break-word}.bubble.user{background:var(--color-primary-muted);border-bottom-right-radius:4px}.bubble.assistant{background:var(--color-surface);box-shadow:var(--shadow-sm);border-bottom-left-radius:4px}.bubble.refusal{border:1px solid var(--color-warning)}.citation{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-separator);font:var(--text-footnote);color:var(--color-text-secondary)}.chat-input-row{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.chat-input{flex:1;font:var(--text-body);padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--color-separator);background:var(--color-surface);color:var(--color-text-primary);min-height:44px}.portfolio-value{font:var(--text-title-1);margin:var(--space-sm) 0}.gain-positive{color:var(--color-success);font:var(--text-headline)}.gain-negative{color:var(--color-error);font:var(--text-headline)}.progress-track{background:var(--color-separator);border-radius:999px;height:8px;margin:var(--space-sm) 0;overflow:hidden}.progress-fill{background:var(--color-primary);height:100%;border-radius:999px}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.compare-header{font:var(--text-headline);text-align:center;padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-separator)}.compare-field{padding:var(--space-sm) 0;border-bottom:1px solid var(--color-separator)}.compare-label{font:var(--text-caption);color:var(--color-text-secondary);text-transform:uppercase}.compare-value{font:var(--text-callout);margin-top:2px}.donut-wrap{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap}.donut{width:120px;height:120px;border-radius:50%;flex-shrink:0}.legend-item{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);font:var(--text-subhead)}.legend-dot{width:10px;height:10px;border-radius:50%}.search-input,.select-input{width:100%;font:var(--text-body);padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--color-separator);background:var(--color-surface);color:var(--color-text-primary);margin-bottom:var(--space-md);min-height:44px}.segmented{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.segmented button{flex:1;min-width:80px}.segmented button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;background:var(--color-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--color-separator);padding:var(--space-sm) var(--space-md)}.bottom-nav-inner{max-width:768px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-xs)}.nav-btn{font:var(--text-caption);padding:8px 4px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--color-text-secondary);cursor:pointer;min-height:44px}.nav-btn.active{background:var(--color-primary-muted);color:var(--color-primary);border-color:var(--color-primary)}.loading{font:var(--text-footnote);color:var(--color-text-secondary);padding:var(--space-md)}.error-banner{background:#e539351a;border:1px solid var(--color-error);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);font:var(--text-footnote);color:var(--color-error)}.link-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.link-row .btn-secondary{width:auto;flex:1}.app-loading-shell{min-height:100vh;display:grid;place-items:center;padding:var(--space-md)}.chat-app{display:flex;min-height:100vh;background:var(--color-bg);color:var(--color-text-primary)}.chat-sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:20}.chat-sidebar-backdrop.open{display:block}.chat-sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-separator);min-height:100vh}.chat-sidebar-header{padding:var(--space-md);border-bottom:1px solid var(--color-separator);display:flex;flex-direction:column;gap:var(--space-md)}.chat-sidebar-brand-row{display:flex;align-items:center;gap:var(--space-sm)}.groww-logo{display:inline-flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.groww-logo-wordmark{font:700 22px/1 var(--font-family);color:var(--groww-blue);letter-spacing:-.03em;text-transform:lowercase}.chat-sidebar-brand{font:var(--text-headline);margin:0}.chat-sidebar-caption{font:var(--text-footnote);color:var(--color-text-secondary);margin:4px 0 0}.btn-new-chat{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 14px;font:var(--text-subhead);cursor:pointer;min-height:44px}.chat-sidebar-list{flex:1;overflow-y:auto;padding:var(--space-sm)}.chat-sidebar-item-wrap{display:flex;align-items:stretch;gap:4px;margin-bottom:4px}.chat-sidebar-item{flex:1;text-align:left;border:1px solid transparent;background:transparent;border-radius:var(--radius-sm);padding:10px 12px;cursor:pointer;min-height:44px;color:var(--color-text-primary)}.chat-sidebar-item.active{background:var(--color-primary-muted);border-color:var(--color-primary)}.chat-sidebar-item-title{display:block;font:var(--text-subhead);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-sidebar-item-date{display:block;font:var(--text-caption);color:var(--color-text-secondary);margin-top:2px}.chat-sidebar-delete{width:36px;border:none;background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:opacity var(--motion-fast)}.chat-sidebar-item-wrap:hover .chat-sidebar-delete,.chat-sidebar-item-wrap:focus-within .chat-sidebar-delete{opacity:1}.chat-sidebar-footer{padding:var(--space-md);border-top:1px solid var(--color-separator)}.chat-sidebar-disclaimer{font:var(--text-caption);color:var(--color-text-secondary);margin:0}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh;position:relative;overflow:hidden}.chat-main-groww{background:var(--groww-panel-bg)}.chat-main-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.chat-bg-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--groww-panel-bg)}.chat-bg-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;will-change:transform}[data-theme=dark] .chat-bg-blob{opacity:.7}.chat-bg-blob-1{width:420px;height:420px;background:var(--groww-blob-1);top:-8%;right:-6%;animation:groww-float-1 18s ease-in-out infinite}.chat-bg-blob-2{width:360px;height:360px;background:var(--groww-blob-2);bottom:10%;left:-8%;animation:groww-float-2 22s ease-in-out infinite}.chat-bg-blob-3{width:280px;height:280px;background:var(--groww-blob-3);top:42%;right:18%;animation:groww-float-3 16s ease-in-out infinite}.chat-bg-grid{display:none}.chat-bg-grid-cells{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;gap:0;pointer-events:none;opacity:var(--grid-layer-opacity);-webkit-mask-image:radial-gradient(ellipse at center,black 25%,transparent 92%);mask-image:radial-gradient(ellipse at center,black 25%,transparent 92%)}.chat-bg-grid-cells-alt{opacity:var(--grid-layer-alt-opacity);mix-blend-mode:normal}.chat-grid-cell{width:44px;height:44px;border:1px solid var(--grid-idle-border);background:transparent;animation:grid-cell-glow 5.6s ease-in-out infinite;animation-delay:calc(var(--diag) * -.11s)}.chat-grid-cell-alt{animation-name:grid-cell-glow-alt;animation-duration:7s;animation-delay:calc(var(--diag) * -.14s);border-color:var(--grid-alt-idle-border)}@keyframes grid-cell-glow{0%,68%,to{background:transparent;box-shadow:none;border-color:var(--grid-idle-border)}22%{background:var(--grid-peak-bg);box-shadow:inset 0 0 10px var(--grid-peak-shadow);border-color:var(--grid-peak-border)}}@keyframes grid-cell-glow-alt{0%,72%,to{background:transparent;box-shadow:none;border-color:var(--grid-alt-idle-border)}26%{background:var(--grid-alt-peak-bg);box-shadow:inset 0 0 8px var(--grid-alt-peak-shadow);border-color:var(--grid-alt-peak-border)}}@media(prefers-reduced-motion:reduce){.chat-bg-blob{animation:none}.chat-grid-cell,.chat-grid-cell-alt{animation:none;background:var(--grid-peak-bg)}}@keyframes groww-float-1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-40px,30px) scale(1.08)}}@keyframes groww-float-2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(35px,-25px) scale(1.06)}}@keyframes groww-float-3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-20px,35px) scale(.94)}}.chat-main-content{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;min-height:100vh}.chat-main-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid rgba(83,103,245,.15);background:#ffffff8c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}[data-theme=dark] .chat-main-header{background:#121528b8;border-bottom-color:#6b7ff733}.chat-main-title-row{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.chat-main-title-row .chat-main-title{margin:0}.chat-menu-btn{display:none;border:1px solid var(--color-separator);background:var(--color-bg);border-radius:var(--radius-sm);width:44px;height:44px;cursor:pointer;color:var(--color-text-primary)}.chat-main-title-wrap{flex:1;min-width:0}.chat-main-title{font:var(--text-title-3);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--groww-blue-deep)}[data-theme=dark] .chat-main-title{color:var(--groww-blue-light)}.chat-main-caption{font:var(--text-footnote);color:var(--color-text-secondary);margin:4px 0 0}.chat-empty-logo{margin:0 auto var(--space-md);filter:drop-shadow(0 8px 24px rgba(83,103,245,.25))}.chat-empty-title{font:var(--text-title-2);margin:0 0 var(--space-sm);color:var(--groww-blue-deep)}[data-theme=dark] .chat-empty-title{color:var(--groww-blue-light)}.btn-chip-groww{background:#ffffffb8;border-color:#5367f540;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast)}.btn-chip-groww:hover:not(:disabled){border-color:var(--groww-blue);box-shadow:0 4px 16px #5367f526;transform:translateY(-1px)}[data-theme=dark] .btn-chip-groww{background:#1c1c1eb8;border-color:#6b7ff74d}.chat-thinking{color:var(--groww-blue);font-weight:600}.chat-composer-groww{margin:0 var(--space-lg) var(--space-lg);padding:var(--space-sm);border:1px solid rgba(83,103,245,.2);border-radius:var(--radius-xl);background:#ffffffc7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #5367f51f,0 0 0 1px #fff6 inset}[data-theme=dark] .chat-composer-groww{background:#1c1c1ed1;border-color:#6b7ff747;box-shadow:0 8px 32px #00000059,0 0 0 1px #6b7ff71f inset}.chat-input-groww{border:none;background:transparent;box-shadow:none}.chat-input-groww:focus{outline:none}.chat-composer-groww .chat-send-btn{background:linear-gradient(135deg,var(--groww-blue) 0%,var(--groww-blue-deep) 100%);box-shadow:0 4px 14px #5367f559}.chat-main-groww .bubble.user{background:linear-gradient(135deg,#5367f52e,#5367f51a);border:1px solid rgba(83,103,245,.2)}.chat-main-groww .bubble.assistant{background:#ffffffe0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(83,103,245,.1)}[data-theme=dark] .chat-main-groww .bubble.assistant{background:#1c1c1ee0;border-color:#6b7ff726}.chat-status-banner{margin:var(--space-sm) var(--space-lg) 0}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-lg)}.chat-empty{max-width:720px;margin:10vh auto 0;text-align:center}.chat-empty-body{font:var(--text-body);color:var(--color-text-secondary);margin:0 0 var(--space-lg)}.chat-prompt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-sm);text-align:left}.chat-composer{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg) var(--space-lg);border-top:1px solid var(--color-separator);background:var(--color-surface)}.chat-composer-groww{border-top:none}.chat-composer-error{margin:0 var(--space-lg) var(--space-sm)}.chat-send-btn{width:auto;min-width:88px}.chat-thread{max-width:820px;margin:0 auto;width:100%}.chat-thread .fund-card{max-width:360px}@media(max-width:900px){.chat-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:30;transform:translate(-100%);transition:transform var(--motion-normal);box-shadow:var(--shadow-md)}.chat-sidebar.open{transform:translate(0)}.chat-menu-btn{display:inline-flex;align-items:center;justify-content:center}}
