:root{--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "DM Sans", system-ui, sans-serif;--font: var(--font-sans);--bg: #fafaf9;--fg: #1c1917;--text: var(--fg);--textMuted: #78716c;--muted: var(--textMuted);--surface: #f5f5f4;--surface2: #e7e5e4;--accent: #0f766e;--accent-hover: #0d9488;--border: #e7e5e4;--card: #fff;--green: #059669;--red: #dc2626;--amber: #d97706;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .08)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}.landing{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem 2rem;background:linear-gradient(180deg,var(--bg) 0%,#f5f5f4 100%)}.landing-ticker{position:absolute;top:0;left:0;right:0;padding:.6rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);overflow:hidden}.landing-ticker-inner{display:flex;justify-content:center;flex-wrap:wrap;gap:1.5rem 2rem}.landing-ticker-item{display:inline-flex;align-items:baseline;gap:.5rem;font-size:.9rem}.ticker-name{color:var(--muted);font-weight:500}.ticker-value{font-weight:600;color:var(--fg)}.ticker-change{font-size:.8rem;font-weight:500}.ticker-change.up{color:var(--green)}.ticker-change.down{color:var(--red)}.landing-reviews{margin-top:3rem;max-width:480px;width:100%;text-align:center}.review-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem 1.75rem;box-shadow:var(--shadow)}.review-quote{margin:0 0 1rem;font-size:1rem;line-height:1.6;color:var(--fg);font-style:italic}.review-footer{display:flex;flex-direction:column;gap:.2rem}.review-footer strong{font-size:.95rem}.review-role{font-size:.85rem;color:var(--muted)}.review-dots{display:flex;justify-content:center;gap:.5rem;margin-top:1rem}.review-dot{width:8px;height:8px;border-radius:50%;border:none;background:var(--surface2);cursor:pointer;padding:0;transition:background .2s}.review-dot:hover{background:var(--muted)}.review-dot.active{background:var(--accent);transform:scale(1.2)}.landing-header{text-align:center;margin-bottom:2.5rem}.landing-header h1{font-family:var(--font-serif);font-size:clamp(2rem,5vw,3rem);font-weight:400;margin:0 0 .5rem;letter-spacing:-.02em}.tagline{margin:0;color:var(--muted);font-size:1.05rem}.search-wrap{width:100%;max-width:520px;position:relative}.search-inner{position:relative;display:flex;align-items:center}.search-input{width:100%;padding:1rem 1.25rem;font-family:var(--font-sans);font-size:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--fg);box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s}.search-input::placeholder{color:var(--muted)}.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0f766e26}.search-input:hover{border-color:#d6d3d1}.search-spinner{position:absolute;right:1rem;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.suggestions-list{list-style:none;margin:.5rem 0 0;padding:.5rem 0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:320px;overflow-y:auto}.suggestion-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;cursor:pointer;border-radius:var(--radius-sm);transition:background .15s}.suggestion-item:hover,.suggestion-item.highlight{background:#f5f5f4}.suggestion-symbol{font-weight:600;min-width:6rem;color:var(--fg)}.suggestion-name{flex:1;color:var(--muted);font-size:.95rem}.suggestion-badge{font-size:.7rem;padding:.2rem .5rem;background:#f0fdfa;color:var(--accent);border-radius:4px;font-weight:500}.report-page{min-height:100vh;display:flex;flex-direction:column;padding:1.5rem 1rem 2rem;max-width:1280px;margin:0 auto;width:100%}.report-header{margin-bottom:1.5rem}.report-sticky-nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;flex-direction:column;padding:.45rem 1.5rem 0;background:var(--card);border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0000001f;animation:sticky-nav-in .15s ease}@keyframes sticky-nav-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.report-sticky-top{display:flex;align-items:center;gap:.75rem;padding-bottom:.35rem}.report-sticky-symbol{font-weight:700;font-size:1rem;color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.report-sticky-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.report-sticky-sections{display:flex;gap:.15rem;overflow-x:auto;scrollbar-width:none;padding-bottom:0}.report-sticky-sections::-webkit-scrollbar{display:none}.report-sticky-section-btn{background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:var(--font-sans);font-size:.875rem;color:var(--textMuted);padding:.35rem .75rem;white-space:nowrap;transition:color .15s,border-color .15s;border-radius:0}.report-sticky-section-btn:hover{color:var(--text)}.report-sticky-section-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}@media (max-width: 600px){.report-sticky-nav{padding:.4rem .75rem 0}.report-sticky-symbol{font-size:.875rem}.report-sticky-section-btn{font-size:.8rem;padding:.3rem .55rem}.report-sticky-actions{gap:.35rem}.download-label{display:none}}.report-header-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.report-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.report-download-btn{font-family:var(--font-sans);font-size:.875rem;padding:.4rem .75rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer}.report-download-btn:hover:not(:disabled){background:var(--accent-hover)}.report-download-btn:disabled{opacity:.7;cursor:not-allowed}.report-actions-pdf{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.report-pdf-error{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-sm);color:#991b1b;font-size:.8125rem;max-width:28rem}.report-pdf-error-dismiss{padding:0 .25rem;background:none;border:none;color:#991b1b;font-size:1.1rem;line-height:1;cursor:pointer;opacity:.8}.report-pdf-error-dismiss:hover{opacity:1}.report-feedback{display:flex;align-items:center;gap:.35rem}.feedback-label{font-size:.8rem;color:var(--muted);margin-right:.25rem}.feedback-btn{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.35rem .5rem;cursor:pointer;font-size:.875rem}.feedback-btn:hover:not(:disabled){background:#eee}.feedback-btn:disabled{opacity:.6;cursor:default}.feedback-comment-wrap{margin-top:1rem;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.feedback-comment{width:100%;font-family:var(--font-sans);font-size:.9rem;padding:.5rem;border:1px solid var(--border);border-radius:6px;resize:vertical;margin-bottom:.5rem}.feedback-comment-actions{display:flex;gap:.5rem;justify-content:flex-end}.feedback-cancel,.feedback-submit{font-size:.85rem;padding:.35rem .75rem;border-radius:6px;cursor:pointer}.feedback-cancel{background:transparent;border:1px solid var(--border);color:var(--fg)}.feedback-submit{background:var(--accent);color:#fff;border:none}.back-btn{font-family:var(--font-sans);font-size:.9rem;color:var(--accent);background:none;border:none;cursor:pointer;padding:.25rem 0;margin-bottom:.5rem}.back-btn:hover{color:var(--accent-hover);text-decoration:underline}.report-sticky-nav .back-btn{margin-bottom:0}.report-header h1{font-family:"Inter",var(--font-sans);font-size:1.75rem;font-weight:700;letter-spacing:.02em;margin:0 0 .25rem}.report-subtitle{margin:0;color:var(--muted);font-size:.95rem}.report-login-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.report-login-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1.5rem;max-width:360px;box-shadow:0 4px 20px #00000026}.report-login-modal h2{margin:0 0 .5rem;font-size:1.15rem;font-weight:600}.report-login-modal p{margin:0 0 1.25rem;font-size:.9rem;color:var(--muted)}.report-login-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.report-gated-wrap{position:relative;min-height:280px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.report-gated-blur{filter:blur(8px);pointer-events:none;-webkit-user-select:none;user-select:none;padding:1.5rem;min-height:260px}.report-gated-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:color-mix(in srgb,var(--bg) 55%,transparent);padding:1.5rem}.report-gated-lock{display:flex;align-items:center;justify-content:center;color:var(--muted)}.report-gated-text{margin:0;font-size:.95rem;color:var(--fg);text-align:center;max-width:280px}.report-gated-btn{cursor:pointer}.report-error{padding:1.5rem;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);color:#991b1b}.report-error p{margin:0 0 .75rem}.report-error button{font-family:var(--font-sans);padding:.5rem 1rem;background:#dc2626;color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer}.report-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.loader-ticker-wrap{width:100%;max-width:400px;overflow:hidden;margin-bottom:1.5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.loader-ticker{display:flex;gap:2rem;padding:.6rem 0;animation:ticker-scroll 18s linear infinite}.loader-ticker span{font-family:var(--font-sans);font-size:.8rem;font-weight:600;color:var(--textMuted);white-space:nowrap}.loader-ticker span:nth-child(odd){color:var(--green)}.loader-ticker span:nth-child(3n){color:var(--red)}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.loader-ticker{animation:none}}.loader-chart-bars{display:flex;align-items:flex-end;gap:6px;height:48px;margin-bottom:1.5rem}.loader-chart-bars span{width:8px;min-height:8px;background:var(--accent);border-radius:2px;animation:chart-pulse 1.2s ease-in-out infinite}.loader-chart-bars span:nth-child(1){animation-delay:0s;height:20px}.loader-chart-bars span:nth-child(2){animation-delay:.15s;height:32px}.loader-chart-bars span:nth-child(3){animation-delay:.3s;height:24px}.loader-chart-bars span:nth-child(4){animation-delay:.45s;height:40px}.loader-chart-bars span:nth-child(5){animation-delay:.6s;height:28px}.loader-chart-bars span:nth-child(6){animation-delay:.75s;height:36px}.loader-chart-bars span:nth-child(7){animation-delay:.9s;height:18px}@keyframes chart-pulse{0%,to{opacity:.4;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}@media (prefers-reduced-motion: reduce){.loader-chart-bars span{animation:none;opacity:.8}}.loader-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1.25rem}.report-loader p{margin:0;color:var(--fg);font-size:1.05rem}.loader-hint{margin-top:.5rem!important;color:var(--muted);font-size:.9rem!important}.report-container{flex:1;min-height:400px;border:1px solid var(--border);border-radius:var(--radius);overflow:auto;background:var(--card);box-shadow:var(--shadow)}.report-markdown{line-height:1.6}.report-markdown h2{font-size:1.1rem;font-weight:600;margin:1.25rem 0 .5rem;color:var(--fg)}.report-markdown h2:first-child{margin-top:0}.report-markdown h3{font-size:1rem;font-weight:600;margin:1rem 0 .4rem}.report-markdown p{margin:0 0 .75rem}.report-markdown ul,.report-markdown ol{margin:0 0 .75rem;padding-left:1.5rem}.report-markdown li{margin-bottom:.25rem}.report-markdown table{width:100%;border-collapse:collapse;margin:.75rem 0;font-size:.9rem}.report-markdown th,.report-markdown td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.report-markdown th{background:var(--surface);font-weight:600;color:var(--fg)}.report-markdown a{color:var(--accent);text-decoration:none}.report-markdown a:hover{text-decoration:underline}.report-markdown.sectoral-bullet p{margin:0;display:inline}.report-markdown.sectoral-bullet p+p{margin-top:.25rem;display:block}.header-auth{position:absolute;top:1rem;right:1.5rem}.auth-btn{padding:.45rem 1rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.auth-btn:hover{opacity:.85}.google-btn{background:#4285f4;color:#fff}.logout-btn{background:var(--border);color:var(--fg);margin-left:.5rem}.user-chip{display:flex;align-items:center;gap:.5rem}.user-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.user-name{font-size:.85rem;font-weight:500;color:var(--fg)}.landing-header{position:relative}.app-header{height:52px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;box-shadow:0 1px 4px #0000000f}.app-header-inner{display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:0 auto;padding:0 1rem;height:100%;width:100%}.app-header-logo{font-weight:700;font-size:1rem;color:var(--fg);letter-spacing:-.01em}.app-header-auth{display:flex;align-items:center}.google-signin-btn{display:flex;align-items:center;gap:.5rem;padding:.4rem 1rem;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--fg);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s}.google-signin-btn:hover{background:var(--bg);box-shadow:0 1px 4px #0000001a}.user-menu{position:relative}.user-avatar-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--border)}.user-avatar-fallback{width:32px;height:32px;border-radius:50%;background:#4285f4;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000001f;z-index:200;overflow:hidden}.user-dropdown-info{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem}.user-dropdown-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.user-dropdown-avatar.user-avatar-fallback{display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600}.user-dropdown-name{font-weight:600;font-size:.875rem;color:var(--fg)}.user-dropdown-email{font-size:.78rem;color:var(--muted);margin-top:1px}.user-dropdown-divider{border:none;border-top:1px solid var(--border);margin:0}.user-dropdown-item{display:block;width:100%;padding:.65rem 1rem;text-align:left;background:none;border:none;font-size:.875rem;cursor:pointer;color:var(--fg);transition:background .1s}.user-dropdown-item:hover{background:var(--bg)}.signout-item{color:#e53e3e}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:199}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;flex-direction:column;gap:.5rem;z-index:600;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-radius:8px;min-width:220px;max-width:360px;font-size:.875rem;line-height:1.45;box-shadow:0 4px 20px #00000038;pointer-events:all;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.toast-error{background:#2d1515;border:1px solid #7f1d1d;color:#fca5a5}.toast-success{background:#0f2318;border:1px solid #14532d;color:#86efac}.toast-info{background:#0f1e2d;border:1px solid #1e3a5f;color:#93c5fd}.toast-msg{flex:1}.toast-dismiss{background:none;border:none;cursor:pointer;font-size:1.15rem;line-height:1;color:inherit;opacity:.6;padding:0;flex-shrink:0;margin-top:-1px}.toast-dismiss:hover{opacity:1}@media (max-width: 600px){.toast-container{bottom:1rem;right:.75rem;left:.75rem}.toast{max-width:100%}}.app-footer{background:var(--card);border-top:1px solid var(--border);padding:1.25rem 0;margin-top:auto}.app-footer-inner{max-width:1280px;margin:0 auto;padding:0 1rem;display:flex;flex-direction:column;gap:.35rem}.app-footer-brand{font-weight:700;font-size:.85rem;color:var(--text)}.app-footer-disclaimer{font-size:.78rem;color:var(--textMuted);line-height:1.55;margin:0}
