.cell-picker{position:fixed;z-index:20;background:#fff;border:1px solid #cbd8e9;border-radius:7px;box-shadow:0 8px 25px #18324d26;overflow-y:auto;padding:4px;overscroll-behavior:contain}.cell-picker[hidden]{display:none}.cell-choice{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:4px;font-size:13px;cursor:pointer}.cell-choice b{font-weight:600}.cell-choice small{font-size:11px;color:#6f7e93}.cell-choice[aria-selected=true],.cell-choice:hover{background:#e4efff;color:#1259b5}
.grid-warning{padding:13px 17px;border:1px solid #ebbc7c;background:#fff1dc;color:#7e4910;border-radius:6px;margin-bottom:15px;font-size:13px;line-height:1.6}.daily-rule{display:flex;align-items:center;flex-wrap:wrap;gap:15px}.daily-rule h3{margin:0 0 5px}.daily-rule p{font-size:12px;color:#65758d;margin:0}.daily-rule label{flex-direction:row;align-items:center;margin-left:auto;font-size:13px;cursor:pointer}.daily-rule input{width:18px;height:18px;accent-color:#1769e8}.daily-rule small{flex-basis:100%;font-size:11px}
.schedule.daily-view{min-width:580px}.schedule.daily-view th.type{width:100px}.schedule.daily-view th.time{width:80px}.schedule.daily-view td.time{left:100px}.schedule.daily-view input{font-size:14px;padding-left:14px}.schedule.daily-view thead th.day{background:#deecff;color:#1259b5}.selected-day{background:#deecff;border-color:#a7c6f0;color:#1259b5;font-weight:600}
.key{padding:5px 0;gap:14px;font-size:11px;line-height:16px}main{padding-bottom:32px}.sheet-wrap{max-height:calc(100vh - 255px)}footer{min-height:25px;padding:4px 18px;line-height:16px;gap:10px}footer small{font-size:10px}@media(max-width:900px){main{padding-bottom:58px}.sheet-wrap{max-height:calc(100vh - 315px)}footer{padding:3px 10px;gap:3px 10px;line-height:15px}}
.package-form{display:flex;flex-wrap:wrap;gap:16px;align-items:end}.package-form input{max-width:190px}.package-form small{flex-basis:100%;line-height:1.7}.cancel-actions{display:grid;gap:10px;margin-top:20px}#cancel-lesson input{font-size:14px}#cancel-lesson button{font-size:13px}
.rule-dialog{max-width:490px;padding:30px;border:1px solid #efd39b;border-top:6px solid #e5a227;box-shadow:0 22px 100px #10243e66}.rule-dialog::backdrop{background:#12283fb3;backdrop-filter:blur(3px)}.rule-dialog.rule-block{border-color:#edc1bc;border-top-color:#cb4138}.rule-symbol{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#fff0c9;color:#a96600;font-size:30px;font-weight:700;margin-bottom:15px}.rule-block .rule-symbol{background:#fce5e2;color:#bb3029}.rule-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#94600a;margin-bottom:9px}.rule-block .rule-eyebrow{color:#ad332c}.rule-dialog h2{font-size:25px;margin-bottom:14px}.rule-member{font-weight:650;font-size:16px;margin:0 0 12px}#rule-message{font-size:16px;line-height:1.7;color:#28394c}.rule-footnote{font-size:12px;line-height:1.6;color:#738097}.rule-actions{display:flex;gap:10px;margin-top:22px}.rule-actions button{width:auto;flex:1;font-size:14px;padding:12px}.rule-confirm{background:#bd7b10;border-color:#bd7b10;color:#fff;font-weight:600}.rule-confirm:hover{background:#9b6308;color:#fff}.rule-block .rule-confirm{background:#bc3d34;border-color:#bc3d34}.rule-block .rule-confirm:hover{background:#9b302a}
.copy-day{display:block;margin:5px auto 0;padding:3px 5px;font-size:10px;color:#46678e;border:1px solid #c6d5e8;background:#fff;border-radius:4px;white-space:nowrap}.schedule thead tr:first-child th{height:76px}.schedule thead tr:nth-child(2) th{top:76px}.schedule td.draft-cell{background:repeating-linear-gradient(135deg,#fff5d7,#fff5d7 7px,#ffedbc 7px,#ffedbc 9px)}.draft-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding:1px 4px 3px;font-size:9px;color:#8b5b13}.draft-actions button{padding:0;width:21px;height:20px;font-size:14px;line-height:18px}.draft-approve{color:#21794e;border-color:#99c9ad}.draft-reject{color:#ac4038}.draft-note{padding:8px 12px;margin-bottom:8px;background:#fff3d6;border:1px solid #e8ce8b;border-radius:5px;color:#79551e;font-size:12px}

/* Keep schedule controls compact and give the remaining viewport to lessons. */
#app.schedule-page{height:calc(100dvh - var(--top-bar-height,60px) - var(--demo-bar-height,40px) - var(--footer-bar-height,25px));display:flex;flex-direction:column;min-height:0;padding:8px 22px 3px}
.schedule-page>.heading{flex-shrink:0;margin-bottom:6px;min-height:22px}
.schedule-page>.heading>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px}
.schedule-page>.heading h1{font-size:18px;letter-spacing:-.3px}
.schedule-page>.heading small{margin:0;font-size:11px}
.schedule-page>.toolbar{flex-shrink:0;gap:6px;margin-bottom:7px}
.schedule-page>.toolbar button,.schedule-page>.toolbar input,.schedule-page>.toolbar select{height:32px;padding:5px 10px;font-size:12px}
.schedule-page>.toolbar #prev,.schedule-page>.toolbar #next{width:30px;padding:4px}
.schedule-page #week-label{font-size:13px;min-width:185px}
.schedule-page #schedule-search{width:185px}
.schedule-page>.draft-note{flex-shrink:0;padding:5px 10px;margin-bottom:6px;font-size:11px;line-height:16px}
.schedule-page>.sheet-wrap{flex:1;min-height:140px;max-height:none;overscroll-behavior:contain}
.schedule-page .schedule thead tr:first-child th{height:48px;padding:4px 2px;font-size:11px}
.schedule-page .schedule thead tr:nth-child(2) th{top:48px;height:24px;padding:3px 2px;font-size:11px}
.schedule-page .copy-day{margin:3px auto 0;padding:1px 5px;font-size:9px;line-height:14px}
.schedule-page>.key{flex-shrink:0;padding:3px 0;font-size:10px;gap:12px;flex-wrap:wrap}
@media(max-width:900px){#app.schedule-page{padding-right:12px;padding-left:12px}.schedule-page>.toolbar{gap:5px}.schedule-page #week-label{min-width:165px}}
@media(max-width:600px){.schedule-page>.heading small{display:none}.schedule-page #schedule-search{width:150px}.schedule-page>.toolbar button,.schedule-page>.toolbar input,.schedule-page>.toolbar select{height:34px}.schedule-page>.key>span:last-child{display:none}}
