| | |
| | |
| | |
| |
|
| | *, *::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; |
| | } |
| |
|