*{box-sizing:border-box}body{margin:0;background:#101114;color:#f5f5f5;font-family:Arial,Helvetica,sans-serif}main{max-width:1100px;margin:0 auto;padding:24px}.card{background:#1a1c21;border:1px solid #30333b;border-radius:18px;padding:22px;margin-bottom:18px;box-shadow:0 12px 30px #0003}.hero{max-width:600px;margin:12vh auto}.logo{font-weight:900;font-size:38px;letter-spacing:2px}.logo span,.code{color:#ffca28}.logo.small{font-size:23px}.tag{color:#b9bdc7;margin-top:4px;margin-bottom:26px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}button{width:100%;padding:15px;border:0;border-radius:11px;background:#343842;color:#fff;font-weight:800;font-size:15px;cursor:pointer;margin:5px 0}.primary{background:#ffca28;color:#171717}button:hover{filter:brightness(1.08)}input,select,textarea{width:100%;padding:12px;border-radius:10px;border:1px solid #3b3e47;background:#101114;color:white;font-size:15px;margin:6px 0 12px}textarea{min-height:92px;resize:vertical;font-family:inherit}label{color:#b9bdc7;font-size:12px}.hidden{display:none!important}.error{color:#ff7d7d}.timer{font-size:48px;font-weight:900;text-align:center;margin:18px 0;color:#ffca28}.mission{font-size:19px;line-height:1.45}.teamrow,.subrow{padding:9px 2px;border-bottom:1px solid #30333b}.approved{color:#7ce38b}.rejected{color:#ff7777}.pending{color:#ffca28}.photo{max-width:100%;max-height:380px;border-radius:12px;margin-top:10px}.review{display:flex;gap:8px}.review button{padding:9px 10px;font-size:12px}.upload{margin-top:18px}.success{text-align:center;padding:20px;font-size:20px;color:#7ce38b}.uploadhelp,.muted{color:#969aa5;line-height:1.4}.or{text-align:center;color:#777;margin:-6px 0 7px}.fileinfo{font-size:13px;color:#b9bdc7;word-break:break-word}button:disabled{opacity:.5;cursor:not-allowed;filter:none}.backbtn,.rolebtn{width:auto;background:transparent;border:1px solid #494d58;color:#d7d9df;padding:8px 11px;font-size:12px;margin:0 0 12px}.rolebtn{display:block;margin:6px 0 0 auto}.scorebadge{display:inline-block;margin-top:5px;padding:5px 9px;border-radius:999px;background:#2b2e35;color:#ffca28;font-size:12px;font-weight:800}.standingrow{display:flex;align-items:center;gap:8px;padding:8px 5px;border-bottom:1px solid #30333b;font-size:13px}.standingrow.mine{background:#252932;border-radius:10px}.rank{width:30px}.standingname{flex:1}.pointsline{color:#ffca28;font-weight:800}.pointpill{display:inline-block;margin-left:5px;padding:3px 7px;border-radius:999px;background:#30343d;color:#ffca28;font-size:11px}.settingsrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}.challenge{padding:12px;border:1px solid #343842;border-radius:12px;margin:8px 0}.challenge h4{margin:0 0 5px;font-size:14px}.challenge p{color:#bfc2ca;line-height:1.35;font-size:12px;margin:0 0 9px}.smallbtn{padding:10px;font-size:12px}.livecreator{border-color:#665416}.empty-state{color:#969aa5;padding:20px;text-align:center}

/* Desktop Game Master console */
.dashboard-shell{position:fixed;inset:0;background:#101114;padding:12px;display:flex;flex-direction:column;overflow:hidden;z-index:5}.dashboard-shell main{max-width:none}.dash-topbar{height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;border:1px solid #30333b;background:#181a1f;border-radius:14px;padding:8px 14px;margin-bottom:10px;flex:0 0 auto}.dash-sub{font-size:11px;color:#8f949f}.codebox{text-align:center;background:#24272e;border-radius:10px;padding:6px 18px}.codebox span{display:block;font-size:10px;color:#989ca6;text-transform:uppercase;letter-spacing:1px}.codebox strong{font-size:23px;color:#ffca28;letter-spacing:3px}.top-role{justify-self:end;margin:0}.dashboard-grid{display:grid;grid-template-columns:minmax(300px,1.05fr) minmax(300px,.95fr) minmax(360px,1.25fr);gap:10px;min-height:0;flex:1}.dash-panel{min-height:0;background:#1a1c21;border:1px solid #30333b;border-radius:14px;display:flex;flex-direction:column;overflow:hidden}.panel-head{min-height:58px;display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #30333b;flex:0 0 auto}.panel-head h2{font-size:16px;margin:0}.panel-head p{font-size:11px;color:#8f949f;margin:3px 0 0}.panel-scroll{overflow:auto;min-height:0;padding:10px;scrollbar-width:thin}.subsection{border-bottom:1px solid #2d3037;padding-bottom:10px;margin-bottom:10px}.subsection:last-child{border-bottom:0;margin-bottom:0}.subsection h3{font-size:13px;margin:0 0 7px;color:#e6e8ed}.split-mini{display:grid;grid-template-columns:1fr 1.25fr;gap:10px}.live-round{position:relative;padding:10px 72px 10px 10px;border:1px solid #373b44;border-radius:10px;margin-bottom:7px;background:#22252b;font-size:12px}.live-meta{margin-top:5px;color:#aeb2bc;font-size:11px}.stopbtn{position:absolute;right:8px;top:8px;width:auto;padding:6px 9px;margin:0;background:#4a2d30;font-size:10px}.countbadge{min-width:28px;text-align:center;padding:6px 9px;border-radius:999px;background:#ffca28;color:#171717;font-weight:900;font-size:12px}.submission-card{border:1px solid #343842;border-radius:11px;padding:10px;margin-bottom:10px;background:#202329}.submission-head{display:flex;justify-content:space-between;gap:10px;align-items:start;font-size:12px}.submission-head small{display:block;color:#999ea9;margin-top:2px}.submission-card .photo{width:100%;height:200px;object-fit:contain;background:#121317;margin:8px 0}.submission-foot{display:flex;justify-content:space-between;align-items:center;font-size:11px}.submission-card .review{margin-top:7px}.submission-card .review button{margin:0}.dashboard-shell input,.dashboard-shell select,.dashboard-shell textarea{font-size:12px;padding:9px;margin:4px 0 8px}.dashboard-shell textarea{min-height:75px}.dashboard-shell label{font-size:10px}

@media(max-width:1050px){.dashboard-grid{grid-template-columns:1fr 1fr}.submissions-panel{grid-column:1/-1}.dashboard-shell{position:static;min-height:100vh;overflow:visible}.panel-scroll{overflow:visible}.dash-panel{overflow:visible}.dashboard-grid{min-height:auto}.submission-card .photo{height:auto;max-height:320px}}
@media(max-width:760px){main{padding:14px}.grid2{grid-template-columns:1fr}.hero{margin-top:5vh}.timer{font-size:42px}.logo{font-size:32px}.dashboard-grid{grid-template-columns:1fr}.submissions-panel{grid-column:auto}.dash-topbar{grid-template-columns:1fr auto}.top-role{display:none}.split-mini{grid-template-columns:1fr}.dashboard-shell{padding:8px}}
@media(max-width:500px){.settingsrow{grid-template-columns:1fr}}

/* v0.7: Game Master login & controlled game ending */
.dash-actions{justify-self:end;display:flex;align-items:center;gap:8px}
.dangerbtn{width:auto;background:#9d2d35;color:#fff;border:1px solid #c64952;padding:9px 13px;font-size:12px;margin:0}
.dangerbtn:hover{background:#b33741}
.game-ended{text-align:center;padding:18px 4px}.game-ended h1{margin-top:0}.game-ended p{color:#b9bdc7;line-height:1.5}
#gmLogin{max-width:520px;margin:12vh auto}

/* v0.8 communication */
.dashboard-grid{grid-template-rows:minmax(0,1fr) 245px}
.control-panel{grid-column:1;grid-row:1}.status-panel{grid-column:2;grid-row:1}.submissions-panel{grid-column:3;grid-row:1}
.communication-panel{grid-column:1/-1;grid-row:2;min-height:0}
.communication-grid{display:grid;grid-template-columns:1fr 1fr;min-height:0;height:100%}
.communication-half{min-width:0;min-height:0;display:flex;flex-direction:column}
.communication-half:first-child{border-right:1px solid #30333b}
.communication-body{padding:8px 10px;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.message-compose-row{display:grid;grid-template-columns:170px minmax(220px,1fr) 150px;gap:8px;align-items:start}
.message-compose-row select,.message-compose-row textarea,.message-compose-row button{margin:0}
.message-compose-row textarea{height:64px;min-height:64px;resize:none}
.message-compose-row button{height:40px;padding:8px}
.message-history{min-height:0;overflow:auto;margin-top:7px;border-top:1px solid #30333b;padding-top:5px}
.message-item{padding:6px 8px;margin:4px 0;border-radius:9px;background:#24272e;font-size:12px;line-height:1.35}
.message-item .message-meta{display:flex;justify-content:space-between;gap:8px;color:#979ca7;font-size:10px;margin-bottom:3px}
.message-item.latest{border:1px solid #75651d;background:#2b281b}
.chat-body{gap:6px}
.chat-list{flex:1;min-height:70px;overflow:auto;border:1px solid #30333b;background:#131519;border-radius:10px;padding:7px}
.chat-msg{max-width:85%;padding:6px 8px;border-radius:10px;margin:4px 0;font-size:12px;line-height:1.35;background:#292d35}
.chat-msg.gm{background:#3a341c;border:1px solid #66591e}
.chat-msg.mine{margin-left:auto;background:#263647}
.chat-sender{font-size:10px;font-weight:800;color:#ffca28;margin-bottom:2px}.chat-time{font-size:9px;color:#858a95;margin-left:5px;font-weight:400}
.chat-compose{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}.chat-compose input,.chat-compose button{margin:0}.chat-compose button{width:auto;padding:10px 14px}
.team-communication{display:grid;grid-template-columns:1fr 1fr;gap:18px}.team-communication .card{min-height:260px}.team-chat-card{display:flex;flex-direction:column}.team-chat-card .chat-list{height:250px;flex:none}.team-message-card .message-list{max-height:320px;overflow:auto}
.notice-toast{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:20;background:#ffca28;color:#171717;border-radius:12px;padding:12px 18px;font-weight:900;box-shadow:0 12px 35px #0008;max-width:min(600px,90vw);text-align:center}
@media(max-width:1050px){.dashboard-grid{grid-template-rows:auto}.control-panel,.status-panel,.submissions-panel,.communication-panel{grid-column:auto;grid-row:auto}.communication-panel{grid-column:1/-1}.communication-grid{grid-template-columns:1fr}.communication-half:first-child{border-right:0;border-bottom:1px solid #30333b}.message-compose-row{grid-template-columns:1fr}.communication-body{overflow:visible}.chat-list{max-height:300px}.team-communication{grid-template-columns:1fr}}
@media(max-width:760px){.communication-panel{grid-column:auto}.team-communication{grid-template-columns:1fr}.team-communication .card{min-height:0}.message-compose-row{grid-template-columns:1fr}}

/* v0.9 submissions archive + end presentation */
.submission-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:7px 9px;border-bottom:1px solid #30333b;background:#16181d;flex:0 0 auto}
.tabbtn{margin:0;padding:8px;font-size:11px;background:#2a2d34}.tabbtn.active{background:#ffca28;color:#171717}
.history-round{border:1px solid #353942;border-radius:11px;margin-bottom:9px;overflow:hidden;background:#1f2228}.history-round-title{padding:9px 10px;background:#282b32;font-size:12px;display:flex;justify-content:space-between;gap:8px}.history-round-title small{color:#9ba0aa}.history-items{padding:7px}.history-empty{color:#8f949f;font-size:11px;padding:8px}.history-sub{display:grid;grid-template-columns:86px 1fr auto;gap:8px;align-items:center;padding:6px;border-bottom:1px solid #30333b}.history-sub:last-child{border-bottom:0}.history-sub img{width:86px;height:60px;object-fit:cover;border-radius:7px;background:#111}.history-meta{font-size:11px}.history-meta b{display:block;margin-bottom:3px}.history-actions{min-width:105px}.history-actions button{padding:6px 7px;font-size:9px;margin:2px 0}.export-box{border:1px solid #665416!important;background:#242116;padding:10px;border-radius:11px}.export-links{display:grid;grid-template-columns:1fr 1fr;gap:7px}.export-links a{display:block;text-align:center;text-decoration:none;background:#ffca28;color:#171717;font-weight:900;border-radius:9px;padding:9px;font-size:11px}.export-note{font-size:10px;color:#b9bdc7;line-height:1.4;margin-top:7px}
.speed-settings{margin-top:10px;padding:10px;border:1px solid #3b414d;border-radius:10px;background:#171a20}.speed-preview{margin-top:8px;padding:9px;border-radius:8px;background:#242832;font-weight:700;line-height:1.6}.smalltext{font-size:.82rem}.text-answer-box{padding:14px;border-radius:12px;background:#f4f6f9;color:#15171a;font-size:1.15rem;font-weight:700;word-break:break-word}.submission-answer{margin:12px 0}.rankbadge{display:inline-block;padding:4px 8px;border-radius:999px;background:#ffca28;color:#161616;font-weight:800}.answer-input{font-size:1.2rem;padding:14px}.speed-rule{padding:9px 12px;border-radius:9px;background:#fff4c7;color:#392e00;font-weight:700;margin:8px 0}.history-sub.text-sub{display:block;padding:12px}.history-sub.text-sub .history-meta{margin-bottom:8px}


/* v1.1 - manual-only Game Master controls + safe wrapping for long content */
.dashboard-grid > *, .dash-panel, .panel-scroll, .subsection, .live-round,
.submission-card, .submission-head, .history-round, .history-round-title,
.history-sub, .history-meta, .communication-half, .message-item, .chat-msg,
.teamrow, .standingrow { min-width:0; }

/* Long assignments/messages must never force the desktop dashboard wider. */
.mission,
.live-round,
.live-round b,
.live-meta,
.submission-head,
.submission-head b,
.submission-head small,
.text-answer-box,
.history-round-title,
.history-round-title b,
.history-round-title small,
.history-meta,
.message-item,
.message-item .message-meta,
.chat-msg,
.chat-sender,
.teamrow,
.standingname,
.uploadhelp,
.muted,
.fileinfo {
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}

.live-round > div:first-child { min-width:0; overflow-wrap:anywhere; word-break:break-word; }
.live-round .pointpill { white-space:nowrap; }
.manual-only { border-bottom:0; margin-bottom:0; padding-bottom:0; }
.control-panel .panel-scroll { padding-bottom:14px; }
.control-panel textarea { min-height:120px; }

/* With templates removed, give the live game and review area a little more room. */
@media(min-width:1051px){
  .dashboard-grid{grid-template-columns:minmax(290px,.86fr) minmax(330px,1.02fr) minmax(390px,1.25fr)}
}

/* v1.3 - three-column Game Master workspace
   Left: assignments + team messages
   Middle: live game + group chat
   Right: submissions + history */
@media(min-width:1051px){
  .dashboard-grid{
    --gm-col1:27%;
    --gm-col2:30%;
    position:relative;
    grid-template-columns:minmax(250px,var(--gm-col1)) 7px minmax(300px,var(--gm-col2)) 7px minmax(360px,1fr);
    grid-template-rows:minmax(0,1fr);
    gap:4px;
  }
  .gm-stack{
    min-width:0;
    min-height:0;
    display:grid;
    gap:0;
    overflow:hidden;
  }
  .gm-left-stack{
    --gm-left-top:62%;
    grid-column:1;
    grid-row:1;
    grid-template-rows:minmax(260px,var(--gm-left-top)) 7px minmax(145px,1fr);
  }
  .col-resizer-1{grid-column:2;grid-row:1}
  .gm-middle-stack{
    --gm-mid-top:58%;
    grid-column:3;
    grid-row:1;
    grid-template-rows:minmax(190px,var(--gm-mid-top)) 7px minmax(170px,1fr);
  }
  .col-resizer-2{grid-column:4;grid-row:1}
  .submissions-panel{grid-column:5;grid-row:1}

  .control-panel{grid-row:1;min-height:0}
  .left-row-resizer{grid-row:2}
  .announcement-panel{grid-row:3;min-height:0}
  .status-panel{grid-row:1;min-height:0}
  .middle-row-resizer{grid-row:2}
  .chat-panel{grid-row:3;min-height:0}

  .resize-handle{position:relative;z-index:4;background:#252830;border-radius:6px;transition:background .15s ease}
  .resize-handle:hover,.resize-handle.dragging{background:#ffca28}
  .col-resizer{cursor:col-resize;min-width:7px}
  .col-resizer:after{content:'⋮';position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);color:#777;font-size:15px;line-height:1}
  .stack-resizer{cursor:row-resize;min-height:7px}
  .stack-resizer:after{content:'⋯';position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-57%);color:#777;font-size:15px;line-height:1}
  .resize-handle:hover:after,.resize-handle.dragging:after{color:#181818}

  .announcement-panel .communication-body,.chat-panel .communication-body{height:100%;min-height:0}
  .announcement-body{padding:8px 10px;display:flex;flex-direction:column;overflow:hidden}
  .left-message-compose{display:grid;grid-template-columns:minmax(100px,135px) minmax(120px,1fr);grid-template-areas:'target text' 'button button';gap:7px;align-items:stretch}
  .left-message-compose select{grid-area:target;height:58px;margin:0}
  .left-message-compose textarea{grid-area:text;height:58px;min-height:58px;margin:0;resize:none}
  .left-message-compose button{grid-area:button;height:38px;min-height:38px;margin:0;padding:7px 10px;line-height:1.15;white-space:normal;display:flex;align-items:center;justify-content:center;text-align:center}
  .announcement-panel .message-history{flex:1;min-height:0;overflow:auto}
  .chat-panel .chat-body{padding:8px 10px;display:flex;flex-direction:column;overflow:hidden;gap:6px}
  .chat-panel .chat-list{flex:1;min-height:60px;max-height:none}
}

/* Narrower screens fall back to a normal stacked page. */
@media(max-width:1050px){
  .dashboard-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:10px}
  .gm-stack{display:contents}
  .control-panel,.announcement-panel,.status-panel,.chat-panel,.submissions-panel{grid-column:auto;grid-row:auto}
  .submissions-panel{grid-column:1/-1}
  .resize-handle{display:none}
  .announcement-panel .communication-body,.chat-panel .communication-body{overflow:visible}
  .left-message-compose{display:grid;grid-template-columns:1fr;gap:8px}
  .left-message-compose select,.left-message-compose textarea,.left-message-compose button{margin:0}
  .chat-list{max-height:300px}
}
@media(max-width:760px){
  .dashboard-grid{grid-template-columns:1fr}
  .submissions-panel{grid-column:auto}
}

body.resizing-layout{user-select:none;cursor:default}
body.resizing-layout iframe,body.resizing-layout img{pointer-events:none}


/* v1.3.1 - fix middle/left stack placement.
   Child panels must stay inside their own stack grid; inherited dashboard
   grid-column declarations otherwise offset Live spel and Groepschat. */
@media(min-width:1051px){
  .gm-left-stack > .control-panel,
  .gm-left-stack > .announcement-panel,
  .gm-middle-stack > .status-panel,
  .gm-middle-stack > .chat-panel{
    grid-column:1 !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
  }
  .gm-left-stack > .control-panel{grid-row:1 !important;}
  .gm-left-stack > .left-row-resizer{grid-column:1 !important;grid-row:2 !important;}
  .gm-left-stack > .announcement-panel{grid-row:3 !important;}
  .gm-middle-stack > .status-panel{grid-row:1 !important;}
  .gm-middle-stack > .middle-row-resizer{grid-column:1 !important;grid-row:2 !important;}
  .gm-middle-stack > .chat-panel{grid-row:3 !important;}
}


/* v1.3.3 - simple mobile camera flow for teams */
.camera-input-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  overflow:hidden !important;
}
.camera-button{
  width:100%;
  min-height:64px;
  margin:10px 0 14px;
  border:2px solid #ffca28;
  border-radius:14px;
  background:#24272e;
  color:#ffca28;
  font-size:20px;
  font-weight:900;
}
.camera-button:hover{background:#2c3038}
#teamContent .upload .photo{
  display:block;
  width:100%;
  max-height:430px;
  object-fit:contain;
  background:#111318;
  border:1px solid #343842;
  margin:12px 0;
}
#teamContent .upload .photo.hidden{display:none}
#teamContent .upload #sendPhotoBtn{min-height:54px;font-size:17px}

/* v1.3.4 - Live spel active/completed tabs */
.live-round-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 10px}
.live-tab{min-height:34px;border:1px solid #343943;border-radius:9px;background:#292d35;color:#d9dee8;font-weight:800;cursor:pointer}
.live-tab.active{background:#ffca28;color:#111318;border-color:#ffca28}
.completed-round{position:relative;padding:11px 12px;margin:0 0 8px;border:1px solid #363b45;border-radius:11px;background:#22262c;overflow-wrap:anywhere}
.completed-round .pointpill{margin-left:8px}

/* v1.4 - on-demand team location + popup */
.team-location-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.team-location-name{min-width:0;overflow-wrap:anywhere}.team-location-actions{display:flex;gap:5px;flex-shrink:0}
.team-location-btn,.team-location-view{padding:5px 8px;border-radius:8px;font-size:.78rem;font-weight:800;white-space:nowrap}
.team-location-view{background:#2a303a;color:#fff;border:1px solid #46505f}.location-status{font-size:.72rem;margin-left:5px;font-weight:700}.location-status.pending{color:#ffca28}.location-status.approved{color:#69d99a}.location-status.rejected{color:#ff8383}
.location-modal{position:fixed;inset:0;z-index:10000;background:#000b;display:flex;align-items:center;justify-content:center;padding:20px}.location-modal.hidden{display:none}
.location-dialog{position:relative;width:min(920px,96vw);height:min(720px,92vh);background:#191c21;border:1px solid #3a404a;border-radius:18px;padding:20px;box-shadow:0 24px 80px #000;display:flex;flex-direction:column;gap:12px}
.location-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border-radius:50%;padding:0}.location-dialog h2{margin:4px 50px 0 0}.location-meta{color:#c8ccd5;line-height:1.55}.location-map{flex:1;min-height:380px;width:100%;border:1px solid #3b414b;border-radius:13px;background:#111}.location-actions{display:flex;justify-content:flex-end;gap:8px}.location-actions button{width:auto;margin:0}
@media(max-width:700px){.location-dialog{padding:14px;height:94vh}.location-map{min-height:300px}.location-actions{flex-direction:column}.location-actions button{width:100%}}

/* v1.4.1 - request every team and show all positions on one map */
.teams-location-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.teams-location-head h3{margin:0}.team-location-all-btn{width:auto;margin:0;padding:6px 9px;border-radius:8px;background:#ffca28;color:#141414;font-size:.76rem;font-weight:900;white-space:nowrap}.team-location-row{padding:7px 8px}.location-meta{max-height:170px;overflow:auto;padding-right:4px}.location-summary{margin-bottom:7px;padding-bottom:7px;border-bottom:1px solid #343944}.location-team-line{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid #292d34}.location-team-line span{text-align:right;color:#bfc5d0}.location-map{z-index:1}.team-map-label{background:#171a20!important;color:#fff!important;border:1px solid #ffca28!important;border-radius:7px!important;font-weight:800!important;box-shadow:0 2px 8px #0008!important}.team-map-label:before{border-top-color:#ffca28!important}


/* =========================================================
   CITY CLASH v1.5
   Bibliotheek, multi-team selectie, timers, score tools,
   team alerts en fullscreen fotobeoordeling
   ========================================================= */
.library-open-btn{
  align-self:center;white-space:nowrap;padding:8px 10px;font-weight:800;
  background:#2b3038;border:1px solid #4a505c;color:#f6f7fa;border-radius:9px
}
.timer-row{display:grid;grid-template-columns:95px 1fr;gap:8px;align-items:start;margin-bottom:10px}
.timer-row>input{margin:0}
.timer-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.timer-presets button{min-height:38px;padding:5px 3px;font-size:.76rem;font-weight:800;background:#2b3038;border:1px solid #444b57}
.target-picker-btn{width:100%;margin:0 0 5px;text-align:left;min-height:42px;background:#292e36;border:1px solid #4a505c;color:#f3f5f8}
.target-picker{max-height:170px;overflow:auto;padding:6px;border:1px solid #484e59;border-radius:10px;background:#181b20;margin-bottom:10px}
.target-check{display:flex;gap:8px;align-items:center;padding:7px 5px;border-bottom:1px solid #282d35;cursor:pointer}
.target-check:last-child{border-bottom:0}.target-check input{width:auto;margin:0}.target-check.all{font-weight:900;color:#ffca28}
.creator-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:7px;margin-top:10px}.creator-actions button{margin:0;min-height:45px}

.cc-modal{
  position:fixed;inset:0;z-index:10020;background:rgba(0,0,0,.86);
  display:flex;align-items:center;justify-content:center;padding:22px
}
.cc-modal.hidden{display:none}
.cc-dialog{position:relative;width:min(900px,96vw);max-height:90vh;background:#181b20;border:1px solid #414752;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.modal-x{position:absolute;right:12px;top:10px;z-index:4;width:40px;height:40px;border-radius:50%;padding:0;font-size:18px}
.library-dialog{padding:20px;display:flex;flex-direction:column;overflow:hidden}
.library-dialog h2{margin:0 45px 12px 0}
.library-search{margin:0 0 12px;font-size:1rem}
.library-list{overflow:auto;min-height:160px;padding-right:4px}
.draft-card{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;padding:11px;margin-bottom:8px;border:1px solid #383e48;border-radius:11px;background:#22262d}
.draft-main{cursor:pointer;min-width:0}.draft-main b{font-size:1rem;color:#ffca28}.draft-main p{margin:4px 0 7px;line-height:1.35;overflow-wrap:anywhere}.draft-main small{color:#aeb5c1}
.draft-delete{width:40px;height:40px;padding:0;align-self:center;background:#39272b;border:1px solid #684047}

.team-location-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
.team-location-name{min-width:0}.team-location-name small{display:block;color:#aeb5c1;margin-top:3px}
.score-tools{display:flex;gap:3px}.score-tools button{padding:5px 7px;min-width:34px;font-size:.75rem;font-weight:800;background:#30353e;border:1px solid #4a505b}

.review-photo{cursor:zoom-in;transition:transform .12s ease,box-shadow .12s ease}
.review-photo:hover{transform:scale(1.01);box-shadow:0 0 0 2px #ffca28}
.photo-dialog{
  width:min(1400px,97vw);height:min(900px,94vh);display:grid;
  grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;padding:12px;background:#0d0f12
}
.photo-stage{height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.photo-stage img{max-width:100%;max-height:calc(100% - 54px);object-fit:contain;border-radius:8px}
.photo-caption{width:100%;padding:11px 8px 4px;text-align:center;color:#e6e9ef;overflow-wrap:anywhere}
.photo-nav{height:96px;font-size:46px;padding:0;background:#22262d;border:1px solid #454b56}
.photo-prev{grid-column:1}.photo-stage{grid-column:2}.photo-next{grid-column:3}

@media(max-width:700px){
  .timer-row{grid-template-columns:1fr}.timer-presets{grid-template-columns:repeat(3,1fr)}
  .creator-actions{grid-template-columns:1fr}
  .photo-dialog{grid-template-columns:42px minmax(0,1fr) 42px;padding:5px}
  .photo-nav{height:70px;font-size:34px}
}

/* =========================================================
   CHALLENTRA — public website + authentication
   ========================================================= */
:root{--ch-bg:#0d0f12;--ch-panel:#171a20;--ch-panel2:#20242b;--ch-line:#343a45;--ch-text:#f4f6f8;--ch-muted:#9da5b2;--ch-accent:#ffca28;--ch-accent2:#ffe176}
body{background:var(--ch-bg);color:var(--ch-text)}
.landing-page{min-height:100vh;position:relative;overflow:hidden;background:radial-gradient(circle at 78% 22%,rgba(255,202,40,.15),transparent 27%),radial-gradient(circle at 12% 80%,rgba(255,202,40,.06),transparent 24%),#0d0f12;padding:28px clamp(22px,5vw,80px) 44px}
.landing-page:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(to bottom,black,transparent 80%)}
.landing-nav{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;max-width:1320px;margin:0 auto}
.brand-lockup{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border:2px solid var(--ch-accent);display:grid;place-items:center;font-weight:1000;font-size:21px;transform:rotate(-4deg);box-shadow:5px 5px 0 rgba(255,202,40,.15)}
.brand-name{font-size:18px;font-weight:1000;letter-spacing:.13em}.brand-mini{font-size:9px;letter-spacing:.22em;color:var(--ch-muted);margin-top:2px}
.nav-login{width:auto;margin:0;padding:9px 15px;background:transparent;border:1px solid #3d434d;color:#e7e9ed;font-weight:800}
.landing-hero{position:relative;z-index:1;max-width:1040px;margin:clamp(90px,14vh,150px) auto 0;text-align:center}.hero-kicker{display:inline-flex;padding:7px 11px;border:1px solid rgba(255,202,40,.45);border-radius:999px;color:var(--ch-accent);font-size:11px;font-weight:900;letter-spacing:.24em;background:rgba(255,202,40,.05)}
.landing-hero h1{font-size:clamp(54px,8.3vw,116px);line-height:.87;letter-spacing:-.055em;margin:28px 0 26px;font-weight:1000}.landing-hero h1 span{color:var(--ch-accent)}
.hero-copy{max-width:720px;margin:0 auto;color:#b8bec8;font-size:clamp(17px,2vw,22px);line-height:1.55}.hero-actions{display:flex;justify-content:center;gap:12px;margin:38px auto 48px;flex-wrap:wrap}.hero-actions button{width:auto;min-height:54px;margin:0;padding:0 24px;border-radius:10px;font-weight:1000;letter-spacing:.02em}.cta-main{background:var(--ch-accent);color:#111;border:1px solid var(--ch-accent)}.cta-main span{padding-left:10px}.cta-ghost{background:#1b1f25;color:#f5f6f7;border:1px solid #3b414b}
.hero-steps{max-width:760px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #2f343d;padding-top:22px}.hero-steps>div{display:flex;align-items:center;justify-content:center;gap:9px;color:#aab0ba;font-size:13px}.hero-steps b{color:var(--ch-accent);font-size:11px}.admin-entry{position:absolute;z-index:2;right:20px;bottom:14px;width:auto;margin:0;padding:6px 9px;border:0;background:transparent;color:#626975;font-size:11px}.admin-entry:hover{color:#aeb5bf;background:transparent}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,rgba(255,202,40,.08),transparent 35%),#0d0f12}.auth-card{width:min(460px,94vw);padding:28px;border:1px solid #323842;border-radius:18px;background:linear-gradient(180deg,#1a1e24,#14171c);box-shadow:0 28px 90px rgba(0,0,0,.42)}.auth-card .backbtn{width:auto;margin:0 0 30px;padding:0;background:transparent;border:0;color:#9ca4b0}.auth-brand{font-weight:1000;letter-spacing:.16em;font-size:22px}.auth-role{color:var(--ch-accent);font-size:10px;font-weight:900;letter-spacing:.24em;margin-top:4px}.auth-card h2{font-size:32px;margin:26px 0 6px}.auth-intro{color:var(--ch-muted);line-height:1.5;margin:0 0 24px}.auth-card label{font-size:12px;font-weight:900;color:#cbd0d7;letter-spacing:.04em}.auth-card input{height:48px;background:#0f1216;border:1px solid #353b45;border-radius:9px;color:white}.auth-submit{min-height:50px;margin-top:8px}.code-input{font-size:27px!important;letter-spacing:.2em;text-align:center;font-weight:900}
.admin-page{min-height:100vh;background:#101318}.admin-topbar{height:74px;padding:0 clamp(20px,4vw,60px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2c3139;background:#13161b}.admin-topbar button{width:auto;margin:0}.admin-shell{max-width:1240px;margin:0 auto;padding:48px 24px}.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{font-size:10px;font-weight:1000;letter-spacing:.25em;color:var(--ch-accent)}.admin-heading h1{font-size:42px;margin:5px 0}.admin-heading p{margin:0;color:var(--ch-muted)}.admin-count{padding:8px 12px;border-radius:999px;background:#20252c;color:#cdd2da;font-size:12px;font-weight:800}.admin-grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(460px,1.4fr);gap:18px}.admin-box{border:1px solid #303640;border-radius:15px;background:#171b21;padding:22px}.admin-box h2{margin-top:0}.account-list-box{min-height:420px}.gm-account-list{display:grid;gap:9px;margin-top:14px}.gm-account{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px;border:1px solid #303640;border-radius:11px;background:#1f242b}.gm-account.inactive{opacity:.58}.gm-account-main{display:flex;align-items:center;gap:11px;min-width:0}.account-avatar{width:38px;height:38px;border-radius:9px;background:rgba(255,202,40,.12);color:var(--ch-accent);display:grid;place-items:center;font-weight:1000}.gm-account-main b{display:block}.gm-account-main span{display:block;color:#949ca8;font-size:12px;margin-top:3px}.gm-account-actions{display:flex;gap:6px}.gm-account-actions button{width:auto;margin:0;padding:7px 9px;font-size:12px}.success{color:#6fe0a0;font-weight:700}
@media(max-width:760px){.landing-page{padding:20px}.landing-nav .brand-mini{display:none}.landing-hero{margin-top:80px}.hero-actions{display:grid}.hero-actions button{width:100%}.hero-steps{grid-template-columns:1fr;gap:12px}.hero-steps>div{justify-content:flex-start}.admin-grid{grid-template-columns:1fr}.admin-heading{align-items:flex-start;flex-direction:column}.gm-account{align-items:flex-start;flex-direction:column}.gm-account-actions{width:100%}.gm-account-actions button{flex:1}.brand-name{font-size:15px}}

body > main{max-width:none;padding:0}
#team{max-width:1100px;margin:0 auto;padding:24px}

/* Challentra v1.6.2 - team logout */
.team-top-actions{display:flex;align-items:center;gap:14px}
.team-logout-btn{background:transparent;border:1px solid rgba(255,255,255,.28);color:inherit;padding:9px 13px;border-radius:10px;cursor:pointer;font-weight:700}
.team-logout-btn:hover{border-color:rgba(255,255,255,.55)}
@media(max-width:600px){.team-top-actions{gap:8px}.team-logout-btn{padding:8px 10px;font-size:.88rem}}

/* Challentra v1.7.0 - multiple simultaneous assignments & retries */
.retry-penalty-option{display:flex!important;align-items:flex-start;gap:9px;margin:10px 0;font-weight:650;line-height:1.35}
.retry-penalty-option input{width:auto!important;margin-top:3px;flex:0 0 auto}.retry-penalty-option small{display:block;font-weight:400;opacity:.75}
.open-tasks-header{display:flex;align-items:center;justify-content:space-between;margin:2px 0 12px}.open-tasks-header h2{margin:0}.open-tasks-header span{font-weight:800;opacity:.75}
.team-round-card{margin-bottom:14px}.team-round-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.team-round-head h2{margin:5px 0 0}.open-task-badge{font-size:.72rem;font-weight:900;letter-spacing:.08em;opacity:.7}.compact-timer{font-size:1.45rem;min-width:72px;text-align:right}.retry-warning{border:1px solid rgba(220,60,60,.35);background:rgba(220,60,60,.08);padding:12px;border-radius:12px;margin:12px 0}.retry-points-note{font-size:.85em;opacity:.75}.waiting-review{margin-top:12px}
@media(max-width:600px){.team-round-head{flex-direction:column}.compact-timer{text-align:left}.open-tasks-header{align-items:flex-end}}

/* Challentra v1.7.3 */
.team-gm-name{font-size:.82rem;opacity:.76;margin-top:2px;margin-bottom:5px}


/* Challentra v1.8.0 - challenge levels */
.level-challenge-card{margin-bottom:16px}
.level-challenge-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.level-challenge-head h2{margin-bottom:5px}.level-challenge-head p{margin:0;max-width:720px}
.team-level-badge,.gm-level-badge{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid rgba(255,205,40,.48);background:rgba(255,205,40,.1);border-radius:999px;font-weight:800}
.team-level-badge{padding:9px 13px;font-size:1.02rem}.gm-level-badge{padding:4px 8px;font-size:.76rem;margin-left:7px}
.challenge-level-grid{display:grid;grid-template-columns:repeat(10,minmax(38px,1fr));gap:7px;margin:15px 0 10px}
.challenge-level-btn{min-height:42px;border-radius:10px;font-weight:900;font-size:1rem}
.challenge-level-btn.active{transform:translateY(-1px);box-shadow:0 0 0 2px rgba(255,205,40,.4) inset}
.challenge-level-description{font-weight:700;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.045)}
.team-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:3px}.level-send-btn{font-weight:800}
@media(max-width:700px){.challenge-level-grid{grid-template-columns:repeat(5,1fr)}.level-challenge-head{flex-direction:column}.team-level-badge{align-self:flex-start}}

/* Challentra v1.8.1 - afbeeldingen bij opdrachten */
.challenge-image-picker{border:1px dashed rgba(255,255,255,.2);border-radius:12px;padding:12px;margin-bottom:12px}
.challenge-image-picker input[type=file]{width:100%;margin-bottom:8px}
.challenge-image-preview{display:block;max-width:100%;max-height:260px;object-fit:contain;border-radius:10px;margin:8px auto;background:rgba(0,0,0,.18)}
#customImagePreviewWrap button{margin-top:4px}
.challenge-question-image{display:block;width:auto;max-width:100%;max-height:520px;object-fit:contain;margin:14px auto;border-radius:12px;cursor:pointer;background:rgba(0,0,0,.15)}

/* Challentra v1.9.0 - central game start, timer and standings visibility */
.dash-game-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}
.start-game-btn{background:#ffd21f;color:#151515;border:0;border-radius:12px;padding:11px 16px;font-weight:900;cursor:pointer}.start-game-btn:disabled{opacity:.55;cursor:default}
.game-clock{display:flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:8px 12px;background:rgba(0,0,0,.18)}.game-clock span{font-size:.78rem;opacity:.78}.game-clock strong{font-variant-numeric:tabular-nums;font-size:1.2rem;letter-spacing:.04em}
.team-game-clock{margin:12px auto;max-width:760px;justify-content:center}.team-game-clock strong{font-size:1.55rem}
.standings-toggle-btn{border-radius:10px;padding:9px 12px}.standings-toggle-btn.hidden-state{border-color:#e2a429;background:rgba(226,164,41,.12)}
.standings-hidden-message,.waiting-game{text-align:center;padding:22px 14px}.standings-hidden-message{opacity:.8}
.gm-account-actions select{min-width:105px;padding:8px;border-radius:8px}
@media(max-width:900px){.dash-game-controls{order:3;width:100%;justify-content:center}.dash-topbar{flex-wrap:wrap}.team-game-clock{margin:8px 10px}}

/* Challentra v1.9.1 - admin team limits & game registration */
.max-teams-inline{display:flex;align-items:center;gap:6px;margin:0;padding:0 7px;border:1px solid #343b45;border-radius:8px;color:#aeb5bf;font-size:12px;white-space:nowrap}
.max-teams-inline input{width:58px;margin:0;padding:7px 5px;border:0;background:transparent;text-align:center}
.game-log-box{margin-top:18px}
.game-log-wrap{overflow-x:auto;margin-top:14px}
.game-log-table{min-width:850px;border:1px solid #303640;border-radius:11px;overflow:hidden}
.game-log-head,.game-log-row{display:grid;grid-template-columns:.75fr 1.25fr 1.35fr 1.35fr .9fr .7fr;gap:12px;align-items:center;padding:11px 13px}
.game-log-head{background:#20252c;color:#8f98a4;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.game-log-row{border-top:1px solid #2d333c;font-size:13px}
.game-log-row:nth-child(odd){background:rgba(255,255,255,.012)}
.game-log-row em{color:#ffca28;font-style:normal;font-weight:800}
.gm-game-clock small{display:block;color:#98a1ad;font-size:11px;margin-top:3px}
@media(max-width:760px){.gm-account-actions{flex-wrap:wrap}.max-teams-inline{flex:1}.game-log-box{padding:14px}}

/* v1.9.2 - spelcode permanent zichtbaar voor Game Master */
.gm-join-code-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:190px;padding:10px 18px;border:2px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.055);text-align:center}
.gm-join-code-card>span{font-size:10px;font-weight:900;letter-spacing:.14em;opacity:.68}
.gm-join-code-card>strong{font-size:30px;line-height:1.05;letter-spacing:.12em;margin:4px 0}
.gm-join-code-card>small{font-size:10px;opacity:.72}
.gm-join-code-card.started{opacity:.75}

/* v1.9.3 - spelcode gegarandeerd zichtbaar in de startknop */
.start-game-btn{display:flex;align-items:center;justify-content:center;gap:18px}
.start-game-btn #startGameCode{font-size:15px;letter-spacing:.10em;padding-left:18px;border-left:1px solid rgba(0,0,0,.35)}

/* Challentra v1.9.4 - gecombineerde spelcode/startbalk */
.dash-topbar{
  height:auto !important;
  min-height:64px;
  display:grid !important;
  grid-template-columns:minmax(180px,.8fr) minmax(620px,2.4fr) minmax(150px,.8fr) !important;
  align-items:center !important;
  gap:12px !important;
  padding:8px 12px !important;
  overflow:visible !important;
}

.dash-brand{
  min-width:0;
}

.gm-start-strip{
  min-width:0;
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:10px;
  width:100%;
}

.gm-start-code{
  flex:0 0 205px;
  min-width:205px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid #3a3f48;
  background:#22252b;
  border-radius:11px;
  padding:7px 14px;
  box-sizing:border-box;
}

.gm-start-code>span{
  font-size:10px;
  color:#9aa0aa;
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.12em;
  line-height:1;
}

.gm-start-code>strong{
  color:#ffca28;
  font-size:24px;
  letter-spacing:.14em;
  line-height:1.15;
  margin:3px 0 2px;
}

.gm-start-code>small{
  color:#9aa0aa;
  font-size:10px;
  line-height:1.15;
  text-align:center;
}

.gm-start-meta{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}

.gm-start-meta .game-clock{
  margin:0;
  min-height:46px;
  box-sizing:border-box;
}

.start-game-btn{
  width:auto !important;
  min-width:190px;
  height:46px;
  margin:0 !important;
  padding:0 20px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  line-height:1 !important;
  white-space:nowrap;
  align-self:center;
  box-sizing:border-box;
}

.start-game-btn #startGameCode{
  display:none !important;
}

.standings-toggle-btn{
  height:46px;
  margin:0 !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}

.dash-actions{
  justify-self:end !important;
  align-self:center !important;
}

.dash-actions .dangerbtn{
  margin:0 !important;
  min-height:42px;
}

@media(max-width:1250px){
  .dash-topbar{
    grid-template-columns:minmax(150px,.6fr) minmax(520px,2.6fr) auto !important;
  }
  .gm-start-code{
    flex-basis:175px;
    min-width:175px;
  }
  .start-game-btn{
    min-width:150px;
    padding:0 14px !important;
  }
}

@media(max-width:1000px){
  .dash-topbar{
    grid-template-columns:1fr auto !important;
  }
  .gm-start-strip{
    grid-column:1 / -1;
    order:3;
  }
  .dash-actions{
    grid-column:2;
    grid-row:1;
  }
}

@media(max-width:760px){
  .gm-start-strip{
    flex-direction:column;
  }
  .gm-start-code{
    flex-basis:auto;
    min-width:0;
    width:100%;
  }
  .gm-start-meta{
    flex-wrap:wrap;
    justify-content:center;
  }
}

/* Challentra v1.10.0 - dual-window Game Master */
.gm-open-window-btn{
  margin-top:4px !important;
  padding:5px 9px !important;
  width:auto !important;
  min-height:0 !important;
  border-radius:7px;
  font-size:9px !important;
  font-weight:900;
  white-space:nowrap;
  background:#2a2e35;
  color:#ffcf2f;
  border:1px solid #3a404a;
}
.gm-open-window-btn:hover{background:#343943}

/* Opdrachtenvenster: alleen opdrachtmaker + inzendingen */
.dashboard-shell.gm-view-tasks .dashboard-grid{
  grid-template-columns:minmax(460px,1fr) 8px minmax(600px,1.35fr) !important;
}
.dashboard-shell.gm-view-tasks .gm-left-stack{
  grid-column:1;
  display:block !important;
  min-height:0;
}
.dashboard-shell.gm-view-tasks .control-panel{
  height:100%;
}
.dashboard-shell.gm-view-tasks .announcement-panel,
.dashboard-shell.gm-view-tasks .gm-middle-stack,
.dashboard-shell.gm-view-tasks .col-resizer-1,
.dashboard-shell.gm-view-tasks .left-row-resizer{
  display:none !important;
}
.dashboard-shell.gm-view-tasks .col-resizer-2{
  display:block !important;
  grid-column:2;
}
.dashboard-shell.gm-view-tasks .submissions-panel{
  grid-column:3;
  min-height:0;
}

/* Live venster: teamberichten + live overzicht/chat */
.dashboard-shell.gm-view-live .dashboard-grid{
  grid-template-columns:minmax(330px,.72fr) 8px minmax(650px,1.65fr) !important;
}
.dashboard-shell.gm-view-live .gm-left-stack{
  grid-column:1;
  display:block !important;
  min-height:0;
}
.dashboard-shell.gm-view-live .control-panel,
.dashboard-shell.gm-view-live .submissions-panel,
.dashboard-shell.gm-view-live .left-row-resizer,
.dashboard-shell.gm-view-live .col-resizer-2{
  display:none !important;
}
.dashboard-shell.gm-view-live .announcement-panel{
  display:flex !important;
  height:100%;
}
.dashboard-shell.gm-view-live .col-resizer-1{
  display:block !important;
  grid-column:2;
}
.dashboard-shell.gm-view-live .gm-middle-stack{
  grid-column:3;
  display:grid !important;
  min-height:0;
}

/* Topbar: in opdrachtenvenster live-only bediening compacter/verborgen */
.dashboard-shell.gm-view-tasks #standingsToggleBtn,
.dashboard-shell.gm-view-tasks .dash-actions{
  display:none !important;
}
.dashboard-shell.gm-view-tasks .dash-topbar{
  grid-template-columns:minmax(230px,.8fr) minmax(620px,2.4fr) !important;
}
.dashboard-shell.gm-view-tasks .gm-start-strip{
  justify-content:flex-end;
}

/* Live venster behoudt alle spelbediening */
.dashboard-shell.gm-view-live .dash-topbar{
  grid-template-columns:minmax(230px,.7fr) minmax(650px,2.5fr) minmax(150px,.7fr) !important;
}

@media(max-width:1050px){
  .dashboard-shell.gm-view-tasks .dashboard-grid,
  .dashboard-shell.gm-view-live .dashboard-grid{
    grid-template-columns:1fr !important;
    overflow:auto;
  }
  .dashboard-shell.gm-view-tasks .col-resizer-2,
  .dashboard-shell.gm-view-live .col-resizer-1{display:none !important}
  .dashboard-shell.gm-view-tasks .submissions-panel,
  .dashboard-shell.gm-view-live .gm-middle-stack{grid-column:1}
}

/* Challentra v1.10.1 - uitloggen na spel einde */
.gm-exit-btn{
  width:auto !important;
  margin:0 !important;
  padding:10px 14px !important;
  border-radius:9px;
  background:#2b3139;
  color:#fff;
  border:1px solid #464d57;
  font-weight:800;
  white-space:nowrap;
}
.gm-exit-btn:hover{background:#353c46}
