/* Giveaway full-screen shell, rebuilt (v2.0). One stylesheet, no stacked patches.
   Frame: fixed sidebar | centred content | entrants column; status bar along the bottom.
   Every existing control keeps its id and handler; only the look and the frame change. */

/* ---------- hidden until an admin is signed in ---------- */
.gs-shell{display:none}
body.gs-on{overflow:hidden;background:#07050a}
body.gs-on main.shell,body.gs-on nav.topbar{display:none!important}

/* ---------- frame ---------- */
body.gs-on .gs-shell{
  display:grid;position:fixed;inset:0;z-index:40;
  grid-template-columns:236px minmax(0,1fr) 320px;
  grid-template-rows:64px minmax(0,1fr) 48px;
  background:#07050a;color:#f4eef0;font-family:"Inter",system-ui,sans-serif;font-size:14px;
}

/* thin, quiet scrollbars everywhere inside the shell (no default grey/white bars) */
.gs-shell *{scrollbar-width:thin;scrollbar-color:rgba(255,42,69,.35) transparent}
.gs-shell ::-webkit-scrollbar{width:6px;height:6px}
.gs-shell ::-webkit-scrollbar-track{background:transparent}
.gs-shell ::-webkit-scrollbar-thumb{background:rgba(255,42,69,.35);border-radius:6px}
.gs-shell ::-webkit-scrollbar-thumb:hover{background:rgba(255,42,69,.6)}
.gs-shell ::-webkit-scrollbar-corner{background:transparent}

/* ---------- sidebar ---------- */
.gs-rail{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;gap:14px;padding:22px 16px 18px;background:#0a0608;border-right:1px solid rgba(255,42,69,.16);overflow:hidden;min-height:0}
.gs-brand{font:700 21px/1 "Oswald",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.gs-brand em{font-style:normal;color:#ff2a45}
.gs-sub{font:600 10px/1 "Oswald",sans-serif;letter-spacing:.22em;color:#9a8f96;margin-top:-6px}
.gs-rail .gv2-tabs{display:flex;flex-direction:column;gap:4px;border:0;background:none;padding:0;margin:0;flex:0 0 auto;height:auto;overflow:visible}
.gs-rail .gv2-tabs button{position:relative;width:100%;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid transparent;background:none;color:#9a8f96;font:600 13px/1.2 "Oswald",sans-serif;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:color .2s,background .2s}
.gs-rail .gv2-tabs button:hover{color:#f4eef0;background:rgba(255,255,255,.03)}
.gs-rail .gv2-tabs button.active{color:#fff;background:linear-gradient(90deg,rgba(255,42,69,.18),rgba(255,42,69,.03));border-color:rgba(255,42,69,.32)}
.gs-rail .gv2-tabs button::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,#ff2a45,transparent);box-shadow:0 0 12px rgba(255,42,69,.7);transform:scaleX(0);transition:transform .38s cubic-bezier(.2,.8,.2,1)}
.gs-rail .gv2-tabs button.active::after{transform:scaleX(1)}
.gs-rail .gv2-tabs button{border-bottom-color:transparent!important;background-image:none}
.gs-rail .gv2-tabs button.active{background:linear-gradient(90deg,rgba(255,42,69,.18),rgba(255,42,69,.03))!important}
.gs-soon{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-radius:12px;border:1px dashed rgba(255,255,255,.1);color:#5f575c;font:600 12px/1 "Oswald",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.gs-soon span{font-size:9px;letter-spacing:.16em;color:#8a8086;border:1px solid rgba(255,255,255,.1);padding:4px 7px;border-radius:999px}
.gs-mascot-wrap{position:relative;margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto}
.gs-mascot-wrap img{width:104px;height:auto;flex:0 0 auto;filter:drop-shadow(0 8px 16px rgba(255,42,69,.35));transform-origin:50% 90%;animation:gsBob 4.2s ease-in-out infinite}
.gs-mascot-wrap .gs-glow{position:absolute;top:18px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(255,42,69,.26),transparent 65%);animation:gsPulse 3.6s ease-in-out infinite;pointer-events:none;z-index:-1}
.gs-mascot-wrap figcaption{font:600 10px/1 "Oswald",sans-serif;letter-spacing:.2em;color:#8a8086;text-transform:uppercase}
@keyframes gsBob{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-6px) rotate(1.2deg)}}
@keyframes gsPulse{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}

/* ---------- top bar (centre column, row 1) ---------- */
.gs-top{grid-column:2;grid-row:1;display:flex;align-items:center;gap:14px;padding:0 28px;border-bottom:1px solid rgba(255,255,255,.06);background:#0a0608;min-width:0}
.gs-title{font:700 24px/1 "Oswald",sans-serif;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.gs-live{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.12);font:700 11px/1 "Oswald",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#9a8f96;white-space:nowrap}
.gs-live::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.gs-live.on{border-color:rgba(34,197,94,.45);color:#22c55e;background:rgba(34,197,94,.06)}
.gs-kw{margin-left:auto;display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 16px;border-radius:12px;border:1px solid rgba(255,42,69,.4);background:rgba(255,42,69,.06);white-space:nowrap}
.gs-kw span{color:#9a8f96;font:600 10px/1 "Oswald",sans-serif;letter-spacing:.16em}
.gs-kw b{font:700 15px/1 "Oswald",sans-serif;letter-spacing:.06em}

/* ---------- centre content (row 2) ---------- */
.gs-main{grid-column:2;grid-row:2;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:26px 30px 30px}
.gs-main .gv2-app,.gs-main .gv2-stage,.gs-main .gv2-view{max-width:1120px;width:100%;margin:0 auto}
.gs-main .gv2-savebar{position:sticky;bottom:0}

/* every content panel: one consistent card style */
.gs-main .gv2-card,.gs-main .gv2-draw,.gs-main .gv2-live-main > *,.gs-main .gv2-live-side > *{background:linear-gradient(180deg,rgba(20,11,14,.9),rgba(9,6,8,.92));border:1px solid rgba(255,42,69,.16);border-radius:16px;box-shadow:0 14px 34px rgba(0,0,0,.35);min-width:0}
.gs-main .gv2-card{padding:22px 24px}
.gs-main .gv2-card-h h3{font:700 16px/1.1 "Oswald",sans-serif;letter-spacing:.06em;text-transform:uppercase}
.gs-main .gv2-card-h p{color:#9a8f96;font-size:13px;margin-top:6px}

/* non-live sections: two balanced columns that fill the centre */
.gs-main .gv2-view:not([data-view="live"]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.gs-main .gv2-view:not([data-view="live"]) > *{min-width:0}
@media(max-width:1500px){.gs-main .gv2-view:not([data-view="live"]){grid-template-columns:minmax(0,1fr)}}

/* live section: entrants and draw side by side, reserved tiles beneath */
.gs-main .gv2-view[data-view="live"]{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.gs-reserved{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:6px}
.gs-reserved .gs-tile{padding:16px;border-radius:14px;border:1px dashed rgba(255,255,255,.12);background:rgba(0,0,0,.22);min-width:0}
.gs-reserved h4{font:700 13px/1.2 "Oswald",sans-serif;text-transform:uppercase;letter-spacing:.08em}
.gs-reserved p{margin-top:8px;color:#8a8086;font-size:12px;line-height:1.5}
.gs-reserved .gs-phase{display:inline-block;margin-top:10px;font:700 10px/1 "Oswald",sans-serif;letter-spacing:.16em;color:#ffb43a}
@media(max-width:1280px){.gs-reserved{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- entrants column (column 3, rows 1-2) ---------- */
.gs-entrants{grid-column:3;grid-row:1/3;display:flex;flex-direction:column;gap:14px;padding:22px 18px 18px;background:#0a0608;border-left:1px solid rgba(255,42,69,.16);overflow:hidden;min-width:0;min-height:0}
.gs-ent-head{display:flex;justify-content:space-between;align-items:center;font:700 13px/1 "Oswald",sans-serif;letter-spacing:.14em;text-transform:uppercase}
.gs-ent-head b{color:#ff2a45}
.gs-ent-state{font:700 10px/1 "Oswald",sans-serif;letter-spacing:.14em;color:#22c55e}
.gs-ent-type{font-size:12px;color:#9a8f96;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}
.gs-ent-type b{color:#f4eef0;font-family:"Oswald",sans-serif;letter-spacing:.06em}
.gs-ent-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:8px}
.gs-ent-list > *{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.07);background:rgba(0,0,0,.25);color:#f4eef0;font-size:13px}
.gs-ent-list > * > *{min-width:0}
.gs-ent-list > * > *:first-child{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-ent-list > * > *:last-child{flex:0 0 auto}
.gs-ent-empty{color:#6d6469;font-size:12px;text-align:center;padding:28px 0}
.gs-ent-all{height:44px;border-radius:12px;border:1px solid rgba(255,42,69,.5);background:linear-gradient(180deg,rgba(255,42,69,.22),rgba(255,42,69,.05));color:#f4eef0;font:700 12px/1 "Oswald",sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;flex:0 0 auto;transition:box-shadow .2s}
.gs-ent-all:hover{box-shadow:0 0 22px rgba(255,42,69,.35)}

/* ---------- status bar (row 3, full width) ---------- */
.gs-foot{grid-column:1/4;grid-row:3;display:flex;align-items:center;gap:30px;padding:0 24px;border-top:1px solid rgba(255,255,255,.06);background:#0a0608;font:600 10px/1 "Oswald",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#8a8086;white-space:nowrap;overflow:hidden}
.gs-foot b{display:block;margin-top:5px;color:#f4eef0;font-size:12px;letter-spacing:.06em}

/* ---------- narrower screens ---------- */
@media(max-width:1280px){
  body.gs-on .gs-shell{grid-template-columns:236px minmax(0,1fr)}
  .gs-entrants{display:none}
  .gs-foot{grid-column:1/3}
  .gs-top{grid-column:2}
}
@media (prefers-reduced-motion: reduce){.gs-mascot-wrap img,.gs-mascot-wrap .gs-glow,.gs-rail .gv2-tabs button::after{animation:none!important;transition:none!important}}

/* Live view: a top row (entrants + draw/winners) with the reserved tiles beneath, nothing overlapping (v2.0.1) */
.gs-main .gv2-view[data-view="live"]{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.gs-main .gv2-view[data-view="live"] .gv2-live-main{flex:1 1 480px;min-width:0}
.gs-main .gv2-view[data-view="live"] .gv2-live-side{flex:0 0 340px;min-width:0;display:flex;flex-direction:column;gap:18px}
.gs-main .gv2-view[data-view="live"] .gv2-live-side > *{position:static!important;transform:none!important}
.gs-reserved{flex:1 1 100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:4px}
.gs-main button{white-space:normal;line-height:1.2;text-align:center}
.gs-main .gv2-secondary{display:flex;gap:10px}
.gs-main .gv2-secondary > *{flex:1 1 0;min-width:0;padding:12px 10px}
@media(max-width:1280px){.gs-reserved{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Column sizes to its content; nothing is clipped or overlapped (v2.0.2) */
.gs-main .gv2-view[data-view="live"] .gv2-live-side{height:auto!important;max-height:none!important;overflow:visible!important}
.gs-main .gv2-view[data-view="live"] .gv2-live-main{height:auto!important;max-height:none!important;overflow:visible!important}
.gs-reserved{margin-top:18px}
.gs-main .gv2-secondary button{overflow:visible!important;font-size:12px;letter-spacing:.02em}
.gs-main .gv2-view[data-view="live"] .gv2-live-side,.gs-main .gv2-view[data-view="live"] .gv2-live-main{position:static!important;top:auto!important}
