| | |
| | | html { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | @media (min-width: 768px) { |
| | | html { |
| | | font-size: 16px; |
| | | } |
| | | } |
| | | |
| | | html { |
| | | position: relative; |
| | | min-height: 100%; |
| | | } |
| | | |
| | | body { |
| | | margin-bottom: 60px; |
| | | background-color: #f8f9fa; |
| | | } |
| | | |
| | | /* Status Badge Colors */ |
| | | .status-stopped { |
| | | background-color: #6c757d; |
| | | } |
| | | |
| | | .status-starting { |
| | | background-color: #0dcaf0; |
| | | } |
| | | |
| | | .status-running { |
| | | background-color: #198754; |
| | | } |
| | | |
| | | .status-stopping { |
| | | background-color: #ffc107; |
| | | color: #000; |
| | | } |
| | | |
| | | .status-error { |
| | | background-color: #dc3545; |
| | | } |
| | | |
| | | /* Instance Card Styles */ |
| | | .instance-card { |
| | | transition: transform 0.2s, box-shadow 0.2s; |
| | | border-left: 4px solid transparent; |
| | | } |
| | | |
| | | .instance-card:hover { |
| | | transform: translateY(-2px); |
| | | box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
| | | } |
| | | |
| | | .instance-card.status-running { |
| | | border-left-color: #198754; |
| | | } |
| | | |
| | | .instance-card.status-stopped { |
| | | border-left-color: #6c757d; |
| | | } |
| | | |
| | | .instance-card.status-error { |
| | | border-left-color: #dc3545; |
| | | } |
| | | |
| | | .instance-card.status-starting, |
| | | .instance-card.status-stopping { |
| | | border-left-color: #ffc107; |
| | | } |
| | | |
| | | /* Instance Info Section */ |
| | | .instance-info-label { |
| | | font-weight: 600; |
| | | color: #495057; |
| | | } |
| | | |
| | | .instance-info-value { |
| | | color: #212529; |
| | | } |
| | | |
| | | /* Action Buttons */ |
| | | .action-buttons .btn { |
| | | min-width: 80px; |
| | | } |
| | | |
| | | /* Loading Spinner */ |
| | | .spinner-overlay { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | z-index: 9999; |
| | | } |
| | | |
| | | /* Memory Region Table */ |
| | | .memory-table th { |
| | | background-color: #e9ecef; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | /* Client Table */ |
| | | .client-table { |
| | | font-size: 0.9rem; |
| | | } |
| | | |
| | | /* Toast Container */ |
| | | .toast-container { |
| | | position: fixed; |
| | | top: 20px; |
| | | right: 20px; |
| | | z-index: 9999; |
| | | } |
| | | |
| | | /* Empty State */ |
| | | .empty-state { |
| | | text-align: center; |
| | | padding: 60px 20px; |
| | | color: #6c757d; |
| | | } |
| | | |
| | | .empty-state i { |
| | | font-size: 4rem; |
| | | margin-bottom: 20px; |
| | | opacity: 0.5; |
| | | } |
| | | |
| | | /* Form Styles */ |
| | | .form-label.required::after { |
| | | content: " *"; |
| | | color: #dc3545; |
| | | } |
| | | |
| | | /* Spinning Icon Animation */ |
| | | .spin-icon { |
| | | animation: spin 1s linear infinite; |
| | | } |
| | | |
| | | @keyframes spin { |
| | | from { |
| | | transform: rotate(0deg); |
| | | } |
| | | to { |
| | | transform: rotate(360deg); |
| | | } |
| | | } |