:root,
:root[data-theme="dark"]{
  --bg:#0b1020; --card:#121a33; --text:#e8eeff; --muted:#9fb0ff;
  --line:rgba(255,255,255,.12); --btn:#2b60ff; --btn2:#1c254b;
  --ok:#2bff9f; --warn:#ffd36b;
}
:root[data-theme="light"]{
  --bg:#f6f7fb;  --card:#ffffff;  --text:#0b1020;  --muted:#5060a8;
  --line:rgba(0,0,0,.10);  --btn:#2b60ff;  --btn2:#eef1ff;
}

*{ box-sizing:border-box; }
body{
  margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Arial;
  background:var(--bg); color:var(--text);
}
.wrap{
  max-width: 860px; margin: 0 auto; padding: 16px 16px 92px;
}
.titleRow{
  display:flex; align-items:center; gap:10px;
  margin: 6px 0 12px;
}
.titleIcon{
  width:54px; height:54px; border-radius:18px;
  display:grid; place-items:center; flex:0 0 auto;
  background:rgba(43,96,255,.16); border:1px solid rgba(43,96,255,.22);
  background-image: url("https://home.x-s.at/zuss/icons/icon-192.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow:hidden;
}
h1{ font-size: 20px; margin: 0; letter-spacing:.3px; }
.titleCount{
  font-size:12px; color:var(--muted);
  border:1px solid var(--line);
  padding:6px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.08);
  margin-left:4px;
}
.list{
  display:flex; flex-direction:column; gap:10px;
}
.row{
  display:flex; align-items:center; gap:12px;
  background:var(--card); border:1px solid var(--line);
  border-radius:16px; padding:12px 14px;
  text-decoration:none; color:inherit;
}
.row:active{ transform: scale(0.995); }
.ico{
  width:38px; height:38px; border-radius:12px;
  display:grid; place-items:center;
  background:rgba(43,96,255,.16);
  border:1px solid rgba(43,96,255,.22);
  flex:0 0 auto;
}
.name{ font-size: 16px; line-height:1.2; }
.sub{ font-size: 12px; color: var(--muted); margin-top:3px; }
.spacer{ flex:1; }
.badge{
  font-size:12px; color:var(--muted);
  border:1px solid var(--line); padding:6px 10px; border-radius:999px;
  background:rgba(0,0,0,.08);
}

.footer{
  position:fixed; left:0; right:0; bottom:0;
  padding:12px 12px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(to top, rgba(11,16,32,.95), rgba(11,16,32,.55), rgba(11,16,32,0));
  pointer-events:none;
}
@media (prefers-color-scheme: light){
  .footer{ background:linear-gradient(to top, rgba(246,247,251,.95), rgba(246,247,251,.55), rgba(246,247,251,0)); }
}
.footerInner{
  max-width: 860px; margin:0 auto; display:flex; gap:10px; pointer-events:auto;
}

/* BIG BUTTONS */
.btn{
  border:0; border-radius:18px;
  padding:18px 18px;               /* bigger */
  font-size:18px;                  /* bigger */
  font-weight:800;
  min-height:64px;                 /* bigger */
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  box-shadow: 0 10px 30px rgba(0,0,0,.22);
  text-decoration:none;
  user-select:none;
  -webkit-tap-highlight-color: transparent;
}
.btnPrimary{ background:var(--btn); color:white; flex:1; }
.btnSecondary{ background:var(--btn2); color:var(--text); flex:1; border:1px solid var(--line); box-shadow:none; }
.btn:active{ transform: scale(0.995); }

.status{
  margin: 8px 0 14px; color: var(--muted); font-size: 13px;
}
.error{
  background: rgba(255,80,80,.12);
  border:1px solid rgba(255,80,80,.25);
  color: #ffb7b7;
  padding: 10px 12px;
  border-radius: 14px;
  font-size: 13px;
  white-space: pre-wrap;
}

/* INSTALL/UPDATE OVERLAY */
#installOverlay{
  position:fixed; inset:0;
  display:none;
  z-index:2147483647;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(10px);
  pointer-events:auto;
  padding: 18px 14px;
}
#installOverlay *{ pointer-events:auto; }
.ovCard{
  max-width: 560px;
  margin: 10vh auto 0;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 18px 16px;
  box-shadow: 0 20px 70px rgba(0,0,0,.35);
}
.ovTitle{ font-size: 18px; font-weight: 850; margin: 6px 0 6px; }
.ovText{ color: var(--muted); font-size: 14px; line-height: 1.35; margin: 0 0 14px; }
.ovBtns{ display:flex; gap:12px; margin-top: 10px; }
.ovBtns .btn{ flex:1; }
.ovHint{
  margin-top: 12px;
  font-size: 12px;
  color: var(--muted);
  border-top: 1px solid var(--line);
  padding-top: 12px;
  line-height: 1.35;
}
