:root { color-scheme: light dark; --bg: #f5f5f7; --card-bg: #ffffff; --text: #1c1c1e; --muted: #6b6b70; --border: #e2e2e5; --accent: #3b7cf6; --accent-text: #ffffff; --danger: #e5484d; --success: #2fb344; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; } @media (prefers-color-scheme: dark) { :root { --bg: #17171a; --card-bg: #232326; --text: #f2f2f3; --muted: #96969c; --border: #333338; } } * { box-sizing: border-box; } body { margin: 0; background: var(--bg); color: var(--text); min-height: 100vh; } .screen { padding: 20px; display: flex; flex-direction: column; gap: 16px; } .card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 12px; padding: 18px; } h1 { font-size: 20px; margin: 0 0 4px; } .muted { color: var(--muted); font-size: 13px; } label { display: block; font-size: 12px; font-weight: 600; color: var(--muted); margin: 14px 0 6px; } label:first-of-type { margin-top: 4px; } input { width: 100%; padding: 10px 12px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg); color: var(--text); font-size: 14px; } input:focus { outline: 2px solid var(--accent); outline-offset: -1px; } button { border: none; border-radius: 8px; padding: 10px 16px; font-size: 14px; font-weight: 600; cursor: pointer; background: var(--accent); color: var(--accent-text); width: 100%; margin-top: 14px; } button.secondary { background: transparent; color: var(--text); border: 1px solid var(--border); } button:active { transform: scale(0.99); } .button-row { display: flex; gap: 10px; } .button-row button { margin-top: 14px; } details summary { cursor: pointer; font-size: 12px; color: var(--muted); margin-top: 10px; } #call-form { display: flex; gap: 8px; } #call-form input { flex: 1; } #call-form button { width: auto; margin-top: 0; white-space: nowrap; } header { display: flex; align-items: center; justify-content: space-between; } .me-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); } .me-username { font-size: 20px; font-weight: 700; } .icon-btn { width: 36px; height: 36px; padding: 0; border-radius: 999px; background: var(--card-bg); color: var(--text); border: 1px solid var(--border); font-size: 16px; margin-top: 0; } .list-header { display: flex; align-items: center; justify-content: space-between; font-size: 12px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 10px; } .status-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--muted); } .status-dot.online { background: var(--success); } .status-dot.offline { background: var(--danger); } .user-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; } .user-list li.empty { color: var(--muted); font-size: 13px; padding: 4px 0; } .user-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px; border-radius: 8px; background: var(--bg); } .user-row .name { font-size: 14px; font-weight: 500; } .user-row button { width: auto; margin-top: 0; padding: 6px 14px; font-size: 13px; } .status-text { text-align: center; min-height: 16px; } .overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.45); display: flex; align-items: center; justify-content: center; padding: 20px; } .call-card { width: 100%; max-width: 320px; text-align: center; } .ringing { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); font-weight: 700; } .incoming-from { font-size: 24px; font-weight: 700; margin: 8px 0 4px; } #decline-call { color: var(--danger); } #accept-call { background: var(--success); } .center { text-align: center; } .user-row { gap: 10px; } .user-row .name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .presence { flex: none; width: 8px; height: 8px; border-radius: 999px; background: var(--border); } .presence.online { background: var(--success); } .user-row button.remove { width: 28px; height: 28px; padding: 0; color: var(--muted); } button:disabled { opacity: 0.5; cursor: default; } button.add-contact { display: block; margin: 12px auto 0; } .error { color: var(--danger); font-size: 13px; margin: 10px 0 0; } button.link-btn { display: inline; width: auto; margin: 0; padding: 0; background: none; color: var(--accent); font: inherit; font-weight: 600; } [hidden] { display: none !important; }