.dated-calendar{background:#fff;border:1px solid #e5e8ed;border-radius:20px;padding:22px;margin:24px 0;box-shadow:0 8px 28px #29334808;color:#334155;direction:rtl}
.calendar-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.calendar-heading h3{margin:0;font-size:17px}.calendar-heading p{margin:4px 0 0;color:#7c8798;font-size:12px;line-height:1.9}.calendar-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#fff3c4;color:#987000;font-size:23px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:15px;background:#f8fafc;border-radius:14px;margin-bottom:18px}.calendar-toolbar label{display:block;font-size:12px;margin-bottom:5px}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav button,.calendar-date-trigger,.calendar-action{font:inherit;font-size:12px;border:1px solid #dfe4eb;border-radius:10px;padding:10px 14px;background:#fff;color:#334155;cursor:pointer}.calendar-nav button:disabled{opacity:.4;cursor:not-allowed}.calendar-action{background:#ffc000;border-color:#ffc000;font-weight:700;color:#493900}.calendar-week-label{font-size:13px;text-align:center;min-width:150px}
.calendar-date-field{position:relative}
.persian-picker{position:absolute;right:0;top:calc(100% + 8px);width:300px;background:#fff;color:#334155;direction:rtl;border:1px solid #e0e5ed;border-radius:16px;box-shadow:0 12px 35px #17233b26;padding:14px;z-index:80;box-sizing:border-box}
.persian-picker-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #edf0f5}
.persian-picker-head strong{font-size:13px;color:#253650}
.persian-picker button{font:inherit;font-size:12px;line-height:1.6;cursor:pointer;border:1px solid transparent;background:#f3f6fa;color:#334155;border-radius:8px;padding:8px;box-shadow:none;text-shadow:none;transition:background-color .15s,border-color .15s}
.persian-picker-head button{font-size:10px;font-weight:600;color:#52627a;white-space:nowrap}
.persian-picker-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.persian-picker-days small{padding:5px;color:#64748b;font-size:11px;font-weight:600}
.persian-picker-days button{display:grid;place-items:center;min-height:34px;padding:5px 0;font-weight:600}
.persian-picker button:hover:not(:disabled){background:#fff3c4;border-color:#e8c75a;color:#594300}
.persian-picker button:focus-visible{outline:2px solid #a77b00;outline-offset:2px}
.persian-picker-days button.is-current{background:#ffc000;border-color:#e2aa00;color:#493900;font-weight:800}
.persian-picker-days button.is-current:hover:not(:disabled){background:#ffcf33;border-color:#d6a100;color:#493900}
.calendar-date-field .persian-picker button:disabled{background:#f8f9fb;color:#8993a2;border-color:transparent;opacity:1;cursor:not-allowed}

.dated-calendar .timeslot-row .day-label{display:flex;flex-direction:column;gap:4px;min-width:105px;padding:8px}.dated-calendar .calendar-slot-date{margin:0;font-size:10px;white-space:nowrap}
.calendar-proposal{border:1px solid #e2e7ef;border-radius:14px;padding:18px;margin-top:20px;background:#fbfcfe}.calendar-proposal[hidden],.persian-picker[hidden]{display:none}.calendar-proposal h4{margin:0 0 10px}.calendar-proposal p{font-size:13px;line-height:1.9}.calendar-proposal .calendar-suggestion{padding:12px;background:#fff6d7;border-radius:10px}.calendar-session-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.calendar-session{border:1px solid #e4e9ed;border-radius:10px;padding:10px;font-size:12px;background:white;line-height:1.9}.calendar-session.is-blocked{border-color:#f1c7c7;background:#fff5f5}.calendar-session small{display:block;color:#788698}.calendar-session strong{display:block}.calendar-proposal-status{color:#53657a}.calendar-slot-date{display:block;font-size:10px;color:#8490a2;margin-top:4px}.slot:focus-visible,.dated-calendar button:focus-visible{outline:2px solid #bd8d00;outline-offset:3px}
.teacher-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));gap:8px;overflow-x:auto}.teacher-calendar-day{border:1px solid #e5e9ef;border-radius:12px;padding:10px;background:#fbfcfd;min-height:150px}.teacher-calendar-day h4{font-size:12px;margin:0 0 4px}.teacher-calendar-day>small{font-size:10px;color:#7c8798}.teacher-calendar-event{display:block;border:1px solid #efda92;border-right:3px solid #e0a900;border-radius:10px;background:#fff8df;padding:9px;margin-top:10px;font-size:11px;line-height:1.9;text-decoration:none;color:#534518}.teacher-calendar-event strong,.teacher-calendar-event small{display:block}.teacher-calendar-event.pending{border-color:#e9c897;background:#fff0df}.teacher-calendar-event.closed{border-color:#dcc6c6;background:#fcf0f0;color:#875656}.calendar-block-form{margin-top:18px;border-top:1px solid #e9edf2;padding-top:16px}.calendar-block-fields{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:14px 0}.calendar-block-fields label{display:grid;gap:5px;font-size:12px}.calendar-block-fields input{font:inherit;font-size:12px;border:1px solid #dce2eb;border-radius:9px;padding:9px}.calendar-block-list{display:grid;gap:6px;font-size:12px}.calendar-block-list>div{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px;background:#faf6f2;border-radius:8px}
@media(max-width:700px){.dated-calendar{padding:14px}.calendar-session-list{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-toolbar{align-items:stretch;gap:12px}.calendar-nav{justify-content:space-between;width:100%}.calendar-week-label{min-width:0;font-size:11px}.persian-picker{max-width:calc(100vw - 60px)}.calendar-nav button{padding:9px}.teacher-calendar-days{grid-template-columns:repeat(7,160px)}}

.teacher-calendar-day>p{font-size:12px;color:#8b95a4;line-height:1.9;margin:16px 0}.teacher-calendar-day>details{font-size:11px;line-height:1.9;color:#64748b;margin-top:12px}.teacher-calendar-day>details summary{cursor:pointer}.calendar-block-form>p{font-size:12px;color:#7a8697;line-height:1.9}

.dated-calendar .slot[data-selectable="false"]{cursor:pointer}.dated-calendar .slot:hover{outline:1px solid #a5b4c6;outline-offset:2px}

.calendar-proposal-wrapper:has([hidden]){display:none}
.booking-season-note{display:grid;gap:6px;padding:14px 16px;background:#fff9e6;border:1px solid #f1e4b4;border-radius:12px;margin-bottom:18px;font-size:12px;line-height:1.9}.booking-season-note strong{font-size:14px}.booking-season-note small{color:#7c7564}
.teacher-season-settings{border-bottom:1px solid #e7ebf1;padding-bottom:22px;margin-bottom:24px}.season-auto{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;padding:12px;background:#f8fafc;border-radius:12px}.season-auto input{accent-color:#dba300}.season-auto small{color:#7c8798}
.teacher-season-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.teacher-season-card{display:flex;flex-direction:column;align-items:start;gap:9px;border:1px solid #e3e8ef;border-top:3px solid #cbd5e1;border-radius:14px;padding:16px;background:#f9fafc}.teacher-season-card.is-open{border-top-color:#dca900;background:#fffdf4}.teacher-season-card>strong{font-size:17px;color:#28394f}.teacher-season-card>small{font-size:11px;color:#7c8798}.season-state{font-size:11px;border-radius:6px;padding:3px 8px;background:#eef1f5;color:#758296}.is-open .season-state{background:#fff0b9;color:#8a6500}.season-card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.season-card-actions .calendar-action{font-size:11px;padding:7px 9px}.season-card-actions .calendar-action:first-child{background:white;border-color:#e0e5ec;color:#617086}
.teacher-season-form[hidden]{display:none}.teacher-season-form{background:#f8fafc;border:1px solid #e1e7ef;border-radius:16px;padding:18px;margin-top:16px}.season-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.season-editor-heading h4{margin:0;font-size:16px}.teacher-season-form>p,#teacher-season-status{font-size:12px;line-height:1.9;color:#64748b}.season-day{padding:12px 0;border-top:1px solid #e2e8f0}.season-day-heading{display:flex;align-items:center;gap:16px;margin-bottom:8px;font-size:13px}.season-day-heading button{font-size:11px;padding:6px 9px;background:white;border-color:#dae2ec}.season-ranges{display:flex;flex-wrap:wrap;gap:8px}.season-range{display:flex;align-items:center;gap:10px;background:white;padding:8px;border-radius:10px;border:1px solid #e4eaf1}.season-range label{display:flex;align-items:center;gap:5px;font-size:12px}.season-range select{font:inherit;padding:6px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.season-remove{font:inherit;font-size:10px;color:#a05555;border:0;background:none;cursor:pointer}
@media(max-width:800px){.teacher-season-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-season-card{padding:12px}.season-editor-heading{flex-wrap:wrap}.season-auto small{width:100%}}
#calendar-proposal{direction:rtl;padding:20px;margin:18px 0 22px;border:1px solid #dbe4ef;border-right:5px solid #94a3b8;border-radius:16px;background:#f8fafc;box-shadow:0 10px 28px #26334d10;text-align:right;scroll-margin-top:128px;outline:none;transition:background-color .2s,border-color .2s,box-shadow .2s}
#calendar-proposal.is-loading{background:#f6f9fd;border-color:#c7d7ea;border-right-color:#5e83ad}
#calendar-proposal.is-warning{background:#fff8ed;border-color:#f3c98f;border-right-color:#ea8b18;box-shadow:0 12px 30px #a75a101a}
#calendar-proposal.is-error{background:#fff4f4;border-color:#efb4b4;border-right-color:#d94b4b;box-shadow:0 12px 30px #a72a2a18}
#calendar-proposal.is-success{background:#effaf5;border-color:#9bd4bd;border-right-color:#25936c;box-shadow:0 12px 30px #176e4e14}
.calendar-proposal__summary{display:flex;align-items:flex-start;gap:13px}
.calendar-proposal__icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:13px;background:#e8edf4;color:#52657d;font-size:23px;font-weight:900;line-height:1}
.is-loading .calendar-proposal__icon{background:#e5eef8;color:#3f6f9e}
.is-warning .calendar-proposal__icon{background:#ffe7bf;color:#a95d00}
.is-error .calendar-proposal__icon{background:#ffe0e0;color:#b42f2f}
.is-success .calendar-proposal__icon{background:#d8f1e7;color:#187454}
.calendar-proposal__copy{min-width:0;flex:1}.calendar-proposal__copy>strong{display:block;color:#27384f;font-size:15px;margin-bottom:3px}.is-warning .calendar-proposal__copy>strong{color:#7a4300}.is-error .calendar-proposal__copy>strong{color:#922d2d}.is-success .calendar-proposal__copy>strong{color:#176447}
.calendar-proposal__date{display:block;margin:3px 0 5px;color:#64748b;font-size:12px;font-weight:700}
#calendar-proposal h4{font-size:16px;font-weight:800;color:#253650;line-height:1.8;margin:0 0 4px}
#calendar-proposal .calendar-proposal-status{margin:0;color:#5f6f83;font-size:13px;line-height:2}.is-warning .calendar-proposal-status{color:#76552d}.is-error .calendar-proposal-status{color:#7f4545}.is-success .calendar-proposal-status{color:#386c5a}
#calendar-proposal .calendar-session-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
#calendar-proposal .calendar-session{min-width:0;padding:14px;border-radius:14px;border:1px solid #e5eaf0;border-top:3px solid #63b99b;box-shadow:0 3px 12px #25365005;line-height:1.7}
#calendar-proposal .calendar-session-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:12px}
#calendar-proposal .calendar-session-heading strong{font-size:17px;font-weight:800;color:#263650;white-space:nowrap}
#calendar-proposal .calendar-session-badge{font-size:10px;font-weight:600;border-radius:6px;padding:2px 7px;background:#eaf7f1;color:#29765b;white-space:nowrap}
#calendar-proposal .calendar-session-date{display:block;font-size:12px;font-weight:600;color:#69788e;margin-bottom:4px}
#calendar-proposal .calendar-session-time{display:block;font-size:14px;font-weight:700;color:#344661;font-variant-numeric:tabular-nums}
#calendar-proposal .calendar-session.is-blocked{background:#fffaf5;border-color:#f0dfc8;border-top-color:#e3a54d}
#calendar-proposal .is-blocked .calendar-session-badge{background:#fff0d7;color:#92600f}
#calendar-proposal .calendar-session-note{margin-top:9px;padding-top:8px;border-top:1px solid #f0e5d7;font-size:11px;color:#8c7150;line-height:1.9}
#calendar-proposal>.calendar-action{padding:11px 18px;border-radius:10px}
.calendar-selection-confirmed{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #68b99a;border-radius:11px;background:#eaf8f2;color:#1f6f54;font-size:13px;font-weight:800;line-height:1.9;text-align:center}
@media(max-width:900px){#calendar-proposal .calendar-session-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){#calendar-proposal{padding:14px;margin:14px 0 18px;scroll-margin-top:88px}.calendar-proposal__summary{gap:9px}.calendar-proposal__icon{flex-basis:36px;width:36px;height:36px;border-radius:10px;font-size:20px}.calendar-proposal__copy>strong{font-size:14px}#calendar-proposal .calendar-proposal-status{font-size:12px}#calendar-proposal .calendar-session-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#calendar-proposal .calendar-session{padding:10px}#calendar-proposal .calendar-session-heading{flex-wrap:wrap;margin-bottom:8px}#calendar-proposal .calendar-session-heading strong{font-size:16px}#calendar-proposal .calendar-session-time{font-size:12px}}

.dated-calendar .slot.mine[data-selectable="true"]{cursor:pointer}.dated-calendar .slot.mine.selected{background:#36b858!important;color:#fff!important;box-shadow:0 0 0 2px #d7f0db}
