:root{--red: #e0245e;--red-dark: #c01e4f;--green: #16a34a;--bg: #0f1220;--card: #1a1e30;--card-2: #232840;--text: #f2f3f7;--muted: #9aa0b4;--border: #2c3150}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 50% -10%,#2a1030,var(--bg));color:var(--text);min-height:100vh}a{color:var(--red);text-decoration:none}a:hover{text-decoration:underline}.app{max-width:960px;margin:0 auto;padding:0 16px 48px}.nav{display:flex;align-items:center;gap:16px;padding:16px 0;flex-wrap:wrap}.brand{font-size:20px;font-weight:800}.nav-links{display:flex;gap:4px;flex:1}.nav-links a{color:var(--muted);padding:8px 12px;border-radius:999px;font-weight:600}.nav-links a.active{background:var(--card-2);color:var(--text)}.nav-links a:hover{text-decoration:none;color:var(--text)}.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:24px}.auth-card{max-width:440px;margin:24px auto}.center-card{text-align:center;max-width:480px;margin:40px auto}h1{margin:0 0 4px}.muted{color:var(--muted)}.small{font-size:12px}.error{color:#ff6b81;font-weight:600}.success{color:#4ade80;font-weight:600}.center{text-align:center;padding:40px;color:var(--muted)}label{display:block;margin:12px 0 4px;font-size:13px;color:var(--muted);font-weight:600}input,select,textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card-2);color:var(--text);font-size:15px}textarea{resize:vertical}.row{display:flex;gap:12px}.row>div{flex:1}.btn{margin-top:16px;padding:11px 18px;border-radius:10px;border:1px solid var(--border);background:var(--card-2);color:var(--text);font-weight:700;cursor:pointer}.btn:hover{filter:brightness(1.1)}.btn.primary{background:var(--red);border-color:var(--red)}.btn.primary:hover{background:var(--red-dark)}.btn.big{font-size:18px;padding:14px 28px}.btn:disabled{opacity:.6;cursor:default}.link-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-weight:600}.link-btn:hover{color:var(--text)}.match-page{max-width:420px;margin:0 auto}.presence-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.badge{padding:6px 12px;border-radius:999px;background:var(--card-2);font-weight:600;font-size:13px}.badge.on{color:#4ade80}.match-banner{background:var(--green);color:#fff;padding:12px;border-radius:12px;text-align:center;margin-bottom:12px;font-weight:700}.swipe-card{background:var(--card);border:1px solid var(--border);border-radius:20px;overflow:hidden}.photo{height:360px;background:var(--card-2);display:flex;align-items:center;justify-content:center}.photo-placeholder{font-size:80px}.swipe-info{padding:18px}.swipe-info h2{margin:0 0 4px}.age{color:var(--muted);font-weight:400}.swipe-actions{display:flex;justify-content:center;gap:40px;padding:8px 0 24px}.round{width:64px;height:64px;border-radius:50%;font-size:26px;border:2px solid var(--border);background:var(--card-2);cursor:pointer}.round.like{color:var(--red);border-color:var(--red)}.round.pass{color:var(--muted)}.round:hover{transform:scale(1.08)}.profile-photo{height:160px;width:160px;border-radius:50%;margin:12px auto}.matches-layout{display:grid;grid-template-columns:260px 1fr;gap:16px;min-height:520px}.matches-list{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:12px}.matches-list h3{margin:4px 8px 12px}.match-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:none;background:none;color:var(--text);border-radius:10px;cursor:pointer;text-align:left;margin-bottom:4px}.match-item:hover,.match-item.active{background:var(--card-2)}.match-name{font-weight:700}.avatar{width:44px;height:44px;border-radius:50%;background:var(--card-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-panel,.chat-full{background:var(--card);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;overflow:hidden}.chat-full{height:560px;padding:0}.chat{display:flex;flex-direction:column;height:100%;min-height:520px}.chat-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;font-weight:600}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:72%;padding:8px 12px;border-radius:14px;line-height:1.35;display:flex;flex-direction:column}.bubble.mine{align-self:flex-end;background:var(--red);color:#fff;border-bottom-right-radius:4px}.bubble.theirs{align-self:flex-start;background:var(--card-2);border-bottom-left-radius:4px}.sender{font-size:11px;color:var(--muted);font-weight:700;margin-bottom:2px}.bubble.mine .sender{color:#fffc}.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}.chat-input input{flex:1;margin:0}.chat-input .btn{margin:0}.role-badge{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.role-user,.role-badge.role-user{background:var(--card-2);color:var(--muted)}.role-vip,.role-badge.role-vip{background:linear-gradient(90deg,#f6c343,#f59e0b);color:#3a2600}.role-admin,.role-badge.role-admin{background:#3b82f6;color:#fff}.profile-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}.gallery-item{position:relative;aspect-ratio:1;border-radius:12px;background:var(--card-2) center/cover no-repeat;border:1px solid var(--border)}.gallery-del{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:#0009;color:#fff;cursor:pointer;font-size:12px;line-height:1}.gallery-add{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px dashed var(--border);border-radius:12px;background:var(--card-2);color:var(--muted);font-size:32px;cursor:pointer}.photo{position:relative}.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:24px;cursor:pointer}.carousel-nav.left{left:8px}.carousel-nav.right{right:8px}.carousel-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;gap:6px;justify-content:center}.carousel-dots .dot{width:8px;height:8px;border-radius:50%;background:#fff6}.carousel-dots .dot.on{background:#fff}.blocked-banner{margin:0 12px 8px;padding:8px 12px;border-radius:10px;background:#7f1d1d;color:#fecaca;font-weight:600;font-size:14px}.vip-page{display:grid;gap:16px;max-width:640px;margin:0 auto}.vip-hero{text-align:center;border:1px solid var(--border)}.vip-hero.active{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b40}.perks{list-style:none;padding:0;text-align:left;max-width:340px;margin:12px auto;display:grid;gap:8px}.price{font-size:40px;font-weight:900;margin:12px 0}.price span{font-size:16px;color:var(--muted);font-weight:600}.locked{text-align:center;padding:16px}.locked-count{font-size:48px;font-weight:900;color:var(--red)}.likes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.like-card{text-align:center}.like-photo{width:100%;padding-top:100%;border-radius:12px;background:var(--card-2) center/cover no-repeat;position:relative;display:flex;align-items:center;justify-content:center}.like-name{font-weight:700;margin:6px 0 2px}.admin-page h1{margin-bottom:16px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;text-align:center}.stat-card.highlight{border-color:#f59e0b}.stat-num{font-size:32px;font-weight:900}.stat-lbl{color:var(--muted);font-size:13px;margin-top:4px}.admin-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.rank-table{width:100%;border-collapse:collapse}.rank-table th,.rank-table td{padding:8px 6px;border-bottom:1px solid var(--border);text-align:left}.rank-table th.right,.rank-table td.right{text-align:right}.rank-table .pos{color:var(--muted);font-weight:700;width:28px}.rank-user{display:flex;align-items:center;gap:8px}.avatar.sm{width:32px;height:32px;font-size:14px}.vip-list{list-style:none;padding:0;display:grid;gap:10px}.vip-list li{padding:8px;border-radius:10px;background:var(--card-2)}@media (max-width: 720px){.matches-layout{grid-template-columns:1fr}.stat-row{grid-template-columns:repeat(2,1fr)}.admin-cols{grid-template-columns:1fr}}
