:root{--bg: #f6f7f9;--canvas: #f1f3f6;--surface: #ffffff;--surface-2: #f7f8fa;--surface-3: #eef0f4;--ink: #0c0e14;--ink-2: #1c2030;--muted: #5a6072;--subtle: #8a91a3;--faint: #b8bdcc;--hairline: #e7eaef;--hairline-strong: #d6dae3;--accent: #5e6ad2;--accent-2: #4c57b8;--accent-soft: #eef0fb;--accent-ink: #2e3680;--success: #1a9f5e;--success-soft: #e6f6ee;--warn: #c47900;--warn-soft: #fbf2dd;--danger: #d93b3b;--danger-soft: #fbe9e9;--info: #0a8bd6;--info-soft: #e3f2fb;--radius-xs: 6px;--radius-sm: 8px;--radius: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 24px;--shadow-1: 0 1px 0 rgba(13,15,22,.04), 0 1px 2px rgba(13,15,22,.04);--shadow-2: 0 1px 0 rgba(13,15,22,.04), 0 6px 16px -4px rgba(13,15,22,.08), 0 12px 32px -8px rgba(13,15,22,.06);--shadow-3: 0 1px 0 rgba(13,15,22,.05), 0 18px 40px -10px rgba(13,15,22,.18);--shadow-pop: 0 1px 0 rgba(13,15,22,.05), 0 24px 60px -12px rgba(13,15,22,.3);--font-sans: "Geist", "Noto Sans TC", "PingFang TC", -apple-system, system-ui, sans-serif;--font-mono: "Geist Mono", "SF Mono", ui-monospace, monospace;--row-h: 40px;--pad-x: 24px}[data-theme=dim]{--bg: #15171c;--canvas: #0f1115;--surface: #1a1d23;--surface-2: #1f2229;--surface-3: #262a33;--ink: #e8eaef;--ink-2: #c9cdd6;--muted: #8c93a4;--subtle: #6b7184;--faint: #4a5060;--hairline: #2a2e38;--hairline-strong: #363b48;--accent: #8b95e8;--accent-2: #a4abe9;--accent-soft: #232742;--accent-ink: #b9c1ff;--success-soft: #142a1f;--warn-soft: #2a2113;--danger-soft: #2a1517;--info-soft: #102433;--shadow-1: 0 1px 0 rgba(0,0,0,.4), 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 1px 0 rgba(0,0,0,.4), 0 8px 24px -8px rgba(0,0,0,.5);--shadow-3: 0 1px 0 rgba(0,0,0,.4), 0 24px 48px -16px rgba(0,0,0,.7);--shadow-pop: 0 1px 0 rgba(0,0,0,.5), 0 24px 60px -12px rgba(0,0,0,.8)}[data-accent=indigo]{--accent: #5e6ad2;--accent-2: #4c57b8;--accent-soft: #eef0fb;--accent-ink: #2e3680}[data-accent=emerald]{--accent: #0d9d6b;--accent-2: #0a7d54;--accent-soft: #e3f5ec;--accent-ink: #0a5238}[data-accent=rose]{--accent: #e8456c;--accent-2: #c63659;--accent-soft: #fce6ec;--accent-ink: #8e1f3c}[data-accent=amber]{--accent: #d97e00;--accent-2: #ad6500;--accent-soft: #fcefd6;--accent-ink: #6e3f00}[data-accent=ocean]{--accent: #0a8bd6;--accent-2: #0a6fa8;--accent-soft: #e3f2fb;--accent-ink: #0a4870}[data-density=compact]{--row-h: 34px;--pad-x: 18px}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;font-family:var(--font-sans);background:#0a0c10;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;font-feature-settings:"ss01","cv11";height:100%}#root{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-device{flex:1;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);overflow:hidden}::selection{background:var(--accent-soft);color:var(--accent-ink)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;color:inherit}input:focus,textarea:focus,select:focus{outline:none}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes slideInRight{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}@keyframes scaleIn{0%{transform:scale(.97);opacity:0}to{transform:none;opacity:1}}@keyframes scrim{0%{opacity:0}to{opacity:1}}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drawLine{0%{stroke-dashoffset:var(--len)}to{stroke-dashoffset:0}}@keyframes growBar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes toastIn{0%{transform:translateY(12px) scale(.96);opacity:0}to{transform:none;opacity:1}}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.scrollbar-thin::-webkit-scrollbar{width:10px;height:10px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--hairline-strong);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:var(--faint);background-clip:padding-box;border:2px solid transparent}input::placeholder,textarea::placeholder{color:var(--subtle);opacity:1}select option[value=""]{color:var(--subtle)}
