/* لعبة السجن — dark prison look: stone walls, iron cell doors, bars */
:root{--bg:#0e1014;--wall:#1a1d23;--stone:#23262d;--iron:#5b616b;--iron2:#8a919c;--ink:#ece8df;--muted:#9a978f;--line:#2f333b;--gold:#e9b949;--A:#4a8cff;--B:#ff5a4f;--green:#3fbf6a;--red:#e3342f;color-scheme:dark;font-family:"Segoe UI",Tahoma,system-ui,sans-serif}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink)}
body{min-height:100vh;user-select:none;background:
  radial-gradient(ellipse at 50% -10%,#3a2f1c55,transparent 55%),
  repeating-linear-gradient(0deg,#ffffff05 0 2px,transparent 2px 46px),
  repeating-linear-gradient(90deg,#00000030 0 2px,transparent 2px 92px),
  linear-gradient(#14161b,#0b0c0f) fixed}
.page{width:min(100%,980px);margin:auto;padding:max(10px,env(safe-area-inset-top)) 16px max(26px,env(safe-area-inset-bottom))}
.topline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.topline .brand-line{margin:0;min-width:0}
.icon{flex:none;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#1c1f25;color:var(--ink);font-size:17px;cursor:pointer}
.sinan-credit{margin:22px auto 0;text-align:center;color:#6f6c66;font-size:11px;letter-spacing:1.5px;font-weight:800}
.sinan-credit b{color:var(--gold);font-size:14px;letter-spacing:2px}

.title{position:relative;overflow:hidden;margin:0 0 12px;padding:16px 12px;border:1px solid #3a3e46;border-radius:16px;text-align:center;background:linear-gradient(#22252c,#16181d)}
.title .bars{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 34px,#00000055 34px 40px,#ffffff10 40px 41px);pointer-events:none}
.title h1{position:relative;margin:0;font-size:30px;letter-spacing:.5px;text-shadow:0 3px 0 #000}
.title p{position:relative;margin:4px 0 0;color:var(--muted);font-size:14px}
.watch-bar{margin:0 0 12px;padding:9px 12px;border:1px solid #3c5a3c;border-radius:12px;background:#132016;color:#9fe3a8;text-align:center;font-size:14px}
.watch-bar b{color:#fff;letter-spacing:2px}

.btn{border:0;border-radius:12px;font:inherit;font-weight:800;cursor:pointer;transition:transform .12s,opacity .2s}
.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.45;cursor:default}
.btn-main{display:block;width:100%;padding:16px;background:linear-gradient(#f2c45a,#c8952a);color:#1b1408;font-size:20px;box-shadow:0 4px 0 #7a5a17}
.btn-ghost{padding:11px 14px;border:1px solid var(--line);background:#1c1f25;color:var(--ink);font-size:15px}
.btn-live{padding:11px 14px;background:#1f6f3a;color:#fff;font-size:15px}

/* setup */
.teams{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:start}
.vs{align-self:center;color:var(--gold);font-weight:900;font-size:18px}
.team-card{min-width:0;padding:10px;border:2px solid var(--c);border-radius:14px;background:#171a20;text-align:center}
.team-card[data-team="A"],.score-team[data-team="A"],.roster[data-team="A"],.cell[data-team="A"]{--c:var(--A)}
.team-card[data-team="B"],.score-team[data-team="B"],.roster[data-team="B"],.cell[data-team="B"]{--c:var(--B)}
.team-flag{font-size:20px}
.team-name{width:100%;height:40px;margin:4px 0 8px;padding:0 8px;border:1.5px solid var(--c);border-radius:8px;background:#0f1115;color:var(--c);font:inherit;font-size:16px;font-weight:800;text-align:center;user-select:text}
.member-form{display:flex;gap:4px}
.member-form input{flex:1;min-width:0;height:38px;padding:0 8px;border:1.5px solid #3a3e46;border-radius:8px;background:#0f1115;color:var(--ink);font:inherit;font-size:15px;user-select:text}
.member-form button{flex:none;width:38px;border:0;border-radius:8px;background:var(--c);color:#fff;font-size:20px;cursor:pointer}
.count{display:block;margin-top:6px;color:var(--muted);font-size:12px}
.members{list-style:none;margin:6px 0 0;padding:0;max-height:240px;overflow:auto}
.members li{display:flex;align-items:center;gap:6px;padding:4px 2px;font-size:15px;border-bottom:1px dashed #2a2d34}
.members li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start}
.members li button{flex:none;width:24px;height:24px;border:0;border-radius:50%;background:#3a1f1f;color:#ff9a8f;font-size:16px;line-height:1;cursor:pointer}
.members .empty{justify-content:center;color:var(--muted);font-size:13px;border:0}
.pick-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:14px 0 4px;color:var(--muted);font-size:15px}
.pick-row button{padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:#1c1f25;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.pick-row button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#1b1408;font-weight:800}
.hint{margin:6px 0 14px;text-align:center;color:var(--muted);font-size:12px}

/* score */
.score{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:stretch;margin-bottom:10px}
.score-team{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 10px;padding:8px;border:2px solid var(--c);border-radius:12px;background:#15181d;font-size:14px;transition:box-shadow .3s}
.score-team.turn{box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 35%,transparent),0 0 22px color-mix(in srgb,var(--c) 40%,transparent)}
.s-name{width:100%;text-align:center;color:var(--c);font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-mid{display:grid;place-items:center;align-content:center;min-width:64px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#111317}
.timer{font-size:20px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}
.timer.low{color:var(--red);animation:blink 1s infinite}
@keyframes blink{50%{opacity:.4}}
.score-mid small{color:var(--muted);font-size:11px}
.turn-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-bottom:12px;padding:10px;border-radius:12px;background:#1b1e24;border:1px solid var(--line);text-align:center;font-size:17px;font-weight:800}
.turn-bar .who{color:var(--c)}
.key-btn{padding:8px 12px;border:0;border-radius:10px;background:var(--gold);color:#1b1408;font:inherit;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 3px 0 #7a5a17}

/* doors */
.doors{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
@media(min-width:620px){.doors{grid-template-columns:repeat(6,1fr)}}
@media(min-width:900px){.doors{grid-template-columns:repeat(8,1fr)}}
.door{position:relative;aspect-ratio:3/4;padding:0;border:0;border-radius:8px 8px 4px 4px;background:#07080a;perspective:420px;cursor:pointer;box-shadow:inset 0 0 18px #000,0 4px 0 #000}
.door:disabled{cursor:default}
.door .inside{position:absolute;inset:6px;display:grid;place-items:center;align-content:center;gap:2px;border-radius:4px;background:radial-gradient(circle at 50% 40%,#3b3220,#120f0a);font-size:30px}
.door .inside small{font-size:10px;color:#c9c2b0;font-weight:700}
.door .leaf{position:absolute;inset:0;border-radius:8px 8px 4px 4px;transform-origin:right center;transition:transform .7s cubic-bezier(.3,.7,.3,1);
  background:
    radial-gradient(circle at 10px 10px,#c3c8d0 0 2px,transparent 2.5px) 0 0/calc(100% - 14px) calc(100% - 14px),
    linear-gradient(90deg,#444a53,#6e7580 45%,#565c66 55%,#3b4048);
  border:2px solid #2a2e35;box-shadow:inset 0 0 0 3px #00000040;backface-visibility:hidden}
.door .leaf .win{position:absolute;left:22%;right:22%;top:12%;height:22%;border-radius:3px;background:repeating-linear-gradient(90deg,#11131a 0 5px,#8a919c 5px 8px);box-shadow:inset 0 0 6px #000}
.door .leaf .plate{position:absolute;left:50%;top:48%;transform:translateX(-50%);min-width:30px;padding:2px 6px;border-radius:4px;background:#d6c27a;color:#2a1f05;font-weight:900;font-size:15px;box-shadow:0 2px 0 #6b5a20}
.door .leaf .knob{position:absolute;left:10%;top:62%;width:9px;height:9px;border-radius:50%;background:#c9a64a;box-shadow:0 1px 0 #000}
.door:not(:disabled):hover .leaf{filter:brightness(1.15)}
.door.open .leaf{transform:rotateY(-104deg)}
.door.used{opacity:.55}
.door.fresh .inside{animation:glow 1s ease}
@keyframes glow{from{box-shadow:0 0 30px #ffd56b}to{box-shadow:none}}

/* jail */
.jail{margin-bottom:14px;padding:12px;border:1px solid #3a3e46;border-radius:14px;background:#14161b}
.jail h2,.log-box h2{margin:0 0 8px;font-size:17px}
.jail-cells{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cell{position:relative;min-height:92px;padding:8px 8px 10px;border-radius:10px;background:#0b0c10;overflow:hidden;border:1px solid color-mix(in srgb,var(--c) 45%,#222)}
.cell:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 16px,#9aa1ab 16px 19px,#4d525a 19px 21px);opacity:.55}
.cell-name{display:block;color:var(--c);font-weight:800;margin-bottom:4px}
.inmates{position:relative;display:flex;flex-wrap:wrap;gap:4px}
.inmate{padding:3px 7px;border-radius:6px;background:#2a2116;color:#f1d9a0;font-size:13px;font-weight:700}
.inmate.new{animation:drop .5s ease}
@keyframes drop{from{transform:translateY(-14px);opacity:0}}
.cell .none{color:var(--muted);font-size:12px}

/* rosters */
.rosters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.roster{padding:10px;border:1px solid var(--line);border-radius:12px;background:#15181d}
.roster h3{margin:0 0 6px;color:var(--c);font-size:15px}
.roster ul{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto}
.roster li{display:flex;align-items:center;gap:6px;padding:4px 2px;border-bottom:1px dashed #262930;font-size:14px}
.roster li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roster li.jail span{color:#8b867c;text-decoration:line-through}
.roster li.now{background:color-mix(in srgb,var(--c) 18%,transparent);border-radius:6px}

/* log */
.log-box{margin-bottom:14px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#121418}
.log{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto;font-size:14px;line-height:1.5}
.log li{padding:5px 4px;border-bottom:1px solid #1f2228}
.log li:first-child{animation:drop .4s ease}
.log li i{font-style:normal;color:var(--muted);font-size:12px;margin-inline-start:6px}
.log .bad{color:#ffb4ab}.log .good{color:#a8f0b8}.log .gold{color:#f5d68a}

.host-tools{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.live-box{margin-top:10px;padding:10px;border:1px solid #2f5a3a;border-radius:12px;background:#112016;text-align:center}
.live-box small{color:#9fe3a8}
.live-link{display:flex;gap:6px;margin-top:6px}
.live-link input{flex:1;min-width:0;height:40px;padding:0 10px;border:1px solid #2f5a3a;border-radius:8px;background:#0b130d;color:#fff;font:inherit;direction:ltr;user-select:text}
.live-link button{padding:0 14px;border:0;border-radius:8px;background:#1f6f3a;color:#fff;font:inherit;font-weight:800;cursor:pointer}

/* overlays */
.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:16px;background:#000a;backdrop-filter:blur(3px)}
.overlay[hidden]{display:none}
.event-card{position:relative;width:min(100%,360px);padding:24px 20px 20px;border:2px solid #4a4f58;border-radius:18px;background:linear-gradient(#22252c,#15171c);text-align:center;box-shadow:0 20px 60px #000c;animation:pop .45s ease}
.event-card.bad{border-color:var(--red)}.event-card.good{border-color:var(--green)}.event-card.gold{border-color:var(--gold)}
.ev-door{display:inline-block;margin-bottom:4px;padding:2px 10px;border-radius:6px;background:#d6c27a;color:#2a1f05;font-weight:900}
.ev-icon{display:block;font-size:64px;line-height:1.1;animation:pop .5s ease}
.event-card h2{margin:6px 0 6px;font-size:24px;overflow-wrap:anywhere}
.event-card p{margin:0 0 16px;color:#cfcac0;font-size:16px;line-height:1.6;overflow-wrap:anywhere}
.event-card small{color:var(--muted)}
.event-card .btn{margin-top:8px;width:100%}
.event-card.win h2{color:var(--gold);font-size:30px}
@keyframes pop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.04);opacity:1}100%{transform:scale(1)}}
.shake{animation:shk .5s ease}
@keyframes shk{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.viewer .host-tools,.viewer #useKey,.viewer #evOk{display:none!important}
.viewer .door{cursor:default}
@media(max-width:380px){.title h1{font-size:25px}.score-team{font-size:12px;gap:2px 6px}.door .inside{font-size:24px}.team-card{padding:8px 6px}}
@media(prefers-reduced-motion:reduce){.door .leaf{transition:none}.timer.low{animation:none}}
.btn[hidden],.viewer #again,.viewer #edit{display:none!important}
