:root{
  --bg:#0d1523;--panel:#121c2c;--panel2:#182333;--panel3:#0c1421;--line:#2a3649;
  --text:#f3f6fb;--muted:#8fa2bc;--blue:#2ca3dc;--blue2:#2d6cff;--danger:#b93046;
  --bubble:#1d2942;--shadow:0 24px 70px rgba(0,0,0,.36);--radius:26px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}.hidden{display:none!important}.muted{color:var(--muted)}
.auth-page{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:28px;background:radial-gradient(circle at 50% 35%,#132335 0,#0d1624 42%,#09111d 100%)}
.auth-card{width:min(560px,100%);padding:42px;border:1px solid #293747;border-radius:28px;background:#17222f;box-shadow:var(--shadow);text-align:center}
.auth-card h1{font-size:42px;margin:8px 0 0}.auth-card p{font-size:20px;margin:8px 0 28px}.brand-mark{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;margin:0 auto;background:#29a5dc;font-size:42px;font-weight:900;color:#fff}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#0c1523;border-radius:18px;padding:8px;margin:28px 0 30px}.auth-tabs a{padding:15px;border-radius:14px;text-decoration:none;color:var(--muted);font-size:20px;font-weight:700}.auth-tabs a.active{background:var(--blue);color:white}
.auth-card form{text-align:left}.auth-card label,.modal-card label{display:block;color:#9fb1c8;font-weight:700;margin:20px 0 8px}.auth-card input,.auth-card select,.modal-card input,.modal-card textarea,.modal-card select{width:100%;border:1px solid transparent;background:#0d1726;color:#fff;border-radius:18px;padding:17px 18px;outline:none}.auth-card input:focus,.auth-card select:focus,.modal-card input:focus,.modal-card textarea:focus,.modal-card select:focus{border-color:#2a94ca}.field-note{color:#7d91aa;margin-top:8px}.primary,.secondary,.danger{border:0;border-radius:17px;padding:14px 20px;font-weight:800;color:#fff;cursor:pointer}.primary{background:var(--blue)}.secondary{background:#27364b}.danger{background:var(--danger)}.big{width:100%;font-size:21px;margin-top:28px;padding:18px}.alert{padding:12px 14px;border-radius:14px;margin:0 0 18px;text-align:left}.alert.error{background:#4c1d28;color:#ffd7de}.setup-card{max-width:520px}

.chat-page{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none}.chat-shell{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;overflow:hidden;background:#0b1320}.chat-main{position:absolute;inset:0;height:auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-header{position:relative;top:0;min-height:82px;height:82px;flex:0 0 82px;padding:12px 18px;display:flex;align-items:center;gap:14px;background:#10192d;border-bottom:1px solid #2e3950;z-index:3}.menu-btn,.icon-btn,.attach-btn,.voice-btn{border:0;background:transparent;color:#f4f6fa;cursor:pointer}.menu-btn{font-size:32px;padding:4px 8px}.search-head{font-size:30px;margin-left:auto;background:#20283a;border:1px solid #3c465d;border-radius:18px;width:52px;height:52px}.chat-person{display:flex;align-items:center;gap:12px;min-width:0}.chat-person strong{display:block;font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-person span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.avatar{width:48px;height:48px;border-radius:16px;border:3px solid #2d67ff;background:#16233a;display:grid;place-items:center;font-weight:900;overflow:hidden;flex:0 0 auto}.avatar img{width:100%;height:100%;object-fit:cover}.big-avatar{width:64px;height:64px;border-radius:20px}
.messages{flex:1;overflow:auto;padding:24px 18px 26px;background-color:#0c1422;background-image:radial-gradient(#1c2a3d 1px,transparent 1px);background-size:22px 22px;scroll-behavior:smooth}.welcome-card{max-width:520px;margin:12vh auto 0;text-align:center;background:#131f31;border:1px solid #28374c;border-radius:24px;padding:30px;box-shadow:var(--shadow)}.welcome-icon{font-size:44px}.welcome-card h2{margin:10px 0 8px}.welcome-card p{color:var(--muted);line-height:1.6}.welcome-card .primary{margin-top:12px}
.message-row{display:flex;margin:10px 0;align-items:flex-end;gap:8px}.message-row.mine{justify-content:flex-end}.bubble{position:relative;max-width:min(76%,620px);padding:14px 16px 10px;border:1px solid #36445e;background:var(--bubble);border-radius:22px 22px 22px 7px;box-shadow:0 6px 18px rgba(0,0,0,.12)}.mine .bubble{border:none;border-radius:22px 22px 7px 22px;background:linear-gradient(135deg,#2f63ff,#7650ad 56%,#aa344f)}.bubble-text{white-space:pre-wrap;word-break:break-word;line-height:1.42;font-size:16px}.bubble-meta{display:flex;justify-content:flex-end;gap:7px;margin-top:8px;font-size:11px;color:#d0d8e8}.bubble-menu{border:0;background:transparent;color:#8da0b9;padding:4px;font-size:18px;cursor:pointer}.attachment{margin:0 0 8px}.attachment img{display:block;max-width:100%;max-height:420px;border-radius:16px}.attachment video{display:block;width:min(100%,520px);max-height:420px;border-radius:16px;background:#000}.attachment audio{display:block;width:min(100%,420px);height:40px}.file-card{display:flex;gap:10px;align-items:center;text-decoration:none;color:white;background:rgba(0,0,0,.18);padding:12px;border-radius:14px}.file-card small{display:block;color:#ced6e4;margin-top:3px}.message-actions{position:absolute;right:0;top:calc(100% + 6px);background:#101a2a;border:1px solid #36435a;border-radius:12px;overflow:hidden;z-index:9;box-shadow:var(--shadow)}.mine .message-actions{right:0}.message-actions button{display:block;width:100%;border:0;background:transparent;color:#fff;text-align:left;padding:10px 14px;cursor:pointer}.message-actions button:hover{background:#1b2940}
.composer{flex:0 0 auto;display:flex;align-items:flex-end;gap:10px;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:#111a2d;border-top:1px solid #2c3850}.attach-btn{font-size:27px;padding:10px 5px}.voice-btn{width:44px;height:44px;flex:0 0 44px;border-radius:50%;font-size:22px;display:grid;place-items:center;padding:0}.voice-btn:hover{background:#202c40}.voice-btn.recording{background:#b93046;animation:voicePulse 1.1s ease-in-out infinite}.voice-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes voicePulse{0%,100%{box-shadow:0 0 0 0 rgba(185,48,70,.35)}50%{box-shadow:0 0 0 9px rgba(185,48,70,0)}}.compose-center{flex:1;background:#20283a;border:1px solid #3b455c;border-radius:24px;min-height:50px;padding:5px 14px}.composer textarea{width:100%;max-height:120px;resize:none;background:transparent;border:0;outline:0;color:white;padding:8px 0;font-size:16px}.send-btn{width:52px;height:52px;border-radius:50%;border:0;background:#b32f46;color:white;font-size:25px;cursor:pointer}.voice-preview,.file-preview{font-size:12px;padding:6px 0;color:#d8dfeb}.voice-preview{display:flex;align-items:center;gap:8px;min-width:0}.voice-preview .recording-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ffb8c4}.voice-preview audio{width:100%;min-width:0;height:34px}.voice-preview button,.file-preview button{border:0;background:transparent;color:#ff9aae;margin-left:7px;cursor:pointer}
.drawer{position:fixed;inset:0 auto 0 0;width:min(88vw,380px);background:#111a2c;border-right:1px solid #354159;z-index:20;transform:translateX(-105%);transition:.22s ease;display:flex;flex-direction:column}.drawer.open{transform:none}.drawer-shade{position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:19;opacity:0;pointer-events:none;transition:.2s}.drawer-shade.open{opacity:1;pointer-events:auto}.drawer-head{display:flex;align-items:center;gap:12px;padding:22px 18px;border-bottom:1px solid #2e3a50}.drawer-head .icon-btn{margin-left:auto;font-size:32px}.drawer-me{min-width:0}.drawer-me strong,.drawer-me span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-me span{color:var(--muted);font-size:13px;margin-top:3px}.drawer-action{display:block;width:100%;padding:15px 18px;border:0;border-bottom:1px solid #202d41;background:transparent;color:#fff;text-align:left;text-decoration:none;font-weight:700;cursor:pointer}.drawer-action:hover{background:#17243a}.drawer-section-title{padding:18px 18px 8px;color:#7f93ae;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.recent-list{flex:1;overflow:auto}.recent-item{display:flex;gap:11px;align-items:center;padding:12px 16px;cursor:pointer}.recent-item:hover{background:#17243a}.recent-item .avatar{width:44px;height:44px;border-radius:14px}.recent-main{min-width:0;flex:1}.recent-main strong,.recent-main span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-main span{font-size:12px;color:var(--muted);margin-top:3px}.online-dot{width:9px;height:9px;border-radius:50%;background:#2ad06f;box-shadow:0 0 8px #2ad06f}.empty-small{color:#7d8ea5;padding:14px 18px}.logout{margin-top:auto;color:#ffb6c1}
.modal-shade{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.62);display:grid;place-items:center;padding:18px}.modal-card{position:relative;width:min(520px,100%);max-height:90vh;overflow:auto;background:#17222f;border:1px solid #334258;border-radius:24px;padding:24px;box-shadow:var(--shadow)}.modal-card h3{margin:0 0 6px;font-size:24px}.modal-card .primary,.modal-card .secondary,.modal-card .danger{margin-top:18px;width:100%}.modal-close{position:absolute;right:15px;top:12px;border:0;background:transparent;color:#dfe6f1;font-size:31px;cursor:pointer}.search-user-card{display:flex;align-items:center;gap:12px;margin-top:18px;background:#101a29;border:1px solid #2f3c51;border-radius:18px;padding:14px}.search-user-card .grow{flex:1;min-width:0}.search-user-card strong,.search-user-card span{display:block}.search-user-card span{color:var(--muted);font-size:12px;margin-top:4px}.search-user-card button{border:0;border-radius:12px;background:#2ca3dc;color:white;padding:10px 13px;font-weight:800;cursor:pointer}.toast{position:fixed;left:50%;bottom:24px;z-index:80;transform:translate(-50%,30px);opacity:0;background:#17263b;color:white;border:1px solid #40506c;border-radius:14px;padding:11px 16px;pointer-events:none;transition:.2s;max-width:min(90vw,520px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}

.admin-page{min-height:100vh;background:#0d1523}.admin-shell{min-height:100vh}.admin-head{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#111b2d;border-bottom:1px solid #314056}.admin-head>div{text-align:center}.admin-head span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.back-link{color:#dce5f2;text-decoration:none}.admin-tabs{display:flex;gap:8px;padding:12px;overflow:auto;background:#0f1828;border-bottom:1px solid #27354a}.admin-tabs button{border:0;background:#1a2639;color:#aebbd0;padding:11px 16px;border-radius:13px;cursor:pointer;font-weight:700}.admin-tabs button.active{background:#2b9fd7;color:white}.admin-content{padding:18px;max-width:1000px;margin:0 auto}.admin-tab{display:none}.admin-tab.active{display:block}.admin-list{display:grid;gap:12px}.admin-card{background:#151f30;border:1px solid #2e3b50;border-radius:18px;padding:15px}.admin-card-head{display:flex;gap:12px;align-items:center}.admin-card-main{min-width:0;flex:1}.admin-card-main strong{display:block}.admin-card-main small{color:var(--muted)}.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#243349;color:#b8c8dc}.badge.open{background:#572b22;color:#ffc6b8}.badge.active{background:#173a2b;color:#98efbf}.badge.banned{background:#4b2330;color:#ffb8c9}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.admin-actions button{border:0;border-radius:10px;padding:8px 11px;background:#27364b;color:#fff;cursor:pointer}.admin-actions button.danger-small{background:#742b3c}.admin-message-view{margin-top:12px;max-height:68vh;overflow:auto;background:#0d1624;border-radius:16px;padding:12px}.admin-msg{padding:10px 12px;margin:7px 0;background:#19253a;border-radius:13px}.admin-msg-head{display:flex;justify-content:space-between;gap:10px;color:#91a5bf;font-size:12px}.admin-msg p{margin:7px 0 0;white-space:pre-wrap;word-break:break-word}.admin-msg img,.admin-msg video{max-width:100%;max-height:300px;border-radius:12px;margin-top:8px}.admin-msg audio{width:min(100%,420px);margin-top:8px}.admin-conversation-modal{width:min(760px,100%)}

@media (min-width:900px){
  .chat-shell{max-width:1100px;margin:0 auto;border-left:1px solid #243149;border-right:1px solid #243149}.drawer{left:max(0px,calc(50% - 550px));width:350px}
}
@media (max-width:520px){
  .auth-page{padding:0}.auth-card{border-radius:0;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:28px}.auth-card h1{font-size:36px}.brand-mark{width:78px;height:78px}.messages{padding-left:10px;padding-right:10px}.bubble{max-width:86%}.chat-header{padding-left:8px;padding-right:10px}.composer{padding-left:8px;padding-right:8px}.admin-content{padding:10px}
}

/* v1.0.2: keep the chat header visible when Android Chrome opens/closes the keyboard. */
html:has(body.chat-page),html:has(body.chat-page) body{height:100%;overflow:hidden;overscroll-behavior:none}
@supports not (height:100dvh){.chat-page,.chat-shell{height:100vh}}
@media (max-width:899px){.chat-page,.chat-shell{max-height:100dvh}.chat-header{flex-shrink:0}.messages{min-height:0}}

/* v1.0.4 - delete for everyone */
.deleted-bubble{background:rgba(72,84,110,.34)!important;border:1px dashed rgba(150,164,195,.35);box-shadow:none!important}
.deleted-message-text{font-style:italic;color:var(--muted,#9aa8c2);padding:2px 0}
.admin-deleted-note{display:inline-block;margin:6px 0 10px;padding:5px 9px;border-radius:999px;background:rgba(255,184,77,.12);border:1px solid rgba(255,184,77,.32);color:#ffc66d;font-size:12px;font-weight:700}

/* v1.0.6 - opt-in random chat */
.random-drawer-action{color:#dce7ff}.random-welcome-btn{margin-top:10px!important}.random-status-box{margin:20px 0 4px;padding:22px 16px;text-align:center;background:#101a29;border:1px solid #2f3c51;border-radius:20px}.random-status-box strong,.random-status-box>span{display:block}.random-status-box strong{font-size:18px;margin-top:10px}.random-status-box>span{color:var(--muted);font-size:13px;line-height:1.5;margin-top:5px}.random-orbit{width:70px;height:70px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#244780,#27304c);border:1px solid #445675;font-size:30px}.random-orbit.searching{animation:randomPulse 1.2s ease-in-out infinite}.random-orbit.searching span{animation:randomSpin 1.8s linear infinite}@keyframes randomPulse{0%,100%{box-shadow:0 0 0 0 rgba(44,163,220,.35)}50%{box-shadow:0 0 0 12px rgba(44,163,220,0)}}@keyframes randomSpin{to{transform:rotate(360deg)}}


/* v1.0.7 - gender registration and mutual random-chat gender filter */
.random-own-gender{margin:9px 2px 0;color:var(--muted);font-size:13px}.random-own-gender strong{color:#dce7ff}.compact-alert{margin:10px 0 0;padding:10px 12px;font-size:13px}.auth-card select{appearance:auto}
