.result-count[data-v-0914c483]{color:var(--ink);font-size:14px}.filter-bar[data-v-0914c483]{display:flex;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.filter-field[data-v-0914c483]{display:grid;gap:6px;min-width:190px}.filter-field span[data-v-0914c483]{color:var(--muted);font-size:12px;font-weight:700}.filter-field select[data-v-0914c483]{height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 10px;color:var(--text)}.table-scroll[data-v-0914c483]{overflow-x:auto}.management-table[data-v-0914c483]{width:100%;border-collapse:collapse;font-size:14px}.management-table th[data-v-0914c483],.management-table td[data-v-0914c483]{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.management-table th[data-v-0914c483]{background:#f9fafb;color:var(--muted);font-size:13px}.management-table td strong[data-v-0914c483],.management-table td small[data-v-0914c483]{display:block}.management-table td small[data-v-0914c483]{margin-top:4px;color:var(--muted);font-size:12px}.action-column[data-v-0914c483]{width:154px}.row-actions[data-v-0914c483]{display:flex;gap:8px}.small-button[data-v-0914c483]{min-width:58px;height:32px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;font-weight:700}.small-button.primary[data-v-0914c483]{border-color:var(--primary);color:var(--primary)}.small-button.danger[data-v-0914c483]{border-color:#fecaca;color:var(--danger)}.small-button[data-v-0914c483]:disabled{cursor:not-allowed;opacity:.55}.status-chip[data-v-0914c483]{display:inline-flex;align-items:center;height:26px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:700}.status-chip.pending[data-v-0914c483]{background:#fff7ed;color:#c2410c}.status-chip.approved[data-v-0914c483]{background:#ecfdf3;color:#047857}.status-chip.rejected[data-v-0914c483]{background:#fef2f2;color:#b91c1c}.panel-message[data-v-0914c483]{margin:0;padding:12px 20px;border-bottom:1px solid var(--line);font-size:13px;font-weight:700}.panel-message.error[data-v-0914c483]{background:#fef2f2;color:var(--danger)}.panel-message.success[data-v-0914c483]{background:#ecfdf3;color:#047857}.handled-text[data-v-0914c483]{color:var(--muted);font-size:13px}.empty-cell[data-v-0914c483]{height:120px;color:var(--muted);text-align:center!important}@media(max-width:800px){.filter-bar[data-v-0914c483]{display:grid}.filter-field[data-v-0914c483]{min-width:0}}.result-count[data-v-7f69251e]{color:var(--ink);font-size:14px}.filter-bar[data-v-7f69251e]{display:flex;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.filter-field[data-v-7f69251e],.form-field[data-v-7f69251e]{display:grid;gap:6px}.filter-field[data-v-7f69251e]{min-width:190px}.filter-field span[data-v-7f69251e],.form-field span[data-v-7f69251e]{color:var(--muted);font-size:12px;font-weight:700}.filter-field select[data-v-7f69251e],.form-field input[data-v-7f69251e],.form-field textarea[data-v-7f69251e]{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);padding:9px 10px;outline:none}.filter-field select[data-v-7f69251e],.form-field input[data-v-7f69251e]{height:38px}.form-field textarea[data-v-7f69251e]{resize:vertical;line-height:1.6}.table-scroll[data-v-7f69251e]{overflow-x:auto}.management-table[data-v-7f69251e]{width:100%;border-collapse:collapse;font-size:14px}.management-table th[data-v-7f69251e],.management-table td[data-v-7f69251e]{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.management-table th[data-v-7f69251e]{background:#f9fafb;color:var(--muted);font-size:13px}.management-table td strong[data-v-7f69251e],.management-table td small[data-v-7f69251e]{display:block}.management-table td small[data-v-7f69251e]{margin-top:4px;color:var(--muted);font-size:12px}.content-summary[data-v-7f69251e]{max-width:360px}.content-summary small[data-v-7f69251e]{overflow:hidden;max-width:330px;text-overflow:ellipsis}.type-label[data-v-7f69251e]{display:inline-block;margin-bottom:5px;color:var(--primary);font-size:12px;font-weight:700}.action-column[data-v-7f69251e]{width:290px}.row-actions[data-v-7f69251e]{display:flex;gap:6px}.row-actions button[data-v-7f69251e],.reply-box button[data-v-7f69251e]{height:31px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--primary);padding:0 9px;cursor:pointer;font-size:12px;font-weight:700}.row-actions button.danger[data-v-7f69251e],.reply-box button.danger[data-v-7f69251e]{color:var(--danger)}.row-actions button[data-v-7f69251e]:disabled,.reply-box button[data-v-7f69251e]:disabled{cursor:not-allowed;opacity:.55}.pinned-chip[data-v-7f69251e],.normal-chip[data-v-7f69251e],.hidden-chip[data-v-7f69251e]{display:inline-flex;align-items:center;height:26px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:700}.pinned-chip[data-v-7f69251e]{background:#fff7ed;color:#c2410c}.normal-chip[data-v-7f69251e]{background:#ecfdf3;color:#047857}.hidden-chip[data-v-7f69251e]{background:#f3f4f6;color:#4b5563}.panel-message[data-v-7f69251e]{margin:0;padding:12px 20px;border-bottom:1px solid var(--line);font-size:13px;font-weight:700}.panel-message.error[data-v-7f69251e],.dialog-error[data-v-7f69251e]{color:var(--danger)}.panel-message.error[data-v-7f69251e]{background:#fef2f2}.panel-message.success[data-v-7f69251e]{background:#ecfdf3;color:#047857}.empty-cell[data-v-7f69251e]{height:120px;color:var(--muted);text-align:center!important}.dialog-backdrop[data-v-7f69251e]{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:#1118277a}.post-dialog[data-v-7f69251e],.comment-dialog[data-v-7f69251e]{width:min(680px,100%);max-height:calc(100vh - 48px);overflow-y:auto;border-radius:8px;background:#fff;box-shadow:0 24px 70px #11182740}.comment-dialog[data-v-7f69251e]{width:min(760px,100%)}.dialog-head[data-v-7f69251e]{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.dialog-head p[data-v-7f69251e],.dialog-head h2[data-v-7f69251e]{margin:0}.dialog-head p[data-v-7f69251e]{margin-bottom:4px;color:var(--muted);font-size:12px}.dialog-head h2[data-v-7f69251e]{color:var(--ink);font-size:19px}.close-button[data-v-7f69251e]{width:36px;height:36px;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:26px}.post-form[data-v-7f69251e]{display:grid;gap:14px;padding:20px 22px}.pin-toggle[data-v-7f69251e]{display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px}.dialog-error[data-v-7f69251e]{margin:0;font-size:13px;font-weight:700}.dialog-actions[data-v-7f69251e]{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.cancel-button[data-v-7f69251e],.save-button[data-v-7f69251e]{height:38px;border-radius:6px;padding:0 18px;cursor:pointer;font-weight:700}.cancel-button[data-v-7f69251e]{border:1px solid var(--line);background:#fff;color:var(--text)}.save-button[data-v-7f69251e]{border:0;background:var(--primary);color:#fff}.comment-list[data-v-7f69251e]{display:grid;gap:0}.comment-item[data-v-7f69251e]{padding:18px 22px;border-bottom:1px solid var(--line)}.comment-item>header[data-v-7f69251e]{display:flex;align-items:flex-start;justify-content:space-between}.comment-item>header div[data-v-7f69251e]{display:grid;gap:3px}.comment-item>header span[data-v-7f69251e]{color:var(--muted);font-size:12px}.comment-item>p[data-v-7f69251e]{margin:12px 0;color:var(--text);line-height:1.65}.existing-reply[data-v-7f69251e]{margin-bottom:12px;padding:10px 12px;border-left:3px solid var(--primary);background:#f9fafb}.existing-reply span[data-v-7f69251e]{color:var(--primary);font-size:12px;font-weight:700}.existing-reply p[data-v-7f69251e]{margin:4px 0 0;color:var(--text);font-size:13px}.reply-box[data-v-7f69251e]{display:grid;grid-template-columns:1fr auto auto;gap:8px}.reply-box input[data-v-7f69251e]{min-width:0;height:34px;border:1px solid var(--line);border-radius:6px;padding:0 10px}.comment-empty[data-v-7f69251e]{padding:60px 20px;color:var(--muted);text-align:center}@media(max-width:800px){.filter-bar[data-v-7f69251e]{display:grid}.filter-field[data-v-7f69251e]{min-width:0}.dialog-backdrop[data-v-7f69251e]{padding:10px}.post-dialog[data-v-7f69251e],.comment-dialog[data-v-7f69251e]{max-height:calc(100vh - 20px)}.reply-box[data-v-7f69251e]{grid-template-columns:1fr auto}.reply-box .danger[data-v-7f69251e]{grid-column:2}}.table-panel[data-v-bf7560d4]{min-width:0;max-width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.table-panel__head[data-v-bf7560d4]{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.table-panel__head h2[data-v-bf7560d4]{margin:0;color:var(--ink);font-size:17px}.table-panel__head button[data-v-bf7560d4]{border:0;border-radius:6px;background:var(--primary);color:#fff;padding:9px 14px;font-weight:700}.table-wrap[data-v-bf7560d4]{width:100%;max-width:100%;overflow-x:auto}table[data-v-bf7560d4]{width:100%;border-collapse:collapse;font-size:14px}th[data-v-bf7560d4],td[data-v-bf7560d4]{padding:14px 20px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}th[data-v-bf7560d4]{color:var(--muted);font-weight:700;background:#f9fafb}td[data-v-bf7560d4]{color:var(--text)}.result-count[data-v-95ffdba4]{color:var(--ink);font-size:14px}.filter-grid[data-v-95ffdba4]{display:grid;grid-template-columns:repeat(3,minmax(180px,240px));gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.filter-field[data-v-95ffdba4],.form-field[data-v-95ffdba4]{display:grid;gap:6px}.filter-field span[data-v-95ffdba4],.form-field span[data-v-95ffdba4]{color:var(--muted);font-size:12px;font-weight:700}.filter-field input[data-v-95ffdba4],.filter-field select[data-v-95ffdba4],.form-field input[data-v-95ffdba4],.form-field select[data-v-95ffdba4],.form-field textarea[data-v-95ffdba4]{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);padding:9px 10px;outline:none}.filter-field input[data-v-95ffdba4],.filter-field select[data-v-95ffdba4],.form-field select[data-v-95ffdba4]{height:38px}.form-field textarea[data-v-95ffdba4]{resize:vertical;line-height:1.6}.table-scroll[data-v-95ffdba4]{overflow-x:auto}.management-table[data-v-95ffdba4]{width:100%;border-collapse:collapse;font-size:14px}.management-table th[data-v-95ffdba4],.management-table td[data-v-95ffdba4]{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.management-table th[data-v-95ffdba4]{background:#f9fafb;color:var(--muted);font-size:13px}.management-table td strong[data-v-95ffdba4],.management-table td small[data-v-95ffdba4]{display:block}.management-table td small[data-v-95ffdba4]{margin-top:4px;color:var(--muted);font-size:12px}.task-summary[data-v-95ffdba4]{max-width:320px}.task-summary small[data-v-95ffdba4]{overflow:hidden;max-width:300px;text-overflow:ellipsis}.action-column[data-v-95ffdba4]{width:126px}.edit-button[data-v-95ffdba4]{height:32px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1d4ed8;padding:0 10px;cursor:pointer;font-weight:700}.status-chip[data-v-95ffdba4]{display:inline-flex;align-items:center;height:26px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:700}.status-chip.pending_feedback[data-v-95ffdba4]{background:#fff7ed;color:#c2410c}.status-chip.feedbacked[data-v-95ffdba4]{background:#ecfdf3;color:#047857}.panel-message[data-v-95ffdba4]{margin:0;padding:12px 20px;border-bottom:1px solid var(--line);font-size:13px;font-weight:700}.panel-message.error[data-v-95ffdba4],.dialog-error[data-v-95ffdba4]{color:var(--danger)}.panel-message.error[data-v-95ffdba4]{background:#fef2f2}.panel-message.success[data-v-95ffdba4]{background:#ecfdf3;color:#047857}.empty-cell[data-v-95ffdba4]{height:120px;color:var(--muted);text-align:center!important}.dialog-backdrop[data-v-95ffdba4]{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:#1118277a}.feedback-dialog[data-v-95ffdba4]{width:min(780px,100%);max-height:calc(100vh - 48px);overflow-y:auto;border-radius:8px;background:#fff;box-shadow:0 24px 70px #11182740}.dialog-head[data-v-95ffdba4]{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.dialog-head p[data-v-95ffdba4],.dialog-head h2[data-v-95ffdba4]{margin:0}.dialog-head p[data-v-95ffdba4]{margin-bottom:4px;color:var(--muted);font-size:12px}.dialog-head h2[data-v-95ffdba4]{color:var(--ink);font-size:19px}.close-button[data-v-95ffdba4]{width:36px;height:36px;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:26px}.dialog-loading[data-v-95ffdba4]{padding:60px 20px;color:var(--muted);text-align:center}.task-detail[data-v-95ffdba4]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 22px 0;padding:14px;border:1px solid var(--line);border-radius:6px;background:#f9fafb}.task-detail div[data-v-95ffdba4]{display:grid;gap:4px}.task-detail span[data-v-95ffdba4]{color:var(--muted);font-size:12px}.task-detail strong[data-v-95ffdba4]{color:var(--text);font-size:13px;line-height:1.6}.form-grid[data-v-95ffdba4]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px 22px}.form-field.full[data-v-95ffdba4]{grid-column:1 / -1}.dialog-error[data-v-95ffdba4]{margin:0;padding:0 22px 14px;font-size:13px;font-weight:700}.dialog-actions[data-v-95ffdba4]{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--line)}.cancel-button[data-v-95ffdba4],.save-button[data-v-95ffdba4]{height:38px;border-radius:6px;padding:0 18px;cursor:pointer;font-weight:700}.cancel-button[data-v-95ffdba4]{border:1px solid var(--line);background:#fff;color:var(--text)}.save-button[data-v-95ffdba4]{border:0;background:var(--primary);color:#fff}.cancel-button[data-v-95ffdba4]:disabled,.save-button[data-v-95ffdba4]:disabled{cursor:not-allowed;opacity:.6}@media(max-width:800px){.filter-grid[data-v-95ffdba4],.form-grid[data-v-95ffdba4],.task-detail[data-v-95ffdba4]{grid-template-columns:1fr}.dialog-backdrop[data-v-95ffdba4]{padding:10px}.feedback-dialog[data-v-95ffdba4]{max-height:calc(100vh - 20px)}}.stat-card[data-v-7b09f308]{min-height:104px;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.stat-card span[data-v-7b09f308]{display:block;color:var(--muted);font-size:14px}.stat-card strong[data-v-7b09f308]{display:block;margin-top:12px;color:var(--ink);font-size:30px;line-height:1}.stat-card.blue[data-v-7b09f308]{border-top:3px solid var(--primary)}.stat-card.green[data-v-7b09f308]{border-top:3px solid var(--success)}.stat-card.amber[data-v-7b09f308]{border-top:3px solid var(--accent)}.stat-card.red[data-v-7b09f308]{border-top:3px solid var(--danger)}:root{--bg: #f3f4f6;--surface: #ffffff;--line: #e5e7eb;--ink: #111827;--text: #374151;--muted: #6b7280;--primary: #1677ff;--success: #07c160;--accent: #f59e0b;--danger: #dc2626}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}button,a{font:inherit}.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#111827;color:#d1d5db;padding:28px 18px}.brand{display:grid;gap:4px;margin-bottom:34px;padding:0 10px}.brand span{color:#93c5fd;font-size:14px}.brand strong{color:#fff;font-size:24px}.sidebar nav{display:grid;gap:8px}.sidebar button{width:100%;border:0;border-radius:8px;background:transparent;padding:12px 14px;color:inherit;text-align:left;text-decoration:none;cursor:pointer}.sidebar button.active,.sidebar button:hover{background:#1f2937;color:#fff}.content{min-width:0;padding:28px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.topbar p{margin:0 0 6px;color:var(--muted);font-size:14px}.topbar h1{margin:0;color:var(--ink);font-size:28px}.loading{border-radius:999px;background:#eff6ff;color:var(--primary);padding:8px 14px;font-size:13px;font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.tables{display:grid;gap:18px;min-width:0;margin-bottom:18px}.empty-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:28px}.empty-panel h2{margin:0 0 8px;color:var(--ink);font-size:18px}.empty-panel p{margin:0;color:var(--muted);line-height:1.7}.manager-panel{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.manager-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}.manager-head h2{margin:0 0 4px;color:var(--ink);font-size:17px}.manager-head p{margin:0;color:var(--muted);font-size:13px}.teacher-form{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(180px,1.2fr) minmax(120px,.7fr) 112px;gap:12px;align-items:end;padding:18px 20px;border-bottom:1px solid var(--line)}.form-field{display:grid;gap:8px;min-width:0}.form-field span{color:var(--muted);font-size:13px;font-weight:700}.form-field input,.form-field select{width:100%;height:40px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);padding:0 12px;outline:none}.form-field input:focus,.form-field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1677ff1f}.primary-button,.ghost-button,.table-action{border:0;border-radius:6px;cursor:pointer;font-weight:700}.admin-login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f5f6f8}.admin-login-panel{width:min(420px,100%);display:grid;gap:18px;padding:32px;border:1px solid var(--line);border-radius:8px;background:#fff}.admin-login-brand{margin:0;padding:0}.admin-login-panel h1{margin:0;font-size:24px}.admin-login-panel label{display:grid;gap:8px;color:var(--muted);font-size:14px;font-weight:700}.admin-login-panel input{height:42px;padding:0 12px;border:1px solid var(--line);border-radius:6px;font:inherit;color:var(--text)}.admin-login-panel button{height:42px;border:0;border-radius:6px;background:var(--primary);color:#fff;font-weight:700}.admin-login-panel button:disabled{opacity:.6}.form-error{margin:0;color:#b42318;font-size:14px}.topbar-actions{display:flex;align-items:center;gap:12px}.logout-button{border:1px solid var(--line);background:#fff;color:var(--text);padding:8px 12px}.primary-button{height:40px;background:var(--primary);color:#fff}.primary-button:disabled{cursor:not-allowed;opacity:.6}.ghost-button{border:1px solid var(--line);background:#fff;color:var(--text);padding:8px 12px}.error-text{margin:0;padding:0 20px 14px;color:var(--danger);font-size:13px;font-weight:700}.teacher-table-wrap{border-top:0;overflow-x:auto}.teacher-table{width:100%;border-collapse:collapse;font-size:14px}.teacher-table th,.teacher-table td{padding:14px 20px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}.teacher-table th{color:var(--muted);font-weight:700;background:#f9fafb}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:26px;border-radius:999px;font-size:12px;font-weight:700}.status-pill.active{background:#ecfdf3;color:#047857}.status-pill.inactive{background:#f3f4f6;color:#4b5563}.row-actions{display:flex;gap:8px}.table-action{border:1px solid var(--line);background:#fff;color:var(--primary);padding:7px 10px}@media(max-width:800px){.admin-shell{display:block;max-width:100%;overflow-x:hidden}.sidebar{min-width:0;max-width:100%;padding:16px}.brand{display:flex;align-items:baseline;gap:8px;margin-bottom:14px;padding:0 4px}.brand strong{font-size:20px}.sidebar nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.sidebar button{width:auto;flex:0 0 auto;padding:10px 12px}.content{width:100%;max-width:100%;overflow-x:hidden;padding:18px 14px}.topbar h1{font-size:24px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.manager-head{align-items:flex-start;flex-direction:column}.teacher-form{grid-template-columns:1fr}}
