:root{--canvas: #F7F8FA;--canvas-raised: #FFFFFF;--canvas-sunken: #F1F3F7;--canvas-border: #E7EAF0;--ink-900: #0F172A;--ink-500: #64748B;--ink-400: #94A3B8;--brand: #5B3DF5;--brand-hover: #4A2EE0;--brand-soft: #EFEBFF;--sidebar: #0F1115;--sidebar-elevated: #161A20;--sidebar-hover: #1C2027;--sidebar-border: #232830;--sidebar-text: #8E96A4}*{box-sizing:border-box}html,body{margin:0;background-color:var(--canvas);color:var(--ink-900);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"cv11","ss01","ss03";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button{font-family:inherit}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:#d7dbe3;border-radius:8px;border:2px solid var(--canvas)}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#b7bcc7}.dark-scrollbar::-webkit-scrollbar{width:6px}.dark-scrollbar::-webkit-scrollbar-track{background:transparent}.dark-scrollbar::-webkit-scrollbar-thumb{background:#2a2f38;border-radius:6px}.dark-scrollbar::-webkit-scrollbar-thumb:hover{background:#383e48}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:4px;border:1px solid var(--canvas-border);background:var(--canvas-raised);color:var(--ink-500);font-size:11px;font-weight:500;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;line-height:1}.focus-ring{outline:none;transition:box-shadow .12s ease,border-color .12s ease}.focus-ring:focus-visible{box-shadow:0 0 0 3px #5b3df529;border-color:var(--brand)}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}@keyframes token-fade-in{0%{opacity:0}to{opacity:1}}@keyframes token-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.anim-fade-in{animation:token-fade-in .2s ease both}.anim-slide-up{animation:token-slide-up .24s cubic-bezier(.2,.8,.2,1) both}
