.server-login-link { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; margin-left:auto; border:0; padding:5px; background:none; box-shadow:none; color:#bfb0a0; cursor:pointer; transition:color .2s ease; }
.server-login-link .ui-icon { width:18px; height:18px; }
.server-login-link:hover { color:#f1e1c9; }
.server-login-link:focus-visible { outline:1px solid #d6bd99; outline-offset:2px; border-radius:5px; }
@media(min-width:768px) {
  .outside-footer:has(.server-login-link),.outside-footer.server-visitor-footer { margin-top:calc(4px - clamp(16px,1.3vw,32px)); }
}
.server-visitor-footer { min-height:28px; }
.board-shell:has(.server-login-link),.board-shell:has(.server-visitor-footer) { grid-template-rows:24px minmax(0,1fr) auto; }
.server-auth-dialog { width:min(440px,calc(100vw - 24px)); max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); border-radius:28px; padding:26px; background:rgba(35,27,26,.96); }
.server-auth-dialog form { display:flex; flex-direction:column; gap:18px; }
.server-auth-dialog h2 { margin:0 0 14px; font:24px 'Tenor Sans',Arial,sans-serif; }
.server-auth-dialog label,.server-upload { display:flex; flex-direction:column; gap:8px; color:#dbccb9; font:13px 'Tenor Sans',Arial,sans-serif; }
.server-auth-dialog input[type=password] { width:100%; min-height:44px; border-radius:12px; border:1px solid #e3cdb73b; padding:10px 12px; background:#332a28; color:#f1e9d9; font:16px 'Tenor Sans',Arial,sans-serif; }
.server-auth-dialog button,.server-load-error button { border:1px solid #e3cdb73b; border-radius:12px; padding:10px 15px; background:#47362e; color:#f1e9d9; font:14px 'Tenor Sans',Arial,sans-serif; }
.server-auth-dialog [role=alert]:empty { display:none; }
.server-auth-dialog [role=alert] { color:#efb9a0; font-size:13px; }
.server-auth-dialog>p { margin-block:16px; line-height:1.5; }
.server-upload { margin-top:6px; }
.server-upload input { width:100%; max-width:100%; font-size:13px; }
.server-upload [role=status] { font-size:12px; }
.server-load-error { position:fixed; inset:0; z-index:100; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:24px; gap:20px; background:#231b19; text-align:center; font:17px/1.5 'Tenor Sans',Arial,sans-serif; }
.server-auth-dialog button:disabled { opacity:.5; }
.server-auth-dialog [hidden] { display:none!important; }
.server-auth-dialog input[type=text] { width:100%; min-height:44px; border-radius:12px; border:1px solid #e3cdb73b; padding:10px 12px; background:#332a28; color:#f1e9d9; font:16px 'Tenor Sans',Arial,sans-serif; box-sizing:border-box; }
.server-security-dialog { width:min(520px,calc(100vw - 24px)); overflow-y:auto; }
.server-security-dialog>div { display:flex; flex-direction:column; gap:16px; }
.server-security-dialog p { font:14px/1.6 'Tenor Sans',Arial,sans-serif; margin:0; color:#dbccb9; }
.server-security-dialog .security-close { margin-top:20px; }
.security-qr { width:224px; height:auto; max-width:100%; align-self:center; image-rendering:pixelated; background:white; border-radius:8px; }
.security-recovery { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.security-recovery code { font:13px/1.5 monospace; padding:8px 4px; text-align:center; background:#ffffff09; border-radius:8px; user-select:all; }
@media(max-width:440px){.security-recovery { grid-template-columns:1fr; }}
@media(max-width:767px){
  .board-shell:has(.server-login-link),.board-shell:has(.server-visitor-footer) { grid-template-rows:18px minmax(0,1fr) auto; }
  .outside-footer.server-visitor-footer { min-height:44px; flex-direction:row; flex-wrap:wrap; gap:8px; }
  .outside-footer:has(.server-login-link) { flex-direction:row; flex-wrap:wrap; gap:8px; }
  .server-login-link { min-width:44px; min-height:44px; }
  .server-auth-dialog { padding:20px; }
  .server-upload input { font-size:16px; }
  .local-owner-controls button { padding:8px 10px; font-size:12px; }
}
