body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{display:flex;flex-direction:column;min-height:100vh;text-align:center}.App-header{background-color:#282c34;color:#fff;padding:20px}.App-header h1{font-size:2.5rem;margin:0 0 10px}.App-header p{font-size:1.1rem;margin:0;opacity:.8}.App-main{flex:1 1;margin:0 auto;max-width:1400px;padding:20px;width:100%}.App-footer{background-color:#f5f5f5;border-top:1px solid #ddd;color:#666;font-size:.9rem;padding:15px}.loading-container{color:#666;padding:50px}.error-banner{align-items:center;background-color:#fee;border:1px solid #fcc;border-radius:5px;color:#c33;display:flex;justify-content:space-between;margin-bottom:20px;padding:15px}.retry-button{background-color:#c33;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px}.retry-button:hover{background-color:#a22}.data-controls{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:25px;padding:20px}.controls-row{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.snapshot-selector{align-items:center;display:flex;gap:10px}.snapshot-selector label{color:#495057;font-weight:600}.snapshot-selector select{background-color:#fff;border:1px solid #ced4da;border-radius:4px;min-width:200px;padding:8px 12px}.action-buttons{display:flex;gap:10px}.refresh-button,.scrape-button{border:none;border-radius:4px;cursor:pointer;font-weight:600;padding:10px 20px;transition:background-color .2s}.scrape-button{background-color:#007bff;color:#fff}.scrape-button:hover:not(:disabled){background-color:#0056b3}.scrape-button:disabled{background-color:#6c757d;cursor:not-allowed}.refresh-button{background-color:#6c757d;color:#fff}.refresh-button:hover{background-color:#545b62}.scrape-message{border-radius:4px;font-weight:500;margin-top:15px;padding:10px}.scrape-message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.scrape-message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.data-info{background-color:#e9ecef;border-radius:4px;color:#6c757d;font-size:.9rem;margin-top:15px;padding:10px}.significant-moves{background-color:#fff;border-left:4px solid #28a745;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:25px;padding:20px}.significant-moves h3{color:#495057;font-size:1.2rem;margin:0 0 15px}.no-moves{color:#6c757d;font-style:italic;margin:0}.moves-list{display:flex;flex-direction:column;gap:10px}.move-item{align-items:center;background-color:#f8f9fa;border-left:3px solid #28a745;border-radius:6px;color:#495057;display:flex;font-size:.95rem;gap:10px;padding:10px}.move-icon{font-size:1.2rem}.summary-and-predictions{grid-gap:25px;align-items:stretch;display:grid;gap:25px;grid-template-columns:1fr 1fr;margin-bottom:25px}@media (max-width:1024px){.summary-and-predictions{gap:20px;grid-template-columns:1fr}}.timeline-summary .predictions-summary{margin-bottom:0}.predictions-detail .predictions-panel,.predictions-summary{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;height:100%;padding:20px}.predictions-summary{border-left:4px solid #007bff;display:flex;flex-direction:column;margin-bottom:25px}.predictions-summary h3{color:#495057;font-size:1.2rem;margin:0 0 12px}.timeline-list{display:flex;flex:1 1;flex-direction:column;gap:10px;justify-content:space-between;margin:0 0 12px}.timeline-card{align-items:center;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;color:#495057;display:flex;flex:1 1;font-size:.9rem;font-weight:500;line-height:1.3;padding:10px}.timeline-note{color:#6c757d;font-size:.9rem;font-style:italic;margin:0}.rba-meetings-section{border-top:1px solid #e9ecef;margin-top:20px;padding-top:15px}.rba-meetings-section h4{color:#495057;font-size:1rem;font-weight:600;margin:0 0 10px}.meetings-list{display:flex;flex-direction:column;gap:6px}.meeting-date{background-color:#e7f3ff;border-left:3px solid #007bff;border-radius:4px;color:#495057;font-size:.85rem;font-weight:500;padding:6px 10px}.chart-section,.second-chart-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:25px;padding:20px}.predictions-panel h3{color:#495057;font-size:1.2rem;margin:0 0 15px}.predictions-list{display:flex;flex-direction:column;gap:10px}.prediction-card-compact{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:10px}.prediction-header-compact{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.target-reduction-compact{color:#dc3545;font-size:.95rem;font-weight:700}.predicted-date-compact{color:#495057;font-size:.9rem;font-weight:600}.confidence-score-compact{border-radius:8px;font-size:.8rem;font-weight:500;padding:2px 6px}.confidence-score-compact.high{background-color:#d4edda;color:#155724}.confidence-score-compact.medium{background-color:#fff3cd;color:#856404}.confidence-score-compact.low{background-color:#f8d7da;color:#721c24}.prediction-commentary-compact{color:#6c757d;font-size:.8rem;line-height:1.3}.data-summary{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px}.data-summary h3{color:#495057;margin:0 0 20px}.summary-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat{display:flex;flex-direction:column;gap:5px}.stat label{color:#6c757d;font-size:.9rem;font-weight:600}.stat span{color:#495057;font-size:1.2rem;font-weight:700}.reduction-positive{color:#28a745!important}.reduction-negative{color:#dc3545!important}.certainty-high{color:#28a745!important}.certainty-low{color:#dc3545!important}.expected-rates-chart,.reduction-chart{overflow:visible;width:100%}.reduction-chart{height:500px}.expected-rates-chart{height:400px}.reduction-chart .js-plotly-plot,.reduction-chart .plotly{height:100%!important;width:100%!important}.chart-empty,.chart-error,.chart-loading{align-items:center;color:#6c757d;display:flex;font-size:1.1rem;height:400px;justify-content:center}.chart-error{color:#dc3545}@media (max-width:768px){.App-main{padding:15px}.controls-row,.snapshot-selector{align-items:stretch;flex-direction:column}.snapshot-selector select{min-width:auto}.summary-stats{grid-template-columns:1fr}.App-header h1{font-size:2rem}.App-header p{font-size:1rem}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.login-form{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;margin:20px;max-width:400px;padding:40px;width:100%}.login-form h2{color:#333;margin-bottom:10px}.login-form p{color:#666;font-size:14px;margin-bottom:30px}.form-group{margin-bottom:20px}.password-input{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:16px;padding:12px;width:100%}.password-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33;outline:none}.login-button{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:12px;transition:background-color .2s;width:100%}.login-button:hover{background:#5a6fd8}.error-message{color:#e74c3c;margin-bottom:15px}.landing-page{background:linear-gradient(135deg,#1e40af,#3b82f6 50%,#6366f1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.container{margin:0 auto;max-width:1200px;padding:0 20px}.hero-section{color:#fff;padding:60px 0 80px}.hero-content{align-items:center;display:flex;flex-direction:column;gap:60px;text-align:center}.hero-intro{margin:0 auto;max-width:800px}.hero-title{color:#fff;font-size:3.5rem;font-weight:800;line-height:1.1;margin:0 0 20px;text-shadow:0 4px 8px #0000004d}.hero-subtitle{font-size:1.25rem;line-height:1.6;margin-bottom:40px;opacity:.9}.features-grid{grid-gap:40px;display:grid;gap:40px;grid-template-columns:repeat(3,1fr);margin-left:auto;margin-right:auto;margin-top:40px;max-width:900px}.feature{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:16px;padding:25px 20px;text-align:center;transition:all .3s ease}.feature:hover{background:#ffffff26;transform:translateY(-5px)}.feature-icon{font-size:2.5rem;margin-bottom:15px}.feature h3{font-size:1.25rem;font-weight:600;margin:0 0 10px}.feature p{line-height:1.5;opacity:.8}.signup-card{animation:cardFloat 6s ease-in-out infinite;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:24px;box-shadow:0 25px 50px #00000040,0 0 0 1px #fff3;color:#1f2937;padding:40px}@keyframes cardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.signup-card h2{font-size:1.75rem;font-weight:700;margin:0 0 8px;text-align:center}.signup-card>p{color:#6b7280;margin-bottom:30px;text-align:center}.signup-form{display:flex;flex-direction:column;gap:16px}.form-group{position:relative}.form-input{border:2px solid #e5e7eb;border-radius:8px;box-sizing:border-box;font-size:16px;padding:16px;transition:border-color .2s ease;width:100%}.form-input:focus{border-color:#3b82f6;outline:none}.submit-btn{background:linear-gradient(135deg,#f59e0b,#d97706,#f59e0b);border:none;border-radius:12px;box-shadow:0 8px 24px #f59e0b66;color:#fff;cursor:pointer;font-size:18px;font-weight:700;letter-spacing:1px;overflow:hidden;padding:18px 32px;position:relative;text-transform:uppercase;transition:all .3s ease}.submit-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.submit-btn:hover:before{left:100%}.submit-btn:hover:not(:disabled){box-shadow:0 12px 30px #f59e0b99;transform:translateY(-3px) scale(1.02)}.submit-btn:disabled{cursor:not-allowed;opacity:.7}.submit-btn.submitting{background:#9ca3af}.success-message{padding:20px;text-align:center}.success-icon{font-size:3rem;margin-bottom:16px}.success-message h3{color:#059669;margin:0 0 8px}.error-message{color:#dc2626;font-size:14px;margin-top:12px;text-align:center}.trust-indicators{margin-top:20px;text-align:center}.privacy-note{color:#6b7280;font-size:14px;margin:0}.sample-section{background:#fff;padding:80px 0}.sample-section h2{color:#1f2937;font-size:2.5rem;margin-bottom:40px;text-align:center}.sample-newsletter{border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px #0000000d;margin:0 auto;max-width:600px;overflow:hidden}.newsletter-header{align-items:flex-start;background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;display:flex;gap:20px;justify-content:space-between;padding:30px}.newsletter-header h3{flex:1 1;font-size:1.25rem;line-height:1.4;margin:0}.confidence-badge{border-radius:20px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase;white-space:nowrap}.confidence-badge.high{background-color:#22c55e}.newsletter-content{padding:30px}.newsletter-content p{color:#4b5563;line-height:1.7;margin-bottom:30px}.insights-preview h4{color:#1f2937;margin:0 0 15px}.insights-preview ul{list-style:none;margin:0;padding:0}.insights-preview li{border-bottom:1px solid #f3f4f6;color:#4b5563;padding:8px 0 8px 20px;position:relative}.insights-preview li:before{color:#3b82f6;content:"•";font-weight:700;left:0;position:absolute}.insights-preview li:last-child{border-bottom:none}.footer{background:#1f2937;color:#9ca3af;padding:40px 0;text-align:center}.footer p{margin:0}@media (max-width:768px){.hero-content{gap:40px;grid-template-columns:1fr;text-align:center}.hero-title{font-size:2.5rem}.features-grid{grid-template-columns:1fr;max-width:400px}.signup-card{padding:30px 20px}.newsletter-header{flex-direction:column;gap:15px}.newsletter-header h3{font-size:1.1rem}}@media (max-width:480px){.hero-section{padding:40px 0}.hero-title{font-size:2rem}.signup-card{margin:0 10px}.sample-section{padding:40px 0}.sample-section h2{font-size:2rem}}