MarketMindP / static /css /predict.css
AronWolverine's picture
initial
56bd117
.predictor-container {
width: 90%;
max-width: 1100px;
margin: 40px auto 0 auto;
padding: 24px 24px 40px 24px;
background: #fff;
border-radius: 18px;
box-shadow: 0 4px 32px rgba(74,143,223,0.08);
display: flex;
flex-direction: column;
align-items: stretch;
min-height: 300px;
transition: min-height 0.3s, height 0.3s;
}
.dark-mode .predictor-container {
background-color: #131b2b;
color: #ffffff;
box-shadow: 0 0 20px rgba(255, 255, 255, 0.05);
}
.predictor-container h1 {
font-size: 2.2rem;
text-align: center;
color: #4a8fdf;
margin-bottom: 30px;
text-transform: uppercase;
letter-spacing: 1px;
}
.predictor-form {
display: flex;
flex-direction: column;
gap: 20px;
}
.form-group {
display: flex;
flex-direction: column;
}
.form-group label {
margin-bottom: 8px;
font-weight: bold;
color: #131b2b;
}
.dark-mode .form-group label {
color: #ddd;
}
.predictor-form select,
.predictor-form input[type="date"] {
padding: 12px 15px;
border: 2px solid #ddd;
border-radius: 8px;
font-size: 16px;
background-color: #f4f2ec;
color: #000;
transition: border 0.3s, background-color 0.3s;
}
.predictor-form select:focus,
.predictor-form input[type="date"]:focus {
border-color: #4a8fdf;
outline: none;
}
.dark-mode .predictor-form select,
.dark-mode .predictor-form input[type="date"] {
background-color: #18233a;
color: #fff;
border-color: #555;
}
.radio-group {
display: flex;
flex-wrap: wrap;
gap: 20px;
margin-top: 10px;
}
.radio-option {
display: flex;
align-items: center;
gap: 8px;
font-size: 15px;
}
.radio-option input {
margin: 0;
}
.predict-btn {
width: 100%;
padding: 14px 0;
background-color: #4a8fdf;
color: white;
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: bold;
cursor: pointer;
transition: background-color 0.3s;
box-shadow: 0 4px 10px rgba(74, 143, 223, 0.3);
}
.predict-btn:hover {
background-color: #377ddf;
}
.result-section {
margin-top: 50px;
animation: fadeIn 0.6s ease-in-out;
}
.result-section {
margin-top: 32px;
background: #4a8fdf;
border-radius: 12px;
padding: 24px;
box-shadow: 0 2px 16px rgba(74,143,223,0.06);
width: 100%;
display: flex;
flex-direction: column;
align-items: stretch;
transition: min-height 0.3s, height 0.3s;
}
.prediction-result {
background-color: #f8f9fa;
border-left: 5px solid #4a8fdf;
padding: 20px 30px;
border-radius: 10px;
color: #2c3e50;
font-size: 16px;
margin-top: 20px;
}
.predictor-container,
.result-section {
overflow: hidden;
position: relative;
/* margin-bottom already present for footer gap */
}
.dark-mode .prediction-result {
background-color: #2c3e50;
color: #fff;
}
.prediction-value {
font-size: 28px;
font-weight: bold;
color: #4a8fdf;
margin: 10px 0;
}
.confidence {
color: #666;
font-style: italic;
}
.dark-mode .confidence {
color: #bbb;
}
.chart-container {
width: 100%;
max-width: 100%;
min-height: 450px;
position: relative;
margin-top: 30px;
display: flex;
flex-direction: column;
gap: 32px;
background-color: #fff;
box-sizing: border-box;
border-radius: 10px;
padding: 20px;
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.05);
overflow-x: visible; /* Remove horizontal scroll */
}
/* Each graph will expand as needed */
#prediction-chart,
.extra-graph,
#prediction-chart-historical,
#prediction-chart-sentiment {
width: 100% !important;
max-width: 100% !important;
min-width: 0 !important;
box-sizing: border-box;
min-height: 400px;
height: auto !important;
margin-bottom: 0;
display: block;
}
.dark-mode .chart-container {
background-color: #1e2a38;
box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.05);
}
@keyframes fadeIn {
0% {
opacity: 0;
transform: translateY(15px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
/* Responsive */
@media (max-width: 768px) {
.predictor-container {
padding: 20px;
}
.radio-group {
flex-direction: column;
gap: 10px;
}
.prediction-result,
.chart-container {
padding: 15px;
}
}
/* Glowing effect */
@keyframes glowBorder {
0% {
box-shadow: 0 0 10px rgba(74,143,223,0.6);
}
50% {
box-shadow: 0 0 20px rgba(74,143,223,0.8), 0 0 30px rgba(74,143,223,0.6);
}
100% {
box-shadow: 0 0 10px rgba(74,143,223,0.6);
}
}
/* Apply glow to predictor container */
.predictor-container {
animation: glowBorder 2.5s infinite alternate;
}
.dark-mode .predictor-container {
animation: glowBorder 2s infinite alternate;
}
/* Style for the epochs dropdown and custom input */
#epochs, #custom-epochs {
padding: 12px 15px;
border: 2px solid #ddd;
border-radius: 8px;
font-size: 16px;
background-color: #f4f2ec;
color: #000;
margin-top: 8px;
transition: border 0.3s, background-color 0.3s;
width: 100%;
box-sizing: border-box;
}
#epochs:focus, #custom-epochs:focus {
border-color: #4a8fdf;
outline: none;
}
.dark-mode #epochs,
.dark-mode #custom-epochs {
background-color: #18233a;
color: #fff;
border-color: #555;
}
/* Optional: Add spacing below the custom input */
#custom-epochs {
margin-bottom: 8px;
}
#loading-overlay {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(255,255,255,0.1);
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
}
#message-box {
z-index: 9999;
}
.loader-container {
display: flex;
flex-direction: column;
align-items: center;
}
.spinner {
border: 6px solid #e0e0e0;
border-top: 6px solid #0077ff;
border-radius: 50%;
width: 54px;
height: 54px;
animation: spin 1s linear infinite;
margin-bottom: 18px;
box-shadow: 0 0 0 2px #fff; /* White border around the spinner */
}
@keyframes spin {
0% { transform: rotate(0deg);}
100% { transform: rotate(360deg);}
}
/* Add a white border to the loading text */
#progress-text {
font-size: 18px;
color: #0077ff;
font-weight: bold;
text-shadow: 0 0 2px #fff; /* White border effect for text */
padding: 5px;
background-color: rgba(255, 255, 255, 0.8); /* Optional: Add a semi-transparent background */
border-radius: 5px; /* Rounded corners for the text background */
display: inline-block; /* Ensure the background wraps around the text */
}
.graph-area {
background: #fff;
border-radius: 10px;
box-shadow: 0 2px 12px rgba(74,143,223,0.07);
padding: 18px 12px 12px 12px;
margin-bottom: 24px;
}
.dark-mode .graph-area {
background: #1e2a38;
box-shadow: 0 2px 12px rgba(255,255,255,0.04);
}
.toggle-switch {
position: relative;
display: inline-block;
width: 50px;
height: 25px;
}
.toggle-switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0; left: 0; right: 0; bottom: 0;
background-color: #ccc;
transition: .4s;
border-radius: 25px;
}
.toggle-circle {
position: absolute;
left: 4px;
bottom: 3px;
width: 18px;
height: 18px;
background: #fff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
transition: transform 0.4s;
z-index: 2;
font-size: 14px;
}
.toggle-icon {
transition: color 0.4s, content 0.4s;
color: #FFD600; /* Sun color */
}
input:checked + .slider .toggle-circle {
transform: translateX(24px);
}
input:checked + .slider .toggle-icon {
color: #4a8fdf; /* Moon color */
}
/* Disclaimer Overlay Styles */
#disclaimer-overlay {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(30, 42, 56, 0.85);
z-index: 10000;
display: flex;
align-items: center;
justify-content: center;
}
.disclaimer-box {
background: #fff;
color: #222;
max-width: 420px;
width: 90vw;
padding: 32px 28px 24px 28px;
border-radius: 14px;
box-shadow: 0 8px 32px rgba(0,0,0,0.18);
text-align: left;
position: relative;
font-size: 1rem;
line-height: 1.6;
animation: fadeIn 0.5s;
}
.disclaimer-box h2 {
margin-top: 0;
color: #4a8fdf;
font-size: 1.3rem;
}
.disclaimer-box ul {
padding-left: 18px;
margin-bottom: 18px;
}
.disclaimer-risk {
font-size: 0.98rem;
color: #c62828;
}
#close-disclaimer {
position: absolute;
top: 12px;
right: 14px;
background: #4a8fdf;
color: #fff;
border: none;
border-radius: 4px;
font-size: 1.1rem;
padding: 2px 12px;
cursor: pointer;
transition: background 0.2s;
}
#close-disclaimer:hover {
background: #357abd;
}
@media (max-width: 600px) {
.disclaimer-box {
padding: 18px 8px 16px 8px;
font-size: 0.98rem;
}
}
.custom-introjs-tooltip {
font-size: 1.05rem;
color: #222;
}
.introjs-tooltip {
z-index: 11000 !important;
}
.news-sentiment {
margin-top: 20px;
padding: 15px;
background-color: #f8f9fa;
border-left: 5px solid #4a8fdf;
border-radius: 10px;
color: #2c3e50;
}
.dark-mode .news-sentiment {
background-color: #2c3e50;
color: #fff;
}
.news-sentiment h3 {
margin: 0 0 10px;
font-size: 1.2rem;
color: #4a8fdf;
}