*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f7f7f8;--bg2: #ffffff;--bg3: #efefef;--surface: #ffffff;--surface2: #f4f4f6;--border: rgba(0,0,0,.08);--border2: rgba(0,0,0,.14);--text: #111111;--text2: #454550;--text3: #9090a0;--green: #f97316;--green-dim: #ea580c;--green-bg: rgba(249,115,22,.08);--amber: #d97706;--amber-bg: rgba(217,119,6,.08);--red: #dc2626;--red-bg: rgba(220,38,38,.08);--blue: #2563eb;--blue-bg: rgba(37,99,235,.08);--purple: #7c3aed;--purple-bg: rgba(124,58,237,.08);--teal: #0d9488;--teal-bg: rgba(13,148,136,.08);--teal-dim: rgba(13,148,136,.2);--indigo: #4f46e5;--indigo-bg: rgba(79,70,229,.08);--indigo-dim:rgba(79,70,229,.2);--orange: #f97316;--orange-bg: rgba(249,115,22,.08);--orange-dim:rgba(249,115,22,.2);--rose: #e11d48;--rose-bg: rgba(225,29,72,.08);--rose-dim: rgba(225,29,72,.2);--radius: 10px;--radius-sm: 6px;--radius-lg: 14px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04)}@keyframes slideIn{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}.slide-in{animation:slideIn .25s ease forwards}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}html,body,#root{height:100%;font-family:DM Sans,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}input,button,textarea,select{font-family:inherit;font-size:14px}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:DM Mono,monospace}pre{background:#fafafa;border:1px solid var(--border2);border-radius:var(--radius-sm);padding:14px 16px;overflow-x:auto;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word;margin:10px 0;color:#1a1a2e}.good{color:#16a34a}.warn{color:var(--amber)}.bad{color:var(--red)}.info{color:var(--blue)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.fade-in{animation:fadeIn .3s ease forwards}.spinner{width:20px;height:20px;border:2px solid var(--border2);border-top-color:var(--orange);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
