body { max-width: 1100px; margin: auto; line-height: 1.6em; font-family: 'IBM Plex Sans', sans-serif; background: #070707; color: #E8F1F2; } footer { text-align: center; margin-bottom: 100px; } a { color: #88B7B5} a:hover { color: #FDCFF3 } header { color: #FDCFF3; padding: 10px; margin: 10px; text-align: center; border-bottom: 2px solid white; } h1, h2, h3, h4, h5, h6 { color: #FDCFF3; } header span { color: #C8B8DB; text-decoration: underline; } .container { /* Add some padding and potentially a max-width for larger screens */ padding: 0 20px; max-width: 1000px; /* Example max-width */ margin: 0 auto; /* Center the container */ } .component-section { margin-bottom: 40px; /* Spacing between component groups */ border-bottom: 1px solid #555; /* Subtle divider */ padding-bottom: 20px; } .component-section:last-child { border-bottom: none; /* Remove border from the last section */ } .component-item { margin-bottom: 20px; /* Spacing between individual components */ display: flex; /* Use flexbox for layout */ align-items: center; /* Vertically center content */ flex-wrap: wrap; /* Allow items to wrap on smaller screens*/ } .component-item h4 { margin: 0 0 10px 0; /* Spacing below the heading */ flex: 1 1 100%; /* Make the heading take full width */ } .component-item p { flex: 1 1 60%; /* Text takes up most of the space*/ padding-right: 20px; /* Add some spacing between text and image */ margin: 10px; } .component-image { flex: 0 0 30%; /* Image takes up less space, doesn't grow */ width: auto; margin-right: auto; margin-left: auto; /* Push image to the right */ display: block; } .component-image.half-width { max-width: 45%; margin: 10px; } .icon { margin-right: 8px; font-size: 1.2em; /* Slightly larger icons */ } /* CTA Section Styles */ .cta-section { text-align: center; padding: 40px 0; background-color: #111; /* Darker background */ } .button { display: inline-block; padding: 10px 20px; background-color: #88B7B5; color: #070707; text-decoration: none; border-radius: 5px; margin: 10px; transition: background-color 0.3s ease; border: none; cursor: pointer; font-family: 'IBM Plex Sans', sans-serif; font-size: 1em; } .button:hover { background-color: #FDCFF3; color: #000000; } /* Testimonials Section */ .testimonials { padding: 40px 0; text-align: center; } .testimonial { margin-bottom: 20px; font-style: italic; } /* Responsive adjustments */ @media (max-width: 768px) { .component-item { flex-direction: column; /* Stack items vertically on small screens */ text-align: center; /* Center-align text */ } .component-image { margin-left: 0; /* Remove margin */ max-width: 100%; /* Full-width images */ } .component-image.half-width { max-width: 100%; /* Full-width images */ } .component-item p { padding-right: 0; /* Remove padding */ } } /* Status Indicator */ .status-container { display: flex; align-items: center; gap: 10px; } .status-light { width: 20px; height: 20px; border-radius: 50%; animation: pulse 2s infinite; } .status-light.green { background: #88B7B5; animation: pulse-green 2s infinite; } .status-light.yellow { background: #FDCFF3; animation: pulse-yellow 1s infinite; } .status-light.red { background: #ff4d4d; animation: pulse-red 0.75s infinite; } @keyframes pulse-green { 0% { box-shadow: 0 0 0 0 rgba(136, 183, 181, 0.4); } 100% { box-shadow: 0 0 0 10px rgba(136, 183, 181, 0); } } @keyframes pulse-yellow { 0% { box-shadow: 0 0 0 0 rgba(253, 207, 243, 0.4); } 100% { box-shadow: 0 0 0 10px rgba(253, 207, 243, 0); } } @keyframes pulse-red { 0% { box-shadow: 0 0 0 0 rgba(255, 77, 77, 0.4); } 100% { box-shadow: 0 0 0 10px rgba(255, 77, 77, 0); } } #uptime { color: #88B7B5; font-size: 0.9em; } /* Service Status Styles */ .service-status { margin-top: 15px; margin-bottom: 15px; padding: 10px 15px; font-size: 0.9em; display: flex; flex-direction: row; flex-wrap: wrap; gap: 15px; background-color: rgba(17, 17, 17, 0.5); border-radius: 5px; border-left: 3px solid #333; } .service-item { display: flex; align-items: center; gap: 10px; } .service-item span { color: #88B7B5; } /* Remove unused pill styles */ .service-up, .service-down { display: none; } /* Chart and Metrics Styles */ #metrics-container { width: 100%; margin-top: 15px; } .metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; width: 100%; } .metric-card { background-color: #111; border-radius: 8px; padding: 15px; border: 1px solid #333; transition: box-shadow 0.3s ease; } .metric-card:hover { box-shadow: 0 0 15px rgba(136, 183, 181, 0.3); border-color: #88B7B5; } .metric-card h5 { margin-top: 0; margin-bottom: 10px; color: #FDCFF3; text-align: center; font-size: 1em; } .chart-container { cursor: pointer; position: relative; width: 100%; height: 200px; margin-top: 10px; margin-bottom: 10px; } .chart-container::after { content: '🔍'; position: absolute; top: 5px; right: 5px; font-size: 16px; opacity: 0; transition: opacity 0.2s ease; } .chart-container:hover::after { opacity: 0.8; } .metric-section-header { grid-column: 1 / -1; margin-top: 15px; margin-bottom: 10px; color: #FDCFF3; border-bottom: 1px solid #333; padding-bottom: 5px; } @media (max-width: 768px) { .metric-grid { grid-template-columns: 1fr; /* Single column on mobile */ } .chart-container { height: 180px; /* Slightly smaller on mobile */ } } /* Modal Styles */ .modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); backdrop-filter: blur(4px); opacity: 0; transition: opacity 0.3s ease; } .modal.show { opacity: 1; } .modal-content { position: relative; background-color: #111; margin: 15% auto; padding: 25px; border: 1px solid #88B7B5; border-radius: 8px; width: 80%; max-width: 500px; box-shadow: 0 4px 20px rgba(136, 183, 181, 0.5); transform: translateY(-20px) scale(0.95); opacity: 0; transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s ease; } .modal.show .modal-content { transform: translateY(0) scale(1); opacity: 1; } @keyframes modalFadeIn { from {opacity: 0; transform: translateY(-20px);} to {opacity: 1; transform: translateY(0);} } .close-button { position: absolute; top: 10px; right: 20px; color: #FDCFF3; font-size: 28px; font-weight: bold; cursor: pointer; transition: color 0.2s, transform 0.2s; } .close-button:hover { color: #ff4d4d; transform: scale(1.1); } .password-input-container { display: flex; gap: 10px; margin: 20px 0; } .password-input-container input { flex: 1; padding: 10px; border-radius: 5px; border: 1px solid #333; background-color: #070707; color: #E8F1F2; font-family: 'IBM Plex Sans', sans-serif; transition: border-color 0.3s, box-shadow 0.3s; } .password-input-container input:focus { outline: none; border-color: #88B7B5; box-shadow: 0 0 8px rgba(136, 183, 181, 0.5); } .button.submit-button { background-color: #88B7B5; transition: background-color 0.3s, transform 0.2s; } .button.submit-button:hover { background-color: #FDCFF3; transform: translateY(-2px); } .button.submit-button:active { transform: translateY(1px); } .error-message { color: #ff4d4d; font-size: 0.9em; margin-top: 10px; min-height: 20px; transition: opacity 0.3s; } /* Enhanced shake animation */ @keyframes shake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); } 20%, 40%, 60%, 80% { transform: translateX(5px); } } .shake { animation: shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; } /* Expanded Chart Modal Styles */ .chart-modal-content { width: 90%; max-width: 800px; } .expanded-chart-container { position: relative; width: 100%; height: 400px; margin: 20px 0; }