:root{
  --ink:#111310; --paper:#f4f3ed; --card:#ffffff; --muted:#777c72; --line:#dedfd8;
  --lime:#c8ef49; --danger:#c83f3f; --shadow:0 18px 60px rgba(17,19,16,.12);
  --r1:16px; --r2:22px; --r3:28px; --safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:#d9dad4;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{display:flex;justify-content:center;overscroll-behavior:none}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.app-shell{position:relative;width:100%;max-width:480px;min-height:100dvh;background:var(--paper);overflow:hidden;box-shadow:0 0 80px rgba(0,0,0,.08)}
.screen,.main-app{min-height:100dvh;background:var(--paper)}
.main-app{position:relative;padding-bottom:92px}
.view{display:none;min-height:calc(100dvh - 92px);padding:0 18px 28px;overflow:auto}
.view.active-view{display:block}
.eyebrow{display:block;font-size:11px;letter-spacing:.13em;font-weight:800;color:#6a6f66;margin-bottom:5px}
.brand{font-weight:950;letter-spacing:-.06em;font-size:34px}
.brand.small{font-size:21px;line-height:1}
.brand-lockup{display:flex;align-items:center;gap:10px}
.brand-ball{width:18px;height:18px;border-radius:50%;background:var(--lime);border:2px solid var(--ink);position:relative}
.brand-ball:after{content:"";position:absolute;inset:3px;border:1.5px solid var(--ink);border-left-color:transparent;border-right-color:transparent;border-radius:50%;transform:rotate(35deg)}
h1{font-size:31px;line-height:1.02;letter-spacing:-.045em;margin:6px 0 0}
h2{font-size:24px;line-height:1.05;letter-spacing:-.035em;margin:0}
h3{font-size:14px;letter-spacing:-.01em;margin:0 0 10px}
p{line-height:1.45}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 2px 14px;position:sticky;top:0;background:linear-gradient(var(--paper) 78%,rgba(244,243,237,0));z-index:15}
.topbar.simple{padding:24px 20px 14px}
.icon-btn,.text-btn{border:0;background:#fff;border-radius:999px;min-width:42px;height:42px;padding:0 13px;font-weight:800;box-shadow:0 2px 0 rgba(0,0,0,.04)}
.text-btn{background:transparent;box-shadow:none;padding-right:0}
.primary-btn,.secondary-btn,.danger-btn{border:0;border-radius:999px;min-height:52px;padding:0 20px;font-weight:900;letter-spacing:-.015em}
.primary-btn{background:var(--ink);color:#fff}
.primary-btn:active{transform:translateY(1px)}
.secondary-btn{background:#fff;border:1px solid var(--line)}
.danger-btn{width:100%;background:#fff;color:var(--danger);border:1px solid #ebcccc;margin-top:18px}

/* Auth */
.auth-screen{padding:28px 22px 34px;display:flex;flex-direction:column;gap:22px}
.auth-hero{padding-top:7vh}
.auth-hero h1{font-size:50px;max-width:330px}
.auth-hero p{font-size:16px;color:#555b52;max-width:360px;margin:13px 0 0}
.auth-card{margin-top:auto;background:#fff;border:1px solid var(--line);border-radius:26px;padding:16px;box-shadow:var(--shadow)}
.segmented{display:grid;grid-template-columns:1fr 1fr;background:#f0f0ea;border-radius:999px;padding:4px;margin-bottom:15px}
.seg-btn{border:0;border-radius:999px;background:transparent;padding:10px 12px;font-weight:800;color:#73776f}
.seg-btn.active{background:#fff;color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.05)}
.field-label{display:block;font-size:12px;font-weight:800;color:#646a61;margin:10px 0}
.field-label input,.field-label textarea,.field-label select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:15px;background:#fafaf7;min-height:48px;padding:12px 13px;outline:none;font-size:16px;font-weight:600}
.field-label textarea{min-height:96px;resize:none}
.field-label input:focus,.field-label textarea:focus,.field-label select:focus{border-color:#aeb398;background:#fff;box-shadow:0 0 0 3px rgba(200,239,73,.22)}
.auth-card .primary-btn{width:100%;margin-top:8px}
.form-message{font-size:13px;min-height:20px;margin:3px 1px;color:#6d716a}
.form-message.error{color:var(--danger)}
.fineprint{text-align:center;font-size:12px;color:#7d8179;margin:0}

/* Onboarding */
.onboarding-wrap{padding:7vh 22px 28px;display:flex;min-height:calc(100dvh - 80px);flex-direction:column}
.onboarding-wrap h1{font-size:42px;max-width:390px}
.onboarding-wrap .lead{color:#60655d;font-size:16px;margin:12px 0 24px}
.onboarding-actions{margin-top:auto;display:flex;gap:10px;padding-top:20px}
.onboarding-actions .primary-btn{flex:1}
.step-label{font-size:12px;color:#777c72;font-weight:800}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}
.choice{border:1px solid var(--line);background:#fff;border-radius:17px;padding:16px;text-align:left;font-weight:850;min-height:58px}
.choice.active{border-color:var(--ink);background:var(--lime)}
.photo-uploader{width:170px;height:210px;border-radius:26px;border:1.5px dashed #b9bcb3;background:#fff;display:grid;place-items:center;overflow:hidden;margin:22px auto;position:relative}
.photo-uploader img{width:100%;height:100%;object-fit:cover}
.photo-uploader input{position:absolute;inset:0;opacity:0}
.photo-placeholder{text-align:center;color:#6f746b;font-weight:800;font-size:13px}
.range-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;margin-top:14px}
.range-row input[type=range]{width:100%;accent-color:var(--ink)}
.range-value{font-weight:950;background:#fff;border:1px solid var(--line);padding:8px 10px;border-radius:12px;min-width:68px;text-align:center}

/* Discover */
.discover-toolbar{display:flex;align-items:center;justify-content:space-between;margin:1px 0 11px}
.filter-pill{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 13px;font-weight:850;font-size:13px}
.filter-pill .dot{margin:0 6px;color:#a0a49c}
.deck-counter{font-size:12px;color:#8b8f87;font-weight:750}
.deck{position:relative;height:calc(100dvh - 216px);min-height:495px;max-height:670px}
.player-card{position:absolute;inset:0;background:#fff;border-radius:28px;border:1px solid rgba(17,19,16,.08);overflow:hidden;box-shadow:0 14px 42px rgba(17,19,16,.11);touch-action:none;transform-origin:center 86%;transition:transform .25s ease,opacity .25s ease}
.player-card.behind{transform:scale(.965) translateY(9px);opacity:.76;pointer-events:none}
.player-card-photo{height:57%;min-height:270px;background:linear-gradient(145deg,#d7dbce,#9ea694);position:relative;overflow:hidden}
.player-card-photo img{width:100%;height:100%;object-fit:cover}
.avatar-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:74px;font-weight:950;letter-spacing:-.06em;color:#fff;background:linear-gradient(135deg,#6f7669,#aeb6a2)}
.photo-shade{position:absolute;inset:auto 0 0;height:58%;background:linear-gradient(transparent,rgba(0,0,0,.66))}
.photo-overlay{position:absolute;left:18px;right:18px;bottom:17px;color:#fff}
.player-name{font-size:31px;font-weight:950;letter-spacing:-.045em;line-height:1}
.player-meta{font-size:13px;font-weight:800;opacity:.92;margin-top:7px;display:flex;flex-wrap:wrap;gap:8px}
.verified{display:inline-flex;align-items:center;gap:4px}
.verified:before{content:"✓";display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--lime);color:#111;font-size:10px;font-weight:950}
.card-body{padding:16px 18px 18px;height:43%;display:flex;flex-direction:column}
.match-line{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:900;color:#596052;margin-bottom:10px}
.match-line:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lime);border:1px solid var(--ink)}
.tag-row{display:flex;gap:7px;flex-wrap:wrap}
.tag{background:#f1f2ec;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:850;color:#565c53}
.player-bio{font-size:13px;color:#5d625a;margin:12px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between}
.activity{font-size:11px;color:#777d73;font-weight:760}
.link-btn{border:0;background:transparent;font-weight:950;padding:8px 0}
.swipe-hint{text-align:center;font-size:11px;color:#8d9189;margin:9px 0 0;font-weight:750}
.swipe-stamp{position:absolute;top:27px;padding:7px 12px;border:3px solid;border-radius:10px;font-size:28px;font-weight:950;letter-spacing:.04em;z-index:10;opacity:0;transform:rotate(-9deg)}
.swipe-stamp.like{right:20px;color:#d9ff60;border-color:#d9ff60;transform:rotate(9deg)}
.swipe-stamp.pass{left:20px;color:#fff;border-color:#fff}
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:28px;height:100%;padding:32px}
.empty-state .ball{width:64px;height:64px;border-radius:50%;background:var(--lime);border:2px solid var(--ink);margin-bottom:20px}
.empty-state h2{font-size:29px}
.empty-state p{color:#676c63;max-width:270px}

/* Lists */
.list-wrap{display:flex;flex-direction:column;gap:9px;padding-bottom:20px}
.hit-row,.thread-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px}
.mini-avatar{width:54px;height:54px;flex:0 0 54px;border-radius:17px;background:#aab1a0;overflow:hidden;display:grid;place-items:center;color:#fff;font-size:20px;font-weight:950}
.mini-avatar img{width:100%;height:100%;object-fit:cover}
.row-main{min-width:0;flex:1}
.row-title{font-weight:950;letter-spacing:-.02em}
.row-meta{font-size:12px;color:#70766d;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-action{border:0;background:var(--ink);color:#fff;border-radius:999px;padding:9px 12px;font-weight:850;font-size:12px}

/* Messages */
.messages-view{overflow:hidden}
.message-layout{height:calc(100dvh - 188px);min-height:520px;display:flex;flex-direction:column;gap:10px}
.message-list{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto;padding-bottom:10px}
.chat-shell{flex:1 1 auto;min-height:0;height:auto;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden}
.chat-header{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line)}
.chat-back{border:0;background:#f2f2ed;width:36px;height:36px;border-radius:50%;font-size:18px;font-weight:900}
.chat-thread{flex:1;min-height:0;overflow-y:auto;padding:16px 13px;display:flex;flex-direction:column;gap:8px;background:#f8f8f4}
.bubble{max-width:78%;padding:10px 12px;border-radius:17px;font-size:14px;line-height:1.35}
.bubble.them{align-self:flex-start;background:#fff;border:1px solid #e6e7e0;border-bottom-left-radius:5px}
.bubble.me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:5px}
.chat-compose{flex:0 0 auto;display:flex;gap:8px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:999px}
.chat-compose input{flex:1;min-width:0;height:46px;border:1px solid var(--line);border-radius:999px;padding:0 15px;outline:none;background:#fafaf7}
.send-btn{width:46px;height:46px;flex:0 0 46px;border:0;border-radius:50%;background:var(--lime);font-weight:950;font-size:18px}

/* Profile */
.profile-wrap{padding-bottom:20px}
.profile-hero{background:#fff;border:1px solid var(--line);border-radius:27px;overflow:hidden}
.profile-photo{height:330px;background:#aab1a0;position:relative;overflow:hidden}
.profile-photo img{width:100%;height:100%;object-fit:cover}
.profile-info{padding:17px}
.profile-name{font-size:30px;font-weight:950;letter-spacing:-.045em}
.profile-sub{font-size:13px;color:#697067;font-weight:760;margin-top:5px}
.status-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0 0;margin-top:14px;border-top:1px solid var(--line)}
.toggle{appearance:none;width:50px;height:30px;border-radius:999px;background:#d9dbd4;position:relative;transition:.2s}
.toggle:after{content:"";position:absolute;width:24px;height:24px;top:3px;left:3px;background:#fff;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.15);transition:.2s}
.toggle:checked{background:var(--ink)}
.toggle:checked:after{transform:translateX(20px);background:var(--lime)}
.profile-section{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px;margin-top:10px}
.profile-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:#747a70}
.profile-section p{font-size:14px;color:#555b52;margin:8px 0 0}
.info-row{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-top:1px solid #ecece7;font-size:13px}
.info-row:first-of-type{border-top:0}
.info-row strong{text-align:right}

/* Settings */
.settings-wrap{padding-bottom:30px}
.settings-group{background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px;margin-bottom:10px}
.settings-group h3{font-size:12px;color:#7a8077;text-transform:uppercase;letter-spacing:.1em;padding:2px 2px 8px}
.settings-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;border:0;border-top:1px solid #ecece7;background:transparent;padding:14px 2px;text-align:left;font-weight:760}
.settings-row:first-of-type{border-top:0}
.muted{color:#81867d;font-size:12px;font-weight:650;max-width:220px;overflow:hidden;text-overflow:ellipsis}

/* Bottom nav */
.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + var(--safe-b));z-index:30;background:var(--ink);border-radius:999px;padding:5px;display:flex;gap:2px;box-shadow:0 14px 35px rgba(17,19,16,.25);width:max-content;max-width:calc(100% - 32px)}
.nav-btn{border:0;background:transparent;color:#b6bab1;border-radius:999px;padding:11px 14px;font-size:12px;font-weight:900;white-space:nowrap}
.nav-btn.active{background:var(--lime);color:var(--ink)}

/* Sheets */
.backdrop{position:fixed;inset:0;background:rgba(17,19,16,.42);backdrop-filter:blur(2px);z-index:50}
.sheet{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;max-height:90dvh;overflow:auto;background:var(--paper);border-radius:28px 28px 0 0;z-index:51;padding:8px 20px calc(22px + var(--safe-b));box-shadow:0 -20px 60px rgba(0,0,0,.17)}
.sheet-handle{width:42px;height:5px;background:#c7c9c1;border-radius:999px;margin:3px auto 17px}
.sheet h2{font-size:30px}
.sheet .sheet-photo{height:330px;border-radius:22px;overflow:hidden;background:#aab1a0;position:relative;margin:12px 0}
.sheet .sheet-photo img{width:100%;height:100%;object-fit:cover}
.sheet-actions{display:flex;gap:9px;margin-top:16px}.sheet-actions button{flex:1}

/* Match moment */
.match-moment{position:fixed;inset:0;z-index:70;background:var(--lime);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}
.match-moment h1{font-size:52px;margin:0 0 9px}
.match-moment p{max-width:320px}
.match-faces{display:flex;margin:24px 0}
.match-faces .mini-avatar{width:104px;height:104px;flex-basis:104px;border-radius:32px;border:5px solid var(--lime);margin:0 -8px;font-size:34px}
.match-actions{display:flex;gap:9px;width:100%;max-width:330px}.match-actions button{flex:1}

.toast{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%,-90px);z-index:100;background:var(--ink);color:#fff;padding:11px 15px;border-radius:999px;font-size:12px;font-weight:850;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:.25s;max-width:calc(100% - 36px);text-align:center}
.toast.show{transform:translate(-50%,0)}

.loading{display:grid;place-items:center;height:100%;color:#777c72;font-weight:800;font-size:13px}
.spinner{width:28px;height:28px;border:3px solid #d9dcd2;border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}

@media (min-width:700px){
  body{padding:22px 0}.app-shell{min-height:calc(100dvh - 44px);height:calc(100dvh - 44px);border-radius:28px}.screen,.main-app{min-height:100%}.view{min-height:calc(100% - 92px)}
  .bottom-nav{bottom:32px}.sheet{bottom:22px;border-radius:28px;max-height:calc(100dvh - 44px)}
}


/* RALLY mobile fit pass — targeted Discover fixes */
#discoverView .brand.small{
  font-size:23px;
  line-height:.92;
  font-weight:950;
  letter-spacing:-.075em;
}
#discoverView .deck{
  height:calc(100dvh - 305px);
  min-height:380px;
  max-height:525px;
}
#discoverView .player-card-photo{
  height:50%;
  min-height:190px;
}
#discoverView .card-body{
  height:50%;
  padding:11px 15px 12px;
}
#discoverView .match-line{margin-bottom:7px}
#discoverView .tag{padding:5px 8px}
#discoverView .player-bio{margin-top:8px;line-height:1.35}
#discoverView .swipe-hint{
  margin:7px 0 0;
  padding-bottom:0;
  min-height:16px;
  position:relative;
  z-index:31;
}
@media (max-width:420px){
  #discoverView .deck{
    height:calc(100dvh - 300px);
    min-height:370px;
    max-height:505px;
  }
  #discoverView .player-card-photo{
    height:49%;
    min-height:180px;
  }
  #discoverView .card-body{
    height:51%;
    padding:10px 14px 11px;
  }
  #discoverView .player-name{font-size:26px}
}



/* RALLY Discover polish v5 */
#discoverView .topbar{
  padding-top:21px;
  padding-bottom:11px;
}
#discoverView .brand.small{
  font-size:24px;
  line-height:.9;
  font-weight:950;
  letter-spacing:-.082em;
}
#discoverView .topbar h1{
  margin-top:7px;
  font-size:30px;
  letter-spacing:-.05em;
}
#discoverView .discover-toolbar{
  margin-top:0;
  margin-bottom:10px;
}
#discoverView .filter-pill{
  padding:9px 13px;
}
#discoverView .deck{
  height:calc(100dvh - 315px);
  min-height:360px;
  max-height:495px;
}
#discoverView .empty-state{
  padding:26px 28px;
}
#discoverView .empty-state h2{
  margin-top:0;
  font-size:28px;
  letter-spacing:-.045em;
}
#discoverView .empty-state p{
  margin:12px 0 18px;
  line-height:1.42;
}
#discoverView .discover-empty .primary-btn{
  min-height:48px;
  padding-inline:24px;
}
#discoverView .tennis-ball{
  position:relative;
  width:66px;
  height:66px;
  flex:0 0 66px;
  overflow:hidden;
  background:var(--lime);
  border:2px solid var(--ink);
  border-radius:50%;
  margin-bottom:20px;
}
#discoverView .tennis-ball::before,
#discoverView .tennis-ball::after{
  content:"";
  position:absolute;
  top:-7px;
  width:50px;
  height:76px;
  border:3px solid rgba(255,255,255,.96);
  border-top-color:transparent;
  border-bottom-color:transparent;
  border-radius:50%;
}
#discoverView .tennis-ball::before{left:-31px}
#discoverView .tennis-ball::after{right:-31px}
#discoverView .swipe-hint{
  margin-top:8px;
  color:#737970;
  font-size:11.5px;
  font-weight:820;
  letter-spacing:-.005em;
}
@media (max-width:420px){
  #discoverView .topbar{padding-top:19px;padding-bottom:10px}
  #discoverView .deck{
    height:calc(100dvh - 310px);
    min-height:350px;
    max-height:480px;
  }
  #discoverView .player-card-photo{min-height:172px}
  #discoverView .empty-state{padding:23px 22px}
  #discoverView .empty-state h2{font-size:27px}
}


/* RALLY Discover polish v6 — inline tennis ball + tighter populated card */
#discoverView .tennis-ball{
  width:68px;
  height:68px;
  flex:0 0 68px;
  margin-bottom:20px;
  color:var(--lime);
  background:transparent;
  border:0;
  overflow:visible;
}
#discoverView .tennis-ball svg{
  display:block;
  width:100%;
  height:100%;
}
#discoverView .tennis-ball::before,
#discoverView .tennis-ball::after{display:none!important;content:none!important}
#discoverView .deck{
  height:calc(100dvh - 340px);
  min-height:340px;
  max-height:455px;
}
#discoverView .player-card-photo{
  height:52%;
  min-height:165px;
}
#discoverView .card-body{
  height:48%;
  padding:10px 15px 11px;
}
#discoverView .player-bio{
  margin-top:7px;
  line-height:1.32;
}
@media (max-width:420px){
  #discoverView .deck{
    height:calc(100dvh - 335px);
    min-height:335px;
    max-height:445px;
  }
  #discoverView .player-card-photo{min-height:160px}
}


/* v8 — Hits visual polish only */
#hitsView .list-wrap{gap:10px}
#hitsView .hit-row{
  min-height:86px;
  padding:10px 14px;
  gap:11px;
  border-radius:22px;
  box-shadow:0 8px 24px rgba(17,19,16,.035);
}
#hitsView .mini-avatar{
  width:50px;
  height:50px;
  flex-basis:50px;
  border-radius:15px;
}
#hitsView .row-title{
  font-size:16px;
  line-height:1.15;
  letter-spacing:-.025em;
}
#hitsView .row-meta{
  margin-top:5px;
  font-size:13px;
  line-height:1.2;
  color:#72776f;
}
#hitsView .row-action{
  min-height:40px;
  padding:0 15px;
  font-size:12px;
  font-weight:900;
  flex:0 0 auto;
}
@media (max-width:380px){
  #hitsView .hit-row{padding:9px 11px;gap:9px}
  #hitsView .mini-avatar{width:46px;height:46px;flex-basis:46px}
  #hitsView .row-title{font-size:15px}
  #hitsView .row-meta{font-size:12px}
  #hitsView .row-action{min-height:38px;padding:0 12px}
}


/* v9 — Messages conversation polish only */
#messagesView .message-layout{gap:8px}
#messagesView .chat-header{
  padding:10px 12px;
  gap:9px;
}
#messagesView .chat-back{
  width:34px;
  height:34px;
}
#messagesView .chat-thread{
  padding:14px 12px 16px;
  gap:9px;
}
#messagesView .bubble{
  max-width:80%;
  padding:10px 13px;
}
#messagesView .chat-compose{
  padding:6px;
  box-shadow:0 7px 22px rgba(17,19,16,.035);
}
#messagesView .chat-compose input{
  height:45px;
}
#messagesView .send-btn{
  width:45px;
  height:45px;
  flex-basis:45px;
}
@media (max-height:760px){
  #messagesView .message-layout{height:calc(100dvh - 178px);min-height:460px}
  #messagesView .chat-thread{padding-top:12px}
}


/* v10 — Profile visual polish only */
#profileView .profile-photo{
  height:300px;
}
#profileView .profile-info{
  padding:15px 17px 16px;
}
#profileView .profile-name{
  font-size:29px;
}
#profileView .profile-sub{
  margin-top:4px;
}
#profileView .status-row{
  margin-top:12px;
  padding-top:12px;
}
#profileView .profile-section{
  padding:15px 16px;
}
#profileView .profile-section p{
  line-height:1.45;
}
#profileView .info-row{
  align-items:flex-start;
  gap:16px;
  padding:11px 0;
}
#profileView .info-row > span{
  flex:0 0 auto;
}
#profileView .info-row strong{
  max-width:64%;
  line-height:1.3;
  overflow-wrap:anywhere;
}
#profileView .profile-wrap{
  padding-bottom:112px;
}
@media (max-width:380px){
  #profileView .profile-photo{height:280px}
  #profileView .profile-info{padding:14px 15px 15px}
  #profileView .profile-section{padding:14px 15px}
  #profileView .info-row{gap:12px}
  #profileView .info-row strong{max-width:62%}
}


/* v11 — Settings toggle + temporary pass support UI */
.settings-toggle{
  position:relative;
  width:46px;
  height:28px;
  flex:0 0 46px;
  display:inline-block;
}
.settings-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.settings-toggle-ui{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#dfe1d9;
  transition:background .18s ease;
}
.settings-toggle-ui::after{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.16);
  transition:transform .18s ease, background .18s ease;
}
.settings-toggle input:checked + .settings-toggle-ui{
  background:#111310;
}
.settings-toggle input:checked + .settings-toggle-ui::after{
  transform:translateX(18px);
  background:var(--lime);
}


/* v12 — Discover brand hierarchy */
#discoverView .discover-brand{
  font-size:32px;
  line-height:.92;
  font-weight:950;
  letter-spacing:-.075em;
}
#discoverView .brand-period{
  color:var(--lime);
}
#discoverView .topbar h1{
  margin-top:8px;
  font-size:24px;
  line-height:1.05;
  letter-spacing:-.045em;
  font-weight:900;
}


/* v13 — controlled UTR range */
.field-label select{
  width:100%;
  border:1px solid var(--line);
  background:#fbfbf7;
  border-radius:14px;
  padding:13px 14px;
  outline:0;
  color:var(--ink);
  font:inherit;
  appearance:auto;
}
.field-label select:focus{
  border-color:#a1a69a;
}


/* v15 — automatic level matching */
.compact-level-card{
  margin-top:12px;
  padding:12px 14px;
  border-radius:16px;
  background:#f6f6f1;
  border:1px solid var(--line);
}
.compact-level-card .info-row{
  padding:0 0 7px;
  border:0;
}
.compact-level-card .profile-sub{
  margin:0;
  font-size:12px;
  line-height:1.4;
}


/* v16 — matched player profiles from Hits */
.hit-profile-row{
  cursor:pointer;
}
.hit-profile-row:focus-visible{
  outline:2px solid var(--lime);
  outline-offset:2px;
}


/* v17 — account recovery */
.auth-link-btn{
  display:block;
  margin:10px auto 0;
  padding:8px 10px;
  border:0;
  background:transparent;
  color:var(--ink);
  font:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
.auth-link-btn:hover,
.auth-link-btn:focus-visible{
  text-decoration:underline;
}

/* v25 — shared empty-state tennis ball */
.empty-tennis-ball{
  width:68px;
  height:68px;
  flex:0 0 68px;
  margin-bottom:20px;
  display:block;
}
.empty-tennis-ball svg{
  display:block;
  width:100%;
  height:100%;
}
