*{box-sizing:border-box}:root{--color-bg: #f9fafb;--color-card: #ffffff;--color-text: #0a0a0a;--color-text-muted: #6e7a8a;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-border: #e5e7eb;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--radius: 6px;--shadow: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 4px rgba(0, 0, 0, .08);--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:.875rem;background:var(--color-bg);color:var(--color-text);min-height:100vh}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font:inherit}.input{padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-card);color:var(--color-text);font-size:.8125rem}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb40}.btn{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;border-radius:var(--radius);font-size:.8125rem;font-weight:500;border:none;cursor:pointer}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-card);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:#f3f4f6}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:var(--color-danger-hover)}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.spin{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.9}50%{opacity:.5}}[data-theme=dark]{--color-bg: #111827;--color-card: #1f2937;--color-text: #f9fafb;--color-text-muted: #9ca3af;--color-primary: #60a5fa;--color-primary-hover: #93c5fd;--color-border: #374151;--color-danger: #f87171;--color-danger-hover: #ef4444;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4)}[data-theme=dark] .btn-secondary:hover{background:#374151}
