:root{
  color-scheme:light;
  --black:#000;
  --white:#fff;
  --line:#dedede;
  --muted:#666;
  --chat-height:100dvh;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:#fff;color:#000}
html{height:100%}
body{min-height:100dvh;direction:rtl;font-family:Arial,Tahoma,sans-serif;-webkit-text-size-adjust:100%}
button,input,textarea,select{font:inherit;color:#000;background:#fff}
button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:disabled{opacity:.34;cursor:default}
a{color:#000;text-underline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Home — mobile first */
.home-page{overflow-x:hidden}
.home-screen{
  position:relative;min-height:100dvh;display:grid;place-items:center;
  padding:24px 16px calc(24px + env(safe-area-inset-bottom));
  isolation:isolate;overflow:hidden;background:#fff;
}
.home-screen::before{
  content:"";position:absolute;inset:0;z-index:-3;opacity:.62;
  background-image:
    radial-gradient(circle at 1px 1px,rgba(0,0,0,.12) 1px,transparent 1.2px),
    linear-gradient(135deg,transparent 46%,rgba(0,0,0,.035) 47%,rgba(0,0,0,.035) 53%,transparent 54%);
  background-size:23px 23px,76px 76px;
}
.home-screen::after{
  content:"";position:absolute;inset:0;z-index:-2;
  background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.60) 0,#fff 76%);
}
.pattern{position:absolute;z-index:-1;border:1px solid rgba(0,0,0,.08);pointer-events:none}
.pattern-a{width:250px;height:250px;border-radius:50%;top:-118px;left:-96px;box-shadow:0 0 0 30px rgba(0,0,0,.018),0 0 0 58px rgba(0,0,0,.012)}
.pattern-b{width:185px;height:185px;right:-90px;bottom:-86px;transform:rotate(28deg);box-shadow:0 0 0 26px rgba(0,0,0,.018)}
.home-card{
  width:100%;max-width:430px;padding:26px 20px 22px;
  border:1px solid rgba(0,0,0,.72);border-radius:22px;background:rgba(255,255,255,.96);
  box-shadow:0 18px 50px rgba(0,0,0,.08);backdrop-filter:blur(2px);
}
.site-title{margin:0 0 22px;text-align:center;font-size:25px;line-height:1.2;letter-spacing:-.4px;font-weight:800}
.home-form{display:grid;gap:15px}
.field-label{font-size:14px;font-weight:800;margin-bottom:-6px}
.interest-tags-field{
  width:100%;min-height:58px;padding:8px 10px;display:flex;align-items:center;flex-wrap:wrap;gap:7px;
  border:1px solid #000;border-radius:13px;background:#fff;cursor:text;transition:box-shadow .15s ease;
}
.interest-tags-field:focus-within{box-shadow:0 0 0 2px rgba(0,0,0,.12)}
.interest-tags{display:contents}
.interest-chip{
  min-height:32px;max-width:100%;display:inline-flex;align-items:center;gap:5px;padding:4px 8px 4px 5px;
  border:1px solid #c8c8c8;border-radius:9px;background:#fafafa;font-size:14px;line-height:1.2;
}
.interest-chip>span{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.interest-chip-remove{width:23px;height:23px;padding:0;border:0;border-radius:6px;background:transparent;color:#555;font-size:19px;line-height:21px;cursor:pointer}
.interest-entry{flex:1 1 110px;min-width:80px;height:34px;padding:2px 3px;border:0;outline:0;background:transparent;font-size:16px}
.interest-entry::placeholder{color:#888}
.age-check{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.55;cursor:pointer}
.age-check input{width:20px;height:20px;margin:0;flex:0 0 auto;accent-color:#000}
.legal-line{margin:0;font-size:12.5px;line-height:1.75;color:#555}
.start-button,.main-button,.outline-button{min-height:52px;border:1px solid #000;border-radius:13px;padding:11px 16px;font-weight:800;cursor:pointer}
.start-button,.main-button{background:#000;color:#fff}
.outline-button{background:#fff;color:#000}

/* Chat */
.chat-page{height:100%;overflow:hidden;background:#fff}
.chat-screen{
  position:fixed;inset:0 0 auto 0;width:100%;height:var(--chat-height,100dvh);
  display:flex;flex-direction:column;overflow:hidden;background:#fff;
}
.chat-topbar{
  position:relative;flex:0 0 auto;min-height:52px;
  padding:calc(8px + env(safe-area-inset-top)) 12px 8px;
  border-bottom:1px solid var(--line);background:#fff;
}
.top-action{position:absolute;right:12px;bottom:8px;border:0;background:#fff;padding:8px 5px;font-size:13px;font-weight:700;cursor:pointer}
.connection-wrap{position:absolute;left:14px;bottom:16px;display:flex;align-items:center;gap:7px;direction:rtl;max-width:62%}
.status-dot{display:block;flex:0 0 auto;width:12px;height:12px;border-radius:50%;transition:background-color .15s ease,box-shadow .15s ease}
.status-dot.online{background:#13a14a;box-shadow:0 0 0 3px rgba(19,161,74,.12),0 0 12px rgba(19,161,74,.82)}
.status-dot.offline{background:#d01818;box-shadow:0 0 0 3px rgba(208,24,24,.10),0 0 12px rgba(208,24,24,.72)}
.connection-text{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#444}
.connection-text[hidden]{display:none}
.messages{
  flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:12px 10px 14px;display:flex;flex-direction:column;gap:7px;scroll-behavior:smooth;background:#fff;
}
.message-wrap{display:flex;flex-direction:column;max-width:88%;gap:2px;touch-action:pan-y;will-change:transform;transition:transform .16s ease}
.message-wrap.swiping{transition:none}
.message-wrap.mine{align-self:flex-start;align-items:flex-start}
.message-wrap.other{align-self:flex-end;align-items:flex-end}
.bubble{width:fit-content;max-width:100%;padding:9px 11px;border-radius:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}
.message-wrap.mine .bubble{background:#000;color:#fff;border:1px solid #000;border-bottom-left-radius:4px}
.message-wrap.other .bubble{background:#fff;color:#000;border:1px solid #000;border-bottom-right-radius:4px}
.reply-reference{margin:-2px -2px 7px;padding:6px 8px;border-right:3px solid currentColor;border-radius:7px;font-size:12px;line-height:1.35;opacity:.78;overflow:hidden}
.reply-reference strong{display:block;font-size:11px;margin-bottom:2px}
.reply-reference span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.reply-action{border:0;background:transparent;color:#666;padding:2px 4px;font-size:11px;cursor:pointer}
.message-wrap.mine .reply-action{align-self:flex-start}
.message-wrap.other .reply-action{align-self:flex-end}
.composer{flex:0 0 auto;border-top:1px solid var(--line);background:#fff;padding:0 8px calc(7px + env(safe-area-inset-bottom))}
.typing-zone{height:26px;display:flex;align-items:center;justify-content:center;text-align:center}
.typing-indicator{font-size:12px;font-weight:700;color:#555}
.typing-indicator[hidden]{visibility:hidden}
.reply-bar{min-height:42px;margin:0 2px 7px;padding:6px 9px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-right:3px solid #000;background:#f7f7f7;border-radius:8px}
.reply-bar[hidden]{display:none}
.reply-bar-text{min-width:0;display:grid;gap:2px}
.reply-bar-text strong{font-size:11px}
.reply-bar-text span{font-size:12px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reply-close{width:30px;height:30px;border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer}
.composer-row{direction:ltr;display:grid;grid-template-columns:58px minmax(0,1fr) 58px;align-items:end;gap:6px}
.composer textarea{grid-column:2;direction:rtl;width:100%;min-width:0;height:46px;max-height:110px;resize:none;padding:11px 12px;border:1px solid #000;border-radius:13px;outline:none;font-size:16px;line-height:22px;background:#fff;color:#000}
.composer textarea:focus{box-shadow:0 0 0 1px #000 inset}
.send-button,.next-button{height:46px;min-height:46px;padding:7px 8px;border:1px solid #000;border-radius:12px;font-size:13px;font-weight:800;cursor:pointer}
.send-button{grid-column:3;background:#fff;color:#000}
.next-button{grid-column:1;background:#000;color:#fff}
.next-button[hidden]{display:none}

/* Report modal */
.modal-backdrop{position:fixed;inset:0;z-index:100;display:none;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.42)}
.modal-backdrop.show{display:flex}
.modal{width:100%;display:grid;gap:10px;padding:14px 12px calc(14px + env(safe-area-inset-bottom));background:#fff;border-radius:16px 16px 0 0}
.modal select,.modal textarea{width:100%;padding:11px 12px;border:1px solid #000;border-radius:10px;outline:none;background:#fff;color:#000;font-size:16px}
.modal textarea{min-height:88px;resize:vertical}
.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.flash-wrap{position:fixed;left:12px;right:12px;bottom:12px;z-index:150;display:grid;gap:6px}
.flash{padding:10px 12px;border:1px solid #000;border-radius:10px;background:#fff;color:#000;box-shadow:0 8px 24px rgba(0,0,0,.08)}

/* Terms/privacy/status pages */
.container{width:min(720px,calc(100% - 24px));margin:auto}
.card{padding:20px;border:1px solid #000;border-radius:16px;background:#fff;color:#000;line-height:1.75}
.hero{min-height:100dvh;display:grid;place-items:center;padding:18px 0}
.small{font-size:12px;color:#555}
.badge{display:inline-block;padding:4px 8px;border:1px solid #000;border-radius:8px}
@media(min-width:700px){
  .home-card{padding:34px 30px 28px}
  .chat-screen{left:50%;right:auto;transform:translateX(-50%);width:min(720px,100%);border-left:1px solid var(--line);border-right:1px solid var(--line)}
  .message-wrap{max-width:72%}
  .modal-backdrop{align-items:center;padding:20px}
  .modal{width:min(420px,100%);border-radius:14px;border:1px solid #000;padding:18px}
}
