:root{--charcoal:#3a3a3a;--navy:#2f2f2f;--orange:#ef4123;--orange-hot:#f36f21;--orange-soft:#fff3ef;--bg:#f7f7f8;--white:#ffffff;--text:#2f2f2f;--muted:#7a7a7a;--border:#e6e6e8;--shadow:0 20px 50px rgba(47,47,47,0.1);--radius:16px;--font:"Segoe UI","Trebuchet MS","Helvetica Neue",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;font-family:var(--font);color:var(--text);background:radial-gradient(ellipse 70% 45% at 50% -5%,rgba(243,111,33,.12),transparent 55%),var(--bg)}a{color:inherit;text-decoration:none}.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.login-shell{flex:1 1;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem 1rem}.login-card{width:min(460px,100%);background:var(--white);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);border:1px solid rgba(47,47,47,.05);padding:1.5rem 1.25rem 1.45rem;animation:riseIn .35s ease}.logo-wrap{display:flex;justify-content:center;margin-bottom:1.15rem;overflow:hidden}.logo-img{width:min(320px,92%);height:auto;object-fit:contain}.form-intro{text-align:center;margin-bottom:1.25rem}.eyebrow{color:var(--orange);font-size:.95rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .5rem}.form-intro h1{margin:0;font-size:clamp(1.35rem,4.5vw,1.7rem);line-height:1.25;font-weight:800;color:var(--charcoal)}.intro-text{margin:.55rem 0 0;color:var(--muted);line-height:1.5;font-size:.94rem}.booking-form{gap:.95rem}.booking-form,.field{display:flex;flex-direction:column}.field{gap:.4rem}.field label{font-size:.84rem;font-weight:700;color:var(--charcoal)}.field input,.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:1.5px solid var(--border);border-radius:12px;padding:.85rem .95rem;font:inherit;font-size:1rem;background:#fafafa;color:var(--text);transition:border-color .15s,box-shadow .15s,background .15s}.field input:focus,.field select:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(239,65,35,.14);background:var(--white)}.stepper{justify-content:center;gap:.15rem;background:transparent;padding:.25rem 0 .45rem;margin-bottom:.1rem}.stepper,.stepper-group{display:flex;align-items:center}.stepper-group{gap:.35rem}.stepper-arrow{color:#c8c8cc;font-size:1.05rem;font-weight:700;line-height:1;padding:0 .2rem}.stepper-arrow.lit{color:var(--orange)}.stepper-item{display:flex;align-items:center;justify-content:center}.stepper-dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:.85rem;font-weight:800;background:#ececef;color:#8a8a92;border:1.5px solid #e0e0e4}.stepper-item.active .stepper-dot{background:var(--orange);border-color:var(--orange);color:#fff}.stepper-item.done .stepper-dot{background:var(--orange-hot);border-color:var(--orange-hot);color:#fff}.step-heading{margin:.15rem 0 0;font-size:1.05rem;font-weight:750;color:var(--charcoal);text-align:center}.teacher-pill{display:block;width:100%;background:var(--orange-soft);color:var(--orange);font-weight:700;font-size:.88rem;line-height:1.4;padding:.65rem .9rem;border-radius:12px;text-align:center}.cal-card,.time-card{background:#f3f3f5;border-radius:14px;padding:.85rem .7rem 1rem}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem;padding:0 .15rem}.cal-month{font-weight:750;font-size:.98rem;color:var(--charcoal)}.cal-nav-btn{width:36px;height:36px;border:none;border-radius:10px;background:var(--white);color:var(--charcoal);font-size:1.35rem;line-height:1;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.06)}.cal-nav-btn:disabled{opacity:.35;cursor:not-allowed}.cal-weekdays{margin-bottom:4px;text-align:center;font-size:.68rem;font-weight:650;color:#9a9a9a}.cal-grid,.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:3px;gap:3px}.cal-cell{position:relative;aspect-ratio:1;border:none;border-radius:6px;background:#ebebed;color:#b0b0b0;font:inherit;font-weight:650;font-size:.88rem;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:default}.cal-cell.empty{background:transparent;pointer-events:none}.cal-cell.available{background:var(--white);color:var(--charcoal);cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04)}.cal-cell.available:hover{outline:1.5px solid var(--orange-hot)}.cal-cell.selected{outline:2px solid var(--orange);background:#fff7f3}.cal-bar{display:block;width:55%;height:3px;border-radius:2px;background:var(--orange)}.cal-cell.avail-low .cal-bar{width:40%;height:2px;background:repeating-linear-gradient(90deg,var(--orange-hot) 0 3px,transparent 3px 5px)}.cal-hint{margin:.85rem 0 0;font-weight:700;color:var(--orange)}.cal-hint,.zaman-label{text-align:center;font-size:.95rem}.zaman-label{margin:0;font-weight:650;color:var(--charcoal)}.zaman-date{margin:.35rem 0 .9rem;text-align:center;font-size:1.05rem;font-weight:750;color:var(--orange)}.time-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.45rem;gap:.45rem}.time-chip{border:none;border-radius:8px;background:#e8e8ea;color:var(--charcoal);font:inherit;font-weight:650;font-size:.95rem;padding:.78rem .3rem;cursor:pointer;transition:background .15s,color .15s,transform .1s}.time-chip:hover{background:#dedee2}.time-chip.active{background:var(--charcoal);color:#fff}.btn-back:active,.cal-cell.available:active,.submit-btn:active,.time-chip:active{transform:scale(.98)}.step-actions{display:grid;grid-template-columns:1fr 1.4fr;grid-gap:.55rem;gap:.55rem;margin-top:.15rem}.btn-back{border:1.5px solid #d5d5d8;border-radius:999px;background:var(--white);color:#888;font:inherit;font-weight:750;letter-spacing:.04em;padding:.9rem .75rem;cursor:pointer}.btn-back,.submit-btn.step-next{font-size:.92rem;text-transform:uppercase}.submit-btn.step-next{margin-top:0;width:auto;letter-spacing:.02em}.muted{color:var(--muted)}.form-error,.muted{margin:0;font-size:.92rem}.form-error{padding:.75rem .9rem;border-radius:12px;background:#fff1f0;color:#b42318;font-weight:600}.submit-btn{margin-top:.35rem;width:100%;border:none;border-radius:999px;padding:.95rem 1.2rem;font:inherit;font-size:1.02rem;font-weight:750;color:var(--white);background:linear-gradient(135deg,var(--orange-hot),var(--orange));cursor:pointer;box-shadow:0 10px 24px rgba(239,65,35,.28);transition:opacity .15s,transform .1s}.submit-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.submit-btn:not(:disabled):hover{opacity:.95}.footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem;padding:.75rem 1rem 1.35rem;color:var(--charcoal);font-size:.88rem;font-weight:600}.footer a:hover,.footer-dot{color:var(--orange)}.footer-dot{font-weight:800}.modal-backdrop{position:fixed;inset:0;background:rgba(47,47,47,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem;z-index:50;animation:fadeIn .2s ease}.modal-card{width:min(420px,100%);background:var(--white);border-radius:20px;padding:1.6rem 1.35rem 1.4rem;box-shadow:0 24px 60px rgba(0,0,0,.22);text-align:center;animation:riseIn .28s ease}.modal-icon{width:56px;height:56px;margin:0 auto .85rem;border-radius:50%;background:linear-gradient(145deg,var(--orange-hot),var(--orange));color:var(--white);display:grid;place-items:center;font-size:1.5rem;font-weight:800}.modal-card h2{margin:0;font-size:1.35rem;color:var(--charcoal)}.modal-sub{margin:.45rem 0 1rem;color:var(--muted);font-size:.92rem;line-height:1.45}.modal-summary{list-style:none;margin:0 0 1.15rem;padding:.85rem 1rem;background:#f7f7f8;border-radius:14px;text-align:left}.modal-summary li{display:flex;justify-content:space-between;gap:.75rem;padding:.35rem 0;font-size:.92rem}.modal-summary span{color:var(--muted)}.modal-summary strong{color:var(--charcoal);text-align:right}.modal-actions{display:flex;flex-direction:column;gap:.85rem}.modal-calendar-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem}.btn-calendar{display:flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;border:1px solid #e2e2e6;color:var(--charcoal);border-radius:10px;padding:.7rem .4rem;font-weight:600;font-size:.78rem;letter-spacing:.01em;background:#fafafa;transition:border-color .15s,background .15s,color .15s}.btn-calendar:hover{border-color:var(--orange);color:var(--orange);background:var(--orange-soft)}.btn-modal-done{width:100%;border:none;border-radius:10px;padding:.78rem 1rem;font:inherit;font-size:.9rem;font-weight:700;letter-spacing:.04em;color:#fff;background:linear-gradient(135deg,var(--orange-hot),var(--orange));cursor:pointer;box-shadow:0 6px 16px rgba(239,65,35,.22);transition:opacity .15s,transform .1s}.btn-modal-done:hover{opacity:.92}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (min-width:640px){.login-card{padding:1.85rem 1.85rem 1.75rem}.logo-img{width:360px}.time-grid{grid-template-columns:repeat(3,1fr)}.cal-card,.time-card{padding:1rem .9rem 1.1rem}}