:root { --bg: #131313; --panel: #1a1a1a; --surface: #212121; --row: #272727; --card: #2d2d2d; --border: #444444a8; --border-strong: #555555; --secondary: #656565; --primary: #737a81; --text: #ffffff; --text-muted: #d4d4d4; --color-accent: #EC6925; --color-accent-hover: #d4581a; --color-accent-light: rgba(236, 105, 37, 0.08); --color-accent-border: rgba(236, 105, 37, 0.25); --color-accent-dark: #b8461a; --color-success: #4ade80; --color-success-bg: rgba(74, 222, 128, 0.08); --color-error: #f87171; --color-error-bg: rgba(248, 113, 113, 0.08); --color-warning: #fbbf24; --color-info: #60a5fa; --radius-sm: 2px; --radius-md: 3px; --radius-lg: 4px; --radius-xl: 4px; --radius-full: 9999px; --space-xs: 0.25rem; --space-sm: 0.5rem; --space-md: 1rem; --space-lg: 1.5rem; --space-xl: 2rem; --space-2xl: 3rem; --space-3xl: 4rem; --space-4xl: 6rem; --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.3); --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.5), 0 8px 10px -6px rgb(0 0 0 / 0.3); --transition-fast: 150ms ease; --transition-base: 250ms ease; --transition-slow: 400ms ease; } @tailwind base; @tailwind components; @tailwind utilities; @layer base { html { scroll-behavior: smooth; } body { background-color: var(--bg); color: var(--text); font-family: "Inter", system-ui, sans-serif; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } h1, h2, h3, h4, h5, h6 { line-height: 1.2; font-weight: 700; } *:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; } a { color: inherit; text-decoration: none; transition: color var(--transition-fast); } } @layer components { .skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 0.5rem 1rem; background: var(--color-accent); color: #fff; border-radius: var(--radius-md); } .skip-link:focus { left: 0.5rem; top: 0.5rem; } .nav-link { position: relative; color: var(--text-muted); font-weight: 500; font-size: 0.875rem; transition: color var(--transition-fast); padding: 0.5rem 0; min-height: 44px; display: flex; align-items: center; } .nav-link:hover { color: var(--color-accent); } .nav-link::after { content: ""; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: var(--color-accent); transition: width var(--transition-fast); } .nav-link:hover::after, .nav-link.router-link-active::after { width: 100%; } .nav-link.router-link-active { color: var(--color-accent); } .btn-primary { background-color: var(--color-accent); color: #ffffff; border-radius: var(--radius-md); padding: 0.625rem 1.5rem; font-weight: 600; font-size: 0.875rem; transition: background-color var(--transition-fast); min-height: 44px; display: inline-flex; align-items: center; justify-content: center; } .btn-primary:hover { background-color: var(--color-accent-hover); } .btn-secondary { background-color: var(--surface); color: var(--text-muted); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.625rem 1.5rem; font-weight: 500; font-size: 0.875rem; transition: all var(--transition-fast); min-height: 44px; display: inline-flex; align-items: center; justify-content: center; } .btn-secondary:hover { border-color: var(--color-accent-border); color: var(--text); } } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } .skeleton-shimmer { background: linear-gradient(90deg, var(--panel) 25%, var(--surface) 50%, var(--panel) 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; }