.pwa-banner{position:fixed;bottom:20px;left:5%;right:5%;z-index:100;background:#242424;border:1px solid #ff6500;border-radius:12px;padding:16px;color:white}.pwa-bottom{display:none}.notification-device{display:flex;gap:20px;justify-content:space-between;align-items:center;border-bottom:1px solid #333;padding:16px 0}.notification-device form{margin:0}.notification-actions{display:flex;gap:12px;flex-wrap:wrap}.notification-actions button{font-size:13px;padding:10px 14px}.pwa-status:empty{display:none}form[aria-busy=true]{opacity:.75}form[aria-busy=true] button[type=submit]{pointer-events:none}
@media(max-width:760px){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}header{padding-top:max(12px,env(safe-area-inset-top));gap:10px}input,select,textarea{font-size:16px!important}button,.button,summary{min-height:44px}main{overflow-wrap:anywhere}.pwa-banner{bottom:calc(16px + env(safe-area-inset-bottom))}.notifications-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}.notification-device{flex-wrap:wrap}dialog{max-height:85dvh;overflow:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

@media(max-width:760px){.pwa-standalone body:has(textarea:focus) .pwa-bottom,.pwa-standalone body:has(input:focus) .pwa-bottom{display:none}.profile-hero{flex-wrap:wrap}}
[hidden]{display:none!important}

.navigation-shell{position:relative}.mobile-app-link{display:none}@media(max-width:1100px){.mobile-app-link{position:absolute;top:6px;right:5%;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:24px;font-size:13px;font-weight:700;background:var(--panel);color:var(--text)}.mobile-app-link svg{width:18px;height:18px;color:var(--accent)}.mobile-app-link:hover{border-color:var(--accent);color:var(--accent)}}@media(max-width:560px){.mobile-app-link{right:20px}}

/* Mobile header: identity, progression, then community actions. */
@media(max-width:1100px){
 body>header{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(78px,auto);grid-template-areas:"brand bell profile" "rank rank score" "karma give give";gap:10px 12px;height:auto;min-height:0;padding:16px 5%;padding-top:max(16px,env(safe-area-inset-top))}
 body>header .brand{grid-area:brand;margin:0;gap:8px;min-width:0}
 body>header .brand img{width:100px;height:42px}
 body>header .brand span{font-size:10px;letter-spacing:1.5px;padding-left:8px}
 body>header .location,body>header .header-divider{display:none}
 body>header .user{grid-area:profile;margin:0;max-width:120px;min-height:44px;padding:6px 10px 6px 6px;font-size:12px;justify-self:end}
 body>header .header-avatar{width:28px;height:28px}
 body>header .notice-bell{grid-area:bell;justify-content:center;min-height:44px;font-size:12px;gap:4px}
 body>header .header-rank{grid-area:rank;margin:0;min-width:0;gap:10px;padding:10px 12px;background:var(--panel);border-radius:8px;min-height:62px}
 body>header .header-rank img{width:48px;height:26px}
 body>header .header-rank-info{flex:1;min-width:0}
 body>header .header-rank-info progress{width:100%;max-width:160px}
 body>header .header-rank-info small{font-size:10px}
 body>header .header-score{grid-area:score;display:flex;align-items:center;justify-content:center;align-self:stretch;border:0;margin:0;padding:8px 12px;background:var(--panel);border-radius:8px;font-size:13px}
 body>header .karma-alert{grid-area:karma;margin:0;display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;font-size:12px}
 body>header .give-karma{grid-area:give;display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;font-size:12px}
 body>header:not(:has(.user)){display:flex}
}
@media(max-width:560px){body>header{padding-left:20px;padding-right:20px}}
@media(max-width:360px){body>header{gap:8px;grid-template-columns:minmax(0,1fr) 42px minmax(64px,auto)}body>header .brand img{width:82px}body>header .brand span{font-size:9px;padding-left:5px}body>header .brand{gap:5px}body>header .user{max-width:84px}}
