:root{--bg:#141414;--side:#161616;--ui:#1f1f1f;--ui-2:#262626;--ui-3:#2e2e2e;--line:#2c2c2c;--line-2:#3a3a3a;--text:#f2f2f2;--text-2:#a8a8a8;--text-3:#6f6f6f;--accent:#7c6cff;--blue:#8fb2ff;--danger:#e5484d;--ok:#2bd17e;--warn:#f5a524;--radius:12px;--surface-card:#1a1a1a;--surface-card-line:#252525;--surface-table-head:#1d1d1d;--surface-table-line:#222;--surface-hover:#202020;--surface-dialog:#1d1d1d;--surface-dialog-line:#2f2f2f;--font:-apple-system, system-ui, "PingFang SC", Inter, "Noto Sans SC", "Microsoft YaHei", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:13px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,textarea,select{font:inherit;color:inherit}svg{flex-shrink:0;display:block}[hidden]{display:none!important}.btn{background:var(--ui);color:#ddd;border:1px solid #2b2b2b;border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;display:inline-flex}.btn:hover{background:var(--ui-2);color:#fff}.btn.primary{color:#111;background:#f2f2f2;border-color:#f2f2f2;font-weight:600}.btn.primary:hover{background:#fff}.btn:disabled{opacity:.5;cursor:default}.toast-host{z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:70px;left:50%;transform:translate(-50%)}.toast{white-space:nowrap;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:10px;padding:9px 14px;animation:.2s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}.skel{background:#1f1f1f;border-radius:6px;position:relative;overflow:hidden}.skel:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0b,#0000);animation:1.4s ease-in-out infinite skel-shine;position:absolute;inset:0;transform:translate(-100%)}@keyframes skel-shine{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skel:after{animation:none}}
