:root{font-family:system-ui,-apple-system,Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:#1b1b1b;background-color:#f6f7fb;--primary: #2f5bff;--primary-dark: #2648c5;--primary-soft: #e7eeff;--surface: #ffffff;--surface-muted: #f4f7ff;--border-subtle: #dde3f3;--text-muted: #5c6475;--page-bg: #f6f7fb;--text-main: #1b1b1b;--heading: #17224a;--radius: 16px;--shadow-soft: 0 10px 24px rgba(17, 31, 63, .08);--shadow-strong: 0 18px 32px rgba(17, 31, 63, .16);--shadow-action: 0 10px 20px rgba(17, 31, 63, .18)}.theme-dark{color:#e7e9f1;background-color:#0e1222;--primary: #7aa2ff;--primary-dark: #4f74d6;--primary-soft: #1b2547;--surface: #151a2c;--surface-muted: #121827;--border-subtle: #2b3452;--text-muted: #97a1bd;--page-bg: #0e1222;--text-main: #e7e9f1;--heading: #f2f4ff;--table-surface: #11182c;--table-surface-alt: #151d36;--table-border: rgba(231, 233, 241, .16);--table-border-strong: rgba(231, 233, 241, .22);--table-text: #e7e9f1;--table-text-muted: #c7d2f0;--chip-bg: #1a2342;--chip-border: rgba(122, 162, 255, .35);--chip-active-bg: #223066;--chip-active-shadow: 0 0 0 2px rgba(122, 162, 255, .25);--select-bg: #151a2c;--select-border: rgba(231, 233, 241, .22);--danger-bg: #3a1822;--danger-border: #7a2a3c;--shadow-soft: 0 14px 30px rgba(0, 0, 0, .35);--shadow-strong: 0 20px 40px rgba(0, 0, 0, .45);--shadow-action: 0 14px 24px rgba(18, 28, 56, .45)}*{box-sizing:border-box}body{margin:0;background-color:var(--page-bg);color:var(--text-main)}#root{min-height:100vh}.app{direction:ltr;text-align:left;padding:32px clamp(20px,20vw,200px) 24px;max-width:none;margin:0}.workspace-container{max-width:none;margin:0;padding-inline:clamp(20px,20vw,200px)}.app-header{margin-bottom:24px}.app-header h1{margin:0 0 12px;font-size:32px;font-weight:700;color:var(--heading)}.app-header p{margin:0;color:var(--text-muted);font-size:14px;line-height:1.35}.app-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.theme-toggle{border:1px solid var(--border-subtle);background:var(--surface);color:var(--text-main);border-radius:999px;padding:8px;cursor:pointer;font-weight:600;font-size:13px;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}.theme-toggle svg{width:20px;height:20px}.theme-toggle:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark);box-shadow:0 8px 16px #111f3f29;transform:translateY(-1px)}@media (max-width: 720px){.app-header-row{flex-direction:column;align-items:stretch}.theme-toggle{align-self:flex-start}}.theme-dark .app-header h1,.theme-dark .drop-zone-headline,.theme-dark .drop-zone-status,.theme-dark .toggle-row,.theme-dark .toggle-label,.theme-dark .grid-header,.theme-dark .schedule-title,.theme-dark .preview-header h2,.theme-dark .availability-header h2,.theme-dark .settings-title,.theme-dark .lesson-label,.theme-dark .lesson-teacher,.theme-dark .booking-summary,.theme-dark .grid-zoom-value,.theme-dark .grid-zoom-label,.theme-dark .grid-legend,.theme-dark .tab-button,.theme-dark .status-pill,.theme-dark .status-muted,.theme-dark .copy-status,.theme-dark .copy-status-preview{color:#f2f4ff}.theme-dark .app-header p,.theme-dark .drop-zone-status-subtext,.theme-dark .drop-zone-helper,.theme-dark .preview-header p,.theme-dark .availability-header p,.theme-dark .settings-card,.theme-dark .settings-title,.theme-dark .status-muted,.theme-dark .grid-legend{color:#c7d2f0}.theme-dark .drop-zone-status-text{color:#d6def4}.theme-dark .drop-zone-filename{color:#9fb7ff}.theme-dark .tab-button{background:#151a2c;border-color:#2b3452}.theme-dark .tab-button:hover{background:#1a2140;color:#f2f4ff}.theme-dark .tab-button.active{background:#273160;color:#f2f4ff;border-color:#4a6bff}.theme-dark .status-pill{background:#222a4a;color:#f2f4ff}.theme-dark .controls,.theme-dark .preview-panel,.theme-dark .settings-card,.theme-dark .table-wrapper,.theme-dark .availability-input-table,.theme-dark .availability-grid,.theme-dark .availability-grid-wrapper:before,.theme-dark .availability-grid-wrapper:after{background:#151a2c;border-color:#2b3452}.theme-dark .availability-grid-wrapper:before{background:linear-gradient(90deg,#151a2c,#151a2c00)}.theme-dark .availability-grid-wrapper:after{background:linear-gradient(270deg,#151a2c,#151a2c00)}.theme-dark .availability-input-table th,.theme-dark .availability-grid th,.theme-dark .schedule-table th{background:#1c2442;color:var(--table-text);border-color:var(--table-border-strong)}.theme-dark .schedule-table td,.theme-dark .availability-grid td,.theme-dark .availability-input-table td{color:var(--table-text);border-color:var(--table-border);background:var(--table-surface)}.theme-dark .schedule-table tbody tr:nth-child(2n) td,.theme-dark .availability-grid tbody tr:nth-child(2n) td{background:var(--table-surface-alt)}.theme-dark .schedule-table th.schedule-title-cell{background:var(--table-surface);color:var(--table-text)}.theme-dark .kids-table th{background:#1b2340;color:var(--table-text)}.theme-dark .kids-cell{background:inherit;color:var(--table-text)}.theme-dark .empty-state{background:#151a2c;color:#c7d2f0;border-color:#2b3452}.theme-dark .lesson-slot{background:var(--chip-bg);border-color:var(--chip-border);color:var(--table-text);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.theme-dark .lesson-slot.booked{background:#113327;border-color:#1d5b3c;color:#d6ffe7}.theme-dark .lesson-slot.is-disabled{background:#1b2238;border-color:#2b3452;color:#7f8aac}.theme-dark .lesson-slot.is-disabled .lesson-label,.theme-dark .lesson-slot.is-disabled .lesson-teacher{color:#7f8aac}.theme-dark .lesson-slot:hover{transform:translateY(-1px) scale(1.03);box-shadow:0 6px 12px #00000040}.theme-dark .lesson-slot.is-active,.theme-dark .lesson-slot:focus-visible{background:var(--chip-active-bg);border-color:#7aa2ff;box-shadow:var(--chip-active-shadow)}.theme-dark .lesson-select{background:var(--select-bg);border-color:var(--select-border);color:var(--table-text)}.theme-dark .lesson-select option{background:var(--select-bg);color:var(--table-text)}.theme-dark .lesson-select:focus{border-color:#7aa2ff;box-shadow:0 0 0 3px #7aa2ff33}.theme-dark .availability-bubble{background:var(--table-surface);border-color:var(--table-border);color:var(--table-text)}.theme-dark .availability-bubble-title{color:var(--table-text-muted)}.theme-dark .availability-bubble--error{background:var(--danger-bg);border-color:var(--danger-border);color:#ffd6e7}.theme-dark .teacher-bubble{background:#171f36;border-color:#2b3452;color:#e7e9f1}.theme-dark .teacher-bubble.teacher-bubble-empty{background:#331523;border-color:#61233d;color:#ffd6e7}.controls{display:grid;gap:16px;background:var(--surface);padding:24px;border-radius:var(--radius);box-shadow:var(--shadow-soft);border:1px solid #eef1fb;transition:box-shadow .2s ease,transform .2s ease;height:100%;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.page-tabs{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.tab-button{border:1px solid var(--border-subtle);background:var(--surface);color:#1d2438;border-radius:999px;padding:10px 18px;cursor:pointer;font-weight:600;font-size:14px;transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}.tab-button:hover{border-color:#c7d4ff;background:#f0f5ff;color:#1b2f73;box-shadow:0 6px 14px #111f3f1a;transform:translateY(-1px)}.tab-button.active{border-color:var(--primary);background:#dfe8ff;color:var(--primary-dark);box-shadow:inset 0 -2px #2648c566,0 8px 16px #111f3f29}.drop-zone{border:2px dashed #c9d5ff;border-radius:var(--radius);padding:32px 24px;text-align:center;background:linear-gradient(180deg,#f7f9ff,#eef3ff);cursor:pointer;min-height:200px;display:grid;place-items:center;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease;position:relative}.drop-zone.has-file{min-height:150px;padding:20px 24px;background:linear-gradient(180deg,#f2f6ff,#e9efff)}.drop-zone.has-error{border-color:#f3c5c5}.drop-zone.dragging{background:#eaf1ff;border-color:#2f5bff;box-shadow:0 10px 20px #2f5bff2e;transform:translateY(-1px)}.drop-zone:hover{border-color:#2f5bff;background:#edf3ff;box-shadow:0 8px 16px #2f5bff29;transform:translateY(-1px)}.drop-zone:focus-visible{outline:none;border-color:#2f5bff;box-shadow:0 0 0 3px #2f5bff33}.theme-dark .drop-zone{background:linear-gradient(180deg,#131a31,#11162a);border-color:#2b3452}.theme-dark .drop-zone.dragging{background:#1a2240;border-color:#7aa2ff;box-shadow:0 10px 20px #1a224099}.theme-dark .drop-zone:hover{background:#18203b;border-color:#7aa2ff;box-shadow:0 10px 18px #1a22408c}.drop-zone-hero{display:grid;gap:10px;justify-items:center}.drop-zone-icon{width:68px;height:68px;color:var(--primary);display:grid;place-items:center}.drop-zone-icon svg{width:100%;height:100%}.drop-zone-headline{font-size:13.31px;font-weight:700;color:#0f172a}.drop-zone-helper{font-size:14px;color:#2f5bff;opacity:0;transform:translateY(2px);transition:opacity .2s ease,transform .2s ease}.drop-zone:hover .drop-zone-helper,.drop-zone.dragging .drop-zone-helper,.drop-zone:focus-visible .drop-zone-helper{opacity:1;transform:translateY(0)}.drop-zone-error-badge{position:absolute;top:-10px;right:-6px;background:#e11d1d;color:#fff;font-size:11px;font-weight:600;padding:6px 10px;border-radius:10px;box-shadow:0 8px 16px #e11d1d33}.drop-zone-status{display:grid;gap:6px;justify-items:center;text-align:center;color:#1d2438;padding:0 8px}.drop-zone-status-icon{width:14px;height:14px;border-radius:999px;background:#34c38f;box-shadow:0 0 0 4px #34c38f26}.drop-zone-status-text{font-size:12px;font-weight:600;color:#1d2438;display:inline-flex;gap:6px;align-items:center;max-width:100%;flex-wrap:wrap;justify-content:center}.drop-zone-filename{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1f3a8a}.drop-zone-status-subtext{font-size:12px;color:var(--text-muted)}.file-name{font-size:14px;color:var(--text-muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-card{display:grid;gap:12px;padding:16px;border-radius:var(--radius);border:1px solid var(--border-subtle);background:#f9faff;transition:box-shadow .2s ease,transform .2s ease}.settings-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.settings-card .settings-title,.settings-card .status-pill{display:none}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:15px}.toggle-label{color:#1d2438;display:inline-flex;align-items:center;gap:8px}.toggle-icon{width:18px;height:18px;color:var(--primary);display:inline-flex}.toggle-icon svg{width:100%;height:100%}.switch{position:relative;display:inline-block;width:54px;height:28px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#c7c7c7;transition:.2s;border-radius:999px}.slider:before{position:absolute;content:"";height:22px;width:22px;left:3px;top:3px;background-color:#fff;transition:.2s;border-radius:50%}.switch input:checked+.slider{background-color:var(--primary)}.switch input:checked+.slider:before{transform:translate(26px)}.status-pill{font-size:12px;color:#1d2a52;background:#eef3ff;border-radius:999px;padding:4px 10px;width:fit-content}.status-muted{font-size:12px;color:var(--text-muted)}.export-button{align-self:flex-start;padding:12px 22px;font-size:15px;border-radius:var(--radius);border:none;background:var(--primary);color:#fff;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease,background .15s ease,opacity .15s ease;box-shadow:0 8px 16px #2f5bff33}.export-button:hover:not(:disabled){background:#3a66ff;box-shadow:var(--shadow-action);transform:translateY(-1px) scale(1.01)}.export-button:active:not(:disabled){transform:translateY(1px) scale(.98)}.export-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.preview-panel .export-button{margin-bottom:12px}.ghost-button{padding:10px 18px;font-size:14px;border-radius:var(--radius);border:1px solid var(--border-subtle);background:#fff;color:#1d2438;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}.ghost-button:hover:not(:disabled){border-color:var(--primary);background:#f2f5ff;box-shadow:0 6px 14px #111f3f1f;transform:translateY(-1px) scale(1.01)}.theme-dark .ghost-button{background:#1b2340;border-color:var(--table-border);color:var(--table-text)}.theme-dark .ghost-button:hover:not(:disabled){background:#223066;border-color:#4a6bff;box-shadow:0 8px 16px #00000059}.ghost-button:active:not(:disabled){transform:translateY(1px) scale(.98)}.ghost-button:disabled{opacity:.6;cursor:not-allowed}.danger-button{border-color:#b42318;background:#d92d20;color:#fff}.danger-button:hover:not(:disabled){background:#b42318;border-color:#8a1a12;color:#fff}.danger-button:active:not(:disabled){background:#9e1b14;border-color:#7a140e}.danger-button:disabled{opacity:.5}.success-button{border-color:#0f7a4b;background:#16a34a;color:#fff}.success-button:hover:not(:disabled){background:#15803d;border-color:#0f5f2f;color:#fff}.success-button:active:not(:disabled){background:#0f6b34;border-color:#0d5128}.full-width-button{width:100%;justify-content:center}.trash-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;transition:transform .14s ease}.trash-icon svg{width:100%;height:100%;display:block}.booking-cancel-x:hover .trash-icon,.ghost-button.danger-button:hover .trash-icon{transform:translateY(-1px) rotate(-6deg)}.copy-status{font-size:12px;color:var(--text-muted)}.copy-status-preview{font-weight:700;color:#2f5bff;margin-bottom:12px}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:6px 12px;border-radius:999px;width:fit-content}.status-badge.success{color:#0f7a4b;background:#e9fbf2}.status-badge.error{color:#b42318;background:#ffe8e8}.status-dot{width:8px;height:8px;border-radius:999px;background:currentColor}.preview{margin-top:32px;min-width:0}.availability-layout .preview,.inline-layout .preview{margin-top:0}.inline-layout{min-width:0}.workspace-layout{display:grid;grid-template-columns:360px 1fr;gap:32px;align-items:start}.left-panel{width:100%;justify-self:start}.right-panel{width:100%;max-width:none}.right-panel .table-wrapper{width:100%}@media (max-width: 1024px){.workspace-layout{grid-template-columns:1fr}}.inline-card{display:flex;flex-direction:column;min-width:0;min-height:520px}.inline-divider{width:1px;background:#d8deee;border-radius:999px;opacity:.8}@media (max-width: 1024px){.inline-divider{display:none}}.preview-header{margin-bottom:12px}.preview-header-ltr{text-align:left}.preview-header h2{margin:0 0 6px;font-size:16px;font-weight:600;color:#1d2438}.grid-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.grid-export{padding:8px 16px;font-size:13px}.preview-header p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.3}.preview-panel{background:var(--surface);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-soft);min-width:0;width:100%;max-width:none;border:1px solid #eef1fb;transition:box-shadow .2s ease,transform .2s ease;display:flex;flex-direction:column;flex:1;height:100%}.schedule-title{margin:0 0 12px;font-size:18px;font-weight:600;color:#1d2438;text-align:center}.preview-card{display:flex;justify-content:center;width:100%}.visible-preview{width:720px;max-width:100%;margin:0 auto;padding:16px 24px;background:#f4f7ff;border-radius:12px;box-shadow:0 4px 16px #0f172a1f;overflow:hidden;box-sizing:border-box}.preview-table-wrapper{max-height:360px;overflow-y:auto}.whatsapp-export-card{width:720px;max-width:720px;margin:0;padding:12px 18px;background:#fff;border-radius:10px;box-shadow:none;overflow:hidden;box-sizing:border-box}.whatsapp-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;background:transparent}.whatsapp-table th,.whatsapp-table td{padding:6px 10px;text-align:center;border:none;border-bottom:1px solid #e2e8f0}.whatsapp-table thead th{background:#e0ebff;font-weight:600}.whatsapp-table tbody tr:nth-child(odd){background:#f8fbff}.whatsapp-export-card table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:15px}.whatsapp-export-card th,.whatsapp-export-card td{padding:6px 10px;text-align:center;border-bottom:1px solid #e2e8f0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.whatsapp-export-card thead th{background:#e0ebff;font-weight:600}.whatsapp-export-card tbody tr:nth-child(odd){background:#f8fbff}.export-hidden-root{position:fixed;top:0;left:0;opacity:0;pointer-events:none;z-index:-1}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted);background:#f8f9ff;border-radius:var(--radius);border:1px dashed #d8def5}.error{padding:16px;background:#ffe4e4;border-radius:var(--radius);color:#b00020;margin-bottom:16px}.table-wrapper{overflow-x:auto;background:#fff;border-radius:var(--radius);padding:16px;border:1px solid #eef1fb}.preview-table-wrapper,.table-wrapper.table-scroll-wrapper{width:100%;overflow-x:auto}.preview-table{width:100%;table-layout:fixed}.table-scroll-wrapper{max-height:360px;overflow-y:auto}.kids-scaled-table{width:100%;max-width:100%;overflow-x:visible;overflow-y:auto;position:relative}.kids-scaled-table .schedule-table{transform:none;width:100%;max-width:100%;table-layout:fixed;word-break:normal;font-size:13px;overflow:visible}.kids-scaled-table .schedule-table th,.kids-scaled-table .schedule-table td{width:auto;white-space:normal;word-break:normal;overflow:hidden;text-overflow:ellipsis}.kids-scaled-table .schedule-table td,.kids-scaled-table .schedule-table th{overflow:visible;position:relative}.kids-scaled-table .override-column,.kids-scaled-table .override-cell,.kids-scaled-table .lesson-select{width:auto;max-width:100%;min-width:0}.kids-scaled-table .override-column,.kids-scaled-table .override-cell{min-width:90px;overflow:visible}.kids-scaled-table .lesson-override{align-items:center;min-width:0;gap:6px;flex-wrap:wrap}.kids-scaled-table .lesson-override .lesson-select{flex:0 0 auto;width:auto;max-width:100%;min-width:0}.kids-scaled-table .override-times{display:flex;flex-wrap:wrap;gap:6px;align-items:center;white-space:normal;word-break:break-word;overflow-wrap:anywhere;width:100%;min-width:0}.kids-scaled-table .override-times .lesson-slot{flex:0 0 auto}.kids-scaled-table .schedule-table th{white-space:nowrap;word-break:keep-all;text-align:center;font-size:12.5px;font-weight:600}.kids-scaled-table .schedule-table th:nth-child(1),.kids-scaled-table .schedule-table td:nth-child(1),.kids-scaled-table .schedule-table th:nth-child(5),.kids-scaled-table .schedule-table td:nth-child(5){white-space:normal;word-break:break-word;overflow-wrap:anywhere;max-width:160px}.kids-scaled-table .schedule-table th:nth-child(2),.kids-scaled-table .schedule-table td:nth-child(2){white-space:nowrap;word-break:normal;overflow-wrap:normal}.kids-scaled-table .schedule-table th:nth-child(3),.kids-scaled-table .schedule-table td:nth-child(3),.kids-scaled-table .schedule-table th:nth-child(4),.kids-scaled-table .schedule-table td:nth-child(4),.kids-scaled-table .schedule-table th:nth-child(6),.kids-scaled-table .schedule-table td:nth-child(6){white-space:nowrap;word-break:normal;min-width:90px;width:auto;font-size:12px}.kids-scaled-table .schedule-table th:nth-child(7),.kids-scaled-table .schedule-table td:nth-child(7){white-space:nowrap;word-break:normal;min-width:110px;width:auto;font-size:11px;letter-spacing:.3px}.kids-scaled-table .schedule-table th:nth-child(6),.kids-scaled-table .schedule-table td:nth-child(6){font-size:11px;letter-spacing:.3px}@media (max-width: 1100px){.kids-scaled-table .schedule-table{font-size:12px}.kids-scaled-table .schedule-table th:nth-child(6),.kids-scaled-table .schedule-table td:nth-child(6),.kids-scaled-table .schedule-table th:nth-child(7),.kids-scaled-table .schedule-table td:nth-child(7){font-size:10.5px}}.scaled-table .availability-grid{zoom:1}.schedule-table{width:100%;border-collapse:collapse;font-size:16px;background:#fff;direction:rtl;table-layout:fixed}.schedule-table th,.schedule-table td{border:1px solid #d8deee;padding:12px 14px;text-align:right;transition:background .15s ease,color .15s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-table th{background:#e7edff;font-weight:700;font-size:14px}.schedule-table tbody tr:nth-child(2n) td{background:#f7f9ff}.schedule-table tbody tr:hover td{background:#eef3ff}.schedule-table th.schedule-title-cell{text-align:center;font-size:18px;font-weight:600;color:#1d2438;background:#fff}.schedule-table tbody tr{height:48px}.kids-table{font-variant-numeric:tabular-nums}.kids-table th{background:#e2e9ff;font-weight:600}.kids-cell{background:#fff;font-size:14px}.lesson-select{width:100%;max-width:100%;min-width:0;padding:6px 10px;border-radius:10px;border:1px solid #d8deee;font-size:12px;font-family:inherit;background:#fff;color:#1d2438;transition:border-color .15s ease,box-shadow .15s ease}.lesson-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2f5bff2e}.lesson-override{display:flex;align-items:center;gap:8px;white-space:normal;word-break:break-word;overflow-wrap:anywhere;width:100%;min-width:0}.hour-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;max-width:100%}.override-placeholder{font-size:12px;font-weight:600;color:#1d2438;white-space:nowrap}.override-column{width:120px}.override-cell{min-width:120px}.override-times{gap:4px}.lesson-slot.is-disabled{background:#f1f3f8;border-color:#e0e5f2;color:#9aa3b6;cursor:not-allowed;pointer-events:none}.lesson-slot.is-disabled .lesson-label,.lesson-slot.is-disabled .lesson-teacher{color:#9aa3b6}.lesson-times{display:flex;flex-wrap:wrap;gap:6px;align-items:center;white-space:normal;word-break:break-word;overflow-wrap:anywhere;width:100%;min-width:0}.lesson-slot{position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:10px;border:1px solid #d7e0ff;background:#f5f7ff;font-size:12px;color:#1d2438;cursor:pointer;max-width:100%;overflow:visible;font-family:inherit;text-align:left;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.lesson-slot.booked{background:#e9fbf2;border-color:#b7e7c9;color:#0f7a4b}.availability-bubble{transform:translate(-50%) translateY(6px);min-width:200px;max-width:260px;padding:10px 12px;border-radius:12px;border:1px solid #d8deee;background:#fff;box-shadow:var(--shadow-soft);z-index:30;pointer-events:none;text-align:center;white-space:normal;overflow-wrap:anywhere;opacity:0;transition:opacity 1s ease-in-out,transform 1s ease-in-out}.availability-bubble.is-visible,.hour-trigger:hover .availability-bubble,.hour-trigger:focus-within .availability-bubble{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.availability-bubble--error{background:#ffe3ee;border-color:#f7b2ca;color:#9b1c4b}.availability-bubble-title{display:block;font-size:11px;color:var(--text-muted);margin-bottom:6px}.availability-bubble-text{font-size:12px;font-weight:600}.lesson-slot.is-active{border-color:var(--primary);box-shadow:0 0 0 2px #2f5bff2e}.lesson-slot:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2f5bff2e}.lesson-slot:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 6px 12px #111f3f24}.lesson-label{font-weight:600}.lesson-teacher{font-size:11px;font-weight:600;color:#1d2a52}.teacher-bubble{position:absolute;left:50%;bottom:calc(100% + 10px);min-width:200px;padding:12px 14px;border-radius:12px;border:1px solid #d8deee;background:#fff;box-shadow:var(--shadow-soft);opacity:0;transform:translate(-50%,6px);transition:opacity .18s ease,transform .18s ease;pointer-events:none;z-index:25;white-space:nowrap;will-change:opacity,transform}.teacher-bubble.is-visible{opacity:1;transform:translate(-50%);pointer-events:auto}.teacher-bubble-label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:6px}.teacher-bubble-list{display:grid;gap:6px}.teacher-bubble-button{border:none;background:#f2f5ff;color:var(--primary-dark);font-weight:700;font-size:13px;cursor:pointer;padding:6px 10px;border-radius:8px;text-align:left;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.teacher-bubble-button:hover{color:var(--primary);background:#e7eeff;box-shadow:0 6px 10px #111f3f1f;transform:translateY(-1px)}.teacher-bubble-button:active{transform:translateY(1px) scale(.98);box-shadow:none}.teacher-bubble.teacher-bubble-empty{background:#ffe3ee;border-color:#f7b2ca;color:#9b1c4b;font-weight:600}.booking-cell{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.booking-summary{font-size:12px;color:#1d2438}.booking-cancel-x{width:30px;height:30px;border-radius:10px;border:1px solid #b42318;background:#d92d20;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.booking-cancel-x:hover{background:#b42318;box-shadow:0 8px 14px #d92d2040;transform:translateY(-1px) scale(1.06)}.booking-cancel-x:active{transform:translateY(1px) scale(.95);box-shadow:none}.booking-cancel-x:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.export-container{background:#fff;padding:16px}.availability-layout{min-width:0}.availability-card{display:flex;flex-direction:column;min-width:0;min-height:520px;height:520px;width:100%;max-width:100%;box-sizing:border-box}.availability-divider{width:1px;background:#d8deee;border-radius:999px;opacity:.8}@media (max-width: 1024px){.availability-divider{display:none}}.availability-header h2{margin:0 0 6px;font-size:16px;font-weight:600;color:#1d2438}.availability-header p{margin:0;color:var(--text-muted);font-size:13px}.availability-table-wrapper{overflow-x:hidden;overflow-y:auto;max-height:220px;height:220px;border-radius:var(--radius);border:1px solid #e2e9f8;background:var(--surface);padding:8px;box-shadow:var(--shadow-soft);width:100%;max-width:100%;box-sizing:border-box}.availability-bulk-input{display:grid;gap:8px}.availability-bulk-details{border:1px solid var(--border-subtle);border-radius:12px;padding:10px 12px;background:#f9faff}.teachers-quick-range-card{border:1px solid var(--border-subtle);border-radius:12px;padding:10px 12px;background:#f9faff;display:grid;gap:8px}.teachers-quick-range-header{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:transparent;border:none;padding:0;text-align:left}.teachers-quick-range-header.is-expanded{color:#1d2438}.teachers-quick-range-body{display:grid}.quick-range-caret{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease}.quick-range-caret svg{width:100%;height:100%;display:block}.teachers-quick-range-header.is-expanded .quick-range-caret{transform:rotate(180deg)}.quick-range-row{display:grid;grid-template-columns:1fr 1fr;column-gap:10px}.quick-range-field{display:grid;gap:6px}.quick-range-label{font-size:12px;font-weight:600;color:var(--text-muted)}.quick-range-applies{display:grid;gap:6px}.quick-range-button{margin-top:10px}.availability-bulk-summary{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;list-style:none}.availability-bulk-summary::-webkit-details-marker{display:none}.availability-bulk-details[open] .availability-bulk-summary{color:#1d2438;margin-bottom:8px}.theme-dark .availability-bulk-details,.theme-dark .teachers-quick-range-card{background:#151a2c;border-color:#2b3452}.theme-dark .teachers-quick-range-header.is-expanded,.theme-dark .availability-bulk-details[open] .availability-bulk-summary{color:#f2f4ff}.availability-presets{display:grid;gap:6px}.availability-presets-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.availability-presets-select{width:100%;padding:8px 10px;border-radius:12px;border:1px solid var(--border-subtle);font-size:13px;font-family:inherit;background:#fff;color:#1d2438;transition:box-shadow .15s ease,border-color .15s ease}.availability-presets-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2f5bff2e}.theme-dark .availability-presets-select{background:#10162a;color:#f2f4ff;border-color:#2b3452}.theme-dark .availability-presets-select option{background:#10162a;color:#f2f4ff}.availability-bulk-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:stretch}.availability-bulk-textarea{width:100%;min-height:72px;padding:8px 10px;border-radius:12px;border:1px solid var(--border-subtle);font-size:13px;font-family:inherit;background:#fff;color:#1d2438;resize:vertical;transition:box-shadow .15s ease,border-color .15s ease}.availability-bulk-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2f5bff2e}.availability-bulk-button{height:100%;min-width:110px;white-space:nowrap}.theme-dark .availability-bulk-textarea{background:#10162a;color:#f2f4ff;border-color:#2b3452}.theme-dark .availability-bulk-textarea::placeholder{color:#97a1bd}.availability-input-table{width:100%;max-width:100%;border-collapse:collapse;font-size:14px;background:#fff;border-radius:12px;overflow:hidden;table-layout:fixed;box-sizing:border-box}.availability-input-table th,.availability-input-table td{border:1px solid #d8deee;padding:10px 12px;text-align:left;vertical-align:middle;overflow:hidden;white-space:normal;word-break:break-word;overflow-wrap:anywhere;width:auto;text-overflow:ellipsis}.availability-input-table th{background:#e7edff;font-weight:600;font-size:13px}.availability-input-table tbody tr:nth-child(2n) td{background:#f7f9ff}.availability-input-table input{width:100%;padding:8px 10px;border-radius:10px;border:1px solid var(--border-subtle);font-size:14px;font-family:inherit;transition:box-shadow .15s ease,border-color .15s ease;background:#fff;color:#1d2438;min-width:0;max-width:100%;box-sizing:border-box}.availability-input-table td:last-child{width:56px}.availability-input-table td:last-child .ghost-button{width:100%;justify-content:center}.availability-input-table input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2f5bff2e}.availability-actions-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:12px 0}.availability-actions{display:flex;gap:12px;flex-wrap:wrap}.warning{padding:12px 14px;background:#fff7e6;border:1px solid #ffd7a3;color:#8a4a00;border-radius:var(--radius);font-size:13px}.grid-header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:#1d2438;margin-bottom:8px}.grid-legend{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.legend-dot{width:8px;height:8px;border-radius:999px;background:#9ddf1d}.grid-zoom{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-muted);flex-wrap:wrap}.grid-zoom-label{text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:10px}.grid-zoom-controls{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border-radius:999px;border:1px solid #d8deee;background:#fff;flex-wrap:wrap;max-width:100%;row-gap:6px}.theme-dark .grid-zoom-controls{background:#1b2340;border-color:#2b3452}.theme-dark .grid-zoom-button,.theme-dark .grid-zoom-reset,.theme-dark .grid-zoom-value{color:#f2f4ff}.grid-zoom-button,.grid-zoom-reset{border:none;background:transparent;color:#1d2438;font-weight:700;font-size:12px;cursor:pointer;padding:2px 6px;line-height:1;white-space:nowrap}.grid-zoom-button:hover,.grid-zoom-reset:hover{color:var(--primary)}.grid-zoom-value{font-weight:600;color:#1d2438;min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.availability-grid-wrapper{display:block;width:100%;max-width:100%;overflow:hidden;min-width:0;position:relative;border-radius:var(--radius);border:1px solid #e2e9f8;background:#fff;box-shadow:var(--shadow-soft);padding:10px;box-sizing:border-box}.availability-grid-wrapper:before,.availability-grid-wrapper:after{content:"";position:absolute;top:0;bottom:0;width:16px;pointer-events:none;z-index:2}.availability-grid-wrapper:before{left:0;background:linear-gradient(90deg,#fff,#fff0)}.availability-grid-wrapper:after{right:0;background:linear-gradient(270deg,#fff,#fff0)}.availability-grid{width:max-content;min-width:100%;border-collapse:collapse;font-size:12px;background:#fff;table-layout:fixed;max-width:none;display:table}.availability-grid-scroll-wrapper{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:auto;max-height:340px;padding-bottom:6px}.availability-grid-scroll-wrapper,.availability-table-wrapper,.table-scroll-wrapper{scrollbar-width:thin;scrollbar-color:#c1c7d7 transparent}.availability-grid-scroll-wrapper::-webkit-scrollbar,.availability-table-wrapper::-webkit-scrollbar,.table-scroll-wrapper::-webkit-scrollbar{height:8px;width:8px}.availability-grid-scroll-wrapper::-webkit-scrollbar-thumb,.availability-table-wrapper::-webkit-scrollbar-thumb,.table-scroll-wrapper::-webkit-scrollbar-thumb{background:#c1c7d7;border-radius:999px}.availability-grid-scroll-wrapper::-webkit-scrollbar-track,.availability-table-wrapper::-webkit-scrollbar-track,.table-scroll-wrapper::-webkit-scrollbar-track{background:transparent}.availability-grid-wrapper.vertical-grid .availability-grid{width:100%;min-width:100%}.availability-grid-wrapper.vertical-grid .availability-grid-scroll-wrapper{overflow-x:hidden;overflow-y:auto}.availability-grid-wrapper.vertical-grid .availability-grid th,.availability-grid-wrapper.vertical-grid .availability-grid td{min-width:0}.availability-grid-wrapper.vertical-grid .availability-grid .sticky-column{min-width:80px}.availability-grid-scroll-wrapper thead th{position:sticky;top:0;z-index:3}.availability-grid-scroll-wrapper.scroll-teachers{overflow-x:auto;scrollbar-gutter:stable both-edges}.availability-grid th,.availability-grid td{border:1px solid #d8deee;padding:8px 10px;text-align:center;white-space:nowrap;width:auto;min-width:72px;transition:background .15s ease;overflow:hidden;text-overflow:ellipsis}.availability-grid-button{width:100%;height:100%;min-height:22px;border:none;background:transparent;cursor:pointer;padding:0;display:block;-webkit-user-select:none;user-select:none}.availability-grid-button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.availability-grid td.slot-cell:hover .availability-grid-button{background:#2f5bff14}.availability-grid td.slot-cell.available:hover .availability-grid-button{background:#1414140d}.availability-grid th,.availability-grid td,.availability-grid .sticky-column{font-size:13px;line-height:1.35}.availability-grid.scroll-teachers th,.availability-grid.scroll-teachers td{width:120px;min-width:120px}.availability-grid.compact-columns th,.availability-grid.compact-columns td{max-width:120px}.availability-grid.compact-columns th{overflow:hidden;text-overflow:ellipsis}.availability-grid th{background:#e7edff;font-weight:700;font-size:13px}.availability-grid tbody tr:nth-child(2n) td{background:#f7f9ff}.availability-grid tbody tr:hover td{background:#eef3ff}.availability-grid .sticky-column{position:sticky;left:0;background:#f1f5ff;z-index:4;min-width:70px;text-align:left;padding-left:8px;box-shadow:1px 0 #d8deee}.availability-grid .sticky-header{position:sticky;top:0;z-index:3;background:#e7edff}.availability-grid th.sticky-column{z-index:5;background:#e7edff;box-shadow:1px 0 #d8deee}.theme-dark .availability-table-wrapper{border-color:#2b3452;background:#151a2c;box-shadow:0 12px 24px #00000059}.theme-dark .availability-input-table{background:#151a2c}.theme-dark .availability-input-table th,.theme-dark .availability-input-table td{border-color:var(--table-border);background:var(--table-surface)}.theme-dark .availability-input-table input{background:#10162a;color:#f2f4ff;border-color:#2b3452}.theme-dark .availability-input-table tbody tr:nth-child(2n) td{background:var(--table-surface-alt)}.theme-dark .availability-input-table input::placeholder{color:#97a1bd}.theme-dark .availability-grid-wrapper{background:#131a31;border-color:#2b3452;box-shadow:0 14px 28px #00000059}.theme-dark .availability-grid{background:var(--table-surface)}.theme-dark .availability-grid th,.theme-dark .availability-grid td{border-color:var(--table-border)}.theme-dark .availability-grid td{background:var(--table-surface)}.theme-dark .availability-grid tbody tr:nth-child(2n) td{background:var(--table-surface-alt)}.theme-dark .availability-grid th{background:#1b2340;color:var(--table-text)}.theme-dark .availability-grid .sticky-column{background:#1b2340;color:var(--table-text);box-shadow:1px 0 0 var(--table-border)}.theme-dark .availability-grid th.sticky-column{background:#1b2340;box-shadow:1px 0 0 var(--table-border)}.theme-dark .inline-divider,.theme-dark .availability-divider{background:#2b3452;opacity:1}.theme-dark .slider{background-color:#2b3452}.theme-dark .slider:before{background-color:#f2f4ff}.theme-dark .availability-grid-scroll-wrapper,.theme-dark .availability-table-wrapper,.theme-dark .table-scroll-wrapper{scrollbar-color:#2b3452 transparent;background:var(--table-surface)}.theme-dark .availability-grid-scroll-wrapper::-webkit-scrollbar-thumb,.theme-dark .availability-table-wrapper::-webkit-scrollbar-thumb,.theme-dark .table-scroll-wrapper::-webkit-scrollbar-thumb{background:#2b3452}.theme-dark .availability-grid-scroll-wrapper::-webkit-scrollbar-thumb:hover,.theme-dark .availability-table-wrapper::-webkit-scrollbar-thumb:hover,.theme-dark .table-scroll-wrapper::-webkit-scrollbar-thumb:hover{background:#3a4566}.teacher-name{font-weight:600;color:#1d2438}.availability-grid td.slot-cell.available{background:#b6e61a;color:#1d2a52}.theme-dark .availability-grid td.slot-cell.available,.theme-dark .availability-grid tbody tr:nth-child(2n) td.slot-cell.available{background:#b6e61a;color:#1d2a52}.availability-grid tbody tr:hover td.slot-cell.available{background:#a9dc19}.portal-bubble{opacity:0;transform:translateY(-6px) scale(.96);pointer-events:none;transition:opacity .3s ease,transform .3s ease}.portal-bubble.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.theme-dark .visible-preview{background:#11182c;box-shadow:0 14px 30px #00000073;border:1px solid #2b3452}.theme-dark .whatsapp-export-card{background:#11182c;border:1px solid #2b3452}.theme-dark .visible-preview .schedule-title{color:var(--heading)}.theme-dark .schedule-table{background:var(--table-surface)}.theme-dark .schedule-table th{background:#1b2340;color:var(--table-text);border-color:var(--table-border-strong)}.theme-dark .schedule-table td{background:var(--table-surface);color:var(--table-text);border-color:var(--table-border)}.theme-dark .schedule-table tbody tr:nth-child(2n) td{background:var(--table-surface-alt)}.theme-dark .schedule-table tbody tr:hover td{background:#1a2140}.theme-dark select.lesson-select{background-color:#151a2c;color:#f2f4ff;border-color:#2b3452;color-scheme:dark}@supports (color-scheme: dark){.theme-dark select.lesson-select{color-scheme:dark}}
