/* Beyon Ramadhan Ghabgha Raffle — brand theme (no build step). */
:root{
  /* Brand colors */
  --beyon-dark: #202A44;
  --beyon-red:  #CE0037;
  --beyon-gray: #E4E4E4;
  --beyon-blue: #0049B4;
  --beyon-turq: #3CDBC0;

  /* UI tokens */
  --bg0: #141a2f;
  --bg1: #0b0f1a;
  --card: rgba(32,42,68,.72);
  --stroke: rgba(228,228,228,.14);
  --text: #ffffff;
  --muted: rgba(228,228,228,.86);
  --soft: rgba(228,228,228,.72);
  --ok: rgba(60,219,192,.95);
  --danger: rgba(206,0,55,.95);
  --shadow: 0 14px 34px rgba(0,0,0,.45);
  --r: 18px;
}

*{box-sizing:border-box}
html,body{height:100%}

body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(1100px 620px at 14% -10%, rgba(206,0,55,.22), transparent 60%),
    radial-gradient(900px 560px at 112% 6%, rgba(60,219,192,.18), transparent 55%),
    radial-gradient(900px 520px at 62% 120%, rgba(0,73,180,.18), transparent 55%),
    linear-gradient(180deg, var(--beyon-dark), var(--bg1));
}

a{color: var(--beyon-turq); text-decoration:none}
a:hover{text-decoration:underline}

.shell{
  max-width: 860px;
  margin: 0 auto;
  padding: 28px 16px 60px;
}

.hero{
  padding: 18px 12px 10px;
  text-align:center;
}

.brandLogo{
  display:block;
  margin: 0 auto 10px;
  width: min(280px, 72vw);
  height: auto;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,.35));
}

h1{
  margin: 8px 0 6px;
  font-size: clamp(28px, 4vw, 44px);
  line-height:1.05;
}

.sub{
  margin: 0 auto;
  max-width: 42ch;
  color: var(--soft);
  font-size: 15px;
}

.card{
  margin-top: 14px;
  border: 1px solid var(--stroke);
  border-radius: var(--r);
  background: var(--card);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
  padding: 18px;
}

.form{display:flex; flex-direction:column; gap:10px;}
.label{font-weight:700; color:var(--muted)}
.row{display:flex; gap:10px; align-items:center}

.input{
  flex:1;
  padding: 14px 14px;
  font-size: 16px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.04);
  color: var(--text);
  outline: none;
}
.input:focus{
  border-color: rgba(60,219,192,.65);
  box-shadow: 0 0 0 4px rgba(60,219,192,.14);
}

.btn{
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.04);
  color: var(--text);
  font-weight: 800;
  font-size: 14px;
  cursor:pointer;
  white-space:nowrap;
}
.btn:hover{filter:brightness(1.12)}
.btn:active{transform: translateY(1px)}

.btn.primary{
  border-color: rgba(206,0,55,.72);
  background:
    linear-gradient(180deg, rgba(206,0,55,.92), rgba(206,0,55,.58));
  box-shadow: 0 10px 22px rgba(206,0,55,.14);
}

.btn.danger{
  border-color: rgba(206,0,55,.7);
  background: linear-gradient(180deg, rgba(206,0,55,.22), rgba(206,0,55,.08));
}

.hint{
  margin: 0;
  color: var(--soft);
  font-size: 13px;
}

.status{
  margin-top: 12px;
  min-height: 20px;
  color: var(--muted);
  font-size: 14px;
}
.status.ok{color: var(--ok)}
.status.bad{color: var(--danger)}

.hidden{display:none !important;}

.drawStage{
  display:flex;
  gap:12px;
  align-items:center;
  padding: 14px 14px;
  border: 1px dashed rgba(0,73,180,.45);
  border-radius: 14px;
  background: rgba(0,0,0,.12);
  margin-top: 10px;
}
.spinner{
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,.16);
  border-top-color: var(--beyon-turq);
  animation: spin 0.9s linear infinite;
}
@keyframes spin {to{transform: rotate(360deg)}}
.drawTitle{font-weight:900}
.drawRolling{color:var(--soft); font-size: 13px; margin-top:2px}

.result{
  margin-top: 12px;
  border: 1px solid rgba(60,219,192,.22);
  border-radius: 16px;
  padding: 16px;
  background:
    radial-gradient(800px 220px at 30% 0%, rgba(60,219,192,.12), transparent 62%),
    radial-gradient(800px 220px at 90% 0%, rgba(206,0,55,.10), transparent 60%);
}

.resultTop{display:flex; flex-direction:column; gap:4px}
.resultLabel{
  color: var(--beyon-turq);
  font-weight: 950;
  letter-spacing:.02em;
}
.resultName{font-size: 20px; font-weight: 900;}
.resultMeta{color:var(--soft); font-size: 13px}
.dot{margin: 0 6px; opacity:.7}

.prize{
  margin-top: 12px;
  padding: 14px;
  border: 1px solid rgba(206,0,55,.28);
  border-radius: 14px;
  background: rgba(0,0,0,.12);
}
.prizeTitle{
  font-size: 18px;
  font-weight: 950;
  color: var(--beyon-red);
  text-shadow: 0 6px 16px rgba(206,0,55,.10);
}
.prizeSerial{margin-top: 6px; color: var(--muted); font-size: 13px}

.actions{display:flex; flex-wrap:wrap; gap:10px; margin-top: 14px}
.fine{margin: 12px 0 0; color:var(--soft); font-size: 12px}

.footer{
  margin-top: 18px;
  text-align:center;
  color: rgba(228,228,228,.72);
  font-size: 13px;
}

.adminTop{
  display:flex;
  flex-wrap:wrap;
  gap: 12px;
  align-items:center;
  justify-content:space-between;
}
.adminStats{
  display:flex;
  gap: 10px;
  flex-wrap:wrap;
}
.stat{
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.03);
  min-width: 140px;
}
.statLabel{font-size: 12px; color: var(--soft)}
.statValue{font-size: 18px; font-weight: 950; margin-top: 2px}

.tableWrap{
  margin-top: 14px;
  border: 1px solid var(--stroke);
  border-radius: 14px;
  overflow:auto;
}
.table{
  width:100%;
  border-collapse:collapse;
  min-width: 720px;
}
.table th, .table td{
  text-align:left;
  padding: 12px 12px;
  border-bottom: 1px solid rgba(228,228,228,.10);
  vertical-align:top;
}
.table th{
  position:sticky;
  top:0;
  background: rgba(32,42,68,.92);
  backdrop-filter: blur(8px);
  color: rgba(228,228,228,.88);
  font-size: 12px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.table td{font-size: 13px; color: rgba(255,255,255,.92)}
.table tr:hover td{background: rgba(255,255,255,.02)}

@media (max-width: 520px){
  .row{flex-direction:column; align-items:stretch}
  .btn{width:100%}
  .stat{min-width: 0; flex:1}
}
