.auth-page[data-v-8f0a39b8]{box-sizing:border-box;background:radial-gradient(circle at 0 0,#e8f1ff 0%,#0000 35%),radial-gradient(circle at 100% 100%,#eef7f2 0%,#0000 35%),linear-gradient(135deg,#f6f8fb 0%,#eef2f7 100%);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.auth-card[data-v-8f0a39b8]{box-sizing:border-box;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff0;border:1px solid #dce3ebe6;border-radius:20px;width:100%;max-width:460px;padding:34px 30px 28px;box-shadow:0 18px 45px #1f2d3d1f}.auth-header[data-v-8f0a39b8]{text-align:center;margin-bottom:26px}.auth-header h2[data-v-8f0a39b8]{color:#1f2d3d;letter-spacing:.5px;margin:0 0 8px;font-size:28px;font-weight:700}.auth-header p[data-v-8f0a39b8]{color:#6b7a8c;margin:0;font-size:14px}.auth-form[data-v-8f0a39b8]{flex-direction:column;gap:18px;display:flex}.form-row[data-v-8f0a39b8]{flex-direction:column;gap:8px;display:flex}.form-row label[data-v-8f0a39b8]{color:#334155;font-size:14px;font-weight:600}.form-row input[data-v-8f0a39b8]{color:#1f2937;box-sizing:border-box;background:#f9fbfd;border:1px solid #d7dee7;border-radius:12px;outline:none;width:100%;height:46px;padding:0 14px;font-size:15px;transition:all .2s}.form-row input[data-v-8f0a39b8]::placeholder{color:#9aa7b6}.form-row input[data-v-8f0a39b8]:focus{background:#fff;border-color:#409eff;box-shadow:0 0 0 4px #409eff1f}.captcha-row[data-v-8f0a39b8]{align-items:center;gap:10px;display:flex}.captcha-row input[data-v-8f0a39b8]{flex:1}.captcha-img[data-v-8f0a39b8]{cursor:pointer;object-fit:cover;-webkit-user-select:none;user-select:none;background:#f5f7fa;border:1px solid #d7dee7;border-radius:10px;width:120px;height:42px}.captcha-img[data-v-8f0a39b8]:hover{border-color:#409eff;box-shadow:0 0 0 3px #409eff1a}.captcha-refresh-btn[data-v-8f0a39b8]{color:#2f80ed;cursor:pointer;background:#f9fbfd;border:1px solid #d7dee7;border-radius:10px;width:120px;height:42px;font-size:14px}.captcha-refresh-btn[data-v-8f0a39b8]:hover{background:#fff;border-color:#409eff}.submit-btn[data-v-8f0a39b8]{color:#fff;letter-spacing:.5px;cursor:pointer;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none;border-radius:12px;height:46px;margin-top:6px;font-size:16px;font-weight:600;transition:transform .15s,box-shadow .2s,opacity .2s;box-shadow:0 10px 20px #409eff40}.submit-btn[data-v-8f0a39b8]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 26px #409eff4d}.submit-btn[data-v-8f0a39b8]:active:not(:disabled){transform:translateY(0)}.submit-btn[data-v-8f0a39b8]:disabled{cursor:not-allowed;opacity:.7;box-shadow:none}.msg[data-v-8f0a39b8]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1;border-radius:10px;margin:4px 0 0;padding:10px 12px;font-size:14px;line-height:1.5}.auth-footer[data-v-8f0a39b8]{text-align:center;color:#64748b;margin-top:22px;font-size:14px}.register-link[data-v-8f0a39b8]{color:#2f80ed;margin-left:6px;font-weight:600;text-decoration:none;transition:color .2s}.register-link[data-v-8f0a39b8]:hover{color:#1366d6;text-decoration:underline}@media (width<=480px){.auth-card[data-v-8f0a39b8]{border-radius:16px;padding:26px 20px 22px}.auth-header h2[data-v-8f0a39b8]{font-size:24px}.form-row input[data-v-8f0a39b8],.submit-btn[data-v-8f0a39b8]{height:44px}.captcha-img[data-v-8f0a39b8],.captcha-refresh-btn[data-v-8f0a39b8]{width:110px;height:40px}}.auth-page[data-v-1927ce59]{box-sizing:border-box;background:radial-gradient(circle at 0 0,#e8f1ff 0%,#0000 35%),radial-gradient(circle at 100% 100%,#eef7f2 0%,#0000 35%),linear-gradient(135deg,#f6f8fb 0%,#eef2f7 100%);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.auth-card[data-v-1927ce59]{box-sizing:border-box;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff0;border:1px solid #dce3ebe6;border-radius:20px;width:100%;max-width:460px;padding:34px 30px 28px;box-shadow:0 18px 45px #1f2d3d1f}.auth-header[data-v-1927ce59]{text-align:center;margin-bottom:26px}.auth-header h2[data-v-1927ce59]{color:#1f2d3d;margin:0 0 8px;font-size:28px;font-weight:700}.auth-header p[data-v-1927ce59]{color:#6b7a8c;margin:0;font-size:14px}.required-star[data-v-1927ce59]{color:#e74c3c;font-weight:700}.auth-form[data-v-1927ce59]{flex-direction:column;gap:18px;display:flex}.form-row[data-v-1927ce59]{flex-direction:column;gap:8px;display:flex}.form-row label[data-v-1927ce59]{color:#334155;font-size:14px;font-weight:600}.form-row input[data-v-1927ce59]{color:#1f2937;box-sizing:border-box;background:#f9fbfd;border:1px solid #d7dee7;border-radius:12px;outline:none;width:100%;height:46px;padding:0 14px;font-size:15px}.form-row input[data-v-1927ce59]:focus{background:#fff;border-color:#409eff;box-shadow:0 0 0 4px #409eff1f}.captcha-row[data-v-1927ce59]{align-items:center;gap:10px;display:flex}.captcha-row input[data-v-1927ce59]{flex:1}.captcha-img[data-v-1927ce59]{cursor:pointer;object-fit:cover;-webkit-user-select:none;user-select:none;background:#f5f7fa;border:1px solid #d7dee7;border-radius:10px;width:120px;height:42px}.captcha-refresh-btn[data-v-1927ce59]{color:#2f80ed;cursor:pointer;background:#f9fbfd;border:1px solid #d7dee7;border-radius:10px;width:120px;height:42px;font-size:14px}.submit-btn[data-v-1927ce59]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none;border-radius:12px;height:48px;margin-top:4px;font-size:16px;font-weight:600}.submit-btn[data-v-1927ce59]:disabled{cursor:not-allowed;opacity:.7}.msg[data-v-1927ce59]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1;border-radius:10px;margin:0;padding:12px 14px;font-size:14px;line-height:1.6}.msg.success[data-v-1927ce59]{color:#1f8f55;background:#edf9f1;border-color:#bfe7cc}.auth-footer[data-v-1927ce59]{text-align:center;color:#64748b;margin-top:22px;font-size:14px}.register-link[data-v-1927ce59]{color:#2f80ed;margin-left:6px;font-weight:600;text-decoration:none}.page[data-v-f88b7374]{max-width:1400px;margin:30px auto;font-family:Arial,sans-serif}.top-row[data-v-f88b7374]{justify-content:space-between;align-items:center;display:flex}.panel[data-v-f88b7374]{border:1px solid #ddd;border-radius:8px;margin-top:24px;padding:16px}.toolbar[data-v-f88b7374]{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.toolbar input[data-v-f88b7374],.toolbar select[data-v-f88b7374]{border:1px solid #ccc;border-radius:4px;height:32px;padding:4px 8px}.toolbar button[data-v-f88b7374]{color:#fff;cursor:pointer;background-color:#1976d2;border:none;border-radius:4px;height:32px;padding:0 12px}.toolbar button[data-v-f88b7374]:hover{background-color:#1565c0}.table-wrapper[data-v-f88b7374]{overflow-x:auto}.data-table[data-v-f88b7374]{border-collapse:collapse;width:100%;min-width:900px}.data-table th[data-v-f88b7374],.data-table td[data-v-f88b7374]{text-align:center;white-space:nowrap;text-overflow:ellipsis;border:1px solid #ddd;padding:8px;font-size:14px;overflow:hidden}.data-table td button[data-v-f88b7374]{color:#fff;cursor:pointer;background:#f44336;border:none;border-radius:4px;padding:4px 8px}.data-table td button[data-v-f88b7374]:disabled{cursor:not-allowed;background-color:#ccc}.pager[data-v-f88b7374]{align-items:center;gap:10px;margin-top:12px;display:flex}.pager button[data-v-f88b7374]{cursor:pointer;background-color:#fff;border:1px solid #ccc;border-radius:4px;padding:4px 10px}.pager button[data-v-f88b7374]:disabled{cursor:not-allowed;background-color:#f5f5f5}.page[data-v-82c6444d]{max-width:1600px;margin:30px auto;font-family:Arial,sans-serif}.top-row[data-v-82c6444d]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel[data-v-82c6444d]{background:#fff;border:1px solid #ddd;border-radius:8px;margin-top:16px;padding:16px}.toolbar[data-v-82c6444d]{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.table-wrapper[data-v-82c6444d]{overflow-x:auto}.data-table[data-v-82c6444d]{border-collapse:collapse;width:100%;min-width:1200px}.data-table th[data-v-82c6444d],.data-table td[data-v-82c6444d]{text-align:center;white-space:nowrap;text-overflow:ellipsis;border:1px solid #ddd;max-width:180px;padding:8px 10px;font-size:14px;overflow:hidden}.data-table td.status.submitted[data-v-82c6444d]{color:#1976d2;font-weight:700}.data-table td.status.reviewing[data-v-82c6444d]{color:#ff9800;font-weight:700}.data-table td.status.accepted[data-v-82c6444d]{color:#4caf50;font-weight:700}.data-table td.status.rework[data-v-82c6444d]{color:#f44336;font-weight:700}.data-table td.status.rejected[data-v-82c6444d]{color:#9e9e9e;font-weight:700}.data-table td button[data-v-82c6444d]{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;padding:4px 8px}.data-table td button[data-v-82c6444d]:hover{background:#1565c0}.pager[data-v-82c6444d]{align-items:center;gap:10px;margin-top:16px;display:flex}.frames-container[data-v-82c6444d]{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;max-height:70vh;padding-bottom:12px;display:grid;overflow:auto}.frame-card[data-v-82c6444d]{background:#fff;border:1px solid #ddd;border-radius:6px;flex-direction:column;align-items:center;padding:8px;display:flex}.frame-title[data-v-82c6444d]{text-align:center;margin-bottom:4px;font-weight:700}.frame-img[data-v-82c6444d]{object-fit:contain;width:100%;height:160px;margin-bottom:6px}.frame-attrs[data-v-82c6444d]{flex-direction:column;gap:4px;width:100%;font-size:13px;display:flex}.attr-title[data-v-82c6444d]{color:#333;margin-bottom:6px;font-size:14px;font-weight:700}.frame-attrs.grid-cols[data-v-82c6444d]{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px 12px;margin-bottom:4px;display:grid}.track-attrs-inline[data-v-82c6444d]{border-top:1px dashed #ccc;margin-top:8px;padding-top:4px}.track-attrs-inline .attr-row span[data-v-82c6444d]{color:#555;font-size:12px;font-weight:400}.track-attrs-grid[data-v-82c6444d]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:12px;display:grid}.actions[data-v-82c6444d]{gap:10px;margin-top:12px;display:flex}.actions button[data-v-82c6444d]:first-child{color:#fff;background:#4caf50}.actions button[data-v-82c6444d]:nth-child(2){color:#fff;background:#ff9800}.actions button[data-v-82c6444d]:nth-child(3){color:#fff;background:#f44336}.actions button[data-v-82c6444d]:disabled{opacity:.5;cursor:not-allowed}textarea[data-v-82c6444d]{border:1px solid #ccc;border-radius:4px;width:100%;padding:6px;font-size:14px}.batch-message[data-v-82c6444d]{white-space:pre-line;background:#f1f8e9;border-left:4px solid #8bc34a;border-radius:4px;margin-top:12px;padding:12px;font-size:14px;line-height:1.5}.modal-mask[data-v-82c6444d]{z-index:1000;background:#0009;justify-content:center;align-items:flex-start;width:100%;height:100%;padding-top:20px;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.modal-container[data-v-82c6444d]{background:#fff;border-radius:6px;width:90%;max-width:1000px;max-height:90vh;padding:20px;position:relative;overflow-y:auto}.modal-close[data-v-82c6444d]{cursor:pointer;background:0 0;border:none;font-size:20px;position:absolute;top:12px;right:12px}.modal-header[data-v-82c6444d]{border-bottom:1px solid #eee;margin-bottom:12px;padding-bottom:8px}.task-info span[data-v-82c6444d]{color:#555;margin-right:16px;font-size:14px}.modal-tabs[data-v-82c6444d]{border-bottom:1px solid #eee;gap:12px;margin-bottom:12px;display:flex}.modal-tabs button[data-v-82c6444d]{cursor:pointer;background:0 0;border:none;padding:6px 12px;font-weight:700}.modal-tabs button.active[data-v-82c6444d]{color:#409eff;border-bottom:2px solid #409eff}.modal-footer[data-v-82c6444d]{background:#fff;border-top:1px solid #eee;flex-direction:column;gap:8px;padding-top:8px;padding-bottom:8px;display:flex;position:sticky;bottom:0}.modal-footer textarea[data-v-82c6444d]{resize:none;border:1px solid #ccc;border-radius:4px;width:100%;height:80px;padding:6px}.modal-footer .actions[data-v-82c6444d]{gap:10px;display:flex}.modal-footer .actions button[data-v-82c6444d]{cursor:pointer;border:none;border-radius:4px;padding:6px 12px}.modal-footer .actions button[data-v-82c6444d]:first-child{color:#fff;background:#4caf50}.modal-footer .actions button[data-v-82c6444d]:nth-child(2){color:#fff;background:#ff9800}.modal-footer .actions button[data-v-82c6444d]:nth-child(3){color:#fff;background:#f44336}.modal-footer .actions button[data-v-82c6444d]:disabled{opacity:.5;cursor:not-allowed}.attr-card[data-v-82c6444d]{background:#fafafa;border:1px solid #eee;border-radius:4px;padding:6px;font-size:13px;line-height:1.4}.page-shell[data-v-be8d3b53]{color:#1f2937;background:radial-gradient(circle at 0 0,#409eff29 0%,#0000 34%),radial-gradient(circle at 100% 100%,#36b37e1f 0%,#0000 32%),linear-gradient(135deg,#f7f9fc 0%,#eef2f7 100%);min-height:100vh}.top-bar[data-v-be8d3b53]{box-sizing:border-box;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#ffffffeb;border-bottom:1px solid #e2e8f0f2;justify-content:space-between;align-items:center;height:64px;padding:0 18px;display:flex;position:sticky;top:0;box-shadow:0 6px 18px #1f2d3d0f}.brand-area[data-v-be8d3b53]{align-items:center;gap:12px;min-width:0;display:flex}.collapse-btn[data-v-be8d3b53]{color:#2f80ed;cursor:pointer;background:#fff;border:1px solid #dbe4ef;border-radius:10px;width:34px;height:34px;font-size:20px;line-height:1;box-shadow:0 4px 10px #1f2d3d0d}.collapse-btn[data-v-be8d3b53]:hover{background:#f1f7ff;border-color:#409eff}.brand-badge[data-v-be8d3b53]{color:#fff;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border-radius:13px;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:800;display:flex;box-shadow:0 8px 18px #409eff3d}.brand-text[data-v-be8d3b53]{min-width:0}.brand-area h1[data-v-be8d3b53]{color:#172033;letter-spacing:.2px;white-space:nowrap;margin:0;font-size:18px;font-weight:750}.sub-title[data-v-be8d3b53]{color:#6b7a8c;white-space:nowrap;margin:2px 0 0;font-size:12px}.top-right[data-v-be8d3b53]{align-items:center;gap:10px;display:flex}.user-card[data-v-be8d3b53]{background:#f9fbfd;border:1px solid #e5eaf0;border-radius:12px;align-items:center;gap:8px;min-width:136px;padding:6px 10px;display:flex;box-shadow:inset 0 1px #ffffffbf}.user-name[data-v-be8d3b53]{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:14px;font-weight:650;overflow:hidden}.role-tag[data-v-be8d3b53]{color:#2f80ed;white-space:nowrap;background:#eaf4ff;border-radius:999px;padding:2px 7px;font-size:12px}.ghost-btn[data-v-be8d3b53]{color:#334155;cursor:pointer;background:#fff;border:1px solid #d7dee7;border-radius:10px;height:34px;padding:0 12px}.ghost-btn[data-v-be8d3b53]:hover{color:#2f80ed;background:#f8fbff;border-color:#409eff}.main-container[data-v-be8d3b53]{box-sizing:border-box;grid-template-columns:188px minmax(0,1fr);gap:12px;padding:12px 14px 14px;transition:grid-template-columns .22s;display:grid}.page-shell.collapsed .main-container[data-v-be8d3b53]{grid-template-columns:64px minmax(0,1fr)}.side-menu[data-v-be8d3b53]{box-sizing:border-box;background:#fffffff0;border:1px solid #e5eaf0;border-radius:16px;min-height:calc(100vh - 88px);padding:12px 10px;transition:all .22s;overflow:hidden;box-shadow:0 10px 26px #1f2d3d12}.side-menu-header[data-v-be8d3b53]{color:#1f2d3d;justify-content:space-between;align-items:center;height:34px;margin-bottom:10px;padding:0 4px 0 8px;font-size:14px;font-weight:700;display:flex}.side-collapse-btn[data-v-be8d3b53]{color:#2f80ed;cursor:pointer;background:#fff;border:1px solid #dbe4ef;border-radius:9px;width:28px;height:28px}.side-collapse-btn[data-v-be8d3b53]:hover{background:#f1f7ff;border-color:#409eff}.menu-group[data-v-be8d3b53]{margin-bottom:14px}.menu-title[data-v-be8d3b53]{color:#64748b;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:space-between;align-items:center;gap:7px;width:100%;min-height:32px;margin-bottom:6px;padding:0 8px;font-size:13px;font-weight:700;transition:all .18s;display:flex}.menu-title[data-v-be8d3b53]:hover{color:#2f80ed;background:#f6f9fd}.menu-title-left[data-v-be8d3b53]{align-items:center;gap:7px;min-width:0;display:flex}.menu-title-text[data-v-be8d3b53]{text-overflow:ellipsis;overflow:hidden}.menu-title-dot[data-v-be8d3b53]{background:#9ecbff;border-radius:999px;flex:none;width:6px;height:6px}.menu-arrow[data-v-be8d3b53]{color:#94a3b8;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:transform .18s,color .18s;display:inline-flex;transform:rotate(0)}.menu-arrow.open[data-v-be8d3b53]{color:#2f80ed;transform:rotate(90deg)}.submenu-list[data-v-be8d3b53]{overflow:hidden}.submenu-enter-active[data-v-be8d3b53],.submenu-leave-active[data-v-be8d3b53]{transition:all .18s}.submenu-enter-from[data-v-be8d3b53],.submenu-leave-to[data-v-be8d3b53]{opacity:0;transform:translateY(-4px)}.submenu-enter-to[data-v-be8d3b53],.submenu-leave-from[data-v-be8d3b53]{opacity:1;transform:translateY(0)}.page-shell.collapsed .menu-title[data-v-be8d3b53]{justify-content:center;padding:0}.page-shell.collapsed .menu-title-left[data-v-be8d3b53]{justify-content:center}.page-shell.collapsed .menu-title-dot[data-v-be8d3b53]{width:7px;height:7px}.menu-item[data-v-be8d3b53]{color:#475569;white-space:nowrap;border-radius:11px;align-items:center;gap:9px;min-height:38px;margin-bottom:6px;padding:0 10px;font-size:14px;text-decoration:none;transition:all .18s;display:flex}.menu-icon[data-v-be8d3b53]{text-align:center;width:20px;min-width:20px;font-size:15px}.menu-text[data-v-be8d3b53]{text-overflow:ellipsis;overflow:hidden}.menu-item[data-v-be8d3b53]:hover{color:#2f80ed;background:#f1f7ff}.menu-item.active[data-v-be8d3b53]{color:#fff;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);box-shadow:0 8px 18px #409eff38}.page-shell.collapsed .menu-item[data-v-be8d3b53]{justify-content:center;padding:0}.content-area[data-v-be8d3b53]{box-sizing:border-box;background:#fffffff5;border:1px solid #e5eaf0;border-radius:16px;min-height:calc(100vh - 88px);padding:18px;overflow:auto;box-shadow:0 10px 26px #1f2d3d12}.nested-menu-block[data-v-be8d3b53]{margin-bottom:6px}.nested-menu-title[data-v-be8d3b53]{background:0 0;border:none;width:100%;font-family:inherit}.nested-menu-title[data-v-be8d3b53]:hover{color:#2f80ed;background:#f1f7ff}.nested-menu-arrow[data-v-be8d3b53]{color:#94a3b8;margin-left:auto;font-size:18px;line-height:1;transition:transform .18s,color .18s;transform:rotate(0)}.nested-menu-arrow.open[data-v-be8d3b53]{color:#2f80ed;transform:rotate(90deg)}.nested-submenu-list[data-v-be8d3b53]{border-left:1px dashed #dbe4ef;margin-left:18px;padding-left:8px}.nested-menu-item[data-v-be8d3b53]{min-height:34px;font-size:13px}@media (width<=900px){.top-bar[data-v-be8d3b53]{flex-direction:column;align-items:flex-start;gap:10px;height:auto;padding:12px}.brand-area h1[data-v-be8d3b53]{font-size:16px}.sub-title[data-v-be8d3b53]{display:none}.top-right[data-v-be8d3b53]{justify-content:space-between;width:100%}.main-container[data-v-be8d3b53],.page-shell.collapsed .main-container[data-v-be8d3b53]{grid-template-columns:1fr;padding:10px}.side-menu[data-v-be8d3b53]{min-height:auto}.side-menu-header[data-v-be8d3b53]{display:none}.page-shell.collapsed .menu-title[data-v-be8d3b53]{justify-content:space-between;padding:0 8px}.page-shell.collapsed .menu-title-left[data-v-be8d3b53]{justify-content:flex-start}.page-shell.collapsed .menu-title-text[data-v-be8d3b53],.page-shell.collapsed .menu-text[data-v-be8d3b53]{display:inline}.page-shell.collapsed .menu-arrow[data-v-be8d3b53]{display:inline-flex}.page-shell.collapsed .menu-item[data-v-be8d3b53]{justify-content:flex-start;padding:0 10px}}@media (width<=520px){.brand-badge[data-v-be8d3b53]{display:none}.user-card[data-v-be8d3b53]{min-width:0;max-width:210px}.content-area[data-v-be8d3b53]{padding:12px}}.required-star[data-v-1aca4ee2]{color:#e74c3c;margin-left:2px;font-weight:700}.photo-upload-box[data-v-1aca4ee2]{align-items:flex-start;gap:18px;display:flex}.photo-preview[data-v-1aca4ee2]{background:#f8fafc;border:1px solid #e5eaf0;border-radius:12px;justify-content:center;align-items:center;width:118px;min-width:118px;height:158px;display:flex;overflow:hidden}.photo-empty[data-v-1aca4ee2]{color:#94a3b8;font-size:13px}.photo-actions[data-v-1aca4ee2]{flex-direction:column;flex:1;gap:10px;display:flex}.photo-actions input[type=file][data-v-1aca4ee2]{background:#f8fbff;border:1px dashed #cfd8e3;border-radius:10px;padding:10px}.file-name[data-v-1aca4ee2]{color:#334155;margin:0;font-size:14px}.hint[data-v-1aca4ee2]{color:#64748b;margin:0;font-size:13px;line-height:1.6}@media (width<=760px){.photo-upload-box[data-v-1aca4ee2]{flex-direction:column}.photo-preview[data-v-1aca4ee2]{width:110px;height:148px}}.profile-page[data-v-1aca4ee2]{color:#1f2937}.page-header[data-v-1aca4ee2]{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-header h2[data-v-1aca4ee2]{color:#1f2d3d;margin:0 0 6px}.page-header p[data-v-1aca4ee2]{color:#64748b;margin:0;font-size:14px}.section-card[data-v-1aca4ee2]{background:#fff;border:1px solid #e5eaf0;border-radius:16px;margin-bottom:18px;padding:18px;box-shadow:0 8px 20px #1f2d3d0d}.section-title[data-v-1aca4ee2]{margin-bottom:16px}.section-title h3[data-v-1aca4ee2]{color:#1f2937;margin:0 0 6px;font-size:17px}.section-title span[data-v-1aca4ee2]{color:#64748b;font-size:13px}.profile-form[data-v-1aca4ee2]{margin-top:10px}.form-grid[data-v-1aca4ee2]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;display:grid}.form-row[data-v-1aca4ee2]{flex-direction:column;gap:7px;display:flex}.form-row.full[data-v-1aca4ee2]{grid-column:1/-1}.form-row label[data-v-1aca4ee2]{color:#334155;font-size:14px;font-weight:600}.form-row input[data-v-1aca4ee2],.form-row select[data-v-1aca4ee2],.form-row textarea[data-v-1aca4ee2]{color:#1f2937;box-sizing:border-box;background:#f9fbfd;border:1px solid #d7dee7;border-radius:10px;outline:none;width:100%;font-family:inherit;font-size:14px;transition:all .18s}.form-row input[data-v-1aca4ee2],.form-row select[data-v-1aca4ee2]{height:42px;padding:0 12px}.form-row textarea[data-v-1aca4ee2]{resize:vertical;padding:11px 12px;line-height:1.6}.form-row input[data-v-1aca4ee2]:focus,.form-row select[data-v-1aca4ee2]:focus,.form-row textarea[data-v-1aca4ee2]:focus{background:#fff;border-color:#409eff;box-shadow:0 0 0 4px #409eff1a}.form-row input[data-v-1aca4ee2]:disabled{color:#64748b;cursor:not-allowed;background:#eef2f7}.field-hint[data-v-1aca4ee2]{text-align:right;color:#94a3b8;font-size:12px}.photo-info[data-v-1aca4ee2]{align-items:flex-start;gap:18px;display:flex}.photo-preview[data-v-1aca4ee2]{background:#f8fafc;border:1px solid #e5eaf0;border-radius:12px;width:118px;min-width:118px;height:158px;overflow:hidden}.photo-preview img[data-v-1aca4ee2]{object-fit:cover;width:100%;height:100%}.photo-meta[data-v-1aca4ee2]{flex:1;gap:10px;display:grid}.info-line[data-v-1aca4ee2]{background:#f8fafc;border:1px solid #e5eaf0;border-radius:12px;flex-direction:column;gap:6px;padding:12px;display:flex}.info-line span[data-v-1aca4ee2]{color:#64748b;font-size:13px}.info-line strong[data-v-1aca4ee2]{color:#1f2937;font-size:14px}.primary-btn[data-v-1aca4ee2]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none;border-radius:10px;padding:9px 15px;font-size:14px;font-weight:600}.primary-btn[data-v-1aca4ee2]:hover:not(:disabled){box-shadow:0 8px 18px #409eff38}.primary-btn[data-v-1aca4ee2]:disabled{opacity:.7;cursor:not-allowed}.bottom-actions[data-v-1aca4ee2]{justify-content:flex-end;margin-top:20px;display:flex}.msg[data-v-1aca4ee2]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1;border-radius:10px;margin:0 0 14px;padding:11px 13px;font-size:14px;line-height:1.6}.msg.success[data-v-1aca4ee2]{color:#1f8f55;background:#edf9f1;border-color:#bfe7cc}.loading[data-v-1aca4ee2]{text-align:center;color:#64748b;padding:24px}@media (width<=760px){.page-header[data-v-1aca4ee2]{flex-direction:column;align-items:flex-start}.form-grid[data-v-1aca4ee2]{grid-template-columns:1fr}.photo-info[data-v-1aca4ee2]{flex-direction:column}.photo-preview[data-v-1aca4ee2]{width:110px;height:148px}.bottom-actions[data-v-1aca4ee2]{justify-content:stretch}.bottom-actions .primary-btn[data-v-1aca4ee2]{width:100%}}.link-btn[data-v-209d66c5]{color:#2f80ed;cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-size:14px;text-decoration:underline}.link-btn[data-v-209d66c5]:hover{color:#1366d6}.enroll-page[data-v-209d66c5]{color:#1f2937}.page-header[data-v-209d66c5]{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-header h2[data-v-209d66c5]{margin:0 0 6px}.page-header p[data-v-209d66c5]{color:#64748b;margin:0;font-size:14px}button[data-v-209d66c5]{cursor:pointer;background:#fff;border:1px solid #d7dee7;border-radius:10px;padding:8px}button[data-v-209d66c5]:disabled{cursor:not-allowed;opacity:.65}.primary-btn[data-v-209d66c5]{color:#fff;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none}.danger-btn[data-v-209d66c5]{color:#d93026;background:#fff2f0;border-color:#ffccc7}.msg[data-v-209d66c5]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:14px}.msg.success[data-v-209d66c5]{color:#1f8f55;background:#edf9f1;border-color:#bfe7cc}.project-list[data-v-209d66c5]{gap:14px;display:grid}.project-card[data-v-209d66c5]{background:#fff;border:1px solid #e5eaf0;border-radius:16px;padding:18px;box-shadow:0 8px 20px #1f2d3d0f}.project-main[data-v-209d66c5]{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.project-main h3[data-v-209d66c5]{margin:0;font-size:18px}.desc[data-v-209d66c5]{color:#64748b;margin:8px 0 0;font-size:14px}.status-tag[data-v-209d66c5]{color:#475569;white-space:nowrap;background:#eef2f7;border-radius:999px;padding:4px 9px;font-size:12px;display:inline-block}.status-tag.open[data-v-209d66c5]{color:#168a4a;background:#e8f7ef}.status-tag.ended[data-v-209d66c5]{color:#64748b;background:#f1f5f9}.status-tag.not_started[data-v-209d66c5]{color:#b26a00;background:#fff7e6}.status-tag.disabled[data-v-209d66c5]{color:#c0392b;background:#fff2f0}.project-info[data-v-209d66c5]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.project-info div[data-v-209d66c5]{background:#f8fafc;border-radius:12px;padding:12px}.project-info span[data-v-209d66c5]{color:#64748b;margin-bottom:6px;font-size:12px;display:block}.project-info strong[data-v-209d66c5]{color:#1f2937;font-size:14px}.actions[data-v-209d66c5]{justify-content:flex-end;display:flex}.loading[data-v-209d66c5],.empty[data-v-209d66c5]{text-align:center;color:#64748b;padding:24px}@media (width<=860px){.project-info[data-v-209d66c5]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.page-header[data-v-209d66c5],.project-main[data-v-209d66c5]{flex-direction:column;align-items:flex-start}.project-info[data-v-209d66c5]{grid-template-columns:1fr}.actions[data-v-209d66c5]{justify-content:flex-start}}body{color:#1f2937;background:radial-gradient(circle at 0 0,#e8f1ff 0%,#0000 35%),radial-gradient(circle at 100% 100%,#eef7f2 0%,#0000 35%),linear-gradient(135deg,#f6f8fb 0%,#eef2f7 100%);margin:0;font-family:PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif}[data-v-7e7520ad]{box-sizing:border-box}.modal-content[data-v-7e7520ad]{background:#fff;border-radius:20px;width:500px;max-width:90%;padding:24px;box-shadow:0 20px 35px #0003}.form-group[data-v-7e7520ad]{margin-bottom:15px}.form-group label[data-v-7e7520ad]{margin-bottom:5px;font-weight:600;display:block}.form-group input[data-v-7e7520ad],.form-group select[data-v-7e7520ad]{color:#1f2937;background:#f9fbfd;border:1px solid #ccc;border-radius:8px;width:100%;padding:8px 12px;font-size:14px}.form-group select[data-v-7e7520ad]:focus{background:#fff;border-color:#409eff;box-shadow:0 0 0 4px #409eff1f}.modal-buttons[data-v-7e7520ad]{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.page-shell[data-v-7e7520ad]{min-height:100vh;padding:24px}.top-bar[data-v-7e7520ad]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffeb;border:1px solid #dce3ebe6;border-radius:20px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:18px 22px;display:flex;box-shadow:0 10px 30px #1f2d3d14}.brand-area[data-v-7e7520ad]{align-items:center;gap:14px;display:flex}.brand-badge[data-v-7e7520ad]{color:#fff;letter-spacing:1px;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;font-weight:700;display:flex;box-shadow:0 10px 20px #409eff40}.top-bar h1[data-v-7e7520ad]{color:#1f2d3d;margin:0;font-size:28px}.sub-title[data-v-7e7520ad]{color:#7b8a9a;margin:4px 0 0;font-size:13px}.top-right[data-v-7e7520ad]{align-items:center;gap:12px;display:flex}.user-card[data-v-7e7520ad]{background:#f8fbff;border:1px solid #dbe7f3;border-radius:14px;flex-direction:column;min-width:120px;padding:10px 14px;display:flex}.user-label[data-v-7e7520ad]{color:#7b8a9a;font-size:12px}.user-name[data-v-7e7520ad]{color:#1f2d3d;margin-top:3px;font-size:15px;font-weight:700}.main-container[data-v-7e7520ad]{align-items:flex-start;gap:20px;display:flex}.card-panel[data-v-7e7520ad],.detail-card[data-v-7e7520ad],.state-card[data-v-7e7520ad]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff0;border:1px solid #dce3ebe6;border-radius:20px;box-shadow:0 12px 28px #1f2d3d14}.track-list[data-v-7e7520ad]{width:150px;min-width:150px;padding:16px 12px}.panel-header[data-v-7e7520ad]{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.panel-header h3[data-v-7e7520ad]{color:#1f2d3d;margin:0;font-size:16px}.panel-page-info[data-v-7e7520ad]{color:#2f80ed;white-space:nowrap;background:#eef5ff;border-radius:13px;padding:4px 10px;font-size:12px;font-weight:700}.track-ul[data-v-7e7520ad]{margin:0;padding:0;list-style:none}.track-item[data-v-7e7520ad]{cursor:pointer;background:#f7f9fc;border:1px solid #0000;border-radius:14px;margin-bottom:10px;padding:10px 10px 9px;transition:all .2s}.track-item[data-v-7e7520ad]:hover{transform:translateY(-1px);box-shadow:0 8px 18px #1f2d3d14}.track-item-top[data-v-7e7520ad]{align-items:center;gap:8px;display:flex}.track-id[data-v-7e7520ad]{font-size:14px;font-weight:700}.track-status-text[data-v-7e7520ad]{opacity:.92;margin-top:6px;font-size:12px}.status-dot[data-v-7e7520ad]{border-radius:50%;flex:0 0 10px;width:10px;height:10px}.track-item.active[data-v-7e7520ad]{outline:2px solid #409eff47}.track-item.status-pending[data-v-7e7520ad]{color:#475569;background:#f3f4f6;border-color:#e5e7eb}.track-item.status-pending .status-dot[data-v-7e7520ad]{background:#94a3b8}.track-item.status-in_progress[data-v-7e7520ad]{color:#0369a1;background:#e0f2fe;border-color:#bae6fd}.track-item.status-in_progress .status-dot[data-v-7e7520ad]{background:#0ea5e9}.track-item.status-saved[data-v-7e7520ad]{color:#3157a6;background:#eef4ff;border-color:#d7e3ff}.track-item.status-saved .status-dot[data-v-7e7520ad]{background:#4f7cff}.track-item.status-submitted[data-v-7e7520ad]{color:#15803d;background:#dcfce7;border-color:#bbf7d0}.track-item.status-submitted .status-dot[data-v-7e7520ad]{background:#22c55e}.track-item.status-approved[data-v-7e7520ad]{color:#065f46;background:#d1fae5;border-color:#a7f3d0}.track-item.status-approved .status-dot[data-v-7e7520ad]{background:#10b981}.track-item.status-returned[data-v-7e7520ad]{color:#c2410c;background:#ffedd5;border-color:#fed7aa}.track-item.status-returned .status-dot[data-v-7e7520ad]{background:#f97316}.track-item.status-rejected[data-v-7e7520ad]{color:#b91c1c;background:#fee2e2;border-color:#fecaca}.track-item.status-rejected .status-dot[data-v-7e7520ad]{background:#ef4444}.track-detail[data-v-7e7520ad]{flex:1;min-width:0}.detail-card[data-v-7e7520ad]{padding:20px}.detail-header[data-v-7e7520ad]{border-bottom:1px solid #e9eef5;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;padding-bottom:16px;display:flex}.section-kicker[data-v-7e7520ad]{color:#409eff;background:#eef5ff;border-radius:999px;margin-bottom:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.detail-header h2[data-v-7e7520ad]{color:#1f2d3d;word-break:break-all;margin:0;font-size:22px}.pagination-controls[data-v-7e7520ad]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.page-indicator[data-v-7e7520ad]{color:#4a5a6a;background:#f8fbff;border:1px solid #dbe7f3;border-radius:12px;padding:10px 14px;font-size:14px}.task-state-banner[data-v-7e7520ad]{border-radius:12px;margin-top:18px;margin-bottom:18px;padding:10px 14px;font-size:14px;font-weight:600;line-height:1.5}.task-state-banner.unsaved[data-v-7e7520ad],.task-state-banner.pending[data-v-7e7520ad],.task-state-banner.in_progress[data-v-7e7520ad]{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.task-state-banner.saved[data-v-7e7520ad]{color:#3157a6;background:#eef4ff;border:1px solid #d7e3ff}.task-state-banner.submitted[data-v-7e7520ad]{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.task-state-banner.approved[data-v-7e7520ad]{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0}.task-state-banner.rejected[data-v-7e7520ad],.task-state-banner.returned[data-v-7e7520ad]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1}.section-card[data-v-7e7520ad]{background:linear-gradient(#fff 0%,#fbfdff 100%);border:1px solid #e5edf5;border-radius:18px;margin-top:18px;overflow:hidden;box-shadow:0 8px 22px #1f2d3d0d}.section-toggle[data-v-7e7520ad]{cursor:pointer;width:100%;font:inherit;background:#f8fbff;border:none;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.section-toggle-left[data-v-7e7520ad]{align-items:center;gap:10px;display:flex}.section-title[data-v-7e7520ad]{color:#1f2d3d;font-size:17px;font-weight:700}.section-badge[data-v-7e7520ad]{color:#2f80ed;background:#eef5ff;border-radius:999px;min-width:36px;padding:4px 10px;font-size:12px;font-weight:700}.section-arrow[data-v-7e7520ad]{color:#64748b;font-size:18px}.section-body[data-v-7e7520ad]{border-top:1px solid #e9eef5;padding:18px}.frames-container[data-v-7e7520ad]{flex-wrap:wrap;gap:18px;display:flex}.frame-block[data-v-7e7520ad]{background:#fff;border:1px solid #e5edf5;border-radius:18px;align-items:flex-start;gap:18px;width:100%;padding:18px;display:flex;box-shadow:0 8px 22px #1f2d3d0d}.frame-image-panel[data-v-7e7520ad]{flex-direction:column;align-self:flex-start;align-items:center;width:190px;min-width:190px;display:flex;position:sticky;top:16px}.frame-label[data-v-7e7520ad]{color:#2f80ed;background:#eef5ff;border-radius:999px;justify-content:space-between;align-items:center;width:100%;margin-bottom:10px;padding:6px 12px;font-size:13px;font-weight:700;display:flex}.delete-frame-btn[data-v-7e7520ad]{cursor:pointer;color:#e74c3c;opacity:.7;background:0 0;border:none;min-height:auto;padding:0 4px;font-size:16px}.delete-frame-btn[data-v-7e7520ad]:hover{opacity:1;transform:none}.delete-frame-btn[data-v-7e7520ad]:disabled{opacity:.3;cursor:not-allowed}.image-wrap[data-v-7e7520ad]{background:#f7f9fc;border:1px dashed #d4dde8;border-radius:14px;justify-content:center;align-items:center;width:100%;min-height:240px;padding:10px;display:flex}.frame-img[data-v-7e7520ad]{object-fit:contain;border-radius:10px;max-width:100%;max-height:360px;display:block}.frame-attrs-panel[data-v-7e7520ad]{flex:1;min-width:0}.attrs-title[data-v-7e7520ad]{color:#1f2d3d;margin-bottom:12px;font-size:15px;font-weight:700}.attr-pair-row[data-v-7e7520ad]{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:10px;display:grid}.attr-item[data-v-7e7520ad]{grid-template-columns:78px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.attr-item label[data-v-7e7520ad],.attr-row label[data-v-7e7520ad]{color:#334155;word-break:break-word;margin:0;font-size:13px;font-weight:600;line-height:1.2}.attr-item-empty[data-v-7e7520ad]{visibility:hidden}.attr-row[data-v-7e7520ad]{grid-template-columns:78px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:10px;display:grid}.attr-controls[data-v-7e7520ad]{grid-template-columns:110px minmax(0,1fr);align-items:center;gap:8px;display:grid}.attr-controls.single[data-v-7e7520ad]{grid-template-columns:minmax(0,1fr)}select[data-v-7e7520ad]{color:#1f2937;background:#f9fbfd;border:1px solid #d7dee7;border-radius:10px;outline:none;width:100%;min-height:36px;padding:0 10px;font-size:13px;transition:all .2s}select[data-v-7e7520ad]:focus{background:#fff;border-color:#409eff;box-shadow:0 0 0 4px #409eff1f}.track-attrs-compact[data-v-7e7520ad]{display:block}.action-bar[data-v-7e7520ad]{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}button[data-v-7e7520ad]{border-radius:12px;min-height:42px;padding:0 18px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .2s,opacity .2s}button[data-v-7e7520ad]:hover:not(:disabled){transform:translateY(-1px)}button[data-v-7e7520ad]:disabled{cursor:not-allowed;opacity:.65}.primary-btn[data-v-7e7520ad]{color:#fff;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none;box-shadow:0 10px 20px #409eff3d}.success-btn[data-v-7e7520ad]{color:#fff;background:linear-gradient(135deg,#34c759 0%,#21a547 100%);border:none;box-shadow:0 10px 20px #34c7593d}.ghost-btn[data-v-7e7520ad]{color:#334155;background:#f8fbff;border:1px solid #dbe7f3}.status-box[data-v-7e7520ad]{color:#1f8f55;white-space:pre-line;background:#edf9f1;border:1px solid #bfe7cc;border-radius:12px;margin-top:16px;padding:12px 14px;font-size:14px;line-height:1.6}.status-box.error[data-v-7e7520ad],.error-card[data-v-7e7520ad]{color:#c0392b;background:#fff2f0;border-color:#ffd6d1}.state-card[data-v-7e7520ad]{padding:28px 22px}.state-text[data-v-7e7520ad]{text-align:center;font-size:16px}.camera-input[data-v-7e7520ad]{color:#1f2937;background:#f9fbfd;border:1px solid #d7dee7;border-radius:10px;outline:none;width:100%;min-height:36px;padding:0 10px;font-size:13px;transition:all .2s}.camera-input[data-v-7e7520ad]:focus{background:#fff;border-color:#409eff;box-shadow:0 0 0 4px #409eff1f}@media (width<=1200px){.attr-pair-row[data-v-7e7520ad]{grid-template-columns:1fr}}@media (width<=980px){.main-container[data-v-7e7520ad]{flex-direction:column}.track-list[data-v-7e7520ad]{width:100%;min-width:0}.track-ul[data-v-7e7520ad]{flex-wrap:wrap;gap:10px;display:flex}.track-item[data-v-7e7520ad]{min-width:120px;margin-bottom:0}.detail-header[data-v-7e7520ad],.frame-block[data-v-7e7520ad]{flex-direction:column}.frame-image-panel[data-v-7e7520ad]{width:100%;min-width:0;position:static}.attr-item[data-v-7e7520ad]{grid-template-columns:88px minmax(0,1fr)}.attr-controls[data-v-7e7520ad]{grid-template-columns:1fr 1fr}.modal-overlay[data-v-7e7520ad]{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}}@media (width<=768px){.page-shell[data-v-7e7520ad]{padding:14px}.top-bar[data-v-7e7520ad]{flex-direction:column;align-items:flex-start}.top-right[data-v-7e7520ad]{justify-content:space-between;width:100%}}@media (width<=640px){.attr-item[data-v-7e7520ad],.attr-row[data-v-7e7520ad]{grid-template-columns:1fr;align-items:stretch}.attr-controls[data-v-7e7520ad]{grid-template-columns:1fr}}.page[data-v-0192751a]{max-width:760px;margin:40px auto;padding:0 16px}.cfg-form[data-v-0192751a]{flex-direction:column;gap:18px;display:flex}.section[data-v-0192751a]{background:#fff;border:1px solid #e5eaf0;border-radius:12px;flex-direction:column;gap:12px;padding:18px;display:flex}.section h3[data-v-0192751a]{color:#1f2937;margin:0 0 4px;font-size:16px}label[data-v-0192751a]{color:#334155;font-size:14px}.row[data-v-0192751a]{flex-direction:column;gap:6px;display:flex}input[type=text][data-v-0192751a],input[type=number][data-v-0192751a]{border:1px solid #d7dee7;border-radius:8px;outline:none;height:38px;padding:0 10px}input[type=text][data-v-0192751a]:focus,input[type=number][data-v-0192751a]:focus{border-color:#409eff}button[data-v-0192751a]{color:#fff;cursor:pointer;background:#409eff;border:none;border-radius:10px;height:42px;font-size:15px}button[data-v-0192751a]:disabled{opacity:.7;cursor:not-allowed}.msg[data-v-0192751a]{color:#334155;background:#f8fafc;border-radius:8px;margin:0;padding:10px 12px}.page[data-v-9fb671d7]{max-width:1400px;margin:30px auto}.toolbar[data-v-9fb671d7]{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.user-table[data-v-9fb671d7]{border-collapse:collapse;width:100%}.user-table th[data-v-9fb671d7],.user-table td[data-v-9fb671d7]{border:1px solid #ddd;padding:8px;font-size:14px}.pager[data-v-9fb671d7]{align-items:center;gap:10px;margin-top:16px;display:flex}.form-panel[data-v-9fb671d7]{border:1px solid #ddd;border-radius:8px;margin-top:24px;padding:16px}.grid[data-v-9fb671d7]{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.row[data-v-9fb671d7]{flex-direction:column;gap:6px;display:flex}.actions[data-v-9fb671d7]{gap:10px;margin-top:16px;display:flex}.project-page[data-v-6328aa6f]{color:#1f2937}.page-header[data-v-6328aa6f]{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-header h2[data-v-6328aa6f]{margin:0 0 6px}.page-header p[data-v-6328aa6f]{color:#64748b;margin:0;font-size:14px}.primary-btn[data-v-6328aa6f]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none;border-radius:10px;padding:9px 14px}button[data-v-6328aa6f]{cursor:pointer;background:#fff;border:1px solid #d7dee7;border-radius:8px;padding:7px 10px}button[data-v-6328aa6f]:hover{color:#2f80ed;border-color:#409eff}button[data-v-6328aa6f]:disabled{cursor:not-allowed;opacity:.55}button.danger[data-v-6328aa6f],.danger-small[data-v-6328aa6f]{color:#d93026}.project-table-wrap[data-v-6328aa6f]{overflow:auto}.project-table[data-v-6328aa6f]{border-collapse:collapse;background:#fff;border-radius:12px;width:100%;overflow:hidden}.project-table th[data-v-6328aa6f],.project-table td[data-v-6328aa6f]{text-align:left;vertical-align:top;border-bottom:1px solid #eef2f7;padding:12px;font-size:14px}.project-table th[data-v-6328aa6f]{color:#334155;background:#f8fafc}.desc[data-v-6328aa6f]{color:#64748b;margin:6px 0 0;font-size:13px}.ops[data-v-6328aa6f]{flex-wrap:wrap;gap:6px;display:flex}.op-col[data-v-6328aa6f]{min-width:280px}.status-tag[data-v-6328aa6f]{color:#475569;background:#eef2f7;border-radius:999px;padding:3px 8px;font-size:12px;display:inline-block}.status-tag.open[data-v-6328aa6f]{color:#168a4a;background:#e8f7ef}.status-tag.ended[data-v-6328aa6f]{color:#64748b;background:#f1f5f9}.status-tag.not_started[data-v-6328aa6f]{color:#b26a00;background:#fff7e6}.status-tag.disabled[data-v-6328aa6f]{color:#c0392b;background:#fff2f0}.msg[data-v-6328aa6f]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:14px}.msg.success[data-v-6328aa6f]{color:#1f8f55;background:#edf9f1;border-color:#bfe7cc}.loading[data-v-6328aa6f],.empty[data-v-6328aa6f]{text-align:center;color:#64748b;padding:24px}.modal-mask[data-v-6328aa6f]{z-index:100;background:#0f172a6b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card[data-v-6328aa6f]{background:#fff;border-radius:16px;width:100%;max-width:520px;max-height:88vh;padding:22px;overflow:auto;box-shadow:0 20px 60px #0f172a38}.modal-card.large[data-v-6328aa6f]{max-width:1050px}.modal-card h3[data-v-6328aa6f]{margin:0 0 16px}.modal-head[data-v-6328aa6f]{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-actions-inline[data-v-6328aa6f]{align-items:center;gap:8px;display:flex}.form-row[data-v-6328aa6f]{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.form-row label[data-v-6328aa6f],.check-row[data-v-6328aa6f]{color:#334155;font-size:14px;font-weight:600}.form-row input[data-v-6328aa6f],.form-row textarea[data-v-6328aa6f],.form-row select[data-v-6328aa6f]{border:1px solid #d7dee7;border-radius:10px;outline:none;padding:10px;font-family:inherit;font-size:14px}.form-row input[data-v-6328aa6f]:focus,.form-row textarea[data-v-6328aa6f]:focus,.form-row select[data-v-6328aa6f]:focus{border-color:#409eff}.check-row[data-v-6328aa6f]{align-items:center;gap:8px;display:flex}.modal-actions[data-v-6328aa6f]{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.roster-mask[data-v-6328aa6f]{align-items:flex-start;overflow:hidden auto}.roster-modal[data-v-6328aa6f]{width:96vw;max-width:1380px;max-height:92vh;overflow:hidden auto}.roster-page[data-v-6328aa6f]{color:#111827;background:#fff;padding:8px 4px 4px}.roster-title[data-v-6328aa6f]{text-align:center;letter-spacing:4px;color:#111827;margin:0 0 14px;font-size:24px;font-weight:700}.roster-meta[data-v-6328aa6f]{grid-template-columns:1fr 360px;align-items:end;gap:20px;margin-bottom:8px;font-size:15px;line-height:1.8;display:grid}.underline[data-v-6328aa6f]{border-bottom:1px solid #111827;min-width:220px;padding:0 6px 2px;display:inline-block}.fill-date[data-v-6328aa6f]{text-align:center;min-width:150px}.roster-table[data-v-6328aa6f]{border-collapse:collapse;table-layout:fixed;background:#fff;border:2px solid #111827;width:100%}.roster-table th[data-v-6328aa6f],.roster-table td[data-v-6328aa6f]{text-align:center;vertical-align:middle;word-break:break-all;border:1.5px solid #111827;padding:7px 6px;font-size:14px;line-height:1.5}.roster-table th[data-v-6328aa6f]{background:#f8fafc;font-weight:700}.roster-table .address-cell[data-v-6328aa6f]{text-align:left;word-break:break-all}.col-index[data-v-6328aa6f]{width:52px}.col-name[data-v-6328aa6f]{width:92px}.col-gender[data-v-6328aa6f]{width:58px}.col-id[data-v-6328aa6f]{width:190px}.col-identity[data-v-6328aa6f]{width:170px}.col-edu[data-v-6328aa6f]{width:110px}.col-address[data-v-6328aa6f]{width:380px}.col-phone[data-v-6328aa6f]{width:140px}.roster-note[data-v-6328aa6f]{color:#64748b;margin-top:10px;font-size:13px}.stats-grid[data-v-6328aa6f]{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.stat-card[data-v-6328aa6f]{background:#f8fafc;border:1px solid #e5eaf0;border-radius:12px;padding:16px}.stat-card span[data-v-6328aa6f]{color:#64748b;margin-bottom:8px;font-size:13px;display:block}.stat-card strong[data-v-6328aa6f]{color:#1f2937;font-size:24px}.group-stats[data-v-6328aa6f]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}[data-v-6328aa6f] .stats-block{background:#fff;border:1px solid #e5eaf0;border-radius:12px;padding:14px}[data-v-6328aa6f] .stats-block h4{margin:0 0 10px}[data-v-6328aa6f] .stats-block ul{margin:0;padding:0;list-style:none}[data-v-6328aa6f] .stats-block li{border-bottom:1px dashed #e5eaf0;justify-content:space-between;padding:7px 0;display:flex}[data-v-6328aa6f] .stats-block li:last-child{border-bottom:none}.empty-small[data-v-6328aa6f]{color:#94a3b8;font-size:13px}.class-mask[data-v-6328aa6f]{align-items:flex-start;overflow:hidden auto}.class-modal[data-v-6328aa6f]{width:98vw;max-width:1480px;max-height:92vh;overflow:hidden auto}.class-tools[data-v-6328aa6f]{background:#f8fafc;border:1px solid #e5eaf0;border-radius:12px;flex-direction:column;gap:10px;margin-bottom:14px;padding:12px;display:flex}.class-create-box[data-v-6328aa6f],.auto-box[data-v-6328aa6f]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.class-create-box input[data-v-6328aa6f],.class-create-box select[data-v-6328aa6f],.auto-box input[data-v-6328aa6f]{border:1px solid #d7dee7;border-radius:8px;padding:8px 10px}.class-create-box select[data-v-6328aa6f]{min-width:190px}.auto-box input[type=number][data-v-6328aa6f]{width:80px}.inline-check[data-v-6328aa6f]{align-items:center;gap:5px;display:flex}.inline-check input[data-v-6328aa6f]{width:auto}.class-manage-layout[data-v-6328aa6f]{grid-template-columns:250px 1fr 1fr;gap:12px;display:grid}.class-list-panel[data-v-6328aa6f],.student-assign-panel[data-v-6328aa6f],.class-student-panel[data-v-6328aa6f]{background:#fff;border:1px solid #e5eaf0;border-radius:12px;min-height:480px;padding:12px;overflow:auto}.panel-title[data-v-6328aa6f]{justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:700;display:flex}.class-card[data-v-6328aa6f]{cursor:pointer;background:#fff;border:1px solid #e5eaf0;border-radius:10px;margin-bottom:8px;padding:10px}.class-card[data-v-6328aa6f]:hover{background:#f8fafc}.class-card.active[data-v-6328aa6f]{background:#eff6ff;border-color:#409eff}.class-card p[data-v-6328aa6f]{color:#64748b;margin:4px 0 0;font-size:13px}.class-card-actions[data-v-6328aa6f]{gap:6px;margin-top:8px;display:flex}.assign-actions[data-v-6328aa6f]{margin-bottom:10px}.mini-table[data-v-6328aa6f]{border-collapse:collapse;background:#fff;width:100%}.mini-table th[data-v-6328aa6f],.mini-table td[data-v-6328aa6f]{text-align:left;vertical-align:middle;border-bottom:1px solid #eef2f7;padding:8px 6px;font-size:13px}.mini-table th[data-v-6328aa6f]{color:#334155;background:#f8fafc}.check-col[data-v-6328aa6f]{width:40px}.danger-small[data-v-6328aa6f]{padding:4px 7px;font-size:12px}.class-print-page[data-v-6328aa6f]{display:none}.print-class-block[data-v-6328aa6f]{page-break-inside:avoid;margin-top:16px}.print-class-block h3[data-v-6328aa6f]{margin:10px 0 6px;font-size:18px}.class-print-meta[data-v-6328aa6f]{margin:0 0 6px;font-size:14px}@media (width<=1200px){.class-manage-layout[data-v-6328aa6f]{grid-template-columns:1fr}}@media (width<=760px){.page-header[data-v-6328aa6f]{flex-direction:column;align-items:flex-start}.stats-grid[data-v-6328aa6f],.group-stats[data-v-6328aa6f],.roster-meta[data-v-6328aa6f]{grid-template-columns:1fr}}@media print{@page{size:A4 landscape;margin:8mm}html[data-v-6328aa6f],body[data-v-6328aa6f],#app{background:#fff!important;width:auto!important;height:auto!important;overflow:visible!important}.top-bar,.side-menu,.page-header,.project-table-wrap,.msg,.loading,.no-print{display:none!important}.main-container,.content-area{width:auto!important;height:auto!important;min-height:0!important;max-height:none!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.project-page[data-v-6328aa6f]>*{display:none!important}.project-page>.roster-mask[data-v-6328aa6f]{background:#fff!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important;overflow:visible!important}.project-page>.roster-mask .roster-modal[data-v-6328aa6f]{width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.project-page>.roster-mask .roster-page[data-v-6328aa6f]{height:auto!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.roster-title[data-v-6328aa6f]{margin:0 0 10px!important;font-size:22px!important}.roster-meta[data-v-6328aa6f]{grid-template-columns:1fr 300px!important;gap:16px!important;margin-bottom:8px!important;font-size:14px!important}.underline[data-v-6328aa6f]{border-bottom:1px solid #111827!important}.roster-table[data-v-6328aa6f]{page-break-inside:auto;border-collapse:collapse!important;table-layout:fixed!important;width:100%!important}.roster-table th[data-v-6328aa6f],.roster-table td[data-v-6328aa6f]{color:#111827!important;background:#fff!important;border:1px solid #111827!important;padding:5px 4px!important;font-size:12px!important;line-height:1.4!important}.roster-table thead[data-v-6328aa6f]{display:table-header-group}.roster-table tr[data-v-6328aa6f]{page-break-inside:avoid;page-break-after:auto}.address-cell[data-v-6328aa6f]{text-align:left!important}body.printing-class-result,body.printing-class-result,body.printing-class-result,body.printing-class-result,body.printing-class-result,body.printing-class-result,body.printing-class-result{display:none!important}body.printing-class-result,body.printing-class-result{width:auto!important;height:auto!important;min-height:0!important;max-height:none!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}body.printing-class-result{width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important;overflow:visible!important}body.printing-class-result,body.printing-class-result{display:none!important}body.printing-class-result{page-break-inside:avoid;background:#fff!important;margin:0!important;padding:0!important;display:block!important}body.printing-class-result,body.printing-class-result{visibility:visible!important;display:block!important}body.printing-class-result{page-break-inside:avoid;border-collapse:collapse!important;table-layout:fixed!important;width:100%!important;display:table-row!important}body.printing-class-result,body.printing-class-result{color:#111827!important;background:#fff!important;border:1px solid #111827!important;display:table-cell!important}}.course-page[data-v-39c89e22]{color:#1f2937}.page-header[data-v-39c89e22]{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-header h2[data-v-39c89e22]{margin:0 0 6px}.page-header p[data-v-39c89e22]{color:#64748b;margin:0;font-size:14px}.primary-btn[data-v-39c89e22]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none;border-radius:10px;padding:9px 14px}button[data-v-39c89e22]{cursor:pointer;background:#fff;border:1px solid #d7dee7;border-radius:8px;padding:7px 10px}button[data-v-39c89e22]:hover{color:#2f80ed;border-color:#409eff}button.danger[data-v-39c89e22]{color:#d93026}.msg[data-v-39c89e22]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:14px}.msg.success[data-v-39c89e22]{color:#1f8f55;background:#edf9f1;border-color:#bfe7cc}.loading[data-v-39c89e22],.empty[data-v-39c89e22]{text-align:center;color:#64748b;padding:24px}.table-wrap[data-v-39c89e22]{overflow:auto}.main-table[data-v-39c89e22]{border-collapse:collapse;background:#fff;border-radius:12px;width:100%;overflow:hidden}.main-table th[data-v-39c89e22],.main-table td[data-v-39c89e22]{text-align:left;vertical-align:top;border-bottom:1px solid #eef2f7;padding:12px;font-size:14px}.main-table th[data-v-39c89e22]{color:#334155;background:#f8fafc}.main-table input[data-v-39c89e22],.main-table select[data-v-39c89e22]{box-sizing:border-box;border:1px solid #d7dee7;border-radius:8px;width:100%;padding:8px 10px;font-size:14px}.ops[data-v-39c89e22]{flex-wrap:wrap;gap:6px;display:flex}.ops button[data-v-39c89e22]{white-space:nowrap}.op-col[data-v-39c89e22]{min-width:360px}.modal-mask[data-v-39c89e22]{z-index:100;background:#0f172a6b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card[data-v-39c89e22]{background:#fff;border-radius:16px;width:100%;max-width:520px;max-height:88vh;padding:22px;overflow:auto;box-shadow:0 20px 60px #0f172a38}.modal-card.large[data-v-39c89e22]{max-width:1280px}.modal-card h3[data-v-39c89e22]{margin:0 0 16px}.modal-head[data-v-39c89e22]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.modal-actions-inline[data-v-39c89e22]{align-items:center;gap:8px;display:flex}.form-row[data-v-39c89e22]{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.form-row label[data-v-39c89e22]{color:#334155;font-size:14px;font-weight:600}.form-row input[data-v-39c89e22],.form-row textarea[data-v-39c89e22]{border:1px solid #d7dee7;border-radius:10px;outline:none;padding:10px;font-family:inherit;font-size:14px}.modal-actions[data-v-39c89e22]{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.arrange-page[data-v-d943e0f1]{color:#1f2937}.page-header[data-v-d943e0f1]{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-header h2[data-v-d943e0f1]{margin:0 0 6px}.page-header p[data-v-d943e0f1]{color:#64748b;margin:0;font-size:14px}.section-card[data-v-d943e0f1]{background:#fff;border:1px solid #e5eaf0;border-radius:14px;margin-bottom:16px;padding:16px}.section-card h3[data-v-d943e0f1]{margin:0 0 14px}.attach-bar[data-v-d943e0f1]{grid-template-columns:220px 1fr 1fr 180px auto;align-items:center;gap:10px;display:grid}.attach-bar select[data-v-d943e0f1],.attach-bar input[data-v-d943e0f1]{border:1px solid #d7dee7;border-radius:8px;padding:9px 10px;font-size:14px}.primary-btn[data-v-d943e0f1]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none;border-radius:10px;padding:9px 14px}button[data-v-d943e0f1]{cursor:pointer;background:#fff;border:1px solid #d7dee7;border-radius:8px;padding:7px 10px}button[data-v-d943e0f1]:hover{color:#2f80ed;border-color:#409eff}button.danger[data-v-d943e0f1]{color:#d93026}.msg[data-v-d943e0f1]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:14px}.msg.success[data-v-d943e0f1]{color:#1f8f55;background:#edf9f1;border-color:#bfe7cc}.loading[data-v-d943e0f1],.empty[data-v-d943e0f1]{text-align:center;color:#64748b;padding:20px}.table-wrap[data-v-d943e0f1]{overflow:auto}.main-table[data-v-d943e0f1]{border-collapse:collapse;background:#fff;border-radius:12px;width:100%;overflow:hidden}.main-table th[data-v-d943e0f1],.main-table td[data-v-d943e0f1]{text-align:left;vertical-align:top;border-bottom:1px solid #eef2f7;padding:12px;font-size:14px}.main-table th[data-v-d943e0f1]{color:#334155;background:#f8fafc}.ops[data-v-d943e0f1]{flex-wrap:wrap;gap:8px;display:flex}.op-col[data-v-d943e0f1]{min-width:180px}@media (width<=1100px){.attach-bar[data-v-d943e0f1]{grid-template-columns:1fr}}.schedule-page[data-v-311b5d84]{color:#1f2937}.page-header[data-v-311b5d84]{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-header h2[data-v-311b5d84]{margin:0 0 6px}.page-header p[data-v-311b5d84]{color:#64748b;margin:0;font-size:14px}.header-actions[data-v-311b5d84]{gap:8px;display:flex}.section-card[data-v-311b5d84]{background:#fff;border:1px solid #e5eaf0;border-radius:14px;margin-bottom:16px;padding:16px}.section-card h3[data-v-311b5d84]{margin:0 0 14px}.section-head[data-v-311b5d84]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-actions[data-v-311b5d84]{flex-wrap:wrap;gap:8px;display:flex}.header-form[data-v-311b5d84]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.form-row[data-v-311b5d84]{flex-direction:column;gap:7px;display:flex}.form-row label[data-v-311b5d84]{color:#334155;font-size:14px;font-weight:600}.form-row input[data-v-311b5d84]{box-sizing:border-box;border:1px solid #d7dee7;border-radius:10px;outline:none;padding:10px;font-size:14px}.table-wrap[data-v-311b5d84]{overflow:auto}.main-table[data-v-311b5d84]{border-collapse:collapse;background:#fff;width:100%}.main-table th[data-v-311b5d84],.main-table td[data-v-311b5d84]{text-align:left;vertical-align:top;border-bottom:1px solid #eef2f7;padding:10px;font-size:13px}.main-table th[data-v-311b5d84]{color:#334155;background:#f8fafc}.main-table input[data-v-311b5d84],.main-table select[data-v-311b5d84]{box-sizing:border-box;border:1px solid #d7dee7;border-radius:8px;width:100%;padding:7px 8px;font-size:13px}.primary-btn[data-v-311b5d84]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#409eff 0%,#2f80ed 100%);border:none;border-radius:10px;padding:9px 14px}button[data-v-311b5d84]{cursor:pointer;background:#fff;border:1px solid #d7dee7;border-radius:8px;padding:7px 10px}button[data-v-311b5d84]:hover{color:#2f80ed;border-color:#409eff}button.danger[data-v-311b5d84]{color:#d93026}.msg[data-v-311b5d84]{color:#c0392b;background:#fff2f0;border:1px solid #ffd6d1;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:14px}.msg.success[data-v-311b5d84]{color:#1f8f55;background:#edf9f1;border-color:#bfe7cc}.print-sheet[data-v-311b5d84]{background:#fff;border:1px solid #e5eaf0;border-radius:14px;margin-top:18px;padding:18px}.sheet-title[data-v-311b5d84]{text-align:center;letter-spacing:2px;margin:0 0 14px;font-size:24px;font-weight:700}.sheet-meta[data-v-311b5d84]{grid-template-columns:1fr 260px;align-items:end;gap:20px;margin-bottom:8px;font-size:15px;line-height:1.8;display:grid}.underline[data-v-311b5d84]{border-bottom:1px solid #111827;min-width:220px;padding:0 6px 2px;display:inline-block}.fill-date[data-v-311b5d84]{text-align:center;min-width:150px}.print-table[data-v-311b5d84]{border-collapse:collapse;table-layout:fixed;background:#fff;border:2px solid #111827;width:100%}.print-table th[data-v-311b5d84],.print-table td[data-v-311b5d84]{text-align:center;vertical-align:middle;word-break:break-all;border:1.5px solid #111827;padding:7px 6px;font-size:13px;line-height:1.5}.print-table th[data-v-311b5d84]{background:#f8fafc;font-weight:700}.empty[data-v-311b5d84]{text-align:center;color:#64748b}@media (width<=1100px){.header-form[data-v-311b5d84]{grid-template-columns:1fr 1fr}.section-head[data-v-311b5d84]{flex-direction:column;align-items:flex-start}.sheet-meta[data-v-311b5d84]{grid-template-columns:1fr}}@media print{@page{size:A4 landscape;margin:8mm}html[data-v-311b5d84],body[data-v-311b5d84],#app{background:#fff!important;width:auto!important;height:auto!important;overflow:visible!important}.top-bar,.side-menu,.no-print{display:none!important}.main-container,.content-area{width:auto!important;height:auto!important;min-height:0!important;max-height:none!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.schedule-page[data-v-311b5d84]>*{display:none!important}.schedule-page>.print-sheet[data-v-311b5d84]{box-shadow:none!important;border:none!important;margin:0!important;padding:0!important;display:block!important}.sheet-title[data-v-311b5d84]{margin-bottom:10px!important;font-size:22px!important}.sheet-meta[data-v-311b5d84]{grid-template-columns:1fr 260px!important;font-size:14px!important}.print-table th[data-v-311b5d84],.print-table td[data-v-311b5d84]{padding:5px 4px!important;font-size:12px!important}}.course-structure-page[data-v-c4f19ec6]{color:#1f2937;padding:20px}.page-header[data-v-c4f19ec6]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2[data-v-c4f19ec6]{margin:0;font-size:22px}.page-header p[data-v-c4f19ec6]{color:#6b7280;margin:6px 0 0;font-size:14px}.toolbar[data-v-c4f19ec6]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:12px;margin-bottom:16px;padding:14px;display:flex}.toolbar select[data-v-c4f19ec6]{min-width:260px}.main-layout[data-v-c4f19ec6]{grid-template-columns:420px 1fr;gap:16px;display:grid}.tree-panel[data-v-c4f19ec6],.form-panel[data-v-c4f19ec6]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-height:560px;padding:16px}.panel-title[data-v-c4f19ec6]{margin-bottom:14px;font-size:16px;font-weight:600}.empty-box[data-v-c4f19ec6]{text-align:center;color:#6b7280;background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;padding:30px}.tree-list[data-v-c4f19ec6]{font-size:14px}.tree-chapter[data-v-c4f19ec6]{margin-bottom:8px}.tree-section[data-v-c4f19ec6],.tree-kp[data-v-c4f19ec6]{margin-top:6px;margin-left:22px}.tree-node[data-v-c4f19ec6]{cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.tree-node[data-v-c4f19ec6]:hover{background:#f3f4f6}.tree-node.active[data-v-c4f19ec6]{background:#eff6ff;border-color:#93c5fd}.chapter-node[data-v-c4f19ec6]{font-weight:600}.section-node[data-v-c4f19ec6]{color:#374151}.kp-node[data-v-c4f19ec6]{color:#4b5563}.tree-node button[data-v-c4f19ec6]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:4px 8px;font-size:12px}.tree-node button[data-v-c4f19ec6]:hover{background:#f9fafb}.tag[data-v-c4f19ec6]{color:#2563eb;white-space:nowrap;background:#eff6ff;border-radius:4px;padding:2px 6px;font-size:12px}.form-row[data-v-c4f19ec6]{margin-bottom:14px}.form-row label[data-v-c4f19ec6]{margin-bottom:6px;font-weight:500;display:block}.form-row label span[data-v-c4f19ec6]{color:#dc2626;margin-left:4px}input[data-v-c4f19ec6],select[data-v-c4f19ec6],textarea[data-v-c4f19ec6]{box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:9px 10px;font-size:14px}textarea[data-v-c4f19ec6]{resize:vertical;min-height:90px}input[data-v-c4f19ec6]:disabled{color:#6b7280;background:#f3f4f6}.form-actions[data-v-c4f19ec6]{gap:10px;margin-top:18px;display:flex}button[data-v-c4f19ec6]{cursor:pointer;background:#e5e7eb;border:none;border-radius:6px;padding:9px 14px}button[data-v-c4f19ec6]:disabled{cursor:not-allowed;opacity:.6}.primary-btn[data-v-c4f19ec6]{color:#fff;background:#2563eb}.danger-btn[data-v-c4f19ec6]{color:#fff;background:#dc2626}.message[data-v-c4f19ec6]{color:#fff;z-index:9999;border-radius:8px;padding:12px 18px;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 20px #0000001f}.message.success[data-v-c4f19ec6]{background:#16a34a}.message.error[data-v-c4f19ec6]{background:#dc2626}.question-bank-page[data-v-e9803831]{color:#1f2937;padding:20px}.page-header[data-v-e9803831]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2[data-v-e9803831]{margin:0;font-size:22px}.page-header p[data-v-e9803831]{color:#6b7280;margin:6px 0 0;font-size:14px}.toolbar[data-v-e9803831]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;padding:14px;display:flex}.filter-item[data-v-e9803831]{flex-direction:column;gap:6px;min-width:150px;display:flex}.keyword-item[data-v-e9803831]{min-width:210px}.filter-item label[data-v-e9803831]{color:#4b5563;font-size:13px}.main-layout[data-v-e9803831]{grid-template-columns:460px 1fr;gap:16px;display:grid}.list-panel[data-v-e9803831],.form-panel[data-v-e9803831]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-height:620px;padding:16px}.panel-title[data-v-e9803831]{justify-content:space-between;align-items:center;margin-bottom:14px;font-size:16px;font-weight:600;display:flex}.count-tag[data-v-e9803831]{color:#2563eb;background:#eff6ff;border-radius:999px;padding:3px 8px;font-size:13px}.empty-box[data-v-e9803831]{text-align:center;color:#6b7280;background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;padding:30px}.question-list[data-v-e9803831]{flex-direction:column;gap:10px;display:flex}.question-card[data-v-e9803831]{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px}.question-card[data-v-e9803831]:hover{background:#f9fafb}.question-card.active[data-v-e9803831]{background:#eff6ff;border-color:#93c5fd}.question-card-header[data-v-e9803831]{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.type-tag[data-v-e9803831],.difficulty-tag[data-v-e9803831],.score-tag[data-v-e9803831],.disabled-tag[data-v-e9803831]{border-radius:999px;padding:2px 7px;font-size:12px}.type-tag[data-v-e9803831]{color:#2563eb;background:#eff6ff}.difficulty-tag[data-v-e9803831]{color:#047857;background:#ecfdf5}.score-tag[data-v-e9803831]{color:#92400e;background:#fffbeb}.disabled-tag[data-v-e9803831]{color:#991b1b;background:#fef2f2}.question-stem[data-v-e9803831]{color:#1f2937;white-space:pre-wrap;margin-bottom:8px;font-size:14px;line-height:1.6}.question-meta[data-v-e9803831]{color:#6b7280;flex-direction:column;gap:3px;font-size:12px;display:flex}.form-grid[data-v-e9803831]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-row[data-v-e9803831]{margin-bottom:14px}.form-row label[data-v-e9803831]{margin-bottom:6px;font-weight:500;display:block}.form-row label span[data-v-e9803831]{color:#dc2626;margin-left:4px}.inline-row label[data-v-e9803831]{align-items:center;gap:8px;display:flex}input[data-v-e9803831],select[data-v-e9803831],textarea[data-v-e9803831]{box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:9px 10px;font-size:14px}textarea[data-v-e9803831]{resize:vertical;min-height:90px}input[data-v-e9803831]:disabled,select[data-v-e9803831]:disabled{color:#6b7280;background:#f3f4f6}.option-header[data-v-e9803831]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.option-header label[data-v-e9803831]{font-weight:500}.option-header span[data-v-e9803831]{color:#dc2626;margin-left:4px}.option-list[data-v-e9803831]{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.option-row[data-v-e9803831]{grid-template-columns:54px 1fr 70px;align-items:center;gap:8px;display:grid}.option-label[data-v-e9803831]{text-align:center;font-weight:600}.checkbox-list[data-v-e9803831]{flex-wrap:wrap;gap:12px;padding:8px 0;display:flex}.checkbox-item[data-v-e9803831]{align-items:center;gap:6px;margin:0!important;font-weight:400!important;display:flex!important}.checkbox-item input[data-v-e9803831]{width:auto}.help-text[data-v-e9803831]{color:#6b7280;margin-top:6px;font-size:12px}.form-actions[data-v-e9803831]{gap:10px;margin-top:18px;display:flex}button[data-v-e9803831]{cursor:pointer;background:#e5e7eb;border:none;border-radius:6px;padding:9px 14px}button[data-v-e9803831]:disabled{cursor:not-allowed;opacity:.6}.primary-btn[data-v-e9803831]{color:#fff;background:#2563eb}.secondary-btn[data-v-e9803831]{color:#374151;background:#e5e7eb}.danger-btn[data-v-e9803831]{color:#fff;background:#dc2626}.small-btn[data-v-e9803831]{padding:5px 10px;font-size:12px}.danger-small-btn[data-v-e9803831]{color:#fff;background:#dc2626;padding:6px 9px;font-size:12px}.message[data-v-e9803831]{color:#fff;z-index:9999;border-radius:8px;padding:12px 18px;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 20px #0000001f}.message.success[data-v-e9803831]{background:#16a34a}.message.error[data-v-e9803831]{background:#dc2626}@media (width<=1100px){.main-layout[data-v-e9803831],.form-grid[data-v-e9803831]{grid-template-columns:1fr}}
