*{margin:0;padding:0;box-sizing:border-box}body,html{margin:0;padding:0;width:100%;height:100%;overflow-x:hidden}.app-container,body,html{background:#0b1120;color:#e5e7eb;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-container{min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 2rem;background:#020617;border-bottom:1px solid #1f2937;box-shadow:0 1px 3px rgba(0,0,0,.2)}.header h1{font-size:1.75rem;font-weight:700;background:linear-gradient(90deg,#e5e7eb,#9ca3af);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions .btn{margin-left:.5rem}.btn{padding:.4rem .9rem;border-radius:9999px;border:1px solid #4f46e5;background:#111827;color:#e5e7eb;cursor:pointer;font-size:.85rem}.btn-secondary{border-color:#9ca3af}.btn-analyze{padding:.75rem 2rem;border-radius:9999px;border:none;background:#4f46e5;color:#fff;cursor:pointer;font-weight:600;font-size:1rem;transition:all .2s ease;box-shadow:0 2px 4px rgba(79,70,229,.3)}.btn-analyze:hover:not(:disabled){background:#6366f1;transform:translateY(-1px);box-shadow:0 4px 6px rgba(79,70,229,.4)}.btn-analyze:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.main-content{padding:2rem 2rem 4rem;max-width:1400px;margin:0 auto}.ticker-input-section{margin-bottom:2rem;padding:1.5rem;background:#020617;border:1px solid #1f2937;border-radius:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.3)}.ticker-input-group{display:flex;gap:.75rem;align-items:center}.ticker-input{flex:1 1;padding:.75rem 1rem;border-radius:.5rem;border:1px solid #4b5563;background:#0b1120;color:#e5e7eb;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.ticker-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(79,70,229,.1)}.chart-options-card{margin-top:1rem;padding:1.25rem 1.5rem;background:#020617;border:1px solid #1f2937;border-radius:.75rem;display:flex;flex-wrap:wrap;gap:1rem}.checkbox-group{display:flex;align-items:center;gap:.75rem;font-size:.9rem;cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.checkbox-group input[type=checkbox]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkbox-group .checkbox-label{position:relative;padding-left:2rem;color:#e5e7eb;transition:color .2s ease}.checkbox-group .checkbox-label:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:1.25rem;width:1.25rem;background-color:#1f2937;border:2px solid #4b5563;border-radius:.375rem;transition:all .2s ease}.checkbox-group .checkbox-label:after{content:"";position:absolute;left:.375rem;top:50%;transform:translateY(-60%) rotate(45deg);width:.375rem;height:.75rem;border:solid #fff;border-width:0 2px 2px 0;opacity:0;transition:opacity .2s ease,transform .2s ease}.checkbox-group input[type=checkbox]:checked~.checkbox-label:before{background-color:#4f46e5;border-color:#6366f1;box-shadow:0 0 0 3px rgba(79,70,229,.2)}.checkbox-group input[type=checkbox]:checked~.checkbox-label:after{opacity:1;transform:translateY(-60%) rotate(45deg)}.checkbox-group:hover .checkbox-label:before{border-color:#6366f1}.checkbox-group:hover .checkbox-label{color:#f3f4f6}.checkbox-group input[type=checkbox]:focus~.checkbox-label:before{outline:2px solid #6366f1;outline-offset:2px}.timeframe-buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 2rem}.timeframe-btn{padding:.5rem 1.25rem;border-radius:9999px;border:1px solid #374151;background:#020617;color:#9ca3af;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.timeframe-btn:hover:not(:disabled){border-color:#6366f1;color:#e5e7eb;background:#111827;transform:translateY(-1px)}.timeframe-btn.active{background:#4f46e5;color:#fff;border-color:#6366f1;box-shadow:0 2px 4px rgba(79,70,229,.3)}.timeframe-btn:disabled{opacity:.4;cursor:not-allowed}.loading{padding:2rem;text-align:center;color:#9ca3af;font-size:1rem}.error{margin:1.5rem 0;padding:1rem 1.25rem;border-radius:.5rem;background:#450a0a;color:#fecaca;border:1px solid #7f1d1d;box-shadow:0 2px 4px rgba(0,0,0,.2)}.results-container{margin-top:2rem;padding:2rem;background:#020617;border:1px solid #1f2937;border-radius:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.3)}.price-section{display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:2rem;padding:1.5rem;background:#0b1120;border-radius:.5rem;border:1px solid #1f2937}.price-item{min-width:140px;padding:.75rem}.price-label{font-size:.85rem;color:#9ca3af;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.price-value{font-size:1.35rem;font-weight:600;color:#e5e7eb}.price-value.highlight{font-size:2rem;color:#4ade80;font-weight:700}.overall-signal{padding:1.25rem 1.5rem;border-radius:.75rem;margin-bottom:2rem;font-weight:600;text-align:center;font-size:1.1rem;box-shadow:0 2px 4px rgba(0,0,0,.2);letter-spacing:.5px}.overall-signal.buy{background:#064e3b;color:#bbf7d0}.overall-signal.sell{background:#7f1d1d;color:#fecaca}.overall-signal.hold{background:#78350f;color:#fed7aa}.signals-section{margin-top:2rem}.signals-section h2{font-size:1.5rem;margin-bottom:1.5rem;color:#e5e7eb;font-weight:600}.signals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:1rem;gap:1rem}.signal-card{padding:1.25rem;border-radius:.75rem;background:#0b1120;border:1px solid #1f2937;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 1px 2px rgba(0,0,0,.2)}.signal-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px rgba(0,0,0,.3);border-color:#374151}.signal-title{font-size:.85rem;color:#9ca3af;margin-bottom:.35rem}.signal-value{font-size:.95rem}.signal-value.buy{color:#4ade80}.signal-value.sell{color:#fb7185}.signal-value.hold{color:#facc15}.chart-container{margin-top:2.5rem;padding:1.5rem;background:#0b1120;border-radius:.5rem;border:1px solid #1f2937}.chart-container h2{margin-bottom:1.25rem;font-size:1.5rem;color:#e5e7eb;font-weight:600}.earnings-section{margin-top:2rem;padding:1.5rem;background:#0b1120;border-radius:.5rem;border:1px solid #1f2937}.earnings-section h2{font-size:1.5rem;margin-bottom:1rem;color:#e5e7eb;font-weight:600}.earnings-section ul{list-style:none;padding:0;margin:0}.earnings-section li{font-size:.95rem;color:#e5e7eb;padding:.5rem 0;border-bottom:1px solid #1f2937}.earnings-section li:last-child{border-bottom:none}.modal{position:fixed;inset:0;background:rgba(15,23,42,.85);display:flex;align-items:center;justify-content:center;z-index:50}.modal-content{max-width:800px;max-height:80vh;overflow-y:auto;background:#020617;border-radius:.75rem;padding:1.5rem 1.75rem;border:1px solid #1f2937}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-close{border:none;background:transparent;color:#9ca3af;font-size:1.4rem;cursor:pointer}.indicator-item{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid #1f2937}.indicator-name{font-weight:600;margin-bottom:.25rem}.indicator-description{font-size:.9rem;color:#9ca3af;margin-bottom:.5rem}.indicator-signal{font-size:.85rem;padding:.35rem .6rem;border-radius:.5rem}.indicator-signal.buy{background:rgba(16,185,129,.15);color:#6ee7b7}.indicator-signal.sell{background:rgba(239,68,68,.15);color:#fecaca}.landing-container{min-height:100vh;background:#0b1120;color:#e5e7eb;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.landing-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:#020617;border-bottom:1px solid #1f2937}.landing-logo{font-size:1.75rem;font-weight:700;color:#4f46e5;margin:0}.landing-nav{display:flex;gap:1rem;align-items:center}.nav-link{padding:.5rem 1.25rem;border-radius:.5rem;text-decoration:none;color:#e5e7eb;font-size:.9rem;transition:all .2s}.nav-link:hover{background:#1f2937}.nav-link-primary{background:#4f46e5;color:#fff}.nav-link-primary:hover{background:#6366f1}.landing-main{max-width:1200px;margin:0 auto;padding:0 2rem}.hero-section{text-align:center;padding:4rem 0 6rem}.hero-title{font-size:3rem;font-weight:700;margin-bottom:1.5rem;background:linear-gradient(90deg,#e5e7eb,#9ca3af);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.25rem;color:#9ca3af;max-width:700px;margin:0 auto 2.5rem;line-height:1.6}.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.cta-button{padding:.875rem 2rem;border-radius:.5rem;text-decoration:none;font-weight:600;font-size:1rem;transition:all .2s;display:inline-block}.cta-primary{background:#4f46e5;color:#fff}.cta-primary:hover{background:#6366f1;transform:translateY(-2px)}.cta-secondary{background:transparent;color:#e5e7eb;border:1px solid #4f46e5}.cta-secondary:hover{background:#1f2937}.features-section{padding:4rem 0}.section-title{font-size:2.25rem;font-weight:700;text-align:center;margin-bottom:3rem}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:2rem;gap:2rem}.feature-card{padding:2rem;background:#020617;border:1px solid #1f2937;border-radius:.75rem;text-align:center}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-title{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.feature-description{color:#9ca3af;line-height:1.6}.preview-section{padding:4rem 0 6rem}.preview-description{text-align:center;color:#9ca3af;margin-bottom:2rem;font-size:1.1rem}.preview-chart{background:#020617;border:1px solid #1f2937;border-radius:.75rem;padding:1.5rem;margin-bottom:2rem}.preview-signals{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.preview-signal{padding:.75rem 1.5rem;border-radius:.5rem;font-weight:600;font-size:.9rem}.preview-signal.buy{background:#064e3b;color:#bbf7d0}.preview-signal.hold{background:#78350f;color:#fed7aa}.preview-signal.sell{background:#7f1d1d;color:#fecaca}.landing-footer{background:#020617;border-top:1px solid #1f2937;padding:2rem 0;margin-top:4rem}.footer-content{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-text{color:#9ca3af;font-size:.9rem;margin:0}.footer-links{display:flex;gap:1.5rem}.footer-link{color:#9ca3af;text-decoration:none;font-size:.9rem;transition:color .2s}.footer-link:hover{color:#e5e7eb}.subscription-badge{padding:.35rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:600}.subscription-badge.active{background:#064e3b;color:#bbf7d0}.subscription-badge.inactive{background:#7f1d1d;color:#fecaca}.user-info{display:flex;align-items:center;gap:.75rem;margin-left:1rem}.user-email{font-size:.85rem;color:#9ca3af}.upgrade-banner{background:#78350f;color:#fed7aa;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.upgrade-banner p{margin:0}.btn-primary{background:#4f46e5;color:#fff;border:none}.btn-primary:hover{background:#6366f1}.login-container{min-height:100vh;background:#0b1120;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{background:#020617;border:1px solid #1f2937;border-radius:.75rem;padding:3rem;max-width:420px;width:100%;text-align:center}.login-title{font-size:2rem;font-weight:700;color:#4f46e5;margin-bottom:.5rem}.login-subtitle{color:#9ca3af;margin-bottom:2rem;font-size:.95rem}.login-error{background:#450a0a;color:#fecaca;padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1.5rem;font-size:.9rem;text-align:left}.google-signin-button{width:100%;padding:.875rem 1.5rem;background:#fff;color:#1f2937;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75rem;transition:all .2s;margin-bottom:1.5rem}.google-signin-button:hover:not(:disabled){background:#f3f4f6;transform:translateY(-1px)}.google-signin-button:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex-shrink:0}.login-footer{color:#9ca3af;font-size:.85rem;margin-bottom:1.5rem;line-height:1.6}.login-link{color:#4f46e5;text-decoration:none}.login-link:hover{text-decoration:underline}.login-back-link{display:inline-block;color:#9ca3af;text-decoration:none;font-size:.9rem;margin-top:1rem}.login-back-link:hover{color:#e5e7eb;text-decoration:underline}.billing-page{min-height:100vh;background:#0b1120;display:flex;align-items:center;justify-content:center;padding:2rem}.billing-card{background:#020617;border:1px solid #1f2937;border-radius:.75rem;padding:3rem;max-width:500px;width:100%;text-align:center}.billing-card.success{border-color:#22c55e}.billing-card.cancel{border-color:#ef4444}.billing-icon{font-size:4rem;margin-bottom:1.5rem;line-height:1}.billing-card.success .billing-icon{color:#22c55e}.billing-card.cancel .billing-icon{color:#ef4444}.billing-title{font-size:2rem;font-weight:700;margin-bottom:1rem}.billing-message{color:#9ca3af;margin-bottom:1.5rem;line-height:1.6}.billing-session-id{font-size:.85rem;color:#6b7280;font-family:monospace;margin-bottom:1.5rem;word-break:break-all}.billing-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem}.billing-button{padding:.75rem 1.5rem;border-radius:.5rem;text-decoration:none;font-weight:600;font-size:.95rem;transition:all .2s;display:inline-block}.billing-button.primary{background:#4f46e5;color:#fff}.billing-button.primary:hover{background:#6366f1;transform:translateY(-1px)}.billing-button.secondary{background:transparent;color:#e5e7eb;border:1px solid #4f46e5}.billing-button.secondary:hover{background:#1f2937}.billing-note{color:#6b7280;font-size:.85rem;margin-top:1rem}.legal-container{min-height:100vh;background:#0b1120;color:#e5e7eb;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.legal-header{background:#020617;border-bottom:1px solid #1f2937;padding:1.5rem 2rem}.legal-header h1{margin:0;font-size:1.75rem}.legal-content{max-width:900px;margin:0 auto;padding:3rem 2rem;line-height:1.8}.legal-content h2{font-size:1.75rem;margin-top:2.5rem;margin-bottom:1rem;color:#e5e7eb}.legal-content h3{font-size:1.25rem;margin-top:1.5rem;margin-bottom:.75rem;color:#e5e7eb}.legal-content p{margin-bottom:1rem;color:#d1d5db}.legal-content ol,.legal-content ul{margin-bottom:1rem;padding-left:2rem;color:#d1d5db}.legal-content li{margin-bottom:.5rem}.legal-content a{color:#4f46e5;text-decoration:none}.legal-content a:hover{text-decoration:underline}.legal-back-link{display:inline-block;margin-top:2rem;color:#4f46e5;text-decoration:none;font-weight:500}.legal-back-link:hover{text-decoration:underline}.market-indices-section{margin-bottom:2rem;padding:1.5rem;background:#020617;border:1px solid #1f2937;border-radius:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.3)}.market-indices-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.market-indices-title{font-size:1.5rem;font-weight:600;color:#e5e7eb;margin:0}.market-indices-toggles{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.market-indices-toggles .checkbox-group{margin:0}.market-indices-error,.market-indices-loading{text-align:center;padding:2rem;color:#9ca3af}.market-indices-error{color:#fb7185}