:root{
  --rose:#e67682;
  --rose-deep:#d65a68;
  --ink:#292728;
  --muted:#6c6c6c;
  --cream:#f6f0ed;
  --offwhite:#fafafa;
  --line:#ece4df;
  --sage:#3f7a55;
  --gold:#b9772a;
  --font-display:'Marcellus', serif;
  --font-body:'Jost', sans-serif;
  --bs-body-font-family:var(--font-body);
  --bs-body-color:var(--ink);
  --bs-primary:#e67682;
  --bs-primary-rgb:230,118,130;
}

body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  letter-spacing:0;
  padding-bottom:92px;
}

h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:0;}
a{color:var(--rose);}
.color-primary{color:var(--rose);}
.text-warning{color:var(--gold)!important;}
.text-muted{color:var(--muted)!important;}

.bi{
  display:inline-block;
  font-family:"Font Awesome 6 Pro";
  font-style:normal;
  font-weight:900;
  line-height:1;
  text-rendering:auto;
  -webkit-font-smoothing:antialiased;
}
.bi::before{display:inline-block;}
.bi-house::before{content:"\f015";}
.bi-plus-circle::before{content:"\f055";}
.bi-calendar3::before{content:"\f073";}
.bi-calendar2-week::before{content:"\f784";}
.bi-chat-dots::before{content:"\f4ad";}
.bi-person::before{content:"\f007";}
.bi-bell::before{content:"\f0f3";}
.bi-credit-card::before{content:"\f09d";}
.bi-gift::before{content:"\f06b";}
.bi-x-circle::before{content:"\f057";}
.bi-plus-lg::before{content:"\2b";}
.bi-star::before,.bi-star-fill::before{content:"\f005";}
.bi-stars::before{content:"\f762";}
.bi-arrow-left::before{content:"\f060";}
.bi-arrow-repeat::before{content:"\f2f9";}
.bi-building::before{content:"\f1ad";}
.bi-calendar-heart::before{content:"\e0d3";}
.bi-calendar-x::before{content:"\f273";}
.bi-chat-left-text::before{content:"\f7cd";}
.bi-check-circle::before{content:"\f058";}
.bi-check-lg::before{content:"\f00c";}
.bi-chevron-left::before{content:"\f053";}
.bi-chevron-right::before{content:"\f054";}
.bi-download::before{content:"\f019";}
.bi-envelope::before{content:"\f0e0";}
.bi-geo-alt::before{content:"\f3c5";}
.bi-inbox::before{content:"\f01c";}
.bi-image::before{content:"\f03e";}
.bi-moon-stars::before{content:"\f755";}
.bi-percent::before{content:"\25";}
.bi-send::before{content:"\f1d8";}
.bi-sun::before{content:"\f185";}
.bi-sunrise::before{content:"\f766";}
.bi-telephone::before{content:"\f095";}
.bi-telegram,.bi-whatsapp{font-family:"Font Awesome 6 Brands";}
.bi-telegram::before{content:"\f2c6";}
.bi-whatsapp::before{content:"\f232";}
.bi-x-lg::before{content:"\f00d";}
.bi-search::before{content:"\f002";}
.bi-info-circle::before{content:"\f05a";}
.bi-clock::before{content:"\f017";}
.bi-trash::before{content:"\f1f8";}
.bi-three-dots-vertical::before{content:"\f142";}
.bi-list-check::before{content:"\f0ae";}
.bi-person-check::before{content:"\f4fc";}
.bi-scissors::before{content:"\f0c4";}

.bg-decor{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(135deg, rgba(230,118,130,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.42), transparent 48%);
}

.app-bar{background:var(--offwhite);border-bottom:1px solid var(--line);}
.brand,.side-brand{
  font-family:var(--font-display);
  letter-spacing:0;
  color:var(--ink);
  text-decoration:none;
}
.brand{font-size:1.5rem;}
.side-brand{font-size:1.6rem;padding:4px 10px 18px;}
.brand .dot,.side-brand .dot{color:var(--rose);}

.avatar{
  width:40px;
  height:40px;
  border-radius:50%;
  background:var(--rose);
  color:var(--offwhite);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-size:1rem;
  text-decoration:none;
  flex:0 0 auto;
  box-shadow:0 6px 18px rgba(230,118,130,.35);
}
.top-actions{display:flex;align-items:center;gap:10px;}
.notification-btn{
  width:40px;
  height:40px;
  border-radius:50%;
  background:var(--offwhite);
  color:var(--rose);
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  flex:0 0 auto;
  position:relative;
}
.notification-btn:hover{background:var(--cream);color:var(--rose-deep);}
.notification-btn::after{
  content:"";
  position:absolute;
  top:8px;
  right:9px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--rose);
  box-shadow:0 0 0 2px var(--offwhite);
}

.layout{padding:16px;}
.lk-container{max-width:900px;}
.content{max-width:900px;margin-inline:auto;}
.content > header{min-width:0;}
.content > header > div{min-width:0;}
.content > header .status{flex:0 0 auto;}
.sidebar{display:none;}

@media (min-width:992px){
  body{padding-bottom:0;}
  .layout{
    display:flex;
    gap:32px;
    align-items:flex-start;
    max-width:1240px;
    margin:0 auto;
    padding:36px 24px;
  }
  .sidebar{
    display:flex;
    flex-direction:column;
    position:sticky;
    top:36px;
    width:256px;
    flex:0 0 256px;
    background:var(--offwhite);
    border:1px solid var(--line);
    border-radius:26px;
    box-shadow:0 14px 40px rgba(41,39,40,.07);
    padding:24px 18px;
  }
  .content{max-width:900px;margin:0;flex:1 1 auto;min-width:0;}
}

.side-nav{display:flex;flex-direction:column;gap:6px;}
.side-link{
  display:flex;
  align-items:center;
  gap:12px;
  padding:.72rem .9rem;
  border-radius:14px;
  color:var(--muted);
  text-decoration:none;
  font-weight:500;
  transition:background .18s ease,color .18s ease;
}
.side-link i{font-size:1.2rem;}
.side-link:hover{background:var(--cream);color:var(--ink);}
.side-link.active{background:var(--rose);color:var(--offwhite);box-shadow:0 8px 20px rgba(230,118,130,.30);}
.side-nav-extra{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.side-foot{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;}
.side-foot .name{font-weight:600;line-height:1.1;}
.side-foot .role{font-size:.78rem;color:var(--muted);}

.page-title{font-size:1.6rem;line-height:1.1;margin:0;}
.section-title{font-size:1.15rem;margin:0;}
@media (min-width:992px){.page-title{font-size:2rem;}}

.btn-rose{
  background:var(--rose);
  color:var(--offwhite);
  border:none;
  border-radius:999px;
  font-weight:500;
  box-shadow:0 8px 20px rgba(230,118,130,.30);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.btn-rose:hover,.btn-rose:focus{
  background:var(--rose-deep);
  color:var(--offwhite);
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(214,90,104,.40);
}
.btn-ghost{
  background:var(--offwhite);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:999px;
  font-weight:500;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.btn-ghost:hover,.btn-ghost:focus{background:var(--cream);border-color:var(--rose);color:var(--rose-deep);}
.btn-icon{
  width:42px;
  height:42px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  flex:0 0 auto;
}
.btn-primary{
  --bs-btn-bg:var(--rose);
  --bs-btn-border-color:var(--rose);
  --bs-btn-hover-bg:var(--rose-deep);
  --bs-btn-hover-border-color:var(--rose-deep);
  --bs-btn-active-bg:var(--rose);
  --bs-btn-active-border-color:var(--rose);
  --bs-btn-disabled-bg:var(--rose);
  --bs-btn-disabled-border-color:var(--rose);
  background:var(--rose);
  border-color:var(--rose);
  color:var(--offwhite);
}
.btn-primary:hover,.btn-primary:focus{
  background:var(--rose-deep);
  border-color:var(--rose-deep);
  color:var(--offwhite);
}
.btn-primary:active,
.btn-primary.active,
.btn-primary.show,
.btn-check:checked + .btn-primary{
  background:var(--rose)!important;
  border-color:var(--rose)!important;
  color:var(--offwhite)!important;
}
.btn-outline-primary{
  --bs-btn-color:var(--rose-deep);
  --bs-btn-border-color:rgba(230,118,130,.42);
  --bs-btn-hover-color:var(--rose-deep);
  --bs-btn-hover-bg:rgba(230,118,130,.09);
  --bs-btn-hover-border-color:var(--rose);
  --bs-btn-active-color:var(--offwhite);
  --bs-btn-active-bg:var(--rose);
  --bs-btn-active-border-color:var(--rose);
  --bs-btn-disabled-color:#a89288;
  --bs-btn-disabled-border-color:#e1d8d2;
  background:var(--offwhite);
  border-color:rgba(230,118,130,.42);
  color:var(--rose-deep);
}
.btn-outline-primary:hover,.btn-outline-primary:focus{
  background:rgba(230,118,130,.09);
  border-color:var(--rose);
  color:var(--rose-deep);
}
.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-outline-primary.show,
.btn-check:checked + .btn-outline-primary{
  background:var(--rose)!important;
  border-color:var(--rose)!important;
  color:var(--offwhite)!important;
}

.panel-card,.item-card,.metric-card,.message-card{
  background:var(--offwhite);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 10px 30px rgba(41,39,40,.06);
}
.item-card{
  display:block;
  color:var(--ink);
  text-decoration:none;
  overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease;
}
.item-card:hover{color:var(--ink);transform:translateY(-2px);box-shadow:0 16px 38px rgba(41,39,40,.10);}
.metric-card{height:100%;}
.soft-box{background:var(--cream);border:1px solid var(--line);border-radius:16px;}
.icon-soft{
  width:46px;
  height:46px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(230,118,130,.12);
  color:var(--rose);
  flex:0 0 auto;
  font-size:1.15rem;
}
.icon-soft.sage{background:rgba(95,158,120,.16);color:var(--sage);}
.icon-soft.gold{background:rgba(230,160,80,.16);color:var(--gold);}

.home-hero{
  border-radius:18px;
}
.home-hero-title{
  font-size:1.32rem;
  margin:.2rem 0 .15rem;
}
.home-hero-time{
  color:var(--ink);
  font-weight:600;
}
.home-master{
  display:flex;
  align-items:center;
  gap:12px;
}
.home-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.home-summary .col-4{
  min-width:0;
}
.summary-card{
  min-height:86px;
  padding:14px 10px;
  border-radius:16px;
  background:var(--offwhite);
  border:1px solid var(--line);
  color:var(--ink);
  text-decoration:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 22px rgba(41,39,40,.05);
}
.summary-card:hover{
  color:var(--ink);
  border-color:rgba(230,118,130,.48);
}
.summary-value{
  color:var(--rose);
  font-family:var(--font-display);
  font-size:1.45rem;
  line-height:1;
}
.summary-label{
  color:var(--muted);
  font-size:.78rem;
  margin-top:6px;
  text-align:center;
}
.home-action-list{
  display:grid;
  gap:10px;
}
.home-action,.history-row{
  background:var(--offwhite);
  border:1px solid var(--line);
  border-radius:18px;
  color:var(--ink);
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px;
  box-shadow:0 8px 22px rgba(41,39,40,.05);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.home-action{
  justify-content:flex-start;
}
.home-action:hover,.history-row:hover{
  color:var(--ink);
  border-color:rgba(230,118,130,.48);
  box-shadow:0 12px 28px rgba(41,39,40,.08);
  transform:translateY(-1px);
}

.auth-page{
  min-height:100vh;
  padding-bottom:0;
  background:
    linear-gradient(135deg, rgba(230,118,130,.08), transparent 36%),
    linear-gradient(180deg, var(--cream), #fbf8f6);
}
.auth-shell{
  min-height:100vh;
  width:min(1180px, calc(100% - 48px));
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(340px,.9fr) minmax(420px,520px);
  align-items:center;
  gap:42px;
  padding:42px 0;
}
.auth-shell-compact{
  grid-template-columns:minmax(320px,.85fr) minmax(380px,480px);
}
.auth-visual{
  min-height:660px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:28px;
}
.auth-visual .side-brand{
  padding:0;
}
.auth-visual-copy{
  max-width:470px;
}
.auth-title{
  font-size:2.55rem;
  line-height:1.04;
  margin:.5rem 0 0;
}
.auth-image{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:22px;
  border:1px solid var(--line);
  box-shadow:0 18px 42px rgba(41,39,40,.10);
}
.auth-card{
  width:100%;
  background:var(--offwhite);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 18px 46px rgba(41,39,40,.10);
  padding:34px;
  position:relative;
}
.auth-exit{
  position:absolute;
  top:24px;
  right:24px;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--offwhite);
  border:1px solid var(--line);
  color:var(--rose);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(41,39,40,.06);
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.auth-exit:hover,
.auth-exit:focus{
  background:var(--cream);
  border-color:var(--rose);
  color:var(--rose-deep);
  transform:translateY(-1px);
}
.auth-card .brand{
  display:inline-block;
  margin-bottom:28px;
  padding-right:54px;
}
.auth-card-head{
  margin-bottom:26px;
}
.auth-card-head h2{
  font-size:1.85rem;
  margin:0 0 8px;
}
.auth-card-head p{
  color:var(--muted);
  margin:0;
}
.auth-form{
  display:grid;
  gap:16px;
}
.auth-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.auth-field{
  display:grid;
  gap:8px;
  margin:0;
}
.auth-field span{
  color:var(--muted);
  font-size:.86rem;
  font-weight:500;
}
.auth-field .form-control{
  min-height:54px;
  background:#fff;
  padding-inline:16px;
}
.auth-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:2px;
  color:var(--muted);
  font-size:.9rem;
}
.auth-row a,
.auth-card-foot a{
  color:var(--rose-deep);
  text-decoration:none;
  font-weight:600;
}
.auth-row a:hover,
.auth-card-foot a:hover{
  color:var(--rose);
}
.auth-check{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
}
.auth-submit{
  min-height:56px;
  margin-top:8px;
}
.auth-card-foot{
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid var(--line);
  color:var(--muted);
  text-align:center;
}

@media (max-width:991.98px){
  .auth-shell,
  .auth-shell-compact{
    width:min(640px, calc(100% - 32px));
    grid-template-columns:1fr;
    gap:22px;
    padding:24px 0;
  }
  .auth-card{
    order:1;
  }
  .auth-visual{
    order:2;
    min-height:auto;
    gap:18px;
  }
  .auth-title{
    font-size:2rem;
  }
  .auth-image{
    aspect-ratio:16/9;
  }
}

.tabbar{
  background:var(--offwhite);
  border:1px solid var(--line);
  border-radius:999px;
  box-shadow:0 6px 18px rgba(41,39,40,.05);
}
.tabbar .nav-link{
  color:var(--muted);
  border-radius:999px;
  font-weight:500;
  padding:.5rem .25rem;
  transition:color .18s ease,background .18s ease;
}
.tabbar .nav-link:hover{color:var(--ink);}
.tabbar .nav-link.active{background:var(--rose);color:var(--offwhite);box-shadow:0 6px 16px rgba(230,118,130,.32);}

.booking-card{
  background:var(--offwhite);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 10px 30px rgba(41,39,40,.06);
  position:relative;
  overflow:hidden;
  height:100%;
  transition:transform .2s ease,box-shadow .2s ease;
}
.booking-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--rose);
}
.booking-card.is-muted::before{background:var(--line);}
.booking-card.is-cancelled{opacity:.88;}
.booking-card.is-cancelled::before{background:#c9b7b0;}
.booking-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(41,39,40,.10);}
.booking-date{font-family:var(--font-display);font-size:1.25rem;color:var(--ink);line-height:1.1;}
.booking-service,.booking-meta{color:var(--muted);}
.booking-meta .price{color:var(--ink);font-weight:600;}
.booking-card .d-flex.gap-2.mt-auto{flex-wrap:wrap;}
.booking-card .d-flex.gap-2.mt-auto .btn{flex:1 1 auto;white-space:nowrap;}
.booking-card .d-flex.gap-2.mt-auto .flex-fill{flex-basis:100%;}

@media (min-width:576px){
  .booking-card .d-flex.gap-2.mt-auto{flex-wrap:nowrap;}
  .booking-card .d-flex.gap-2.mt-auto .flex-fill{flex-basis:auto;}
}

.status{
  font-family:var(--font-body);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:0;
  text-transform:uppercase;
  padding:.3rem .68rem;
  border-radius:999px;
  white-space:nowrap;
}
.status-ok{background:rgba(95,158,120,.14);color:var(--sage);}
.status-wait{background:rgba(230,160,80,.16);color:var(--gold);}
.status-new{background:rgba(230,118,130,.14);color:var(--rose-deep);}
.status-done{background:rgba(108,108,108,.14);color:var(--muted);}
.status-cancel{background:rgba(108,108,108,.16);color:#7c6f6a;}

.cancel-note{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(108,108,108,.08);
  color:var(--muted);
  font-size:.92rem;
  line-height:1.35;
}
.cancel-note i{
  color:#9f8b83;
  margin-top:2px;
}

.form-control,.form-select{
  border:1.5px solid var(--line);
  border-radius:14px;
  background:var(--offwhite);
}
.form-label{
  color:var(--muted);
  font-size:.86rem;
  font-weight:500;
  margin-bottom:.45rem;
}
.form-control:focus,.form-select:focus{
  border-color:var(--rose);
  box-shadow:0 0 0 .2rem rgba(230,118,130,.18);
}
.form-check-input{
  width:1.2rem;
  height:1.2rem;
  border-color:#d9cbc3;
}
.form-check-input:checked{background-color:var(--rose);border-color:var(--rose);}
.input-group .form-control{min-width:0;}
.input-group .btn{border-radius:0 14px 14px 0;}
.input-group .form-control:first-child{border-radius:14px 0 0 14px;}

.progress{
  height:10px;
  overflow:hidden;
  background:var(--offwhite);
  border:1px solid var(--line);
  border-radius:999px;
  box-shadow:inset 0 1px 2px rgba(41,39,40,.04);
}
.progress-bar{
  background:linear-gradient(90deg,var(--rose),var(--rose-deep));
  border-radius:999px;
  transition:width .24s ease;
}
.step-title{
  font-size:1.12rem;
  margin:0;
}
.choice{
  width:100%;
  border-width:1.5px;
  border-radius:18px;
  color:var(--ink);
  box-shadow:0 8px 22px rgba(41,39,40,.04);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;
}
.choice:hover:not(:disabled),.choice:focus:not(:disabled){
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(41,39,40,.08);
}
.choice.btn-primary{
  background:var(--rose);
  border-color:var(--rose);
  color:var(--offwhite);
  box-shadow:0 12px 28px rgba(230,118,130,.28);
}
.choice.btn-primary .text-muted{color:rgba(255,255,255,.78)!important;}
.choice.btn-primary .m-ava{background:rgba(255,255,255,.18);color:var(--offwhite);}
.choice:disabled,.choice.is-busy{
  opacity:1;
  color:#9a918d;
  background:#f2ece8;
  border-color:#e1d8d2;
  box-shadow:none;
  cursor:not-allowed;
}
.busy-note,.day-note{
  display:block;
  margin-top:.18rem;
  color:var(--rose-deep);
  font-size:.72rem;
  font-weight:600;
  line-height:1;
}
.m-ava{
  width:46px;
  height:46px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:rgba(230,118,130,.14);
  color:var(--rose-deep);
  font-family:var(--font-display);
  font-size:1rem;
}
.m-ava.rose{background:rgba(230,118,130,.16);color:var(--rose-deep);}
.m-ava.sage{background:rgba(95,158,120,.16);color:var(--sage);}
.m-ava.grey{background:rgba(108,108,108,.13);color:var(--muted);}

.cal-title{
  font-family:var(--font-display);
  font-size:1.15rem;
  color:var(--ink);
}
.cal-nav{
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--offwhite);
  color:var(--rose);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.cal-nav:hover:not(:disabled){background:var(--cream);border-color:var(--rose);color:var(--rose-deep);}
.cal-nav:disabled{opacity:.45;cursor:not-allowed;}
.cal-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
}
.cal-week span{
  color:var(--muted);
  font-size:.76rem;
  font-weight:600;
  text-align:center;
}
.cal-day{
  min-height:52px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  color:var(--ink);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  font-weight:600;
  line-height:1.05;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,color .16s ease;
}
.cal-day.empty{
  border:0;
  background:transparent;
  box-shadow:none;
}
.cal-day:hover:not(:disabled):not(.empty){
  transform:translateY(-1px);
  border-color:var(--rose);
  box-shadow:0 8px 18px rgba(41,39,40,.08);
}
.cal-day.today{border-color:rgba(230,118,130,.55);color:var(--rose-deep);}
.cal-day.is-selected{
  background:var(--rose);
  border-color:var(--rose);
  color:var(--offwhite);
  box-shadow:0 10px 24px rgba(230,118,130,.30);
}
.cal-day.muted,.cal-day:disabled{
  color:#b8aca5;
  background:#f4eeeb;
  cursor:not-allowed;
}
.cal-day.is-busy{
  color:#a89288;
  background:#f1e9e5;
}
.cal-day.is-busy .day-note{color:#a46a60;}

.slot-group{
  margin-bottom:18px;
}
.slot-label{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-weight:600;
  margin-bottom:10px;
}
.slot-label i{color:var(--rose);}
.slots{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.timechip{
  min-height:48px;
  border:1.5px solid rgba(230,118,130,.42);
  border-radius:999px;
  background:var(--offwhite);
  color:var(--rose-deep);
  font-weight:600;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,color .16s ease;
}
.timechip:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:var(--rose);
  box-shadow:0 8px 18px rgba(41,39,40,.08);
}
.timechip.btn-primary{
  background:var(--rose);
  border-color:var(--rose);
  color:var(--offwhite);
}
.timechip:disabled,.timechip.is-busy{
  background:#f1e9e5;
  border-color:#e1d8d2;
  color:#a89288;
  cursor:not-allowed;
}

.empty-card{
  background:var(--offwhite);
  border:1px dashed #dacdc6;
  border-radius:22px;
}
.empty-icon{
  width:58px;
  height:58px;
  margin-inline:auto;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(230,118,130,.12);
  color:var(--rose);
  font-size:1.4rem;
}

.detail-hero{
  position:relative;
  overflow:hidden;
}
.detail-hero::after{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--rose);
}
.detail-hero > *{position:relative;z-index:1;}
.detail-list{
  display:grid;
  gap:10px;
}
.detail-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.detail-row:last-child{border-bottom:0;}
.detail-row span:first-child{color:var(--muted);}
.detail-row span:last-child{
  color:var(--ink);
  font-weight:600;
  text-align:right;
}
.timeline{
  position:relative;
  display:grid;
  gap:14px;
}
.timeline-item{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:12px;
  align-items:start;
}
.timeline-dot{
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(230,118,130,.12);
  color:var(--rose);
  display:flex;
  align-items:center;
  justify-content:center;
}

.bottom-nav{background:var(--offwhite);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(41,39,40,.06);}
.bottom-nav .nav{flex-wrap:nowrap;}
.bottom-nav .nav-link{flex:1 1 0;min-width:0;color:var(--muted);transition:color .18s ease;padding-inline:2px;}
.bottom-nav .nav-link i{font-size:1.15rem;}
.bottom-nav .nav-link small{font-size:.66rem;line-height:1.1;letter-spacing:0;display:block;}
.bottom-nav .nav-link:hover{color:var(--rose);}
.bottom-nav .nav-link.active{color:var(--rose);font-weight:500;}

.chat-page{
  height:100dvh;
  min-height:100dvh;
  overflow:hidden;
  padding-bottom:0;
}
.chat-page .layout{
  height:calc(100dvh - 73px - 61px);
  padding:10px 12px;
}
.chat-page .content{
  height:100%;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.chat-page .chat-header{
  flex:0 0 auto;
  margin-bottom:10px!important;
}
.chat-thread{
  min-height:0;
  flex:1 1 auto;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-right:2px;
}
.chat-page .chat-thread{margin-bottom:10px!important;}
.chat-page .chat-quick{
  flex:0 0 auto;
  margin-bottom:10px!important;
}
.chat-page .chat-input{
  flex:0 0 auto;
  padding:10px!important;
}
.bubble{
  max-width:min(82%, 430px);
  border-radius:20px;
  padding:.72rem .9rem;
  box-shadow:0 8px 22px rgba(41,39,40,.06);
}
.bubble-in{background:var(--offwhite);border:1px solid var(--line);}
.bubble-out{background:var(--rose);color:var(--offwhite);}
.bubble-image{
  max-width:min(78%, 360px);
  padding:8px;
  background:var(--offwhite);
  border:1px solid var(--line);
}
.bubble-image .small{
  padding-inline:6px;
}
.chat-image{
  display:block;
  width:100%;
  max-height:260px;
  object-fit:cover;
  border-radius:16px;
  cursor:pointer;
}
.quick-chip{
  border:1px solid var(--line);
  background:var(--offwhite);
  color:var(--ink);
  border-radius:999px;
  white-space:nowrap;
}
.quick-chip:hover{border-color:var(--rose);color:var(--rose-deep);background:#fff;}
.chat-composer{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 64px;
  align-items:stretch;
  gap:0;
}
.chat-photo-btn{
  min-height:64px;
  border:1.5px solid var(--line);
  border-right:0;
  border-radius:999px 0 0 999px;
  background:#fff;
  color:var(--rose);
  display:flex;
  align-items:center;
  justify-content:center;
}
.chat-photo-btn:hover,
.chat-photo-btn:focus{
  background:var(--cream);
  color:var(--rose-deep);
  border-color:var(--line);
}
.chat-composer .form-control{
  min-height:64px;
  border-radius:0;
  border-right:0;
  border-left:0;
  background:#fff;
}
.chat-composer .send-btn{
  min-height:64px;
  border-radius:0 999px 999px 0;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:none;
}
.chat-composer .send-btn:hover,.chat-composer .send-btn:focus{transform:none;}
.image-modal .modal-content{
  position:relative;
  overflow:hidden;
  border:0;
  border-radius:22px;
  background:transparent;
  box-shadow:none;
}
.image-preview{
  display:block;
  width:100%;
  max-height:86vh;
  object-fit:contain;
  border-radius:22px;
  background:#111;
}
.image-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  width:42px;
  height:42px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}

/* prostolk:salone-client-portal-responsive-v2 */
@media (max-width:767.98px){
  .auth-page .auth-visual{display:none;}
}

@media (max-width:575.98px){
  .content > header{flex-wrap:wrap;}
  .home-actions{grid-template-columns:1fr;}
  .home-hero-title{font-size:1.22rem;}
  .summary-card{min-height:78px;}
  .summary-value{font-size:1.28rem;}
  .auth-shell,
  .auth-shell-compact{
    width:min(100% - 24px, 520px);
    padding:14px 0 20px;
  }
  .auth-card{
    padding:24px 18px;
    border-radius:18px;
  }
  .auth-exit{
    top:18px;
    right:18px;
    width:38px;
    height:38px;
  }
  .auth-card .brand{
    margin-bottom:22px;
    padding-right:48px;
  }
  .auth-card-head{
    margin-bottom:22px;
  }
  .auth-card-head h2{
    font-size:1.55rem;
  }
  .auth-grid{
    grid-template-columns:1fr;
  }
  .auth-row{
    align-items:flex-start;
    flex-direction:column;
  }
  .auth-visual{
    padding:0 4px;
  }
  .auth-title{
    font-size:1.55rem;
  }
  .auth-image{
    border-radius:18px;
  }
  .input-group{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .input-group .form-control,
  .input-group .form-control:first-child,
  .input-group .btn{
    width:100%;
    border-radius:14px!important;
  }
  .slots{grid-template-columns:repeat(2,minmax(0,1fr));}
  .cal-grid{gap:5px;}
  .cal-day{min-height:46px;border-radius:14px;font-size:.9rem;}
  .detail-row{
    display:grid;
    gap:4px;
  }
  .detail-row span:last-child{text-align:left;}
  .chat-page .app-bar .container{padding-top:10px!important;padding-bottom:10px!important;}
  .chat-page .layout{height:calc(100dvh - 61px - 61px);}
  .chat-page .brand{font-size:1.35rem;}
  .chat-page .chat-header{padding:12px!important;}
  .chat-page .icon-soft{width:40px;height:40px;}
  .chat-page .quick-chip{padding:.48rem .75rem!important;font-size:.88rem;}
  .chat-page .chat-composer{grid-template-columns:48px minmax(0,1fr) 56px;}
  .chat-page .chat-photo-btn{min-height:56px;}
  .chat-page .chat-composer .form-control,
  .chat-page .chat-composer .send-btn{min-height:56px;}
  .chat-page .bubble{max-width:88%;padding:.62rem .78rem;}
  .chat-page .bubble-image{max-width:88%;padding:7px;}
  .chat-page .chat-image{max-height:210px;border-radius:14px;}
}

@media (min-width:992px){
  .chat-page .layout{
    height:100dvh;
    padding:36px 24px;
  }
  .chat-page .content{height:calc(100dvh - 72px);}
}

.star-rating{
  display:inline-flex;
  flex-direction:row-reverse;
  justify-content:flex-end;
  gap:8px;
}
.star-rating .btn-check + .star-label{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1.5px solid var(--line);
  background:var(--offwhite);
  color:#d8c7bd;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:1.35rem;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .15s ease;
}
.star-rating .btn-check:checked + .star-label,
.star-rating .btn-check:checked + .star-label ~ .star-label,
.star-rating .star-label:hover,
.star-rating .star-label:hover ~ .star-label{
  background:rgba(230,160,80,.14);
  border-color:var(--gold);
  color:var(--gold);
}
.star-rating .star-label:hover{transform:translateY(-1px);}

.reveal{opacity:0;transform:translateY(14px);animation:fadeUp .5s ease forwards;}
.reveal:nth-child(2){animation-delay:.08s;}
.reveal:nth-child(3){animation-delay:.16s;}
.reveal:nth-child(4){animation-delay:.24s;}
@keyframes fadeUp{to{opacity:1;transform:none;}}

@media (prefers-reduced-motion:reduce){
  .reveal{animation:none;opacity:1;transform:none;}
  .btn-rose,.item-card{transition:none;}
}

.tabbar .nav-link,
.tabbar .nav-link:hover,
.tabbar .nav-link:focus,
.tabbar .nav-link:focus-visible,
.tabbar .nav-link:active{
  border:0!important;
  outline:0!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
.tabbar .nav-link.active,
.tabbar .nav-link.active:hover,
.tabbar .nav-link.active:focus,
.tabbar .nav-link.active:focus-visible{
  background:var(--rose)!important;
  color:var(--offwhite)!important;
  box-shadow:0 6px 16px rgba(230,118,130,.32)!important;
}

.choice.btn-primary,
.choice.btn-primary:hover,
.choice.btn-primary:focus,
.choice.btn-primary:focus-visible,
.choice.btn-primary:active,
.choice.btn-primary.text-white,
.choice.btn-outline-primary:active,
.choice.btn-outline-primary.active,
.choice.btn-outline-primary.show,
.choice.btn-outline-primary:focus:active,
.timechip.btn-primary,
.timechip.btn-primary:hover,
.timechip.btn-primary:focus,
.timechip.btn-primary:focus-visible,
.timechip.btn-primary:active,
.timechip.btn-outline-primary:active,
.timechip.btn-outline-primary.active,
.timechip.btn-outline-primary.show,
.timechip.btn-outline-primary:focus:active{
  background:var(--rose)!important;
  border-color:var(--rose)!important;
  color:var(--offwhite)!important;
}
.choice.btn-primary:focus,
.choice.btn-primary:focus-visible,
.timechip.btn-primary:focus,
.timechip.btn-primary:focus-visible{
  box-shadow:0 0 0 .2rem rgba(230,118,130,.22), 0 12px 28px rgba(230,118,130,.28)!important;
}

.content > .panel-card.mt-4 .card-body{
  padding:24px 28px 28px;
}
.content > .panel-card.mt-4 .card-body > .d-flex:first-child{
  align-items:flex-start!important;
  gap:24px;
  margin-bottom:30px!important;
}
.content > .panel-card.mt-4 .card-body > .d-flex:first-child > div:first-child{
  padding-left:2px;
}
.content > .panel-card.mt-4 .card-body > .d-flex:first-child > [data-summary="price"]{
  padding-top:10px;
}
.content > .panel-card.mt-4 .card-body > .d-flex.gap-2:last-child{
  margin-top:14px;
}

.modal-open-lite{overflow:hidden;}
.lk-booking-page .booking-content{max-width:900px;}
.booking-board,
.booking-summary-card{
  background:rgba(250,250,250,.94);
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:0 18px 46px rgba(41,39,40,.08);
  padding:22px;
}
.booking-board-head,
.booking-summary-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.flow-kicker{
  color:var(--rose);
  font-weight:700;
  font-size:.78rem;
  text-transform:uppercase;
}
.address-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.flow-select-card{
  width:100%;
  border:1.5px solid var(--line);
  background:#fff;
  border-radius:18px;
  padding:16px;
  display:flex;
  align-items:center;
  gap:14px;
  text-align:left;
  color:var(--ink);
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .16s ease;
}
.flow-select-card:hover,
.flow-select-card:focus{
  border-color:rgba(230,118,130,.42);
  background:var(--offwhite);
  transform:translateY(-1px);
}
.flow-select-card.is-selected{
  border-color:var(--rose);
  background:rgba(230,118,130,.09);
  box-shadow:0 12px 30px rgba(230,118,130,.16);
}
.flow-card-icon{
  width:46px;
  height:46px;
  border-radius:50%;
  background:rgba(230,118,130,.14);
  color:var(--rose);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.flow-card-title,
.flow-card-text{
  display:block;
}
.flow-card-title{font-weight:700;}
.flow-card-text{color:var(--muted);font-size:.92rem;}
.booking-route-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.booking-route-grid[hidden],
.booking-summary-card[hidden]{
  display:none!important;
}
.booking-route-card{
  min-height:190px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  color:var(--ink);
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
  box-shadow:0 14px 38px rgba(41,39,40,.07);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.booking-route-card:hover,
.booking-route-card:focus{
  transform:translateY(-3px);
  border-color:rgba(230,118,130,.36);
  box-shadow:0 20px 48px rgba(41,39,40,.10);
}
.route-visual{
  width:64px;
  height:64px;
  border-radius:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.55rem;
}
.route-service{background:#edf5f0;color:var(--sage);}
.route-master{background:#f8e6e9;color:var(--rose);}
.route-title{
  display:block;
  font-family:var(--font-display);
  font-size:1.45rem;
  line-height:1.05;
}
.route-text{
  display:block;
  color:var(--muted);
  line-height:1.35;
}
.reschedule-card{
  background:rgba(250,250,250,.96);
  border:1px solid rgba(230,118,130,.28);
  border-radius:24px;
  box-shadow:0 18px 46px rgba(230,118,130,.10);
  padding:22px;
  margin-bottom:16px;
}
.reschedule-card[hidden]{display:none!important;}
.reschedule-card-head{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:18px;
}
.reschedule-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.reschedule-point{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
}
.reschedule-point span,
.reschedule-point strong,
.reschedule-point small{
  display:block;
}
.reschedule-point span{
  color:var(--muted);
  font-size:.82rem;
  font-weight:700;
  text-transform:uppercase;
}
.reschedule-point strong{
  margin-top:6px;
  color:var(--ink);
  font-size:1.12rem;
}
.reschedule-point small{
  margin-top:4px;
  color:var(--muted);
  line-height:1.35;
}
.reschedule-point.is-new{
  border-color:rgba(230,118,130,.34);
  background:rgba(230,118,130,.07);
}
.reschedule-arrow{
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--cream);
  color:var(--rose);
  display:flex;
  align-items:center;
  justify-content:center;
  justify-self:center;
}
.reschedule-confirm{
  border:1px solid rgba(230,118,130,.25);
  border-radius:18px;
  background:rgba(230,118,130,.08);
  padding:16px;
  margin-bottom:12px;
}
.reschedule-confirm span,
.reschedule-confirm strong,
.reschedule-confirm small{
  display:block;
}
.reschedule-confirm span{
  color:var(--rose-deep);
  font-size:.8rem;
  font-weight:700;
  text-transform:uppercase;
}
.reschedule-confirm strong{
  margin-top:5px;
}
.reschedule-confirm small{
  margin-top:3px;
  color:var(--muted);
}
.booking-total,
.modal-summary-price{
  color:var(--rose);
  font-family:var(--font-display);
  font-size:1.7rem;
  line-height:1;
  white-space:nowrap;
}
.summary-list{
  display:grid;
  gap:10px;
  margin-bottom:18px;
}
.summary-service{
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 42px;
  align-items:center;
  gap:12px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
}
.summary-service img{
  width:58px;
  height:58px;
  object-fit:cover;
  border-radius:14px;
}
.summary-service strong,
.summary-service small{
  display:block;
  min-width:0;
}
.summary-service strong{
  font-weight:700;
  line-height:1.2;
}
.summary-service small{
  color:var(--muted);
  margin-top:3px;
}
.booking-summary-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:18px;
}
.booking-summary-meta span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--muted);
  font-size:.92rem;
}
.booking-summary-meta i{color:var(--rose);}
.booking-summary-actions{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:12px;
}
.empty-note{
  border:1px dashed var(--line);
  border-radius:18px;
  padding:18px;
  color:var(--muted);
  background:rgba(255,255,255,.58);
}
.lk-modal[hidden]{display:none!important;}
.lk-modal{
  position:fixed;
  inset:0;
  z-index:1080;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:12px;
}
.lk-modal-backdrop{
  position:absolute;
  inset:0;
  border:0;
  padding:0;
  background:rgba(41,39,40,.42);
}
.lk-modal-dialog{
  position:relative;
  width:calc(100% - 4px);
  max-width:760px;
  max-height:calc(100dvh - 24px);
  background:#f2f2f5;
  border-radius:28px 28px 0 0;
  box-shadow:0 -16px 50px rgba(41,39,40,.22);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.lk-modal-xl{max-width:980px;}
.lk-modal-head{
  min-height:78px;
  padding:16px 18px;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 46px;
  align-items:center;
  gap:12px;
  color:#fff;
  background:var(--rose);
}
.lk-modal-head h2{
  margin:0;
  text-align:center;
  font-family:var(--font-body);
  font-size:1.34rem;
  font-weight:800;
}
.lk-modal-head .btn-ghost{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.28);
  color:#fff;
}
.lk-modal-head .btn-ghost:hover,
.lk-modal-head .btn-ghost:focus{
  background:rgba(255,255,255,.26);
  border-color:rgba(255,255,255,.42);
  color:#fff;
}
.lk-modal-body{
  padding:22px;
  overflow:auto;
  flex:1 1 auto;
  min-height:0;
  -webkit-overflow-scrolling:touch;
}
.modal-summary{
  border-top:1px solid rgba(41,39,40,.08);
  background:#fff;
  padding:16px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.modal-summary .btn{min-width:178px;}
.flow-search{
  min-height:58px;
  border-radius:18px;
  background:#fff;
  border:1px solid transparent;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 18px;
  color:#aaa;
  margin-bottom:16px;
}
.flow-search:focus-within{
  border-color:rgba(230,118,130,.35);
  box-shadow:0 0 0 .2rem rgba(230,118,130,.12);
}
.flow-search input{
  border:0;
  outline:0;
  background:transparent;
  width:100%;
  color:var(--ink);
  font-size:1rem;
}
.flow-chip-row{
  display:flex;
  flex-wrap:nowrap;
  overflow-x:auto;
  gap:10px;
  padding-bottom:12px;
  margin-bottom:10px;
}
.flow-chip,
.date-chip,
.time-mode-btn,
.time-slot{
  border:0;
  background:#fff;
  color:var(--ink);
  border-radius:999px;
  font-weight:700;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.flow-chip{
  flex:0 0 auto;
  padding:12px 20px;
}
.flow-chip.is-active,
.date-chip.is-selected,
.time-slot.is-selected{
  background:var(--rose);
  color:#fff;
  box-shadow:0 10px 24px rgba(230,118,130,.28);
}
.flow-list{
  display:grid;
  gap:14px;
}
.flow-service-card,
.flow-master-card,
.time-card,
.service-master-block,
.detail-info-card,
.confirm-card{
  background:#fff;
  border:1px solid transparent;
  border-radius:22px;
  box-shadow:0 10px 28px rgba(41,39,40,.05);
}
.flow-service-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:18px;
}
.flow-service-card.compact{
  grid-template-columns:70px minmax(0,1fr);
  box-shadow:none;
}
.flow-service-card.is-selected,
.flow-master-card.is-selected{
  border-color:rgba(230,118,130,.55);
  box-shadow:0 14px 34px rgba(230,118,130,.15);
}
.flow-service-main{
  min-width:0;
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  display:grid;
  grid-template-columns:78px minmax(0,1fr);
  align-items:center;
  gap:14px;
  text-align:left;
}
.flow-service-img{
  width:78px;
  height:78px;
  object-fit:cover;
  border-radius:16px;
}
.flow-service-copy,
.flow-service-title,
.flow-service-sub,
.flow-service-meta,
.flow-master-note{
  display:block;
  min-width:0;
}
.flow-service-title{
  color:var(--ink);
  font-weight:800;
  line-height:1.2;
}
.flow-service-sub{
  color:var(--muted);
  margin-top:4px;
}
.flow-service-meta{
  color:#8d8d8d;
  font-size:1rem;
  margin-top:10px;
}
.flow-master-note{
  color:var(--sage);
  font-size:.9rem;
  margin-top:6px;
}
.flow-card-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.flow-master-card{
  display:grid;
  grid-template-columns:28px 66px minmax(0,1fr) 44px;
  align-items:center;
  gap:14px;
  padding:16px 18px;
}
.flow-radio{
  width:26px;
  height:26px;
  border-radius:50%;
  border:1.5px solid #cfcfcf;
  background:#fff;
  padding:0;
}
.flow-master-card.is-selected .flow-radio{
  border-color:var(--rose);
  background:var(--rose);
  box-shadow:inset 0 0 0 6px #fff;
}
.flow-master-avatar,
.master-mini img,
.service-master-head img{
  width:66px;
  height:66px;
  border-radius:50%;
  object-fit:cover;
}
.flow-master-main{
  min-width:0;
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  text-align:left;
}
.flow-master-name,
.flow-master-role,
.flow-master-rating{
  display:block;
  min-width:0;
}
.flow-master-name{
  color:var(--ink);
  font-weight:800;
  font-size:1.05rem;
}
.flow-master-role{
  color:var(--muted);
  margin-top:3px;
}
.flow-master-rating,
.mini-master-rating{
  color:#87939b;
  margin-top:4px;
}
.flow-master-rating i,
.mini-master-rating i,
.master-rating-row i{color:#ff9900;}
.info-btn{
  width:42px;
  height:42px;
  border-radius:50%;
  border:2px solid var(--rose);
  background:#fff;
  color:var(--rose);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.2rem;
}
.selected-counter,
.flow-hint{
  color:#87909a;
  font-weight:500;
}
.selected-counter{margin:8px 0 18px;}
.flow-hint{line-height:1.45;}
.detail-hero-img,
.master-detail-photo{
  display:block;
  width:min(100%, 640px);
  max-height:520px;
  object-fit:cover;
  border-radius:26px;
  margin:0 auto 22px;
}
.detail-info-card{
  padding:22px;
  margin-bottom:18px;
}
.detail-title-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
}
.detail-title-row h3,
.detail-info-card h3,
.service-master-head h3,
.time-card h3{
  margin:0;
  font-family:var(--font-body);
  font-size:1.16rem;
  line-height:1.25;
  font-weight:800;
}
.detail-meta-line{
  color:#87939b;
  font-size:1.08rem;
  margin:18px 0;
}
.detail-checks{
  display:grid;
  gap:8px;
}
.detail-checks span{
  display:flex;
  align-items:flex-start;
  gap:8px;
  color:#343434;
}
.detail-checks i{
  color:var(--sage);
  margin-top:3px;
}
.mini-master-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-top:16px;
}
.mini-master{
  border:1.5px solid #e0e9f4;
  background:#fff;
  color:var(--ink);
  border-radius:16px;
  padding:14px;
  display:flex;
  align-items:center;
  gap:14px;
  text-align:left;
}
.mini-master.is-selected{
  border-color:var(--rose);
  background:rgba(230,118,130,.08);
  box-shadow:0 10px 24px rgba(230,118,130,.13);
}
.mini-master img{
  width:58px;
  height:58px;
  border-radius:50%;
  object-fit:cover;
}
.mini-master-name,
.mini-master-role,
.mini-master-rating{display:block;}
.mini-master-name{font-weight:800;}
.mini-master-role{color:#3c4b52;}
.service-master-block,
.time-card{padding:18px;}
.service-master-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
}
.master-mini{
  display:flex;
  align-items:center;
  gap:14px;
  background:#fff;
  border-radius:20px;
  padding:16px;
  margin-bottom:16px;
}
.master-rating-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.master-rating-row strong{
  font-size:2rem;
  line-height:1;
}
.work-gallery{
  display:flex;
  gap:12px;
  overflow-x:auto;
  padding-top:10px;
}
.work-gallery img{
  width:128px;
  height:128px;
  border-radius:16px;
  object-fit:cover;
  flex:0 0 auto;
}
.compact-list{gap:10px;}
.time-mode{
  width:min(100%, 560px);
  margin:0 auto 16px;
  border-radius:16px;
  background:#dedee8;
  padding:4px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4px;
}
.time-mode-btn{
  min-height:46px;
  border-radius:12px;
  font-size:1rem;
}
.time-mode-btn.is-active{
  background:#fff;
  color:var(--ink);
  box-shadow:0 0 0 2px rgba(230,118,130,.12);
}
.date-strip{
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding:18px 0 10px;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.date-chip{
  min-width:92px;
  min-height:82px;
  border-radius:16px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  flex:0 0 auto;
}
.date-chip span{
  font-size:1.25rem;
  line-height:1;
}
.date-chip small{
  margin-top:6px;
  text-transform:uppercase;
}
.date-chip.is-weekend:not(.is-selected) span{color:#d95a67;}
.time-service-stack{
  display:grid;
  gap:6px;
  color:var(--muted);
  margin-bottom:16px;
}
.slot-row{
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding-bottom:10px;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.time-slot{
  min-width:92px;
  min-height:56px;
  border:1.5px solid #e1e9f4;
  border-radius:14px;
  flex:0 0 auto;
  font-size:1.05rem;
  scroll-snap-align:start;
}
.time-slot.is-selected{
  border-color:var(--rose);
}
#timeModal .lk-modal-dialog{
  height:min(92dvh, 880px);
}
#timeModal .lk-modal-body{
  overflow-y:auto;
  overscroll-behavior:contain;
}
#timeModal .flow-list{
  padding-bottom:24px;
}
.confirm-card{padding:20px;}
.confirm-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}
.confirm-row span{color:var(--muted);}
.confirm-row strong{text-align:right;}
.confirm-services{
  display:grid;
  gap:12px;
  margin-top:16px;
}
.confirm-service{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  align-items:center;
  gap:12px;
}
.confirm-service img{
  width:58px;
  height:58px;
  border-radius:14px;
  object-fit:cover;
}
.confirm-service strong,
.confirm-service small{display:block;}
.confirm-service small{color:var(--muted);margin-top:3px;}

@media (min-width:768px){
  .lk-modal{
    align-items:center;
    padding:24px;
  }
  .lk-modal-dialog{
    width:calc(100% - 48px);
    border-radius:28px;
    max-height:92dvh;
  }
  .booking-route-grid{
    grid-template-columns:1fr 1fr;
  }
  .address-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .reschedule-grid{
    grid-template-columns:1fr 42px 1fr;
    align-items:center;
  }
  .mini-master-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (min-width:1100px){
  .lk-booking-page .layout{max-width:1240px;}
  .mini-master-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:575.98px){
  .booking-board,
  .booking-summary-card{
    padding:18px;
    border-radius:20px;
  }
  .booking-board-head,
  .booking-summary-head{
    display:grid;
    gap:10px;
  }
  .booking-route-card{
    min-height:168px;
    padding:18px;
    border-radius:20px;
  }
  .route-title{font-size:1.25rem;}
  .booking-summary-actions,
  .flow-service-card{
    grid-template-columns:1fr;
  }
  .summary-service{
    grid-template-columns:54px minmax(0,1fr) 38px;
  }
  .lk-modal{padding:0;}
  .lk-modal-dialog{
    width:100%;
    max-height:100dvh;
    border-radius:24px 24px 0 0;
  }
  .lk-modal-head{
    min-height:66px;
    padding:12px;
    grid-template-columns:42px minmax(0,1fr) 42px;
  }
  .lk-modal-head h2{font-size:1.08rem;}
  .lk-modal-body{padding:16px;}
  .modal-summary{
    padding:14px 16px 18px;
    align-items:stretch;
    flex-direction:column;
  }
  .modal-summary .btn{
    width:100%;
    min-width:0;
  }
  .flow-card-actions{
    justify-content:space-between;
  }
  .flow-master-card{
    grid-template-columns:26px 58px minmax(0,1fr) 38px;
    gap:10px;
    padding:14px;
  }
  .flow-master-avatar,
  .service-master-head img,
  .master-mini img{
    width:58px;
    height:58px;
  }
  .detail-hero-img,
  .master-detail-photo{
    border-radius:20px;
    max-height:360px;
  }
  .detail-info-card,
  .service-master-block,
  .time-card{
    padding:16px;
    border-radius:18px;
  }
  .work-gallery img{
    width:104px;
    height:104px;
  }
  .date-chip{
    min-width:82px;
    min-height:74px;
  }
  .time-slot{
    min-width:82px;
  }
}

@media (max-width:575.98px){
  .content > .panel-card.mt-4 .card-body{
    padding:20px 18px 22px;
  }
  .content > .panel-card.mt-4 .card-body > .d-flex:first-child{
    margin-bottom:24px!important;
  }
}
