*{box-sizing:border-box}body{margin:0;background:#07131d;color:#eef4f7;font-family:Arial,sans-serif}.wrap{width:min(760px,94%);margin:34px auto}.card{background:#0d1d29;border:1px solid #1c3547;border-radius:22px;padding:28px;box-shadow:0 18px 55px rgba(0,0,0,.25)}.hero{text-align:center}.brand{letter-spacing:2px;font-weight:800;color:#8db8d2;margin-bottom:18px}.ship img{display:block;width:100%;max-width:520px;height:auto;margin:0 auto 18px;border-radius:18px}.hero h1{font-size:clamp(38px,7vw,64px);line-height:.95;margin:14px 0}.hero p,.quest-text{color:#a9bdc9;line-height:1.55}.top{display:flex;justify-content:space-between;color:#9bb8c9;font-size:14px;gap:12px}.timer{text-align:center;font-size:26px;font-weight:800;margin:16px 0}.progress{height:5px;background:#1a2d3a;border-radius:9px;overflow:hidden}.progress i{display:block;height:100%;background:#e6ad3e}.stage-icon,.next-icon{text-align:center;font-size:50px;margin:28px 0 8px}.card h1{font-size:34px;margin:8px 0 16px}.card h2{margin-top:0}label{display:block;margin:16px 0 7px;color:#bdd0da;font-size:14px}input,textarea,select{width:100%;background:#0a1822;color:#eef4f7;border:1px solid #294252;border-radius:12px;padding:14px;font:inherit}textarea{min-height:100px;resize:vertical}button{width:100%;border:0;border-radius:12px;padding:15px;margin-top:12px;background:#e6ad3e;color:#111;font-weight:800;font-size:16px;cursor:pointer}.secondary{background:#263c4b;color:#fff}.hint-btn{background:#263c4b;color:#fff}.ok{background:#124b31;color:#d9ffe8;padding:13px 15px;border-radius:13px;margin:16px 0;font-weight:700}.bad{background:#4b2020;color:#ffdede;padding:13px 15px;border-radius:13px;margin:16px 0;font-weight:700}.hint{background:#172b38;border-radius:13px;padding:15px;margin-top:12px;color:#e6f0f5}.photo-box{background:#122735;border:1px dashed #426174;border-radius:15px;padding:16px;margin:18px 0}.success-text{color:#9de0b5;font-weight:700}.next-card{text-align:center}.next-location{font-size:30px;font-weight:800;margin:18px 0;color:#f0c15c}.route-note{color:#a9bdc9;margin:18px 0}.drinks-form{display:grid;gap:5px}.drinks-form label{margin:10px 0 2px}.teams{width:100%;border-collapse:collapse;font-size:14px}.teams th,.teams td{padding:10px 7px;border-bottom:1px solid #243c4b;text-align:left;vertical-align:top}.danger{background:#7d3030;color:#fff;max-width:260px}.admin{display:grid;gap:18px}.admin-answer,.drink-admin{padding:12px;border-radius:14px;background:#0a1822;margin-top:12px}.drink-admin{display:grid;gap:2px}.finish-card{text-align:center}.finish-time{font-size:30px;font-weight:800;color:#f0c15c;margin:20px 0}@media(max-width:600px){.wrap{margin:14px auto}.card{padding:20px}.top{font-size:12px}.teams{font-size:12px;display:block;overflow-x:auto}.next-location{font-size:25px}}


/* TV / tournament screen */
.tv-body{background:#050d14;overflow:hidden}
.tv{width:100vw;height:100vh;padding:3vh 3vw;display:flex;flex-direction:column}
.tv-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5vh}
.tv-brand{font-size:clamp(14px,1.2vw,24px);letter-spacing:.18em;font-weight:900;color:#8db8d2}
.tv-head h1{font-size:clamp(32px,4vw,72px);margin:5px 0 0;line-height:1}
.tv-live{font-size:clamp(18px,1.8vw,34px);font-weight:900;display:flex;align-items:center;gap:12px}
.tv-live span{width:14px;height:14px;border-radius:50%;background:#e34b4b;box-shadow:0 0 18px rgba(227,75,75,.8);animation:tvblink 1.2s infinite}
@keyframes tvblink{50%{opacity:.35}}
.tv-board{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1.2vh;min-height:0}
.tv-row{display:grid;grid-template-columns:clamp(50px,5vw,100px) 1fr clamp(170px,18vw,340px);align-items:center;gap:1.5vw;padding:1.5vh 2vw;border:1px solid #1c3547;border-radius:18px;background:#0c1b26;min-height:12vh;transition:.2s}
.tv-row.playing{border-color:#35566b}
.tv-row.finished{border-color:#387352;background:#0d261c}
.tv-row.waiting{opacity:.65}
.tv-rank{font-size:clamp(26px,3vw,58px);font-weight:900;text-align:center;color:#8fa7b5}
.tv-row:first-child .tv-rank{color:#f0c15c}
.tv-team-name{font-size:clamp(24px,2.7vw,52px);font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-activity{margin-top:.6vh;display:flex;align-items:center;gap:12px;font-size:clamp(14px,1.25vw,25px);color:#9fb6c3;white-space:nowrap;overflow:hidden}
.tv-activity>span:last-child{overflow:hidden;text-overflow:ellipsis}
.tv-status{font-weight:900;letter-spacing:.04em}
.tv-status.live{color:#f0c15c}
.tv-status.done{color:#82d49a}
.tv-status.wait{color:#8799a4}
.tv-time{text-align:right;font-size:clamp(34px,4vw,76px);font-weight:900;letter-spacing:.03em;font-variant-numeric:tabular-nums}
.tv-footer{display:flex;justify-content:space-between;color:#617b89;font-size:clamp(11px,.9vw,18px);padding-top:1.5vh}
.tv-empty{font-size:clamp(25px,3vw,50px);text-align:center;color:#718894}
@media(max-width:800px){
 .tv{padding:20px 12px}.tv-row{grid-template-columns:42px 1fr 120px;padding:12px}.tv-team-name{font-size:22px}.tv-time{font-size:28px}.tv-activity{font-size:12px;display:block}.tv-footer{display:none}
}

.tv-foot{white-space:nowrap}.event{font-weight:800}
