| |
| |
| |
|
|
| *, *::before, *::after { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
|
|
| html { |
| font-size: 14px; |
| -webkit-font-smoothing: antialiased; |
| } |
|
|
| body { |
| font-family: var(--font-main); |
| font-size: var(--text-base); |
| line-height: 1.5; |
| color: var(--text-secondary); |
| background: var(--bg-main); |
| min-height: 100vh; |
| } |
|
|
| |
| body::before { |
| content: ''; |
| position: fixed; |
| inset: 0; |
| background: |
| radial-gradient(circle at 20% 20%, rgba(45, 212, 191, 0.08) 0%, transparent 50%), |
| radial-gradient(circle at 80% 80%, rgba(34, 211, 238, 0.06) 0%, transparent 50%); |
| pointer-events: none; |
| z-index: -1; |
| } |
|
|
| |
| h1, h2, h3, h4, h5, h6 { |
| font-weight: 600; |
| line-height: 1.3; |
| color: var(--text-primary); |
| margin-bottom: var(--space-2); |
| } |
|
|
| h1 { font-size: var(--text-2xl); } |
| h2 { font-size: var(--text-xl); } |
| h3 { font-size: var(--text-lg); } |
| h4 { font-size: var(--text-base); } |
|
|
| p { margin-bottom: var(--space-3); } |
|
|
| a { |
| color: var(--primary); |
| text-decoration: none; |
| } |
|
|
| a:hover { color: var(--primary-dark); } |
|
|
| |
| .app-container { |
| display: flex; |
| min-height: 100vh; |
| } |
|
|
| .main-content { |
| flex: 1; |
| margin-left: var(--sidebar-width); |
| display: flex; |
| flex-direction: column; |
| min-width: 0; |
| } |
|
|
| .page-content { |
| flex: 1; |
| padding: var(--space-4); |
| max-width: var(--max-content-width); |
| margin: 0 auto; |
| width: 100%; |
| } |
|
|
| |
| ::-webkit-scrollbar { |
| width: 6px; |
| height: 6px; |
| } |
|
|
| ::-webkit-scrollbar-track { |
| background: var(--mint); |
| } |
|
|
| ::-webkit-scrollbar-thumb { |
| background: var(--teal-light); |
| border-radius: 3px; |
| } |
|
|
| ::-webkit-scrollbar-thumb:hover { |
| background: var(--teal); |
| } |
|
|
| |
| ::selection { |
| background: var(--aqua-light); |
| color: var(--gray-900); |
| } |
|
|
| |
| :focus-visible { |
| outline: 2px solid var(--primary); |
| outline-offset: 2px; |
| } |
|
|
| |
| button { |
| font-family: inherit; |
| cursor: pointer; |
| } |
|
|
| .btn { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| gap: var(--space-2); |
| padding: var(--space-2) var(--space-4); |
| font-size: var(--text-sm); |
| font-weight: 500; |
| border-radius: var(--radius-md); |
| border: none; |
| transition: all var(--transition-fast); |
| } |
|
|
| .btn-primary { |
| background: var(--gradient-primary); |
| color: white; |
| } |
|
|
| .btn-primary:hover { |
| box-shadow: var(--shadow-md); |
| transform: translateY(-1px); |
| } |
|
|
| .btn-secondary { |
| background: var(--bg-card); |
| color: var(--text-secondary); |
| border: 1px solid var(--border-light); |
| } |
|
|
| .btn-secondary:hover { |
| background: var(--mint); |
| border-color: var(--teal-light); |
| } |
|
|
| .btn-icon { |
| width: 32px; |
| height: 32px; |
| padding: 0; |
| background: transparent; |
| border: 1px solid var(--border-light); |
| border-radius: var(--radius-sm); |
| color: var(--text-muted); |
| } |
|
|
| .btn-icon:hover { |
| background: var(--mint); |
| color: var(--primary); |
| border-color: var(--teal-light); |
| } |
|
|
| |
| input, select, textarea { |
| font-family: inherit; |
| font-size: var(--text-sm); |
| color: var(--text-primary); |
| background: var(--bg-card); |
| border: 1px solid var(--border-light); |
| border-radius: var(--radius-sm); |
| padding: var(--space-2) var(--space-3); |
| transition: all var(--transition-fast); |
| } |
|
|
| input:focus, select:focus, textarea:focus { |
| outline: none; |
| border-color: var(--primary); |
| box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.1); |
| } |
|
|
| input::placeholder { |
| color: var(--text-light); |
| } |
|
|
| |
| .card { |
| background: var(--bg-card); |
| border: 1px solid var(--border-light); |
| border-radius: var(--radius-lg); |
| box-shadow: var(--shadow-sm); |
| } |
|
|
| |
| @media (max-width: 1024px) { |
| .main-content { |
| margin-left: 0; |
| } |
| } |
|
|
| @media (max-width: 768px) { |
| html { |
| font-size: 13px; |
| } |
| |
| .page-content { |
| padding: var(--space-3); |
| } |
| } |
|
|
| |
| @media (prefers-reduced-motion: reduce) { |
| *, *::before, *::after { |
| animation-duration: 0.01ms !important; |
| transition-duration: 0.01ms !important; |
| } |
| } |
|
|
| |
| .sr-only { |
| position: absolute; |
| width: 1px; |
| height: 1px; |
| padding: 0; |
| margin: -1px; |
| overflow: hidden; |
| clip: rect(0, 0, 0, 0); |
| border: 0; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| html body *, |
| html body *::before, |
| html body *::after { |
| animation-iteration-count: 1 !important; |
| } |
|
|
| |
| html body .spinner, |
| html body .loading-spinner, |
| html body .spinner-icon, |
| html body .spinner::before, |
| html body .spinner::after, |
| html body .loading-spinner::before, |
| html body .loading-spinner::after, |
| html body .spinner-icon::before, |
| html body .spinner-icon::after { |
| animation-iteration-count: infinite !important; |
| } |
|
|
| |
| |
| html body .live-badge, |
| html body .live-dot, |
| html body .live-pulse, |
| html body .live-badge-enhanced, |
| html body .live-badge-enhanced .live-pulse, |
| html body .live-badge-enhanced .live-text { |
| animation: none !important; |
| } |
|
|