@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--primary:#7c3aed;--primary-soft:#efe7ff;--dark:#17121f;--bg:#faf8fc;--card:#fff;--text:#19151d;--muted:#756d7d;--border:#ebe6f2;--success:#22c55e;--danger:#dc2626;--shadow:0 10px 30px #17121f0f;--radius:20px;--tab-h:68px;--font:"Manrope", "Avenir Next", "Segoe UI", sans-serif;color:var(--text);font-family:var(--font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{overscroll-behavior-x:none;min-height:100%;margin:0;overflow-x:hidden}body{background:var(--bg);min-height:100dvh;color:var(--text);width:100%;position:relative}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{background:var(--bg);width:100%;max-width:480px;min-height:100dvh;margin:0 auto;position:relative;overflow-x:hidden}.page{padding:1.25rem 1.25rem calc(var(--tab-h) + 1.5rem);max-width:100%;overflow-x:hidden}.tanis-page{touch-action:pan-y;overflow-x:clip}.page.no-tab{padding-bottom:2rem}.stack{flex-direction:column;gap:1rem;display:flex}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:700}h1{font-size:1.65rem;line-height:1.2}h2{font-size:1.25rem}.muted{color:var(--muted);line-height:1.5}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.btn{appearance:none;cursor:pointer;border:none;border-radius:999px;padding:.85rem 1.25rem;font-weight:700;transition:transform .15s,opacity .15s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-ghost{background:var(--primary-soft);color:var(--primary)}.btn-outline{border:1.5px solid var(--border);color:var(--text);background:0 0}.btn-danger{color:var(--danger);background:#fee2e2}.btn-block{width:100%}.field{flex-direction:column;gap:.4rem;display:flex}.field label{color:var(--muted);font-size:.85rem;font-weight:600}.field input,.field textarea,.field select{border:1.5px solid var(--border);background:#fff;border-radius:14px;outline:none;padding:.85rem 1rem}.field input:focus,.field textarea:focus{border-color:var(--primary)}.chip-grid{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1.5px solid var(--border);cursor:pointer;color:var(--text);background:#fff;border-radius:999px;padding:.55rem .9rem;font-size:.9rem;font-weight:600}.chip.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.tabbar{width:min(480px,100%);height:var(--tab-h);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);z-index:40;padding-bottom:env(safe-area-inset-bottom);background:#ffffffeb;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;font-size:.68rem;font-weight:600;display:flex}.tab.active{color:var(--primary)}.tab .ico{font-size:1.2rem;line-height:1}.badge-dot{background:var(--primary);border-radius:50%;width:8px;height:8px;position:absolute;top:10px;right:calc(50% - 28px)}.chat-row{border-bottom:1px solid var(--border);color:inherit;align-items:center;gap:.75rem;padding:.85rem 0;text-decoration:none;display:flex}.chat-row-body{flex:1;min-width:0}.chat-row-top,.chat-row-bottom{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.chat-row-time{flex-shrink:0;font-size:.72rem}.chat-row-preview{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.85rem;overflow:hidden}.chat-row-unread-name{font-weight:800}.chat-row-unread-preview{color:var(--text);font-weight:600}.chat-unread-badge{background:var(--primary);color:#fff;border-radius:999px;flex-shrink:0;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;font-size:.7rem;font-weight:700;display:inline-grid}.avatar{background:var(--primary-soft);width:48px;height:48px;color:var(--primary);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.lg{width:88px;height:88px;font-size:1.6rem}.row{align-items:center;gap:.75rem;display:flex}.error-box{color:var(--danger);background:#fee2e2;border-radius:14px;padding:.75rem 1rem;font-size:.92rem}.safety-box{color:#9a3412;background:#fff7ed;border-radius:14px;padding:.85rem 1rem;font-size:.9rem;line-height:1.45}.logo-transparent,.auth-logo{background:0 0;width:min(70vw,220px);height:auto;margin:0 auto;display:block}.auth-logo{width:min(42vw,140px);margin-bottom:.5rem}.app-brand-header{background:0 0;align-items:center;gap:.55rem;padding:.85rem 1.25rem .35rem;display:flex}.app-brand-link{color:inherit;align-items:center;gap:.55rem;text-decoration:none;display:flex}.app-brand-mark{object-fit:contain;background:0 0;flex-shrink:0;width:36px;height:36px}.app-brand-name{letter-spacing:-.02em;color:var(--text);font-size:1.05rem;font-weight:800}.app-brand-footer{left:50%;bottom:calc(var(--tab-h) + .2rem);pointer-events:none;z-index:30;justify-content:center;width:min(480px,100%);display:flex;position:fixed;transform:translate(-50%)}.app-brand-foot-mark{object-fit:contain;opacity:.4;background:0 0;width:22px;height:22px}.splash{background:radial-gradient(90% 60% at 80% 0,#efe7ff 0%,#0000 55%),linear-gradient(#faf8fc,#f3edff);flex-direction:column;justify-content:space-between;min-height:100dvh;padding:2.5rem 1.5rem 2rem;display:flex}.splash-actions{flex-direction:column;gap:.75rem;display:flex}.pill{background:var(--primary-soft);color:var(--primary);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.78rem;font-weight:700;display:inline-flex}.empty{text-align:center;color:var(--muted);padding:2rem 1rem}.modal-backdrop{z-index:50;background:#17121f73;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal{width:min(420px,100%);box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:24px;padding:1.5rem}.compose-bar{border-top:1px solid var(--border);background:#fff;align-items:flex-end;gap:.5rem;padding:.75rem;display:flex;position:sticky;bottom:0}.compose-bar textarea{border:1.5px solid var(--border);resize:none;border-radius:16px;flex:1;min-height:44px;max-height:120px;padding:.7rem .9rem}.msg-list{flex-direction:column;gap:.55rem;min-height:50dvh;padding:1rem;display:flex}.bubble-wrap{flex-direction:column;max-width:85%;display:flex}.bubble-wrap.mine{align-self:flex-end;align-items:flex-end}.bubble-wrap.theirs{align-self:flex-start;align-items:flex-start}.bubble-wrap.system{align-self:center;align-items:center;max-width:92%}.bubble{-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:16px;max-width:100%;padding:.55rem .75rem .4rem;font-size:.95rem;line-height:1.4;transition:transform .18s}.bubble-wrap.pressing .bubble{transform:scale(.96)}.msg-body-row{align-items:flex-end;gap:.45rem;display:flex}.msg-text{white-space:pre-wrap;word-break:break-word;flex:1;min-width:0}.msg-time{opacity:.72;flex-shrink:0;padding-bottom:.1rem;font-size:.65rem;line-height:1}.bubble.mine .msg-time{color:#ffffffd1}.bubble.theirs .msg-time{color:var(--muted)}.msg-day-sep{align-self:center;margin:.35rem 0 .55rem}.msg-day-sep span{color:var(--muted);background:#19151d0f;border-radius:999px;padding:.28rem .7rem;font-size:.72rem;font-weight:700;display:inline-block}.msg-quote{background:#00000014;border-radius:10px;gap:.4rem;margin:0 0 .35rem;padding:.35rem .45rem;font-size:.78rem;line-height:1.3;display:flex}.bubble.mine .msg-quote{background:#ffffff2e}.msg-quote-bar{opacity:.7;background:currentColor;border-radius:3px;flex-shrink:0;width:3px}.msg-quote-body{flex-direction:column;gap:.1rem;min-width:0;display:flex}.msg-quote-who{font-size:.72rem}.msg-quote-body span{opacity:.9;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msg-reactions{z-index:1;gap:.25rem;margin-top:-.35rem;margin-bottom:.1rem;display:flex}.msg-reactions.mine{justify-content:flex-end;padding-right:.2rem}.msg-reactions.theirs{justify-content:flex-start;padding-left:.2rem}.msg-reaction-pill{border:1px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:.15rem;padding:.1rem .35rem;font-size:.78rem;display:inline-flex;box-shadow:0 1px 4px #0000000f}.msg-reaction-count{color:var(--muted);font-size:.65rem;font-weight:700}.reply-compose-bar{border:1px solid var(--border);background:var(--primary-soft);border-bottom:none;border-radius:14px 14px 0 0;align-items:center;gap:.5rem;margin:0 .75rem;padding:.55rem .7rem;display:flex}.reply-compose-preview{flex-direction:column;flex:1;gap:.1rem;min-width:0;font-size:.8rem;display:flex}.reply-compose-preview span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msg-sheet-backdrop{z-index:80;background:#0f0c1473;justify-content:center;align-items:flex-end;padding:1rem;animation:.18s sheet-fade;display:flex;position:fixed;inset:0}.msg-sheet{background:#fff;border-radius:18px;flex-direction:column;gap:.25rem;width:min(420px,100%);padding:.55rem;animation:.22s sheet-up;display:flex}.msg-sheet-preview{text-overflow:ellipsis;white-space:nowrap;padding:.55rem .75rem .35rem;font-size:.82rem;overflow:hidden}.msg-sheet-action{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:12px;padding:.85rem .9rem;font-size:.95rem;font-weight:700}.msg-sheet-action:hover{background:var(--primary-soft)}.msg-sheet-action.cancel{color:var(--muted);font-weight:600}.msg-sheet-action.danger{color:var(--danger)}.msg-sheet-action .msg-sheet-hint{color:var(--muted);margin-top:.2rem;font-size:.72rem;font-weight:500;display:block}.bubble.tombstone{opacity:.85}.tombstone-text{opacity:.85;font-style:italic}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{opacity:.6;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.msg-status{color:var(--muted);margin-top:.15rem;font-size:.68rem}.msg-status.seen{color:var(--primary);font-weight:600}.msg-status.delivered{letter-spacing:-.08em}.typing-pill{background:var(--primary-soft);color:var(--primary);border-radius:14px;align-self:flex-start;padding:.45rem .75rem;font-size:.8rem;font-weight:600;animation:1.2s ease-in-out infinite typing-pulse}.socket-live{color:#15803d;font-weight:600}@keyframes typing-pulse{0%,to{opacity:.55}50%{opacity:1}}.bubble.mine{background:var(--primary);color:#fff;border-bottom-right-radius:6px;align-self:flex-end}.bubble.theirs{border:1px solid var(--border);background:#fff;border-bottom-left-radius:6px;align-self:flex-start}.bubble.system{background:var(--primary-soft);color:var(--primary);align-self:center;font-size:.82rem;font-weight:600}.progress{background:var(--border);border-radius:999px;height:6px;overflow:hidden}.progress>span{background:var(--primary);border-radius:999px;height:100%;display:block}.swipe-deck{touch-action:none;overscroll-behavior:none;isolation:isolate;width:100%;max-width:100%;min-height:420px;margin:.25rem 0 .5rem;position:relative;overflow:hidden}.swipe-deck.is-dragging{touch-action:none}.swipe-hint-banner{z-index:5;color:#fff;white-space:nowrap;pointer-events:none;background:#17121fd1;border-radius:999px;padding:.4rem .85rem;font-size:.82rem;font-weight:700;animation:.35s swipe-hint-fade;position:absolute;top:.65rem;left:50%;transform:translate(-50%)}@keyframes swipe-hint-fade{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.swipe-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:100%;padding:1rem 1.1rem}.swipe-card-next{opacity:.72;pointer-events:none;z-index:0;position:absolute;inset:0;transform:scale(.96)}.swipe-card-active{z-index:1;will-change:transform;touch-action:none;-webkit-user-drag:none;position:relative}.swipe-stamp{z-index:2;letter-spacing:.06em;pointer-events:none;border:3px solid;border-radius:10px;padding:.35rem .7rem;font-size:1.15rem;font-weight:800;position:absolute;top:1.1rem;transform:rotate(-12deg)}.swipe-stamp.like{color:var(--success);border-color:var(--success);background:#22c55e1f;left:1rem}.swipe-stamp.pass{color:var(--danger);border-color:var(--danger);background:#dc26261a;right:1rem;transform:rotate(12deg)}.swipe-actions{justify-content:center;gap:2rem;padding:.25rem 0 .5rem;display:flex}.swipe-btn{border:1.5px solid var(--border);width:64px;height:64px;box-shadow:var(--shadow);cursor:pointer;background:#fff;border-radius:50%;place-items:center;font-size:1.55rem;line-height:1;transition:transform .15s,box-shadow .15s;display:grid}.swipe-btn:active:not(:disabled){transform:scale(.94)}.swipe-btn:disabled{opacity:.45;cursor:not-allowed}.swipe-btn.pass{color:var(--danger)}.swipe-btn.like{color:#e11d48;background:#fff1f2;border-color:#fecdd3}.gizli-photo-slot{border-radius:calc(var(--radius) - 4px);background:radial-gradient(at 30% 20%,#7c3aed24,#0000 55%),linear-gradient(160deg,#f3eef8 0%,#ebe4f4 45%,#e4dceb 100%);place-items:center;min-height:110px;display:grid;position:relative;overflow:hidden}.gizli-silhouette{filter:blur(.5px);opacity:.92}.gizli-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--primary);background:#ffffffe0;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;position:absolute;bottom:.55rem;left:50%;transform:translate(-50%)}.story-block{background:var(--bg);border-radius:14px;padding:.75rem .9rem}.ortak-list{gap:.35rem;margin:0;padding-left:1.1rem;display:grid}.seven-modal .chip{cursor:pointer;text-align:left}.anon-flow-banner{background:linear-gradient(135deg,#7c3aed1a,#7c3aed0a);border:1px solid #7c3aed2e;border-radius:16px;margin:.65rem 1rem 0;padding:.85rem 1rem}.photo-reveal-banner{background:linear-gradient(135deg,#22c55e14,#7c3aed0d)}.meet-progress{gap:.5rem;display:flex}.meet-progress span{text-align:center;border:1px dashed var(--border);color:var(--muted);background:#ffffffb3;border-radius:12px;flex:1;padding:.45rem .35rem;font-size:.82rem;font-weight:700}.meet-progress span.on{border-style:solid;border-color:var(--primary);color:var(--primary);background:#7c3aed14}.night-banner{border-radius:var(--radius);color:#f5f0fa;box-shadow:var(--shadow);background:radial-gradient(at 80% 0,#7c3aed38,#0000 50%),linear-gradient(165deg,#1a1224 0%,#2a1a3a 55%,#17121f 100%);padding:1rem 1.1rem}.night-banner .muted{color:#f5f0fab8}.night-banner .pill{color:#e9dff8;background:#ffffff1f}.night-banner .btn-ghost{color:#f5f0fa;border-color:#ffffff40}
