/* Common controls across the replay, event picker and account/coach panels. */
:focus-visible { outline:2px solid #80c2ff;outline-offset:3px; }
#panel.hidden { visibility:hidden; }
.modal { position:fixed;top:var(--visible-top,0px);bottom:auto;height:var(--visible-height,100dvh); }
.modal-card { box-sizing:border-box;width:min(620px,calc(100vw - 24px));max-width:none;max-height:calc(var(--visible-height,100dvh) - 24px);padding:0 18px 18px;overscroll-behavior:contain; }
.modal-heading { position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#101722;padding:12px 0;border-bottom:1px solid #283747;margin-bottom:12px; }
.modal-heading h3 { margin:0; }.modal-heading .btn { min-width:44px;min-height:44px; }
.modal-card input:not([type=checkbox]):not([type=file]),.modal-card select { min-width:0;max-width:100%; }
.modal-card .row { flex-wrap:wrap; }
.modal-card label.field-label { display:block;font-size:13px;color:#aebfd0;margin:12px 0 4px; }
.session-search-row { display:flex;align-items:center;gap:12px; }
#sessionSearch { width:100%;min-height:44px;background:#0b111a;color:#edf4fa;border:1px solid #405266;border-radius:8px;padding:10px;font:inherit;font-size:16px; }
#sessionCount { white-space:nowrap;font-size:12px; }
#modalSessions .subcard .session-list { max-height:min(40dvh,380px);overscroll-behavior:contain; }
.session-item { padding:0;align-items:stretch;gap:4px; }
.session-open { display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;min-height:44px;padding:12px 8px;color:inherit;text-decoration:none; }
.session-open .sname { overflow-wrap:anywhere;line-height:1.35; }
.session-item .sdel { display:none;align-self:center;flex-shrink:0; }
.manage-events .sdel { display:block; }
.session-group { padding:10px 8px 0;font-size:12px; }
#sessionManage { margin-top:8px;font-size:12px;min-height:44px; }
#sessionManage[aria-pressed=true] { border-color:#80c2ff; }
.session-create { margin-top:12px;border:1px solid #35485a;border-radius:10px;padding:0 10px; }
.session-create summary { min-height:48px;align-content:center;cursor:pointer;font-size:14px; }
#sourcesRow { padding-bottom:10px; }
#coachMsgs { min-height:0;overflow-wrap:anywhere;overscroll-behavior:contain; }
#coachPanel .cp-input { flex-shrink:0; }
#coachPanel .cp-input textarea { min-width:0;min-height:64px;max-height:160px;font-size:16px; }
#coachPanel .cp-head { flex-shrink:0; }
#coachPanel pre { max-width:100%;overflow-x:auto; }
.pilot .psel-hit { display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;flex-shrink:0;cursor:pointer; }
.pilot .psel-hit input { margin:0; }
@media (pointer:coarse), (max-width:1100px) {
  #panel { width:340px;max-width:calc(100vw - 16px); }
  #panel.hidden { transform:translateX(calc(-100% - 16px)); }
  #panelToggle:not(.collapsed) { left:min(354px,calc(100vw - 52px)); }
  .pilot { display:grid;grid-template-columns:44px 22px 12px minmax(0,1fr);gap:3px 6px;padding:5px 2px; }
  .pilot .psel-hit { grid-column:1;grid-row:1 / 3; }
  .pilot .rank-badge { grid-column:2;grid-row:1; }
  .pilot .dot { grid-column:3;grid-row:1; }
  .pilot .pname { grid-column:4;grid-row:1;min-width:0;white-space:normal;overflow-wrap:anywhere; }
  .pilot .ptele { grid-column:2 / 4;grid-row:2; }
  .pilot .plive { grid-column:4;grid-row:2;text-align:left; }
  .pilot .ptele,.pilot .plive { font-size:11px; }
  #trailSlider { min-height:44px; }
  #coachPanel { top:calc(var(--visible-top,0px) + 62px);bottom:auto;height:calc(var(--visible-height,100dvh) - 140px);min-height:150px; }
  .modal-card .btn { min-height:44px; }
}
@media (max-width:600px) {
  .modal-card { padding:0 12px 12px; }
  #coachPanel { left:8px;right:8px;width:auto;height:calc(var(--visible-height,100dvh) - 76px); }
  .modal-card .row>.btn.grow { min-width:120px; }
}

#mapStatus { position:absolute;z-index:19;top:calc(64px + env(safe-area-inset-top));right:12px;max-width:min(360px,calc(100vw - 24px));border:1px solid #3d5265;border-radius:9px;background:#101d2bf2;color:#d4e6f6;padding:8px 10px;font-size:12px;line-height:1.4; }
#mapStatus .map-actions { display:flex;gap:6px;flex-wrap:wrap;margin-top:6px; }
#mapStatus .btn { min-height:44px;font-size:12px;padding:6px 8px; }
body.review-mode #mapStatus { top:calc(124px + env(safe-area-inset-top));right:calc(var(--review-side) + 12px); }
body.review-left.review-mode #mapStatus { right:12px; }
body.cinema #mapStatus { top:12px; }
