:root {
  color-scheme: dark;
  --f7-theme-color: #f5f5f7;
  --f7-theme-color-rgb: 245, 245, 247;
  --f7-theme-color-shade: #d8d8dc;
  --f7-theme-color-tint: #fff;
  --f7-bars-bg-color: rgba(14, 14, 17, .72);
  --f7-bars-bg-color-rgb: 14, 14, 17;
  --f7-bars-text-color: #f7f7fa;
  --f7-bars-border-color: rgba(255, 255, 255, .13);
  --f7-page-bg-color: #09090b;
  --f7-page-bg-color-rgb: 9, 9, 11;
  --f7-text-color: #f5f5f7;
  --f7-list-bg-color: transparent;
  --f7-list-border-color: rgba(255, 255, 255, .11);
  --f7-list-item-title-text-color: #f5f5f7;
  --f7-list-item-subtitle-text-color: rgba(245, 245, 247, .63);
  --f7-list-item-text-text-color: rgba(245, 245, 247, .72);
  --f7-tabbar-link-active-color: #fff;
  --f7-tabbar-link-inactive-color: rgba(255, 255, 255, .62);
  --f7-searchbar-bg-color: transparent;
  --f7-searchbar-input-bg-color: rgba(255, 255, 255, .075);
  --f7-searchbar-input-text-color: #fff;
  --f7-input-text-color: #f5f5f7;
  --f7-input-placeholder-color: rgba(245, 245, 247, .45);
  --f7-button-fill-bg-color: #f4f4f6;
  --f7-button-fill-text-color: #111114;
  --lg-glass-dark: rgba(255, 255, 255, .075);
  --lg-glass-dark-strong: rgba(255, 255, 255, .12);
  --lg-stroke-dark: rgba(255, 255, 255, .17);
  --lg-shadow-dark: 0 16px 42px rgba(0, 0, 0, .38), inset 0 1px 0 rgba(255, 255, 255, .14);
}

* { -webkit-tap-highlight-color: transparent; }

html,
body,
button,
input,
select,
textarea,
#app-shell,
#app-shell :not(.f7-icons):not(.material-icons) {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, "Helvetica Neue", Arial, sans-serif !important;
  letter-spacing: -.01em;
}

body { font-size: 16px; line-height: 1.45; }

body,
body.dark {
  color: #f5f5f7;
  background: #09090b;
}

body.dark .framework7-root,
body.dark .page,
body.dark .page-content {
  color: #f5f5f7;
  background: #09090b;
}

#app-shell.page { position: fixed; inset: 0; width: 100%; height: 100%; min-height: 100dvh; transform: none !important; background: #09090b; }

.user-avatar {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 50%;
  color: #fff;
  font-size: 15px;
  font-weight: 650;
  background: linear-gradient(145deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, .055));
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, .23), 0 5px 18px rgba(0, 0, 0, .32);
  -webkit-backdrop-filter: blur(16px) saturate(145%);
  backdrop-filter: blur(16px) saturate(145%);
}

.page-content {
  box-sizing: border-box;
  top: 0 !important;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-height: 100dvh;
  padding: calc(env(safe-area-inset-top) + 12px) 0 calc(86px + env(safe-area-inset-bottom));
  text-align: left;
  background: radial-gradient(ellipse at 12% 18%, rgba(255, 255, 255, .045), transparent 38%), radial-gradient(ellipse at 88% 85%, rgba(255, 255, 255, .04), transparent 34%), #09090b;
  scrollbar-width: none;
}
#app-shell > .page-content { top: 0 !important; }
.page-content::-webkit-scrollbar { display: none; }

.page-topline { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 42px; margin: 6px 18px 6px; }
.page-brand { color: #f8f8fa; font-size: 21px; font-weight: 680; letter-spacing: -.04em; }
.page-account { position: relative; display: flex; align-items: center; }
.page-account > .link { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; }
.page-account > .link:active { transform: scale(.94); }
.view-panel { display: block; width: 100%; margin: 0; padding: 0; align-self: start; justify-self: start; text-align: left; }
.view-panel[hidden] { display: none !important; }

.block-title,
.block-title-large { color: #f8f8fa; }
.block-title { margin-top: 30px; margin-bottom: 12px; font-weight: 650; letter-spacing: -.02em; }
.block-title-large { margin-top: 28px; margin-bottom: 8px; font-size: 32px; font-weight: 720; letter-spacing: -.04em; line-height: 1.12; }
.block,
.subtitle { margin-top: 10px; margin-bottom: 22px; color: rgba(245, 245, 247, .67); line-height: 1.55; }

.searchbar { position: relative; z-index: 2; height: auto; min-height: 0; margin: 18px 16px 24px; padding: 0; overflow: visible; background: transparent; }
.searchbar::after { display: none; }
.searchbar-inner { display: flex; box-sizing: border-box; width: 100%; height: 54px; min-height: 54px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.searchbar-input-wrap { position: relative; display: block; flex: 1 1 auto; width: 100%; height: 54px; min-height: 54px; }
.searchbar-input-wrap input,
.list .item-input-wrap input,
.list .item-input-wrap select,
#theme-choice {
  box-sizing: border-box;
  min-width: 0;
  height: 50px;
  padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 22px;
  font-size: 16px;
  line-height: normal;
  accent-color: #f5f5f7;
  color: #f7f7f9;
  background: linear-gradient(145deg, rgba(255, 255, 255, .105), rgba(255, 255, 255, .045));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .11), 0 9px 25px rgba(0, 0, 0, .18);
  -webkit-backdrop-filter: blur(22px) saturate(155%);
  backdrop-filter: blur(22px) saturate(155%);
}

.searchbar-input-wrap input { display: block; width: 100%; height: 54px; padding: 0 46px; border: 1px solid rgba(255, 255, 255, .17); border-radius: 22px; font-size: 16px; background: linear-gradient(145deg, rgba(255, 255, 255, .13), rgba(255, 255, 255, .055)); box-shadow: 0 9px 24px rgba(0, 0, 0, .2), inset 0 1px 0 rgba(255, 255, 255, .17); -webkit-backdrop-filter: blur(24px) saturate(155%); backdrop-filter: blur(24px) saturate(155%); }
.searchbar-input-wrap input:focus,
.list .item-input-wrap input:focus,
#theme-choice:focus { border-color: rgba(255, 255, 255, .42); outline: 0; }
.searchbar-icon { left: 17px; color: rgba(255, 255, 255, .72); }
.searchbar .input-clear-button { right: 12px; }
.item-input-wrap input::placeholder,
.searchbar-input-wrap input::placeholder { color: rgba(245, 245, 247, .42); font-size: 13px; font-weight: 400; letter-spacing: 0; opacity: .72; }
.list .item-input-wrap input::placeholder { color: rgba(245, 245, 247, .42); font-size: 13px; font-weight: 400; letter-spacing: 0; opacity: .72; }

.list.inset { margin: 18px 16px 26px; }
.list.inset > ul {
  overflow: hidden;
  border: 1px solid var(--lg-stroke-dark);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .105), rgba(255, 255, 255, .045));
  box-shadow: var(--lg-shadow-dark);
  -webkit-backdrop-filter: blur(25px) saturate(155%);
  backdrop-filter: blur(25px) saturate(155%);
}

.list.inset > ul::before,
.list.inset > ul::after,
.list .item-inner::after { display: none; }
.list.inset > ul li.item-content { position: relative; isolation: isolate; overflow: hidden; transition: background-color .22s ease, box-shadow .22s ease; }
.list.inset > ul li.item-content:focus-within { background-color: rgba(255, 255, 255, .045); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .17); }
.list.inset > ul li.item-content:focus-within::after { position: absolute; z-index: 2; top: -20%; bottom: -20%; left: -45%; width: 32%; content: ""; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .2), transparent); transform: skewX(-18deg); animation: glass-reflection .85s cubic-bezier(.2,.7,.25,1) both; }
.list li { background: transparent; }
.list li + li { border-top: 1px solid rgba(255, 255, 255, .09); }
.item-inner { min-height: 64px; padding-top: 10px; padding-bottom: 10px; }
.item-title { color: #f5f5f7; font-weight: 570; }
.item-subtitle { color: rgba(245, 245, 247, .65); }
.item-title-row { margin-bottom: 7px; }
.item-subtitle.app-version { margin-top: 7px; line-height: 1.45; }
.item-text { max-height: none; margin-top: 6px; color: rgba(245, 245, 247, .72); line-height: 1.45; white-space: normal; }
.item-after { color: rgba(245, 245, 247, .68); }
.item-media img { display: block; width: 56px; height: 56px; border-radius: 14px; object-fit: cover; }
.item-title-icon { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 14px; color: #fff; background: rgba(255, 255, 255, .13); font-weight: 650; }
.app-catalog-row { padding: 0 !important; }
.catalog-loading { min-height: 64px; justify-content: center; color: rgba(245,245,247,.55); font-size: 13px; }
.catalog-loading-content { display: inline-flex; width: max-content; max-width: 100%; flex: 0 0 auto; align-items: center; justify-content: center; gap: 9px; margin-inline: auto; text-align: left; }
.catalog-loading-label { flex: 0 0 auto; text-align: left; }
.catalog-loading .button-spinner { opacity: .62; }
.app-list-card { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 14px; width: 100%; min-height: 92px; padding: 14px 16px; border: 0; color: inherit; text-align: left; background: transparent; cursor: pointer; transition: background-color .22s ease, transform .2s cubic-bezier(.2,.8,.25,1); }
.app-list-card:active { background: rgba(255,255,255,.07); transform: scale(.99); }
.app-list-icon { width: 56px; height: 56px; border-radius: 15px; object-fit: cover; }
.app-list-copy { display: grid; min-width: 0; align-content: center; gap: 4px; }
.app-list-name { overflow: hidden; color: #f5f5f7; font-size: 15px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.app-list-version { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: rgba(245,245,247,.72); font-size: 13px; }
.app-list-summary { display: -webkit-box; overflow: hidden; color: rgba(245,245,247,.49); font-size: 12px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.app-list-chevron { color: rgba(245,245,247,.37); font-size: 23px; font-weight: 300; line-height: 1; }
.app-detail-page { box-sizing: border-box; display: flex; position: relative; flex-direction: column; width: 100%; height: min(80dvh, 900px); max-height: calc(100dvh - env(safe-area-inset-top)); padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.17); border-bottom: 0; border-radius: 28px 28px 0 0; color: #f5f5f7; background: linear-gradient(160deg, rgba(35,35,39,.99), rgba(12,12,15,.99)); box-shadow: 0 -18px 55px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.15); transform: translateY(105%); transition: transform .42s cubic-bezier(.2,.8,.25,1); will-change: transform; }
.app-detail-sheet-handle { position: relative; z-index: 2; display: grid; flex: 0 0 36px; place-items: center; border: 0; touch-action: none; cursor: grab; }
.app-detail-dismiss { display: grid; width: 40px; height: 30px; place-items: center; padding: 0; border: 0; color: rgba(245,245,247,.78); background: transparent; cursor: pointer; }
.app-detail-dismiss svg { display: block; width: 25px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.app-detail-dismiss:active { background: rgba(255,255,255,.1); }
.app-detail-content { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 8px 20px calc(32px + env(safe-area-inset-bottom)); text-align: left; scrollbar-width: none; }
.app-detail-content::-webkit-scrollbar { display: none; }
.app-detail-hero { display: grid; grid-template-columns: 90px minmax(0,1fr); align-items: start; gap: 17px; margin: 2px 0 15px; text-align: left; }
.app-detail-icon { display: block; align-self: start; box-sizing: border-box; width: 90px; min-width: 90px; height: 90px; min-height: 90px; overflow: hidden; border-radius: 22px; object-fit: cover; box-shadow: 0 10px 28px rgba(0,0,0,.2); }
.app-detail-info { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.app-detail-name { margin: 0; overflow-wrap: anywhere; color: #f5f5f7; font-size: 24px; font-weight: 680; letter-spacing: -.035em; line-height: 1.14; }
.app-detail-developer { margin-top: 7px; color: rgba(245,245,247,.51); font-size: 13px; }
.app-detail-actions { display: flex; width: 100%; align-items: center; gap: 12px; margin: 12px 0 0; }
.app-detail-actions .button { box-sizing: border-box; width: max-content; min-width: 0; min-height: 34px; height: 34px; padding: 0 10px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: rgba(255,255,255,.96); font-size: 14px; font-weight: 620; line-height: 1; white-space: nowrap; background: linear-gradient(145deg, rgba(255,255,255,.22), rgba(255,255,255,.08)); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 5px 16px rgba(0,0,0,.2); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); }
.app-detail-primary.is-preparing { width: auto; padding: 0 8px; }
.app-detail-action-spacer { flex: 1 1 auto; }
.app-more-wrap { position: relative; flex: 0 0 auto; }
.app-more-button { display: grid; width: 34px; min-width: 34px; height: 34px; min-height: 34px; padding: 0; place-items: center; border-radius: 50%; font-size: 20px; letter-spacing: 1px; }
.app-download-toast[hidden] { display: none; }
.app-download-toast { position: absolute; z-index: 1400; top: 50%; right: calc(100% + 8px); display: flex; width: max-content; max-width: min(210px, calc(100vw - 180px)); transform: translateY(-50%); pointer-events: none; }
.app-raw-link { display: block; max-width: 100%; padding: 10px 14px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: #fff; font-size: 13px; font-weight: 600; text-align: center; text-decoration: none; pointer-events: auto; background: rgba(42,42,47,.9); box-shadow: 0 12px 32px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.16); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); }
.app-detail-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 28px; }
.app-metric { min-width: 0; padding: 11px 10px; border: 1px solid rgba(255,255,255,.12); border-radius: 17px; background: linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.045)); }
.app-metric-label { display: block; overflow: hidden; color: rgba(245,245,247,.47); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.app-metric-value { display: block; margin-top: 5px; overflow: hidden; color: rgba(245,245,247,.9); font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.app-description-title { margin: 0 0 9px; color: #f5f5f7; font-size: 18px; font-weight: 640; }
.app-long-description { color: rgba(245,245,247,.72); font-size: 14px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.app-detail-section { margin-top: 26px; }
.app-detail-section .app-description-title { margin-bottom: 10px; }
.app-release-toggle { display: inline-block; margin: 9px 0 0; padding: 0; border: 0; color: rgba(245,245,247,.82); font: inherit; font-size: 13px; font-weight: 620; background: transparent; cursor: pointer; }
.app-release-toggle:active { opacity: .62; }
.app-release-link { color: inherit; text-decoration: underline; text-decoration-color: rgba(245,245,247,.45); text-underline-offset: 2px; }
.app-release-link:active { opacity: .65; }
.app-screenshot-carousel { display: flex; gap: 12px; margin: 0 -20px; padding: 2px 28px 10px 56px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.app-detail-screenshots { width: 100%; align-self: stretch; text-align: left; }
.app-detail-screenshots .app-screenshot-carousel { justify-content: flex-start; justify-items: start; }
.app-screenshot-carousel::-webkit-scrollbar { display: none; }
.app-screenshot { display: block; width: auto; height: min(52dvh, 440px); max-width: 78vw; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; object-fit: contain; background: rgba(0,0,0,.14); scroll-snap-align: start; }
.app-previous-version-list { display: grid; gap: 10px; }
.app-previous-version { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 12px 14px; border: 1px solid rgba(255,255,255,.1); border-radius: 16px; background: rgba(255,255,255,.035); }
.app-previous-version-name { font-size: 14px; font-weight: 600; }
.app-previous-version-date { color: rgba(245,245,247,.55); font-size: 12px; }
.app-previous-version-notes { grid-column: 1 / -1; color: rgba(245,245,247,.72); font-size: 13px; line-height: 1.45; white-space: pre-wrap; }
.app-detail-subheading { margin: 15px 0 8px; color: rgba(245,245,247,.84); font-size: 14px; font-weight: 620; }
.app-detail-entitlements { display: grid; gap: 7px; margin: 0; padding-left: 20px; color: rgba(245,245,247,.72); font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.app-detail-metadata { display: grid; grid-template-columns: minmax(100px, .75fr) minmax(0, 1.25fr); gap: 10px 14px; margin: 0; }
.app-detail-metadata-label { color: rgba(245,245,247,.48); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.app-detail-metadata-value { min-width: 0; margin: 0; color: rgba(245,245,247,.82); font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; white-space: pre-wrap; }
.app-install-state { margin: -10px 0 14px; color: rgba(245,245,247,.62); font-size: 12px; line-height: 1.45; }
#source-list > ul { overflow: visible; }
#source-list .repo-grid-row, #top-repo-list .repo-grid-row { position: relative; overflow: visible; padding: 8px 10px 10px; border: 0 !important; }
#source-list .repo-grid, #top-repo-list .repo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
#source-list .repo-card, #top-repo-list .repo-card { position: relative; display: grid; box-sizing: border-box; grid-template-columns: minmax(0, 1fr) 23px; align-items: stretch; gap: 2px; min-width: 0; min-height: 66px; padding: 7px 6px 7px 9px; overflow: visible; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.055)); box-shadow: inset 0 1px 0 rgba(255,255,255,.13), 0 5px 14px rgba(0,0,0,.13); -webkit-backdrop-filter: blur(16px) saturate(145%); backdrop-filter: blur(16px) saturate(145%); transition: transform .18s ease, border-color .2s ease, background .2s ease; }
#source-list .repo-card, #top-repo-list .repo-card { grid-template-columns: minmax(0, 1fr) 29px; }
#source-list .repo-card.repo-card-selected, #top-repo-list .repo-card.repo-card-selected { border-color: rgba(255,255,255,.28); background: linear-gradient(145deg, rgba(0,0,0,.34), rgba(0,0,0,.22)); box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 4px 12px rgba(0,0,0,.19); }
#source-list .repo-card:active, #top-repo-list .repo-card:active { transform: scale(.97); border-color: rgba(255,255,255,.3); background-color: rgba(255,255,255,.12); }
#source-list .repo-open, #top-repo-list .repo-open { display: -webkit-box; align-self: center; min-width: 0; max-height: 4.05em; padding: 0; overflow: hidden; border: 0; color: #f5f5f7; text-align: left; font: 580 11px/1.35 -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif; overflow-wrap: anywhere; background: transparent; cursor: pointer; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
#source-list .repo-card-actions, #top-repo-list .repo-card-actions { display: grid; grid-template-rows: minmax(0, 1fr) 20px; align-items: center; justify-items: center; min-width: 0; }
#source-list .repo-card:not(.repo-card-saved) .repo-card-actions, #top-repo-list .repo-card:not(.repo-card-saved) .repo-card-actions { grid-template-rows: 1fr; }
#source-list .repo-arrow, #top-repo-list .repo-arrow, #source-list .repo-more { display: flex; width: 28px; height: 22px; padding: 0; align-items: center; justify-content: center; gap: 2px; border: 0; border-radius: 50%; color: rgba(245,245,247,.65); background: transparent; cursor: pointer; transition: color .18s ease, background .18s ease, transform .18s ease; }
#source-list .repo-arrow:active, #top-repo-list .repo-arrow:active, #source-list .repo-more:active { transform: scale(.88); background: rgba(255,255,255,.1); }
#source-list .repo-arrow .action-icon, #top-repo-list .repo-arrow .action-icon { width: 14px; height: 17px; flex: 0 0 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.repo-count-dot { display: inline-block; box-sizing: border-box; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #ffd54a; box-shadow: 0 0 4px rgba(255,213,74,.9), 0 0 10px rgba(255,195,35,.72); }
.top-repo-legend { display: flex; align-items: center; justify-content: flex-end; gap: 7px; margin: -8px 20px 6px 16px; color: rgba(245,245,247,.48); font-size: 10px; line-height: 1.3; text-align: right; }
#source-list .repo-more .action-icon { width: 18px; height: 18px; fill: currentColor; stroke: none; }
#source-list .repo-more-wrap { position: relative; z-index: 4; display: grid; place-items: center; }
#source-list .repo-card-menu[hidden] { display: none; }
#source-list .repo-card-menu { position: absolute; z-index: 10; right: -4px; bottom: calc(100% + 3px); width: max-content; max-width: min(190px, calc(100vw - 48px)); padding: 5px; border: 1px solid rgba(255,255,255,.19); border-radius: 14px; background: rgba(34,34,38,.94); box-shadow: 0 10px 28px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.12); -webkit-backdrop-filter: blur(24px) saturate(150%); backdrop-filter: blur(24px) saturate(150%); }
#source-list .repo-card-delete { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 10px; border: 0; border-radius: 10px; color: #ff6961; text-align: left; white-space: nowrap; font: 550 12px/1.2 -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif; background: transparent; cursor: pointer; }
#source-list .repo-card-delete:active { background: rgba(255,45,45,.13); }
#source-list .repo-card-delete .action-icon { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#source-list .repo-card.trash-flash::after { position: absolute; z-index: 3; inset: -35% auto -35% -45%; width: 36%; content: ""; pointer-events: none; border-radius: inherit; background: linear-gradient(100deg, transparent, rgba(255,45,45,.42), rgba(255,105,97,.2), transparent); transform: skewX(-18deg); animation: trash-reflection .36s ease-out both; }

@keyframes glass-reflection {
  from { left: -45%; opacity: 0; }
  18% { opacity: .9; }
  to { left: 125%; opacity: 0; }
}

.view-panel.view-enter { animation: view-enter .26s cubic-bezier(.2,.75,.25,1) both; }
@keyframes view-enter {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

.button {
  min-height: 38px;
  border-radius: 999px;
  font-weight: 620;
  letter-spacing: -.01em;
  transition: transform .24s cubic-bezier(.2,.8,.25,1), background-color .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.button:active { transform: scale(.97); }
.button-fill {
  border: 1px solid rgba(255, 255, 255, .88);
  color: #101014;
  background: linear-gradient(180deg, #fff, #dedee3);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 6px 18px rgba(0, 0, 0, .2);
}
.button-outline {
  border: 1px solid rgba(255, 255, 255, .28);
  color: #f6f6f8;
  background: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.button:disabled { opacity: .48; }
.button-small { padding: 0 12px; }
.button-spinner { display: inline-block; box-sizing: border-box; width: 14px; height: 14px; flex: 0 0 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: button-spin .72s linear infinite; }
.install-button.is-preparing { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding-inline: 13px; }
@keyframes button-spin { to { transform: rotate(360deg); } }
.app-version { margin-bottom: 5px; }
.text-color-red { color: #dedee3 !important; }

.toolbar.toolbar-bottom.tabbar {
  position: absolute !important;
  z-index: 999;
  top: auto !important;
  bottom: calc(env(safe-area-inset-bottom) * .58 + 3px) !important;
  left: 50% !important;
  width: min(328px, calc(100% - 44px));
  height: 58px;
  margin: 0;
  padding: 5px;
  overflow: hidden;
  transform: translateX(-50%);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .19), rgba(255, 255, 255, .065) 48%, rgba(255, 255, 255, .105));
  box-shadow: 0 15px 42px rgba(0, 0, 0, .48), inset 0 1px 0 rgba(255, 255, 255, .26), inset 0 -1px 0 rgba(255, 255, 255, .045);
  -webkit-backdrop-filter: blur(30px) saturate(175%);
  backdrop-filter: blur(30px) saturate(175%);
}

.toolbar.toolbar-bottom.tabbar::before { display: none; }
.toolbar.toolbar-bottom .toolbar-inner { position: relative; display: flex; gap: 3px; height: 100%; }
.toolbar.toolbar-bottom .toolbar-inner::before { position: absolute; z-index: 0; top: 0; bottom: 0; left: 0; box-sizing: border-box; width: var(--tab-indicator-width, calc((100% - 9px) / 4)); content: ""; border: 1px solid rgba(255, 255, 255, .17); border-radius: 999px; background: linear-gradient(145deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .09)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 4px 12px rgba(0, 0, 0, .17); transform: translateX(var(--tab-indicator-x, 0px)); transition: transform .42s cubic-bezier(.22, .8, .25, 1), width .25s ease; will-change: transform; }
.toolbar.toolbar-bottom .tab-link {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: rgba(255, 255, 255, .67);
  background: transparent;
  position: relative;
  z-index: 1;
  transition: color .28s ease, transform .18s ease;
}
.toolbar.toolbar-bottom .tab-link-active {
  border-color: transparent;
  color: #fff;
  background: transparent;
  box-shadow: none;
}
.toolbar.toolbar-bottom .tab-link:active { transform: scale(.94); }
.tabbar-label { color: inherit; font-size: 9px; font-weight: 570; }
.toolbar.toolbar-bottom .icon { font-size: 18px; }

#repo-detail .block { margin-top: 12px; }
#install-gate.page { background: #09090b; }
#install-gate .page-content { padding-top: max(10vh, 56px); }
#install-gate .block-title-large { text-align: center; }
#install-gate .subtitle { text-align: center; }
#toast.toast.toast-bottom { position: fixed; z-index: 2000; top: calc(env(safe-area-inset-top, 0px) + 18px); right: auto; bottom: auto; left: 50%; box-sizing: border-box; width: max-content; max-width: calc(100vw - 32px); min-height: 0; height: auto; margin-left: 0; padding: 7px 16px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 999px; color: #fff; background: rgba(35, 35, 39, .96); box-shadow: 0 12px 32px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .16); opacity: 0; pointer-events: none; transform: translate3d(-50%, -8px, 0); transition: opacity .24s ease, transform .24s cubic-bezier(.2, .8, .25, 1); -webkit-backdrop-filter: none; backdrop-filter: none; }
#toast .toast-content { min-height: 0; padding: 0; }
#toast .toast-text { line-height: 1.3; }
#toast.toast.toast-bottom.modal-in { opacity: 1; transform: translate3d(-50%, 0, 0); }

body:not(.dark) {
  color-scheme: light;
  color: #111114;
  background: #f2f2f5;
  --f7-page-bg-color: #f2f2f5;
  --f7-text-color: #111114;
  --f7-bars-text-color: #111114;
  --f7-tabbar-link-active-color: #111114;
  --f7-tabbar-link-inactive-color: rgba(17, 17, 20, .58);
  --lg-glass-light: rgba(255, 255, 255, .67);
  --lg-stroke-light: rgba(255, 255, 255, .8);
}
body:not(.dark) .framework7-root,
body:not(.dark) .page,
body:not(.dark) .page-content,
body:not(.dark) #app-shell.page,
body:not(.dark) #install-gate.page { color: #111114; background: #f2f2f5; }
body:not(.dark) .page-content { background: radial-gradient(ellipse at 12% 18%, rgba(255, 255, 255, .95), transparent 38%), radial-gradient(ellipse at 88% 85%, rgba(20, 20, 25, .035), transparent 34%), #f2f2f5; }
body:not(.dark) .page-brand,
body:not(.dark) .block-title,
body:not(.dark) .block-title-large,
body:not(.dark) .item-title { color: #111114; }
body:not(.dark) .block,
body:not(.dark) .subtitle,
body:not(.dark) .item-subtitle,
body:not(.dark) .item-text,
body:not(.dark) .item-after { color: rgba(17, 17, 20, .66); }
body:not(.dark) .list.inset > ul { border-color: rgba(255, 255, 255, .9); background: linear-gradient(145deg, rgba(255, 255, 255, .82), rgba(255, 255, 255, .48)); box-shadow: 0 14px 35px rgba(22, 22, 30, .11), inset 0 1px 0 #fff; }
body:not(.dark) .list.inset > ul li.item-content:focus-within { background-color: rgba(255, 255, 255, .42); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .75); }
body:not(.dark) .list.inset > ul li.item-content:focus-within::after { background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .72), transparent); }
body:not(.dark) .list li + li { border-top-color: rgba(25, 25, 30, .075); }
body:not(.dark) .searchbar-inner { border-color: transparent; background: transparent; box-shadow: none; }
body:not(.dark) .searchbar-input-wrap input,
body:not(.dark) .list .item-input-wrap input,
body:not(.dark) #theme-choice { border-color: rgba(255, 255, 255, .85); color: #111114; background: linear-gradient(145deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .55)); box-shadow: inset 0 1px 0 #fff, 0 9px 25px rgba(24, 24, 32, .08); }
body:not(.dark) .searchbar-input-wrap input { border-color: rgba(255, 255, 255, .9); background: linear-gradient(145deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .58)); box-shadow: 0 9px 25px rgba(24, 24, 32, .1), inset 0 1px 0 #fff; }
body:not(.dark) .searchbar-input-wrap input::placeholder,
body:not(.dark) .list .item-input-wrap input::placeholder { color: rgba(17, 17, 20, .42); }
body:not(.dark) .searchbar-icon { color: rgba(17, 17, 20, .6); }
body:not(.dark) .button-fill { border-color: #111114; color: #fff; background: linear-gradient(180deg, #303035, #101014); }
body:not(.dark) .button-outline { border-color: rgba(20, 20, 25, .2); color: #111114; background: rgba(255, 255, 255, .46); }
body:not(.dark) .toolbar.toolbar-bottom.tabbar { border-color: rgba(255, 255, 255, .86); background: linear-gradient(135deg, rgba(255, 255, 255, .83), rgba(255, 255, 255, .52)); box-shadow: 0 15px 42px rgba(30, 30, 38, .17), inset 0 1px 0 #fff; }
body:not(.dark) .toolbar.toolbar-bottom .tab-link { color: rgba(17, 17, 20, .62); }
body:not(.dark) .toolbar.toolbar-bottom .toolbar-inner::before { border-color: rgba(20, 20, 25, .08); background: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(226, 226, 232, .75)); box-shadow: inset 0 1px 0 #fff, 0 4px 12px rgba(24, 24, 32, .09); }
body:not(.dark) .toolbar.toolbar-bottom .tab-link-active { border-color: transparent; color: #111114; background: transparent; box-shadow: none; }
body:not(.dark) #toast.toast { border-color: rgba(255, 255, 255, .8); color: #111114; background: rgba(250, 250, 252, .98); }

@media (max-width: 380px) {
  .toolbar.toolbar-bottom.tabbar { width: min(312px, calc(100% - 36px)); bottom: calc(env(safe-area-inset-bottom) * .58 + 3px) !important; }
  .toolbar.toolbar-bottom .tab-link { gap: 2px; }
  .tabbar-label { font-size: 9px; }
  .list.inset { margin-left: 12px; margin-right: 12px; }
}

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

/* Standalone search and form fields: the glass belongs to the control itself. */
input.glass-input {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 54px;
  padding: 0 20px;
  border: 1px solid rgba(255, 255, 255, .17);
  border-radius: 999px;
  color: #f7f7f9;
  font-size: 16px;
  line-height: normal;
  background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.055));
  box-shadow: 0 9px 24px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.17);
  -webkit-backdrop-filter: blur(24px) saturate(155%);
  backdrop-filter: blur(24px) saturate(155%);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
input.glass-input:focus { border-color: rgba(255,255,255,.48); outline: 0; box-shadow: 0 0 0 3px rgba(255,255,255,.08), 0 9px 24px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.2); }
input.glass-input::placeholder { color: rgba(245,245,247,.42); font-size: 13px; font-weight: 400; letter-spacing: 0; opacity: .8; }
.search-field, .source-field, .source-submit { margin-left: 16px; margin-right: 16px; padding: 0; }
.search-field { position: relative; margin-top: 17px; margin-bottom: 24px; overflow: hidden; border-radius: 999px; }
.search-field input.glass-input { padding-left: 48px; }
.search-field::before { position: absolute; z-index: 2; top: 19px; left: 20px; box-sizing: border-box; width: 13px; height: 13px; content: ""; border: 1.6px solid rgba(245,245,247,.68); border-radius: 50%; box-shadow: 7px 7px 0 -5.8px rgba(245,245,247,.78); pointer-events: none; }
.search-field::after { position: absolute; z-index: 3; top: 0; bottom: 0; left: -42%; width: 26%; content: ""; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,255,255,.31), transparent); transform: skewX(-18deg); opacity: 0; }
.search-field:focus-within::after { animation: search-reflection .82s cubic-bezier(.2,.7,.25,1) both; }
@keyframes search-reflection { 0% { left: -42%; opacity: 0; } 18% { opacity: 1; } 100% { left: 125%; opacity: 0; } }
.source-field-label { margin: 18px 16px 12px; padding-inline: 4px; color: rgba(245,245,247,.72); font-size: 14px; line-height: 1.45; text-align: left; }
.source-field, .account-input-field { position: relative; overflow: hidden; border-radius: 999px; }
.source-field { margin-top: 0; margin-bottom: 14px; }
.account-input-field { margin-bottom: 16px; }
.source-field::after, .account-input-field::after { position: absolute; z-index: 2; top: 0; bottom: 0; left: -42%; width: 26%; content: ""; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,255,255,.31), transparent); transform: skewX(-18deg); opacity: 0; }
.source-field:focus-within::after, .account-input-field:focus-within::after { animation: search-reflection .82s cubic-bezier(.2,.7,.25,1) both; }
#repo-detail .block { background: transparent !important; border-color: transparent !important; box-shadow: none !important; }
#repo-detail .search-field,
#repo-detail .search-field:focus-within { background: transparent !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
#repo-detail .search-field input.glass-input { box-sizing: border-box; appearance: none; -webkit-appearance: none; }
.source-submit { margin-top: 0; margin-bottom: 24px; }
.source-submit .button { min-width: 148px; }
.account-content { margin: 18px 16px 26px; }
.field-label { display: block; margin: 0 4px 12px; color: rgba(245,245,247,.72); font-size: 14px; line-height: 1.45; }
.account-content .glass-input { margin-bottom: 0; }
.account-content .button { min-width: 130px; }
.account-status { margin-bottom: 22px; }
.account-apps-heading { margin: 30px 4px 12px; font-size: 18px; }
.account-app-list { margin: 0; padding: 0; list-style: none; }
.account-app-row { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 4px; border-top: 1px solid rgba(255,255,255,.1); }
.account-app-details { display: grid; min-width: 0; gap: 3px; }
.account-app-more-wrap { position: relative; flex: 0 0 auto; }
.account-app-more { display: grid; width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 0; place-items: center; border-radius: 50%; font-size: 20px; letter-spacing: 1px; }
.account-content .account-app-more { box-sizing: border-box; width: 36px !important; min-width: 36px !important; max-width: 36px; height: 36px !important; min-height: 36px !important; max-height: 36px; flex: 0 0 36px; aspect-ratio: 1; padding: 0 !important; border-radius: 50% !important; line-height: 1; }
.account-app-menu[hidden] { display: none !important; }
.account-app-menu { position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; min-width: 210px; padding: 5px; border: 1px solid rgba(255,255,255,.19); border-radius: 17px; background: rgba(38,38,42,.92); box-shadow: 0 12px 35px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.14); -webkit-backdrop-filter: blur(22px) saturate(150%); backdrop-filter: blur(22px) saturate(150%); }
.account-app-open { position: relative; display: flex; width: 100%; min-height: 42px; align-items: center; gap: 9px; padding: 0 11px; overflow: hidden; border: 0; border-radius: 12px; color: rgba(245,245,247,.88); font: inherit; font-size: 13px; text-align: left; background: transparent; cursor: pointer; }
.account-app-open .action-icon { width: 17px; height: 17px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-app-remove { position: relative; display: flex; width: 100%; min-height: 42px; align-items: center; gap: 9px; padding: 0 11px; overflow: hidden; border: 0; border-radius: 12px; color: #ff6b65; font: inherit; font-size: 13px; text-align: left; background: transparent; cursor: pointer; }
.account-app-remove .action-icon { width: 17px; height: 17px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-app-removing { opacity: .45; pointer-events: none; }
.account-app-name { color: rgba(245,245,247,.91); font-size: 14px; font-weight: 570; }
.account-app-version, .account-app-empty { color: rgba(245,245,247,.55); font-size: 12px; line-height: 1.45; }
.app-detail-primary.is-preparing { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding-inline: 14px; }
.source-empty { padding: 18px 22px !important; color: rgba(245,245,247,.56) !important; font-size: 13px; line-height: 1.5; text-align: left; overflow-wrap: anywhere; }
body:not(.dark) .source-empty { color: rgba(17,17,20,.56) !important; }
.logout-button { position: relative; isolation: isolate; overflow: hidden; }
.logout-button.logout-flash::after { position: absolute; z-index: 2; inset: -30% auto -30% -45%; width: 38%; content: ""; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,45,45,.48), rgba(255,105,97,.22), transparent); transform: skewX(-18deg); animation: trash-reflection .36s ease-out both; }
.form-error { margin-top: 12px; color: #ff6961; }

/* The avatar glyph itself is the profile affordance, with no nested glass disc. */
#user-avatar { display: grid; box-sizing: border-box; width: 36px; height: 36px; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; font-size: 17px; font-weight: 500; line-height: 1; background: linear-gradient(145deg, rgba(255,255,255,.24), rgba(255,255,255,.055)); box-shadow: inset 0 1px 1px rgba(255,255,255,.23), 0 5px 18px rgba(0,0,0,.32); -webkit-backdrop-filter: blur(16px) saturate(145%); backdrop-filter: blur(16px) saturate(145%); }
#user-avatar.user-avatar-unauthenticated { transform: none; }
#user-avatar .action-icon { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Repository actions use compact icon controls. Deleting sweeps a red reflection. */
#source-list .source-action, #top-repo-list .source-action { display: grid; width: 38px; min-width: 38px; height: 38px; min-height: 38px; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; color: #f5f5f7; background: rgba(255,255,255,.075); box-shadow: inset 0 1px 0 rgba(255,255,255,.12); transition: color .2s ease, border-color .2s ease, background .2s ease, transform .18s ease; }
#source-list .source-action:active, #top-repo-list .source-action:active { transform: scale(.91); }
#source-list .source-action .action-icon, #top-repo-list .source-action .action-icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
#source-list .source-action-remove { color: rgba(255,255,255,.75); }
#source-list .source-action-remove:hover,
#source-list .source-action-remove:focus-visible { border-color: rgba(255,70,70,.48); color: #ff514d; background: rgba(255,45,45,.1); }
#source-list .item-content, #top-repo-list .item-content { position: relative; isolation: isolate; overflow: hidden; }
#top-repo-list .top-repo-category { padding: 18px 16px 10px; color: rgba(245,245,247,.48); font-size: 11px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
#source-list .source-row.trash-flash .item-content::after { position: absolute; z-index: 2; inset: -30% auto -30% -45%; width: 36%; content: ""; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,45,45,.46), rgba(255,105,97,.22), transparent); transform: skewX(-18deg); animation: trash-reflection .36s ease-out both; }
@keyframes trash-reflection { to { left: 125%; opacity: 0; } }

body:not(.dark) input.glass-input { border-color: rgba(255,255,255,.88); color: #111114; background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,255,255,.58)); box-shadow: 0 9px 25px rgba(24,24,32,.1), inset 0 1px 0 #fff; }
body:not(.dark) input.glass-input:focus { border-color: rgba(40,40,48,.25); box-shadow: 0 0 0 3px rgba(30,30,38,.055), 0 9px 25px rgba(24,24,32,.1), inset 0 1px 0 #fff; }
body:not(.dark) input.glass-input::placeholder { color: rgba(17,17,20,.42); }
body:not(.dark) .search-field::before { border-color: rgba(17,17,20,.58); box-shadow: 7px 7px 0 -5.8px rgba(17,17,20,.68); }
body:not(.dark) .search-field::after { background: linear-gradient(100deg, transparent, rgba(255,255,255,.8), transparent); }
body:not(.dark) .source-field::after, body:not(.dark) .account-input-field::after { background: linear-gradient(100deg, transparent, rgba(255,255,255,.8), transparent); }
body:not(.dark) .source-field-label, body:not(.dark) .field-label { color: rgba(17,17,20,.66); }
body:not(.dark) #user-avatar { color: #111114; }
body:not(.dark) #source-list .source-action, body:not(.dark) #top-repo-list .source-action { border-color: rgba(20,20,25,.13); color: #222226; background: rgba(255,255,255,.55); }
body:not(.dark) #top-repo-list .top-repo-category { color: rgba(17,17,20,.48); }
body:not(.dark) .top-repo-legend { color: rgba(17,17,20,.5); }
body:not(.dark) #source-list .repo-card, body:not(.dark) #top-repo-list .repo-card { border-color: rgba(20,20,25,.14); background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,255,255,.56)); box-shadow: inset 0 1px 0 #fff, 0 5px 14px rgba(24,24,32,.1); }
body:not(.dark) #source-list .repo-card.repo-card-selected, body:not(.dark) #top-repo-list .repo-card.repo-card-selected { border-color: rgba(20,20,25,.2); background: linear-gradient(145deg, rgba(25,25,30,.2), rgba(25,25,30,.12)); box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 4px 12px rgba(24,24,32,.14); }
body:not(.dark) #source-list .repo-card:active, body:not(.dark) #top-repo-list .repo-card:active { border-color: rgba(20,20,25,.25); background-color: rgba(255,255,255,.95); }
body:not(.dark) #source-list .repo-open, body:not(.dark) #top-repo-list .repo-open { color: #222226; }
body:not(.dark) #source-list .repo-arrow, body:not(.dark) #top-repo-list .repo-arrow, body:not(.dark) #source-list .repo-more { color: rgba(17,17,20,.55); }
body:not(.dark) #source-list .repo-card-menu { border-color: rgba(20,20,25,.13); background: rgba(250,250,252,.96); box-shadow: 0 10px 28px rgba(24,24,32,.18), inset 0 1px 0 #fff; }

@media (max-width: 350px) {
  #source-list .repo-grid, #top-repo-list .repo-grid { gap: 6px; }
  #source-list .repo-grid-row, #top-repo-list .repo-grid-row { padding-right: 8px; padding-left: 8px; }
  #source-list .repo-card, #top-repo-list .repo-card { grid-template-columns: minmax(0, 1fr) 27px; gap: 1px; min-height: 62px; padding: 7px 5px 7px 7px; border-radius: 13px; }
  #source-list .repo-open, #top-repo-list .repo-open { font-size: 10px; }
}
body:not(.dark) #source-list .source-action-remove:hover, body:not(.dark) #source-list .source-action-remove:focus-visible { border-color: rgba(210,30,30,.35); color: #d92727; background: rgba(255,45,45,.075); }
body:not(.dark) #source-list .source-row.trash-flash .item-content::after { background: linear-gradient(100deg, transparent, rgba(220,30,30,.32), rgba(255,80,80,.18), transparent); }

.profile-menu[hidden] { display: none; }
.profile-menu { position: absolute; z-index: 1100; top: calc(100% + 8px); right: -8px; box-sizing: border-box; width: min(290px, calc(100vw - 32px)); max-height: min(55vh, 360px); padding: 16px; overflow: auto; border: 1px solid rgba(255,255,255,.2); border-radius: 22px; color: #f5f5f7; background: linear-gradient(145deg, rgba(44,44,48,.92), rgba(22,22,25,.88)); box-shadow: 0 16px 40px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.16); -webkit-backdrop-filter: blur(28px) saturate(160%); backdrop-filter: blur(28px) saturate(160%); }
.profile-menu-name { margin-bottom: 12px; color: #fff; font-size: 16px; font-weight: 650; overflow-wrap: anywhere; }
.profile-menu-label { margin-bottom: 7px; color: rgba(245,245,247,.64); font-size: 12px; }
.profile-udid { display: block; width: 100%; margin-top: 6px; padding: 10px; border: 1px solid rgba(255,255,255,.13); border-radius: 12px; color: #fff; text-align: left; font: 11px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; overflow-wrap: anywhere; background: rgba(255,255,255,.075); cursor: pointer; }
.profile-udid:active { background: rgba(255,255,255,.17); }
.profile-udid-empty { color: rgba(245,245,247,.55); font-size: 13px; }
.theme-toggle { position: relative; display: flex; align-items: center; gap: 3px; width: 78px; height: 38px; padding: 3px; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; color: rgba(255,255,255,.65); background: rgba(255,255,255,.07); box-shadow: inset 0 1px 0 rgba(255,255,255,.12); cursor: pointer; transition: background .32s ease, border-color .32s ease, box-shadow .32s ease; }
.theme-toggle::before { position: absolute; z-index: 0; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 4.5px); content: ""; border-radius: 50%; background: rgba(255,255,255,.19); box-shadow: inset 0 1px 0 rgba(255,255,255,.19), 0 2px 7px rgba(0,0,0,.16); transition: transform .42s cubic-bezier(.22,.8,.25,1), background .32s ease, box-shadow .32s ease; }
.theme-toggle[data-theme="light"]::before { transform: translateX(35px); }
.theme-toggle-icon { position: relative; z-index: 1; display: grid; flex: 1 1 0; height: 30px; place-items: center; border-radius: 50%; transition: color .32s ease, transform .42s cubic-bezier(.22,.8,.25,1), opacity .32s ease; }
.theme-toggle-icon svg { display: block; width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.theme-toggle-icon.active { color: #fff; transform: scale(1.04); }
body:not(.dark) .profile-menu { border-color: rgba(255,255,255,.82); color: #111114; background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(244,244,248,.91)); box-shadow: 0 16px 40px rgba(25,25,35,.17), inset 0 1px 0 #fff; }
body:not(.dark) .profile-menu-name { color: #111114; }
body:not(.dark) .profile-menu-label, body:not(.dark) .profile-udid-empty { color: rgba(17,17,20,.6); }
body:not(.dark) .profile-udid { border-color: rgba(20,20,25,.1); color: #111114; background: rgba(255,255,255,.65); }
body:not(.dark) .profile-udid:active { background: rgba(235,235,240,.9); }
body:not(.dark) .theme-toggle { border-color: rgba(20,20,25,.13); color: rgba(17,17,20,.55); background: rgba(20,20,25,.055); box-shadow: inset 0 1px 0 rgba(255,255,255,.9); }
body:not(.dark) .theme-toggle::before { background: rgba(255,255,255,.95); box-shadow: inset 0 1px 0 #fff, 0 2px 7px rgba(24,24,32,.12); }
body:not(.dark) .theme-toggle-icon.active { color: #111114; }
body:not(.dark) .app-list-name, body:not(.dark) .app-detail-name, body:not(.dark) .app-description-title { color: #111114; }
body:not(.dark) .app-list-version { color: rgba(17,17,20,.72); }
body:not(.dark) .app-list-summary, body:not(.dark) .app-list-chevron, body:not(.dark) .app-detail-developer, body:not(.dark) .app-install-state { color: rgba(17,17,20,.52); }
body:not(.dark) .catalog-loading { color: rgba(17,17,20,.55); }
body:not(.dark) .app-metric { border-color: rgba(20,20,25,.1); background: linear-gradient(145deg,rgba(255,255,255,.92),rgba(240,240,245,.62)); }
body:not(.dark) .app-metric-label { color: rgba(17,17,20,.48); }
body:not(.dark) .app-metric-value, body:not(.dark) .app-long-description { color: rgba(17,17,20,.8); }
body:not(.dark) .app-detail-subheading, body:not(.dark) .app-detail-metadata-value { color: rgba(17,17,20,.82); }
body:not(.dark) .app-detail-metadata-label, body:not(.dark) .app-detail-entitlements { color: rgba(17,17,20,.62); }
body:not(.dark) .app-screenshot { border-color: rgba(20,20,25,.12); background: rgba(20,20,25,.045); }
body:not(.dark) .app-release-toggle { color: rgba(17,17,20,.78); }
body:not(.dark) .app-release-link { text-decoration-color: rgba(17,17,20,.42); }
body:not(.dark) .account-app-row { border-top-color: rgba(20,20,25,.1); }
body:not(.dark) .account-app-name { color: rgba(17,17,20,.9); }
body:not(.dark) .account-app-version, body:not(.dark) .account-app-empty { color: rgba(17,17,20,.55); }
body:not(.dark) .account-app-menu { border-color: rgba(0,0,0,.12); background: rgba(250,250,252,.94); box-shadow: 0 12px 35px rgba(20,20,30,.18), inset 0 1px 0 #fff; }
body:not(.dark) .account-app-open { color: rgba(20,20,24,.88); }
body:not(.dark) .account-app-remove { color: #d72e2e; }

/* Bottom sheet, content header and top-aligned views. */
.toolbar.toolbar-bottom.tabbar { position: absolute !important; bottom: calc(env(safe-area-inset-bottom) + 4px) !important; }
.page-topline { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 42px; margin: 6px 18px 6px; }
.page-brand { color: #f8f8fa; font-size: 21px; font-weight: 680; letter-spacing: -.04em; }
.page-account { position: relative; display: flex; align-items: center; }
.page-account > .link { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; }
.page-account > .link:active { transform: scale(.94); }
.page-content { top: 0 !important; right: 0; bottom: 0; left: 0; box-sizing: border-box; width: 100%; height: 100%; min-height: 100dvh; padding: calc(env(safe-area-inset-top) + 12px) 0 calc(86px + env(safe-area-inset-bottom)); text-align: left; }
#app-shell.page { position: fixed; inset: 0; width: 100%; height: 100%; min-height: 100dvh; }
#app-shell > .page-content { top: 0 !important; }
.view-panel { display: block; width: 100%; margin: 0; padding: 0; align-self: start; justify-self: start; text-align: left; }
.view-panel[hidden] { display: none !important; }

#app-detail { position: fixed; z-index: 1300; inset: 0; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; padding-top: env(safe-area-inset-top); background: rgba(0,0,0,0); transition: background .32s ease; }
#app-detail[hidden] { display: none !important; }
#app-detail.is-open { background: rgba(0,0,0,.42); }
#app-detail.is-closing { background: rgba(0,0,0,0); }
#app-detail.is-open .app-detail-page { transform: translateY(0); }
#app-detail.is-closing .app-detail-page { transform: translateY(105%); }

.faq-list { display: grid; gap: 9px; margin: 0 16px 26px; }
.faq-item { overflow: hidden; border: 1px solid rgba(255,255,255,.13); border-radius: 17px; background: linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.045)); box-shadow: inset 0 1px 0 rgba(255,255,255,.1); }
.faq-item summary { position: relative; padding: 14px 40px 14px 15px; color: rgba(245,245,247,.94); font-size: 14px; font-weight: 590; line-height: 1.4; list-style: none; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { position: absolute; top: 50%; right: 16px; color: rgba(245,245,247,.55); content: "+"; font-size: 20px; font-weight: 400; transform: translateY(-50%); }
.faq-item[open] summary::after { content: "−"; }
.faq-answer { padding: 0 15px 15px; color: rgba(245,245,247,.68); font-size: 13px; line-height: 1.55; }
.first-install-notice { position: fixed; z-index: 1400; inset: 0; display: flex; align-items: flex-end; justify-content: center; background: rgba(0,0,0,0); transition: background .28s ease; }
.first-install-notice[hidden] { display: none !important; }
.first-install-notice.is-open { background: rgba(0,0,0,.48); }
.first-install-sheet { box-sizing: border-box; width: min(100%, 620px); max-height: min(82dvh, 760px); padding: 10px 22px calc(22px + env(safe-area-inset-bottom)); overflow-y: auto; border: 1px solid rgba(255,255,255,.16); border-bottom: 0; border-radius: 28px 28px 0 0; color: #f5f5f7; background: linear-gradient(160deg, rgba(35,35,39,.99), rgba(12,12,15,.99)); box-shadow: 0 -18px 55px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.14); transform: translateY(105%); transition: transform .34s cubic-bezier(.2,.8,.25,1); }
.first-install-notice.is-open .first-install-sheet { transform: translateY(0); }
.first-install-handle { width: 38px; height: 5px; margin: 0 auto 22px; border-radius: 999px; background: rgba(255,255,255,.3); }
.first-install-sheet h2 { margin: 0 0 12px; font-size: 21px; letter-spacing: -.025em; line-height: 1.2; }
.first-install-sheet p { margin: 0 0 12px; color: rgba(245,245,247,.76); font-size: 14px; line-height: 1.55; }
.first-install-sheet .first-install-steps { padding: 13px 14px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; color: rgba(245,245,247,.92); background: rgba(255,255,255,.07); }
.first-install-actions { display: grid; gap: 9px; margin-top: 18px; }
.first-install-actions .button { min-height: 44px; border-radius: 999px; }
body:not(.dark) .faq-item { border-color: rgba(20,20,25,.12); background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(235,235,240,.65)); box-shadow: inset 0 1px 0 #fff; }
body:not(.dark) .faq-item summary { color: #17171a; }
body:not(.dark) .faq-item summary::after { color: rgba(17,17,20,.55); }
body:not(.dark) .faq-answer { color: rgba(17,17,20,.7); }
body:not(.dark) .first-install-sheet { border-color: rgba(20,20,25,.12); color: #111114; background: linear-gradient(160deg, rgba(250,250,252,.99), rgba(239,239,243,.99)); box-shadow: 0 -18px 55px rgba(20,20,30,.18), inset 0 1px 0 #fff; }
body:not(.dark) .first-install-handle { background: rgba(17,17,20,.24); }
body:not(.dark) .first-install-sheet p { color: rgba(17,17,20,.7); }
body:not(.dark) .first-install-sheet .first-install-steps { border-color: rgba(20,20,25,.1); color: rgba(17,17,20,.88); background: rgba(20,20,25,.045); }
@media (prefers-reduced-motion: reduce) { .first-install-notice, .first-install-sheet { transition-duration: .01ms; } }
body:not(.dark) .page-brand { color: #111114; }
body:not(.dark) .app-detail-page { border-color: rgba(0,0,0,.11); color: #111114; background: linear-gradient(160deg, rgba(250,250,252,.99), rgba(239,239,243,.99)); box-shadow: 0 -18px 55px rgba(20,20,30,.15), inset 0 1px 0 #fff; }
body:not(.dark) .app-detail-dismiss { color: rgba(17,17,20,.65); }
body:not(.dark) .app-raw-link { border-color: rgba(20,20,25,.12); color: #111114; background: rgba(250,250,252,.94); box-shadow: 0 12px 32px rgba(20,20,30,.15), inset 0 1px 0 #fff; }
body:not(.dark) .app-detail-actions .button { border-color: rgba(20,20,25,.14); color: rgba(17,17,20,.92); background: linear-gradient(145deg, rgba(255,255,255,.86), rgba(232,232,237,.64)); box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 5px 16px rgba(20,20,30,.12); }

/* Let the content scroll behind the floating glass tab bar. */
html,
body { width: 100%; height: var(--ota-app-height, 100dvh); min-height: 0; overflow: hidden; }
body { position: relative; overscroll-behavior: none; }
.framework7-root { position: relative; width: 100%; height: var(--ota-app-height, 100dvh); min-height: 0; overflow: hidden; }
#app-shell.page { position: relative !important; inset: auto !important; display: flex; box-sizing: border-box; width: 100%; height: var(--ota-app-height, 100dvh); min-height: 0; flex-direction: column; overflow: hidden; transform: none !important; }
#app-shell > .page-content { position: absolute !important; inset: 0 !important; display: block; box-sizing: border-box; width: 100%; height: 100%; min-height: 0; padding: calc(env(safe-area-inset-top) + 12px) 0 calc(92px + env(safe-area-inset-bottom)); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.toolbar.toolbar-bottom.tabbar { position: absolute !important; z-index: 999; inset: auto auto calc(env(safe-area-inset-bottom) + 4px) 50% !important; display: block; box-sizing: border-box; flex: none; align-self: auto; width: min(328px, calc(100% - 44px)); height: 58px; margin: 0; padding: 5px; transform: translateX(-50%) !important; border: 1px solid rgba(255, 255, 255, .2); border-radius: 999px; background: linear-gradient(135deg, rgba(255, 255, 255, .19), rgba(255, 255, 255, .065) 48%, rgba(255, 255, 255, .105)); box-shadow: 0 15px 42px rgba(0, 0, 0, .48), inset 0 1px 0 rgba(255, 255, 255, .26), inset 0 -1px 0 rgba(0, 0, 0, .045); -webkit-backdrop-filter: blur(30px) saturate(175%); backdrop-filter: blur(30px) saturate(175%); }
body:not(.dark) .toolbar.toolbar-bottom.tabbar { border-color: rgba(255, 255, 255, .86); background: linear-gradient(135deg, rgba(255, 255, 255, .83), rgba(255, 255, 255, .52)); box-shadow: 0 15px 42px rgba(30, 30, 38, .17), inset 0 1px 0 #fff; }
.toolbar.toolbar-bottom .toolbar-inner { height: 100%; }
body.keyboard-open .toolbar.toolbar-bottom.tabbar { display: none !important; }
.app-detail-page { touch-action: pan-y; }
.app-detail-sheet-handle { touch-action: pan-y; }
.app-more-button,
.app-detail-dismiss { touch-action: manipulation; }
.app-detail-info .app-install-state:empty { display: none; }
.app-detail-info > .app-install-state:not(:empty) { margin: 10px 0 0; }
.app-detail-actions.is-pending { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 34px; align-items: center; gap: 6px; margin-top: 14px; }
.app-detail-actions.is-pending .button { box-sizing: border-box; width: 100%; min-width: 0; min-height: 36px; height: 36px; padding: 0 5px; font-size: 12px; white-space: nowrap; }
.app-detail-actions.is-pending .app-more-wrap,
.app-detail-actions.is-pending .app-more-button { width: 34px; min-width: 34px; }

@media (max-width: 380px) {
  .toolbar.toolbar-bottom.tabbar { width: min(312px, calc(100% - 36px)); }
}
.app-signing-limit-notice { margin: 0 0 24px; padding: 15px 16px; border: 1px solid rgba(255,196,87,.25); border-radius: 18px; color: rgba(255,255,255,.86); background: linear-gradient(145deg,rgba(255,190,70,.12),rgba(255,255,255,.045)); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.app-signing-limit-notice p { margin: 0; font-size: 13px; line-height: 1.5; }
.app-signing-limit-links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 11px; }
.app-signing-limit-links a { color: inherit; font-size: 13px; font-weight: 620; text-underline-offset: 3px; }
body:not(.dark) .app-signing-limit-notice { border-color: rgba(151,97,0,.22); color: rgba(30,25,15,.88); background: linear-gradient(145deg,rgba(255,196,87,.22),rgba(255,255,255,.62)); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.account-apple-status { margin: 14px 0 22px; padding: 12px 14px; border: 1px solid rgba(255,255,255,.13); border-radius: 16px; color: rgba(255,255,255,.8); font-size: 13px; line-height: 1.45; background: rgba(255,255,255,.055); }
.account-apple-status.is-verified { border-color: rgba(83,205,137,.28); color: #a9ecc4; background: rgba(57,173,105,.11); }
.account-apple-status.is-pending { border-color: rgba(255,196,87,.28); color: #f1d39a; background: rgba(255,190,70,.1); }
.account-apple-status.is-disabled { border-color: rgba(255,94,94,.28); color: #ffb6b6; background: rgba(255,70,70,.1); }
body:not(.dark) .account-apple-status { border-color: rgba(0,0,0,.12); color: rgba(17,17,20,.76); background: rgba(255,255,255,.55); }
body:not(.dark) .account-apple-status.is-verified { color: #1f6a3d; background: rgba(57,173,105,.1); }
body:not(.dark) .account-apple-status.is-pending { color: #795500; background: rgba(255,190,70,.14); }
body:not(.dark) .account-apple-status.is-disabled { color: #8c2222; background: rgba(255,70,70,.11); }
