.teacher-constraint-page[data-v-28f8e4f8]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;background:#f5f7fa;min-height:100vh}.breadcrumb[data-v-28f8e4f8]{font-size:13px;color:#86909c;padding:16px 24px}.breadcrumb .sep[data-v-28f8e4f8]{margin:0 6px}.main-layout[data-v-28f8e4f8]{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;padding:0 24px 16px;gap:16px;overflow:hidden}.teacher-sidebar[data-v-28f8e4f8]{width:200px;background:#fff;border-right:1px solid #e8e8e8;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.06);overflow-y:auto;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;transition:width .25s ease}.teacher-sidebar.collapsed[data-v-28f8e4f8]{width:0;padding:0;overflow:hidden;border:none;opacity:0}.sidebar-header[data-v-28f8e4f8]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:16px;-ms-flex-negative:0;flex-shrink:0}.sidebar-title[data-v-28f8e4f8]{font-weight:600;font-size:14px;color:#1d2129;white-space:nowrap}.sidebar-toggle[data-v-28f8e4f8]{cursor:pointer;color:#86909c;font-size:14px;transition:color .2s}.sidebar-toggle[data-v-28f8e4f8]:hover{color:#1677ff}.sidebar-divider[data-v-28f8e4f8]{height:1px;background:#eee;margin:0 16px;-ms-flex-negative:0;flex-shrink:0}.sidebar-body[data-v-28f8e4f8]{-ms-flex:1;flex:1;overflow-y:auto;padding:8px 0}.sidebar-item[data-v-28f8e4f8]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:10px 12px;margin:0 8px;border-radius:4px;cursor:pointer;transition:all .15s;gap:8px}.sidebar-item[data-v-28f8e4f8]:hover{background:#f7f8fa}.sidebar-item.active[data-v-28f8e4f8]{background:#f0f7ff;border-left:3px solid #1677ff;margin-left:5px;padding-left:9px}.sidebar-item-info[data-v-28f8e4f8]{-ms-flex:1;flex:1;min-width:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:4px}.sidebar-item-name[data-v-28f8e4f8]{font-size:13px;color:#1d2129;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item-meta[data-v-28f8e4f8]{font-size:12px;line-height:18px}.meta-red[data-v-28f8e4f8]{color:#f53f3f}.meta-gray[data-v-28f8e4f8]{color:#86909c}.delete-icon[data-v-28f8e4f8]{color:#86909c;font-size:13px;cursor:pointer;padding:3px;border-radius:3px;transition:all .15s}.delete-icon[data-v-28f8e4f8]:hover{color:#f53f3f;background:#fff2f0}.main-content[data-v-28f8e4f8]{-ms-flex:1;flex:1;min-width:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow-y:auto}.top-bar[data-v-28f8e4f8]{-ms-flex-pack:justify;justify-content:space-between;background:#fff;border-radius:8px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,.06);-ms-flex-negative:0;flex-shrink:0}.top-bar-left[data-v-28f8e4f8],.top-bar[data-v-28f8e4f8]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-label[data-v-28f8e4f8]{font-weight:500;margin-right:8px;font-size:13px;color:#1d2129}.top-bar-right[data-v-28f8e4f8]{display:-ms-flexbox;display:flex;gap:8px}.constraint-panel[data-v-28f8e4f8]{background:#fff;border-radius:8px;padding:16px 20px;box-shadow:0 2px 8px rgba(0,0,0,.06);-ms-flex-negative:0;flex-shrink:0}.panel-title[data-v-28f8e4f8]{font-weight:600;font-size:14px;color:#1d2129;margin-bottom:8px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:6px}.panel-tip[data-v-28f8e4f8]{color:#86909c;font-size:13px;margin-bottom:16px}.week-range-bar[data-v-28f8e4f8]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;background:#f0f7ff;border-radius:6px;border:1px solid #d6e4ff}.week-range-label[data-v-28f8e4f8]{font-weight:500;font-size:13px;color:#1d2129;white-space:nowrap}.week-range-hint[data-v-28f8e4f8]{font-size:12px;color:#86909c}.table-wrapper[data-v-28f8e4f8]{overflow-x:auto}.constraint-table[data-v-28f8e4f8]{width:100%;border-collapse:collapse;border:1px solid #e5e6eb;font-size:13px}.constraint-table td[data-v-28f8e4f8],.constraint-table th[data-v-28f8e4f8]{border:1px solid #e5e6eb;text-align:center;padding:10px 8px}.constraint-table thead th[data-v-28f8e4f8]{background:#f7f8fa;font-weight:600;color:#4e5969}.time-cell[data-v-28f8e4f8],.time-header[data-v-28f8e4f8]{width:140px;background:#fafbfc}.time-cell[data-v-28f8e4f8]{text-align:left!important;padding-left:12px!important}.time-label[data-v-28f8e4f8]{font-weight:500;color:#1d2129}.time-range[data-v-28f8e4f8]{font-size:11px;color:#86909c;margin-top:2px}.check-cell[data-v-28f8e4f8]{background:#f0f7ff;cursor:pointer;transition:background .15s}.check-cell[data-v-28f8e4f8]:hover{background:#e8f3ff}.check-cell.is-unavailable[data-v-28f8e4f8]{background:#fff2f0}.check-cell.is-unavailable[data-v-28f8e4f8]:hover{background:#ffe7e5}.panel-footer[data-v-28f8e4f8]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:8px;padding:12px 0 4px;font-size:13px;color:#4e5969}@media (max-width:768px){.main-layout[data-v-28f8e4f8]{position:relative;padding:0 12px 12px}.teacher-sidebar[data-v-28f8e4f8]{position:absolute;left:12px;top:0;bottom:12px;z-index:100;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.12)}.teacher-sidebar.collapsed[data-v-28f8e4f8]{width:0;opacity:0;pointer-events:none}}