:root{--bg: #f2f3f5;--surface: #fff;--text: #0d0d10;--hint: #8a8d94;--btn: #6366f1;--btn-text: #fff;--border: rgba(0, 0, 0, .08);--danger: #ef4444;--ok: #10b981;--brand1: #6366f1;--brand2: #ec4899;--radius: 18px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);overscroll-behavior:none}a{color:var(--link, var(--brand1))}.app{display:flex;flex-direction:column;height:100%;max-width:560px;margin:0 auto}.screen{flex:1;overflow-y:auto;padding:calc(var(--safe-top) + 12px) 16px 92px;-webkit-overflow-scrolling:touch}.screen.nopad{padding:0}.brandbar{display:flex;align-items:center;gap:8px;padding:calc(var(--safe-top) + 12px) 16px 8px;font-weight:800;font-size:22px;letter-spacing:-.02em}.brandbar .logo{background:linear-gradient(120deg,var(--brand1),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}.brandbar .spacer{flex:1}.iconbtn{border:none;background:var(--surface);color:var(--text);width:38px;height:38px;border-radius:12px;font-size:18px;display:grid;place-items:center;box-shadow:0 1px 3px var(--border)}.btn{border:none;border-radius:14px;padding:14px 18px;font-size:16px;font-weight:700;background:var(--surface);color:var(--text);width:100%;transition:transform .08s ease,opacity .2s}.btn:active{transform:scale(.98)}.btn.primary{background:linear-gradient(120deg,var(--brand1),var(--brand2));color:#fff}.btn.ghost{background:transparent;box-shadow:inset 0 0 0 1.5px var(--border)}.btn.danger{background:transparent;color:var(--danger);box-shadow:inset 0 0 0 1.5px var(--danger)}.btn:disabled{opacity:.5}.btn.sm{padding:9px 14px;font-size:14px;width:auto;border-radius:11px}.row{display:flex;gap:10px}.field{margin:14px 0}.field label{display:block;font-size:13px;color:var(--hint);margin:0 0 6px 2px;font-weight:600}.input,textarea.input{width:100%;border:1.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:14px;padding:13px 14px;font-size:16px;outline:none;font-family:inherit}.input:focus{border-color:var(--brand1)}textarea.input{resize:none;min-height:92px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:8px 13px;font-size:14px;font-weight:600}.chip.on{background:linear-gradient(120deg,var(--brand1),var(--brand2));color:#fff;border-color:transparent}.chip.lvl-like{background:var(--brand2);color:#fff;border-color:transparent}.chip.lvl-curious{background:var(--brand1);color:#fff;border-color:transparent}.chip.lvl-limit{background:transparent;color:var(--danger);border-color:var(--danger)}.chip.nsfw:after{content:" 🔞";font-size:11px}.card-title{font-weight:800;font-size:18px;margin:18px 0 6px}.muted{color:var(--hint);font-size:14px}.center{text-align:center}.deck{position:relative;height:calc(100vh - 200px);max-height:640px;margin-top:8px}.swipecard{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:22px;overflow:hidden;background:var(--surface);box-shadow:0 8px 30px #0000002e;display:flex;flex-direction:column}.swipecard .photo{flex:1;background-size:cover;background-position:center;position:relative}.swipecard .stamp{position:absolute;top:24px;padding:6px 14px;border-radius:10px;font-weight:900;font-size:26px;border:3px solid;opacity:0;transform:rotate(-12deg)}.swipecard .stamp.like{left:20px;color:var(--ok);border-color:var(--ok)}.swipecard .stamp.nope{right:20px;color:var(--danger);border-color:var(--danger)}.swipecard .grad{position:absolute;left:0;right:0;bottom:0;padding:16px;background:linear-gradient(to top,#000000d1,#0000);color:#fff}.swipecard .grad h2{margin:0;font-size:24px}.swipecard .grad .sub{opacity:.9;font-size:14px;margin-top:2px}.swipecard .grad .tags{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}.tag{background:#fff3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.tag.shared{background:var(--brand2)}.photocount{position:absolute;top:12px;right:12px;background:#0006;color:#fff;border-radius:999px;padding:3px 9px;font-size:12px}.deck-actions{display:flex;justify-content:center;gap:18px;margin-top:16px}.fab{width:62px;height:62px;border-radius:50%;border:none;font-size:26px;background:var(--surface);box-shadow:0 4px 14px #0000002e;display:grid;place-items:center}.fab.nope{color:var(--danger)}.fab.like{color:#fff;background:linear-gradient(120deg,var(--brand1),var(--brand2))}.fab:active{transform:scale(.92)}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:560px;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:var(--safe-bottom)}.tabbar button{flex:1;border:none;background:none;color:var(--hint);padding:10px 0 12px;font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px}.tabbar button .ic{font-size:22px}.tabbar button.on{color:var(--brand1)}.tabbar .badge{position:relative}.tabbar .badge .dot{position:absolute;top:-3px;right:-8px;background:var(--brand2);color:#fff;border-radius:999px;font-size:10px;min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center}.list-item{display:flex;gap:12px;align-items:center;padding:12px;background:var(--surface);border-radius:16px;margin-bottom:10px}.avatar{width:56px;height:56px;border-radius:50%;background-size:cover;background-position:center;flex-shrink:0;background-color:var(--bg)}.avatar.lg{width:88px;height:88px}.list-item .body{flex:1;min-width:0}.list-item .body h3{margin:0;font-size:16px}.list-item .body p{margin:2px 0 0;color:var(--hint);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{background:var(--brand2);color:#fff;border-radius:999px;font-size:11px;padding:2px 8px;font-weight:700}.chat{display:flex;flex-direction:column;height:100%}.chat-head{display:flex;align-items:center;gap:10px;padding:calc(var(--safe-top) + 10px) 12px 10px;border-bottom:1px solid var(--border);background:var(--surface)}.chat-head h3{margin:0;font-size:16px;flex:1}.chat-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:78%;padding:9px 13px;border-radius:16px;font-size:15px;line-height:1.35;word-wrap:break-word}.bubble.me{align-self:flex-end;background:linear-gradient(120deg,var(--brand1),var(--brand2));color:#fff;border-bottom-right-radius:5px}.bubble.them{align-self:flex-start;background:var(--surface);border-bottom-left-radius:5px}.chat-input{display:flex;gap:8px;padding:10px 12px calc(10px + var(--safe-bottom));border-top:1px solid var(--border);background:var(--surface)}.chat-input input{flex:1;border:1.5px solid var(--border);border-radius:20px;padding:11px 14px;font-size:16px;background:var(--bg);color:var(--text);outline:none}.chat-input .send{width:44px;height:44px;border-radius:50%;border:none;background:linear-gradient(120deg,var(--brand1),var(--brand2));color:#fff;font-size:18px}.photogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photocell{position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--surface);border:1.5px dashed var(--border);display:grid;place-items:center}.photocell img{width:100%;height:100%;object-fit:cover}.photocell .rm{position:absolute;top:5px;right:5px;background:#0000008c;color:#fff;border:none;border-radius:50%;width:24px;height:24px}.photocell .mod{position:absolute;bottom:5px;left:5px;font-size:10px;padding:2px 6px;border-radius:6px;color:#fff;font-weight:700}.mod.pending{background:#f59e0b}.mod.rejected{background:var(--danger)}.photocell.add{color:var(--brand1);font-size:30px;cursor:pointer}.center-screen{height:100%;display:grid;place-items:center;text-align:center;padding:24px}.spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--brand1);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%);background:#000000d9;color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;z-index:50}.section{background:var(--surface);border-radius:16px;padding:14px;margin:12px 0}.section h4{margin:0 0 4px;font-size:15px}.switch{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.switch small{color:var(--hint);display:block;margin-top:2px}.toggle{width:48px;height:28px;border-radius:999px;background:var(--border);position:relative;border:none;flex-shrink:0;transition:background .2s}.toggle.on{background:var(--brand1)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .2s}.toggle.on:after{left:23px}.stepper{display:flex;gap:6px;margin:8px 0 4px}.stepper .dot{flex:1;height:4px;border-radius:2px;background:var(--border)}.stepper .dot.on{background:linear-gradient(120deg,var(--brand1),var(--brand2))}.match-pop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:grid;place-items:center;z-index:60;padding:24px}.match-pop .box{text-align:center;color:#fff}.match-pop h1{font-size:40px;margin:0 0 6px;background:linear-gradient(120deg,#fff,var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}.match-pop .avatar{margin:16px auto}
