/* schedule.css — «مواعيدي»: كلندر المدرّب/المتدرّب */
.sch{flex:1;overflow-y:auto;padding:26px 30px 70px;background:var(--bg)}
.sch-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;max-width:1180px;margin:0 auto 18px;flex-wrap:wrap}
.sch-head h1{font-family:var(--font-display);font-weight:900;font-size:27px;color:var(--ink);margin:0 0 6px}
.sch-head p{font-size:13.5px;color:var(--muted);line-height:1.7;margin:0;max-width:640px;text-wrap:pretty}
.sch-role{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:4px;flex-shrink:0}
.sch-role button{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--muted);font-family:inherit;font-weight:700;font-size:12.5px;padding:8px 13px;border-radius:var(--r-sm)}
.sch-role button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.sch-role button.on .ep-icon{color:var(--human)}

.sch-ai{display:flex;align-items:flex-start;gap:10px;max-width:1180px;margin:0 auto 16px;background:var(--ai-bg);border:1px solid color-mix(in oklab,var(--ai) 28%,transparent);border-radius:var(--r-lg);padding:13px 15px;font-size:13px;line-height:1.7;color:var(--ink-2)}
.sch-ai>.ep-icon{color:var(--ai);flex-shrink:0;margin-top:1px}
.sch-ai b{color:var(--ai);font-family:var(--font-display)}

.sch-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:1180px;margin:0 auto 18px}
.sch-stat{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--shadow-sm)}
.sch-stat-ic{width:40px;height:40px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sch-stat-ic.c{background:var(--human-bg);color:var(--human)}
.sch-stat-ic.p{background:var(--gold-soft);color:var(--gold-dark)}
.sch-stat-ic.t{background:var(--ai-bg);color:var(--ai)}
.sch-stat-ic.a{background:var(--agree-bg);color:var(--agree)}
.sch-stat b{display:block;font-family:var(--font-display);font-weight:800;font-size:21px;color:var(--ink);line-height:1.1}
.sch-stat small{font-size:11.5px;color:var(--muted)}

.sch-tabs{display:flex;gap:6px;max-width:1180px;margin:0 auto 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.sch-tabs button{display:inline-flex;align-items:center;gap:7px;border:none;background:transparent;color:var(--muted);font-family:inherit;font-weight:700;font-size:13.5px;padding:11px 15px;border-bottom:2px solid transparent;margin-bottom:-1px}
.sch-tabs button.on{color:var(--human);border-bottom-color:var(--human)}
.sch-badge{font-size:10.5px;font-weight:800;color:#fff;background:var(--human);min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-full);padding:0 5px}
.sch-badge.warn{background:var(--conflict)}

/* ——— calendar ——— */
.sch-cal{max-width:1180px;margin:0 auto}
.sch-cal-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.sch-nav{display:flex;align-items:center;gap:4px}
.sch-nav button{width:34px;height:34px;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center}
.sch-nav button:hover{border-color:var(--human);color:var(--human)}
.sch-today{width:auto!important;padding:0 14px;font-family:inherit;font-weight:700;font-size:12.5px}
.sch-range{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--ink)}
.sch-legend{display:flex;gap:14px;margin-right:auto;font-size:11.5px;color:var(--muted)}
.sch-legend span{display:inline-flex;align-items:center;gap:5px}
.sch-legend .lg{width:11px;height:11px;border-radius:3px;display:inline-block}
.sch-legend .lg.train{background:var(--ai)}
.sch-legend .lg.consult{background:var(--human)}
.sch-legend .lg.avail{background:var(--agree-bg);border:1px solid var(--agree)}

.sch-grid{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.sch-gutter{flex-shrink:0;width:62px;border-left:1px solid var(--border)}
.sch-corner{height:46px;border-bottom:1px solid var(--border)}
.sch-hour{position:relative;border-bottom:1px solid var(--border)}
.sch-hour span{position:absolute;top:-8px;right:8px;font-size:10.5px;color:var(--faint);background:var(--surface);padding:0 3px}
.sch-cols{flex:1;min-width:0;overflow-x:auto}
.sch-dayhead-row{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr))}
.sch-dayhead{height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-bottom:1px solid var(--border);border-left:1px solid var(--border)}
.sch-dayhead:last-child{border-left:none}
.sch-dayhead.today{background:var(--human-bg)}
.sch-dayhead .dn{font-size:12px;font-weight:700;color:var(--ink-2)}
.sch-dayhead .dd{font-size:11px;color:var(--muted)}
.sch-dayhead.today .dn{color:var(--human)}
.sch-body{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));position:relative}
.sch-daycol{position:relative;border-left:1px solid var(--border)}
.sch-daycol:last-child{border-left:none}
.sch-daycol.today{background:color-mix(in oklab,var(--human) 4%,transparent)}
.sch-cell{border-bottom:1px solid var(--border)}
.sch-ev{position:absolute;right:4px;left:4px;border-radius:var(--r-sm);padding:5px 8px;overflow:hidden;display:flex;flex-direction:column;gap:1px;cursor:default;z-index:2}
.sch-ev.train{background:var(--ai);color:#fff}
.sch-ev.consult{background:var(--human);color:var(--on-gold)}
.sch-ev.avail{background:var(--agree-bg);border:1px dashed var(--agree);z-index:1;align-items:flex-start;justify-content:flex-start}
.sch-ev-av{font-size:10px;font-weight:700;color:var(--agree)}
.sch-ev-t{font-size:11.5px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sch-ev-m{font-size:10px;opacity:.92;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sch-ev-zoom{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:700;margin-top:1px;opacity:.95}
.sch-cal-note{display:flex;align-items:center;gap:7px;justify-content:center;font-size:12.5px;color:var(--muted);background:var(--surface-2);border-radius:var(--r-md);padding:11px;margin-top:12px}
.sch-cal-note .ep-icon{color:var(--agree)}

/* ——— booking requests ——— */
.sch-reqs{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.sch-req-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.sch-req{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-sm)}
.sch-req-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.sch-req-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:var(--r-full)}
.sch-req-tag.consult{color:var(--human);background:var(--human-bg)}
.sch-req-tag.train{color:var(--ai);background:var(--ai-bg)}
.sch-req-pay{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700}
.sch-req-pay.ok{color:var(--agree)}
.sch-req-pay.wait{color:var(--gold-dark)}
.sch-req-name{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--ink);margin-bottom:3px}
.sch-req-topic{font-size:13px;color:var(--ink-2);line-height:1.6;margin-bottom:11px}
.sch-req-meta{display:flex;flex-wrap:wrap;gap:13px;margin-bottom:13px;font-size:12px;color:var(--muted)}
.sch-req-meta span{display:inline-flex;align-items:center;gap:5px}
.sch-req-meta .ep-icon{color:var(--faint)}
.sch-req-acts{display:flex;gap:9px}
.sch-confirm{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--agree);color:#fff;border:none;font-family:inherit;font-weight:700;font-size:13px;padding:10px;border-radius:var(--r-md)}
.sch-confirm:hover{filter:brightness(1.06)}
.sch-reject{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;border:1px solid var(--border-2);color:var(--ink-2);font-family:inherit;font-weight:700;font-size:13px;padding:10px;border-radius:var(--r-md)}
.sch-reject:hover{border-color:var(--conflict);color:var(--conflict)}

/* ——— availability ——— */
.sch-avail{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.sch-avail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.sch-avail-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:13px;box-shadow:var(--shadow-sm)}
.sch-avail-dh{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sch-avail-dh span{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--ink)}
.sch-avail-dh button{width:26px;height:26px;border:1px solid var(--border);background:var(--surface-2);color:var(--human);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center}
.sch-avail-dh button:hover{background:var(--human);color:#fff;border-color:var(--human)}
.sch-avail-slots{display:flex;flex-direction:column;gap:6px}
.sch-avail-off{font-size:12px;color:var(--faint)}
.sch-slot{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;font-weight:600;color:var(--agree);background:var(--agree-bg);border-radius:var(--r-sm);padding:6px 9px}
.sch-slot button{background:transparent;border:none;color:var(--agree);display:flex;opacity:.7;padding:0}
.sch-slot button:hover{opacity:1}
.sch-slot-modal{position:relative;width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);box-shadow:var(--shadow-lg);padding:24px}
.sch-slot-modal .stm-h{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.sch-slot-modal .stm-h .ep-icon{color:var(--human)}
.sch-slot-rows{display:flex;gap:12px;margin-bottom:16px}
.sch-slot-rows label{flex:1;display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink-2)}
.sch-slot-rows select{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-md);padding:10px;font-size:13.5px;color:var(--ink);font-family:inherit}
.sch-slot-rows select:focus{outline:none;border-color:var(--gold)}

/* ——— schedule a course ——— */
.sch-course{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.sch-course-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm)}
.sch-course-h{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.sch-course-ic{width:46px;height:46px;border-radius:var(--r-md);background:var(--ai-bg);color:var(--ai);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sch-course-h b{display:block;font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--ink)}
.sch-course-h span{font-size:12.5px;color:var(--muted)}
.sch-course-from{margin-right:auto;font-size:11px;font-weight:700;color:var(--human);background:var(--human-bg);padding:4px 10px;border-radius:var(--r-full);flex-shrink:0}
.sch-course-flow{display:flex;align-items:center;gap:4px;margin-bottom:18px;flex-wrap:wrap}
.sch-flow-step{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);padding:6px 11px;border-radius:var(--r-full)}
.sch-flow-step.done{color:var(--agree);background:var(--agree-bg);border-color:transparent}
.sch-flow-step.now{color:var(--human);background:var(--human-bg);border-color:var(--human)}
.sch-flow-line{flex:1;min-width:8px;height:1.5px;background:var(--border-2)}
.sch-course-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.sch-cs{text-align:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:13px}
.sch-cs b{display:block;font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--ink)}
.sch-cs.free b{color:var(--agree);font-size:15px}
.sch-cs small{font-size:11px;color:var(--muted)}
.sch-course-note{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:var(--ink-2);line-height:1.7;background:var(--gold-soft);border-radius:var(--r-md);padding:11px 13px;margin-bottom:16px}
.sch-course-note .ep-icon{color:var(--gold-dark);flex-shrink:0;margin-top:2px}
.sch-course-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--human);color:var(--on-gold);border:none;font-family:inherit;font-weight:700;font-size:14px;padding:13px;border-radius:var(--r-md)}
.sch-course-btn:hover{background:var(--gold-light)}
.sch-course-btn:disabled{opacity:.5;cursor:not-allowed}
.sch-course-btn.ghost{background:var(--surface-2);color:var(--ink);border:1px solid var(--border-2)}
.sch-course-btn.ghost:hover:not(:disabled){border-color:var(--human);color:var(--human);background:var(--surface-2)}
.sch-course-acts{display:flex;gap:10px;margin-bottom:10px}
.sch-course-acts .sch-course-btn{flex:1}
.sch-avail-status{display:flex;align-items:center;gap:9px;font-size:12.5px;line-height:1.6;border-radius:var(--r-md);padding:11px 13px;margin-bottom:12px}
.sch-avail-status.ok{background:var(--agree-bg);color:var(--ink-2)}
.sch-avail-status.ok>.ep-icon{color:var(--agree);flex-shrink:0}
.sch-avail-status.warn{background:var(--conflict-bg);color:var(--ink-2)}
.sch-avail-status.warn>.ep-icon{color:var(--conflict);flex-shrink:0}
.sch-avail-status b{color:var(--ink)}
.sch-avail-status button{margin-right:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:5px;background:var(--conflict);color:#fff;border:none;font-family:inherit;font-weight:700;font-size:11.5px;padding:6px 11px;border-radius:var(--r-sm)}
.sch-course-hint{display:flex;align-items:flex-start;gap:6px;font-size:11.5px;color:var(--muted);line-height:1.6}
.sch-course-hint .ep-icon{color:var(--gold-dark);flex-shrink:0;margin-top:2px}
.sch-manual-modal{position:relative;width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);box-shadow:var(--shadow-lg);padding:24px}
.sch-manual-modal .stm-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.sch-manual-modal .stm-h .ep-icon{color:var(--human)}
.sch-manual-modal .stm-p{font-size:12.5px;color:var(--muted);line-height:1.7;margin:0 0 16px}
.sch-manual-rows{display:flex;flex-direction:column;gap:9px;margin-bottom:18px;max-height:46vh;overflow-y:auto}
.sch-manual-row{display:flex;align-items:center;gap:10px}
.sch-manual-n{flex-shrink:0;width:118px;font-size:12.5px;font-weight:700;color:var(--ink-2)}
.sch-manual-row select{flex:1;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-md);padding:9px 11px;font-size:13px;color:var(--ink);font-family:inherit}
.sch-manual-row select:focus{outline:none;border-color:var(--gold)}
.sch-sn-ic.train{background:var(--ai-bg);color:var(--ai)}
.sch-sn-ic.consult{background:var(--human-bg);color:var(--human)}
.sch-sn-empty{font-size:13px;color:var(--muted);padding:10px 0}

/* ——— student view ——— */
.sch-student{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.sch-student-banner{display:flex;align-items:center;gap:13px;background:var(--ai-bg);border:1px solid color-mix(in oklab,var(--ai) 28%,transparent);border-radius:var(--r-lg);padding:15px 17px}
.sch-student-banner>.ep-icon{color:var(--ai);flex-shrink:0}
.sch-student-banner b{display:block;font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--ink)}
.sch-student-banner span{font-size:12.5px;color:var(--ink-2);line-height:1.6}
.sch-pay-btn{margin-right:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:7px;background:var(--human);color:var(--on-gold);border:none;font-family:inherit;font-weight:700;font-size:13px;padding:10px 16px;border-radius:var(--r-md)}
.sch-pay-btn:hover{background:var(--gold-light)}
.sch-student-next{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-sm)}
.sch-sn-h{display:flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--ink);margin-bottom:12px}
.sch-sn-h .ep-icon{color:var(--human)}
.sch-sn-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--border)}
.sch-sn-ic{width:34px;height:34px;border-radius:var(--r-sm);background:var(--ai-bg);color:var(--ai);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sch-sn-tx{flex:1;min-width:0}
.sch-sn-tx .t{display:block;font-size:13.5px;font-weight:700;color:var(--ink)}
.sch-sn-tx .m{font-size:11.5px;color:var(--muted)}
.sch-sn-zoom{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--ai);background:var(--ai-bg);padding:6px 11px;border-radius:var(--r-sm)}
.sch-sn-note{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-top:12px}
.sch-sn-note .ep-icon{color:var(--gold-dark)}

@media(max-width:920px){
  .sch{padding:20px 16px 70px}
  .sch-stats{grid-template-columns:repeat(2,1fr)}
}
