:root{--bg-0: #0b0820;--bg-1: #0f0c29;--bg-2: #151437;--bg-3: #1c1b4a;--surface: rgba(20, 20, 45, .92);--surface-2: rgba(30, 30, 55, .88);--border: rgba(102, 126, 234, .22);--border-strong: rgba(102, 126, 234, .55);--primary: #667eea;--primary-2: #764ba2;--accent: #a78bfa;--accent-2: #c4b5fd;--text-primary: #f5f3ff;--text-muted: rgba(245, 243, 255, .65);--text-dim: rgba(245, 243, 255, .42);--success: #10b981;--success-bg: rgba(16, 185, 129, .12);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .12);--warn: #f59e0b;--warn-bg: rgba(245, 158, 11, .12);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 26px;--shadow-sm: 0 4px 12px rgba(0, 0, 0, .25);--shadow-md: 0 8px 28px rgba(102, 126, 234, .18);--shadow-lg: 0 20px 60px rgba(102, 126, 234, .32)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;width:100%}body{font-family:Cairo,system-ui,-apple-system,sans-serif;background:radial-gradient(1000px 800px at 10% -10%,rgba(102,126,234,.22),transparent 60%),radial-gradient(900px 700px at 110% 10%,rgba(167,139,250,.18),transparent 60%),radial-gradient(1200px 900px at 50% 110%,rgba(118,75,162,.18),transparent 60%),linear-gradient(160deg,var(--bg-0) 0%,var(--bg-1) 45%,var(--bg-2) 100%);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font-family:inherit}.page{min-height:100vh;display:flex;align-items:stretch;justify-content:center;padding:1.5rem 1rem 3rem}.card{width:100%;max-width:520px;background:linear-gradient(160deg,var(--surface) 0%,var(--surface-2) 100%);border:1.5px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:2rem 1.75rem;position:relative;overflow:hidden;animation:fadeIn .5s ease-out both}.card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1.5px;background:linear-gradient(135deg,#a78bfa80,#667eea1a,#764ba266);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55}.brand{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1.5rem}.brand-logo{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 8px 20px rgba(167,139,250,.45))}.brand-title{font-size:1.15rem;font-weight:800;letter-spacing:.3px;color:var(--accent-2);text-align:center}.brand-subtitle{font-size:.9rem;font-weight:500;color:var(--text-muted);text-align:center}.course-info{display:grid;grid-template-columns:1fr;gap:.5rem;background:linear-gradient(135deg,#667eea1f,#a78bfa14);border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem 1rem;margin-bottom:1.5rem}.course-info-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.88rem}.course-info-row .label{color:var(--text-muted);font-weight:500}.course-info-row .value{color:var(--text-primary);font-weight:700;text-align:start;flex:1;min-width:0;word-break:break-word}.course-info-row .value.ltr{direction:ltr;text-align:end}.form{display:flex;flex-direction:column;gap:1.1rem}.field{display:flex;flex-direction:column;gap:.45rem}.field-label{font-size:.9rem;font-weight:600;color:var(--text-muted)}.field-hint{font-size:.78rem;color:var(--text-dim);margin-top:.15rem}.input{background:linear-gradient(135deg,#0f0f23f2,#14142df2);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);padding:.95rem 1.05rem;font-size:1rem;font-weight:600;outline:none;transition:all .25s cubic-bezier(.4,0,.2,1);width:100%;box-shadow:inset 0 1px #ffffff0a,0 2px 10px #00000040}.input::placeholder{color:#ffffff47;font-weight:400}.input:hover{border-color:#667eea73}.input:focus{border-color:var(--border-strong);box-shadow:0 0 0 4px #667eea24,var(--shadow-md)}.input.ltr{direction:ltr;text-align:left}.input[readonly]{background:#ffffff08;color:var(--text-muted);cursor:default}.btn{border:none;border-radius:var(--radius-md);padding:.95rem 1.25rem;font-size:1rem;font-weight:700;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-2) 100%);color:#fff;box-shadow:0 8px 24px #667eea66}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 30px #667eea8c}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong);background:#667eea14}.student-list{display:flex;flex-direction:column;gap:.75rem}.student-btn{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;background:linear-gradient(135deg,#667eea14,#a78bfa0a);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;font-weight:700;cursor:pointer;text-align:start;transition:all .2s ease;width:100%}.student-btn:hover:not(:disabled){border-color:var(--border-strong);transform:translateY(-1px);background:linear-gradient(135deg,#667eea2e,#a78bfa14);box-shadow:var(--shadow-md)}.student-btn:disabled{opacity:.55;cursor:not-allowed}.student-btn .badge{font-size:.72rem;font-weight:700;padding:.25rem .6rem;border-radius:999px;background:var(--warn-bg);color:var(--warn);border:1px solid rgba(245,158,11,.3)}.alert{border-radius:var(--radius-md);padding:.8rem 1rem;font-size:.88rem;font-weight:600;line-height:1.55}.alert-error{background:var(--danger-bg);color:#fecaca;border:1px solid rgba(239,68,68,.35)}.alert-success{background:var(--success-bg);color:#a7f3d0;border:1px solid rgba(16,185,129,.35)}.alert-warn{background:var(--warn-bg);color:#fde68a;border:1px solid rgba(245,158,11,.35)}.notes{background:#0f0f2373;border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:1rem 1.1rem;font-size:.87rem;line-height:1.85;color:var(--text-primary);white-space:pre-line;margin-top:1.25rem}.notes-title{font-weight:800;color:var(--accent-2);margin-bottom:.35rem;font-size:.95rem}.success-circle{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,#10b98126,#10b9810d);border:2px solid rgba(16,185,129,.45);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:2.5rem;box-shadow:0 10px 30px #10b98147;animation:pop .45s cubic-bezier(.34,1.56,.64,1) both}.error-circle{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,#ef444426,#ef44440d);border:2px solid rgba(239,68,68,.45);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:2.5rem;animation:pop .45s cubic-bezier(.34,1.56,.64,1) both}.center-text{text-align:center}.title-lg{font-size:1.25rem;font-weight:800;color:var(--text-primary);margin:.25rem 0}.subtitle{font-size:.95rem;color:var(--text-muted);line-height:1.65}.spinner{width:44px;height:44px;border:3px solid rgba(167,139,250,.18);border-top-color:var(--accent);border-radius:50%;animation:spin .85s linear infinite;margin:0 auto}.spinner-sm{width:18px;height:18px;border-width:2.5px}.info-grid{display:grid;grid-template-columns:1fr;gap:.5rem;background:#0f0f2366;border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem 1rem}.info-grid .row{display:flex;justify-content:space-between;gap:.75rem;font-size:.88rem}.info-grid .row .k{color:var(--text-muted);font-weight:500}.info-grid .row .v{color:var(--text-primary);font-weight:700;text-align:end;flex:1;min-width:0;word-break:break-word}.info-grid .row .v.ltr{direction:ltr}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--border-strong),transparent);margin:.5rem 0 .75rem}.footer{margin-top:1.5rem;font-size:.75rem;color:var(--text-dim);text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@media(max-width:480px){.page{padding:1rem .75rem 2rem}.card{padding:1.5rem 1.2rem;border-radius:var(--radius-lg)}.brand-logo{width:78px;height:78px}.brand-title{font-size:1.05rem}.title-lg{font-size:1.1rem}.input,.btn{padding:.85rem 1rem}}
