/* ============================================================
   FIXEO Targeted Reservation — Mobile Shell + Recap Polish V1
   Scope: body.fixeo-targeted-booking-open only
   ============================================================ */

body.fixeo-targeted-booking-open{
  --fxrt-bg:#08090e;
  --fxrt-panel:#111219;
  --fxrt-panel2:#171820;
  --fxrt-line:rgba(255,255,255,.085);
  --fxrt-muted:#858a96;
  --fxrt-pink:#ed3d91;
  --fxrt-violet:#8064ef;
  --fxrt-orange:#ff8a35;
}

/* Never let profile/navigation UI leak through the targeted flow. */
body.fixeo-targeted-booking-open .navbar,
body.fixeo-targeted-booking-open .fixeo-gh-mobile-bar,
body.fixeo-targeted-booking-open #ppui-sticky-cta,
body.fixeo-targeted-booking-open #fixeo-floating-reserve,
body.fixeo-targeted-booking-open .fxp4-mobile{
  display:none!important;
}

body.fixeo-targeted-booking-open #fixeo-reservation-backdrop{
  background:rgba(3,4,8,.94)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
}

body.fixeo-targeted-booking-open #fixeo-reservation-modal{
  z-index:12000!important;
}

body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-header{
  background:rgba(10,11,16,.94)!important;
  border-bottom:1px solid var(--fxrt-line)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
}

body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-header-title{
  color:#fff!important;
  letter-spacing:-.02em!important;
}

body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-header-sub{
  color:var(--fxrt-muted)!important;
}

body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-close{
  border:1px solid var(--fxrt-line)!important;
  background:rgba(255,255,255,.045)!important;
  color:#c9ccd4!important;
  box-shadow:none!important;
  z-index:140!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent!important;
}

body.fixeo-targeted-booking-open .fxresf-hav-fixeo-id{
  position:relative!important;
  width:58px!important;
  height:58px!important;
  flex:0 0 58px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:18px!important;
  background:linear-gradient(145deg,#c93a86,#664ac6 68%,#111219)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#fff!important;
  overflow:hidden!important;
  box-shadow:0 10px 28px rgba(0,0,0,.3)!important;
}
body.fixeo-targeted-booking-open .fxresf-hav-fixeo-id strong{
  font-size:1.2rem!important;
  font-weight:950!important;
  letter-spacing:-.05em!important;
}
body.fixeo-targeted-booking-open .fxresf-hav-fixeo-id span{
  position:absolute!important;
  right:6px!important;
  top:6px!important;
  width:13px!important;
  height:13px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:4px!important;
  background:linear-gradient(135deg,var(--fxrt-orange),var(--fxrt-pink),var(--fxrt-violet))!important;
  color:#fff!important;
  font-size:.28rem!important;
  font-weight:950!important;
}
body.fixeo-targeted-booking-open [data-res-targeted-recap] .fxrt-header-mark{
  background:linear-gradient(135deg,var(--fxrt-orange),var(--fxrt-pink) 52%,var(--fxrt-violet))!important;
  color:#fff!important;
  border-color:transparent!important;
  font-weight:950!important;
}

/* Signature CTA — same visual language as the public profile. */
body.fixeo-targeted-booking-open #res-step1-cta[data-res-targeted-cta="1"],
body.fixeo-targeted-booking-open [data-res-targeted-confirm]{
  position:relative!important;
  min-height:58px!important;
  border:1px solid transparent!important;
  border-radius:16px!important;
  padding:10px 52px 10px 54px!important;
  background:
    linear-gradient(135deg,#17181e,#0f1015) padding-box,
    linear-gradient(100deg,rgba(255,138,53,.7),rgba(237,61,145,.72) 50%,rgba(128,100,239,.7)) border-box!important;
  color:#fff!important;
  font-weight:900!important;
  letter-spacing:-.015em!important;
  box-shadow:0 14px 34px rgba(0,0,0,.28)!important;
}

body.fixeo-targeted-booking-open #res-step1-cta[data-res-targeted-cta="1"]::before,
body.fixeo-targeted-booking-open [data-res-targeted-confirm]::before{
  content:"F";
  position:absolute;
  left:11px;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:linear-gradient(135deg,var(--fxrt-orange),var(--fxrt-pink) 52%,var(--fxrt-violet));
  color:#fff;
  font-size:.72rem;
  font-weight:950;
}

body.fixeo-targeted-booking-open #res-step1-cta[data-res-targeted-cta="1"]::after,
body.fixeo-targeted-booking-open [data-res-targeted-confirm]::after{
  content:"→";
  position:absolute;
  right:13px;
  top:50%;
  transform:translateY(-50%);
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  color:#fff;
  font-size:.86rem;
}

/* Compact recap. */
.fxrt-recap-shell{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:0!important;
  margin:0 0 12px!important;
}

.fxrt-recap-artisan{
  display:flex;
  align-items:center;
  gap:11px;
  padding:13px;
  border:1px solid var(--fxrt-line);
  border-radius:15px;
  background:
    radial-gradient(circle at 100% 0,rgba(128,100,239,.09),transparent 11rem),
    rgba(255,255,255,.022);
}

.fxrt-recap-artisan-mark{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:linear-gradient(135deg,var(--fxrt-orange),var(--fxrt-pink) 52%,var(--fxrt-violet));
  color:#fff;
  font-size:.78rem;
  font-weight:950;
}

.fxrt-recap-artisan>div:last-child{
  min-width:0;
  display:flex;
  flex-direction:column;
}

.fxrt-recap-artisan small,
.fxrt-recap-item small,
.fxrt-truth-card small{
  color:#777c87;
  font-size:.49rem;
  font-weight:900;
  letter-spacing:.11em;
}

.fxrt-recap-artisan strong{
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#fff;
  font-size:.82rem;
  font-weight:900;
}

.fxrt-recap-artisan span{
  margin-top:1px;
  color:#9297a2;
  font-size:.58rem;
  font-weight:650;
}

.fxrt-recap-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.fxrt-recap-item{
  min-width:0;
  padding:12px;
  border:1px solid var(--fxrt-line);
  border-radius:14px;
  background:#101116;
}

.fxrt-recap-item--wide{grid-column:1/-1}

.fxrt-recap-item strong{
  display:block;
  margin-top:4px;
  color:#eceef2;
  font-size:.69rem;
  font-weight:720;
  line-height:1.42;
  overflow-wrap:anywhere;
}

.fxrt-truth-card{
  padding:13px 14px;
  border:1px solid rgba(237,61,145,.24);
  border-radius:15px;
  background:linear-gradient(135deg,rgba(237,61,145,.075),rgba(128,100,239,.045));
}

.fxrt-truth-card strong{
  display:block;
  margin-top:4px;
  color:#fff;
  font-size:.82rem;
  font-weight:900;
}

.fxrt-truth-card p{
  margin:4px 0 0;
  color:#8d929d;
  font-size:.58rem;
  line-height:1.5;
}

body.fixeo-targeted-booking-open .fxrt-actions{
  align-items:stretch!important;
}

body.fixeo-targeted-booking-open .fxrt-actions .fixeo-res-btn-secondary{
  min-height:54px!important;
  border-radius:14px!important;
  background:#111218!important;
  border:1px solid var(--fxrt-line)!important;
  color:#9aa0ac!important;
  box-shadow:none!important;
}

/* Mobile sheet master. */
@media(max-width:800px){
  body.fixeo-targeted-booking-open{
    overflow:hidden!important;
  }

  body.fixeo-targeted-booking-open #fixeo-reservation-modal{
    position:fixed!important;
    inset:0!important;
    display:flex!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    width:100%!important;
    height:100dvh!important;
    max-width:none!important;
    padding:0!important;
    margin:0!important;
    background:var(--fxrt-bg)!important;
    overflow:hidden!important;
  }

  body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-dialog{
    width:100%!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    background:
      radial-gradient(circle at 95% 0,rgba(128,100,239,.075),transparent 20rem),
      #0a0b10!important;
    box-shadow:none!important;
  }

  body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-header{
    position:sticky!important;
    top:0!important;
    z-index:40!important;
    flex:0 0 auto!important;
    min-height:calc(60px + env(safe-area-inset-top,0px))!important;
    padding:
      calc(11px + env(safe-area-inset-top,0px))
      50px
      11px
      13px!important;
  }

  body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-close{
    top:calc(12px + env(safe-area-inset-top,0px))!important;
    right:12px!important;
  }

  body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-steps{
    flex:0 0 auto!important;
    padding:10px 14px!important;
    background:#0d0e13!important;
    border-bottom:1px solid var(--fxrt-line)!important;
  }

  body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    padding:
      12px
      12px
      calc(28px + env(safe-area-inset-bottom,0px) + var(--fxrt-vv-bottom,0px))!important;
  }

  body.fixeo-targeted-booking-open #fixeo-reservation-modal .fixeo-res-footer{
    display:none!important;
  }

  body.fixeo-targeted-booking-open #res-step1-cta[data-res-targeted-cta="1"]{
    position:relative!important;
    bottom:auto!important;
    z-index:1!important;
    margin-top:16px!important;
  }

  body.fixeo-targeted-booking-open .fxrt-actions{
    position:relative!important;
    bottom:auto!important;
    z-index:1!important;
    display:grid!important;
    grid-template-columns:96px minmax(0,1fr)!important;
    gap:8px!important;
    padding:7px!important;
    margin:14px 0 0!important;
    border:1px solid var(--fxrt-line)!important;
    border-radius:18px!important;
    background:#0c0d12!important;
    box-shadow:none!important;
  }

  body.fixeo-targeted-booking-open .fxrt-actions [data-res-targeted-confirm]{
    min-height:54px!important;
  }

  body.fixeo-targeted-booking-open .fixeo-res-trust-row{
    margin-top:8px!important;
  }

  .fxrt-recap-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:360px){
  .fxrt-recap-grid{grid-template-columns:1fr}
  .fxrt-recap-item--wide{grid-column:auto}
}

@media(prefers-reduced-motion:reduce){
  body.fixeo-targeted-booking-open #fixeo-reservation-modal *,
  body.fixeo-targeted-booking-open #fixeo-reservation-modal *::before,
  body.fixeo-targeted-booking-open #fixeo-reservation-modal *::after{
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }
}


/* FINAL OPTICAL — targeted recap identity, when rhythm and graphite CTA */
.fxrt-recap-artisan-id{
  position:relative;
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#c93a86,#664ac6 68%,#111219);
  border:1px solid rgba(255,255,255,.12);
  overflow:hidden;
  color:#fff;
}
.fxrt-recap-artisan-id>strong{
  font-size:1.05rem;
  font-weight:950;
  letter-spacing:-.05em;
}
.fxrt-recap-artisan-id>span{
  position:absolute;
  top:5px;
  right:5px;
  width:12px;
  height:12px;
  display:grid;
  place-items:center;
  border-radius:4px;
  background:linear-gradient(135deg,var(--fxrt-orange),var(--fxrt-pink),var(--fxrt-violet));
  color:#fff;
  font-size:.26rem;
  font-weight:950;
}
.fxrt-recap-when strong{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.fxrt-when-date{
  display:block;
  color:#f2f3f6;
}
.fxrt-when-slot{
  display:block;
  color:#a5aab5;
  font-size:.62rem;
  font-weight:700;
}
body.fixeo-targeted-booking-open #fixeo-reservation-modal .fxrt-actions .fixeo-res-btn-primary[data-res-targeted-confirm]{
  border:1px solid transparent!important;
  background:
    linear-gradient(135deg,#17181e,#0f1015) padding-box,
    linear-gradient(100deg,rgba(255,138,53,.72),rgba(237,61,145,.74) 50%,rgba(128,100,239,.72)) border-box!important;
  color:#fff!important;
  box-shadow:0 14px 34px rgba(0,0,0,.26)!important;
}
body.fixeo-targeted-booking-open #fixeo-reservation-modal .fxrt-actions .fixeo-res-btn-primary[data-res-targeted-confirm]:hover{
  background:
    linear-gradient(135deg,#1b1c23,#121319) padding-box,
    linear-gradient(100deg,rgba(255,138,53,.78),rgba(237,61,145,.8) 50%,rgba(128,100,239,.78)) border-box!important;
}
