.sf-page{margin:0;background:#f5f6fa;color:#253148;font-family:-apple-system,BlinkMacSystemFont,"PingFang TC",sans-serif}.sf-preview-banner{position:fixed;bottom:8px;left:50%;transform:translateX(-50%);border-radius:8px;max-width:90vw;z-index:9999;padding:9px 16px;background:#fff3d6;color:#624a15;font-size:13px;text-align:center}.sf-open{white-space:nowrap}.sf-drag-target{outline:3px solid #6384ca!important;outline-offset:3px}.sf-overlay{position:fixed;inset:0;background:#1a24395c;z-index:10010;display:flex;align-items:center;justify-content:center;padding:20px}.sf-window{background:#fff;border:1px solid #e0e5ed;border-radius:16px;width:min(780px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 65px #16213a29;padding:24px;box-sizing:border-box;color:#253148;font:14px/1.65 -apple-system,BlinkMacSystemFont,"PingFang TC",sans-serif}.sf-page .sf-window{margin:28px auto;max-height:none;box-shadow:none}.sf-head,.sf-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sf-head{justify-content:space-between}.sf-head h2{margin:0;font-size:22px}.sf-sub{color:#627087;margin:5px 0 18px}.sf-window button,.sf-window a.sf-action{font:inherit;border:1px solid #d9e0eb;background:#fff;color:#344c75;padding:8px 13px;border-radius:9px;cursor:pointer;text-decoration:none;min-height:42px;box-sizing:border-box}.sf-window button:disabled{opacity:.55;cursor:wait}.sf-drop{margin:18px 0;padding:28px 16px;border:2px dashed #becbe0;border-radius:12px;text-align:center;background:#f8faff}.sf-drop strong{font-size:17px;display:block}.sf-drop p{margin:6px 0;color:#627087}.sf-status{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;padding:10px 0}.sf-file{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 0;border-top:1px solid #e8edf4}.sf-file-copy{min-width:0;overflow-wrap:anywhere}.sf-meta{color:#627087;font-size:12px}.sf-empty{padding:28px 0;color:#627087}.sf-window input[type=file]{display:none}.sf-preview-banner a{color:inherit;text-decoration:underline}.sf-window a{overflow-wrap:anywhere}.sf-picker{max-width:240px;font:inherit;padding:7px;border:1px solid #d9e0eb;border-radius:8px}.sf-window summary{cursor:pointer;color:#526582}.sf-error{color:#a33131}
@media(max-width:600px){.sf-overlay{padding:8px}.sf-window{padding:16px;max-height:95vh}.sf-page .sf-window{margin:8px;width:calc(100% - 16px)}.sf-head h2{font-size:19px}.sf-tools{gap:6px}.sf-file{align-items:flex-start}.sf-file a{flex-shrink:0}.sf-drop{padding:20px 10px}.dashboard-lesson-actions,.course-overview-actions{flex-wrap:wrap!important}}

.sf-tools{margin-top:16px}.sf-icon{width:42px;display:inline-flex;align-items:center;justify-content:center;padding:9px!important}.sf-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sf-drop .sf-icon{margin:0 auto 12px;width:48px;height:48px}.sf-status:empty{display:none}.sf-student-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.sf-student-tabs button[aria-selected=true]{background:#eaf0ff;border-color:#88a1d5}.sf-student-group{margin-top:18px}.sf-student-group h3{font-size:16px}.sf-student-trigger{width:100%;text-align:left;font:inherit;background:#fff;border:1px solid #e0e5ed;border-radius:12px;padding:16px;color:#344c75;cursor:pointer}.sf-preview-label{padding:5px;text-align:center;color:#667085;font-size:12px;background:#f5f6fa}.sf-student-shell .sf-tools{justify-content:flex-end}

.sf-head .sf-tools{margin:0;flex-wrap:nowrap}.sf-course-trigger{margin-left:auto;flex-shrink:0;border:none;border-radius:10px;background:var(--accent,#3a7bd5);color:#fff;padding:11px 17px;font-size:14px;font-weight:800;font-family:inherit;line-height:1.4;cursor:pointer;min-height:44px}#learning-record-card .card-head{flex-wrap:wrap;gap:8px}#learning-record-card .card-title{margin:0}#learning-record-card #learning-record-open{order:1}#learning-record-card .sf-course-trigger{order:2;margin-left:0}.sf-window .sf-icon{border-color:#e2e7ef;color:#546780;box-shadow:none;border-radius:10px}.sf-icon svg{stroke-width:1.6}.sf-window .sf-icon:hover{background:#f3f6fa;border-color:#bec9d9}.sf-student-shell .sf-head{flex-wrap:nowrap}.sf-student-shell .sf-tools{gap:8px}.sf-student-shell .sf-head h2{white-space:nowrap}.sf-student-tabs{gap:6px}.sf-student-tabs button{flex:1;white-space:nowrap}.sf-student-shell .sf-tools button{padding:7px 10px}.sf-student-shell .sf-tools .sf-icon{width:38px;min-height:38px}.sf-student-shell .sf-head h2{font-size:20px}

.sf-course-trigger:hover{background:#326fc2}.sf-course-trigger:focus-visible{outline:3px solid #a6c8fa;outline-offset:2px}

.sf-row-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.sf-recycle{margin-top:18px}.sf-recycle summary{cursor:pointer;color:#667085}.sf-file[draggable=true]{cursor:grab}@media(max-width:520px){.sf-row-actions{flex-shrink:0}.sf-window .sf-file{flex-wrap:wrap}.sf-row-actions button{min-height:36px}}

/* Unified teacher manager; scoped to its page. */
#page-courseFiles .fm-manager{width:100%;max-width:none;max-height:none;box-shadow:none;margin:0}#page-courseFiles select,#page-courseFiles input[type=search]{font:inherit;padding:10px;border:1px solid #d9e0eb;border-radius:9px;background:white;max-width:100%;min-width:0}#page-courseFiles .fm-filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}#page-courseFiles .fm-filters input{flex:1;min-width:160px}#page-courseFiles .fm-queue{background:#f8faff;border-radius:12px;padding:0 14px}#page-courseFiles .fm-queue .sf-tools{padding-top:14px}#page-courseFiles .fm-queue .sf-file>strong{flex:1}#page-courseFiles .fm-queue select{max-width:280px}#page-courseFiles .sf-head h2{font-size:20px}#page-courseFiles button:disabled{cursor:not-allowed}.nav button.nav-item{font:inherit;text-align:left;width:100%;background:transparent;border:0;cursor:pointer}.nav button.nav-item.active{background:var(--accent-light,#e8edff)}#learning-record-card .sf-course-trigger{order:1;margin-left:auto}#learning-record-card #learning-record-open{order:2;margin-left:0;flex-shrink:0}#learning-record-card .card-head{justify-content:flex-start}
@media(max-width:600px){#page-courseFiles .sf-window{padding:14px}#page-courseFiles .fm-filters>*{flex:1 1 40%}#page-courseFiles .sf-file{flex-wrap:wrap}#page-courseFiles .fm-queue select{max-width:100%;width:100%}}

#page-courseFiles button.fm-primary{background:#567ce4;color:#fff;border-color:#567ce4;font-weight:600}#page-courseFiles button.fm-primary:hover{background:#4268ce}#page-courseFiles .fm-manager select:focus-visible,#page-courseFiles button:focus-visible{outline:3px solid #b7c9ff;outline-offset:2px}

#page-courseFiles .fm-filters>select{width:auto;flex:0 1 180px}#page-courseFiles .fm-filters>input[type=search]{width:auto;flex:1 1 180px}.nav button.nav-item{width:auto}
@media(max-width:600px){#page-courseFiles .fm-filters>select,#page-courseFiles .fm-filters>input[type=search]{width:0;flex:1 1 40%}}

.nav button.nav-item{width:100%}@media(max-width:768px){.nav button.nav-item{width:auto}}
/* Scoped calendar badges and drag handles; preserve existing cell dimensions. */
.holiday-date-head{display:flex;align-items:center;gap:3px;min-width:0}
.holiday-date-head .cal-day{flex-shrink:0}
.holiday-badge{color:#be2633;background:#fff0f1;border:1px solid #f3c8cd;border-radius:4px;padding:1px 4px;font-size:10px;font-weight:650;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%;margin-bottom:5px}
.holiday-work{color:#8a5a00;background:#fff8e6;border-color:#e8d399}
.week-day-header .holiday-date-head{justify-content:center}.week-day-header .week-day-num{margin:0}
.course-achievement-row>.course-drag-handle,#sf-manager .course-drag-handle{flex:0 0 24px;width:24px;min-width:24px;padding:2px;border:0;background:transparent;color:#7d879c;font-size:22px;line-height:28px;cursor:grab;touch-action:none;box-shadow:none}
.course-drag-handle:active{cursor:grabbing}.course-drag-target{outline:2px solid #718dea;outline-offset:-2px}.course-dragging{opacity:.55}
@media(max-width:600px){.holiday-badge{font-size:9px;padding:0 2px}.holiday-date-head{gap:1px}}

.holiday-off .cal-day:not(.today-num),.holiday-off .week-day-num:not(.today){color:#be2633!important}
#course-records-page-body .course-achievement-row[data-learning-id]{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:6px}
#course-records-page-body .course-achievement-row[data-learning-id] .course-achievement-row-main{text-align:left;min-width:0}
#course-records-page-body .course-achievement-row[data-learning-id] .course-achievement-row-actions{flex-wrap:nowrap}

/* Teacher file names sit beside the handle; actions remain at the right. */
#page-courseFiles .sf-list .sf-file-copy{flex:1;text-align:left}
#page-courseFiles .sf-list .sf-row-actions{flex-shrink:0}
