/* Overhead mobile board. All rules require the active mobile adapter. */
.lab-mobile-topdown{scrollbar-gutter:auto}
.lab-mobile-topdown body.lab-explorer{--lm-header:56px;--lm-nav:67px;--lm-inset:env(safe-area-inset-bottom,0px);padding-bottom:calc(var(--lm-nav) + var(--lm-inset));min-height:100dvh;height:auto;--lm-grid:color-mix(in srgb,var(--text) 4%,transparent)}
.lab-mobile-topdown body.lab-explorer>header.nav{height:var(--lm-header);min-height:var(--lm-header);padding:6px 16px}
.lab-mobile-topdown .nav .brand-name{font-size:15px}.lab-mobile-topdown .nav .brand-role{display:none}
.lab-mobile-topdown .lab-explorer .lx-main{padding:0 12px 4px!important;height:calc(100dvh - var(--lm-header) - var(--lm-nav) - var(--lm-inset))!important;min-height:570px!important;display:flex;flex-direction:column;gap:4px;overflow:visible!important}
.lab-mobile-topdown .lx-intro{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px;margin:0!important;flex:none;min-height:56px}
.lab-mobile-topdown .lx-intro h1{font-size:25px!important;line-height:1.1!important;margin:0}
.lab-mobile-topdown .lx-intro .lx-architecture-disclosure{font-size:11px!important;line-height:1.3;margin:3px 0 0!important;max-width:none}
.lab-mobile-topdown .lx-architecture-disclosure>span{display:none}
.lab-mobile-topdown .lx-source{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:0;width:125px;max-width:125px;font-size:10px;margin:0;padding:0;border:0}
.lab-mobile-topdown .lx-intro>div:first-child{min-width:0}
.lab-mobile-topdown .lx-architecture-disclosure strong{white-space:normal;font-size:10px;line-height:1.3}
.lab-mobile-topdown #live-connection{display:none}
.lab-mobile-topdown #lm-source-status{font-size:9px;line-height:1.3;text-align:right;color:var(--muted)}
.lab-mobile-topdown .lx-source-meta{display:flex;align-items:center;justify-content:flex-end;gap:2px}
.lab-mobile-topdown #live-time{display:none}
.lab-mobile-topdown #refresh-lab{min-width:44px;width:44px;height:44px;min-height:44px;margin:0}
.lab-mobile-topdown .lx-workspace{display:flex!important;flex-direction:column;flex:1;min-height:0;height:auto;gap:5px!important;overflow:visible}
.lab-mobile-topdown .lx-explorer{display:flex;flex:1;flex-direction:column;min-height:0!important;border:0;border-radius:0!important;background:transparent;overflow:visible!important}
.lab-mobile-topdown .lx-toolbar{flex:none;min-height:44px;padding:0;border-bottom:1px solid var(--subtle);background:transparent}
.lab-mobile-topdown .lx-layers button{font-size:11px;min-height:44px;height:44px;padding:5px 0;gap:5px}
.lab-mobile-topdown .lx-layers button svg{width:17px;height:17px;flex:none}
.lab-mobile-topdown .lx-main #lab-map{height:auto!important;flex:1!important;min-height:0!important;overflow:visible!important;max-height:none;border:0;background:transparent}
.lab-mobile-topdown .lx-main #lab-map>.lx-map-viewport,.lab-mobile-topdown .lx-main #lab-map>.lw-mobile-workloads,.lab-mobile-topdown .lx-mobile-selector{display:none!important}
.lab-mobile-topdown .lm-board{height:100%;display:flex;flex-direction:column;min-height:0}
.lab-mobile-topdown .lm-board-tools{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:32px;flex:none;color:var(--muted);font-size:9px}
.lab-mobile-topdown #lm-map-note{max-width:59%;line-height:1.4}
.lab-mobile-topdown #lm-more{min-height:44px;display:flex;align-items:center;gap:2px;background:none;border:0;padding:0 0 0 5px;font:500 10px/1.3 Poppins,sans-serif;color:var(--muted)}
.lm-attention #lm-more{color:var(--warning)}
.lm-board svg:not(.lm-routes),.lm-dock svg,.lm-sheet-head svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.lm-board-content{flex:1;min-height:0;position:relative}
.lm-scene{height:100%;min-height:0;position:relative}
.lm-hardware{display:grid;grid-template-rows:minmax(70px,1.05fr) minmax(60px,.9fr) minmax(76px,1.18fr) minmax(62px,.66fr);gap:6px}
.lm-routes{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--lx-cyan);stroke-width:1.3;opacity:.45;pointer-events:none;z-index:1}
.lm-area{min-height:0;position:relative;border:1px solid var(--subtle);border-radius:9px;padding:6px 6px 3px;display:flex;flex-direction:column;background-color:color-mix(in srgb,var(--surface) 55%,transparent);background-image:linear-gradient(var(--lm-grid) 1px,transparent 1px),linear-gradient(90deg,var(--lm-grid) 1px,transparent 1px);background-size:20px 20px}
.lab-mobile-topdown .lm-area h2{font-size:10px;line-height:1.2;letter-spacing:0;margin:0 0 3px;font-weight:600;color:var(--muted);text-transform:uppercase;position:relative;z-index:2}
.lm-three,.lm-two{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;flex:1;min-height:0}.lm-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.lm-device{position:relative;z-index:2;background:none;border:1.5px solid transparent;border-radius:6px;padding:3px 4px;min-width:44px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text);font:500 11px/1.2 Poppins,sans-serif;cursor:pointer}
.lm-device>img{width:100%;height:calc(100% - 17px);min-height:0;object-fit:contain;filter:drop-shadow(0 3px 3px #0004);pointer-events:none}
.lm-device>span:last-child{position:relative;z-index:3;flex:none;text-align:center;white-space:nowrap;font-size:10px;line-height:1.3}
.lm-device[aria-pressed=true],.lm-cluster-open.is-selected{border-color:var(--accent);background-color:color-mix(in srgb,var(--accent) 7%,transparent)}
.lm-device:active{background-color:color-mix(in srgb,var(--accent) 13%,transparent)}
.lm-cluster{padding:0}.lm-cluster-open{position:relative;z-index:2;width:100%;height:100%;min-height:60px;padding:6px;border:1.5px solid transparent;border-radius:8px;background:none;color:var(--text);display:flex;flex-direction:column;gap:4px;cursor:pointer}
.lm-area-heading{display:flex;justify-content:space-between;width:100%;align-items:center;font:500 10px/1.3 Poppins,sans-serif;color:var(--muted)}
.lm-area-heading strong{text-transform:uppercase;font-size:10px;font-weight:600}.lm-area-heading>span{display:flex;gap:3px;align-items:center}.lm-area-heading svg{width:12px}
.lm-five{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:4px;min-height:0;width:100%;flex:1}.lm-five img{height:100%;width:100%;min-height:0;max-height:100%;object-fit:contain;filter:drop-shadow(0 3px 2px #0004)}
.lm-hosts .lm-device{flex:1;min-height:44px}.lm-hosts .lm-device>img{height:calc(100% - 17px)}
.lm-clouds{padding:4px 6px}.lm-clouds h2{font-size:9px!important;margin-bottom:0!important}.lm-cloud{flex-direction:row;gap:7px;padding:2px;min-height:44px}.lm-cloud>img{width:26px;height:26px;filter:none}.lm-cloud>span:last-child{font-size:11px}
.lm-nodes{display:flex;flex-direction:column;gap:6px}.lm-nodes>header{display:flex;align-items:center;justify-content:space-between;min-height:44px;color:var(--muted);font-size:12px}
.lm-back{display:flex;align-items:center;min-height:44px;padding:0 8px 0 0;background:none;border:0;color:var(--text);font:500 12px Poppins,sans-serif}
.lm-node-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:7px;min-height:0;flex:1}.lm-node-grid .lm-device{background-color:color-mix(in srgb,var(--surface) 50%,transparent);border-color:var(--subtle)}.lm-node-grid .lm-device[aria-pressed=true]{border-color:var(--accent)}
.lm-nodes>p{font-size:11px;line-height:1.4!important;color:var(--muted);margin:3px 0 0;text-align:center}
.lm-workloads{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:7px}
.lm-workload-grid{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:6px 10px;min-height:0}
.lm-workload{gap:5px;min-height:44px;padding:4px 3px}
.lm-workload .lm-object{display:flex;position:relative;align-items:center;justify-content:center;flex:1;min-height:0;width:90%;max-height:76px;border-radius:3px;border:3px solid #3b4149;background-color:#343e48;box-shadow:0 4px 0 #131b24,1px 7px 5px #0004;isolation:isolate}
.lm-container:before{content:'';position:absolute;inset:0;border-inline:5px solid #0003;background:repeating-linear-gradient(90deg,transparent 0 7px,#0002 7px 9px);z-index:-1}
.lm-container:after{content:'';position:absolute;inset:3px 1px;border-block:2px solid #ffffff24;pointer-events:none}
.lm-workload .lm-portainer{background-color:#126caa;border-color:#0a4e7e}.lm-workload .lm-pihole{background-color:#9d253a;border-color:#701b2d}.lm-workload .lm-n8n{background-color:#ae2858;border-color:#771d3b}.lm-workload .lm-traefik{background-color:#087b87;border-color:#075963}.lm-workload .lm-cloudflare{background-color:#b56b12;border-color:#82501a}
.lm-vm:before{content:'';position:absolute;inset:4px;background:radial-gradient(circle,#8b949c 1px,transparent 2px) left top/5px 5px no-repeat,radial-gradient(circle,#8b949c 1px,transparent 2px) right top/5px 5px no-repeat,radial-gradient(circle,#8b949c 1px,transparent 2px) left bottom/5px 5px no-repeat,radial-gradient(circle,#8b949c 1px,transparent 2px) right bottom/5px 5px no-repeat;pointer-events:none}
.lm-workload .lm-gns3{background-color:#3f305c;border-color:#2f2546}.lm-workload .lm-windows{background-color:#123659;border-color:#10283f}
.lm-object>img{width:50%;height:67%;object-fit:contain;filter:drop-shadow(0 1px 0 #fff9) drop-shadow(1px 2px 2px #0007)}
.lm-eve-ng>img{width:80%;height:65%}.lm-gns3>img{height:76%}.lm-workload>span:last-child{font-size:10px}
.lm-dock{position:relative;flex:none;display:flex;flex-direction:column;gap:5px;padding:10px 10px 7px;border-radius:12px;background:var(--surface);border:1px solid var(--subtle);min-width:0}
.lm-dock-heading{display:flex;gap:9px;align-items:center;min-height:34px}.lm-dock-heading>img{width:42px;height:34px;object-fit:contain;flex:none}.lm-dock-heading>div{min-width:0}
.lab-mobile-topdown .lm-dock-heading h2{font-size:17px;line-height:1.2;margin:0;letter-spacing:-.025em}.lab-mobile-topdown .lm-dock-heading p{font-size:10px;line-height:1.3;margin:2px 0 0;color:var(--muted)}
.lab-mobile-topdown .lm-state{display:flex;justify-content:space-between;gap:6px;font-size:9px;line-height:1.3;margin:0;color:var(--muted)}
.lm-values{display:flex;gap:12px;margin:0;padding:0;min-width:0}.lm-values>div{flex:1;min-width:0}.lm-values dt{font-size:10px;line-height:1.3;color:var(--muted);margin:0}.lm-values dd{font-size:20px;line-height:1.2;font-weight:600;color:var(--lx-cyan);margin:1px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.lm-values small{font-size:9px;line-height:1.3;display:block;color:var(--muted)}
.lab-mobile-topdown .lm-fact{font-size:10px;line-height:1.35;margin:0;color:var(--muted)}
.lab-mobile-topdown .lm-dock .lm-details{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;flex:none;font:500 12px Poppins,sans-serif;border:0;border-radius:5px;background:var(--action);color:white;cursor:pointer}
.lm-dock-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.lab-mobile-topdown .lm-dock #lm-more{padding:0 6px;min-height:44px;min-width:84px;justify-content:center;border:1px solid var(--subtle);border-radius:5px;font-size:10px;color:var(--text)}
.lm-disclaimer{font-size:11px;line-height:1.5;color:var(--muted);margin:10px 0 0}
.lab-mobile-topdown .lm-sheet{width:100%;max-width:650px;max-height:calc(100dvh - 20px);margin:auto auto 0;padding:0 16px calc(20px + env(safe-area-inset-bottom));background:var(--bg);color:var(--text);border:0;border-radius:16px 16px 0 0;overscroll-behavior:contain;overflow:auto;box-shadow:0 -10px 30px #0005}
.lm-sheet::backdrop{background:#080d16b3}.lm-modal-open,.lm-modal-open body{overflow:hidden!important}
.lm-sheet-head{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:space-between;min-height:60px;background:var(--bg);border-bottom:1px solid var(--subtle)}.lm-sheet-head h2{font-size:20px;margin:0}.lm-sheet-close{display:grid;place-items:center;min-width:44px;min-height:44px;background:none;border:0;color:var(--text);cursor:pointer}
.lm-dialog-tools{display:flex;justify-content:flex-end;padding:4px 0}.lm-dialog-tools #start-tour{margin:0;min-height:44px}
.lab-mobile-topdown .lm-sheet .lx-sidebar{height:auto;max-height:none;overflow:visible;display:flex!important;gap:20px}.lab-mobile-topdown .lm-sheet .lx-sidebar>.lx-inspector{padding:0!important;border:0!important;background:none}.lm-sheet .lx-totals{order:1!important}.lm-sheet .lx-resource-rail{order:2!important}.lm-sheet .lx-provenance{order:3!important}.lm-sheet .lx-arm-return{display:none!important}.lm-sheet .lx-history{position:static;width:100%;max-width:100%;margin:20px 0;background:var(--surface)}
.lm-sheet .lx-global-health{font-size:12px}.lm-sheet .lx-resource-heading h2{font-size:18px}.lm-sheet .lx-node-resource{font-size:11px}.lm-sheet .lx-resource-columns{font-size:10px}
.lab-mobile-topdown #latency-detail[hidden]{display:none}
.lab-mobile-topdown .lm-board[data-layer=dependencies] .lm-routes{opacity:.85;stroke-width:2}
@media (min-height:800px){.lab-mobile-topdown .lab-explorer .lx-main{gap:7px}.lm-dock{gap:7px;padding:12px}.lab-mobile-topdown .lm-dock-heading h2{font-size:19px}.lm-values dd{font-size:23px}.lm-hardware,.lm-workloads{gap:9px}.lm-device>span:last-child{font-size:11px}.lm-area h2{font-size:11px!important}}
@media (max-width:360px){.lab-mobile-topdown .lab-explorer .lx-main{padding-inline:8px!important}.lm-dock{padding:8px;gap:4px}.lm-values{gap:6px}.lm-values dd{font-size:18px}.lab-mobile-topdown .lm-dock-heading h2{font-size:16px}.lm-cloud{gap:3px}.lm-cloud>img{width:22px;height:22px}.lab-mobile-topdown .lx-source{max-width:100px}.lab-mobile-topdown #live-time{display:none}.lm-workload-grid{gap:4px}.lm-device>span:last-child{font-size:9px}}
@media (max-height:760px) and (max-width:599px){
 .lab-mobile-topdown body.lab-explorer{--lm-header:48px}.lab-mobile-topdown .lab-explorer .lx-main{min-height:544px!important;gap:3px}.lab-mobile-topdown .lx-intro{min-height:44px}.lab-mobile-topdown .lx-intro h1{font-size:23px!important}.lm-dock{padding:8px;gap:3px}.lm-dock-heading{min-height:30px}.lm-dock-heading>img{height:30px}.lm-values dd{font-size:19px}.lm-hardware{grid-template-rows:minmax(70px,1fr) minmax(60px,.85fr) minmax(76px,1.1fr) 48px;gap:5px}.lm-clouds h2{display:none}.lm-clouds{padding:0 4px}.lm-values small{font-size:8px}.lab-mobile-topdown .lm-dock-heading h2{font-size:16px}
}
@media (min-width:600px) and (max-height:500px){
 .lab-mobile-topdown body.lab-explorer{--lm-header:48px;--lm-nav:60px}.lab-mobile-topdown .lab-explorer .lx-main{min-height:0!important;padding-bottom:0!important;gap:3px}.lab-mobile-topdown .lx-intro{min-height:34px}.lab-mobile-topdown .lx-intro h1{font-size:22px!important}.lab-mobile-topdown .lx-intro>div:first-child{display:flex;gap:14px;align-items:center}.lab-mobile-topdown .lx-source{max-width:270px;flex-direction:row;align-items:center}.lab-mobile-topdown .lx-source-meta{display:none}.lab-mobile-topdown .lx-workspace{display:grid!important;grid-template-columns:1.3fr 1fr;gap:12px!important}.lab-mobile-topdown .lx-explorer{min-height:0}.lm-dock{align-self:stretch;justify-content:center;padding:8px}.lm-board-tools{min-height:22px}.lab-mobile-topdown #lm-more{min-height:28px}.lm-hardware{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:5px}.lm-clouds{grid-column:2;grid-row:2}.lm-hosts{grid-column:1;grid-row:2;gap:3px}.lm-clouds .lm-three{display:flex;flex-direction:column;gap:0}.lm-cloud{min-height:24px;flex:1}.lm-hosts .lm-area h2{font-size:8px!important}.lm-connectivity{grid-column:1;grid-row:1}.lm-cluster{grid-column:2;grid-row:1}.lm-five{gap:2px}.lm-workloads{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:5px}.lm-workload-grid{gap:4px}.lm-device>span:last-child{font-size:9px}.lm-workload .lm-object{max-height:45px}.lm-values dd{font-size:19px}.lm-routes{display:none}.lm-nodes>p{display:none}
}
@media (min-width:600px) and (max-height:500px){.lab-mobile-topdown body.lab-explorer{--lm-nav:67px}.lm-clouds .lm-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.lm-cloud{flex-direction:column;min-height:44px;gap:2px}.lm-cloud>img{width:20px;height:20px}.lm-cloud>span:last-child{font-size:9px}.lm-hardware{grid-template-rows:repeat(2,minmax(70px,1fr))}}
@media (prefers-reduced-motion:reduce){.lm-device,.lm-object{transition:none}}
