/* Login, Benutzermenü, Sync-Status, Admin-Seiten */
img.av{object-fit:cover;background:var(--surface-2)}
.boot-err{display:grid;place-items:center;min-height:100vh;color:#ccc;font-family:system-ui}

.login-page{display:grid;place-items:center;padding:24px}
.login-card{width:min(440px,100%);background:var(--surface);border:var(--border-w) solid var(--border);border-radius:calc(var(--radius) + 6px);padding:40px 32px 24px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.login-logo{width:64px;height:64px;border-radius:16px}
.login-logo .ic{width:34px;height:34px}
.login-card h1{font-family:var(--font-head);font-size:24px}
.login-card p{line-height:1.55}
.login-err{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;padding:12px 14px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--err) 14%,transparent);border:1px solid color-mix(in srgb,var(--err) 45%,transparent);color:var(--text);font-size:13.5px}
.login-err .ic{color:var(--err);margin-top:1px}
.discord-btn{width:100%;padding:12px 16px;font-size:15px;background:#5865f2!important;color:#fff!important;border-color:transparent!important}
.discord-btn:hover{background:#4752c4!important}
.discord-btn.disabled{opacity:.45;pointer-events:none}
.dev-login{width:100%;display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px dashed var(--border)}
.dev-login .input{flex:1}
.login-foot{margin-top:8px}

.chan{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;padding:1px 7px;border-radius:2em;vertical-align:1px}
.chan-alpha{background:#da3633;color:#fff}
.chan-beta{background:#d29922;color:#111}
.chan-release{background:#238636;color:#fff}

.me-btn{display:grid;place-items:center;border-radius:50%;padding:0}
.me-btn:hover .av{box-shadow:0 0 0 2px var(--accent)}
.user-pop{width:300px}
.user-pop .card-h{gap:12px}

.sync{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;flex:none}
.sync .ic{width:13px;height:13px}
.sync-ok{color:var(--ok)}
.sync-saving{color:var(--muted)}
.sync-saving .ic{animation:spin 1s linear infinite}
.sync-error{color:#fff;background:var(--err)}
@keyframes spin{to{transform:rotate(360deg)}}

.ro-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--warn) 14%,transparent);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);font-size:13px}
.ro-banner .ic{width:16px;height:16px;color:var(--warn)}

.perm-tbl td,.perm-tbl th{padding:8px 10px;white-space:nowrap}
.perm-tbl .select{padding:5px 8px;font-size:12.5px}
.lvl-edit{color:var(--ok);font-weight:600}
.lvl-view{color:var(--accent)}
.lvl-none{color:var(--muted)}
.sec-title .ic{vertical-align:-3px;margin-right:6px}

/* Releases */
.rel-latest{border-top:3px solid var(--border)}
.rel-latest.rel-release{border-top-color:#238636}
.rel-latest.rel-beta{border-top-color:#d29922}
.rel-latest.rel-alpha{border-top-color:#da3633}
.rel-latest .btn{align-self:flex-start;margin-top:4px}
.rel-item .muted .ic{width:14px;height:14px;vertical-align:-2px}
.rel-notes{margin:0 0 0 20px;display:flex;flex-direction:column;gap:3px;font-size:13.5px}
.rel-asset{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}
.rel-asset>.ic{width:16px;height:16px;color:var(--muted)}
.build-log{max-height:60vh;overflow:auto;background:#0d1117;color:#c9d1d9;font:12px/1.6 var(--font-mono);padding:12px 14px;border-radius:6px;white-space:pre-wrap;word-break:break-word}
.build-log .l-err{color:#ff7b72}
.build-log .l-ok{color:#56d364}
.modal:has(.build-log){width:min(860px,100%)}
