:root{
  --blue:#123f6b;
  --blue-2:#0c3154;
  --blue-soft:#eaf3fb;
  --coral:#f48967;
  --coral-2:#e87351;
  --gray:#bbb7bc;
  --bg:#f3f8fc;
  --panel:#ffffff;
  --text:#142b43;
  --muted:#64778a;
  --line:#d8e4ef;
  --danger:#dc2626;
  --ok:#0f766e;
  --shadow:0 18px 40px rgba(18,63,107,.09);
  --radius:22px;
  --block-h:54px;
  --lane-gap:10px;
  --row-pad:14px;
}
*{box-sizing:border-box}
html{height:100%}
body{margin:0;min-height:100%;font-family:Tahoma,"Segoe UI",Arial,sans-serif;background:linear-gradient(180deg,#f8fbfe,#edf5fb 50%,#f8fbfe);color:var(--text)}
button,input{font:inherit}
a{color:var(--blue);text-decoration:none;font-weight:800}
a:hover{text-decoration:underline}
.app{max-width:1340px;margin:auto;padding:14px}
.topbar,.panel{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px}
.brand{display:flex;align-items:center;gap:16px;min-width:0}
.logo{width:92px;height:92px;object-fit:cover;border-radius:22px;box-shadow:0 14px 26px rgba(18,63,107,.18);flex:0 0 auto}
.brand-text{min-width:0}
.kicker{display:inline-flex;align-items:center;margin:0;color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:900}
h1,h2,h3,p{margin-top:0}
h1{margin:10px 0 8px;color:var(--blue-2);font-size:clamp(1.22rem,1rem + 1vw,2rem);line-height:1.35}
.sub{margin:0;max-width:760px;color:var(--muted);line-height:1.8;font-weight:700;font-size:.94rem}
.top-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.btn{border:0;border-radius:14px;padding:12px 16px;font-weight:900;cursor:pointer;transition:.14s ease;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn.small{padding:9px 12px;font-size:.84rem}
.btn.wide{width:100%;justify-content:center}.btn.primary{background:linear-gradient(135deg,var(--blue),#215b92);color:white;box-shadow:0 10px 22px rgba(18,63,107,.2)}
.btn.accent{background:linear-gradient(135deg,var(--coral),var(--coral-2));color:white;box-shadow:0 10px 22px rgba(244,137,103,.24)}
.btn.soft{background:#fff;color:var(--blue);border:1px solid var(--line)}
.btn.soft:hover{background:#f8fbff}
.layout{display:grid;gap:14px;margin-top:14px}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 18px 10px}
.panel-head h2{margin:10px 0 0;color:var(--blue-2);font-size:1.16rem;line-height:1.4}.selected-panel{padding-bottom:16px}
.chips,.summary,.conflict-summary{padding-inline:18px}
.chips{display:flex;flex-wrap:wrap;gap:10px;min-height:34px}.chip{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid rgba(18,63,107,.14);border-radius:18px;padding:9px 11px;box-shadow:0 8px 18px rgba(18,63,107,.05);max-width:100%}.chip-dot{width:12px;height:12px;border-radius:999px;background:var(--course-color);flex:0 0 auto}.chip-text{display:grid;gap:3px;min-width:0}.chip strong{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip small{color:var(--muted);font-size:.76rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip button{border:0;background:#f2f6fa;border-radius:999px;width:24px;height:24px;cursor:pointer;color:var(--muted);font-weight:900;flex:0 0 auto}.summary{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.stat{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:9px 12px;font-weight:900;color:var(--blue-2);font-size:.88rem}.stat b{color:var(--coral-2)}.conflict-summary{margin-top:12px;display:grid;gap:8px}.conflict-item{padding:10px 12px;border-radius:14px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:.86rem;font-weight:800;line-height:1.65}
.legend{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;color:var(--muted);font-size:.82rem;font-weight:900}.legend span{display:inline-flex;align-items:center;gap:6px}.mark{width:22px;height:22px;border-radius:999px;display:inline-grid;place-items:center;color:#fff;font-size:.76rem}.mark.theory{background:var(--blue)}.mark.practical{background:var(--coral-2)}.sample{width:22px;height:14px;border-radius:7px;border:1px solid var(--line);display:inline-block}.sample.available{background:#eef3f8;border-style:dashed}.sample.selected{background:rgba(244,137,103,.25);border-color:var(--coral)}.sample.conflict{background:repeating-linear-gradient(-45deg,rgba(220,38,38,.22) 0 5px,#fff 5px 10px);border-color:var(--danger)}.mobile-hint{display:none;margin:0 18px 12px;padding:10px 12px;border-radius:14px;background:var(--blue-soft);color:var(--blue);font-weight:900;font-size:.84rem}.schedule-board{padding:0 0 16px}.empty{margin:0 18px 16px;border:1px dashed var(--line);border-radius:18px;padding:28px 18px;text-align:center;color:var(--muted);font-weight:900;line-height:1.8;background:#fff}.empty .btn{margin-top:12px}.schedule-scroll{overflow:auto;padding:0 18px 2px;-webkit-overflow-scrolling:touch}.board{min-width:980px;border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden}.time-row,.day-row{display:grid;grid-template-columns:112px minmax(820px,1fr)}.time-row{position:sticky;top:0;z-index:10;background:#f9fcff;border-bottom:1px solid var(--line)}.day-head,.day-name{display:grid;place-items:center;border-inline-start:1px solid var(--line);padding:10px;font-weight:900;color:var(--blue-2);background:#f9fcff}.time-scale{display:grid;grid-template-columns:repeat(8,1fr);direction:rtl}.time-scale span{padding:11px 6px;border-inline-start:1px solid var(--line);text-align:center;font-size:.82rem;font-weight:900;color:var(--blue-2)}.day-row{border-bottom:1px solid var(--line)}.day-row:last-child{border-bottom:0}.day-name{background:#fcfdff;font-size:1rem}.day-name small{display:block;color:var(--muted);font-size:.76rem;margin-top:5px}.track-cell{padding:10px;background:#fff}.track{position:relative;background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid #ebf1f6;border-radius:16px;overflow:hidden}.grid-lines{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8,1fr);pointer-events:none}.grid-lines span{border-inline-start:1px solid #edf2f7}.grid-lines span:first-child{border-inline-start:0}.lecture{position:absolute;height:var(--block-h);border-radius:14px;border:1px dashed #aab8c7;background:#eef3f8;color:var(--text);padding:5px 8px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;cursor:pointer;overflow:hidden;text-align:start;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease,background .12s ease,border .12s ease}.lecture:hover{transform:translateY(-1px);z-index:20;box-shadow:0 10px 20px rgba(20,43,67,.14)}.lecture.selected{background:rgba(var(--course-rgb),.16);border:2px solid var(--course-color);box-shadow:0 8px 18px rgba(var(--course-rgb),.14)}.lecture.conflict{border-color:var(--danger);background:repeating-linear-gradient(-45deg,rgba(220,38,38,.18) 0 6px,rgba(255,255,255,.94) 6px 12px)}.lecture.conflict:after{content:"!";position:absolute;inset-inline-end:7px;top:7px;width:18px;height:18px;border-radius:999px;background:var(--danger);color:#fff;display:grid;place-items:center;font-size:.7rem;font-weight:900}.kind-dot{width:26px;height:26px;border-radius:999px;color:#fff;display:grid;place-items:center;font-weight:900;font-size:.82rem}.kind-dot.theory{background:var(--blue)}.kind-dot.practical{background:var(--coral-2)}.lecture-body{min-width:0;display:grid;gap:4px}.lecture-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.88rem;font-weight:900}.lecture-meta{display:flex;align-items:center;gap:6px;min-width:0;color:#53687d;font-size:.74rem;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.28);background:rgba(255,255,255,.86);border-radius:999px;padding:2px 7px;flex:0 0 auto}.exams-box{padding:0 18px 18px;display:grid;gap:12px}.notice{border-radius:16px;border:1px solid var(--line);padding:12px 14px;line-height:1.75;font-weight:900;font-size:.9rem}.notice.ok{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.notice.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.notice.info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.exam-group{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.exam-group h3{margin:0;padding:12px 14px;background:#f9fcff;color:var(--blue-2);display:flex;align-items:center;justify-content:space-between;font-size:1rem}.exam-count{background:var(--blue-soft);color:var(--blue);border-radius:999px;padding:5px 9px;font-size:.75rem}.exam-table{width:100%;border-collapse:collapse}.exam-table th,.exam-table td{border-top:1px solid var(--line);padding:10px 12px;text-align:start;font-size:.88rem}.exam-table th{color:#50677e;background:#fbfdff}.exam-table td{font-weight:800}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:14px}.backdrop{position:absolute;inset:0;background:rgba(12,49,84,.54);backdrop-filter:blur(6px)}.modal-card{position:relative;z-index:1;width:min(960px,100%);max-height:min(92vh,880px);background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:0 30px 80px rgba(12,49,84,.24);overflow:hidden;display:flex;flex-direction:column}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfdff)}.modal-head h2{margin:10px 0 0;color:var(--blue-2)}.modal-head p:not(.kicker){margin:8px 0 0;color:var(--muted);font-weight:800}.icon-btn{border:0;background:#f2f6fa;border-radius:14px;width:42px;height:42px;color:var(--blue-2);font-size:1.55rem;cursor:pointer}.modal-tools{padding:14px 18px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.search-wrap{display:grid;gap:6px;color:var(--muted);font-weight:900}.search-wrap input{height:48px;border:1px solid var(--line);border-radius:14px;padding:0 14px;background:#fff;color:var(--text);outline:0}.search-wrap input:focus{border-color:#9cc5ed;box-shadow:0 0 0 4px rgba(18,63,107,.09)}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.modal-count{margin:0;padding:0 18px 10px;color:var(--muted);font-weight:900}.modal-count strong{color:var(--coral-2)}.course-list{padding:0 18px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow:auto}.course-row{min-height:62px;border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;transition:.12s ease}.course-row:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(18,63,107,.08)}.course-row.checked{border-color:rgba(244,137,103,.62);background:rgba(244,137,103,.06)}.course-row input{accent-color:var(--blue);margin:0;flex:0 0 auto}.course-color{width:10px;height:38px;border-radius:999px;background:var(--course-color);flex:0 0 auto}.course-info{min-width:0;display:grid;gap:4px}.course-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-info small{color:var(--muted);font-size:.76rem;font-weight:800}.modal-footer{display:flex;gap:10px;justify-content:flex-start;padding:14px 18px;border-top:1px solid var(--line);background:#fbfdff}.modal-footer.between{justify-content:space-between}.welcome-card{width:min(560px,100%);padding:26px 24px;align-items:center;text-align:center}.welcome-logo{width:128px;height:128px;border-radius:30px;object-fit:cover;box-shadow:0 16px 32px rgba(18,63,107,.2);margin-bottom:14px}.welcome-card h2{margin:10px 0 8px;font-size:1.8rem;color:var(--blue-2)}.welcome-card p:not(.kicker){color:var(--muted);line-height:1.9;font-weight:900}.link-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:4px 0 18px}.link-row a{padding:9px 13px;border-radius:999px;background:var(--blue-soft)}.print-card{width:min(720px,100%)}.print-warning{padding:18px;display:grid;gap:12px}.print-warning p{margin:0;border:1px solid var(--line);border-radius:16px;padding:12px 14px;line-height:1.8;font-weight:900}.print-warning p:first-child{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.print-warning p:last-child{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
@media(max-width:980px){.topbar,.brand,.panel-head,.schedule-head{align-items:stretch;flex-direction:column}.top-actions{justify-content:stretch}.top-actions .btn{flex:1 1 auto}.course-list{grid-template-columns:1fr}.modal-tools{grid-template-columns:1fr}.quick-actions{display:grid;grid-template-columns:1fr 1fr}.legend{justify-content:flex-start}.mobile-hint{display:block}.board{min-width:900px}.time-row,.day-row{grid-template-columns:92px minmax(760px,1fr)}}
@media(max-width:640px){:root{--block-h:46px;--lane-gap:9px;--row-pad:12px}.app{padding:10px}.topbar,.panel{border-radius:18px}.topbar{padding:14px}.brand{gap:12px}.logo{width:72px;height:72px;border-radius:18px}.brand-text .sub{font-size:.86rem;line-height:1.65}.top-actions{display:grid;grid-template-columns:1fr}.panel-head{padding:14px}.chips,.summary,.conflict-summary,.exams-box{padding-inline:14px}.schedule-scroll{padding-inline:10px}.board{min-width:820px}.time-row,.day-row{grid-template-columns:76px minmax(720px,1fr)}.day-head,.day-name{padding:8px 4px;font-size:.84rem}.time-scale span{font-size:.72rem;padding:9px 3px}.track-cell{padding:8px}.lecture-title{font-size:.8rem}.lecture-meta{font-size:.68rem}.course-list{padding-inline:14px}.modal{padding:8px}.modal-card{border-radius:22px}.welcome-card{padding:22px 18px}.welcome-logo{width:108px;height:108px}.exam-table{min-width:580px}.exam-group{overflow:auto}.chip{width:100%}.chip-text{flex:1 1 auto}.modal-footer{display:grid;grid-template-columns:1fr}.modal-footer.between{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.logo{width:64px;height:64px}.brand-text h1{font-size:1.1rem}.kicker{font-size:.72rem}.btn{padding:11px 13px}.board{min-width:780px}.time-row,.day-row{grid-template-columns:68px minmax(700px,1fr)}.mark{width:20px;height:20px}.sample{width:20px}.legend{font-size:.76rem}.lecture{padding:4px 6px}.kind-dot{width:24px;height:24px}.lecture-meta{gap:4px}.badge{padding:2px 5px}}

/* Mobile-first repair: on phones we do not squeeze the weekly table. We switch to readable day cards. */
.mobile-schedule{display:none;padding:0 14px 16px;gap:12px}
.mobile-day-card{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 10px 22px rgba(18,63,107,.05)}
.mobile-day-card h3{margin:0;padding:12px 14px;background:#f9fcff;color:var(--blue-2);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:1rem;border-bottom:1px solid var(--line)}
.mobile-day-card h3 small{color:var(--muted);font-size:.76rem;font-weight:900}.mobile-events{display:grid;gap:10px;padding:12px}.mobile-empty{padding:14px;text-align:center;color:var(--muted);font-weight:900;background:var(--bg);border-radius:14px}.mobile-lecture.lecture{position:relative!important;inset:auto!important;top:auto!important;right:auto!important;left:auto!important;width:100%!important;height:auto!important;min-height:94px;border-radius:16px;padding:10px;display:grid;grid-template-columns:78px 28px minmax(0,1fr);gap:10px;align-items:center;white-space:normal}.mobile-lecture .lecture-title{white-space:normal;line-height:1.45;font-size:.95rem}.mobile-lecture .lecture-meta{white-space:normal;flex-wrap:wrap;gap:6px;font-size:.78rem;line-height:1.5}.mobile-time{display:flex;align-items:center;justify-content:center;text-align:center;align-self:stretch;border-radius:12px;background:var(--blue-soft);color:var(--blue);font-size:.74rem;font-weight:900;line-height:1.5;padding:6px}.mobile-teacher{color:var(--muted);font-weight:900;font-size:.78rem;line-height:1.45}.mobile-lecture.selected{background:rgba(var(--course-rgb),.16)}.mobile-lecture.conflict:after{top:8px;inset-inline-end:8px}

/* Print is generated inside the same tab to avoid about:blank / blocked-pop-up issues. */
.print-root{display:none}
@media print{
  @page{size:A4 landscape;margin:10mm 9mm 16mm}
  body.is-printing{background:#fff!important;color:#142b43!important}
  body.is-printing .app,body.is-printing .modal{display:none!important}
  body.is-printing .print-root{display:block!important;font-family:Tahoma,Arial,sans-serif;color:#142b43}
  .print-root *{box-sizing:border-box}
  .print-root .print-page{padding:0}
  .print-root .print-head{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:2px solid #123f6b;padding-bottom:8px;margin-bottom:10px}
  .print-root .print-head h1{margin:0 0 5px;color:#123f6b;font-size:20px;line-height:1.35}
  .print-root .print-head p{margin:0;color:#64778a;font-weight:700}
  .print-root .print-head img{width:64px;height:64px;border-radius:16px;object-fit:cover}
  .print-root .warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-weight:800;border-radius:12px;padding:8px 10px;margin:8px 0 12px;line-height:1.6}
  .print-root h2{font-size:15px;color:#123f6b;margin:12px 0 7px}.print-root h3{margin:8px 0 5px;color:#123f6b;font-size:13px}
  .print-root .p-board{border:1px solid #d8e4ef;border-radius:12px;overflow:hidden}.print-root .p-row,.print-root .p-head{display:grid;grid-template-columns:70px 1fr}.print-root .p-head{background:#f9fcff;border-bottom:1px solid #d8e4ef}.print-root .p-day,.print-root .p-day-head{display:grid;place-items:center;border-inline-start:1px solid #d8e4ef;padding:7px;font-size:11px;font-weight:900}.print-root .p-time{display:grid;grid-template-columns:repeat(8,1fr);direction:rtl}.print-root .p-time span{border-inline-start:1px solid #d8e4ef;padding:7px 3px;text-align:center;font-size:10px;font-weight:900}.print-root .p-row{border-bottom:1px solid #d8e4ef}.print-root .p-row:last-child{border-bottom:0}.print-root .p-cell{padding:6px}.print-root .p-track{position:relative;border:1px solid #ebf1f6;border-radius:10px;background:#fff;overflow:hidden}.print-root .p-lines{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8,1fr)}.print-root .p-lines span{border-inline-start:1px solid #edf2f7}.print-root .p-lines span:first-child{border-inline-start:0}.print-root .p-block{position:absolute;height:20px;border-radius:10px;border:1px solid #9fb0c0;display:flex;align-items:center;gap:4px;padding:2px 5px;overflow:hidden;font-size:9px;font-weight:800;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-root .p-block.conflict{border-color:#dc2626;background:repeating-linear-gradient(-45deg,rgba(220,38,38,.18) 0 5px,#fff 5px 10px)!important}.print-root .p-kind{width:15px;height:15px;border-radius:50%;color:#fff;display:grid;place-items:center;font-size:8px;flex:0 0 auto;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-root .p-kind.theory{background:#123f6b}.print-root .p-kind.practical{background:#e87351}.print-root .p-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.print-root table{width:100%;border-collapse:collapse}.print-root th,.print-root td{border:1px solid #d8e4ef;padding:6px 8px;text-align:start;font-size:11px}.print-root th{background:#f9fcff;color:#50677e}.print-root .print-footer{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #d8e4ef;padding:5px 9mm;display:flex;justify-content:space-between;gap:10px;color:#64778a;font-size:10px;font-weight:700}.print-root .bottom{margin-bottom:20px}
}

@media(max-width:760px){
  :root{--block-h:54px;--lane-gap:11px;--row-pad:14px}
  .desktop-schedule{display:none!important}
  .mobile-schedule{display:grid!important}
  .mobile-hint{display:block!important}
  .schedule-board{padding-bottom:8px}
  .topbar{gap:14px}.brand{flex-direction:row;align-items:center}.sub{display:none}.legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.legend span{font-size:.78rem}.chips{display:grid;grid-template-columns:1fr}.chip{width:100%}.summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stat{font-size:.82rem;text-align:center}.panel-head h2{font-size:1rem}.course-row{min-height:58px}.course-info strong{white-space:normal;line-height:1.35}.exam-table{min-width:0}.exam-group{overflow:visible}.exam-table thead{display:none}.exam-table tr{display:grid;gap:4px;padding:10px 12px;border-top:1px solid var(--line)}.exam-table td{display:flex;justify-content:space-between;gap:10px;border:0!important;padding:2px 0!important;font-size:.82rem}.exam-table td:nth-child(1)::before{content:'المادة';color:var(--muted)}.exam-table td:nth-child(2)::before{content:'اليوم';color:var(--muted)}.exam-table td:nth-child(3)::before{content:'التاريخ';color:var(--muted)}.exam-table td:nth-child(4)::before{content:'الوقت';color:var(--muted)}
}
@media(max-width:430px){
  .app{padding:8px}.topbar{padding:12px}.logo{width:58px;height:58px}.brand-text h1{font-size:1rem}.top-actions .btn{width:100%}.summary{grid-template-columns:1fr}.mobile-lecture.lecture{grid-template-columns:72px 26px minmax(0,1fr);min-height:98px}.mobile-time{font-size:.7rem}.mobile-lecture .lecture-title{font-size:.88rem}.modal-card{max-height:96vh}.course-list{padding-inline:10px}.modal-head,.modal-tools,.modal-footer{padding-inline:12px}
}
@media(max-width:760px){
  .modal{align-items:stretch;place-items:stretch;padding:8px}
  .modal-card{width:100%;height:calc(100dvh - 16px);max-height:none;border-radius:20px}
  .welcome-card{height:auto;max-height:calc(100dvh - 16px);align-self:center;justify-self:center}
  .courses-card .course-list{flex:1 1 auto;min-height:0}
}
