.login-card[data-v-e63d6a39]{width:340px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:30px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 48px #0006}.login-title[data-v-e63d6a39]{font-size:22px;font-weight:700}.login-sub[data-v-e63d6a39]{font-size:12px;color:var(--muted);margin-bottom:6px}.login-error[data-v-e63d6a39]{color:var(--danger);font-size:13px;margin:0}.page-head[data-v-9d2ba82f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}h2[data-v-9d2ba82f]{margin:0;font-size:18px}.grid[data-v-9d2ba82f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.stat-card[data-v-9d2ba82f]{cursor:pointer}.stat-card[data-v-9d2ba82f]:hover{border-color:var(--primary)}.stat-value[data-v-9d2ba82f]{font-size:30px;font-weight:700;color:var(--primary)}.stat-label[data-v-9d2ba82f]{margin-top:6px;font-weight:600}.stat-hint[data-v-9d2ba82f]{font-size:12px;color:var(--muted);margin-top:2px}.page-head[data-v-24710126]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}h2[data-v-24710126]{margin:0;font-size:18px}.filters[data-v-24710126]{display:flex;gap:10px;margin-bottom:14px}.muted[data-v-24710126]{color:var(--muted)}.center[data-v-24710126]{text-align:center}.link[data-v-24710126]{border:none;background:transparent;color:var(--primary);padding:2px 6px;font-size:12px}.pager[data-v-24710126]{display:flex;align-items:center;gap:14px;margin-top:16px;font-size:13px;color:var(--muted)}.gen-row[data-v-24710126]{display:flex;align-items:center;gap:10px;margin:14px 0}.gen-result[data-v-24710126]{max-height:300px;overflow:auto;background:var(--surface-2);border-radius:10px;padding:12px}.err[data-v-24710126]{color:var(--danger);font-size:13px}.toast[data-v-24710126]{position:fixed;right:24px;top:24px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 18px;z-index:99;box-shadow:0 12px 24px #0006}.page-head[data-v-335ee7ed]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}h2[data-v-335ee7ed]{margin:0;font-size:18px}.muted[data-v-335ee7ed]{color:var(--muted)}.center[data-v-335ee7ed]{text-align:center}.badge-op[data-v-335ee7ed]{background:#2f95ff24;color:var(--primary);font-size:11px;padding:2px 8px;border-radius:999px}.pager[data-v-335ee7ed]{display:flex;align-items:center;gap:14px;margin-top:16px;font-size:13px;color:var(--muted)}.form[data-v-df59f4dd]{display:flex;flex-direction:column;gap:12px}.ok[data-v-df59f4dd]{color:var(--ok);font-size:13px;margin:0}.err[data-v-df59f4dd]{color:var(--danger);font-size:13px;margin:0}.page-head[data-v-0598db40]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:10px}h2[data-v-0598db40]{margin:0;font-size:18px}.filters[data-v-0598db40]{display:flex;gap:8px}select[data-v-0598db40],input[data-v-0598db40]{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px}.muted[data-v-0598db40]{color:var(--muted)}.center[data-v-0598db40]{text-align:center}.err[data-v-0598db40]{color:#e5484d;font-size:13px;margin-bottom:10px}.badge[data-v-0598db40]{font-size:11px;padding:2px 8px;border-radius:999px}.badge-pending[data-v-0598db40]{background:#ffad3329;color:#f5a623}.badge-approved[data-v-0598db40]{background:#2fd46a29;color:#2fd46a}.badge-rejected[data-v-0598db40]{background:#e5484d24;color:#e5484d}button[data-v-0598db40]{padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;font-size:13px}button.ok[data-v-0598db40]{color:#2fd46a;border-color:#2fd46a66;margin-right:6px}button.danger[data-v-0598db40]{color:#e5484d;border-color:#e5484d66}.reject-row[data-v-0598db40]{background:var(--surface-2)}.reject-input[data-v-0598db40]{flex:1;min-width:240px;margin-right:8px}.pager[data-v-0598db40]{display:flex;align-items:center;gap:14px;margin-top:16px;font-size:13px;color:var(--muted)}.page-head[data-v-3d042ae8]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:10px}h2[data-v-3d042ae8]{margin:0;font-size:18px}h3[data-v-3d042ae8]{margin:0 0 12px;font-size:15px}.filters[data-v-3d042ae8]{display:flex;gap:8px;align-items:center}select[data-v-3d042ae8],input[data-v-3d042ae8],textarea[data-v-3d042ae8]{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;width:100%;box-sizing:border-box}select[data-v-3d042ae8]{width:auto}.q-input[data-v-3d042ae8]{width:180px}.muted[data-v-3d042ae8]{color:var(--muted)}.center[data-v-3d042ae8]{text-align:center}.err[data-v-3d042ae8]{color:#e5484d;font-size:13px;margin-bottom:10px}.panel[data-v-3d042ae8]{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.form-grid[data-v-3d042ae8]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label[data-v-3d042ae8]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.span-2[data-v-3d042ae8]{grid-column:span 2}.panel-actions[data-v-3d042ae8]{margin-top:12px;display:flex;justify-content:flex-end}.panel-row td[data-v-3d042ae8]{background:var(--surface)}.skill-name[data-v-3d042ae8]{font-weight:600}.skill-slug[data-v-3d042ae8]{font-size:11px;color:var(--muted)}.badge[data-v-3d042ae8]{font-size:11px;padding:2px 8px;border-radius:999px}.badge-pending[data-v-3d042ae8]{background:#ffad3329;color:#f5a623}.badge-approved[data-v-3d042ae8]{background:#2fd46a29;color:#2fd46a}.badge-rejected[data-v-3d042ae8]{background:#e5484d24;color:#e5484d}.badge-offline[data-v-3d042ae8]{background:#8c8ca029;color:#8c8ca0}.badge.lv-none[data-v-3d042ae8]{background:#8c8ca024;color:#8c8ca0}.badge.lv-personal[data-v-3d042ae8]{background:#2f95ff24;color:#2f95ff}.badge.lv-enterprise[data-v-3d042ae8]{background:#be78ff29;color:#be78ff}button[data-v-3d042ae8]{padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;font-size:13px;margin-right:6px}button.primary[data-v-3d042ae8]{background:var(--primary);border-color:var(--primary);color:#fff}button.ok[data-v-3d042ae8]{color:#2fd46a;border-color:#2fd46a66}button.danger[data-v-3d042ae8]{color:#e5484d;border-color:#e5484d66}.pager[data-v-3d042ae8]{display:flex;align-items:center;gap:14px;margin-top:16px;font-size:13px;color:var(--muted)}.rte[data-v-f3e4b805]{display:flex;flex-direction:column;border:1px solid #d9dee7;border-radius:10px;overflow:hidden;background:#fff}.rte.disabled[data-v-f3e4b805]{opacity:.6}.rte-toolbar[data-v-f3e4b805]{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;background:#f5f6f8;border-bottom:1px solid #e3e6eb}.rte-toolbar button[data-v-f3e4b805]{min-width:30px;height:28px;padding:0 8px;border:none;border-radius:6px;background:transparent;color:#374151;font-size:13px;cursor:pointer;line-height:1}.rte-toolbar button[data-v-f3e4b805]:hover{background:#e6e9ef}.rte-toolbar button[data-v-f3e4b805]:disabled{cursor:not-allowed;opacity:.4}.rte-sep[data-v-f3e4b805]{width:1px;height:16px;background:#d9dee7;margin:0 6px}.rte-body[data-v-f3e4b805]{min-height:140px;max-height:420px;overflow-y:auto;padding:10px 12px;font-size:14px;line-height:1.7;color:#1f2937;outline:none}.rte-body[data-v-f3e4b805]:empty:before{content:attr(data-placeholder);color:#9ca3af;pointer-events:none}.rte-body[data-v-f3e4b805] h3{margin:8px 0 6px;font-size:16px}.rte-body[data-v-f3e4b805] ul,.rte-body[data-v-f3e4b805] ol{margin:4px 0;padding-left:22px}.rte-body[data-v-f3e4b805] a{color:#2f6bff}.page-head[data-v-a7253eb0]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:10px}h2[data-v-a7253eb0]{margin:0;font-size:18px}.filters[data-v-a7253eb0]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}select[data-v-a7253eb0],input[data-v-a7253eb0],textarea[data-v-a7253eb0]{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;font-family:inherit}textarea[data-v-a7253eb0]{resize:vertical}.q-input[data-v-a7253eb0]{width:180px}.muted[data-v-a7253eb0]{color:var(--muted)}.center[data-v-a7253eb0]{text-align:center}.err[data-v-a7253eb0]{color:#e5484d;font-size:13px;margin-bottom:10px}.bulk-result[data-v-a7253eb0]{color:#2fd46a;font-size:13px;margin-top:8px;word-break:break-all}.bulk-result.err[data-v-a7253eb0]{color:#e5484d}.badge[data-v-a7253eb0]{font-size:11px;padding:2px 8px;border-radius:999px}.badge-approved[data-v-a7253eb0]{background:#2fd46a29;color:#2fd46a}.badge-rejected[data-v-a7253eb0]{background:#e5484d24;color:#e5484d}.badge-pending[data-v-a7253eb0]{background:#ffad3329;color:#f5a623}.badge.lv-none[data-v-a7253eb0]{background:#8c8ca024;color:#8c8ca0}.badge.lv-personal[data-v-a7253eb0]{background:#2f95ff24;color:#2f95ff}.badge.lv-enterprise[data-v-a7253eb0]{background:#be78ff29;color:#be78ff}button[data-v-a7253eb0]{padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;font-size:13px;margin-right:6px}button.primary[data-v-a7253eb0]{background:#2f95ff;color:#fff;border-color:#2f95ff}button.ok[data-v-a7253eb0]{color:#2fd46a;border-color:#2fd46a66}button.danger[data-v-a7253eb0]{color:#e5484d;border-color:#e5484d66}.pager[data-v-a7253eb0]{display:flex;align-items:center;gap:14px;margin-top:16px;font-size:13px;color:var(--muted)}.modal-mask[data-v-a7253eb0]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#080c148c;padding:24px}.modal[data-v-a7253eb0]{width:min(640px,94vw);max-height:88vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px}.modal.small-modal[data-v-a7253eb0]{width:min(420px,94vw)}.detail-grid[data-v-a7253eb0]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.detail-grid div[data-v-a7253eb0]{display:flex;flex-direction:column;gap:3px}.detail-grid label[data-v-a7253eb0]{font-size:11px;color:var(--muted)}.detail-title[data-v-a7253eb0]{margin:16px 0 8px;font-size:14px}.verify-item[data-v-a7253eb0],.lic-item[data-v-a7253eb0]{display:flex;align-items:center;gap:10px;font-size:12px;padding:6px 0;border-bottom:1px solid var(--border)}.form[data-v-a7253eb0]{display:flex;flex-direction:column;gap:10px;margin:12px 0}.form label[data-v-a7253eb0]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.field-col[data-v-a7253eb0]{display:flex;flex-direction:column;gap:4px}.field-label[data-v-a7253eb0]{font-size:12px;color:var(--muted)}.feature-checks[data-v-a7253eb0]{display:flex;gap:14px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.feature-check[data-v-a7253eb0]{flex-direction:row!important;align-items:center;gap:6px!important;font-size:13px!important;color:var(--text)!important;cursor:pointer}.feature-check input[data-v-a7253eb0]{width:auto;margin:0;cursor:pointer}.modal-actions[data-v-a7253eb0]{display:flex;justify-content:flex-end;margin-top:16px}.layout[data-v-144c1bda]{display:flex;min-height:100vh}.side[data-v-144c1bda]{width:220px;padding:20px 14px;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;gap:18px}.brand-title[data-v-144c1bda]{font-size:20px;font-weight:700;letter-spacing:-.02em}.brand-sub[data-v-144c1bda]{font-size:12px;color:var(--muted);margin-top:2px}.side nav[data-v-144c1bda]{display:flex;flex-direction:column;gap:6px}.side nav button[data-v-144c1bda]{text-align:left;border:none;background:transparent;padding:10px 12px;border-radius:10px;font-size:14px;color:var(--muted)}.side nav button.active[data-v-144c1bda],.side nav button[data-v-144c1bda]:hover{background:var(--surface-2);color:var(--text)}.side nav button.active[data-v-144c1bda]{color:var(--primary)}.side-footer[data-v-144c1bda]{margin-top:auto}.side-footer button[data-v-144c1bda]{width:100%;color:var(--muted)}.content[data-v-144c1bda]{flex:1;padding:26px;overflow:auto}.login-wrap[data-v-144c1bda]{min-height:100vh;display:flex;align-items:center;justify-content:center}:root{--bg: #0d1117;--surface: #161b22;--surface-2: #1c2333;--border: #2d3545;--text: #e6edf3;--muted: #8b949e;--primary: #2f95ff;--danger: #ff453a;--ok: #34c759}*{box-sizing:border-box}body{margin:0;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px}#app{min-height:100vh}button{font-family:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:7px 14px;border-radius:8px;font-size:13px;transition:filter .15s}button:hover{filter:brightness(1.15)}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}input,select{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;font-size:13px;outline:none}input:focus,select:focus{border-color:var(--primary)}table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:12px;overflow:hidden}th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}th{background:var(--surface-2);color:var(--muted);font-weight:600}tr:hover td{background:#2f95ff0a}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-ACTIVE{background:#34c75926;color:var(--ok)}.badge-REVOKED{background:#ff453a26;color:var(--danger)}.badge-EXPIRED{background:#8b949e2e;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;width:min(560px,92vw);max-height:84vh;overflow:auto}.code-line{font-family:Consolas,monospace;font-size:13px;background:var(--surface-2);border-radius:6px;padding:4px 8px;margin:3px 6px 3px 0;display:inline-block}
