/* MET ORK v46.17.1 — smooth mobile motion and optimized map rendering */
:root{
  --ui-radius-xs:8px;--ui-radius-sm:10px;--ui-radius-md:14px;--ui-radius-lg:18px;
  --ui-shadow-sm:0 4px 14px rgba(15,48,40,.06);
  --ui-shadow-md:0 12px 32px rgba(15,48,40,.10);
  --ui-shadow-lg:0 24px 64px rgba(10,36,30,.18);
  --ui-ease:cubic-bezier(.22,1,.36,1);
  --ui-fast:160ms;--ui-normal:260ms;--ui-slow:420ms;
  --app-safe-top:env(safe-area-inset-top,0px);
  --app-safe-right:env(safe-area-inset-right,0px);
  --app-safe-bottom:env(safe-area-inset-bottom,0px);
  --app-safe-left:env(safe-area-inset-left,0px);
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.app-page{font-size:13px;line-height:1.5}
img,svg,video{max-width:100%}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{transition:color var(--ui-fast) ease,background-color var(--ui-fast) ease,border-color var(--ui-fast) ease,box-shadow var(--ui-normal) var(--ui-ease),transform var(--ui-normal) var(--ui-ease),opacity var(--ui-fast) ease}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--primary,var(--green,#0d6b57)) 25%,transparent);outline-offset:2px}
button:active,.primary:active,.secondary:active{transform:translateY(0) scale(.98)}

/* Stable readable type scale */
.eyebrow{font-size:10px;line-height:1.3}
.section-head h2{font-size:clamp(20px,1.65vw,26px);line-height:1.15}
.section-head p{font-size:12px;line-height:1.55}
.primary,.secondary,.danger-button,.secondary-link{min-height:40px;font-size:12px;line-height:1.2}
.form-grid label,.settings-form label{font-size:11px;line-height:1.4}
.form-grid small,.settings-form small{font-size:10px;line-height:1.45}
.form-grid input,.form-grid select,.form-grid textarea,.settings-form input,.settings-form select,.login-box input{min-height:44px}
table{font-size:12px}th{font-size:10px;line-height:1.35}td{font-size:12px;line-height:1.45}td small{font-size:10px;line-height:1.4}

/* Desktop rhythm and surfaces */
.main-shell{background:linear-gradient(180deg,#f8faf9 0,var(--paper,#f5f7f6) 180px)}
.content{width:100%;max-width:1680px;margin-inline:auto;padding:26px clamp(22px,2.2vw,36px) 42px}
.content.active{animation:uiPageIn var(--ui-slow) var(--ui-ease) both}
.topbar{padding-inline:clamp(20px,2.2vw,36px);box-shadow:0 1px 0 rgba(14,57,47,.02)}
.sidebar{box-shadow:8px 0 28px rgba(5,26,22,.08)}
.nav-item{min-height:44px;transition:background-color var(--ui-fast) ease,color var(--ui-fast) ease,transform var(--ui-normal) var(--ui-ease)}
.nav-item:hover{transform:translateX(2px)}
.nav-item.active{background:color-mix(in srgb,var(--primary,var(--green,#0d6b57)) 28%,#0b1c1a);box-shadow:inset 3px 0 var(--accent,#4bb89b),0 5px 18px rgba(0,0,0,.08)}
.data-card,.line-card,.report-grid article,.stats-row article,.admin-console-panel,.settings-card,.ops-summary article,.bulk-toolbar{box-shadow:var(--ui-shadow-sm);transition:border-color var(--ui-fast) ease,box-shadow var(--ui-normal) var(--ui-ease),transform var(--ui-normal) var(--ui-ease)}
.line-card:hover,.report-grid article:hover,.stats-row article:hover,.ops-summary article:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary,var(--green,#0d6b57)) 24%,var(--line));box-shadow:var(--ui-shadow-md)}
tbody tr{transition:background-color var(--ui-fast) ease}
.map-card{box-shadow:var(--ui-shadow-sm)}
.map-toolbar{background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.modal{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.modal.open .modal-card{animation:uiModalIn var(--ui-normal) var(--ui-ease) both}
.detail-drawer,.notification-panel{transition:transform var(--ui-slow) var(--ui-ease);box-shadow:var(--ui-shadow-lg)}
.toast,.ajax-action-toast,.map-save-notice{animation:uiToastIn var(--ui-normal) var(--ui-ease) both}

/* Admin readability — never use microscopic text */
.admin-console{font-size:12px}
.admin-console :is(p,small,em,.admin-panel-count,.admin-filter>span){font-size:10px;line-height:1.45}
.admin-console-nav button{min-height:44px;font-size:11px}
.admin-panel-head h3{font-size:16px}.admin-panel-head p{font-size:11px}
.admin-console-stats small{font-size:9px}.admin-console-stats em{font-size:10px}.admin-console-stats strong{font-size:22px}
.admin-role-grid strong,.admin-setting-grid strong{font-size:12px}.admin-role-grid small,.admin-setting-grid small{font-size:10px}
.role-presets button strong,.role-permission-item strong,.role-permission-group>header strong{font-size:11px!important}
.role-presets button small,.role-permission-item small,.role-permission-group>header small{font-size:9px!important;line-height:1.45}
.role-permission-item{min-height:48px}

/* Robust logo fallback: letters remain visible behind an unavailable image */
.brand-mark.has-image{position:relative;overflow:hidden;background:var(--primary,var(--green,#0d6b57))}
.brand-mark.has-image>.brand-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:900;z-index:0}
.brand-mark.has-image>img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;background:inherit}

/* PS zoom hierarchy: symbol → name → voltage details */
.station-leaflet-icon{border:0!important;background:transparent!important}
.station-leaflet-icon .ml-ps-marker{width:100%;height:100%;border-radius:9px}
.station-leaflet-icon .ml-ps-marker>i{font-size:9px;letter-spacing:-.03em}
#map.ps-zoom-far .ps-map-label{display:none!important}
#map.ps-zoom-name .ps-map-label span{display:none!important}
#map.ps-zoom-detail .ps-map-label span{display:block!important}
#map.map-navigation-active .flow-line{animation-play-state:paused!important}
#map.map-navigation-active .ps-map-label,#map.map-navigation-active .map-object-tooltip{visibility:hidden!important}
.leaflet-zoom-animated,.leaflet-marker-icon,.leaflet-tooltip{will-change:transform}
.ps-station-popup{min-width:min(250px,72vw)}
.ps-station-popup>p>b{color:var(--primary,var(--green,#0d6b57));font-weight:900}
.ps-popup-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:3px}
.ps-popup-actions>button{grid-column:1/-1;width:100%;min-height:38px;font-size:11px!important}
.leaflet-popup-content .ps-popup-actions>a{display:flex!important;align-items:center;justify-content:center;min-height:36px;margin:0!important;padding:7px 8px;border:1px solid var(--line,#dce6e2);border-radius:8px;background:#fff;color:var(--primary,var(--green,#0d6b57))!important;font-size:10px!important;text-align:center;text-decoration:none}
.leaflet-popup-content .ps-popup-actions>a:hover{border-color:color-mix(in srgb,var(--primary,var(--green,#0d6b57)) 45%,var(--line,#dce6e2));background:color-mix(in srgb,var(--primary,var(--green,#0d6b57)) 6%,white)}

/* Clear feeder group hierarchy */
.feeder-registry-head>.registry-head-actions{display:flex!important;align-items:stretch!important;flex-direction:column;justify-content:center;gap:6px;min-width:142px;text-align:left!important}
.registry-feeder-count{display:flex!important;align-items:baseline;justify-content:space-between;gap:8px;color:#31534b!important;font-size:11px!important;line-height:1.2}
.registry-feeder-count>b{color:var(--primary,var(--green,#0d6b57));font-size:20px;line-height:1;font-weight:900}
.feeder-registry-head .registry-station-details{display:flex;align-items:center;justify-content:center;width:100%;min-height:34px;margin:0!important;padding:7px 10px;border:1px solid color-mix(in srgb,var(--primary,var(--green,#0d6b57)) 24%,var(--line,#dce6e2));border-radius:8px;background:#fff;color:var(--primary,var(--green,#0d6b57));font-size:10px;font-weight:850}
.feeder-registry-head .registry-station-details:hover{background:color-mix(in srgb,var(--primary,var(--green,#0d6b57)) 6%,white);border-color:color-mix(in srgb,var(--primary,var(--green,#0d6b57)) 45%,var(--line,#dce6e2))}
.registry-toggle-hint{display:flex;align-items:center;justify-content:center;gap:6px;min-height:25px;color:#6c7d78;font-size:9px;font-weight:800}
.registry-toggle-hint>span{color:inherit!important;font-size:9px!important;letter-spacing:0!important;text-transform:none!important}
.registry-toggle-hint>i{display:grid!important;place-items:center;width:20px;height:20px;border-radius:50%;background:#e8f2ef;color:var(--primary,var(--green,#0d6b57))!important;font-size:13px;font-style:normal;transition:transform var(--ui-normal) var(--ui-ease)}
.registry-toggle-close{display:none}
.feeder-registry-details[open] .registry-toggle-open{display:none}
.feeder-registry-details[open] .registry-toggle-close{display:inline}
.feeder-registry-details[open] .registry-toggle-hint>i{transform:rotate(180deg)!important}

/* Large tablet and compact desktop */
@media(max-width:1280px){
  .stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .line-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .balance-grid{grid-template-columns:1fr}
  .map-toolbar{flex-wrap:wrap}
}
@media(min-width:801px) and (max-width:1080px){
  .sidebar{width:220px}.main-shell{margin-left:220px}
  .topbar{height:74px}.content{padding-inline:20px}
  .profile-chip>div,.system-live span{display:none}
  #map{height:calc(100dvh - 238px);min-height:460px}
}

/* Android + iPhone */
@media(max-width:800px){
  :root{--mobile-gutter:12px;--mobile-tap:44px;--mobile-bottom-clearance:max(var(--app-safe-bottom),12px)}
  html{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--paper,#f5f7f6)}
  body.app-page{position:fixed;inset:0;width:100%;height:100dvh;min-height:100svh;overflow:hidden;padding:0;background:var(--paper,#f5f7f6)}
  .main-shell{height:100dvh;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-bottom:0;scroll-padding-bottom:calc(var(--mobile-bottom-clearance) + 20px)}
  .topbar{height:auto;min-height:calc(62px + var(--app-safe-top));padding:calc(8px + var(--app-safe-top)) var(--mobile-gutter) 8px;gap:8px}
  .title-wrap{min-width:0;gap:9px}.title-wrap>div{min-width:0}.title-wrap h1{overflow:hidden;max-width:48vw;margin-top:2px;font-size:17px;white-space:nowrap;text-overflow:ellipsis}.title-wrap .eyebrow{font-size:8px;letter-spacing:.1em}
  .menu-btn,.icon-btn,.profile-chip>span,.top-actions>.install-app-button{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}
  .top-actions{gap:6px}.system-live,.profile-chip>div{display:none}.profile-chip{padding:0}.icon-btn{font-size:18px}
  .content{max-width:none;margin:0;padding:16px var(--mobile-gutter) calc(24px + var(--mobile-bottom-clearance));overflow-x:hidden}
  .content.active{min-height:calc(100dvh - 62px - var(--app-safe-top));animation:uiPageInMobile var(--ui-normal) var(--ui-ease) both}
  .section-head{align-items:stretch;flex-direction:column;gap:11px;margin-bottom:14px}.section-head h2{font-size:20px}.section-head p{font-size:11px}.section-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.section-actions>*{width:100%!important;max-width:none}
  .stats-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats-row article{min-width:0;padding:11px;gap:9px}.stat-icon{width:36px;height:36px;font-size:16px}.stats-row small{font-size:8px}.stats-row strong{font-size:18px}.stats-row span{font-size:9px}
  .line-grid,.report-grid,.admin-grid,.balance-grid,.user-settings-grid{grid-template-columns:1fr;gap:10px}
  .line-card,.report-grid article,.settings-card{padding:14px}.report-grid p{min-height:0}
  .primary,.secondary,.secondary-link,.danger-button,.row-action{min-height:var(--mobile-tap)}
  .action-icon-button,.edit-icon-button,.registry-edit,.geo-row-action{width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important}
  .form-grid input,.form-grid select,.form-grid textarea,.settings-form input,.settings-form select,.login-box input,.map-toolbar input,.map-toolbar select,.feeder-filter-card input,.feeder-filter-card select{font-size:16px!important}
  .form-grid input,.form-grid select,.settings-form input,.settings-form select{min-height:46px}
  .form-grid{grid-template-columns:1fr}.form-grid>*{min-width:0;grid-column:1!important}
  .modal{inset:0;width:100%;height:100dvh;padding:0;align-items:flex-end;overflow:hidden}
  .modal-card{display:flex;flex-direction:column;width:100%!important;max-width:none!important;max-height:calc(100dvh - max(var(--app-safe-top),8px));margin-top:max(var(--app-safe-top),8px);border-radius:18px 18px 0 0;overflow:hidden}
  :is(.mobile-admin-modal,#feederModal,#meterModal,#meterReadingsModal,#blogModal)>.modal-card,#blogModal .blog-editor-modal,.role-designer-modal{height:calc(var(--app-viewport-height,100dvh) - max(var(--app-safe-top),8px))!important;max-height:calc(var(--app-viewport-height,100dvh) - max(var(--app-safe-top),8px))!important;margin-top:max(var(--app-safe-top),8px)!important;margin-bottom:0!important;border-radius:18px 18px 0 0!important}
  .modal-head{flex:none;padding:13px var(--mobile-gutter)}.modal-head h2{font-size:17px}.modal-head button{width:40px;height:40px}
  .modal-card>.form-grid,.modal-card>.blog-form{flex:1;min-height:0;padding:12px var(--mobile-gutter) 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .form-actions{position:sticky;bottom:0;z-index:8;width:calc(100% + 24px);margin:8px -12px 0;padding:10px 12px calc(10px + var(--mobile-bottom-clearance));background:rgba(255,255,255,.97);border-top:1px solid var(--line,#dce6e2);backdrop-filter:blur(12px)}
  .form-actions button{flex:1;min-height:44px}
  .detail-drawer,.notification-panel{top:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding-bottom:0;overflow:hidden}
  .detail-drawer.open,.notification-panel.open{display:flex;flex-direction:column}.drawer-head,.panel-head{flex:none;padding-top:calc(14px + var(--app-safe-top))}.drawer-body,.notification-list{flex:1;min-height:0;overflow-y:auto;padding-bottom:calc(20px + var(--mobile-bottom-clearance));-webkit-overflow-scrolling:touch}
  .drawer-head h2{font-size:19px}.drawer-body{padding-inline:var(--mobile-gutter)}
  .detail-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.detail-overview>div{min-width:0;padding:9px 7px}.detail-overview small{font-size:8px}.detail-overview strong{overflow-wrap:anywhere;font-size:11px}
  .route-actions{grid-template-columns:1fr 1fr}.route-actions a{min-height:42px;align-items:center}
  .tabs{scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{min-height:42px;font-size:10px}
  .sidebar{width:min(86vw,320px);height:100dvh;max-height:100dvh;padding-top:calc(14px + var(--app-safe-top));padding-bottom:calc(10px + var(--mobile-bottom-clearance));transform:translateX(-105%);transition:transform var(--ui-slow) var(--ui-ease)}
  .sidebar.open{transform:translateX(0)}.sidebar nav{padding-block:12px}.nav-item{min-height:46px;font-size:13px}
  .table-wrap{max-width:100%;border-radius:var(--ui-radius-md);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .map-card{border-radius:12px}.map-toolbar{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;padding:8px}.map-toolbar>.search-box,.map-toolbar>select{grid-column:1/-1;width:100%;max-width:none}.map-toolbar>.tool-btn{grid-column:span 2;width:100%;min-width:0;padding-inline:4px}.map-toolbar .map-object-add{grid-column:1/6!important}.map-toolbar #mobileAddStation{grid-column:6/11!important}.map-live-counter{bottom:max(48px,calc(40px + var(--app-safe-bottom)))}
  #map{height:clamp(430px,calc(100dvh - 260px),680px);min-height:430px}
  .map-card.map-fullscreen,.map-card:fullscreen{height:100dvh!important;padding-bottom:0!important}.map-card.map-fullscreen .map-toolbar,.map-card:fullscreen .map-toolbar{padding-top:calc(8px + var(--app-safe-top));max-height:48dvh}.map-card.map-fullscreen #map,.map-card:fullscreen #map{min-height:0!important}
  .admin-console-panel{padding:12px}.admin-console-nav{position:sticky;top:calc(62px + var(--app-safe-top));z-index:15;grid-template-columns:repeat(2,minmax(0,1fr));background:rgba(237,242,240,.96);backdrop-filter:blur(10px)}
  .admin-console-nav button{min-height:42px;font-size:10px}.admin-panel-head{align-items:stretch;flex-direction:column}.admin-panel-head>.primary{width:100%;min-height:42px}
  .admin-role-grid,.admin-setting-grid{grid-template-columns:1fr}.admin-role-grid article,.admin-setting-grid article{min-height:62px}
  .role-presets>div{grid-template-columns:1fr 1fr}.role-permission-groups{grid-template-columns:1fr}.role-permission-tools{grid-template-columns:1fr}.role-permission-search{grid-column:1}.role-permission-actions button{min-height:40px}
  .session-item{grid-template-columns:38px minmax(0,1fr)}.session-action{grid-column:1/-1}.session-action button,.session-action form{width:100%}
}

@media(max-width:420px){
  :root{--mobile-gutter:10px}
  .title-wrap h1{max-width:43vw;font-size:16px}.title-wrap .eyebrow{display:none}
  .stats-row{gap:7px}.stats-row article{display:grid;grid-template-columns:34px minmax(0,1fr);padding:9px}.stat-icon{width:34px;height:34px}.stats-row strong{font-size:17px}
  .route-actions{grid-template-columns:1fr}.detail-overview{grid-template-columns:1fr 1fr}.detail-overview>div:last-child{grid-column:1/-1}
  .ops-summary{grid-template-columns:1fr 1fr}.ops-summary article{padding:10px}.ops-summary strong{font-size:18px}
  .role-presets>div{grid-template-columns:1fr}
  .login-panel{padding-inline:18px}
  .ps-station-popup{min-width:min(230px,70vw)}
  .feeder-registry-head>.registry-head-actions{min-width:128px}.registry-feeder-count{font-size:10px!important}.registry-feeder-count>b{font-size:18px}.feeder-registry-head .registry-station-details{padding-inline:7px;font-size:9px}.registry-toggle-hint>span{font-size:8px!important}
}

/* Login: no iOS input zoom, good short-screen fit and logo fallback */
@media(max-width:800px){
  .login-page{width:100%;min-height:100dvh;height:100dvh;overflow:auto;overscroll-behavior:none;padding:var(--app-safe-top) var(--app-safe-right) var(--app-safe-bottom) var(--app-safe-left)}
  .login-panel{min-height:100%;padding:clamp(20px,5vh,44px) 22px}
  .login-box{width:min(100%,430px);margin:auto}.login-box h2{font-size:clamp(25px,7.5vw,32px);line-height:1.1}.login-box>.muted{margin-bottom:24px}
  .login-box label{font-size:13px}.login-box input{height:46px;font-size:16px!important}.primary.wide{height:52px}
  .secure-note{font-size:10px;line-height:1.45}.mobile-brand{margin-bottom:clamp(28px,7vh,58px)}
}
@media(max-height:680px) and (max-width:800px){.mobile-brand{margin-bottom:20px}.login-panel{padding-block:16px}.login-box h2{font-size:25px}.login-box>.muted{margin-bottom:16px}.login-box label{margin-bottom:12px}.secure-note{margin-top:14px}}

/* Mobile fullscreen map: controls float above the map instead of consuming it */
.map-search-toggle{display:none}
@media(max-width:800px){
  :root{--mobile-browser-clearance:max(var(--app-safe-bottom),30px)}
  html,body.app-page{height:var(--app-viewport-height,100dvh)!important;max-height:var(--app-viewport-height,100dvh)!important;min-height:0!important}
  body.app-page{inset:0!important;padding-bottom:0!important}
  .main-shell{height:var(--app-viewport-height,100dvh)!important;max-height:var(--app-viewport-height,100dvh)!important;min-height:0!important;box-sizing:border-box;padding-bottom:var(--mobile-browser-clearance)!important;scroll-padding-bottom:calc(var(--mobile-browser-clearance) + 22px)!important}
  .content{padding-bottom:calc(26px + var(--mobile-browser-clearance))!important}
  .map-card.map-fullscreen,.map-card:fullscreen{padding:0!important;background:#e7efec}
  .map-card.map-fullscreen .map-toolbar,.map-card:fullscreen .map-toolbar{position:absolute!important;inset:0 0 auto 0!important;z-index:2050!important;display:grid!important;grid-template-columns:38px minmax(88px,1fr) repeat(5,38px)!important;grid-auto-rows:38px;gap:4px!important;width:100%;height:auto!important;max-height:none!important;padding:calc(6px + var(--app-safe-top)) 7px 6px!important;overflow:visible!important;border:0!important;background:linear-gradient(180deg,rgba(7,31,26,.28),rgba(7,31,26,0))!important;box-shadow:none!important;pointer-events:none}
  .map-card.map-fullscreen .map-toolbar>*,.map-card:fullscreen .map-toolbar>*{pointer-events:auto;box-shadow:0 5px 16px rgba(7,32,27,.16)}
  .map-card.map-fullscreen .map-search-toggle,.map-card:fullscreen .map-search-toggle{display:grid!important;grid-column:1;grid-row:1;place-items:center;width:38px!important;height:38px!important;border-color:rgba(255,255,255,.78);background:#fff;color:#173f36;font-size:18px}
  .map-card.map-fullscreen .map-toolbar>select,.map-card:fullscreen .map-toolbar>select{grid-column:2!important;grid-row:1;width:100%!important;height:38px!important;min-width:0;padding:0 6px;border-color:rgba(255,255,255,.78);background:#fff;font-size:10px!important;text-overflow:ellipsis;box-shadow:0 5px 16px rgba(7,32,27,.16)}
  .map-card.map-fullscreen .map-toolbar>.tool-btn:not(.map-search-toggle),.map-card:fullscreen .map-toolbar>.tool-btn:not(.map-search-toggle){grid-column:auto!important;grid-row:1;width:38px!important;min-width:38px!important;height:38px!important;padding:0!important;background:#fff;font-size:16px}
  .map-card.map-fullscreen .map-toolbar>.fullscreen-map-btn,.map-card:fullscreen .map-toolbar>.fullscreen-map-btn{background:#153f36!important;color:#fff!important;border-color:#153f36!important;box-shadow:0 5px 18px rgba(4,24,20,.3)!important}
  .map-card.map-fullscreen .map-toolbar .map-object-add,.map-card:fullscreen .map-toolbar .map-object-add{display:grid!important;grid-column:6!important;grid-row:1!important;place-items:center;width:38px!important;min-width:38px!important;height:38px!important;margin:0!important;padding:0!important;border:1px solid rgba(255,255,255,.8)!important;border-radius:10px!important;background:rgba(35,77,68,.96)!important;font-size:0!important;box-shadow:0 5px 16px rgba(7,32,27,.2)!important}.map-card.map-fullscreen .map-toolbar .map-object-add:before,.map-card:fullscreen .map-toolbar .map-object-add:before{content:'⌂';font-size:17px}
  .map-card.map-fullscreen .map-toolbar .mobile-map-add,.map-card:fullscreen .map-toolbar .mobile-map-add{display:grid!important;grid-column:7!important;grid-row:1!important;place-items:center;width:38px!important;min-width:38px!important;height:38px!important;margin:0!important;padding:0!important;border:1px solid rgba(255,255,255,.8)!important;border-radius:10px!important;background:var(--primary,var(--green,#0d6b57))!important;color:#fff!important;font-size:0!important;box-shadow:0 5px 16px rgba(7,32,27,.2)!important}.map-card.map-fullscreen .map-toolbar .mobile-map-add:before,.map-card:fullscreen .map-toolbar .mobile-map-add:before{content:'+';font-size:21px;font-weight:900}
  .map-card.map-fullscreen .search-box,.map-card:fullscreen .search-box{position:absolute!important;top:calc(var(--app-safe-top) + 50px)!important;left:7px!important;right:7px!important;z-index:10!important;display:flex!important;width:auto!important;min-width:0!important;height:44px;opacity:0;visibility:hidden;transform:translateY(-7px) scale(.985);transition:opacity var(--ui-normal) ease,transform var(--ui-normal) var(--ui-ease),visibility 0s linear var(--ui-normal);pointer-events:none!important;background:#fff!important;box-shadow:0 12px 30px rgba(6,31,26,.24)!important}
  .map-card.map-fullscreen.fullscreen-search-open .search-box,.map-card:fullscreen.fullscreen-search-open .search-box{opacity:1;visibility:visible;transform:none;transition-delay:0s;pointer-events:auto!important}
  .map-card.map-fullscreen .search-box input,.map-card:fullscreen .search-box input{height:42px!important;font-size:16px!important}
  .map-card.map-fullscreen .map-quick-results,.map-card:fullscreen .map-quick-results{width:100%;max-height:min(48dvh,360px)}
  .map-card.map-fullscreen .leaflet-control-container .leaflet-top,.map-card:fullscreen .leaflet-control-container .leaflet-top{z-index:2200!important}
  .map-card.map-fullscreen .leaflet-top.leaflet-right,.map-card:fullscreen .leaflet-top.leaflet-right{top:calc(var(--app-safe-top) + 49px)}
  .map-card.map-fullscreen.fullscreen-search-open .leaflet-top.leaflet-right,.map-card:fullscreen.fullscreen-search-open .leaflet-top.leaflet-right{top:calc(var(--app-safe-top) + 99px)}
  .map-card.map-fullscreen .leaflet-bottom,.map-card:fullscreen .leaflet-bottom{bottom:var(--mobile-browser-clearance)!important}
  .map-card.map-fullscreen .map-legend,.map-card:fullscreen .map-legend{bottom:calc(var(--mobile-browser-clearance) + 8px)!important}
  .map-card.map-fullscreen .map-live-counter,.map-card:fullscreen .map-live-counter{bottom:calc(var(--mobile-browser-clearance) + 48px)!important}
  .map-card.map-fullscreen #map,.map-card:fullscreen #map{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important}

  .radiomer-table-wrap.radiomer-fullscreen{--radiomer-fixed-top:calc(var(--app-safe-top) + 38px);height:var(--app-viewport-height,100dvh)!important;max-height:var(--app-viewport-height,100dvh)!important;padding:0 0 var(--mobile-browser-clearance)!important;box-sizing:border-box!important}
  .radiomer-table-wrap.radiomer-fullscreen .radiomer-fullscreen-close{top:calc(var(--app-safe-top) + 3px)!important;left:7px!important;width:34px!important;height:34px!important;border-color:#153f36!important;background:#153f36!important;color:#fff!important;font-size:22px!important;box-shadow:0 5px 16px rgba(4,28,23,.25)!important}
  .radiomer-table-wrap.radiomer-fullscreen .radiomer-table th{top:var(--radiomer-fixed-top)!important;padding:6px 7px!important;font-size:10px!important}
  .radiomer-table-wrap.radiomer-fullscreen .radiomer-table thead tr:nth-child(2) th{top:calc(var(--radiomer-fixed-top) + 42px)!important}
  .radiomer-table-wrap.radiomer-fullscreen .radiomer-table{margin-top:0!important}
  .radiomer-table-wrap.radiomer-fullscreen .radiomer-table th:nth-child(3),.radiomer-table-wrap.radiomer-fullscreen .radiomer-table td:nth-child(3){min-width:82px!important}
  .radiomer-table-wrap.radiomer-fullscreen .radiomer-status{white-space:nowrap!important;font-size:9px!important}
  .radiomer-table-wrap.radiomer-fullscreen:before{content:'';position:sticky;top:0;left:0;z-index:5008;display:block;width:100%;height:var(--radiomer-fixed-top);margin-bottom:calc(-1 * var(--radiomer-fixed-top));background:rgba(255,255,255,.97);pointer-events:none}
  body.radiomer-fullscreen-open{height:var(--app-viewport-height,100dvh)!important;max-height:var(--app-viewport-height,100dvh)!important;padding-bottom:0!important}

  /* 60 FPS map path: avoid full-pane filters and expensive repaint effects */
  #map{contain:layout paint;transform:translateZ(0);backface-visibility:hidden}
  #map .leaflet-map-pane,#map .leaflet-tile-pane,#map .leaflet-overlay-pane,#map .leaflet-marker-pane,#map .leaflet-tooltip-pane{transform-style:preserve-3d;backface-visibility:hidden}
  #map .leaflet-tile-pane{filter:none!important}
  #map .leaflet-pane.leaflet-stationPoints-pane{filter:none!important}
  #map .leaflet-pane.leaflet-networkPoints-pane,#map .leaflet-pane.leaflet-mapBuildings-pane{filter:none!important}
  #map .leaflet-tile,#map .leaflet-marker-icon,#map .leaflet-zoom-animated{image-rendering:auto;will-change:transform}
  #map.map-navigation-active .ml-ps-marker,#map.map-navigation-active .ml-building-marker,#map.map-navigation-active .ml-line-point{box-shadow:none!important;transition:none!important}
  .map-card.map-fullscreen .ml-ps-marker,.map-card:fullscreen .ml-ps-marker{box-shadow:0 3px 8px rgba(7,38,31,.2)}
  .map-card.map-fullscreen .map-toolbar,.map-card:fullscreen .map-toolbar{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(255,255,255,.97)!important}
}
@media(max-width:340px){.map-card.map-fullscreen .map-toolbar,.map-card:fullscreen .map-toolbar{grid-template-columns:34px minmax(50px,1fr) repeat(5,34px)!important;gap:3px!important;padding-inline:5px!important}.map-card.map-fullscreen .map-search-toggle,.map-card:fullscreen .map-search-toggle,.map-card.map-fullscreen .map-toolbar>.tool-btn:not(.map-search-toggle),.map-card:fullscreen .map-toolbar>.tool-btn:not(.map-search-toggle),.map-card.map-fullscreen .map-toolbar .map-object-add,.map-card:fullscreen .map-toolbar .map-object-add,.map-card.map-fullscreen .map-toolbar .mobile-map-add,.map-card:fullscreen .map-toolbar .mobile-map-add{width:34px!important;min-width:34px!important}}

/* Mobile motion — compositor-only transforms, disabled by OS reduced-motion */
@media(max-width:800px) and (prefers-reduced-motion:no-preference){
  .content.active{animation:mobileViewEnter 280ms var(--ui-ease) both}
  .sidebar{will-change:transform}.sidebar.open{animation:mobileSidebarIn 300ms var(--ui-ease) both}
  .detail-drawer.open,.notification-panel.open{animation:mobilePanelIn 300ms var(--ui-ease) both;will-change:transform}
  .modal.open .modal-card{animation:mobileSheetIn 260ms var(--ui-ease) both;will-change:transform,opacity}
  .feeder-registry-details[open]>.feeder-registry-lazy{animation:mobileReveal 240ms var(--ui-ease) both;transform-origin:top}
  .map-card.map-fullscreen .map-toolbar,.map-card:fullscreen .map-toolbar{animation:mobileToolbarIn 260ms var(--ui-ease) both}
  .toast,.ajax-action-toast,.map-save-notice{will-change:transform,opacity}
}

@keyframes mobileViewEnter{from{opacity:.35;transform:translate3d(7px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes mobileSidebarIn{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes mobilePanelIn{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes mobileSheetIn{from{opacity:.4;transform:translate3d(0,24px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes mobileReveal{from{opacity:.4;transform:scaleY(.985) translate3d(0,-4px,0)}to{opacity:1;transform:scaleY(1) translate3d(0,0,0)}}
@keyframes mobileToolbarIn{from{opacity:.35;transform:translate3d(0,-10px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes uiPageIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes uiPageInMobile{from{opacity:0;transform:translateX(6px)}to{opacity:1;transform:none}}
@keyframes uiModalIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@keyframes uiToastIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
