:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-panel: #ffffff;--bg-hover: #f0f1f3;--text-primary: #1a1a2e;--text-secondary: #6c757d;--accent: #4361ee;--border: #dee2e6;--success: #2dc653;--error: #e63946;--warning: #fca311;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}[data-theme=dark]{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-panel: #1c2128;--bg-hover: #21262d;--text-primary: #e6edf3;--text-secondary: #8b949e;--accent: #58a6ff;--border: #30363d;--success: #3fb950;--error: #f85149;--warning: #d29922}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}button{cursor:pointer;border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:13px;font-family:inherit;background:var(--bg-secondary);color:var(--text-primary);transition:background .15s,border-color .15s}button:hover{background:var(--bg-hover);border-color:var(--accent)}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{opacity:.9}input,textarea{border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:13px;font-family:inherit;background:var(--bg-panel);color:var(--text-primary);outline:none;transition:border-color .15s;width:100%}input:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-secondary)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mono{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.spinner.large{width:28px;height:28px;border-width:3px}
