.app{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh}.header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #0000001a;color:#fff;padding:20px;text-align:center}.header h1{font-size:2.5rem;font-weight:700;margin:0 0 10px}.header p{font-size:1.1rem;margin:0 0 20px;opacity:.9}.backend-status{align-items:center;display:flex;font-size:.9rem;gap:8px;justify-content:center;opacity:.9}.status-indicator{font-size:1.2rem}.status-indicator.healthy{color:#10b981}.status-indicator.unhealthy{color:#ef4444}.status-indicator.checking{color:#f59e0b}.container{margin:0 auto;max-width:1200px;padding:20px}.loading-container{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;flex-direction:column;justify-content:center;min-height:400px}.loading-spinner{border:4px solid #e5e7eb;border-top-color:#667eea}.loading-container p{color:#6b7280;font-size:1.1rem;margin:0}.error-container{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:40px;text-align:center}.error-container h2{color:#ef4444;font-size:1.8rem;margin:0 0 15px}.error-container p{color:#6b7280;font-size:1.1rem;line-height:1.5;margin:0 0 25px}.retry-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.retry-button:hover{box-shadow:0 4px 15px #667eea4d;transform:translateY(-2px)}@media (max-width:768px){.header h1{font-size:2rem}.header p{font-size:1rem}.container{padding:15px}.error-container{padding:20px}.error-container h2{font-size:1.5rem}}.price-action-page{background-color:#f5f5f5;font-family:Courier New,monospace;margin:0 auto;max-width:1200px;padding:20px}.signal-info{background:#f8f9fa;border:2px solid #dee2e6;border-radius:8px;margin-bottom:20px;padding:20px}.info-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:15px}.info-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:5px;display:flex;justify-content:space-between;padding:10px}.info-item .label{color:#495057;font-weight:600}.info-item .value{color:#212529;font-weight:700}.outcome-section{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;margin-bottom:20px;padding:20px}.outcome-card{background:#fff;border-radius:8px;margin-top:15px;padding:20px}.outcome-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:15px}.outcome-type{color:#495057}.outcome-type,.profit-pct{font-size:1.5rem;font-weight:700}.profit-pct{border-radius:5px;padding:8px 16px}.profit-pct.positive{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.profit-pct.negative{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.outcome-details p{color:#495057;margin:8px 0}.function-performance{background:#e7f3ff;border:2px solid #007bff;border-radius:8px;margin-bottom:20px;padding:20px}.function-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:15px}.function-card{background:#fff;border:2px solid #dee2e6;border-radius:8px;padding:20px}.function-card h5{border-bottom:2px solid #e9ecef;color:#495057;font-size:1.2rem;margin:0 0 15px;padding-bottom:10px}.function-details{display:flex;flex-direction:column;gap:12px}.accuracy,.prediction{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:5px;display:flex;justify-content:space-between;padding:8px 12px}.accuracy .label,.prediction .label{color:#495057;font-weight:600}.accuracy .value,.prediction .value{border-radius:3px;font-size:.9rem;font-weight:700;padding:4px 8px}.value.positive{background:#d4edda;color:#155724}.value.negative{background:#f8d7da;color:#721c24}.value.neutral{background:#d1ecf1;color:#0c5460}.notes{background:#f8f9fa;border-left:4px solid #007bff;border-radius:0 5px 5px 0;margin-top:15px;padding:12px}.notes p{color:#495057;font-style:italic;margin:0}.market-data-summary{background:#f8f9fa;border:2px solid #6c757d;border-radius:8px;margin-bottom:20px;padding:20px}.data-info p{color:#495057;margin:8px 0}.page-header{background-color:#333;border:2px solid #0f0;border-radius:5px;color:#0f0;margin-bottom:30px;padding:20px;text-align:center}.page-header h2{font-size:1.5rem;font-weight:700;margin:0 0 10px}.page-header p{color:#ccc;font-size:1rem;margin:0}.signal-input-section{background:#fff;border:2px solid #333;border-radius:5px;margin-bottom:20px;padding:20px}.input-group{margin-bottom:20px}.input-group label{color:#374151;display:block;font-size:1.1rem;font-weight:600;margin-bottom:8px}.input-group textarea{border:2px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:1rem;padding:12px;resize:vertical;transition:border-color .3s ease;width:100%}.input-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.example-signals{margin-bottom:20px}.example-signals h4{color:#374151;font-size:1rem;margin:0 0 10px}.example-button{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:block;font-size:.9rem;margin-bottom:8px;padding:8px 12px;text-align:left;transition:all .2s ease;width:100%}.example-button:hover{background:#e5e7eb;border-color:#9ca3af}.action-buttons{display:flex;flex-wrap:wrap;gap:12px}.analyze-button,.backtest-button,.reset-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;min-width:140px;padding:12px 24px;transition:all .3s ease}.analyze-button{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.analyze-button:hover:not(:disabled){box-shadow:0 4px 15px #10b9814d;transform:translateY(-2px)}.backtest-button{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.backtest-button:hover:not(:disabled){box-shadow:0 4px 15px #3b82f64d;transform:translateY(-2px)}.reset-button{background:#6b7280;color:#fff}.reset-button:hover{background:#4b5563}button:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;margin-bottom:20px;padding:15px}.error-message h3{font-size:1.1rem;margin:0 0 8px}.analysis-section,.backtest-section,.market-data-section,.parsed-signal-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;margin-bottom:25px;padding:25px}.analysis-section h3,.backtest-section h3,.market-data-section h3,.parsed-signal-section h3{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 20px;padding-bottom:10px}.market-details,.signal-details{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.market-row,.signal-row{align-items:center;background:#f9fafb;border-left:4px solid #667eea;border-radius:6px;display:flex;justify-content:space-between;padding:10px}.market-row .label,.signal-row .label{color:#374151;font-weight:600}.market-row .value,.signal-row .value{color:#1f2937;font-weight:500}.signal-row .value.long{color:#10b981;font-weight:600}.signal-row .value.short{color:#ef4444;font-weight:600}.market-row .value.price{color:#1f2937;font-size:1.2rem;font-weight:700}.market-row .value.positive{color:#10b981;font-weight:600}.market-row .value.negative{color:#ef4444;font-weight:600}.analysis-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.analysis-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:20px}.analysis-card h4{color:#1f2937;font-size:1.2rem;font-weight:600;margin:0 0 15px}.probability-bars{display:flex;flex-direction:column;gap:12px}.probability-bar{align-items:center;display:flex;gap:10px}.probability-bar .label{color:#374151;font-weight:600;min-width:80px}.bar-container{align-items:center;display:flex;flex:1 1;gap:10px}.bar{background:linear-gradient(90deg,#10b981,#059669);border-radius:10px;height:20px;transition:width .3s ease}.sl-bar{background:linear-gradient(90deg,#ef4444,#dc2626)}.percentage{color:#1f2937;font-weight:600;min-width:50px;text-align:right}.time-estimates{display:flex;flex-direction:column;gap:10px}.time-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.time-item .label{color:#374151;font-weight:600}.time-item .value{color:#1f2937;font-weight:700}.confidence-display{text-align:center}.confidence-badge{border-radius:20px;color:#fff;display:inline-block;font-size:1.1rem;font-weight:700;margin-bottom:10px;padding:8px 16px}.confidence-display p{color:#6b7280;font-size:.9rem;margin:0}.notes{display:flex;flex-direction:column;gap:8px}.note{background:#fff;border-left:4px solid #667eea;border-radius:6px;color:#374151;line-height:1.5;margin:0;padding:10px}.backtest-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.summary-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:20px}.summary-card h4{color:#1f2937;font-size:1.2rem;font-weight:600;margin:0 0 15px}.summary-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:8px 0}.summary-item:last-child{border-bottom:none}.summary-item .label{color:#374151;font-weight:600}.summary-item .value{color:#1f2937;font-weight:700}.summary-item .value.positive{color:#10b981}.summary-item .value.negative{color:#ef4444}.assessment{text-align:center}.assessment-badge{border-radius:25px;color:#fff;font-size:1.2rem;margin-bottom:15px;padding:10px 20px}.assessment-badge.excellent{background:linear-gradient(135deg,#10b981,#059669)}.assessment-badge.good{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.assessment-badge.average{background:linear-gradient(135deg,#f59e0b,#d97706)}.assessment-badge.poor{background:linear-gradient(135deg,#ef4444,#dc2626)}.recommendation{color:#374151;font-style:italic;line-height:1.5;margin:0}.loading-overlay{align-items:center;background:#000000b3;bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:50px;margin-bottom:20px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-overlay p{font-size:1.2rem;font-weight:600;margin:0}@media (max-width:768px){.price-action-page{padding:15px}.page-header h2{font-size:1.5rem}.action-buttons{flex-direction:column}.analyze-button,.backtest-button,.reset-button{width:100%}.analysis-grid,.backtest-summary,.market-details,.signal-details{grid-template-columns:1fr}}.trading-decision{border:2px solid #333!important}.trading-decision-display{text-align:center}.trading-decision-badge{border:2px solid #333;border-radius:5px;color:#fff;display:inline-block;font-family:Courier New,monospace;font-size:1.2rem;font-weight:700;letter-spacing:1px;margin-bottom:10px;padding:10px 20px;text-transform:uppercase}.validation-section{background:#fff;border:2px solid #333;border-radius:5px;margin-bottom:20px;padding:20px}.validation-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:20px}.accuracy-display,.decision-accuracy{display:flex;flex-direction:column;gap:10px}.accuracy-metric{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:8px 0}.accuracy-metric .label{color:#333;font-weight:700}.accuracy-metric .value{font-size:1.1rem;font-weight:700}.accuracy-metric .value.positive{color:#28a745}.accuracy-metric .value.negative{color:#dc3545}.accuracy-metric .count{color:#666;font-size:.9rem;margin-left:10px}.assessment-badge{border-radius:5px;display:inline-block;font-family:Courier New,monospace;font-weight:700;letter-spacing:1px;margin-bottom:10px;padding:8px 16px;text-transform:uppercase}.assessment-badge.excellent{background-color:#28a745;color:#fff}.assessment-badge.good{background-color:#ffc107;color:#333}.assessment-badge.poor{background-color:#dc3545;color:#fff}
/*# sourceMappingURL=main.a3e1b5db.css.map*/