.scheduler-bar{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;margin-bottom:.75rem}.scheduler-scenario{margin:0}.scheduler-scenario .kicker{margin:0 .35rem 0 0}.tabs{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:2px solid var(--line);margin-bottom:1rem}.tab{min-height:44px;padding:.4rem .9rem;border:1px solid transparent;border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;background:transparent;color:var(--graphite);font:inherit;font-weight:700;cursor:pointer;margin-bottom:-2px}.tab.active{background:var(--card);color:var(--ink);border-color:var(--line);box-shadow:inset 0 3px 0 var(--accent)}.tab-panel{min-width:0}.setup{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:1rem;gap:1rem}.setup>.card{margin-bottom:0}.block-list{list-style:none;padding:0;margin:0 0 1rem;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:.75rem;gap:.75rem}.block-item fieldset{background:var(--raised)}.block-item legend{font-weight:700;padding:0 .25rem}.students-table th[scope=row]{font-family:var(--mono)}.students-table tr[aria-current=true] td,.students-table tr[aria-current=true] th{background:var(--accent-soft)}.student-form{margin-top:1rem}.ok-line{color:var(--ok);font-weight:600}.link-button{background:none;border:none;padding:0;min-height:44px;color:var(--accent);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;text-align:left}.build-bar .build-status{margin:.75rem 0 0;font-weight:600;min-height:1.6em}.schedule-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:1rem;gap:1rem}@media (min-width:1000px){.schedule-layout{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);align-items:start}}.schedule-main,.schedule-side{min-width:0}.schedule-side .card{margin-bottom:1rem}.week-grid-wrap{min-width:0}.week-grid{display:grid;position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:0 .25rem .25rem 0;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-corner,.grid-day{position:-webkit-sticky;position:sticky;top:0;z-index:3;background:var(--card);border-bottom:1px solid var(--line)}.grid-day{text-align:center;font-weight:700;padding:.4rem 0;color:var(--graphite)}.grid-time{font-family:var(--mono);font-size:.75rem;color:var(--muted);text-align:right;padding-right:.35rem;line-height:1;padding-top:.15rem}.grid-time.hour{color:var(--graphite);font-weight:700}.grid-rail{border-left:1px solid var(--line-soft);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--slot) * 2 - 1px),var(--line-soft) calc(var(--slot) * 2 - 1px),var(--line-soft) calc(var(--slot) * 2))}.grid-block{z-index:1;margin:1px 2px;border-radius:4px;background:repeating-linear-gradient(135deg,var(--block) 0 6px,transparent 6px 10px),var(--block);color:var(--block-ink);font-size:.75rem;font-weight:700;overflow:hidden;padding:0 .25rem;pointer-events:none;min-width:0}.grid-block span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid-session{z-index:2;position:relative;margin:1px 2px;min-width:0;min-height:0;padding:.05rem .3rem;border:1px solid var(--session-line);border-left-width:4px;border-radius:4px;background:var(--session);color:var(--ink);font:inherit;font-size:.78rem;line-height:1.2;text-align:left;overflow:hidden;cursor:-webkit-grab;cursor:grab;display:flex;flex-direction:column;justify-content:flex-start;touch-action:none}.grid-session:active{cursor:-webkit-grabbing;cursor:grabbing}.grid-session-time{font-family:var(--mono);font-weight:700}.grid-session-names,.grid-session-time{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid-session.has-note{border-color:var(--warn);border-style:dashed dashed dashed solid;background:var(--warn-soft)}.grid-session.has-conflict{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}.grid-session-flag{font-family:var(--sans)}.grid-session.is-selected{outline:3px solid var(--focus);outline-offset:1px;z-index:4}.grid-session.is-dragging{opacity:.45}.grid-ghost{z-index:5;margin:1px 2px;border-radius:4px;border:2px dashed var(--ok);background:var(--ok-soft);color:var(--ok);font-size:.75rem;font-weight:700;padding:.1rem .3rem;overflow:hidden;pointer-events:none;display:flex;flex-direction:column;min-width:0}.grid-ghost.is-bad{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}.grid-ghost span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-panel h3{font-family:var(--mono)}.conflict-list,.member-list,.unplaced-list{list-style:none;padding:0;margin:0 0 1rem}.member-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.member-list li,.unplaced-list>li{border-bottom:1px solid var(--line-soft)}.unplaced-list>li{padding:.5rem 0}.unplaced-list p{margin:0 0 .35rem}.conflict-list li{padding:.35rem 0 .35rem .6rem;border-left:4px solid var(--line);margin-bottom:.4rem}.conflict-list li.is-hard{border-left-color:var(--bad)}.conflict-list li.is-hard strong,.conflict-list li.is-hard>strong{color:var(--bad)}.conflict-list li.is-soft{border-left-color:var(--warn)}.conflict-list ul{list-style:none;padding:0}.add-member select{min-height:44px;flex:1 1 10rem;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);font:inherit;padding:0 .5rem}.add-member label{font-weight:600;display:block;margin-bottom:.25rem}@media (max-width:480px){:root{--slot:20px}.grid-session{font-size:.75rem;padding:0 .2rem;border-left-width:3px}.grid-session-flag{display:none}}@media print{#grid-help,.build-bar,.schedule-side,.scheduler-bar,.tabs{display:none!important}.schedule-layout{display:block}.week-grid{border:1px solid #999}.grid-session{background:#ffffff;border-color:#000;color:#000}}.report-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));grid-gap:.6rem;gap:.6rem}.report-option{display:flex;gap:.6rem;align-items:flex-start;padding:.65rem .75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);cursor:pointer;min-height:44px}.report-option.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}.report-option input{margin-top:.3rem;width:1.1rem;height:1.1rem}.report-option span{display:flex;flex-direction:column}.report-actions{margin-bottom:1rem}.print-area{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;min-width:0}.report-head{border-bottom:2px solid var(--ink);margin-bottom:1rem;padding-bottom:.4rem}.report-head p{margin:0}.report-summary .badge{margin-right:.25rem}.sheet-page+.sheet-page{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--line)}.slips{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));grid-gap:.75rem;gap:.75rem}.slip{border:2px dashed var(--line);border-radius:var(--radius);padding:.75rem .9rem;break-inside:avoid;page-break-inside:avoid}.slip p{margin:0 0 .25rem}.slip ul{margin:.25rem 0 .5rem;padding-left:1.1rem}.slip-name{font-size:1.35rem;font-weight:800;font-family:var(--mono)}.week-sheet{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:1rem;gap:1rem}.week-day{break-inside:avoid;page-break-inside:avoid}.week-day tr.is-block td{color:var(--muted);font-style:italic}@media print{.page-header,.report-actions,.report-picker{display:none!important}.print-area{border:none;padding:0}.sheet-page+.sheet-page{break-before:page;page-break-before:always;border-top:none;margin-top:0;padding-top:0}.slips{grid-template-columns:repeat(2,minmax(0,1fr))}.slip{border-color:#777}.badge,.data-table tr.is-over td,.data-table tr.is-short td{background:#ffffff}.badge{border:1px solid #000;color:#000}.table-scroll{overflow:visible}}.rename-form{display:flex;flex-wrap:wrap;gap:.35rem}.new-scenario input,.rename-form input{min-height:44px;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);font:inherit;padding:0 .5rem}.new-scenario{align-items:flex-end;margin-top:.5rem}.import-status{min-height:1.6em;margin-top:.75rem}.readonly-scope{border:0;margin:0;padding:0;min-width:0}