:root{--pink-light:#fff0f5;--pink-soft:#ffd6e7;--pink-mid:#ffb3d1;--pink-main:#f472b6;--pink-deep:#db2777;--white:#ffffff;--gray:#6b7280;--dark:#1f2937;--radius:16px;--shadow:0 4px 24px rgba(244,114,182,0.15);}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--pink-light);color:var(--dark);}
nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--pink-soft);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:64px;}
.logo{font-size:1.4rem;font-weight:700;background:linear-gradient(135deg,var(--pink-main),var(--pink-deep));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
nav ul{list-style:none;display:flex;gap:2rem;}
nav a{text-decoration:none;color:var(--gray);font-size:.95rem;}
nav a:hover{color:var(--pink-deep);}
.hero{min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 1.5rem;background:radial-gradient(ellipse at 60% 0%,#fce7f3 0%,var(--pink-light) 70%);position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:linear-gradient(135deg,#fbcfe8,#f9a8d4);opacity:.3;top:-200px;right:-200px;animation:fl 8s ease-in-out infinite;}
.hero::after{content:'';position:absolute;width:300px;height:300px;border-radius:50%;background:linear-gradient(135deg,#f9a8d4,#ec4899);opacity:.2;bottom:-100px;left:-80px;animation:fl 6s ease-in-out infinite reverse;}
@keyframes fl{0%,100%{transform:translateY(0);}50%{transform:translateY(-30px);}}
.hero-badge{display:inline-block;background:var(--pink-soft);color:var(--pink-deep);font-size:.8rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:.4rem 1rem;border-radius:100px;margin-bottom:1.5rem;position:relative;z-index:1;}
.hero h1{font-size:clamp(2.2rem,6vw,4rem);font-weight:800;line-height:1.15;margin-bottom:1.2rem;position:relative;z-index:1;}
.hero h1 span{background:linear-gradient(135deg,var(--pink-main),var(--pink-deep));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.hero p{font-size:1.1rem;color:var(--gray);max-width:500px;margin:0 auto 2.5rem;line-height:1.7;position:relative;z-index:1;}
.btn-primary{display:inline-block;padding:.9rem 2.4rem;background:linear-gradient(135deg,var(--pink-main),var(--pink-deep));color:#fff;border:none;border-radius:100px;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;box-shadow:0 8px 24px rgba(219,39,119,.3);position:relative;z-index:1;transition:transform .2s;}
.btn-primary:hover{transform:translateY(-2px);}
.section{padding:5rem 1.5rem;}
.section-title{text-align:center;font-size:2rem;font-weight:700;margin-bottom:.5rem;}
.section-sub{text-align:center;color:var(--gray);margin-bottom:3rem;}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;max-width:1100px;margin:0 auto;}
.card{background:var(--white);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow);border:1px solid var(--pink-soft);transition:transform .25s;}
.card:hover{transform:translateY(-4px);}
.card-icon{font-size:2rem;margin-bottom:1rem;}
.card h3{font-size:1.1rem;font-weight:700;margin-bottom:.5rem;}
.card p{color:var(--gray);font-size:.9rem;line-height:1.6;}
.card-price{display:inline-block;margin-top:1rem;background:var(--pink-soft);color:var(--pink-deep);font-weight:700;font-size:.9rem;padding:.3rem .9rem;border-radius:100px;}
.price-list{margin-top:1rem;display:flex;flex-direction:column;gap:.35rem;}
.price-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;padding:.3rem .65rem;background:var(--pink-light);border-radius:8px;border:1px solid var(--pink-soft);}
.price-row .pr-len{color:var(--gray);}
.price-row .pr-val{color:var(--pink-deep);font-weight:700;}
.price-preview{background:linear-gradient(135deg,var(--pink-soft),var(--pink-light));border:1.5px dashed var(--pink-mid);border-radius:12px;padding:.9rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:.6rem;}
.price-preview .pp-label{color:var(--gray);font-size:.88rem;font-weight:600;}
.price-preview .pp-value{color:var(--pink-deep);font-size:1.2rem;font-weight:800;}
.price-preview.empty .pp-value{color:var(--gray);font-size:.95rem;font-weight:600;}
.addons-list{display:flex;flex-direction:column;gap:.5rem;}
.addon-row{display:flex;align-items:center;gap:.7rem;padding:.65rem .9rem;background:var(--pink-light);border:1.5px solid var(--pink-soft);border-radius:10px;cursor:pointer;font-size:.9rem;transition:all .2s;}
.addon-row:hover{border-color:var(--pink-mid);background:#fff;}
.addon-row input{width:18px;height:18px;cursor:pointer;accent-color:var(--pink-deep);margin:0;flex-shrink:0;}
.addon-row .addon-name{flex:1;font-weight:500;color:var(--dark);}
.addon-row .addon-price{color:var(--pink-deep);font-weight:700;font-size:.82rem;white-space:nowrap;}
.addon-row.is-main{display:none;}
.pp-breakdown{font-size:.78rem;color:var(--gray);margin-top:.3rem;line-height:1.4;}
#booking{background:var(--white);}
.booking-wrap{max-width:960px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;}
@media(max-width:720px){.booking-wrap{grid-template-columns:1fr;}}
.booking-form{display:flex;flex-direction:column;gap:1.1rem;}
label{font-weight:600;font-size:.9rem;display:block;margin-bottom:.3rem;color:var(--dark);}
input,select,textarea{width:100%;padding:.75rem 1rem;border-radius:10px;border:1.5px solid var(--pink-soft);font-size:.95rem;background:var(--pink-light);color:var(--dark);outline:none;transition:border-color .2s;font-family:inherit;}
input:focus,select:focus,textarea:focus{border-color:var(--pink-main);box-shadow:0 0 0 3px rgba(244,114,182,.12);}
textarea{resize:vertical;min-height:70px;}
.btn-book{padding:1rem;border:none;border-radius:12px;background:linear-gradient(135deg,var(--pink-main),var(--pink-deep));color:#fff;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(219,39,119,.3);transition:transform .2s;}
.btn-book:hover{transform:translateY(-2px);}
.slots-panel{background:var(--pink-light);border-radius:var(--radius);padding:1.8rem;border:1.5px solid var(--pink-soft);}
.slots-header{display:flex;align-items:center;gap:.7rem;margin-bottom:1.4rem;font-weight:600;color:var(--dark);}
.live-dot{width:10px;height:10px;border-radius:50%;background:#22c55e;animation:pulse 1.6s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6);}70%{box-shadow:0 0 0 10px rgba(34,197,94,0);}100%{box-shadow:0 0 0 0 rgba(34,197,94,0);}}
.date-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem;gap:.8rem;}
.date-nav button{background:var(--white);border:1.5px solid var(--pink-soft);color:var(--pink-deep);width:38px;height:38px;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s;}
.date-nav button:hover{background:var(--pink-soft);transform:translateY(-1px);}
.date-label{flex:1;text-align:center;font-weight:700;color:var(--dark);font-size:1rem;text-transform:capitalize;}
.slots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:.5rem;margin-bottom:1.2rem;}
.slot{padding:.7rem .4rem;text-align:center;border-radius:10px;font-weight:600;font-size:.92rem;cursor:pointer;transition:all .2s;user-select:none;border:1.5px solid transparent;}
.slot.free{background:var(--white);color:var(--dark);border-color:var(--pink-soft);}
.slot.free:hover{background:var(--pink-soft);transform:translateY(-1px);}
.slot.taken{background:#fee2e2;color:#b91c1c;cursor:not-allowed;text-decoration:line-through;opacity:.75;}
.slot.blocked{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;border-color:#e5e7eb;}
.slot.selected{background:linear-gradient(135deg,var(--pink-main),var(--pink-deep));color:#fff;border-color:var(--pink-deep);box-shadow:0 4px 12px rgba(219,39,119,.3);}
.slots-legend{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;font-size:.78rem;color:var(--gray);margin-bottom:.6rem;}
.legend-item{display:flex;align-items:center;gap:.35rem;}
.legend-dot{width:12px;height:12px;border-radius:4px;}
.legend-dot.free{background:var(--white);border:1.5px solid var(--pink-soft);}
.legend-dot.taken{background:#fee2e2;border:1.5px solid #fca5a5;}
.legend-dot.blocked{background:#f3f4f6;border:1.5px solid #e5e7eb;}
.legend-dot.selected{background:linear-gradient(135deg,var(--pink-main),var(--pink-deep));}
.slots-hint{font-size:.78rem;color:var(--gray);text-align:center;font-style:italic;min-height:1em;}
.tabs-wrap{max-width:960px;margin:3.5rem auto 0;background:var(--pink-light);border-radius:var(--radius);padding:1.8rem;border:1.5px solid var(--pink-soft);}
.tabs{display:flex;gap:.5rem;margin-bottom:1.8rem;border-bottom:2px solid var(--pink-soft);padding-bottom:0;}
.tab-btn{background:transparent;border:none;padding:.8rem 1.2rem;font-size:.95rem;font-weight:600;color:var(--gray);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .2s;font-family:inherit;}
.tab-btn:hover{color:var(--pink-deep);}
.tab-btn.active{color:var(--pink-deep);border-bottom-color:var(--pink-deep);}
.tab-content{display:none;animation:fadeIn .25s ease;}
.tab-content.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.occupied-day-picker{margin-bottom:1.5rem;max-width:240px;}
.occupied-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.7rem;}
.occ-slot{background:var(--white);border:1.5px solid var(--pink-soft);border-radius:12px;padding:.8rem;text-align:center;transition:all .2s;}
.occ-slot.is-taken{background:#fef2f2;border-color:#fecaca;}
.occ-time{font-weight:700;font-size:1rem;color:var(--dark);margin-bottom:.3rem;}
.occ-slot.is-taken .occ-time{color:#b91c1c;}
.occ-status{font-size:.85rem;color:var(--gray);}
.occ-slot.is-taken .occ-status{color:#7f1d1d;font-weight:600;}
.admin-slots-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;margin-bottom:2rem;}
.admin-slot{background:var(--white);border:1.5px solid var(--pink-soft);border-radius:12px;padding:.8rem;text-align:center;cursor:pointer;transition:all .2s;user-select:none;}
.admin-slot:hover{transform:translateY(-1px);box-shadow:var(--shadow);}
.admin-slot .a-time{font-weight:700;font-size:1rem;color:var(--dark);margin-bottom:.3rem;}
.admin-slot .a-status{font-size:.8rem;color:var(--gray);}
.admin-slot.taken{background:#fef2f2;border-color:#fecaca;}
.admin-slot.taken .a-time{color:#b91c1c;}
.admin-slot.taken .a-status{color:#7f1d1d;font-weight:600;}
.booking-item{background:var(--white);border:1.5px solid var(--pink-soft);border-radius:12px;padding:1rem 1.2rem;margin-bottom:.6rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.booking-item .bi-info{flex:1;min-width:200px;}
.booking-item .bi-time{font-weight:700;color:var(--pink-deep);font-size:1.05rem;margin-bottom:.2rem;}
.booking-item .bi-name{font-weight:600;color:var(--dark);font-size:.95rem;}
.booking-item .bi-meta{font-size:.82rem;color:var(--gray);margin-top:.15rem;}
.booking-item .bi-del{background:#fee2e2;color:#b91c1c;border:none;padding:.5rem .9rem;border-radius:8px;font-weight:600;cursor:pointer;font-size:.85rem;transition:all .2s;font-family:inherit;}
.booking-item .bi-del:hover{background:#fecaca;}
.empty-msg{text-align:center;color:var(--gray);padding:1.5rem;font-size:.9rem;font-style:italic;}
.nav-contact{padding:.35rem .9rem;border-radius:100px;background:linear-gradient(135deg,var(--pink-main),var(--pink-deep));color:#fff !important;font-weight:600;font-size:.85rem;transition:transform .2s,box-shadow .2s;}
.nav-contact:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(219,39,119,.3);color:#fff !important;}
footer{text-align:center;padding:2.5rem 1.5rem;background:var(--white);border-top:1px solid var(--pink-soft);color:var(--gray);font-size:.9rem;line-height:1.8;}
footer strong{color:var(--pink-deep);}
.footer-ig{display:inline-flex;align-items:center;gap:.45rem;margin-top:.5rem;padding:.5rem 1rem;border-radius:100px;background:linear-gradient(135deg,#f9a8d4,#db2777);color:#fff;text-decoration:none;font-weight:600;font-size:.88rem;transition:transform .2s,box-shadow .2s;}
.footer-ig:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(219,39,119,.35);}
.footer-ig svg{width:18px;height:18px;}
#toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(100px);background:var(--dark);color:#fff;padding:.9rem 1.6rem;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.2);font-size:.95rem;font-weight:500;z-index:1000;opacity:0;transition:all .3s ease;pointer-events:none;max-width:90%;text-align:center;}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* === Мобильная адаптация === */
@media (max-width: 640px) {
  nav{padding:0 1rem;height:56px;}
  .logo{font-size:1.1rem;}
  nav ul{gap:.9rem;}
  nav a{font-size:.85rem;}
  .nav-contact{padding:.3rem .7rem;font-size:.75rem;}

  .hero{min-height:75vh;padding:3rem 1.2rem;}
  .hero h1{font-size:clamp(1.7rem,7vw,2.6rem);margin-bottom:1rem;}
  .hero p{font-size:.95rem;margin-bottom:1.8rem;line-height:1.6;}
  .hero-badge{font-size:.72rem;letter-spacing:1px;padding:.3rem .85rem;margin-bottom:1.1rem;}
  .btn-primary{padding:.75rem 1.8rem;font-size:.92rem;}
  .hero::before{width:380px;height:380px;top:-140px;right:-140px;}
  .hero::after{width:200px;height:200px;bottom:-60px;left:-60px;}

  .section{padding:3rem 1rem;}
  .section-title{font-size:1.6rem;}
  .section-sub{font-size:.88rem;margin-bottom:2rem;}

  .services-grid{gap:1rem;}
  .card{padding:1.4rem;}
  .card-icon{font-size:1.7rem;margin-bottom:.7rem;}
  .card h3{font-size:1.05rem;}

  .booking-wrap{gap:1.5rem;}
  .booking-form{gap:.9rem;}
  .slots-panel{padding:1.2rem;}
  .slots-grid{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:.4rem;}
  .slot{padding:.6rem .3rem;font-size:.88rem;}
  .slots-legend{gap:.7rem;font-size:.72rem;}

  .tabs-wrap{padding:1.2rem;margin-top:2.5rem;}
  .tabs{gap:.2rem;}
  .tab-btn{padding:.65rem .7rem;font-size:.82rem;flex:1;}

  .occupied-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem;}
  .occ-slot{padding:.6rem;}
  .admin-slots-list{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem;}

  .booking-item{flex-direction:column;align-items:stretch;gap:.6rem;padding:.85rem 1rem;}
  .booking-item .bi-info{min-width:0;}
  .booking-item .bi-del{width:100%;padding:.55rem;}

  .addons-list{gap:.4rem;}
  .addon-row{padding:.55rem .75rem;font-size:.85rem;gap:.55rem;}
  .addon-row .addon-name{font-size:.85rem;}
  .addon-row .addon-price{font-size:.72rem;}
  input,select,textarea{padding:.7rem .9rem;font-size:.92rem;}
  .price-preview{padding:.8rem .9rem;}
  .price-preview .pp-value{font-size:1.1rem;}
  .pp-breakdown{font-size:.72rem;}
  footer{padding:2rem 1rem;font-size:.85rem;}
  .footer-ig{font-size:.82rem;padding:.45rem .9rem;}
}
@media (max-width: 380px) {
  nav ul{gap:.6rem;}
  nav a{font-size:.8rem;}
  .nav-contact{padding:.25rem .55rem;font-size:.7rem;}
  .logo{font-size:1rem;}
  .slots-grid{grid-template-columns:repeat(3,1fr);}
  .slot{font-size:.82rem;padding:.55rem .2rem;}
  .card{padding:1.1rem;}
}

/* === footer admin link + панель Зайняті години без табів === */
.footer-admin{display:inline-block;margin-top:.4rem;color:var(--gray);font-size:.78rem;text-decoration:none;border-bottom:1px dashed var(--pink-soft);}
.footer-admin:hover{color:var(--pink-deep);border-bottom-color:var(--pink-deep);}
.occupied-wrap{max-width:960px;margin:3rem auto 0;background:var(--pink-light);border-radius:var(--radius);padding:1.8rem;border:1.5px solid var(--pink-soft);}
.occupied-title{font-size:1.1rem;margin-bottom:1.2rem;color:var(--dark);}

/* === Лічильник символів у коментарі === */
.char-counter{font-size:.75rem;color:var(--gray);text-align:right;margin-top:.25rem;font-variant-numeric:tabular-nums;}
.char-counter.warn{color:var(--pink-deep);font-weight:600;}
