: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; }