.login-container[data-v-31e396d8]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e1b4b,#312e81);padding:1.5rem}.login-card[data-v-31e396d8]{background:#fffffff2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:100%;max-width:480px;border-radius:1.25rem;padding:2.5rem;box-shadow:0 25px 50px -12px #00000040;border:1px solid rgba(255,255,255,.2)}.brand-header[data-v-31e396d8]{text-align:center;margin-bottom:2rem}.logo-badge[data-v-31e396d8]{display:inline-block;background:var(--primary);color:#fff;font-weight:800;font-size:.875rem;letter-spacing:.1em;padding:.35rem .85rem;border-radius:9999px;margin-bottom:.75rem;box-shadow:0 4px 12px #4f46e54d}.brand-title[data-v-31e396d8]{font-size:1.65rem;color:var(--text-main);margin-bottom:.35rem}.brand-subtitle[data-v-31e396d8]{font-size:.875rem;color:var(--text-muted)}.domain-rules[data-v-31e396d8]{background-color:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;margin-bottom:1.5rem;font-size:.85rem}.rule-item[data-v-31e396d8]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.rule-item[data-v-31e396d8]:last-child{margin-bottom:0}.dot[data-v-31e396d8]{width:8px;height:8px;border-radius:50%}.dot.teacher[data-v-31e396d8]{background-color:var(--primary)}.dot.student[data-v-31e396d8]{background-color:var(--accent-emerald)}.error-alert[data-v-31e396d8]{background-color:var(--accent-rose-light);color:#991b1b;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.825rem;margin-bottom:1.25rem;border:1px solid #fca5a5}.login-btn[data-v-31e396d8]{width:100%;padding:.85rem;font-size:1rem;font-weight:600;margin-bottom:1.75rem}.google-icon[data-v-31e396d8]{width:20px;height:20px}.system-status[data-v-31e396d8]{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.775rem;color:var(--text-muted)}.status-dot[data-v-31e396d8]{width:6px;height:6px;border-radius:50%}.status-dot.online[data-v-31e396d8]{background-color:var(--accent-emerald);box-shadow:0 0 8px var(--accent-emerald)}.denied-container[data-v-7f47e75b]{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-main);padding:1.5rem}.denied-card[data-v-7f47e75b]{background:#fff;max-width:520px;width:100%;border-radius:var(--radius-xl);padding:2.5rem;box-shadow:var(--shadow-xl);border:1px solid var(--border-color);text-align:center}.shield-icon[data-v-7f47e75b]{width:72px;height:72px;background-color:var(--accent-rose-light);color:var(--accent-rose);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.shield-icon svg[data-v-7f47e75b]{width:36px;height:36px}.denied-title[data-v-7f47e75b]{font-size:1.5rem;color:var(--text-main);margin-bottom:.75rem}.denied-message[data-v-7f47e75b]{font-size:.95rem;color:var(--text-muted);margin-bottom:1.5rem;line-height:1.6}.info-box[data-v-7f47e75b]{background-color:#f8fafc;border-radius:var(--radius-md);padding:1.25rem;text-align:left;margin-bottom:1.75rem;border-left:4px solid var(--accent-rose)}.info-box h4[data-v-7f47e75b]{font-size:.875rem;margin-bottom:.5rem;color:var(--text-main)}.info-box ul[data-v-7f47e75b]{padding-left:1.25rem;font-size:.825rem;color:var(--text-muted)}.info-box li[data-v-7f47e75b]{margin-bottom:.35rem}.actions[data-v-7f47e75b]{display:flex;gap:1rem;justify-content:center}.export-modal[data-v-04c2bb85]{width:820px;max-width:95vw}.modal-header[data-v-04c2bb85]{display:flex;justify-content:space-between;align-items:flex-start}.close-btn[data-v-04c2bb85]{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--text-secondary)}.tab-nav[data-v-04c2bb85]{display:flex;gap:.5rem;border-bottom:2px solid var(--border-color);padding-bottom:.5rem}.tab-btn[data-v-04c2bb85]{padding:.5rem 1.25rem;border:none;border-radius:var(--radius-md);background:transparent;font-size:.95rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s}.tab-btn[data-v-04c2bb85]:hover{background:var(--bg-hover);color:var(--text-main)}.tab-btn.active[data-v-04c2bb85]{background:var(--primary-light, #e0f2fe);color:var(--primary-color, #0284c7)}.filter-grid[data-v-04c2bb85]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.assignment-picker-card[data-v-04c2bb85]{background:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem 1rem}.picker-header[data-v-04c2bb85]{display:flex;justify-content:space-between;align-items:center}.picker-actions[data-v-04c2bb85]{display:flex;gap:.5rem}.assignment-checkbox-grid[data-v-04c2bb85]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem 1rem;max-height:140px;overflow-y:auto;padding:.25rem 0}.checkbox-label[data-v-04c2bb85]{display:flex;align-items:center;gap:.35rem;font-size:.85rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.date-filter-wrap[data-v-04c2bb85]{display:flex;align-items:center;gap:1rem;background:var(--bg-main);padding:.75rem 1rem;border-radius:var(--radius-md);border:1fr solid var(--border-color)}.date-inputs[data-v-04c2bb85]{display:flex;align-items:center;gap:.75rem}.date-field[data-v-04c2bb85]{display:flex;align-items:center;gap:.5rem}.date-field .form-label[data-v-04c2bb85]{margin-bottom:0;white-space:nowrap;font-size:.85rem}.date-sep[data-v-04c2bb85]{color:var(--text-secondary);font-size:.85rem}.report-preview[data-v-04c2bb85]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem}.preview-header[data-v-04c2bb85]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.summary-text[data-v-04c2bb85]{font-size:.85rem;color:var(--text-secondary);font-weight:500}.preview-table-wrap[data-v-04c2bb85]{max-height:240px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.preview-more-hint[data-v-04c2bb85]{margin-top:.5rem;font-size:.8rem;color:var(--text-muted);text-align:right}@media (max-width: 640px){.filter-grid[data-v-04c2bb85]{grid-template-columns:1fr}.date-filter-wrap[data-v-04c2bb85],.date-inputs[data-v-04c2bb85]{flex-direction:column;align-items:stretch}}.comment-thread[data-v-d9504192]{display:flex;flex-direction:column;gap:.6rem}.comment-list[data-v-d9504192]{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.comment-empty-text[data-v-d9504192]{text-align:center;color:#94a3b8;font-size:.82rem;padding:1.2rem 0}.comment-bubble-row[data-v-d9504192]{display:flex}.comment-bubble-row.is-teacher[data-v-d9504192]{justify-content:flex-end}.comment-bubble-row.is-student[data-v-d9504192]{justify-content:flex-start}.comment-bubble[data-v-d9504192]{max-width:78%;padding:.5rem .7rem;border-radius:10px;box-shadow:0 1px 2px #0000000d}.comment-bubble-row.is-teacher .comment-bubble[data-v-d9504192]{background:#eef2ff;border:1px solid #c7d2fe}.comment-bubble-row.is-student .comment-bubble[data-v-d9504192]{background:#fff;border:1px solid #e2e8f0}.comment-author-name[data-v-d9504192]{display:block;font-size:.72rem;font-weight:700;color:#475569;margin-bottom:.15rem}.comment-message[data-v-d9504192]{margin:0;font-size:.85rem;color:#1e293b;white-space:pre-wrap;word-break:break-word}.comment-time[data-v-d9504192]{display:block;font-size:.65rem;color:#94a3b8;margin-top:.2rem;text-align:right}.comment-input-row[data-v-d9504192]{display:flex;align-items:flex-end;gap:.5rem}.comment-input[data-v-d9504192]{flex:1;resize:vertical;min-height:44px}.quiz-import-toolbar[data-v-cd63d66c]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.hidden-file-input[data-v-cd63d66c]{display:none}.quiz-question-header[data-v-cd63d66c]{display:flex;align-items:center;justify-content:space-between}.quiz-question-index[data-v-cd63d66c]{font-weight:700;color:var(--text-main);font-size:.9rem}.quiz-option-row[data-v-cd63d66c]{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.quiz-option-row .form-input[data-v-cd63d66c]{flex:1}.quiz-score-banner[data-v-4b79ac9d]{padding:.75rem 1rem;text-align:center}.quiz-score-text[data-v-4b79ac9d]{font-size:1.05rem;font-weight:700;color:var(--text-main)}.quiz-review-header[data-v-4b79ac9d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.quiz-review-index[data-v-4b79ac9d]{font-weight:700;font-size:.85rem;color:var(--text-main)}.quiz-review-question[data-v-4b79ac9d]{font-size:.88rem;color:var(--text-main);margin:0 0 .35rem}.quiz-review-answer[data-v-4b79ac9d],.quiz-review-correct[data-v-4b79ac9d]{font-size:.82rem;color:var(--text-muted);margin:.15rem 0}.quiz-review-correct[data-v-4b79ac9d]{color:#065f46;font-weight:600}.quiz-question-title[data-v-4b79ac9d]{font-size:.9rem;font-weight:600;color:var(--text-main);margin:0 0 .5rem}.quiz-answer-options[data-v-4b79ac9d]{display:flex;flex-direction:column;gap:.35rem}.quiz-answer-option-label[data-v-4b79ac9d]{display:flex;align-items:center;gap:.4rem}.youtube-preview[data-v-09c335c8]{width:100%;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color);background-color:#000}.youtube-iframe[data-v-09c335c8]{width:100%;aspect-ratio:16 / 9;border:none}.margin-top[data-v-09c335c8]{margin-top:.5rem}.datetime-picker-wrapper[data-v-1e307872]{position:relative;display:inline-block;width:100%;max-width:380px}.picker-trigger-input[data-v-1e307872]{display:flex;align-items:center;gap:.5rem;padding:.6rem .85rem;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;font-size:.95rem}.picker-trigger-input[data-v-1e307872]:hover{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.picker-trigger-input.is-open[data-v-1e307872]{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e533}.trigger-icon[data-v-1e307872]{font-size:1.1rem}.trigger-text[data-v-1e307872]{flex:1;color:#1e293b;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trigger-text.placeholder[data-v-1e307872]{color:#94a3b8;font-weight:400}.clear-btn[data-v-1e307872]{background:transparent;border:none;color:#94a3b8;font-size:.85rem;cursor:pointer;padding:2px 4px;border-radius:4px}.clear-btn[data-v-1e307872]:hover{color:#ef4444;background:#fee2e2}.dropdown-arrow[data-v-1e307872]{font-size:.75rem;color:#64748b}.datetime-popover-card[data-v-1e307872]{position:absolute;bottom:calc(100% + 6px);left:0;z-index:999;width:330px;background:#fff;border-radius:12px;box-shadow:0 -12px 30px -5px #0f172a2e,0 -4px 12px #0f172a14;border:1px solid #e2e8f0;padding:1rem}.quick-presets[data-v-1e307872]{margin-bottom:.85rem}.preset-label[data-v-1e307872]{font-size:.75rem;font-weight:600;color:#475569;display:block;margin-bottom:.35rem}.preset-pills[data-v-1e307872]{display:flex;flex-wrap:wrap;gap:.35rem}.preset-btn[data-v-1e307872]{background:#f1f5f9;border:1px solid #e2e8f0;color:#334155;font-size:.75rem;padding:.25rem .5rem;border-radius:6px;cursor:pointer;transition:all .15s ease}.preset-btn[data-v-1e307872]:hover{background:#e0e7ff;color:#4338ca;border-color:#c7d2fe}.calendar-header[data-v-1e307872]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #f1f5f9}.current-month-label[data-v-1e307872]{font-size:.95rem;font-weight:700;color:#0f172a}.nav-btn[data-v-1e307872]{background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;color:#475569}.nav-btn[data-v-1e307872]:hover{background:#e2e8f0;color:#0f172a}.calendar-week-grid[data-v-1e307872]{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:.35rem}.week-day[data-v-1e307872]{font-size:.75rem;font-weight:600;color:#64748b}.calendar-days-grid[data-v-1e307872]{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.85rem}.day-cell[data-v-1e307872]{aspect-ratio:1;background:transparent;border:none;border-radius:8px;font-size:.85rem;color:#1e293b;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.day-cell[data-v-1e307872]:hover{background:#e0e7ff;color:#4338ca}.day-cell.other-month[data-v-1e307872]{color:#cbd5e1}.day-cell.is-today[data-v-1e307872]{font-weight:700;color:#4f46e5;background:#eef2ff}.day-cell.is-selected[data-v-1e307872]{background:linear-gradient(135deg,#4f46e5,#6366f1)!important;color:#fff!important;font-weight:700;box-shadow:0 3px 8px #4f46e559}.time-picker-section[data-v-1e307872]{display:flex;align-items:center;justify-content:space-between;background:#f8fafc;padding:.5rem .75rem;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:.85rem}.time-label[data-v-1e307872]{font-size:.825rem;font-weight:600;color:#334155}.time-controls[data-v-1e307872]{display:flex;align-items:center;gap:.25rem}.time-select[data-v-1e307872]{padding:.25rem .4rem;font-size:.85rem;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;font-weight:600}.time-colon[data-v-1e307872]{font-weight:700;color:#64748b}.popover-footer[data-v-1e307872]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-top:.5rem;border-top:1px solid #f1f5f9}.btn-footer-clear[data-v-1e307872]{background:#f1f5f9;color:#64748b;border:none;padding:.35rem .75rem;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer}.btn-footer-clear[data-v-1e307872]:hover{background:#fee2e2;color:#ef4444}.btn-footer-confirm[data-v-1e307872]{background:#059669;color:#fff;border:none;padding:.35rem .85rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s ease}.btn-footer-confirm[data-v-1e307872]:hover{background:#047857}.pop-fade-enter-active[data-v-1e307872],.pop-fade-leave-active[data-v-1e307872]{transition:all .18s cubic-bezier(.16,1,.3,1)}.pop-fade-enter-from[data-v-1e307872],.pop-fade-leave-to[data-v-1e307872]{opacity:0;transform:translateY(8px) scale(.97)}.course-module[data-v-2298af43]{padding:1.25rem}.module-header[data-v-2298af43]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.table-responsive[data-v-2298af43]{overflow-x:auto}.subtitle[data-v-2298af43]{color:var(--text-muted);font-size:.9rem}.header-actions[data-v-2298af43]{display:flex;gap:.5rem}.units-container[data-v-2298af43]{display:flex;flex-direction:column;gap:1rem}.unit-card[data-v-2298af43]{border-left:4px solid var(--primary);transition:all .2s ease}.unit-header[data-v-2298af43]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer}.unit-title-wrap[data-v-2298af43]{display:flex;align-items:center;gap:.75rem}.unit-icon[data-v-2298af43]{font-size:1.25rem}.unit-title[data-v-2298af43]{margin:0;font-size:1.1rem;font-weight:600}.unit-actions[data-v-2298af43]{display:flex;align-items:center;gap:.5rem}.unit-body[data-v-2298af43]{padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--border-color);margin-top:.5rem}.sub-unit-form-card[data-v-2298af43]{background:#f8fafc;border:1px dashed #cbd5e1;padding:1rem}.form-grid[data-v-2298af43]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:.75rem}.sub-units-list[data-v-2298af43]{display:flex;flex-direction:column;gap:.75rem}.sub-unit-item[data-v-2298af43]{border-left:3px solid #0284c7;padding:.85rem}.sub-header[data-v-2298af43]{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.sub-title-wrap[data-v-2298af43]{display:flex;align-items:center;gap:.5rem}.sub-title[data-v-2298af43]{margin:0;font-size:.95rem;font-weight:600}.sub-desc[data-v-2298af43]{font-size:.85rem;color:var(--text-muted);margin:.35rem 0 .5rem}.sub-body[data-v-2298af43]{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.section-title[data-v-2298af43]{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;font-weight:600;margin-bottom:.5rem}.materials-list[data-v-2298af43]{display:flex;flex-direction:column;gap:.5rem}.material-item[data-v-2298af43]{background:#f8fafc;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.6rem .85rem;display:flex;flex-direction:column;gap:.35rem}.mat-left[data-v-2298af43]{display:flex;align-items:center;gap:.5rem}.mat-title[data-v-2298af43]{font-size:.875rem;color:var(--primary);font-weight:500;word-break:break-all}.submission-card[data-v-2298af43]{padding:1rem;background:#f0f9ff;border:1px solid #bae6fd}.submission-details[data-v-2298af43]{font-size:.85rem}.feedback-box[data-v-2298af43]{background:#fff;padding:.5rem .75rem;border-radius:var(--radius-sm);border:1px solid #cbd5e1}.submitted-time[data-v-2298af43]{font-size:.75rem;color:var(--text-muted)}.submitted-file-item[data-v-2298af43]{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.locked-tip[data-v-2298af43]{font-size:.8rem;color:#b45309;background:#fef3c7;padding:.5rem .75rem;border-radius:var(--radius-sm)}.teacher-grading-section[data-v-2298af43]{font-size:.85rem}.score-input[data-v-2298af43]{width:90px;padding:.25rem .4rem;font-size:.8rem}.feedback-input[data-v-2298af43]{width:140px;padding:.25rem .4rem;font-size:.8rem}.action-btn-group[data-v-2298af43]{display:flex;gap:.25rem}.empty-sub-units[data-v-2298af43]{font-size:.85rem;color:var(--text-muted);text-align:center;padding:1.5rem}.empty-state[data-v-2298af43]{text-align:center;padding:3rem;color:var(--text-muted);font-size:.95rem}.bg-slate-50[data-v-2298af43]{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px}.font-bold[data-v-2298af43]{font-weight:600}.radio-group[data-v-2298af43]{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.radio-label[data-v-2298af43]{display:flex;align-items:center;gap:6px;font-size:.875rem;cursor:pointer}.pointer[data-v-2298af43]{cursor:pointer}.hidden-file-input[data-v-2298af43]{display:none}.staged-files-list[data-v-2298af43]{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto;background:#fff;padding:8px;border-radius:6px;border:1px solid #cbd5e1}.staged-file-item[data-v-2298af43]{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;padding:4px 8px;border-bottom:1px solid #f1f5f9}.file-info[data-v-2298af43]{display:flex;align-items:center;gap:6px}.resubmit-badge[data-v-2298af43]{display:block;width:fit-content}.saved-flash[data-v-2298af43]{font-size:.75rem;font-weight:600;color:#059669;white-space:nowrap}.submission-file-row[data-v-2298af43]{display:flex;align-items:center;gap:.3rem;margin-bottom:.2rem}.submission-file-link[data-v-2298af43]{color:var(--primary);font-size:.8rem;word-break:break-all}.text-content-preview[data-v-2298af43]{font-size:.8rem;color:var(--text-main);background:#f8fafc;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.35rem .5rem;margin-bottom:.35rem;white-space:pre-wrap;word-break:break-word;max-width:220px}.margin-bottom[data-v-2298af43]{margin-bottom:1rem}.margin-bottom-sm[data-v-2298af43]{margin-bottom:.5rem}.margin-top[data-v-2298af43]{margin-top:1rem}.margin-left-sm[data-v-2298af43]{margin-left:.5rem}.margin-right[data-v-2298af43]{margin-right:.5rem}.margin-top-xs[data-v-2298af43]{margin-top:.35rem}.btn-xs[data-v-2298af43]{padding:.2rem .45rem;font-size:.75rem;min-height:30px}.text-right[data-v-2298af43]{text-align:right}.text-rose[data-v-2298af43]{color:#e11d48}.is-hidden-unit[data-v-2298af43]{opacity:.78;border-left:4px solid #f59e0b}.is-hidden-sub[data-v-2298af43]{opacity:.82;border-left:3px solid #f59e0b}.btn-amber[data-v-2298af43]{background:#f59e0b;color:#fff;border:none}.btn-amber[data-v-2298af43]:hover{background:#d97706}.btn-rose[data-v-2298af43]{background:#e11d48;color:#fff;border:none}.btn-rose[data-v-2298af43]:hover{background:#be123c}.modal-card-wide[data-v-2298af43]{width:70vw;height:80vh;max-width:95vw;max-height:95vh;display:flex;flex-direction:column;overflow-y:auto}@media (max-width: 768px){.modal-card-wide[data-v-2298af43]{width:92vw;height:85vh}}.pending-resubmit-alert[data-v-2298af43]{background:linear-gradient(135deg,#eff6ff,#e0e7ff);border:1px solid #c7d2fe;padding:1.25rem}.alert-title[data-v-2298af43]{color:#1e1b4b;font-size:1.1rem;margin-bottom:.25rem}.requests-grid[data-v-2298af43]{display:flex;flex-direction:column;gap:.65rem;margin-top:.85rem}.request-card-item[data-v-2298af43]{background:#fff;border-radius:var(--radius-md);padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm);border:1px solid #e0e7ff}.request-info[data-v-2298af43]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.request-details[data-v-2298af43]{display:flex;flex-direction:column;gap:.15rem}.file-cards-grid[data-v-2298af43]{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.4rem;margin-bottom:.4rem}.file-card-item[data-v-2298af43]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:90px;padding:.55rem .45rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #0000000a;transition:all .2s cubic-bezier(.16,1,.3,1);text-decoration:none;cursor:pointer;box-sizing:border-box}.file-card-item[data-v-2298af43]:hover{transform:translateY(-2px);border-color:#6366f1;box-shadow:0 4px 12px #6366f126;background:#faf5ff}.file-card-icon-box[data-v-2298af43]{width:48px;height:48px;border-radius:8px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;font-size:1.65rem;margin-bottom:.35rem;box-shadow:inset 0 1px 2px #fffc}.file-card-name[data-v-2298af43]{font-size:.72rem;font-weight:500;color:#334155;text-align:center;word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}.file-card-item:hover .file-card-name[data-v-2298af43]{color:#4f46e5;font-weight:600}.file-card-delete-btn[data-v-2298af43]{position:absolute;top:-5px;right:-5px;width:20px;height:20px;border-radius:50%;background:#ef4444;color:#fff;border:2px solid #ffffff;font-size:.6rem;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 4px #00000026;transition:transform .15s ease;z-index:2}.file-card-delete-btn[data-v-2298af43]:hover{transform:scale(1.15);background:#dc2626}.file-card-item.mini[data-v-2298af43]{width:76px;padding:.4rem .3rem}.file-card-item.mini .file-card-icon-box[data-v-2298af43]{width:38px;height:38px;font-size:1.3rem;margin-bottom:.25rem}.file-card-item.mini .file-card-name[data-v-2298af43]{font-size:.68rem}.simulate-student-banner[data-v-2298af43]{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1.5px solid #fbbf24;color:#92400e;font-weight:600;font-size:.9rem;padding:.7rem 1rem;border-radius:10px}.batch-actions-bar[data-v-2298af43]{display:flex;flex-direction:column;align-items:stretch;gap:.65rem;padding:.75rem 1rem}.batch-select-info[data-v-2298af43]{display:flex;align-items:center;flex-wrap:wrap}.batch-action-controls[data-v-2298af43]{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .65rem;width:100%}.batch-grade-input[data-v-2298af43]{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:.4rem}.batch-grade-input .form-input[data-v-2298af43]{width:130px;padding:.45rem .65rem;font-size:.85rem;flex-shrink:0}.alert-header-clickable[data-v-2298af43]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;-webkit-user-select:none;user-select:none}.reminder-group-title[data-v-2298af43]{font-size:.85rem;font-weight:700;color:#475569;margin-bottom:.5rem}.submission-stats-row[data-v-2298af43]{display:flex;flex-wrap:wrap;gap:.5rem}.qa-student-chip-row[data-v-2298af43]{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.material-reading-tracker-section[data-v-2298af43]{border:1px solid #e2e8f0;border-radius:8px}.reading-progress-track[data-v-2298af43]{height:8px;background-color:#e2e8f0;border-radius:9999px;overflow:hidden}.reading-progress-bar[data-v-2298af43]{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width .4s ease}.student-reading-chip[data-v-2298af43]{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .6rem;font-size:.78rem;border-radius:6px;cursor:default}.group-manager-card[data-v-a8e6e432]{max-width:920px;width:95%}.header-title h3[data-v-a8e6e432]{font-size:1.2rem;color:var(--primary)}.subtitle[data-v-a8e6e432]{font-size:.85rem;color:var(--text-muted)}.scheme-bar[data-v-a8e6e432]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;background:#f8fafc;padding:.85rem 1.25rem;border:1px solid var(--border-color);margin-bottom:1rem;border-radius:var(--radius-md)}.scheme-section[data-v-a8e6e432]{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.active-default-badge[data-v-a8e6e432]{display:inline-flex;align-items:center;gap:.25rem;background:#fffbeb;color:#b45309;border:1px solid #fcd34d;font-size:.78rem;font-weight:700;padding:.25rem .65rem;border-radius:var(--radius-sm);white-space:nowrap;line-height:1.2}.default-toggle-btn[data-v-a8e6e432]{white-space:nowrap;font-size:.78rem;line-height:1.2}.danger-section[data-v-a8e6e432]{margin-left:auto}.btn-outline-danger[data-v-a8e6e432]{background:#fff;color:#ef4444;border:1px solid #fca5a5;transition:all var(--transition-fast)}.btn-outline-danger[data-v-a8e6e432]:hover{background:#fef2f2;border-color:#ef4444}.config-bar[data-v-a8e6e432]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;background:#f8fafc;padding:.85rem 1.25rem;border:1px solid var(--border-color);margin-bottom:1.25rem}.config-group[data-v-a8e6e432]{display:flex;align-items:center;gap:.5rem}.config-label[data-v-a8e6e432]{font-size:.85rem;font-weight:600;color:var(--text-main);white-space:nowrap}.radio-group[data-v-a8e6e432]{display:flex;gap:.75rem;font-size:.85rem}.radio-label[data-v-a8e6e432]{display:flex;align-items:center;gap:.25rem;cursor:pointer}.num-input[data-v-a8e6e432]{width:60px;text-align:center;font-size:.85rem;padding:.25rem}.unit[data-v-a8e6e432]{font-size:.85rem;color:var(--text-muted)}.action-buttons[data-v-a8e6e432]{display:flex;align-items:center;gap:.4rem;margin-left:auto;flex-wrap:wrap}.btn-xs[data-v-a8e6e432]{padding:.3rem .6rem;font-size:.8rem}.board-header[data-v-a8e6e432]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.board-header h4[data-v-a8e6e432]{font-size:.95rem;color:var(--text-main)}.groups-grid[data-v-a8e6e432]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;max-height:380px;overflow-y:auto;padding-right:.35rem}.group-card[data-v-a8e6e432]{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);min-height:140px}.group-card-header[data-v-a8e6e432]{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.group-name-input[data-v-a8e6e432]{font-weight:700;font-size:.9rem;color:var(--primary);border:1px solid transparent;background:transparent;border-radius:var(--radius-sm);padding:.15rem .35rem;width:100%}.group-name-input[data-v-a8e6e432]:hover,.group-name-input[data-v-a8e6e432]:focus{border-color:var(--border-color);background:var(--bg-main)}.member-count-badge[data-v-a8e6e432]{background:var(--primary-light);color:var(--primary);font-size:.7rem;font-weight:700;padding:.15rem .45rem;border-radius:12px;white-space:nowrap}.group-card-body[data-v-a8e6e432]{display:flex;flex-direction:column;gap:.4rem;flex:1;min-height:80px}.student-pill[data-v-a8e6e432]{display:flex;align-items:center;gap:.35rem;background:#f1f5f9;border:1px solid #cbd5e1;padding:.3rem .5rem;border-radius:var(--radius-sm);font-size:.8rem;cursor:grab;transition:all var(--transition-fast)}.student-pill[data-v-a8e6e432]:hover{border-color:var(--primary);transform:translate(2px)}.male-pill[data-v-a8e6e432]{background:#eff6ff;border-color:#bfdbfe}.female-pill[data-v-a8e6e432]{background:#fdf2f8;border-color:#fbcfe8}.pill-name[data-v-a8e6e432]{font-weight:600;color:var(--text-main)}.pill-no[data-v-a8e6e432]{font-size:.7rem;color:var(--text-muted)}.pill-remove-btn[data-v-a8e6e432]{margin-left:auto;background:none;border:none;color:var(--text-muted);font-size:.75rem;cursor:pointer}.pill-remove-btn[data-v-a8e6e432]:hover{color:var(--accent-rose)}.empty-group-drop[data-v-a8e6e432]{display:flex;align-items:center;justify-content:center;border:2px dashed var(--border-color);border-radius:var(--radius-sm);color:var(--text-light);font-size:.75rem;height:60px}.loading-state[data-v-a8e6e432]{padding:3rem;text-align:center;color:var(--text-muted)}.modal-sm[data-v-a8e6e432]{max-width:420px}.seating-module[data-v-b1ded237]{background:#fff;border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--border-color)}.module-header[data-v-b1ded237]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.subtitle[data-v-b1ded237]{font-size:.85rem;color:var(--text-muted)}.loading-state[data-v-b1ded237]{padding:3rem;text-align:center;color:var(--text-muted)}.header-actions[data-v-b1ded237]{display:flex;gap:.5rem}.control-panel[data-v-b1ded237]{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;background:#f8fafc;padding:.85rem 1.25rem;border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:1.5rem}.panel-section[data-v-b1ded237]{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.danger-section[data-v-b1ded237]{margin-left:auto}.btn-outline-danger[data-v-b1ded237]{background:#fff;color:#ef4444;border:1px solid #fca5a5;transition:all var(--transition-fast)}.btn-outline-danger[data-v-b1ded237]:hover{background:#fef2f2;border-color:#ef4444}.layout-selector-section[data-v-b1ded237]{display:flex;align-items:center;gap:.5rem}.active-default-badge[data-v-b1ded237]{display:inline-flex;align-items:center;gap:.25rem;background:#fffbeb;color:#b45309;border:1px solid #fcd34d;font-size:.78rem;font-weight:700;padding:.25rem .65rem;border-radius:var(--radius-sm);white-space:nowrap;line-height:1.2}.default-toggle-btn[data-v-b1ded237]{white-space:nowrap;font-size:.78rem;line-height:1.2}.control-label[data-v-b1ded237]{font-size:.85rem;font-weight:600;color:var(--text-main);white-space:nowrap}.select-sm[data-v-b1ded237]{padding:.35rem .65rem;font-size:.85rem}.num-input[data-v-b1ded237]{width:55px;padding:.25rem .4rem;text-align:center;font-size:.85rem}.grid-size-inputs[data-v-b1ded237]{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-muted)}.btn-xs[data-v-b1ded237]{padding:.3rem .65rem;font-size:.8rem;white-space:nowrap}.btn-group[data-v-b1ded237]{display:flex;gap:.35rem}.classroom-container[data-v-b1ded237]{display:flex;gap:1.25rem}.classroom-container.blackboard-top[data-v-b1ded237]{flex-direction:column}.classroom-container.blackboard-bottom[data-v-b1ded237]{flex-direction:column-reverse}.classroom-container.blackboard-left[data-v-b1ded237]{flex-direction:row;align-items:stretch}.classroom-container.blackboard-right[data-v-b1ded237]{flex-direction:row-reverse;align-items:stretch}.podium-area[data-v-b1ded237]{display:flex;justify-content:center;align-items:center}.blackboard-left .podium-area[data-v-b1ded237],.blackboard-right .podium-area[data-v-b1ded237]{writing-mode:vertical-lr;min-width:48px}.podium[data-v-b1ded237]{background:linear-gradient(135deg,#1e293b,#334155);color:#fff;font-weight:600;font-size:.875rem;padding:.6rem 2.5rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);letter-spacing:.05em;text-align:center;border:2px solid #475569}.blackboard-left .podium[data-v-b1ded237],.blackboard-right .podium[data-v-b1ded237]{padding:2.5rem .6rem}.seating-grid[data-v-b1ded237]{display:grid;gap:.85rem;flex:1}.seat-card[data-v-b1ded237]{border:2px dashed var(--border-color);background-color:#f8fafc;border-radius:var(--radius-md);padding:.65rem;min-height:85px;display:flex;flex-direction:column;justify-content:space-between;cursor:grab;transition:all var(--transition-fast)}.seat-card.occupied[data-v-b1ded237]{border-style:solid;border-color:#cbd5e1;background-color:#fff;box-shadow:var(--shadow-sm)}.seat-card.disabled[data-v-b1ded237]{border-style:solid;border-color:#cbd5e1;background:repeating-linear-gradient(45deg,#f8fafc,#f8fafc 10px,#e2e8f0 10px,#e2e8f0 20px);cursor:pointer}.disabled-seat[data-v-b1ded237]{justify-content:center;align-items:center}.disabled-text[data-v-b1ded237]{color:#ef4444;font-weight:700;font-size:.75rem}.seat-card.male-seat[data-v-b1ded237]{border-color:#93c5fd;background-color:#eff6ff}.seat-card.female-seat[data-v-b1ded237]{border-color:#f472b6;background-color:#fdf2f8}.seat-card.my-seat[data-v-b1ded237]{border:2px solid #f59e0b!important;background-color:#fffbeb!important;box-shadow:0 0 12px #f59e0b66!important}.my-seat-tag[data-v-b1ded237]{background:#f59e0b;color:#fff;font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:var(--radius-sm)}.my-avatar[data-v-b1ded237]{background:#f59e0b!important;color:#fff!important}.male-avatar[data-v-b1ded237]{background:#dbeafe!important;color:#1d4ed8!important}.female-avatar[data-v-b1ded237]{background:#fce7f3!important;color:#be185d!important}.my-name[data-v-b1ded237]{color:#b45309!important;font-weight:700!important}.seat-card.occupied[data-v-b1ded237]:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.seat-card.dragging[data-v-b1ded237]{opacity:.4;border-color:var(--primary)}.seat-header[data-v-b1ded237]{display:flex;justify-content:space-between;align-items:center;font-size:.7rem;color:var(--text-light);width:100%}.seat-body[data-v-b1ded237]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:1;width:100%;margin-top:.15rem}.seat-body.empty[data-v-b1ded237]{justify-content:center;color:var(--text-light)}.student-info[data-v-b1ded237]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%}.student-name[data-v-b1ded237]{font-size:1.25rem;font-weight:800;color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;letter-spacing:.02em}.seat-no-tag[data-v-b1ded237]{font-size:.78rem;font-weight:800;color:#1e293b;background:#e2e8f0;padding:.1rem .45rem;border-radius:4px}.seat-num-subtle[data-v-b1ded237]{font-size:.72rem;color:#94a3b8}.name-row[data-v-b1ded237]{display:flex;align-items:center;justify-content:center;gap:.3rem;width:100%}.perf-pill-compact[data-v-b1ded237]{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;margin-top:.4rem;padding:.22rem .65rem;background:linear-gradient(135deg,#fff,#f8fafc);border:1.5px solid #cbd5e1;border-radius:9999px;font-size:.82rem;line-height:1.25;cursor:pointer;box-shadow:0 2px 5px #0000000f;transition:all .15s ease}.perf-pill-compact[data-v-b1ded237]:hover{border-color:#3b82f6;background:#eff6ff;transform:scale(1.05);box-shadow:0 4px 10px #3b82f62e}.score-total[data-v-b1ded237]{font-weight:800;color:#0f172a;font-size:.88rem}.score-today-pill[data-v-b1ded237]{font-size:.78rem;font-weight:800;padding:.15rem .45rem;border-radius:9999px}.score-pos[data-v-b1ded237]{background:#dcfce7;color:#15803d}.score-neg[data-v-b1ded237]{background:#ffe4e6;color:#be123c}.seat-card.card-mode-comfort[data-v-b1ded237]{min-height:85px;padding:.5rem}.seat-card.card-mode-comfort .student-name[data-v-b1ded237]{font-size:1.25rem;font-weight:800}.seat-card.card-mode-minimal[data-v-b1ded237]{min-height:75px;padding:.4rem .5rem;justify-content:center}.seat-card.card-mode-minimal .student-name[data-v-b1ded237]{font-size:1.35rem;font-weight:900;color:#0f172a}.seat-card.card-mode-minimal .seat-body[data-v-b1ded237]{margin-top:.15rem}.modal-perf-lg[data-v-b1ded237]{max-width:660px!important;width:92%!important;border-radius:var(--radius-xl);padding:1.5rem!important}.modal-title-row[data-v-b1ded237]{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.modal-title-text[data-v-b1ded237]{font-size:1.2rem;font-weight:700;color:#0f172a;margin:0}.seat-badge[data-v-b1ded237]{font-size:.8rem;font-weight:700;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;padding:.15rem .5rem;border-radius:9999px}.email-subtle[data-v-b1ded237]{font-size:.78rem;color:#64748b}.close-btn-round[data-v-b1ded237]{background:#f1f5f9;border:none;width:32px;height:32px;border-radius:50%;font-size:1rem;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.close-btn-round[data-v-b1ded237]:hover{background:#e2e8f0;color:#0f172a}.perf-stats-grid[data-v-b1ded237]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.stat-card[data-v-b1ded237]{padding:.75rem 1rem;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border-color)}.stat-today[data-v-b1ded237]{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.stat-total[data-v-b1ded237]{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#bbf7d0}.stat-label[data-v-b1ded237]{font-size:.82rem;font-weight:600;color:#475569}.stat-value[data-v-b1ded237]{font-size:1.4rem;font-weight:800;line-height:1}.stat-value.pos[data-v-b1ded237]{color:#16a34a}.stat-value.neg[data-v-b1ded237]{color:#dc2626}.stat-value.indigo[data-v-b1ded237]{color:#2563eb}.stat-value .unit[data-v-b1ded237]{font-size:.8rem;font-weight:600}.group-header[data-v-b1ded237]{font-size:.85rem;margin-bottom:.4rem}.tag-btn[data-v-b1ded237]{border-radius:9999px;padding:.35rem .75rem;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.3rem;border:1px solid transparent}.tag-btn[data-v-b1ded237]:active{transform:scale(.96)}.tag-emerald[data-v-b1ded237]{background:#f0fdf4;color:#166534;border-color:#86efac}.tag-emerald[data-v-b1ded237]:hover{background:#dcfce7;border-color:#4ade80;box-shadow:0 2px 4px #1665341a}.tag-rose[data-v-b1ded237]{background:#fff1f2;color:#9f1239;border-color:#fecdd3}.tag-rose[data-v-b1ded237]:hover{background:#ffe4e6;border-color:#fb7185;box-shadow:0 2px 4px #9f12391a}.btn-toggle-accordion[data-v-b1ded237]{width:100%;display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border:1px dashed #cbd5e1;padding:.45rem .85rem;border-radius:var(--radius-md);font-size:.82rem;font-weight:600;color:#475569;cursor:pointer;transition:all .15s ease}.btn-toggle-accordion[data-v-b1ded237]:hover{background:#f1f5f9;border-color:#94a3b8;color:#1e293b}.custom-form-row[data-v-b1ded237]{display:flex;align-items:center;gap:.5rem;padding:.6rem;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-md);box-shadow:0 2px 6px #00000008}.score-select[data-v-b1ded237]{width:90px;flex-shrink:0}.count-badge[data-v-b1ded237]{font-size:.72rem;font-weight:600;color:#64748b;background:#e2e8f0;padding:.1rem .4rem;border-radius:9999px;margin-left:.3rem}.attendance-module[data-v-749ae6c9]{background:#fff;border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--border-color)}.module-header[data-v-749ae6c9]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}@media (max-width: 600px){.checkin-banner[data-v-749ae6c9]{flex-wrap:wrap}.checkin-btn[data-v-749ae6c9]{width:100%}}.subtitle[data-v-749ae6c9]{font-size:.85rem;color:var(--text-muted)}.header-controls[data-v-749ae6c9]{display:flex;gap:.75rem;align-items:center}.date-picker[data-v-749ae6c9]{width:auto}.loading-state[data-v-749ae6c9]{padding:3rem;text-align:center;color:var(--text-muted)}.checkin-banner[data-v-749ae6c9]{display:flex;align-items:center;gap:1rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1.25rem}.checkin-banner.done[data-v-749ae6c9]{background:#ecfdf5;border-color:#a7f3d0}.checkin-icon[data-v-749ae6c9]{font-size:1.75rem;flex-shrink:0}.checkin-text[data-v-749ae6c9]{flex:1;min-width:0}.checkin-title[data-v-749ae6c9]{font-weight:700;font-size:.95rem;color:var(--text-main)}.checkin-desc[data-v-749ae6c9]{font-size:.8rem;color:var(--text-muted);margin-top:.15rem}.checkin-btn[data-v-749ae6c9]{flex-shrink:0}.stats-grid[data-v-749ae6c9]{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-bottom:1.25rem}.stat-card[data-v-749ae6c9]{padding:.85rem;border-radius:var(--radius-md);border:1px solid var(--border-color);text-align:center;background:#f8fafc}.stat-card.present[data-v-749ae6c9]{border-left:4px solid var(--accent-emerald)}.stat-card.late[data-v-749ae6c9]{border-left:4px solid var(--accent-amber)}.stat-card.absent[data-v-749ae6c9]{border-left:4px solid var(--accent-rose)}.stat-card.leave[data-v-749ae6c9]{border-left:4px solid var(--accent-sky)}.stat-card.rate[data-v-749ae6c9]{border-left:4px solid var(--primary)}.stat-value[data-v-749ae6c9]{font-size:1.5rem;font-weight:700;color:var(--text-main)}.stat-label[data-v-749ae6c9]{font-size:.75rem;color:var(--text-muted)}.margin-top[data-v-749ae6c9]{margin-top:1rem}.margin-left-sm[data-v-749ae6c9]{margin-left:.5rem}.empty-cell[data-v-749ae6c9]{padding:2.5rem;color:var(--text-muted)}.status-buttons[data-v-749ae6c9]{display:flex;gap:.25rem}.status-btn[data-v-749ae6c9]{border:1px solid var(--border-color);background:#fff;padding:.3rem .6rem;font-size:.75rem;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.status-btn.active[data-v-749ae6c9]{background:var(--accent-emerald);color:#fff;border-color:var(--accent-emerald)}.status-btn.late.active[data-v-749ae6c9]{background:var(--accent-amber);color:#fff;border-color:var(--accent-amber)}.status-btn.absent.active[data-v-749ae6c9]{background:var(--accent-rose);color:#fff;border-color:var(--accent-rose)}.status-btn.leave.active[data-v-749ae6c9]{background:var(--accent-sky);color:#fff;border-color:var(--accent-sky)}.note-input[data-v-749ae6c9]{padding:.35rem .6rem;font-size:.8rem}.calendar-header[data-v-749ae6c9]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;background:#f8fafc;padding:.85rem 1.25rem;border-radius:var(--radius-md) var(--radius-md) 0 0;border:1px solid var(--border-color);border-bottom:none}.cal-title-wrap[data-v-749ae6c9]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.semester-range-badge[data-v-749ae6c9]{font-size:.775rem;background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd;padding:.2rem .65rem;border-radius:9999px;font-weight:600}.cal-icon[data-v-749ae6c9]{font-size:1.25rem}.cal-month-title[data-v-749ae6c9]{font-size:1.1rem;font-weight:700;color:var(--text-main);margin:0}.cal-nav-btns[data-v-749ae6c9]{display:flex;gap:.5rem}.calendar-legend[data-v-749ae6c9]{display:flex;flex-wrap:wrap;gap:1rem;background:#fff;padding:.65rem 1.25rem;border:1px solid var(--border-color);font-size:.8rem;color:var(--text-muted)}.legend-item[data-v-749ae6c9]{display:flex;align-items:center;gap:.35rem}.dot[data-v-749ae6c9]{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.present[data-v-749ae6c9]{background:var(--accent-emerald)}.dot.late[data-v-749ae6c9]{background:var(--accent-amber)}.dot.absent[data-v-749ae6c9]{background:var(--accent-rose)}.dot.leave[data-v-749ae6c9]{background:var(--accent-sky)}.dot.holiday[data-v-749ae6c9]{background:#f97316}.dot.self-study[data-v-749ae6c9]{background:#94a3b8}.calendar-grid[data-v-749ae6c9]{background:#fff;border:1px solid var(--border-color);border-radius:0 0 var(--radius-md) var(--radius-md);padding:.75rem}.week-header-row[data-v-749ae6c9]{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center;margin-bottom:.5rem}.week-day-title[data-v-749ae6c9]{font-weight:700;font-size:.85rem;color:var(--text-main);padding:.35rem 0}.week-day-title.weekend[data-v-749ae6c9]{color:#e11d48}.days-grid[data-v-749ae6c9]{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day-cell[data-v-749ae6c9]{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-md);min-height:72px;padding:.4rem;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:all var(--transition-fast)}.day-cell[data-v-749ae6c9]:hover{border-color:#0284c7;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.day-cell.other-month[data-v-749ae6c9]{opacity:.4;background:#f8fafc}.day-cell.is-today[data-v-749ae6c9]{background:#f0f9ff;border-color:#0284c7}.day-cell.is-selected[data-v-749ae6c9]{border:2px solid #0284c7;box-shadow:0 0 0 2px #0284c726}.day-cell.has-official-class[data-v-749ae6c9]{border-left:3.5px solid #0284c7}.day-cell.is-holiday[data-v-749ae6c9]{background:#fff7ed;border-color:#ffedd5}.day-cell.is-holiday .day-num[data-v-749ae6c9]{color:#c2410c}.day-cell.is-future[data-v-749ae6c9]{opacity:.35;background:#f8fafc;cursor:not-allowed}.day-cell.is-future[data-v-749ae6c9]:hover{border-color:#e2e8f0;box-shadow:none;transform:none}.day-num-bar[data-v-749ae6c9]{display:flex;justify-content:space-between;align-items:center}.day-num[data-v-749ae6c9]{font-weight:700;font-size:.85rem;color:var(--text-main)}.today-tag[data-v-749ae6c9]{background:#0284c7;color:#fff;font-size:.65rem;padding:.1rem .35rem;border-radius:9999px;font-weight:600}.day-status-box[data-v-749ae6c9]{margin-top:.25rem}.status-pill[data-v-749ae6c9]{display:inline-block;font-size:.7rem;padding:.15rem .35rem;border-radius:var(--radius-sm);white-space:nowrap}.self-study-tag[data-v-749ae6c9]{font-size:.675rem;color:#64748b}.future-tag[data-v-749ae6c9]{font-size:.675rem;color:#94a3b8}.holiday-tag[data-v-749ae6c9]{display:inline-block;background:#ffedd5;color:#c2410c;font-size:.675rem;font-weight:700;padding:.15rem .35rem;border-radius:var(--radius-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.selected-date-detail[data-v-749ae6c9]{padding:1.1rem 1.25rem;border-left:4px solid #0284c7}.is-holiday-card[data-v-749ae6c9]{border-left-color:#f97316!important;background:#fffdfb}.detail-header[data-v-749ae6c9]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.detail-header h5[data-v-749ae6c9]{margin:0;font-size:.95rem;font-weight:700}.detail-row[data-v-749ae6c9]{display:flex;align-items:center;flex-wrap:wrap;font-size:.875rem}.holiday-desc[data-v-749ae6c9]{color:#9a3412;font-size:.875rem;line-height:1.5;margin:0}.checkin-time-info[data-v-749ae6c9]{font-size:.8rem;color:var(--text-muted)}.note-text[data-v-749ae6c9]{font-weight:600;color:var(--text-main)}@media (max-width: 600px){.day-cell[data-v-749ae6c9]{min-height:54px;padding:.25rem}.status-pill[data-v-749ae6c9]{font-size:.625rem;padding:.1rem .25rem}.self-study-tag[data-v-749ae6c9]{display:none}}.student-manager[data-v-4bf77875]{background:#fff;border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--border-color)}.card-header[data-v-4bf77875]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.subtitle[data-v-4bf77875]{font-size:.85rem;color:var(--text-muted)}.header-actions[data-v-4bf77875]{display:flex;gap:.5rem}.loading-state[data-v-4bf77875]{padding:3rem;text-align:center;color:var(--text-muted);font-size:.95rem}.margin-top[data-v-4bf77875]{margin-top:1rem}.empty-cell[data-v-4bf77875]{padding:2.5rem;color:var(--text-muted)}.btn-icon[data-v-4bf77875]{background:none;border:none;cursor:pointer;padding:.25rem;font-size:1rem;border-radius:var(--radius-sm)}.btn-icon[data-v-4bf77875]:hover{background-color:var(--accent-rose-light)}.modal-header[data-v-4bf77875]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.close-btn[data-v-4bf77875]{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--text-muted)}.upload-zone[data-v-4bf77875]{border:2px dashed var(--border-focus);background:var(--primary-light);border-radius:var(--radius-lg);padding:2rem;text-align:center;cursor:pointer;transition:all var(--transition-fast);margin-bottom:1rem}.upload-zone[data-v-4bf77875]:hover{background:#e0e7ff}.upload-icon[data-v-4bf77875]{font-size:2.5rem;margin-bottom:.5rem}.upload-tip[data-v-4bf77875]{font-size:.75rem;color:var(--text-muted)}.preview-section[data-v-4bf77875]{margin-top:1rem}.preview-section h4[data-v-4bf77875]{font-size:.9rem;margin-bottom:.5rem}.preview-table[data-v-4bf77875]{max-height:220px}.conflict-summary[data-v-4bf77875]{background:var(--accent-rose-light);color:#991b1b;border:1px solid #fca5a5;border-radius:var(--radius-md);padding:.75rem 1rem;font-size:.8rem;margin-bottom:.75rem;white-space:pre-line}.conflict-row[data-v-4bf77875]{background-color:var(--accent-rose-light)}.more-tip[data-v-4bf77875]{font-size:.75rem;color:var(--text-muted);text-align:center;margin-top:.5rem}.modal-footer[data-v-4bf77875]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.super-admin-manager[data-v-2d1fbd2f]{padding:1.5rem}.admin-header[data-v-2d1fbd2f]{margin-bottom:1.5rem}.admin-title h2[data-v-2d1fbd2f]{font-size:1.35rem;color:var(--primary);margin-bottom:.25rem}.admin-nav-tabs[data-v-2d1fbd2f]{display:flex;gap:.5rem;margin-top:1rem;border-bottom:2px solid var(--border-color);padding-bottom:.5rem;overflow-x:auto}.tab-btn[data-v-2d1fbd2f]{background:none;border:none;padding:.65rem 1.25rem;font-size:.95rem;font-weight:600;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0}.tab-btn[data-v-2d1fbd2f]:hover{background:var(--bg-main);color:var(--primary)}.tab-btn.active[data-v-2d1fbd2f]{background:var(--primary-light);color:var(--primary);border-bottom:3px solid var(--primary)}.add-card[data-v-2d1fbd2f]{padding:1.25rem;background:#f8fafc;border:1px solid var(--border-color)}.form-grid[data-v-2d1fbd2f]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.filter-bar[data-v-2d1fbd2f]{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;background:var(--bg-main);padding:.75rem 1rem;border-radius:var(--radius-md)}.filter-group[data-v-2d1fbd2f]{display:flex;align-items:center;gap:.5rem}.filter-actions[data-v-2d1fbd2f]{margin-left:auto}.drive-links-group[data-v-2d1fbd2f]{display:flex;gap:.35rem;flex-wrap:wrap}.action-btn-group[data-v-2d1fbd2f]{display:flex;gap:.5rem;align-items:center}.empty-cell[data-v-2d1fbd2f]{padding:2.5rem;color:var(--text-muted)}.btn-icon[data-v-2d1fbd2f]{background:none;border:none;cursor:pointer;padding:.25rem;font-size:1rem;border-radius:var(--radius-sm)}.btn-icon[data-v-2d1fbd2f]:hover{background-color:var(--bg-main)}.btn-icon.danger[data-v-2d1fbd2f]:hover{background-color:var(--accent-rose-light)}.course-checkbox-list[data-v-2d1fbd2f]{display:flex;flex-direction:column;gap:.5rem;max-height:160px;overflow-y:auto;border:1px solid var(--border-color);padding:.75rem;border-radius:var(--radius-md);background-color:#f8fafc}.checkbox-item[data-v-2d1fbd2f]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.course-badges[data-v-2d1fbd2f]{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.text-muted.small[data-v-2d1fbd2f]{font-size:.8rem;color:var(--text-muted)}.class-timer[data-v-ff09352e]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0}.timer-display-wrap[data-v-ff09352e]{padding:1.5rem 3rem;border-radius:16px;background:#0f172a;transition:background .3s ease}.timer-display-wrap.is-time-up[data-v-ff09352e]{background:#b91c1c;animation:timer-flash-ff09352e .8s ease-in-out infinite}@keyframes timer-flash-ff09352e{0%,to{opacity:1}50%{opacity:.55}}.timer-display[data-v-ff09352e]{font-size:3.5rem;font-weight:800;font-variant-numeric:tabular-nums;color:#fff;letter-spacing:.05em}.timer-preset-row[data-v-ff09352e],.timer-controls-row[data-v-ff09352e]{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.timer-custom-row[data-v-ff09352e]{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;justify-content:center}.timer-custom-input[data-v-ff09352e]{width:60px;text-align:center}.timer-time-up-text[data-v-ff09352e]{font-size:1.1rem;font-weight:700;color:#b91c1c}.random-picker[data-v-16c07d16]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0}.picker-result-wrap[data-v-16c07d16]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:260px;min-height:90px;padding:1rem 2rem;border-radius:16px;background:#eef2ff;border:2px solid #c7d2fe;transition:all .2s ease}.picker-result-wrap.is-drawing[data-v-16c07d16]{background:#fef3c7;border-color:#fbbf24}.picker-draw-btn[data-v-16c07d16]{font-size:1.05rem;padding:.7rem 1.75rem}.picker-placeholder[data-v-16c07d16]{font-size:1.2rem;color:#94a3b8}.picker-seat[data-v-16c07d16]{font-size:.9rem;font-weight:600;color:#6366f1}.picker-name[data-v-16c07d16]{font-size:2.2rem;font-weight:800;color:#1e293b}.picker-options-row[data-v-16c07d16]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;justify-content:center}.picker-drawn-list[data-v-16c07d16]{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;max-width:420px}.tools-modal[data-v-5138e53d]{max-width:520px}.modal-header[data-v-5138e53d]{display:flex;justify-content:space-between;align-items:flex-start}.close-btn[data-v-5138e53d]{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--text-muted)}.tab-nav[data-v-5138e53d]{display:flex;gap:.5rem;border-bottom:2px solid var(--border-color);padding-bottom:.5rem}.tab-btn[data-v-5138e53d]{padding:.5rem 1.25rem;border:none;border-radius:var(--radius-md);background:transparent;font-size:.95rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .2s}.tab-btn[data-v-5138e53d]:hover{background:var(--bg-card-hover);color:var(--text-main)}.tab-btn.active[data-v-5138e53d]{background:var(--primary-light);color:var(--primary-text)}.notif-bell-wrapper[data-v-f44f0f0a]{position:relative;display:inline-flex}.notif-bell-trigger[data-v-f44f0f0a]{position:relative;font-size:1.1rem}.notif-bell-trigger.has-unread[data-v-f44f0f0a]{animation:notif-shake-f44f0f0a 2.5s ease-in-out infinite}@keyframes notif-shake-f44f0f0a{0%,90%,to{transform:rotate(0)}92%{transform:rotate(-12deg)}94%{transform:rotate(10deg)}96%{transform:rotate(-8deg)}98%{transform:rotate(4deg)}}.notif-unread-dot[data-v-f44f0f0a]{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 3px;border-radius:var(--radius-full);background:var(--accent-rose);color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff}.notif-dropdown-panel[data-v-f44f0f0a]{position:absolute;top:calc(100% + 8px);right:0;z-index:999;width:340px;max-width:90vw;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-xl);overflow:hidden}.notif-panel-header[data-v-f44f0f0a]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-card-hover)}.notif-panel-title[data-v-f44f0f0a]{font-weight:700;color:var(--text-main);font-size:.95rem}.notif-mark-all-btn[data-v-f44f0f0a]{background:transparent;border:none;color:var(--primary);font-size:.78rem;font-weight:600;cursor:pointer;padding:2px 4px}.notif-mark-all-btn[data-v-f44f0f0a]:hover{text-decoration:underline}.notif-list[data-v-f44f0f0a]{max-height:420px;overflow-y:auto}.notif-empty-text[data-v-f44f0f0a]{padding:2rem 1rem;text-align:center;color:var(--text-light);font-size:.85rem}.notif-item[data-v-f44f0f0a]{position:relative;display:flex;align-items:flex-start;gap:.6rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;border-bottom:1px solid var(--border-color);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.notif-item[data-v-f44f0f0a]:last-child{border-bottom:none}.notif-item[data-v-f44f0f0a]:hover{background:var(--bg-card-hover)}.notif-item.is-unread[data-v-f44f0f0a]{background:var(--primary-light)}.notif-item.is-unread[data-v-f44f0f0a]:hover{background:#e0e7ff}.notif-item-icon[data-v-f44f0f0a]{font-size:1.2rem;flex-shrink:0;margin-top:.1rem}.notif-item-body[data-v-f44f0f0a]{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.notif-item-title[data-v-f44f0f0a]{font-weight:700;font-size:.85rem;color:var(--text-main)}.notif-item-message[data-v-f44f0f0a]{font-size:.8rem;color:var(--text-muted);white-space:normal;word-break:break-word}.notif-item-time[data-v-f44f0f0a]{font-size:.7rem;color:var(--text-light)}.notif-item-dot[data-v-f44f0f0a]{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--accent-rose);margin-top:.3rem}.notif-pop-fade-enter-active[data-v-f44f0f0a],.notif-pop-fade-leave-active[data-v-f44f0f0a]{transition:all .16s cubic-bezier(.16,1,.3,1)}.notif-pop-fade-enter-from[data-v-f44f0f0a],.notif-pop-fade-leave-to[data-v-f44f0f0a]{opacity:0;transform:translateY(-6px) scale(.98)}.class-stream[data-v-11c6a940]{display:flex;flex-direction:column}.new-post-card textarea[data-v-11c6a940]{resize:vertical}.post-header-row[data-v-11c6a940]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.post-author-info[data-v-11c6a940]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.post-author-name[data-v-11c6a940]{color:var(--text-main);font-size:.9rem}.post-content[data-v-11c6a940]{white-space:pre-wrap;word-break:break-word;color:var(--text-main);font-size:.92rem;margin:0 0 .5rem}.post-footer[data-v-11c6a940]{display:flex;justify-content:flex-end}.post-comments-section[data-v-11c6a940]{border-top:1px solid var(--border-color);padding-top:.6rem}.post-comment-row[data-v-11c6a940]{display:flex;align-items:flex-start;gap:.5rem;padding:.4rem 0}.post-comment-role-icon[data-v-11c6a940]{font-size:1rem;flex-shrink:0}.post-comment-body[data-v-11c6a940]{flex:1;min-width:0}.post-comment-content[data-v-11c6a940]{margin:.1rem 0 0;font-size:.82rem;color:var(--text-main);white-space:pre-wrap;word-break:break-word}.post-comment-input-row[data-v-11c6a940]{display:flex;gap:.5rem}.drawing-pad[data-v-175bb8ed]{display:flex;flex-direction:column;gap:.6rem}.drawing-toolbar[data-v-175bb8ed]{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.color-swatch[data-v-175bb8ed]{width:26px;height:26px;border-radius:50%;border:2px solid #e2e8f0;cursor:pointer;padding:0}.color-swatch.active[data-v-175bb8ed]{border-color:#0f172a;box-shadow:0 0 0 2px #fff,0 0 0 4px #0f172a}.stroke-width-label[data-v-175bb8ed]{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-muted)}.drawing-canvas[data-v-175bb8ed]{width:100%;max-width:600px;aspect-ratio:3 / 2;border:1.5px solid #cbd5e1;border-radius:10px;touch-action:none;cursor:crosshair;background:#fff}.photo-preview-wrap[data-v-5f721ed6]{display:flex;flex-direction:column;align-items:center}.photo-preview-img[data-v-5f721ed6]{max-width:100%;max-height:320px;border-radius:10px;border:1.5px solid #cbd5e1}.hidden-file-input[data-v-5f721ed6]{display:none}.student-dashboard[data-v-4f81b25a]{min-height:100vh;background-color:#f1f5f9}.top-nav[data-v-4f81b25a]{background:#fff;border-bottom:1px solid var(--border-color);padding:.85rem 2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:30}.nav-brand[data-v-4f81b25a]{display:flex;align-items:center;gap:.85rem}.brand-logo[data-v-4f81b25a]{background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;font-weight:800;font-size:.95rem;padding:.4rem .75rem;border-radius:var(--radius-md);box-shadow:0 4px 10px #0284c74d}.brand-info[data-v-4f81b25a]{display:flex;flex-direction:column}.school-name[data-v-4f81b25a]{font-weight:700;font-size:1.05rem;color:var(--text-main)}.app-name[data-v-4f81b25a]{font-size:.75rem;color:var(--text-muted)}.nav-right[data-v-4f81b25a]{display:flex;align-items:center;gap:1.25rem}.class-picker-wrap[data-v-4f81b25a]{display:flex;align-items:center;gap:.5rem;background:#e0f2fe;padding:.35rem .85rem;border-radius:9999px;border:1px solid #bae6fd}.picker-label[data-v-4f81b25a]{font-size:.825rem;font-weight:700;color:#0369a1}.class-picker[data-v-4f81b25a]{width:auto;padding:.25rem .5rem;font-size:.85rem;font-weight:600;border-radius:var(--radius-sm)}.student-user[data-v-4f81b25a]{display:flex;align-items:center;gap:.5rem}.student-avatar[data-v-4f81b25a]{width:34px;height:34px;border-radius:50%;background:#0284c7;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.student-name[data-v-4f81b25a]{font-weight:600;font-size:.9rem}.role-badge[data-v-4f81b25a]{background:#e0e7ff;color:#4338ca;font-size:.75rem;font-weight:600;padding:.2rem .5rem;border-radius:var(--radius-sm)}.logout-btn[data-v-4f81b25a]{font-size:.8rem}.no-class-container[data-v-4f81b25a]{max-width:600px;margin:4rem auto;padding:0 1.5rem}.no-class-card[data-v-4f81b25a]{padding:3rem 2rem;text-align:center}.no-class-card .icon[data-v-4f81b25a]{font-size:3.5rem;margin-bottom:1rem}.student-main-body[data-v-4f81b25a]{max-width:1200px;margin:1.5rem auto;padding:0 1.5rem}.hero-banner[data-v-4f81b25a]{background:linear-gradient(135deg,#fff,#f0f9ff);border:1px solid #bae6fd;border-radius:var(--radius-xl);padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.welcome-text[data-v-4f81b25a]{font-size:1.35rem;color:var(--text-main);margin-bottom:.35rem}.welcome-text span[data-v-4f81b25a]{color:#0284c7}.sub-welcome[data-v-4f81b25a]{font-size:.85rem;color:var(--text-muted)}.my-group-card[data-v-4f81b25a]{background:#fff;border:1px solid #fed7aa;background-color:#fff7ed;border-radius:var(--radius-lg);padding:1rem 1.25rem;min-width:320px}.group-badge-head[data-v-4f81b25a]{display:flex;align-items:center;gap:.65rem;margin-bottom:.65rem}.group-icon[data-v-4f81b25a]{font-size:1.5rem}.group-label[data-v-4f81b25a]{font-size:.725rem;color:#c2410c;font-weight:600}.group-name[data-v-4f81b25a]{font-size:1rem;font-weight:800;color:#9a3412}.group-members[data-v-4f81b25a]{font-size:.8rem;display:flex;align-items:center;gap:.5rem}.members-label[data-v-4f81b25a]{color:#c2410c;font-weight:600;white-space:nowrap}.member-pills[data-v-4f81b25a]{display:flex;flex-wrap:wrap;gap:.35rem}.member-pill[data-v-4f81b25a]{background:#fff;border:1px solid #fdba74;color:#c2410c;padding:.15rem .45rem;border-radius:9999px;font-size:.75rem}.member-pill.is-me[data-v-4f81b25a]{background:#ea580c;color:#fff;font-weight:700;border-color:#ea580c}.my-group-card.no-group[data-v-4f81b25a]{min-width:auto;background-color:#f8fafc;border-color:var(--border-color)}.group-name.muted[data-v-4f81b25a]{color:var(--text-muted);font-weight:600}.student-tab-bar[data-v-4f81b25a]{display:flex;gap:.75rem;border-bottom:2px solid var(--border-color);padding-bottom:.5rem}.tab-btn[data-v-4f81b25a]{background:#fff;border:1px solid var(--border-color);padding:.75rem 1.25rem;border-radius:var(--radius-md) var(--radius-md) 0 0;font-size:.95rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.tab-btn[data-v-4f81b25a]:hover{color:#0284c7;background:#f0f9ff}.tab-btn.active[data-v-4f81b25a]{background:#0284c7;color:#fff;border-color:#0284c7;box-shadow:0 4px 12px #0284c74d}.margin-top[data-v-4f81b25a]{margin-top:1rem}@media (max-width: 900px){.top-nav[data-v-4f81b25a]{padding:.75rem 1rem}.hero-banner[data-v-4f81b25a]{flex-direction:column;align-items:stretch;padding:1.25rem}.my-group-card[data-v-4f81b25a]{min-width:auto}.student-main-body[data-v-4f81b25a]{padding:0 1rem}}@media (max-width: 600px){.nav-right[data-v-4f81b25a]{width:100%;justify-content:space-between}.class-picker-wrap[data-v-4f81b25a]{order:3;width:100%;justify-content:center}.student-tab-bar[data-v-4f81b25a]{flex-wrap:wrap;gap:.5rem}.tab-btn[data-v-4f81b25a]{flex:1 1 auto;padding:.65rem .85rem;font-size:.85rem;text-align:center}.welcome-text[data-v-4f81b25a]{font-size:1.1rem}}.live-wall-posts-grid[data-v-d4260883]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.wall-post-card[data-v-d4260883]{padding:.85rem}.wall-post-header[data-v-d4260883]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.wall-post-text[data-v-d4260883]{font-size:.9rem;color:var(--text-main);white-space:pre-wrap;word-break:break-word;margin:0}.wall-post-image-wrap[data-v-d4260883]{display:flex;justify-content:center}.wall-post-image[data-v-d4260883]{max-width:100%;max-height:220px;border-radius:8px;object-fit:contain}.dashboard-layout[data-v-d02dd06d]{display:flex;min-height:100vh;background-color:var(--bg-main)}.sidebar[data-v-d02dd06d]{width:270px;background-color:#0f172a;color:#fff;display:flex;flex-direction:column;padding:1.25rem;transition:width .25s cubic-bezier(.4,0,.2,1),padding .25s cubic-bezier(.4,0,.2,1)}.header-action-btns[data-v-d02dd06d]{display:flex;align-items:center;gap:.35rem}.sidebar-toggle-btn[data-v-d02dd06d]{background:#ffffff1a;border:none;color:#94a3b8;width:28px;height:28px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.sidebar-toggle-btn[data-v-d02dd06d]:hover{background:#fff3;color:#fff}.sidebar.sidebar-collapsed[data-v-d02dd06d]{width:76px;padding:1.25rem .5rem;align-items:center}.sidebar.sidebar-collapsed .sidebar-header[data-v-d02dd06d]{flex-direction:column;gap:.5rem;align-items:center;justify-content:center;width:100%;margin-bottom:1.25rem}.sidebar.sidebar-collapsed .brand[data-v-d02dd06d]{justify-content:center;width:100%}.sidebar.sidebar-collapsed .brand .logo[data-v-d02dd06d]{font-size:.85rem;padding:.35rem .55rem;letter-spacing:.02em}.sidebar.sidebar-collapsed .header-action-btns[data-v-d02dd06d]{width:100%;justify-content:center}.sidebar.sidebar-collapsed .sidebar-toggle-btn[data-v-d02dd06d]{width:38px;height:28px;font-size:.95rem}.sidebar.sidebar-collapsed .user-profile[data-v-d02dd06d]{padding:.4rem;justify-content:center;width:56px;height:52px;margin-bottom:1.25rem;border-radius:var(--radius-lg)}.sidebar.sidebar-collapsed .user-avatar[data-v-d02dd06d]{width:40px;height:40px;font-size:1.1rem}.sidebar.sidebar-collapsed .nav-item[data-v-d02dd06d]{width:56px;height:52px;margin:0 auto;padding:0;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);transition:all .2s cubic-bezier(.4,0,.2,1)}.sidebar.sidebar-collapsed .nav-item[data-v-d02dd06d]:hover{background:#ffffff2e;border-color:#ffffff4d;transform:translateY(-2px)}.sidebar.sidebar-collapsed .nav-item.active[data-v-d02dd06d]{background:var(--primary);border-color:transparent;box-shadow:0 4px 14px #4f46e573;transform:scale(1.05)}.sidebar.sidebar-collapsed .nav-item .icon[data-v-d02dd06d]{font-size:1.65rem;line-height:1;display:flex;align-items:center;justify-content:center}.sidebar.sidebar-collapsed .logout-btn[data-v-d02dd06d]{width:56px;height:52px;margin:0 auto;padding:0;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);transition:all .2s ease}.sidebar.sidebar-collapsed .logout-btn[data-v-d02dd06d]:hover{background:#ef4444;border-color:transparent;color:#fff;transform:translateY(-2px)}.sidebar.sidebar-collapsed .logout-btn .icon[data-v-d02dd06d]{font-size:1.45rem;line-height:1}.current-class-badge[data-v-d02dd06d]{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1.5px solid #93c5fd;padding:.35rem .75rem;border-radius:var(--radius-md);box-shadow:0 2px 6px #3b82f61f}.badge-icon[data-v-d02dd06d]{font-size:1.15rem}.badge-text[data-v-d02dd06d]{display:flex;flex-direction:column;line-height:1.1}.badge-sub[data-v-d02dd06d]{font-size:.65rem;font-weight:600;color:#2563eb;letter-spacing:.03em}.badge-title[data-v-d02dd06d]{font-size:.92rem;font-weight:800;color:#1e3a8a;white-space:nowrap}.class-switch-control[data-v-d02dd06d]{position:relative;display:flex;align-items:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border-radius:var(--radius-md);box-shadow:0 3px 10px #2563eb59;overflow:hidden;transition:all .2s ease}.class-switch-control[data-v-d02dd06d]:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 5px 14px #2563eb73}.switch-btn-label[data-v-d02dd06d]{padding:.4rem .75rem;font-size:.85rem;font-weight:700;white-space:nowrap;pointer-events:none}.class-select-prominent[data-v-d02dd06d]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%;font-size:.9rem}.sidebar-header[data-v-d02dd06d]{margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between}.sidebar-close-btn[data-v-d02dd06d]{display:none;background:none;border:none;color:#fff;font-size:1.1rem;cursor:pointer;padding:.35rem}.hamburger-btn[data-v-d02dd06d]{display:none;background:none;border:none;font-size:1.35rem;cursor:pointer;padding:.25rem .5rem;color:var(--text-main);min-height:auto}.sidebar-overlay[data-v-d02dd06d]{display:none}.brand[data-v-d02dd06d]{display:flex;align-items:center;gap:.75rem}.logo[data-v-d02dd06d]{background:var(--primary);color:#fff;font-weight:800;font-size:.85rem;padding:.4rem .65rem;border-radius:var(--radius-md);box-shadow:0 4px 10px #4f46e566}.title-wrap[data-v-d02dd06d]{display:flex;flex-direction:column}.title[data-v-d02dd06d]{font-weight:700;font-size:1.05rem}.version[data-v-d02dd06d]{font-size:.65rem;color:var(--text-light)}.user-profile[data-v-d02dd06d]{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);padding:.85rem;display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.user-avatar[data-v-d02dd06d]{width:38px;height:38px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.user-details[data-v-d02dd06d]{display:flex;flex-direction:column}.user-name[data-v-d02dd06d]{font-weight:600;font-size:.875rem;color:#fff}.role-badge[data-v-d02dd06d]{font-size:.7rem;color:#38bdf8;font-weight:500}.nav-menu[data-v-d02dd06d]{display:flex;flex-direction:column;gap:.5rem;flex:1}.nav-item[data-v-d02dd06d]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:none;background:transparent;color:var(--text-light);font-size:.875rem;cursor:pointer;text-align:left;transition:all var(--transition-fast)}.nav-item[data-v-d02dd06d]:hover{background:#ffffff14;color:#fff}.nav-item.active[data-v-d02dd06d]{background:var(--primary);color:#fff;font-weight:600;box-shadow:0 4px 12px #4f46e54d}.admin-nav[data-v-d02dd06d]{margin-top:.5rem;border-top:1px dashed rgba(255,255,255,.2);padding-top:.85rem;color:#fde047}.sidebar-footer[data-v-d02dd06d]{padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.logout-btn[data-v-d02dd06d]{width:100%;justify-content:center;background:#ffffff14;color:#fff;border-color:transparent}.logout-btn[data-v-d02dd06d]:hover{background:var(--accent-rose)}.header-left[data-v-d02dd06d]{display:flex;align-items:center;gap:.5rem;min-width:0}.header-left h2[data-v-d02dd06d]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-right[data-v-d02dd06d]{display:flex;align-items:center;gap:1.25rem}.class-selector-wrap[data-v-d02dd06d]{display:flex;align-items:center;gap:.5rem;background:#f1f5f9;padding:.35rem .75rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.selector-label[data-v-d02dd06d]{font-size:.8rem;font-weight:600;color:var(--text-muted)}.class-select[data-v-d02dd06d]{width:auto;padding:.3rem .6rem;font-size:.85rem;font-weight:600}.add-class-btn[data-v-d02dd06d]{padding:.35rem .65rem;font-size:.8rem}.school-info[data-v-d02dd06d]{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.school-name[data-v-d02dd06d]{font-weight:600}.domain-tag[data-v-d02dd06d]{background:var(--primary-light);color:var(--primary-text);padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.no-class-banner[data-v-d02dd06d]{background:#fff;border-radius:var(--radius-xl);border:2px dashed var(--border-focus);padding:4rem 2rem;text-align:center;margin-top:1rem}.banner-icon[data-v-d02dd06d]{font-size:3.5rem;margin-bottom:1rem}.no-class-banner h3[data-v-d02dd06d]{font-size:1.35rem;margin-bottom:.5rem}.no-class-banner p[data-v-d02dd06d]{color:var(--text-muted);font-size:.9rem}.modal-subtitle[data-v-d02dd06d]{font-size:.825rem;color:var(--text-muted);margin-top:.25rem}.margin-top[data-v-d02dd06d]{margin-top:1rem}.modal-footer[data-v-d02dd06d]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}@media (max-width: 900px){.hamburger-btn[data-v-d02dd06d]{display:inline-flex;align-items:center}.sidebar-close-btn[data-v-d02dd06d]{display:inline-flex}.sidebar[data-v-d02dd06d]{position:fixed;top:0;left:0;height:100vh;z-index:210;transform:translate(-100%);transition:transform var(--transition-normal);box-shadow:var(--shadow-xl)}.sidebar.sidebar-open[data-v-d02dd06d]{transform:translate(0)}.sidebar-overlay[data-v-d02dd06d]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;z-index:200}.main-content[data-v-d02dd06d]{width:100%}.header[data-v-d02dd06d]{padding:0 1rem;gap:.75rem}.header h2[data-v-d02dd06d]{font-size:1.05rem}.header-right[data-v-d02dd06d]{gap:.6rem}.class-selector-wrap[data-v-d02dd06d]{flex-wrap:wrap;gap:.35rem}.selector-label[data-v-d02dd06d],.school-info[data-v-d02dd06d]{display:none}}@media (max-width: 600px){.header[data-v-d02dd06d]{flex-wrap:wrap;height:auto;padding:.6rem .85rem}.header-right[data-v-d02dd06d]{width:100%;justify-content:flex-start}.add-class-btn[data-v-d02dd06d]{font-size:.75rem}}.timetable-modal[data-v-d02dd06d]{width:680px;max-width:95vw}.timetable-wrap[data-v-d02dd06d]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow-x:auto}.timetable-grid[data-v-d02dd06d]{width:100%;border-collapse:collapse;text-align:center;font-size:.85rem}.timetable-grid th[data-v-d02dd06d],.timetable-grid td[data-v-d02dd06d]{border:1px solid var(--border-color);padding:.55rem .35rem}.timetable-grid th[data-v-d02dd06d]{background:var(--bg-hover);color:var(--text-main);font-weight:600}.time-col[data-v-d02dd06d]{width:110px}.time-label[data-v-d02dd06d]{background:var(--bg-main);color:var(--text-main)}.section-divider td[data-v-d02dd06d]{background:var(--primary-light, #f1f5f9);color:var(--primary-color, #0284c7);font-size:.8rem;font-weight:600;padding:.35rem .75rem;text-align:left}.slot-cell[data-v-d02dd06d]{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s}.slot-cell[data-v-d02dd06d]:hover:not(.disabled){background:var(--bg-hover)}.slot-cell.checked[data-v-d02dd06d]{background:#e0f2fe;color:#0369a1;font-weight:600}.slot-cell.disabled[data-v-d02dd06d]{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.disabled-text[data-v-d02dd06d]{font-size:.75rem;color:#94a3b8}.slot-text[data-v-d02dd06d]{margin-left:.2rem;font-size:.82rem}.custom-dialog-backdrop[data-v-c29e534d]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0f172a73;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:99999;padding:1rem}.custom-dialog-card[data-v-c29e534d]{background:#fff;width:100%;max-width:440px;border-radius:1.25rem;padding:1.75rem 1.5rem 1.5rem;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;text-align:center;border:1px solid rgba(226,232,240,.8);animation:modalPop-c29e534d .25s cubic-bezier(.16,1,.3,1)}@keyframes modalPop-c29e534d{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-icon-wrapper[data-v-c29e534d]{display:flex;justify-content:center;margin-bottom:1rem}.icon-circle[data-v-c29e534d]{width:3.5rem;height:3.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700}.icon-circle.success[data-v-c29e534d]{background:#ecfdf5;color:#059669;border:2px solid #a7f3d0}.icon-circle.error[data-v-c29e534d]{background:#fff1f2;color:#e11d48;border:2px solid #fecdd3}.icon-circle.warning[data-v-c29e534d]{background:#fffbeb;color:#d97706;border:2px solid #fde68a}.icon-circle.info[data-v-c29e534d]{background:#f0f9ff;color:#0284c7;border:2px solid #bae6fd}.dialog-title[data-v-c29e534d]{font-size:1.2rem;font-weight:700;color:#0f172a;margin-bottom:.5rem}.dialog-message[data-v-c29e534d]{font-size:.95rem;color:#475569;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin-bottom:1.5rem}.dialog-actions[data-v-c29e534d]{display:flex;gap:.75rem;justify-content:center}.btn-dialog[data-v-c29e534d]{flex:1;padding:.65rem 1.25rem;font-size:.95rem;font-weight:600;border-radius:.65rem;border:none;cursor:pointer;transition:all .15s ease}.btn-cancel[data-v-c29e534d]{background:#f1f5f9;color:#475569}.btn-cancel[data-v-c29e534d]:hover{background:#e2e8f0;color:#1e293b}.btn-confirm[data-v-c29e534d]{background:#3b82f6;color:#fff}.btn-confirm[data-v-c29e534d]:hover{background:#2563eb}.btn-confirm.success[data-v-c29e534d]{background:#10b981}.btn-confirm.success[data-v-c29e534d]:hover{background:#059669}.btn-confirm.error[data-v-c29e534d]{background:#f43f5e}.btn-confirm.error[data-v-c29e534d]:hover{background:#e11d48}.btn-confirm.warning[data-v-c29e534d]{background:#f59e0b}.btn-confirm.warning[data-v-c29e534d]:hover{background:#d97706}.dialog-fade-enter-active[data-v-c29e534d],.dialog-fade-leave-active[data-v-c29e534d]{transition:opacity .2s ease}.dialog-fade-enter-from[data-v-c29e534d],.dialog-fade-leave-to[data-v-c29e534d]{opacity:0}.app-root[data-v-e95588c5]{min-height:100vh;background-color:var(--bg-main)}:root{--font-family: "Inter", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif;--bg-main: #f8fafc;--bg-card: #ffffff;--bg-card-hover: #f1f5f9;--bg-sidebar: #0f172a;--bg-sidebar-active: #1e293b;--primary: #4f46e5;--primary-hover: #4338ca;--primary-light: #eef2ff;--primary-text: #3730a3;--accent-emerald: #10b981;--accent-emerald-light: #ecfdf5;--accent-amber: #f59e0b;--accent-amber-light: #fffbe6;--accent-rose: #ef4444;--accent-rose-light: #fef2f2;--accent-sky: #0ea5e9;--accent-sky-light: #f0f9ff;--text-main: #0f172a;--text-muted: #64748b;--text-light: #94a3b8;--text-white: #ffffff;--border-color: #e2e8f0;--border-focus: #818cf8;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-main);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.025em;color:var(--text-main)}.app-container{display:flex;min-height:100vh}.sidebar{width:260px;background-color:var(--bg-sidebar);color:var(--text-white);display:flex;flex-direction:column;transition:width var(--transition-normal);z-index:20}.main-content{flex:1;display:flex;flex-direction:column;overflow-x:hidden}.header{height:64px;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;position:sticky;top:0;z-index:10}.page-body{padding:1.75rem;flex:1;max-width:1400px;margin:0 auto;width:100%}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:1.5rem;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:500;font-size:.875rem;padding:.625rem 1.25rem;min-height:44px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 2px 4px #4f46e533}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 8px #4f46e54d}.btn-secondary{background-color:#fff;color:var(--text-main);border-color:var(--border-color)}.btn-secondary:hover{background-color:var(--bg-card-hover)}.btn-danger{background-color:var(--accent-rose);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-emerald{background-color:var(--accent-emerald);color:#fff}.btn-emerald:hover{background-color:#059669}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:#fff;color:var(--text-main);cursor:pointer;transition:all var(--transition-fast);padding:0;flex-shrink:0}.btn-icon:hover{background-color:var(--bg-card-hover)}.btn-icon.danger,.btn-mat-delete{border:1.5px solid #fca5a5;background-color:#fef2f2;color:#ef4444}.btn-icon.danger:hover,.btn-mat-delete:hover{background-color:#ef4444;border-color:#dc2626;color:#fff;box-shadow:0 2px 6px #ef44444d;transform:translateY(-1px)}.btn-icon.danger:active,.btn-mat-delete:active{transform:translateY(0);background-color:#dc2626}.btn-icon.btn-xs{width:26px;height:26px;min-height:26px;border-radius:var(--radius-sm)}.btn-outline-danger{background-color:#fef2f2;color:#dc2626;border:1.5px solid #fca5a5}.btn-outline-danger:hover{background-color:#dc2626;color:#fff;border-color:#b91c1c;box-shadow:0 2px 6px #dc262640}.delete-icon-svg{width:16px;height:16px;display:block}.btn-xs .delete-icon-svg{width:14px;height:14px}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--text-main);margin-bottom:.375rem}.form-input,.form-select,.form-textarea{width:100%;padding:.625rem .875rem;font-size:1rem;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:#fff;color:var(--text-main);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input[type=date].form-input,input[type=datetime-local].form-input{position:relative;width:100%;max-width:320px;box-sizing:border-box;direction:rtl;text-align:right}input[type=datetime-local]::-webkit-datetime-edit,input[type=date]::-webkit-datetime-edit{direction:ltr;text-align:left}input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;padding:4px;border-radius:4px;margin-left:.5rem}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #6366f126}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-indigo{background-color:var(--primary-light);color:var(--primary-text)}.badge-emerald{background-color:var(--accent-emerald-light);color:#065f46}.badge-amber{background-color:var(--accent-amber-light);color:#92400e}.badge-rose{background-color:var(--accent-rose-light);color:#991b1b}.badge-sky{background-color:var(--accent-sky-light);color:#0369a1}.badge-violet{background-color:#f5f3ff;color:#6d28d9}.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:#fff}.table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}.table th{background-color:#f8fafc;padding:.75rem 1rem;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.table td{padding:.875rem 1rem;border-bottom:1px solid var(--border-color)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background-color:#f8fafc}.glass{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50}.modal-card{position:relative;background:#fff;width:100%;max-width:550px;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:1.75rem;animation:modalPop .2s ease-out forwards}@keyframes modalPop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}@media (max-width: 900px){.page-body,.card{padding:1.1rem}.modal-card{padding:1.25rem;max-height:90vh;overflow-y:auto}}@media (max-width: 600px){.page-body{padding:.85rem}.card{padding:.9rem;border-radius:var(--radius-md)}.modal-backdrop{padding:.75rem;align-items:flex-end}.modal-card{max-width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.table th,.table td{padding:.6rem .65rem;font-size:.8rem}.btn{font-size:.85rem}}
