:root{--bg:#100f10;--panel:#201c1b;--border:#604638;--gold:#e5ae72;--gold2:#a56b43;--ink:#f4e7d7;--muted:#af9c8e;--teal:#1b857b;--red:#a5363d;--green:#348c62;--blue:#407fbc;font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(24px,3.1vw,43px);letter-spacing:2px}h1 span{color:var(--gold)}h2{font-size:21px;color:var(--gold);margin-bottom:10px}a{color:inherit}.eyebrow{color:var(--gold);letter-spacing:3px;font-size:11px;font-weight:750}.muted{color:var(--muted);font-size:13px}button,.button{border:1px solid var(--gold2);border-radius:8px;background:linear-gradient(135deg,#b47b49,#79472f);color:white;padding:10px 16px;font-size:14px;cursor:pointer;font-weight:700;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}button:hover,.button:hover{filter:brightness(1.14)}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold)}button.secondary,.button.secondary{background:#292522;border:1px solid #655348;color:var(--ink)}button.gold{background:linear-gradient(135deg,#e6ae6c,#985a2e);color:#170f08}button.green{background:#1d6549}button.blue{background:#295b85}button.red{background:#823239}.hidden{display:none!important}input,select{background:#141312;color:var(--ink);border:1px solid #675349;border-radius:7px;padding:9px;min-width:0;font-size:14px}input[type=number]{width:105px}input[type=file]{max-width:260px}input[type=checkbox]{width:auto}label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}.admin-header{padding:22px max(24px,4vw);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:linear-gradient(90deg,#171111,#25201d)}.admin-header h1{margin:5px 0}.actions,.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.admin main{max-width:1650px;margin:auto;padding:24px 20px}.panel{background:linear-gradient(155deg,#211b19,#171516);border:1px solid #524038;border-radius:14px;padding:20px;margin-bottom:18px;box-shadow:0 12px 36px #0004}.login{max-width:560px;margin:60px auto}.login form{display:flex;gap:8px}.login input{flex:1}.button-grid{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.button-grid button{min-width:144px}.scene-indicator{font-weight:800;font-size:18px;color:var(--gold);padding:10px 14px;border:1px solid var(--gold2);border-radius:11px}.status{padding:12px;color:var(--muted)}.chip{padding:7px 11px;border:1px solid #8e6e51;border-radius:24px;color:var(--gold);font-size:13px}.team-entry{display:grid;grid-template-columns:45px minmax(130px,1fr) minmax(150px,1fr) minmax(130px,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-top:1px solid #49362d}.team-entry>span{color:var(--gold);font-weight:800}.team-entry small{color:var(--muted)}.team-entry input{width:100%}.team-entry button{font-size:12px}.team-entry .photo-control{display:flex;gap:5px;flex-wrap:wrap}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-two .panel{min-width:0}.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px;margin:15px 0}th,td{padding:9px;border-bottom:1px solid #47372d;text-align:left}th{color:var(--gold)}td input{width:100%;min-width:83px}.secret-item,.vote-item,.seat-item{display:grid;grid-template-columns:48px 1fr 1fr 1fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #44362e}.seat-item{display:flex;flex-wrap:wrap}.seat-item input[data-seat-name]{min-width:140px;flex:1}.seat-item input{width:100%}.note{color:var(--gold);font-weight:700}.ranking-mini{width:100%;margin-top:15px}.ranking-mini td{text-align:right}.ranking-mini td:nth-child(2){text-align:left}.audit-entry{border-bottom:1px solid #47372d;padding:8px;color:var(--muted);font-size:12px}summary{cursor:pointer;color:var(--gold);font-weight:600;padding:14px 0}#toast{position:fixed;bottom:18px;right:18px;background:#182723;border:1px solid #569e84;padding:12px 20px;border-radius:9px;max-width:500px;display:none;z-index:10}#toast.error{border-color:#bf6a6a;background:#361d20}dialog{border:1px solid var(--gold2);background:#1b1919;color:var(--ink);border-radius:13px;padding:25px;width:min(90vw,950px);max-height:90vh;overflow:auto}dialog::backdrop{background:#000b}
/* Show screen uses viewport units so 13 rows fit on an ordinary 1080p projector. */
.projector{height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 70% 0,#302016 0,transparent 47%),#0d1112}.projector #show{height:100dvh;width:100%;padding:2.1vh 3vw;display:flex;flex-direction:column;position:relative}.projector .scene{height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden}.projector .stage-logo{font-size:clamp(30px,3vw,64px);font-weight:950;letter-spacing:.14em;text-shadow:0 0 30px #b06d3340}.projector .stage-logo span{color:var(--gold)}.projector .prelude{color:var(--gold);font-weight:650;letter-spacing:.5em;font-size:clamp(15px,2vw,34px)}.projector .mountains{font-size:12vw;color:#94634733;letter-spacing:1vw;transform:skewY(-3deg)}.projector .scene.intro,.projector .scene.pause{justify-content:center;align-items:center;text-align:center;gap:4vh}.projector .scene.intro .stage-logo{font-size:clamp(34px,5vw,100px)}.projector .scene.intro .mountains{max-height:24vh;line-height:1.2}.projector #connection{position:absolute;bottom:.65vh;right:2vw;font-size:12px;color:#9d9b90}.projector #connection.offline{color:#faac80}.projector #full{position:absolute;bottom:1.7vh;left:1.2vw;padding:5px 10px;background:#1b1c1b99;border:1px solid #343331;font-size:16px;opacity:.25}.projector #full:hover{opacity:1}.show-header{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:1.1vh;border-bottom:2px solid #aa7142;flex-shrink:0}.show-header h1{font-size:clamp(27px,3vw,64px);letter-spacing:.07em;margin:0}.show-header .stage-logo{font-size:clamp(25px,2.25vw,47px)}.stage-tag{font-size:clamp(18px,1.8vw,35px);letter-spacing:.13em;color:#d59a63;font-weight:950}.stage-tag.green{color:#5ed19a}.stage-tag.blue{color:#75b5fa}.stage-tag.red{color:#f48b80}.rank-board{display:grid;grid-template-rows:repeat(var(--teams,13),1fr);flex:1;min-height:0;margin-top:1.1vh;gap:.29vh}.rank-row{display:grid;grid-template-columns:5.5% 34% repeat(6,minmax(0,1fr));gap:.5%;align-items:center;min-height:0;padding:0 .8vw;background:linear-gradient(90deg,#26221f,#171b1b);border:1px solid #4a4036;border-radius:.4vw;font-weight:780;transition:transform .65s ease,background .65s}.rank-row:first-child{border-color:#dda264;background:linear-gradient(90deg,#553824,#1f2421)}.rank-row .place{font-size:clamp(15px,1.6vw,33px);color:var(--gold);font-weight:950}.rank-row .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(14px,1.5vw,31px);display:flex;align-items:center;gap:.7vw}.rank-row .points{text-align:right;font-size:clamp(11px,1.2vw,25px);white-space:nowrap}.rank-row .points.total{color:#f6ca8f;font-size:clamp(14px,1.65vw,33px);font-weight:950}.rank-row .avatar{object-fit:cover;width:2.5vw;height:2.5vw;max-height:4vh;max-width:4vh;border-radius:50%;border:1px solid #ae814b}.legend{display:grid;grid-template-columns:5.5% 34% repeat(6,minmax(0,1fr));gap:.5%;padding:1.1vh .8vw .35vh;flex-shrink:0;font-size:clamp(9px,.9vw,19px);color:#bcac9e;text-transform:uppercase;font-weight:800;letter-spacing:.05em}.legend span:nth-child(n+3){text-align:right}.scene-footer{height:2.4vh;min-height:12px;flex-shrink:0;color:#ab8e78;font-size:clamp(10px,.8vw,17px);text-align:right}.feature-scene{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3vh;text-align:center}.feature-title{font-size:clamp(33px,5vw,104px);font-weight:950;color:var(--gold);letter-spacing:.09em}.feature-sub{font-size:clamp(20px,2.2vw,46px)}.feature-number{font-size:clamp(50px,10vw,200px);color:#fff;font-weight:950}.captain-cards,.team-tiles,.secret-cards{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20vw,270px),1fr));gap:1.3vw;flex:1;min-height:0;align-content:center}.captain-card,.team-tile,.secret-card{border:2px solid #8a613f;border-radius:14px;padding:1.2vw;background:linear-gradient(140deg,#39302b,#1b2121);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1vh;overflow:hidden}.captain-card img,.secret-card img{width:min(8vw,13vh);height:min(8vw,13vh);border-radius:15px;object-fit:cover}.captain-card strong,.team-tile strong,.secret-card strong{font-size:clamp(12px,1.55vw,29px)}.captain-card small,.secret-card small{font-size:clamp(10px,1vw,18px);color:#dab183}.secret-cards{grid-template-columns:repeat(3,1fr);max-height:62vh}.secret-card{height:100%;position:relative;background:linear-gradient(130deg,#281d1c,#0e3435);animation:cardflip .8s ease both}.secret-card .unknown{font-size:9vw;color:#c48957}.secret-card .jack-name{font-size:clamp(18px,2.5vw,50px);color:var(--gold);font-weight:950}.winner-headline{font-size:clamp(22px,3vw,65px);color:var(--gold);letter-spacing:.2em}.winner-team{font-size:clamp(42px,7vw,140px);font-weight:950;text-shadow:0 0 44px #b8704440}.winner-score{font-size:clamp(30px,4vw,80px);font-weight:900;color:var(--gold)}.voting-detail{font-size:clamp(18px,2.2vw,43px);line-height:1.65}.slide-in{animation:rise .65s cubic-bezier(.12,.68,.3,1)}@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes cardflip{from{opacity:.2;transform:rotateY(85deg)}to{opacity:1;transform:rotateY(0)}}@media(max-width:980px){.grid-two{grid-template-columns:1fr}.team-entry{grid-template-columns:38px 1fr 1fr}.team-entry .photo-control{grid-column:2/4}.admin-header{flex-direction:column;align-items:flex-start;gap:12px}.projector .captain-cards{grid-template-columns:repeat(4,1fr)}.projector .team-tiles{grid-template-columns:repeat(4,1fr)}}@media(max-width:550px){.team-entry{grid-template-columns:28px 1fr}.team-entry>select,.team-entry .photo-control{grid-column:2}.login form{flex-direction:column}.admin main{padding:12px}.panel{padding:12px}.projector .rank-row{grid-template-columns:6% 40% repeat(5,minmax(0,1fr))}.projector .rank-row .points.votes{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Genuine Hi, Jack Club vector logo, tinted copper for the dark show theme. */
.brand-mark{display:block;width:auto;height:58px;object-fit:contain;filter:invert(77%) sepia(30%) saturate(571%) hue-rotate(337deg) brightness(96%)}
.admin-brand{display:flex;align-items:center;gap:14px}
.admin-brand .brand-mark{height:72px;flex-shrink:0}
.projector .stage-logo{display:flex;align-items:center;justify-content:center;gap:1.4vw}
.projector .stage-logo .brand-mark{height:clamp(60px,11vh,170px);flex-shrink:0}
.show-header .stage-logo .brand-mark{height:clamp(42px,7vh,100px)}
@media(max-width:600px){.admin-brand .brand-mark{height:54px}.projector .stage-logo{gap:8px}.projector .stage-logo .brand-mark{height:56px}}


/* SOCHI operator console: daylight theme for legibility in a busy venue.
   Scoped to admin only; projector's dark copper stage remains untouched. */
.admin{
  --ink:#282621;
  --muted:#655f5b;
  --gold:#87501f;
  --gold2:#bb8553;
  --border:#e2d9cf;
  color:var(--ink);
  background:#f6f3ee;
  min-height:100dvh;
}
.admin h1{color:#29221d;letter-spacing:.055em}
.admin h1 span,.admin h2,.admin .eyebrow{color:#935628}
.admin .admin-header{
  background:linear-gradient(110deg,#fff 0%,#f7f0e8 100%);
  border-bottom:1px solid #e1d7c8;
  box-shadow:0 2px 12px #3a27100b;
}
.admin .admin-brand .brand-mark{filter:invert(35%) sepia(33%) saturate(1128%) hue-rotate(343deg) brightness(80%)}
.admin .panel{
  background:#fff;
  border:1px solid #e2d9cf;
  box-shadow:0 5px 22px #3124190b;
}
.admin .muted,.admin label,.admin .audit-entry,.admin .team-entry small{color:#625d55}
.admin .status{color:#6c645b;font-size:13px;padding:12px 6px}
.admin input,.admin select{
  background:#fff;
  color:#282621;
  border:1px solid #cfc6bb;
  box-shadow:inset 0 1px 2px #00000007;
}
.admin input::placeholder{color:#877d74}
.admin input:focus-visible,.admin select:focus-visible,.admin button:focus-visible,
.admin a:focus-visible,.admin summary:focus-visible{outline:3px solid #dba36b;outline-offset:2px}
.admin button,.admin .button{
  background:linear-gradient(145deg,#c48343,#9b5e30);
  color:#fff;
  border-color:#985d30;
  box-shadow:0 2px 6px #2a1b100e;
}
.admin button.secondary,.admin .button.secondary{
  background:#fff;
  color:#4b3c2f;
  border-color:#cabbad;
}
.admin button.secondary:hover,.admin .button.secondary:hover{background:#fff6ed}
.admin button.gold{background:linear-gradient(130deg,#f1bf7f,#b8773d);color:#26180f}
.admin button.green{background:#25694c;color:#fff}
.admin button.blue{background:#2a5f98;color:#fff}
.admin button.red{background:#a54545;color:#fff}
.admin .scene-indicator{background:#fff4e8;color:#8c4b24;border-color:#dcb389}
.admin .chip{background:#fff6ec;color:#854e2c;border-color:#d3ad87}
.admin .team-entry,.admin .seat-item,.admin .secret-item,.admin .vote-item,
.admin th,.admin td,.admin .audit-entry{border-bottom-color:#ede5dc}
.admin .team-entry>span,.admin th,.admin summary,.admin .note{color:#945b30}
.admin table thead{background:#f7f3ee}
.admin table tr:nth-child(even){background:#fbf9f6}
.admin table th:first-child{font-weight:750}
.admin .scroll{border:1px solid #e9e0d7;border-radius:10px;max-width:100%}
.admin .login{max-width:600px}
.admin dialog,.admin #preview-modal{
  background:#fff;
  color:#282621;
  border:1px solid #d8c7b6;
  box-shadow:0 26px 100px #21160e50;
}
.admin #toast{background:#e8faf1;color:#17533d;border-color:#9ed5b7;box-shadow:0 5px 28px #0002}
.admin #toast.error{background:#ffeded;color:#8f2727;border-color:#e9a8a8}
.admin .guide-panel{
  background:linear-gradient(125deg,#fff,#faf2e7);
  border:1px solid #d9c3a8;
  border-radius:16px;
  padding:24px;
  box-shadow:0 8px 30px #32220e11;
  margin-bottom:16px;
}
.admin .guide-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.admin .guide-head h2{font-size:clamp(22px,2.3vw,30px);color:#28231e;margin:0 0 8px}
.admin .guide-head p{font-size:14px;line-height:1.5;color:#63584f;margin-bottom:10px}
.admin .guide-kicker{font-size:11px!important;font-weight:800;letter-spacing:.16em;color:#9c6537!important}
.admin .guide-progress{min-width:145px;display:flex;flex-direction:column;text-align:right;gap:4px;font-size:12px;color:#6b6055}
.admin .guide-progress strong{color:#76502e;font-size:25px}
.admin .guide-progress-track{height:7px;width:100%;border-radius:99px;background:#e9dbcb;overflow:hidden;margin-top:8px}
.admin #guide-progress-fill{display:block;width:0;height:100%;background:#9e6736;border-radius:inherit;transition:width .35s}
.admin .guide-next{background:#f2e9dd;border-left:4px solid #c68c51;border-radius:6px;padding:13px 15px;font-size:15px;font-weight:750;color:#543820;margin:12px 0}
.admin .guide-instructions{border-top:1px solid #eadbca}
.admin .guide-instructions>summary{color:#704522;font-weight:750;font-size:15px;padding:15px 0}
.admin .guide-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 30px;margin:8px 0 18px;padding-left:22px}
.admin .guide-steps li{font-size:13px;line-height:1.6;padding:2px 0 6px;color:#514c46}
.admin .guide-steps a{font-weight:800;color:#80481e;text-decoration:underline;text-underline-offset:3px}
.admin .guide-notice{font-size:13px;line-height:1.55;padding:12px 14px;border:1px solid #ebd1b4;background:#fff9f0;border-radius:10px;color:#694d36}
.admin .guide-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:15px}
.admin .guide-link{font-size:13px;font-weight:750;color:#79461c;margin-left:auto;text-decoration:underline}
.admin .module-accordion{
  background:#fff;
  border:1px solid #e2d9cf;
  border-radius:14px;
  margin-bottom:13px;
  overflow:hidden;
  min-width:0;
  scroll-margin-top:16px;
  box-shadow:0 3px 12px #3c2a1810;
}
.admin .module-accordion>summary{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 18px;
  list-style:none;
  color:#302923;
  user-select:none;
}
.admin .module-accordion>summary::-webkit-details-marker{display:none}
.admin .module-accordion>summary:after{content:"+";font-size:25px;color:#865e3b;font-weight:500;line-height:1;margin-left:4px}
.admin .module-accordion[open]>summary:after{content:"−"}
.admin .module-accordion[open]>summary{background:#fbf6f1;border-bottom:1px solid #eaddd0}
.admin .module-accordion .module-number{
  flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  min-width:44px;height:43px;border-radius:10px;
  color:#885129;background:#f5e8d8;font-weight:850;font-size:15px
}
.admin .module-heading{display:flex;flex-direction:column;gap:3px;flex:1}
.admin .module-heading strong{font-size:17px}
.admin .module-heading small{color:#766d64;font-size:12px;font-weight:400;line-height:1.4}
.admin .module-state{flex:0 1 auto;max-width:32%;font-size:12px;color:#665d53;background:#f4f0ea;border-radius:99px;padding:6px 10px;text-align:center}
.admin .module-accordion>.panel{border:none;box-shadow:none;border-radius:0;margin:0;padding:20px;background:#fff}
.admin .grid-two{align-items:start}
.admin .grid-two>.module-accordion{margin-bottom:13px}
.admin .module-accordion>.panel h2{color:#66401e}
.admin .guide-steps li::marker{color:#a27444;font-weight:900}
@media(max-width:980px){
  .admin .guide-steps{grid-template-columns:1fr}
}
@media(max-width:640px){
  .admin .guide-panel{padding:16px}
  .admin .guide-head{flex-direction:column}
  .admin .guide-progress{align-self:stretch;text-align:left}
  .admin .module-heading strong{font-size:15px}
  .admin .module-accordion>summary{padding:12px 10px;gap:8px}
  .admin .module-state{max-width:36%;font-size:11px}
  .admin .module-accordion>.panel{padding:12px}
  .admin .guide-link{margin-left:0}
  .admin .button-grid button{flex:1}
}

/* Fixed re-entry/add-on settings: count-only operator controls. */
.admin .chip-rates{
  margin:12px 0;
  padding:11px 14px;
  border:1px solid #e4d2be;
  border-radius:9px;
  background:#fff9f2;
  color:#604425;
  font-size:13px;
  font-weight:750;
}
.admin .chips-derived{
  display:block;
  margin-top:5px;
  color:#756857;
  font-size:11px;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.admin #chips-settings-modal{width:min(92vw,560px)}
.admin #chips-settings-modal form{display:grid;gap:18px}
.admin #chips-settings-modal label{
  font-size:14px;
  color:#46362b;
  font-weight:700;
}
.admin #chips-settings-modal input{width:100%;font-size:17px}
.admin #chips-settings-modal label:has(input:disabled){opacity:.58}
.admin #chips-settings-modal form button{justify-self:start}

/* Compact animated Jack remains visible on every legacy broadcast scene.
 * GREEN and BLUE render their own full-size mascot and hide this corner layer. */
.projector .show-jack-persistent{
  position:absolute;
  right:1.6vw;
  bottom:4.3vh;
  width:clamp(75px,8vw,150px);
  max-height:19vh;
  pointer-events:none;
  z-index:12;
  opacity:.86;
  background:transparent;
  filter:drop-shadow(0 4px 9px #041d22b3);
}
.projector .show-jack-persistent[hidden]{display:none!important}
.projector .show-jack-persistent img{
  display:block;width:100%;height:auto;max-height:19vh;object-fit:contain;
  background:transparent;border:0;
}
