:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #dbeafe;--color-primary-dark: #1e40af;--color-on-primary: #ffffff;--color-success: #059669;--color-success-soft: rgba(5, 150, 105, .09);--color-warning: #c67c12;--color-warning-soft: rgba(198, 124, 18, .11);--color-danger: #dc2626;--color-danger-soft: rgba(220, 38, 38, .08);--color-bg: #f5f7fa;--color-surface: #ffffff;--color-surface-2: #f8fafc;--color-surface-hover: #eef2f7;--color-border: #e3e8ef;--color-border-strong: #cdd5e0;--color-text: #142033;--color-text-secondary: #566072;--color-text-tertiary: #8b95a6;--font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 4px 14px rgba(16, 24, 40, .08)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:8px 10px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary-light);border-color:var(--color-primary)}a{color:var(--color-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-md);border:1px solid transparent;font-weight:600;font-size:14px;padding:9px 16px}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-ghost{background:transparent;border-color:var(--color-border-strong);color:var(--color-text)}.btn-ghost:hover{background:var(--color-surface-hover)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
