    :root{
      --pink:#ff4f87;
      --pink-dark:#e93770;
      --pink-soft:#fff0f5;
      --pink-light:#fff7fa;
      --text:#17171f;
      --muted:#6f6f7a;
      --border:#f1dce5;
      --white:#fff;
      --shadow:0 24px 70px rgba(255,79,135,.16);
      --shadow-soft:0 14px 40px rgba(20,20,30,.08);
      --radius:32px;
    }

    *{
      box-sizing:border-box;
      margin:0;
      padding:0;
    }

html,
body{
  overscroll-behavior:none;
  -webkit-tap-highlight-color:transparent;
}

body{
  touch-action:manipulation;
}

    body{
      font-family:'Inter',sans-serif;
      background:
        radial-gradient(circle at top left, rgba(255,79,135,.16), transparent 32%),
        linear-gradient(180deg,#fff7fa 0%,#ffffff 42%,#fff8fb 100%);
      color:var(--text);
      line-height:1.6;
      overflow-x:hidden;
    }

    a{
      text-decoration:none;
      color:inherit;
    }

    .hs-page{
      width:100%;
      min-height:100vh;
    }

    .hs-container{
      width:min(1180px, calc(100% - 36px));
      margin:0 auto;
    }

    .hs-nav{
      position:sticky;
      top:0;
      z-index:50;
      backdrop-filter:blur(18px);
      background:rgba(255,255,255,.78);
      border-bottom:1px solid rgba(255,79,135,.09);
    }

    .hs-nav-inner{
      height:82px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:22px;
    }

    .hs-logo{
      display:flex;
      align-items:center;
      gap:10px;
      font-size:1.55rem;
      font-weight:900;
      color:var(--pink);
      letter-spacing:-.04em;
    }
    
.hs-logo-img{
    height:48px;
    width:auto;
    display:block;
}

    .hs-logo-icon{
      width:42px;
      height:42px;
      border-radius:16px;
      background:linear-gradient(135deg,var(--pink),#ff86ae);
      color:#fff;
      display:grid;
      place-items:center;
      box-shadow:0 12px 30px rgba(255,79,135,.28);
    }

    .hs-nav-links{
      display:flex;
      align-items:center;
      gap:28px;
      color:#4c4c58;
      font-weight:700;
      font-size:.95rem;
    }

    .hs-nav-actions{
      display:flex;
      align-items:center;
      gap:12px;
    }

    .hs-btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      min-height:48px;
      padding:0 22px;
      border-radius:999px;
      font-weight:800;
      border:1px solid transparent;
      transition:.25s ease;
      cursor:pointer;
      white-space:nowrap;
    }

    .hs-btn-primary{
      background:linear-gradient(135deg,var(--pink),#ff7aa7);
      color:#fff;
      box-shadow:0 16px 38px rgba(255,79,135,.32);
    }

    .hs-btn-primary:hover{
      transform:translateY(-2px);
      box-shadow:0 20px 44px rgba(255,79,135,.42);
    }

    .hs-btn-light{
      background:#fff;
      color:var(--text);
      border-color:#f0dce4;
      box-shadow:0 10px 26px rgba(20,20,30,.05);
    }

    .hs-btn-light:hover{
      border-color:#ffc4d8;
      transform:translateY(-2px);
    }

    .hs-hero{
      padding:80px 0 70px;
    }

    .hs-hero-grid{
      display:grid;
      grid-template-columns:1.03fr .97fr;
      gap:54px;
      align-items:center;
    }

    .hs-kicker{
      display:inline-flex;
      align-items:center;
      gap:10px;
      background:#fff;
      color:var(--pink-dark);
      border:1px solid var(--border);
      box-shadow:var(--shadow-soft);
      border-radius:999px;
      padding:10px 16px;
      font-weight:800;
      margin-bottom:24px;
    }

    .hs-hero h1{
      font-size:clamp(2.8rem,6vw,5.9rem);
      line-height:.94;
      letter-spacing:-.075em;
      font-weight:900;
      margin-bottom:26px;
    }

    .hs-hero h1 span{
      color:var(--pink);
    }

    .hs-hero-lead{
      font-size:clamp(1.08rem,2vw,1.35rem);
      color:#4f4f5a;
      max-width:680px;
      margin-bottom:28px;
    }

    .hs-hero-points{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:12px;
      margin:30px 0;
      max-width:680px;
    }

    .hs-point{
      background:rgba(255,255,255,.82);
      border:1px solid rgba(255,79,135,.12);
      border-radius:20px;
      padding:14px 16px;
      font-weight:800;
      box-shadow:0 10px 26px rgba(20,20,30,.04);
    }

    .hs-hero-actions{
      display:flex;
      flex-wrap:wrap;
      gap:14px;
      margin-top:30px;
    }

    .hs-trust-mini{
      display:flex;
      align-items:center;
      gap:14px;
      margin-top:26px;
      color:var(--muted);
      font-weight:700;
      font-size:.95rem;
    }

    .hs-avatar-stack{
      display:flex;
    }

    .hs-avatar-stack span{
      width:34px;
      height:34px;
      border-radius:50%;
      border:3px solid #fff;
      background:linear-gradient(135deg,#ffd4e1,#ff7ba7);
      margin-left:-8px;
    }

    .hs-avatar-stack span:first-child{
      margin-left:0;
    }

    .hs-phone-wrap{
      position:relative;
      display:flex;
      justify-content:center;
    }

    .hs-phone-glow{
      position:absolute;
      width:410px;
      height:410px;
      border-radius:50%;
      background:radial-gradient(circle,rgba(255,79,135,.24),transparent 68%);
      filter:blur(5px);
      top:60px;
    }

    .hs-phone{
      position:relative;
      width:min(390px,100%);
      background:#fff;
      border:1px solid rgba(255,79,135,.13);
      border-radius:46px;
      padding:20px;
      box-shadow:var(--shadow);
    }

    .hs-app-top{
      display:flex;
      justify-content:space-between;
      align-items:center;
      margin-bottom:18px;
    }

    .hs-app-brand{
      font-size:1.3rem;
      font-weight:900;
      color:var(--pink);
    }

    .hs-filter{
      width:38px;
      height:38px;
      border-radius:14px;
      background:#fff4f8;
      display:grid;
      place-items:center;
      color:var(--pink);
    }

    .hs-profile-card{
      height:460px;
      border-radius:32px;
      overflow:hidden;
      position:relative;
      background:
        linear-gradient(180deg,transparent 45%,rgba(0,0,0,.72)),
        url('https://www.herswipe.com/pics/herswipe-leon.jpg');
      background-size:cover;
      background-position:center;
      box-shadow:0 18px 46px rgba(30,30,40,.18);
    }

    .hs-card-info{
      position:absolute;
      left:22px;
      right:22px;
      bottom:22px;
      color:#fff;
    }

    .hs-card-info h3{
      font-size:2rem;
      line-height:1.1;
      margin-bottom:8px;
    }

    .hs-card-tags{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:14px;
    }

    .hs-card-tags span{
      padding:8px 12px;
      border-radius:999px;
      background:rgba(255,255,255,.22);
      backdrop-filter:blur(8px);
      font-size:.86rem;
      font-weight:700;
    }

    .hs-swipe-buttons{
      display:flex;
      justify-content:center;
      align-items:center;
      gap:20px;
      margin-top:24px;
    }

    .hs-circle{
      width:62px;
      height:62px;
      border-radius:50%;
      background:#fff;
      border:1px solid #f4e0e8;
      display:grid;
      place-items:center;
      box-shadow:0 10px 24px rgba(20,20,30,.08);
      font-size:1.55rem;
    }

    .hs-circle.main{
      width:82px;
      height:82px;
      background:linear-gradient(135deg,var(--pink),#ff7fa9);
      color:#fff;
      font-size:2rem;
      box-shadow:0 16px 36px rgba(255,79,135,.36);
    }

    .hs-control-box{
      margin-top:22px;
      padding:20px;
      border-radius:26px;
      background:linear-gradient(135deg,#fff0f6,#fff);
      border:1px solid #ffd6e4;
      display:flex;
      gap:14px;
      align-items:flex-start;
    }

    .hs-control-box strong{
      color:var(--pink-dark);
      display:block;
      margin-bottom:3px;
    }

    .hs-section{
      padding:78px 0;
    }

    .hs-section-head{
      text-align:center;
      max-width:790px;
      margin:0 auto 44px;
    }

    .hs-section-head h2{
      font-size:clamp(2rem,4vw,3.5rem);
      line-height:1.03;
      letter-spacing:-.06em;
      font-weight:900;
      margin-bottom:18px;
    }

    .hs-section-head p{
      color:var(--muted);
      font-size:1.12rem;
    }

    .hs-cards{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:22px;
    }

    .hs-card{
      background:rgba(255,255,255,.86);
      border:1px solid rgba(255,79,135,.12);
      border-radius:30px;
      padding:30px;
      box-shadow:var(--shadow-soft);
    }

    .hs-icon{
      width:54px;
      height:54px;
      border-radius:20px;
      display:grid;
      place-items:center;
      background:linear-gradient(135deg,#fff0f6,#fff);
      color:var(--pink);
      font-size:1.5rem;
      margin-bottom:18px;
      border:1px solid #ffd8e5;
    }

    .hs-card h3{
      font-size:1.28rem;
      margin-bottom:10px;
      letter-spacing:-.02em;
    }

    .hs-card p{
      color:var(--muted);
    }

    .hs-steps{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:22px;
      counter-reset:steps;
    }

    .hs-step{
      position:relative;
      background:#fff;
      border-radius:32px;
      padding:34px;
      border:1px solid rgba(255,79,135,.14);
      box-shadow:var(--shadow-soft);
      overflow:hidden;
    }

    .hs-step:before{
      counter-increment:steps;
      content:"0" counter(steps);
      position:absolute;
      right:22px;
      top:12px;
      font-size:4rem;
      line-height:1;
      font-weight:900;
      color:rgba(255,79,135,.12);
      letter-spacing:-.08em;
    }

    .hs-safety{
      background:linear-gradient(135deg,#1e1e2a,#3a2030);
      color:#fff;
      border-radius:46px;
      padding:56px;
      display:grid;
      grid-template-columns:.9fr 1.1fr;
      gap:36px;
      align-items:center;
      box-shadow:0 30px 80px rgba(30,30,42,.24);
    }

    .hs-safety h2{
      font-size:clamp(2rem,4vw,3.4rem);
      line-height:1.03;
      letter-spacing:-.06em;
      margin-bottom:18px;
    }

    .hs-safety p{
      color:rgba(255,255,255,.74);
      font-size:1.08rem;
    }

    .hs-safety-list{
      display:grid;
      gap:14px;
    }

    .hs-safety-item{
      background:rgba(255,255,255,.09);
      border:1px solid rgba(255,255,255,.14);
      border-radius:22px;
      padding:18px 20px;
      display:flex;
      gap:14px;
      align-items:flex-start;
      backdrop-filter:blur(10px);
    }

    .hs-safety-item strong{
      display:block;
      margin-bottom:2px;
    }

    .hs-safety-item span{
      color:rgba(255,255,255,.7);
      font-size:.95rem;
    }

    .hs-login-section{
      padding:90px 0;
    }

    .hs-login-box{
      background:
        radial-gradient(circle at top right, rgba(255,79,135,.16), transparent 34%),
        #fff;
      border:1px solid rgba(255,79,135,.13);
      border-radius:46px;
      box-shadow:var(--shadow);
      padding:52px;
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:24px;
      align-items:stretch;
    }

    .hs-register-card{
      border-radius:32px;
      padding:34px;
      border:1px solid #f2dce5;
      background:#fff;
      box-shadow:0 14px 40px rgba(20,20,30,.05);
    }

    .hs-register-card.female{
      background:linear-gradient(135deg,#fff0f6,#fff);
      border-color:#ffcfe0;
    }

    .hs-register-card h3{
      font-size:1.7rem;
      letter-spacing:-.04em;
      margin-bottom:12px;
    }

    .hs-register-card p{
      color:var(--muted);
      margin-bottom:24px;
    }

    .hs-register-card ul{
      list-style:none;
      display:grid;
      gap:10px;
      margin-bottom:28px;
      color:#4d4d58;
      font-weight:700;
    }

    .hs-final{
      text-align:center;
      padding:90px 0 110px;
    }

    .hs-final-box{
      background:linear-gradient(135deg,var(--pink),#ff8ab1);
      color:#fff;
      border-radius:48px;
      padding:64px 24px;
      box-shadow:0 30px 80px rgba(255,79,135,.35);
    }

    .hs-final h2{
      font-size:clamp(2.2rem,5vw,4.3rem);
      line-height:1;
      letter-spacing:-.07em;
      margin-bottom:18px;
    }

    .hs-final p{
      max-width:680px;
      margin:0 auto 30px;
      color:rgba(255,255,255,.86);
      font-size:1.15rem;
    }

    .hs-footer{
  position:relative;
  padding:38px 0;
  background:
    linear-gradient(180deg,#fff7fa 0%,#ffffff 100%);
  border-top:1px solid rgba(255,79,135,.10);
  margin-top:40px;
}

.hs-footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  flex-wrap:wrap;
}

.hs-footer-brand{
  display:flex;
  align-items:center;
  gap:16px;
}

.hs-footer-logo{
  width:auto;
  height:56px;
  border-radius:20px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 30px rgba(255,79,135,.12);
  border:1px solid rgba(255,79,135,.10);
}

.hs-footer-text{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.hs-footer-text strong{
  font-size:1rem;
  font-weight:800;
  letter-spacing:-.03em;
  color:#18181f;
}

.hs-footer-text span{
  color:#777785;
  font-size:.95rem;
  font-weight:600;
}

.hs-footer-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  flex-wrap:wrap;
}

.hs-footer-links a{
  color:#666672;
  text-decoration:none;
  font-weight:700;
  transition:.18s ease;
}

.hs-footer-links a:hover{
  color:var(--pink);
}

@media(max-width:820px){

  .hs-footer{
    padding:34px 0 90px;
  }

  .hs-footer-inner{
    flex-direction:column;
    align-items:flex-start;
  }

  .hs-footer-links{
    justify-content:flex-start;
    gap:14px 18px;
  }

}

    .auth-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:32px 16px;
  background:
    radial-gradient(circle at top left, rgba(255,79,135,.18), transparent 32%),
    linear-gradient(180deg,#fff7fa,#fff);
}

.auth-card{
  width:min(480px,100%);
  background:#fff;
  border:1px solid rgba(255,79,135,.14);
  border-radius:38px;
  padding:38px;
  box-shadow:0 24px 70px rgba(255,79,135,.16);
}

.auth-logo{
  margin-bottom:28px;
}

.auth-card h1{
  font-size:clamp(2rem,6vw,3.2rem);
  line-height:1;
  letter-spacing:-.06em;
  margin-bottom:12px;
}

.auth-subline{
  color:var(--muted);
  font-weight:700;
  margin-bottom:28px;
}

.auth-form{
  display:grid;
  gap:16px;
}

.auth-form label{
  display:grid;
  gap:8px;
  font-weight:800;
  color:#353542;
}

.auth-form input,
.auth-form select{
  width:100%;
  min-height:52px;
  border-radius:18px;
  border:1px solid #f0dce4;
  background:#fffafb;
  padding:0 16px;
  font:inherit;
  font-weight:600;
  outline:none;
}

.auth-form input:focus,
.auth-form select:focus{
  border-color:var(--pink);
  box-shadow:0 0 0 4px rgba(255,79,135,.12);
}

.auth-submit{
  width:100%;
  margin-top:8px;
}

.auth-alert{
  padding:14px 16px;
  border-radius:18px;
  font-weight:800;
  margin-bottom:20px;
}

.auth-alert.error{
  background:#fff0f3;
  color:#c62355;
  border:1px solid #ffc6d7;
}

.auth-bottom{
  text-align:center;
  margin-top:24px;
  color:var(--muted);
  font-weight:700;
}

.auth-bottom a{
  color:var(--pink);
}

.app-shell{
  min-height:100vh;
  background:
    radial-gradient(circle at top left, rgba(255,79,135,.14), transparent 30%),
    linear-gradient(180deg,#fff7fa,#fff);
  padding-bottom:92px;
}

.app-main{
  width:min(760px, calc(100% - 28px));
  margin:0 auto;
  padding:34px 0;
}

.app-topbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:24px;
}

.app-kicker{
  color:var(--pink);
  font-weight:900;
}

.app-topbar h1{
  font-size:clamp(2rem,6vw,3.4rem);
  line-height:1;
  letter-spacing:-.06em;
}

.app-logout{
  background:#fff;
  border:1px solid #f0dce4;
  border-radius:999px;
  padding:10px 16px;
  font-weight:800;
  color:var(--muted);
}

.profile-card,
.profile-settings-card{
  background:#fff;
  border:1px solid rgba(255,79,135,.13);
  border-radius:34px;
  padding:30px;
  box-shadow:0 14px 40px rgba(20,20,30,.07);
  margin-bottom:18px;
}

.profile-avatar{
  width:86px;
  height:86px;
  border-radius:30px;
  background:linear-gradient(135deg,var(--pink),#ff86ae);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:2.3rem;
  box-shadow:0 16px 38px rgba(255,79,135,.28);
  margin-bottom:18px;
}

.profile-card h2{
  font-size:2rem;
  letter-spacing:-.04em;
}

.profile-card p{
  color:var(--muted);
  font-weight:700;
}

.profile-status{
  margin-top:18px;
  background:#fff0f6;
  color:var(--pink-dark);
  border:1px solid #ffd3e2;
  border-radius:20px;
  padding:14px 16px;
  font-weight:900;
}

.profile-settings-card h3{
  font-size:1.4rem;
  margin-bottom:18px;
}

.setting-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:16px 0;
  border-bottom:1px solid #f3e4ea;
}

.setting-row:last-child{
  border-bottom:none;
}

.setting-row span{
  color:var(--muted);
  font-weight:700;
}

.setting-row strong{
  color:var(--text);
}

.bottom-nav{
  position:fixed;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  width:min(520px, calc(100% - 24px));
  height:72px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(255,79,135,.16);
  border-radius:28px;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  box-shadow:0 18px 50px rgba(20,20,30,.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  z-index:100;
}

.bottom-nav a{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  font-weight:800;
  color:#81818c;
  font-size:1rem;
  text-decoration:none;
  transition:.16s ease;
}

.bottom-nav a span{
  font-size:.68rem;
  line-height:1;
}

.bottom-nav a.active{
  color:var(--pink);
  transform:translateY(-1px);
}
.auth-alert.success{
  background:#effff6;
  color:#12824a;
  border:1px solid #bdf2d4;
}

.edit-profile-form{
  display:grid;
  gap:18px;
}

.edit-photo-row{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}

.edit-photo-preview{
  width:120px;
  height:120px;
  border-radius:34px;
  background:linear-gradient(135deg,var(--pink),#ff86ae);
  color:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  font-size:3rem;
  box-shadow:0 16px 38px rgba(255,79,135,.25);
  flex:0 0 auto;
}

.edit-photo-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.upload-box{
  flex:1;
  min-height:120px;
  border:2px dashed #ffd0df;
  border-radius:28px;
  background:#fff8fb;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  padding:22px;
  cursor:pointer;
}

.upload-box strong{
  color:var(--text);
  font-size:1.05rem;
}

.upload-box span{
  color:var(--muted);
  font-weight:700;
  font-size:.92rem;
}

.upload-box input{
  margin-top:12px;
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.form-grid label,
.full-label{
  display:grid;
  gap:8px;
  font-weight:900;
  color:#353542;
}

.form-grid input,
.full-label textarea{
  width:100%;
  border-radius:18px;
  border:1px solid #f0dce4;
  background:#fffafb;
  padding:14px 16px;
  font:inherit;
  font-weight:600;
  outline:none;
}

.form-grid input{
  min-height:52px;
}

.full-label{
  margin-top:16px;
}

.full-label textarea{
  resize:vertical;
  min-height:150px;
}

.form-grid input:focus,
.full-label textarea:focus{
  border-color:var(--pink);
  box-shadow:0 0 0 4px rgba(255,79,135,.12);
}

.female-safety-card{
  background:linear-gradient(135deg,#fff0f6,#fff);
  border-color:#ffd0df;
}

.female-safety-card p{
  color:var(--muted);
  font-weight:700;
  margin-bottom:20px;
}

.toggle-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px;
  border-radius:24px;
  background:#fff;
  border:1px solid #f3dce5;
  margin-bottom:18px;
}

.toggle-row span{
  display:grid;
  gap:2px;
}

.toggle-row strong{
  color:var(--text);
}

.toggle-row small{
  color:var(--muted);
  font-weight:700;
}

.toggle-row input{
  width:24px;
  height:24px;
  accent-color:var(--pink);
  flex:0 0 auto;
}

.save-profile-btn{
  width:100%;
  min-height:58px;
  font-size:1rem;
}

.profile-card-actions{
  margin-top:20px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.swipe-main{
  width:min(520px, calc(100% - 24px));
  margin:0 auto;
  padding:28px 0 120px;
}

.swipe-topbar h1{
  font-size:clamp(2rem,8vw,3.2rem);
}

.swipe-stack{
  position:relative;
  width:100%;
  height:640px;
  margin-top:20px;
}

.swipe-card{
  position:absolute;
  inset:0;
  border-radius:38px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 24px 70px rgba(20,20,30,.16);
  transition:transform .25s ease, opacity .25s ease;
  touch-action:none;
  border:1px solid rgba(255,79,135,.14);
}

.swipe-card:not(.active){
  transform:scale(.96) translateY(14px);
  opacity:.74;
  pointer-events:none;
}

.swipe-card.dragging{
  transition:none;
}

.swipe-card.swiped-right{
  transform:translateX(120%) rotate(18deg) !important;
  opacity:0;
}

.swipe-card.swiped-left{
  transform:translateX(-120%) rotate(-18deg) !important;
  opacity:0;
}

.swipe-photo{
  width:100%;
  height:100%;
  background-size:cover;
  background-position:center;
  position:relative;
}

.swipe-info{
  position:absolute;
  left:24px;
  right:24px;
  bottom:26px;
  color:#fff;
}

.swipe-info h2{
  font-size:2.4rem;
  line-height:1;
  letter-spacing:-.05em;
  margin-bottom:8px;
}

.swipe-info h2 span{
  color:#8ff0bd;
}

.swipe-info p{
  color:rgba(255,255,255,.86);
  font-weight:700;
}

.swipe-bio{
  margin-top:12px;
}

.swipe-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}

.swipe-tags span{
  background:rgba(255,255,255,.22);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-radius:999px;
  padding:8px 12px;
  font-size:.86rem;
  font-weight:800;
}

.swipe-badge{
  position:absolute;
  top:34px;
  padding:10px 20px;
  border-radius:18px;
  border:3px solid currentColor;
  font-size:1.4rem;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:0;
  transform:rotate(-12deg);
  transition:.18s ease;
}

.swipe-badge.like{
  left:28px;
  color:#34d47e;
}

.swipe-badge.nope{
  right:28px;
  color:#ff4f87;
  transform:rotate(12deg);
}

.swipe-card.show-like .swipe-badge.like{
  opacity:1;
}

.swipe-card.show-nope .swipe-badge.nope{
  opacity:1;
}

.swipe-actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  margin-top:24px;
}

.swipe-btn{
  border:0;
  cursor:pointer;
  width:72px;
  height:72px;
  border-radius:50%;
  background:#fff;
  border:1px solid #f4dce6;
  box-shadow:0 14px 34px rgba(20,20,30,.12);
  font-size:2rem;
  font-weight:900;
  transition:.22s ease;
}

.swipe-btn:hover{
  transform:translateY(-3px) scale(1.03);
}

.nope-btn{
  color:#8a8a96;
}

.like-btn{
  width:88px;
  height:88px;
  background:linear-gradient(135deg,var(--pink),#ff86ae);
  color:#fff;
  box-shadow:0 18px 42px rgba(255,79,135,.34);
}

.swipe-note{
  margin-top:18px;
  background:#fff;
  border:1px solid #f1dce5;
  border-radius:22px;
  padding:14px 16px;
  color:var(--muted);
  font-weight:800;
  text-align:center;
  box-shadow:0 12px 30px rgba(20,20,30,.05);
}

.empty-state-card{
  background:#fff;
  border:1px solid rgba(255,79,135,.14);
  border-radius:36px;
  padding:38px;
  box-shadow:0 20px 60px rgba(255,79,135,.14);
  text-align:center;
}

.empty-icon{
  width:82px;
  height:82px;
  border-radius:28px;
  display:grid;
  place-items:center;
  margin:0 auto 20px;
  background:linear-gradient(135deg,#fff0f6,#fff);
  border:1px solid #ffd5e4;
  font-size:2.4rem;
}

.empty-state-card h1,
.empty-state-card h2{
  font-size:clamp(2rem,7vw,3.2rem);
  line-height:1;
  letter-spacing:-.06em;
  margin-bottom:14px;
}

.empty-state-card p{
  color:var(--muted);
  font-weight:700;
  margin-bottom:24px;
}

.inline-empty{
  position:static;
}
.matches-list{
  display:grid;
  gap:18px;
}

.match-card{
  background:#fff;
  border:1px solid rgba(255,79,135,.13);
  border-radius:34px;
  overflow:hidden;
  box-shadow:0 14px 40px rgba(20,20,30,.07);
  transition:.24s ease;
}

.match-card:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 54px rgba(255,79,135,.16);
}

.match-card-link{
  display:grid;
  grid-template-columns:150px 1fr;
  color:inherit;
}

.match-image{
  min-height:210px;
  background:#fff0f6;
}

.match-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.match-content{
  padding:24px;
}

.match-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.match-status{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:7px 11px;
  background:#fff0f6;
  color:var(--pink-dark);
  font-size:.78rem;
  font-weight:900;
}

.match-date{
  color:var(--muted);
  font-size:.84rem;
  font-weight:800;
}

.match-content h2{
  font-size:1.8rem;
  line-height:1.05;
  letter-spacing:-.045em;
  margin-bottom:8px;
}

.verified-mark{
  color:#19b86a;
  font-size:1.1rem;
}

.match-location{
  color:var(--muted);
  font-weight:800;
  margin-bottom:10px;
}

.match-bio{
  color:#4f4f5a;
  font-weight:650;
  margin-bottom:14px;
}

.match-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:18px;
}

.match-tags span{
  padding:7px 11px;
  border-radius:999px;
  background:#fff7fa;
  border:1px solid #f2dce5;
  color:#555561;
  font-size:.82rem;
  font-weight:850;
}

.match-action-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid #f3e4ea;
  padding-top:15px;
  color:var(--pink);
  font-weight:900;
}

.match-action-row strong{
  font-size:1.3rem;
}
.chat-shell{
  padding-bottom:92px;
}

.chat-main{
  width:min(760px, calc(100% - 24px));
  margin:0 auto;
  padding:18px 0 110px;
}

.chat-header{
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(255,247,250,.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,79,135,.12);
  border-radius:28px;
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  box-shadow:0 14px 40px rgba(20,20,30,.07);
}

.chat-back{
  width:42px;
  height:42px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid #f0dce4;
  color:var(--pink);
  font-size:2rem;
  line-height:1;
  font-weight:700;
}

.chat-user{
  display:flex;
  align-items:center;
  gap:12px;
  flex:1;
  min-width:0;
}

.chat-user img{
  width:52px;
  height:52px;
  border-radius:18px;
  object-fit:cover;
}

.chat-user strong{
  display:block;
  font-size:1.05rem;
  line-height:1.1;
}

.chat-user span{
  display:block;
  color:var(--muted);
  font-weight:700;
  font-size:.86rem;
}

.chat-close-btn{
  border:0;
  background:#fff0f6;
  color:var(--pink-dark);
  border:1px solid #ffd0df;
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
  cursor:pointer;
}

.chat-secure-label{
  width:42px;
  height:42px;
  border-radius:16px;
  background:#fff0f6;
  display:grid;
  place-items:center;
}

.chat-safety-note{
  margin:16px 0;
  background:#fff;
  border:1px solid #f1dce5;
  border-radius:22px;
  padding:14px 16px;
  color:var(--muted);
  font-weight:800;
  text-align:center;
}

.chat-messages{
  min-height:calc(100vh - 310px);
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:8px 0 20px;
}

.message-row{
  display:flex;
}

.message-row.mine{
  justify-content:flex-end;
}

.message-row.theirs{
  justify-content:flex-start;
}

.message-bubble{
  max-width:min(78%, 520px);
  padding:14px 16px;
  border-radius:22px;
  font-weight:650;
  box-shadow:0 8px 24px rgba(20,20,30,.06);
}

.message-row.mine .message-bubble{
  background:linear-gradient(135deg,var(--pink),#ff86ae);
  color:#fff;
  border-bottom-right-radius:7px;
}

.message-row.theirs .message-bubble{
  background:#fff;
  color:var(--text);
  border:1px solid #f1dce5;
  border-bottom-left-radius:7px;
}

.message-bubble span{
  display:block;
  margin-top:6px;
  font-size:.72rem;
  opacity:.72;
  font-weight:800;
  text-align:right;
}

.chat-form{
  position:fixed;
  left:50%;
  bottom:96px;
  transform:translateX(-50%);
  width:min(760px, calc(100% - 24px));
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,79,135,.14);
  border-radius:28px;
  padding:10px;
  display:flex;
  gap:10px;
  box-shadow:0 18px 50px rgba(20,20,30,.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  z-index:90;
}

.chat-form textarea{
  flex:1;
  border:0;
  outline:0;
  resize:none;
  min-height:48px;
  max-height:140px;
  border-radius:20px;
  background:#fff7fa;
  padding:14px 16px;
  font:inherit;
  font-weight:700;
}

.chat-form button{
  width:50px;
  height:50px;
  border:0;
  border-radius:18px;
  background:linear-gradient(135deg,var(--pink),#ff86ae);
  color:#fff;
  font-size:1.2rem;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 12px 30px rgba(255,79,135,.28);
}

.chat-empty{
  margin:auto;
  text-align:center;
  background:#fff;
  border:1px solid rgba(255,79,135,.13);
  border-radius:34px;
  padding:34px;
  box-shadow:0 14px 40px rgba(20,20,30,.07);
}

.chat-empty div{
  width:76px;
  height:76px;
  border-radius:26px;
  display:grid;
  place-items:center;
  margin:0 auto 18px;
  background:#fff0f6;
  color:var(--pink);
  font-size:2rem;
}

.chat-empty h2{
  font-size:1.8rem;
  letter-spacing:-.04em;
  margin-bottom:8px;
}

.chat-empty p{
  color:var(--muted);
  font-weight:700;
}
.profile-hero-card{
  background:#fff;
  border:1px solid rgba(255,79,135,.13);
  border-radius:38px;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(255,79,135,.13);
  display:grid;
  grid-template-columns:260px 1fr;
  margin-bottom:20px;
}

.profile-hero-image{
  min-height:330px;
  background:#fff0f6;
}

.profile-hero-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.profile-hero-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font-size:4rem;
  color:var(--pink);
  background:linear-gradient(135deg,#fff0f6,#fff);
}

.profile-hero-content{
  padding:30px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.profile-name-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:8px;
}

.profile-name-row h2{
  font-size:clamp(2rem,6vw,3.2rem);
  line-height:1;
  letter-spacing:-.06em;
}

.profile-verified,
.profile-unverified{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:7px 11px;
  font-size:.78rem;
  font-weight:900;
}

.profile-verified{
  background:#effff6;
  color:#12824a;
  border:1px solid #bdf2d4;
}

.profile-unverified{
  background:#fff7ec;
  color:#a76508;
  border:1px solid #ffe0a9;
}

.profile-location{
  color:var(--muted);
  font-weight:800;
  margin-bottom:18px;
}

.profile-status-box{
  border-radius:24px;
  padding:18px;
  display:grid;
  gap:4px;
  margin:10px 0 2px;
}

.profile-status-box strong{
  font-size:1.03rem;
}

.profile-status-box span{
  color:var(--muted);
  font-weight:700;
}

.profile-status-box.female{
  background:linear-gradient(135deg,#fff0f6,#fff);
  border:1px solid #ffd0df;
}

.profile-status-box.male{
  background:linear-gradient(135deg,#f8f8ff,#fff);
  border:1px solid #e2e2ff;
}

.profile-info-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.profile-text{
  color:#4f4f5a;
  font-weight:650;
}

.profile-empty-text{
  color:var(--muted);
  font-weight:700;
}

.profile-interest-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.profile-interest-tags span{
  background:#fff7fa;
  border:1px solid #f2dce5;
  color:#555561;
  border-radius:999px;
  padding:9px 13px;
  font-weight:850;
  font-size:.9rem;
}
.chat-overview-list{
  display:grid;
  gap:16px;
}

.chat-overview-card{
  position:relative;
  display:grid;
  grid-template-columns:76px 1fr;
  gap:16px;
  align-items:center;
  background:#fff;
  border:1px solid rgba(255,79,135,.13);
  border-radius:30px;
  padding:14px;
  box-shadow:0 14px 40px rgba(20,20,30,.06);
  transition:.22s ease;
  color:inherit;
}

.chat-overview-card:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 50px rgba(255,79,135,.14);
}

.chat-overview-image{
  width:76px;
  height:76px;
  border-radius:24px;
  overflow:hidden;
  background:#fff0f6;
  flex:0 0 auto;
}

.chat-overview-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.chat-overview-content{
  min-width:0;
}

.chat-overview-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:4px;
}

.chat-overview-name{
  font-size:1.12rem;
  font-weight:900;
  color:var(--text);
  line-height:1.1;
}

.chat-overview-name span{
  color:#18b868;
}

.chat-overview-date{
  color:var(--muted);
  font-size:.76rem;
  font-weight:800;
  white-space:nowrap;
}

.chat-overview-location{
  color:var(--muted);
  font-size:.84rem;
  font-weight:800;
  margin-bottom:8px;
}

.chat-overview-message{
  color:#4f4f5a;
  font-weight:650;
  line-height:1.45;
}

.chat-unread-badge{
  position:absolute;
  right:16px;
  bottom:16px;
  min-width:28px;
  height:28px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--pink),#ff86ae);
  color:#fff;
  display:grid;
  place-items:center;
  padding:0 8px;
  font-size:.76rem;
  font-weight:1000;
  box-shadow:0 10px 26px rgba(255,79,135,.25);
}

.swipe-filter-form{
  display:grid;
  gap:18px;
}

.range-output{
  margin-top:14px;
  display:flex;
  justify-content:center;
}

.range-output strong{
  background:#fff0f6;
  border:1px solid #ffd0df;
  color:var(--pink-dark);
  border-radius:999px;
  padding:10px 16px;
  font-size:1rem;
  font-weight:1000;
}

input[type="range"]{
  width:100%;
  margin-top:14px;
  accent-color:var(--pink);
}
.photo-upload-form{
  display:grid;
  gap:18px;
}

.photo-upload-box{
  position:relative;
  display:block;
  border:2px dashed #ffd0df;
  background:#fff7fa;
  border-radius:30px;
  padding:42px 24px;
  text-align:center;
  cursor:pointer;
  transition:.22s ease;
}

.photo-upload-box:hover{
  background:#fff0f6;
}

.photo-upload-box input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}

.photo-upload-box strong{
  display:block;
  font-size:3rem;
  line-height:1;
  color:var(--pink);
  margin-bottom:10px;
}

.photo-upload-box span{
  color:var(--muted);
  font-weight:800;
}

.photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:18px;
}

.photo-card{
  background:#fff;
  border:1px solid rgba(255,79,135,.12);
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 14px 40px rgba(20,20,30,.06);
}

.photo-image-wrap{
  position:relative;
  aspect-ratio:1/1.15;
  background:#fff0f6;
}

.photo-image-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.main-photo-badge{
  position:absolute;
  left:14px;
  top:14px;
  background:linear-gradient(135deg,var(--pink),#ff86ae);
  color:#fff;
  border-radius:999px;
  padding:9px 12px;
  font-size:.78rem;
  font-weight:1000;
  box-shadow:0 10px 26px rgba(255,79,135,.25);
}

.photo-actions{
  display:grid;
  gap:10px;
  padding:16px;
}

.photo-action-btn,
.photo-delete-btn{
  width:100%;
  border:0;
  border-radius:16px;
  padding:12px 14px;
  font-weight:900;
  cursor:pointer;
}

.photo-action-btn{
  background:#fff0f6;
  color:var(--pink-dark);
}

.photo-delete-btn{
  background:#fff5f5;
  color:#d23434;
}
/* ===========================
   DSGVO COOKIE BANNER (NEU)
   =========================== */

.cookies{
  position:fixed;
  bottom:15px;
  left:50%;
  transform:translateX(-50%);
  width:90%;
  max-width:700px;
  background:#111827;
  color:#f9fafb;
  padding:20px 24px;
  border-radius:16px;
  box-shadow:0 20px 40px rgba(0,0,0,.5);
  font-size:14px;
  z-index:9999;
}

.cookie-inner a{color:#00FFB4;}

.cookie-groups{
  margin-top:15px;
  border-top:1px solid rgba(249,250,251,.1);
  padding-top:10px;
}

.cookie-group{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  margin:10px 0;
}

/* Switch */
.cookie-switch{
  position:relative;
  display:inline-block;
  width:44px;
  height:24px;
}
.cookie-switch input{
  opacity:0;
  width:0;
  height:0;
}
.cookie-slider{
  position:absolute;
  cursor:pointer;
  top:0;left:0;right:0;bottom:0;
  background-color:#4b5563;
  transition:.2s;
  border-radius:999px;
}
.cookie-slider:before{
  position:absolute;
  content:"";
  height:18px;width:18px;
  left:3px;bottom:3px;
  background-color:white;
  transition:.2s;
  border-radius:50%;
}
.cookie-switch input:checked + .cookie-slider{
  background-color:#22c55e;
}
.cookie-switch input:checked + .cookie-slider:before{
  transform:translateX(18px);
}

/* Buttons */
.cookie-buttons{
  margin-top:15px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.cookie-buttons .button{
  width:auto;
  min-width:140px;
  padding:6px 10px;
}

/* Mobile */
@media(max-width:600px){
  .cookies{
    bottom:0;
    left:0;
    transform:none;
    width:100%;
    max-width:100%;
    border-radius:16px 16px 0 0;
  }
}

@media(max-width:620px){
  .chat-overview-card{
    border-radius:24px;
    padding:12px;
    grid-template-columns:68px 1fr;
  }

  .chat-overview-image{
    width:68px;
    height:68px;
    border-radius:20px;
  }
}
@media(max-width:760px){
  .profile-hero-card{
    grid-template-columns:1fr;
  }

  .profile-hero-image{
    min-height:360px;
  }

  .profile-info-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:620px){
  .profile-hero-card{
    border-radius:30px;
  }

  .profile-hero-content{
    padding:24px;
  }

  .profile-hero-image{
    min-height:320px;
  }
}

@media(max-width:620px){
  .chat-main{
    padding-top:12px;
  }

  .chat-header{
    border-radius:24px;
  }

  .chat-close-btn{
    font-size:.78rem;
    padding:9px 11px;
  }

  .message-bubble{
    max-width:86%;
  }

  .chat-form{
    bottom:92px;
    border-radius:24px;
  }
}
@media(max-width:620px){
  .match-card-link{
    grid-template-columns:1fr;
  }

  .match-image{
    height:280px;
  }

  .match-content{
    padding:22px;
  }
}
@media(max-width:620px){
  .swipe-main{
    padding-top:20px;
  }

  .swipe-stack{
    height:590px;
  }

  .swipe-card{
    border-radius:32px;
  }

  .swipe-info{
    left:20px;
    right:20px;
    bottom:22px;
  }

  .swipe-info h2{
    font-size:2.1rem;
  }
}
@media(max-width:620px){
  .form-grid{
    grid-template-columns:1fr;
  }

  .edit-photo-row{
    align-items:stretch;
  }

  .edit-photo-preview{
    width:100%;
    height:240px;
    border-radius:28px;
  }

  .upload-box{
    width:100%;
  }

  .toggle-row{
    align-items:flex-start;
  }
}
@media(max-width:620px){
  .auth-card{
    padding:28px 22px;
    border-radius:30px;
  }

  .app-main{
    padding-top:24px;
  }

  .profile-card,
  .profile-settings-card{
    border-radius:28px;
    padding:24px;
  }
}

    @media(max-width:960px){
      .hs-nav-links{
        display:none;
      }

      .hs-hero-grid,
      .hs-safety,
      .hs-login-box{
        grid-template-columns:1fr;
      }

      .hs-hero{
        padding-top:52px;
      }

      .hs-cards,
      .hs-steps{
        grid-template-columns:1fr;
      }

      .hs-safety,
      .hs-login-box{
        padding:30px;
        border-radius:34px;
      }
    }

    @media(max-width:620px){
      .hs-container{
        width:min(100% - 24px,1180px);
      }

      .hs-nav-inner{
        height:74px;
      }

      .hs-nav-actions .hs-btn-light{
        display:none;
      }

      .hs-btn{
        min-height:46px;
        padding:0 17px;
      }

      .hs-hero-points{
        grid-template-columns:1fr;
      }

      .hs-phone{
        border-radius:34px;
        padding:14px;
      }

      .hs-profile-card{
        height:410px;
        border-radius:26px;
      }

      .hs-section{
        padding:56px 0;
      }

      .hs-card,
      .hs-step,
      .hs-register-card{
        padding:24px;
        border-radius:24px;
      }

      .hs-final-box{
        border-radius:34px;
        padding:46px 20px;
      }
    }