:root { --review-side: 332px; --review-bottom: 260px; }
.sr-only { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
[hidden] { display:none !important; }
#topbar { padding-top:env(safe-area-inset-top);height:calc(56px + env(safe-area-inset-top));gap:8px; }
#topbar .brand .beta,#topbar #clockUtc { display:none; }
#topbar .session-name { flex:1;min-width:0;max-width:none; }
#topbar .spacer { display:none; }
#topbar .btn,#reviewMore>summary { min-height:44px;flex-shrink:0; }
#reviewView[aria-pressed=true],#btnDraw[aria-pressed=true] { background:#234463;border-color:#6eb7ff; }
#reviewMore { position:relative; }
#reviewMore>summary { display:flex;align-items:center;padding:8px 14px;border:1px solid #38485b;border-radius:9px;cursor:pointer; }
.review-popover { position:absolute;right:0;top:100%;z-index:60;min-width:220px;padding:10px;display:flex;flex-direction:column;gap:8px;background:#142131;border:1px solid #425467;border-radius:12px;box-shadow:0 10px 30px #0008; }
.review-popover .btn { justify-content:flex-start; }
body.review-mode { --review-side:332px; }
body.review-mode #cesium { top:calc(122px + env(safe-area-inset-top));right:var(--review-side);bottom:calc(var(--review-bottom) + env(safe-area-inset-bottom));left:0;width:auto;height:auto; }
body.review-mode #panel,body.review-mode #panelToggle,body.review-mode #baroBox,body.review-mode #miniMapBox,body.review-mode #followChip { display:none !important; }
body.review-mode #transport { left:12px;right:calc(var(--review-side) + 12px);bottom:calc(32px + env(safe-area-inset-bottom));height:48px; }
body.review-mode #transport .tbtn { min-width:44px;min-height:44px;flex-shrink:0; }
body.review-mode #tBaro,body.review-mode #tMini { display:none; }
body.review-mode #drawPanel { display:flex;align-items:center;gap:8px;top:calc(62px + env(safe-area-inset-top));left:12px;right:calc(var(--review-side) + 12px);width:auto;padding:6px;border:0;background:#101d2b;backdrop-filter:none; }
#drawPanel button,#drawPanel select,#drawPanel summary,#reviewWorkspace button { min-height:44px;min-width:44px;border:1px solid #354b60;border-radius:9px;background:#192d40;color:#eef6ff;font:inherit;cursor:pointer;flex-shrink:0; }
#drawPanel button:disabled,#reviewWorkspace button:disabled { opacity:.4;cursor:default; }
#drawPanel .review-undo { background:#276caf;border-color:#7ab8f1;font-weight:700;padding:0 16px; }
#drawPanel .review-icon { background:transparent;color:#aabed0; }
#drawPanel #reviewTool { max-width:155px;padding:0 7px; }
.review-color { width:44px;height:44px;flex-shrink:0; }
.review-color input { width:44px;height:44px;border:0;padding:5px;background:#192d40;border-radius:9px;cursor:pointer; }
#reviewOptions { position:relative; }
#reviewOptions summary { display:grid;place-items:center;list-style:none; }
.review-popover input[type=range] { width:100%;height:44px; }
.review-gesture-hint { font-size:11px;color:#a9bfd2;line-height:1.3; }
#reviewPanel { position:absolute;z-index:22;top:calc(62px + env(safe-area-inset-top));right:10px;bottom:calc(20px + env(safe-area-inset-bottom));width:312px;background:#101d2b;border:1px solid #2d4052;border-radius:12px;overflow:auto;overscroll-behavior:contain;padding:12px;font-size:13px; }
#reviewPanel header { display:flex;align-items:center;justify-content:space-between;gap:8px; }
#reviewPanel button { padding:7px 10px; }
.review-tabs { display:flex;gap:4px;margin:12px 0;position:sticky;top:-12px;background:#101d2b;padding:8px 0;z-index:1; }
.review-tabs button { flex:1;min-width:0; }
.review-tabs button[aria-pressed=true] { background:#285580 !important; }
.review-page { min-height:100px; }
.review-stat { border-bottom:1px solid #2b4052;padding:10px 0; }
.review-stat>strong { display:block;overflow-wrap:anywhere;margin-bottom:10px; }
.review-stat>div { display:flex;justify-content:space-between;gap:10px;margin:8px 0;align-items:baseline; }
.review-stat>div span { color:#b0c2d3; }
.review-stat b { text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:500; }
.review-note { color:#98aebf;font-size:12px;line-height:1.45; }
.review-pilot { display:flex;gap:10px;align-items:center;min-height:48px;border-bottom:1px solid #2a3b4b;cursor:pointer; }
.review-pilot input { width:24px;height:24px;flex-shrink:0; }
.review-pilot span { overflow-wrap:anywhere; }
.review-save { margin-top:16px;border-top:1px solid #2b4052;padding:8px 0; }
.review-save summary { min-height:44px;display:flex;align-items:center;cursor:pointer; }
.review-save button,.review-save input { width:100%;margin-bottom:8px; }
.review-field { display:block;color:#c0d0dd;margin-top:12px; }
#reviewPanel input:not([type=checkbox]):not([type=range]),#reviewLabelDialog input { width:100%;min-height:44px;background:#172a3b;color:#fff;border:1px solid #405b72;border-radius:8px;padding:8px; }
#reviewStatus { font-size:12px;color:#a4cce8;line-height:1.4;margin:12px 0;overflow-wrap:anywhere; }
.review-page summary { min-height:44px;display:flex;align-items:center;cursor:pointer; }
.review-import { display:block;padding:8px 0; }
.review-import input { font-size:12px; }
.review-camera { display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid #2b4052; }
.review-camera label { width:100%;display:flex;align-items:center;gap:8px; }
.review-camera input { height:44px;min-width:0;flex:1; }
#reviewProfileBox { position:absolute;left:12px;right:calc(var(--review-side) + 12px);bottom:calc(88px + env(safe-area-inset-bottom));height:160px;z-index:18;background:#101d2b;border-radius:10px;padding:5px 8px; }
.review-range { display:flex;align-items:center;gap:8px;height:44px; }
.review-range label { flex:1;display:flex;align-items:center;gap:6px;min-width:0;font-size:12px;color:#a8bfce; }
.review-range input { width:100%;min-width:20px;height:44px; }
.review-profile-plot { position:relative;height:76px; }
#reviewProfile { display:block;width:100%;height:100%;touch-action:none; }
#reviewCursor { position:absolute;top:0;bottom:0;border-left:1px solid #f4c46e;pointer-events:none; }
#reviewCursorLabel { white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:11px;line-height:18px; }
#reviewRangeLabel { font-size:10px;color:#a0b5c9; }
#reviewObjectEditor { border:1px solid #729ab9;border-radius:8px;padding:8px; }
#reviewObjectEditor button { margin:4px 0; }#reviewEditVertices[aria-pressed=true] { background:#285580; }
#reviewLineProfile { width:100%;height:110px; }
#reviewLabelDialog { color:#eef6ff;background:#132537;border:1px solid #607e98;border-radius:14px;width:min(440px,90vw); }
#reviewLabelDialog::backdrop { background:#0008; }
#reviewLabelDialog form>div { display:flex;justify-content:flex-end;gap:8px;margin-top:16px; }
body.review-left #reviewPanel { right:auto;left:10px; }
body.review-left.review-mode #cesium { right:0;left:var(--review-side); }
body.review-left.review-mode #drawPanel,body.review-left.review-mode #reviewProfileBox,body.review-left.review-mode #transport { left:calc(var(--review-side) + 12px);right:12px; }
body.review-panel-collapsed.review-mode { --review-side:0px; }
body.review-panel-collapsed #reviewPanel { display:none; }
body.review-mode #coachPanel { z-index:35;top:64px;bottom:20px;max-height:calc(var(--visible-height,100dvh) - 84px); }
@media (max-width:1100px) { .review-gesture-hint { display:none; } }
@media (max-width:999px) {
  body.review-mode { --review-side:0px; }
  #reviewPanel { box-shadow:0 5px 25px #0009;max-width:calc(100vw - 24px); }
  #reviewPanel { top:calc(126px + env(safe-area-inset-top));bottom:calc(var(--review-bottom) + env(safe-area-inset-bottom)); }
  body.review-mode #cesium { left:0;right:0; }
  body.review-left.review-mode #drawPanel,body.review-left.review-mode #reviewProfileBox,body.review-left.review-mode #transport { left:12px;right:12px; }
  #topbar .brand { font-size:0;gap:0; }.brand img { width:28px;height:28px; }
  #topbar .session-name { font-size:12px; }
}
@media (max-width:600px) {
  #topbar { gap:4px;padding-left:6px;padding-right:6px; }
  #topbar .btn,#reviewMore>summary { padding:6px 9px;font-size:12px; }
  #topbar .session-name { display:none; }
  #topbar .brand { margin-right:auto; }
  #drawPanel { gap:4px !important;left:4px !important;right:4px !important;padding:4px !important; }
  #drawPanel .review-undo { padding:0 8px;font-size:12px; }
  #drawPanel #reviewTool { max-width:86px;font-size:12px; }
  #reviewTogglePanel { font-size:0 !important; }#reviewTogglePanel::after { content:'☷';font-size:20px; }
  #reviewPanel { right:6px; }
  #transport .tspeed { min-width:40px; }body.review-mode #transport .spacer { display:none; }
}
@media (max-height:520px) {
  body.review-mode { --review-bottom:174px; }
  #reviewProfileBox { height:84px;bottom:80px; }.review-profile-plot { height:35px; }
  #reviewRangeLabel,#reviewCursorLabel { display:none; }.review-range { height:39px; }
  body.review-mode #cesium { top:calc(122px + env(safe-area-inset-top)); }
}
@media (pointer:coarse) {
  .btn,.tbtn,.seg button,.upload-btn { min-height:44px;min-width:44px;flex-shrink:0; }
  #panelToggle { width:44px;height:44px; }#followChip button { width:44px;height:44px; }
  #transport { overflow-x:auto;max-width:calc(100vw - 16px); }
  #transport .sel { min-height:44px; }
  .modal-card input,.modal-card select,.pilot-search,#coachPanel textarea { min-height:44px;font-size:16px; }
  .modal-card { max-height:calc(var(--visible-height,100dvh) - 32px);overscroll-behavior:contain; }
  .pilot { min-height:48px; }.pilot .pbtn { min-width:44px;min-height:44px; }
  .pilot .psel { width:24px;height:24px;flex-shrink:0; }
  #coachPanel { max-height:calc(var(--visible-height,100dvh) - 76px); }
  #coachPanel .cp-input { flex-shrink:0; }#coachPanel .cp-input textarea { min-width:0; }
  #coachPanel pre,#coachPanel table { display:block;max-width:100%;overflow-x:auto; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important;transition:none !important; } }

/* Fit controls to the physical viewport; mobile layout must not widen itself. */
html { -webkit-text-size-adjust:100%;text-size-adjust:100%; }
.review-tool-label { min-width:0; }
.review-popover { max-height:calc(var(--visible-height,100dvh) - 136px);overflow-y:auto;overscroll-behavior:contain;max-width:calc(100vw - 16px); }
#reviewPanel header { position:sticky;top:-12px;background:#101d2b;z-index:3;padding:4px 0; }
.review-tabs { position:static; }
body.review-profile-collapsed.review-mode { --review-bottom:88px; }
body.review-profile-collapsed #reviewProfileBox { display:none; }
@media (max-width:600px) {
  body.review-mode #drawPanel { display:grid !important;grid-template-columns:auto 44px minmax(44px,1fr) 44px 44px 44px;gap:4px; }
  #drawPanel #reviewTool { width:100%;max-width:none;padding:0 2px; }
  #drawPanel .review-undo { padding:0 5px;white-space:nowrap; }
  #drawPanel .review-gesture-hint { display:none; }
}
@media (max-height:520px) {
  #reviewPanel { top:calc(62px + env(safe-area-inset-top));bottom:calc(8px + env(safe-area-inset-bottom)); }
  #reviewPanel header { min-height:44px; }
}

#topbar { z-index:40; }
@media (max-height:520px) { #reviewPanel { z-index:26; } }
