:root{--bg:#0b0f1e;--card:#151a2e;--card2:#1c2340;--txt:#eef1ff;--mut:#8b93b8;--acc:#7c5cff;--acc2:#22d3ee;--ok:#22c55e;--bad:#f43f5e}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--txt);font-family:-apple-system,"Segoe UI","Rubik","Noto Sans Hebrew",Arial,sans-serif}
#app{max-width:560px;margin:0 auto;height:100%;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}
button{font:inherit;border:0;cursor:pointer;color:inherit}
.btn{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;padding:14px 20px;border-radius:14px;font-weight:700;font-size:16px;width:100%}
.btn.ghost{background:var(--card2)}
.btn:disabled{opacity:.4}
input,textarea{font:inherit;background:var(--card2);color:var(--txt);border:1px solid #2a335a;border-radius:14px;padding:13px 14px;width:100%;outline:none}
input:focus{border-color:var(--acc)}
header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #1c2340}
header h1{font-size:20px;margin:0;flex:1}
.logo{width:34px;height:34px}
.icon{background:var(--card2);width:40px;height:40px;border-radius:12px;font-size:19px;display:grid;place-items:center}
.center{flex:1;display:flex;flex-direction:column;justify-content:center;padding:28px;gap:16px;text-align:center}
.center h2{margin:0;font-size:28px}.mut{color:var(--mut);font-size:14px;line-height:1.6}
.list{flex:1;overflow:auto;padding:8px}
.friend{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--card);margin-bottom:8px;cursor:pointer}
.av{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:19px;position:relative;flex:none}
.dot{position:absolute;bottom:0;left:0;width:13px;height:13px;border-radius:50%;border:2px solid var(--card);background:#555c7a}
.dot.on{background:var(--ok)}
.fname{font-weight:700}.fsub{font-size:13px;color:var(--mut)}
.badge{margin-inline-start:auto;background:var(--acc);border-radius:20px;padding:2px 9px;font-size:13px;font-weight:700}
.empty{text-align:center;color:var(--mut);padding:50px 20px;line-height:1.7}
.fab{margin:12px 16px calc(12px + env(safe-area-inset-bottom))}
.msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.b{max-width:78%;padding:11px 14px;border-radius:18px;font-size:15px;line-height:1.4}
.b.in{align-self:flex-start;background:linear-gradient(135deg,#2b2160,#163a4a);cursor:pointer;border:1px solid #3b3290}
.b.in b{display:block}.b.in small{color:var(--mut)}
.b.out{align-self:flex-end;background:var(--card);color:var(--mut);font-size:13px}
.sys{align-self:center;font-size:12px;color:var(--mut);background:var(--card);padding:5px 12px;border-radius:20px}
.typing{font-size:13px;color:var(--acc2);padding:0 16px;height:18px}
.comp{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #1c2340;align-items:center}
.comp input{flex:1}
.comp .icon.rec{background:var(--bad);animation:p 1s infinite}@keyframes p{50%{opacity:.5}}
.off{background:#2a1530;color:#ffb4c6;text-align:center;padding:10px;font-size:13px}
.sheet{position:fixed;inset:0;background:#000a;display:flex;align-items:flex-end;justify-content:center;z-index:5}
.sheet>div{background:var(--card);width:100%;max-width:560px;border-radius:24px 24px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;text-align:center}
.qr{background:#fff;border-radius:16px;padding:12px;width:220px;margin:0 auto}.qr img,.qr svg{width:100%;display:block}
.link{font-size:12px;color:var(--mut);word-break:break-all;direction:ltr}
.viewer{position:fixed;inset:0;background:#000;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;user-select:none;-webkit-user-select:none}
.viewer img,.viewer video{max-width:100%;max-height:75vh;border-radius:12px}
.viewer .vt{font-size:22px;line-height:1.5;white-space:pre-wrap;max-width:600px;text-align:center}
.viewer .bar{position:absolute;top:calc(14px + env(safe-area-inset-top));inset-inline:16px;display:flex;justify-content:space-between;align-items:center;color:var(--mut);font-size:13px}
.viewer .close{background:#ffffff22;padding:9px 16px;border-radius:20px;color:#fff}
#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:#fff;color:#000;padding:10px 18px;border-radius:20px;font-size:14px;opacity:0;transition:.3s;pointer-events:none;z-index:20;max-width:90%;text-align:center}
#toast.show{opacity:1}
.lock{font-size:12px;color:var(--mut);text-align:center;padding:6px}
.chip{background:var(--card2);border-radius:20px;padding:4px 10px;font-size:13px;margin:2px}a{color:var(--acc2)}
input,textarea,select{font-size:16px;-webkit-user-select:text;user-select:text;touch-action:manipulation}
input{-webkit-appearance:none;appearance:none}
.sel{-webkit-appearance:none;appearance:none;background:var(--card2);color:var(--txt);border-radius:14px;padding:12px 14px;border:1px solid #2a335a;font:inherit;font-size:16px;width:100%}
.fx{position:fixed;pointer-events:none;z-index:30;overflow:visible}
.fx .shard{position:absolute;display:block;border-radius:3px;box-shadow:0 0 8px #fff4}
.fx .puff{position:absolute;display:block;border-radius:50%;background:radial-gradient(circle,#e8e9ff 0,#b9bde0aa 40%,#0000 70%);filter:blur(2px)}
.viewer.hid>*:not(.bar){filter:blur(40px);opacity:.05}
.viewer.wh .vt,.viewer.wh img,.viewer.wh video{filter:blur(22px);transition:filter .12s}
.viewer.wh.rv .vt,.viewer.wh.rv img,.viewer.wh.rv video{filter:none}
.viewer .wtip{position:absolute;bottom:calc(24px + env(safe-area-inset-bottom));color:var(--mut);font-size:13px}
.viewer img,.viewer video,.viewer .vt{-webkit-touch-callout:none;-webkit-user-drag:none;user-select:none;-webkit-user-select:none}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:start}
.snds{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.snds .chip.sel1{background:var(--acc);color:#fff}
.tg{flex:none;min-width:56px;padding:6px 12px}.tg::after{content:"OFF"}.tg[aria-pressed=true]{background:var(--acc);color:#fff}.tg[aria-pressed=true]::after{content:"ON"}
.viewer.wh{touch-action:none}
.howto{position:fixed;inset:0;z-index:60;background:var(--bg) radial-gradient(120% 80% at 50% 0%,#24205a 0%,var(--bg) 60%);display:flex;flex-direction:column;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);animation:hwIn .3s ease}
@keyframes hwIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hw-top{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;max-width:560px;width:100%;margin:0 auto}
.hw-skip{background:none;color:var(--mut);font-size:15px;padding:8px}
.hw-track{flex:1;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;max-width:560px;width:100%;margin:0 auto}
.hw-track::-webkit-scrollbar{display:none}
.hw-card{flex:0 0 100%;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 30px;gap:10px;overflow:auto}
.hw-emo{font-size:64px;width:120px;height:120px;border-radius:36px;display:grid;place-items:center;background:linear-gradient(135deg,#7c5cff33,#22d3ee33);border:1px solid #3b3290;box-shadow:0 10px 40px #7c5cff33;margin-bottom:8px}
.hw-n{color:var(--acc2);font-weight:700;font-size:13px;letter-spacing:1px}
.hw-card h2{margin:0;font-size:24px}.hw-card p{margin:0;color:#c7cdf0;font-size:16px;line-height:1.65;max-width:400px}
.hw-dots{display:flex;justify-content:center;gap:8px;padding:10px}
.hw-dots i{width:8px;height:8px;border-radius:8px;background:#3a4270;transition:all .25s;cursor:pointer}
.hw-dots i.on{width:24px;background:linear-gradient(90deg,var(--acc),var(--acc2))}
.hw-bot{padding:8px 20px 20px;max-width:560px;width:100%;margin:0 auto}
.chip.bye{white-space:nowrap;font-size:13px;padding:6px 10px}
/* scheduled chats */
.schs{display:flex;flex-direction:column;gap:6px;padding:8px 12px 0}
.sch{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:rgba(124,92,255,.14);border:1px solid rgba(124,92,255,.35);border-radius:14px;padding:8px 10px;font-size:14px}
.sch span{flex:1 1 160px}
#sdt{direction:ltr}

/* long text viewer fix: scroll inside, close always visible */
.viewer .bar{z-index:3}
.viewer .vt{max-height:calc(100vh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow-wrap:anywhere;word-break:break-word;width:100%;margin-top:calc(40px + env(safe-area-inset-top));touch-action:pan-y}
.viewer .vt.long{font-size:18px;text-align:start}
.viewer.wh .vt{touch-action:pan-y}
.msgs *{overflow-wrap:anywhere}
/* clear end-chat button in chat header */
.endc{flex:none;white-space:nowrap;font-size:13px;font-weight:600;padding:6px 12px;border-radius:18px;border:1.5px solid #ef4444;color:#ef4444;background:transparent}
.endc:active{background:#ef444422}
#toast.show{pointer-events:auto;cursor:pointer}
/* quick invite 👋 */
.friend .inv{margin-inline-start:auto;flex:none;width:42px;height:42px;border-radius:50%;border:1px solid rgba(124,92,255,.45);background:rgba(124,92,255,.14);font-size:20px;cursor:pointer;display:grid;place-items:center;padding:0}
.friend .inv:active{transform:scale(.92)}
.friend .badge+.inv{margin-inline-start:6px}
.invb{position:fixed;top:calc(env(safe-area-inset-top) + 10px);left:50%;transform:translateX(-50%);z-index:25;width:min(92%,460px);display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#7c5cff,#22d3ee);color:#fff;font-weight:700;padding:12px 14px;border-radius:16px;box-shadow:0 8px 28px #0008;cursor:pointer;animation:invIn .35s ease}
.invb span{flex:1}.invb .x{background:#0003;border:0;color:#fff;border-radius:50%;width:28px;height:28px;font-size:14px;cursor:pointer;flex:none}
@keyframes invIn{from{opacity:0;transform:translate(-50%,-14px)}to{opacity:1;transform:translate(-50%,0)}}
.getapp{display:flex;flex-direction:column;gap:6px;align-items:stretch;text-align:center;background:var(--card2);border-radius:14px;padding:10px 12px;margin-top:6px}.getapp .ga-t{font-weight:700;font-size:14px}.getapp .ga-b{display:block;text-decoration:none;text-align:center;padding:10px 14px;font-size:15px}.getapp small{font-size:12px;line-height:1.4}
