:root{--bg:#0f1115;--panel:#171a21;--panel-2:#1e222b;--border:#2a2f3a;--text:#e9ebf0;--muted:#939cab;--accent:#ff6b00;--accent-2:#ff2d75;--online:#3ddc84;--filter-on:#ffd24d;--radius:16px;--shadow:0 12px 32px #00000073;--sans:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;font:16px/1.5 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:radial-gradient(1200px 600px at 50% -10%, #ff6b001f, transparent), var(--bg);min-height:100svh;margin:0}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}.app{max-width:1120px;margin:0 auto;padding:20px 18px 96px}.topbar{padding:6px 0 14px}.topbar.offline-mode .brand-logo{filter:grayscale()}.brand{align-items:center;gap:12px;display:flex}.brand-logo{width:48px;height:48px;box-shadow:var(--shadow);border-radius:14px}.brand-name{letter-spacing:-1px;background:linear-gradient(90deg, #ffb347, var(--accent) 45%, var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:30px;font-weight:800}.brand-sub{color:var(--muted);margin:0;font-size:13px}.toolbar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:12px;display:flex}.distance{color:var(--muted);flex-direction:column;flex:0 260px;gap:4px;font-size:13px;display:flex}.distance input[type=range]{width:100%;accent-color:var(--accent)}.dot-online{background:var(--online);border-radius:50%;flex:none;width:9px;height:9px;display:inline-block;box-shadow:0 0 0 3px #3ddc8433}.online-note{color:var(--online);align-items:center;gap:8px;margin:0 0 18px;font-size:13px;font-weight:700;display:flex}.section{margin-bottom:26px}.section-title{letter-spacing:-.3px;align-items:baseline;gap:10px;margin:4px 0 12px;font-size:21px;font-weight:800;display:flex}.section-sub{color:var(--muted);font-size:13px;font-weight:500}.section-count{color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:2px 10px;font-size:13px;font-weight:700}.fresh-strip{scrollbar-width:none;gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.fresh-strip::-webkit-scrollbar{display:none}.fresh-strip .card{flex:0 0 150px;width:150px}.grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);outline:none;transition:transform .16s,border-color .16s,box-shadow .16s;overflow:hidden}.card:hover,.card:focus-visible{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-4px)}.card-photo{aspect-ratio:1;background:var(--panel-2);position:relative;overflow:hidden}.card-photo img{object-fit:cover;width:100%;height:100%;transition:transform .2s;position:absolute;inset:0}.card:hover .card-photo img{transform:scale(1.05)}.fav-btn{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;border:none;border-radius:50%;place-items:center;width:34px;height:34px;font-size:18px;line-height:1;transition:transform .15s,background .15s;display:grid;position:absolute;top:10px;right:10px}.fav-btn:hover{transform:scale(1.12)}.fav-btn.is-fav{color:var(--accent-2);background:#ff2d752e}.fav-btn.big{background:var(--panel-2);width:44px;height:44px;font-size:22px;position:static}.card-caption{text-align:left;background:linear-gradient(#0000,#000000d1);padding:26px 12px 10px;position:absolute;bottom:0;left:0;right:0}.card-name{color:#fff;align-items:center;gap:6px;font-size:16px;font-weight:700;display:flex}.mini-dot{background:#6b7280;border-radius:50%;flex:none;width:8px;height:8px}.mini-dot.on{background:var(--online);box-shadow:0 0 0 3px #3ddc8438}.card-age{color:#d6d6d6;font-weight:500}.card-distance{color:#cfcfcf;align-items:center;gap:4px;font-size:12px;display:flex}.card-price{color:#ffd24d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border:1px solid #ffd24d59;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;position:absolute;top:10px;left:10px}.empty{text-align:center;color:var(--muted);grid-column:1/-1;padding:60px 20px}.empty-icon{width:56px;height:56px;color:var(--muted)}.empty h3{color:var(--text);margin:10px 0 4px}.footer{text-align:center;color:var(--muted);border-top:1px solid var(--border);margin-top:40px;padding-top:18px;font-size:12px}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#000000ad;place-items:center;padding:18px;animation:.18s fade;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);width:min(460px,100%);max-height:90vh;box-shadow:var(--shadow);border-radius:22px;animation:.2s pop;position:relative;overflow-y:auto}.modal-close{z-index:2;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;border:none;border-radius:50%;width:36px;height:36px;font-size:15px;position:absolute;top:12px;right:12px}.modal-hero{background:var(--panel-2);position:relative}.modal-hero img{object-fit:contain;width:100%;display:block}.badge-state{border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-block}.badge-state.online{color:var(--online);background:#0000008c}.badge-state.offline{color:#c3c9d2;border:1px solid var(--border);background:#0000008c}.modal-hero .badge-state{position:absolute;bottom:12px;left:12px}.modal-content{text-align:left;padding:18px 20px 22px}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-name{margin:0;font-size:24px}.modal-distance{color:var(--muted);align-items:center;gap:5px;margin:2px 0 0;font-size:13px;display:flex}.modal-price{color:#ffd24d;background:#ffd24d24;border:1px solid #ffd24d59;border-radius:999px;width:fit-content;margin:8px 0 0;padding:5px 12px;font-size:15px;font-weight:800}.modal-bio{color:var(--text);margin:16px 0;font-size:14px;line-height:1.55}.modal-tags{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.chip{color:#ffb066;background:#ff6b001f;border:1px solid #ff6b0040;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600}.btn-primary{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:none;border-radius:14px;width:100%;padding:14px;font-size:15px;font-weight:800;transition:transform .15s,opacity .15s;box-shadow:0 10px 24px #ff2d7547}.btn-primary:hover{transform:translateY(-2px)}.btn-ghost{border:1px solid var(--border);width:100%;color:var(--muted);background:0 0;border-radius:14px;margin-top:10px;padding:12px;font-size:14px;font-weight:700}.btn-ghost:hover{color:var(--text);border-color:var(--accent)}.bottom-nav{z-index:40;padding:8px 12px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);background:#171a21eb;justify-content:center;gap:6px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-tab{min-width:76px;color:var(--muted);letter-spacing:.3px;background:0 0;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;font-size:10px;font-weight:700;transition:color .15s,background .15s;display:flex}.nav-tab:hover{color:var(--text)}.nav-tab.active{color:var(--filter-on)}.nav-icon-wrap{place-items:center;display:grid;position:relative}.nav-badge{background:var(--accent-2);color:#fff;text-align:center;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:800;line-height:16px;position:absolute;top:-5px;right:-8px}.chats-empty{text-align:center;color:var(--muted);padding:70px 20px}.chats-empty h3{color:var(--text);margin:14px 0 4px}.chat-list{flex-direction:column;gap:6px;display:flex}.chat-item{text-align:left;background:var(--panel);border:1px solid var(--border);width:100%;color:var(--text);border-radius:14px;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s;display:flex}.chat-item:hover{border-color:var(--accent)}.chat-avatar{object-fit:cover;border-radius:50%;width:52px;height:52px}.chat-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.chat-meta strong{align-items:center;gap:6px;font-size:16px;display:flex}.chat-preview{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.chat-right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.chat-unread{background:var(--accent-2);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;line-height:18px}.chat-last{color:var(--muted);font-size:11px}.thread{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;height:calc(100vh - 250px);min-height:380px;display:flex;overflow:hidden}.thread-head{border-bottom:1px solid var(--border);background:var(--panel-2);align-items:center;gap:10px;padding:10px 14px;display:flex}.thread-back{color:var(--muted);background:0 0;border:none;padding:4px 6px;font-size:20px}.thread-avatar{object-fit:cover;border-radius:50%;width:42px;height:42px}.thread-head div{flex-direction:column;line-height:1.2;display:flex}.thread-status{color:var(--muted);font-size:12px}.thread-status.on{color:var(--online)}.thread-body{flex-direction:column;flex:1;gap:8px;padding:16px 14px;display:flex;overflow-y:auto}.bubble{border-radius:16px;max-width:78%;padding:9px 13px;font-size:14px;line-height:1.45}.bubble.mine{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.bubble.theirs{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px;align-self:flex-start}.thread-input{border-top:1px solid var(--border);background:var(--panel-2);gap:8px;padding:10px 12px;display:flex}.thread-input input{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:999px;outline:none;flex:1;padding:11px 16px;font-size:14px}.thread-input input:focus{border-color:var(--accent)}.send-btn{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border:none;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.me{max-width:480px;margin:0 auto}.me-card{border-radius:var(--radius);border:1px solid var(--border);margin-bottom:18px;position:relative;overflow:hidden}.me-photo{aspect-ratio:1;object-fit:cover;width:100%;display:block}.me-card .badge-state{position:absolute;bottom:12px;left:12px}.me-body{flex-direction:column;gap:0;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label,.field-label{color:var(--muted);font-size:13px;font-weight:600}.field input,.field select,.field textarea{background:var(--panel-2);border:1px solid var(--border);color:var(--text);resize:vertical;border-radius:12px;outline:none;padding:11px 13px;font-size:15px;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.tribe-picker{flex-wrap:wrap;gap:8px;display:flex}.tribe-opt{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700}.tribe-opt.active{background:var(--filter-on);border-color:var(--filter-on);color:#1a1a1a}.switch-row{cursor:pointer;align-items:center;gap:10px;margin-top:4px;font-size:14px;font-weight:600;display:flex}.switch-row input{opacity:0;width:0;position:absolute}.switch{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;flex:none;width:44px;height:26px;transition:background .15s;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:18px;height:18px;transition:transform .15s,background .15s;position:absolute;top:3px;left:3px}.switch-row input:checked+.switch{border-color:var(--online);background:#3ddc8440}.switch-row input:checked+.switch:after{background:var(--online);transform:translate(18px)}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=560px){.brand-name{font-size:26px}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.nav-tab{min-width:64px}}
