| |
| |
| |
| |
|
|
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Poppins:wght@400;500;600;700;800&display=swap'); |
|
|
| |
| :root { |
| --bg-primary: #0a0a1a; |
| --bg-secondary: #0f0f23; |
| --bg-tertiary: #141432; |
| --bg-card: rgba(20, 20, 50, 0.6); |
| --bg-card-solid: #16163a; |
| --bg-glass: rgba(255, 255, 255, 0.03); |
| --bg-glass-hover: rgba(255, 255, 255, 0.06); |
| --border-glass: rgba(255, 255, 255, 0.08); |
| --border-glass-hover: rgba(255, 255, 255, 0.15); |
|
|
| --accent-1: #6366f1; |
| --accent-2: #8b5cf6; |
| --accent-3: #06b6d4; |
| --accent-4: #10b981; |
| --accent-5: #f59e0b; |
| --accent-6: #ef4444; |
| --gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #06b6d4 100%); |
| --gradient-accent: linear-gradient(135deg, #6366f1, #a855f7); |
| --gradient-success: linear-gradient(135deg, #10b981, #06b6d4); |
| --gradient-warning: linear-gradient(135deg, #f59e0b, #ef4444); |
| --gradient-info: linear-gradient(135deg, #06b6d4, #6366f1); |
| --gradient-danger: linear-gradient(135deg, #ef4444, #f59e0b); |
|
|
| --text-primary: #f0f0ff; |
| --text-secondary: #a0a0c0; |
| --text-muted: #6b6b8d; |
| --text-accent: #818cf8; |
|
|
| --shadow-sm: 0 2px 8px rgba(0,0,0,0.3); |
| --shadow-md: 0 4px 16px rgba(0,0,0,0.4); |
| --shadow-lg: 0 8px 32px rgba(0,0,0,0.5); |
| --shadow-glow: 0 0 20px rgba(99,102,241,0.15); |
| --shadow-glow-hover: 0 0 30px rgba(99,102,241,0.25); |
|
|
| --radius-sm: 6px; |
| --radius-md: 10px; |
| --radius-lg: 16px; |
| --radius-xl: 20px; |
| --radius-full: 9999px; |
|
|
| --transition-fast: 200ms cubic-bezier(0.4, 0, 0.2, 1); |
| --transition-base: 350ms cubic-bezier(0.4, 0, 0.2, 1); |
|
|
| --font-display: 'Poppins', sans-serif; |
| --font-body: 'Inter', sans-serif; |
| --font-mono: 'JetBrains Mono', 'Courier New', monospace; |
| } |
|
|
| |
| [data-theme="light"] { |
| --bg-primary: #f5f7fb; |
| --bg-secondary: #eef1f8; |
| --bg-tertiary: #e8ecf4; |
| --bg-card: rgba(255, 255, 255, 0.85); |
| --bg-card-solid: #ffffff; |
| --bg-glass: rgba(255, 255, 255, 0.7); |
| --bg-glass-hover: rgba(255, 255, 255, 0.9); |
| --border-glass: rgba(0, 0, 0, 0.08); |
| --border-glass-hover: rgba(0, 0, 0, 0.15); |
| --text-primary: #1a1a2e; |
| --text-secondary: #4a4a6a; |
| --text-muted: #7a7a9a; |
| --text-accent: #4f46e5; |
| --shadow-sm: 0 2px 8px rgba(0,0,0,0.06); |
| --shadow-md: 0 4px 16px rgba(0,0,0,0.08); |
| --shadow-lg: 0 8px 32px rgba(0,0,0,0.1); |
| --shadow-glow: 0 0 20px rgba(99,102,241,0.08); |
| --shadow-glow-hover: 0 0 30px rgba(99,102,241,0.12); |
| } |
| [data-theme="light"] body::before { |
| background: |
| radial-gradient(ellipse at 20% 0%, rgba(99,102,241,0.05) 0%, transparent 50%), |
| radial-gradient(ellipse at 80% 100%, rgba(6,182,212,0.04) 0%, transparent 50%); |
| } |
| [data-theme="light"] .navbar { |
| background: rgba(255,255,255,0.85) !important; |
| border-bottom-color: rgba(0,0,0,0.06); |
| box-shadow: 0 2px 15px rgba(0,0,0,0.06); |
| } |
| [data-theme="light"] .navbar .navbar-brand { color: #1a1a2e !important; } |
| [data-theme="light"] .navbar .nav-link { color: #4a4a6a !important; } |
| [data-theme="light"] .navbar .nav-link:hover { color: #1a1a2e !important; background: rgba(0,0,0,0.04); } |
| [data-theme="light"] .navbar-toggler { border-color: rgba(0,0,0,0.1); } |
| [data-theme="light"] .navbar-toggler-icon { filter: invert(1); } |
| [data-theme="light"] footer { background: rgba(255,255,255,0.9); border-top-color: rgba(0,0,0,0.06); } |
| [data-theme="light"] .card-header { background: rgba(99,102,241,0.06); } |
| [data-theme="light"] .form-control, |
| [data-theme="light"] .form-select { |
| background: rgba(255,255,255,0.9); |
| border-color: rgba(0,0,0,0.12); |
| color: #1a1a2e; |
| } |
| [data-theme="light"] .form-control:focus, |
| [data-theme="light"] .form-select:focus { background: #fff; } |
| [data-theme="light"] .form-control::placeholder { color: #9a9ab0; } |
| [data-theme="light"] .table { color: #4a4a6a; } |
| [data-theme="light"] .table thead { background: rgba(99,102,241,0.04); } |
| [data-theme="light"] .table thead th { color: #6a6a8a; } |
| [data-theme="light"] .table td { border-bottom-color: rgba(0,0,0,0.05); color: #4a4a6a; } |
| [data-theme="light"] .table tbody tr:hover { background: rgba(99,102,241,0.03); } |
| [data-theme="light"] .table-striped tbody tr:nth-of-type(odd) { background: rgba(99,102,241,0.02); } |
| [data-theme="light"] .list-group-item { border-color: rgba(0,0,0,0.06); color: #4a4a6a; } |
| [data-theme="light"] .list-group-item:hover { background: rgba(99,102,241,0.03); } |
| [data-theme="light"] .accordion-button { background: rgba(0,0,0,0.02); color: #1a1a2e; } |
| [data-theme="light"] .accordion-button:not(.collapsed) { background: rgba(99,102,241,0.06); color: var(--accent-1); } |
| [data-theme="light"] .accordion-button::after { filter: none; } |
| [data-theme="light"] .accordion-body { background: #fff; color: #4a4a6a; } |
| [data-theme="light"] .modal-content { background: #fff; } |
| [data-theme="light"] .modal-header { background: rgba(99,102,241,0.06); color: #1a1a2e; } |
| [data-theme="light"] .modal-header .btn-close { filter: none; } |
| [data-theme="light"] .alert .btn-close { filter: none; } |
| [data-theme="light"] .badge.bg-secondary { background: rgba(0,0,0,0.06) !important; color: #6a6a8a !important; } |
| [data-theme="light"] .dataTables_wrapper .dataTables_length select, |
| [data-theme="light"] .dataTables_wrapper .dataTables_filter input { |
| background: #fff !important; color: #1a1a2e !important; border-color: rgba(0,0,0,0.12) !important; |
| } |
| [data-theme="light"] .dataTables_wrapper .dataTables_info, |
| [data-theme="light"] .dataTables_wrapper .dataTables_length label, |
| [data-theme="light"] .dataTables_wrapper .dataTables_filter label { color: #6a6a8a !important; } |
| [data-theme="light"] .dataTables_wrapper .dataTables_paginate .paginate_button { |
| color: #4a4a6a !important; border-color: rgba(0,0,0,0.1) !important; background: transparent !important; |
| } |
| [data-theme="light"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover { |
| background: rgba(99,102,241,0.08) !important; color: var(--accent-1) !important; |
| } |
| [data-theme="light"] .form-check-input { background-color: rgba(0,0,0,0.06); border-color: rgba(0,0,0,0.15); } |
| [data-theme="light"] hr { border-color: rgba(0,0,0,0.08); } |
| |
| .theme-toggle { |
| background: transparent; |
| border: 1px solid var(--border-glass-hover); |
| color: var(--text-secondary); |
| width: 38px; height: 38px; |
| border-radius: var(--radius-full); |
| display: flex; align-items: center; justify-content: center; |
| cursor: pointer; |
| transition: all 200ms ease; |
| font-size: 1.1rem; |
| padding: 0; |
| } |
| .theme-toggle:hover { |
| background: rgba(99,102,241,0.1); |
| border-color: var(--accent-1); |
| color: var(--accent-1); |
| transform: scale(1.05); |
| } |
|
|
| |
| *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } |
| html { scroll-behavior: smooth; } |
|
|
| body { |
| font-family: var(--font-body); |
| background: var(--bg-primary); |
| color: var(--text-primary); |
| line-height: 1.7; |
| -webkit-font-smoothing: antialiased; |
| min-height: 100vh; |
| } |
|
|
| body::before { |
| content: ''; |
| position: fixed; |
| top: 0; left: 0; right: 0; bottom: 0; |
| background: |
| radial-gradient(ellipse at 20% 0%, rgba(99,102,241,0.08) 0%, transparent 50%), |
| radial-gradient(ellipse at 80% 100%, rgba(6,182,212,0.06) 0%, transparent 50%); |
| pointer-events: none; |
| z-index: 0; |
| } |
|
|
| main, .container, .container-fluid { position: relative; z-index: 1; } |
|
|
| ::-webkit-scrollbar { width: 8px; } |
| ::-webkit-scrollbar-track { background: var(--bg-primary); } |
| ::-webkit-scrollbar-thumb { background: rgba(99,102,241,0.3); border-radius: 4px; } |
| ::-webkit-scrollbar-thumb:hover { background: rgba(99,102,241,0.5); } |
|
|
| ::selection { background: rgba(99,102,241,0.3); color: #fff; } |
|
|
| a { color: var(--text-accent); text-decoration: none; transition: color var(--transition-fast); } |
| a:hover { color: #a5b4fc; } |
|
|
| |
| h1, h2, h3, h4, h5, h6 { |
| font-family: var(--font-display); |
| font-weight: 700; |
| line-height: 1.25; |
| color: var(--text-primary); |
| margin-top: 1rem; |
| margin-bottom: 0.75rem; |
| } |
| h1 { font-size: 2.25rem; letter-spacing: -0.03em; } |
| h2 { font-size: 1.75rem; letter-spacing: -0.02em; } |
| h3 { font-size: 1.375rem; } |
| h4 { font-size: 1.125rem; } |
| p { margin-bottom: 1rem; color: var(--text-secondary); } |
| small, .small { font-size: 0.85rem; color: var(--text-muted); } |
|
|
| .gradient-text { |
| background: var(--gradient-primary); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| background-clip: text; |
| } |
|
|
| |
| .navbar { |
| background: rgba(10, 10, 26, 0.8) !important; |
| backdrop-filter: blur(20px); |
| -webkit-backdrop-filter: blur(20px); |
| border-bottom: 1px solid var(--border-glass); |
| padding: 0.75rem 0; |
| position: sticky; |
| top: 0; |
| z-index: 1030; |
| box-shadow: 0 4px 30px rgba(0,0,0,0.3); |
| } |
| .navbar .navbar-brand { |
| font-family: var(--font-display); |
| font-size: 1.4rem; |
| font-weight: 700; |
| color: #fff !important; |
| letter-spacing: -0.02em; |
| } |
| .navbar .nav-link { |
| color: var(--text-secondary) !important; |
| font-weight: 500; |
| font-size: 0.9rem; |
| padding: 0.5rem 1rem !important; |
| border-radius: var(--radius-md); |
| transition: all var(--transition-fast); |
| } |
| .navbar .nav-link:hover { |
| color: #fff !important; |
| background: rgba(255,255,255,0.05); |
| } |
| .navbar-dark .navbar-toggler { border-color: var(--border-glass); } |
| .bg-dark { background-color: transparent !important; } |
|
|
| |
| .card { |
| background: var(--bg-card); |
| backdrop-filter: blur(12px); |
| -webkit-backdrop-filter: blur(12px); |
| border: 1px solid var(--border-glass); |
| border-radius: var(--radius-lg); |
| box-shadow: var(--shadow-sm); |
| transition: all var(--transition-base); |
| overflow: hidden; |
| color: var(--text-primary); |
| } |
| .card:hover { |
| border-color: var(--border-glass-hover); |
| box-shadow: var(--shadow-glow); |
| transform: translateY(-2px); |
| } |
| .card-header { |
| background: rgba(99,102,241,0.1); |
| border-bottom: 1px solid var(--border-glass); |
| color: var(--text-primary); |
| font-weight: 600; |
| padding: 1rem 1.25rem; |
| font-size: 1rem; |
| font-family: var(--font-display); |
| } |
| .card-body { padding: 1.25rem; color: var(--text-secondary); } |
| .card-footer { |
| background: rgba(255,255,255,0.02); |
| border-top: 1px solid var(--border-glass); |
| padding: 0.85rem 1.25rem; |
| color: var(--text-muted); |
| } |
| .card-title { color: var(--text-primary); } |
|
|
| .bg-primary { background: var(--gradient-primary) !important; border: none !important; } |
| .bg-success { background: var(--gradient-success) !important; border: none !important; } |
| .bg-info { background: var(--gradient-info) !important; border: none !important; } |
|
|
| .text-white { color: #fff !important; } |
|
|
| |
| .stat-card { |
| background: var(--bg-card); |
| backdrop-filter: blur(12px); |
| border: 1px solid var(--border-glass); |
| border-radius: var(--radius-lg); |
| padding: 1.5rem; |
| text-align: center; |
| position: relative; |
| overflow: hidden; |
| transition: all var(--transition-base); |
| } |
| .stat-card::before { |
| content: ''; |
| position: absolute; |
| top: 0; left: 0; right: 0; |
| height: 3px; |
| background: var(--gradient-primary); |
| } |
| .stat-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-glow-hover); } |
| .stat-card.success::before { background: var(--gradient-success); } |
| .stat-card.warning::before { background: var(--gradient-warning); } |
| .stat-card.info::before { background: var(--gradient-info); } |
| .stat-card.danger::before { background: var(--gradient-danger); } |
|
|
| .stat-value { |
| font-size: 2.5rem; |
| font-weight: 800; |
| font-family: var(--font-display); |
| background: var(--gradient-primary); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| margin: 0.5rem 0; |
| } |
| .stat-card.success .stat-value { background: var(--gradient-success); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } |
| .stat-card.warning .stat-value { background: var(--gradient-warning); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } |
| .stat-card.info .stat-value { background: var(--gradient-info); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } |
|
|
| .stat-label { |
| font-size: 0.8rem; |
| color: var(--text-muted); |
| text-transform: uppercase; |
| letter-spacing: 0.08em; |
| font-weight: 600; |
| } |
|
|
| |
| .card-value { |
| font-size: 2.5rem; |
| font-weight: 800; |
| font-family: var(--font-display); |
| } |
|
|
| |
| .btn { |
| border-radius: var(--radius-md); |
| padding: 0.5rem 1.25rem; |
| font-weight: 600; |
| font-size: 0.9rem; |
| font-family: var(--font-body); |
| transition: all var(--transition-fast); |
| border: 1px solid transparent; |
| cursor: pointer; |
| display: inline-flex; |
| align-items: center; |
| gap: 0.5rem; |
| } |
| .btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); } |
| .btn:active { transform: translateY(0); } |
|
|
| .btn-primary { |
| background: var(--gradient-accent); |
| color: #fff; |
| border: none; |
| } |
| .btn-primary:hover { box-shadow: 0 4px 20px rgba(99,102,241,0.4); background: var(--gradient-accent); color: #fff; } |
|
|
| .btn-success { background: var(--gradient-success); color: #fff; border: none; } |
| .btn-success:hover { box-shadow: 0 4px 20px rgba(16,185,129,0.4); color: #fff; } |
|
|
| .btn-info { background: var(--gradient-info); color: #fff; border: none; } |
| .btn-info:hover { box-shadow: 0 4px 20px rgba(6,182,212,0.4); color: #fff; } |
|
|
| .btn-danger { background: var(--gradient-danger); color: #fff; border: none; } |
| .btn-danger:hover { box-shadow: 0 4px 20px rgba(239,68,68,0.4); color: #fff; } |
|
|
| .btn-outline-primary { |
| background: transparent; |
| border: 1px solid var(--accent-1); |
| color: var(--accent-1); |
| } |
| .btn-outline-primary:hover { |
| background: rgba(99,102,241,0.1); |
| border-color: var(--accent-1); |
| color: #a5b4fc; |
| } |
|
|
| .btn-outline-secondary { |
| border: 1px solid var(--border-glass-hover); |
| color: var(--text-secondary); |
| background: transparent; |
| } |
| .btn-outline-secondary:hover { |
| background: rgba(255,255,255,0.05); |
| border-color: rgba(255,255,255,0.2); |
| color: var(--text-primary); |
| } |
|
|
| .btn-lg { padding: 0.75rem 2rem; font-size: 1rem; } |
| .btn-sm { padding: 0.35rem 0.75rem; font-size: 0.8rem; } |
|
|
| |
| .form-control, .form-select { |
| background: rgba(255,255,255,0.04); |
| border: 1px solid var(--border-glass); |
| border-radius: var(--radius-md); |
| padding: 0.65rem 1rem; |
| font-family: var(--font-body); |
| font-size: 0.95rem; |
| color: var(--text-primary); |
| transition: all var(--transition-fast); |
| } |
| .form-control:focus, .form-select:focus { |
| background: rgba(255,255,255,0.06); |
| border-color: var(--accent-1); |
| box-shadow: 0 0 0 3px rgba(99,102,241,0.15); |
| outline: none; |
| color: var(--text-primary); |
| } |
| .form-control::placeholder { color: var(--text-muted); } |
| .form-label { font-weight: 600; margin-bottom: 0.4rem; color: var(--text-secondary); font-size: 0.9rem; } |
| .form-text { color: var(--text-muted); font-size: 0.8rem; } |
| .form-check-label { color: var(--text-secondary); } |
| .form-check-input { |
| background-color: rgba(255,255,255,0.08); |
| border-color: var(--border-glass-hover); |
| } |
| .form-check-input:checked { |
| background-color: var(--accent-1); |
| border-color: var(--accent-1); |
| } |
| .form-check-input:focus { box-shadow: 0 0 0 3px rgba(99,102,241,0.2); } |
| .form-select option { background: var(--bg-secondary); color: var(--text-primary); } |
|
|
| |
| .badge { |
| border-radius: var(--radius-full); |
| padding: 0.3em 0.75em; |
| font-weight: 600; |
| font-size: 0.75rem; |
| letter-spacing: 0.03em; |
| } |
| .badge.bg-primary { background: var(--gradient-accent) !important; } |
| .badge.bg-success { background: rgba(16,185,129,0.2) !important; color: #6ee7b7 !important; border: 1px solid rgba(16,185,129,0.3); } |
| .badge.bg-warning { background: rgba(245,158,11,0.2) !important; color: #fcd34d !important; border: 1px solid rgba(245,158,11,0.3); } |
| .badge.bg-danger { background: rgba(239,68,68,0.2) !important; color: #fca5a5 !important; border: 1px solid rgba(239,68,68,0.3); } |
| .badge.bg-info { background: rgba(6,182,212,0.2) !important; color: #67e8f9 !important; border: 1px solid rgba(6,182,212,0.3); } |
| .badge.bg-secondary { background: rgba(255,255,255,0.08) !important; color: var(--text-muted) !important; border: 1px solid var(--border-glass); } |
| .badge.text-dark { color: inherit !important; } |
|
|
| |
| .table { color: var(--text-secondary); border-color: var(--border-glass); } |
| .table thead { |
| background: rgba(99,102,241,0.08); |
| font-size: 0.8rem; |
| text-transform: uppercase; |
| letter-spacing: 0.06em; |
| } |
| .table thead th { color: var(--text-muted); border-bottom: 1px solid var(--border-glass); padding: 0.85rem 1rem; font-weight: 600; } |
| .table td { padding: 0.85rem 1rem; border-bottom: 1px solid rgba(255,255,255,0.04); color: var(--text-secondary); vertical-align: middle; } |
| .table tbody tr { transition: background var(--transition-fast); } |
| .table tbody tr:hover { background: rgba(99,102,241,0.05); } |
| .table-striped tbody tr:nth-of-type(odd) { background: rgba(255,255,255,0.02); } |
| .table-striped tbody tr:nth-of-type(odd):hover { background: rgba(99,102,241,0.05); } |
| .table-hover tbody tr:hover { color: var(--text-primary); } |
|
|
| |
| .dataTables_wrapper .dataTables_length select, |
| .dataTables_wrapper .dataTables_filter input { |
| background: rgba(255,255,255,0.04) !important; |
| border: 1px solid var(--border-glass) !important; |
| color: var(--text-primary) !important; |
| border-radius: var(--radius-md) !important; |
| padding: 0.4rem 0.7rem !important; |
| } |
| .dataTables_wrapper .dataTables_info, |
| .dataTables_wrapper .dataTables_length label, |
| .dataTables_wrapper .dataTables_filter label { color: var(--text-muted) !important; font-size: 0.85rem; } |
| .dataTables_wrapper .dataTables_paginate .paginate_button { |
| color: var(--text-secondary) !important; |
| border: 1px solid var(--border-glass) !important; |
| background: transparent !important; |
| border-radius: var(--radius-sm) !important; |
| margin: 0 2px; |
| } |
| .dataTables_wrapper .dataTables_paginate .paginate_button.current { |
| background: var(--gradient-accent) !important; |
| color: #fff !important; |
| border: none !important; |
| } |
| .dataTables_wrapper .dataTables_paginate .paginate_button:hover { |
| background: rgba(99,102,241,0.2) !important; |
| color: #fff !important; |
| } |
|
|
| |
| .alert { |
| border-radius: var(--radius-md); |
| padding: 1rem 1.25rem; |
| border: 1px solid; |
| backdrop-filter: blur(8px); |
| } |
| .alert-success { background: rgba(16,185,129,0.1); border-color: rgba(16,185,129,0.3); color: #6ee7b7; } |
| .alert-danger { background: rgba(239,68,68,0.1); border-color: rgba(239,68,68,0.3); color: #fca5a5; } |
| .alert-warning { background: rgba(245,158,11,0.1); border-color: rgba(245,158,11,0.3); color: #fcd34d; } |
| .alert-info { background: rgba(6,182,212,0.1); border-color: rgba(6,182,212,0.3); color: #67e8f9; } |
| .alert-primary { background: rgba(99,102,241,0.1); border-color: rgba(99,102,241,0.3); color: #a5b4fc; } |
| .alert .btn-close { filter: invert(1) brightness(0.7); } |
|
|
| |
| .list-group-item { |
| background: transparent; |
| border-color: var(--border-glass); |
| color: var(--text-secondary); |
| transition: background var(--transition-fast); |
| } |
| .list-group-item:hover { background: rgba(255,255,255,0.03); } |
| .list-group-numbered > .list-group-item::before { color: var(--text-muted); } |
|
|
| |
| .accordion-item { |
| background: transparent; |
| border: 1px solid var(--border-glass); |
| } |
| .accordion-button { |
| background: rgba(255,255,255,0.03); |
| color: var(--text-primary); |
| font-weight: 600; |
| font-size: 0.9rem; |
| border: none; |
| box-shadow: none; |
| } |
| .accordion-button:not(.collapsed) { |
| background: rgba(99,102,241,0.1); |
| color: var(--text-accent); |
| box-shadow: none; |
| } |
| .accordion-button::after { filter: invert(1) brightness(0.7); } |
| .accordion-button:focus { box-shadow: none; } |
| .accordion-body { background: rgba(255,255,255,0.02); color: var(--text-secondary); } |
|
|
| |
| .modal-content { |
| background: var(--bg-card-solid); |
| backdrop-filter: blur(20px); |
| border: 1px solid var(--border-glass); |
| border-radius: var(--radius-lg); |
| box-shadow: var(--shadow-lg); |
| } |
| .modal-header { |
| background: rgba(99,102,241,0.1); |
| border-bottom: 1px solid var(--border-glass); |
| color: var(--text-primary); |
| padding: 1.25rem; |
| } |
| .modal-header .btn-close { filter: invert(1) brightness(0.7); } |
| .modal-body { padding: 1.25rem; color: var(--text-secondary); } |
| .modal-footer { background: rgba(255,255,255,0.02); border-top: 1px solid var(--border-glass); padding: 1rem 1.25rem; } |
|
|
| |
| @keyframes fadeInUp { |
| from { opacity: 0; transform: translateY(20px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| @keyframes pulse-glow { |
| 0%, 100% { box-shadow: 0 0 5px rgba(99,102,241,0.2); } |
| 50% { box-shadow: 0 0 20px rgba(99,102,241,0.4); } |
| } |
| @keyframes spin { to { transform: rotate(360deg); } } |
| @keyframes gradient-shift { |
| 0% { background-position: 0% 50%; } |
| 50% { background-position: 100% 50%; } |
| 100% { background-position: 0% 50%; } |
| } |
| @keyframes float { |
| 0%, 100% { transform: translateY(0); } |
| 50% { transform: translateY(-6px); } |
| } |
|
|
| .fade-in { animation: fadeInUp 0.6s ease-out both; } |
| .fade-in-delay-1 { animation-delay: 0.1s; } |
| .fade-in-delay-2 { animation-delay: 0.2s; } |
| .fade-in-delay-3 { animation-delay: 0.3s; } |
|
|
| .spinner-border { |
| border-width: 3px; |
| border-color: var(--accent-1); |
| border-right-color: transparent; |
| } |
|
|
| |
| .hero-section { |
| text-align: center; |
| padding: 3rem 1rem; |
| position: relative; |
| border-radius: var(--radius-xl); |
| background: var(--bg-card); |
| border: 1px solid var(--border-glass); |
| margin-bottom: 2rem; |
| overflow: hidden; |
| } |
| .hero-section::before { |
| content: ''; |
| position: absolute; |
| top: -50%; left: -50%; |
| width: 200%; height: 200%; |
| background: conic-gradient(from 0deg, transparent 0deg 340deg, rgba(99,102,241,0.08) 340deg 360deg); |
| animation: spin 15s linear infinite; |
| pointer-events: none; |
| } |
| .hero-section h1 { position: relative; font-size: 2.5rem; margin-bottom: 0.75rem; } |
| .hero-section p { position: relative; font-size: 1.1rem; color: var(--text-muted); max-width: 600px; margin: 0 auto; } |
|
|
| |
| footer { |
| background: rgba(10,10,26,0.8); |
| border-top: 1px solid var(--border-glass); |
| color: var(--text-muted); |
| padding: 1.5rem; |
| text-align: center; |
| margin-top: auto; |
| position: relative; |
| z-index: 1; |
| } |
| footer p { color: var(--text-muted); margin: 0; font-size: 0.85rem; } |
|
|
| |
| .auth-wrapper { |
| min-height: calc(100vh - 80px); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| padding: 2rem; |
| } |
| .auth-card { |
| width: 100%; |
| max-width: 440px; |
| } |
| .auth-card .card { |
| background: var(--bg-card); |
| border: 1px solid var(--border-glass); |
| padding: 2rem; |
| } |
| .auth-card h2 { |
| text-align: center; |
| margin-bottom: 1.5rem; |
| background: var(--gradient-primary); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| } |
|
|
| |
| .profile-header { |
| display: flex; |
| align-items: center; |
| gap: 1rem; |
| margin-bottom: 1.5rem; |
| } |
| .profile-avatar { |
| width: 60px; height: 60px; |
| border-radius: 50%; |
| background: var(--gradient-primary); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 1.5rem; |
| font-weight: 700; |
| color: #fff; |
| flex-shrink: 0; |
| } |
|
|
| |
| .text-muted { color: var(--text-muted) !important; } |
| .text-primary { color: var(--text-accent) !important; } |
| .text-success { color: #6ee7b7 !important; } |
| .text-danger { color: #fca5a5 !important; } |
| .text-body-emphasis { color: var(--text-primary) !important; } |
| .bg-body-tertiary { background: var(--bg-card) !important; border: 1px solid var(--border-glass); border-radius: var(--radius-xl); } |
| .shadow-sm { box-shadow: var(--shadow-sm) !important; } |
| .border-primary { border-color: var(--accent-1) !important; } |
|
|
| .fw-bold { font-weight: 600 !important; } |
|
|
| hr { border-color: var(--border-glass); opacity: 0.5; } |
|
|
| |
| .api-badge { font-size: 0.75em; margin-right: 4px; } |
|
|
| |
| @media (max-width: 768px) { |
| h1 { font-size: 1.75rem; } |
| h2 { font-size: 1.375rem; } |
| .hero-section { padding: 2rem 1rem; } |
| .hero-section h1 { font-size: 1.75rem; } |
| .stat-value { font-size: 2rem; } |
| .btn { width: 100%; justify-content: center; } |
| } |
|
|
| |
|
|