.teacher-availability-calendar{padding:20px}.availability-help{margin:6px 0 0;color:#687386;font-size:13px}.availability-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.availability-toolbar>span{font-size:12px;font-weight:800;color:#566174;margin-right:auto}.availability-calendar-scroll{position:relative;overflow:auto;max-height:650px;border:1px solid #e4e8ee;border-radius:10px;overscroll-behavior:contain}.availability-calendar-grid{display:grid;grid-template-columns:72px repeat(7,minmax(120px,1fr));grid-template-rows:56px repeat(36,40px);min-width:930px;min-height:1496px;background:#fff;gap:0}.availability-time-corner,.availability-day-head{background:#f5f6f8;padding:10px 12px;text-align:left;position:sticky;top:0;z-index:20;border-bottom:1px solid #e1e6ec;box-sizing:border-box;height:56px;display:flex;flex-direction:column;justify-content:center}.availability-time-corner{text-align:center;align-items:center;font-size:10px;font-weight:800;color:#687386;letter-spacing:.04em;left:0;z-index:22}.availability-day-head{border-left:1px solid #edf0f4}.availability-day-head b,.availability-day-head span{display:block}.availability-day-head b{font-size:11px;color:#172033;line-height:1.2}.availability-day-head span{font-size:11px;color:#687386;margin-top:3px;line-height:1.2}.availability-time-label{background:#fff;padding:7px 6px;font-size:10px;color:#7b8596;text-align:right;height:40px;box-sizing:border-box;border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4;display:flex;align-items:center;justify-content:flex-end;position:sticky;left:0;z-index:10}.availability-slot{border:0;border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4;background:#fff;min-height:40px;height:40px;cursor:pointer;color:transparent;font-size:10px;font-weight:800;box-sizing:border-box;position:relative}.availability-slot:hover{background:#fbfcfd}.availability-slot.selected{background:#fff;outline:none;margin:0;border-radius:0;position:relative;z-index:2}.availability-slot.selected::before{content:"";position:absolute;inset:5px;background:#dff3e3;border:1px solid #c8dfce;border-radius:8px;box-sizing:border-box}.availability-slot.is-open{height:40px;min-height:40px;margin:0;border:0;border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4;border-radius:0;background:#fff;box-shadow:none;cursor:pointer;position:relative;z-index:1}.availability-slot.is-open::before{content:"";position:absolute;inset:5px;background:#edf9f1;border-radius:8px;box-sizing:border-box}.availability-slot.is-open:hover::before{background:#e2f5e9}.availability-slot.is-booked{height:40px;min-height:40px;background:#fff;color:#344054;cursor:not-allowed;margin:0;box-shadow:none;border:0;border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4;position:relative}.availability-slot.is-booked:hover{background:#fff}.calendar-booked-class{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 7px;box-sizing:border-box;text-align:center;overflow:visible;align-self:start;height:40px;min-height:40px}.booked-class-underlay{cursor:not-allowed!important;pointer-events:none!important;background:#fff!important}.calendar-student-line{display:flex;flex-direction:column;align-items:center;min-width:0;max-width:100%;width:100%;overflow:hidden}.calendar-student-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.2;font-weight:800;color:#344054;text-align:center}.calendar-student-id{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.2;font-weight:600;color:#98a2b3;text-align:center}.calendar-booked-class .trial-indicator{margin-left:0;margin-top:1px}.trial-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#fff2cc;color:#7a5700;font-size:10px;font-weight:900;letter-spacing:.04em;margin-left:5px;vertical-align:middle}.trial-indicator{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#fff2cc;color:#7a5700;font-size:10px;font-weight:900;margin-left:5px}.class-student-line{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.next-student-line{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.student-mini .trial-indicator{margin-left:4px}@media(max-width:700px){.teacher-availability-calendar{padding:12px}.availability-toolbar>span{width:100%}.availability-toolbar .primary-btn,.availability-toolbar .secondary-btn,.availability-toolbar .danger-btn{flex:1}.availability-calendar-scroll{max-height:520px}.availability-calendar-grid{min-width:860px;grid-template-rows:56px repeat(36,40px)}}
/* Keep booked cards on the same vertical rhythm as availability blocks. */.availability-calendar-grid{grid-auto-rows:40px;align-items:stretch}.calendar-booked-class{height:40px!important;min-height:40px!important;overflow:visible!important;background:transparent!important;border-color:transparent!important;box-shadow:none!important;position:relative;z-index:5}.calendar-booked-class::before{content:"";position:absolute;left:4px;right:4px;top:5px;height:var(--class-card-height,30px);background:#eef3fb;border:1px solid #c9d5e8;border-radius:8px;box-shadow:0 1px 2px rgba(23,32,51,.06);z-index:-1;pointer-events:none}.calendar-booked-class>*{position:relative;z-index:1}.booked-class-underlay{background:#fff!important}.calendar-booked-class[data-duration="45"],.calendar-booked-class[data-duration="50"],.calendar-booked-class[data-duration="55"],.calendar-booked-class[data-duration="60"]{height:76px!important;min-height:76px!important;align-items:center;justify-content:center}.admin-readonly-calendar-grid{position:relative;grid-auto-rows:40px}
