.main-content{padding:0}.calendar-container{padding:20px;background-color:#fff;height:100vh;font-family:Montserrat,sans-serif;display:flex;flex-direction:column;box-sizing:border-box}.calendar-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid #d0d0d0}.navigation-controls{display:flex;align-items:center;gap:15px}.navigation-controls .ant-btn{border:1px solid #d9d9d9;border-radius:6px}.navigation-controls .ant-btn-icon-only{border:none;background-color:#fff;box-shadow:none}.navigation-controls .today-btn{color:#2ec4b6;font-weight:600;border:none;background:none;box-shadow:none;font-size:14px}.week-range{font-size:22px;font-weight:600;color:#333;line-height:38px}.view-controls{display:flex;align-items:center;gap:15px}.view-controls .ant-radio-group{border-radius:25px!important;background-color:#f0f2f5!important;padding:4px!important;border:none;height:38px!important;box-sizing:border-box!important;display:inline-flex!important;align-items:center!important}.view-controls .ant-radio-button-wrapper{border:none!important;border-radius:20px!important;background-color:transparent!important;font-weight:500;font-size:14px;align-items:center!important}.view-controls .ant-radio-button-wrapper:not(:first-child):before{display:none}.view-controls .ant-radio-button-wrapper-checked{background-color:#fff!important;box-shadow:0 1px 3px #0000001a;color:#595959!important}.view-controls .ant-radio-button-wrapper:not(.ant-radio-button-wrapper-checked){color:#595959!important}.new-event-btn{background-color:#f39c12!important;color:#fff!important;border:none!important;font-weight:600!important;border-radius:25px!important;font-size:14px}.new-event-btn:hover{background-color:#e67e22!important;color:#fff!important}.navigation-controls .ant-btn,.view-controls .ant-radio-button-wrapper,.view-controls .new-event-btn{height:38px!important;padding-top:0!important;padding-bottom:0!important;display:inline-flex!important;align-items:center!important}.navigation-controls .ant-btn-icon-only{width:38px;justify-content:center}.navigation-controls .today-btn{padding-left:16px;padding-right:16px}.view-controls .ant-radio-button-wrapper{height:30px!important;padding-left:16px!important;padding-right:16px!important}.view-controls .new-event-btn{padding-left:20px!important;padding-right:20px!important}.calendar-grid{background-color:#fff;overflow:hidden;position:relative;display:flex;flex-direction:column;flex-grow:1}.calendar-wrapper{position:relative;overflow:auto;flex-grow:1}.calendar-grid-header{display:grid;background-color:#fff;border-bottom:1px solid #d0d0d0;position:sticky;top:0;z-index:10}.calendar-grid-header.week-view{grid-template-columns:200px repeat(7,1fr)}.calendar-grid-header.day-view{grid-template-columns:200px repeat(24,120px);width:3080px}.employee-header{padding:15px;font-weight:600;color:#888;background-color:#fff;position:sticky;left:0;z-index:5;text-transform:uppercase;font-size:12px;letter-spacing:.5px}.date-header{padding:15px;text-align:center;font-weight:500;color:#555;border-left:1px solid #e8e8e8;font-size:14px}.date-header:first-child{border-left:none}.day-name{font-size:14px;font-weight:400;color:#888;margin-bottom:4px}.date-number{font-size:18px}.calendar-body{position:relative}.employee-row{display:grid;border-bottom:1px solid #d0d0d0;min-height:80px}.employee-row.week-view{grid-template-columns:200px repeat(7,1fr)}.employee-row.day-view{grid-template-columns:200px 1fr;min-height:100px}.employee-row:last-child{border-bottom:none}.employee-name{padding:15px;font-weight:500;color:#333;background-color:#fff;display:flex;align-items:center;gap:12px;position:sticky;left:0;z-index:2;font-size:14px;margin:0!important}.employee-avatar{width:32px;height:32px;border-radius:50%;background-color:#f39c12;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.day-cell{padding:8px;border-left:1px solid #e8e8e8;min-height:80px;position:relative;display:flex;flex-direction:column;gap:4px;transition:background-color .2s ease}.timeline-row{position:relative;width:2880px;display:flex}.time-slot{width:60px;height:100%;border-left:1px dotted #e8e8e8;min-height:100px;transition:background-color .2s ease}.time-slot:hover,.day-cell:hover{background-color:#f8fafc}.appointment-block{padding:8px 10px;border-radius:6px;margin-bottom:2px;font-size:12px;line-height:1.3;cursor:pointer;transition:all .2s ease;border:none;overflow:hidden;min-height:32px;display:flex;flex-direction:column;justify-content:center}.appointment-block.time-block{background-color:#fdebd0;color:#c35a00}.appointment-block.appointment{background-color:#fff;color:#333;box-shadow:0 1px 3px #0000001f;position:relative;z-index:5}.appointment-block-day-view{margin-bottom:0;box-shadow:0 1px 3px #0000001a;border-left:3px solid #f39c12;background-color:#fff!important;z-index:10!important}.appointment-block:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 4px 12px #0000001a;z-index:20}.appointment-title{font-weight:600;font-size:11px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-customer{font-weight:600;font-size:11px;color:#dc3545;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-time{font-size:10px;color:#666;margin:2px 0}.appointment-payment{font-size:9px;margin-top:2px}.appointment-service{font-size:11px;opacity:.9;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-employee{font-size:10px;opacity:.7;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-payment-tag{font-size:10px;color:#28a745;margin-top:2px;font-weight:500}.calendar-wrapper::-webkit-scrollbar,.calendar-container::-webkit-scrollbar,body::-webkit-scrollbar,html::-webkit-scrollbar{width:6px;height:6px}.calendar-wrapper::-webkit-scrollbar-track,.calendar-container::-webkit-scrollbar-track,body::-webkit-scrollbar-track,html::-webkit-scrollbar-track{background:transparent}.calendar-wrapper::-webkit-scrollbar-thumb,.calendar-container::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,html::-webkit-scrollbar-thumb{background:#0003;border-radius:10px;border:1px solid transparent;background-clip:content-box}.calendar-wrapper::-webkit-scrollbar-thumb:hover,.calendar-container::-webkit-scrollbar-thumb:hover,body::-webkit-scrollbar-thumb:hover,html::-webkit-scrollbar-thumb:hover{background:#0006;background-clip:content-box}.calendar-wrapper,.calendar-container,body,html{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.ant-modal .edit-btn{background-color:#3498db;color:#fff;border:none}.ant-modal .edit-btn:hover{background-color:#2980b9;color:#fff!important}.ant-modal .delete-btn:hover{color:#fff!important}.ant-modal-header{background-color:#f7f7f7;border-bottom:1px solid #d0d0d0;border-radius:8px 8px 0 0}.ant-modal-title{font-weight:600}.week-view-container{height:100%;display:flex;flex-direction:column}.week-view-container{display:flex;flex-direction:column;height:auto;min-height:100%}.week-header{display:flex;position:sticky;top:0;z-index:100;background-color:#fff;border-bottom:1px solid #d0d0d0}.week-grid{display:flex;flex:1;overflow:visible;height:auto}.week-time-column{width:80px;flex-shrink:0;border-right:2px solid #ccc!important;background-color:#fafafa;height:2880px;min-height:2880px}.week-time-header{width:80px;height:60px;border-right:2px solid #ccc!important;background-color:#fafafa;flex-shrink:0}.week-time-slot{height:120px;min-height:120px;padding:5px 8px;font-size:12px;color:#666;background-color:#fafafa!important;border-bottom:2px solid #ccc!important;display:flex;align-items:flex-start;justify-content:flex-end;text-align:right;box-sizing:border-box}.week-day-column{flex:1;border-right:2px solid #ccc!important;position:relative;min-width:120px;height:2880px;min-height:2880px}.week-day-column:last-child{border-right:none}.week-day-header{flex:1;height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #e8e8e8;background-color:#fafafa;font-weight:500;min-width:120px}.week-day-header:last-child{border-right:none}.week-day-header .day-name{font-size:12px;color:#666;margin-bottom:2px;text-transform:uppercase}.week-day-header .date-number{font-size:16px;color:#333;font-weight:600}.week-day-content{position:relative;height:2880px;min-height:2880px;flex:1}.week-hour-slot{height:120px;min-height:120px;border-bottom:2px solid #ccc!important;cursor:pointer;transition:background-color .2s ease;position:relative;box-sizing:border-box}.week-hour-slot:hover{background-color:#f8fafc}.week-hour-slot:last-child{border-bottom:2px solid #ccc!important}.week-day-content .appointment-block{z-index:10!important;position:absolute;min-height:unset;background-color:#fff!important;box-shadow:0 1px 3px #00000026!important}.day-view-container{height:100%;display:flex;flex-direction:column}.day-header{padding:20px;border-bottom:1px solid #d0d0d0;background-color:#fafafa}.day-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.day-timeline{display:flex;flex:1;height:800px;overflow-y:auto}.day-time-column{width:80px;flex-shrink:0;border-right:1px solid #e8e8e8}.day-time-slot{height:120px;display:flex;align-items:flex-start;justify-content:flex-end;padding:5px 8px;border-bottom:1px solid #f0f0f0}.day-time-slot .time-label{font-size:12px;color:#666;text-align:right}.day-events-area{flex:1;position:relative}.day-hour-lines{position:absolute;top:0;left:0;right:0;height:2880px}.day-hour-line{height:120px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .2s ease}.day-hour-line:hover{background-color:#f8fafc}.day-events-container{position:relative;height:2880px;width:100%}@media (max-width: 1200px){.calendar-header{flex-direction:column;gap:15px;align-items:stretch}.week-day-column{min-width:100px}.week-time-column,.day-time-column{width:60px}}@media (max-width: 768px){.calendar-container,.calendar-header{padding:10px}.filter-controls{flex-direction:column;gap:10px;align-items:stretch}.filter-controls .ant-select{width:100%!important}.day-cell{padding:4px}.appointment-block{padding:4px;font-size:10px}.appointment-customer{font-size:10px}.appointment-time,.appointment-service{font-size:9px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.appointment-block{animation:fadeIn .3s ease-out}.day-cell:hover{background-color:#f9f9f9}.employee-row:hover .employee-name{background-color:#f0f0f0}.calendar-loading{display:flex;justify-content:center;align-items:center;height:400px;font-size:16px;color:#666}.calendar-empty{display:flex;justify-content:center;align-items:center;height:200px;color:#999;font-style:italic}.month-view-wrapper{display:flex;height:100%}.month-grid{flex:3;border-right:1px solid #e8e8e8;display:flex;flex-direction:column}.sidebar-details{flex:2;padding:20px;overflow-y:auto}.month-header{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;padding:10px 0;font-weight:600;color:#888;border-bottom:1px solid #d0d0d0}.month-week{display:grid;grid-template-columns:repeat(7,1fr);flex-grow:1}.month-day{border-bottom:1px solid #d0d0d0;border-left:1px solid #e8e8e8;padding:8px;cursor:pointer;transition:background-color .2s ease}.month-day:nth-child(7n+1){border-left:none}.month-day.non-current-month{color:#ccc;background-color:#fcfcfc}.month-day:hover{background-color:#f8fafc}.month-day.selected-day{background-color:#e6f7ff;font-weight:700}.month-day .day-number{font-size:13px;text-align:right}.month-day .event-indicators{display:flex;flex-wrap:wrap;gap:3px;margin-top:auto;align-items:center}.month-day .event-badge{background-color:#2ec4b6;color:#fff;border-radius:10px;padding:2px 6px;font-size:10px;font-weight:600;white-space:nowrap;min-width:16px;text-align:center;line-height:1.2}.month-day .event-badge.time-block{background-color:#94a3b8}.month-day .event-badge.mixed{background:linear-gradient(45deg,#2ec4b6 50%,#64748b 50%)}.month-day .today-date .day-number{background-color:#2ec4b6;color:#fff;border-radius:50%;width:24px;height:24px;line-height:24px;text-align:center;display:block;margin-left:auto}.month-day .event-count{font-size:11px;color:#555;margin-top:8px}.sidebar-title{font-size:18px;font-weight:600;margin-bottom:20px}.sidebar-event-list .appointment-block{margin-bottom:10px}.payment-status{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500;margin-left:4px;white-space:nowrap;border:1px solid;background-color:transparent}.payment-status-paid{border-color:#52c41a;color:#52c41a}.payment-status-partial{border-color:#fa8c16;color:#fa8c16}.payment-status-unpaid{border-color:#3f8fdf;color:#3f8fdf}.payment-status-default{border-color:#595959;color:#595959}
