body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;background-color:#f0f2f5;color:#333;line-height:1.6}.app-container{max-width:1100px;margin:0 auto;padding:20px}.user-switcher-container{background-color:#fff;padding:10px 20px;margin-bottom:15px;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;align-items:center;gap:10px;justify-content:flex-end}.user-switcher-container label{font-weight:500;color:#34495e}.user-switcher-container select{padding:8px 12px;border-radius:4px;border:1px solid #ccc;background-color:#fff;font-size:.9em}.app-navigation{display:flex;justify-content:center;gap:15px;margin-bottom:25px;padding:10px 0;background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014}.app-navigation button{background-color:transparent;color:#5dade2;border:2px solid transparent;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:1em;font-weight:500;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.app-navigation button:hover{color:#3498db;background-color:#eaf2f8}.app-navigation button.active{color:#2980b9;border-bottom:2px solid #2980b9;font-weight:600}.calendar-container{background-color:#fff;padding:20px;border-radius:8px;box-shadow:0 4px 12px #0000001a}.current-role-display{text-align:center;margin-bottom:15px;font-size:1.1em;color:#34495e;padding:8px;background-color:#e9ecef;border-radius:4px}.calendar-controls{margin-bottom:25px}.week-navigation{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.week-navigation h2{margin:0;font-size:1.4em;color:#2c3e50;text-align:center}.week-navigation button,.day-selector button{background-color:#5dade2;color:#fff;border:none;padding:10px 15px;border-radius:5px;cursor:pointer;font-size:.9em;transition:background-color .2s ease}.week-navigation button:hover,.day-selector button:hover{background-color:#3498db}.day-selector button.active{background-color:#2980b9;font-weight:700}.coach-view-wrapper,.admin-view-wrapper{overflow-x:auto}.weekly-table{width:100%;border-collapse:collapse;table-layout:fixed}.weekly-table th,.weekly-table td{border:1px solid #d5dbdb;padding:2px;text-align:center;vertical-align:top;height:auto;min-height:45px;font-size:.8em}.weekly-table th{background-color:#f8f9fa;font-weight:400;padding:8px 4px;vertical-align:middle}.weekly-table th .date-number{font-size:.8em;color:#7f8c8d}.weekly-table .time-col-header,.weekly-table .time-cell{width:70px;background-color:#f8f9fa;color:#34495e;vertical-align:middle}.slot-cell{cursor:pointer;transition:background-color .2s ease;min-width:70px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:normal;line-height:1.3;position:relative}.slot-cell.disabled{cursor:not-allowed;opacity:.7}.slot-cell.owned-by-other-coach{opacity:.7}.slot-cell.owned-by-other-coach.status-available{background-color:#e8f8f5}.slot-cell.owned-by-other-coach.status-busy{background-color:#feefef}.slot-cell.status-default{background-color:#f2f3f4}.slot-cell.status-default:hover:not(.disabled){background-color:#e5e7e9}.slot-cell.status-available{background-color:#d4efdf}.slot-cell.status-available.owned-by-current-coach:hover:not(.disabled){background-color:#abebc6}.slot-cell.status-busy{background-color:#fadbd8}.slot-cell.status-busy.owned-by-current-coach:hover:not(.disabled){background-color:#f5b7b1}.slot-cell.status-booked{background-color:#bb8fce;color:#2c3e50}.slot-cell.status-booked:hover:not(.disabled){background-color:#a569bd}.admin-slot-cell-container.clickable-group-slot{cursor:pointer;outline:1px dashed #777}.admin-slot-cell-container.clickable-group-slot:hover{background-color:#e9e9e9}.student-view-container{margin-top:20px}.day-selector{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;justify-content:center}.slots-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto;padding-right:5px}.slot-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid #e0e0e0;border-radius:5px;cursor:default;transition:background-color .2s ease,border-color .2s ease;-webkit-user-select:none;user-select:none;font-size:.9em}.slot-item-time{font-weight:500;margin-right:10px}.slot-item-details{text-align:right;flex-grow:1}.slot-item-details strong{font-weight:600;margin-left:5px}.slot-item.status-default.unavailable-for-student,.slot-item.unavailable-for-student{background-color:#f0f0f0;color:#aaa;border-left:5px solid #ddd;opacity:.7}.slot-item.status-busy.unavailable-for-student{background-color:#fee;border-left:5px solid #ec7063;color:#b0716b}.slot-item.status-available.bookable:not(.group-lesson){background-color:#e6ffed;border-left:5px solid #58d68d;cursor:pointer}.slot-item.status-available.bookable:not(.group-lesson):hover{background-color:#d1f9e0}.slot-item.status-booked:not(.group-lesson){background-color:#e8daef;border-left:5px solid #a569bd}.slot-item.group-available.bookable{background-color:#e0f2f1;border-left:5px solid #4db6ac;cursor:pointer}.slot-item.group-available.bookable:hover{background-color:#b2dfdb}.slot-item.group-signed-up{background-color:#ede7f6;border-left:5px solid #ba68c8}.slot-item.group-full{background-color:#eee;border-left:5px solid #757575;color:#555;opacity:.8}.slot-item.group-waitlist-available.bookable{background-color:#fff3e0;border-left:5px solid #ffb74d;cursor:pointer}.slot-item.group-waitlist-available.bookable:hover{background-color:#ffe0b2}.slot-item.group-on-waitlist{background-color:#ffcc80;border-left:5px solid #ffa726;color:#5d4037}.admin-view-note{font-style:italic;color:#666;text-align:center;margin-bottom:15px;background-color:#e9ecef;padding:8px;border-radius:4px}.admin-slot-cell-container{padding:5px}.admin-court-info{font-size:.9em;padding:2px 0;border-bottom:1px dashed #eee;text-align:left}.admin-court-info:last-child{border-bottom:none}.admin-court-info.status-booked{color:#5b2c6f}.admin-court-info.status-available{color:#1e8449}.admin-court-info.status-busy{color:#b03a2e}.admin-court-info.status-default{color:#707b7c}.admin-group-info{font-size:.85em;font-style:italic;color:#2980b9;margin-top:4px;padding-top:4px;border-top:1px solid #eee;text-align:left}.coach-slot-accordion{background-color:#fdfefe;border-top:1px solid #ccc;margin:5px -2px -2px;padding:8px;text-align:left;font-size:.95em;line-height:1.5}.coach-slot-accordion .accordion-section{margin-bottom:10px}.coach-slot-accordion .accordion-section:last-child{margin-bottom:0}.coach-slot-accordion strong{color:#34495e;display:block;margin-bottom:4px}.coach-slot-accordion ul{list-style:none;padding-left:10px;margin:0}.coach-slot-accordion .student-list-item{padding:3px 0;display:flex;justify-content:space-between;align-items:center}.coach-slot-accordion .move-to-booked-btn{background-color:#2ecc71;color:#fff;border:none;padding:3px 8px;font-size:.8em;border-radius:3px;cursor:pointer;margin-left:8px}.coach-slot-accordion .move-to-booked-btn:hover{background-color:#27ae60}.coach-slot-accordion .move-to-booked-btn:disabled{background-color:#bdc3c7;cursor:not-allowed}.coach-slot-accordion p{font-style:italic;color:#7f8c8d;font-size:.9em;margin:5px 0 5px 10px}.admin-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.admin-modal-content{background-color:#fff;padding:25px;border-radius:8px;box-shadow:0 5px 15px #0000004d;width:90%;max-width:550px;max-height:80vh;overflow-y:auto}.admin-modal-content h3{margin-top:0;color:#2c3e50;border-bottom:1px solid #eee;padding-bottom:10px;margin-bottom:15px}.admin-modal-content .modal-section{margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #f0f0f0}.admin-modal-content .modal-section:last-of-type{border-bottom:none;margin-bottom:0}.admin-modal-content h4{color:#34495e;margin-top:0;margin-bottom:10px;font-size:1.1em}.admin-modal-content .modal-student-list{list-style:none;padding-left:0;margin:0}.admin-modal-content .modal-student-list li{padding:6px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f5f5f5}.admin-modal-content .modal-student-list li:last-child{border-bottom:none}.admin-modal-content .modal-action-button{border:none;padding:5px 10px;font-size:.85em;border-radius:4px;cursor:pointer;margin-left:8px;transition:background-color .2s ease}.admin-modal-content .modal-action-button.remove{background-color:#e74c3c;color:#fff}.admin-modal-content .modal-action-button.remove:hover{background-color:#c0392b}.admin-modal-content .modal-action-button.add{background-color:#2ecc71;color:#fff}.admin-modal-content .modal-action-button.add:hover{background-color:#27ae60}.admin-modal-content .modal-action-button:disabled{background-color:#bdc3c7;cursor:not-allowed}.admin-modal-content .modal-add-student{margin-top:10px;display:flex;gap:10px;align-items:center}.admin-modal-content .modal-student-select{flex-grow:1;padding:8px;border-radius:4px;border:1px solid #ccc;font-size:.9em}.admin-modal-content .modal-close-button{display:block;margin-top:25px;margin-left:auto;background-color:#7f8c8d;color:#fff;padding:10px 18px;border:none;border-radius:5px;cursor:pointer}.admin-modal-content .modal-close-button:hover{background-color:#6c7a89}.admin-modal-content p{font-style:italic;color:#7f8c8d;font-size:.9em;margin:5px 0}.settings-page{background-color:#fff;padding:25px;border-radius:8px;box-shadow:0 4px 12px #0000001a;max-width:700px;margin:20px auto}.settings-page h2{text-align:center;color:#2c3e50;margin-bottom:25px}.settings-form fieldset{border:1px solid #dcdcdc;padding:15px 20px;margin-bottom:20px;border-radius:6px}.settings-form legend{padding:0 10px;font-weight:600;color:#34495e}.settings-form .form-group{margin-bottom:15px;display:flex;flex-direction:column}.segment-item .form-group,.prime-segment-item .form-group,.group-segment-item .form-group{flex-direction:row;align-items:center;gap:10px}.segment-item .form-group label,.prime-segment-item .form-group label,.group-segment-item .form-group label{flex-basis:120px;flex-shrink:0;margin-bottom:0}.settings-form label{display:block;margin-bottom:8px;font-weight:500;color:#34495e}.settings-form input[type=number],.settings-form input[type=time],.settings-form .duration-select{width:100%;padding:10px;border:1px solid #ccc;border-radius:4px;font-size:1em;box-sizing:border-box}.segment-item .form-group input,.prime-segment-item .form-group input,.group-segment-item .form-group input{flex-grow:1}.settings-form .duration-input-custom{margin-top:5px}.settings-form .save-settings-button,.settings-form .add-segment-button{background-color:#27ae60;color:#fff;padding:12px 20px;border:none;border-radius:5px;cursor:pointer;font-size:1em;transition:background-color .2s ease;display:block;width:100%;margin-top:10px}.settings-form .add-segment-button{background-color:#3498db;margin-top:15px}.settings-form .save-settings-button:hover{background-color:#229954}.settings-form .add-segment-button:hover{background-color:#2980b9}.settings-note{font-size:.85em;color:#7f8c8d;margin-top:5px;margin-bottom:15px;text-align:left}.prime-time-fieldset .settings-note,.group-lesson-fieldset .settings-note{margin-bottom:10px}.segment-item,.prime-segment-item,.group-segment-item{border:1px solid #e0e0e0;padding:15px;margin-bottom:15px;border-radius:4px;background-color:#f9f9f9}.segment-item h4,.prime-segment-item h4,.group-segment-item h4{margin-top:0;margin-bottom:15px;color:#546e7a}.remove-segment-button{background-color:#e74c3c;color:#fff;border:none;padding:8px 15px;border-radius:4px;cursor:pointer;font-size:.9em;transition:background-color .2s ease}.remove-segment-button:hover{background-color:#c0392b}.error-messages{background-color:#ffebee;color:#c62828;border:1px solid #ef9a9a;padding:15px;margin-bottom:20px;border-radius:4px}.error-messages h4{margin-top:0;margin-bottom:10px;color:#b71c1c}.error-messages ul{margin:0;padding-left:20px}.info-message{text-align:center;padding:20px;color:#7f8c8d;font-style:italic;background-color:#e9ecef;border-radius:4px}@media(max-width:768px){.app-container{padding:10px}.user-switcher-container{flex-direction:column;align-items:stretch}.user-switcher-container select{width:100%}.app-navigation{gap:5px;padding:5px 0}.app-navigation button{padding:8px 12px;font-size:.9em}.calendar-container,.settings-page{padding:15px}.week-navigation h2{font-size:1.2em}.week-navigation button{padding:8px 10px;font-size:.85em}.weekly-table th,.weekly-table .time-cell{font-size:.75em}.weekly-table .time-col-header,.weekly-table .time-cell{width:55px}.slot-cell{min-width:55px;line-height:1.2}.admin-court-info,.admin-group-info{font-size:.85em}.coach-slot-accordion{font-size:.9em}.settings-form input[type=number],.settings-form input[type=time],.settings-form .duration-select{font-size:.95em}.segment-item .form-group,.prime-segment-item .form-group,.group-segment-item .form-group{flex-direction:column;align-items:flex-start}.segment-item .form-group label,.prime-segment-item .form-group label,.group-segment-item .form-group label{flex-basis:auto;margin-bottom:5px}.segment-item .form-group input,.prime-segment-item .form-group input,.group-segment-item .form-group input{width:100%}.admin-modal-content{width:95%;padding:20px}}@media(max-width:480px){.app-navigation{flex-direction:column}.week-navigation{flex-direction:column;gap:10px}.week-navigation h2{order:-1}.day-selector{justify-content:space-around}.day-selector button{flex-basis:calc(33.333% - 10px);min-width:auto}.slot-item{padding:8px;font-size:.85em;flex-direction:column;align-items:flex-start}.slot-item-details{text-align:left;margin-top:4px}.weekly-table{font-size:.9em}.weekly-table th,.weekly-table .time-cell{font-size:.7em}.admin-court-info,.admin-group-info{font-size:.8em}.coach-slot-accordion{font-size:.85em}.coach-slot-accordion .move-to-booked-btn{font-size:.75em;padding:2px 5px}.admin-modal-content{padding:15px}.admin-modal-content .modal-action-button{font-size:.8em;padding:4px 8px}.admin-modal-content .modal-add-student{flex-direction:column;align-items:stretch}.admin-modal-content .modal-student-select{margin-bottom:5px}}
