*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:hidden}html{scroll-behavior:smooth;font-size:16px}body{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);direction:rtl;min-height:100vh;font-family:Noto Sans Arabic,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;transition:background-color .3s,color .3s;position:relative;overflow-y:auto}:root{color-scheme:light dark;--primary-color:#171717;--primary-light:#404040;--primary-dark:#0a0a0a;--accent-color:#737373;--accent-pink:#ec4899;--accent-orange:#f97316;--accent-teal:#14b8a6;--accent-purple:#404040;--success-color:#22c55e;--warning-color:#facc15;--error-color:#ef4444;--info-color:#737373;--bg-primary:#fff;--bg-secondary:#fafafa;--bg-tertiary:#f5f5f5;--bg-dark:#262626;--bg-darker:#0a0a0a;--text-primary:#0a0a0a;--text-secondary:#525252;--text-muted:#737373;--text-inverse:#f9fafb;--border-color:#e5e5e5;--border-light:#f5f5f5;--border-dark:#404040;--bg-pink:#f5aad3;--bg-orange:#ffd7a7;--bg-teal:#a2f3e0;--bg-purple:#baaef6;--bg-success:#a7ecbc;--bg-warning:#f5ed97;--bg-error:#fa9191;--bg-info:#7baded;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:4rem;--transition-fast:.15s ease-out;--transition-medium:.3s ease-out;--transition-slow:.5s ease-out;--backdrop-blur:blur(12px);--glassmorphism-bg:#fffc;--glassmorphism-border:#fff3;--search-bg:#fffffff2;--search-border:rgba(var(--primary-color-rgb,23, 23, 23), .2);--search-focus:#17171766;--gradient-primary:linear-gradient(135deg, #171717, #737373);--gradient-accent:linear-gradient(135deg, #171717, #a1a1a1);--switch-shadow:0px 0px 10px 3px #0000001a inset}[data-theme=dark]{--primary-color:#ededed;--primary-light:#d4d4d4;--primary-dark:#a1a1a1;--accent-color:#a1a1a1;--accent-purple:#d4d4d4;--info-color:#a1a1a1;--bg-primary:#0a0a0a;--bg-secondary:#171717;--bg-tertiary:#262626;--text-primary:#fafafa;--text-secondary:#d4d4d4;--text-muted:#a1a1a1;--border-color:#ffffff1a;--border-light:#ffffff26;--glassmorphism-bg:#171717cc;--glassmorphism-border:#ffffff1a;--search-bg:#171717f2;--search-border:#fff3;--search-focus:#fff6;--gradient-primary:linear-gradient(135deg, #ededed, #a1a1a1);--gradient-accent:linear-gradient(135deg, #ededed, #737373);--primary-color-rgb:237, 237, 237;--accent-color-rgb:161, 161, 161;--switch-shadow:0px 0px 10px 3px #00000080 inset}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--primary-color:#ededed;--primary-light:#d4d4d4;--primary-dark:#a1a1a1;--accent-color:#a1a1a1;--accent-purple:#d4d4d4;--info-color:#a1a1a1;--bg-primary:#0a0a0a;--bg-secondary:#171717;--bg-tertiary:#262626;--text-primary:#fafafa;--text-secondary:#d4d4d4;--text-muted:#a1a1a1;--border-color:#ffffff1a;--border-light:#ffffff26;--glassmorphism-bg:#171717cc;--glassmorphism-border:#ffffff1a;--search-bg:#171717f2;--search-border:#fff3;--search-focus:#fff6;--gradient-primary:linear-gradient(135deg, #ededed, #a1a1a1);--gradient-accent:linear-gradient(135deg, #ededed, #737373);--primary-color-rgb:237, 237, 237;--accent-color-rgb:161, 161, 161;--switch-shadow:0px 0px 10px 3px #00000080 inset}}body:before{content:"";background:radial-gradient(circle at 25% 25%, rgba(var(--primary-color-rgb,23, 23, 23), .1) 0%, transparent 50%), radial-gradient(circle at 75% 75%, rgba(var(--accent-color-rgb,161, 161, 161), .1) 0%, transparent 50%), linear-gradient(135deg, rgba(var(--primary-color-rgb,23, 23, 23), .02) 0%, rgba(var(--accent-color-rgb,161, 161, 161), .02) 100%);z-index:-1;width:100vw;height:100vh;animation:20s ease-in-out infinite gradientShift;position:fixed;inset:0}@keyframes gradientShift{0%,to{opacity:1;transform:translate(0%)translateY(0%)}25%{opacity:.8;transform:translate(-2%)translateY(-2%)}50%{opacity:1;transform:translate(2%)translateY(2%)}75%{opacity:.9;transform:translate(-1%)translateY(1%)}}.container{max-width:1200px;padding:var(--spacing-xl) var(--spacing-sm) var(--spacing-2xl);margin:0 auto}.container--narrow{width:100%}.header{z-index:100;padding:var(--spacing-md) var(--spacing-sm);background:var(--glassmorphism-bg);-webkit-backdrop-filter:var(--backdrop-blur);border-bottom:1px solid var(--glassmorphism-border);height:auto;margin:0 0 5rem;position:sticky;top:0}.header>.container{--header-nav-gap:3rem;flex-direction:revert;justify-content:space-between;align-items:center;height:auto;min-height:8vh;padding:0;display:flex}.header-content{text-align:center;max-width:1200px;margin:3rem auto}.header h1{color:var(--text-primary);letter-spacing:-.025em;margin-bottom:.25rem;font-family:Noto Sans Arabic,Merriweather,Georgia,serif;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700}.header p{color:var(--text-muted);margin-bottom:var(--spacing-lg);font-size:clamp(.875rem,2vw,1rem);font-weight:400}.header__nav{align-items:center;gap:1.25rem;display:flex}.header__nav>ul{align-items:center;gap:var(--header-nav-gap);list-style:none;display:inline-flex}.header__menu .btn{white-space:nowrap;flex-shrink:0}.header__logo img{margin-right:var(--header-nav-gap);transition:filter var(--transition-medium);filter:none;display:block}.header__logo .theme-switch--desktop{display:none}@media (width>=1024px){.header__logo{align-items:center;display:flex}.header__logo .theme-switch--desktop{margin-right:3rem;display:flex}}[data-theme=dark] .header__logo img{filter:invert()brightness(1.2)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .header__logo img{filter:invert()brightness(1.2)}}.search-container{max-width:500px;margin:0 auto;position:relative}.search-wrapper{background:var(--search-bg);-webkit-backdrop-filter:var(--backdrop-blur);border:2px solid var(--search-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transition:all var(--transition-medium);align-items:center;margin:2rem 0 0;display:flex;position:relative;overflow:hidden}.search-wrapper:focus-within{border-color:var(--primary-color);box-shadow:var(--shadow-xl), 0 0 0 4px var(--search-focus);transform:translateY(-2px)}.search-icon{right:var(--spacing-md);width:20px;height:20px;color:var(--text-muted);z-index:2;transition:color var(--transition-fast);position:absolute}.search-wrapper:focus-within .search-icon{color:var(--primary-color)}.search-input{width:100%;padding:var(--spacing-md) calc(var(--spacing-md) + 32px) var(--spacing-md) var(--spacing-md);color:var(--text-primary);text-align:right;direction:rtl;background:0 0;border:none;outline:none;font-family:inherit;font-size:1rem}.search-input::placeholder{color:var(--text-muted);opacity:.8}.search-input:focus::placeholder{opacity:.5}.search-clear{left:var(--spacing-sm);cursor:pointer;width:24px;height:24px;color:var(--text-muted);transition:all var(--transition-fast);z-index:2;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute}.search-clear:hover{color:#ef4444;background:#ef44441a}.search-input:not(:placeholder-shown)+.search-clear{display:flex}.no-results{text-align:center;padding:var(--spacing-2xl);color:var(--error-color);font-size:1.1rem;display:none}.no-results-icon{width:64px;height:64px;margin:0 auto var(--spacing-md);opacity:.5}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.search-form{margin:0}button.search-icon{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.search-icon svg{width:100%;height:100%}.search-wrapper[data-loading=true] .search-input{padding-left:4.25rem}.search-spinner{border:2px solid var(--border-color);border-top-color:var(--primary-color);z-index:2;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite search-spin;position:absolute;left:2.9rem}@keyframes search-spin{to{transform:rotate(360deg)}}.search-suggest{top:calc(100% + .5rem);z-index:60;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);max-height:22rem;box-shadow:var(--shadow-xl);text-align:right;margin:0;padding:.4rem;list-style:none;position:absolute;inset-inline:0;overflow:auto}.search-suggest[hidden]{display:none}.search-suggest [role=option]{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:.6rem;padding:.6rem .7rem;display:flex}.search-suggest [role=option]:hover,.search-suggest__focused{background:rgba(var(--primary-color-rgb,23, 23, 23), .08)}.search-suggest__text{min-width:0}.search-suggest__text strong{color:var(--text-primary);font-size:.95rem;display:block}.search-suggest__text small{color:var(--text-muted);font-size:.78rem;display:block}.search-suggest__badge{border:1px solid;border-radius:999px;flex-shrink:0;padding:.15rem .55rem;font-size:.7rem}.search-suggest__badge--professor{color:#047857;background:#ecfdf5;border-color:#6ee7b7}.search-suggest__badge--course{color:#171717;background:#f5f5f5;border-color:#a1a1a1}.search-suggest__empty{text-align:center;color:var(--text-muted);padding:.9rem;font-size:.9rem}.search-message{text-align:center;color:var(--text-secondary);margin:1.25rem 0 0;font-size:.95rem}.course-card{scroll-margin-top:7rem}.course-card.search-target{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb,23, 23, 23), .25), var(--shadow-lg)}.search-result-footer{border-top:1px dashed var(--border-color);margin-top:1rem;padding-top:.75rem}.course-details .search-result-footer{margin-bottom:0;font-size:.85rem}.category-link{color:var(--primary-color);font-weight:600}.instructor-entry{border-top:1px solid var(--border-color);flex:100%;padding:.85rem 0;list-style:none}.instructor-heading{align-items:center;gap:.6rem;display:flex}.instructor-heading strong{color:var(--text-primary)}.instructor-link{color:var(--text-primary);font-weight:600;text-decoration:none}.instructor-link:hover{color:var(--accent-color,#171717);text-decoration:underline}.instructor-actions{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.group-row+.group-row{border-top:1px dashed var(--border-color);margin-top:.9rem;padding-top:.9rem}.group-badges{align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.presence-badge{border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.presence--with_professor{color:#065f46;background:#d1fae5}.presence--without_professor{color:#92400e;background:#fef3c7}.class-audience{color:var(--text-muted,#737373);font-size:.8rem}.prof-avatar{color:#171717;border:1px solid var(--border-color,#e5e5e5);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.prof-avatar svg{width:100%;height:100%;display:block}.prof-avatar--sm{width:28px;height:28px;font-size:.85rem}.prof-avatar--md{width:40px;height:40px;font-size:1.2rem}.prof-avatar--sigil{box-shadow:none;background:0 0;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.prof-summary{flex-flow:wrap;align-items:center;gap:.75rem}.prof-summary-text{flex:10rem;min-width:0}.prof-summary-name{color:var(--text-primary);font-size:1.05rem;display:block}.prof-summary-dept{color:var(--text-muted);font-size:.8rem;display:block}.prof-summary-rating{color:var(--warning-color);white-space:nowrap;font-size:.82rem;font-weight:600}.course-details .prof-result-bio{font-size:.95rem}.course-details .prof-detail__en{color:var(--text-muted);text-align:left;font-size:.85rem}.prof-result-courses-title{color:var(--text-secondary);margin:.5rem 0;font-size:.9rem}.prof-result-courses{flex-direction:column;gap:.4rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.prof-result-courses a{color:var(--primary-color);font-weight:600;text-decoration:none}.prof-result-courses a:hover{text-decoration:underline}.prof-result-course-cat{color:var(--text-muted);font-size:.8rem}.course-details .prof-result-empty{color:var(--text-muted);font-size:.9rem}[data-theme=dark] .search-suggest [role=option]:hover,[data-theme=dark] .search-suggest__focused{background:#ffffff14}[data-theme=dark] .search-suggest__badge--professor{color:#6ee7b7;background:#10b98126;border-color:#6ee7b780}[data-theme=dark] .search-suggest__badge--course{color:#d4d4d4;background:#ffffff0f;border-color:#ffffff26}.courses-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;margin:3rem auto 5rem;display:grid}.picker-grid{align-items:stretch}.picker-card{align-items:flex-start;gap:var(--spacing-sm);min-height:200px;padding:var(--spacing-lg);color:inherit;cursor:pointer;flex-direction:column;text-decoration:none;display:flex}.picker-card .course-code{margin-bottom:0}.picker-card .course-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:.25rem 0 0;display:-webkit-box;overflow:hidden}.picker-card:hover .course-title{color:var(--primary-color)}.picker-card-footer{padding-top:var(--spacing-sm);justify-content:space-between;align-items:center;gap:var(--spacing-sm);width:100%;margin-top:auto;display:flex}.picker-card-arrow{background:var(--bg-tertiary);width:36px;height:36px;color:var(--text-muted);transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.picker-card-arrow svg{width:18px;height:18px}.picker-card:hover .picker-card-arrow{background:var(--primary-color);color:#fff;transform:translate(-3px)}[dir=ltr] .picker-card-arrow svg{transform:scaleX(-1)}.course-count-badge{background:rgba(var(--primary-color-rgb,23, 23, 23), .08);color:#171717;white-space:nowrap;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.course-count-badge--empty{background:var(--bg-tertiary);color:var(--text-muted)}[data-theme=dark] .course-count-badge{color:var(--text-primary);background:#ffffff14}[data-theme=dark] .course-count-badge--empty{background:var(--bg-tertiary);color:var(--text-muted)}.course-code.course-department{background:rgba(var(--accent-color-rgb,161, 161, 161), .12);border-color:rgba(var(--accent-color-rgb,161, 161, 161), .25);color:#525252}[data-theme=dark] .course-code.course-department{background:rgba(var(--accent-color-rgb,161, 161, 161), .16);color:#d4d4d4}.section-title{text-align:center;color:var(--text-secondary);margin:2rem 0 -1.5rem;font-size:1.1rem;font-weight:600}.journey-breadcrumb{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.85rem;display:inline-flex}.journey-breadcrumb a{color:var(--primary-color);text-decoration:none}.journey-breadcrumb a:hover{text-decoration:underline}.journey-breadcrumb [aria-current=page]{color:var(--text-secondary);font-weight:600}.journey-sep{opacity:.5}.help-grid,.guide-grid{grid-template-columns:none;line-height:.2}.course-card{background:var(--glassmorphism-bg);-webkit-backdrop-filter:var(--backdrop-blur);border:1px solid var(--glassmorphism-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);transition:all var(--transition-medium);position:relative;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-xl);border-color:rgba(var(--primary-color-rgb,23, 23, 23), .2);transform:translateY(-4px)}.course-card:focus-within{outline:2px solid var(--primary-color);outline-offset:2px}.course-card:has(details[open]){border-color:var(--primary-light);box-shadow:var(--shadow-xl), 0 0 0 1px var(--primary-light)}.course-card.hidden{opacity:0;pointer-events:none;height:0;transition:all var(--transition-medium);margin:0;overflow:hidden;transform:scale(.9)}.course-head{position:relative}.course-head details{width:100%}.course-summary{padding:var(--spacing-lg);cursor:pointer;min-height:148px;transition:all var(--transition-fast);user-select:none;padding-inline-start:calc(var(--spacing-lg) + 5rem);padding-inline-end:var(--spacing-lg);flex-direction:column;justify-content:center;align-items:flex-start;gap:.35rem;padding-right:3rem;list-style:none;display:flex;position:relative}.course-summary--static{cursor:default}.course-summary .course-code{margin-bottom:0}.course-summary .course-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.course-summary-meta{color:var(--text-muted);font-size:.78rem}.course-add-btn{top:var(--spacing-lg);background:var(--bg-tertiary);width:40px;height:40px;color:var(--primary-color);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);z-index:2;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;inset-inline-end:var(--spacing-lg)}.course-add-btn svg{width:18px;height:18px}.course-add-btn:hover,.course-add-btn:focus-visible{background:var(--primary-color);color:#fff;box-shadow:var(--shadow-md);outline:none;transform:scale(1.06)}.course-add-btn:focus-visible{box-shadow:var(--shadow-md), 0 0 0 3px var(--search-focus)}.course-summary::-webkit-details-marker{display:none}.course-summary:hover .course-title{color:var(--primary-color);transform:scale(1.02)}.course-summary:focus{background:var(--bg-tertiary);outline:none}.course-summary:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:var(--radius-md)}.course-code{text-transform:uppercase;letter-spacing:.05em;color:var(--primary-color);background:rgba(var(--primary-color-rgb,23, 23, 23), .1);border:1px solid rgba(var(--primary-color-rgb,23, 23, 23), .2);border-radius:var(--radius-sm);margin-bottom:var(--spacing-sm);align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.course-language{color:var(--accent-pink);background:#ff2fa11a;border:1px solid #b8b8b833}.course-general{color:var(--accent-orange);background:#ffa6381a;border:1px solid #b8b8b833}.course-lab{color:var(--accent-teal);background:#35ffd01a;border:1px solid #b8b8b833}.course-practical{color:var(--accent-color);background:rgba(var(--accent-color-rgb,115, 115, 115), .1);border:1px solid #b8b8b833}.course-fundamental{color:var(--warning-color);background:#faea381a;border:1px solid #b8b8b833}.course-title{color:var(--text-primary);transition:all var(--transition-fast);letter-spacing:-.02em;margin-bottom:.5rem;font-family:Noto Sans Arabic,Merriweather,Georgia,serif;font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:700;line-height:1.3}.expand-icon{left:var(--spacing-lg);bottom:var(--spacing-lg);width:24px;height:24px;transition:transform var(--transition-medium);opacity:.6;justify-content:center;align-items:center;margin-left:.5rem;display:inline-flex;position:absolute}details[open] .expand-icon{transform:rotate(180deg)}.expand-icon svg{fill:none;stroke:currentColor;width:100%;height:100%}.help-grid .expand-icon,.guide-grid .expand-icon{top:50%;bottom:auto;transform:translateY(-50%)}.help-grid details[open] .expand-icon,.guide-grid details[open] .expand-icon{transform:translateY(-50%)rotate(180deg)}.help-grid .course-summary,.guide-grid .course-summary{min-height:0;padding-inline-start:calc(var(--spacing-lg) + 2rem);display:block}.course-details{opacity:0;max-height:0;transition:max-height var(--transition-medium), opacity var(--transition-medium), transform var(--transition-medium), padding var(--transition-medium);padding:0 var(--spacing-lg);background:#ffffff08;border-top:1px solid #0000;overflow:hidden;transform:translateY(-10px)}.course-details p{white-space:pre-line;word-wrap:break-word;width:100%;margin-bottom:1rem;font-size:1.5rem;line-height:1.6;display:block}details[open] .course-details{opacity:1;max-height:62.5rem;padding:var(--spacing-lg);border-top-color:var(--border-light);transform:translateY(0)}.instructors-label{color:var(--text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600}.instructors-list{gap:var(--spacing-xs);flex-wrap:wrap;list-style:none;display:flex}.instructor-badge{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);transition:all var(--transition-fast);align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.instructor-badge:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.instructor-badge:before{content:"";background:var(--badge-bg);border-radius:50%;flex-shrink:0;width:8px;height:8px}.theme-switch,.toggle-menu-wrapper{justify-content:center;align-items:center;display:flex}.theme-toggle{border:1px solid var(--border-color);background-color:var(--bg-secondary);width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;padding:0;transition:border-color .2s,background-color .2s,color .2s,box-shadow .2s;display:inline-flex}.theme-toggle:hover{border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.theme-toggle:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.theme-toggle .theme-icon{transition:transform .2s;display:none}.theme-toggle .theme-icon-sun{display:block}[data-theme=dark] .theme-toggle .theme-icon-sun{display:none}[data-theme=dark] .theme-toggle .theme-icon-moon{display:block}.theme-toggle:hover .theme-icon{transform:rotate(12deg)}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;padding:.75rem 1.5rem;font-family:inherit;font-weight:500;text-decoration:none;transition:all .3s;display:inline-block}.btn--primary{background:var(--primary-color);color:#fff;border:1px solid #0000}.btn--primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn--secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn--secondary:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn--sub{background:var(--bg-secondary);color:var(--text-primary);border:1px solid #0000}.btn--sub:hover{background:var(--primary-color);color:#fff;transform:translateY(-2px)}.btn--link{color:var(--accent-purple);background:0 0;border:none;padding:.5rem}.btn--link:hover{color:var(--primary-color);text-decoration:underline}.btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.header__menu{gap:var(--header-nav-gap);margin:0;padding:0;list-style:none;display:flex}.header__menuItem .btn{height:auto;min-height:unset;white-space:nowrap;vertical-align:middle;align-items:center;gap:.5rem;padding:1.175rem 1rem;font-size:1rem;line-height:1.4;display:inline-flex}#responsive-menu{display:none}.toggle-menu{cursor:pointer;z-index:1001;background:var(--border-color);border:1px solid #0000;border-radius:.5rem;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:all .3s;display:none;position:relative}.toggle-menu:hover{border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.toggle-menu:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.toggle-menu__lines{background:var(--text-primary);width:25px;height:2px;transition:all .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.toggle-menu:hover .toggle-menu__lines{background:var(--text-inverse)}.toggle-menu__lines:before,.toggle-menu__lines:after{content:"";background:var(--text-primary);width:25px;height:2px;transition:all .3s;position:absolute}.toggle-menu:hover .toggle-menu__lines:before,.toggle-menu:hover .toggle-menu__lines:after{background:var(--text-inverse)}.toggle-menu__lines:before{top:-8px}.toggle-menu__lines:after{top:8px}.field-error{color:var(--error-color,#ef4444);font-size:.85rem;font-weight:500;display:block}.loading-message,.error-message{background:var(--glassmorphism-bg);backdrop-filter:var(--backdrop-blur);border-radius:var(--radius-xl);border:1px solid var(--glassmorphism-border);grid-column:1/-1;justify-content:center;align-items:center;margin:2rem 0;padding:3rem 2rem;display:flex}.loading-content,.error-content{text-align:center;color:var(--text-secondary);background:#fdd6d6;border-radius:50px;padding:4rem 0}.loading-spinner{border:4px solid var(--border-light);border-top:4px solid var(--primary-color);border-radius:50%;width:40px;height:40px;margin:0 auto 1rem;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-icon{opacity:.7;margin-bottom:1rem;font-size:3rem}.error-content h3{color:var(--text-primary);margin:0 0 .5rem}.error-content .btn{margin-top:1rem}.search-result-card{cursor:pointer;border:1px solid var(--glassmorphism-border);background:var(--glassmorphism-bg);transition:all .3s}.search-result-card:hover{border-color:var(--primary-color);transform:translateY(-4px);box-shadow:0 12px 30px #00000026}.search-result-card .course-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.75rem;display:flex}.search-result-card .course-code,.search-result-card .course-meta{flex-shrink:0}.search-result-card .category-link{color:var(--text-muted);opacity:.8;border-radius:var(--radius-sm);padding:.25rem .5rem;font-size:.85rem;text-decoration:none;transition:all .2s}.search-result-card .category-link:hover{opacity:1;color:var(--primary-color);background:rgba(var(--primary-color-rgb,23, 23, 23), .1)}.search-result-card .course-content{padding:0}.search-result-card .course-title{color:var(--text-primary);margin-bottom:.5rem;font-size:1.25rem;line-height:1.3}.search-result-card .course-credits{color:var(--text-secondary);margin:.25rem 0 .5rem;font-size:.9rem;font-weight:500}.search-result-card .instructor-list{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.search-result-card .instructor-badge{background:rgba(var(--primary-color-rgb,79, 70, 229), .1);color:var(--primary-color);border-radius:var(--radius-lg);border:1px solid rgba(var(--primary-color-rgb,79, 70, 229), .2);padding:.25rem .75rem;font-size:.8rem;font-weight:500;transition:all .2s}.search-result-card .instructor-badge:hover{background:var(--primary-color);color:#fff}.search-result-card .course-description{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:.75rem;font-size:.9rem;line-height:1.5;display:-webkit-box;overflow:hidden}.search-category-header{border-bottom:3px solid var(--primary-color);background:linear-gradient(135deg, #1717170d 0%, rgba(var(--accent-color-rgb,161, 161, 161), .05) 100%);border-radius:var(--radius-md) var(--radius-md) 0 0;grid-column:1/-1;justify-content:space-between;align-items:center;margin-top:2rem;padding:1.5rem 0 1rem;display:flex;position:relative}.search-category-header:before{content:"";background:linear-gradient(90deg, var(--primary-color) 0%, var(--accent-color) 50%, var(--primary-color) 100%);height:2px;position:absolute;top:0;left:0;right:0}.category-title{color:var(--primary-color);margin:0;padding:0 1rem;font-size:1.3rem;font-weight:600}.course-count{background:var(--primary-color);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-left:1rem;padding:.4rem 1rem;font-size:.85rem;font-weight:600}.no-results-content{text-align:center;color:var(--text-secondary);background:#ff7676b3;padding:3rem 2rem}.no-results-icon{opacity:.4;margin-bottom:1.5rem;font-size:4rem}.no-results-content h3{color:var(--text-primary);margin:0 0 1rem;font-size:1.5rem}.no-results-content p{max-width:400px;margin:0 auto;font-size:1rem;line-height:1.6}.highlighted-course{background:linear-gradient(135deg, rgba(var(--primary-color-rgb,23, 23, 23), .15) 0%, rgba(var(--accent-color-rgb,161, 161, 161), .15) 100%);border:2px solid var(--primary-color);box-shadow:0 8px 30px rgba(var(--primary-color-rgb,23, 23, 23), .3);animation:2s ease-in-out highlightPulse;transform:scale(1.02)}@keyframes highlightPulse{0%,to{box-shadow:0 8px 30px rgba(var(--primary-color-rgb,23, 23, 23), .3)}50%{box-shadow:0 12px 40px rgba(var(--primary-color-rgb,23, 23, 23), .5)}}.search-match{box-shadow:0 6px 25px rgba(var(--primary-color-rgb,23, 23, 23), .2);border-color:var(--primary-light);transform:scale(1.02)}.search-clear{cursor:pointer;color:#ef4444;z-index:3;background:#ef44441a;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex;position:absolute;left:12px}.search-clear:hover{background:#ef444433;transform:scale(1.1)}.search-clear svg{width:16px;height:16px}@media (width<=768px){.search-category-header{flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem}.category-title{padding:0;font-size:1.1rem}.course-count{align-self:flex-start;margin-left:0}.search-result-card .course-header{flex-direction:column;gap:.75rem}.search-result-card .course-meta{align-self:flex-start}.search-match,.highlighted-course{transform:none}.no-results-icon{font-size:3rem}.no-results-content h3{font-size:1.25rem}}@media (width<=480px){.search-result-card .instructor-list{flex-direction:column;gap:.25rem}.search-result-card .instructor-badge{align-self:flex-start}.loading-content,.error-content,.no-results-content{padding:2rem 1rem}}[data-theme=dark] .search-result-card{background:#171717e6;border-color:#ffffff1a}[data-theme=dark] .search-result-card:hover{border-color:var(--primary-light);box-shadow:0 12px 30px #0006}[data-theme=dark] .search-category-header{background:linear-gradient(135deg, #ffffff0a 0%, rgba(var(--accent-color-rgb,161, 161, 161), .04) 100%)}[data-theme=dark] .instructor-badge{background:#ffffff0f;border-color:#ffffff26}:root{--primary-color-rgb:23, 23, 23;--accent-color-rgb:115, 115, 115}[data-theme=dark]{--primary-color-rgb:237, 237, 237;--accent-color-rgb:161, 161, 161}#responsive-menu:checked~.toggle-menu-wrapper .toggle-menu .toggle-menu__lines{background:0 0}#responsive-menu:checked~.toggle-menu-wrapper .toggle-menu .toggle-menu__lines:before{top:0;transform:rotate(45deg)}#responsive-menu:checked~.toggle-menu-wrapper .toggle-menu .toggle-menu__lines:after{top:0;transform:rotate(-45deg)}.support{position:absolute;bottom:20px;right:20px}.support a{color:var(--text-primary);backface-visibility:hidden;font-size:32px;transition:transform .2s;display:inline-block}.support a:hover{transform:scale(1.1)}[dir=ltr] .search-icon{right:auto;left:var(--spacing-md)}[dir=ltr] .search-clear{left:auto;right:var(--spacing-sm)}[dir=ltr] .search-spinner{left:auto;right:2.9rem}[dir=ltr] .search-wrapper[data-loading=true] .search-input{padding-left:var(--spacing-md);padding-right:4.25rem}[dir=ltr] .search-input{padding:var(--spacing-md) var(--spacing-md) var(--spacing-md) calc(var(--spacing-md) + 32px);text-align:left;direction:ltr}[dir=ltr] .expand-icon{left:auto;right:var(--spacing-lg)}[dir=ltr] .course-summary{padding-inline-start:var(--spacing-lg);padding-inline-end:calc(var(--spacing-lg) + 5rem)}[dir=ltr] .instructor-badge{flex-direction:row}[dir=ltr] .course-code{margin-left:0;margin-right:var(--spacing-sm)}@media screen and (width<=900px){.container{padding:var(--spacing-md)}.header .container{padding:1rem var(--spacing-md);justify-content:space-between;position:relative}.toggle-menu{display:block}.toggle-menu-wrapper{align-items:center;display:flex}.toggle-menu-wrapper .theme-switch{display:none}#responsive-menu:checked~.toggle-menu-wrapper .theme-switch{top:50%;z-index:1001;display:flex;position:absolute;inset-inline-end:var(--spacing-md);transform:translateY(-50%)}.toggle-menu-wrapper .theme-toggle{background-color:var(--border-color)}.header__menu{border-left:1px solid var(--border-color);background:var(--bg-secondary);z-index:1000;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:.5rem;width:100%;height:100vh;padding:7rem 1rem 2rem;transition:right .25s ease-out;position:fixed;top:0;right:-100%;overflow-y:auto;box-shadow:-5px 0 15px #0000001a}.header__menu:before{content:"";background:var(--border-color);height:1px;position:absolute;top:5.5rem;left:1rem;right:1rem}.header__logo{flex-direction:row-reverse;margin:0 2rem 0 0;font-family:Gugi;font-size:2.25rem;display:flex}#responsive-menu:checked~.header__menu{right:0}.header__menuItem{width:100%;margin-bottom:0}.header__menuItem .btn{text-align:center;border-radius:var(--radius-md);width:100%;color:var(--text-primary);border:1px solid var(--border-color);justify-content:center;align-items:center;gap:.5rem;min-height:48px;padding:1rem 1.5rem;font-size:1.05rem;display:flex}.header__menuItem .btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translate(-5px)}.header .container{--header-nav-gap:1rem}.header__nav>ul{gap:var(--header-nav-gap)}.header__nav:before{content:"";opacity:0;visibility:hidden;z-index:999;background:#00000080;width:100%;height:100vh;transition:opacity .25s ease-out,visibility .25s ease-out;position:fixed;top:0;left:0}#responsive-menu:checked~.header__nav:before{opacity:1;visibility:visible}}@media (width>=768px) and (width<=1024px){.header .container{--header-nav-gap:.5rem}.header__menu{gap:var(--header-nav-gap)}.btn{padding:.5rem 1rem;font-size:.9rem}.header__logo{flex-direction:row-reverse;margin:0 2rem 0 0;font-family:Gugi;font-size:2.25rem;display:flex}}@media (width>=1024px){html{zoom:1.3}.container--narrow{width:85%}.header .container{--header-nav-gap:1.5rem}.header__menu{gap:var(--header-nav-gap)}.toggle-menu-wrapper{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){.header{border-bottom:2px solid var(--text-primary)}.btn--sub{border-width:2px;border-color:var(--text-primary)}}.demo-content{text-align:center;background:linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%);min-height:100vh;padding:2rem}.demo-content h1{color:var(--text-primary);margin-bottom:1rem}.demo-content p{color:var(--text-secondary);max-width:600px;margin:0 auto;line-height:1.6}a{color:inherit;text-decoration:none}a .instructor-badge:hover{background:var(--primary-color);color:#fff}.footer{padding:var(--spacing-xl) var(--spacing-sm) var(--spacing-lg);background:var(--glassmorphism-bg);-webkit-backdrop-filter:var(--backdrop-blur);border-top:1px solid var(--glassmorphism-border);color:var(--text-primary);margin-top:5rem;position:relative}.footer:before{content:"";background:linear-gradient(90deg, transparent 0%, var(--primary-color) 20%, var(--accent-color) 50%, var(--primary-color) 80%, transparent 100%);height:1px;animation:3s ease-in-out infinite gradientLine;position:absolute;top:0;left:0;right:0}@keyframes gradientLine{0%,to{opacity:.6}50%{opacity:1}}.footer-container{grid-template:"attribution. ."".quote."". . ."/1fr 2fr 1fr;align-items:center;max-width:1200px;min-height:120px;margin:0 auto;display:grid;position:relative}.footer-attribution{color:var(--text-muted);transition:color var(--transition-fast);grid-area:attribution;place-self:start;font-size:.875rem;font-weight:400}.footer-attribution:hover{color:var(--accent-purple)}.footer-quote-container{text-align:center;grid-area:quote;place-self:center;max-width:600px}.footer-quote{color:var(--text-primary);margin-bottom:var(--spacing-sm);direction:ltr;font-family:Noto Sans Arabic,Merriweather,Georgia,serif;font-size:clamp(1rem,2.5vw,1.25rem);font-style:italic;font-weight:400;line-height:1.6;position:relative}.footer-quote:before,.footer-quote:after{content:"\"";color:var(--primary-color);opacity:.7;font-size:1.5em}.footer-author{color:var(--text-secondary);margin-top:var(--spacing-sm);font-size:.9rem;font-weight:500}.footer-author:after{content:" —";color:var(--accent-color)}.developer-name{color:var(--accent-purple)}@media screen and (width<=768px){.footer{padding:var(--spacing-lg) var(--spacing-md)}.footer-container{gap:var(--spacing-md);text-align:center;grid-template:"attribution""quote""."/1fr}.footer-attribution{margin-bottom:var(--spacing-sm);place-self:center}.footer-quote{padding:0 var(--spacing-sm);font-size:clamp(.9rem,4vw,1.1rem)}}@media screen and (width<=480px){.footer{padding:var(--spacing-md) var(--spacing-sm)}.footer-quote{font-size:.95rem;line-height:1.5}.footer-author{font-size:.85rem}}.footer-quote-container{padding:var(--spacing-md);border-radius:var(--radius-lg);transition:all var(--transition-medium);position:relative}.footer-quote-container:before{content:"";background:linear-gradient(135deg, #1717170d 0%, rgba(var(--accent-color-rgb,161, 161, 161), .05) 100%);border-radius:var(--radius-lg);opacity:0;transition:opacity var(--transition-medium);z-index:-1;position:absolute;inset:0}.footer-quote-container:hover:before{opacity:1}[data-theme=dark] .footer-quote:before,[data-theme=dark] .footer-quote:after{color:var(--primary-light)}[data-theme=dark] .footer-author:before{color:var(--accent-color)}[dir=ltr] .footer-container{grid-template-areas:". .attribution"".quote."". . ."}[dir=ltr] .footer-attribution{justify-self:end}:root{--color-light:#fff;--color-main:#171717;--color-sub:#737373;--color-white:#fff;--color-gray:#a1a1a1;--border-dark:#e5e5e5;--gradient-primary:linear-gradient(135deg, #404040, #737373)}[data-theme=dark]{--color-light:#262626;--color-main:#404040;--color-sub:#a1a1a1;--color-white:#f5f5f5;--color-gray:#737373;--border-dark:#404040;--gradient-primary:linear-gradient(135deg, #d4d4d4, #737373)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-light:#262626;--color-main:#404040;--color-sub:#a1a1a1;--color-white:#f5f5f5;--color-gray:#737373;--border-dark:#404040;--gradient-primary:linear-gradient(135deg, #d4d4d4, #737373)}}.btn{cursor:pointer;background-color:var(--color-light);font-weight:var(--font-medium,500);color:var(--color-sub);-webkit-backface-visibility:hidden;backface-visibility:hidden;border:none;border-radius:.5rem;outline-width:0;outline-color:#0000;width:fit-content;height:fit-content;padding:1rem 2rem;font-size:.9rem;text-decoration:none;transition:all .3s ease-in-out;display:inline-block;position:relative}.btn:disabled,.btn--disabled{cursor:not-allowed;opacity:.6}.btn:hover{opacity:.85}.btn i{pointer-events:none!important}.btn--main{background-color:var(--color-main);color:var(--color-white)}.btn.btn--main--outline{color:var(--color-main);border:2px solid var(--color-main);background-color:#0000}.btn--sub{background-color:var(--border-dark);color:var(--gradient-primary)}.btn.btn--sub--outline{color:var(--color-sub);border:2px solid var(--color-sub);background-color:#0000}.btn--sm{padding:.5rem 1.2rem;font-size:1.3rem}.btn--md{padding:.8rem 2rem;font-size:1.35rem}.btn--lg{padding:1.2rem 4.5rem;font-size:1.8rem}.btn--main--link,.btn--sub--link{background:0 0;padding:0}.btn.btn--main--link{color:var(--color-main)}.btn.btn--main--link i{color:var(--color-main)!important}.btn.btn--sub--link{color:var(--color-sub)}.btn.btn--sub--link i{color:var(--color-sub)!important}.btn--main--outline:hover{opacity:1;color:var(--color-white);background:var(--color-main)}.btn--sub--outline:hover{opacity:1;color:var(--color-white);background:var(--color-sub)}.btn.button--spinner{border-radius:50%;width:24px;height:24px;animation:2s linear infinite spin}button:disabled,button[disabled]{border:1px solid var(--color-gray);background-color:var(--color-light);color:var(--color-gray);cursor:unset}.course-meta{flex-wrap:wrap;gap:.4rem;margin:0 0 .75rem;display:flex}.course-meta-badge{background:var(--bg-tertiary,#f5f5f5);color:var(--text-secondary,#525252);border:1px solid var(--border-color,#e5e5e5);border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.78rem;display:inline-flex}[data-theme=dark] .course-meta-badge{background:var(--bg-secondary-dark,#262626);border-color:var(--border-dark,#404040);color:var(--text-primary-dark,#e0e0e0)}.instructor-badge{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.instructor-badge .instructor-link{text-decoration:none}.instructor-badge .course-schedule{width:100%;color:var(--text-muted,#737373);margin-top:.15rem;font-size:.78rem}.course-copy{background:rgba(var(--primary-color-rgb,23, 23, 23), .08);width:1.35rem;height:1.35rem;color:var(--primary-color,#171717);cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.course-copy:hover{background:var(--primary-color,#171717);color:#fff}.course-copy.copied{color:#fff;background:#22c55e}[data-theme=dark] .course-copy{background:rgba(var(--primary-color-rgb,237, 237, 237), .1);color:var(--text-primary,#fafafa)}.courses-empty{text-align:center;color:var(--text-muted,#737373);padding:3rem 1rem}.state-image{width:min(100%, var(--state-image-max,320px));aspect-ratio:795/314;background-image:var(--state-image-light);background-position:50%;background-repeat:no-repeat;background-size:contain;margin-inline:auto;display:block}html.dark .state-image{background-image:var(--state-image-dark)}.state-block{text-align:center;flex-direction:column;align-items:center;gap:.75rem;width:100%;display:flex}.search-state{padding:.75rem 0 1.25rem}.courses-empty .courses-retry{margin-top:1rem}[hidden]{display:none!important}@media (width>=1024px){.header>.container{gap:1rem}.header__nav{flex:1;min-width:0}.header__nav>.header__menu{flex-wrap:wrap;gap:.5rem}.header__menuItem .btn{padding:.7rem;font-size:.9rem}.header__logo{flex-shrink:0}.header__logo img{width:150px;max-width:100%;margin-right:0}}.skip-link{inset-inline-start:1rem;clip-path:inset(50%);width:1px;height:1px;position:fixed;top:1rem;overflow:hidden}.skip-link:focus{clip-path:none;z-index:9999;color:#fff;background:#171717;border-radius:8px;width:auto;height:auto;padding:.6rem 1rem;text-decoration:none;position:fixed;top:1rem;left:1rem;box-shadow:0 8px 20px #0003}
