.mobile-shell{display:none}
.mobile-menu{display:none}
@media (max-width:767px),(max-width:1024px) and (pointer:coarse){
  body.asg-mobile{--mobile-top:68px;--mobile-bottom:calc(64px + env(safe-area-inset-bottom,0px));overflow:hidden}
  body.asg-mobile #app.layout{height:100vh;height:100dvh;display:block;min-width:0}
  body.asg-mobile .side,body.asg-mobile .main>.top{display:none}
  body.asg-mobile .main{height:100%;padding-top:calc(var(--mobile-top) + env(safe-area-inset-top,0px));padding-bottom:var(--mobile-bottom);min-width:0}
  body.asg-mobile .main::before{opacity:.2}
  body.asg-mobile #view.content{padding:16px 14px 28px;width:100%;min-width:0;max-width:100%;overflow-x:hidden;scrollbar-gutter:auto}
  body.asg-mobile .mobile-shell{display:contents}
  .mobile-topbar{position:fixed;top:0;left:0;right:0;height:calc(var(--mobile-top) + env(safe-area-inset-top,0px));padding:calc(10px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 10px max(14px,env(safe-area-inset-left,0px));display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fffdf8f5;border-bottom:1px solid var(--asg-border);z-index:30}
  .mobile-topbar .brand{width:110px;height:48px;min-height:0;margin:0;padding:0;border:0;flex-shrink:0}
  .mobile-topbar .brand .brand-logo{height:48px;width:108px;border:0;padding:0;background:transparent;max-width:100%}
  .mobile-page-title{font-weight:700;font-size:15px;text-align:center;overflow-wrap:anywhere}
  .mobile-topbar>button{min-width:44px;padding:9px 10px;font-size:12px}
  .mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--mobile-bottom);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:5px max(8px,env(safe-area-inset-right,0px)) calc(5px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));background:#fffdf8fa;border-top:1px solid var(--asg-border);box-shadow:0 -5px 18px #143a2910;z-index:30}
  .mobile-bottom-nav button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;background:transparent;color:#607064;border:0;border-radius:10px;min-width:0;min-height:48px;padding:3px 0;font-size:11px;line-height:1.4}
  .mobile-bottom-nav button[aria-current=page]{background:#edf1e6;color:var(--asg-green)}
  .mobile-tab-icon{font-size:22px;line-height:1.1}
  body.asg-mobile button{min-height:44px;max-width:100%}
  body.asg-mobile input,body.asg-mobile select,body.asg-mobile textarea{font-size:16px;max-width:100%;min-width:0}
  body.asg-mobile form{max-width:none}
  body.asg-mobile .panel{padding:18px 16px;margin-bottom:16px;overflow-wrap:anywhere}
  body.asg-mobile .panel h2{font-size:18px}
  body.asg-mobile .grid,body.asg-mobile .cards{grid-template-columns:1fr;gap:14px}
  body.asg-mobile .hero{padding:22px;min-height:0}
  body.asg-mobile .hero h1{font-size:24px}
  body.asg-mobile .toolbar{gap:10px;align-items:flex-start}
  body.asg-mobile .toolbar h2{font-size:23px}
  body.asg-mobile .toolbar>div{display:flex;flex-wrap:wrap;gap:8px}
  body.asg-mobile table{display:block;min-width:0;width:100%;background:transparent}
  body.asg-mobile thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  body.asg-mobile tbody{display:grid;gap:12px}
  body.asg-mobile tr{display:block;border:1px solid var(--asg-rule);border-radius:12px;background:#fffefa;overflow:hidden}
  body.asg-mobile td{display:flex;flex-direction:column;gap:3px;width:100%;padding:10px 12px;border-bottom:1px solid #f1eadd;font-size:14px;overflow-wrap:anywhere;white-space:normal}
  body.asg-mobile td::before{content:attr(data-label);font-size:11px;color:var(--asg-muted);font-weight:600}
  body.asg-mobile td:last-child{border:0}
  body.asg-mobile td[colspan]{display:block;color:var(--asg-muted);text-align:center;padding:20px 12px}
  body.asg-mobile td[colspan]::before{display:none}
  body.asg-mobile td button{align-self:flex-start;white-space:normal}
  .mobile-welcome{padding:22px;border:1px solid var(--asg-border);border-top:3px solid var(--asg-gold);border-radius:18px;background:linear-gradient(115deg,#fffefa,#f3ead5);box-shadow:var(--asg-shadow);margin-bottom:16px}
  .mobile-welcome small{color:#8e7437;letter-spacing:.1em;font-size:11px}
  .mobile-welcome h1{font-size:23px;margin:8px 0}
  .mobile-welcome p{margin:6px 0;color:var(--asg-muted);font-size:13px}
  .mobile-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}
  .mobile-stat{padding:13px 8px;text-align:center;background:var(--asg-surface);border:1px solid var(--asg-border);border-radius:12px;font-size:11px;overflow-wrap:anywhere}
  .mobile-stat strong{display:block;font-size:25px;color:var(--asg-green);font-variant-numeric:tabular-nums}
  .mobile-section{margin:20px 0}
  .mobile-section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
  .mobile-section-heading h2{font-size:18px;margin:0}
  .mobile-section-heading button{padding:6px 10px;font-size:12px}
  .mobile-record{padding:15px;margin:10px 0;background:var(--asg-surface);border:1px solid var(--asg-border);border-radius:14px;box-shadow:0 4px 12px #725d2006}
  .mobile-record h3{font-size:15px;margin:0 0 8px}
  .mobile-record p{font-size:13px;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}
  .mobile-record footer{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--asg-muted);font-size:11px}
  .mobile-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;align-items:start}
  .mobile-shortcuts button,.mobile-account-action{width:100%;text-align:left;background:var(--asg-surface);color:var(--asg-green);border:1px solid var(--asg-border);padding:14px;min-width:0}
  .mobile-shortcuts button{min-height:64px;align-self:start}
  .mobile-account-action{margin:8px 0}
  dialog.mobile-menu[open]{display:block;position:fixed;inset:auto 0 0;width:100%;max-width:620px;max-height:85vh;max-height:85dvh;margin:0 auto;padding:20px 18px calc(20px + env(safe-area-inset-bottom,0px));border:1px solid var(--asg-border);border-radius:22px 22px 0 0;overflow:auto;background:var(--asg-bg);color:var(--asg-text);box-shadow:0 -12px 40px #043c2a30}
  .mobile-menu::backdrop{background:#062c2380}
  .mobile-menu-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:-20px;padding:12px 0;background:var(--asg-bg);z-index:1}
  .mobile-menu-heading h2{font-size:21px;margin:0}
  .mobile-menu-heading button{min-width:44px}
  .mobile-menu details{border-top:1px solid var(--asg-border);padding:10px 0}
  .mobile-menu summary{padding:10px 0;font-weight:700;cursor:pointer}
  .mobile-menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0}
  .mobile-menu-links button{font-size:13px;text-align:left;background:var(--asg-surface);color:var(--asg-green);border:1px solid var(--asg-border)}
  body.asg-mobile.organization-overview #view.content{padding:14px 10px 18px}
  body.asg-mobile .chart-controls{gap:10px}
  body.asg-mobile .overview-heading{padding-left:12px;min-width:180px}
  body.asg-mobile .chart-controls .overview-heading h2{font-size:23px}
  body.asg-mobile .overview-heading p{font-size:10px}
  body.asg-mobile .chart-actions{gap:6px;width:100%}
  body.asg-mobile .chart-actions button{padding:8px 10px;font-size:12px}
  body.asg-mobile .chart-caption{gap:8px}
  body.asg-mobile .chart-caption p{font-size:11px}
  .mobile-org-modes{display:flex;gap:8px;margin:6px 0 10px;flex-shrink:0}
  .mobile-org-modes button{flex:1;background:var(--asg-surface-soft);color:var(--asg-green);font-size:12px;padding:8px}
  .mobile-org-modes button[aria-pressed=true]{background:var(--asg-green);color:white}
  body.asg-mobile:not(.mobile-org-list) .org-viewport{touch-action:none;min-height:180px}
  body.asg-mobile.mobile-org-list .org-viewport{touch-action:pan-y;min-height:200px}
  body.asg-mobile.mobile-org-list .org-world{position:relative;width:100%;padding:10px 4px 24px;transform:none!important}
  body.asg-mobile.mobile-org-list .org-stage{width:100%!important;height:auto!important;margin:0}
  body.asg-mobile.mobile-org-list .chart-tree,body.asg-mobile.mobile-org-list .chart-tree ul{display:block;width:100%;padding:0;margin:0}
  body.asg-mobile.mobile-org-list .chart-tree li{padding:0;max-width:100%}
  body.asg-mobile.mobile-org-list .chart-tree li::before,body.asg-mobile.mobile-org-list .chart-tree li::after,body.asg-mobile.mobile-org-list .chart-tree ul::before{display:none}
  body.asg-mobile.mobile-org-list .chart-tree ul{margin:12px 0 0;padding:0 0 0 10px;border-left:2px solid var(--asg-gold)}
  body.asg-mobile.mobile-org-list .chart-node{width:100%;max-width:100%;margin:0 0 14px}
  body.asg-mobile.mobile-org-list .chart-node .company-node>summary{height:auto;min-height:124px;padding:14px;gap:12px;font-size:16px}
  body.asg-mobile.mobile-org-list .chart-node .company-identity{width:84px;height:84px}
  body.asg-mobile.mobile-org-list .chart-headquarters .company-identity{width:96px;height:84px}
  body.asg-mobile.mobile-org-list .company-caption{padding-left:12px;gap:7px}
  body.asg-mobile.mobile-org-list .headquarters-brand{font-size:22px}
  body.asg-mobile.mobile-org-list .branch-toggle{display:block;position:static;transform:none;margin:10px auto 0;width:44px;height:44px}
  body.asg-mobile.mobile-org-list .chart-actions button[onclick^="zoomOrganization"],body.asg-mobile.mobile-org-list #org-zoom,body.asg-mobile.mobile-org-list .chart-actions button[onclick="fitOrganization()"]{display:none}
  body.asg-mobile.organization-fullscreen .main{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
  body.asg-mobile.organization-fullscreen .mobile-topbar,body.asg-mobile.organization-fullscreen .mobile-bottom-nav{display:none}
  body.asg-mobile.organization-fullscreen #view.content{padding:12px 10px}
  body.asg-mobile .login{padding:20px max(16px,env(safe-area-inset-right,0px)) 20px max(16px,env(safe-area-inset-left,0px))}
  body.asg-mobile .loginbox{padding:26px 22px}
  /* Mobile brand framework. Desktop styles and the organization camera are unchanged. */
  body.asg-mobile{--mobile-brand-photo:url('/static/mobile-assets/asg-building.jpg');--mobile-brand-wave:url('/static/mobile-assets/brand-wave.svg')}
  body.asg-mobile .mobile-topbar{background:#f8fcfaf2;border-color:#ffffff70;box-shadow:0 2px 16px #003e2c08}
  body.asg-mobile .mobile-bottom-nav{border-radius:24px 24px 0 0;background:#ffffffed;border-color:#fff;box-shadow:0 -6px 30px #004b3710}
  body.asg-mobile .mobile-bottom-nav button[aria-current=page]{background:#e5f0e9;color:#00553b}
  body.asg-mobile.mobile-home .main{background:#e4f0eb}
  body.asg-mobile.mobile-home .main::before{display:none}
  body.asg-mobile.mobile-home #view.content{padding:0 0 24px;background:linear-gradient(#e4f0eb,#f4f8f6)}
  .mobile-brand-hero{height:clamp(280px,80vw,390px);position:relative;isolation:isolate;background:var(--mobile-brand-photo) center top/100% auto no-repeat #d9eaf6}
  .mobile-brand-hero::after{content:"";position:absolute;inset:auto 0 -1px;height:65px;background:var(--mobile-brand-wave) center bottom/100% 100% no-repeat;pointer-events:none;z-index:1}
  .mobile-hero-copy{position:absolute;left:20px;top:20px;width:45%;color:#052f25;text-shadow:0 1px 14px #fff}
  .mobile-hero-copy small{font-size:10px;letter-spacing:.18em;font-weight:700}
  .mobile-hero-copy h1{font-size:clamp(20px,5.6vw,29px);line-height:1.35;margin:12px 0 8px;overflow-wrap:anywhere}
  .mobile-hero-copy h1 .business-title{display:block}
  .mobile-hero-copy p{font-size:12px;line-height:1.6;margin:0;max-width:155px}
  body.asg-mobile .mobile-hero-refresh{position:absolute;left:20px;bottom:68px;font-size:11px;padding:8px 12px;min-height:36px;background:#ffffffd9;border:1px solid #ffffffcc;box-shadow:0 3px 12px #004b3710}
  .mobile-home-content{position:relative;padding:0 12px 16px;margin-top:-6px;z-index:2}
  .mobile-home-content>.mobile-section{padding:16px 12px;margin:0 0 13px;border:1.5px solid #ffffff;border-radius:23px;background:#ffffffc9;box-shadow:0 8px 24px #1a503608}
  .mobile-home-content>.mobile-section:first-child>.mobile-section-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .mobile-home-content .mobile-section-heading{padding:0 3px}
  .mobile-home-content .mobile-section-heading h2{font-size:18px}
  .mobile-home-content .mobile-section-heading button{font-size:11px;background:transparent;border:0;min-height:36px}
  .mobile-home-content .mobile-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 7px}
  .mobile-home-content .mobile-shortcuts button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;border:0;border-radius:15px;background:linear-gradient(#eaf3ef,#f2f7f4);padding:12px 3px;min-height:88px;color:#074a36;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
  .mobile-feature-icon{width:30px;height:30px;flex-shrink:0}
  .mobile-home-content .mobile-record{box-shadow:none;background:#fffffff0;border-color:#e3eee7}
  .mobile-home-content>.mobile-notice-banner{padding:0;overflow:hidden;background:radial-gradient(ellipse at 95% 120%,#b1d3c0 0,transparent 65%),#f7fcf9}
  body.asg-mobile .mobile-notice-banner>button{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:18px;text-align:left;background:transparent;color:#073c2b;border:0;border-radius:0}
  .mobile-notice-banner strong{display:block;font-size:20px;margin-bottom:6px}
  .mobile-notice-banner .business-title{display:block;max-width:65vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#426155;font-size:13px}
  .mobile-notice-banner>button>span:last-child{display:grid;place-items:center;border-radius:50%;width:30px;height:30px;background:#006044;color:white;font-size:27px;flex-shrink:0}
  .mobile-work-links{background:#fff;border-radius:12px;padding:0 10px}
  body.asg-mobile .mobile-work-links button{display:flex;align-items:center;gap:12px;width:100%;background:transparent;color:#183a2c;border:0;border-bottom:1px solid #edf2ed;border-radius:0;padding:13px 0;text-align:left;font-size:14px}
  .mobile-work-links button:last-child{border-bottom:0}
  .mobile-work-links button strong{margin-left:auto;color:#006044;font-size:17px}
  .mobile-work-links button>span:last-child{font-size:24px;color:#86968d}
  body.asg-mobile .login{display:block;position:relative;padding:clamp(240px,70vw,440px) 14px 62px;height:100vh;height:100dvh;background:var(--mobile-brand-photo) center top/100% auto no-repeat,linear-gradient(#daeaf6,#edf6f6 65%,#daeae1);isolation:isolate;scroll-padding-bottom:24px}
  body.asg-mobile .login::after{content:"";position:fixed;bottom:0;left:0;width:100%;height:90px;background:var(--mobile-brand-wave) center/100% 100% no-repeat;transform:scaleX(-1);pointer-events:none;z-index:-1}
  body.asg-mobile .loginbox{display:flex;flex-direction:column;width:min(460px,100%);margin:0 auto;padding:22px 20px 26px;border:1px solid #ffffffee;border-radius:26px;background:#f8fcfbed;box-shadow:0 14px 46px #12564418;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.asg-mobile .loginbox>h1,body.asg-mobile .loginbox>p{display:none}
  .mobile-login-brand{order:-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 8px;margin-bottom:16px;color:#004c36}
  .mobile-login-brand small{font-size:10px;font-weight:700;letter-spacing:.14em}
  .mobile-login-brand h2{font-size:18px;line-height:1.4;margin:5px 0 0}
  .mobile-login-brand p{font-size:12px;line-height:1.5;color:#577064;flex-basis:100%;margin:0}
  body.asg-mobile .mobile-login-language{margin:0}
  body.asg-mobile .mobile-login-language select{width:auto;min-height:44px;margin:0;padding:8px 25px 8px 9px;border:1px solid #d2e2da;border-radius:10px;background:#ffffffb8;color:#00553d;font-size:13px}
  .mobile-login-language .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  body.asg-mobile #loginForm{display:grid;gap:10px}
  body.asg-mobile #loginForm label{font-size:12px;color:#3c6252;margin:0}
  body.asg-mobile #loginForm input{margin:0 0 5px;padding:15px;min-height:52px;background:#ffffffbd;border:1px solid #d9e5df;border-radius:14px;color:#173f30}
  body.asg-mobile #loginForm input:focus-visible{outline:2px solid #a98b42;outline-offset:2px}
  body.asg-mobile #loginForm button{margin-top:9px;min-height:52px;border:0;border-radius:15px;background:linear-gradient(110deg,#147a63,#00533c);color:#fff;font-size:18px;box-shadow:0 5px 14px #00543c1a}
  body.asg-mobile #loginError{margin:0;font-size:13px;overflow-wrap:anywhere}
}
