:root{--bg-page: #f8f7f5;--bg-elevated: #f0eeeb;--bg-card: #ffffff;--bg-card-hover: #faf9f7;--border-card: #e8e5e0;--border-subtle: #ede9e4;--text-primary: #2c2a26;--text-secondary: #6b6660;--text-tertiary: #9e978e;--brand: #f4c8c2;--brand-dark: #e8aba3;--brand-glow: rgba(244, 200, 194, .2);--green: #2a9d6e;--green-bg: rgba(42, 157, 110, .08);--red: #d44a4a;--red-bg: rgba(212, 74, 74, .08);--amber: #c48a1a;--amber-bg: rgba(196, 138, 26, .08);--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--header-height: 60px;--sidebar-width: 240px;--content-max-width: 1200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;color:var(--text-primary);background:var(--bg-page)}#root{min-height:100svh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{color:var(--text-primary);line-height:1.3;font-weight:600}a{color:var(--brand);text-decoration:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-elevated)}::-webkit-scrollbar-thumb{background:var(--border-card);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}
