
:root{
 --bg:#0b0b11;--panel:#12121a;--panel2:#171722;--panel3:#1e1d29;--text:#f8f5fb;--muted:#9c97a8;
 --accent:#ff5a8f;--accent2:#9b4dff;--line:#302d3c;--success:#57d59d;--danger:#ff6a78;--gold:#d6a64f;
 --radius:22px;--shadow:0 24px 70px rgba(0,0,0,.35)
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
 margin:0;min-height:100vh;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
 background:
 radial-gradient(circle at 85% 15%,rgba(155,77,255,.11),transparent 28%),
 radial-gradient(circle at 10% 10%,rgba(255,90,143,.07),transparent 26%),
 linear-gradient(180deg,#0d0d14 0%,#09090e 100%);
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,input,select,textarea{
 border:1px solid var(--line);background:#101018;color:var(--text);border-radius:15px;padding:13px 14px;outline:none
}
input:focus,select:focus,textarea:focus,button:focus-visible{border-color:#7e5bd4;box-shadow:0 0 0 3px rgba(155,77,255,.15)}
button{cursor:pointer}
.primary{
 border:0;background:linear-gradient(100deg,var(--accent),var(--accent2));color:#fff;font-weight:800;
 box-shadow:0 10px 24px rgba(207,68,146,.18)
}
.danger{border-color:#5d2830;color:#ff9aa4}
.muted,.tiny,.privacy{color:var(--muted)}
.tiny{font-size:12px}.privacy{font-size:12px}
.center-shell{min-height:100vh;display:grid;place-items:center;padding:22px}
.auth-card{
 width:min(430px,100%);padding:34px 26px;border:1px solid rgba(255,255,255,.07);border-radius:30px;
 background:linear-gradient(180deg,rgba(19,18,27,.94),rgba(13,13,19,.96));box-shadow:var(--shadow);overflow:hidden;position:relative
}
.auth-card:before{content:"";position:absolute;inset:-20% 40% 40% -20%;background:radial-gradient(circle,rgba(255,90,143,.09),transparent 60%);pointer-events:none}
.brand{font-family:Georgia,serif;font-size:30px;font-weight:600;margin-bottom:44px;letter-spacing:-.5px}
.brand:before{content:"♥";font-family:system-ui;color:var(--accent);margin-right:10px}
.auth-card h1{font-family:Georgia,serif;font-size:clamp(38px,9vw,56px);font-weight:500;line-height:1.02;margin:0 0 16px}
.auth-card h1 em{font-style:normal;color:var(--accent)}
.auth-card .muted{font-size:15px;line-height:1.6}
.auth-card .stack{margin-top:28px}
.stack{display:grid;gap:14px}
.stack label,.form-grid label{display:grid;gap:7px;font-size:13px;color:#d5d0da}
.auth-card input{min-height:56px;background:#111119}
.auth-card .primary{min-height:56px;font-size:16px;margin-top:6px}
.auth-card .tiny{margin-top:28px;text-align:center}
.flash{padding:12px 14px;border-radius:14px;margin:10px 0}.flash.error{background:#351b24}.flash.ok{background:#173126}
.app-shell{width:min(540px,100%);margin:auto;padding:14px 14px 96px}
.admin-shell{width:min(1180px,100%);margin:auto;padding:18px 18px 70px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:6px 2px 14px}
.topbar>b,.topbar .app-title{font-size:17px}.topbar a{font-size:13px;color:#bbb5c4}
.user-head{display:flex;align-items:center;gap:10px;min-width:0}.avatar{
 width:38px;height:38px;border:1px solid var(--line);border-radius:13px;display:grid;place-items:center;background:#15151e
}
.user-head .name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabs{
 display:flex;gap:6px;overflow:auto;padding:0 0 8px;border-bottom:1px solid #282633;margin-bottom:14px;scrollbar-width:none
}.tabs::-webkit-scrollbar{display:none}
.tabs a{white-space:nowrap;padding:10px 12px;color:#b8b3c0;font-size:14px;border-radius:10px;position:relative}
.tabs a.active{color:#fff;background:transparent}
.tabs a.active:after{content:"";position:absolute;left:12px;right:12px;bottom:-9px;height:2px;background:var(--accent);border-radius:5px}
.badge{background:var(--accent);border-radius:999px;padding:2px 7px;font-size:10px;color:#fff}
.filters{margin:12px 0 16px}.filters form,.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}
.filters select{background:#12121b}
.swipe-card{
 min-height:540px;border:1px solid rgba(149,89,220,.55);border-radius:27px;overflow:hidden;position:relative;
 display:flex;flex-direction:column;justify-content:flex-end;background:
 linear-gradient(180deg,rgba(12,12,17,.08),rgba(13,12,18,.18) 35%,rgba(15,12,20,.95) 82%),
 radial-gradient(circle at 50% 25%,#3a263a,#17141d 68%);
 box-shadow:0 20px 55px rgba(0,0,0,.32)
}
.card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,5,10,.06),rgba(8,7,12,.04) 35%,rgba(11,9,15,.96) 84%);z-index:1}
.card-body{position:relative;z-index:2;padding:18px 22px 24px;text-align:center}
.chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.card-top-chips{position:absolute;z-index:3;top:16px;left:14px;right:14px;justify-content:flex-start}
.chips span{border:1px solid #493653;background:rgba(29,24,38,.86);backdrop-filter:blur(8px);border-radius:999px;padding:7px 10px;font-size:11px}
.chips span:first-child{border-color:#6b3048;background:rgba(91,31,58,.56);color:#ff89ad}
.swipe-card h1{font-family:Georgia,serif;font-size:clamp(30px,8vw,44px);font-weight:500;line-height:1.05;margin:14px 0 10px}
.swipe-card p{font-size:15px;line-height:1.5;margin:0 auto;max-width:420px;color:#d6d0dc}
.swipe-actions{display:flex;justify-content:center;gap:22px;margin-top:22px}
.choice{width:84px;height:84px;border-radius:50%;font-size:30px;display:grid;place-items:center;padding:0;background:#15151f}
.choice small{display:block;font-size:10px;margin-top:-15px}
.choice.no{border-color:#2d2b38}.choice.maybe{border:0;background:linear-gradient(135deg,#7445cc,#5430a0)}.choice.yes{border:0;background:linear-gradient(135deg,#ff5a8f,#e93e75)}
.choice.no small{color:#ff7798}.choice.maybe small{color:#d9c4ff}.choice.yes small{color:#fff}
.favorite-btn{display:block;margin:16px auto 0;min-width:250px;background:transparent;border-color:#5d3f86}
.privacy{text-align:center;margin:12px 0 0}
.list{display:grid;gap:13px}
.result-card,.empty{
 background:linear-gradient(180deg,#14141e,#101018);border:1px solid var(--line);border-radius:21px;padding:18px
}
.result-card h2{margin:8px 0;font-family:Georgia,serif;font-weight:500;font-size:25px}
.match-card{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:12px}
.match-thumb{width:110px;height:110px;border-radius:15px;object-fit:cover;background:#242130}
.match-info{min-width:0}.match-info h2{font-family:system-ui;font-weight:700;font-size:20px}
.match-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:11px;margin-bottom:4px}
.match-badge.perfect{background:#4b2332;color:#ff8dac}.match-badge.match{background:#392762;color:#c9a8ff}.match-badge.maybe{background:#49381f;color:#f6cf76}
.history-row,.member-row{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);padding:14px;border-radius:16px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stats div{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;display:grid}.stats strong{font-size:32px}.stats span{color:var(--muted)}
.row-between,.row-actions,.inline-form{display:flex;align-items:center;gap:10px}.row-between{justify-content:space-between}.row-actions{margin-top:12px}.members{display:grid;gap:8px;margin:16px 0}.grow{flex:1}.inline-form input{min-width:0}.linkbtn{display:inline-block;padding:12px 16px;border-radius:14px;margin-top:10px}
.family-access{margin:18px 0;padding:15px;border:1px solid var(--line);border-radius:18px;background:#111119}.family-access h3{margin:0 0 10px}
.family-checks{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.family-check{display:flex;align-items:center;gap:7px;background:#1c1a25;padding:10px 12px;border-radius:999px}.family-check input{width:auto;margin:0}
.mobile-nav{
 position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(540px,100%);display:grid;grid-template-columns:repeat(4,1fr);
 padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:rgba(11,11,17,.94);backdrop-filter:blur(16px);
 border-top:1px solid #262431;z-index:50
}
.mobile-nav a{display:grid;place-items:center;gap:3px;font-size:10px;color:#938d9d;padding:7px}
.mobile-nav a .ico{font-size:20px}.mobile-nav a.active{color:var(--accent)}
.admin-shell .tabs{position:sticky;top:0;background:rgba(11,11,17,.95);backdrop-filter:blur(12px);z-index:20;padding-top:8px}
.admin-shell .result-card{margin-bottom:14px}
.preview-img{width:100%;max-height:220px;object-fit:cover;border-radius:15px;border:1px solid var(--line);margin-top:8px}
@media(max-width:640px){
 .admin-shell{padding:10px}.stats{grid-template-columns:repeat(2,1fr)}.history-row,.member-row,.row-between{align-items:stretch;flex-direction:column}.inline-form{flex-wrap:wrap}
 .app-shell{padding-inline:10px}.swipe-card{min-height:515px}.choice{width:78px;height:78px}.swipe-actions{gap:17px}.match-card{grid-template-columns:88px 1fr}.match-thumb{width:88px;height:88px}
}
@media(prefers-reduced-motion:no-preference){
 .swipe-card{transition:transform .18s ease,opacity .18s ease}.swipe-card.out-left{transform:translateX(-28px) rotate(-2deg);opacity:.2}.swipe-card.out-right{transform:translateX(28px) rotate(2deg);opacity:.2}
}
