:root{
  --bg:#f7f8fb;
  --surface:#ffffff;
  --surface-2:#f0f3f8;
  --ink:#172033;
  --muted:#667085;
  --line:#e5e9f0;
  --brand:#7c3aed;
  --brand-2:#ec4899;
  --brand-soft:#f2eaff;
  --danger:#b42318;
  --success:#067647;
  --shadow:0 18px 50px rgba(24,34,58,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 8% 0%,rgba(124,58,237,.08),transparent 28%),
    radial-gradient(circle at 92% 8%,rgba(236,72,153,.07),transparent 28%),
    var(--bg);
  min-height:100vh;
}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
a{color:inherit}

.topbar{
  height:72px;
  display:flex;
  align-items:center;
  gap:28px;
  padding:0 30px;
  position:sticky;
  top:0;
  z-index:20;
  backdrop-filter:blur(18px);
  background:rgba(247,248,251,.88);
  border-bottom:1px solid rgba(229,233,240,.88);
}
.brand{
  font-weight:900;
  letter-spacing:-.8px;
  font-size:23px;
  text-decoration:none;
}
.brand span{
  background:linear-gradient(100deg,var(--brand),var(--brand-2));
  -webkit-background-clip:text;
  color:transparent;
}
.main-nav{display:flex;gap:6px;margin-right:auto}
.nav-btn,.ghost-btn{
  border:0;
  background:transparent;
  color:var(--muted);
  border-radius:12px;
  padding:9px 13px;
  font-weight:700;
}
.nav-btn.active{background:var(--surface);color:var(--ink);box-shadow:0 3px 14px rgba(25,35,58,.06)}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.user-badge{font-size:13px;font-weight:700;padding:7px 10px;border:1px solid var(--line);background:var(--surface);border-radius:999px}

.auth-shell{
  min-height:calc(100vh - 72px);
  max-width:1180px;
  margin:0 auto;
  padding:68px 28px;
  display:grid;
  grid-template-columns:1.1fr .75fr;
  gap:70px;
  align-items:center;
}
.auth-copy h1{
  font-size:clamp(52px,7vw,88px);
  line-height:.97;
  letter-spacing:-4px;
  margin:18px 0 24px;
}
.auth-copy h1 span{
  background:linear-gradient(100deg,var(--brand),var(--brand-2));
  -webkit-background-clip:text;
  color:transparent;
}
.auth-copy>p{
  max-width:650px;
  font-size:21px;
  color:#475467;
  line-height:1.55;
}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:12px;
  font-weight:900;
  color:var(--brand);
}
.pill-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}
.pill-row span,.mini-pill{
  padding:9px 12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.72);
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  color:#475467;
}
.auth-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(229,233,240,.94);
  border-radius:26px;
  padding:25px;
  box-shadow:var(--shadow);
}
.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);padding:4px;border-radius:14px;margin-bottom:22px}
.tab{border:0;background:transparent;padding:11px;border-radius:11px;font-weight:800;color:var(--muted)}
.tab.active{background:white;color:var(--ink);box-shadow:0 2px 10px rgba(24,34,58,.08)}

.form-stack{display:grid;gap:16px}
label{display:grid;gap:7px;font-size:13px;font-weight:800;color:#344054}
input,textarea,select{
  width:100%;
  border:1px solid #d9dee8;
  background:white;
  color:var(--ink);
  border-radius:12px;
  padding:12px 13px;
  outline:none;
  transition:.16s border,.16s box-shadow;
}
input:focus,textarea:focus,select:focus{border-color:#a78bfa;box-shadow:0 0 0 4px rgba(124,58,237,.09)}
textarea{resize:vertical}
.check-row{display:flex;align-items:flex-start;gap:9px;font-weight:600;color:var(--muted)}
.check-row input{width:18px;height:18px;margin-top:1px}
.primary-btn,.secondary-btn,.danger-btn{
  border:0;border-radius:13px;padding:13px 17px;font-weight:900;
}
.primary-btn{
  color:white;
  background:linear-gradient(100deg,var(--brand),var(--brand-2));
  box-shadow:0 10px 26px rgba(124,58,237,.2);
}
.primary-btn:hover{filter:brightness(1.03)}
.secondary-btn{background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.danger-btn{background:#fff0ef;color:var(--danger);border:1px solid #ffd7d3}
.wide{width:100%;padding:15px 18px}
small{color:var(--muted);line-height:1.45}

.app-shell{max-width:1180px;margin:0 auto;padding:42px 28px 70px}
.page-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:26px}
.page-head h2{font-size:38px;line-height:1.08;letter-spacing:-1.7px;margin:7px 0 0}
.page-head>p{color:var(--muted);max-width:440px;margin:0}
.profile-form{display:grid;gap:18px}
.form-section{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:22px;
  padding:24px;
  box-shadow:0 8px 28px rgba(25,35,58,.04);
}
.form-section h3{margin:0 0 18px;font-size:18px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px}
.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:15px}
.prompt-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:12px 15px}

.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.person-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 10px 34px rgba(25,35,58,.055);
  display:flex;
  flex-direction:column;
}
.person-visual{
  min-height:250px;
  padding:22px;
  display:flex;
  align-items:flex-end;
  background:
    radial-gradient(circle at 76% 22%,rgba(255,255,255,.72),transparent 17%),
    linear-gradient(145deg,#e9ddff,#ffd8eb 55%,#ffe8d5);
}
.avatar-monogram{
  width:74px;height:74px;border-radius:24px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(255,255,255,.9);
  font-size:29px;font-weight:900;
  box-shadow:0 12px 30px rgba(56,38,90,.12);
}
.person-body{padding:20px;display:grid;gap:14px}
.person-title{display:flex;justify-content:space-between;gap:12px;align-items:start}
.person-title h3{margin:0;font-size:24px;letter-spacing:-.8px}
.person-meta{color:var(--muted);font-size:13px;margin-top:3px}
.person-about{margin:0;color:#475467;line-height:1.55}
.tags{display:flex;flex-wrap:wrap;gap:7px}
.tag{padding:7px 9px;border-radius:999px;background:var(--surface-2);font-size:12px;font-weight:700;color:#475467}
.prompt-card{padding:13px;border-radius:14px;background:#faf7ff;border:1px solid #ede5fb}
.prompt-card b{display:block;font-size:12px;color:var(--brand);margin-bottom:5px}
.prompt-card p{margin:0;font-size:14px}
.card-actions{display:grid;grid-template-columns:1fr auto;gap:9px}

.empty-state{
  text-align:center;
  background:var(--surface);
  border:1px dashed #cfd6e3;
  border-radius:24px;
  padding:64px 24px;
}
.empty-icon{font-size:44px}
.empty-state h3{font-size:24px;margin:10px 0 7px}
.empty-state p{max-width:520px;margin:0 auto;color:var(--muted)}

.matches-layout{display:grid;grid-template-columns:320px 1fr;gap:18px;min-height:590px}
.match-list,.chat-panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
}
.match-item{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:white;
  padding:15px;
  display:flex;
  gap:11px;
  text-align:left;
  align-items:center;
}
.match-item:hover,.match-item.active{background:#faf8ff}
.small-avatar{
  width:46px;height:46px;flex:0 0 46px;
  border-radius:16px;
  display:grid;place-items:center;
  font-weight:900;
  background:linear-gradient(145deg,#e8ddff,#ffdce9);
}
.match-name{font-weight:900}
.match-meta{font-size:12px;color:var(--muted);margin-top:2px}
.chat-panel{display:flex;flex-direction:column}
.empty-chat{margin:auto;color:var(--muted)}
.chat-head{
  padding:15px 18px;
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.chat-head h3{margin:0}
.chat-messages{padding:18px;display:flex;flex-direction:column;gap:10px;overflow:auto;flex:1;min-height:420px}
.message{max-width:72%;padding:10px 13px;border-radius:15px;background:var(--surface-2);line-height:1.45}
.message.mine{margin-left:auto;background:var(--brand);color:white}
.chat-compose{display:grid;grid-template-columns:1fr auto;gap:9px;padding:14px;border-top:1px solid var(--line)}
.chat-compose input{margin:0}
.chat-menu{display:flex;gap:7px}

.profile-preview{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:24px;
  padding:26px;
  box-shadow:var(--shadow);
}
.profile-hero{display:flex;gap:18px;align-items:center;margin-bottom:20px}
.profile-hero .avatar-monogram{width:84px;height:84px}
.profile-hero h3{margin:0;font-size:30px}
.profile-hero p{margin:4px 0 0;color:var(--muted)}
.profile-copy{max-width:720px;color:#475467;line-height:1.6}

.toast{
  position:fixed;
  left:50%;
  bottom:26px;
  transform:translateX(-50%);
  background:#172033;
  color:white;
  padding:11px 15px;
  border-radius:12px;
  z-index:100;
  box-shadow:var(--shadow);
  max-width:min(90vw,560px);
}

@media(max-width:900px){
  .auth-shell{grid-template-columns:1fr;gap:34px;padding-top:42px}
  .auth-copy h1{font-size:58px}
  .card-grid{grid-template-columns:1fr 1fr}
  .matches-layout{grid-template-columns:1fr}
  .match-list{max-height:240px;overflow:auto}
  .main-nav{order:3;width:100%;justify-content:center}
  .topbar{height:auto;min-height:68px;flex-wrap:wrap;padding:12px 18px}
}
@media(max-width:620px){
  .auth-shell,.app-shell{padding-left:16px;padding-right:16px}
  .auth-copy h1{font-size:48px;letter-spacing:-2.5px}
  .auth-copy>p{font-size:18px}
  .two-col,.three-col,.prompt-grid,.card-grid{grid-template-columns:1fr}
  .page-head{display:block}
  .page-head>p{margin-top:12px}
  .person-visual{min-height:190px}
  .message{max-width:88%}
}
.gradient-text{
  background:linear-gradient(100deg,var(--brand),var(--brand-2));
  -webkit-background-clip:text;
  color:transparent;
}
.language-control{
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px 8px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.88);
  border-radius:12px;
}
.language-control select,
.auth-language-select{
  width:auto;
  border:0;
  box-shadow:none;
  background:transparent;
  padding:6px 24px 6px 4px;
  font-weight:800;
  color:var(--ink);
}
.language-control select:focus,
.auth-language-select:focus{box-shadow:none;border:0}
.language-globe{font-size:15px}
.auth-language-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fbfcfe;
  color:var(--muted);
  font-size:13px;
  font-weight:800;
}
.why-box{
  padding:12px 13px;
  border-radius:14px;
  background:#f7fbff;
  border:1px solid #dfeaf7;
}
.why-box>b{
  display:block;
  font-size:12px;
  margin-bottom:8px;
  color:#344054;
}
.reason-list{display:flex;flex-wrap:wrap;gap:6px}
.reason-tag{
  font-size:11px;
  font-weight:800;
  padding:6px 8px;
  border-radius:999px;
  background:white;
  border:1px solid #dce5f0;
  color:#526071;
}
.two-actions{grid-template-columns:1fr 1.25fr}
.compact-empty{border:0;border-radius:0;padding:40px 18px}
@media(max-width:620px){
  .top-actions{gap:6px}
  .language-control{padding:4px 6px}
  .language-control select{max-width:135px}
  .two-actions{grid-template-columns:1fr}
}

.danger-zone{
  margin-top:22px;
  border:1px solid #f2c7c3;
  border-radius:18px;
  background:#fff8f7;
  padding:16px 18px;
}
.danger-zone summary{
  cursor:pointer;
  font-weight:900;
  color:var(--danger);
}
.danger-zone p{
  color:var(--muted);
  margin:12px 0;
  max-width:700px;
}
.delete-account-form{
  display:grid;
  grid-template-columns:minmax(220px,360px) auto;
  gap:12px;
  align-items:end;
}
@media(max-width:620px){.delete-account-form{grid-template-columns:1fr}}
