*{box-sizing:border-box}
:root{--green:#16a34a;--teal:#0f766e;--gold:#f59e0b;--red:#dc2626;--blue:#0ea5e9;--text:#064e3b;--muted:#64748b}
body{margin:0;font-family:"Tajawal",Arial,sans-serif;direction:rtl;color:var(--text);background:radial-gradient(circle at 10% 10%,rgba(250,204,21,.24),transparent 25%),radial-gradient(circle at 90% 20%,rgba(14,165,233,.20),transparent 25%),linear-gradient(135deg,#fffdf5,#f0fdf4);min-height:100vh}
.topbar{padding:20px 5vw;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{display:flex;gap:14px;align-items:center}.logo{width:68px;height:68px;border-radius:24px;background:linear-gradient(135deg,var(--gold),var(--green));display:grid;place-items:center;font-size:34px;color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.14)}
h1,h2,h3,p{margin-top:0}.brand h1{margin:0;font-size:clamp(24px,3.5vw,42px);font-weight:900}.brand p{margin:4px 0 0;color:var(--muted);font-weight:800}
nav{display:flex;gap:8px;flex-wrap:wrap;background:rgba(255,255,255,.78);border:1px solid rgba(22,163,74,.14);padding:8px;border-radius:20px}
nav a,.btn,button,.upload-btn{font-family:inherit;text-decoration:none;border:0;border-radius:16px;padding:12px 16px;font-weight:900;font-size:15px;cursor:pointer;background:var(--green);color:#fff;box-shadow:0 8px 18px rgba(22,163,74,.16)}
nav a{background:transparent;color:var(--green);box-shadow:none}.active,nav a:hover{background:var(--green);color:#fff}.gold{background:var(--gold)!important}.danger{background:var(--red)!important}.blue{background:var(--blue)!important}.light{background:#e8f5ef!important;color:#166534!important;box-shadow:none!important}
.container{width:min(1240px,94vw);margin:0 auto 36px}.panel{background:rgba(255,255,255,.92);border:1px solid rgba(22,163,74,.12);border-radius:28px;padding:22px;box-shadow:0 12px 32px rgba(0,0,0,.07);margin-bottom:18px}.hint{font-weight:800;color:var(--muted)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;background:linear-gradient(135deg,#16a34a,#0ea5e9);color:#fff;border-radius:34px;padding:34px;box-shadow:0 18px 45px rgba(14,165,233,.16)}.hero h2{font-size:clamp(34px,6vw,68px);font-weight:900}.hero p{font-size:22px;font-weight:800;line-height:1.8}.tag{background:#fff;color:#166534;border-radius:999px;padding:9px 16px;font-weight:900;display:inline-block;margin-bottom:12px}.actions,.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.input-row{display:grid;grid-template-columns:1fr auto;gap:10px}input,select{font-family:inherit;border:2px solid #dbe7e1;border-radius:16px;padding:12px 14px;font-weight:900;font-size:16px;background:#fff;color:var(--text)}
.list,.leaderboard{display:grid;gap:12px}
.student-card{display:grid;grid-template-columns:1.1fr 1.5fr;gap:14px;align-items:center;background:#fff;border:1px solid #e6eee9;border-radius:24px;padding:16px;box-shadow:0 8px 22px rgba(0,0,0,.04)}
.student-main{display:flex;align-items:center;gap:14px}.student-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.student-main b,.rank-name{font-size:20px;font-weight:900;color:#064e3b}.rank-meta{font-size:13px;color:var(--muted);font-weight:800}
.avatar{width:62px;height:62px;border-radius:50%;object-fit:cover;border:3px solid #facc15;background:#fff7cc;display:grid;place-items:center;font-size:26px;flex:0 0 auto}.avatar-placeholder{display:grid;place-items:center}
.rank{display:grid;grid-template-columns:62px 1fr 110px;gap:12px;align-items:center;background:#fff;border:1px solid #e6eee9;border-radius:22px;padding:14px}.medal{width:52px;height:52px;border-radius:17px;background:#ecfdf5;display:grid;place-items:center;font-size:26px;font-weight:900}.rank-score,.points-pill{background:#fff7cc;color:#92400e;border:2px solid #fde68a;padding:9px 14px;border-radius:16px;font-weight:900;text-align:center}
.weekly-winners{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.weekly-winner-card{background:linear-gradient(135deg,#fff7cc,#ecfdf5);border:2px solid #facc15;border-radius:26px;padding:18px;display:flex;align-items:center;gap:14px}.winner-medal{width:54px;height:54px;border-radius:18px;background:#facc15;display:grid;place-items:center;font-size:28px}.winner-empty{background:#fff;border:2px dashed #facc15;border-radius:24px;padding:22px;text-align:center;font-weight:900;color:#92400e}
.winner-body{background:radial-gradient(circle at 15% 15%,rgba(250,204,21,.35),transparent 22%),linear-gradient(135deg,#062d22,#0f766e,#16a34a);color:#fff}.winner-tools{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:18px}.winner-screen{width:min(1100px,94vw);margin:0 auto;text-align:center}.program-title{display:inline-block;background:#fff;color:#166534;font-weight:900;border-radius:999px;padding:10px 18px;margin-bottom:10px}.winner-screen h1{font-size:clamp(48px,8vw,105px);font-weight:900;margin-bottom:4px}.winner-sub{font-size:28px;font-weight:900}.winner-card{background:rgba(255,255,255,.94);color:#064e3b;border:3px solid rgba(250,204,21,.75);border-radius:38px;padding:34px;box-shadow:0 28px 80px rgba(0,0,0,.28)}.winner-name{display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap;font-size:clamp(40px,7vw,80px);font-weight:900}.winner-avatar{width:130px;height:130px;border-radius:50%;object-fit:cover;border:5px solid #facc15;background:#fff7cc}.winner-avatar-small{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid #facc15;background:#fff7cc}.winner-row-name{display:flex;gap:14px;align-items:center}.screen-list{margin:24px auto;display:grid;gap:14px}.screen-rank{background:rgba(255,255,255,.94);color:#064e3b;border:2px solid rgba(250,204,21,.45);border-radius:24px;padding:18px 24px;display:grid;grid-template-columns:80px 1fr 120px;align-items:center;gap:18px;font-size:28px;font-weight:900;text-align:right}
.status{font-weight:900;color:#0f766e;margin-top:10px}.private-badge{display:inline-block;background:#fff7cc;color:#92400e;border:2px solid #fde68a;border-radius:999px;padding:8px 14px;font-weight:900}
@media(max-width:900px){.student-card,.hero{grid-template-columns:1fr}.student-actions{justify-content:flex-start}.rank{grid-template-columns:54px 1fr 80px}.input-row{grid-template-columns:1fr}}
@media print{nav,.topbar,button,.btn,.upload-btn,.winner-tools{display:none!important}.panel,.rank,.student-card{box-shadow:none;border:1px solid #ddd}.container{width:100%}}
