.schedule-main {max-width:1200px;width:100%;margin:auto;padding:24px;box-sizing:border-box}
.schedule-main select,.schedule-main input:not([type=checkbox]) {width:100%;min-height:44px;padding:10px;border:1px solid #d8c9ee;border-radius:8px;box-sizing:border-box;font:inherit;background:white;color:#321653}
.schedule-toolbar {display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0}
.schedule-toolbar h2 {margin:0;flex:1}
.schedule-main button {min-height:44px;cursor:pointer}
.schedule-main .panel {margin-top:20px;min-width:0}
#lesson-form {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#lesson-form label {display:grid;gap:6px}#lesson-form fieldset,#lesson-form>p,#lesson-form>.schedule-toolbar {grid-column:1/-1}
.weekdays {display:flex;flex-wrap:wrap;gap:12px}.weekdays label {display:flex!important;align-items:center;min-height:44px}.weekdays input {width:20px;height:20px}
.calendar-day {background:#f7f3ff;border-radius:12px;padding:10px;min-width:0}
.calendar-day h3 {font-size:16px;margin-top:0}.lesson-card {border:1px solid #e5dcf3;border-radius:10px;padding:12px;margin:8px 0;background:white;overflow-wrap:anywhere;font-size:16px}
.lesson-card p {margin:8px 0}.lesson-card h3 {font-size:18px;margin:8px 0}.lesson-card.cancelled {opacity:.7}.lesson-card.completed {border-color:#56a37a}.lesson-actions {display:flex;flex-wrap:wrap;gap:6px}.lesson-actions button {font-size:14px;padding:6px 10px}
.schedule-filters {display:flex;flex-wrap:wrap;gap:12px;align-items:end}.schedule-filters label {flex:1;min-width:160px}
#calendar .lesson-actions {display:none}#calendar .lesson-card {padding:8px;font-size:14px}

@media(max-width:650px){.schedule-main{padding:16px}#lesson-form {grid-template-columns:1fr}.schedule-toolbar h2 {flex-basis:100%;order:-1}.schedule-filters label {min-width:100%}}

#calendar.time-calendar{display:block;max-height:none;overflow-x:auto;overflow-y:hidden;border:1px solid #e5dcf3;border-radius:12px;scroll-behavior:auto;position:relative;isolation:isolate;background:white}.time-week{display:grid;grid-template-columns:64px repeat(7,minmax(110px,1fr));min-width:900px}.time-corner,.time-day-heading{position:sticky;top:0;background:#fff;z-index:5;min-height:70px;border-bottom:1px solid #dcd3ea;border-right:1px solid #eee7f5;padding:10px;text-align:center;font-size:14px}.time-corner{left:0;z-index:8;display:flex;align-items:center;justify-content:center;color:#736980;font-size:12px}.time-day-heading strong{display:block;font-size:17px;white-space:nowrap}.time-day-heading span{text-transform:uppercase;font-size:12px;color:#736980}.time-day-heading.is-today{background:#f0e9fc;color:#6410ed}.time-axis{position:sticky;left:0;background:#fff;z-index:4;border-right:1px solid #dcd3ea;font-size:12px;color:#736980}.time-axis>span,.secondary-hour{position:absolute;box-sizing:border-box;margin:0;padding:3px 5px 0;font-size:12px;line-height:18px;font-weight:400;white-space:nowrap}.time-axis>span{left:0;right:0;text-align:right;padding-right:8px}.time-day{position:relative;min-width:0;border-right:1px solid #eee7f5;background:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#f1ecf7 31px,#f1ecf7 32px,transparent 32px,transparent 63px,#dfd7e9 63px,#dfd7e9 64px)}.time-day.is-today{background-color:#fcf9ff}.schedule-main .time-slot{position:absolute;left:0;width:100%;min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none!important;z-index:0}.time-slot:hover:not(:disabled){background:#eee5fc88}.time-slot:focus-visible{outline-offset:-3px}.time-slot:disabled{opacity:1;cursor:default}.schedule-main .calendar-event{position:absolute;z-index:2;padding:4px 6px;min-height:0;border-radius:5px;text-align:left;overflow:hidden;font-size:12px;line-height:1.3;border:1px solid #bba0eb;border-left:4px solid #6410ed;background:#ede3fc;color:#36145d;box-shadow:none}.calendar-event strong,.calendar-event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event strong{font-size:13px}.schedule-main .calendar-event.completed{background:#e0f2e8;color:#205c3e;border-color:#9bcab0;border-left-color:#32835b}.schedule-main .calendar-event.cancelled{background:#f0f0f3;color:#65626c;border-color:#ceccd4;border-left-color:#8a8594}.calendar-event.cancelled strong{text-decoration:line-through}.calendar-now{position:absolute;left:0;right:0;height:2px;background:#da3545;z-index:3;pointer-events:none}.calendar-now:before{content:'';position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:#da3545}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;margin:18px 0}.calendar-legend>span:before{content:'';display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;background:#6410ed}.calendar-legend>.completed:before{background:#32835b}.calendar-legend>.cancelled:before{background:#8a8594}.calendar-help{margin-top:16px;font-size:14px}.student-calendar{display:block}.student-calendar .lesson-card{margin:12px 0}#selected-lesson{scroll-margin-top:20px}#selected-lesson>button{float:right}@media(max-width:650px){#calendar.time-calendar{max-height:none}.schedule-main .panel:has(#calendar){padding:14px}}

.time-week.has-secondary-zone{grid-template-columns:64px 86px repeat(7,minmax(110px,1fr));min-width:985px}.time-corner{font-size:11px;line-height:1.3;overflow-wrap:anywhere}.time-corner.secondary-corner{left:64px;background:#faf6ff;border-right:1px solid #d5c7e6}.time-axis.secondary-axis{left:64px;z-index:4;background:#faf6ff;border-right:1px solid #d5c7e6}.secondary-hour{left:0;right:0;text-align:center}.calendar-selection{position:absolute;left:2px;right:2px;z-index:1;border:2px solid #6410ed;background:#cdb1f499;border-radius:5px;pointer-events:none;padding:3px;font-size:12px;font-weight:600;color:#321653;overflow:hidden}.time-day{user-select:none}#secondary-zone-control{font-size:14px;margin-left:auto;min-width:180px}#secondary-zone-control select{margin:4px 0 0;min-height:40px;font-size:14px}#secondary-preview{padding:10px 12px;border-radius:8px;background:#f0e9fc}#secondary-preview:empty{display:none}@media(max-width:650px){#secondary-zone-control{width:100%;margin-left:0}}

.timezone-change-heading{display:block;color:#b42332;font-size:11px;line-height:1.25;margin-top:4px}.timezone-correction{position:absolute;left:3px;right:3px;height:20px;box-sizing:border-box;z-index:1;pointer-events:none;background:#fff0f1;border-top:1px solid #e8a4ac;color:#b42332;font-size:11px;line-height:18px;padding:0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-corner{overflow-wrap:normal}

#primary-zone-control{font-size:14px;min-width:180px;margin-left:auto}#primary-zone-control select{margin:4px 0 0;min-height:40px;font-size:14px}#secondary-zone-control{margin-left:0}@media(max-width:650px){#primary-zone-control{width:100%;margin-left:0}}

.time-day{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#f1ecf7 31px,#f1ecf7 32px,transparent 32px,transparent 63px,#dfd7e9 63px,#dfd7e9 64px),repeating-linear-gradient(to bottom,transparent 0,transparent 15px,#f7f4fa 15px,#f7f4fa 16px)}

/* Keep action buttons and both timezone fields on one baseline. */
.calendar-controls{display:grid;grid-template-columns:max-content max-content minmax(180px,1fr) minmax(180px,1fr);gap:12px;align-items:end;margin:20px 0 16px}
.calendar-controls #primary-zone-control,.calendar-controls #secondary-zone-control{display:flex;flex-direction:column;gap:6px;min-width:0;width:100%;margin:0;font-size:13px;line-height:18px}
.calendar-controls #primary-zone-control select,.calendar-controls #secondary-zone-control select{height:48px;min-height:48px;margin:0;font-size:14px;line-height:20px}
.calendar-controls>button{height:48px;box-sizing:border-box;margin:0;white-space:nowrap}
.calendar-controls>[hidden]{display:none!important}
@media(max-width:850px){.calendar-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-controls>button{width:100%}}
@media(max-width:480px){.calendar-controls #primary-zone-control,.calendar-controls #secondary-zone-control{grid-column:1/-1}}

#student-range-control{display:grid;gap:6px;font-size:14px;min-width:260px}#student-range-control[hidden]{display:none}

.calendar-range-options{display:flex;flex-wrap:wrap;gap:8px 20px;border:0;padding:0;margin:16px 0;min-width:0}.calendar-range-options legend{font-size:14px;margin-bottom:6px}.calendar-range-options label{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;cursor:pointer}.calendar-range-options input[type=radio]{width:18px;height:18px;margin:0;accent-color:#6410ed}.schedule-main .calendar-range-options input[type=radio]{width:18px;min-height:0;padding:0}#student-range-control.calendar-range-options{display:flex;min-width:0}#student-range-control[hidden]{display:none}

.calendar-range-options[hidden]{display:none!important}

.lesson-cancel-dialog{width:min(540px,calc(100vw - 32px));max-height:90vh;overflow:auto;box-sizing:border-box;padding:24px;border:1px solid #d8c9ee;border-radius:16px;background:white;color:#321653}.lesson-cancel-dialog::backdrop{background:#24103a66}.lesson-cancel-dialog h2{margin-top:0}.lesson-cancel-dialog label{display:grid;gap:8px}.lesson-cancel-dialog select{width:100%;padding:12px;font:inherit;border:1px solid #d8c9ee;border-radius:8px;background:white;color:inherit}.lesson-cancel-dialog button{min-height:44px}.lesson-cancel-dialog button[type=submit]{color:#a52036;border-color:#e4a9b3}

.schedule-main .calendar-event.is-compact{padding:2px 5px;line-height:1.2}.calendar-event.is-compact>span:last-child{display:none}.schedule-main .calendar-event.is-tiny{display:flex;align-items:center;gap:5px;padding:0 4px}.calendar-event.is-tiny strong{flex:1;min-width:0;font-size:11px}.calendar-event.is-tiny>span{flex-shrink:0;font-size:10px}

.schedule-toolbar>#range-label{flex:0 0 100%;text-align:left;margin:0 0 8px;overflow-wrap:anywhere}

.schedule-main .calendar-complete{position:absolute;z-index:3;width:28px;height:28px;min-height:28px;padding:0;border:1px solid #97bfa6;border-radius:6px;background:#edf8f0;color:#246a42;font-size:16px;cursor:pointer}.schedule-main .calendar-complete:hover{background:#d4efdd}.pending-lessons{margin:16px 0;padding:12px 16px;background:#fff8e9;border:1px solid #ead8b2;border-radius:12px}.pending-lessons>summary{min-height:44px;align-content:center;cursor:pointer;font-size:15px;font-weight:600}.pending-lesson{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:10px 0;border-top:1px solid #eadfc8;font-size:14px}.pending-lesson button{font-size:14px;color:#246a42}
