/* Tutor Booking System v3 - soft Elementor/daycare friendly styling */
.tb-app{max-width:940px;margin:0 auto;font-family:inherit;color:#27313d;background:#fff}.tb-hidden{display:none!important}.tb-steps{display:flex;gap:12px;margin:0 0 28px}.tb-step{flex:1;display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:18px;background:#f2fbff;border:1px solid #cfeef9;color:#4f7180;font-weight:700}.tb-step.active{background:#0099D3;color:#fff;border-color:#0099D3}.tb-step.completed{background:#e8f7ef;color:#28764f;border-color:#c9ead8}.tb-step-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.7);font-size:14px}.tb-panel{background:#fff;border:1px solid #cfeef9;border-radius:28px;padding:34px;box-shadow:0 18px 45px rgba(0,153,211,.10)}.tb-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:12px;color:#0099D3;margin:0 0 8px}.tb-panel h2{margin:0 0 8px;font-size:32px;line-height:1.15;color:#27313d}.tb-subtitle{color:#68717d;margin:0 0 24px;font-size:16px}.tb-choice-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.tb-chip{border:2px solid #cfeef9;background:#fff;border-radius:999px;padding:10px 18px;font-weight:800;cursor:pointer;color:#5b6470}.tb-chip.selected,.tb-chip:hover{background:#0099D3;border-color:#0099D3;color:#fff}.tb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px}.tb-card{border:2px solid #cfeef9;border-radius:22px;padding:18px;background:#fff;cursor:pointer;position:relative;transition:.16s ease;user-select:none}.tb-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,153,211,.13);border-color:#0099D3}.tb-card:focus-visible{outline:3px solid rgba(0,153,211,.25);outline-offset:2px}.tb-card.selected{border-color:#0099D3;background:#f2fbff;box-shadow:0 10px 24px rgba(0,153,211,.16)}.tb-card-check{display:none;position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;background:#0099D3;color:#fff;align-items:center;justify-content:center;font-weight:900}.tb-card.selected .tb-card-check{display:flex}.tb-card.tb-busy{opacity:.6;pointer-events:none}.tb-card-name{font-size:19px;font-weight:900;margin-bottom:4px;color:#27313d;padding-right:28px}.tb-card-meta{font-size:12px;color:#0099D3;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.tb-card-bio{font-size:14px;line-height:1.45;color:#66707b}.tb-tutor-section{margin:0 0 26px;padding:22px;border-radius:24px;background:#f5fcff;border:1px solid #cfeef9}.tb-section-heading{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin-bottom:14px}.tb-section-heading h3{margin:0;font-size:22px}.tb-section-heading span{font-size:13px;color:#4f7180;font-weight:800}.tb-days-container{display:flex;flex-direction:column;gap:12px}.tb-day-group{display:flex;gap:16px;align-items:flex-start}.tb-day-label{width:110px;flex-shrink:0;font-weight:900;color:#27313d;padding-top:12px}.tb-day-slots{display:flex;flex-wrap:wrap;gap:10px}.tb-slot-card{min-width:118px;text-align:center;padding:14px 18px;border-radius:16px;background:#fff}
.tb-slot-card .tb-card-check{top:8px;right:8px;width:22px;height:22px;font-size:13px}
.tb-slot-card .tb-slot-time{padding-right:22px}.tb-slot-time{font-weight:900;font-size:16px;color:#27313d}.tb-slot-dur{font-size:12px;color:#78828e;margin-top:2px}.tb-no-slots,.tb-loading{color:#78828e;font-style:italic}.tb-taken-note{font-size:13px;color:#5f7884;margin-top:12px}.tb-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tb-form-group{margin-bottom:18px}.tb-form-group label{display:block;font-weight:900;margin-bottom:7px;color:#27313d}.tb-required{color:#d4553f}.tb-optional{font-weight:500;color:#8b95a1}.tb-input{width:100%;box-sizing:border-box;border:2px solid #cfeef9;border-radius:16px;padding:13px 15px;font:inherit;background:#fff;color:#27313d}.tb-input:focus{outline:none;border-color:#0099D3;box-shadow:0 0 0 4px rgba(0,153,211,.16)}.tb-textarea{min-height:110px;resize:vertical}.tb-booking-summary{background:#f5fbff;border:1px solid #dcebfa;border-radius:22px;padding:20px;margin:22px 0}.tb-booking-summary h3{margin:0 0 10px;font-size:20px}.tb-summary-tutor{margin-bottom:10px}.tb-summary-tutor ul{margin:6px 0 0 20px;padding:0}.tb-summary-tutor li{margin:4px 0;color:#4f5b67}.tb-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.tb-btn{border:0;border-radius:999px;padding:14px 24px;font-weight:900;font-size:16px;cursor:pointer;transition:.15s ease}.tb-btn-primary{background:#0099D3;color:#fff}.tb-btn-primary:hover:not(:disabled){background:#007fb0;transform:translateY(-1px)}.tb-btn-primary:disabled{background:#d9d9d9;color:#888;cursor:not-allowed}.tb-btn-secondary{background:#e8f7fc;color:#006b94}.tb-btn-secondary:hover{background:#d8f2fb}.tb-error{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9999;max-width:680px;width:calc(100% - 34px);background:#fff0ee;border:1px solid #efb5ab;color:#9b2f21;border-radius:18px;padding:14px 18px;box-shadow:0 16px 40px rgba(0,0,0,.12);font-weight:700}#tb-timer{font-weight:900;color:#d4553f}.tb-success{text-align:center;padding:34px 10px}.tb-success-icon{width:74px;height:74px;border-radius:50%;background:#58b979;color:#fff;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:900;margin:0 auto 18px}.tb-success h2{font-size:34px}.tb-success p{color:#68717d;font-size:17px;max-width:560px;margin:0 auto}.tb-phone-link{display:inline-block;background:#0099D3;color:#fff!important;text-decoration:none;border-radius:999px;padding:13px 22px;font-weight:900}.tb-phone-link:hover{background:#007fb0}.tb-closed-panel{text-align:center}.tb-slot-rules{background:#e8f7fc;border:1px solid #cfeef9;border-radius:16px;padding:12px 14px;font-weight:800;color:#006b94;margin:0 0 18px}.tb-child-assignment{display:contents}@media(max-width:700px){.tb-steps{flex-direction:column}.tb-panel{padding:24px;border-radius:22px}.tb-panel h2{font-size:26px}.tb-grid,.tb-form-grid{grid-template-columns:1fr}.tb-day-group{flex-direction:column;gap:8px}.tb-day-label{width:auto;padding-top:0}.tb-slot-card{min-width:calc(50% - 40px)}.tb-actions{flex-direction:column-reverse}.tb-btn{width:100%}}

.tb-expired-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(12,38,52,.72);backdrop-filter:blur(3px)}
.tb-expired-dialog{width:min(520px,100%);background:#fff;border:1px solid #cfeef9;border-radius:26px;padding:34px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.tb-expired-icon{width:68px;height:68px;margin:0 auto 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e8f7fc;color:#0099D3;font-size:36px;font-weight:900}
.tb-expired-dialog h2{margin:0 0 10px;color:#27313d;font-size:30px;line-height:1.15}
.tb-expired-dialog p{margin:0 auto 22px;max-width:410px;color:#68717d;font-size:16px;line-height:1.55}
.tb-expired-cta{display:inline-block;text-decoration:none!important}
@media(max-width:700px){.tb-expired-dialog{padding:28px 20px;border-radius:22px}.tb-expired-dialog h2{font-size:26px}.tb-expired-cta{width:100%}}
