:root{
  --blue-950:#0a2342;
  --blue-900:#0e315c;
  --blue-800:#0c4482;
  --blue-700:#0b5db6;
  --blue-600:#0d6fd3;
  --blue-100:#eaf4ff;
  --blue-50:#f4f9ff;
  --red-600:#d92f3d;
  --red-50:#fff1f2;
  --green-600:#07965a;
  --green-50:#eaf9f2;
  --ink:#152943;
  --muted:#667a95;
  --line:#dbe5f1;
  --line-soft:#eaf0f6;
  --surface:#ffffff;
  --surface-soft:#f6f9fd;
  --shadow-sm:0 8px 22px rgba(18,55,98,.07);
  --shadow-md:0 18px 46px rgba(18,55,98,.10);
  --shadow-lg:0 28px 70px rgba(12,49,92,.14);
  --radius-sm:12px;
  --radius-md:18px;
  --radius-lg:26px;
  --container:1200px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;overflow-x:hidden}
body{
  margin:0;
  min-width:320px;
  overflow-x:hidden;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--surface);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.modal-open{overflow:hidden}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{color:inherit}
a{color:inherit}
img,svg{max-width:100%;display:block}
[hidden]{display:none!important}

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:28px;
}
.section,.section-soft,#studio,#booking,#schedule,#check{scroll-margin-top:92px}

/* Header */
.scroll-progress{
  position:fixed;
  z-index:2000;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg,var(--blue-600),var(--red-600));
  transform:scaleX(0);
  transform-origin:left center;
}
.topbar{
  position:sticky;
  top:0;
  z-index:1000;
  padding-top:env(safe-area-inset-top);
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(219,229,241,.9);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
  transition:box-shadow .2s ease,background .2s ease;
}
.topbar.scrolled{box-shadow:0 10px 28px rgba(11,50,96,.08);background:rgba(255,255,255,.985)}
.topbar-inner{height:74px;display:flex;align-items:center;gap:18px;min-width:0}
.brand{display:inline-flex;align-items:center;gap:11px;min-width:0;text-decoration:none;flex:0 1 auto}
.brand>span:last-child{min-width:0}
.brand-mark{
  width:44px;height:44px;flex:0 0 44px;border-radius:14px;
  display:grid;place-items:center;
  color:#fff;font-size:14px;font-weight:950;letter-spacing:.03em;
  background:linear-gradient(145deg,var(--blue-800),var(--blue-600));
  box-shadow:0 10px 22px rgba(11,93,182,.24),inset 0 1px 0 rgba(255,255,255,.25);
}
.brand strong,.brand small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand strong{font-size:16px;line-height:1.15;color:var(--blue-950)}
.brand small{margin-top:3px;font-size:11px;line-height:1.1;color:#71829a}
.nav{margin-left:auto;display:flex;align-items:center;gap:2px}
.nav a{padding:10px 11px;border-radius:11px;text-decoration:none;font-size:13px;font-weight:800;color:#445a76;white-space:nowrap;transition:.18s ease}
.nav a:hover,.nav a:focus-visible{background:var(--blue-50);color:var(--blue-700)}
.nav-toggle,.mobile-nav{display:none}
.desktop-wa{margin-left:2px}

/* Common */
.btn{
  min-height:46px;
  border:0;
  border-radius:13px;
  padding:12px 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-decoration:none;
  text-align:center;
  font-weight:850;
  font-size:14px;
  line-height:1.2;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;
}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn:active:not(:disabled){transform:translateY(0)}
.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.btn.primary{color:#fff;background:linear-gradient(135deg,var(--blue-800),var(--blue-600));box-shadow:0 11px 24px rgba(11,93,182,.21)}
.btn.secondary{color:var(--blue-900);background:#fff;border:1px solid #cfdceb;box-shadow:0 4px 12px rgba(24,59,99,.04)}
.btn-wa{color:#fff;background:linear-gradient(135deg,#0b9f60,#12b76a);box-shadow:0 10px 22px rgba(16,169,99,.2)}
.wide{width:100%}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}
.kicker,.section-kicker{display:inline-block;font-size:11px;line-height:1.3;letter-spacing:.13em;font-weight:950;color:var(--blue-700)}

/* Hero */
.hero-section{
  position:relative;
  isolation:isolate;
  padding:78px 0 72px;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 0%,rgba(22,123,224,.14),transparent 32%),
    radial-gradient(circle at 88% 14%,rgba(217,47,61,.08),transparent 24%),
    linear-gradient(180deg,#f8fbff 0%,#fff 100%);
}
.hero-section::after{
  content:"";position:absolute;z-index:-1;right:-130px;bottom:-180px;width:420px;height:420px;border-radius:50%;
  border:72px solid rgba(11,93,182,.035);
}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:46px;align-items:center}
.hero-copy{min-width:0}
.hero-copy h1{max-width:760px;margin:14px 0 18px;font-size:clamp(42px,5.1vw,68px);line-height:1.03;letter-spacing:-.045em;color:#112b4d;text-wrap:balance}
.hero-copy h1 span{color:var(--blue-700)}
.hero-copy p{max-width:720px;margin:0;font-size:17px;line-height:1.72;color:#5c718e}
.hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin:28px 0 24px}
.trust-row{display:flex;flex-wrap:wrap;gap:9px 16px;color:#46607f;font-size:13px;font-weight:750}
.trust-row span{display:inline-flex;align-items:center;gap:5px}
.hero-card{position:relative;padding:27px;overflow:hidden;box-shadow:var(--shadow-lg)}
.hero-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--blue-600),var(--red-600))}
.hero-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.hero-card-head small{color:#7587a0;font-weight:700}
.hero-card-head h2{margin:4px 0 0;font-size:25px;letter-spacing:-.02em}
.live-dot{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:var(--green-50);color:#087d4b;font-size:11px;font-weight:900}
.flow-list{list-style:none;margin:22px 0;padding:0;display:grid;gap:10px}
.flow-list li{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line-soft);border-radius:15px;background:#fff}
.flow-list b{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:11px;background:var(--blue-100);color:var(--blue-700)}
.flow-list strong,.flow-list small{display:block}
.flow-list strong{font-size:14px;color:#193453}
.flow-list small{margin-top:1px;font-size:12px;color:#7889a0}
.contact-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:17px;border-top:1px solid var(--line-soft);font-size:13px;color:#6b7d95}
.contact-strip a{font-weight:900;text-decoration:none;color:var(--green-600);white-space:nowrap}

/* Section headings */
.section,.section-soft{padding:72px 0}
.section-soft{background:linear-gradient(180deg,#f7faff,#f4f8fd);border-block:1px solid #e5edf7}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:27px}
.section-head>div:first-child{min-width:0}
.section-head h2,.check-grid h2{margin:6px 0 4px;font-size:clamp(29px,3.8vw,44px);line-height:1.12;letter-spacing:-.035em;color:#132e50;text-wrap:balance}
.section-head p,.check-grid p{margin:0;color:var(--muted)}
.selection-pill,.legend{flex:0 0 auto;border:1px solid #d3e4f7;border-radius:999px;background:#edf6ff;color:var(--blue-800);font-size:12px;font-weight:850}
.selection-pill{padding:10px 14px;white-space:nowrap}
.legend{display:flex;align-items:center;gap:12px;padding:10px 13px;white-space:nowrap}
.legend span{display:inline-flex;align-items:center;gap:6px}
.dot{width:8px;height:8px;border-radius:50%;background:#16a264}.dot.busy{background:var(--red-600)}.dot.past{background:#99a8bb}

/* Studio cards */
.studio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.studio-card{
  position:relative;min-width:0;min-height:290px;padding:27px;text-align:left;
  border:2px solid #dce6f2;border-radius:24px;background:#fff;color:var(--ink);
  box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.studio-card::after{content:"";position:absolute;right:-52px;bottom:-70px;width:180px;height:180px;border-radius:50%;background:rgba(11,93,182,.035);pointer-events:none}
.studio-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.studio-card.selected{border-color:var(--blue-600);background:linear-gradient(145deg,#fff,#f6fbff);box-shadow:0 0 0 4px rgba(13,111,211,.08),var(--shadow-md)}
.studio-card.premium{background:linear-gradient(145deg,#fff 0%,#fff 72%,#fff6f7 100%)}
.studio-badge{position:absolute;top:19px;right:19px;z-index:1;padding:7px 10px;border-radius:999px;background:var(--blue-100);color:var(--blue-700);font-size:10px;font-weight:950;letter-spacing:.02em}
.premium-badge{background:var(--red-50);color:#bf2835}
.studio-icon{display:block;font-size:33px;line-height:1}
.studio-card h3{margin:16px 0 7px;font-size:24px;line-height:1.18;letter-spacing:-.02em}
.studio-card p{max-width:530px;min-height:48px;margin:0;color:var(--muted);font-size:14px}
.studio-price{display:block;margin:19px 0 17px;font-size:28px;line-height:1.1;color:var(--blue-800)}
.studio-price small{font-size:12px;font-weight:750;color:#788aa2}
.feature-row{display:flex;flex-wrap:wrap;gap:7px}
.feature-row span{padding:7px 9px;border-radius:9px;background:#f1f6fc;color:#526984;font-size:11px;font-weight:800}
.choose-label{display:block;margin-top:20px;color:var(--blue-700);font-size:13px;font-weight:950}

/* Booking form */
.booking-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:22px;align-items:start}
.booking-form{min-width:0;padding:25px}
.stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px}
.stepper span{min-width:0;padding:10px 7px;border-radius:12px;background:#f1f5f9;color:#7c8da2;text-align:center;font-size:11px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stepper span b{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:4px;border-radius:50%;background:#dce5ef;color:#687b91;font-size:10px}
.stepper span.active{background:#e8f3ff;color:var(--blue-700)}
.stepper span.active b{background:var(--blue-700);color:#fff}
.form-section{padding:21px 0;border-top:1px solid var(--line-soft)}
.form-section:first-of-type{border-top:0}
.form-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:15px}
.form-title>span{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,var(--blue-800),var(--blue-600));color:#fff;font-weight:900;box-shadow:0 7px 16px rgba(11,93,182,.16)}
.form-title h3{margin:0;font-size:17px;line-height:1.25;color:#1b3859}
.form-title p{margin:3px 0 0;color:#74869e;font-size:12px}
.date-strip{display:grid;grid-auto-flow:column;grid-auto-columns:82px;gap:9px;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:3px 2px 9px;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#cbd9e9 transparent}
.date-chip{scroll-snap-align:start;min-height:84px;border:1px solid #d7e2ef;border-radius:15px;background:#fff;color:#2a4564;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:.16s ease}
.date-chip:hover{border-color:#a9c8eb;background:#fbfdff}
.date-chip.active{border-color:var(--blue-600);background:#eaf4ff;color:var(--blue-800);box-shadow:0 0 0 3px rgba(13,111,211,.08)}
.date-chip strong{font-size:21px;line-height:1.1}.date-chip small,.date-chip span{font-size:10px;font-weight:750}
.time-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.duration-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.slot-btn,.duration-btn{min-width:0;min-height:54px;padding:8px;border:1px solid #d7e2ef;border-radius:13px;background:#fff;color:#24415f;cursor:pointer;transition:.16s ease}
.slot-btn:hover:not(:disabled),.duration-btn:hover:not(:disabled){border-color:#9fc1e7;background:#fafdff}
.slot-btn strong,.slot-btn small{display:block;white-space:nowrap}
.slot-btn strong{font-size:14px}.slot-btn small{margin-top:1px;font-size:9px;color:#15955b}
.slot-btn.active,.duration-btn.active{border-color:var(--blue-700);background:linear-gradient(145deg,var(--blue-800),var(--blue-600));color:#fff;box-shadow:0 8px 16px rgba(11,93,182,.16)}
.slot-btn.active small{color:#dff1ff}
.slot-btn.disabled,.duration-btn.disabled{background:#f3f5f8;color:#9aa8b8;border-style:dashed;cursor:not-allowed}
.slot-btn.disabled small{color:#a1acb8}
/* Slot booking: merah = sudah terisi, abu-abu = jam sudah lewat */
.slot-btn.booked,.slot-btn.booked:disabled{
  background:linear-gradient(145deg,#d92f3d,#b91f2d);
  color:#fff;
  border:1px solid #a91d29;
  border-style:solid;
  box-shadow:0 6px 14px rgba(185,31,45,.18);
  opacity:1;
}
.slot-btn.booked strong,.slot-btn.booked small{color:#fff}
.slot-btn.booked small{font-weight:850}
.slot-btn.past,.slot-btn.past:disabled{background:#f3f5f8;color:#9aa8b8;border-color:#d7dee7;border-style:dashed;opacity:1}
.slot-btn.past small{color:#a1acb8}
.slot-note{margin:9px 0 0;color:#74869e;font-size:11px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid label,.check-card label,.login-card label,.filters label{min-width:0;color:#455b75;font-size:12px;font-weight:850}
.form-grid label.full{grid-column:1/-1}
.form-grid input,.form-grid textarea,.check-card input,.login-card input,.filters input,.filters select{
  width:100%;min-width:0;margin-top:6px;border:1px solid #cbd8e8;border-radius:12px;background:#fff;color:#172e4c;outline:none;padding:13px 14px;line-height:1.3;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.form-grid textarea{min-height:104px;resize:vertical}
.form-grid input::placeholder,.form-grid textarea::placeholder,.check-card input::placeholder,.login-card input::placeholder,.filters input::placeholder{color:#9aa8b8}
.form-grid input:focus,.form-grid textarea:focus,.check-card input:focus,.login-card input:focus,.filters input:focus,.filters select:focus{border-color:var(--blue-600);box-shadow:0 0 0 4px rgba(13,111,211,.09);background:#fff}
.form-grid small{display:block;margin-top:4px;color:#8a99ac;font-size:10px;font-weight:600}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.status-box{margin-top:15px;padding:13px 14px;border-radius:12px;font-size:12px;font-weight:800;overflow-wrap:anywhere}
.status-box.loading{background:#f2f6fb;color:#657992;border:1px solid #e1e8f0}
.status-box.success{background:var(--green-50);color:#087b4a;border:1px solid #c7ead9}
.status-box.error{background:var(--red-50);color:#ad2632;border:1px solid #f0cbd0}

/* Summary */
.summary-card{position:sticky;top:96px;min-width:0;padding:24px;box-shadow:var(--shadow-lg)}
.summary-card h3{margin:6px 0 15px;font-size:27px;line-height:1.18;letter-spacing:-.025em}
.summary-list>div{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:13px 0;border-bottom:1px dashed #dce5ef}
.summary-list span{color:#74869e;font-size:13px}.summary-list strong{max-width:62%;text-align:right;color:#203d5e;font-size:13px;overflow-wrap:anywhere}
.total-box{margin:18px 0;padding:18px;border:1px solid #d1e4f8;border-radius:18px;background:linear-gradient(145deg,#eaf5ff,#fbfdff)}
.total-box span,.total-box small{display:block;color:#687d97}.total-box span{font-size:12px;font-weight:800}.total-box strong{display:block;margin:4px 0;font-size:31px;line-height:1.1;color:var(--blue-800)}.total-box small{font-size:10px}
.summary-help{margin:12px 0 0;color:#70839c;font-size:11px}
.security-note{margin-top:13px;padding:12px;border-radius:12px;background:#f6f8fb;color:#60748d;font-size:11px}

/* Schedule */
.schedule-panel{padding:19px}
.schedule-list{display:grid;gap:10px}
.schedule-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:15px;align-items:center;padding:15px;border:1px solid #dfe8f3;border-radius:15px;background:#fff}
.schedule-time strong,.schedule-time span{display:block}.schedule-time strong{font-size:19px;line-height:1.1;color:var(--blue-800)}.schedule-time span{margin-top:3px;font-size:11px;color:#788ba3}
.schedule-item h4{margin:0;font-size:14px}.schedule-item p{margin:2px 0 0;color:#74869e;font-size:12px}
.status-pill{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}
.status-pill.confirmed{background:var(--green-50);color:#087b49}.status-pill.cancelled{background:var(--red-50);color:#b42734}.status-pill.completed{background:#eef2f7;color:#4f627a}
.empty-state{text-align:center;padding:34px 18px;color:#71849c;display:grid;gap:5px}.empty-state b{color:#445c78}.error-state,.error-state b{color:#b52834}
.skeleton{height:62px;border-radius:13px;background:linear-gradient(90deg,#edf2f7,#f8fafc,#edf2f7);background-size:210% 100%;animation:skeleton 1.2s linear infinite}
@keyframes skeleton{to{background-position:-210% 0}}

/* Check booking */
.check-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:42px;align-items:center}
.check-grid h2{max-width:560px}.check-grid p{max-width:620px}
.contact-card{max-width:460px;margin-top:22px;padding:18px;border:1px solid #d9e5f3;border-radius:17px;background:#fff;display:grid;gap:4px;box-shadow:var(--shadow-sm)}
.contact-card strong{font-size:12px;color:#657a94}.contact-card span{font-size:22px;font-weight:950;color:var(--blue-800)}.contact-card a{width:max-content;text-decoration:none;color:var(--green-600);font-size:13px;font-weight:900}
.check-card{min-width:0;padding:24px;display:grid;gap:14px}
.check-result{padding:15px;border:1px solid #d7e5f4;border-radius:14px;background:#f5faff;overflow-wrap:anywhere}.check-result.error{background:var(--red-50);border-color:#f0cbd0;color:#a92532}
.check-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.check-head strong{overflow-wrap:anywhere}.check-lines{display:grid;gap:4px;margin-top:10px;color:#607590;font-size:12px}.check-lines b{color:#203f62;font-size:15px}

/* Footer + mobile action */
.footer{padding:30px 0;background:#0e2747;color:#e5eefb}
.footer .container{display:flex;align-items:center;justify-content:space-between;gap:22px}
.footer strong,.footer span{display:block}.footer strong{font-size:14px}.footer span{color:#a8bbd2;font-size:12px}
.mobile-bar{display:none}

/* Modal + toast */
.modal{position:fixed;z-index:1500;inset:0;padding:22px;display:none;place-items:center;background:rgba(7,24,47,.62);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.modal.show{display:grid}
.modal-card{width:min(520px,100%);max-height:calc(100dvh - 44px);overflow:auto;padding:27px;box-shadow:0 34px 90px rgba(0,0,0,.25)}
.success-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:var(--green-50);color:#087e4b;font-size:28px;font-weight:950}
.modal-card h2{margin:8px 0;font-size:29px;line-height:1.16;letter-spacing:-.02em}.modal-card>p{margin:0;color:var(--muted);font-size:13px}
.receipt{margin:18px 0;padding:16px;border:1px solid #dce6f2;border-radius:16px;background:#fbfdff}.receipt-code{padding-bottom:10px;border-bottom:1px dashed #d9e3ef;color:var(--blue-800);font-size:21px;font-weight:950;overflow-wrap:anywhere}.receipt-row{display:flex;justify-content:space-between;gap:16px;padding-top:9px;font-size:12px}.receipt-row strong{text-align:right}
.modal-card>.btn+.btn{margin-top:9px}
.toast-wrap{position:fixed;z-index:1800;right:18px;bottom:18px;display:grid;gap:8px;pointer-events:none}
.toast{min-width:260px;max-width:380px;padding:12px 14px;border-radius:13px;background:#132f52;color:#fff;box-shadow:0 15px 38px rgba(0,0,0,.2);display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(9px);transition:.2s ease;pointer-events:auto;font-size:12px}.toast.show{opacity:1;transform:none}.toast.error{background:#a92532}.toast.info{background:var(--blue-700)}

/* Reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}.reveal.show{opacity:1;transform:none}.delay-1{transition-delay:.07s}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Login */
.login-page{min-height:100vh;min-height:100dvh;padding:24px;display:grid;place-items:center;background:radial-gradient(circle at 15% 5%,#e3f1ff,transparent 34%),linear-gradient(145deg,#f4f9ff,#fff)}
.login-shell{width:min(460px,100%)}
.login-card{padding:28px}.login-brand{margin-bottom:27px}.login-card h1{margin:0;font-size:34px;line-height:1.15;letter-spacing:-.03em}.login-card p{margin:9px 0 0;color:var(--muted);font-size:13px}.login-card form{display:grid;gap:14px;margin-top:22px}.login-error{margin-top:16px;padding:12px;border:1px solid #f0cbd0;border-radius:12px;background:var(--red-50);color:#a92532;font-size:12px;font-weight:800}.back-link{display:inline-block;margin-top:18px;text-decoration:none;color:var(--blue-700);font-size:12px;font-weight:850}

/* Admin */
.admin-page{background:#f5f8fc}
.admin-main{padding:38px 28px 72px}
.admin-main.container{max-width:1320px}
.admin-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:24px}.admin-hero h1{margin:6px 0 3px;font-size:41px;line-height:1.1;letter-spacing:-.035em;color:#132f51}.admin-hero p{margin:0;color:#667a94}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat-card{min-width:0;padding:18px;border:1px solid #dbe5f0;border-radius:18px;background:#fff;box-shadow:var(--shadow-sm)}.stat-card span,.stat-card small{display:block;color:#71839a}.stat-card span{font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.stat-card strong{display:block;margin:5px 0 2px;color:var(--blue-800);font-size:30px;line-height:1.1;overflow-wrap:anywhere}.stat-card small{font-size:10px}
.admin-panel{padding:20px;overflow:hidden}.admin-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.admin-panel-head h2{margin:0;font-size:22px}.admin-panel-head p{margin:3px 0 0;color:#7587a0;font-size:12px}
.filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(140px,1fr));gap:10px;margin:18px 0}.filters label{display:block}.filters input,.filters select{min-height:44px;padding:10px 12px;font-size:12px}
.table-wrap{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid #e3eaf3;border-radius:14px}.data-table{width:100%;min-width:930px;border-collapse:collapse;background:#fff}.data-table th,.data-table td{padding:13px 11px;border-bottom:1px solid #e9eef5;text-align:left;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table th{position:sticky;top:0;z-index:1;background:#f7faff;color:#71849d;font-size:10px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.data-table td{font-size:12px;color:#314c69}.data-table td strong,.data-table td small{display:block}.data-table td small{margin-top:2px;color:#7b8ca2;font-size:10px}
.action-row{display:flex;flex-wrap:wrap;gap:6px}.icon-btn{min-height:32px;border:0;border-radius:9px;padding:7px 9px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:10px;font-weight:900}.icon-btn.wa{background:var(--green-50);color:#087b49}.icon-btn.done{background:var(--blue-100);color:var(--blue-700)}.icon-btn.cancel{background:var(--red-50);color:#b42734}

/* Focus */
:focus-visible{outline:3px solid rgba(13,111,211,.28);outline-offset:2px}

/* Tablet */
@media (max-width:1024px){
  .container{padding-inline:22px}
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(330px,.8fr);gap:30px}
  .hero-copy h1{font-size:clamp(40px,5.8vw,58px)}
  .nav a{padding-inline:8px;font-size:12px}
  .booking-grid{grid-template-columns:1fr}
  .summary-card{position:static;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);gap:0 24px;align-items:start}
  .summary-card>.section-kicker,.summary-card>h3,.summary-card>.summary-list{grid-column:1}
  .summary-card>.total-box,.summary-card>#bookBtn,.summary-card>.summary-help,.summary-card>.security-note{grid-column:2}
  .summary-card>.total-box{grid-row:1 / span 3;margin:0 0 14px}
  .summary-card>#bookBtn{grid-row:4}
  .summary-card>.summary-help{grid-row:5}
  .summary-card>.security-note{grid-row:6}
  .time-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .check-grid{gap:28px}
  .admin-main{padding-inline:22px}
  .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Navigation / portrait tablet */
@media (max-width:900px){
  html{scroll-padding-top:82px}
  .topbar-inner{height:68px}
  .nav,.desktop-wa{display:none}
  .nav-toggle{margin-left:auto;width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border:1px solid #d4e0ee;border-radius:12px;background:#fff;color:var(--blue-900);font-size:22px;line-height:1;cursor:pointer}
  .mobile-nav{position:absolute;top:100%;left:0;right:0;display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px max(22px,calc((100vw - var(--container))/2 + 22px)) 16px;background:rgba(255,255,255,.985);border-top:1px solid #e6edf6;box-shadow:0 18px 34px rgba(12,49,92,.12)}
  .mobile-nav.show{display:grid}
  .mobile-nav a{min-height:44px;display:flex;align-items:center;padding:10px 12px;border-radius:11px;background:#f3f7fc;text-decoration:none;color:#294766;font-size:12px;font-weight:850}
  .hero-section{padding:58px 0}
  .hero-grid{grid-template-columns:1fr;gap:24px}
  .hero-card{max-width:680px}
  .studio-grid{grid-template-columns:1fr}
  .studio-card{min-height:0}
  .section-head{align-items:flex-start;flex-direction:column;gap:14px}
  .selection-pill,.legend{max-width:100%;white-space:normal}
  .check-grid{grid-template-columns:1fr;gap:22px}
  .contact-card{max-width:none}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-hero{align-items:flex-start;flex-direction:column}
  .admin-topbar .nav{display:flex;margin-left:auto}
}

/* Phones + small tablets */
@media (max-width:767px){
  .container{padding-inline:16px}
  .section,.section-soft{padding:52px 0}
  .hero-section{padding:46px 0 48px}
  .hero-copy h1{font-size:clamp(36px,10.4vw,48px);line-height:1.05}
  .hero-copy p{font-size:15px;line-height:1.65}
  .hero-actions{margin:23px 0 20px}
  .hero-actions .btn{flex:1 1 180px}
  .hero-card{padding:21px;border-radius:22px}
  .hero-card-head h2{font-size:22px}
  .section-head h2,.check-grid h2{font-size:clamp(29px,8vw,36px)}
  .studio-card{padding:22px;border-radius:21px}
  .studio-card h3{font-size:22px}.studio-price{font-size:25px}
  .booking-form{padding:18px;border-radius:22px}
  .summary-card{display:block;padding:20px;border-radius:22px}
  .summary-card>.total-box{margin:18px 0}
  .stepper{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .stepper span{padding:8px 4px;font-size:9px}
  .stepper span b{display:block;margin:0 auto 3px}
  .time-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .duration-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .form-grid{grid-template-columns:1fr}
  .form-grid label.full{grid-column:auto}
  .form-grid input,.form-grid textarea,.check-card input,.login-card input,.filters input,.filters select{font-size:16px}
  .schedule-item{grid-template-columns:82px minmax(0,1fr);gap:12px}.schedule-item>.status-pill{grid-column:2}
  .check-card{padding:20px}
  .footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .footer .container{align-items:flex-start;flex-direction:column;gap:8px}
  .mobile-bar{
    position:fixed;z-index:900;left:0;right:0;bottom:0;
    min-height:70px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    background:rgba(255,255,255,.97);border-top:1px solid #d9e4f1;
    -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
    box-shadow:0 -12px 30px rgba(12,49,92,.10)
  }
  .mobile-bar>div{min-width:0}.mobile-bar small,.mobile-bar strong{display:block}.mobile-bar small{font-size:9px;color:#788aa0}.mobile-bar strong{font-size:16px;color:var(--blue-900);white-space:nowrap}.mobile-bar .btn{min-width:118px;min-height:46px}
  .toast-wrap{left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom))}.toast{min-width:0;max-width:none;width:100%}
  .modal{padding:12px 12px calc(12px + env(safe-area-inset-bottom));align-items:end}
  .modal-card{width:100%;max-height:92dvh;padding:21px;border-radius:24px 24px 12px 12px}
  .receipt-row{font-size:12px}
  .login-page{padding:18px}.login-card{padding:22px}.login-card h1{font-size:30px}
  .admin-main{padding:28px 16px 60px}.admin-hero h1{font-size:34px}.admin-hero .btn{width:100%}
  .filters{grid-template-columns:1fr}
  .admin-panel{padding:15px;border-radius:20px}
  .admin-topbar .topbar-inner{gap:8px}.admin-topbar .brand strong{font-size:14px}.admin-topbar .brand small{font-size:9px}.admin-topbar .nav a{padding:9px 8px;font-size:11px}
  .table-wrap{overflow:visible;border:0;border-radius:0}
  .data-table{min-width:0;border-collapse:separate;border-spacing:0 10px;background:transparent}
  .data-table thead{display:none}
  .data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}
  .data-table tr{padding:8px 14px;border:1px solid #dfe7f1;border-radius:15px;background:#fff;box-shadow:0 5px 14px rgba(21,58,99,.05)}
  .data-table td{display:grid;grid-template-columns:102px minmax(0,1fr);gap:12px;align-items:start;padding:8px 0;border-bottom:1px dashed #e7edf4;font-size:12px;overflow-wrap:anywhere}
  .data-table td:last-child{border-bottom:0}.data-table td::before{content:attr(data-label);color:#77899f;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.data-table td[colspan]{display:block;padding:0;border:0}.data-table td[colspan]::before{content:none}
  .action-row{justify-content:flex-start}.icon-btn{min-height:36px;padding:8px 10px}
}

/* Narrow phones: 320-430px */
@media (max-width:430px){
  .container{padding-inline:13px}
  .topbar-inner{height:64px;gap:9px}
  .brand-mark{width:38px;height:38px;flex-basis:38px;border-radius:12px;font-size:12px}
  .brand strong{font-size:14px}.brand small{font-size:9px}
  .nav-toggle{width:40px;height:40px;flex-basis:40px}
  .mobile-nav{grid-template-columns:1fr;padding:10px 13px 13px}
  .hero-copy h1{font-size:clamp(33px,10.8vw,42px)}
  .hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .btn{width:100%}
  .trust-row{display:grid;gap:6px}
  .hero-card-head{align-items:center}.live-dot{padding:6px 8px}
  .contact-strip{align-items:flex-start;flex-direction:column;gap:5px}
  .selection-pill{width:100%;text-align:center}
  .legend{width:100%;justify-content:space-between;gap:7px;padding:9px 10px;font-size:10px}
  .studio-badge{top:16px;right:16px}
  .stepper{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.stepper span{font-size:10px;white-space:normal}.stepper span b{display:inline-grid;margin:0 4px 0 0}
  .form-title>span{width:33px;height:33px;flex-basis:33px}
  .date-strip{grid-auto-columns:74px}.date-chip{min-height:78px}
  .time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .duration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .slot-btn,.duration-btn{min-height:52px;padding:7px 5px}.slot-btn strong{font-size:13px}
  .summary-list>div{gap:10px}.summary-list strong{max-width:60%}.total-box strong{font-size:27px}
  .schedule-panel{padding:14px}.schedule-item{grid-template-columns:72px minmax(0,1fr);padding:13px}.schedule-time strong{font-size:17px}
  .contact-card span{font-size:20px}
  .check-head{align-items:flex-start;flex-direction:column}
  .receipt-row{align-items:flex-start;flex-direction:column;gap:2px}.receipt-row strong{text-align:left}
  .mobile-bar{padding-inline:12px}.mobile-bar .btn{min-width:108px;padding-inline:13px}.mobile-bar strong{font-size:14px}
  .stats-grid{gap:9px}.stat-card{padding:14px}.stat-card strong{font-size:25px}.stat-card span{font-size:9px}
  .admin-topbar .brand small{display:none}.admin-topbar .nav a:first-child{display:none}
  .data-table td{grid-template-columns:88px minmax(0,1fr);gap:8px}
}

@media (max-width:355px){
  .time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-grid{grid-template-columns:1fr}
}

/* Hide fixed bar when mobile keyboard likely occupies screen */
@media (max-width:767px) and (max-height:560px){.mobile-bar{display:none}.footer{padding-bottom:30px}.toast-wrap{bottom:12px}}

@media (hover:none){.studio-card:hover,.btn:hover:not(:disabled){transform:none}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* =========================================================
   Premium Schedule Dashboard
   ========================================================= */
.schedule-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 8%,rgba(13,111,211,.07),transparent 28%),
    radial-gradient(circle at 92% 88%,rgba(217,47,61,.055),transparent 24%),
    linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
}
.schedule-section::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.45;
  background-image:linear-gradient(rgba(11,93,182,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(11,93,182,.035) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent);
}
.schedule-section>.container{position:relative;z-index:1}
.schedule-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:27px}
.schedule-heading-copy{min-width:0}
.schedule-heading h2{margin:6px 0 5px;font-size:clamp(31px,3.8vw,46px);line-height:1.08;letter-spacing:-.04em;color:#112e51}
.schedule-heading p{max-width:720px;margin:0;color:var(--muted)}
.schedule-head-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.schedule-live{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #cce9dc;border-radius:999px;background:#f0fbf6;color:#08784a;font-size:11px;font-weight:900;white-space:nowrap}
.schedule-live i{width:8px;height:8px;border-radius:50%;background:#10a365;box-shadow:0 0 0 5px rgba(16,163,101,.10);animation:schedulePulse 1.8s ease-out infinite}
@keyframes schedulePulse{50%{box-shadow:0 0 0 8px rgba(16,163,101,0)}}
.schedule-refresh{min-height:42px;padding:10px 14px;border:1px solid #d6e3f1;background:#fff;color:#244766;box-shadow:0 6px 18px rgba(18,55,98,.06)}
.schedule-refresh span{font-size:17px;line-height:1}

.schedule-dashboard{position:relative;padding:0;overflow:hidden;border-color:#d8e5f3;box-shadow:0 30px 70px rgba(13,55,102,.11)}
.schedule-dashboard::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--blue-700) 0%,var(--blue-600) 58%,var(--red-600) 58%,var(--red-600) 100%)}
.schedule-dashboard-top{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px 25px 20px;border-bottom:1px solid #e6edf6;background:linear-gradient(135deg,#fbfdff,#f7fbff)}
.schedule-current{display:flex;align-items:center;gap:13px;min-width:0}
.schedule-current-icon{position:relative;width:48px;height:48px;flex:0 0 48px;border-radius:15px;background:linear-gradient(145deg,var(--blue-800),var(--blue-600));box-shadow:0 10px 22px rgba(11,93,182,.19)}
.schedule-current-icon::before,.schedule-current-icon::after{content:"";position:absolute;left:12px;right:12px;background:#fff}
.schedule-current-icon::before{top:15px;height:3px;border-radius:2px;box-shadow:0 8px 0 rgba(255,255,255,.75)}
.schedule-current-icon::after{top:9px;left:15px;right:15px;height:5px;border-radius:3px;opacity:.8}
.schedule-current small,.schedule-current strong{display:block}
.schedule-current small{margin-bottom:3px;color:#7a8da5;font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.schedule-current strong{color:#183b62;font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.schedule-studio-tabs{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:6px;padding:5px;border:1px solid #d9e5f2;border-radius:16px;background:#edf4fb}
.schedule-studio-tabs button{min-width:0;border:0;border-radius:12px;padding:9px 14px;background:transparent;color:#647b95;text-align:left;cursor:pointer;transition:.18s ease}
.schedule-studio-tabs button span,.schedule-studio-tabs button small{display:block;white-space:nowrap}
.schedule-studio-tabs button span{font-size:12px;font-weight:950}.schedule-studio-tabs button small{margin-top:1px;font-size:9px;font-weight:750;opacity:.8}
.schedule-studio-tabs button.active{background:#fff;color:var(--blue-800);box-shadow:0 5px 15px rgba(19,64,111,.09)}
.schedule-studio-tabs button[data-schedule-studio="vvip"].active{color:#b42734;box-shadow:inset 0 0 0 1px rgba(217,47,61,.11),0 5px 15px rgba(19,64,111,.08)}

.schedule-date-section{padding:19px 25px 20px;border-bottom:1px solid #e8eef6;background:#fff}
.schedule-block-title{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:12px}
.schedule-block-title small,.schedule-block-title strong{display:block}.schedule-block-title small{color:#7b8ea6;font-size:9px;font-weight:900;letter-spacing:.08em}.schedule-block-title strong{margin-top:1px;color:#294868;font-size:13px}
.schedule-block-title>span{padding:6px 9px;border-radius:9px;background:#f1f6fb;color:#617892;font-size:10px;font-weight:850;white-space:nowrap}
.schedule-date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.schedule-date-chip{min-width:0;min-height:72px;border:1px solid #dbe5f0;border-radius:14px;background:#fff;color:#536b86;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;padding:9px 8px;transition:.17s ease}
.schedule-date-chip:hover{border-color:#adcbea;background:#fbfdff;transform:translateY(-1px)}
.schedule-date-chip span,.schedule-date-chip strong,.schedule-date-chip small{display:block}.schedule-date-chip>span{text-align:center}.schedule-date-chip small{font-size:8px;font-weight:900;text-transform:uppercase;color:#8798ac}.schedule-date-chip strong{font-size:20px;line-height:1;color:#244665}.schedule-date-chip .schedule-date-month{font-size:9px;color:#778ba2;font-weight:800}
.schedule-date-chip.active{border-color:var(--blue-600);background:linear-gradient(145deg,#eef7ff,#ffffff);box-shadow:0 0 0 3px rgba(13,111,211,.07)}
.schedule-date-chip.active small,.schedule-date-chip.active .schedule-date-month{color:var(--blue-700)}
.schedule-date-chip.active strong{color:var(--blue-800)}
.schedule-date-chip.today::after{content:"Hari ini";align-self:flex-start;padding:3px 5px;border-radius:6px;background:#eaf4ff;color:var(--blue-700);font-size:7px;font-weight:950;white-space:nowrap}

.schedule-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:20px 25px;background:#f7faff;border-bottom:1px solid #e5edf6}
.schedule-stat{min-width:0;display:flex;align-items:center;gap:12px;padding:14px 15px;border:1px solid #dfe9f3;border-radius:17px;background:#fff;box-shadow:0 5px 16px rgba(28,66,108,.04)}
.schedule-stat-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;font-size:17px;font-weight:950}
.schedule-stat small,.schedule-stat strong,.schedule-stat div>span{display:block}.schedule-stat small{color:#788ba2;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.schedule-stat strong{margin:1px 0;font-size:22px;line-height:1;color:#1f3f62}.schedule-stat div>span{color:#90a0b2;font-size:9px;font-weight:700}
.available-stat .schedule-stat-icon{background:#eaf9f2;color:#078451}.busy-stat .schedule-stat-icon{background:#fff0f1;color:#c52a37}.hours-stat .schedule-stat-icon{background:#edf5ff;color:var(--blue-700)}

.schedule-content-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:0;background:#fff}
.schedule-slot-card,.schedule-booked-card{min-width:0;padding:24px 25px 25px}
.schedule-booked-card{border-left:1px solid #e6edf5;background:#fcfdff}
.schedule-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:17px}
.schedule-card-head small{display:block;color:#8192a7;font-size:9px;font-weight:900;letter-spacing:.08em}.schedule-card-head h3{margin:2px 0 0;color:#1a395b;font-size:19px;line-height:1.2;letter-spacing:-.015em}
.schedule-mini-legend{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end;color:#71849a;font-size:9px;font-weight:800}
.schedule-mini-legend span{display:inline-flex;align-items:center;gap:4px}.schedule-mini-legend i{width:7px;height:7px;border-radius:50%}.schedule-mini-legend i.available{background:#16a264}.schedule-mini-legend i.busy{background:var(--red-600)}.schedule-mini-legend i.past{background:#a4b0bf}
.schedule-booking-badge{flex:0 0 auto;padding:6px 8px;border-radius:999px;background:#fff0f1;color:#bd2835;font-size:9px;font-weight:900;white-space:nowrap}

.schedule-slot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.schedule-slot{position:relative;min-width:0;min-height:58px;padding:8px 7px;border-radius:12px;border:1px solid #dce6f0;background:#fff;color:#234462;text-align:left;cursor:pointer;overflow:hidden;transition:.16s ease}
.schedule-slot::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#1ba467}
.schedule-slot strong,.schedule-slot small{display:block;white-space:nowrap}.schedule-slot strong{font-size:13px;line-height:1.15}.schedule-slot small{margin-top:3px;color:#188957;font-size:8px;font-weight:850}
.schedule-slot.available:hover{border-color:#9fc9b6;background:#f7fffb;transform:translateY(-1px);box-shadow:0 5px 13px rgba(14,130,79,.07)}
.schedule-slot.selected{border-color:var(--blue-600);background:#eef7ff;box-shadow:0 0 0 2px rgba(13,111,211,.08)}
.schedule-slot.selected::before{background:var(--blue-600)}.schedule-slot.selected small{color:var(--blue-700)}
.schedule-slot.busy{border-color:#d12c3a;background:linear-gradient(145deg,#de3745,#ba2230);color:#fff;cursor:not-allowed;box-shadow:0 5px 12px rgba(185,31,45,.12)}
.schedule-slot.busy::before{display:none}.schedule-slot.busy small{color:#fff}.schedule-slot.busy:disabled{opacity:1}
.schedule-slot.past{border-style:dashed;background:#f3f5f8;color:#97a5b6;cursor:not-allowed}.schedule-slot.past::before{background:#a8b3c1}.schedule-slot.past small{color:#9ba7b5}.schedule-slot.past:disabled{opacity:1}
.schedule-slot-loading{grid-column:1/-1;padding:30px 14px;border:1px dashed #dce6f0;border-radius:13px;text-align:center;color:#8293a7;font-size:11px;font-weight:800;background:#f9fbfd}
.schedule-slot-help{margin:12px 0 0;color:#8495a9;font-size:10px}

.schedule-list{display:grid;gap:9px;max-height:430px;overflow:auto;padding-right:3px;scrollbar-width:thin;scrollbar-color:#cbd9e7 transparent}
.schedule-item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid #e0e8f2;border-radius:14px;background:#fff;box-shadow:0 4px 13px rgba(18,55,98,.035);overflow:hidden}
.schedule-item::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--red-600)}
.schedule-index{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#fff1f2;color:#bd2835;font-size:10px;font-weight:950}
.schedule-item-main{min-width:0}.schedule-item-main h4{margin:0;color:#294968;font-size:12px}.schedule-item-main p{margin:6px 0 0;color:#7a8da5;font-size:9px;line-height:1.45}.schedule-item-main p strong{color:#47617e}
.schedule-customer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;margin-top:6px}
.schedule-customer>div{min-width:0;padding:7px 8px;border:1px solid #e5edf5;border-radius:10px;background:#f8fbfe}
.schedule-customer span,.schedule-customer strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedule-customer span{margin-bottom:2px;color:#8294a9;font-size:7px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.schedule-customer strong{color:#294968;font-size:10px;font-weight:900}
.schedule-time-range{display:flex;align-items:center;gap:5px;margin-bottom:3px;color:#183e65;font-size:14px;font-weight:950}.schedule-time-range i{width:12px;height:1px;background:#adc0d3}
.status-pill.busy{background:#fff0f1;color:#bd2835;border:1px solid #f2cbd0}
.schedule-empty{min-height:210px;display:grid;place-items:center;text-align:center;padding:28px 18px;border:1px dashed #d8e4f0;border-radius:16px;background:linear-gradient(145deg,#fff,#f8fbff)}
.schedule-empty-icon{width:48px;height:48px;margin:0 auto 10px;display:grid;place-items:center;border-radius:15px;background:#eaf9f2;color:#098553;font-size:22px;font-weight:900}.schedule-empty b,.schedule-empty span{display:block}.schedule-empty b{color:#31506f;font-size:13px}.schedule-empty span{max-width:240px;margin:4px auto 0;color:#8495a9;font-size:10px;line-height:1.5}

@media (max-width:1024px){
  .schedule-content-grid{grid-template-columns:1fr}
  .schedule-booked-card{border-left:0;border-top:1px solid #e6edf5}
  .schedule-slot-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .schedule-list{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding-right:0}
}
@media (max-width:900px){
  .schedule-heading{align-items:flex-start;flex-direction:column;gap:14px}
  .schedule-dashboard-top{align-items:flex-start;flex-direction:column}
  .schedule-studio-tabs{width:100%}
  .schedule-date-strip{overflow-x:auto;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:104px;padding-bottom:4px;scroll-snap-type:x mandatory;scrollbar-width:thin}
  .schedule-date-chip{scroll-snap-align:start}
  .schedule-slot-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (max-width:767px){
  .schedule-section{padding-top:52px;padding-bottom:52px}
  .schedule-heading h2{font-size:clamp(30px,8vw,38px)}
  .schedule-head-actions{width:100%;justify-content:space-between}
  .schedule-live{padding:9px 11px}.schedule-refresh{min-height:40px}
  .schedule-dashboard{border-radius:22px}
  .schedule-dashboard-top,.schedule-date-section,.schedule-stats,.schedule-slot-card,.schedule-booked-card{padding-left:17px;padding-right:17px}
  .schedule-dashboard-top{padding-top:19px;padding-bottom:17px}
  .schedule-current-icon{width:43px;height:43px;flex-basis:43px;border-radius:13px}
  .schedule-current strong{font-size:14px}
  .schedule-stats{grid-template-columns:1fr 1fr;gap:9px;padding-top:14px;padding-bottom:14px}
  .schedule-stat{padding:12px;gap:9px}.schedule-stat-icon{width:34px;height:34px;flex-basis:34px}.schedule-stat strong{font-size:19px}.hours-stat{grid-column:1/-1}
  .schedule-card-head{align-items:flex-start;flex-direction:column;gap:8px}.schedule-mini-legend{justify-content:flex-start}
  .schedule-slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .schedule-list{grid-template-columns:1fr}
  .schedule-item{grid-template-columns:36px minmax(0,1fr) auto}
}
@media (max-width:430px){
  .schedule-heading p{font-size:13px}
  .schedule-live{font-size:9px}.schedule-refresh{font-size:11px;padding-inline:11px}
  .schedule-dashboard-top,.schedule-date-section,.schedule-stats,.schedule-slot-card,.schedule-booked-card{padding-left:13px;padding-right:13px}
  .schedule-studio-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-studio-tabs button{padding:9px 10px}.schedule-studio-tabs button span{font-size:11px}.schedule-studio-tabs button small{font-size:8px}
  .schedule-date-strip{grid-auto-columns:91px}
  .schedule-date-chip{min-height:67px;gap:6px}.schedule-date-chip strong{font-size:18px}
  .schedule-stats{grid-template-columns:1fr 1fr}.schedule-stat{min-height:70px}.schedule-stat small{font-size:8px}.schedule-stat div>span{font-size:8px}.schedule-stat-icon{display:none}.hours-stat{grid-column:1/-1;min-height:58px}
  .schedule-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.schedule-slot{min-height:54px;padding:7px 6px}.schedule-slot strong{font-size:12px}.schedule-slot small{font-size:7px}
  .schedule-item{grid-template-columns:34px minmax(0,1fr);gap:9px}.schedule-item>.status-pill{grid-column:2}.schedule-index{width:30px;height:30px}.schedule-time-range{font-size:13px}
  .schedule-customer{grid-template-columns:1fr;gap:5px}.schedule-customer>div{padding:6px 7px}
}
@media (max-width:355px){.schedule-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-head-actions{align-items:stretch;flex-direction:column}.schedule-refresh{width:100%}}

/* Keep the schedule status pill in the third column on regular phones. */
@media (min-width:431px) and (max-width:767px){.schedule-item>.status-pill{grid-column:3}}
