/* ===== The app layer (#253–254). html.is-app is set by modules/app.js: the Play Store app, the
   home-screen install, or a page reached from either. ===== */

/* the loading bar: inside the app there is no browser bar to show that a tap was heard */
.navbar-progress{position:fixed;left:0;top:0;z-index:2100;height:3px;width:0;background:var(--c-live);box-shadow:0 0 8px rgba(249,97,66,.6);opacity:0;pointer-events:none}
.navbar-progress.is-on{opacity:1;width:82%;transition:width 6s cubic-bezier(.1,.7,.1,1),opacity .1s}
/* chrome is not text: a long press on it should not select or call out */
.is-app .topbar,.is-app .tabbar,.is-app .sheet__head,.is-app .chips,.is-app .sw-nav{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.is-app .tabbar a:active,.is-app .tabbar button:active{transform:scale(.95);transition:transform .08s}

/* ---- "download the app", mobile site only ---- */
.appbanner{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--c-card);border-bottom:1px solid var(--c-line)}
.appbanner__ic{width:38px;height:38px;border-radius:9px;flex:none}
.appbanner__b{flex:1;min-width:0;line-height:1.25}
.appbanner__t{display:block;font:800 13.5px/1.2 var(--ff-ui);color:var(--c-text)}
.appbanner__x{display:block;font-size:12px;color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appbanner__get{flex:none;padding:9px 14px;border-radius:var(--r-pill);background:var(--c-primary);color:#fff;font:700 12.5px/1 var(--ff-ui)}
.appbanner__close{flex:none;width:30px;height:30px;border:0;background:none;color:var(--c-muted);display:grid;place-items:center}
.appbanner__close svg{width:13px;height:13px}

/* ---- the rate prompt (a bottom sheet) ---- */
.ratesheet .sheet__body{text-align:center;padding-bottom:calc(20px + env(safe-area-inset-bottom))}
.ratesheet__ic{width:64px;height:64px;border-radius:16px;margin:4px auto 14px;display:block}
.ratesheet__t{font:800 19px/1.2 var(--ff-display);margin:0 0 6px}
.ratesheet__x{color:var(--c-muted);font-size:14px;margin:0 0 18px}
.ratesheet__btns{display:grid;gap:8px}
.ratesheet__yes{display:block;padding:14px;border-radius:var(--r-pill);background:var(--c-primary);color:#fff;font:700 15px/1 var(--ff-ui)}
.ratesheet__no,.ratesheet__issue{display:block;width:100%;padding:12px;border:0;background:none;color:var(--c-muted);font:600 14px/1 var(--ff-ui)}
