:root{--cal-card: #e8e8e6;--cal-warn-surface: #fef9ec;--cal-warn-accent: #c8960c;--cal-warn-border: #e8d89a;--cal-warn-ink: #5c3d00;--cal-warn-ink-2: #7a5200;--cal-line: #f0f0ee;--cal-line-soft: #f7f7f5;--cal-leading: 1.1;--cal-card-gutter: 2px;--z-cal-card: 10;--z-cal-conflict: 5}body.scheduler-shell{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}body.scheduler-shell>astro-island{display:contents}body.scheduler-shell nav{padding:var(--space-1) var(--space-3)}body.scheduler-shell .nav-back{display:block;text-decoration:none;color:inherit;font-size:1.125rem;line-height:1}body.scheduler-shell .nav-title{display:block;font-size:var(--text-base)}body.scheduler-shell .nav-right{flex:0;margin-left:auto;flex-direction:column;align-items:flex-end;gap:0}body.scheduler-shell .nav-email{font-size:var(--text-base)}body.scheduler-shell .btn-signout{font-size:var(--text-base);padding:0}.scheduler-page{padding:var(--space-6) var(--space-4)}body.scheduler-shell .scheduler-page{flex:1;min-height:0;overflow:hidden;padding:var(--space-2) var(--space-3);gap:var(--space-2)}.scheduler-layout{display:flex;flex-direction:row;gap:var(--space-4);flex:1;min-height:0;user-select:none;-webkit-user-select:none}.scheduler-sidebar{width:12rem;flex-shrink:0}.scheduler-sidebar h3{margin-bottom:var(--space-2)}.room-select-row{gap:var(--space-2);margin-bottom:var(--space-2)}.calendar-wrapper{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.calendar-nav{margin-top:var(--space-2)}.calendar-scroll{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;border:var(--border-width) solid var(--border);border-radius:var(--radius);background:var(--surface)}.student-card{cursor:grab;border-radius:var(--radius);padding:var(--space-2);background:var(--surface-hover);border:var(--border-width) solid var(--border-control);user-select:none;touch-action:none}.student-card.dragging{opacity:.5}.student-card p:first-child{font-weight:500}.cal-grid{display:grid;grid-template-columns:var(--cal-grid-cols);grid-template-rows:var(--cal-grid-rows)}.cal-grid-split{min-width:980px}.cal-grid-split .cal-cell-right{border-left:var(--border-width) solid var(--border)}.cal-corner{border-bottom:var(--border-width) solid var(--border);border-right:var(--border-width) solid var(--border);background:var(--cal-line-soft);grid-column:1;grid-row:1}.cal-day-header{border-bottom:var(--border-width) solid var(--border);border-right:var(--border-width) solid var(--border);background:var(--cal-line-soft);padding:var(--space-2);text-align:center;font-size:var(--text-base);font-weight:600;color:var(--ink-2);grid-row:1;grid-column:var(--cal-col) / span var(--cal-col-span)}.cal-hour-label{border-right:var(--hairline) solid var(--cal-line);padding-right:var(--space-2);text-align:right;font-size:var(--text-base);color:var(--border-control);grid-column:1;grid-row:var(--cal-row);transform:translateY(-.5em)}.cal-cell{border-right:var(--hairline) solid var(--cal-line);border-top:var(--hairline) solid var(--cal-line-soft);grid-column:var(--cal-col);grid-row:var(--cal-row)}.cal-cell.hour-boundary{border-top-color:var(--border)}.cal-cell.last-col{border-right:none}.cal-cell.cell-active{background:var(--cal-line);box-shadow:inset 0 0 0 1px var(--border-control)}.lesson-card,.lesson-card-roomed,.lesson-card-unroomed,.conflict-overlay{grid-column:var(--cal-col);grid-row:var(--cal-row-start) / span var(--cal-row-span)}.lesson-card{border-radius:var(--radius);margin:0 var(--cal-card-gutter);background:var(--cal-card);border:var(--border-width) solid var(--border-control);padding:var(--space-1);overflow:hidden;z-index:var(--z-cal-card);cursor:grab;position:relative;touch-action:none}.lesson-card-unroomed,.lesson-card-roomed{text-align:left;width:100%;height:100%;position:relative;padding:var(--space-1);overflow:hidden;border-radius:var(--radius);margin:0 var(--cal-card-gutter);cursor:pointer;z-index:var(--z-cal-card);touch-action:none}.lesson-card-unroomed{background:var(--cal-warn-surface);border-left:3px solid var(--cal-warn-accent);border-top:var(--hairline) solid var(--cal-warn-border);border-right:var(--hairline) solid var(--cal-warn-border);border-bottom:var(--hairline) solid var(--cal-warn-border)}.lesson-card-roomed{background:var(--cal-card);border:var(--border-width) solid var(--border-control)}.lesson-ghost{opacity:.6;pointer-events:none}.conflict-overlay{border-radius:var(--radius);margin:0 var(--cal-card-gutter);background:var(--cal-line);border:var(--hairline) solid var(--border);padding:var(--space-1);overflow:hidden;opacity:.7;pointer-events:none;z-index:var(--z-cal-conflict)}.lesson-delete{position:absolute;top:var(--cal-card-gutter);right:var(--cal-card-gutter);color:var(--border-control);font-size:var(--text-lg);line-height:1;background:none;border:none;cursor:pointer;padding:var(--space-1)}.lesson-delete:hover{color:var(--danger)}.lesson-resize-handle{position:absolute;bottom:0;left:0;right:0;height:6px;cursor:ns-resize;touch-action:none}.lesson-resize-handle:hover{background:#0000001f;border-radius:0 0 4px 4px}.room-badge{position:absolute;top:var(--cal-card-gutter);right:var(--cal-card-gutter);font-size:var(--text-base);background:var(--cal-card);color:var(--ink-2);border-radius:3px;padding:0 var(--space-1);border:var(--hairline) solid var(--border-control)}.cal-label,.cal-sublabel,.cal-room{font-size:var(--text-base);margin:0;line-height:var(--cal-leading)}.cal-label{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-sublabel{color:var(--ink-2)}.cal-room{color:var(--ink-muted)}.lesson-card .cal-label{padding-right:var(--space-4)}.lesson-card-unroomed .cal-label{color:var(--cal-warn-ink)}.lesson-card-unroomed .cal-sublabel{color:var(--cal-warn-ink-2)}.conflict-overlay .cal-label{color:var(--ink-2)}.conflict-overlay .cal-sublabel{color:var(--ink-muted)}@media(min-width:601px){.cal-grid{min-width:700px}}@media(max-width:600px){.scheduler-layout{flex-direction:column}.scheduler-sidebar{width:100%;overflow-x:auto}.scheduler-sidebar .stack-sm{display:flex;flex-direction:row;gap:var(--space-2)}.scheduler-sidebar .student-card{flex-shrink:0}.lesson-resize-handle{height:12px}.lesson-delete{min-height:0;padding:var(--space-2);font-size:1.15rem}body.scheduler-shell .btn-signout{min-height:44px;padding:var(--space-2) var(--space-3)}}
