/* Original rail remains at its native z-index 5, above marker and HUD pills.
   No rail, camera, swing, club strip or page-overflow rules are overridden. */
.oc-hud { display:contents; font-family:var(--brand,Inter,system-ui,sans-serif); color:#f8fafc; }
body[data-screen="menu"] .oc-hud, .oc-hud[hidden], .oc-hud [hidden] { display:none !important; }
.oc-hud button { font:inherit; color:inherit; cursor:pointer; border:1px solid #ffffff40; border-radius:12px; background:#12352e; padding:8px 12px; min-height:40px; touch-action:manipulation; }
.oc-hud button:disabled { opacity:.5; cursor:default; }
.oc-hud :focus-visible, .oc-active .strokeTile:focus-visible { outline:3px solid #f8d477; outline-offset:3px; }
.oc-active .strokeTile { cursor:pointer; }
.oc-log { position:fixed; z-index:4; right:12px; bottom:calc(240px + env(safe-area-inset-bottom,0px)); border-radius:999px !important; box-shadow:0 3px 14px #0007; font-weight:750 !important; }
.oc-gps { position:fixed; z-index:4; right:12px; top:calc(82px + env(safe-area-inset-top,0px)); max-width:230px; display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:6px; font-size:11px; text-shadow:0 1px 4px #000; }
.oc-gps button { font-size:11px; padding:5px 8px; min-height:32px; border-radius:999px; }
.oc-hud .oc-marker { position:fixed; z-index:4; width:48px; height:48px; min-height:48px; padding:0; transform:translate(-50%,-50%); border:3px solid #fff; border-radius:50%; background:#34d39944; box-shadow:0 0 0 3px #06392a99,0 2px 12px #0008; cursor:grab; touch-action:none; }
.oc-marker::after { content:''; position:absolute; width:8px; height:8px; border-radius:50%; background:white; left:17px; top:17px; }
.oc-marker:active { cursor:grabbing; }
.oc-banner, .oc-editor, .oc-review { position:fixed; box-sizing:border-box; z-index:14; right:12px; left:max(66px,calc(100vw - 440px)); padding:12px; border:1px solid #ffffff40; border-radius:16px; background:#0b252bf2; box-shadow:0 8px 28px #0006; }
.oc-banner { bottom:calc(228px + env(safe-area-inset-bottom,0px)); font-size:13px; }
.oc-detail { font-size:11px; line-height:1.5; color:#d0e4df; margin:6px 0; overflow-wrap:anywhere; }
.oc-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.oc-actions strong { flex:1; }
.oc-hud .oc-primary { background:#167953; }
.oc-editor { top:calc(78px + env(safe-area-inset-top,0px)); left:auto; width:min(278px,calc(100vw - 78px)); }
.oc-stepper { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:8px; margin:10px 0; }
.oc-stepper input { width:100%; box-sizing:border-box; min-height:44px; border:1px solid #ffffff50; border-radius:10px; background:#051b20; color:white; font:700 23px system-ui,sans-serif; text-align:center; }
.oc-stepper button { padding:4px; font-size:23px; }
.oc-review { bottom:calc(174px + env(safe-area-inset-bottom,0px)); max-height:min(430px,58dvh); overflow:auto; overscroll-behavior:contain; touch-action:pan-y; }
.oc-hole-list { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.oc-hole-row { display:grid; grid-template-columns:1fr 44px; align-items:center; gap:3px; padding:5px; border-radius:8px; background:#ffffff0a; font-size:12px; }
.oc-hole-row button { padding:5px; min-height:36px; }
.oc-hole-row small { color:#bbd4cb; grid-column:1/-1; }
.oc-secondary { border-top:1px solid #ffffff25; margin-top:12px; padding-top:8px; font-size:12px; }
.oc-end-confirm { display:flex; flex-wrap:wrap; gap:8px; padding:8px 0; }
.oc-end-confirm span { flex-basis:100%; }
body.oc-active.addressing .oc-log, body.oc-active.addressing .oc-gps,
body.oc-active.inFlight .oc-log, body.oc-active.inFlight .oc-gps { visibility:hidden; }
@media (max-height:560px) { .oc-review { bottom:12px; max-height:65dvh; } .oc-banner { bottom:150px; } }
