/* Larger controls with one representative bird. Coordinates belong to the forest;
   leader lines expose the bounded screen-space offsets used for readability. */
.dynamic-hud .bird-station{z-index:4;isolation:isolate}
.dynamic-hud .bird-station.station-inspected{z-index:10}
.central-orb{position:absolute;left:50%;top:50%;width:54%;height:54%;transform:translate(-50%,-50%);border:1px solid #78cfffaa;border-radius:50%;background:radial-gradient(circle,#061c2cc9,#03111db8 65%,#2b9bda22);box-shadow:inset 0 0 20px #269bd433,0 0 12px #1684bf22;z-index:3;pointer-events:none}
.central-orb::before,.central-orb::after{content:'';position:absolute;inset:8%;border:1px solid #69bfff33;border-radius:50%;pointer-events:none}
.central-orb::after{inset:19% -5%;transform:rotate(-30deg);border-color:#71cfff44}
.station-art{position:absolute;left:50%;top:50%;width:66.6667%;height:66.6667%;transform:translate(-50%,-50%);object-fit:contain;filter:url(#bird-visibility-alpha) drop-shadow(0 2px 2px #000) drop-shadow(0 0 3px #74cfff88);opacity:1}
.station-lost .station-art{opacity:.25;filter:url(#bird-visibility-alpha) grayscale(1)}
.station-active .central-orb{border-color:#a4e3ff;box-shadow:inset 0 0 22px #269bd43d,0 0 14px #1684bf40}
.station-tag{position:absolute;left:50%;top:71%;transform:translateX(-50%);margin-top:0;color:#cfeeff;font:9px/10px var(--mono);letter-spacing:.01em;white-space:nowrap;text-shadow:0 2px 3px #000;pointer-events:none;z-index:4}
.station-tag strong{font-weight:500}
#macroBoard.dynamic-hud .wedge-button{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;padding:0!important;transform:none!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;pointer-events:auto;touch-action:manipulation;opacity:1;color:#d9efff;z-index:2}
.wedge-button svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.wedge-panel{fill:#041a2be6;stroke:#75b9e07a;stroke-width:.7}
.wedge-grid{fill:none;stroke:#5cb8f32b;stroke-width:8;stroke-dasharray:.4 7}
.wedge-risk-rim{fill:none;stroke:var(--risk);stroke-width:4;stroke-linecap:butt;opacity:.9}
#macroBoard.dynamic-hud .wedge-button>span{position:absolute;left:var(--label-x);top:var(--label-y);transform:translate(-50%,-50%);font:18px/1.1 var(--mono);letter-spacing:.015em;color:#e2f4ff;opacity:1;text-shadow:0 1px 3px #000;pointer-events:auto;padding:0;border:0;background:none;box-shadow:none}
#macroBoard.dynamic-hud .wedge-button:disabled{opacity:.82;color:#a9c8dc}
.wedge-button:disabled .wedge-risk-rim{opacity:.6}
.wedge-button:not(:disabled) .wedge-panel{fill:#0b3150ed;stroke:#b4eaff;stroke-width:1.2}
.wedge-button:hover:not(:disabled) .wedge-panel,.wedge-button:focus-visible .wedge-panel{fill:#174b6df5;stroke:#e2f8ff;stroke-width:2}
.wedge-button:focus-visible{outline:0}
.station-inspected .wedge-panel{fill:#0b3150f5;stroke:#b4eaff}
.network-anchor-layer{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}
.anchor-leader{stroke:#74c7f59c;stroke-width:1;stroke-dasharray:3 4}
.anchor-shadow{fill:#020d1880;stroke:#ffffff70;stroke-width:.8}
.anchor-dot{fill:#d6f3ffb8}
.forest-camera-controls{display:flex;gap:8px;margin:8px 0}
.forest-camera-controls button{min-height:44px;flex:1}
.dynamic-hud .bird-light-wave{left:50%;top:50%;width:54%}
@media(max-width:900px){#macroBoard.dynamic-hud .wedge-button>span{font-size:14px}.station-tag{font-size:9px;letter-spacing:.02em}.tag-height{display:none}.forest-instrument-label{display:none}}
@media(max-width:900px) and (max-height:500px){#macroBoard.dynamic-hud .wedge-button>span{font-size:11px}.station-tag{font-size:7px;line-height:8px;top:69%}}

/* Final anchored interface: the bird and radial controls share the source centre. */
.central-orb,.station-active .central-orb{border:1px solid #ffffff66;background:#020a1280;box-shadow:none}
.central-orb::before,.central-orb::after{display:none;content:none}
.network-anchor-layer,.anchor-leader,.anchor-shadow,.anchor-dot,.bird-light-wave{display:none!important}
#macroBoard.dynamic-hud:not([data-phase="arrived"]) .wedge-button{display:none!important}
#macroBoard.dynamic-hud:not([data-phase="arrived"]) .station-tag{display:none}
#macroBoard.dynamic-hud .wedge-button>span{font-size:var(--call-font,12px)!important}
.station-locked .station-art{filter:url(#bird-visibility-alpha) brightness(0) invert(.16);opacity:1}
.station-locked .wedge-panel{fill:#171a1dcc;stroke:#6d727580}
.station-locked .wedge-risk-rim{stroke:#666b70;opacity:.5}
.station-locked .wedge-grid{stroke:#777b7e33}
.station-locked .wedge-button>span,.station-locked .station-tag{color:#92979b!important}
.forest-camera-controls{display:none!important}

.station-art{filter:url(#bird-visibility-alpha) drop-shadow(0 1px 2px #000)}
.entry-skip{position:fixed;top:136px;left:50%;transform:translateX(-50%);z-index:55;min-height:44px;background:#051726e8;font:10px var(--mono)}

.forest-appearance-status{position:absolute;left:50%;top:102px;transform:translateX(-50%);z-index:12;pointer-events:none;color:#bed2c9;background:#071018b8;padding:4px 7px;border:1px solid #89aa9840;border-radius:3px;font:9px var(--mono);letter-spacing:.06em;white-space:nowrap}
@media(max-width:900px){.forest-appearance-status{top:76px;font-size:8px}}

.species-info-card img.species-image-selected{outline:1px solid #d0d3d6;outline-offset:2px}

.wedge-selection{fill:#279affa0;stroke:#a6e1ff;stroke-width:2.7;opacity:0;pointer-events:none;filter:drop-shadow(0 0 6px #67c4ff)}

/* A circle-local child follows the exact displayed inner circle automatically. */
.central-orb>.identification-pulse{position:absolute;left:50%;top:50%;width:100%;height:100%;box-sizing:border-box;border:2px solid var(--identification-color,#88deff);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:-1;background:transparent;box-shadow:0 0 12px color-mix(in srgb,var(--identification-color,#88deff) 45%,transparent);will-change:transform,opacity}

.forest-drag-surface{position:absolute;inset:0;z-index:2;background:transparent;touch-action:none;cursor:grab}.forest-drag-surface[hidden]{display:none}.forest-manipulating .forest-drag-surface{cursor:grabbing}
#macroBoard .central-orb{filter:opacity(var(--forest-drag-birds,1))}
#macroBoard .wedge-button{filter:opacity(var(--forest-drag-controls,1))}
.forest-manipulating #macroBoard .central-orb,.forest-manipulating #macroBoard .wedge-button{pointer-events:none!important}

/* One mobile species circle represents the real pair; source sex/art stays truthful. */
.mobile-species-layout .individual-sex{display:none!important}
.node-layout-access{position:fixed;left:50%;transform:translateX(-50%);z-index:56;min-height:44px;padding:5px 12px;background:#072133ee;border:1px solid #6bbddb;color:#dcefff;font:11px var(--mono);letter-spacing:.04em}
.node-layout-access[hidden]{display:none}
.node-controls-copy{grid-column:1/-1;margin:0;color:#b8cdda;font:11px/1.4 var(--mono)}
.node-species-choices{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.node-species-choices button{font-size:10px;min-width:0;padding:5px;overflow-wrap:anywhere}
.node-species-choices button[aria-pressed=true]{border-color:#c5efff;background:#164768}
#macroBoard .station-compact .wedge-button{display:none!important;pointer-events:none!important}
#macroBoard .station-compact .central-orb{border-style:dashed!important}
.node-placement-status{grid-column:1/-1;margin:0;padding:0;list-style:none;font:11px/1.4 var(--mono)}
.node-placement-status[hidden]{display:none}
.node-placement-status li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #6bbddb44}
.node-placement-status img{width:42px;height:42px;object-fit:contain;flex:none}
@media(max-width:700px){.node-layout-access{left:auto;right:10px;transform:none;font-size:10px;min-height:44px}}
/* The pair-selection flow uses the real three-direction deck. Keep its targets at 44px. */
.primary-mobile-field #directionDeck:not(.inactive){position:static;inset:auto;z-index:auto;display:block;grid-row:5;width:auto;height:50px;min-height:50px;margin:0;padding:2px 5px;box-sizing:border-box}
.primary-mobile-field #directionDeck>div:first-child{display:none}
.primary-mobile-field #directionDeck .direction-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;height:44px;min-height:44px}
.primary-mobile-field #directionDeck .direction-buttons button{height:44px;min-height:44px;min-width:0;padding:3px;font-size:12px;touch-action:manipulation}
.primary-mobile-field:has(#directionDeck:not(.inactive)){--live-effective-plot:calc(var(--live-plot) + 50px)}
@media(max-width:900px){.primary-mobile-field:has(#directionDeck:not(.inactive)){--live-effective-plot:calc(min(var(--live-plot),150px) + 50px)}}
@media(max-width:900px) and (orientation:landscape){.primary-mobile-field:has(#directionDeck:not(.inactive)){--live-effective-plot:calc(min(var(--live-plot),116px) + 50px)}}

/* R66: remove the floating Bird & Call Controls shortcut. */
.node-layout-access{display:none!important}

/* Keep layout measurements while suppressing both the live entry and any
   compositor fallback. The arrived frame supplies one shared alpha value. */
#macroBoard.dynamic-hud[data-phase="entering"] .bird-station,
#macroBoard.dynamic-hud[data-intro-phase="entering"] .bird-station{
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
#macroBoard.dynamic-hud[data-phase="arrived"] .bird-station{
  opacity:var(--forest-entry-opacity,1);
}
