.asb-card{max-width:1050px;margin:20px auto;padding:28px;background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 8px 30px rgba(0,0,0,.06);font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#111827}.asb-card h2,.asb-card h3{margin-top:0}.asb-field{margin:14px 0}.asb-field label,.asb-label{display:block;font-weight:700;margin-bottom:6px}.asb-field input,.asb-field select,.asb-field textarea{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:10px;padding:11px 12px;font-size:15px;background:#fff}.asb-field textarea{min-height:90px}.asb-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.asb-timegrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.asb-time{border:1px solid #d1d5db;background:#fff;border-radius:10px;padding:12px;cursor:pointer}.asb-time.selected{background:#111827;color:#fff;border-color:#111827}.asb-time.disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.asb-btn{display:inline-block;border:0;border-radius:10px;padding:12px 18px;background:#111827;color:#fff;cursor:pointer;font-weight:700}.asb-btn-light{background:#f3f4f6;color:#111827;text-decoration:none}.asb-details{display:none;margin-top:20px}.asb-alert,.asb-success,.asb-muted{padding:12px;border-radius:10px;margin:10px 0}.asb-alert{background:#fef2f2;color:#991b1b}.asb-success{background:#ecfdf5;color:#065f46}.asb-muted{background:#f8fafc;color:#64748b}.asb-staff-head,.asb-calendar-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.asb-dashboard-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:30px}.asb-calendar-head{margin:10px 0}.asb-iconbtn{border:1px solid #ddd;background:#fff;border-radius:8px;width:36px;height:36px;font-size:22px}.asb-weekdays,.asb-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.asb-weekdays span{text-align:center;font-weight:700;font-size:12px;padding:8px}.asb-day{min-height:64px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;text-align:left;padding:8px;cursor:pointer;position:relative}.asb-day.empty{background:transparent;border:0;cursor:default}.asb-day.has-bookings{box-shadow:inset 0 0 0 2px #111827}.asb-day.override-open{background:#ecfdf5}.asb-day.override-closed{background:#fef2f2}.asb-day b{position:absolute;right:7px;bottom:6px;font-size:11px}.asb-daypanel{margin-top:16px}.asb-booking-row{display:grid;grid-template-columns:1.1fr 1fr auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid #eee}.asb-booking-main span,.asb-booking-row span{display:block;color:#6b7280;font-size:13px;margin-top:4px}.asb-small{padding:8px 10px;border:1px solid #ddd;background:#fff;border-radius:8px;cursor:pointer}.asb-week-row{display:grid;grid-template-columns:1.4fr 1fr auto 1fr;gap:8px;align-items:center;margin:8px 0}.asb-mt{margin-top:28px}.asb-override{padding:10px 0;border-bottom:1px solid #eee}.asb-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99999;align-items:center;justify-content:center}.asb-modal.open{display:flex}.asb-modal-inner{background:#fff;border-radius:16px;padding:24px;max-width:560px;width:calc(100% - 40px);position:relative}.asb-close{position:absolute;top:10px;right:12px;border:0;background:none;font-size:28px;cursor:pointer}.asb-admin-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.asb-admin-card{background:#fff;border:1px solid #ddd;border-radius:14px;padding:18px}.asb-checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.asb-check{padding:8px;border:1px solid #eee;border-radius:8px}.asb-admin-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.asb-admin-form input{padding:7px}.asb-loading{padding:12px;color:#6b7280}.asb-lesson-badge{display:inline-block;background:#eef2ff;color:#4338ca;font-weight:700;font-size:11px;padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:middle}@media(max-width:800px){.asb-dashboard-grid{grid-template-columns:1fr}.asb-grid{grid-template-columns:1fr}.asb-timegrid{grid-template-columns:1fr 1fr}.asb-booking-row{grid-template-columns:1fr}.asb-admin-cards{grid-template-columns:1fr}.asb-checklist{grid-template-columns:1fr}.asb-week-row{grid-template-columns:1fr 1fr auto 1fr}.asb-weekdays span{font-size:11px}.asb-day{min-height:48px;font-size:13px}}

.asb-admin-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1100px}.asb-admin-card{background:#fff;border:1px solid #dcdcde;border-radius:14px;padding:18px}.asb-checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.asb-check{padding:10px;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa}.asb-admin-form{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.asb-admin-form input{padding:7px}.asb-mt{margin-top:28px}@media(max-width:900px){.asb-admin-cards{grid-template-columns:1fr}.asb-checklist{grid-template-columns:1fr}}
.asb-override-editor{margin-top:18px;padding-top:16px;border-top:1px solid #eee}.asb-override-editor h4{margin:0 0 8px}.asb-override-editor label{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:10px}


/* ==========================================================================
   MOBILE & RESPONSIVE FIXES (v2.1.9)
   ========================================================================== */
*, *:before, *:after {
    box-sizing: border-box !important;
}

#asb-booking, .asb-card, .asb-staff {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 16px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
}

.asb-staff-head {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
}

@media (min-width: 640px) {
    .asb-staff-head {
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
}

.asb-staff-head h2 {
    font-size: 20px !important;
    line-height: 1.3 !important;
    margin: 0 0 6px 0 !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}

.asb-dashboard-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    width: 100% !important;
}

@media (min-width: 900px) {
    .asb-dashboard-grid {
        grid-template-columns: 1fr 1fr !important;
    }
}

.asb-calendar-head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 12px !important;
}

.asb-calendar-head strong {
    font-size: 16px !important;
    text-transform: capitalize !important;
}

.asb-weekdays, .asb-calendar {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 4px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.asb-weekdays span {
    text-align: center !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    color: #4b5563 !important;
    padding: 4px 0 !important;
}

.asb-calendar .asb-day {
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 2px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
}

.asb-calendar .asb-day b {
    font-size: 10px !important;
    margin-top: 2px !important;
}

.asb-week-row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px !important;
    background: #f9fafb !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    margin-bottom: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.asb-week-row label {
    width: 100% !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

@media (min-width: 480px) {
    .asb-week-row label {
        width: 130px !important;
    }
}

.asb-week-row input[type="time"] {
    flex: 1 1 100px !important;
    min-width: 90px !important;
    padding: 6px 8px !important;
    font-size: 14px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    box-sizing: border-box !important;
}

.asb-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
}

@media (min-width: 640px) {
    .asb-grid {
        grid-template-columns: 1fr 1fr !important;
    }
}

.asb-field input, .asb-field select, .asb-field textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.asb-table-responsive {
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    margin-bottom: 15px !important;
}

.asb-table-responsive table {
    width: 100% !important;
    min-width: 500px !important;
}

.asb-modal-inner {
    width: 92% !important;
    max-width: 500px !important;
    padding: 20px !important;
    box-sizing: border-box !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
}

h1, h2, h3, h4, p {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}


/* Exact per-lesson availability editor (v2.3.0) */
.asb-week-row-advanced{padding:12px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;margin:8px 0}.asb-week-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.asb-week-top>label{font-weight:700;min-width:155px;display:flex;align-items:center;gap:8px}.asb-week-range{display:flex;align-items:center;gap:6px}.asb-week-range input{width:120px!important}.asb-week-slots{margin-top:12px;padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.asb-slot-list{display:flex;flex-direction:column;gap:7px}.asb-slot-row{display:flex;align-items:center;gap:8px}.asb-slot-row input[type=time]{width:130px!important;max-width:130px!important;padding:8px 10px!important}.asb-slot-row.is-booked{opacity:.78}.asb-slot-row .asb-small:disabled{cursor:not-allowed;opacity:.5}.asb-slot-booked{font-size:12px;padding:3px 7px;border-radius:999px;background:#ecfdf5;color:#065f46;font-weight:700}.asb-slot-help,.asb-editor-title p,.asb-slot-editor-head p{margin:6px 0 10px;color:#6b7280;font-size:12px}.asb-slot-editor{margin-top:14px;padding:12px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:9px}.asb-slot-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.asb-slot-editor-head strong{font-size:14px}.asb-slot-count{white-space:nowrap;font-size:12px;font-weight:700;background:#eef2ff;color:#3730a3;border-radius:999px;padding:4px 8px}.asb-daypanel{margin-top:16px;padding:16px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.asb-daypanel-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.asb-daypanel-head h3{margin:0}.asb-daypanel-bookings h4{margin:18px 0 8px}.asb-booking-note{font-size:13px;color:#374151;margin-top:6px;background:#f3f4f6;padding:6px 8px;border-radius:5px;border-left:3px solid #3b82f6}.asb-daypanel-actions{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}.asb-open-check{display:flex;align-items:center;gap:8px;font-weight:700;margin:10px 0 12px}.asb-day-range{margin-top:8px}.asb-no-slots{margin:8px 0}.asb-week-readonly{padding:8px 0;border-bottom:1px solid #eee;font-size:13px}.asb-day.active{box-shadow:inset 0 0 0 2px #111827!important;transform:translateY(-1px)}@media(max-width:700px){.asb-week-top{align-items:stretch}.asb-week-top>label{min-width:100%}.asb-week-range{width:100%}.asb-week-range input{flex:1;width:auto!important;max-width:none!important}.asb-week-toggle{width:100%}.asb-slot-row input[type=time]{flex:1;width:auto!important;max-width:none!important}.asb-daypanel-head{align-items:flex-start}.asb-daypanel-head h3{font-size:16px}}


/* Exact lesson start/end intervals (v2.4.1) */
.asb-week-row-advanced .asb-week-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.asb-inline-label{font-size:12px;color:#6b7280;font-weight:600;margin-right:2px}
.asb-slot-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.asb-slot-row > span{color:#6b7280;font-weight:600}
.asb-slot-row .asb-slot-start,
.asb-slot-row .asb-slot-end{width:118px!important;max-width:118px!important;flex:0 0 118px!important}
.asb-slot-row .asb-small{flex:0 0 auto}
.asb-week-slots{overflow:hidden}
@media(max-width:700px){
  .asb-slot-row .asb-slot-start,
  .asb-slot-row .asb-slot-end{flex:1 1 120px!important;width:auto!important;max-width:none!important}
  .asb-slot-row > span{flex:0 0 auto}
  .asb-slot-row .asb-small{width:100%}
}

/* Weekly schedule compact instructor view (v2.4.1) */
.asb-week-row-advanced .asb-week-top{justify-content:flex-start}
.asb-week-row-advanced .asb-week-top>label{margin-right:auto}
.asb-week-row-advanced .asb-week-toggle{font-weight:700;min-height:42px;padding:9px 14px;border-radius:9px}
.asb-week-row-advanced .asb-week-slots{margin-top:10px}
.asb-week-row-advanced .asb-slot-editor-head{margin-bottom:12px}
.asb-week-row-advanced .asb-slot-editor-head p{margin:5px 0 0}
.asb-week-row-advanced .asb-slot-help{line-height:1.5}


/* v2.5.0 */
.asb-no-show-btn{border-color:#fca5a5;background:#fff7f7;color:#991b1b;font-weight:700}.asb-noshow-badge{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:11px;font-weight:700;vertical-align:middle}.asb-booking-actions{display:flex;gap:6px;flex-wrap:wrap}.asb-check{display:flex;align-items:center;gap:8px}
