@import "tailwindcss"; * { scrollbar-width: thin; scrollbar-color: #404040 #171717; } *::-webkit-scrollbar { width: 8px; } *::-webkit-scrollbar-track { background: #171717; } *::-webkit-scrollbar-thumb { background: #404040; border-radius: 4px; } *::-webkit-scrollbar-thumb:hover { background: #525252; } body { background-color: #0a0a0a; color: #fafafa; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; } /* Buttons */ button { background: transparent; } .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border-radius: 0.375rem; font-size: 0.875rem; font-weight: 500; padding: 0.5rem 1rem; transition: all 0.15s ease; cursor: pointer; border: none; } .btn:disabled { opacity: 0.5; cursor: not-allowed; } .btn-primary { background-color: #fafafa; color: #0a0a0a; } .btn-primary:hover:not(:disabled) { background-color: #e5e5e5; } .btn-secondary { background-color: #262626; color: #fafafa; } .btn-secondary:hover:not(:disabled) { background-color: #363636; } .btn-destructive { background-color: #dc2626; color: #fafafa; } .btn-destructive:hover:not(:disabled) { background-color: #b91c1c; } .btn-outline { background: transparent; border: 1px solid #404040; color: #fafafa; } .btn-outline:hover:not(:disabled) { background-color: #262626; border-color: #525252; } .btn-ghost { background: transparent; color: #a3a3a3; } .btn-ghost:hover:not(:disabled) { background-color: #262626; color: #fafafa; } /* Cards */ .card { background-color: #171717; border: 1px solid #262626; border-radius: 0.5rem; } .card-clickable { cursor: pointer; transition: all 0.15s ease; } .card-clickable:hover { background-color: #1c1c1c; border-color: #404040; } /* Inputs */ .input { display: flex; width: 100%; border-radius: 0.375rem; border: 1px solid #404040; background-color: #171717; color: #fafafa; padding: 0.625rem 0.875rem; font-size: 0.875rem; transition: border-color 0.15s ease, box-shadow 0.15s ease; } .input:focus { outline: none; border-color: #737373; box-shadow: 0 0 0 2px rgba(115, 115, 115, 0.2); } .input::placeholder { color: #737373; } /* Select */ .select { display: flex; border-radius: 0.375rem; border: 1px solid #404040; background-color: #171717; color: #fafafa; padding: 0.5rem 0.75rem; font-size: 0.875rem; cursor: pointer; transition: border-color 0.15s ease; } .select:focus { outline: none; border-color: #737373; } .select option { background-color: #171717; color: #fafafa; } /* Badges */ .badge { display: inline-flex; align-items: center; border-radius: 9999px; padding: 0.25rem 0.75rem; font-size: 0.75rem; font-weight: 500; } .badge-success { background-color: #14532d; color: #86efac; } .badge-destructive { background-color: #450a0a; color: #fca5a5; } .badge-secondary { background-color: #262626; color: #a3a3a3; } .badge-warning { background-color: #422006; color: #fcd34d; } /* Progress */ .progress { height: 0.5rem; background-color: #262626; border-radius: 9999px; overflow: hidden; } .progress-bar { height: 100%; background-color: #fafafa; border-radius: 9999px; transition: width 0.3s ease; } .progress-bar-success { background-color: #22c55e; } .progress-bar-warning { background-color: #eab308; } .progress-bar-danger { background-color: #ef4444; } /* Tabs */ .tabs { display: flex; gap: 0.25rem; border-bottom: 1px solid #262626; } .tab { padding: 0.75rem 1rem; font-size: 0.875rem; font-weight: 500; color: #737373; border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; transition: all 0.15s ease; background: transparent; } .tab:hover { color: #a3a3a3; } .tab-active { color: #fafafa; border-bottom-color: #fafafa; } /* Status */ .status-dot { width: 0.5rem; height: 0.5rem; border-radius: 9999px; } .status-online { background-color: #22c55e; } .status-offline { background-color: #ef4444; } /* Terminal/Logs */ .terminal { background-color: #0a0a0a; border: 1px solid #262626; border-radius: 0.375rem; font-family: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace; } .logs-container { height: 320px; max-height: 320px; min-height: 320px; overflow-y: scroll; } /* Layout */ .container-main { max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: 1.5rem; padding-right: 1.5rem; } /* Utilities */ .gap-6 { gap: 1.5rem; } .gap-8 { gap: 2rem; } /* Animations */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeInUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInScale { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } } @keyframes slideInLeft { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } } .fade-in { animation: fadeIn 0.2s ease-out; } .fade-in-up { animation: fadeInUp 0.3s ease-out; } .fade-in-scale { animation: fadeInScale 0.2s ease-out; } .slide-in-right { animation: slideInRight 0.3s ease-out; } .slide-in-left { animation: slideInLeft 0.3s ease-out; } @keyframes slideDown { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } } .animate-slideDown { animation: slideDown 0.2s ease-out forwards; } /* Page transitions */ .page-enter { animation: fadeInUp 0.3s ease-out; } /* Tab content transitions */ .tab-content { animation: fadeIn 0.2s ease-out; } /* Modal */ .modal-backdrop { position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.8); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; z-index: 50; } .modal { background-color: #171717; border: 1px solid #262626; border-radius: 0.5rem; width: 100%; max-width: 28rem; max-height: 90vh; overflow-y: auto; } .modal-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; border-bottom: 1px solid #262626; } .modal-title { font-size: 1.125rem; font-weight: 600; color: #fafafa; } .modal-body { padding: 1.5rem; } .modal-footer { display: flex; justify-content: flex-end; gap: 0.75rem; padding: 1rem 1.5rem; border-top: 1px solid #262626; } /* Form */ .form-group { margin-bottom: 1rem; } .form-label { display: block; font-size: 0.875rem; font-weight: 500; color: #a3a3a3; margin-bottom: 0.5rem; } /* Table */ .table { width: 100%; border-collapse: collapse; } .table th, .table td { padding: 0.75rem 1rem; text-align: left; border-bottom: 1px solid #262626; } .table th { font-size: 0.75rem; font-weight: 500; color: #737373; text-transform: uppercase; letter-spacing: 0.05em; } .table td { font-size: 0.875rem; color: #fafafa; } .table tbody tr:hover { background-color: #1c1c1c; } /* Alert */ .alert { padding: 0.75rem 1rem; border-radius: 0.375rem; font-size: 0.875rem; } .alert-error { background-color: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.2); color: #fca5a5; } .alert-success { background-color: rgba(34, 197, 94, 0.1); border: 1px solid rgba(34, 197, 94, 0.2); color: #86efac; } /* Slider */ .slider { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; background: #404040; border-radius: 2px; outline: none; cursor: pointer; } .slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 14px; height: 14px; background: #fafafa; border-radius: 50%; cursor: pointer; transition: transform 0.15s ease; } .slider::-webkit-slider-thumb:hover { transform: scale(1.15); } .slider::-moz-range-thumb { width: 14px; height: 14px; background: #fafafa; border: none; border-radius: 50%; cursor: pointer; } /* Matrix Theme Styles */ .btn-matrix { display: inline-flex; align-items: center; justify-content: center; font-family: ui-monospace, SFMono-Regular, monospace; border: 1px solid #00ff41; background: transparent; color: #00ff41; cursor: pointer; transition: all 0.2s ease; } .btn-matrix:hover:not(:disabled) { background: rgba(0, 255, 65, 0.1); box-shadow: 0 0 10px rgba(0, 255, 65, 0.3); } .btn-matrix:disabled { opacity: 0.5; cursor: not-allowed; } .btn-matrix-solid { display: inline-flex; align-items: center; justify-content: center; font-family: ui-monospace, SFMono-Regular, monospace; border: 1px solid #00ff41; background: rgba(0, 255, 65, 0.2); color: #00ff41; cursor: pointer; transition: all 0.2s ease; } .btn-matrix-solid:hover:not(:disabled) { background: rgba(0, 255, 65, 0.3); box-shadow: 0 0 15px rgba(0, 255, 65, 0.4); } .btn-matrix-solid:disabled { opacity: 0.5; cursor: not-allowed; } .input-matrix { border: 1px solid rgba(0, 255, 65, 0.3); background: rgba(0, 0, 0, 0.5); color: #00ff41; font-family: ui-monospace, SFMono-Regular, monospace; transition: border-color 0.2s ease, box-shadow 0.2s ease; } .input-matrix:focus { outline: none; border-color: #00ff41; box-shadow: 0 0 10px rgba(0, 255, 65, 0.2); } .input-matrix::placeholder { color: rgba(0, 255, 65, 0.4); } .glow-green { text-shadow: 0 0 10px rgba(0, 255, 65, 0.5); } .glow-box { box-shadow: 0 0 20px rgba(0, 255, 65, 0.2); } .slider-matrix { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; background: rgba(0, 255, 65, 0.2); border-radius: 2px; outline: none; cursor: pointer; } .slider-matrix::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 14px; height: 14px; background: #00ff41; border-radius: 50%; cursor: pointer; box-shadow: 0 0 8px rgba(0, 255, 65, 0.5); transition: transform 0.15s ease, box-shadow 0.15s ease; } .slider-matrix::-webkit-slider-thumb:hover { transform: scale(1.2); box-shadow: 0 0 12px rgba(0, 255, 65, 0.7); } .slider-matrix::-moz-range-thumb { width: 14px; height: 14px; background: #00ff41; border: none; border-radius: 50%; cursor: pointer; box-shadow: 0 0 8px rgba(0, 255, 65, 0.5); } .metric-value { transition: text-shadow 0.3s ease; } .metric-value:hover { text-shadow: 0 0 15px rgba(0, 255, 65, 0.7); } /* 04 Jan 2026 23:35:31 */