.availability-calendar-container{border-radius:var(--radius-lg);background:0 0;gap:1rem;min-height:70vh;padding:.75rem;display:flex}@media (min-width:640px){.availability-calendar-container{border-radius:var(--radius-lg);gap:1.25rem;padding:1rem}}@media (min-width:768px){.availability-calendar-container{border-radius:var(--radius-xl);gap:1.5rem;padding:1.5rem}}@media (min-width:1024px){.availability-calendar-container{border-radius:var(--radius-lg);gap:2rem;padding:2rem}}.calendar-panel{border:2px solid var(--calico-orange-strong);border-radius:var(--radius-lg);background:#fff;flex:100%;width:100%;padding:1rem;box-shadow:0 4px 12px #fdae1e1a}@media (min-width:640px){.calendar-panel{border-radius:var(--radius-lg);padding:1.25rem}}@media (min-width:768px){.calendar-panel{border-radius:var(--radius-xl);padding:1.5rem}}@media (min-width:1024px){.calendar-panel{flex:0 0 60%;width:60%}}.slots-panel{border:2px solid var(--calico-orange-strong);border-radius:var(--radius-lg);background:#fff;flex-direction:column;flex:100%;width:100%;padding:1rem;display:flex;box-shadow:0 4px 12px #fdae1e1a}@media (min-width:640px){.slots-panel{border-radius:var(--radius-lg);padding:1.25rem}}@media (min-width:768px){.slots-panel{border-radius:var(--radius-xl);padding:1.5rem}}@media (min-width:1024px){.slots-panel{flex:0 0 40%;width:40%}}@media (max-width:1023px){.availability-calendar-container{flex-direction:column}}.calendar-header{border-bottom:2px solid var(--calico-orange-strong);margin-bottom:1rem;padding-bottom:.75rem}@media (min-width:640px){.calendar-header{margin-bottom:1.25rem;padding-bottom:1rem}}@media (min-width:768px){.calendar-header{margin-bottom:1.5rem}}.calendar-title{font-size:var(--type-body-lg);color:var(--calico-ink);align-items:center;gap:.5rem;margin:0;font-weight:600;line-height:1.3;display:flex}@media (min-width:640px){.calendar-title{gap:.625rem;font-size:1.25rem}}@media (min-width:768px){.calendar-title{gap:.75rem;font-size:1.3rem}}.calendar-title svg{color:var(--calico-orange);flex-shrink:0}@media (max-width:640px){.calendar-title svg{width:20px;height:20px}}.calendar-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:2.5rem 1.5rem;display:flex}@media (min-width:640px){.calendar-loading{padding:3rem 2rem}}@media (min-width:768px){.calendar-loading{padding:4rem 2rem}}.calendar-loading p{font-size:var(--type-body-sm);color:var(--calico-body-muted);margin-top:.75rem}@media (min-width:640px){.calendar-loading p{font-size:var(--type-body);margin-top:1rem}}.loading-spinner{border:3px solid var(--student-app-bg);border-top:3px solid var(--calico-orange-strong);border-radius:50%;width:40px;height:40px;margin-bottom:.75rem;animation:1s linear infinite spin}@media (min-width:640px){.loading-spinner{border-width:4px;width:48px;height:48px;margin-bottom:1rem}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.react-calendar{background:0 0;border:none;width:100%;font-family:inherit;line-height:1.125em}.react-calendar__navigation{gap:.25rem;height:40px;margin-bottom:.75rem;display:flex}@media (min-width:640px){.react-calendar__navigation{gap:.5rem;height:44px;margin-bottom:1rem}}.react-calendar__navigation button{border:2px solid var(--calico-orange-strong);color:var(--calico-orange);font-size:var(--type-label);border-radius:var(--radius-xs);cursor:pointer;transition:all var(--duration-slow) var(--ease-standard);background:0 0;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:.375rem .75rem;font-weight:600;display:flex}@media (min-width:640px){.react-calendar__navigation button{font-size:var(--type-body-sm);border-radius:var(--radius-sm);min-width:44px;min-height:44px;padding:.5rem 1rem}}@media (min-width:768px){.react-calendar__navigation button{font-size:var(--type-body)}}.react-calendar__navigation button:hover{background:var(--student-app-bg);transform:translateY(-2px)}.react-calendar__navigation button:disabled{background-color:var(--calico-slate-100);color:var(--calico-slate-400);border-color:var(--calico-slate-200);cursor:not-allowed;transform:none}.react-calendar__navigation__label{text-align:center;background:var(--calico-orange-gradient);color:#fff;border-radius:var(--radius-xs);font-size:var(--type-label);flex-grow:1;margin:0 .25rem;font-weight:600}@media (min-width:640px){.react-calendar__navigation__label{border-radius:var(--radius-sm);font-size:var(--type-body-sm);margin:0 .5rem}}@media (min-width:768px){.react-calendar__navigation__label{font-size:var(--type-body)}}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;color:var(--calico-body-muted);margin-bottom:.375rem;font-size:.7em;font-weight:600}@media (min-width:640px){.react-calendar__month-view__weekdays{margin-bottom:.5rem;font-size:.75em}}.react-calendar__month-view__weekdays__weekday{padding:.375rem .25rem}@media (min-width:640px){.react-calendar__month-view__weekdays__weekday{padding:.5rem}}.react-calendar__month-view__days{grid-template-columns:repeat(7,1fr);gap:3px;display:grid!important}@media (min-width:640px){.react-calendar__month-view__days{gap:4px}}.react-calendar__tile{border:1px solid var(--calico-slate-200);border-radius:var(--radius-xs);text-align:center;cursor:pointer;max-width:100%;transition:all var(--duration-slow) var(--ease-standard);line-height:1.2;font-size:var(--type-xs);color:var(--calico-ink);background:#fff;justify-content:center;align-items:center;min-height:36px;padding:8px 4px;font-weight:500;display:flex;position:relative}@media (min-width:640px){.react-calendar__tile{border-radius:var(--radius-sm);font-size:var(--type-caption);min-height:44px;padding:10px 6px}}@media (min-width:768px){.react-calendar__tile{font-size:var(--type-label);padding:12px 8px}}.react-calendar__tile:hover{background:var(--student-app-bg);border-color:var(--calico-orange-strong);transform:translateY(-2px)}.react-calendar__tile.selected{background:var(--calico-orange-gradient);color:#fff;border-color:var(--calico-orange);font-weight:600}.react-calendar__tile.has-availability{position:relative}.react-calendar__tile.has-availability:after{content:"";background:var(--calico-green-success);border-radius:50%;width:6px;height:6px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.react-calendar__tile.selected.has-availability:after{background:#fff}.react-calendar__tile.past-date{background:var(--calico-slate-50);color:var(--calico-slate-400);cursor:not-allowed}.react-calendar__tile.past-date:hover{background:var(--calico-slate-50);border-color:var(--calico-slate-200);transform:none}.slots-header{border-bottom:2px solid var(--calico-orange-strong);margin-bottom:1rem;padding-bottom:.75rem}@media (min-width:640px){.slots-header{margin-bottom:1.25rem;padding-bottom:1rem}}@media (min-width:768px){.slots-header{margin-bottom:1.5rem}}.slots-title{font-size:var(--type-body-lg);color:var(--calico-ink);align-items:center;gap:.5rem;margin:0 0 .5rem;font-weight:600;line-height:1.3;display:flex}@media (min-width:640px){.slots-title{gap:.625rem;font-size:1.25rem}}@media (min-width:768px){.slots-title{gap:.75rem;font-size:1.3rem}}.slots-title svg{color:var(--calico-orange);flex-shrink:0}@media (max-width:640px){.slots-title svg{width:18px;height:18px}}.selected-date{font-size:var(--type-label);color:var(--calico-body-muted);text-transform:capitalize;margin:0;line-height:1.4}@media (min-width:640px){.selected-date{font-size:var(--type-body-sm)}}@media (min-width:768px){.selected-date{font-size:var(--type-body)}}.slots-list{flex:1;max-height:50vh;padding-right:.25rem;overflow-y:auto}@media (min-width:768px){.slots-list{max-height:55vh}}@media (min-width:1024px){.slots-list{max-height:60vh}}.slots-list::-webkit-scrollbar{width:6px}.slots-list::-webkit-scrollbar-track{background:var(--calico-slate-100);border-radius:var(--radius-md)}.slots-list::-webkit-scrollbar-thumb{background:var(--calico-orange-strong);border-radius:var(--radius-md)}.slots-list::-webkit-scrollbar-thumb:hover{background:var(--calico-orange)}.slot-item{background:var(--student-app-bg);border:2px solid var(--calico-orange-strong);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-slow) var(--ease-standard);touch-action:manipulation;margin-bottom:.875rem;padding:1rem;position:relative}@media (min-width:640px){.slot-item{border-radius:var(--radius-lg);margin-bottom:1rem;padding:1.125rem}}@media (min-width:768px){.slot-item{border-radius:var(--radius-lg);padding:1.25rem}}.slot-item:hover{border-color:var(--calico-orange);transform:translateY(-2px);box-shadow:0 4px 16px #fdae1e26}@media (hover:none){.slot-item:hover{transform:none}.slot-item:active{background:#fff4e0;transform:scale(.98)}}.slot-time{font-size:var(--type-body);color:var(--calico-ink);align-items:center;gap:.5rem;margin-bottom:.625rem;font-weight:700;line-height:1.3;display:flex}@media (min-width:640px){.slot-time{font-size:var(--type-body);margin-bottom:.75rem}}@media (min-width:768px){.slot-time{font-size:var(--type-body-lg)}}.slot-time svg{color:var(--calico-orange);flex-shrink:0}@media (max-width:640px){.slot-time svg{width:14px;height:14px}}.slot-tutor,.slot-tutors{font-size:var(--type-caption);color:var(--calico-body-muted);align-items:center;gap:.5rem;margin-bottom:.875rem;line-height:1.4;display:flex}@media (min-width:640px){.slot-tutor,.slot-tutors{font-size:var(--type-label);margin-bottom:1rem}}.slot-tutor svg,.slot-tutors svg{color:var(--calico-slate-400)}.tutors-names{font-size:var(--type-caption);color:var(--calico-slate-400);margin-top:.25rem}.book-slot-btn{background:var(--calico-orange-gradient);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:var(--type-label);cursor:pointer;transition:all var(--duration-slow) var(--ease-standard);text-align:center;touch-action:manipulation;border:none;width:100%;min-height:44px;padding:.75rem 1.25rem}@media (min-width:640px){.book-slot-btn{font-size:var(--type-label);padding:.75rem 1.5rem}}.book-slot-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #fdae1e4d}@media (hover:none){.book-slot-btn:hover{transform:none}.book-slot-btn:active{background:linear-gradient(135deg, var(--calico-orange), #cc7704);transform:scale(.98)}}.no-slots{text-align:center;color:var(--calico-body-muted);flex-direction:column;justify-content:center;align-items:center;padding:2rem 1.5rem;display:flex}@media (min-width:640px){.no-slots{padding:2.5rem 2rem}}@media (min-width:768px){.no-slots{padding:3rem 2rem}}.no-slots-icon{opacity:.5;margin-bottom:.875rem;font-size:2.5rem}@media (min-width:640px){.no-slots-icon{margin-bottom:1rem;font-size:3rem}}.no-slots h4{font-size:var(--type-body-lg);color:var(--calico-ink);margin:0 0 .5rem;font-weight:600;line-height:1.3}@media (min-width:640px){.no-slots h4{font-size:var(--type-body-lg)}}.no-slots p{font-size:var(--type-label);max-width:300px;margin:0;line-height:1.5}@media (min-width:640px){.no-slots p{font-size:var(--type-body)}}@media (max-width:480px){.availability-calendar-container{gap:.75rem;padding:.5rem}.calendar-panel,.slots-panel{border-width:1.5px;padding:.875rem}.react-calendar__navigation{height:36px;margin-bottom:.5rem}.react-calendar__navigation button{min-width:32px;min-height:32px;font-size:var(--type-caption);padding:.25rem .5rem}.react-calendar__tile{font-size:var(--type-xs);min-height:32px;padding:6px 2px}.calendar-title,.slots-title{font-size:var(--type-body);gap:.375rem}.slot-item{margin-bottom:.75rem;padding:.875rem}.slot-time{font-size:var(--type-body-sm)}.book-slot-btn{font-size:var(--type-caption);min-height:40px;padding:.625rem 1rem}}.availability-calendar-container{flex-direction:column;gap:1.25rem;display:flex!important}.availability-calendar-container .calendar-panel,.availability-calendar-container .slots-panel{border-left:none;width:100%;max-width:none}.availability-calendar-container .slots-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.625rem;max-height:none;padding-right:0;overflow:visible;display:grid!important}.availability-calendar-container .slot-item{text-align:center;cursor:pointer;background:#fff;border:1px solid #ffe2bd;border-radius:.85rem;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;min-height:0;padding:.7rem .75rem;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;display:flex}.availability-calendar-container .slot-item:hover{background:#fff7ed;border-color:#ff8c00;transform:translateY(-1px);box-shadow:0 4px 12px #ff8c0026}.availability-calendar-container .slot-time{color:#1f2937;font-size:.92rem;font-weight:700}.availability-calendar-container.mode-individual .slot-tutor,.availability-calendar-container.mode-individual .book-slot-btn{display:none}.availability-calendar-container.mode-joint .slot-tutor{color:#6b7280;font-size:.72rem}.availability-calendar-container.mode-joint .book-slot-btn{margin-top:.25rem;padding:.25rem .6rem;font-size:.72rem}.availability-calendar-container .no-slots{text-align:center;grid-column:1/-1;padding:1.75rem 1rem}.availability-calendar-container .slot-item{margin:0}.availability-calendar-container .slot-time{justify-content:center;margin-bottom:0}.availability-calendar-container .calendar-panel,.availability-calendar-container .slots-panel{border:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000d}.availability-calendar-container .calendar-header,.availability-calendar-container .slots-header{border-bottom-color:#e5e7eb}