/* Floating navigation: a readable glass layer, with grouped controls below it. */
.glass-ui{--glass:color-mix(in srgb,var(--surface) 79%,transparent);--glass-edge:color-mix(in srgb,var(--ink) 17%,var(--line));--glass-shadow:0 12px 34px #03080528,inset 0 1px #ffffff24}
.glass-ui.glass-scrolled{--glass:color-mix(in srgb,var(--surface) 91%,transparent)}
body.glass-ui .topbar{position:sticky;top:12px;margin-top:12px;min-height:64px;border:1px solid var(--glass-edge);border-radius:25px;background:var(--glass);backdrop-filter:blur(24px) saturate(130%);-webkit-backdrop-filter:blur(24px) saturate(130%);box-shadow:var(--glass-shadow);padding:10px 15px;z-index:65;transition:background .25s,transform .25s,box-shadow .25s}
.glass-ui .topbar .brand{gap:8px;min-width:0}.glass-ui .topbar .site-logo{border-radius:50%;width:34px;height:34px}.glass-ui .topbar #sidebar-toggle{border-radius:50%;background:color-mix(in srgb,var(--surface-soft) 65%,transparent)}
.glass-ui .topbar .top-actions{min-width:0;gap:7px}.glass-ui .topbar #account-open{display:inline-flex;align-items:center;gap:8px;min-height:42px;border-radius:99px;padding:9px 16px;background:var(--teal);color:var(--accent-contrast);box-shadow:inset 0 1px #ffffff35,0 3px 12px #00000015;font-size:14px}
.glass-ui #account-open .ui-icon{width:17px;height:17px;color:inherit}.glass-ui #account-open .ui-icon:last-child{width:14px;height:14px}.glass-ui .discord-link .ui-icon{width:22px;height:22px}
.profile-hub{position:relative;flex:none;border:0;background:none;margin:0;padding:0;color:var(--ink)}
.profile-hub>summary{list-style:none;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--surface-soft);cursor:pointer;padding:0!important}.profile-hub>summary::-webkit-details-marker{display:none}.profile-hub>summary:after{display:none}.profile-hub[open]>summary{border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 12%,transparent)}.profile-hub>summary .ui-icon{width:21px;height:21px}.profile-initial{font-size:17px;font-weight:650;color:var(--teal)}.profile-initial[hidden],.profile-hub svg[hidden]{display:none}
.profile-menu{position:absolute;right:0;top:calc(100% + 12px);width:290px;max-width:calc(100vw - 28px);padding:12px;border:1px solid var(--glass-edge);border-radius:23px;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(24px);box-shadow:0 20px 50px #03080566,inset 0 1px #ffffff25}
.profile-menu-title{display:flex;flex-direction:column;gap:6px;padding:10px 11px 16px;border-bottom:1px solid var(--line);margin-bottom:7px}.profile-menu-title strong{font-size:16px}.profile-menu-title span{font-size:12px;color:var(--muted)}
.profile-menu :is(button,a){display:flex;align-items:center;gap:11px;width:100%;padding:11px;border:0;border-radius:12px;min-height:44px;background:none;text-align:left;color:var(--ink);font-size:14px;text-decoration:none}.profile-menu :is(button,a):hover{background:var(--soft)}.profile-menu .ui-icon{width:19px;height:19px;flex:none}.profile-menu .hub-discord .ui-icon:last-child{margin-left:auto;width:14px}.social-menu-label{border-top:1px solid var(--line);padding:15px 11px 6px;margin-top:6px;color:var(--muted);font-size:12px}
.glass-ui .workspace-toolbar{min-width:0;flex-wrap:wrap;gap:12px}.glass-ui .workspace-tools{min-width:0;flex-wrap:wrap}.glass-ui .workspace-station{min-width:0}.glass-ui .workspace-subnav{min-width:0;max-width:100%}
.glass-ui .sidebar-tools-label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 8px 13px;font-size:11px;color:var(--muted);letter-spacing:.06em}.sidebar-tools-label button{border:0;background:none;padding:6px 0;color:var(--teal);font-size:12px;letter-spacing:0}
.glass-ui .workspace-rail{display:flex;flex-direction:column;gap:6px;min-width:0}
.glass-ui .sidebar-group{border:0;border-radius:14px;background:none;margin:0;padding:0;overflow:hidden}
.glass-ui .sidebar-group>summary{display:flex;align-items:center;gap:11px;padding:12px;min-height:46px;list-style:none;cursor:pointer;color:var(--ink);font-size:14px;border-radius:14px}.sidebar-group>summary::-webkit-details-marker{display:none}.sidebar-group>summary:after{display:none}.sidebar-group>summary>.ui-icon{width:21px;height:21px}.sidebar-chevron{margin-left:auto;transition:transform .2s}.sidebar-group[open] .sidebar-chevron{transform:rotate(180deg)}.glass-ui .sidebar-group[open]{background:color-mix(in srgb,var(--surface-soft) 75%,transparent)}.glass-ui .sidebar-group[open]>summary{font-weight:650;color:var(--teal)}
.sidebar-group>div{padding:0 8px 9px 32px}.sidebar-group a{display:block;padding:10px 11px;border-radius:10px;font-size:14px;text-decoration:none;color:var(--muted);border-left:1px solid var(--line);line-height:1.4}.sidebar-group a:hover,.sidebar-group a[aria-current=page]{color:var(--ink);background:var(--soft);border-color:var(--teal)}
.glass-ui .side-favorites{margin-top:16px;padding-top:17px}.glass-ui .side-heading{padding-bottom:20px}.glass-ui .side-account{margin:0;font-size:14px!important}.sidebar-footer{display:grid;gap:5px;border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.sidebar-footer button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;color:var(--ink);font-size:14px;border-radius:13px;padding:12px;min-height:45px;text-align:left}.sidebar-footer button:hover{background:var(--soft)}.sidebar-footer .ui-icon{width:20px;height:20px}.glass-ui .workspace-overflow .all-tools-trigger{width:100%;border-radius:14px}
@media(min-width:901px){
 html[data-nav-position=top] body.glass-ui .topbar{margin:12px 24px 0;height:66px}
 html[data-nav-position=top] body.glass-ui .side-nav{position:sticky;top:90px;left:auto;right:auto;bottom:auto;width:auto;min-height:0;margin:10px 24px 0;padding:6px 9px;border:1px solid var(--glass-edge);border-radius:24px;background:var(--glass);backdrop-filter:blur(24px) saturate(130%);box-shadow:var(--glass-shadow);z-index:55;transition:transform .25s,background .25s}
 html[data-nav-position=top] body.glass-ui .side-nav :is(.sidebar-footer,.sidebar-tools-label){display:none}
 html[data-nav-position=top] body.glass-ui .side-nav~main{margin-left:0;margin-right:0;padding:24px 28px 40px}
 html:not([data-nav-position=top]) body.glass-ui .side-nav{top:94px;bottom:16px;border:1px solid var(--glass-edge);border-radius:24px;padding:18px 12px;max-width:calc(100vw - 24px)}
 html[data-nav-position=left] body.glass-ui .side-nav{left:12px}html[data-nav-position=right] body.glass-ui .side-nav{right:12px}
 .glass-ui .nav-group>summary{border-radius:18px;min-height:46px;padding:8px}.glass-ui .nav-orb{border-radius:50%;width:30px;height:30px}.glass-ui .nav-orb .ui-icon{width:20px;height:20px}.glass-ui .nav-popover{border-radius:22px;background:color-mix(in srgb,var(--surface) 96%,transparent)!important;backdrop-filter:blur(24px)}
 .glass-ui.glass-nav-hidden .topbar{transform:translateY(calc(-100% - 24px))}.glass-ui.glass-nav-hidden .side-nav{transform:translateY(-190px)}html:not([data-nav-position=top]) .glass-ui.glass-nav-hidden .side-nav{transform:none}
}
/* The dock remains phone-only; translucent surfaces reveal the content underneath. */
@media(max-width:900px){
 body.glass-ui .topbar,html[data-nav-position=top] body.glass-ui .topbar,html[data-nav-position=right] body.glass-ui .topbar{margin:10px 10px 0;top:10px;border-radius:26px;min-height:60px;padding:8px 10px;gap:7px;flex-wrap:nowrap}
 .glass-ui .topbar .brand{font-size:21px!important}.glass-ui .topbar .site-logo{width:29px;height:29px}.glass-ui .topbar #sidebar-toggle{width:38px;height:38px;flex:0 0 38px;padding:8px}.glass-ui .topbar .top-actions{gap:4px;flex:none;margin-left:auto;width:auto}.glass-ui .topbar .search-trigger{width:35px;min-width:35px;padding:7px}.glass-ui .topbar #notifications-open{display:none!important}.glass-ui .topbar #account-open{display:none!important}.glass-ui .topbar .discord-link{display:none!important}.glass-ui .profile-hub>summary{width:38px;height:38px}
 .glass-ui .profile-menu{position:fixed;top:80px;right:12px;width:300px;max-height:calc(100dvh - 100px);overflow-y:auto}
 body.glass-ui .side-nav,html[data-nav-position=top] body.glass-ui .side-nav,html[data-nav-position=right] body.glass-ui .side-nav{top:9px;left:9px;bottom:9px;width:min(335px,calc(100vw - 32px));border:1px solid var(--glass-edge);border-radius:27px;padding:20px 12px;overflow-x:hidden;overflow-y:auto;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(24px);box-shadow:var(--glass-shadow);transform:translateX(calc(-100% - 20px))}
 body.glass-ui.mobile-nav-open .side-nav{transform:none}.glass-ui .side-heading{padding:6px 46px 18px 10px}.glass-ui .sidebar-close{top:16px;right:14px;border-radius:50%;width:36px;height:36px}.glass-ui .sidebar-footer{display:grid}.glass-ui .workspace-rail{display:flex!important;overflow:visible;flex-direction:column}
 body.glass-ui .side-nav~main{padding:20px 12px 115px;min-width:0}.glass-ui .workspace-toolbar{gap:10px;align-items:center}.glass-ui .workspace-heading{flex:1;min-width:100px}.glass-ui .workspace-heading h1{font-size:21px!important;max-width:none}.glass-ui .workspace-tools{justify-content:flex-end;gap:6px;max-width:100%;flex:1}.glass-ui .workspace-station .select-control{width:156px;max-width:100%}.glass-ui .workspace-station .select-trigger{min-height:40px;font-size:13px;padding:8px 10px}.glass-ui #workspace-refresh{flex:none}.glass-ui .station-briefing>summary{height:40px}
 .glass-ui.glass-nav-hidden:not(.mobile-nav-open) .topbar{transform:translateY(calc(-100% - 24px))}
}
@media(max-width:767px){body.glass-ui #floating-dock{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;max-width:none;padding:6px;border-radius:35px;border:1px solid var(--glass-edge);background:color-mix(in srgb,var(--surface) 73%,transparent);backdrop-filter:blur(28px) saturate(150%);-webkit-backdrop-filter:blur(28px) saturate(150%);box-shadow:0 12px 34px #03080550,inset 0 1px #ffffff35}.glass-ui .compact-dock{gap:3px}.glass-ui .compact-dock :is(a,button){border-radius:27px;min-height:55px;font-size:12px;gap:3px}.glass-ui .compact-dock .active{background:color-mix(in srgb,var(--soft) 88%,transparent);box-shadow:inset 0 1px #ffffff18}.glass-ui .compact-dock .ui-icon{width:23px;height:23px}}
@media(max-width:900px){html[data-nav-position] body.glass-ui.mobile-nav-open .side-nav{transform:none}}
@media(max-width:420px){.glass-ui .workspace-heading{flex-basis:100%}.glass-ui .workspace-tools{justify-content:flex-start;flex-wrap:nowrap}.glass-ui .workspace-station{flex:1}.glass-ui .workspace-station .select-control{width:100%}.glass-ui .hero-actions{max-width:100%;padding-right:0}.glass-ui .scene-controls{position:relative;justify-content:flex-end;right:auto;bottom:auto;margin-top:12px}.glass-ui .overview-bento .intro{padding-bottom:15px!important}}
.glass-ui .hero-actions .hero-camera{display:inline-flex;align-items:center;gap:7px;min-height:35px;border:1px solid #d3ddce40;background:#d3ddce15;color:#f0f3e9;border-radius:99px;padding:8px 11px;font-size:12px;cursor:pointer}.hero-camera .ui-icon{color:inherit!important;width:15px;height:15px}

/* Styled listboxes are in the top layer, including when Settings is a modal. */
select.enhanced-select{display:none!important}.select-control{display:inline-flex;position:relative;min-width:0;max-width:100%;vertical-align:middle;flex:1}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-width:0;min-height:43px;padding:10px 13px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer;box-shadow:inset 0 1px #ffffff0e}
.select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-chevron{font-size:19px;line-height:1;flex:none;color:var(--muted);transition:transform .2s}.select-trigger[aria-expanded=true]{border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 12%,transparent)}.select-trigger[aria-expanded=true] .select-chevron{transform:rotate(180deg)}.select-trigger:disabled{opacity:.5;cursor:not-allowed}
.select-popup{position:fixed;inset:auto;margin:0;padding:7px;border:1px solid var(--glass-edge,var(--line));border-radius:17px;background:var(--surface);color:var(--ink);box-shadow:0 15px 45px #03080566,inset 0 1px #ffffff25;overflow-y:auto;overscroll-behavior:contain;z-index:200;box-sizing:border-box;font-family:var(--sans);font-size:14px}
.select-popup[hidden]{display:none!important}.select-popup [role=option]{position:relative;padding:11px 32px 11px 12px;min-height:42px;border-radius:10px;cursor:pointer;line-height:1.4;overflow-wrap:anywhere}.select-popup [role=option][aria-selected=true]{color:var(--teal);font-weight:650}.select-popup [role=option][aria-selected=true]:after{content:'✓';position:absolute;right:11px;top:11px}.select-popup [role=option]:hover,.select-popup [role=option].is-active{background:var(--soft);color:var(--ink)}.select-popup [role=option][aria-disabled=true]{opacity:.45;cursor:not-allowed}.select-group{font-size:12px;padding:10px 12px 5px;color:var(--muted)}
.settings-grid .select-control,.controls .select-control,.settings-body>section>label>.select-control{display:flex;width:100%}.glass-ui .graph-controls label{min-width:0;max-width:100%}.glass-ui .controls .select-control{max-width:100%}.glass-ui .workspace-station .select-trigger{background:var(--glass);border-radius:14px}.glass-ui .chart-controls .select-control{max-width:260px}

/* Camera player is outside route sections, so navigation does not reload it. */
.camera-widget{position:fixed;right:22px;bottom:22px;width:360px;max-width:calc(100vw - 24px);border:1px solid var(--glass-edge,var(--line));border-radius:24px;overflow:hidden;z-index:70;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(24px);box-shadow:0 20px 60px #03080566,inset 0 1px #ffffff30;color:var(--ink)}.camera-widget[hidden]{display:none!important}
.camera-widget-head{display:flex;gap:7px;align-items:center;padding:12px}.camera-badge{display:grid;place-items:center;flex:none;width:31px;height:31px;border-radius:50%;background:var(--soft)}.camera-widget-head>div{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.camera-widget-head strong{font-size:14px}.camera-widget-head small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-widget-head button{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;padding:6px;color:var(--ink);background:transparent;font-size:20px;flex:none}.camera-widget-head button:hover{background:var(--soft)}.camera-widget-head .ui-icon{width:17px;height:17px}.camera-widget iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:#070c09}.camera-widget footer{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;gap:10px;font-size:11px}.camera-widget footer a{font-size:12px;display:inline-flex;align-items:center;gap:5px}.camera-widget footer .ui-icon{width:13px;height:13px}.camera-widget footer span{color:var(--muted)}.camera-minimized #camera-widget-content{display:none}.camera-expanded{width:min(680px,calc(100vw - 44px))}.camera-provider-only{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;text-align:center}.camera-provider-only>.ui-icon{width:36px;height:36px}.camera-provider-only strong{font-size:16px}.camera-provider-only p{font-size:14px;line-height:1.5;margin:0}.camera-provider-only a{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:99px;font-size:14px;text-decoration:none}
.glass-ui #station-cameras #load-camera{border-radius:99px;min-height:45px;padding:10px 19px;color:var(--accent-contrast);background:var(--teal);border-color:var(--teal)}
.camera-widget footer{margin:0}
@media(max-width:767px){.camera-widget{right:12px;bottom:92px;width:min(360px,calc(100vw - 24px));border-radius:22px}.camera-expanded{width:calc(100vw - 24px);bottom:92px;max-height:calc(100dvh - 170px);overflow:auto}.camera-widget-head{padding:10px}.camera-widget footer span{display:none}}
@supports not (backdrop-filter:blur(10px)){.glass-ui .topbar,.glass-ui #floating-dock,.glass-ui .side-nav,.profile-menu,.camera-widget{background:var(--surface)!important}}
.glass-ui.reduce-motion .topbar,.glass-ui.reduce-motion .side-nav,.glass-ui.reduce-motion .select-chevron{transition:none!important}
@media(prefers-reduced-motion:reduce){.glass-ui .topbar,.glass-ui .side-nav,.glass-ui .select-chevron{transition:none!important}}
