:root{--background:#ffffff;--foreground:#171717;--primary:#1976d2;--secondary:#9c27b0;--success:#2e7d32;--error:#d32f2f;--warning:#ed6c02;--info:#0288d1}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body{color:var(--foreground);background:var(--background)}.markdown-content{line-height:1.6}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin-top:1em;margin-bottom:.5em;font-weight:600}.markdown-content h1{font-size:1.5rem}.markdown-content h2{font-size:1.25rem}.markdown-content h3{font-size:1.1rem}.markdown-content p{margin-bottom:.75em}.markdown-content ol,.markdown-content ul{margin-left:1.5em;margin-bottom:.75em}.markdown-content li{margin-bottom:.25em}.markdown-content code{background:rgba(0,0,0,.05);padding:.2em .4em;border-radius:4px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.9em}.markdown-content pre{background:#1e1e1e;color:#d4d4d4;padding:1em;border-radius:8px;overflow-x:auto;margin-bottom:1em}.markdown-content pre code{background:none;padding:0;color:inherit}.markdown-content blockquote{border-left:4px solid var(--primary);padding-left:1em;margin-left:0;margin-bottom:.75em;color:#666}.markdown-content table{border-collapse:collapse;width:100%;margin-bottom:1em}.markdown-content td,.markdown-content th{border:1px solid #ddd;padding:.5em;text-align:left}.markdown-content th{background:rgba(0,0,0,.05);font-weight:600}.markdown-content a{color:var(--primary);text-decoration:none}.markdown-content a:hover{text-decoration:underline}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading-pulse{animation:pulse 1.5s ease-in-out infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.tool-spinner{animation:spin 1s linear infinite}