.progress[data-v-12f8dda4]{display:flex;align-items:center;position:relative}.progress .onehundred-icon[data-v-12f8dda4]{position:absolute;width:24px;height:24px;border-radius:50%;background:#ffbf00;display:flex;align-items:center;justify-content:center}.progress .onehundred-icon svg[data-v-12f8dda4]{font-size:16px;color:#43266d}.progress .outside[data-v-12f8dda4]{flex:1;padding:3px;border-radius:15px;height:30px}.progress .bar[data-v-12f8dda4]{flex:1;width:100%;height:100%;display:flex;align-items:center;margin-right:10px;border-radius:15px;overflow:hidden}.progress .bar>div[data-v-12f8dda4]{height:100%}.progress .bar .left[data-v-12f8dda4]{border-radius:15px 0 0 15px}.progress .bar .right[data-v-12f8dda4]{background-color:#fff;border-radius:0 15px 15px 0}.progress .text[data-v-12f8dda4]{width:100px}.tooltip[data-v-12f8dda4]{display:flex;gap:5px;min-width:320px}.tooltip>div[data-v-12f8dda4]{flex:1;white-space:nowrap}.loading[data-v-12f8dda4]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(10,10,10,.4);display:flex;align-items:center;z-index:200}.loading .sk-folding-cube[data-v-12f8dda4]{margin:20px auto;width:40px;height:40px;position:relative;transform:rotate(45deg)}.loading .sk-folding-cube .sk-cube[data-v-12f8dda4]{float:left;width:50%;height:50%;position:relative;transform:scale(1.1)}.loading .sk-folding-cube .sk-cube[data-v-12f8dda4]:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#43266d;animation:sk-foldCubeAngle-12f8dda4 2.4s linear infinite both;transform-origin:100% 100%}.loading .sk-folding-cube .sk-cube2[data-v-12f8dda4]{transform:scale(1.1) rotate(90deg)}.loading .sk-folding-cube .sk-cube3[data-v-12f8dda4]{transform:scale(1.1) rotate(180deg)}.loading .sk-folding-cube .sk-cube4[data-v-12f8dda4]{transform:scale(1.1) rotate(270deg)}.loading .sk-folding-cube .sk-cube2[data-v-12f8dda4]:before{animation-delay:.3s}.loading .sk-folding-cube .sk-cube3[data-v-12f8dda4]:before{animation-delay:.6s}.loading .sk-folding-cube .sk-cube4[data-v-12f8dda4]:before{animation-delay:.9s}@keyframes sk-foldCubeAngle-12f8dda4{0%,10%{transform:perspective(140px) rotateX(-180deg);opacity:0}25%,75%{transform:perspective(140px) rotateX(0deg);opacity:1}90%,to{transform:perspective(140px) rotateY(180deg);opacity:0}}.progress[data-v-d7601688]{display:flex;align-items:center;position:relative}.progress .onehundred-icon[data-v-d7601688]{position:absolute;width:24px;height:24px;border-radius:50%;background:#ffbf00;display:flex;align-items:center;justify-content:center}.progress .onehundred-icon svg[data-v-d7601688]{font-size:16px;color:#43266d}.progress .outside[data-v-d7601688]{flex:1;padding:3px;border-radius:15px;height:30px}.progress .bar[data-v-d7601688]{flex:1;width:100%;height:100%;display:flex;align-items:center;margin-right:10px;border-radius:15px;overflow:hidden}.progress .bar>div[data-v-d7601688]{height:100%}.progress .bar .left[data-v-d7601688]{border-radius:15px 0 0 15px}.progress .bar .right[data-v-d7601688]{background-color:#fff;border-radius:0 15px 15px 0}.progress .text[data-v-d7601688]{width:100px}.tooltip[data-v-d7601688]{display:flex;gap:5px;min-width:320px}.tooltip>div[data-v-d7601688]{flex:1;white-space:nowrap}.adminTutorList[data-v-d7601688]{padding:30px 6% 60px;background:linear-gradient(180deg,#f8f4ff,#fff);min-height:100vh}.adminTutorList .page-header[data-v-d7601688]{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:24px}.adminTutorList .page-header .header-icon[data-v-d7601688]{font-size:30px;color:#43266d}.adminTutorList .page-header .header-text[data-v-d7601688]{font-size:28px;font-weight:700;color:#43266d}.adminTutorList .stats-bar[data-v-d7601688]{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:22px}.adminTutorList .stats-bar .stat[data-v-d7601688]{background:#fff;border-radius:12px;padding:16px 20px;box-shadow:0 2px 8px rgba(67,38,109,.06);text-align:center}.adminTutorList .stats-bar .stat .stat-value[data-v-d7601688]{font-size:30px;font-weight:700;color:#1f2937;line-height:1.1}.adminTutorList .stats-bar .stat .stat-label[data-v-d7601688]{font-size:13px;color:#6b7280;margin-top:4px}.adminTutorList .stats-bar .stat.ok .stat-value[data-v-d7601688]{color:#16a34a}.adminTutorList .stats-bar .stat.warn[data-v-d7601688]{background:#fef3c7}.adminTutorList .stats-bar .stat.warn .stat-value[data-v-d7601688]{color:#92400e}.adminTutorList .actions[data-v-d7601688]{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:12px}.adminTutorList .actions .filter-group[data-v-d7601688]{display:flex;align-items:center;gap:8px;font-size:14px;color:#444;flex-wrap:wrap}.adminTutorList .actions .filter-group label[data-v-d7601688]{white-space:nowrap}.adminTutorList .actions .filter-group .search-input[data-v-d7601688],.adminTutorList .actions .filter-group select[data-v-d7601688]{padding:7px 10px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:14px;font-family:inherit}.adminTutorList .actions .filter-group .search-input[data-v-d7601688]{min-width:220px}.adminTutorList .btn[data-v-d7601688]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #ccc;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;transition:all .15s;font-family:inherit}.adminTutorList .btn[data-v-d7601688]:hover{background:#f5f5f5}.adminTutorList .btn[data-v-d7601688]:disabled{opacity:.5;cursor:wait}.adminTutorList .btn.primary[data-v-d7601688]{background:#43266d;color:#fff;border-color:#43266d}.adminTutorList .btn.primary[data-v-d7601688]:hover:not(:disabled){opacity:.9}.adminTutorList .btn.danger[data-v-d7601688]{color:#dc2626;border-color:#fca5a5}.adminTutorList .btn.danger[data-v-d7601688]:hover{background:#fee2e2}.adminTutorList .btn.small[data-v-d7601688]{padding:5px 11px;font-size:12px}.adminTutorList .card.section[data-v-d7601688]{background:#fff;border-radius:14px;padding:22px;margin-bottom:22px;box-shadow:0 2px 10px rgba(67,38,109,.08)}.adminTutorList .card.section h3[data-v-d7601688]{margin:0 0 16px;font-size:17px;color:#333;padding-bottom:10px;border-bottom:1px solid #eee;display:flex;align-items:center;gap:8px}.adminTutorList .card.section h3 svg[data-v-d7601688]{color:#43266d}.adminTutorList .card.section h3 .muted[data-v-d7601688]{color:#9ca3af;font-weight:400;font-size:14px}.adminTutorList .card.section .empty[data-v-d7601688]{color:#888;font-size:14px;padding:28px 0;text-align:center}.adminTutorList .tutor-grid[data-v-d7601688]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.adminTutorList .booking-filters[data-v-d7601688]{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.adminTutorList .booking-filters .bf-group[data-v-d7601688]{display:flex;flex-wrap:wrap;gap:4px}.adminTutorList .booking-filters .bf-search[data-v-d7601688]{flex:1;min-width:200px;padding:7px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit}.adminTutorList .filter-chip[data-v-d7601688]{background:#f3f4f6;border:1px solid transparent;color:#374151;font-size:12.5px;padding:5px 11px;border-radius:14px;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:5px;font-family:inherit}.adminTutorList .filter-chip[data-v-d7601688]:hover{background:#e5e7eb}.adminTutorList .filter-chip.on[data-v-d7601688]{background:#43266d;color:#fff;border-color:#43266d}.adminTutorList .filter-chip.clear[data-v-d7601688]{background:#fef3c7;color:#92400e}.adminTutorList .filter-chip .chip-count[data-v-d7601688]{background:hsla(0,0%,100%,.5);padding:0 6px;border-radius:8px;font-size:11px;font-weight:600}.adminTutorList .filter-chip.on .chip-count[data-v-d7601688]{background:hsla(0,0%,100%,.25)}.adminTutorList .pending-badge[data-v-d7601688]{position:absolute;top:-7px;right:-7px;background:#f59e0b;color:#fff;padding:3px 9px;border-radius:10px;font-size:11px;font-weight:700;cursor:pointer;box-shadow:0 2px 6px rgba(245,158,11,.4);z-index:2}.adminTutorList .pending-badge[data-v-d7601688]:hover{background:#d97706}.adminTutorList .actions-stack[data-v-d7601688]{display:flex;flex-direction:column;gap:4px}.adminTutorList .actions-stack .btn[data-v-d7601688]{justify-content:flex-start}.adminTutorList .tutor-card[data-v-d7601688]{display:flex;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px;transition:all .15s;position:relative}.adminTutorList .tutor-card[data-v-d7601688]:hover{box-shadow:0 4px 14px rgba(0,0,0,.1)}.adminTutorList .tutor-card.inactive[data-v-d7601688]{opacity:.55;background:#fafafa}.adminTutorList .tutor-card .tc-photo[data-v-d7601688]{flex:0 0 72px;width:72px;height:72px;border-radius:8px;overflow:hidden;margin-right:14px;background:#f3f4f6}.adminTutorList .tutor-card .tc-photo img[data-v-d7601688]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.adminTutorList .tutor-card .tc-photo .tc-photo-placeholder[data-v-d7601688]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:28px}.adminTutorList .tutor-card .tc-body[data-v-d7601688]{flex:1;min-width:0}.adminTutorList .tutor-card .tc-row1[data-v-d7601688]{display:flex;gap:6px;align-items:center;margin-bottom:4px}.adminTutorList .tutor-card .tc-name[data-v-d7601688]{font-size:15px;font-weight:700;color:#1f2937;margin:4px 0}.adminTutorList .tutor-card .tc-desc[data-v-d7601688]{font-size:12.5px;color:#6b7280;line-height:1.4;margin:4px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.adminTutorList .tutor-card .tc-meta[data-v-d7601688]{display:flex;flex-wrap:wrap;gap:8px;font-size:11.5px;color:#6b7280}.adminTutorList .tutor-card .tc-meta span[data-v-d7601688]{display:inline-flex;align-items:center;gap:4px}.adminTutorList .tutor-card .tc-meta svg[data-v-d7601688]{color:#9ca3af}.adminTutorList .tutor-card .tc-actions[data-v-d7601688]{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;align-self:flex-start}.adminTutorList .subject-badge[data-v-d7601688]{display:inline-block;padding:2px 9px;border-radius:10px;font-size:11px;font-weight:600}.adminTutorList .subject-badge.s-math[data-v-d7601688]{background:#fce7f3;color:#be185d}.adminTutorList .subject-badge.s-english[data-v-d7601688]{background:#cffafe;color:#0e7490}.adminTutorList .status-badge[data-v-d7601688]{display:inline-block;padding:2px 9px;border-radius:10px;font-size:11px;font-weight:600}.adminTutorList .status-badge.on[data-v-d7601688]{background:#d1fae5;color:#065f46}.adminTutorList .status-badge.off[data-v-d7601688]{background:#f3f4f6;color:#6b7280}.adminTutorList .status-badge.bk-pending[data-v-d7601688]{background:#fef3c7;color:#92400e}.adminTutorList .status-badge.bk-confirmed[data-v-d7601688]{background:#d1fae5;color:#065f46}.adminTutorList .status-badge.bk-cancelled[data-v-d7601688]{background:#fee2e2;color:#991b1b}.adminTutorList .status-badge.bk-completed[data-v-d7601688]{background:#dbeafe;color:#1e40af}.adminTutorList .status-select[data-v-d7601688]{padding:3px 6px;border-radius:8px;font-size:11px;font-weight:600;border:1px solid transparent;cursor:pointer}.adminTutorList .status-select[data-v-d7601688]:disabled{opacity:.5;cursor:wait}.adminTutorList .status-select.bk-pending[data-v-d7601688]{background:#fef3c7;color:#92400e}.adminTutorList .status-select.bk-confirmed[data-v-d7601688]{background:#d1fae5;color:#065f46}.adminTutorList .status-select.bk-cancelled[data-v-d7601688]{background:#fee2e2;color:#991b1b}.adminTutorList .status-select.bk-completed[data-v-d7601688]{background:#dbeafe;color:#1e40af}.adminTutorList .data-table[data-v-d7601688]{width:100%;border-collapse:collapse;font-size:13px}.adminTutorList .data-table td[data-v-d7601688],.adminTutorList .data-table th[data-v-d7601688]{padding:9px 10px;text-align:left;border-bottom:1px solid #f0f0f0;vertical-align:middle}.adminTutorList .data-table th[data-v-d7601688]{background:#fafafa;font-weight:600;color:#555;font-size:12px}.adminTutorList .data-table tr:hover td[data-v-d7601688]{background:#fafbff}.adminTutorList .data-table .nowrap[data-v-d7601688]{white-space:nowrap}.adminTutorList .data-table .wrap[data-v-d7601688]{max-width:220px;word-break:break-word;white-space:normal}.adminTutorList .data-table .contact[data-v-d7601688]{font-size:12.5px}.adminTutorList .data-table .contact .muted[data-v-d7601688]{color:#9ca3af;font-size:11px}.adminTutorList .data-table .muted[data-v-d7601688]{color:#9ca3af}.adminTutorList .tutor-modal-body[data-v-d7601688]{display:grid;grid-template-columns:1fr 280px;gap:24px}@media (max-width:760px){.adminTutorList .tutor-modal-body[data-v-d7601688]{grid-template-columns:1fr}}.adminTutorList .tutor-modal-body fieldset[data-v-d7601688]{border:1px solid #e5e7eb;border-radius:10px;padding:12px 16px 4px;margin-bottom:14px}.adminTutorList .tutor-modal-body fieldset legend[data-v-d7601688]{font-size:12px;color:#43266d;font-weight:700;padding:0 6px;letter-spacing:.05em}.adminTutorList .tutor-modal-body label[data-v-d7601688]{display:block;font-size:13px;color:#444;margin-bottom:12px}.adminTutorList .tutor-modal-body label.req[data-v-d7601688]:before{content:"* ";color:#dc2626;font-weight:700}.adminTutorList .tutor-modal-body label.check[data-v-d7601688]{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:14px;color:#1f2937;cursor:pointer}.adminTutorList .tutor-modal-body label.check input[data-v-d7601688]{width:auto;margin:0}.adminTutorList .tutor-modal-body input[data-v-d7601688]:not([type=checkbox]):not([type=file]),.adminTutorList .tutor-modal-body select[data-v-d7601688],.adminTutorList .tutor-modal-body textarea[data-v-d7601688]{display:block;width:100%;box-sizing:border-box;padding:7px 10px;margin-top:4px;border:1px solid #ccc;border-radius:6px;font-size:14px;font-family:inherit}.adminTutorList .tutor-modal-body input[data-v-d7601688]:not([type=checkbox]):not([type=file]):focus,.adminTutorList .tutor-modal-body select[data-v-d7601688]:focus,.adminTutorList .tutor-modal-body textarea[data-v-d7601688]:focus{outline:none;border-color:#43266d;box-shadow:0 0 0 2px rgba(99,102,241,.15)}.adminTutorList .tutor-modal-body textarea[data-v-d7601688]{resize:vertical;min-height:60px}.adminTutorList .tutor-modal-body .row[data-v-d7601688]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.adminTutorList .tutor-modal-body .avail-actions[data-v-d7601688]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}.adminTutorList .tutor-modal-body .avail-actions .avail-hint[data-v-d7601688]{flex:1;min-width:0;font-size:12px;color:#6b7280}.adminTutorList .tutor-modal-body .avail-grid[data-v-d7601688]{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;background:#fff}.adminTutorList .tutor-modal-body .avail-grid .ag-row[data-v-d7601688]{display:grid;grid-template-columns:56px repeat(7,1fr)}.adminTutorList .tutor-modal-body .avail-grid .ag-row.ag-head[data-v-d7601688]{background:#f9fafb}.adminTutorList .tutor-modal-body .avail-grid .ag-h-day[data-v-d7601688],.adminTutorList .tutor-modal-body .avail-grid .ag-h-time[data-v-d7601688]{font-size:11px;color:#6b7280;padding:6px 4px;text-align:center;font-weight:600;border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0}.adminTutorList .tutor-modal-body .avail-grid .ag-h-day[data-v-d7601688]:last-child{border-right:0}.adminTutorList .tutor-modal-body .avail-grid .ag-row:not(.ag-head) .ag-h-time[data-v-d7601688]{font-weight:400;background:#fafafa}.adminTutorList .tutor-modal-body .avail-grid .ag-cell[data-v-d7601688]{height:22px;cursor:pointer;background:#fff;border-bottom:1px solid #f3f4f6;border-right:1px solid #f3f4f6;transition:background .1s}.adminTutorList .tutor-modal-body .avail-grid .ag-cell[data-v-d7601688]:hover{background:#ede9fe}.adminTutorList .tutor-modal-body .avail-grid .ag-cell.on[data-v-d7601688]{background:#43266d}.adminTutorList .tutor-modal-body .avail-grid .ag-cell.on[data-v-d7601688]:hover{background:rgba(99,102,241,.85)}.adminTutorList .tutor-modal-body .avail-grid .ag-cell[data-v-d7601688]:last-child{border-right:0}.adminTutorList .tutor-modal-body .avail-grid .ag-row:last-child .ag-cell[data-v-d7601688]{border-bottom:0}.adminTutorList .tutor-modal-body .photo-uploader[data-v-d7601688]{display:flex;gap:14px;margin-bottom:12px}.adminTutorList .tutor-modal-body .photo-uploader .photo-preview[data-v-d7601688]{flex:0 0 90px;width:90px;height:90px;border-radius:8px;overflow:hidden;background:#f3f4f6;border:1px solid #e5e7eb}.adminTutorList .tutor-modal-body .photo-uploader .photo-preview img[data-v-d7601688]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.adminTutorList .tutor-modal-body .photo-uploader .photo-preview .ph[data-v-d7601688]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#9ca3af;font-size:28px}.adminTutorList .tutor-modal-body .photo-uploader .photo-actions[data-v-d7601688]{flex:1;display:flex;flex-direction:column;gap:6px}.adminTutorList .tutor-modal-body .photo-uploader .photo-actions .upload-btn[data-v-d7601688]{position:relative;cursor:pointer}.adminTutorList .tutor-modal-body .photo-uploader .photo-actions .upload-btn input[type=file][data-v-d7601688]{position:absolute;inset:0;opacity:0;cursor:pointer}.adminTutorList .tutor-modal-body .photo-uploader .photo-actions .photo-url[data-v-d7601688]{flex:1;padding:6px 8px;font-size:12px;color:#6b7280;margin-top:4px}.adminTutorList .tutor-modal-body .err-banner[data-v-d7601688],.adminTutorList .tutor-modal-body .ok-banner[data-v-d7601688]{padding:8px 12px;border-radius:6px;font-size:13px;margin-bottom:10px}.adminTutorList .tutor-modal-body .err-banner[data-v-d7601688]{background:#fee2e2;color:#991b1b}.adminTutorList .tutor-modal-body .ok-banner[data-v-d7601688]{background:#d1fae5;color:#065f46}.adminTutorList .tutor-modal-body .preview-side[data-v-d7601688]{align-self:start}.adminTutorList .tutor-modal-body .preview-side .preview-label[data-v-d7601688]{font-size:12px;color:#6b7280;font-weight:600;letter-spacing:.05em;margin-bottom:8px}.adminTutorList .tutor-modal-body .preview-side .preview-card[data-v-d7601688]{position:relative;background:#fff;padding:14px 16px;border:1px solid #d4d4d4;border-radius:4px;font-family:Noto Sans TC,sans-serif}.adminTutorList .tutor-modal-body .preview-side .preview-card.dim[data-v-d7601688]{opacity:.5}.adminTutorList .tutor-modal-body .preview-side .preview-card .ft-num[data-v-d7601688]{font-family:monospace;font-size:10px;letter-spacing:.18em;color:#6b7280}.adminTutorList .tutor-modal-body .preview-side .preview-card .ft-photo[data-v-d7601688]{width:100%;max-height:130px;-o-object-fit:cover;object-fit:cover;margin:8px 0;border:1px solid #e5e7eb}.adminTutorList .tutor-modal-body .preview-side .preview-card .ft-name[data-v-d7601688]{font-family:Cormorant Garamond,serif;font-size:18px;margin:6px 0 4px;font-weight:500;color:#1f2937}.adminTutorList .tutor-modal-body .preview-side .preview-card .ft-desc[data-v-d7601688]{font-size:12px;color:#6b7280;line-height:1.5;margin-bottom:6px}.adminTutorList .tutor-modal-body .preview-side .preview-card .ft-meta[data-v-d7601688]{font-size:11px;color:#6b7280;margin-bottom:4px}.adminTutorList .tutor-modal-body .preview-side .preview-card .ft-tag[data-v-d7601688]{font-family:monospace;font-size:10px;color:#1c5b75;letter-spacing:.04em;word-break:break-all}.adminTutorList .tutor-modal-body .preview-side .preview-card .ft-btn-mock[data-v-d7601688]{margin-top:12px;padding:8px 0;background:#1c5b75;color:#fff;text-align:center;font-size:13px;letter-spacing:.05em}.adminTutorList .tutor-modal-body .preview-side .preview-card .dim-overlay[data-v-d7601688]{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.7);color:#fff;padding:2px 8px;border-radius:4px;font-size:11px}.adminTutorList .toast[data-v-d7601688]{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#1f2937;color:#fff;padding:12px 22px;border-radius:8px;font-size:14px;z-index:2000;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);box-shadow:0 6px 20px rgba(0,0,0,.25)}.adminTutorList .toast.ok[data-v-d7601688]{background:#15803d}.adminTutorList .toast.err[data-v-d7601688]{background:#b91c1c}.adminTutorList .toast-enter-active[data-v-d7601688],.adminTutorList .toast-leave-active[data-v-d7601688]{transition:all .25s}.adminTutorList .toast-enter[data-v-d7601688],.adminTutorList .toast-leave-to[data-v-d7601688]{opacity:0;transform:translateX(-50%) translateY(20px)}