.changelog-modal-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10000}.changelog-modal{animation:modalFadeIn .2s ease-out;background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:600px;width:100%}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.changelog-modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.changelog-modal-header h2{color:maroon;font-size:24px;margin:0}.changelog-modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:32px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.changelog-modal-close:hover{background-color:#f0f0f0;color:maroon}.changelog-modal-content{flex:1 1;overflow-y:auto;padding:24px}.changelog-release{margin-bottom:24px}.changelog-release:last-child{margin-bottom:0}.changelog-release-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.changelog-version{color:maroon;font-size:18px;font-weight:600}.changelog-date{color:#666;font-size:14px}.changelog-items{list-style:none;margin:0;padding:0}.changelog-items li{color:#333;line-height:1.5;padding:8px 0 8px 24px;position:relative}.changelog-items li:before{color:maroon;content:"•";font-weight:700;left:8px;position:absolute}.changelog-divider{border:none;border-top:1px solid #e0e0e0;margin:24px 0}.changelog-modal-content::-webkit-scrollbar{width:8px}.changelog-modal-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.changelog-modal-content::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.changelog-modal-content::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width:768px){.changelog-modal{margin:10px;max-height:90vh}.changelog-modal-header{padding:16px 20px}.changelog-modal-header h2{font-size:20px}.changelog-modal-content{padding:20px}.changelog-version{font-size:16px}.changelog-release-header{align-items:flex-start;flex-direction:column;gap:4px}}.layout{display:flex;flex-direction:column;min-height:100vh}.layout-content{display:flex;flex:1 1}.main-content{background-color:#f8f9fa;flex:1 1;padding:20px 0}.header{background-color:maroon;box-shadow:0 4px 8px #8000004d;color:#fff;padding:0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.dev-environment-banner{animation:pulse 2s ease-in-out infinite;background:linear-gradient(135deg,#ff9800,#ff5722);border-bottom:3px solid #e65100;box-shadow:0 2px 8px #ff572266;color:#fff;font-size:16px;font-weight:700;letter-spacing:2px;padding:8px 16px;text-align:center}.dev-banner-text{display:inline-block;padding:0 16px}.dev-banner-icon{font-size:18px}.header-content{align-items:center;gap:20px;margin:0 auto;max-width:1200px;padding:16px 20px}.header-brand{align-items:center;display:flex;flex:1 1;gap:16px}.header-logo{height:60px;object-fit:contain;width:auto}.header-title{font-size:24px;font-weight:700;margin:0}.header-user{align-items:center;display:flex;gap:16px}.user-info{align-items:flex-end;gap:4px}.user-name{font-size:15px;font-weight:600}.user-role{color:#adb5bd;font-size:12px;text-transform:capitalize}.logout-btn{background:none;border:1px solid #ffffff80;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:8px 16px;transition:all .2s ease}.logout-btn:hover{background-color:#900;border-color:#900}.dev-role-switcher{align-items:center;background-color:#ffc107;border:1px solid #ffeb3b;border-radius:4px;color:#212529;display:flex;font-size:12px;gap:8px;padding:8px 12px}.dev-label{font-weight:600;margin:0}.dev-role-select{background-color:#fff;border:1px solid #ced4da;border-radius:3px;color:#495057;font-size:12px;padding:2px 6px}.dev-active-role{color:#495057;font-weight:500}.dev-override{color:#ffc107;font-weight:600}.original-role{color:#6c757d;font-size:11px;margin-left:4px}.navigation{background-color:#fff;border-right:1px solid #dee2e6;box-shadow:2px 0 4px #0000000d;padding:20px 0;width:250px}.nav-menu{list-style:none;margin:0;padding:0}.nav-item{margin-bottom:4px}.nav-link{align-items:center;border-right:3px solid #0000;color:#495057;display:flex;padding:12px 20px;text-decoration:none;transition:all .2s ease}.nav-link:hover{background-color:#f8f9fa;color:maroon}.nav-link.active{background-color:#ffe6e6;border-right-color:maroon;color:maroon;font-weight:700}.nav-icon{fill:currentColor;height:20px;margin-right:12px;width:20px}.nav-section{border-top:1px solid #dee2e6;margin-top:32px;padding-top:16px}.nav-section-title{color:#6c757d;font-size:12px;font-weight:600;letter-spacing:.5px;padding:8px 20px;text-transform:uppercase}@media (max-width:768px){.layout-content{flex-direction:column}.navigation{order:1;padding:12px 0;width:100%}.main-content{order:2;padding:16px 0}.nav-menu{display:flex;gap:8px;overflow-x:auto;padding:0 16px}.nav-item{flex-shrink:0;margin-bottom:0}.nav-link{border-radius:20px;border-right:none;min-width:-webkit-fit-content;min-width:fit-content;padding:8px 16px;white-space:nowrap}.nav-link.active{background-color:maroon;color:#fff}.nav-section{display:none}.header-content{padding:12px 16px}.header-title{font-size:20px}.user-info{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.user-role{display:none}.dev-role-switcher{font-size:10px;gap:4px;padding:4px 8px}.dev-role-select{font-size:10px;padding:1px 4px}}.app-footer{background-color:#f8f9fa;border-top:1px solid #dee2e6;margin-top:auto;padding:16px 20px}.footer-content{align-items:center;display:flex;gap:16px;justify-content:center;margin:0 auto;max-width:1200px;text-align:center}.footer-text{color:#6c757d;font-size:12px;font-weight:400}.footer-version{color:maroon;cursor:pointer;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted;transition:color .2s}.footer-version:hover{color:#900;-webkit-text-decoration-style:solid;text-decoration-style:solid}.footer-logout-btn{display:none}@media (max-width:768px){.app-footer{padding:12px 16px}.footer-content{flex-direction:column;gap:12px}.footer-text{font-size:11px}.footer-logout-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;display:block;font-size:13px;min-height:36px;padding:8px 16px;transition:background-color .15s ease}.footer-logout-btn:active,.footer-logout-btn:hover{background-color:#c82333}}.backend-error-modal-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.backend-error-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:500px;overflow:auto;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:20px}.modal-header h2{color:#1f2937;font-size:20px;margin:0}.modal-close{border-radius:4px;font-size:32px;height:32px;line-height:1;transition:all .2s;width:32px}.modal-close:hover{background:#f3f4f6;color:#1f2937}.modal-body{padding:24px 20px}.error-icon{margin-bottom:16px;text-align:center}.error-message{color:#dc2626;font-size:16px;line-height:1.5;margin:0 0 20px;text-align:center}.error-suggestions{background:#f9fafb;border-radius:6px;padding:16px}.error-suggestions p{color:#374151;font-weight:600;margin:0 0 8px}.error-suggestions ul{color:#6b7280;margin:0;padding-left:20px}.error-suggestions li{margin:4px 0}.modal-footer{gap:12px;padding:20px}.btn-primary,.btn-secondary{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}.btn-primary{background:maroon}.btn-primary:hover{background:#900}@media (max-width:640px){.backend-error-modal{margin:10px;width:95%}.modal-footer{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%}}.tv-display{background:linear-gradient(135deg,maroon,#900);color:#fff;display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;height:100vh;overflow:hidden;width:100vw}.tv-display *{box-sizing:border-box}.tv-header{background:#0003;border-bottom:1px solid #fff3;height:50px;padding:6px 20px}.tv-header-content{height:100%;justify-content:space-between}.tv-brand,.tv-header-content{align-items:center;display:flex}.tv-brand{gap:10px}.tv-logo{height:30px;width:auto}.tv-title{color:#fff;font-size:1.5rem;font-weight:700;margin:0}.tv-title,.week-display{text-shadow:1px 1px 2px #00000080}.week-display{color:#ffffffe6;font-size:1.1rem;font-weight:600}.schedule-grid-container{flex:1 1;overflow:hidden;padding:15px}.schedule-grid{background:#fffffff2;border-radius:8px;box-shadow:0 4px 20px #0000004d;display:grid;grid-auto-rows:-webkit-min-content;grid-auto-rows:min-content;grid-template-columns:minmax(180px,280px) repeat(7,1fr);height:100%;overflow:hidden}.technician-header{padding:12px 20px}.date-header,.technician-header{border-bottom:1px solid #ffffff4d;border-right:1px solid #ffffff4d;font-size:.95rem;height:45px}.date-header{padding:6px 8px}.date-day{font-size:.75rem;margin-bottom:0}.technician-name{background:linear-gradient(135deg,#ffeee6,#fff5f0);border-bottom:1px solid #d4a574;border-right:1px solid #d4a574;color:maroon;font-size:.85rem;height:75px;overflow:hidden;padding:10px 12px}.technician-name .tech-info{font-size:.75rem;opacity:.9}.schedule-cell{align-items:flex-start;background:#fefefe;border-bottom:1px solid #d4a574;border-right:1px solid #d4a574;color:#4a4a4a;display:flex;height:75px;padding:8px 6px}.schedule-cell.weekend{background:linear-gradient(135deg,#ffeee6,#fff5f0)}.cell-content{-webkit-line-clamp:4;font-size:.8rem;-webkit-hyphens:auto;hyphens:auto;width:100%}.tv-footer{align-items:center;background:#00000026;border-top:1px solid #ffffff1a;display:flex;height:35px;justify-content:space-between;padding:3px 20px}.footer-left{display:flex;flex-direction:column;gap:2px}.refresh-indicator{align-items:center;display:flex}.last-updated,.refresh-indicator{font-size:.65rem;opacity:.7}.datetime-display{text-align:right}.current-time{font-size:1.1rem;font-weight:700;margin-bottom:1px;text-shadow:1px 1px 2px #00000080}.current-date{font-size:.8rem;opacity:.9}.refresh-dot{animation:pulse 2s infinite;background:#48bb78;border-radius:50%;height:8px;margin-right:8px;width:8px}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.tv-display.loading{align-items:center;justify-content:center}.loading-spinner{text-align:center}.spinner{border:4px solid #ffffff4d;border-left-color:#fff;height:60px;margin:0 auto 20px;width:60px}.loading-spinner p{font-size:1.5rem}.tv-display.error{align-items:center;background:linear-gradient(135deg,#e53e3e,#c53030);justify-content:center}.error-container{background:#0000004d;border:2px solid #fff3;border-radius:12px;padding:40px}.error-container h1{font-size:2.5rem;font-weight:600;margin:0 0 20px}.error-container p{font-size:1.2rem;margin:10px 0;opacity:.9}.tv-display *{-ms-overflow-style:none;scrollbar-width:none}.tv-display ::-webkit-scrollbar{display:none}.week-navigation{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;padding:1rem;position:relative}.nav-button{background-color:#fff;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.nav-button:hover:not(.disabled){background-color:#e9ecef;border-color:#adb5bd}.nav-button:active:not(.disabled){transform:translateY(1px)}.nav-button.disabled{cursor:not-allowed;opacity:.5}.current-week{align-items:center;display:flex;font-size:1.125rem;font-weight:600;gap:.5rem}.week-range{color:#212529}.current-indicator{color:#28a745;font-size:.875rem;font-weight:400}.nav-controls{display:flex;gap:.5rem}.date-picker-btn{background-color:#6c757d;border-color:#6c757d;color:#fff}.date-picker-btn:hover{background-color:#5a6268;border-color:#545b62}.today-btn{background-color:#007bff;border-color:#007bff;color:#fff}.today-btn:hover:not(.disabled){background-color:#0056b3;border-color:#004085}.today-btn.disabled{background-color:#6c757d;border-color:#6c757d}.date-picker-wrapper{align-items:center;background-color:#fff;border:1px solid #dee2e6;border-radius:4px;box-shadow:0 2px 4px #0000001a;display:flex;gap:.5rem;margin-top:.5rem;padding:.5rem;position:absolute;right:1rem;top:100%;z-index:1000}.date-picker{border:1px solid #ced4da;border-radius:4px;font-size:1rem;padding:.375rem .75rem}.close-picker{background:none;border:none;color:#6c757d;cursor:pointer;font-size:1.25rem;line-height:1;padding:.25rem}.close-picker:hover{color:#343a40}@media (max-width:768px){.week-navigation{flex-direction:column;gap:1rem}.current-week,.nav-controls{justify-content:center;width:100%}.current-week{margin-bottom:.5rem;order:-1}.date-picker-wrapper{right:50%;transform:translateX(50%)}}
/*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{height:1px;left:-100000px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{word-wrap:break-word;box-sizing:border-box;height:100%;line-height:1.42;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;margin:0;padding:0}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-increment:list-0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:"";display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:none}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{margin-bottom:5px;margin-top:5px;padding:5px 10px;white-space:pre-wrap}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;padding:2px 4px;width:24px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid #0000;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{margin-top:-9px;position:absolute;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item:before,.ql-snow .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item:before,.ql-snow .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;display:none;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.schedule-management{background:#f7fafc;margin:0 auto;max-width:100%;min-height:100vh;padding:20px}.management-header h1{color:#2d3748;font-size:2rem;font-weight:600;margin:0}.add-technician-btn,.history-btn,.manage-technicians-btn,.refresh-btn{border:none;border-radius:6px;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.history-btn{background:maroon;color:#fff}.history-btn:hover{background:#900}.manage-technicians-btn{background:#ed8936;color:#fff}.manage-technicians-btn:hover{background:#dd6b20}.add-technician-btn{background:maroon;color:#fff}.add-technician-btn:hover{background:#900}.date-header.weekend{background-color:#f8f9fa;color:#6c757d}.schedule-cell.weekend{background-color:#fafbfc}.date-header.today{background:linear-gradient(135deg,maroon,#600)!important;color:#fff!important;position:relative}.schedule-cell.today{background-color:#f8fffe}.date-header.today:after{color:#fff;content:"•";font-size:.8rem;font-weight:700;position:absolute;right:6px;top:4px}.date-header.weekend.today{background:linear-gradient(135deg,maroon,#600)!important;color:#fff!important}.management-grid{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:grid;grid-template-columns:minmax(180px,280px) repeat(7,1fr);overflow:hidden}.management-grid *{box-sizing:border-box}.technician-name{word-wrap:break-word;font-size:.9rem;line-height:1.3;padding:15px 12px;text-align:left}.technician-name p{line-height:1.3}.technician-name p+p{margin-top:3px}.schedule-cell{max-height:120px;position:relative}.cell-content{-webkit-line-clamp:5;cursor:pointer;font-size:.85rem;line-height:1.35;padding:10px 8px;transition:background-color .2s}.cell-content:hover{background-color:#edf2f7}.modal{max-width:400px}.form-group{margin-bottom:15px}.form-group label{margin-bottom:5px}.form-group input[type=color],.form-group input[type=text]{border:1px solid #e2e8f0;border-radius:4px;font-size:1rem;padding:8px 12px;width:100%}.form-group input[type=checkbox]{margin-right:8px}.modal-actions{margin-top:20px}.edit-modal{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;max-height:80vh;max-width:600px;padding:30px;width:90%}.edit-modal h2{color:#2d3748;font-size:1.5rem;margin:0 0 10px}.edit-modal-info{border-bottom:1px solid #e2e8f0;display:flex;gap:20px;margin-bottom:20px;padding-bottom:15px}.edit-modal-info span{color:#4a5568;font-size:.9rem}.edit-modal-info strong{color:#2d3748}.edit-modal-content{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.edit-textarea{border:2px solid #e2e8f0;border-radius:6px;flex:1 1;font-family:inherit;font-size:1rem;line-height:1.5;min-height:200px;padding:12px;resize:vertical;width:100%}.edit-textarea:focus{border-color:maroon;outline:none}.edit-quill{display:flex;flex:1 1;flex-direction:column}.edit-quill .ql-container{flex:1 1;font-family:inherit;font-size:1rem;min-height:150px}.edit-quill .ql-editor{line-height:1.5;max-height:300px;min-height:150px;overflow-y:auto;padding:12px}.edit-quill .ql-toolbar{border:solid #e2e8f0;border-radius:6px 6px 0 0;border-width:2px 2px 1px}.edit-quill .ql-container{border:2px solid #e2e8f0;border-radius:0 0 6px 6px;border-top:none}.edit-quill.ql-focused .ql-container,.edit-quill.ql-focused .ql-toolbar{border-color:maroon}.edit-quill .ql-toolbar .ql-formats button:hover{color:maroon}.edit-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.edit-modal-actions button{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;padding:10px 20px;transition:all .2s}.edit-save-btn{background:maroon;color:#fff}.edit-save-btn:hover{background:#900}.edit-cancel-btn{background:#e2e8f0;color:#4a5568}.edit-cancel-btn:hover{background:#cbd5e0}.access-denied,.auth-required,.error,.loading{align-items:center;display:flex;flex-direction:column;height:50vh;justify-content:center;text-align:center}.access-denied h2,.auth-required h2,.error h2{color:#e53e3e;margin-bottom:10px}@media (max-width:1400px){.management-grid{grid-template-columns:280px repeat(7,1fr)}.technician-name{font-size:.85rem;padding:12px 10px}.cell-content{font-size:.8rem;padding:8px 6px}}@media (max-width:1200px){.management-grid{grid-template-columns:240px repeat(7,1fr)}.technician-name{font-size:.8rem}.schedule-cell{max-height:100px;min-height:70px}.cell-content{-webkit-line-clamp:4;font-size:.75rem}}.schedule-view{background:#f7fafc;margin:0 auto;max-width:100%;min-height:100vh;padding:20px}.view-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.header-left h1{margin:0}.header-left p{font-size:1.1rem;margin:5px 0 0}.header-right{align-items:flex-end;display:flex;flex-direction:column;gap:10px;text-align:right}.header-right p{color:#4a5568;font-weight:500;margin:0}.refresh-btn{background:maroon;border:none;border-radius:6px;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.refresh-btn:hover{background:#900}.view-grid{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:grid;grid-template-columns:minmax(180px,280px) repeat(7,1fr);margin-bottom:20px;overflow:hidden}.view-grid *{box-sizing:border-box}.technician-header{align-items:center;padding:18px 24px}.date-header,.technician-header{background:linear-gradient(135deg,maroon,#600);border-bottom:1px solid #fff3;border-right:1px solid #fff3;box-sizing:border-box;color:#fff;display:flex;font-weight:600;justify-content:center}.date-header{flex-direction:column;padding:8px 12px;text-align:center}.date-header:nth-child(8){border-right:none}.date-day{font-size:.9rem;font-weight:500;margin-bottom:2px}.date-number{font-size:1.1rem;font-weight:700}.technician-name{background:#f7fafc;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;box-sizing:border-box;display:block;min-height:80px;padding:20px;text-align:center}.technician-name p+p{margin-top:4px}.technician-name.highlighted{color:#fff;font-weight:700;text-shadow:1px 1px 2px #0000004d}.schedule-cell{border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;box-sizing:border-box;max-height:160px;min-height:80px;overflow:hidden}.schedule-cell:nth-child(8n){border-right:none}.cell-content{word-wrap:break-word;-webkit-line-clamp:6;-webkit-box-orient:vertical;align-items:flex-start;color:#2d3748;display:flex;display:-webkit-box;font-size:.9rem;height:100%;line-height:1.4;overflow:hidden;overflow-wrap:break-word;padding:15px 10px;white-space:pre-wrap}.empty-cell{color:#a0aec0;font-style:italic}.view-footer{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:15px 20px;text-align:center}.footer-info p{color:#4a5568;font-size:.9rem;margin:0}.auth-required,.error,.loading,.no-data{align-items:center;display:flex;flex-direction:column;height:50vh;justify-content:center;text-align:center}.spinner{border-left-color:#667eea}.auth-required h2,.error h2,.no-data h2{color:#e53e3e;margin-bottom:10px}.auth-required h2,.no-data h2{color:#4a5568}.retry-btn{background:maroon;margin-top:15px}.retry-btn:hover{background:#900}@media (max-width:1200px){.view-grid{grid-template-columns:150px repeat(7,1fr)}.technician-name{font-size:.9rem;padding:15px 10px}.cell-content{font-size:.8rem;min-height:70px;padding:12px 8px}}@media (max-width:768px){.schedule-view{padding:10px}.view-header{flex-direction:column;gap:15px;text-align:center}.header-right{align-items:center}.view-header h1{font-size:1.5rem}.view-grid{font-size:.8rem;grid-template-columns:100px repeat(7,1fr)}.technician-name{font-size:.8rem;padding:10px 5px}.cell-content{font-size:.7rem;min-height:60px}.cell-content,.date-header{padding:8px 4px}.date-day{font-size:.7rem}.date-number{font-size:.9rem}}@media print{.refresh-btn,.view-footer,.view-header .header-right{display:none}.schedule-view{background:#fff;padding:0}.view-grid{border:1px solid #000;box-shadow:none}.grid-header,.technician-name.highlighted{background:#f0f0f0!important;color:#000!important}}.technician-history{background:#f7fafc;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.history-header{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:20px;text-align:center}.history-header h1{color:#2d3748;font-size:2rem;font-weight:600;margin:0 0 10px}.history-header p{color:#4a5568;font-size:1.1rem;margin:0}.technician-selector{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:20px}.technician-selector label{color:#2d3748;display:block;font-size:1.1rem;font-weight:600;margin-bottom:10px}.technician-dropdown{background:#fff;border:2px solid #e2e8f0;border-radius:6px;color:#2d3748;cursor:pointer;font-size:1rem;max-width:400px;padding:12px 16px;transition:border-color .2s;width:100%}.technician-dropdown:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a;outline:none}.technician-dropdown option{color:#2d3748;padding:10px}.error-message,.loading{text-align:center}.error-message,.loading,.loading-spinner{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px 20px}.loading-spinner{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.spinner{border-left-color:#4299e1;margin-bottom:15px}.loading-spinner p{color:#4a5568;font-size:1.1rem;margin:0}.error-message{background:#fff;border-left:4px solid #e53e3e;box-shadow:0 2px 4px #0000001a}.error-message p{color:#e53e3e;font-size:1.1rem;font-weight:500;margin:0 0 15px}.retry-btn{background:#4299e1;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:background-color .2s}.retry-btn:hover{background:#3182ce}.history-results{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.results-header{background:linear-gradient(135deg,#4a5568,#2d3748);color:#fff;padding:20px;text-align:center}.results-header h2{font-size:1.5rem;font-weight:600;margin:0 0 5px}.results-header p{color:#cbd5e0;font-size:.9rem;margin:0}.no-entries{padding:40px 20px;text-align:center}.no-entries p{color:#4a5568;font-size:1.1rem;font-style:italic;margin:0}.history-list{padding:0}.history-entry{border-bottom:1px solid #e2e8f0;display:flex;transition:background-color .2s}.history-entry:last-child{border-bottom:none}.history-entry:hover{background-color:#f7fafc}.entry-date{background:#f8f9fa;border-right:1px solid #e2e8f0;display:flex;flex:0 0 200px;flex-direction:column;justify-content:center;padding:20px;text-align:center}.date-main{color:#2d3748;font-size:.9rem;font-weight:600;margin-bottom:4px}.date-sub{color:#4a5568;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.entry-content{align-items:center;display:flex;flex:1 1;padding:20px}.content-text{word-wrap:break-word;color:#2d3748;font-size:1rem;line-height:1.5;overflow-wrap:break-word}.no-content{color:#a0aec0;font-style:italic}.pagination{background:#f8f9fa;border-top:1px solid #e2e8f0;gap:15px;padding:20px}.page-btn{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#4a5568;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s}.page-btn:hover:not(:disabled){background:#4299e1;border-color:#4299e1;color:#fff}.page-btn:disabled{cursor:not-allowed;opacity:.5}.page-info{color:#2d3748;font-weight:500}@media (max-width:768px){.technician-history{padding:10px}.history-header h1{font-size:1.5rem}.history-header p{font-size:1rem}.technician-selector{padding:15px}.technician-dropdown{font-size:.9rem;padding:10px 12px}.history-entry{flex-direction:column}.entry-date{border-bottom:1px solid #e2e8f0;border-right:none;flex:none}.entry-content,.entry-date{padding:15px}.date-main{font-size:.8rem}.date-sub{font-size:.7rem}.content-text{font-size:.9rem}.pagination{flex-direction:column;gap:10px}.page-btn{font-size:.9rem;padding:10px 20px}}@media (max-width:480px){.history-header{padding:15px}.history-header h1{font-size:1.3rem}.technician-selector{padding:12px}.results-header{padding:15px}.results-header h2{font-size:1.3rem}.entry-content,.entry-date{padding:12px}}.technician-management{background:#f7fafc;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.management-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.header-left h1{color:#2d3748;font-size:2rem;font-weight:600;margin:0 0 5px}.header-left p{color:#4a5568;font-size:1rem;margin:0}.header-actions{gap:10px}.add-btn,.refresh-btn{border:none;border-radius:6px;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.add-btn{background:#48bb78;color:#fff}.add-btn:hover{background:#38a169}.refresh-btn{background:#4299e1;color:#fff}.refresh-btn:hover{background:#3182ce}.error-banner{align-items:center;background:#fed7d7;border:1px solid #fc8181;border-radius:6px;color:#c53030;display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.error-banner p{font-weight:500;margin:0}.close-error{align-items:center;background:none;border:none;color:#c53030;cursor:pointer;display:flex;font-size:1.5rem;height:24px;justify-content:center;padding:0;width:24px}.close-error:hover{background:#c530301a;border-radius:50%}.technicians-list{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.list-header{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;padding:20px}.list-title h2{font-size:1.5rem;font-weight:600;margin:0 0 5px}.list-title p{font-size:.9rem;margin:0;opacity:.9}.empty-state p{color:#4a5568;font-size:1.1rem;font-style:italic;margin:0}.technicians-table{padding:0}.technicians-table .table-header{grid-gap:16px;background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;display:grid;font-size:.9rem;font-weight:600;gap:16px;grid-template-columns:40px 1fr 120px 140px;letter-spacing:.5px;padding:16px 20px;text-transform:uppercase}.header-cell{align-items:center;display:flex}.technician-row{grid-gap:16px;background:#fff;border-bottom:1px solid #e2e8f0;cursor:move;display:grid;gap:16px;grid-template-columns:40px 1fr 120px 140px;padding:16px 20px;transition:all .2s}.technician-row:hover{background:#f8f9fa;box-shadow:0 2px 4px #0000000d}.technician-row.highlighted{background:#f0fff4;border-left:4px solid #48bb78}.technician-row:last-child{border-bottom:none}.row-cell{align-items:center;display:flex}.drag-col{justify-content:center}.highlight-col,.name-col{justify-content:flex-start}.actions-col{justify-content:flex-end}.drag-handle{border-radius:4px;color:#a0aec0;cursor:move;font-size:1.2rem;padding:8px 4px;transition:all .2s}.drag-handle:hover{background:#a0aec033;color:#4a5568}.technician-name{color:#2d3748;font-size:1rem;font-weight:600}.technician-name p{line-height:1.4;margin:0}.technician-name p+p{margin-top:2px}.highlight-indicator{align-items:center;display:flex;gap:6px}.color-preview{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0000001a;height:14px;width:14px}.highlight-indicator span{color:#38a169;font-size:.8rem;font-weight:500}.no-highlight{color:#a0aec0;font-size:.8rem;font-style:italic}.technician-actions{display:flex;gap:6px}.delete-btn,.edit-btn{border:none;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:500;padding:4px 10px;transition:all .2s}.edit-btn{background:#edf2f7;color:#4a5568}.edit-btn:hover{background:#e2e8f0;color:#2d3748}.delete-btn{background:#fed7d7;color:#c53030}.delete-btn:hover{background:#feb2b2}.modal{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;max-height:90vh;max-width:500px;overflow-y:auto;padding:30px;width:90%}.modal h2{color:#2d3748;font-size:1.5rem;font-weight:600;margin:0 0 20px}.form-group{margin-bottom:20px}.form-group label{color:#4a5568;margin-bottom:6px}.form-group input[type=text]{border:2px solid #e2e8f0;border-radius:6px;font-size:1rem;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input[type=text]:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a;outline:none}.checkbox-group label{align-items:center;cursor:pointer;display:flex}.checkbox-group input[type=checkbox]{margin-right:8px;transform:scale(1.2)}.technician-name-quill{background:#fff;border:2px solid #e2e8f0;border-radius:6px;transition:border-color .2s}.technician-name-quill .ql-toolbar{background:#f8f9fa;border:none;border-bottom:1px solid #e2e8f0;border-radius:6px 6px 0 0;padding:8px 12px}.technician-name-quill .ql-container{border:none;border-radius:0 0 6px 6px;font-size:1rem}.technician-name-quill .ql-editor{line-height:1.4;max-height:80px;min-height:40px;overflow-y:auto;padding:10px 12px}.technician-name-quill .ql-editor.ql-blank:before{color:#9ca3af;font-style:italic;left:12px}.technician-name-quill:focus-within{border-color:maroon;box-shadow:0 0 0 3px #8000001a}.technician-name-quill .ql-toolbar .ql-formats button:hover{color:maroon}.color-input-group{align-items:center;display:flex;gap:10px}.color-input-group input[type=color]{border:2px solid #e2e8f0;border-radius:6px;cursor:pointer;height:40px;width:50px}.color-input-group input[type=text]{flex:1 1}.modal-actions{border-top:1px solid #e2e8f0;display:flex;gap:10px;justify-content:flex-end;margin-top:30px;padding-top:20px}.cancel-btn,.save-btn{border:none;border-radius:6px;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.cancel-btn{background:#edf2f7;color:#4a5568}.cancel-btn:hover{background:#e2e8f0}.save-btn{background:#48bb78;color:#fff}.save-btn:hover{background:#38a169}.access-denied,.auth-required,.loading{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;height:50vh;justify-content:center;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-left-color:#48bb78;border-radius:50%;height:40px;margin-bottom:20px;width:40px}.access-denied h2,.auth-required h2{color:#e53e3e;margin-bottom:10px}@media (max-width:1024px){.technician-row,.technicians-table .table-header{gap:12px;grid-template-columns:35px 1fr 100px 120px;padding:12px 16px}.technician-name{font-size:.9rem}.delete-btn,.edit-btn{font-size:.7rem;padding:3px 8px}}@media (max-width:768px){.technician-management{padding:10px}.management-header{flex-direction:column;gap:15px;text-align:center}.header-left h1{font-size:1.5rem}.technician-row,.technicians-table .table-header{font-size:.8rem;gap:8px;grid-template-columns:30px 1fr 80px 100px;padding:10px 12px}.technicians-table .table-header{font-size:.75rem}.technician-name{font-size:.85rem}.color-preview{height:12px;width:12px}.highlight-indicator span,.no-highlight{font-size:.7rem}.delete-btn,.edit-btn{font-size:.65rem;padding:2px 6px}.modal{margin:20px;padding:20px}.modal-actions{flex-direction:column}.cancel-btn,.save-btn{width:100%}}@media (max-width:480px){.management-header{padding:15px}.header-left h1{font-size:1.3rem}.technicians-table .table-header{display:none}.technician-row{border:1px solid #e2e8f0;border-radius:6px;display:flex;flex-direction:column;gap:8px;margin-bottom:8px;padding:12px}.technician-row.highlighted{border-left:4px solid #48bb78}.row-cell{justify-content:space-between;padding:4px 0}.drag-col{position:absolute;right:8px;top:8px}.name-col{border-bottom:1px solid #e2e8f0;font-size:1rem;font-weight:600;margin-bottom:4px;padding-bottom:8px}.highlight-col:before{color:#4a5568;content:"Highlighted: ";font-weight:500}.actions-col{border-top:1px solid #e2e8f0;justify-content:center;margin-top:4px;padding-top:8px}.color-input-group{align-items:stretch;flex-direction:column}.color-input-group input[type=color]{width:100%}}.container{margin:0 auto;max-width:1200px;padding:0 20px}.loading-container{justify-content:center;min-height:300px}.loading,.loading-container{align-items:center;display:flex}.loading{color:#6c757d;font-size:16px;gap:10px}.loading:before{animation:spin 1s linear infinite;border:2px solid #e9ecef;border-radius:50%;border-top-color:maroon;content:"";height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-container{padding:40px 20px;text-align:center}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;margin-bottom:20px;padding:12px 20px}.empty-state{color:#6c757d;padding:60px 20px;text-align:center}.empty-state .empty-icon{margin-bottom:20px}.empty-state .empty-icon svg{fill:#dee2e6;height:64px;width:64px}.empty-state h2{font-size:24px}.empty-state h2,.empty-state h3{color:#495057;margin-bottom:10px}.empty-state h3{font-size:20px}.empty-state p{font-size:16px;margin-bottom:20px}.btn{align-items:center;background:none;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;text-decoration:none;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-sm{font-size:12px;padding:6px 12px}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#545b62}.btn-success{background-color:#28a745;color:#fff}.btn-success:hover:not(:disabled){background-color:#1e7e34}.btn-warning{background-color:#ffc107;color:#212529}.btn-warning:hover:not(:disabled){background-color:#e0a800}.btn-danger{background-color:#dc3545}.btn-danger:hover:not(:disabled){background-color:#c82333}.btn-icon{fill:currentColor;height:16px;width:16px}.status-badge{border-radius:12px;font-size:12px;font-weight:500;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.badge-draft{background-color:#e9ecef;color:#495057}.badge-submitted{background-color:#fff3cd;color:#856404}.badge-complete{background-color:#d4edda;color:#155724}.clickable-status{cursor:pointer;transition:opacity .2s ease}.clickable-status:hover{opacity:.8}.type-badge{border-radius:10px;display:inline-block;font-size:11px;font-weight:600;margin-left:8px;padding:4px 10px;vertical-align:middle}.badge-time-off{background-color:#e3f2fd;border:1px solid #90caf9;color:#1976d2}.card{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000001a}.card-header{border-bottom:1px solid #dee2e6;padding:20px}.card-title{color:#212529;font-size:18px;font-weight:600;margin:0}.card-content{padding:20px}.page-header{align-items:flex-start;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.page-header h1{color:#212529;font-size:28px;font-weight:600;margin:0}.header-content{align-items:flex-start;display:flex;flex:1 1;justify-content:space-between}.header-actions{display:flex;gap:12px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.section-header h2{color:#212529;font-size:20px;font-weight:600;margin:0}.view-all-btn{color:#007bff;font-size:14px;font-weight:500;text-decoration:none}.view-all-btn:hover{text-decoration:underline}.form-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:24px;padding:24px}.form-section h2{color:#212529;font-size:18px;font-weight:600;margin:0 0 20px}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full-width{grid-column:1/-1}.form-group.narrow{flex:0 0 auto;max-width:180px;width:-webkit-fit-content;width:fit-content}.form-group.checkbox-group{align-items:center;flex-direction:row}.form-group.checkbox-group-stacked{display:flex;flex-direction:column;gap:6px;max-width:180px}.form-group.checkbox-group-stacked>label:first-child{color:#495057;font-size:14px;font-weight:500}.label-with-button{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:6px}.label-with-button label{margin-bottom:0}.form-group label{color:#495057;font-size:14px}.form-group input,.form-group select,.form-group textarea{background-color:#fff;border:1px solid #ced4da;border-radius:6px;font-size:14px;padding:10px 12px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.checkbox-label{align-items:center;cursor:pointer;display:flex;font-weight:400;gap:8px}.checkbox-text{color:#495057}.form-actions{border-top:1px solid #dee2e6;gap:12px;justify-content:flex-end;padding-top:24px}.form-actions,.pagination{align-items:center;display:flex}.pagination{gap:16px;justify-content:center;margin-top:30px;padding:20px 0}.pagination-info{color:#6c757d;font-size:14px}@media (max-width:768px){.container{padding:0 16px}.header-content,.page-header{align-items:stretch;flex-direction:column;gap:16px}.header-actions{justify-content:stretch}.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{justify-content:center}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h3{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;font-size:1.5rem;height:24px;justify-content:center;padding:0;width:24px}.modal-close:hover{color:#374151}.modal-body{padding:1.5rem}.modal-body p{color:#374151;margin:0 0 1rem}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1.5rem}.btn-danger{background-color:#dc2626;border:1px solid #dc2626;color:#fff}.btn-danger:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c}.btn-danger:disabled{background-color:#fca5a5;border-color:#fca5a5;cursor:not-allowed}.btn-info{background-color:#0891b2;border:1px solid #0891b2;color:#fff}.btn-info:hover:not(:disabled){background-color:#0e7490;border-color:#0e7490}.btn-info:disabled{background-color:#a5b4fc;border-color:#a5b4fc;cursor:not-allowed}.form-group{margin-bottom:1rem}.form-group label{color:#374151;display:block;font-weight:500;margin-bottom:.5rem}.form-control{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.form-control:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.status-description{background-color:#f3f4f6;border-radius:.375rem;margin-top:.5rem;padding:.5rem}.status-description small{color:#6b7280;font-style:italic}.input-with-button{align-items:center;display:flex;gap:.5rem}.input-with-button input{flex:1 1}.input-with-button button{flex-shrink:0;white-space:nowrap}.calculated-hours{align-items:center;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:.375rem;color:#495057;display:flex;font-weight:500;min-height:2.5rem;padding:.5rem}.clickable-input-wrapper{cursor:pointer;display:block;position:relative}.clickable-input-wrapper input[type=date],.clickable-input-wrapper input[type=time]{cursor:pointer;width:100%}.clickable-input-wrapper:hover{opacity:.9}.clickable-input-wrapper:hover input[type=date],.clickable-input-wrapper:hover input[type=time]{border-color:#007bff}.dropdown-button{display:inline-block;position:relative}.dropdown-button:hover .dropdown-menu{display:block}.dropdown-menu{background-color:initial;display:none;left:0;min-width:200px;padding-top:6px;position:absolute;top:calc(100% - 2px);z-index:1000}.dropdown-item{background-color:#fff;border:none;color:#212529;display:block;font-size:14px;font-weight:400;padding:10px 16px;position:relative;text-align:left;transition:background-color .2s ease;width:100%;z-index:1}.dropdown-item:first-child{border-left:1px solid #dee2e6;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-top-left-radius:6px;border-top-right-radius:6px;box-shadow:0 4px 12px #00000026}.dropdown-item:last-child{border-bottom:1px solid #dee2e6;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-left:1px solid #dee2e6;border-right:1px solid #dee2e6}.dropdown-item:not(:first-child):not(:last-child){border-left:1px solid #dee2e6;border-right:1px solid #dee2e6}.dropdown-item:hover:not(:disabled){background-color:#f8f9fa}.dropdown-item:disabled{color:#6c757d;cursor:not-allowed;opacity:.6}.dropdown-item:not(:last-child){border-bottom:1px solid #f1f3f5}.auto-save-indicator{align-items:center;display:inline-flex;flex-direction:row;font-size:14px;font-weight:500;gap:6px;height:auto;justify-content:flex-start;min-width:140px;padding:0 8px;text-align:left;white-space:nowrap}.auto-save-indicator svg{height:16px;width:16px}.auto-save-indicator.saving{color:#6c757d}.auto-save-indicator.saved{color:#28a745}.auto-save-indicator.error{color:#dc3545}.auto-save-indicator .spinner{animation:spin-autosave 1s linear infinite}@keyframes spin-autosave{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.login-container{align-items:center;background:linear-gradient(135deg,maroon,#900);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border:2px solid maroon;border-radius:12px;box-shadow:0 15px 35px #8000004d;max-width:400px;padding:40px;text-align:center;width:100%}.login-logo{height:80px;margin-bottom:20px;object-fit:contain;width:auto}.login-header h1{color:maroon;font-size:24px;font-weight:700;margin:0 0 10px}.login-header p{color:#666;font-size:14px;margin:0 0 30px}.login-content{margin-bottom:30px}.microsoft-btn{align-items:center;background-color:maroon;border:2px solid maroon;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;gap:12px;justify-content:center;padding:12px 20px;transition:all .2s ease;width:100%}.microsoft-btn:hover:not(:disabled){background-color:#900;border-color:#900;box-shadow:0 4px 12px #8000004d;transform:translateY(-1px)}.microsoft-btn:disabled{cursor:not-allowed;opacity:.6}.microsoft-icon{height:20px;width:20px}.login-footer{border-top:1px solid #dee2e6;padding-top:20px}.login-footer p{color:#6c757d;font-size:12px;margin:0}.dashboard{padding:0}.dashboard-header{margin-bottom:30px}.dashboard-header h1{color:#212529;font-size:32px;font-weight:600;margin:0 0 10px}.dashboard-header p{color:#6c757d;font-size:16px;margin:0}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:40px}.stat-card{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 2px 4px #0000001a;display:flex;gap:16px;padding:24px;position:relative;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.stat-card.urgent{border-left:4px solid #dc3545}.stat-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.stat-icon svg{fill:#fff;height:24px;width:24px}.stat-icon.hours{background-color:#007bff}.stat-icon.month{background-color:#28a745}.stat-icon.pending{background-color:#ffc107}.stat-icon.submitted{background-color:#17a2b8}.stat-icon.timesheets{background-color:#6f42c1}.stat-icon.users{background-color:#fd7e14}.stat-icon.average{background-color:#20c997}.stat-content h3{color:#212529;font-size:32px;font-weight:700;line-height:1;margin:0 0 4px}.stat-content p{color:#6c757d;font-size:14px;font-weight:500;margin:0}.stat-link{bottom:12px;color:#007bff;font-size:12px;font-weight:500;position:absolute;right:16px;text-decoration:none}.stat-link:hover{text-decoration:underline}.dashboard-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:2fr 1fr}.pending-approvals,.quick-actions,.recent-timesheets{background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:24px}.pending-approvals h2,.quick-actions h2,.recent-timesheets h2{color:#212529;font-size:20px;font-weight:600;margin:0 0 20px}.timesheets-list{display:flex;flex-direction:column;gap:12px}.timesheet-item{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;display:flex;gap:16px;padding:16px;transition:background-color .2s ease}.timesheet-item.clickable{cursor:pointer}.timesheet-item.clickable:hover{background:#e9ecef}.timesheet-item.clickable:active{background:#dee2e6}.timesheet-user{flex:1 1;gap:12px}.timesheet-user,.user-avatar{align-items:center;display:flex}.user-avatar{background-color:#007bff;border-radius:50%;color:#fff;font-size:16px;font-weight:600;height:40px;justify-content:center;width:40px}.user-info{display:flex;flex-direction:column;gap:2px}.user-info strong{color:#212529;font-size:14px}.timesheet-date{color:#6c757d;font-size:12px}.timesheet-details{align-items:center;display:flex;gap:12px}.timesheet-hours{color:#495057;font-size:14px;font-weight:500}.hours-comparison{font-size:13px}.hours-row{align-items:center;background-color:#f8f9fa;border-radius:4px;display:flex;gap:12px;padding:6px 10px}.hours-row.hours-mismatch{background-color:#fff3cd;border:1px solid #f39c12}.hours-item{align-items:center;display:flex;gap:4px}.hours-label{color:#6c757d;font-size:11px;font-weight:600;text-transform:uppercase}.hours-value{color:#212529;font-size:13px;font-weight:600}.hours-mismatch .hours-value{color:#856404}.warning-icon{flex-shrink:0;margin-left:4px}.timesheet-actions{display:flex;gap:8px}.action-buttons{display:flex;flex-direction:column;gap:12px}.action-btn{align-items:center;border-radius:8px;display:flex;font-weight:500;gap:12px;padding:16px;text-decoration:none;transition:all .2s ease}.action-btn svg{fill:currentColor;height:20px;width:20px}.action-btn.primary{background-color:#007bff;color:#fff}.action-btn.primary:hover{background-color:#0056b3}.action-btn.secondary{background-color:#f8f9fa;border:1px solid #dee2e6;color:#495057}.action-btn.secondary:hover{background-color:#e9ecef}.action-btn.accent{background-color:#28a745;color:#fff}.action-btn.accent:hover{background-color:#1e7e34}.timesheets-page{padding:0}.timesheets-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:30px}.timesheet-card{background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:20px;transition:transform .2s ease,box-shadow .2s ease}.timesheet-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.timesheet-card-header{align-items:center;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.timesheet-card-content{margin-bottom:16px}.timesheet-stat{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.timesheet-stat label{color:#6c757d;font-size:14px;font-weight:500}.timesheet-stat .stat-value{color:#212529;font-size:14px;font-weight:600}.timesheet-card-actions{display:flex;gap:8px}.timesheet-form-page{padding:0}.time-entries{display:flex;flex-direction:column;gap:20px}.time-entry{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:20px;position:relative}.time-entry-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.time-entry-grid .form-group.narrow{max-width:140px;min-width:120px}.remove-entry{align-items:center;display:flex;height:32px;justify-content:center;padding:0;position:absolute;right:12px;top:12px;width:32px}.remove-entry svg{height:16px;width:16px}.total-hours{border-top:1px solid #dee2e6;color:#212529;margin-top:20px;padding:20px 0;text-align:right}.empty-entries{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d;padding:40px 20px;text-align:center}.timesheet-detail-page{padding:0}.detail-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:30px}.detail-title{align-items:center;display:flex;gap:16px}.detail-title h2{color:#212529;font-size:24px;font-weight:600;margin:0}.approval-actions{display:flex;gap:12px}.timesheet-detail{background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:30px}.detail-grid{grid-gap:40px;display:grid;gap:40px;grid-template-columns:1fr 2fr;margin-bottom:30px}.detail-section h3{border-bottom:2px solid #007bff;color:#212529;font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:8px}.detail-info{display:flex;flex-direction:column;gap:16px}.info-item{align-items:center;border-bottom:1px solid #f8f9fa;display:flex;justify-content:space-between;padding:12px 0}.info-item label{color:#6c757d;font-size:14px;font-weight:500}.info-item span{color:#212529;font-size:14px;font-weight:600}.total-hours{color:#007bff;font-size:18px}.entries-list{display:flex;flex-direction:column;gap:16px}.entry-card{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:20px}.entry-header{border-bottom:1px solid #dee2e6;margin-bottom:16px;padding-bottom:12px}.entry-time{align-items:center;display:flex;gap:8px}.entry-time strong{color:#212529;font-size:16px}.entry-duration{color:#6c757d;font-size:14px}.entry-details{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.entry-description{grid-column:1/-1}.entry-field{display:flex;flex-direction:column;gap:4px}.entry-field label{color:#6c757d;font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.entry-field span{color:#212529;font-size:14px;font-weight:500}.detail-footer{border-top:1px solid #dee2e6;padding-top:20px}.timestamps{display:flex;gap:40px}.timestamp{display:flex;flex-direction:column;gap:4px}.timestamp label{color:#6c757d;font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.timestamp span{color:#495057;font-size:14px}.filters-section{background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 2px 4px #0000001a;margin-bottom:24px;padding:24px}.filters-grid{grid-gap:20px;align-items:end;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{color:#495057;font-size:14px;font-weight:500}.filter-group input,.filter-group select{background-color:#fff;border:1px solid #ced4da;border-radius:6px;font-size:14px;padding:10px 12px}.filter-actions{align-items:end;display:flex}.searchable-dropdown{position:relative}.searchable-dropdown input{width:100%}.dropdown-list{background:#fff;border:1px solid #ced4da;border-radius:0 0 6px 6px;border-top:none;box-shadow:0 4px 6px #0000001a;left:0;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.dropdown-item{border-bottom:1px solid #f8f9fa;cursor:pointer;padding:10px 12px;transition:background-color .15s ease}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background-color:#f8f9fa}.dropdown-item.selected{background-color:#e3f2fd;font-weight:600}.dropdown-item.disabled{color:#6c757d;cursor:default}.dropdown-item.disabled:hover{background-color:#fff}.dropdown-item-name{color:#212529;font-size:14px;font-weight:500}.dropdown-item-email{color:#6c757d;font-size:12px;margin-top:2px}.timesheets-table{background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.table-header{background-color:maroon;border-bottom:1px solid maroon;color:#fff;display:grid;font-size:14px;font-weight:600}.table-row{border-bottom:1px solid #f8f9fa;display:grid;transition:background-color .2s ease}.timesheets-page .table-header,.timesheets-page .table-row{grid-template-columns:1.5fr 1fr 1fr 1fr 1fr 1.5fr}.admin-timesheets-page .table-header,.admin-timesheets-page .table-row{grid-template-columns:2fr 1fr 2fr 1fr 2fr}.table-row:hover{background-color:#f8f9fa}.table-cell{padding:16px;white-space:nowrap}.employee-info,.table-cell{align-items:center;display:flex}.employee-info{gap:12px}.employee-avatar{align-items:center;background-color:#007bff;border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:600;height:32px;justify-content:center;width:32px}.employee-details{display:flex;flex-direction:column;gap:2px}.employee-details strong{color:#212529;font-size:14px}.employee-email{color:#6c757d;font-size:12px}.hours-display{color:#007bff;font-weight:600}.action-buttons{grid-gap:6px;display:grid;gap:6px;grid-template-columns:1fr 1fr;max-width:200px}.report-controls{background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 2px 4px #0000001a;margin-bottom:24px;padding:24px}.date-range-form{align-items:end;display:flex;gap:20px}.report-content{background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:30px}.report-header{border-bottom:2px solid #007bff;margin-bottom:30px;padding-bottom:20px;text-align:center}.report-header h2{color:#212529;font-size:24px;font-weight:600;margin:0 0 10px}.report-header p{color:#6c757d;font-size:16px;margin:0}.summary-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-stats,.user-stats-section{margin-bottom:40px}.user-stats-section h3{color:#212529;font-size:20px;font-weight:600;margin:0 0 20px}.user-stats-table .table-header,.user-stats-table .table-row{grid-template-columns:2fr 1fr 1.5fr 1fr 1fr}.timesheet-counts{display:flex;flex-direction:column;gap:2px}.submitted-count{color:#495057;font-size:14px}.pending-count{color:#ffc107;font-size:12px;font-weight:500}.user-status{align-items:center;display:flex}.status-indicator{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.status-indicator.success{background-color:#d4edda;color:#155724}.status-indicator.warning{background-color:#fff3cd;color:#856404}.status-breakdown-section{margin-bottom:40px}.status-breakdown-section h3{color:#212529;font-size:20px;font-weight:600;margin:0 0 20px}.status-breakdown{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.status-item{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:20px;text-align:center}.status-label{color:#6c757d;font-size:14px;font-weight:500;margin-bottom:8px}.status-value{color:#212529;font-size:24px;font-weight:700}@media (max-width:768px){.dashboard-content,.detail-grid,.stats-grid,.table-header,.table-row,.timesheets-grid{grid-template-columns:1fr}.table-header,.table-row{gap:8px}.table-cell{border-bottom:1px solid #f8f9fa;padding:8px 16px}.action-buttons,.date-range-form{flex-direction:column}.date-range-form{align-items:stretch}}.auto-resize-textarea{line-height:1.4;max-height:12rem;min-height:2.5rem;overflow-y:hidden;resize:none;transition:height .1s ease}.auto-resize-textarea:focus{overflow-y:auto}.second-add-button{border-top:1px solid #dee2e6;display:flex;justify-content:center;margin:20px 0;padding-top:20px}.second-add-button button{background-color:#28a745;border-color:#28a745}.second-add-button button:hover:not(:disabled){background-color:#1e7e34;border-color:#1e7e34}html{scroll-behavior:smooth}.time-off-form .form-header{margin-bottom:30px;text-align:center}.time-off-form .form-header h1{color:#1976d2;margin-bottom:8px}.time-off-form .date-display{color:#6c757d;font-size:14px;font-weight:500;margin-top:8px}.time-off-form .form-help{color:#6c757d;display:block;font-size:12px;margin-top:4px}.detail-section.full-width,.info-item.full-width{grid-column:1/-1}@media (max-width:768px){.header{padding:8px 0}.header-content{flex-direction:column;gap:12px;padding:0 12px}.header-brand{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.header-logo{height:40px;width:auto}.header-title{font-size:18px;line-height:1.2;margin:0}.dev-role-switcher{background:#fff3cd;border-radius:6px;flex-direction:column;font-size:12px;gap:6px;padding:8px;width:100%}.dev-role-select{font-size:12px;padding:4px 8px}.header-user{align-items:center;display:flex;gap:12px;justify-content:flex-start;width:100%}.user-info{flex:1 1;min-width:0}.user-name{display:none}.user-role{font-size:11px}.logout-btn{display:none}.dashboard{display:flex;flex-direction:column;padding:16px 12px}.dashboard-header{order:1}.dashboard-header h1{font-size:24px}.dashboard-header p{font-size:14px}.stats-grid{gap:12px;grid-template-columns:1fr;margin-bottom:24px;order:4}.stat-card{padding:16px}.stat-content h3{font-size:28px}.dashboard-content{display:flex;flex-direction:column;gap:20px;grid-template-columns:1fr;order:2}.quick-actions{order:1}.recent-timesheets{order:2}.pending-approvals{order:3}.action-btn{font-size:14px;padding:12px}.action-btn svg{height:18px;width:18px}}@media (min-width:769px){.table-row-header{display:contents}.table-row.mobile-clickable{cursor:default;pointer-events:none}.table-row.mobile-clickable .btn,.table-row.mobile-clickable a{pointer-events:auto}.filters-toggle,.section-toggle{display:none!important}.filters-content,.section-content{max-height:none!important;overflow:visible!important}}@media (max-width:768px){.timesheets-page{padding:16px 12px}.page-header{margin-bottom:20px;padding-bottom:16px}.page-header h1{font-size:22px}.filters-section{margin-bottom:16px;padding:16px}.filters-section.collapsed{padding:0}.filters-toggle{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:8px;color:#495057;cursor:pointer;display:flex;font-weight:500;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.filters-toggle svg{height:20px;transition:transform .3s ease;width:20px}.filters-toggle.open svg{transform:rotate(180deg)}.filters-content{max-height:0;overflow:hidden;transition:max-height .3s ease}.filters-content.open{max-height:500px}.filters-grid{gap:12px;grid-template-columns:1fr}.timesheets-table{border-radius:8px}.table-header{display:none}.table-row{background:#fff;border-bottom:1px solid #dee2e6;display:block;padding:12px}.table-row:last-child{border-bottom:none}.table-row.mobile-clickable{cursor:pointer;transition:background-color .15s ease}.table-row.mobile-clickable:active{background-color:#f8f9fa}.table-row-header{align-items:center;border-bottom:2px solid #f8f9fa;display:flex;justify-content:space-between;margin-bottom:8px;padding:0 0 8px}.table-cell[data-label=Date]{align-items:center;border:none;display:flex;flex:1 1;padding:0}.table-cell[data-label=Date]:before{display:none}.table-cell[data-label=Date] strong{color:#212529;font-size:15px;font-weight:600}.table-cell[data-label=Status]{align-items:center;border:none;display:flex;padding:0}.table-cell[data-label=Status]:before{display:none}.table-cell[data-label="Total Hours"]{align-items:center;border:none;color:#495057;display:flex;font-weight:600;padding:0;white-space:nowrap}.table-cell[data-label="Total Hours"]:before{display:none}.table-cell[data-label="Shift End"],.table-cell[data-label="Shift Start"]{display:none!important}.table-cell{align-items:center;border-bottom:1px solid #f8f9fa;display:flex;justify-content:space-between;padding:6px 0}.table-cell:last-child{border-bottom:none}.table-cell:before{color:#6c757d;content:attr(data-label);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.table-cell.action-buttons{display:none!important}.pagination{flex-wrap:wrap;gap:12px}.pagination .btn{flex:1 1;min-width:100px}.timesheet-detail-page{padding:16px 12px}.page-header .header-content{align-items:stretch;flex-direction:column}.page-header h1{font-size:20px;margin-bottom:12px}.header-actions{flex-direction:column;gap:8px}.header-actions .btn{justify-content:center;width:100%}.timesheet-detail{padding:16px}.detail-header{flex-direction:column;gap:16px;margin-bottom:20px}.detail-title{align-items:flex-start;flex-direction:column;gap:8px}.detail-title h2{font-size:20px}.status-actions,.status-actions .btn,.status-actions .dropdown-button{width:100%}.status-actions .dropdown-button .btn{justify-content:center;width:100%}.detail-grid{gap:24px;grid-template-columns:1fr}.detail-section h3{font-size:16px}.entry-card{padding:16px}.entry-details{gap:12px;grid-template-columns:1fr}.entry-field{border-bottom:1px solid #f8f9fa;padding-bottom:8px}.entry-field:last-child{border-bottom:none}.timestamps{flex-direction:column;gap:16px}.timesheet-form-page{padding:16px 12px}.timesheet-form-page .page-header{margin-bottom:16px;padding-bottom:12px}.page-header h1{font-size:22px;margin:0}.form-section.collapsible{margin-bottom:16px}.section-toggle{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;color:#212529;cursor:pointer;display:flex;font-weight:600;justify-content:space-between;margin-bottom:0;padding:8px 12px}.form-section.collapsible .form-group.narrow{align-items:center;display:flex!important;flex-direction:row!important;gap:12px}.form-section.collapsible .form-group.narrow label{display:inline-block!important;flex:0 0 auto;font-size:13px;margin-bottom:0!important;min-width:90px}.form-section.collapsible .form-group.narrow .calculated-hours,.form-section.collapsible .form-group.narrow .clickable-input-wrapper,.form-section.collapsible .form-group.narrow input{flex:1 1;min-width:0}.form-section.collapsible .label-with-button .btn{display:none}.form-section.collapsible .label-with-button{display:flex!important;flex:0 0 auto;margin-bottom:0!important;min-width:90px}.form-section.collapsible .label-with-button label{display:inline-block!important;margin-bottom:0!important;min-width:auto}.form-section.collapsible .checkbox-group-stacked{align-items:center;display:flex!important;gap:12px}.form-section.collapsible .checkbox-group-stacked>label:first-child{display:inline-block!important;flex:0 0 auto;font-size:13px;margin-bottom:0!important;min-width:90px}.form-section.collapsible .checkbox-group-stacked .checkbox-label{display:inline-block!important;flex:1 1;margin-bottom:0!important}.section-toggle svg{fill:#495057;height:20px;transition:transform .3s ease;width:20px}.section-toggle.collapsed svg{transform:rotate(-90deg)}.section-content{max-height:2000px;overflow:hidden;transition:max-height .3s ease,padding .3s ease,margin .3s ease}.section-content.collapsed{margin:0;max-height:0;padding:0}.form-grid{gap:16px;grid-template-columns:1fr}.form-section.collapsible .form-grid{display:flex!important;flex-direction:column;gap:12px}.form-group.narrow{max-width:100%;width:100%}.form-group label{font-size:13px}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:12px}.time-entries{gap:16px}.time-entry{padding:16px}.time-entry-grid{display:flex!important;flex-direction:column;gap:12px}.time-entry-grid .form-group.narrow{align-items:center;display:flex!important;flex-direction:row!important;gap:12px;max-width:100%}.time-entry-grid .form-group.narrow label{display:inline-block!important;flex:0 0 auto;font-size:13px;margin-bottom:0!important;min-width:80px}.time-entry-grid .form-group.narrow .clickable-input-wrapper,.time-entry-grid .form-group.narrow input{flex:1 1;min-width:0}.remove-entry{margin-top:12px;position:static;width:100%}.time-entry-mobile-header{align-items:center;border-bottom:2px solid #007bff;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:8px}.entry-number{color:#007bff;font-size:14px;font-weight:600}.section-header{align-items:center;flex-direction:row;justify-content:space-between;margin-bottom:16px}.section-header h2{font-size:18px}.section-header .btn{font-size:13px;padding:8px 12px}.form-actions{flex-direction:column;gap:10px;padding-top:20px}.form-actions .btn{justify-content:center;order:0;width:100%}.form-actions .btn-primary{order:-2}.form-actions .btn-secondary{order:-1}.form-actions .btn-outline{order:1}.form-actions .auto-save-indicator{justify-content:center;min-width:auto;order:0;width:100%}.total-hours{font-size:16px;margin-top:16px;padding:16px 0}.second-add-button{margin:16px 0;padding-top:16px}.second-add-button button{width:100%}.empty-entries{font-size:14px;padding:30px 16px}.calculated-hours{font-size:14px}.modal-content{margin:10px;max-width:none;width:95%}.modal-header h3{font-size:18px}.modal-body{padding:1.25rem}.modal-footer{flex-direction:column;gap:10px}.modal-footer .btn{justify-content:center;width:100%}.btn{font-size:14px;min-height:44px;padding:12px 16px}.btn-sm{font-size:13px;min-height:36px;padding:8px 12px}.status-badge{font-size:11px;padding:4px 10px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=text],input[type=time],select,textarea{font-size:16px!important}.hide-mobile{display:none!important}.show-mobile{display:block!important}.mobile-compact{padding:12px!important}.mobile-full-width{width:100%!important}}@media (min-width:768px) and (max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-content{grid-template-columns:2fr 1fr}.form-grid,.time-entry-grid{grid-template-columns:repeat(2,1fr)}}@media print{.filters-section,.form-actions,.header,.header-actions,.modal-overlay,.page-header .btn,.pagination{display:none!important}.form-section,.timesheet-detail{border:1px solid #000;box-shadow:none}body{background:#fff}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;color:#333;font-family:Verdana,Arial,sans-serif;line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{display:flex;flex-direction:column;min-height:100vh}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer;font-family:inherit}ol,ul{list-style:none}img{height:auto;max-width:100%}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid maroon;outline-offset:2px}