*{box-sizing:border-box;margin:0;padding:0}body{color:#e0e0e0;background-color:#0f1117;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}.container{max-width:1400px;margin:0 auto;padding:24px}h1,h2,h3{font-weight:600}.dashboard-title{color:#fff;margin-bottom:32px;font-size:2rem}.ticker-section{margin-bottom:48px}.section-title{text-transform:uppercase;letter-spacing:.1em;color:#888;border-bottom:1px solid #222;margin-bottom:16px;padding-bottom:8px;font-size:1.1rem}.ticker-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.ticker-card{cursor:pointer;background:#1a1d27;border:1px solid #2a2d3a;border-radius:12px;padding:20px;transition:border-color .2s,transform .2s;display:block}.ticker-card:hover{border-color:#4a9eff;transform:translateY(-2px)}.ticker-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ticker-symbol{color:#fff;font-size:1.1rem;font-weight:700}.ticker-type{text-transform:uppercase;color:#555;letter-spacing:.05em;font-size:.7rem}.ticker-name{color:#888;margin-bottom:12px;font-size:.85rem}.ticker-price{color:#4a9eff;margin-bottom:4px;font-size:1.4rem;font-weight:600}.ticker-sparkline-wrap{margin:8px 0;position:relative}.ticker-sparkline-label{color:#555;letter-spacing:.05em;font-size:.62rem;position:absolute;top:0;right:0}.ticker-sparkline{width:100%;height:40px;display:block}.ticker-date{color:#555;font-size:.75rem}.detail-header{align-items:center;gap:24px;margin-bottom:32px;display:flex}.back-link{color:#4a9eff;white-space:nowrap;font-size:.9rem}.back-link:hover{text-decoration:underline}.detail-title{color:#fff;font-size:2rem}.detail-subtitle{color:#888;margin-top:4px;font-size:.85rem}.detail-price-block{flex-direction:column;align-items:flex-end;margin-left:auto;display:flex}.detail-price{color:#fff;font-size:1.75rem;font-weight:600;line-height:1.2}.detail-change{margin-top:4px;font-size:.95rem;font-weight:500}.detail-layout{grid-template-columns:1fr 320px;align-items:start;gap:32px;display:grid}.ai-summary-panel{background-color:#1a1d27;border:1px solid #2a2d3a;border-radius:12px;margin-top:24px;padding:20px}.ai-summary-header{text-transform:uppercase;letter-spacing:.05em;color:#888;margin-bottom:12px;font-size:.75rem}.ai-summary-text{color:#ccc;font-size:.95rem;line-height:1.6}.ai-summary-loading{color:#888;font-size:.9rem;font-style:italic}.ai-summary-unavailable{color:#666;font-size:.9rem}.section-label{text-transform:uppercase;letter-spacing:.1em;color:#888;margin-bottom:12px;font-size:.85rem}.chart-container{background:#1a1d27;border:1px solid #2a2d3a;border-radius:12px;padding:24px}.chart-empty{color:#888;text-align:center;padding:24px}.chart-tooltip{background:#1a1d27;border:1px solid #2a2d3a;border-radius:8px;padding:10px 14px}.tooltip-date{color:#888;margin-bottom:4px;font-size:.8rem}.tooltip-price{color:#4a9eff;font-size:1rem;font-weight:600}.analysis-panel{background:#1a1d27;border:1px solid #2a2d3a;border-radius:12px;flex-direction:column;gap:20px;padding:20px;display:flex}.analysis-section{flex-direction:column;gap:8px;display:flex}.analysis-section-title{text-transform:uppercase;letter-spacing:.1em;color:#555;margin-bottom:4px;font-size:.75rem}.metric-row{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.metric-label{color:#888}.metric-value{color:#e0e0e0;font-weight:500}.metric-positive{color:#4caf7d}.metric-negative{color:#f44747}.analysis-error{color:#f44747;padding:16px}.ticker-change{margin-bottom:4px;font-size:.9rem;font-weight:600}.dashboard-header{border-bottom:1px solid #222;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;display:flex}.header-meta{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.header-date{color:#888;font-size:.85rem}.market-open{color:#4caf7d;font-size:.85rem;font-weight:600}.market-closed{color:#f44747;font-size:.85rem;font-weight:600}.notes-section{border-top:1px solid #2a2d3a;padding-top:16px}.notes-input-row{gap:8px;margin-top:8px;margin-bottom:12px;display:flex}.notes-input{color:#e0e0e0;background:#0f1117;border:1px solid #2a2d3a;border-radius:6px;outline:none;flex:1;padding:8px 10px;font-size:.85rem}.notes-input:focus{border-color:#4a9eff}.notes-save-btn{color:#000;cursor:pointer;background:#4a9eff;border:none;border-radius:6px;padding:8px 14px;font-size:.85rem;font-weight:600}.notes-save-btn:disabled{opacity:.4;cursor:not-allowed}.notes-empty{color:#555;font-size:.8rem}.notes-list{flex-direction:column;gap:8px;display:flex}.note-item{background:#0f1117;border:1px solid #2a2d3a;border-radius:8px;padding:10px 12px}.note-meta{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.note-date{color:#555;font-size:.75rem}.note-delete-btn{color:#555;cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.note-delete-btn:hover{color:#f44747}.note-text{color:#ccc;font-size:.85rem;line-height:1.4}.refresh-btn{color:#888;cursor:pointer;background:0 0;border:1px solid #2a2d3a;border-radius:6px;padding:6px 12px;font-size:.82rem;transition:all .15s}.refresh-btn:hover{color:#4a9eff;border-color:#4a9eff}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.signout-btn{color:#888;cursor:pointer;background:0 0;border:1px solid #2a2d3a;border-radius:6px;padding:6px 12px;font-size:.82rem;transition:all .15s}.signout-btn:hover{color:#f44747;border-color:#f44747}.signin-banner{color:#aaa;background-color:#1a1d27;border-bottom:1px solid #2a2d3a;justify-content:center;align-items:center;gap:14px;padding:8px 16px;font-size:.85rem;display:flex}.signin-banner-btn{color:#4a9eff;cursor:pointer;background:0 0;border:1px solid #4a9eff;border-radius:6px;padding:4px 12px;font-size:.8rem;font-weight:600;transition:all .15s}.signin-banner-btn:hover{color:#fff;background-color:#4a9eff}.notes-signin-prompt{color:#888;margin-bottom:10px;font-size:.82rem}.notes-signin-prompt a{color:#4a9eff;font-weight:600}.notes-signin-prompt a:hover{text-decoration:underline}.refresh-result{color:#4caf7d;font-size:.8rem}.intraday-select{color:#e0e0e0;cursor:pointer;background:#1a1d27;border:1px solid #2a2d3a;border-radius:6px;outline:none;padding:4px 10px;font-size:.82rem}.intraday-select:focus{border-color:#4a9eff}.auth-page{background-color:#0f1117;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:#1a1d27;border:1px solid #2a2d3a;border-radius:12px;width:100%;max-width:380px;padding:32px}.auth-title{color:#fff;text-align:center;font-size:1.5rem}.auth-subtitle{color:#888;text-align:center;margin-top:6px;margin-bottom:24px;font-size:.9rem}.auth-btn{cursor:pointer;border:1px solid #0000;border-radius:8px;width:100%;padding:12px 16px;font-size:.95rem;font-weight:600;transition:background-color .15s,border-color .15s,opacity .15s}.auth-btn:disabled{opacity:.6;cursor:default}.auth-btn-google{color:#fff;background-color:#4a9eff}.auth-btn-google:hover{background-color:#3a8ef0}.auth-btn-email{color:#e0e0e0;background-color:#0000;border-color:#2a2d3a}.auth-btn-email:hover:not(:disabled){border-color:#4a9eff}.auth-divider{text-align:center;color:#555;align-items:center;margin:20px 0;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-bottom:1px solid #2a2d3a;flex:1}.auth-divider span{padding:0 12px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-label{color:#888;flex-direction:column;gap:6px;font-size:.8rem;display:flex}.auth-input{color:#e0e0e0;background-color:#0f1117;border:1px solid #2a2d3a;border-radius:8px;outline:none;padding:10px 12px;font-size:.95rem;transition:border-color .15s}.auth-input:focus{border-color:#4a9eff}.auth-input::placeholder{color:#555}.auth-error{color:#f44747;font-size:.85rem}.auth-message{color:#4caf7d;font-size:.85rem}.auth-footer{text-align:center;color:#888;margin-top:24px;font-size:.85rem}.auth-link{color:#4a9eff;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600}.auth-link:hover{text-decoration:underline}.landing-root{--bg:#faf9f6;--surface:#fff;--border:#e9e3d9;--text:#14181f;--text-secondary:#5c6675;--blue:#2d4ec8;--ochre:#b87a18;--up:#12855b;--down:#d6504f;background-color:var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}.landing-root *{box-sizing:border-box}.landing-container{width:100%;max-width:1080px;margin:0 auto;padding:0 24px}.landing-nav{justify-content:space-between;align-items:center;padding:24px 0;display:flex}.landing-brand{letter-spacing:-.01em;color:var(--text);font-family:Fraunces,Georgia,serif;font-size:1.4rem;font-weight:600}.landing-ghost-btn{color:var(--blue);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:8px 18px;font-family:Inter,sans-serif;font-size:.95rem;font-weight:500;transition:border-color .15s,background-color .15s}.landing-ghost-btn:hover{border-color:var(--blue);background-color:#2d4ec80a}.landing-hero{text-align:center;padding:72px 0 56px}.landing-headline{letter-spacing:-.02em;color:var(--text);max-width:16ch;margin:0 auto;font-family:Fraunces,Georgia,serif;font-size:clamp(2.6rem,6vw,4.2rem);font-weight:600;line-height:1.05}.landing-subhead{color:var(--text-secondary);max-width:46ch;margin:24px auto 0;font-family:Inter,sans-serif;font-size:clamp(1.05rem,2vw,1.25rem)}.landing-primary-btn{color:#fff;background-color:var(--blue);cursor:pointer;border:none;border-radius:10px;margin-top:36px;padding:14px 28px;font-family:Inter,sans-serif;font-size:1rem;font-weight:600;transition:background-color .15s,transform 50ms;display:inline-block;box-shadow:0 1px 2px #14181f14}.landing-primary-btn:hover{background-color:#2745b0}.landing-primary-btn:active{transform:translateY(1px)}.landing-motif{justify-content:center;padding:8px 0 72px;display:flex}.motif-card{background-color:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:440px;padding:22px;box-shadow:0 8px 30px #14181f0f}.motif-ticker{align-items:baseline;gap:10px;font-family:IBM Plex Mono,monospace;display:flex}.motif-symbol{color:var(--text);font-size:1rem;font-weight:500}.motif-price{color:var(--text);margin-left:auto;font-size:1.35rem;font-weight:500}.motif-change{color:var(--up);font-family:IBM Plex Mono,monospace;font-size:.95rem;font-weight:500}.motif-plain{background-color:#b87a1814;border:1px solid #b87a1838;border-radius:12px;margin-top:18px;padding:18px}.motif-plain-label{letter-spacing:.14em;color:var(--ochre);font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:500}.motif-plain-text{color:var(--text);margin-top:10px;font-family:Fraunces,Georgia,serif;font-size:1.15rem;line-height:1.45}.motif-plain-text .motif-highlight{color:var(--ochre);font-family:IBM Plex Mono,monospace;font-size:.95em}.landing-features{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:40px;padding:56px 0 80px;display:grid}.feature-col h3{letter-spacing:-.01em;color:var(--text);margin-bottom:10px;font-family:Fraunces,Georgia,serif;font-size:1.3rem;font-weight:600}.feature-col p{color:var(--text-secondary);font-family:Inter,sans-serif;font-size:.98rem}.landing-footer{border-top:1px solid var(--border);text-align:center;padding:28px 0}.landing-footer span{color:var(--text-secondary);letter-spacing:.02em;font-family:IBM Plex Mono,monospace;font-size:.85rem}@media (width<=720px){.landing-features{grid-template-columns:1fr;gap:32px}}
