:root{--app-bg: #f5f7fa;--app-surface: #ffffff;--app-surface-hover: #f9fafb;--app-border: #e5e7eb;--app-border-subtle: #f3f4f6;--app-text: #111827;--app-text-secondary: #4b5563;--app-text-muted: #6b7280;--app-text-faint: #9ca3af;--app-accent: #2563eb;--app-accent-hover: #1d4ed8;--app-accent-light: #eff6ff;--app-positive: #16a34a;--app-positive-bg: #ecfdf5;--app-negative: #dc2626;--app-negative-bg: #fef2f2;--app-neutral: #6b7280;--app-radius: .75rem;--app-radius-sm: .5rem;--app-radius-lg: 1rem;--app-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--app-shadow-md: 0 4px 12px rgba(15, 23, 42, .06);--app-shadow-lg: 0 8px 30px rgba(15, 23, 42, .08);--app-nav-height: 3.5rem;--app-nav-bg: #ffffff;--app-input-border: #d1d5db;--app-chart-bg: #fafafa;--app-chart-border: #f3f4f6;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:var(--app-text);background-color:var(--app-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--app-bg: #0f1117;--app-surface: #181b24;--app-surface-hover: #22262f;--app-border: #2d3341;--app-border-subtle: #252a35;--app-text: #f3f4f6;--app-text-secondary: #cbd5e1;--app-text-muted: #94a3b8;--app-text-faint: #64748b;--app-accent: #60a5fa;--app-accent-hover: #93c5fd;--app-accent-light: rgba(37, 99, 235, .22);--app-positive: #4ade80;--app-positive-bg: rgba(16, 185, 129, .15);--app-negative: #f87171;--app-negative-bg: rgba(248, 113, 113, .12);--app-neutral: #94a3b8;--app-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--app-shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--app-shadow-lg: 0 12px 40px rgba(0, 0, 0, .45);--app-nav-bg: #141821;--app-input-border: #3d4654;--app-chart-bg: #141821;--app-chart-border: #2d3341}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--app-bg)}#root{min-height:100vh;min-width:0;overflow-x:clip}a{color:var(--app-accent);text-decoration:none}a:hover{text-decoration:underline}button{border:1px solid var(--app-accent);background-color:var(--app-accent);color:#fff;border-radius:var(--app-radius-sm);padding:.6rem 1rem;font-size:.95rem;cursor:pointer;font-family:inherit}button:disabled{opacity:.65;cursor:not-allowed}input{width:100%;border:1px solid var(--app-input-border);border-radius:var(--app-radius-sm);padding:.6rem .75rem;margin-top:.4rem;font-family:inherit;background:var(--app-surface);color:var(--app-text)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-topnav{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:1rem;height:var(--app-nav-height);padding:0 1.5rem;background:var(--app-nav-bg);border-bottom:1px solid var(--app-border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.app-brand{font-size:1.15rem;font-weight:800;color:var(--app-text);letter-spacing:-.01em;text-decoration:none;margin-right:1.5rem;flex-shrink:0}.app-brand:hover{text-decoration:none}.app-nav-links{display:flex;align-items:center;gap:.2rem;flex:1;min-width:0}.app-nav-links a{padding:.4rem .75rem;font-size:.88rem;font-weight:500;color:var(--app-text-muted);border-radius:.45rem;text-decoration:none;transition:color .12s,background-color .12s;white-space:nowrap}.app-nav-links a:hover{color:var(--app-text);background-color:var(--app-border-subtle);text-decoration:none}.app-nav-links a.active{color:var(--app-accent);background-color:var(--app-accent-light);font-weight:600}.app-nav-links a:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.app-nav-alerts{display:inline-flex;align-items:center;gap:.4rem}.app-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.15rem;height:1.15rem;padding:0 .35rem;font-size:.68rem;font-weight:700;line-height:1;border-radius:999px;background:#dc2626;color:#fff}.app-nav-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0;margin-left:auto}.app-user-email{font-size:.82rem;font-weight:500;color:var(--app-text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;font-size:1.1rem;line-height:1;background:var(--app-border-subtle);border:1px solid var(--app-border);border-radius:.5rem;color:var(--app-text-secondary);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.app-theme-toggle:hover{background:var(--app-surface-hover);color:var(--app-text);border-color:var(--app-text-faint)}.app-theme-toggle:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.app-logout-btn{padding:.35rem .75rem;font-size:.82rem;font-weight:600;color:var(--app-text-secondary);background:transparent;border:1px solid var(--app-border);border-radius:.45rem;cursor:pointer;transition:color .12s,border-color .12s,background-color .12s}.app-logout-btn:hover{color:var(--app-negative);border-color:var(--app-negative);background-color:var(--app-negative-bg)}.app-logout-btn:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.app-main{flex:1;padding:1.5rem;min-width:0;overflow-x:clip;max-width:1440px;width:100%;margin:0 auto}.muted-label{margin:0;color:var(--app-text-muted)}.placeholder-card{margin-top:1rem;padding:1rem;background-color:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius)}.settings-page{max-width:720px;margin:0 auto}.settings-header{margin-bottom:1.5rem}.settings-header h1{margin:0 0 .35rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--app-text)}.settings-grid{display:flex;flex-direction:column;gap:1rem}.settings-card{padding:1.25rem 1.35rem;background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:var(--app-shadow-sm)}.settings-card--compact .settings-card-desc{margin-bottom:0}.settings-card-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:700;color:var(--app-text)}.settings-card-desc{margin:0 0 1rem;font-size:.9rem;line-height:1.5}.settings-hint{margin:.85rem 0 0;font-size:.82rem}.settings-segment{display:inline-flex;border-radius:var(--app-radius-sm);border:1px solid var(--app-border);overflow:hidden;background:var(--app-border-subtle)}.settings-segment-btn{padding:.45rem 1.1rem;font-size:.88rem;font-weight:600;font-family:inherit;color:var(--app-text-secondary);background:transparent;border:none;cursor:pointer;transition:background .12s,color .12s}.settings-segment-btn:hover{color:var(--app-text);background:var(--app-surface-hover)}.settings-segment-btn.is-active{color:var(--app-text);background:var(--app-surface);box-shadow:0 0 0 1px var(--app-border)}.settings-segment-btn:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px;z-index:1}.settings-dl{margin:0}.settings-dl>div{display:grid;grid-template-columns:120px 1fr;gap:.5rem 1rem;padding:.5rem 0;border-bottom:1px solid var(--app-border-subtle);font-size:.9rem}.settings-dl>div:last-child{border-bottom:none;padding-bottom:0}.settings-dl dt{margin:0;font-weight:600;color:var(--app-text-muted)}.settings-dl dd{margin:0;color:var(--app-text);word-break:break-all}.settings-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem}.settings-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em;padding:.1rem .35rem;border-radius:.25rem;background:var(--app-border-subtle);color:var(--app-text-secondary)}@media(max-width:520px){.settings-dl>div{grid-template-columns:1fr;gap:.2rem}}@media(max-width:640px){.app-topnav{padding:0 .75rem;gap:.5rem}.app-brand{margin-right:.5rem;font-size:1rem}.app-nav-links a{padding:.35rem .5rem;font-size:.8rem}.app-user-email{display:none}.app-main{padding:1rem .75rem}}[data-theme=dark] .ticker-exchange,[data-theme=dark] .ticker-asof{color:var(--app-text-muted)}[data-theme=dark] .ticker-change-pill .change-positive,[data-theme=dark] .change-positive{background-color:var(--app-positive-bg);color:var(--app-positive)}[data-theme=dark] .ticker-change-pill .change-negative,[data-theme=dark] .change-negative{background-color:var(--app-negative-bg);color:var(--app-negative)}[data-theme=dark] .ticker-change-pill .change-neutral{background-color:var(--app-border-subtle);color:var(--app-text-muted)}[data-theme=dark] .ticker-stats-strip,[data-theme=dark] .ticker-stats-grid--expanded{background:var(--app-border-subtle);border-color:var(--app-border)}[data-theme=dark] .ticker-stat-cell .ticker-stat-value,[data-theme=dark] .ticker-stat-value{color:var(--app-text)}[data-theme=dark] .ticker-chart--expanded{background:var(--app-chart-bg);border-color:var(--app-chart-border)}[data-theme=dark] .ticker-session-bars{background:var(--app-border-subtle);border-color:var(--app-border)}[data-theme=dark] .ticker-session-num{color:var(--app-text)}[data-theme=dark] .ticker-block{border-top-color:var(--app-border)}[data-theme=dark] .sentiment-positive{background-color:var(--app-positive-bg);color:var(--app-positive)}[data-theme=dark] .sentiment-negative{background-color:var(--app-negative-bg);color:var(--app-negative)}[data-theme=dark] .sentiment-neutral{background-color:var(--app-border-subtle);color:var(--app-text-muted)}[data-theme=dark] .chart-tooltip{background-color:#1e293b;color:#f1f5f9}[data-theme=dark] .skeleton-line{background:linear-gradient(90deg,#2d3341 25%,#3d4654,#2d3341 75%);background-size:200% 100%}[data-theme=dark] .range-btn{background:var(--app-border-subtle);color:var(--app-text-secondary);border-color:var(--app-border)}[data-theme=dark] .range-btn:hover:not(:disabled){background:var(--app-surface-hover);color:var(--app-text);border-color:var(--app-text-faint)}[data-theme=dark] .range-btn--active{background-color:var(--app-accent);color:#0f1117;border-color:var(--app-accent)}[data-theme=dark] .range-btn--active:hover:not(:disabled){background-color:var(--app-accent-hover);border-color:var(--app-accent-hover);color:#0f1117}[data-theme=dark] .ticker-panel--expanded{box-shadow:var(--app-shadow-lg),0 0 0 1px #60a5fa33}[data-theme=dark] .ticker-alert--info{background:#2563eb1f;border-color:#60a5fa59}[data-theme=dark] .ticker-alert--warn{background:#f59e0b1a;border-color:#f59e0b59}[data-theme=dark] .ticker-fallback-label{background:#f59e0b1f;color:#fbbf24}[data-theme=dark] .snapshot-hint{color:var(--app-text-muted)}[data-theme=dark] .dashboard-sort-select{background:var(--app-surface);color:var(--app-text);border-color:var(--app-border)}[data-theme=dark] .dashboard-hint{background:#2563eb26;border-color:#60a5fa59}[data-theme=dark] .dashboard-hint strong{color:var(--app-accent-hover)}[data-theme=dark] .tl-help-btn{background:var(--app-accent-light);border-color:var(--app-border);color:var(--app-accent)}[data-theme=dark] .tl-single-panel{background:linear-gradient(180deg,var(--app-border-subtle) 0%,var(--app-surface) 100%);border-color:var(--app-border)}[data-theme=dark] .tl-single-visual,[data-theme=dark] .tl-metric{background:var(--app-border-subtle);border-color:var(--app-border)}[data-theme=dark] select,[data-theme=dark] .tl-field select,[data-theme=dark] .tl-field input[type=date]{background:var(--app-surface);color:var(--app-text);border-color:var(--app-input-border)}[data-theme=dark] .error-text{color:#f87171}[data-theme=dark] .news-item a{color:var(--app-accent)}[data-theme=dark] .ticker-inline-error{color:#fbbf24}.auth-shell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#0a0a0a;padding:2rem 1.25rem;overflow-x:clip}.auth-back{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:2rem;font-size:.88rem;font-weight:500;color:#6b7280;text-decoration:none;align-self:center;transition:color .15s}.auth-back:hover{color:#d1d5db;text-decoration:none}.auth-card{width:100%;max-width:400px;background:#111;border:1px solid #1f2937;border-radius:1rem;padding:2.25rem 2rem 2rem}.auth-brand{display:block;text-align:center;margin-bottom:1.75rem;font-size:1.2rem;font-weight:800;color:#fff;letter-spacing:-.01em;text-decoration:none}.auth-brand:hover{text-decoration:none}.auth-heading{margin:0 0 .35rem;font-size:1.35rem;font-weight:700;color:#f3f4f6;text-align:center}.auth-sub{margin:0 0 1.5rem;font-size:.9rem;color:#6b7280;text-align:center}.auth-form{display:flex;flex-direction:column;gap:1rem;margin:0 0 1.25rem}.auth-field label{display:block;margin-bottom:.35rem;font-size:.82rem;font-weight:600;color:#9ca3af;letter-spacing:.01em}.auth-field input{width:100%;padding:.65rem .85rem;font-size:.95rem;color:#f3f4f6;background:#0a0a0a;border:1px solid #374151;border-radius:.55rem;outline:none;margin-top:0;transition:border-color .15s}.auth-field input::placeholder{color:#4b5563}.auth-field input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.auth-submit{width:100%;padding:.7rem 1rem;font-size:.95rem;font-weight:600;color:#fff;background:#2563eb;border:1px solid #3b82f6;border-radius:.55rem;cursor:pointer;transition:background .15s;margin-top:.25rem}.auth-submit:hover{background:#1d4ed8}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-submit:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.auth-error{margin:0;padding:.6rem .85rem;font-size:.85rem;color:#fca5a5;background:#dc262614;border:1px solid rgba(220,38,38,.2);border-radius:.45rem}.auth-footer{margin-top:1.25rem;text-align:center;font-size:.88rem;color:#6b7280}.auth-footer a{color:#60a5fa;font-weight:500;text-decoration:none}.auth-footer a:hover{color:#93bbfd;text-decoration:underline}.auth-submit{display:flex;align-items:center;justify-content:center;gap:.5rem}.loading-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-shell,.auth-form{position:relative}.auth-form input:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.auth-success-message{padding:.75rem 1rem;margin-bottom:1rem;background-color:#10b9811a;border:1px solid rgba(16,185,129,.3);border-left:3px solid #10b981;border-radius:.5rem;color:#86efac;font-size:.9rem;animation:slideInSuccess .3s ease-out}@keyframes slideInSuccess{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.auth-field{position:relative;transition:all .15s ease}.auth-field input:focus{background-color:#3b82f605}@media(prefers-contrast:more){.auth-field input{border-width:2px}.auth-submit{border-width:2px;font-weight:700}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none;border-top-color:#fff;opacity:.7}.auth-notification,.auth-success-message{animation:none}}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:.5rem 0;color:#4b5563;font-size:.78rem;font-weight:500}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#1f2937}.auth-page{max-width:420px;margin:5rem auto;padding:1.2rem}.error-text{margin:0;color:#dc2626;font-size:.9rem}.centered-text{margin:4rem auto;padding:2rem;text-align:center;color:var(--app-text-muted);font-size:.95rem}.watchlist-page{max-width:980px;margin:0 auto}.watchlist-header{margin-bottom:1.25rem}.watchlist-header h2{margin:0 0 .25rem;font-size:1.4rem;font-weight:700;letter-spacing:-.01em;color:var(--app-text)}.watchlist-shell{display:flex;flex-direction:column;gap:.85rem}.watchlist-add-card{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem;background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:var(--app-shadow-sm)}.watchlist-add-copy{flex:1 1 240px}.watchlist-add-copy h3{margin:.15rem 0 .35rem;font-size:1.05rem;color:var(--app-text)}.watchlist-kicker{display:inline-block;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--app-accent)}.watchlist-add-form{display:flex;flex:1 1 320px;gap:.5rem;align-items:flex-end}.watchlist-autocomplete{position:relative;flex:1;min-width:0}.watchlist-autocomplete input{width:100%;margin-top:0;text-transform:uppercase}.watchlist-suggestions{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);margin:0;padding:.35rem 0;list-style:none;background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius-sm);box-shadow:var(--app-shadow-md);max-height:min(320px,50vh);overflow-y:auto}.watchlist-suggestion{display:flex;flex-direction:column;align-items:flex-start;gap:.12rem;width:100%;margin:0;padding:.55rem .85rem;font-size:.88rem;font-family:inherit;text-align:left;color:var(--app-text);background:transparent;border:none;cursor:pointer;transition:background-color .1s}.watchlist-suggestion:hover,.watchlist-suggestion.is-active{background:var(--app-accent-light)}.watchlist-suggestion:focus-visible{outline:2px solid var(--app-accent);outline-offset:-2px}.watchlist-suggestion-symbol{font-weight:600;letter-spacing:.04em}.watchlist-suggestion-symbol strong{font-weight:800;color:var(--app-accent)}.watchlist-suggestion-desc{font-size:.76rem;font-weight:400;color:var(--app-text-muted);line-height:1.35}.watchlist-suggestion--meta{padding:.55rem .85rem;font-size:.82rem;color:var(--app-text-muted);font-style:italic;list-style:none;cursor:default}.watchlist-summary-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding:.1rem .1rem 0}.watchlist-count{font-size:.9rem;font-weight:700;color:var(--app-text)}.watchlist-summary-note{font-size:.82rem;color:var(--app-text-muted)}.watchlist-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.watchlist-row{display:flex;justify-content:space-between;align-items:center;gap:.85rem;padding:.95rem 1rem;background-color:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:var(--app-shadow-sm);transition:box-shadow .15s}.watchlist-row:hover{box-shadow:var(--app-shadow-md)}.watchlist-row-main{display:flex;align-items:center;gap:.85rem;min-width:0}.watchlist-rank{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;border-radius:999px;background:var(--app-accent-light);color:var(--app-accent);font-size:.78rem;font-weight:700;flex-shrink:0}.watchlist-symbol-block{display:flex;flex-direction:column;min-width:0}.watchlist-symbol{font-weight:600;letter-spacing:.03em;font-size:1rem;color:var(--app-text)}.watchlist-row-note{font-size:.8rem;color:var(--app-text-muted)}.watchlist-actions{display:flex;gap:.35rem;flex-wrap:wrap}.btn-icon{background:transparent;border:1px solid var(--app-border);color:var(--app-text-secondary);padding:.25rem .5rem;font-size:.75rem;line-height:1;border-radius:.35rem;transition:border-color .12s,background-color .12s}.btn-icon:hover:not(:disabled){background-color:var(--app-border-subtle);border-color:#b0b8c4}.btn-icon:disabled{opacity:.35}.btn-danger{background-color:transparent;border:1px solid var(--app-border);color:var(--app-text-muted);font-size:.82rem;font-weight:500;padding:.3rem .65rem;border-radius:.35rem;transition:color .12s,border-color .12s,background-color .12s}.btn-danger:hover{color:var(--app-negative);border-color:var(--app-negative);background-color:var(--app-negative-bg)}.watchlist-empty-state{padding:2rem 1.5rem;border:1px dashed var(--app-border);border-radius:var(--app-radius);background:var(--app-surface);text-align:center}.watchlist-empty-state h3{margin:0 0 .35rem;color:var(--app-text)}@media(max-width:720px){.watchlist-add-form,.watchlist-row{flex-direction:column;align-items:stretch}.watchlist-actions{justify-content:flex-end}}.ticker-panel{background-color:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);padding:1.1rem 1.15rem;margin-bottom:0;box-shadow:var(--app-shadow-sm);transition:box-shadow .15s}.ticker-panel:hover{box-shadow:var(--app-shadow-md)}.ticker-panel-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem}.ticker-hero{flex:1;min-width:0}.ticker-exchange{margin:0 0 .2rem;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6b7280}.ticker-price-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.65rem .85rem}.ticker-price-main{font-size:1.85rem;font-weight:700;letter-spacing:-.02em;color:var(--app-text);line-height:1.1}.ticker-change-pill{font-size:.95rem;font-weight:600}.ticker-change-pill .change-positive,.ticker-change-pill .change-negative,.ticker-change-pill .change-neutral{padding:.2rem .55rem;border-radius:999px;background-color:#f3f4f6}.ticker-change-pill .change-positive{background-color:#ecfdf5;color:#047857}.ticker-change-pill .change-negative{background-color:#fef2f2;color:#b91c1c}.ticker-asof{margin:.35rem 0 0;font-size:.78rem;color:#9ca3af}.expand-btn--toolbar{flex-shrink:0;margin-top:0;font-size:.8rem;font-weight:600;padding:.45rem .85rem;border-radius:var(--app-radius-sm);border:1px solid var(--app-border);background:var(--app-surface-hover);color:var(--app-text-secondary);transition:border-color .12s,color .12s,background-color .12s}.expand-btn--toolbar:hover{background:var(--app-accent-light);border-color:var(--app-accent);color:var(--app-accent)}.expand-btn--toolbar:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.ticker-panel-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.timelapse-toggle-btn{padding:.28rem .7rem;border-radius:var(--app-radius-sm);border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-text-secondary);font-size:.75rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.timelapse-toggle-btn:hover{background:var(--app-surface-hover);border-color:var(--app-text-faint);color:var(--app-text)}.timelapse-toggle-btn--active{background:#7c3aed;border-color:#7c3aed;color:#fff}.timelapse-toggle-btn--active:hover{background:#6d28d9;border-color:#6d28d9;color:#fff}.timelapse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#7c3aed;margin-left:6px;vertical-align:middle;animation:timelapse-pulse 1.6s ease-in-out infinite}@keyframes timelapse-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.ticker-panel--recording{border-color:#7c3aed73;box-shadow:0 0 0 1px #7c3aed26,var(--app-shadow-md)}[data-theme=dark] .ticker-panel--recording{border-color:#a78bfa73;box-shadow:0 0 0 1px #a78bfa1f,var(--app-shadow-md)}[data-theme=dark] .timelapse-toggle-btn--active{background:#7c3aed;border-color:#7c3aed}.ticker-stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.65rem;padding:.65rem .75rem;margin-bottom:.75rem;background:#f9fafb;border:1px solid #f3f4f6;border-radius:.5rem}.ticker-stat-cell{display:flex;flex-direction:column;gap:.15rem;min-width:0}.ticker-stat-cell .ticker-stat-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af}.ticker-stat-cell .ticker-stat-value{font-size:.92rem;font-weight:600;color:#1f2937}.ticker-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.6rem}.ticker-symbol{font-size:1.15rem;font-weight:700;letter-spacing:.03em}.ticker-price{font-size:1.05rem;font-weight:600}.change-positive{color:var(--app-positive)}.change-negative{color:var(--app-negative)}.change-neutral{color:var(--app-neutral)}.ticker-chart{margin:.5rem 0}.sentiment-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600;text-transform:capitalize}.sentiment-positive{background-color:#dcfce7;color:#166534}.sentiment-negative{background-color:#fee2e2;color:#991b1b}.sentiment-neutral{background-color:#f3f4f6;color:#4b5563}.ticker-section-title{font-size:.85rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin:.75rem 0 .35rem}.news-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.news-item{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;font-size:.88rem;line-height:1.4}.news-item a{flex:1;color:#1d4ed8;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ticker-alert{display:flex;flex-direction:column;gap:.35rem;padding:.65rem .85rem;margin:0 0 .75rem;border-radius:.5rem;font-size:.82rem;line-height:1.45;border:1px solid transparent}.ticker-alert strong{font-size:.8rem;font-weight:700;color:#1f2937}.ticker-alert span{color:#4b5563}.ticker-alert--info{background:#eff6ff;border-color:#bfdbfe}.ticker-alert--warn{background:#fffbeb;border-color:#fcd34d}.ticker-alert--warn strong{color:#92400e}.ticker-alert--warn span{color:#78350f}.ticker-alert-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ticker-session-visual{padding:.5rem 0 0}.ticker-session-bars{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:.65rem;padding:.5rem .75rem;background:#f9fafb;border-radius:.5rem;border:1px dashed #d1d5db}.ticker-session-bars>div:first-child,.ticker-session-bars>div:last-child{text-align:center}.ticker-session-label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#9ca3af;margin-bottom:.2rem}.ticker-session-num{font-size:1.15rem;font-weight:700;color:#111827}.ticker-session-arrow{font-size:1.25rem;color:#9ca3af;font-weight:300}.ticker-chart--session{min-height:auto}.ticker-block{margin-top:.75rem;padding-top:.65rem;border-top:1px solid #f3f4f6}.ticker-block--sentiment{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ticker-block--sentiment .ticker-section-title{margin:0}.ticker-block--news .ticker-section-title{margin-top:0}.ticker-indicators{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 .5rem}.indicator-chip{display:inline-flex;flex-direction:column;gap:.05rem;padding:.3rem .55rem;border-radius:.45rem;background:var(--app-surface-muted, #f3f4f6);border:1px solid var(--app-border, #e5e7eb);line-height:1.1}.indicator-chip-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6b7280}.indicator-chip-value{font-size:.82rem;font-weight:600;color:#111827}.indicator-chip--rsi.rsi-overbought{border-color:#fecaca;background:#fef2f2}.indicator-chip--rsi.rsi-overbought .indicator-chip-value{color:#b91c1c}.indicator-chip--rsi.rsi-oversold{border-color:#bbf7d0;background:#f0fdf4}.indicator-chip--rsi.rsi-oversold .indicator-chip-value{color:#15803d}.indicator-chip--rsi.rsi-neutral{border-color:#e5e7eb}.indicator-chip--sma.sma-20 .indicator-chip-value{color:#2563eb}.indicator-chip--sma.sma-50 .indicator-chip-value{color:#a855f7}.indicator-chip--vol.vol-low{border-color:#bbf7d0;background:#f0fdf4}.indicator-chip--vol.vol-low .indicator-chip-value{color:#15803d}.indicator-chip--vol.vol-medium{border-color:#fde68a;background:#fffbeb}.indicator-chip--vol.vol-medium .indicator-chip-value{color:#b45309}.indicator-chip--vol.vol-high{border-color:#fecaca;background:#fef2f2}.indicator-chip--vol.vol-high .indicator-chip-value{color:#b91c1c}[data-theme=dark] .indicator-chip{background:#ffffff0a;border-color:#ffffff1f}[data-theme=dark] .indicator-chip-label{color:#9ca3af}[data-theme=dark] .indicator-chip-value{color:#f3f4f6}[data-theme=dark] .indicator-chip--rsi.rsi-overbought,[data-theme=dark] .indicator-chip--vol.vol-high{background:#dc26261f;border-color:#dc262659}[data-theme=dark] .indicator-chip--rsi.rsi-oversold,[data-theme=dark] .indicator-chip--vol.vol-low{background:#16a34a1f;border-color:#16a34a59}[data-theme=dark] .indicator-chip--vol.vol-medium{background:#b453091f;border-color:#b4530959}.ticker-sentiment{margin-top:.75rem;padding-top:.65rem;border-top:1px solid #f3f4f6}.ticker-sentiment .ticker-block--sentiment{margin-top:0;padding-top:0;border-top:none}.sentiment-mode-chip{font-size:.7rem;font-weight:600;padding:.15rem .45rem;border-radius:999px;border:1px solid transparent;white-space:nowrap}.sentiment-mode-chip--positive{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.sentiment-mode-chip--warn{background:#fffbeb;color:#b45309;border-color:#fde68a}.sentiment-mode-chip--neutral{background:#f3f4f6;color:#4b5563;border-color:#e5e7eb}[data-theme=dark] .sentiment-mode-chip--positive{background:#10b98124;color:#6ee7b7;border-color:#10b98159}[data-theme=dark] .sentiment-mode-chip--warn{background:#f59e0b24;color:#fbbf24;border-color:#f59e0b59}[data-theme=dark] .sentiment-mode-chip--neutral{background:#ffffff0f;color:#d1d5db;border-color:#ffffff24}.sentiment-explanation{list-style:disc;padding-left:1.1rem;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;line-height:1.5;color:#374151}[data-theme=dark] .sentiment-explanation{color:#d1d5db}.sentiment-explanation-headline{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.sentiment-explanation-headline a{color:#2563eb;text-decoration:none}.sentiment-explanation-headline a:hover{text-decoration:underline}.sentiment-badge--inline{font-size:.7rem;padding:.05rem .4rem}.ticker-fallback-label{margin:0 0 .35rem;padding:.4rem .65rem;font-size:.78rem;color:#92400e;background:#fffbeb;border-radius:.4rem;line-height:1.4}.ticker-inline-error{margin:.35rem 0;font-size:.8rem;color:#f59e0b;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.retry-btn{font-size:.75rem;padding:.2rem .5rem;background:transparent;color:#2563eb;border:1px solid #2563eb;border-radius:.3rem;cursor:pointer}.retry-btn:hover{background-color:#eff6ff}.chart-tooltip{background-color:#1f2937;color:#e5e7eb;padding:.35rem .6rem;border-radius:.35rem;font-size:.8rem;line-height:1.4}.ticker-skeleton{padding:1rem}.skeleton-line{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;border-radius:.35rem;animation:shimmer 1.4s ease-in-out infinite}.skeleton-title{height:1.2rem;width:55%;margin-bottom:.75rem}.skeleton-chart{height:6rem;width:100%;margin-bottom:.75rem}.skeleton-text{height:.85rem;width:80%;margin-bottom:.45rem}.skeleton-text.short{width:50%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton-line{animation:none}}.ticker-loading,.ticker-error{padding:2rem 1rem;text-align:center;color:#6b7280}.ticker-error{color:#dc2626}.snapshot-btn{margin-top:.6rem;font-size:.82rem;font-weight:600;padding:.4rem .85rem;background-color:#7c3aed;border-color:#7c3aed;border-radius:var(--app-radius-sm);transition:background-color .15s,border-color .15s,transform .1s}.snapshot-btn:hover:not(:disabled){background-color:#6d28d9;border-color:#6d28d9}.snapshot-btn:active:not(:disabled){transform:scale(.97)}.snapshot-btn--saved{background-color:var(--app-positive);border-color:var(--app-positive)}.snapshot-btn--error{background-color:var(--app-negative);border-color:var(--app-negative)}.snapshot-hint{margin:.45rem 0 0;font-size:.82rem;color:#475569}.snapshot-hint a{font-weight:600}.ticker-panel--expanded{grid-column:1 / -1;border-color:var(--app-accent);box-shadow:var(--app-shadow-lg),0 0 0 1px #2563eb14}.ticker-expanded-section{margin-top:.25rem}.ticker-range-bar{display:flex;flex-wrap:nowrap;gap:.35rem;margin:0 0 .75rem;padding-bottom:.15rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.range-btn{flex:0 0 auto;padding:.4rem .75rem;font-size:.8rem;font-weight:600;background:#f9fafb;color:#4b5563;border:1px solid #e5e7eb;border-radius:999px;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}.range-btn:hover:not(:disabled){background-color:#f3f4f6;color:#111827;border-color:#d1d5db}.range-btn--active{background-color:#1d4ed8;color:#fff;border-color:#1d4ed8}.range-btn--active:hover:not(:disabled){background-color:#1e40af;border-color:#1e40af;color:#fff}.range-btn:disabled{opacity:.55;cursor:not-allowed}.ticker-chart--expanded{margin:0 0 .5rem;background:#fafafa;border:1px solid #f3f4f6;border-radius:.5rem;padding:.35rem .25rem .15rem}.expanded-chart-loading{display:flex;align-items:center;justify-content:center;height:300px}.skeleton-chart-lg{height:280px;width:100%}.ticker-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;margin-bottom:.5rem;padding:.6rem 0;border-top:1px solid #e5e7eb}.ticker-stats-grid--expanded{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem 1rem;margin:0;padding:.75rem .5rem;border-top:none;background:#f9fafb;border-radius:.5rem;border:1px solid #f3f4f6}@media(max-width:640px){.ticker-stats-grid--expanded{grid-template-columns:repeat(2,minmax(0,1fr))}}.ticker-stat{display:flex;flex-direction:column;gap:.15rem}.ticker-stat-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#9ca3af}.ticker-stat-value{font-size:.95rem;font-weight:600;color:#1f2937}@media(prefers-reduced-motion:reduce){.range-btn{transition:none}}.dashboard-wrapper{max-width:1400px;margin:0 auto;min-width:0}.dashboard-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem}.dashboard-header h2{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:-.01em;color:var(--app-text)}.dashboard-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.dashboard-summary{font-size:.82rem;color:var(--app-text-muted)}.dashboard-sort-select{padding:.35rem .6rem;border:1px solid var(--app-border);border-radius:.45rem;font-size:.82rem;font-family:inherit;background:var(--app-surface);color:var(--app-text-secondary);cursor:pointer;transition:border-color .12s}.dashboard-sort-select:hover{border-color:#b0b8c4}.dashboard-sort-select:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.dashboard-ticker-strip{background:var(--app-surface);color:var(--app-text);border-radius:var(--app-radius);padding:.65rem .85rem;margin-bottom:1rem;border:1px solid var(--app-border);box-shadow:var(--app-shadow-sm);display:flex;align-items:center;gap:1rem;max-width:100%;overflow:hidden}.dashboard-ticker-strip-viewport{flex:1;min-width:0;overflow:hidden;overflow-x:clip;contain:paint;-webkit-mask-image:linear-gradient(to right,transparent 0,black 28px,black calc(100% - 28px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,black 28px,black calc(100% - 28px),transparent 100%)}.dashboard-ticker-strip-track{display:flex;width:max-content;max-width:none;animation:dashboardTickerMarquee 24s linear infinite;will-change:transform}.dashboard-ticker-strip-group{display:flex;flex-shrink:0;gap:1.35rem;align-items:center;min-height:2rem;padding-right:1.35rem}.dashboard-ticker-item{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;font-size:.9rem}.dashboard-ticker-btn{background:transparent;border:none;color:inherit;font:inherit;cursor:pointer;padding:.2rem .4rem;border-radius:.35rem;transition:background-color .15s}.dashboard-ticker-btn:hover{background-color:var(--app-border-subtle)}.dashboard-ticker-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.dashboard-ticker-symbol{color:var(--app-text);font-weight:700;letter-spacing:.04em}.dashboard-ticker-price{color:var(--app-text-secondary);font-weight:600}.dashboard-ticker-item--loading{opacity:.75}.dashboard-ticker-item--ghost{pointer-events:none}.dashboard-ticker-meta{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;padding-left:.25rem}.dashboard-ticker-time{font-size:.72rem;color:var(--app-text-muted)}.live-dot{width:6px;height:6px;border-radius:50%;background-color:#22c55e;flex-shrink:0}.dashboard-ticker-strip:hover .dashboard-ticker-strip-track,.dashboard-ticker-strip:focus-within .dashboard-ticker-strip-track{animation-play-state:paused}@keyframes dashboardTickerMarquee{0%{transform:translate(0)}to{transform:translate(calc(-50% - .675rem))}}@media(prefers-reduced-motion:reduce){.dashboard-ticker-btn{transition:none}.dashboard-ticker-strip-track{animation:none}.dashboard-ticker-strip-viewport{overflow-x:auto;-webkit-mask-image:none;mask-image:none;-webkit-overflow-scrolling:touch}}.dashboard-hint{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;margin-bottom:.85rem;background:var(--app-accent-light);border:1px solid #bfdbfe;border-radius:var(--app-radius-sm);font-size:.85rem;color:var(--app-text-secondary);line-height:1.45}.dashboard-hint p{margin:0;flex:1}.dashboard-hint strong{color:var(--app-accent)}.dashboard-hint-close{flex-shrink:0;background:transparent;border:none;font-size:1.15rem;line-height:1;color:var(--app-text-faint);cursor:pointer;padding:.15rem .35rem;border-radius:.25rem}.dashboard-hint-close:hover{color:var(--app-text);background-color:#0000000d}.sector-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.sector-pill{padding:.3rem .85rem;border-radius:999px;border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.sector-pill:hover{background:var(--app-surface-hover);border-color:var(--app-text-faint);color:var(--app-text)}.sector-pill--active{background:var(--app-accent);border-color:var(--app-accent);color:#fff}.sector-pill--active:hover{background:var(--app-accent-hover);border-color:var(--app-accent-hover);color:#fff}.sector-filter-skeleton{height:1.75rem;border-radius:999px}.sector-filter-empty{margin:0 0 1rem}[data-theme=dark] .sector-pill{background:var(--app-surface);border-color:var(--app-border);color:var(--app-text-secondary)}[data-theme=dark] .sector-pill:hover{background:var(--app-surface-hover)}[data-theme=dark] .sector-pill--active{background:var(--app-accent);border-color:var(--app-accent);color:#fff}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1rem}.empty-dashboard{text-align:center;padding:4rem 2rem;background:var(--app-surface);border:1px dashed var(--app-border);border-radius:var(--app-radius-lg);max-width:480px;margin:3rem auto 0}.empty-dashboard h2{margin-bottom:.5rem}.empty-dashboard .muted-label{margin-bottom:1.25rem;max-width:360px;margin-left:auto;margin-right:auto}.tl-wrapper{max-width:1160px;margin:0 auto}.tl-header{margin-bottom:1.25rem;max-width:860px}.tl-header h2{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:-.01em;color:var(--app-text)}.tl-header-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.tl-header h2{margin:0}.tl-help-btn{flex-shrink:0;padding:.4rem .85rem;font-size:.82rem;font-weight:600;color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.5rem;cursor:pointer;transition:background .15s,border-color .15s}.tl-help-btn:hover{background:#dbeafe;border-color:#93c5fd}.tl-help-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.tl-help-panel{margin-top:.85rem;padding:1rem 1.1rem;background:var(--app-surface);border:1px solid var(--app-border);border-radius:.75rem;box-shadow:var(--app-shadow-md)}.tl-help-inner{font-size:.88rem;line-height:1.55;color:var(--app-text-secondary)}.tl-help-inner p{margin:0 0 .85rem}.tl-help-inner p:last-child{margin-bottom:0}.tl-help-heading{margin:1rem 0 .45rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted)}.tl-help-heading:first-child{margin-top:0}.tl-help-list{margin:0 0 .85rem;padding-left:1.15rem;display:flex;flex-direction:column;gap:.55rem}.tl-help-list li{padding-left:.15rem}.tl-help-tip{padding:.65rem .75rem;background:var(--app-border-subtle);border-radius:.5rem;border-left:3px solid var(--app-accent)}.tl-intro{margin:0 0 .2rem;font-size:.98rem;font-weight:600;color:var(--app-text-secondary)}.tl-loading{text-align:center;padding:3rem 1rem;color:var(--app-text-muted)}.tl-empty-state{text-align:center;padding:3rem 1.5rem;background:var(--app-surface);border:1px dashed var(--app-border);border-radius:var(--app-radius)}.tl-empty-state p{margin:0 0 .5rem}.tl-cta-btn{display:inline-block;margin-top:.75rem;padding:.55rem 1.1rem;background-color:#2563eb;color:#fff;font-size:.9rem;font-weight:600;border-radius:.5rem;text-decoration:none}.tl-cta-btn:hover{background-color:#1d4ed8;text-decoration:none}.tl-controls{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);padding:1rem 1.15rem;margin-bottom:1rem;max-width:860px;box-shadow:var(--app-shadow-sm)}.tl-controls-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.tl-field{display:flex;flex-direction:column;font-size:.85rem;font-weight:500}.tl-field-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--app-text-muted);margin-bottom:.25rem}.tl-field select,.tl-field input[type=date]{padding:.45rem .6rem;border:1px solid var(--app-input-border);border-radius:.45rem;font-size:.9rem;background:var(--app-surface);color:var(--app-text)}.tl-load-btn{align-self:flex-end;padding:.5rem 1.15rem;font-weight:600}.tl-presets{display:flex;gap:.35rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--app-border)}.tl-preset-btn{padding:.3rem .65rem;font-size:.75rem;font-weight:600;background:var(--app-border-subtle);color:var(--app-text-secondary);border:1px solid var(--app-border);border-radius:999px;cursor:pointer}.tl-preset-btn:hover{background-color:var(--app-surface-hover);border-color:var(--app-input-border);color:var(--app-text)}.tl-no-results{padding:1.5rem 1rem;background:var(--app-surface);border:1px solid var(--app-border);border-radius:.75rem;text-align:center}.tl-no-results p{margin:0 0 .4rem}.tl-results-shell{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius-lg);padding:1.25rem;box-shadow:var(--app-shadow-md)}.tl-results-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,340px);gap:1.25rem;align-items:start}.tl-results-sidebar{display:flex;flex-direction:column;gap:1rem;position:sticky;top:calc(var(--app-nav-height) + 1rem)}.tl-insights{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);padding:1.1rem 1rem;box-shadow:var(--app-shadow-sm)}.tl-insights-title{display:flex;align-items:center;gap:.45rem;margin:0 0 .85rem;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--app-accent)}.tl-insights-icon{font-size:1rem;line-height:1}.tl-insights-headline{margin:0 0 .65rem;font-size:1rem;font-weight:700;color:var(--app-text);line-height:1.35}.tl-insights-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.tl-insights-bullet{position:relative;padding-left:1rem;font-size:.85rem;line-height:1.5;color:var(--app-text-secondary)}.tl-insights-bullet:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:#94a3b8}.tl-insights-bullet--positive:before{background:#16a34a}.tl-insights-bullet--negative:before{background:#dc2626}.tl-insights-bullet--neutral:before{background:#6b7280}.tl-insights-bullet--info:before{background:#2563eb}.tl-insights-divider{margin:.65rem 0;border:none;border-top:1px solid var(--app-border)}.tl-insights-disclaimer{margin:0;font-size:.75rem;line-height:1.5;color:var(--app-text-muted)}.tl-chat{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);padding:1rem;box-shadow:var(--app-shadow-sm);display:flex;flex-direction:column}.tl-chat-title{display:flex;align-items:center;gap:.4rem;margin:0 0 .65rem;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--app-accent)}.tl-chat-icon{font-size:.95rem;line-height:1}.tl-chat-messages{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;margin-bottom:.65rem;padding-right:.25rem;scroll-behavior:smooth}.tl-chat-placeholder{margin:0;font-size:.8rem;color:var(--app-text-muted);line-height:1.5;text-align:center;padding:1rem 0}.tl-chat-bubble{padding:.5rem .7rem;border-radius:.65rem;font-size:.84rem;line-height:1.55;max-width:88%;word-wrap:break-word;white-space:pre-wrap}.tl-chat-bubble--user{align-self:flex-end;background:#2563eb;color:#fff;border-bottom-right-radius:.2rem}.tl-chat-bubble--assistant{align-self:flex-start;background:var(--app-border-subtle);color:var(--app-text);border:1px solid var(--app-border);border-bottom-left-radius:.2rem}.tl-chat-bubble--loading{padding:.6rem 1rem}.tl-chat-dots{display:inline-flex;gap:.25rem}.tl-chat-dots span{width:5px;height:5px;border-radius:50%;background:#9ca3af;animation:tl-dot-pulse 1.2s infinite ease-in-out}.tl-chat-dots span:nth-child(2){animation-delay:.15s}.tl-chat-dots span:nth-child(3){animation-delay:.3s}@keyframes tl-dot-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.tl-chat-error{margin:0 0 .4rem;font-size:.78rem;color:#dc2626}.tl-chat-input-row{display:flex;gap:.4rem}.tl-chat-input{flex:1;padding:.45rem .6rem;font-size:.84rem;border:1px solid var(--app-border, #e5e7eb);border-radius:var(--app-radius, .5rem);background:var(--app-surface);color:var(--app-text);outline:none;transition:border-color .15s}.tl-chat-input:focus{border-color:var(--app-accent)}.tl-chat-input::placeholder{color:var(--app-text-muted)}.tl-chat-send{padding:.45rem .85rem;font-size:.82rem;font-weight:600;border:none;border-radius:var(--app-radius, .5rem);background:var(--app-accent);color:#fff;cursor:pointer;white-space:nowrap;transition:background .15s}.tl-chat-send:hover:not(:disabled){background:var(--app-accent-hover)}.tl-chat-send:disabled{opacity:.45;cursor:default}.tl-chat-disclaimer{margin:.5rem 0 0;font-size:.7rem;line-height:1.4;color:var(--app-text-muted)}[data-theme=dark] .tl-chat-dots span{background:var(--app-text-muted)}@media(max-width:960px){.tl-results-layout{grid-template-columns:1fr}.tl-results-sidebar{position:static}}.tl-summary{font-size:.85rem;font-weight:600;color:var(--app-text-secondary);margin-bottom:.75rem}.tl-section-kicker{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--app-accent);margin-bottom:.45rem}.tl-single-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:1rem;align-items:center;background:linear-gradient(180deg,#f8fbff,#fff);border:1px solid #dbeafe;border-radius:.85rem;padding:1rem 1.1rem;margin-bottom:1rem}.tl-single-copy h3{margin:0 0 .45rem;font-size:1.15rem;color:var(--app-text)}.tl-single-visual{position:relative;min-height:170px;border-radius:.85rem;background:#f8fafc;border:1px dashed #cbd5e1;overflow:hidden}.tl-single-axis{position:absolute;background:#cbd5e1}.tl-single-axis--y{left:34px;top:18px;bottom:34px;width:2px}.tl-single-axis--x{left:34px;right:20px;bottom:34px;height:2px}.tl-single-dot{position:absolute;left:54%;top:44%;width:14px;height:14px;margin-left:-7px;margin-top:-7px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 6px #2563eb1f}.tl-single-caption{position:absolute;right:18px;bottom:12px;font-size:.78rem;font-weight:600;color:var(--app-text-muted)}.tl-chart-wrapper{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);padding:.85rem .5rem .5rem;margin-bottom:1rem}.tl-chart-legend{display:flex;justify-content:center;gap:1.25rem;margin-top:.35rem;font-size:.75rem;color:var(--app-text-muted)}.tl-legend-item{display:inline-flex;align-items:center;gap:.3rem}.tl-legend-swatch{display:inline-block;width:14px;height:3px;border-radius:1px}.tl-legend--price{background-color:#2563eb}.tl-legend--sentiment{background-color:#a855f7}.tl-timeline{display:flex;flex-direction:column;gap:.5rem}.tl-card{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);padding:.75rem 1rem;transition:box-shadow .15s}.tl-card:hover{box-shadow:var(--app-shadow-md)}.tl-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.tl-card-heading{display:flex;flex-direction:column;gap:.15rem}.tl-card-kicker{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--app-text-muted)}.tl-card-date{font-size:.78rem;font-weight:500;color:var(--app-text-secondary)}.tl-delete-btn{background:transparent;border:none;color:var(--app-text-muted);font-size:1.1rem;line-height:1;padding:0 .3rem;cursor:pointer;border-radius:.25rem}.tl-delete-btn:hover{color:var(--app-negative);background-color:var(--app-negative-bg)}.tl-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.tl-metric{display:flex;flex-direction:column;gap:.25rem;padding:.75rem .8rem;background:var(--app-border-subtle);border:1px solid var(--app-border);border-radius:.65rem}.tl-metric-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--app-text-muted)}.tl-metric-note{font-size:.8rem;line-height:1.45;color:var(--app-text-secondary)}.tl-card-price{font-size:1.05rem;font-weight:700;color:var(--app-text)}@media(max-width:640px){.tl-controls-row{flex-direction:column;align-items:stretch}.tl-load-btn{width:100%}.tl-presets{flex-wrap:wrap}}@media(max-width:760px){.tl-single-panel,.tl-card-grid{grid-template-columns:1fr}}@media(max-width:840px){.app-main{padding:1rem}}.landing-page{background:#0a0a0a;color:#e5e7eb;min-height:100vh;overflow-x:clip}.landing-nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:3.5rem;background:#0a0a0ad1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #1f2937}.landing-nav-brand{font-size:1.15rem;font-weight:800;color:#fff;letter-spacing:-.01em;text-decoration:none}.landing-nav-brand:hover{text-decoration:none}.landing-nav-links{display:flex;align-items:center;gap:.35rem}.landing-nav-link{padding:.4rem .85rem;font-size:.88rem;font-weight:500;color:#9ca3af;border-radius:.45rem;text-decoration:none;transition:color .15s}.landing-nav-link:hover{color:#fff;text-decoration:none}.landing-nav-link:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.landing-nav-cta{padding:.4rem 1rem;font-size:.88rem;font-weight:600;color:#fff;background:#2563eb;border:1px solid #3b82f6;border-radius:.5rem;cursor:pointer;text-decoration:none;transition:background .15s}.landing-nav-cta:hover{background:#1d4ed8;text-decoration:none}.landing-nav-cta:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.landing-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:6rem 1.5rem 4rem;max-width:800px;margin:0 auto}.landing-headline{margin:0 0 1rem;font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800;line-height:1.08;letter-spacing:-.03em;color:#fff}.landing-headline-accent{background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-subheadline{margin:0 0 2.25rem;font-size:1.15rem;line-height:1.6;color:#9ca3af;max-width:580px}.landing-cta-row{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.landing-cta-primary{display:inline-flex;align-items:center;gap:.4rem;padding:.7rem 1.65rem;font-size:.95rem;font-weight:600;color:#fff;background:#2563eb;border:1px solid #3b82f6;border-radius:.6rem;text-decoration:none;transition:background .15s}.landing-cta-primary:hover{background:#1d4ed8;text-decoration:none}.landing-cta-secondary{display:inline-flex;align-items:center;gap:.4rem;padding:.7rem 1.65rem;font-size:.95rem;font-weight:600;color:#d1d5db;background:transparent;border:1px solid #374151;border-radius:.6rem;text-decoration:none;transition:border-color .15s,color .15s}.landing-cta-secondary:hover{border-color:#6b7280;color:#fff;text-decoration:none}.landing-showcase{max-width:960px;margin:0 auto 5rem;padding:0 1.5rem}.landing-mock{position:relative;border-radius:1rem;border:1px solid #1f2937;background:linear-gradient(175deg,#111827,#0a0a0a);padding:2.5rem 2rem;display:flex;align-items:center;justify-content:center;min-height:320px;overflow:hidden}.landing-mock-img{width:100%;max-width:860px;border-radius:.65rem;border:1px solid #1f2937;box-shadow:0 24px 64px #00000080;display:block}.landing-mock-placeholder{display:flex;flex-direction:column;align-items:center;gap:.65rem;color:#4b5563;font-size:.9rem}.landing-mock-placeholder-box{width:100%;max-width:720px;height:200px;border-radius:.75rem;border:2px dashed #1f2937;display:flex;align-items:center;justify-content:center;color:#374151;font-size:.85rem;font-weight:500}.landing-divider{max-width:960px;margin:0 auto 4rem;border:none;border-top:1px solid #1f2937}.landing-section-header{max-width:640px;margin:0 auto 3rem;padding:0 1.5rem;text-align:center}.landing-section-kicker{display:block;margin-bottom:.75rem;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#60a5fa}.landing-section-title{margin:0 0 .85rem;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;letter-spacing:-.02em;color:#fff;line-height:1.15}.landing-section-body{margin:0;font-size:1rem;line-height:1.6;color:#9ca3af}.landing-features{max-width:960px;margin:0 auto 5rem;padding:0 1.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.landing-feature{padding:1.5rem 1.35rem;border-radius:.85rem;border:1px solid #1f2937;background:#111;transition:border-color .2s}.landing-feature:hover{border-color:#374151}.landing-feature-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;margin-bottom:1rem;border-radius:.65rem;background:#6366f114;font-size:1.15rem;color:#818cf8}.landing-feature h3{margin:0 0 .55rem;font-size:1.05rem;font-weight:700;color:#f3f4f6}.landing-feature p{margin:0;font-size:.88rem;line-height:1.55;color:#9ca3af}.landing-strip{max-width:960px;margin:0 auto 4.5rem;padding:0 1.5rem;text-align:center}.landing-strip-label{display:block;margin-bottom:.85rem;font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#4b5563}.landing-strip-row{display:flex;flex-wrap:wrap;justify-content:center;gap:1.75rem 2.5rem;color:#6b7280;font-size:.92rem;font-weight:600}.landing-strip-item{display:inline-flex;align-items:center;gap:.35rem}.landing-footer{border-top:1px solid #1f2937;padding:2.5rem 2rem;text-align:center;color:#4b5563;font-size:.82rem}.landing-footer a{color:#6b7280;font-weight:500}.landing-footer a:hover{color:#9ca3af}@media(max-width:720px){.landing-hero{padding:4rem 1.25rem 3rem}.landing-features{grid-template-columns:1fr}.landing-mock{padding:1.5rem 1rem;min-height:180px}.landing-nav{padding:0 1rem}}@media(max-width:480px){.landing-cta-row{flex-direction:column;align-items:stretch}.landing-cta-primary,.landing-cta-secondary{justify-content:center}}.ticker-panel-wrapper{display:flex;flex-direction:column}.ticker-panel-wrapper .ticker-panel{flex:1}.ticker-panel-wrapper.slide-left{animation:slideLeft .28s cubic-bezier(.4,0,.2,1) forwards}.ticker-panel-wrapper.slide-right{animation:slideRight .28s cubic-bezier(.4,0,.2,1) forwards}@keyframes slideLeft{0%{transform:translate(0);opacity:1}50%{transform:translate(-60px);opacity:0}51%{transform:translate(60px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideRight{0%{transform:translate(0);opacity:1}50%{transform:translate(60px);opacity:0}51%{transform:translate(-60px);opacity:0}to{transform:translate(0);opacity:1}}.swap-btn-row{display:flex;gap:6px;justify-content:center;padding:8px 0 4px}.swap-btn{border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-text-secondary);border-radius:6px;width:28px;height:28px;font-size:14px;cursor:pointer;transition:background-color .12s,border-color .12s;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.swap-btn:disabled{opacity:.3;cursor:not-allowed}.swap-btn:hover:not(:disabled){background:var(--app-surface-hover);border-color:var(--app-text-faint)}.alerts-wrapper{max-width:1240px;margin:0 auto;padding:1.5rem 0 3rem}.alerts-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.alerts-header h2{margin:0 0 .25rem}.alerts-subtitle{margin:0;color:var(--app-text-muted);font-size:.9rem;max-width:640px;line-height:1.5}.alerts-mark-read-btn,.alerts-clear-btn{padding:.4rem .8rem;font-size:.8rem;font-weight:600;background:transparent;color:var(--app-accent);border:1px solid var(--app-accent);border-radius:.4rem;cursor:pointer}.alerts-mark-read-btn:hover,.alerts-clear-btn:hover{background:var(--app-accent-light)}.alerts-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.5rem}@media(max-width:900px){.alerts-layout{grid-template-columns:1fr}}.alerts-column{background:var(--app-surface);border:1px solid var(--app-border);border-radius:.75rem;padding:1.25rem 1.25rem 1.5rem}.alerts-column h3{margin:0 0 .85rem;font-size:1rem;font-weight:600}.alerts-list-header{margin-top:1.75rem!important;padding-top:1rem;border-top:1px solid var(--app-border-subtle)}.alerts-form{display:flex;flex-direction:column;gap:.85rem}.alerts-field{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem}.alerts-field span{color:var(--app-text-muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.alerts-field input,.alerts-field select{padding:.5rem .65rem;font-size:.9rem;color:var(--app-text);background:var(--app-surface-muted, #f9fafb);border:1px solid var(--app-border);border-radius:.4rem}.alerts-field input:focus,.alerts-field select:focus{outline:2px solid var(--app-accent);outline-offset:1px;border-color:var(--app-accent)}.alerts-error{margin:0;color:#b91c1c;font-size:.82rem}.alerts-submit{align-self:flex-start;margin-top:.25rem;padding:.55rem 1.1rem;font-size:.9rem;font-weight:600;background:var(--app-accent);color:#fff;border:none;border-radius:.45rem;cursor:pointer}.alerts-submit:disabled{opacity:.6;cursor:not-allowed}.alerts-submit:hover:not(:disabled){filter:brightness(1.05)}.alerts-rule-list,.alerts-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.alerts-rule{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border:1px solid var(--app-border);border-radius:.55rem;background:var(--app-surface-muted, #f9fafb)}.alerts-rule--disabled{opacity:.55}.alerts-rule-main{flex:1;min-width:0}.alerts-rule-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.15rem}.alerts-rule-symbol{font-weight:700;font-size:.92rem;letter-spacing:.02em}.alerts-rule-warning{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:.3rem;padding:.1rem .4rem}.alerts-rule-desc{font-size:.84rem;color:var(--app-text-muted);line-height:1.35}.alerts-rule-note{margin-top:.2rem;font-size:.76rem;color:var(--app-text-faint);font-style:italic}.alerts-rule-actions{display:flex;gap:.35rem;flex-shrink:0}.alerts-rule-toggle{padding:.3rem .7rem;font-size:.76rem;font-weight:700;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;border-radius:.35rem;cursor:pointer;min-width:2.4rem}.alerts-rule-toggle[aria-pressed=false]{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}.alerts-rule-delete{width:1.8rem;height:1.8rem;font-size:1.1rem;line-height:1;color:#6b7280;background:transparent;border:1px solid var(--app-border);border-radius:.35rem;cursor:pointer}.alerts-rule-delete:hover{color:#b91c1c;border-color:#fca5a5;background:#fef2f2}.alerts-feed-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.alerts-feed-header h3{margin:0}.alerts-event{padding:.7rem .85rem;border:1px solid var(--app-border);border-radius:.55rem;background:var(--app-surface-muted, #f9fafb);cursor:pointer;transition:background-color .12s}.alerts-event:hover{background:var(--app-surface-hover, #f3f4f6)}.alerts-event--read{opacity:.65;cursor:default}.alerts-event-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.alerts-event-symbol{font-weight:700;font-size:.88rem}.alerts-event-time{font-size:.72rem;color:var(--app-text-muted)}.alerts-event-dot{width:.5rem;height:.5rem;border-radius:50%;background:#dc2626;margin-left:auto}.alerts-event-message{font-size:.88rem;color:var(--app-text);line-height:1.4}.alerts-event-note{margin-top:.2rem;font-size:.76rem;color:var(--app-text-faint);font-style:italic}[data-theme=dark] .alerts-column{background:var(--app-surface);border-color:var(--app-border)}[data-theme=dark] .alerts-field input,[data-theme=dark] .alerts-field select,[data-theme=dark] .alerts-rule,[data-theme=dark] .alerts-event{background:#ffffff08;border-color:#ffffff1a}[data-theme=dark] .alerts-event:hover{background:#ffffff0f}[data-theme=dark] .alerts-rule-warning{color:#fbbf24;background:#f59e0b1f;border-color:#f59e0b59}[data-theme=dark] .alerts-rule-toggle{background:#10b98124;color:#6ee7b7;border-color:#10b98159}[data-theme=dark] .alerts-rule-toggle[aria-pressed=false]{background:#ffffff0f;color:#9ca3af;border-color:#ffffff1f}[data-theme=dark] .alerts-rule-delete:hover{color:#fca5a5;border-color:#f8717166;background:#f871711f}.alerts-help-btn{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-left:.6rem;padding:0;border-radius:999px;border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-text-muted);font-size:.85rem;font-weight:700;line-height:1;cursor:pointer;vertical-align:middle;transition:color .15s ease,border-color .15s ease,background .15s ease}.alerts-help-btn:hover,.alerts-help-btn:focus-visible{color:var(--app-accent);border-color:var(--app-accent);background:var(--app-accent-light);outline:none}.modal-backdrop{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:1.25rem;z-index:1000;animation:modal-fade .15s ease-out}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal-dialog{width:100%;max-height:calc(100vh - 3rem);overflow-y:auto;background:var(--app-surface);color:var(--app-text);border:1px solid var(--app-border);border-radius:.85rem;box-shadow:0 25px 50px -12px #00000059;padding:1.25rem 1.5rem 1.5rem;outline:none}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-title{margin:0;font-size:1.15rem;font-weight:600}.modal-close{background:transparent;border:none;font-size:1.5rem;line-height:1;color:var(--app-text-muted);cursor:pointer;padding:.1rem .4rem;border-radius:.35rem}.modal-close:hover,.modal-close:focus-visible{color:var(--app-text);background:var(--app-accent-light);outline:none}.modal-body{font-size:.92rem;line-height:1.55;color:var(--app-text)}.alerts-help section+section{margin-top:1.1rem}.alerts-help h3{margin:0 0 .35rem;font-size:.95rem;font-weight:600;color:var(--app-text)}.alerts-help p,.alerts-help ul,.alerts-help ol{margin:0 0 .4rem;color:var(--app-text)}.alerts-help ul,.alerts-help ol{padding-left:1.25rem}.alerts-help li+li{margin-top:.2rem}.alerts-help code{background:var(--app-accent-light);color:var(--app-accent);padding:.05rem .35rem;border-radius:.3rem;font-size:.85em}.alerts-help-dl{margin:0;display:grid;grid-template-columns:max-content 1fr;column-gap:.85rem;row-gap:.35rem}.alerts-help-dl dt{font-weight:600;color:var(--app-text)}.alerts-help-dl dd{margin:0;color:var(--app-text-muted)}@media(max-width:560px){.alerts-help-dl{grid-template-columns:1fr;row-gap:.1rem}.alerts-help-dl dd{margin-bottom:.5rem}}[data-theme=dark] .modal-backdrop{background:#000000a6}[data-theme=dark] .alerts-help-btn{background:#ffffff0a}[data-theme=dark] .alerts-help-btn:hover,[data-theme=dark] .alerts-help-btn:focus-visible{background:#6366f12e}[data-theme=dark] .alerts-error{color:#fca5a5}.auth-field-wrapper{display:flex;flex-direction:column;gap:.4rem;margin:0}.auth-field-wrapper.has-error{animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.auth-field-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.auth-field-label{display:block;font-size:.82rem;font-weight:600;color:#9ca3af;letter-spacing:.01em}.required-indicator{color:#ef4444;margin-left:.2rem}.password-toggle{background:none;border:none;padding:.25rem .5rem;cursor:pointer;font-size:1rem;color:#6b7280;transition:color .15s;border-radius:.25rem;display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}.password-toggle:hover{color:#9ca3af;background-color:#4b556333}.password-toggle:focus{outline:2px solid #3b82f6;outline-offset:2px}.auth-field-input-wrapper{position:relative;display:flex;align-items:center}.auth-field-input{width:100%;padding:.65rem .85rem;font-size:.95rem;color:#f3f4f6;background:#0a0a0a;border:1px solid #374151;border-radius:.55rem;outline:none;transition:all .15s}.auth-field-input:hover{border-color:#4b5563}.auth-field-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.auth-field-input.input-error{border-color:#dc2626;background-color:#dc26260d}.auth-field-input.input-error:focus{border-color:#dc2626;box-shadow:0 0 0 3px #dc262626}.password-visibility-indicator{position:absolute;right:.85rem;font-size:.75rem;color:#6b7280;pointer-events:none;font-weight:500}.strength-indicator{display:flex;flex-direction:column;gap:.35rem;padding:.5rem 0}.strength-bar{width:100%;height:4px;background:#1f2937;border-radius:2px;overflow:hidden}.strength-fill{width:33%;height:100%;border-radius:2px;transition:width .3s ease,background-color .3s ease}.strength-fill-weak{width:33%;background-color:#ef4444}.strength-fill-fair{width:66%;background-color:#f59e0b}.strength-fill-good{width:85%;background-color:#3b82f6}.strength-fill-strong{width:100%;background-color:#10b981}.strength-text{font-size:.75rem;font-weight:500;color:#9ca3af}.strength-indicator.strength-weak .strength-text{color:#ef4444}.strength-indicator.strength-fair .strength-text{color:#f59e0b}.strength-indicator.strength-good .strength-text{color:#3b82f6}.strength-indicator.strength-strong .strength-text{color:#10b981}.auth-field-error{margin:0;padding:.5rem .6rem;font-size:.82rem;color:#fca5a5;background:#dc262614;border-left:2px solid #dc2626;border-radius:.3rem;animation:slideInError .3s ease-out}.auth-field-hint{margin:0;padding:.5rem .6rem;font-size:.82rem;color:#9ca3af;background:#3b82f614;border-left:2px solid #3b82f6;border-radius:.3rem}@keyframes slideInError{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auth-field-input:disabled{opacity:.6;cursor:not-allowed;background-color:#111}@media(max-width:480px){.auth-field-label{font-size:.78rem}.auth-field-input{padding:.55rem .65rem;font-size:.9rem}.password-toggle{min-width:24px;min-height:24px}}.auth-notification-container{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.75rem;z-index:1000;max-width:400px;pointer-events:auto}.auth-notification{display:flex;align-items:flex-start;gap:.85rem;padding:.9rem 1rem;border-radius:.6rem;border-left:4px solid;background-color:#1a1a1a;box-shadow:0 4px 12px #0000004d;animation:slideInNotification .3s ease-out;overflow:hidden}@keyframes slideInNotification{0%{opacity:0;transform:translate(400px)}to{opacity:1;transform:translate(0)}}.auth-notification.notification-error{border-left-color:#dc2626;background-color:#dc26261a}.auth-notification.notification-warning{border-left-color:#f59e0b;background-color:#f59e0b1a}.auth-notification.notification-success{border-left-color:#10b981;background-color:#10b9811a}.auth-notification.notification-info{border-left-color:#3b82f6;background-color:#3b82f61a}.notification-content{display:flex;align-items:flex-start;gap:.75rem;flex:1;min-width:0}.notification-icon{font-size:1.3rem;flex-shrink:0;margin-top:.05rem}.notification-text{display:flex;flex-direction:column;gap:.3rem;min-width:0}.notification-title{margin:0;font-size:.95rem;font-weight:600;color:#f3f4f6}.notification-message{margin:0;font-size:.9rem;color:#d1d5db;line-height:1.4;word-wrap:break-word}.notification-suggestion{margin:.25rem 0 0;padding-top:.25rem;font-size:.85rem;color:#9ca3af;border-top:1px solid rgba(107,114,128,.3);font-style:italic;line-height:1.4}.auth-notification.notification-error .notification-title{color:#fca5a5}.auth-notification.notification-error .notification-message{color:#fbcaca}.auth-notification.notification-warning .notification-title{color:#fcd34d}.auth-notification.notification-warning .notification-message{color:#fde68a}.auth-notification.notification-success .notification-title{color:#86efac}.auth-notification.notification-success .notification-message{color:#bbf7d0}.auth-notification.notification-info .notification-title{color:#93c5fd}.auth-notification.notification-info .notification-message{color:#bfdbfe}.notification-dismiss{flex-shrink:0;background:none;border:none;color:#6b7280;font-size:1.2rem;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;border-radius:.35rem;transition:all .15s}.notification-dismiss:hover{color:#d1d5db;background-color:#4b556333}.notification-dismiss:focus{outline:2px solid #3b82f6;outline-offset:2px}@media(max-width:640px){.auth-notification-container{top:.5rem;right:.5rem;left:.5rem;max-width:none}.auth-notification{padding:.75rem .85rem;gap:.6rem}.notification-title{font-size:.9rem}.notification-message{font-size:.85rem}}@keyframes slideOutNotification{to{opacity:0;transform:translate(400px)}}.auth-notification.dismissing{animation:slideOutNotification .3s ease-out forwards}
