html:has(.companion-page) { height: 100%; overscroll-behavior: none; }
.companion-page { height: 100dvh; margin: 0; display: flex; flex-direction: column; background: #082820; color: #fffdf8; overflow: hidden; }
.companion-header { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; gap: 8px; min-height: 48px; padding: max(4px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left)); border-bottom: 1px solid #78958b77; }
.companion-header h1 { margin: 0; font: 700 .95rem/1.2 var(--sans); }
.companion-header a { font: 600 .8rem/1.3 var(--sans); color: #cfe1d6; text-decoration: none; padding-block: 10px; }
.companion-header button, .companion-app-dialog button { min-height: 44px; padding: 8px 12px; border: 1px solid #91b3a4; border-radius: 7px; background: #153e32; color: #fffdf8; font: 700 .875rem/1.2 var(--sans); cursor: pointer; }
.companion-page > main { flex: 1; min-height: 0; }
.companion-page .bioblitz-map-home, .companion-page .bioblitz-access-map-layout { width: 100%; height: 100%; margin: 0; }
.companion-page .bioblitz-map-toolbar { justify-content: space-between; }
.companion-gps-status { position: absolute; left: 8px; right: 8px; bottom: 82px; z-index: 2; padding: 6px 10px; margin: 0; border-radius: 5px; background: #062820ed; color: white; font: 600 .75rem/1.4 var(--sans); text-align: center; pointer-events: none; }
.companion-page .bioblitz-map-scale-bar { bottom: 124px; }
.companion-guidance { font: 400 .8rem/1.5 var(--sans); color: #d7e8de; margin: 12px 0; }
.companion-app-dialog { width: min(480px,calc(100% - 24px)); max-width: calc(100% - 24px); max-height: calc(100dvh - 24px); padding: 20px; margin: auto; border: 1px solid #91b3a4; border-radius: 12px; background: #082820; color: #fffdf8; overflow: auto; }
.companion-app-dialog::backdrop { background: #00140bd9; }
.companion-app-heading { position: relative; }
.companion-app-heading h2 { margin: 4px 0 8px; font: 700 1.35rem/1.2 var(--sans); }
.companion-app-heading button { min-width: 44px; font-size: 1.4rem; }
.companion-app-dialog p { margin: 12px 0 18px; font: 400 .9rem/1.55 var(--sans); color: #d1e5d9; }
.companion-app-dialog [data-download], .companion-app-dialog [data-install], .companion-app-dialog [data-update] { width: 100%; background: #edce85; color: #082820; border-color: #edce85; }
.companion-app-dialog [hidden] { display: none; }
.companion-app-dialog button:disabled { opacity: .55; cursor: wait; }
.companion-app-dialog .companion-app-note { font-size: .8rem; color: #b4cfc1; }
.companion-page button:focus-visible, .companion-page a:focus-visible { outline: 3px solid #edce85; outline-offset: 2px; }
@media (max-width:360px) { .companion-header h1 { font-size: .85rem; }.companion-header button { padding-inline: 8px; } }
.companion-header > * { min-width: 0; }
.companion-header h1 { overflow-wrap: anywhere; }
.companion-gps-status { bottom: calc(var(--map-dock-height,54px) + 28px); }
.companion-page .bioblitz-map-scale-bar { bottom: calc(var(--map-dock-height,54px) + 70px); }
.companion-app-identity { display: grid; gap: 14px; min-width: 0; }
.companion-app-identity > img { width: 72px; height: 72px; border-radius: 16px; border: 1px solid #78958b77; }
.companion-app-identity > div { min-width: 0; }
.companion-app-dialog .companion-app-brand { margin: 0 0 5px; color: #edce85; font: 700 .875rem/1.35 var(--sans); }
.companion-app-heading h2 { margin: 0; overflow-wrap: anywhere; }
.companion-app-heading > button { position: absolute; top: 0; right: 0; }
.companion-install-step { margin-top: 20px; padding-top: 18px; border-top: 1px solid #78958b77; }
.companion-install-step h3 { margin: 0; font: 700 1rem/1.4 var(--sans); color: #edce85; }
.companion-install-step details { margin-top: 12px; font: 400 .9rem/1.55 var(--sans); }
.companion-install-step summary { padding: 10px 0; cursor: pointer; font-weight: 700; }
.companion-install-step summary:focus-visible { outline: 3px solid #edce85; outline-offset: 2px; }
.companion-install-step a { color: #edce85; overflow-wrap: anywhere; }
.companion-chrome-link { display: block; padding: 12px; text-align: center; border: 1px solid #91b3a4; border-radius: 7px; font-weight: 700; }
.companion-app-dialog .companion-direct-link { font-size: .8rem; }
@media (max-width:360px) { .companion-app-heading h2 { font-size: 1.15rem; } }
.companion-view-bar { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:4px 8px; flex-shrink:0; border-bottom:1px solid #78958b77; }
.companion-view-bar [role="tablist"] { display:flex; gap:4px; }
.companion-view-bar button { min-height:44px; padding:8px 12px; border:1px solid #78958b77; border-radius:7px; background:#153e32; color:#fffdf8; font:700 .85rem/1.2 var(--sans); }
.companion-view-bar [aria-selected="true"] { color:#082820; background:#edce85; border-color:#edce85; }
.companion-page > main { position:relative; width:100%; max-width:none; padding:0; }
.companion-page [role="tabpanel"] { width:100%; height:100%; }
.companion-page [hidden] { display:none!important; }
.companion-page .companion-terrain { position:relative!important; inset:auto!important; width:100%!important; height:100%!important; max-width:none; margin:0; border:0; border-radius:0; z-index:0; }
.companion-terrain .valley-studio-bar { display:none; }
.companion-terrain .valley-north,.companion-terrain .valley-navigation { top:12px; }
.companion-page > .companion-gps-status { position:relative; inset:auto; flex-shrink:0; border-radius:0; padding:5px 8px; }
.companion-terrain .valley-switch > i { display:inline-block; flex:0 0 22px; width:22px; height:22px; margin:0; }
@media (max-height:600px) and (min-width:600px) { .companion-header { min-height:40px; }.companion-terrain .valley-comparison-bar { width:min(620px,calc(100% - 110px)); }.companion-terrain .valley-control-heading { display:none; } }
