:root{
  --bg:#f7f8fc;--panel:#ffffff;--text:#182034;--muted:#667085;--line:#e7eaf2;--primary:#725cff;--primary-dark:#5542da;--secondary:#00a6a6;--danger:#e24b5a;--warning:#f6a600;--success:#16a36d;--shadow:0 18px 50px rgba(31,39,78,.10);--radius:24px;--sidebar:292px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Tahoma,Arial,sans-serif;background:radial-gradient(circle at 10% 0%,#ebe7ff 0,#f7f8fc 35%,#f7f8fc 100%);color:var(--text);line-height:1.7}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}button,input,select,textarea{font:inherit}body.no-scroll{overflow:hidden}.page-shell{min-height:100vh}.main-content{padding:22px 28px 0;margin-inline-start:var(--sidebar);min-height:100vh}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:var(--sidebar);background:rgba(255,255,255,.86);backdrop-filter:blur(20px);border-inline-end:1px solid var(--line);padding:24px;z-index:100;display:flex;flex-direction:column;gap:24px}.brand-block{display:flex;align-items:center;gap:12px}.brand-logo{width:46px;height:46px}.brand-block strong{display:block;font-size:1.2rem}.brand-block span{font-size:.8rem;color:var(--muted)}.side-nav{display:grid;gap:8px}.side-nav a{padding:12px 14px;border-radius:16px;color:#424a60;transition:.2s}.side-nav a:hover,.side-nav a.active{background:linear-gradient(135deg,rgba(114,92,255,.13),rgba(0,166,166,.10));color:var(--primary-dark);transform:translateX(-3px)}.student-card{margin-top:auto;padding:16px;border-radius:20px;background:linear-gradient(135deg,#221a50,#5745d4);color:white;box-shadow:var(--shadow)}.student-card small,.student-card span{display:block;opacity:.78}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin-bottom:24px;border:1px solid rgba(231,234,242,.85);background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border-radius:22px;box-shadow:0 10px 30px rgba(31,39,78,.06)}.topbar-brand{display:flex;align-items:center;gap:10px;font-weight:800}.topbar-brand img{width:34px}.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.icon-btn{display:none;width:44px;height:44px;border:0;background:#f0f2fb;border-radius:14px;padding:10px;cursor:pointer}.icon-btn span{display:block;height:3px;background:var(--text);border-radius:9px;margin:5px 0}.pill,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:10px 16px;font-weight:700;cursor:pointer;transition:.2s}.pill.primary,.btn.primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:white}.pill.ghost,.btn.secondary{background:#f0f2fb;color:#344054}.pill.danger,.btn.danger{background:#ffe7eb;color:#a01828}.btn:hover,.pill:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(31,39,78,.12)}.btn.small{padding:8px 13px;font-size:.88rem}.btn.full{width:100%}.alert{padding:14px 16px;border-radius:18px;margin-bottom:18px;border:1px solid}.alert.success{background:#eafaf3;color:#116b49;border-color:#bfead7}.alert.danger{background:#fff0f1;color:#a01828;border-color:#ffc6ce}.alert.warning{background:#fff7df;color:#7d5100;border-color:#ffe4a2}.hero{display:grid;grid-template-columns:1.12fr .88fr;gap:28px;align-items:center;padding:44px;border-radius:34px;background:linear-gradient(135deg,#ffffff 0%,#f7f5ff 55%,#eafafb 100%);box-shadow:var(--shadow);overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:auto -80px -110px auto;width:260px;height:260px;background:var(--primary);opacity:.13;border-radius:50%}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--primary-dark);font-weight:800;font-size:.88rem;text-transform:uppercase;letter-spacing:.04em}.hero h1,.page-hero h1{font-size:clamp(2rem,4vw,4.3rem);line-height:1.18;margin:10px 0;color:#111827}.hero p,.page-hero p{font-size:1.08rem;color:var(--muted);max-width:760px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.glass{background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow);backdrop-filter:blur(16px)}.hero-panel{border-radius:30px;padding:22px}.mini-calendar{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.mini-calendar div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.mini-calendar strong,.mini-calendar span{display:block}.mini-calendar span{color:var(--muted)}.muted{color:var(--muted);font-size:.93rem}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.stats-grid article{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 8px 26px rgba(31,39,78,.05)}.stats-grid strong{display:block;font-size:2rem;color:var(--primary-dark)}.stats-grid span{color:var(--muted)}.section-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin:36px 0 18px}.section-head h2{margin:4px 0 0;font-size:2rem}.link{color:var(--primary-dark);font-weight:800}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card-grid.large{grid-template-columns:repeat(3,1fr)}.class-card,.media-card,.table-card,.auth-card,.page-hero,.instructor-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 36px rgba(31,39,78,.07);overflow:hidden}.class-card.elevated:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.class-card{transition:.2s}.class-card img{width:100%;height:190px;object-fit:cover;background:#f2f4fb}.card-body{padding:18px}.card-body h3,.session-info h3,.calendar-card h3{margin:8px 0 4px}.card-body p,.session-info p,.calendar-card p{color:var(--muted);margin:.3rem 0}.badge{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:800;background:#eef2ff;color:#4f46e5}.badge.low{background:#eafaf3;color:#0f7c55}.badge.medium{background:#fff6db;color:#8a5a00}.badge.high{background:#fff0f1;color:#b42332}.meta-row{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:.92rem}.section-split{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:36px 0}.media-card{padding:18px}.media-card video{border-radius:18px;width:100%;background:#111827}.audio-visual{height:210px;border-radius:18px;background:linear-gradient(135deg,#eeebff,#e6fbfb);display:grid;place-items:center;font-size:5rem;color:var(--primary)}audio{width:100%;margin-top:10px}.schedule-list{display:grid;gap:12px}.session-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:0 8px 26px rgba(31,39,78,.05)}.date-chip{width:58px;height:64px;border-radius:18px;background:#f0f2fb;display:grid;place-items:center;text-align:center}.date-chip strong{font-size:1.35rem}.date-chip span{font-size:.76rem;color:var(--muted)}.spots{font-weight:800;color:var(--success)}.spots.full{color:var(--warning)}.page-hero{padding:30px;margin-bottom:20px;background:linear-gradient(135deg,#fff,#f7f5ff)}.page-hero.compact h1{font-size:clamp(1.9rem,3vw,3rem)}.filter-bar,.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}.filter{padding:10px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:800;color:#475467}.filter.active{background:var(--text);color:white}.toolbar select,.smart-form input,.smart-form select,.smart-form textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px 14px;outline:none;transition:.2s}.toolbar select{width:auto;min-width:160px}.smart-form input:focus,.smart-form select:focus,.smart-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(114,92,255,.12)}.instructor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.instructor-card{padding:18px;display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center}.instructor-card img{width:120px;height:120px;border-radius:22px;object-fit:cover;background:#f2f4fb}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;align-items:start;width:100%;max-width:100%;overflow:visible}.day-column{display:grid;gap:12px;min-width:0}.day-head{position:sticky;top:92px;z-index:5;background:#111827;color:white;border-radius:18px;padding:12px;text-align:center}.day-head span{display:block;color:#cbd5e1;font-size:.82rem}.calendar-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:0 8px 26px rgba(31,39,78,.05);transition:.2s}.calendar-card.is-hover{transform:translateY(-4px);border-color:rgba(114,92,255,.35)}.availability{height:8px;background:#eef1f6;border-radius:999px;overflow:hidden;margin:12px 0}.availability .bar{display:block;height:100%;width:var(--fill);border-radius:999px;background:linear-gradient(90deg,var(--secondary),var(--primary))}.empty-day{background:#fff;border:1px dashed #cbd5e1;color:var(--muted);border-radius:18px;padding:20px;text-align:center}.form-layout{display:grid;grid-template-columns:minmax(320px,.8fr) 1.2fr;gap:20px;align-items:start}.smart-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 12px 36px rgba(31,39,78,.07);display:grid;gap:14px}.smart-form label{display:grid;gap:7px;font-weight:800}.smart-form textarea{min-height:110px;resize:vertical}.checkbox-line,.waitlist-toggle{display:flex!important;align-items:center;gap:10px;font-weight:600!important;color:#475467}.checkbox-line input{width:auto}.switch input{display:none}.switch span{display:block;width:48px;height:28px;background:#d0d5dd;border-radius:999px;position:relative}.switch span:after{content:"";position:absolute;width:22px;height:22px;background:white;border-radius:50%;top:3px;inset-inline-start:3px;transition:.2s}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:after{inset-inline-start:23px}.booking-summary{border-radius:var(--radius);padding:20px}.booking-summary img{width:100%;height:240px;object-fit:cover;border-radius:20px;background:#f2f4fb}.detail-list{display:grid;gap:10px;margin-top:14px}.detail-list div{display:flex;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.detail-list span{color:var(--muted)}.table-card{padding:10px;overflow:hidden}.responsive-table{width:100%;border-collapse:collapse;background:white}.responsive-table th,.responsive-table td{padding:14px;border-bottom:1px solid var(--line);text-align:start}.responsive-table th{background:#f5f7fb;color:#344054}.status{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:.82rem;font-weight:800;background:#eef2ff;color:#4f46e5}.status.booked,.status.present{background:#eafaf3;color:#0f7c55}.status.waitlist,.status.pending{background:#fff6db;color:#8a5a00}.status.cancelled,.status.absent{background:#fff0f1;color:#b42332}.auth-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:22px;align-items:center;padding:24px;max-width:980px;margin:20px auto}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.dashboard-card{border-radius:22px;padding:20px}.dashboard-card strong{display:block;font-size:1.8rem;color:var(--primary-dark)}.admin-links{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}.admin-links a{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;text-align:center;font-weight:800;box-shadow:0 8px 26px rgba(31,39,78,.05)}.inline-form{display:flex;gap:6px;flex-wrap:wrap}.site-footer{margin-top:44px;padding:22px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;color:var(--muted)}.site-footer strong{display:block;color:var(--text)}.footer-links{display:flex;gap:14px;flex-wrap:wrap}.sidebar-overlay{display:none}
@media (max-width:1200px){.card-grid{grid-template-columns:repeat(2,1fr)}.card-grid.large{grid-template-columns:repeat(2,1fr)}.calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;padding-bottom:0}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-links{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){:root{--sidebar:280px}.main-content{margin-inline-start:0;padding:14px}.icon-btn{display:block}.sidebar{transform:translateX(110%);transition:.25s}.sidebar.open{transform:translateX(0)}[dir="rtl"] .sidebar{transform:translateX(110%)}[dir="rtl"] .sidebar.open{transform:translateX(0)}.sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(17,24,39,.45);z-index:90}.hero{grid-template-columns:1fr;padding:28px}.section-split,.form-layout,.auth-card{grid-template-columns:1fr}.instructor-grid{grid-template-columns:1fr}.topbar-actions .pill.ghost{display:none}.calendar-grid{grid-template-columns:1fr;overflow:visible}.day-head{position:static}.day-column{background:#fff;border:1px solid var(--line);border-radius:22px;padding:10px}.admin-links{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.main-content{padding:10px}.topbar{border-radius:18px;padding:10px}.topbar-brand span{display:none}.hero{padding:22px;border-radius:24px}.hero h1{font-size:2rem}.card-grid,.card-grid.large,.stats-grid,.dashboard-grid,.admin-links{grid-template-columns:1fr}.session-row{grid-template-columns:auto 1fr;align-items:start}.session-row .spots,.session-row .btn{grid-column:2}.section-head{align-items:start;flex-direction:column}.toolbar select{width:100%}.toolbar .btn{width:100%}.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table tr{border:1px solid var(--line);border-radius:18px;margin-bottom:12px;overflow:hidden}.responsive-table td{display:flex;justify-content:space-between;gap:12px}.responsive-table td:before{content:attr(data-label);font-weight:800;color:#344054}.instructor-card{grid-template-columns:1fr;text-align:center}.instructor-card img{margin:auto}.site-footer{flex-direction:column}.mini-calendar{grid-template-columns:1fr}.auth-card{padding:16px}.booking-summary img{height:190px}}


/* Desktop schedule layout correction v4 */
html, body { max-width: 100%; overflow-x: hidden; }
.main-content { width: auto; max-width: calc(100vw - var(--sidebar)); }

@media (min-width: 1201px) {
  .calendar-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
  .calendar-card { padding: 12px; min-width: 0; }
  .calendar-card h3 { font-size: .98rem; line-height: 1.45; word-break: normal; overflow-wrap: anywhere; }
  .calendar-card p, .calendar-card .meta-row { font-size: .82rem; }
  .calendar-card .btn.small { padding: 8px 8px; font-size: .78rem; }
  .day-head { padding: 11px 8px; }
}

@media (min-width: 901px) and (max-width: 1200px) {
  .main-content { max-width: calc(100vw - var(--sidebar)); }
  .calendar-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px; overflow: visible !important; }
  .day-head { position: static; }
  .day-column { background: rgba(255,255,255,.68); border: 1px solid var(--line); border-radius: 22px; padding: 10px; }
}

@media (max-width: 900px) {
  .main-content { width: auto; max-width: 100vw; }
  .calendar-grid { max-width: 100%; }
}

/* Lab L9, L11, L12 pages */
.lab-hero code,
.lab-card code,
.code-panel code,
.lab-instructions code { direction:ltr; unicode-bidi:embed; font-family:Consolas, Monaco, monospace; }
.lab-student-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}
.lab-student-box div{background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 8px 24px rgba(31,39,78,.04)}
.lab-student-box span{display:block;color:var(--muted);font-size:.86rem}.lab-student-box strong{display:block;font-size:1rem}.lab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}.lab-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 12px 36px rgba(31,39,78,.07);display:flex;flex-direction:column;gap:12px}.lab-card h2{margin:0;font-size:1.35rem}.lab-card p{margin:0;color:var(--muted)}.lab-card ul{margin:0 0 6px 0;padding-inline-start:22px;color:#475467}.lab-card .btn{margin-top:auto}.lab-number{width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;display:grid;place-items:center;font-weight:900;font-size:1.12rem}.lab-instructions{padding:22px}.lab-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.lab-steps div{background:#f8f9fd;border:1px solid var(--line);border-radius:18px;padding:14px;display:grid;gap:8px}.lab-steps strong{width:34px;height:34px;border-radius:12px;background:#111827;color:#fff;display:grid;place-items:center}.lab-two-columns{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(380px,1.1fr);gap:20px;align-items:start}.code-panel{background:#0f172a;color:#e5e7eb;border-radius:24px;padding:20px;box-shadow:0 12px 36px rgba(31,39,78,.18);overflow:hidden}.code-panel h2,.code-panel h3{color:#fff;margin-top:0}.code-panel pre{direction:ltr;text-align:left;overflow:auto;white-space:pre;max-height:520px;background:#020617;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:16px}.code-panel code{font-size:.88rem;line-height:1.7;color:#d1fae5}.inline-lab-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.lab-form-block{display:grid;gap:12px;margin-top:16px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.result-box{background:#f8f9fd;border:1px solid var(--line);border-radius:18px;padding:14px;margin:14px 0;display:grid;gap:4px}.result-box strong{color:#111827}.result-box span{color:var(--muted)}.lab-result-table{margin-top:16px}.mini-class-list{display:grid;gap:10px}.mini-class-list article{background:#fff;color:#111827;border-radius:16px;padding:12px;display:grid;gap:2px}.mini-class-list span{color:#667085}.lab-stats{margin-top:0}.lab-db-result{padding:18px}
@media (max-width:1200px){.lab-grid{grid-template-columns:1fr}.lab-steps{grid-template-columns:repeat(2,1fr)}.lab-two-columns{grid-template-columns:1fr}.code-panel pre{max-height:none}}
@media (max-width:700px){.lab-student-box,.lab-steps,.check-grid{grid-template-columns:1fr}.inline-lab-form{grid-template-columns:1fr}.code-panel{padding:14px;border-radius:20px}.code-panel pre{font-size:.82rem;padding:12px}.lab-card{padding:18px}}
