/* Page placement only: shared fields, popups, actions and dialogs own controls. */
.assignment-register th:first-child{width:29%}
.assignment-register th:nth-child(2){width:30%}
.assignment-register th:last-child{width:72px;text-align:center;white-space:nowrap}
.assignment-register .assignment-choice{text-align:center}
.assignment-mobile-label{display:none}
@media(max-width:700px){
 .assignment-register thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .assignment-register,.assignment-register tbody{display:block}
 .assignment-register tr{display:grid;grid-template-columns:minmax(0,1fr) 44px;padding:11px 10px;gap:10px 8px;border-bottom:1px solid var(--line)}
 .assignment-register td{grid-column:1;padding:0;border:0;min-width:0}
 .assignment-register .assignment-choice{grid-column:2;grid-row:1/4;align-self:center}
 .assignment-mobile-label{display:block;font-size:11px;line-height:1.4;color:var(--muted);margin-bottom:3px}
}
.progress-desk-page{--desk-height:clamp(320px,39vh,420px);--desk-attention-height:calc(var(--desk-height) - 52px);--desk-date-height:86px;--desk-study-height:158px;--desk-repeat-height:110px;--desk-band-height:18px}
.desk-context-select.ui-control{field-sizing:content;width:auto;flex:0 1 auto;max-width:min(var(--ui-card-min,330px),100%);min-width:0}
.site-header-context-tools.desk-context-tools{justify-content:flex-end;gap:var(--ui-space-2,8px)}
.progress-desk{display:grid;gap:var(--ui-space-4,16px);min-width:0}
.desk-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:var(--ui-space-4,16px);min-width:0}
.desk-top>*{min-width:0}
.desk-lesson-card{display:grid;grid-column:span 2;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-4,16px)}
.desk-topic-content{--ui-surface-padding:10px;display:flex;flex-direction:column;gap:12px;block-size:calc(100% - 10px);min-block-size:0;box-sizing:border-box;margin:5px}
.desk-lesson-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;flex:none;font-size:16px;line-height:1.4}
.desk-lesson-heading>small{flex-basis:100%}
.desk-topic-tools{flex:none;gap:8px;padding-inline-end:var(--ui-space-2,8px);box-sizing:border-box}
.ui-action.desk-add-topic{background:transparent;border-color:transparent}
.ui-action.desk-add-topic:hover{border-color:transparent}
.desk-topic-caption{margin:0;flex:0 1 auto;min-width:min-content;font-size:16px;font-weight:600}
.desk-topics{display:flex;flex-direction:column;gap:3px;overflow-y:auto;min-height:0;padding:5px;flex:1}
.progress-desk .desk-topic{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;text-align:left;white-space:normal;overflow-wrap:anywhere;flex:none;gap:8px;width:100%;min-height:24px;padding:2px 0;border:0;border-radius:0;background:transparent;box-shadow:none;font-weight:400}
.progress-desk .desk-topic:hover,.progress-desk .desk-topic:active{background:transparent;box-shadow:none}
.desk-topic-label{min-width:0}
.desk-topic>.curriculum-topic-dot{opacity:.7}
.desk-topic:hover>.curriculum-topic-dot,.desk-topic:focus-visible>.curriculum-topic-dot{opacity:1}
.desk-topic[data-outcome=good]>.curriculum-topic-dot{outline:1px solid var(--success-line);outline-offset:2px;opacity:1}
.desk-topic[data-outcome=bad]>.curriculum-topic-dot{outline:1px solid var(--warning-line);outline-offset:2px;opacity:1}
.desk-topic[data-outcome=not_covered]>.curriculum-topic-dot,.desk-topic[data-outcome=moved]>.curriculum-topic-dot{background:transparent;box-shadow:inset 0 0 0 1px var(--muted)}
.desk-topic-tail{white-space:nowrap}.desk-topic-tail--long{white-space:normal;overflow-wrap:anywhere}
.desk-topic-comment{display:inline-flex;align-items:center;vertical-align:middle;margin-inline-start:6px;color:var(--muted)}
.desk-topic-comment>svg{width:14px;height:14px}
.desk-topic:focus-visible{outline:2px solid var(--focus-ring,var(--info-line));outline-offset:2px}
.desk-note-content{display:flex;flex-direction:column;gap:8px;block-size:100%;min-block-size:0;box-sizing:border-box;padding:5px}
.desk-note-editor{display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface)}
.desk-note-heading{flex:none;block-size:calc(var(--ui-control-height,40px) + 10px);box-sizing:border-box;padding:10px 10px 0;gap:8px}
.desk-note-title{margin:0;flex:none}
.desk-note-editor:focus-within{outline:3px solid var(--info-line);outline-offset:3px}
.desk-note-editor:has(.desk-note:disabled){background:var(--surface-muted)}
.desk-note-editor>.desk-note{flex:1;min-height:100px;resize:none;overflow-y:auto;box-sizing:border-box;width:100%;border:0;background:transparent;box-shadow:none;border-radius:0;padding:6px 10px;outline:none}
.desk-note-feedback{display:flex;gap:4px;align-items:center;justify-content:flex-end;flex-wrap:nowrap;flex:1;min-width:0;block-size:var(--ui-control-height,40px)}
.desk-note-status{font-size:12px;color:var(--muted);white-space:nowrap}
.desk-note-status[data-state=error]{color:var(--danger-ink)}
.desk-lesson-actions{flex:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.desk-lesson-actions>[data-assigned=true],.desk-lesson-actions>[data-prepared=true]{border-color:var(--success-line);background:var(--success-soft);color:var(--success-ink)}
.desk-right{display:flex;flex-direction:column;gap:12px}
.desk-schedule-actions{flex:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px}
.desk-lesson-actions>.ui-action,.desk-schedule-actions>.ui-action{width:100%;min-width:0;white-space:normal}
.desk-attention-surface{flex:1 0 auto;min-height:0}
.desk-attention-list{display:grid;gap:3px;min-width:0;padding:5px}
.desk-attention-select.ui-control{max-width:100%;min-width:0;width:100%}
.desk-repeat-date{display:block;font-size:12px;color:var(--muted)}
.desk-topic[data-outcome=medium]>.curriculum-topic-dot{outline:1px solid var(--warning-line);outline-offset:2px;opacity:1}
.desk-attention-list>h3{margin:8px 0 0;font-size:14px}
.desk-weak-item{display:grid;gap:4px;border-bottom:1px solid var(--line);padding-bottom:10px;overflow-wrap:anywhere}
.desk-weak-item>p{margin:0;white-space:pre-wrap;font-size:13px}
.desk-timeline-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-width:0}
.desk-timeline-tools>.ui-field{width:190px;max-width:100%;flex:none}
.desk-forecast{flex:1 1 180px;font-size:12px;color:var(--muted)}
.desk-timeline-region{min-width:0}
.desk-timeline{display:flex;min-width:0;border-top:1px solid var(--line);padding-top:8px}
.desk-row-labels{display:grid;grid-template-rows:var(--desk-date-height) var(--desk-study-height) var(--desk-repeat-height) auto;flex:0 0 66px;gap:8px;font-size:12px;color:var(--muted)}
.desk-row-labels>span{padding:10px 4px 0 0;overflow-wrap:anywhere}
.desk-scroll-frame{position:relative;flex:1;min-width:0}
.desk-scroll-frame::before,.desk-scroll-frame::after{content:'';position:absolute;top:0;bottom:24px;width:24px;z-index:3;pointer-events:none;opacity:0}
.desk-scroll-frame::before{left:0;background:linear-gradient(to right,var(--page),transparent)}
.desk-scroll-frame::after{right:0;background:linear-gradient(to left,var(--page),transparent)}
.desk-scroll-frame[data-overflow-start=true]::before,.desk-scroll-frame[data-overflow-end=true]::after{opacity:1}
.desk-scroll{overflow-x:auto;overflow-y:hidden;min-width:0;flex:1;padding:5px 18px 12px 5px;overscroll-behavior-x:contain;scrollbar-gutter:stable;position:relative}
.desk-columns{display:grid;grid-template-columns:repeat(var(--desk-columns),154px);grid-template-rows:auto auto;position:relative;width:max-content;min-width:100%;background-image:repeating-linear-gradient(to right,var(--line) 0,var(--line) 1px,transparent 1px,transparent 154px)}
.desk-grid-rule{position:absolute;left:0;right:0;height:1px;background:var(--line);pointer-events:none}
.desk-column{display:grid;grid-template-rows:var(--desk-date-height) var(--desk-study-height) var(--desk-repeat-height);gap:8px;min-width:0;padding:0 4px;box-sizing:border-box;grid-row:1}
.desk-date{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;white-space:normal;min-width:0;width:100%;box-sizing:border-box;background:var(--info-soft);border-color:var(--info-line);color:var(--ink)}
.desk-date>strong{font-size:12px;font-weight:600;line-height:1.4}
.desk-date>span{font-size:13px}
.desk-date>small{font-size:10px;font-weight:400;color:var(--muted)}
.desk-column[data-kind=draft]>.desk-date{background:var(--surface-muted);border-style:dashed;border-color:var(--line-strong)}
.desk-column[data-kind=template]>.desk-date{background:transparent;border-style:dashed;border-color:var(--line-strong)}
.desk-column.is-selected>.desk-date{background:var(--context-selected-soft);border-color:var(--context-selected-line);color:var(--ink)}
.desk-column[data-cancelled=true]>.desk-date{text-decoration:line-through}
.desk-cell{display:flex;flex-direction:column;gap:3px;overflow-y:auto;overflow-x:hidden;padding:6px;min-height:0;scrollbar-width:thin;box-sizing:border-box}
.desk-cell>.desk-topic{font-size:12px}
.desk-homework-bands{position:relative;grid-column:1/-1;grid-row:2;margin-top:8px}
.progress-desk .desk-homework-band{--desk-homework-start:var(--success-ink);--desk-homework-end:var(--success-ink);position:absolute;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:var(--desk-band-height);height:var(--desk-band-height);box-sizing:border-box;padding:0 8px;border:0;border-radius:0;font-size:11px;white-space:nowrap;color:var(--ink);overflow:visible;background:linear-gradient(to right,var(--desk-homework-start),var(--desk-homework-end)) center/calc(100% - 8px) 2px no-repeat;box-shadow:none}
.progress-desk .desk-homework-band:hover,.progress-desk .desk-homework-band:active{background:linear-gradient(to right,var(--desk-homework-start),var(--desk-homework-end)) center/calc(100% - 8px) 2px no-repeat;box-shadow:none}
.desk-homework-band[data-state=overdue]{--desk-homework-end:var(--danger-line)}
.desk-homework-band[data-state=waiting]{--desk-homework-end:var(--muted)}
.desk-homework-band[data-state=late]{--desk-homework-end:var(--homework-late-line)}
.desk-homework-band[data-state=cancelled],.desk-homework-band[data-state=closed]{--desk-homework-end:var(--muted)}
.desk-homework-band[data-state=cancelled]{text-decoration:line-through}
.desk-homework-caption{position:relative;background:var(--page);padding:0 4px;line-height:1.4;pointer-events:none}
.desk-homework-band::before,.desk-homework-band::after{content:'';position:absolute;top:50%;width:8px;height:8px;border:0;background:var(--desk-homework-start);border-radius:50%;transform:translateY(-50%);pointer-events:none}
.desk-homework-band::before{left:0}.desk-homework-band::after{right:0;background:var(--desk-homework-end)}
.desk-homework-band[data-state=overdue]::after{box-shadow:var(--danger-glow)}
.desk-homework-band[data-review=true]::after{box-shadow:0 0 3px 2px var(--accent),0 0 9px 4px color-mix(in srgb,var(--accent) 65%,transparent)}
.desk-homework-band[data-continued=true]::before,.desk-homework-band[data-continued=true]::after{outline:1px dashed var(--muted);outline-offset:2px}
.desk-no-homework{display:block;padding:8px;font-size:12px}
.desk-homework-list{display:flex;flex-direction:column;gap:8px;min-width:0}
.desk-outside-homework{margin-top:12px}.desk-outside-homework>summary{cursor:pointer;font-size:12px;color:var(--muted)}
.desk-boundary{position:absolute;top:calc(var(--desk-date-height) + 8px);bottom:calc(var(--desk-lanes)*var(--desk-band-height) + 8px);width:16px;transform:translateX(-.5px);z-index:2;pointer-events:none;border-left:2px solid var(--accent-line)}
.desk-boundary>.sw-order-grip{position:absolute;top:0;left:-10px;width:18px;min-width:18px;height:26px;min-height:26px;padding:0;pointer-events:auto;cursor:ew-resize;touch-action:none;background:var(--accent);color:var(--on-accent);border-radius:4px}
.desk-boundary.is-dragging{border-color:var(--ink)}.desk-boundary.is-blocked{border-color:transparent;z-index:5}
.desk-boundary-glow{position:absolute;width:2px;pointer-events:none;z-index:4;background:var(--danger-line);box-shadow:var(--danger-glow)}
.desk-topic-dialog,.desk-settings-dialog{width:min(620px,calc(100vw - 24px))}
.desk-topic-search{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;padding:5px}
.desk-topic-history{display:grid;gap:8px}.desk-topic-history>p{margin:0;font-size:13px}.desk-topic-history small{display:block;white-space:pre-wrap;color:var(--muted)}
.desk-checkbox{display:flex;align-items:flex-start;gap:8px;margin:0}
.desk-dialog-heading,.desk-dialog-stack>p{margin:0}
.desk-tempo-slider{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,1fr);gap:12px}
.desk-tempo-slider>input{width:100%;min-width:0}
.desk-settings-dialog .desk-dialog-stack{gap:var(--ui-space-6,24px)}
.desk-report-text{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1100px){
 .desk-top{grid-template-columns:repeat(2,minmax(0,1fr))}
 .desk-right{grid-column:1/-1}
 .desk-attention-surface{--desk-attention-height:260px}
 .desk-schedule-actions{justify-content:flex-start}
}
@media(max-width:650px){
 .site-header-context-tools>.desk-context-select,.site-header-context-tools>.desk-assignment-link{order:5}
}
@media(max-width:600px){
 .progress-desk-page{--desk-height:340px;--desk-band-height:24px}
 .desk-top{grid-template-columns:minmax(0,1fr)}
 .desk-lesson-card{grid-column:auto;grid-template-columns:minmax(0,1fr)}
 .desk-right{grid-column:auto}
 .desk-row-labels{flex-basis:48px;font-size:11px}
 .desk-timeline-tools{align-items:flex-start}
 .desk-timeline-tools>.ui-field{width:100%}
 .progress-desk .desk-topic{min-height:28px}
 .desk-boundary>.sw-order-grip{min-width:28px;min-height:44px;left:-15px}
}
@media(prefers-reduced-motion:reduce){.progress-desk *{scroll-behavior:auto}}
