@charset "UTF-8";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400}html,body{height:100%;overflow-y:auto!important;overflow-x:hidden}body{margin:0;padding:0}#root{min-height:100%;overflow:visible}.profile-section{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;padding:16px 24px;border-radius:8px;box-shadow:0 1px 4px #0000001a;border-left:4px solid #19979c}@media (max-width: 768px){.profile-section{padding:12px 16px;flex-wrap:wrap}}.profile-info{display:flex;align-items:center;justify-content:space-between;gap:32px;flex:1}.profile-info>div{display:flex;flex-direction:column;gap:4px}.profile-info h2{margin:0;font-size:19px;color:#333;font-weight:700;letter-spacing:-.3px}.profile-info .profile-email{color:#666;margin:0;font-size:12px;font-weight:400;display:flex;align-items:center;gap:4px}.profile-info .profile-email:before{content:"✉";font-size:14px;opacity:.7}.profile-info .profile-actions{display:flex;align-items:center;gap:12px}.profile-info .profile-role{color:#fff;font-weight:700;margin:0;font-size:12px;padding:8px 24px;background:linear-gradient(135deg,#19979c,#147579);border-radius:9999px;text-transform:uppercase;letter-spacing:.8px;box-shadow:0 2px 8px #19979c33;white-space:nowrap}.profile-info .logout-button{padding:8px 16px;background:#fff;border:2px solid #e74c3c;color:#e74c3c;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap}.profile-info .logout-button:hover{background:#e74c3c;color:#fff;transform:translateY(-1px);box-shadow:0 4px 8px #e74c3c4d}.profile-info .logout-button:active{transform:translateY(0)}@media (max-width: 768px){.profile-info{flex-direction:column;align-items:flex-start;gap:12px}.profile-info h2{font-size:16px}.profile-info .profile-actions{flex-wrap:wrap}}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e0e0e0;position:relative}.calendar-header h2{font-size:19px;font-weight:600;color:#333;margin:0}@media (max-width: 768px){.calendar-header{flex-direction:column;align-items:flex-start;gap:16px}}.calendar-actions{display:flex;align-items:center;gap:16px}.add-schedule-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#19979c;color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 6px #19979c33}.add-schedule-btn svg{width:16px;height:16px}.add-schedule-btn:hover{background:#147579;transform:translateY(-1px);box-shadow:0 4px 10px #19979c4d}.add-schedule-btn:active{transform:translateY(0)}.legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap}@media (max-width: 768px){.legend{gap:12px;width:100%}}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#666}.legend-item:hover{color:#333}.legend-color{width:10px;height:10px;border-radius:8px;flex-shrink:0;border:1px solid #e0e0e0}.legend-color.highlighted-pair-demo{border:2px solid #19979c;background:transparent}.legend-label{font-weight:500;white-space:nowrap}.staff-section{margin-bottom:24px}.staff-search{margin-bottom:12px;position:relative;max-width:320px}.staff-search input{width:100%;padding:8px 16px 8px 48px;border:1px solid #e0e0e0;border-radius:8px;font-size:12px;color:#333;transition:all .25s cubic-bezier(.4,0,.2,1)}.staff-search input:focus{outline:none;border-color:#19979c;box-shadow:0 0 0 3px #19979c0d}.staff-search input::placeholder{color:#999}.staff-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#999;pointer-events:none}@media (max-width: 768px){.staff-search{max-width:100%;width:100%;box-sizing:border-box}.staff-search input{box-sizing:border-box}}.staff-list{display:flex;flex-wrap:wrap;gap:8px;margin:0}@media (max-width: 768px){.staff-list{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:4px}.staff-list::-webkit-scrollbar{height:4px}.staff-list::-webkit-scrollbar-track{background:#f9f9f9;border-radius:2px}.staff-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}}.staff-list .staff{min-height:32px;padding:0 16px;display:flex;align-items:center;gap:8px;background:#f9f9f9;color:#666;border:none;border-radius:9999px;text-transform:capitalize;transition:all .25s cubic-bezier(.4,0,.2,1);cursor:pointer;font-size:12px;font-weight:500;flex-shrink:0}.staff-list .staff .staff-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:2px solid white;box-shadow:0 0 0 1px #0000001a;transition:all .25s cubic-bezier(.4,0,.2,1)}.staff-list .staff svg{width:14px;height:14px;opacity:.7}.staff-list .staff svg path{fill:currentColor;transition:all .25s cubic-bezier(.4,0,.2,1)}.staff-list .staff span:not(.staff-color-dot){color:inherit;white-space:nowrap}.staff-list .staff:hover:not(.active){background:#f5f5f5;color:#333}.staff-list .staff:hover:not(.active) .staff-color-dot{transform:scale(1.15);box-shadow:0 0 0 2px #00000026}.staff-list .staff:hover:not(.active) svg{opacity:.9}.staff-list .staff.active{background:#19979c;color:#fff;font-weight:600;box-shadow:0 2px 6px #19979c40}.staff-list .staff.active .staff-color-dot{transform:scale(1.2);border-color:#ffffffe6;box-shadow:0 0 0 2px #ffffff4d}.staff-list .staff.active svg{opacity:1}.staff-list .staff.active svg path{fill:#fff}.fc .fc-scrollgrid{border-color:transparent!important}.fc th,.fc td{border-left:none!important;border-right:none!important;border-top:none!important;border-bottom:1px solid #e0e0e0!important}.fc .fc-toolbar{margin-bottom:24px;gap:12px}.fc .fc-toolbar.fc-header-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.fc .fc-toolbar-title{font-size:19px;font-weight:600;color:#333;letter-spacing:-.3px;margin:0 12px}.fc .fc-toolbar-chunk{display:flex;align-items:center;gap:4px}.fc .fc-button{background:#fff!important;border:1px solid #e0e0e0!important;color:#333!important;border-radius:8px!important;padding:8px 16px!important;font-weight:500!important;font-size:12px!important;transition:all .15s ease!important;box-shadow:none!important;text-transform:capitalize!important;min-width:36px!important;opacity:1!important}.fc .fc-button:hover{background:#f5f5f5!important;border-color:#ddd!important;color:#333!important;opacity:1!important}.fc .fc-button:active{background:#f5f5f5!important;transform:translateY(0)!important}.fc .fc-button:disabled{opacity:1!important;cursor:pointer!important;background:#fff!important;pointer-events:auto!important}.fc .fc-button:focus{outline:none!important;box-shadow:0 0 0 2px #19979c0d!important}.fc .fc-button-primary{background:#fff!important;border:1px solid #e0e0e0!important;color:#333!important}.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary.fc-button-active{background:#fff!important;border-color:#e0e0e0!important;color:#333!important;font-weight:500!important}.fc .fc-button-primary:not(:disabled):active:hover,.fc .fc-button-primary.fc-button-active:hover{background:#f5f5f5!important;border-color:#ddd!important;color:#333!important}.fc .fc-button-group{gap:4px;display:flex}.fc .fc-col-header-cell{background:transparent;font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:1px;padding:16px 8px 12px;color:#666;border-color:#e0e0e0!important}.fc .fc-daygrid-day{transition:background-color .15s ease}.fc .fc-daygrid-day:hover{background-color:#f9f9f9}.fc .fc-daygrid-day-frame{padding:8px;min-height:70px}.fc .fc-daygrid-day-number{font-weight:600;padding:8px;color:#333;font-size:14px}.fc .fc-day-other{background-color:#f9f9f9!important}.fc .fc-day-other .fc-daygrid-day-number{color:#999;font-weight:400}.fc .fc-day-other:hover{background-color:#f5f5f5!important}.fc .fc-daygrid-day-top{display:flex;justify-content:flex-end}.fc .fc-day-today{background-color:#19979c0d!important;position:relative}.fc .fc-day-today .fc-daygrid-day-bg{display:none!important}.fc .fc-day-today .fc-daygrid-day-top{z-index:100;position:relative;background:transparent!important}.fc .fc-day-today .fc-daygrid-day-number{background:#19979c!important;color:#fff!important;border-radius:9999px!important;font-weight:700!important;padding:0!important;width:36px!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:16px!important;box-shadow:0 3px 10px #19979c80,0 0 0 2px #fff,0 0 0 4px #19979c33!important;transition:all .25s cubic-bezier(.4,0,.2,1)!important;z-index:100!important;position:relative!important;line-height:1!important}.fc .fc-day-today .fc-daygrid-day-number:hover{transform:scale(1.08)!important;box-shadow:0 5px 15px #19979c99,0 0 0 2px #fff,0 0 0 5px #19979c4d!important}.fc .fc-day-today .fc-daygrid-day-events{z-index:1;margin-top:12px}.fc .fc-daygrid-day-events{margin-top:8px;min-height:0}.fc .fc-daygrid-event-harness{margin-bottom:4px}.fc .fc-daygrid-more-link{font-size:11px;color:#666;font-weight:600;padding:2px 8px;border-radius:8px;transition:all .15s ease;background:#f5f5f5;text-decoration:none;display:inline-block;margin-top:2px}.fc .fc-daygrid-more-link:hover{background:#19979c1f;color:#19979c}.event{padding:8px 12px;text-transform:capitalize;position:relative;cursor:pointer;border-radius:4px;margin:2px 0;transition:all .15s ease;border:1px solid transparent!important;overflow:hidden}.event:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#0003}.event .fc-event-title{text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden;font-size:11px;font-weight:600;line-height:1.4;text-shadow:0 1px 2px rgba(0,0,0,.1)}.event .fc-event-time{font-size:11px;opacity:.95;font-weight:500}.event:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.event.highlight{position:relative;overflow:visible;border:2px solid #ffc107!important;box-shadow:0 2px 8px #ffc10766,0 0 0 3px #ffc10726;animation:pulse 2s infinite}.event.highlight:before{background:#ffc107;width:4px;animation:shimmer 2s infinite}.event.highlight:after{content:"✨";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:12px;animation:sparkle 1.5s infinite}.event.invalid-date{opacity:.6;border:1px dashed #999999!important;filter:grayscale(40%)}.event.invalid-date:before{background:#999}@keyframes pulse{0%,to{box-shadow:0 2px 8px #ffc10766,0 0 0 3px #ffc10726}50%{box-shadow:0 2px 12px #ffc10780,0 0 0 4px #ffc10740}}@keyframes shimmer{0%,to{opacity:1}50%{opacity:.6}}@keyframes sparkle{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.5;transform:translateY(-50%) scale(1.2)}}.event-content{display:flex;align-items:center;justify-content:space-between;gap:8px;overflow:hidden;-webkit-user-select:none;user-select:none;position:relative}.event-content p{font-size:11px;text-align:left;overflow:hidden;text-overflow:ellipsis;margin:0}.date-range-disabled{opacity:.6;pointer-events:none}.highlighted-date-orange{background-color:#fcc72926!important;font-weight:600;color:#d4a017!important}.highlighted-pair{position:relative;border-bottom:5px solid rgba(194,6,138,.5)!important}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:fadeIn .25s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:16px;box-shadow:0 8px 24px #0000002e;max-width:500px;width:100%;max-height:85vh;overflow:hidden;animation:slideUp .35s cubic-bezier(.34,1.26,.64,1);border:1px solid #eeeeee}@keyframes slideUp{0%{transform:translateY(40px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:32px;color:#fff;position:relative;overflow:hidden}.modal-header:before{content:"";position:absolute;top:0;right:0;width:200px;height:200px;background:#ffffff1a;border-radius:50%;transform:translate(50%,-50%)}.modal-header h3{margin:0;font-size:19px;color:#fff;font-weight:700;letter-spacing:-.5px}.modal-header-content{flex:1;position:relative;z-index:1}.modal-shift-badge{display:inline-block;padding:4px 12px;background:#ffffff40;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-close{background:#fff3;border:2px solid rgba(255,255,255,.3);font-size:24px;color:#fff;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:all .25s cubic-bezier(.4,0,.2,1);font-weight:700;position:relative;z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-close:hover{background-color:#ffffff4d;border-color:#ffffff80;transform:scale(1.1) rotate(90deg)}.modal-body{padding:32px;overflow-y:auto;max-height:calc(85vh - 100px)}.modal-row{display:flex;align-items:center;gap:16px;padding:16px;border-radius:12px;margin-bottom:12px;background:#f9f9f9;transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-row:hover{background:#fff;box-shadow:0 1px 4px #0000001a;transform:translateY(-2px)}.modal-row:last-child{margin-bottom:0}.modal-icon{font-size:24px;min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:12px;flex-shrink:0}.modal-info{flex:1;display:flex;flex-direction:column;gap:4px}.modal-label{font-weight:600;color:#999;font-size:11px;text-transform:uppercase;letter-spacing:.8px}.modal-value{font-size:16px;color:#333;font-weight:700;line-height:1.3}.modal-updated-badge{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#ffc1071a,#ffc1070d);border:2px solid rgba(255,193,7,.3);border-radius:12px;margin-top:16px}.modal-updated-badge svg{color:#fcc729;flex-shrink:0}.modal-updated-badge span{font-size:12px;font-weight:600;color:#c9950a}.profile-calendar-container{display:flex;flex-direction:column;gap:24px;padding:24px 24px 48px;background-color:#f9f9f9;min-height:100%}@media (max-width: 768px){.profile-calendar-container{padding:16px 16px 32px}}.calendar-section{background-color:#fff;padding:16px;border-radius:8px;box-shadow:0 1px 4px #0000001a}@media (max-width: 768px){.calendar-section{padding:12px}}.calendar-wrapper{position:relative}.calendar-wrapper .fc,.calendar-wrapper .fc *{max-height:none!important}.calendar-wrapper .fc-view-harness,.calendar-wrapper .fc-view-harness-active{height:auto!important;overflow:visible!important}.calendar-wrapper .fc-scroller,.calendar-wrapper .fc-scroller-liquid-absolute{overflow:visible!important;position:relative!important}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:24px}.loading-spinner .spinner{width:48px;height:48px;border:4px solid rgba(0,0,0,.1);border-top-color:#19979c;border-radius:9999px;animation:spin .8s linear infinite}.loading-spinner p{color:#666;font-size:14px;font-weight:500}.stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}@media (max-width: 768px){.stats-summary{grid-template-columns:repeat(2,1fr);gap:8px}}.stat-card{display:flex;align-items:center;gap:12px;padding:12px;background:#f9f9f9;border-radius:8px;border-left:3px solid #19979c;transition:all .15s ease}.stat-card:hover{transform:translateY(-1px);box-shadow:0 1px 3px #00000014}.stat-card .stat-icon{font-size:24px;opacity:.7;flex-shrink:0}.stat-card .stat-content{flex:1;min-width:0}.stat-card .stat-value{font-size:19px;font-weight:700;color:#333;line-height:1;margin-bottom:2px}.stat-card .stat-label{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.stat-card{padding:8px;gap:8px}.stat-card .stat-icon{font-size:20px}.stat-card .stat-value{font-size:16px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:24px}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:420px;width:100%;overflow:hidden;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{background:linear-gradient(135deg,#19979c,#147579);color:#fff;padding:32px 24px;text-align:center}.login-header h1{margin:0 0 8px;font-size:24px;font-weight:700}.login-header p{margin:0;font-size:14px;opacity:.9}.login-form{padding:32px 24px}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:#333}.form-group input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:all .2s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#19979c;box-shadow:0 0 0 3px #19979c1a}.form-group input.error{border-color:#e74c3c}.form-group input.error:focus{box-shadow:0 0 0 3px #e74c3c1a}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.form-group input::placeholder{color:#999}.form-group .error-message{display:block;margin-top:6px;font-size:12px;color:#e74c3c;font-weight:500}.login-button{width:100%;padding:14px;background:linear-gradient(135deg,#19979c,#147579);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #19979c66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-button .spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.demo-info{margin-top:24px;padding:16px;background:#f9f9f9;border-radius:8px;text-align:center}.demo-info p{margin:0 0 4px;font-size:14px;font-weight:600;color:#19979c}.demo-info small{font-size:12px;color:#666}@media (max-width: 768px){.login-container{padding:16px}.login-card{max-width:100%}.login-header{padding:24px 16px}.login-header h1{font-size:20px}.login-form{padding:24px 16px}}:root{display:flex;flex:1 1 auto;flex-direction:column;overflow:visible}
