/* Mobile storefront: shared by server-rendered pages and interactive navigation. */
body.mobile-app{--ink:#1c1c1e;--muted:#73737b;--blue:#007aff;--line:#e5e5ea;--accent:#e8f2ff;--surface:#fff;--card:#fff;--page:#f5f5f7;--deep:#155ac5;letter-spacing:-.015em;background:var(--page)}
.mobile-app .shell{width:min(calc(100% - 40px),680px);max-width:680px;padding-inline:0}
.mobile-app .top{padding-block:18px;border-bottom:1px solid var(--line);background:transparent;box-shadow:none}
.mobile-app .brand{font-size:24px;letter-spacing:-.06em;font-weight:750;white-space:nowrap;flex-shrink:0}
.mobile-app .brand-mark{background:transparent;color:var(--blue);box-shadow:none;border:0}
.mobile-app .top-actions{gap:12px;flex-wrap:nowrap}.mobile-app .head-favorite{display:none}.mobile-app .top-actions>a{color:var(--blue);font-size:12px}
.mobile-app .home-view .intro{margin:28px 0 22px}
.mobile-app .home-view .intro h1{font-size:clamp(25px,7vw,36px);font-weight:750;letter-spacing:-.055em;line-height:1.2}
.mobile-app .intro>p{color:var(--muted);font-size:15px;margin-top:10px}
.mobile-app .search{border:0;border-radius:14px;background:#e9e9ee;box-shadow:none;min-height:48px;margin-bottom:24px;padding-inline:14px}
.mobile-app .search input{font-size:16px;background:transparent}
.mobile-app .banner-track{border-radius:22px}.mobile-app .banner-slide{border-radius:22px;background:#e5efff;color:#172f54;box-shadow:none;min-height:180px;padding:24px}
.mobile-app .banner-title{font-size:25px;letter-spacing:-.045em;line-height:1.25}.mobile-app .banner-kicker{color:#4374aa;letter-spacing:.02em}
.mobile-app .banner-body{color:#61758d;line-height:1.7}.mobile-app .banner-art{opacity:.75}
.mobile-app .quick-grid{margin:24px 0 30px;gap:12px}.mobile-app .quick-tile{border:0;background:transparent;box-shadow:none;gap:10px;font-size:12px;color:#3a3a3c;white-space:nowrap}
.mobile-app .quick-tile>svg,.mobile-app .quick-tile>.symbol{color:var(--blue);background:#e7f0ff;border-radius:16px;padding:12px;width:52px;height:52px}
.mobile-app .block{margin-block:28px}.mobile-app .section-head,.mobile-app .home-view .section-head{margin-bottom:16px}
.mobile-app h2,.mobile-app .home-view h2:not(.banner-title){font-size:22px;font-weight:730;letter-spacing:-.04em}.mobile-app .text-link{color:var(--blue);font-size:13px}
.mobile-app .featured-track{gap:16px;padding:2px 0 10px}.mobile-app .featured-tile{background:transparent;border:0;box-shadow:none;border-radius:0;flex-basis:calc((100% - 32px)/3);padding:0;text-align:center;align-items:center}
.mobile-app .featured-tile strong{font-size:14px}.mobile-app .featured-tile small{font-size:11px;color:var(--muted)}
.mobile-app .app-icon{border-radius:15px;box-shadow:0 2px 5px #00000008;background:linear-gradient(145deg,#539dfb,#1765d5);font-weight:650}
.mobile-app .home-feed{display:block;background:#fff;border-radius:20px;overflow:hidden;padding:0 14px}
.mobile-app .row{border:0;border-radius:0;background:#fff;box-shadow:none;min-height:84px;padding:14px 0;gap:12px}
.mobile-app .home-feed .row+.row{border-top:1px solid #ededf1}.mobile-app .row-info{gap:12px;min-width:0}
.mobile-app .row-copy strong{font-size:15px;font-weight:650}.mobile-app .row-copy small{font-size:12px;line-height:1.5;color:var(--muted)}
.mobile-app .pill{border:0;box-shadow:none;background:#eaf2ff;color:var(--blue);border-radius:999px;font-weight:650;padding:8px 13px}
.mobile-app .pill.primary{background:var(--blue);color:#fff}.mobile-app .row>.pill{font-size:12px;white-space:nowrap;flex-shrink:0}
.mobile-app .dock{display:grid;width:100%;max-width:none;left:0;bottom:0;transform:none;border:0;border-top:1px solid #dedee5;border-radius:0;background:rgba(252,252,254,.94);backdrop-filter:blur(18px);box-shadow:none;grid-template-columns:repeat(4,1fr);padding:10px max(16px,calc((100vw - 680px)/2)) calc(10px + env(safe-area-inset-bottom,0px));gap:0}
.mobile-app .tab{background:transparent!important;border-radius:0;color:#8e8e93;gap:5px;font-size:11px}.mobile-app .tab[aria-current=page]{color:var(--blue)}
.mobile-app .app-heading{gap:18px;padding:22px 0}.mobile-app .app-heading h1{font-size:27px;letter-spacing:-.045em;line-height:1.25}.mobile-app .app-heading p{color:var(--muted);font-size:14px}
.mobile-app .app-icon.big{width:82px;height:82px;border-radius:20px}.mobile-app .back{color:var(--blue)}
.mobile-app .detail-intro,.mobile-app .version-summary{background:#fff;border:0;border-radius:20px;padding:20px;margin:20px 0;box-shadow:none}
.mobile-app .detail-intro p{font-size:15px;line-height:1.85;color:#48484a;white-space:pre-wrap}
.mobile-app .app-meta{gap:10px;font-size:12px;color:var(--muted)}.mobile-app .app-meta a{color:var(--blue)}
.mobile-app .gallery{gap:14px}.mobile-app .shot-image{border-radius:14px}.mobile-app .favorite-button{background:#e8f1ff;color:var(--blue);border:0}
.mobile-app dialog{border:0;border-radius:26px;background:#f5f5f7;box-shadow:0 20px 80px #0002;padding:22px;max-width:560px;width:calc(100% - 24px)}
.mobile-app dialog::backdrop{background:#141a2c66;backdrop-filter:blur(3px)}
.mobile-app #sheet{margin:auto auto 0;border-radius:28px 28px 0 0;width:100%;max-width:600px;padding:12px 22px calc(24px + env(safe-area-inset-bottom,0px));max-height:88dvh;overflow:auto}
.mobile-app .grabber{width:36px;height:5px;background:#c8c8cd;border-radius:8px;margin:0 auto 18px}.mobile-app .sheet-head h2{font-size:21px}
.mobile-app .close{border:0;border-radius:50%;background:#e5e5eb;color:#686871}.mobile-app .source{background:#fff;border:0;border-radius:18px;padding:18px;margin:12px 0;box-shadow:none}
.mobile-app .source strong{font-size:16px}.mobile-app .source small{color:var(--muted);font-size:12px;line-height:1.7}.mobile-app .source-actions{gap:10px}
.mobile-app .download-info{background:#fff;border:0;border-radius:18px;padding:18px}.mobile-app .download-info dt{color:var(--muted)}
.mobile-app .filters{border:0;background:transparent;color:var(--muted);font-size:13px}.mobile-app #sortedList{border-radius:20px;overflow:hidden;padding:0 14px;background:#fff}.mobile-app #sortedList .row+.row{border-top:1px solid #ededf1}
.mobile-app .recent-badge{background:#e8f5ee;color:#278350;border:0;font-size:10px;font-weight:550}
@media(max-width:380px){.mobile-app .shell{width:calc(100% - 28px)}.mobile-app .top-actions{gap:8px}.mobile-app .top-actions>a{font-size:11px}.mobile-app .banner-slide{padding:18px}.mobile-app .app-heading h1{font-size:23px}}
@media(prefers-reduced-transparency:reduce){.mobile-app .dock{background:#fcfcfe;backdrop-filter:none}.mobile-app dialog::backdrop{backdrop-filter:none}}
