*{box-sizing:border-box}
html{direction:rtl}
body{margin:0;font-family:Tahoma,Arial,sans-serif;background:#f7f5f1;color:#161616}
a{color:#ef6c00;text-decoration:none}
.container{max-width:1180px;margin:auto;padding:22px}
.nav{background:#111;border-bottom:4px solid #f57c00}
.nav-inner{display:flex;justify-content:space-between;align-items:center}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:20px}
.brand img{width:46px;height:46px;border-radius:50%;object-fit:cover}
.nav-links a{color:#fff;margin-left:18px}
.card{background:#fff;border-radius:18px;padding:22px;box-shadow:0 6px 24px rgba(0,0,0,.07);margin-bottom:20px;border:1px solid #eee4d7}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:20px 0}
.stat{background:#fff;padding:20px;border-radius:16px;border-top:4px solid #f57c00;text-align:center}
.stat strong{display:block;font-size:32px}
.stat span,.muted{color:#777}
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.chart-card{height:360px}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mini{text-align:center}
.mini span{display:block;color:#777}
.mini strong{font-size:26px;color:#ef6c00}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:14px}
.button-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.button,button{display:inline-block;border:0;border-radius:10px;background:#f57c00;color:#fff;padding:12px 18px;font-weight:700;cursor:pointer}
.button.dark{background:#111}
.button.secondary{background:#666}
.danger-btn{background:#b42318}
button:disabled{opacity:.6}
.form{max-width:700px}
label{display:block;margin:14px 0 7px;font-weight:700}
input,select{width:100%;padding:12px;border:1px solid #d8d2ca;border-radius:9px;font-size:16px;background:#fff}
.check{display:flex;gap:8px;align-items:center}
.check input{width:auto}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:12px;border-bottom:1px solid #eee;text-align:right;vertical-align:middle}
th{background:#111;color:#fff}
.alert,.status{padding:12px;border-radius:9px;margin:15px 0}
.alert.success,.status.success{background:#e4f5e8}
.alert.danger,.status.error{background:#fde8e5}
.status.warning{background:#fff3cd}
.qr-box{text-align:center}
.qr-box img{max-width:260px;width:100%}
.inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.inline-form input{width:70px}
.inline-delete{display:inline-block;margin-right:8px}
.login-wrap,.mobile-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card,.attendance-card{width:100%;max-width:520px}
.login-logo,.attendance-logo{display:block;width:160px;height:160px;object-fit:cover;border-radius:50%;margin:0 auto 16px}
.auth-bg,.attendance-bg{background:radial-gradient(circle at top,#fff 0,#f8efe4 45%,#f4f4f4 100%)}
.attendance-card h1,.attendance-card h2,.attendance-card p{text-align:center}
.attendance-card button{width:100%;margin-top:18px;background:linear-gradient(90deg,#ef6c00,#ff9800)}
.match-list{margin:16px 0;border:1px solid #eee;border-radius:12px;overflow:hidden}
.match-list div{display:flex;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #eee}
.match-list div:last-child{border-bottom:0}
.raffle-hero,.winner-screen{text-align:center}
.raffle-hero img,.winner-screen img{width:170px;height:170px;object-fit:cover;border-radius:50%}
.raffle-btn{width:100%;font-size:20px;background:linear-gradient(90deg,#111,#f57c00)}
.raffle-stage{position:relative;overflow:hidden;margin:20px 0 24px;padding:18px;background:linear-gradient(135deg,#171717,#292929);border:4px solid #f57c00;border-radius:22px;box-shadow:0 16px 45px rgba(0,0,0,.18);color:#fff;text-align:center}
.raffle-stage.is-running{box-shadow:0 0 0 5px rgba(245,124,0,.18),0 18px 55px rgba(0,0,0,.25)}
.raffle-stage-label{margin-bottom:13px;color:#ffb35b;font-size:14px;font-weight:800;letter-spacing:.4px}
.raffle-reel{position:relative;direction:rtl;display:grid;grid-template-columns:1fr 1.7fr 1fr;align-items:center;gap:12px;min-height:118px;padding:15px 24px;background:#fff;border-radius:16px;overflow:hidden;color:#151515}
.reel-name{display:flex;align-items:center;justify-content:center;min-height:70px;padding:10px;border-radius:12px;font-weight:800;transition:transform .12s ease,opacity .12s ease,filter .12s ease}
.reel-name-active{position:relative;z-index:2;background:linear-gradient(135deg,#fff3e0,#ffd39a);border:3px solid #f57c00;font-size:clamp(22px,4vw,38px);box-shadow:0 8px 25px rgba(245,124,0,.25)}
.reel-name-side{font-size:clamp(14px,2vw,20px);opacity:.35;filter:blur(.35px)}
.raffle-stage.is-running .reel-name-active{animation:reelPulse .28s ease-in-out infinite alternate}
.raffle-stage.is-finished .reel-name-active{animation:winnerPop .75s cubic-bezier(.17,.89,.32,1.49);background:linear-gradient(135deg,#fff7df,#ffb74d)}
.reel-pointer{position:absolute;z-index:4;top:0;left:50%;transform:translateX(-50%);color:#f57c00;font-size:25px;line-height:1}
.reel-edge{position:absolute;z-index:3;top:0;bottom:0;width:70px;pointer-events:none}
.reel-edge-right{right:0;background:linear-gradient(90deg,transparent,#fff)}
.reel-edge-left{left:0;background:linear-gradient(270deg,transparent,#fff)}
.raffle-progress{height:7px;margin-top:14px;background:#3d3d3d;border-radius:999px;overflow:hidden}
.raffle-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#ffb74d,#f57c00);border-radius:inherit}
.raffle-stage.is-running .raffle-progress span{animation:raffleProgress 5.4s linear forwards}
.winner-reveal{position:relative;overflow:hidden;margin:22px 0;padding:34px 20px;background:#111;border:5px solid #f57c00;border-radius:24px;color:#fff;text-align:center;animation:winnerReveal .65s ease both}
.winner-reveal h2{color:#ff9800}
.confetti{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,#ff9800 0 4px,transparent 5px),radial-gradient(circle,#fff 0 3px,transparent 4px),radial-gradient(circle,#f57c00 0 5px,transparent 6px);background-size:70px 70px,95px 95px,125px 125px;background-position:0 -20px,30px 5px,15px 25px;animation:confettiFall 3s linear infinite;opacity:.7}
@keyframes reelPulse{from{transform:scale(.97)}to{transform:scale(1.02)}}
@keyframes winnerPop{0%{transform:scale(.7);opacity:.2}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes raffleProgress{from{width:0}to{width:100%}}
@keyframes winnerReveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes confettiFall{from{background-position:0 -120px,30px -90px,15px -150px}to{background-position:0 180px,30px 220px,15px 160px}}
.winner-screen{background:#111;color:#fff;padding:40px;border-radius:24px;border:5px solid #f57c00}
.winner-screen h2{color:#ff9800}
.winner-name{font-size:44px;font-weight:900;margin:25px 0 10px}
.winner-phone{font-size:24px;margin-bottom:20px}
code{direction:ltr;display:inline-block}

@media(max-width:800px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .charts-grid,.summary-grid{grid-template-columns:1fr}
  .nav-inner,.page-head{flex-direction:column;align-items:flex-start}
  .nav-links{display:flex;flex-wrap:wrap;gap:10px}
  .nav-links a{margin:0}
  .inline-form{flex-wrap:wrap}
  table{display:block;overflow-x:auto;white-space:nowrap}
  .container{padding:14px}
  .winner-name{font-size:32px}
  .raffle-reel{grid-template-columns:1fr;padding:16px 12px}
  .reel-name-side{display:none}
}
