--- a +++ b/web/server/server.css @@ -0,0 +1,465 @@ +/* Server Page Custom Styles */ + +/* Code blocks for server page */ +.code-block { + background-color: rgba(0, 0, 0, 0.3); + border-radius: var(--radius-md); + padding: 1rem; + margin: 1rem 0; + position: relative; + font-family: var(--font-mono); + font-size: 0.9rem; + overflow-x: auto; + color: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.copy-button { + position: absolute; + top: 0.5rem; + right: 0.5rem; + background: rgba(255, 255, 255, 0.1); + border: none; + color: rgba(255, 255, 255, 0.7); + padding: 0.3rem 0.6rem; + border-radius: 4px; + cursor: pointer; + font-size: 0.8rem; + transition: all 0.2s ease; +} + +.copy-button:hover { + background: rgba(255, 255, 255, 0.2); + color: white; +} + +.copy-button.success { + background: rgba(0, 200, 83, 0.2); + color: #00c853; +} + +.copy-button.error { + background: rgba(244, 67, 54, 0.2); + color: #f44336; +} + +/* Status Value styling */ +.status-value { + font-size: 1.8rem; + font-weight: 600; + margin: 0.5rem 0; + color: rgba(255, 255, 255, 0.9); +} + +/* Status indicators */ +.status-indicator { + display: flex; + align-items: center; + justify-content: center; + gap: 1rem; +} + +.status-dot { + width: 16px; + height: 16px; + border-radius: 50%; +} + +.online .status-dot { + background: #00c853; + box-shadow: 0 0 10px rgba(0, 200, 83, 0.5); +} + +.offline .status-dot { + background: #f44336; + box-shadow: 0 0 10px rgba(244, 67, 54, 0.5); +} + +.status-main { + font-weight: 600; + font-size: 1.2rem; +} + +.online .status-main { + color: #00c853; +} + +.offline .status-main { + color: #f44336; +} + +.status-info { + display: flex; + flex-direction: column; + font-size: 0.85rem; + color: rgba(255, 255, 255, 0.7); + margin-top: 0.5rem; +} + +/* Troubleshooting section */ +#troubleshooting { + opacity: 1; + transition: all 0.5s ease; +} + +#troubleshooting.active { + animation: pulse 1s ease; +} + +@keyframes pulse { + 0% { opacity: 0.7; } + 50% { opacity: 1; } + 100% { opacity: 0.7; } +}5rem; + margin-bottom: 1.5rem; +} + +.server-hero-content p { + font-size: 1.2rem; + color: rgba(255, 255, 255, 0.9); + max-width: 800px; + margin: 0 auto; + line-height: 1.8; +} + +/* Status Cards Section */ +.status-section { + margin: 4rem 0; + padding: 2rem; + background: rgba(0, 0, 0, 0.2); + border-radius: 12px; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.status-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 2rem; + margin-top: 1rem; +} + +.status-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 2rem; + text-align: center; + transition: all 0.3s ease; +} + +.status-card:hover { + transform: translateY(-5px); + background: rgba(255, 255, 255, 0.08); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2); + border-color: rgba(255, 255, 255, 0.15); +} + +.status-icon { + font-size: 2rem; + margin-bottom: 1rem; + background: linear-gradient(135deg, var(--magenta), var(--blue)); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; +} + +.status-card h3 { + font-size: 1.3rem; + margin-bottom: 1rem; + color: var(--white); +} + +.status-value { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 0.5rem; + color: rgba(255, 255, 255, 0.9); +} + +.status-label { + color: rgba(255, 255, 255, 0.7); + font-size: 0.95rem; + margin: 0; +} + +/* Status Indicators */ +.status-indicator { + display: flex; + align-items: center; + justify-content: center; + gap: 1rem; +} + +.status-dot { + width: 16px; + height: 16px; + border-radius: 50%; +} + +.online .status-dot { + background: #00c853; + box-shadow: 0 0 10px rgba(0, 200, 83, 0.5); +} + +.offline .status-dot { + background: #f44336; + box-shadow: 0 0 10px rgba(244, 67, 54, 0.5); +} + +.status-main { + font-weight: 600; + font-size: 1.2rem; +} + +.online .status-main { + color: #00c853; +} + +.offline .status-main { + color: #f44336; +} + +.status-info { + display: flex; + flex-direction: column; + font-size: 0.85rem; + color: rgba(255, 255, 255, 0.7); + margin-top: 0.5rem; +} + +/* Guide Section */ +.guide-section { + margin: 4rem 0; + padding: 2rem; + background: rgba(0, 0, 0, 0.2); + border-radius: 12px; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.guide-section h2 { + font-size: 2rem; + margin-bottom: 1.5rem; + background: linear-gradient(135deg, var(--magenta), var(--blue)); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + display: inline-block; +} + +.step-list { + display: grid; + gap: 1.5rem; +} + +.step-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: all 0.3s ease; + display: flex; + align-items: flex-start; + gap: 1rem; +} + +.step-card:hover { + transform: translateY(-5px); + background: rgba(255, 255, 255, 0.08); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2); + border-color: rgba(255, 255, 255, 0.15); +} + +.step-number { + display: flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + border-radius: 50%; + background: linear-gradient(135deg, var(--magenta), var(--blue)); + color: white; + font-weight: 600; + flex-shrink: 0; +} + +.step-content { + flex-grow: 1; +} + +.step-command { + font-family: 'IBM Plex Mono', monospace; + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.9); + margin-bottom: 0.8rem; + padding: 0.8rem; + background: rgba(0, 0, 0, 0.3); + border-radius: 6px; + overflow-x: auto; + position: relative; +} + +.copy-button { + position: absolute; + top: 0.5rem; + right: 0.5rem; + background: rgba(255, 255, 255, 0.1); + border: none; + color: rgba(255, 255, 255, 0.7); + padding: 0.3rem 0.6rem; + border-radius: 4px; + cursor: pointer; + font-size: 0.8rem; + transition: all 0.2s ease; +} + +.copy-button:hover { + background: rgba(255, 255, 255, 0.2); + color: white; +} + +.copy-button.success { + background: rgba(0, 200, 83, 0.2); + color: #00c853; +} + +.copy-button.error { + background: rgba(244, 67, 54, 0.2); + color: #f44336; +} + +.step-description { + color: rgba(255, 255, 255, 0.8); + font-size: 0.95rem; + line-height: 1.5; + margin: 0; +} + +/* Troubleshooting Section */ +.troubleshooting-section { + margin: 4rem 0; + opacity: 0.7; + transition: all 0.5s ease; +} + +.troubleshooting-section.active { + opacity: 1; +} + +.troubleshooting-section h2 { + font-size: 2rem; + margin-bottom: 1.5rem; + background: linear-gradient(135deg, var(--magenta), var(--blue)); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + display: inline-block; +} + +.issue-list { + display: grid; + gap: 1.5rem; +} + +.issue-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + padding: 1.5rem; + transition: all 0.3s ease; +} + +.issue-card:hover { + transform: translateY(-5px); + background: rgba(255, 255, 255, 0.08); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2); + border-color: rgba(255, 255, 255, 0.15); +} + +.issue-card h3 { + display: flex; + align-items: center; + gap: 0.8rem; + font-size: 1.3rem; + margin-top: 0; + margin-bottom: 1rem; +} + +.issue-card h3 i { + color: var(--magenta); +} + +.issue-card p { + color: rgba(255, 255, 255, 0.8); + font-size: 1rem; + line-height: 1.6; + margin-bottom: 1rem; +} + +.issue-card ul { + margin: 0; + padding-left: 1.5rem; +} + +.issue-card li { + color: rgba(255, 255, 255, 0.8); + margin-bottom: 0.5rem; +} + +.issue-command { + font-family: 'IBM Plex Mono', monospace; + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.9); + margin: 1rem 0; + padding: 0.8rem; + background: rgba(0, 0, 0, 0.3); + border-radius: 6px; + overflow-x: auto; +} + +/* Responsive Design */ +@media screen and (max-width: 992px) { + .server-hero-content h1 { + font-size: 3rem; + } +} + +@media screen and (max-width: 768px) { + .container { + margin: 4rem 1rem 2rem; + padding: 1rem; + } + + .server-hero-content h1 { + font-size: 2.5rem; + } + + .server-hero-content p { + font-size: 1.1rem; + } + + .status-grid { + grid-template-columns: 1fr; + } + + .step-command { + font-size: 0.85rem; + } +} + +@media screen and (max-width: 480px) { + .server-hero-content h1 { + font-size: 2rem; + } + + .status-card { + padding: 1.5rem; + } + + .step-card { + flex-direction: column; + } + + .step-number { + margin-bottom: 0.5rem; + } +} \ No newline at end of file