:root{--jl-plum:#4a3b63;--jl-plum-deep:#2e2440;--jl-plum-mid:#6b5a84;--jl-mist:#a890d3;--jl-mist-soft:#ede8f5;--jl-mist-xsoft:#f5f2fa;--jl-gold:#f4d35e;--jl-gold-dark:#d4a017;--jl-gold-soft:#fef9e7;--jl-wash:#f5f1fa;--jl-cloud:#f8f9fa;--jl-leaf:#e2e2e2;--jl-leaf-light:#f0f0f0;--jl-ink:#1a1523;--jl-body:#3d3347;--jl-muted:#7a6e89;--jl-white:#fff;--brand:var(--jl-plum);--brand-light:var(--jl-mist);--brand-soft:var(--jl-mist-soft);--brand-xsoft:var(--jl-mist-xsoft);--brand-dark:var(--jl-plum-deep);--brand-mid:var(--jl-plum-mid);--highlight:var(--jl-gold);--highlight-dark:var(--jl-gold-dark);--highlight-soft:var(--jl-gold-soft);--bg:var(--jl-wash);--bg-card:var(--jl-white);--bg-muted:var(--jl-cloud);--text:var(--jl-body);--text-heading:var(--jl-ink);--text-muted:var(--jl-muted);--text-soft:var(--jl-leaf);--border:var(--jl-leaf);--border-soft:var(--jl-leaf-light);--danger:#dc2626;--success:#16a34a;--white:var(--jl-white);--radius-sm:8px;--radius:12px;--radius-md:16px;--radius-lg:24px;--radius-pill:9999px;--shadow-sm:0 1px 3px #4a3b6312;--shadow:0 4px 12px #4a3b631a;--shadow-lg:0 8px 24px #4a3b6329;--shadow-pop:0 16px 48px #4a3b6338;--font-display:"Patrick Hand",cursive;--font-body:"Patrick Hand",cursive;--font-ui:"Patrick Hand",cursive;--font-mono:"Fira Code","Courier New",monospace;--ease-out:cubic-bezier(0.25,0.46,0.45,0.94);--transition:160ms var(--ease-out);--mc-background:245 241 250;--mc-card:255 255 255;--mc-primary:74 59 99;--mc-primary-dark:46 36 64;--mc-primary-soft:237 232 245;--mc-warm:244 211 94;--mc-warm-dark:212 160 23;--mc-warm-soft:254 249 231;--mc-growth:22 163 74;--mc-growth-soft:220 252 231;--mc-highlight:168 144 211;--mc-highlight-soft:237 232 245;--mc-ink:26 21 35;--mc-ink-soft:122 110 137;--mc-ink-muted:226 226 226;--mc-border:226 226 226;--mc-border-soft:240 240 240;--mc-font-body:"Patrick Hand";--mc-font-headline:"Patrick Hand";--mc-font-math:"Fira Code";--mc-radius-button:9999px;--mc-radius-card:16px;--mc-shadow-sm:0 1px 3px #4a3b6312;--mc-shadow-md:0 4px 12px #4a3b631a;--mc-progress:linear-gradient(90deg,#4a3b63,#a890d3)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.55;overflow-x:hidden}body.nav-open{height:100%;overflow:hidden;position:fixed;width:100%}h1,h2,h3,h4{color:var(--text-heading);font-family:var(--font-display);font-weight:500;line-height:1.25}.eyebrow{color:var(--text-muted);font-size:11px;letter-spacing:.18em;text-transform:uppercase}.btn-primary,.eyebrow{font-family:var(--font-ui);font-weight:600}.btn-primary{align-items:center;background:var(--brand);border:none;border-radius:var(--radius-pill);color:#fff;cursor:pointer;display:inline-flex;font-size:14px;gap:6px;padding:10px 24px;text-decoration:none;transition:background var(--transition),transform var(--transition),box-shadow var(--transition)}.btn-primary:hover{background:var(--brand-dark);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(1px) scale(.99)}.btn-primary:disabled{cursor:not-allowed;opacity:.55;transform:none}.btn-ghost{align-items:center;background:#0000;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;display:inline-flex;font-family:var(--font-ui);font-size:14px;font-weight:500;padding:8px 20px;text-decoration:none;transition:background var(--transition),border-color var(--transition)}.btn-ghost:hover{background:var(--brand-soft);border-color:var(--brand-light)}.btn-danger{background:var(--danger);border:none;border-radius:var(--radius-pill);color:#fff;cursor:pointer;font-family:var(--font-ui);font-size:14px;font-weight:600;padding:10px 24px;transition:background var(--transition)}.btn-danger:hover{background:#b91c1c}.btn-danger-ghost{background:#0000;border:1px solid #fca5a5;border-radius:var(--radius-pill);color:var(--danger);cursor:pointer;font-family:var(--font-ui);font-size:13px;font-weight:500;padding:6px 16px;transition:background var(--transition)}.btn-danger-ghost:hover{background:#fee2e2}.btn-gold{align-items:center;background:var(--highlight);border:none;border-radius:var(--radius-pill);color:var(--brand-dark);cursor:pointer;display:inline-flex;font-family:var(--font-ui);font-size:14px;font-weight:700;padding:10px 24px;text-decoration:none;transition:background var(--transition),transform var(--transition)}.btn-gold:hover{background:var(--highlight-dark);color:#fff;transform:translateY(-1px)}.btn-whatsapp{align-items:center;background:#25d366;border:none;border-radius:var(--radius-pill);color:#fff;cursor:pointer;display:inline-flex;font-family:var(--font-ui);font-size:14px;font-weight:600;padding:10px 24px;text-decoration:none;transition:background var(--transition),transform var(--transition)}.btn-whatsapp:hover{background:#1da851;transform:translateY(-1px)}.form-hint{color:var(--text-muted);font-family:var(--font-ui);font-size:12px;font-weight:400;letter-spacing:normal;text-transform:none}.form-grid{gap:14px}.form-grid,.form-grid label{display:flex;flex-direction:column}.form-grid label{color:var(--text-muted);font-family:var(--font-ui);font-size:11px;font-weight:600;gap:4px;letter-spacing:.12em;text-transform:uppercase}.form-grid input,.form-grid select,.form-grid textarea{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:15px;padding:10px 14px;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.form-actions{display:flex;gap:10px;margin-top:8px}.form-error{background:#fee2e2;border-radius:var(--radius);color:var(--danger);font-family:var(--font-ui);font-size:13px;padding:10px 14px}.checkbox-label{align-items:center;color:var(--text)!important;flex-direction:row!important;font-weight:400!important;gap:8px!important;letter-spacing:0!important;text-transform:none!important}.alert-success{background:#dcfce7;color:#166534}.alert-error,.alert-success{border-radius:var(--radius);font-family:var(--font-ui);font-size:14px;margin-bottom:16px;padding:10px 16px}.alert-error{background:#fee2e2;color:var(--danger)}.badge{border-radius:var(--radius-pill);display:inline-block;font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.08em;padding:2px 10px;text-transform:uppercase}.badge-confirmed{background:#d1fae5;color:#065f46}.badge-pending{background:#fef9c3;color:#713f12}.badge-cancelled{background:#fee2e2;color:#991b1b}.badge-completed{background:var(--brand-soft);color:var(--brand-dark)}.badge-no-show{background:#f3f4f6;color:#6b7280}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1a152373;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:100}.modal{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);max-height:90vh;max-width:520px;overflow-y:auto;padding:32px;width:100%}.modal h2{font-size:20px;margin-bottom:20px}.data-table{border-collapse:collapse;font-size:14px;width:100%}.data-table th{background:var(--bg);border-bottom:2px solid var(--border);color:var(--text-muted);font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.1em;padding:10px 12px;text-align:left;text-transform:uppercase}.data-table td{border-bottom:1px solid var(--border-soft);padding:10px 12px}.data-table tbody tr:hover{background:var(--bg)}.row-actions{display:flex;gap:8px}.mono{font-family:var(--font-mono);font-size:13px}.detail-list{grid-gap:6px 16px;display:grid;font-size:14px;gap:6px 16px;grid-template-columns:-webkit-max-content 1fr;grid-template-columns:max-content 1fr}.detail-list dt{color:var(--text-muted);font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.card-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:16px 0}.page{max-width:1100px;padding:32px}.page-title{color:var(--text-heading);font-family:var(--font-display);font-size:26px;font-weight:500;margin-bottom:24px}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.section-title{color:var(--text-heading);font-family:var(--font-display);font-size:18px;font-weight:500;margin:24px 0 12px}.section-header{align-items:center;display:flex;justify-content:space-between}.empty-state{font-size:14px;padding:20px 0}.empty-state,.page-loading{color:var(--text-muted);font-family:var(--font-ui)}.page-loading{align-items:center;display:flex;font-size:15px;height:100vh;justify-content:center}.back-btn{margin-bottom:16px}.color-dot{border-radius:50%;display:inline-block;height:10px;margin-right:6px;width:10px}:root{--top-nav-height:68px}.top-nav-spacer{display:none;height:0;pointer-events:none}.top-nav{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffb8;border-bottom:1px solid var(--border-soft);display:flex;font-family:var(--font-ui);gap:12px;justify-content:space-between;padding:14px 32px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.top-nav-brand{color:var(--brand);flex-shrink:0;font-family:var(--font-display);font-size:17px;font-weight:600;min-width:0;text-decoration:none}.top-nav-menu{flex:1 1;gap:16px;justify-content:flex-end}.top-nav-links,.top-nav-menu{align-items:center;display:flex}.top-nav-links{flex-wrap:wrap;gap:4px}.top-nav-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.top-nav-toggle{background:#0000;border:1px solid #ffffff40;border-radius:var(--radius);cursor:pointer;display:none;flex-direction:column;flex-shrink:0;gap:5px;height:44px;justify-content:center;padding:10px;width:44px}.top-nav-toggle__bar{background:currentColor;border-radius:2px;display:block;height:2px;transition:transform var(--transition),opacity var(--transition);width:100%}.top-nav-toggle[aria-expanded=true] .top-nav-toggle__bar:first-child{transform:translateY(7px) rotate(45deg)}.top-nav-toggle[aria-expanded=true] .top-nav-toggle__bar:nth-child(2){opacity:0}.top-nav-toggle[aria-expanded=true] .top-nav-toggle__bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.top-nav-backdrop{background:#1a152373;display:none;inset:0;position:fixed;z-index:90}.top-nav-link{border-radius:var(--radius-pill);color:var(--brand);font-family:var(--font-ui);font-size:14px;font-weight:500;padding:6px 12px;text-decoration:none;transition:background var(--transition)}.top-nav-link:hover{background:var(--brand-soft)}.top-nav-user{color:var(--text-muted);font-family:var(--font-ui);font-size:13px}.btn-sm{font-size:13px;padding:6px 16px}.auth-shell{align-items:center;background:var(--bg);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:440px;padding:40px;width:100%}.auth-brand{color:var(--brand);font-family:var(--font-display);font-size:24px;font-weight:500;margin-bottom:28px;text-align:center}.auth-tabs{border-bottom:1px solid var(--border);display:flex;margin-bottom:24px}.auth-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-muted);cursor:pointer;flex:1 1;font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:.1em;margin-bottom:-1px;padding:10px;text-transform:uppercase;transition:color var(--transition),border-color var(--transition)}.auth-tab.active{border-bottom-color:var(--brand);color:var(--brand)}.auth-footer{color:var(--text-muted);font-family:var(--font-ui);font-size:13px;margin-top:16px;text-align:center}.auth-footer a{color:var(--brand);text-decoration:none}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.auth-inset{background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:24px}.input-readonly{background:var(--bg-muted)!important;color:var(--text-muted);cursor:not-allowed}.admin-shell{display:flex;min-height:100vh}.admin-sidebar{background:var(--jl-plum-deep);bottom:0;color:#c4b5d4;display:flex;flex-direction:column;flex-shrink:0;left:0;position:fixed;top:0;width:220px}.sidebar-brand{align-items:center;color:var(--white);display:flex;font-family:var(--font-display);font-size:16px;font-weight:600;gap:8px;padding:24px 20px 16px}.brand-icon{font-size:22px}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;padding:8px 0}.nav-item{color:#b8a8cc;display:block;font-family:var(--font-ui);font-size:13px;font-weight:500;padding:10px 20px;text-decoration:none;transition:background var(--transition),color var(--transition)}.nav-item:hover{background:#ffffff0f;color:var(--white)}.nav-item.active{background:#ffffff14;border-right:3px solid var(--jl-gold);color:var(--white)}.sidebar-footer{border-top:1px solid #ffffff14;display:flex;flex-direction:column;gap:8px;padding:20px}.sidebar-user{color:var(--jl-mist);font-family:var(--font-ui);font-size:12px}.admin-content{flex:1 1;margin-left:220px}.stat-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-bottom:32px}.stat-card{background:var(--white);border-radius:var(--radius-md);border-top:3px solid var(--brand);box-shadow:var(--shadow);padding:20px}.stat-value{color:var(--text-heading);font-family:var(--font-display);font-size:34px;font-weight:600}.stat-label{color:var(--text-muted);font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.12em;margin-top:4px;text-transform:uppercase}.tutor-card{align-items:flex-start;border-radius:var(--radius-md);box-shadow:var(--shadow);gap:14px;padding:16px}.tutor-card,.tutor-card-btn{background:var(--white);display:flex}.tutor-card-btn{border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;gap:6px;padding:20px;text-align:left;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.tutor-card-btn:hover{border-color:var(--brand-light);box-shadow:var(--shadow);transform:translateY(-1px)}.tutor-avatar{align-items:center;background:var(--brand-soft);border-radius:50%;color:var(--brand);display:flex;flex-shrink:0;font-family:var(--font-display);font-size:15px;font-weight:600;height:44px;justify-content:center;object-fit:cover;width:44px}.tutor-avatar--lg{font-size:18px;height:64px;width:64px}.tutor-avatar--md{font-size:16px;height:56px;width:56px}.tutor-avatar--portrait{border-radius:160px/200px;font-size:28px;height:320px;width:100%}.tutor-avatar--photo,.tutor-avatar--portrait{background:var(--highlight-soft)}.tutor-info{flex:1 1;font-size:14px;gap:4px}.tutor-actions,.tutor-info{display:flex;flex-direction:column}.tutor-actions{gap:6px}.subject-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.chip{border-radius:var(--radius-pill);display:inline-block;font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.08em;padding:3px 10px;text-transform:uppercase}.subject-picker{border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:8px;padding:12px}.subject-picker legend{color:var(--text-muted);font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.12em;padding:0 6px;text-transform:uppercase}.avail-global-info{align-items:center;background:var(--brand-soft);border:1px solid var(--brand-light);border-radius:var(--radius);color:var(--brand);display:flex;font-family:var(--font-ui);font-size:13px;gap:16px;margin-bottom:8px;padding:10px 16px}.avail-global-link{color:var(--brand);font-weight:600;margin-left:auto;text-decoration:none}.avail-global-link:hover{text-decoration:underline}.avail-day-label{min-width:130px}.avail-grid{display:flex;flex-direction:column;gap:2px;margin-bottom:16px}.avail-row{align-items:center;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:20px;padding:12px 16px}.avail-off{opacity:.5}.time-range{align-items:center;display:flex;font-size:14px;gap:8px}.time-range input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px}.filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.filter-bar input,.filter-bar select{border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-ui);font-size:14px;padding:8px 14px}.settings-form{gap:8px;max-width:520px}.settings-form,.settings-section{display:flex;flex-direction:column}.settings-section{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow);gap:12px;margin-bottom:16px;padding:24px}.settings-section h2{font-family:var(--font-display);font-size:17px;font-weight:500;margin-bottom:4px}.settings-section label{color:var(--text-muted);display:flex;flex-direction:column;font-family:var(--font-ui);font-size:11px;font-weight:600;gap:4px;letter-spacing:.1em;text-transform:uppercase}.settings-section input{border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);font-size:15px;padding:10px 12px;width:100%}.day-picker{display:flex;flex-wrap:wrap;gap:8px}.day-btn{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font-ui);font-size:13px;font-weight:600;padding:6px 14px;transition:background var(--transition),color var(--transition),border-color var(--transition)}.day-btn-on{background:var(--brand);border-color:var(--brand);color:#fff}.subject-group{margin-bottom:32px}.booking-shell{background:var(--bg);min-height:calc(100vh - 60px)}.booking-shell--success,.booking-shell.centered{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:48px 20px;text-align:center}.booking-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffb8;border-bottom:1px solid var(--border-soft);width:100%}.booking-header__inner{margin:0 auto;max-width:900px;padding:28px 32px 24px}.booking-header h1{font-family:var(--font-display);font-size:clamp(24px,4vw,32px);font-weight:400;line-height:1.2;margin-bottom:12px}.booking-body{padding:32px 20px 48px;width:100%}.booking-body__inner{margin:0 auto;max-width:760px}.booking-body h2{color:var(--text-heading);font-family:var(--font-display);font-size:clamp(20px,3vw,24px);font-weight:400;margin-bottom:16px}.booking-body h2 em{color:var(--brand);font-style:italic}.booking-body h3{color:var(--text-heading);font-family:var(--font-body);font-size:15px;font-weight:400;margin:16px 0 8px}.booking-hint{background:var(--brand-soft);border:1px solid var(--brand-light);border-radius:var(--radius);color:var(--brand-dark);font-family:var(--font-body);font-size:14px;line-height:1.5;margin-bottom:20px;padding:12px 16px}.stepper-wrap{margin-top:8px}.stepper{-webkit-overflow-scrolling:touch;align-items:flex-start;display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.stepper::-webkit-scrollbar{display:none}.stepper-progress{display:none}.step{align-items:center;color:var(--text-muted);display:flex;flex:1 1;flex-direction:column;font-family:var(--font-body);font-size:11px;gap:6px;min-width:64px;padding:4px;text-align:center}.step-active .step-num{background:var(--brand);box-shadow:0 2px 8px #4a3b6359;color:#fff}.step-active{color:var(--text-heading)}.step-done .step-num{background:#d1fae5;color:#065f46}.step-num{align-items:center;background:var(--border);border-radius:50%;display:flex;flex-shrink:0;font-size:12px;font-weight:400;height:28px;justify-content:center;transition:background var(--transition),color var(--transition);width:28px}.step-label{font-size:10px;line-height:1.25;max-width:72px}.subject-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);border-top:3px solid var(--brand);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;flex-direction:column;font-family:var(--font-body);font-size:15px;gap:8px;padding:20px;text-align:left;transition:box-shadow var(--transition),transform var(--transition),border-color var(--transition)}.subject-card strong{color:var(--text-heading);font-size:17px}.subject-card span{color:var(--text-muted);font-size:14px}.subject-card:hover{border-color:var(--brand-light);box-shadow:var(--shadow);transform:translateY(-2px)}.subject-card:active{transform:translateY(0)}.date-label{color:var(--text-muted);display:flex;flex-direction:column;font-family:var(--font-body);font-size:14px;gap:8px;margin-bottom:20px}.date-label input{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);font-size:16px;max-width:280px;padding:12px 14px;width:100%}.slot-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));margin-top:12px}.slot-btn{background:var(--white);border:2px solid var(--brand-soft);border-radius:var(--radius);color:var(--brand-dark);cursor:pointer;font-family:var(--font-body);font-size:15px;padding:12px 10px;transition:background var(--transition),color var(--transition),border-color var(--transition),transform var(--transition)}.slot-btn:hover{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-1px)}.slot-btn--picked{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}.confirm-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow);margin:16px 0;padding:24px}.success-icon{font-size:64px;line-height:1}.login-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:380px;padding:36px;width:100%}.login-card h2{font-family:var(--font-display);font-size:20px;font-weight:500;margin-bottom:20px}.top-nav--site{background:var(--brand-dark);border-bottom:none;color:#fff}.top-nav--site .top-nav-brand{color:#fff}.top-nav--site .top-nav-link{color:#ffffffd9}.top-nav--site .top-nav-link:hover{background:#ffffff14;color:#fff}.top-nav--site .top-nav-link--active{color:var(--highlight);font-weight:700}.top-nav--site .btn-ghost{border-color:#ffffff40;color:#fff}.top-nav--site .btn-ghost:hover{background:#ffffff14}.top-nav--site .top-nav-toggle{color:#fff}.site-page{background:var(--bg);min-height:100vh}.tutors-hero{background:var(--brand-dark);color:#fff;width:100%}.tutors-hero__inner{margin:0 auto;max-width:1100px;padding:72px 32px 56px;text-align:left}.tutors-hero__eyebrow{color:var(--brand-light);font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.2em;margin-bottom:12px;text-transform:uppercase}.tutors-hero__title{color:#fff;font-family:var(--font-display);font-size:clamp(32px,5vw,48px);font-weight:500;margin-bottom:16px}.tutors-hero__title em{font-style:italic}.tutors-hero__lead{color:#ffffffd1;font-family:var(--font-body);font-size:17px;line-height:1.6;max-width:640px}.tutors-directory{margin:0 auto;max-width:1200px;padding:48px 24px 24px}.tutors-directory__label{color:var(--text-muted);font-family:var(--font-ui);font-size:11px;font-weight:700;letter-spacing:.18em;margin-bottom:24px;text-transform:uppercase}.tutors-grid{grid-gap:32px 24px;display:grid;gap:32px 24px;grid-template-columns:repeat(3,1fr)}@media (max-width:960px){.tutors-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.tutors-grid{grid-template-columns:1fr}}.tutor-profile-card{align-items:center;background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;padding:24px 20px 28px;text-align:center}.tutor-profile-card__photo-wrap{margin-bottom:16px;width:min(220px,70%)}.tutor-profile-card__name{font-family:var(--font-display);font-size:22px;margin-bottom:8px}.tutor-profile-card__subject{font-weight:600;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase}.tutor-profile-card__footnote,.tutor-profile-card__subject{color:var(--highlight-dark);font-family:var(--font-ui);font-size:12px}.tutor-profile-card__footnote{font-style:italic;margin-bottom:12px}.tutor-profile-card__bio{color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.6;margin:12px 0 16px;text-align:left}.tutor-profile-card__quals{background:var(--highlight-soft);border-radius:var(--radius);margin-bottom:16px;padding:16px;text-align:left;width:100%}.tutor-profile-card__quals strong{color:var(--text-muted);display:block;font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;margin-bottom:8px;text-transform:uppercase}.tutor-profile-card__quals ul{font-family:var(--font-body);font-size:13px;line-height:1.5;list-style:none}.tutor-profile-card__quals li{border-bottom:1px solid #0000000d;padding:4px 0}.tutor-profile-card__quals li:last-child{border-bottom:none}.tutor-profile-card__book{margin-top:auto}.tutors-join{background:var(--white);border:2px dashed var(--border);border-radius:var(--radius-lg);margin:48px auto;max-width:520px;padding:40px 24px;text-align:center}.tutors-join__icon{align-items:center;background:var(--brand-soft);border-radius:50%;color:var(--brand);display:flex;font-size:28px;height:48px;justify-content:center;margin:0 auto 16px;width:48px}.tutors-join h2{font-size:22px;margin-bottom:8px}.tutors-join p{color:var(--text-muted);font-size:14px;margin-bottom:20px}.tutors-cta{background:var(--brand-dark);color:#fff;margin-top:24px;padding:64px 24px;text-align:center}.tutors-cta h2{color:#fff;font-family:var(--font-display);font-size:28px;margin-bottom:12px}.tutors-cta p{color:#fffc;margin-bottom:24px}.tutors-cta__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.tutors-cta .btn-ghost{border-color:#ffffff4d;color:#fff}.tutors-cta .btn-ghost:hover{background:#ffffff1a;border-color:#fff6}.site-footer{background:var(--brand-dark);color:#ffffffbf;font-family:var(--font-ui);font-size:14px;padding:48px 24px 24px}.site-footer__inner{grid-gap:32px;display:grid;gap:32px;grid-template-columns:2fr 1fr 1fr;margin:0 auto;max-width:1100px}@media (max-width:720px){.site-footer__inner{grid-template-columns:1fr}}.site-footer__brand strong{color:#fff;display:block;font-family:var(--font-display);font-size:18px;margin-bottom:8px}.site-footer__brand p{line-height:1.5;margin-bottom:12px}.site-footer__contact a{color:var(--brand-light);text-decoration:none}.site-footer__col{display:flex;flex-direction:column;gap:8px}.site-footer__col strong{color:#fff;margin-bottom:4px}.site-footer__col a{color:#ffffffbf;text-decoration:none}.site-footer__col a:hover{color:#fff}.site-footer__copy{border-top:1px solid #ffffff1a;font-size:12px;margin:32px auto 0;max-width:1100px;padding-top:20px;text-align:center}.booking-header--plum{background:var(--brand-dark);border-bottom:none;color:#fff}.booking-header--plum .booking-header__inner{max-width:900px}.booking-header--plum h1{color:#fff;margin-bottom:10px}.booking-header__eyebrow{color:var(--brand-light);font-family:var(--font-body);font-size:13px;letter-spacing:.12em;margin-bottom:10px;text-transform:uppercase}.booking-header__lead{color:#ffffffd9;font-family:var(--font-body);font-size:16px;line-height:1.55;margin-bottom:20px;max-width:560px}.booking-header--plum .step-label{color:#ffffffa6}.booking-header--plum .step-active .step-label{color:#fff}.booking-header--plum .step-done .step-label{color:#fffc}.booking-header--plum .step-num{background:#ffffff26;color:#ffffffe6}.booking-header--plum .step-active .step-num{background:var(--highlight);color:var(--brand-dark)}.booking-header--plum .step-done .step-num{background:#fff3;color:#fff}.modal--wide{max-width:640px;width:95%}.admin-tutor-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.admin-tutor-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px;padding:16px}.admin-tutor-card__top{align-items:center;display:flex;gap:12px}.admin-tutor-card__email{display:block}.admin-tutor-card__email,.admin-tutor-card__line{color:var(--text-muted);font-size:12px}.admin-tutor-card__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.chip-muted{background:var(--bg-muted)!important;color:var(--text-muted)!important}.tutor-photo-upload{align-items:flex-start;background:var(--bg-muted);border:1px solid var(--border-soft);border-radius:var(--radius);display:flex;gap:16px;padding:12px}.tutor-photo-upload__preview{align-items:center;background:var(--highlight-soft);border-radius:50px/65px;color:var(--text-muted);display:flex;flex-shrink:0;font-size:11px;height:130px;justify-content:center;overflow:hidden;text-align:center;width:100px}.tutor-photo-upload__preview img{height:100%;object-fit:cover;width:100%}.tutor-photo-upload__label{flex:1 1}.dynamic-list{border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:8px;padding:12px}.dynamic-list legend{color:var(--text-muted);font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.12em;padding:0 6px;text-transform:uppercase}.dynamic-list__row{align-items:center;display:flex;gap:8px}.dynamic-list__row input{flex:1 1}.home-hero{background:var(--brand-dark);color:#fff;width:100%}.home-hero__inner{margin:0 auto;max-width:900px;padding:88px 32px 72px;text-align:center}.home-hero__eyebrow{color:var(--brand-light);font-family:var(--font-ui);font-size:13px;letter-spacing:.14em;margin-bottom:16px;text-transform:uppercase}.home-hero__title{color:#fff;font-family:var(--font-display);font-size:clamp(36px,6vw,56px);font-weight:400;line-height:1.15;margin-bottom:20px}.home-hero__title em{color:var(--highlight);font-style:italic}.home-hero__lead{color:#ffffffd9;font-family:var(--font-body);font-size:18px;line-height:1.65;margin:0 auto 32px;max-width:620px}.home-hero__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.home-hero__ghost{border-color:#ffffff4d;color:#fff}.home-hero__ghost:hover{background:#ffffff1a;border-color:#fff6}.home-features{margin:0 auto;max-width:1100px;padding:56px 24px}.home-section__label{color:var(--text-muted);font-family:var(--font-ui);font-size:13px;font-weight:400;letter-spacing:.14em;margin-bottom:32px;text-align:center;text-transform:uppercase}.home-features__grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}@media (max-width:800px){.home-features__grid{grid-template-columns:1fr}}.home-feature-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:32px 24px;text-align:center}.home-feature-card__icon{display:block;font-size:36px;margin-bottom:12px}.home-feature-card h2{font-family:var(--font-display);font-size:22px;font-weight:400;margin-bottom:10px}.home-feature-card p{color:var(--text-muted);font-family:var(--font-body);font-size:15px;line-height:1.6}.home-cta-band{background:var(--brand-soft);border-top:1px solid var(--border-soft);padding:56px 24px;text-align:center}.home-cta-band h2{font-family:var(--font-display);font-size:28px;font-weight:400;margin-bottom:10px}.home-cta-band p{color:var(--text-muted);font-family:var(--font-body);margin-bottom:24px}.home-cta-band__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.about-content{margin:0 auto;max-width:720px;padding:48px 24px 32px}.about-block{margin-bottom:36px}.about-block h2{font-family:var(--font-display);font-size:24px;font-weight:400;margin-bottom:12px}.about-block p{color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.7;margin-bottom:12px}.about-location{color:var(--brand);margin-top:16px}.about-values{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:28px}.about-values h2{font-family:var(--font-display);font-size:22px;font-weight:400;margin-bottom:16px}.about-values__list{font-family:var(--font-body);font-size:15px;line-height:1.8;list-style:none}.about-values__list li{border-bottom:1px solid var(--border-soft);padding:8px 0}.about-values__list li:last-child{border-bottom:none}.contact-layout{grid-gap:40px;align-items:start;display:grid;gap:40px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1000px;padding:48px 24px 64px}@media (max-width:800px){.contact-layout{grid-template-columns:1fr}}.contact-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}@media (max-width:500px){.contact-cards{grid-template-columns:1fr}}.contact-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px 20px}.contact-card__icon{display:block;font-size:28px;margin-bottom:8px}.contact-card h2{font-family:var(--font-display);font-size:18px;font-weight:400;margin-bottom:8px}.contact-card p{color:var(--text-muted);font-family:var(--font-body);font-size:14px;line-height:1.5}.contact-card a{color:var(--brand);text-decoration:none}.contact-card a:hover{text-decoration:underline}.contact-form-wrap{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:32px}.contact-form-wrap h2{font-family:var(--font-display);font-size:22px;font-weight:400;margin-bottom:8px}.contact-form__hint{color:var(--text-muted);font-family:var(--font-body);font-size:14px;margin-bottom:20px}.contact-form textarea{min-height:120px;resize:vertical}@media (max-width:1280px) and (min-width:1025px){.top-nav{gap:8px;padding:12px 20px}.top-nav-link{font-size:13px;padding:6px 8px}.top-nav-actions{gap:6px}.top-nav-actions .btn-sm{font-size:12px;padding:6px 12px}}@media (max-width:1024px){:root{--top-nav-height:calc(68px + env(safe-area-inset-top, 0px))}.top-nav-spacer{display:block;height:68px;height:var(--top-nav-height)}.top-nav{-webkit-backdrop-filter:none;backdrop-filter:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:var(--white);box-shadow:0 2px 8px #1a15231f;left:0;padding:calc(12px + env(safe-area-inset-top, 0px)) 20px 12px;position:fixed;right:0;top:0;transform:translateZ(0);width:100%;z-index:100}.top-nav--site{background:var(--brand-dark);box-shadow:0 2px 12px #1a15234d}.top-nav-brand{font-size:15px}.top-nav-backdrop[hidden]{display:none}.top-nav-backdrop:not([hidden]){display:block}.top-nav-toggle{display:flex;position:relative;z-index:2}.top-nav-menu{align-items:stretch;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:var(--brand-dark);box-shadow:var(--shadow-pop);flex-direction:column;gap:0;height:100vh;height:100dvh;justify-content:flex-start;overflow-y:auto;padding:80px 20px 28px;padding:calc(var(--top-nav-height) + 12px) 20px 28px;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .22s var(--ease-out);width:min(320px,100%);z-index:120}.top-nav-menu.is-open{transform:translateX(0)}.top-nav-backdrop{z-index:90}.top-nav-links{align-items:stretch;flex-direction:column;gap:2px;margin-bottom:20px;width:100%}.top-nav-link{border-radius:var(--radius);font-size:16px;padding:12px 14px}.top-nav-actions{align-items:stretch;flex-direction:column;gap:10px;width:100%}.top-nav-actions .btn-ghost,.top-nav-actions .btn-gold,.top-nav-actions .btn-sm,.top-nav-actions .btn-whatsapp,.top-nav-actions .top-nav-link{justify-content:center;text-align:center;width:100%}}@media (max-width:768px){.home-hero__inner{padding:56px 20px 48px}.home-hero__eyebrow{font-size:11px;letter-spacing:.1em;line-height:1.4}.home-hero__title{font-size:clamp(30px,8vw,42px)}.home-hero__lead{font-size:16px;margin-bottom:28px}.home-hero__actions{align-items:stretch;flex-direction:column;margin:0 auto;max-width:320px}.home-hero__actions .btn-ghost,.home-hero__actions .btn-gold{justify-content:center;width:100%}.tutors-hero__inner{padding:48px 20px 40px}.tutors-hero__title{font-size:clamp(28px,7vw,40px)}.tutors-hero__lead{font-size:16px}.home-cta-band,.home-features{padding:40px 20px}.home-cta-band h2{font-size:24px}.home-cta-band__actions{align-items:stretch;flex-direction:column;margin:0 auto;max-width:320px}.home-cta-band__actions .btn-ghost,.home-cta-band__actions .btn-gold{justify-content:center;width:100%}.tutors-directory{padding:36px 20px 20px}.tutors-join{margin:32px 20px;padding:32px 20px}.tutors-cta{padding:48px 20px}.tutors-cta h2{font-size:24px}.tutors-cta__actions{align-items:stretch;flex-direction:column;margin:0 auto;max-width:320px}.tutors-cta__actions .btn-ghost,.tutors-cta__actions .btn-gold,.tutors-cta__actions .btn-whatsapp{justify-content:center;width:100%}.about-content{padding:36px 20px 24px}.about-values{padding:20px}.contact-layout{gap:28px;padding:36px 20px 48px}.contact-form-wrap{padding:24px 20px}.site-footer{padding:40px 20px 20px}.page{padding:24px 20px}.page-header{align-items:flex-start;flex-direction:column;gap:12px}.form-row{grid-template-columns:1fr}.auth-card{padding:28px 24px}.booking-header{padding:20px}.booking-body{padding:28px 20px}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar input,.filter-bar select{width:100%}}@media (max-width:480px){.top-nav-brand{font-size:14px;max-width:calc(100vw - 100px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tutor-avatar--portrait{height:260px}.tutor-profile-card__photo-wrap{width:min(200px,85%)}}.app-toast{background:var(--jl-plum-deep);border-radius:var(--radius-pill);bottom:24px;box-shadow:var(--shadow-lg);color:#fff;font-family:var(--font-ui);font-size:14px;font-weight:500;left:50%;opacity:0;padding:12px 22px;pointer-events:none;position:fixed;transform:translateX(-50%) translateY(12px);transition:opacity .2s ease,transform .2s ease;white-space:nowrap;z-index:9999}.app-toast--visible{opacity:1;transform:translateX(-50%) translateY(0)}.app-toast--success{background:#16a34a}.app-toast--error{background:#dc2626}.app-toast--warn{background:#d97706}.app-loading{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#f5f1fabf;display:flex;inset:0;justify-content:center;position:fixed;transition:opacity .15s;z-index:9000}.app-loading--hidden{display:none}.app-loading__spinner{animation:app-spin .7s linear infinite;border:3px solid var(--brand-soft);border-radius:50%;border-top-color:var(--brand);height:40px;width:40px}@keyframes app-spin{to{transform:rotate(1turn)}}.pkg-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:32px}.pkg-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow var(--transition),transform var(--transition)}.pkg-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.pkg-card-top{border-bottom:1px solid var(--border-soft);padding:20px 20px 16px}.pkg-name{color:var(--text-heading);font-family:var(--font-display);font-size:18px;font-weight:500;margin:0 0 8px}.pkg-scope{background:var(--brand-soft);border-radius:var(--radius-pill);color:var(--brand);display:inline-block;font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.08em;margin-bottom:8px;padding:3px 10px;text-transform:uppercase}.pkg-desc{color:var(--text-muted);font-size:14px;margin:8px 0 0}.pkg-card-mid{background:var(--bg-muted);display:flex;gap:8px;justify-content:space-around;padding:16px;text-align:center}.pkg-stat{display:flex;flex-direction:column;gap:2px}.pkg-stat strong{color:var(--text-heading);font-family:var(--font-display);font-size:22px;font-weight:600}.pkg-stat span{color:var(--text-muted);font-family:var(--font-ui);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.pkg-stat--price strong{color:var(--brand)}.pkg-card-foot{align-items:center;display:flex;justify-content:space-between;margin-top:auto;padding:16px 20px}.pkg-per-session{color:var(--text-muted);font-family:var(--font-ui);font-size:13px;margin:0}.pkg-info-box{background:var(--highlight-soft);border:1px solid var(--highlight);border-radius:var(--radius-md);margin-top:8px;padding:20px 24px}.pkg-info-box h3{font-family:var(--font-display);font-size:16px;font-weight:500;margin:0 0 12px}.pkg-info-box ol{margin:0;padding-left:20px}.pkg-info-box li{color:var(--text);font-family:var(--font-body);font-size:14px;margin-bottom:6px}.pkg-section{margin-bottom:40px}.pkg-section-title{color:var(--brand-dark);font-family:var(--font-display);font-size:22px;margin:0 0 8px}.pkg-plan-badge{background:var(--brand);border-radius:var(--radius-pill);color:#fff;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:8px;padding:3px 10px;text-transform:uppercase}.pkg-plan-badge--once{background:var(--text-muted)}.pkg-card--plan{border-top:3px solid var(--brand)}.schedule-block{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius);margin-bottom:16px;padding:20px}.schedule-block h3{color:var(--brand-dark);font-size:15px;margin:0 0 12px}.schedule-block select{margin-top:4px;width:100%}.pkg-use-box{background:var(--brand-soft);border:1px solid var(--brand-light);border-radius:var(--radius);margin-bottom:20px;padding:16px 20px}.pkg-use-box h3{color:var(--brand-dark)}.pkg-use-box select{margin-top:4px;width:100%}.recurring-offer{background:var(--white);border:2px solid var(--brand-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-top:24px;max-width:560px;padding:28px 32px;text-align:left}.recurring-offer h2{color:var(--brand-dark);font-family:var(--font-display);font-size:20px;margin:0 0 8px}.recurring-offer__lead{color:var(--text-muted);font-size:14px;line-height:1.5;margin:0 0 20px}.recurring-plan-cards{display:flex;flex-wrap:wrap;gap:12px}.recurring-plan-card{cursor:pointer;flex:1 1;min-width:200px}.recurring-plan-card input{display:none}.recurring-plan-card__body{border:2px solid var(--border-soft);border-radius:var(--radius);padding:16px;transition:border-color .15s,background .15s}.recurring-plan-card input:checked+.recurring-plan-card__body{background:var(--brand-soft);border-color:var(--brand)}.recurring-plan-card__body strong{display:block;font-size:15px;margin-bottom:4px}.recurring-plan-card__price{color:var(--brand-dark);display:block;font-size:18px;font-weight:700}.recurring-plan-card__detail{color:var(--text-muted);display:block;font-size:13px;margin-top:4px}.second-slot-panel{border-top:1px solid var(--border-soft);margin-top:20px;padding-top:16px}.second-slot-panel select{margin-top:4px;width:100%}.recurring-offer--done{background:#f0fdf4;border-color:var(--success);text-align:center}.slot-btn--selected{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}.pkg-savings{background:var(--success);border-radius:var(--radius-pill);color:#fff;display:inline-block;font-family:var(--font-ui);font-size:11px;font-weight:700;letter-spacing:.08em;margin:4px 0 8px;padding:2px 10px;text-transform:uppercase}.pkg-includes{color:var(--text-muted);font-family:var(--font-ui);font-size:13px;margin:8px 0 0}.discount-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 8px}.disc-input{border:1px solid var(--border);border-radius:var(--radius-pill);flex:1 1;font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:1px;max-width:220px;min-width:160px;padding:8px 14px;text-transform:uppercase}#disc-msg{font-family:var(--font-ui);font-size:13px;font-weight:500}.price-summary{align-items:baseline;background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius);display:flex;justify-content:space-between;margin-bottom:4px;padding:12px 16px}.price-label{color:var(--text-muted);font-family:var(--font-ui);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.price-amount{color:var(--brand);font-family:var(--font-display);font-size:24px;font-weight:600}.code-chip{background:var(--brand-soft);border-radius:var(--radius-sm);color:var(--brand-dark);font-family:var(--font-mono);font-size:13px;letter-spacing:.5px;padding:2px 8px}.tab-bar{display:flex;gap:4px}.tab-btn{background:#0000;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;font-family:var(--font-ui);font-size:13px;font-weight:600;padding:6px 18px;transition:background var(--transition),color var(--transition),border-color var(--transition)}.tab-btn.active,.tab-btn:hover{background:var(--brand);border-color:var(--brand);color:#fff}.booking-step-panel{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:28px 24px}.booking-step-panel .card-grid{margin-bottom:8px}.booking-step-panel .tutor-card-btn{align-items:center;border-color:var(--border-soft);box-shadow:var(--shadow-sm);flex-direction:row;gap:14px}.booking-step-panel .tutor-card-btn strong{color:var(--text-heading);font-size:17px}.booking-step-panel .tutor-card-btn p{color:var(--text-muted);font-size:14px;line-height:1.45;margin:4px 0 0}.booking-loading{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-family:var(--font-body);font-size:15px;gap:16px;justify-content:center;padding:48px 20px}.booking-loading__spinner{animation:app-spin .7s linear infinite;border:3px solid var(--brand-soft);border-radius:50%;border-top-color:var(--brand);height:36px;width:36px}.booking-success{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:520px;padding:40px 32px;width:100%}.booking-success__icon{font-size:56px;line-height:1;margin-bottom:8px}.booking-success__title{color:var(--text-heading);font-family:var(--font-display);font-size:clamp(24px,4vw,30px);font-weight:400;margin-bottom:12px}.booking-success__message{color:var(--text-muted);font-family:var(--font-body);font-size:16px;line-height:1.6;margin-bottom:20px}.booking-success__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:24px}.booking-success .confirm-card{margin:0 auto 16px;text-align:left}.booking-success .confirm-card+p{color:var(--text-muted);font-size:14px;line-height:1.5}.booking-view-card{max-width:480px;text-align:left;width:100%}.booking-packages-body{margin:0 auto;max-width:1100px}.pkg-card-foot{align-items:stretch;flex-direction:column;gap:12px}.pkg-card-foot .btn-primary{justify-content:center;width:100%}@media (min-width:640px){.pkg-card-foot{align-items:center;flex-direction:row}.pkg-card-foot .btn-primary{width:auto}}.modal--booking{max-width:520px}.booking-step-panel .back-btn{margin-top:20px}.booking-step-panel .form-actions{flex-wrap:wrap;margin-top:16px}@media (max-width:768px){.booking-header__inner{padding:24px 20px 20px}.booking-body{padding:24px 16px 40px}.booking-step-panel{border-radius:var(--radius-md);padding:20px 16px}.booking-success{padding:32px 20px}.booking-success__actions{align-items:stretch;flex-direction:column}.booking-success__actions .btn-danger,.booking-success__actions .btn-ghost,.booking-success__actions .btn-primary{justify-content:center;width:100%}.step{min-width:52px}.step-label{font-size:9px;max-width:60px}.discount-row{align-items:stretch;flex-direction:column}.disc-input{max-width:none;width:100%}.price-summary{align-items:flex-start;flex-direction:column;gap:4px}}.booking-datetime{grid-gap:12px;align-items:start;display:grid;gap:12px}@media (min-width:720px){.booking-datetime{gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,320px)}.booking-times{min-height:140px}}.booking-times{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:14px 16px;transition:box-shadow var(--transition),border-color var(--transition)}@media (max-width:719px){.booking-times{box-shadow:var(--shadow-sm);position:-webkit-sticky;position:sticky;top:68px;top:var(--top-nav-height,68px);z-index:40}.booking-times--active{border-color:var(--brand-light);box-shadow:var(--shadow-lg)}}.booking-times--active{background:linear-gradient(180deg,var(--highlight-soft) 0,var(--white) 48px);border-color:var(--brand-light)}.booking-calendar{background:var(--bg-muted);border:1px solid var(--border-soft);border-radius:var(--radius-md);margin:0 auto;max-width:320px;padding:10px 12px;width:100%}@media (min-width:720px){.booking-calendar{margin:0;max-width:none}}.booking-calendar__header{align-items:center;display:flex;gap:6px;justify-content:space-between;margin-bottom:8px}.booking-calendar__month{color:var(--text-heading);flex:1 1;font-family:var(--font-display);font-size:16px;text-align:center}.booking-calendar__nav{align-items:center;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--brand-dark);cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:32px;justify-content:center;line-height:1;transition:background var(--transition),border-color var(--transition);width:32px}.booking-calendar__nav:hover:not(:disabled){background:var(--brand-soft);border-color:var(--brand-light)}.booking-calendar__nav:disabled{cursor:not-allowed;opacity:.35}.booking-calendar__weekdays{grid-gap:2px;color:var(--text-muted);display:grid;font-family:var(--font-body);font-size:10px;gap:2px;grid-template-columns:repeat(7,1fr);margin-bottom:4px;text-align:center}.booking-calendar__grid{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(7,1fr)}.cal-day{background:var(--white);border:1px solid #0000;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-family:var(--font-body);font-size:13px;height:32px;min-height:0;padding:0;transition:background var(--transition),border-color var(--transition)}.cal-day--pad{pointer-events:none;visibility:hidden}.cal-day--disabled{background:#0000;color:var(--text-soft);cursor:not-allowed;opacity:.4}.cal-day--loading{background:var(--white);color:var(--text-muted);cursor:wait;opacity:.65}.cal-day--none{background:var(--bg);color:var(--text-muted);cursor:not-allowed;opacity:.5}.cal-day--available:hover{background:var(--brand-soft);border-color:var(--brand-light)}.cal-day--available{border-color:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand-light)}.cal-day--available.cal-day--selected,.cal-day--selected{background:var(--brand);border-color:var(--brand);box-shadow:var(--shadow-sm);color:#fff}.cal-day--today:not(.cal-day--selected){border-color:var(--highlight-dark)}.booking-calendar__legend{align-items:center;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:11px;gap:12px;margin-top:8px}.booking-calendar__dot{border-radius:50%;display:inline-block;height:8px;margin-right:4px;vertical-align:middle;width:8px}.booking-calendar__dot--open{background:var(--brand);box-shadow:inset 0 0 0 1px var(--brand-light)}.booking-calendar__dot--none{background:var(--bg);border:1px solid var(--border)}.booking-times__placeholder{color:var(--text-muted);font-family:var(--font-body);font-size:14px;margin:0;padding:8px 0;text-align:center}.booking-times__header{border-bottom:1px solid var(--border-soft);margin-bottom:12px;padding-bottom:10px}.booking-times__header h3{color:var(--text-heading);font-family:var(--font-display);font-size:17px;margin:0 0 2px}.booking-times__header p{color:var(--text-muted);font-family:var(--font-body);font-size:13px;margin:0}.slot-grid--times{gap:8px;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));margin-top:0}.slot-grid--times .slot-btn{font-size:14px;padding:10px 8px}.booking-loading--compact{padding:16px 8px}@media (max-width:480px){.cal-day{font-size:12px;height:30px}.booking-calendar{padding:8px 10px}.booking-times{padding:12px 14px}}
/*# sourceMappingURL=main.88d5ef80.css.map*/