:root{--bg:#f5f4f0;--surface:#fff;--surface-2:#f9f8f5;--surface-offset:#eeede9;--border:#0000001a;--divider:#e2e0dc;--text:#1c1a16;--text-muted:#6b6966;--text-faint:#aaa8a3;--text-inv:#f9f8f4;--primary:#01696f;--primary-h:#0c4e54;--primary-hl:#ceded9;--success:#437a22;--success-hl:#d4dfcc;--warn:#964219;--warn-hl:#ddcfc6;--error:#a12c7b;--error-hl:#e0ced7;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 12px 32px #0000001f;--r-sm:.375rem;--r-md:.5rem;--r-lg:.75rem;--r-xl:1rem;--r-full:9999px;--t:.18s cubic-bezier(.16,1,.3,1);--font:"Inter", system-ui, sans-serif;--ai-panel-bg:#f0f8f7;--ai-panel-border:#c0d9d6}[data-theme=dark]{--bg:#171614;--surface:#1c1b19;--surface-2:#201f1d;--surface-offset:#22211f;--border:#ffffff14;--divider:#2a2927;--text:#cdccca;--text-muted:#797876;--text-faint:#5a5957;--text-inv:#2b2a28;--primary:#4f98a3;--primary-h:#227f8b;--primary-hl:#313b3b;--success:#6daa45;--success-hl:#3a4435;--warn:#bb653b;--warn-hl:#564942;--error:#d163a7;--error-hl:#4c3d46;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 12px 32px #0006;--ai-panel-bg:#1d2726;--ai-panel-border:#2e4542}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;height:100%;font-size:15px}body{font-family:var(--font);background:var(--bg);color:var(--text);height:100%;overflow:hidden}#root{flex-direction:column;height:100%;display:flex}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}a{color:inherit;text-decoration:none}textarea,input{font:inherit}svg{flex-shrink:0}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--divider);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}
