:root{color-scheme:dark;--bg-0: #0a0d12;--panel: #12161f;--panel-2: #171c26;--input: #0e1219;--line: #232a36;--line-strong: #39424f;--text-0: #f2f5fa;--text-1: #94a0b4;--text-2: #6b7789;--primary: #4f7cff;--primary-strong: #3b63d9;--success: #22c55e;--danger: #ef4444;--warning: #f59e0b;--radius: 10px;--font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "SF Mono", "JetBrains Mono", "Roboto Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:var(--font);font-size:13px;font-weight:400;line-height:1.6;color:var(--text-0);background:var(--bg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}::selection{background:#4f7cff59;color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2b3442;border-radius:99px}.panel,.glass{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{margin:0;font-size:14px;font-weight:600}.panel-head span{color:var(--text-2);font-size:12px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.hint{margin:0;color:var(--text-2);font-size:12px}.label{display:block;margin:0 0 8px;color:var(--text-1);font-size:12px}.field{width:100%;height:40px;padding:0 12px;color:var(--text-0);font-size:13px;background:var(--input);border:1px solid var(--line-strong);border-radius:8px;outline:none;transition:border-color .12s ease}.field::placeholder{color:var(--text-2)}.field:focus{border-color:var(--primary)}.field:disabled{opacity:.55}.control{height:34px;padding:0 10px;color:var(--text-0);font-size:12px;background:var(--input);border:1px solid var(--line-strong);border-radius:8px;outline:none;transition:border-color .12s ease}.control:focus{border-color:var(--primary)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:40px;padding:0 16px;color:#fff;font-size:13px;font-weight:600;background:var(--primary);border:0;border-radius:8px;transition:background .12s ease}.btn-primary:hover:not(:disabled){background:var(--primary-strong)}.btn-primary:disabled{opacity:.55}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 12px;color:var(--text-1);font-size:12px;background:transparent;border:1px solid var(--line-strong);border-radius:8px;transition:color .12s ease,border-color .12s ease,background .12s ease}.btn-ghost:hover:not(:disabled){color:var(--text-0);border-color:var(--primary);background:var(--panel-2)}.btn-ghost:disabled{opacity:.5}.text-link{padding:0;color:var(--text-1);font-size:12px;background:transparent;border:0}.text-link:hover{color:var(--primary)}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notice,.error-bar{margin:0 0 14px;padding:9px 11px;color:var(--text-1);font-size:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px}.notice.danger,.error-bar{color:#ffb4b4;background:#ef444414;border-color:#ef444452}.table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}.data-table th{color:var(--text-2);font-weight:500;background:var(--panel-2)}.data-table td{color:var(--text-1)}.data-table tbody tr:hover{background:var(--panel-2)}.data-table tbody tr:last-child td{border-bottom:0}.data-table .num{color:var(--text-0);font-family:var(--mono);font-variant-numeric:tabular-nums}.empty{padding:28px 12px;color:var(--text-2);font-size:12px;text-align:center}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
