*{box-sizing:border-box}:root{--rose:#b9788d;--dark:#251f21;--muted:#7c7275;--line:#eadfe2;--soft:#f7ecef}body{margin:0;background:#faf8f8;color:var(--dark);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}.hide{display:none!important}header{height:72px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(16px,calc((100% - 1080px)/2));position:sticky;top:0;z-index:10}header button,.head button,.booktop button,nav button{border:0;background:transparent;font-weight:800;color:#9a5c71}.brand{display:flex;gap:10px;align-items:center}.brand>b{width:38px;height:38px;border-radius:12px;background:var(--rose);color:#fff;display:grid;place-items:center}.brand span{display:grid}.brand small,small{color:var(--muted)}main>section{max-width:1080px;margin:auto;padding:30px 18px}.hero{padding-top:65px!important;padding-bottom:55px!important}.hero>span,.head span{font-size:.72rem;letter-spacing:.15em;color:#9a5c71;font-weight:900}.hero h1{font-size:clamp(3rem,8vw,5.5rem);letter-spacing:-.06em;line-height:.9;margin:14px 0}.hero p{color:var(--muted);font-size:1.05rem}.hero div{display:flex;gap:9px;flex-wrap:wrap}.hero button,.cta button{border:0;border-radius:13px;padding:13px 17px;font-weight:850;background:var(--soft);color:#9a5c71}.primary{border:0!important;background:var(--rose)!important;color:white!important;border-radius:12px;padding:12px 15px;font-weight:850}.head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.head h2{margin:5px 0 0;font-size:2rem}.head p{color:var(--muted)}.services{display:grid;grid-template-columns:1fr 1fr;gap:12px}.service{background:white;border:1px solid var(--line);border-radius:17px;padding:18px;display:flex;justify-content:space-between;cursor:pointer}.service small{display:block;margin-top:5px}.portfoliohead{margin-top:45px}.preview{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.preview button,.photos button{border:0;padding:0;overflow:hidden;border-radius:15px;cursor:pointer;background:#eee}.preview button{aspect-ratio:1}.preview img,.photos img{width:100%;height:100%;object-fit:cover;display:block}.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.photos button{aspect-ratio:4/5;position:relative}.photos em{position:absolute;bottom:9px;left:9px;background:#000a;color:white;border-radius:99px;padding:6px 9px;font-size:.72rem;font-style:normal}.cta{text-align:center;padding:45px 10px}.cta p{color:var(--muted)}.booktop{max-width:720px;margin:auto;display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center}.booktop div{height:7px;background:#eadfe2;border-radius:9px;overflow:hidden}.booktop i{display:block;height:100%;background:var(--rose)}.bookcard,.card{background:white;border:1px solid var(--line);border-radius:19px;padding:20px;margin:14px 0}.bookcard{max-width:720px;margin:16px auto}.choices,.times,.dates{display:grid;gap:9px}.dates,.times{grid-template-columns:repeat(4,1fr)}.choice{border:1px solid var(--line);background:white;border-radius:12px;padding:13px;text-align:left;cursor:pointer}.dates .choice,.times .choice{text-align:center}.form{display:grid;gap:10px}.form input,.form textarea,.card input,.card select{width:100%;border:1px solid var(--line);border-radius:11px;padding:12px}.summary{background:#faf6f7;border-radius:12px;padding:13px;margin:12px 0}.full{width:100%}.bookingrow,.adminrow{border-bottom:1px solid var(--line);padding:13px 0;display:flex;justify-content:space-between;gap:12px}.bookingrow button,.adminrow button{border:0;background:var(--soft);color:#9a5c71;border-radius:9px;padding:8px;font-weight:800}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:min(420px,100%);text-align:center}.login button{margin-top:8px}.dashboard{display:grid;grid-template-columns:210px 1fr;min-height:100vh}.dashboard nav{background:#241f21;padding:20px 12px;display:flex;flex-direction:column;gap:6px;color:white}.dashboard nav button{color:#ddd;text-align:left;padding:11px}.dashboard article{padding:28px;max-width:1100px;width:100%}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stats div{background:white;border:1px solid var(--line);border-radius:15px;padding:16px}.stats b{display:block;font-size:1.6rem}.hoursrow{display:grid;grid-template-columns:110px 90px 1fr 1fr;gap:8px;padding:8px 0}.hoursrow input,.hoursrow select{min-width:0;border:1px solid var(--line);border-radius:9px;padding:8px}.modal{position:fixed;inset:0;background:#0007;z-index:100;display:grid;place-items:center;padding:18px}.modalbox{background:white;border-radius:20px;padding:22px;width:min(520px,100%);position:relative}.x{position:absolute;right:10px;top:8px;border:0;background:none;font-size:1.7rem}.lightbox{position:fixed;inset:0;background:#090909;z-index:200;display:grid;place-items:center}.lightbox img{max-width:100%;max-height:80vh;object-fit:contain}.lbtop{position:absolute;top:20px;left:20px;right:20px;display:flex;justify-content:space-between;color:white}.lbtop button{border:0;background:none;color:white;font-size:2rem}.lightbox>.prev,.lightbox>.next{position:absolute;top:50%;border:0;background:#ffffff22;color:white;border-radius:12px;font-size:2rem;width:42px;height:58px}.prev{left:10px}.next{right:10px}.lightbox>b{position:absolute;bottom:20px;color:white}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#222;color:white;border-radius:10px;padding:10px 14px;display:none;z-index:300}
@media(max-width:700px){.services{grid-template-columns:1fr}.preview{grid-template-columns:repeat(2,1fr)}.photos{grid-template-columns:repeat(2,1fr)}.dates,.times{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr}.dashboard nav{flex-direction:row;overflow:auto;position:sticky;top:0;z-index:20}.dashboard article{padding:16px}.hoursrow{grid-template-columns:1fr 80px 1fr 1fr}.stats{grid-template-columns:1fr 1fr}.stats div:last-child{grid-column:1/-1}}
#services.services{display:block}
.service-category{margin-bottom:28px}
.category-title{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:9px;margin-bottom:10px}
.category-title h3{font-size:1.35rem;margin:0}
.category-title span{font-size:.78rem;color:var(--muted)}
.category-items{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.category-items .service small{max-width:620px;line-height:1.35}
.booking-categories{display:grid;gap:24px;margin-top:18px}
.booking-category h3{font-size:1.2rem;margin:0 0 9px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.booking-category{display:grid;gap:8px}
.booking-category .choice{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.booking-category .choice span{display:block}
.booking-category .choice small{display:block;margin-top:4px;line-height:1.35;color:var(--muted)}
.booking-category .choice strong{white-space:nowrap}
.category-help{color:var(--muted)}
@media(max-width:700px){.category-items{grid-template-columns:1fr}.category-title h3{font-size:1.2rem}}

/* ===== Hair Studio v6 branded theme ===== */
:root{
  --rose:#111111;
  --dark:#171411;
  --muted:#72675f;
  --line:#d8cabc;
  --soft:#eee2d6;
  --cream:#efe2d4;
  --paper:#f8f2ec;
}
body{
  background:var(--paper);
  color:var(--dark);
}
header{
  background:rgba(248,242,236,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
}
.brand.branded img{
  width:48px;
  height:48px;
  object-fit:contain;
  border-radius:8px;
}
.brand.branded strong{
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:.04em;
}
.hero.branded-hero{
  display:grid;
  grid-template-columns:minmax(220px,.55fr) 1fr;
  gap:34px;
  align-items:center;
  padding-top:42px!important;
  padding-bottom:42px!important;
}
.hero-logo-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-logo{
  width:min(330px,100%);
  aspect-ratio:1/1;
  object-fit:contain;
  border-radius:22px;
  box-shadow:0 18px 40px rgba(30,20,12,.08);
}
.hero-copy>span{
  font-size:.7rem;
  letter-spacing:.18em;
}
.hero-copy h1{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3.1rem,7vw,5.8rem);
  font-weight:500;
  letter-spacing:-.045em;
}
.hero-copy p{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.35rem;
  color:#4b4039;
}
.hero-copy button,
.cta button{
  border-radius:999px;
  padding:14px 22px;
}
.primary{
  background:#151311!important;
  color:#fff!important;
}
.category-card{
  min-height:150px;
  background:#f5ece3;
  border-color:#dfd0c2;
  border-radius:20px;
  box-shadow:0 8px 18px rgba(37,27,19,.04);
}
.category-card:hover{
  border-color:#bba997;
  background:#f2e6db;
}
.category-card h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.5rem;
  font-weight:600;
}
.category-card>b,
.category-icon{
  color:#171411;
}
.category-grid{
  grid-template-columns:repeat(3,1fr);
}
.category-grid .category-card:last-child{
  grid-column:span 2;
}
.category-open,
.bookcard,
.card{
  background:#fbf6f1;
  border-color:#ddd0c3;
}
.category-open-head h2,
.bookcard h2,
.head h2,
.cta h2{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:600;
}
.service{
  background:#fffaf6;
  border-color:#e4d7cb;
  border-radius:16px;
}
.service>b{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.08rem;
}
.preview button,
.photos button{
  border-radius:14px;
  box-shadow:0 6px 18px rgba(25,18,14,.06);
}
.portfoliohead{
  border-top:1px solid var(--line);
  padding-top:34px;
}
.book-category-card{
  background:#f5ece3;
  border-color:#dfd0c2;
  color:#171411;
}
.book-category-card b{
  color:#171411;
}
.book-category-card span{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.15rem;
}
.dashboard nav{
  background:#171411;
}
.stats div{
  background:#f8eee5;
  border-color:#dfd0c2;
}
#toast{
  background:#171411;
}
@media(max-width:850px){
  .hero.branded-hero{
    grid-template-columns:1fr;
    text-align:center;
  }
  .hero-logo{
    width:min(260px,72vw);
  }
  .hero-copy div{
    justify-content:center;
  }
  .category-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .category-grid .category-card:last-child{
    grid-column:auto;
  }
}
@media(max-width:560px){
  .category-grid{
    grid-template-columns:1fr 1fr;
    gap:9px;
  }
  .category-card{
    min-height:118px;
    padding:15px;
  }
  .category-card h3{
    font-size:1.13rem;
  }
  .hero-copy h1{
    font-size:3.1rem;
  }
}

/* ===== v7 circular logo + pin curl add-on ===== */
.brand.branded img{
  border-radius:50%!important;
  aspect-ratio:1/1;
  object-fit:cover!important;
  border:1px solid #c7b29e;
  background:#efe2d4;
}
.hero-logo{
  border-radius:50%!important;
  aspect-ratio:1/1;
  object-fit:cover!important;
  border:1px solid #c7b29e;
  background:#efe2d4;
  box-shadow:0 16px 40px rgba(30,20,12,.08);
}
.addon-card{
  margin:12px 0;
  background:#f3e9df;
  border:1px solid #dfd0c2;
  border-radius:14px;
  padding:13px 14px;
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  cursor:pointer;
}
.addon-copy{
  display:flex;
  align-items:center;
  gap:11px;
}
.addon-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid #bca995;
  color:#6d5846;
  font-size:1.25rem;
}
.addon-copy b{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1rem;
}
.addon-copy small{
  display:block;
  margin-top:3px;
  line-height:1.3;
}
.addon-action{
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
  font-weight:800;
}
.addon-action input{
  width:22px!important;
  height:22px;
  accent-color:#171411;
  margin:0!important;
}
.booking-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:13px 2px 15px;
  font-size:1.05rem;
}
.booking-total b{
  font-size:1.25rem;
  font-family:Georgia,"Times New Roman",serif;
}
@media(max-width:520px){
  .addon-card{align-items:flex-start}
  .addon-action{padding-top:3px}
}

/* ===== v8 salon address ===== */
.salon-address{
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-size:.9rem!important;
  line-height:1.5;
  color:#66584f!important;
  max-width:460px;
  margin:12px 0 22px;
}
.salon-address span{font-size:1.05rem;margin-right:4px}
.venue-card{
  margin:36px 0 8px;
  padding:20px;
  border:1px solid #d8cabc;
  border-radius:20px;
  background:#f3e9df;
  display:flex;
  gap:16px;
  align-items:flex-start;
}
.venue-pin{
  width:46px;height:46px;flex:0 0 46px;border-radius:50%;
  background:#171411;color:#fff;display:grid;place-items:center;font-size:1.3rem;
}
.venue-card small{font-size:.67rem;letter-spacing:.13em;font-weight:900;color:#806e60}
.venue-card h3{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;margin:5px 0}
.venue-card p{margin:0;color:#66584f;line-height:1.5}
.booking-location{display:inline-block;margin-top:7px;line-height:1.45;color:#6f6259}
.confirm-address{background:#f3e9df;border-radius:13px;padding:12px;line-height:1.5;color:#5f5148}
@media(max-width:850px){.salon-address{margin-left:auto;margin-right:auto}}

.addon-step h2{font-family:Georgia,"Times New Roman",serif;font-size:1.8rem;margin-bottom:8px}
.pin-options{display:grid;gap:12px;margin-top:22px}
.pin-option{width:100%;background:#fffaf6;border:1px solid #d8cabc;border-radius:17px;padding:18px;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer;color:#171411}
.pin-option b{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.1rem}.pin-option small{display:block;color:#72675f;margin-top:4px}.pin-option strong{font-size:1.05rem;white-space:nowrap}.featured-addon{background:#f3e9df;border-color:#bba997}.booking-total{display:flex;justify-content:space-between;padding:14px 2px;font-size:1.1rem}.booking-total b{font-family:Georgia,"Times New Roman",serif;font-size:1.25rem}

/* ===== v11 manual deposit notice ===== */
.deposit-notice{
  margin:14px 0;background:#f3e9df;border:1px solid #d6c4b4;border-radius:16px;
  padding:17px;text-align:left;
}
.deposit-badge{font-size:.66rem;letter-spacing:.13em;font-weight:900;color:#806c5b}
.deposit-notice h3{font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;margin:5px 0 7px}
.deposit-notice p{margin:0 0 8px;line-height:1.5;color:#5f534a}
.deposit-notice small{font-weight:700;color:#473d36}
.free-booking h3{margin-top:0}
.deposit-confirm{margin:15px auto;padding:14px;border-radius:14px;background:#f3e9df;border:1px solid #d6c4b4;max-width:430px;line-height:1.5}
.deposit-confirm b{font-family:Georgia,"Times New Roman",serif;font-size:1.15rem}
.deposit-confirm span{font-size:.9rem;color:#65584e}

/* ===== v12 Admin Gallery Manager ===== */
.gallery-admin-list{display:grid;gap:12px}
.gallery-admin-row{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;background:#fff;border:1px solid #e2d6ca;border-radius:16px}
.gallery-admin-row img{width:88px;height:88px;object-fit:cover;border-radius:12px;background:#eee5dd}
.gallery-admin-info label{display:block;font-size:.75rem;font-weight:800;color:#6e6158}
.gallery-admin-info input{margin-top:5px;width:100%}
.danger-btn{background:#fff;border:1px solid #d2b9b9;color:#8e3535;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer}
.danger-btn:hover{background:#fff3f3}
.upload-help{display:block;color:#72655c;line-height:1.4}
.empty-admin,.empty-gallery{padding:24px;border:1px dashed #d8c9bb;border-radius:16px;text-align:center;color:#71645b}
@media(max-width:650px){.gallery-admin-row{grid-template-columns:70px minmax(0,1fr)}.gallery-admin-row img{width:70px;height:70px}.gallery-admin-row .danger-btn{grid-column:2;justify-self:start}}

.visual-diary{background:#111;border-radius:20px;overflow:hidden;color:#fff;border:1px solid #292929}
.diary-toolbar{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;padding:16px;border-bottom:1px solid #292929;text-align:center}
.diary-toolbar button{width:40px;height:40px;border-radius:50%;border:1px solid #414141;background:#1d1d1d;color:#fff;font-size:1.6rem}
.diary-toolbar small{font-size:.65rem;letter-spacing:.13em;color:#aaa}.diary-toolbar h3{margin:3px 0 0;font-size:1.1rem}
.today-btn{margin:12px 16px 0;border:1px solid #444;background:#202020;color:#fff;border-radius:999px;padding:8px 16px;font-weight:800}
.timeline-wrap{position:relative;margin-top:12px;overflow:hidden;background:#0d0d0d}
.time-axis{position:absolute;left:0;top:0;width:78px;height:100%;border-right:1px solid #353535}
.diary-hour{position:absolute;left:0;width:100%;border-top:1px solid #303030}.diary-hour span{position:absolute;top:-13px;left:9px;font-size:.9rem;font-weight:800;background:#0d0d0d;padding-right:6px}.diary-hour small{display:block;font-size:.64rem;text-align:right}
.appointment-lane{position:absolute;left:78px;right:0;top:0;height:100%;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#1f1f1f 32px)}
.diary-appt{position:absolute;left:8px;right:8px;width:calc(100% - 16px);border:0;border-radius:9px;padding:9px 12px;text-align:left;color:#111;overflow:hidden}.diary-appt b,.diary-appt span{display:block;line-height:1.3}.diary-appt b{font-size:.88rem}.diary-appt span{font-size:.82rem;margin-top:3px}
.diary-tone-0{background:#79c6e2}.diary-tone-1{background:#e28bd1}.diary-tone-2{background:#b8d98c}.diary-tone-3{background:#e6bd7f}.no-day-bookings{padding:25px;color:#aaa;text-align:center}

/* ===== v14 scrollable admin diary ===== */
.diary-actions{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 16px 0;color:#aaa;font-size:.78rem
}
.diary-actions .today-btn{margin:0}
.diary-scroll{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-color:#777 #191919;
  scrollbar-width:thin;
  padding-bottom:10px;
  touch-action:pan-x pan-y;
}
.diary-scroll::-webkit-scrollbar{height:10px}
.diary-scroll::-webkit-scrollbar-track{background:#191919}
.diary-scroll::-webkit-scrollbar-thumb{background:#666;border-radius:999px}
.timeline-wrap{
  position:relative;
  margin-top:12px;
  overflow:visible!important;
  background:#0d0d0d;
}
.time-axis{
  position:absolute;left:0;top:0;width:78px;height:100%;
  border-right:1px solid #353535;
  background:#0d0d0d;
  z-index:3;
}
.appointment-lane{
  position:absolute;
  left:78px!important;
  right:auto!important;
  top:0;height:100%;
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#1f1f1f 32px);
}
.diary-appt{
  right:auto!important;
  position:absolute;
}
@media(max-width:700px){
  .diary-actions span{font-size:.72rem}
  .visual-diary{border-radius:14px}
}

/* ===== v15 hero without book appointment button ===== */
.hero .actions,
.hero-actions,
.hero-buttons{
  gap:12px;
}

/* ===== v19 direct back to full services ===== */


/* ===== v25 polish: complete logo, natural gallery, separate admin ===== */
.brand.branded img{width:46px;height:46px;object-fit:contain!important;border-radius:50%!important;padding:3px;background:#efe2d4}
.hero-logo{object-fit:contain!important;padding:8px;background:#efe2d4}

/* Show the complete photograph instead of cropping it into dark/boxed tiles. */
.photos{align-items:start;grid-auto-rows:auto}
.photos button{aspect-ratio:auto!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.photos img{height:auto!important;max-height:none;object-fit:contain!important;border-radius:14px;box-shadow:0 7px 20px rgba(25,18,14,.08);background:#f4ece5}
.photos em{bottom:8px;left:8px;background:rgba(23,20,17,.72)}
.preview button{background:#f4ece5!important}
.preview img{object-fit:contain!important}

.admin-page{background:#f6f0ea}
.admin-login{background:linear-gradient(180deg,#f6f0ea 0%,#efe4da 100%)}
.admin-login .card{padding:30px 28px;box-shadow:0 20px 55px rgba(35,25,18,.10)}
.admin-login-logo{width:82px;height:82px;display:block;margin:0 auto 12px;border:1px solid #c7b29e;border-radius:50%;object-fit:contain;padding:5px;background:#efe2d4}
.admin-kicker{display:block;font-size:.68rem;letter-spacing:.18em;font-weight:900;color:#8c6c5d;margin-bottom:5px}
.admin-login h2{font-family:Georgia,"Times New Roman",serif;font-size:2rem;margin:5px 0}
.admin-site-link{display:inline-block;margin-top:17px;color:#7b665b;text-decoration:none;font-weight:700;font-size:.86rem}
.admin-nav-brand{display:flex;gap:10px;align-items:center;padding:3px 6px 18px;margin-bottom:5px;border-bottom:1px solid #39312d}
.admin-nav-brand img{width:42px;height:42px;border-radius:50%;object-fit:contain;padding:3px;background:#efe2d4}
.admin-nav-brand span{display:grid}.admin-nav-brand small{color:#b9aaa1}.admin-view-site{color:#d7c9c1;text-decoration:none;font-size:.78rem;font-weight:700;margin-top:auto;padding:14px 10px}
.diary-card{padding:14px!important}
.diary-date-row{display:flex;justify-content:flex-end;margin-bottom:10px}
.diary-date-row label{font-size:.72rem;font-weight:800;color:#74675e;display:flex;align-items:center;gap:9px}
.diary-date-row input{width:auto!important;padding:8px 10px!important;background:#fff}
.visual-diary{background:#fffaf6!important;color:#241e1a!important;border:1px solid #dfd2c7!important;border-radius:15px!important;box-shadow:0 8px 25px rgba(35,25,18,.05)}
.diary-toolbar{grid-template-columns:38px 1fr 38px!important;padding:10px 12px!important;border-bottom:1px solid #e3d7cd!important}
.diary-toolbar button{width:32px!important;height:32px!important;border:1px solid #d6c7bb!important;background:#f3e9e0!important;color:#3b302a!important;font-size:1.25rem!important}
.diary-toolbar small{color:#8b766a!important}.diary-toolbar h3{font-family:Georgia,"Times New Roman",serif;font-size:1rem!important;color:#241e1a;margin:2px 0 0!important}
.diary-actions{padding:7px 12px!important;color:#7c6e65!important;border-bottom:1px solid #eee4dc;align-items:center}
.diary-actions .today-btn{border:1px solid #d7c8bc!important;background:#fff!important;color:#4e4038!important;padding:6px 12px!important}
.diary-scroll{padding-bottom:5px!important;scrollbar-color:#c8b6aa #f1e8e1!important}
.diary-scroll::-webkit-scrollbar{height:7px!important}.diary-scroll::-webkit-scrollbar-track{background:#f1e8e1!important}.diary-scroll::-webkit-scrollbar-thumb{background:#c8b6aa!important}
.timeline-wrap{margin-top:0!important;background:#fffaf6!important}
.time-axis{width:58px!important;border-right:1px solid #e5dad1!important;background:#fffaf6!important}
.diary-hour{border-top:1px solid #eadfd7!important}.diary-hour span{top:-9px!important;left:7px!important;background:#fffaf6!important;padding:0 5px 0 0!important;font-size:.68rem!important;color:#86756b!important;font-weight:800!important}
.appointment-lane{left:58px!important;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 18px,#f0e7e0 19px)!important}
.diary-appt{border-radius:8px!important;padding:6px 8px!important;box-shadow:0 3px 10px rgba(40,28,20,.08);border:1px solid rgba(80,60,50,.10)!important}
.diary-appt b{font-size:.74rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.diary-appt span{font-size:.7rem!important;margin-top:2px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.diary-appt small{font-size:.62rem!important;display:block;margin-top:2px}
.diary-tone-0{background:#ead9d1!important}.diary-tone-1{background:#e4d9e1!important}.diary-tone-2{background:#dce4d7!important}.diary-tone-3{background:#eadfca!important}.no-day-bookings{color:#8f8077!important;padding:22px!important}
@media(max-width:700px){.dashboard article{padding:12px!important}.diary-card{padding:9px!important}.diary-date-row{justify-content:stretch}.diary-date-row label{width:100%;justify-content:space-between}.photos{grid-template-columns:1fr 1fr}}


/* ===== v26 deposit payment status ===== */
.diary-appt.deposit-due{background:#f4d8d6!important;border-color:#d89a96!important;color:#3f2321!important}
.diary-appt.deposit-paid{background:#dcebd9!important;border-color:#9fbe9a!important;color:#20351f!important}
.diary-appt.deposit-none{background:#eee7df!important;border-color:#d3c6bb!important;color:#403832!important}
.diary-appt.deposit-due small{color:#8c3731!important;font-weight:800}
.diary-appt.deposit-paid small{color:#356b34!important;font-weight:800}
.deposit-paid-control{display:flex;align-items:center;gap:12px;margin-top:18px;padding:14px 15px;border-radius:13px;border:1px solid;cursor:pointer;transition:.15s ease}
.deposit-paid-control input{width:20px!important;height:20px!important;margin:0;accent-color:#568454;flex:0 0 auto}
.deposit-paid-control span{display:flex;flex-direction:column;gap:2px;text-align:left}.deposit-paid-control b{font-size:.92rem}.deposit-paid-control small{font-size:.76rem;opacity:.78}
.deposit-paid-control.is-due{background:#f8e5e3;border-color:#d9a29e;color:#6c302c}
.deposit-paid-control.is-paid{background:#e4f0e1;border-color:#a7c5a2;color:#2d5a2b}
.deposit-no-payment{margin-top:18px;padding:12px 14px;border-radius:12px;background:#eee8e1;border:1px solid #d8ccc2;color:#6f6259;font-weight:700;font-size:.85rem}

/* v28 appointment status */
.appt-status{display:inline-block!important;width:max-content;margin-top:4px;padding:2px 7px;border-radius:999px;font-style:normal;font-size:.58rem!important;font-weight:800;line-height:1.35!important;background:rgba(255,255,255,.68);border:1px solid rgba(0,0,0,.08)}
.appt-status.status-arrived{background:#fff0c8}
.appt-status.status-completed{background:#dcebd9}
.appt-status.status-no_show{background:#eadfe8}
.appointment-status-control{margin-top:16px;padding:13px 14px;border:1px solid #ded4ca;border-radius:13px;background:#faf7f3;text-align:left}
.appointment-status-control label{display:flex;flex-direction:column;gap:7px;font-size:.8rem;font-weight:800}
.appointment-status-control select{width:100%;padding:10px 11px;border:1px solid #cfc3b9;border-radius:9px;background:white;font:inherit;font-weight:600}

/* ===== v29 cloud gallery sync + edit/replace ===== */
.gallery-admin-info{display:grid;gap:4px}.gallery-admin-info small{display:block;color:#8b7e74}
.gallery-admin-actions{display:flex;gap:8px;align-items:center}.gallery-admin-actions button{border:0;border-radius:10px;padding:9px 12px;font-weight:800;background:#f3ece7;color:#6f5548;cursor:pointer}.gallery-admin-actions .danger-btn{background:#f8e8e8;color:#9b3f3f}
.gallery-edit-preview{width:100%;max-height:260px;object-fit:contain;border-radius:14px;background:#f4efeb;border:1px solid #e3d8cf}
@media(max-width:650px){.gallery-admin-actions{grid-column:2;flex-wrap:wrap}.gallery-admin-actions button{flex:1 1 auto}}


/* v31 customer profiles + booking management */
.customer-row{cursor:pointer}.customer-row:hover{background:rgba(0,0,0,.035)}
.customer-contact{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;padding:14px 0 18px;border-bottom:1px solid rgba(0,0,0,.08);margin-bottom:18px}.customer-contact span{text-align:right}.customer-profile h3{margin:20px 0 8px}.customer-booking-detail{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid rgba(0,0,0,.08)}.customer-booking-detail>div:last-child{text-align:right;white-space:nowrap}
#mine .card input+input{margin-top:10px}.manage-help{display:block;margin-top:10px;opacity:.65}.my-booking-card{margin-top:16px}.my-booking-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.my-booking-head h3{margin:4px 0 0}.status-pill{font-size:12px;padding:6px 10px;border-radius:999px;background:#f2eee8}.my-booking-actions{display:flex;gap:10px;margin-top:18px}.my-booking-actions button{flex:1}.danger-outline{border-color:#9f3d3d!important;color:#7b2323!important}.cutoff-note{display:block;margin-top:10px;opacity:.65}.cutoff-locked{margin-top:16px;padding:12px;border-radius:12px;background:#f5f1eb;font-size:13px}.booking-reference{margin:16px 0;padding:14px;border:1px solid rgba(0,0,0,.12);border-radius:14px;text-align:center}.booking-reference small,.booking-reference span{display:block}.booking-reference b{display:block;font-size:22px;letter-spacing:2px;margin:4px 0}.text-back{padding:0;border:0;background:transparent;text-decoration:underline;margin-bottom:8px}

/* v31.2 secure admin PIN recovery */
.pin-reset-overlay{position:fixed;inset:0;z-index:99999;background:#f3ebe2;display:grid;place-items:center;padding:24px}.pin-reset-card{width:min(430px,100%);background:#fffaf5;border:1px solid #dfd0c2;border-radius:24px;padding:30px;box-shadow:0 22px 60px rgba(45,34,26,.18);text-align:center}.pin-reset-card img{width:92px;height:92px;object-fit:contain;border-radius:50%;margin-bottom:12px}.pin-reset-card h2{margin:8px 0 10px}.pin-reset-card p{margin:0 0 18px}.pin-reset-card input{width:100%;box-sizing:border-box;margin:7px 0;padding:14px;border:1px solid #d9c9bb;border-radius:12px;font:inherit}.pin-reset-card button{margin-top:12px}.pin-reset-card small{display:block;margin-top:14px;opacity:.65}

/* ===== v31.4 phone-friendly admin ===== */
.mobile-diary-list{display:grid;gap:10px;padding:12px}
.mobile-diary-appt{width:100%;display:grid;grid-template-columns:58px minmax(0,1fr) auto 16px;gap:10px;align-items:center;border:1px solid #d8cabf;border-radius:14px;padding:12px;background:#fff;text-align:left;color:#2b2521;box-shadow:0 3px 12px rgba(40,28,20,.05);cursor:pointer}
.mobile-diary-appt.deposit-due{background:#f8e5e3!important;border-color:#d9a29e!important;color:#5b2b28!important}
.mobile-diary-appt.deposit-paid{background:#e4f0e1!important;border-color:#a7c5a2!important;color:#284b27!important}
.mobile-diary-appt.deposit-none{background:#f3eee8!important;border-color:#d8ccc1!important;color:#3f3833!important}
.mobile-appt-time{display:flex;flex-direction:column;font-weight:900;font-size:1.08rem;line-height:1.05}.mobile-appt-time small{font-size:.65rem;font-weight:700;color:#786b63;margin-top:4px}
.mobile-appt-main{display:grid;min-width:0;gap:3px}.mobile-appt-main b{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-appt-main>span{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-appt-main small{font-size:.7rem;font-weight:800}
.mobile-appt-status{font-style:normal;font-size:.68rem;font-weight:900;border-radius:999px;padding:6px 8px;background:rgba(255,255,255,.7);white-space:nowrap}
.mobile-appt-arrow{font-size:1.4rem;font-weight:700;opacity:.5}

@media(max-width:700px){
  body.admin-page{background:#f7f1ec}
  .dashboard{display:block;min-height:100vh}
  .dashboard nav{position:sticky;top:0;z-index:60;display:flex!important;flex-direction:row!important;align-items:center;gap:6px;padding:8px 8px calc(8px + env(safe-area-inset-top));background:#241f21;overflow-x:auto;overflow-y:hidden;white-space:nowrap;box-shadow:0 5px 16px rgba(0,0,0,.14);scrollbar-width:none}
  .dashboard nav::-webkit-scrollbar{display:none}
  .admin-nav-brand{display:none!important}.admin-view-site{display:none!important}
  .dashboard nav button{flex:0 0 auto;min-height:44px;padding:10px 13px!important;border-radius:11px;background:#342c28!important;color:#f7eee8!important;font-size:.78rem;text-align:center!important;letter-spacing:0}
  .dashboard nav button:active{background:#4a3d37!important;transform:scale(.98)}
  .dashboard article{padding:14px 12px 28px!important;max-width:none}
  .tab>.head{align-items:flex-start;gap:10px;margin-bottom:12px}.tab>.head h2{font-size:1.6rem}.tab>.head p{font-size:.86rem;margin:6px 0 0;line-height:1.4}
  .tab>.head .primary,.tab>.head>button{flex:0 0 auto;min-height:44px;padding:11px 13px}
  .stats{grid-template-columns:repeat(3,1fr)!important;gap:7px}.stats div,.stats div:last-child{grid-column:auto!important;padding:11px 8px;text-align:center;border-radius:12px}.stats b{font-size:1.2rem}.stats small{font-size:.65rem}
  .card{border-radius:15px;padding:14px;margin:10px 0}.diary-card{padding:0!important;overflow:hidden}.diary-date-row{padding:10px 10px 0;margin-bottom:8px}.diary-date-row label{font-size:.72rem}.diary-date-row input{min-height:42px;font-size:16px}
  .mobile-diary .diary-toolbar{padding:10px!important}.mobile-diary .diary-toolbar button{width:42px!important;height:42px!important;font-size:1.55rem!important}.mobile-diary .diary-toolbar h3{font-size:1.02rem!important}
  .mobile-diary .diary-actions{padding:8px 10px!important}.mobile-diary .today-btn{min-height:38px;padding:7px 14px!important}
  .adminrow{align-items:center;padding:14px 2px;min-height:62px}.adminrow>div{min-width:0}.adminrow b{font-size:.95rem}.adminrow button{min-height:42px;min-width:62px;padding:9px 12px}.customer-row{cursor:pointer;border-radius:11px;padding:13px 8px}.customer-row:active{background:#f5ece6}.customer-row small{font-size:.72rem;text-align:right}
  #customerList.card,#serviceList.card{padding:6px 12px}
  .gallery-admin-list{gap:10px}.gallery-admin-row{grid-template-columns:76px minmax(0,1fr);gap:10px;padding:10px}.gallery-admin-row img{width:76px;height:76px}.gallery-admin-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}.gallery-admin-actions button{min-height:42px;border-radius:10px;padding:9px 12px}.gallery-admin-row .danger-btn{grid-column:auto;justify-self:stretch}
  .hoursrow{grid-template-columns:1fr 74px!important;gap:8px 7px;padding:12px 0;border-bottom:1px solid #eee4dc}.hoursrow input,.hoursrow select{min-height:44px;font-size:16px}.hoursrow input:nth-of-type(1),.hoursrow input:nth-of-type(2){grid-column:auto}
  .modal{padding:0;place-items:end center;background:#0008}.modalbox{width:100%;max-height:92vh;overflow:auto;border-radius:22px 22px 0 0;padding:24px 18px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -10px 35px rgba(0,0,0,.16)}.modalbox h2{font-size:1.55rem;margin-top:4px}.x{width:44px;height:44px;right:8px;top:6px;border-radius:50%;background:#f2eae4;font-size:1.6rem}
  .form{gap:12px}.form input,.form textarea,.form select,.card input,.card select{min-height:48px;font-size:16px;border-radius:12px}.form textarea{min-height:100px}.form .primary,.modalbox .primary{min-height:50px;font-size:1rem}
  .appointment-status-control select{min-height:48px;font-size:16px}.deposit-paid-control{padding:16px 14px;min-height:62px}.deposit-paid-control input{width:24px!important;height:24px!important}
  .customer-contact{grid-template-columns:1fr;gap:3px}.customer-contact b{margin-top:7px}.customer-contact span{text-align:left;word-break:break-word}.customer-booking-detail{display:grid;grid-template-columns:1fr auto;gap:10px}.customer-booking-detail>div:last-child{text-align:right}
  #toast{bottom:calc(14px + env(safe-area-inset-bottom));max-width:calc(100% - 28px);width:max-content;text-align:center}
}

@media(max-width:390px){
  .mobile-diary-appt{grid-template-columns:52px minmax(0,1fr) 14px}.mobile-appt-status{grid-column:2;justify-self:start}.mobile-appt-arrow{grid-column:3;grid-row:1/3}.mobile-appt-time{font-size:1rem}
  .stats b{font-size:1.05rem}.stats small{font-size:.6rem}
}
\n\n/* ===== v31.5 phone-friendly timeline diary ===== */
@media(max-width:700px){
  .phone-timeline{border-radius:0!important}
  .phone-timeline .diary-toolbar{position:sticky;top:60px;z-index:12;padding:9px 10px!important;background:#fffaf6!important}
  .phone-timeline .diary-toolbar button{width:42px!important;height:42px!important;font-size:1.55rem!important}
  .phone-timeline .diary-toolbar h3{font-size:1rem!important}
  .phone-timeline .diary-actions{position:sticky;top:112px;z-index:11;padding:7px 10px!important;background:#fffaf6!important}
  .phone-timeline .today-btn{min-height:38px;padding:7px 14px!important}
  .phone-timeline .diary-scroll{max-height:68vh;overflow:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;background:#fffaf6}
  .phone-timeline .timeline-wrap{min-width:308px!important;background:#fffaf6!important}
  .phone-timeline .time-axis{position:sticky;left:0;z-index:6;width:52px;background:#fffaf6}
  .phone-timeline .appointment-lane{margin-left:52px!important}
  .phone-timeline .diary-hour span{position:sticky;left:6px;z-index:7;width:44px;font-size:.7rem!important;background:#fffaf6!important}
  .phone-timeline .diary-appt{padding:7px 8px!important;border-radius:9px!important;min-height:38px;touch-action:manipulation}
  .phone-timeline .diary-appt b{font-size:.76rem!important}.phone-timeline .diary-appt span{font-size:.7rem!important}
  .phone-timeline .appt-status{font-size:.58rem!important;padding:2px 5px!important}
}


/* ===== v31.6 clickable upcoming appointment list ===== */
.stats .stat-card{background:white;border:1px solid var(--line);border-radius:15px;padding:16px;text-align:left;color:var(--dark);font:inherit;width:100%}
.stats .stat-card b{display:block;font-size:1.6rem}
.stats .stat-card span{display:block;margin-top:4px;font-size:.7rem;font-weight:800;color:#9a5c71}
.stats .stat-clickable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}
.stats .stat-clickable:active{transform:scale(.98)}
.upcoming-list-modal h2{margin-bottom:3px}.upcoming-list-count{margin-top:0;color:var(--muted)}
.upcoming-appt-list{display:grid;gap:9px;max-height:min(62vh,560px);overflow:auto;padding:2px}
.upcoming-appt-card{width:100%;display:grid;grid-template-columns:105px minmax(0,1fr) auto 14px;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;text-align:left;color:var(--dark);cursor:pointer}
.upcoming-appt-date{display:grid;gap:3px}.upcoming-appt-date b{font-size:.78rem}.upcoming-appt-date span{font-size:1rem;font-weight:900;color:#9a5c71}
.upcoming-appt-main{display:grid;gap:3px;min-width:0}.upcoming-appt-main strong,.upcoming-appt-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-appt-main span{font-size:.78rem;color:var(--muted)}
.upcoming-deposit{width:max-content;border-radius:999px;padding:3px 7px;font-size:.64rem!important;font-weight:800}.upcoming-deposit.paid{background:#e4f1e2;color:#42643c}.upcoming-deposit.due{background:#f8dddd;color:#8b3e3e}
.upcoming-appt-status{font-style:normal;font-size:.68rem;font-weight:800;background:#f2eee8;border-radius:999px;padding:5px 7px;white-space:nowrap}.upcoming-appt-card i{font-style:normal;font-size:1.4rem;color:#9a5c71}
@media(max-width:700px){.stats .stat-card{padding:11px 8px;text-align:center;border-radius:12px}.stats .stat-card b{font-size:1.2rem}.stats .stat-card span{font-size:.58rem}.upcoming-appt-list{max-height:68vh}.upcoming-appt-card{grid-template-columns:82px minmax(0,1fr) 12px;gap:8px;padding:12px 10px;min-height:76px}.upcoming-appt-status{grid-column:2;justify-self:start}.upcoming-appt-card i{grid-column:3;grid-row:1/3}.upcoming-appt-date b{font-size:.68rem}.upcoming-appt-date span{font-size:1rem}.upcoming-appt-main strong{font-size:.9rem}.upcoming-appt-main span{font-size:.72rem}}

/* v31.10 — Admin login PIN recovery */
.admin-forgot-pin{display:block;width:100%;margin:10px 0 2px;padding:10px 12px;border:0;background:transparent;color:#5b5046;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer}
.admin-forgot-pin:hover{color:#171411}
.admin-forgot-pin:disabled{opacity:.55;cursor:wait}
.admin-reset-message{min-height:18px;margin:8px 0 2px;font-size:13px;line-height:1.35;color:#6a5f55;text-align:center}
@media(max-width:700px){.admin-forgot-pin{padding:13px 10px;font-size:15px}.admin-reset-message{font-size:14px}}

/* v31.11 — admin logout */
.admin-logout{margin-top:8px!important;border:1px solid rgba(255,255,255,.16)!important;background:#342c28!important;color:#fff!important;border-radius:11px!important;padding:11px 12px!important;text-align:left!important;cursor:pointer}
.admin-logout:hover{background:#493d37!important}
@media(max-width:700px){.admin-logout{display:block!important;flex:0 0 auto!important;min-height:44px!important;margin-top:0!important;padding:10px 14px!important;background:#5a4038!important;text-align:center!important}}
