.live-panel{margin:28px 0;padding:24px;border:1px solid #ffffff30;border-radius:16px;background:#0b1927}.live-top{display:flex;gap:24px;align-items:center;justify-content:space-between}.live-top p,.live-entry>p{color:var(--muted)}.live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.live-team{padding:20px;background:#132535;border:1px solid #ffffff22;border-radius:12px;border-top:4px solid var(--team)}.live-team h3{display:flex;gap:10px;align-items:center;margin-top:0}.team-dot{display:inline-block;flex-shrink:0;width:20px;height:20px;background:var(--team);border:1px solid #a9b6c7;border-radius:50%;vertical-align:middle}.connection{font-size:12px;color:#d6b47a}.connection.online{color:#8ee8b0}.live-metrics{display:flex;flex-wrap:wrap;gap:16px;font-size:12px}.live-metrics b{display:block;font-size:18px;margin-top:5px}.live-team progress{margin-top:18px;width:100%;accent-color:#ffd16a}.live-access{padding-top:24px}.live-access summary{cursor:pointer}.access-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}code{overflow-wrap:anywhere;color:#ffdc8e}.live-entry{max-width:820px}.live-entry label,#recover-live label{display:block;margin:16px 0}.live-entry form button{margin-top:14px}.action-map{margin:28px 0;display:grid;gap:0}.map-stop{display:flex;gap:18px;padding:15px;border-left:3px solid #576777;margin-left:20px}.map-stop>span{width:32px;height:32px;display:grid;place-items:center;border:1px solid #8797a8;border-radius:50%;background:#162838;margin-left:-33px;flex-shrink:0}.map-stop small{display:block;color:#aebfcb;margin-top:6px}.map-stop.current{border-color:#ffd16a;background:#ffd16a0a}.map-stop.current>span{background:#ffd16a;color:#13212b}.map-stop.done{border-color:#74dfbd}.map-stop.done>span{background:#74dfbd;color:#13212b}.map-stop.locked{opacity:.65}#sync-status{font-size:10px;max-width:280px}@media(max-width:700px){.live-grid,.access-grid{grid-template-columns:1fr}.live-top{align-items:stretch;flex-direction:column}.live-panel{padding:16px}.live-metrics{gap:12px}}
.live-scene{height:420px;min-height:320px;pointer-events:none;margin-bottom:22px}.live-scene .walk-toolbar,.live-scene .walk-interact{display:none!important}.live-scene canvas{outline:none}.live-scene .walk-status{bottom:16px}.live-entry{max-width:960px}@media(max-width:580px){.live-scene{height:300px;min-height:260px}}

.podium{margin:18px 0 22px;padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.03)}
.podium h3{margin:0 0 4px}.podium-stage{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:end;margin-top:14px}
.podium-step{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.podium-step b{font-size:18px}.podium-step small{opacity:.8}.podium-medal{font-size:34px}
.podium-block{width:100%;border-radius:10px 10px 0 0;background:var(--team);color:var(--ink,#111);font-weight:800;font-size:28px;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.35)}
.podium-step.p1 .podium-block{height:120px}.podium-step.p2 .podium-block{height:86px}.podium-step.p3 .podium-block{height:62px}
.podium-step .team-dot{display:none}.podium-rest{margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px;padding-left:20px}
.podium-rest li{min-width:150px}

.live-entry.watch-wide{max-width:1400px}
.watch-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:18px;align-items:start}
.watch-main{min-width:0}
.watch-board{position:sticky;top:12px;padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.03)}
.watch-board h3{margin:0 0 4px}.board-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.board-list li{display:grid;grid-template-columns:34px 22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border-left:6px solid var(--team);background:rgba(255,255,255,.04)}
.board-list li.mine{background:rgba(255,215,100,.14);outline:1px solid rgba(255,215,100,.5)}
.board-list li b{display:block}.board-list li small{display:block;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board-pos{font-weight:800}.board-score{font-weight:800;font-variant-numeric:tabular-nums;font-size:18px}
@media (max-width:900px){.watch-layout{grid-template-columns:1fr}.watch-board{position:static}}

.ready-box{margin:16px 0;padding:16px;border-radius:14px;border:1px dashed rgba(255,255,255,.25);background:rgba(255,255,255,.03)}
.ready-box.all{border:2px solid #22c55e;background:rgba(34,197,94,.08)}
.ready-box h3{margin:0 0 4px}.ready-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ready-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.2);opacity:.45}
.ready-chip.on{opacity:1;border-color:var(--team);background:rgba(255,255,255,.08);font-weight:700}
.ready-chip .team-dot{width:14px;height:14px}
.teacher-fab{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:50;padding:12px 16px;border-radius:999px;font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.45)}

.teacher-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
button.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}
.confirm-box{margin:12px 0;padding:14px 16px;border-radius:12px;border:2px solid #f59e0b;background:rgba(245,158,11,.1)}
.confirm-box p{margin:6px 0 10px}
