:root{--bg:#fff;--surface:#f9fafb;--ink:#111827;--ink-2:#374151;--muted:#6b7280;--faint:#9ca3af;--border:#e5e7eb;--border-soft:#f3f4f6;--accent:#4f46e5;--accent-hover:#4338ca;--accent-soft:#eef2ff;--accent-ink:#4338ca;--danger:#b91c1c;--danger-soft:#fee2e2;--ok:#047857;--ok-soft:#ecfdf5;--warn:#b45309;--warn-soft:#fffbeb;--radius:8px;--radius-lg:12px;--font:"IBM Plex Sans", "PingFang SC", "Noto Sans SC", system-ui, -apple-system, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, monospace}html:root{--el-color-primary:#4f46e5;--el-color-primary-light-3:#7c74ec;--el-color-primary-light-5:#a39ef2;--el-color-primary-light-7:#c9c6f7;--el-color-primary-light-8:#dcdafa;--el-color-primary-light-9:#eef2ff;--el-color-primary-dark-2:#4338ca;--el-color-danger:#b91c1c;--el-color-success:#047857;--el-color-warning:#b45309;--el-text-color-primary:#111827;--el-text-color-regular:#374151;--el-text-color-secondary:#6b7280;--el-text-color-placeholder:#9ca3af;--el-border-color:#e5e7eb;--el-border-color-light:#e5e7eb;--el-border-color-lighter:#f3f4f6;--el-fill-color-light:#f9fafb;--el-fill-color-blank:#fff;--el-border-radius-base:8px;--el-border-radius-small:6px;--el-font-family:var(--font);--el-font-size-base:14px;--el-box-shadow-light:0 1px 2px #1118270f;--el-table-header-bg-color:#f9fafb;--el-table-header-text-color:#6b7280;--el-table-border-color:#f3f4f6;--el-table-row-hover-bg-color:#f9fafb}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}h1,h2,h3{letter-spacing:-.01em;margin:0}.container{max-width:1280px;margin:0 auto;padding:0 48px}.skip{position:absolute;left:-999px}.skip:focus{background:var(--bg);z-index:10;padding:8px;top:8px;left:16px}.btn{border-radius:var(--radius);height:40px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);color:#fff}.btn-ghost{background:var(--bg);border-color:var(--border);color:var(--ink)}.btn-ghost:hover{background:var(--surface);color:var(--ink)}.btn-danger{background:var(--bg);border-color:var(--border);color:var(--danger)}.btn-danger:hover{background:var(--danger-soft);color:var(--danger)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-lg{height:44px;padding:0 22px;font-size:15px}.btn:disabled{opacity:.5;cursor:default}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.tag{background:var(--border-soft);height:22px;color:var(--ink-2);border-radius:999px;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.tag-ok{background:var(--ok-soft);color:var(--ok)}.tag-warn{background:var(--warn-soft);color:var(--warn)}.tag-accent{background:var(--accent-soft);color:var(--accent-ink)}.chip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);height:32px;color:var(--ink-2);cursor:pointer;align-items:center;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.avatar,.mono{font-size:13px}.avatar{background:var(--ink);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-weight:600;display:inline-flex}.avatar-soft{background:var(--accent-soft);color:var(--accent-ink)}.page-title{font-size:24px;font-weight:700}.page-sub{color:var(--muted);margin-top:2px}.el-button{font-weight:600}.el-card{border-radius:var(--radius-lg);box-shadow:none;border-color:var(--border)}.el-card__header{padding:16px 24px;font-weight:600}.el-input__wrapper,.el-textarea__inner{box-shadow:0 0 0 1px var(--border) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--accent) inset}.el-table th.el-table__cell{letter-spacing:.02em;font-size:12px;font-weight:600}.el-table .el-table__cell{padding:10px 0}.el-dialog{border-radius:var(--radius-lg)}@media (width<=768px){.container{padding:0 16px}.btn,.chip{min-height:44px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
