/* Group invitation dialogs (join by link, invite friends). Tokens come from theme.css. */
.group-network-dialog {
  box-sizing: border-box;
  width: min(440px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  overflow: auto;
  margin: auto;
  padding: 22px 22px 18px;
  border: none;
  border-radius: var(--ui-radius-xl);
  background: var(--ui-surface);
  color: var(--ui-text);
  box-shadow: var(--ui-shadow-pop);
  font: 15px/1.5 var(--ui-font);
}
.group-network-dialog::backdrop {
  background: rgba(0, 0, 0, 0.32);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.gn-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.gn-title { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -0.01em; }
.gn-subtitle { margin: 2px 0 0; color: var(--ui-text-2); font-size: 14px; overflow-wrap: anywhere; }
.gn-close {
  display: grid; place-items: center; flex-shrink: 0;
  width: 32px; height: 32px; padding: 0;
  border: none; border-radius: 50%;
  background: var(--ui-surface-2); color: var(--ui-text-2);
  cursor: pointer; transition: background 0.15s var(--ui-ease);
}
.gn-close:hover { background: var(--ui-surface-3); }
.gn-close .ui-icon { width: 16px; height: 16px; }
.gn-body { display: grid; gap: 12px; }
.gn-input {
  box-sizing: border-box; width: 100%; min-width: 0;
  padding: 12px 14px;
  border: none; border-radius: var(--ui-radius);
  background: var(--ui-surface-2); color: var(--ui-text);
  font: 14px/1.45 var(--ui-font);
  transition: box-shadow 0.15s var(--ui-ease), background 0.15s var(--ui-ease);
}
.gn-input:focus { outline: none; background: var(--ui-surface); box-shadow: 0 0 0 3px var(--ui-accent-ring); }
.gn-link-input { resize: none; word-break: break-all; }
.gn-link { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 13px; color: var(--ui-text-2); text-overflow: ellipsis; }
.gn-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gn-actions .gn-btn { flex: 1 1 auto; }
.gn-btn {
  min-height: 42px; padding: 0 18px;
  border: none; border-radius: 999px;
  font: 500 15px/1 var(--ui-font);
  cursor: pointer; transition: background 0.15s var(--ui-ease), opacity 0.15s var(--ui-ease);
}
.gn-btn[hidden] { display: none; }
.gn-btn:disabled { opacity: 0.45; cursor: default; }
.gn-btn-primary { background: var(--ui-accent); color: var(--ui-on-accent); }
.gn-btn-primary:not(:disabled):hover { background: var(--ui-accent-hover); }
.gn-btn-primary:not(:disabled):active { background: var(--ui-accent-press); }
.gn-btn-secondary { background: var(--ui-accent-tint); color: var(--ui-accent); }
.gn-btn-secondary:not(:disabled):hover { background: rgba(0, 113, 227, 0.16); }
.gn-btn-quiet { background: transparent; color: var(--ui-danger); }
.gn-btn-quiet:not(:disabled):hover { background: var(--ui-danger-tint); }
.gn-note { margin: 0; color: var(--ui-text-2); font-size: 13px; overflow-wrap: anywhere; }
.gn-app-error { white-space: pre-wrap; color: var(--ui-danger); font: 12px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; max-height: 140px; overflow: auto; }
.gn-steps { margin: 4px 0 0; padding: 12px 14px 12px 30px; border-radius: var(--ui-radius); background: var(--ui-surface-2); color: var(--ui-text-2); font-size: 13px; }
.gn-steps li + li { margin-top: 6px; }
.gn-status { min-height: 1.4em; margin: 10px 0 0; color: var(--ui-text-2); font-size: 13px; overflow-wrap: anywhere; }
.gn-status.is-error { color: var(--ui-danger); }
.gn-qr { width:min(260px,100%); height:auto; justify-self:center; background:white; padding:8px; border-radius:12px; box-sizing:border-box; }
.gn-qr-caption { text-align:center; }
.gn-btn[href] { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.gn-qr[hidden],.gn-qr-caption[hidden],.gn-btn[hidden] { display:none; }
.gn-search-controls { display:grid; gap:12px; min-width:0; }
.gn-search-form { display:flex; gap:8px; min-width:0; }
.gn-search-form .gn-input { flex:1; }
.gn-search-form .gn-btn { flex-shrink:0; }
.gn-search-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
.group-announcement { display:block; width:100%; padding:9px 14px; border:0; border-bottom:1px solid var(--ui-border); background:var(--ui-accent-tint); color:var(--ui-text-2); text-align:left; font:13px/1.5 var(--ui-font); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:pointer; }
.group-announcement[hidden] { display:none; }
.gn-team-info { flex-shrink:0; padding:7px 10px; border:0; border-radius:9px; background:var(--ui-accent-tint); color:var(--ui-accent); font:500 12px/1.5 var(--ui-font); cursor:pointer; white-space:nowrap; }
.gn-team-info[hidden] { display:none; }
.gn-search-filter { display:grid; gap:5px; font-size:12px; color:var(--ui-text-2); min-width:0; }
.gn-search-filter:first-child { grid-column:1 / -1; }
.gn-search-filter .gn-input { box-sizing:border-box; min-width:0; width:100%; }
.gn-search-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.gn-search-result mark { background:#fcdf90; color:inherit; border-radius:3px; }
.gn-search-result.gn-message-focus { border:1px solid var(--ui-accent); background:var(--ui-accent-tint); }
.gn-search-results { display:grid; gap:12px; }
.gn-search-result { padding:12px; border-radius:12px; background:var(--ui-surface-2); overflow-wrap:anywhere; }
.gn-search-result small { display:block; color:var(--ui-text-2); margin:4px 0; }
.gn-search-result p { white-space:pre-wrap; max-height:160px; overflow:auto; }
.gn-search-result .gn-btn { min-height:32px; font-size:12px; }
.group-reply-preview { display:flex; align-items:center; gap:10px; margin:0 12px 8px; padding:10px 12px; background:var(--ui-surface-2); border-left:3px solid var(--ui-accent); border-radius:8px; font-size:12px; }
.group-reply-preview[hidden] { display:none; }
.group-reply-preview>div { min-width:0; flex:1; }
.group-reply-preview p { margin:3px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ui-text-2); }
.group-reply-preview button { border:0; background:transparent; color:var(--ui-text-2); cursor:pointer; font:inherit; padding:5px 8px; }
.msg-reply-quote { margin:0 0 8px; border-left:3px solid var(--ui-accent); padding:5px 9px; border-radius:4px; background:var(--ui-surface-2); color:var(--ui-text-2); font-size:12px; overflow-wrap:anywhere; }
.msg-reply-quote p { margin:3px 0 0; white-space:pre-wrap; max-height:80px; overflow:auto; }
@media (max-width: 480px) {
  .group-network-dialog { width: calc(100vw - 24px); padding: 18px 16px 14px; }
  .gn-actions .gn-btn { flex: 1 1 100%; }
}
