| @import "./tokens.css"; |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| html, |
| body { |
| margin: 0; |
| padding: 0; |
| height: 100%; |
| background: var(--color-bg); |
| color: var(--color-text-primary); |
| } |
|
|
| body { |
| font-family: var(--font-sans); |
| font-size: var(--text-base); |
| line-height: var(--leading-normal); |
| font-weight: 420; |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| transition: background var(--transition-base), color var(--transition-base); |
| } |
|
|
| #root { |
| height: 100%; |
| } |
|
|
| h1, h2, h3, h4, h5, h6 { |
| margin: 0; |
| font-weight: 600; |
| letter-spacing: -0.01em; |
| line-height: var(--leading-tight); |
| } |
|
|
| p { |
| margin: 0; |
| } |
|
|
| a { |
| color: inherit; |
| text-decoration: none; |
| } |
|
|
| button { |
| font-family: inherit; |
| } |
|
|
| input, |
| textarea, |
| select { |
| font-family: inherit; |
| font-size: inherit; |
| color: inherit; |
| outline: none; |
| } |
|
|
| input:focus, |
| textarea:focus, |
| select:focus { |
| outline: none; |
| } |
|
|
| code, .mono { |
| font-family: var(--font-mono); |
| } |
|
|
| ::selection { |
| background: var(--color-accent-soft); |
| color: var(--color-accent-text); |
| } |
|
|
| |
| * { |
| scrollbar-width: thin; |
| scrollbar-color: var(--color-border-strong) transparent; |
| } |
|
|
| *::-webkit-scrollbar { |
| width: 10px; |
| height: 10px; |
| } |
|
|
| *::-webkit-scrollbar-track { |
| background: transparent; |
| } |
|
|
| *::-webkit-scrollbar-thumb { |
| background: var(--color-border-strong); |
| border-radius: var(--radius-full); |
| border: 2px solid var(--color-bg); |
| } |
|
|
| |
| :focus { |
| outline: none; |
| } |
|
|
| :focus-visible { |
| outline: none; |
| box-shadow: var(--focus-ring); |
| border-radius: var(--radius-sm); |
| } |
|
|
| @media (prefers-reduced-motion: reduce) { |
| *:not(.dw-spinner):not(.dw-spinner *), |
| *:not(.dw-spinner):not(.dw-spinner *)::before, |
| *:not(.dw-spinner):not(.dw-spinner *)::after { |
| animation-duration: 0.001ms !important; |
| animation-iteration-count: 1 !important; |
| transition-duration: 0.001ms !important; |
| } |
| } |
|
|
| @keyframes spin { |
| 0% { |
| transform: rotate(0deg); |
| } |
| 100% { |
| transform: rotate(360deg); |
| } |
| } |
|
|
|
|
| @keyframes fade-in { |
| from { opacity: 0; } |
| to { opacity: 1; } |
| } |
|
|
| @keyframes slide-in-right { |
| from { transform: translateX(16px); opacity: 0; } |
| to { transform: translateX(0); opacity: 1; } |
| } |
|
|
| |
| .dw-page { |
| display: flex; |
| flex-direction: column; |
| gap: var(--space-6); |
| } |
|
|
| .dw-page__header h1 { |
| font-size: var(--text-2xl); |
| margin-bottom: var(--space-2); |
| } |
|
|
| .dw-page__header p { |
| color: var(--color-text-secondary); |
| font-size: var(--text-sm); |
| } |
|
|
| |
| @media (max-width: 768px) { |
| .dw-page { |
| gap: var(--space-4); |
| } |
|
|
| .dw-page__header h1 { |
| font-size: var(--text-xl); |
| } |
| } |
|
|