@import url(https://fonts.googleapis.com/css2?family=PT+Serif:wght@400;700&family=Kanit:wght@300;400;500&family=Caveat:wght@400;700&display=swap);*,:after,:before{font-family:Kanit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body,html{width:100%;overflow-y:visible!important;-webkit-overflow-scrolling:touch;background-color:hsla(93,39%,95%,.5);color:#333;line-height:1.6;font-size:16px;display:flex;flex-direction:column}.container,.container-fluid,.content-container,.dashboard-container,main{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem;flex:1;overflow-y:visible!important;max-height:none!important}h5{font-size:clamp(1rem,2.5vw,1.2rem);margin-bottom:1rem;letter-spacing:.2px}h3,h5{font-family:"PT Serif",serif;font-weight:500;color:#333}h3{font-size:clamp(1.2rem,4vw,2rem)!important;margin-bottom:1.2rem;letter-spacing:.3px}a{font-size:clamp(1rem,2.5vw,1.1rem);font-weight:400;color:#55832a;text-decoration:none;transition:color .2s ease,transform .2s ease}a:hover{color:#a72425;transform:scale(1.05)}.title_current_site{display:flex;align-items:center;gap:.5rem;font-family:"PT Serif",serif;font-size:clamp(1.1rem,3vw,1.5rem);font-weight:500;color:#55832a;background:#f0c0bd;padding:.5rem 1rem;border:1px solid #55832a;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.15);margin-bottom:1.5rem;transition:background .2s ease,box-shadow .2s ease}.title_current_site:hover{background:#f3f8ef;box-shadow:0 3px 10px rgba(0,0,0,.12)}.title_current_site i{font-size:clamp(1.1rem,3vw,1.5rem);color:#55832a;transition:transform .2s ease}.title_current_site i:hover{transform:scale(1.3)}#info-icon{cursor:pointer;font-size:clamp(1rem,3vw,1.3rem);color:#55832a;transition:color .2s ease}#info-icon:hover{color:#fff}.modal-dialog{margin:10vh auto;width:95%;max-width:600px;max-height:80vh;overflow-y:auto;border-radius:8px;box-shadow:0 5px 15px rgba(0,0,0,.2)}@media (max-width:576px){.modal-dialog{margin:5vh auto;width:95%;max-height:90vh}}@media (min-width:992px){.modal-dialog{margin:15vh auto;max-width:800px}}.modal-container{border-radius:3px;box-shadow:0 3px 15px rgba(0,0,0,.15);width:95%;max-width:32rem;margin:1rem;max-height:90vh;overflow-y:auto}.modal-footer,.modal-header{background-color:#f8f9fa;padding:clamp(.75rem,3vw,1.25rem);font-size:clamp(1rem,2.5vw,1.2rem);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.modal-body{padding:clamp(.75rem,3vw,1.25rem);font-size:clamp(.9rem,2.5vw,1rem)}@media (max-width:480px){.modal-container{width:98%;margin:.5rem;max-height:85vh}.modal-body,.modal-footer,.modal-header{padding:.75rem}.modal-footer{flex-direction:column}.modal-footer .btn,.modal-footer button{width:100%;margin-bottom:.5rem;margin-left:0!important;margin-right:0!important}}.loading-overlay{background:hsla(0,0%,100%,.8)}.spinner{border:clamp(.5rem,3vw,1rem) solid rgba(0,0,0,.1);border-top:clamp(.5rem,3vw,1rem) solid #55832a;width:clamp(2rem,15vw,4rem);height:clamp(2rem,15vw,4rem)}.btn-danger,.btn-dark,.btn-info,.btn-light,.btn-primary,.btn-secondary,.btn-success,.btn-warning,.button{display:inline-block;padding:clamp(.75rem,2.5vw,1rem) clamp(1rem,4vw,1.5rem);font-size:clamp(1rem,2.5vw,1.1rem);font-weight:500;letter-spacing:.2px;color:#fff!important;background:#55832a;border:1px solid #55832a!important;border-radius:3px;box-shadow:0 2px 6px rgba(0,0,0,.15);text-decoration:none;text-align:center;cursor:pointer;transition:all .2s ease;margin-bottom:.25rem}.button-secondary{background:#f5f5f5;color:#333!important;border-color:#ced4da!important}.btn-primary:hover,.btn-secondary:hover,.button:hover{background:#61942f;box-shadow:0 2px 8px rgba(0,0,0,.15)}.btn-primary:disabled,.button:disabled{background-color:#e0e0e0!important;color:#777!important;border-color:#d5d5d5!important;box-shadow:none!important;cursor:not-allowed}.input-field{display:block;font-size:clamp(1rem,3vw,1.1rem);font-weight:400;line-height:1.5;color:#333;background-color:#f9f9f9;border:1px solid #ced4da;border-radius:3px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.input-field:focus{border-color:transparent;box-shadow:0 0 0 .25rem rgba(85,131,42,.25);outline:none}.alert{display:flex;justify-content:center;text-align:center;margin:0 auto 1rem;padding:clamp(.75rem,2.5vw,1rem);font-size:clamp(1rem,3vw,1.1rem);font-weight:500;border-radius:3px;transition:background-color .3s ease}.alert-success{background-color:#55832a;color:#fff}.content-container{padding:0 1rem;font-size:clamp(1rem,2.5vw,1.1rem);margin-top:1rem;overflow-y:visible}.custom-container{position:relative;background-color:#fff;padding:1.5rem;max-width:calc(100% - 1rem);margin:1rem auto;border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.08);font-size:clamp(.9rem,2.5vw,1rem);line-height:1.5}.custom-container:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:#55832a;border-radius:3px 0 0 3px}.section-heading{font-size:clamp(1.2rem,3vw,1.6rem);font-weight:500;color:#333;margin:1rem 0 .8rem}.table-container{overflow-x:auto;margin-top:1rem}.table{background-color:#fff;border:1px solid #dee2e6;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.1)}.table td,.table th{padding:.8rem;font-size:clamp(1rem,2.5vw,1.1rem);text-align:center;border:1px solid #dee2e6}.table th{background-color:#f5f5f5;font-weight:600}.calendar-container{margin:0 auto;max-width:1200px}.day-label,.day-label-today{font-family:"PT Serif",serif;font-size:clamp(1rem,2.5vw,1.1rem);font-weight:500;margin-bottom:.5rem;color:#333}.event-card{background-color:#fff;padding:1rem;margin-bottom:1rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.1);border-left:.25rem solid #55832a;font-size:clamp(.9rem,2.5vw,1rem);line-height:1.5}.event-card-today{background-color:#ffd42f}.event-title,.event-title-today{font-family:"PT Serif",serif;font-size:clamp(1.1rem,3vw,1.3rem);font-weight:500;margin-bottom:.5rem}.event-message{font-size:clamp(.9rem,2.5vw,1rem);color:#555}.greeting-text{font-family:"PT Serif",serif;font-size:clamp(1.4rem,4vw,1.8rem);font-weight:500;color:#55832a;margin:1rem 0}.badge{display:inline-block;padding:.5rem .75rem;font-size:clamp(.75rem,2.5vw,.9rem);border-radius:4px;line-height:1;letter-spacing:.2px}.badge-green{background-color:#e1f0d3;color:#55832a}.badge-blue{background-color:#cfe2ff;color:#0d6efd}.badge-red{background-color:#f8d7da;color:#a72425}.badge-yellow{background-color:#fff3cd;color:#664d03}.legend{display:flex;gap:1rem;margin-bottom:.8rem}.legend-item{display:flex;align-items:center;font-size:clamp(.9rem,2.5vw,1rem)}.legend-color{width:1rem;height:1rem;margin-right:.5rem;border-radius:3px}.button-container{margin:1.5rem 0}.border-dashed{border-style:dashed}@media (max-width:768px){.container,main{padding:.5rem}.input-field{padding:.75rem}body{overflow-y:auto!important;height:auto;min-height:100%}.card-container{grid-template-columns:1fr}.modal-container{margin:.5rem}}.d-flex{flex-wrap:wrap}.centered-container{display:flex;justify-content:center;align-items:center;width:100%}body,html{min-height:100vh;min-height:100dvh}body{overflow-x:hidden;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}canvas,img,svg,video{max-width:100%;height:auto}.btn,.button,[role=button],a,button{-webkit-tap-highlight-color:rgba(85,131,42,.15)}@media (hover:none) and (pointer:coarse){.btn,.button,.nav-links a,a.btn,a.button,button{min-height:44px}.input-field,input,select,textarea{font-size:16px}}.content-container,.modal-body,.modal-container,.table-container{-webkit-overflow-scrolling:touch}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow:hidden;font-family:Arial,sans-serif}.login-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:1rem}.input-field{min-height:3rem;border:1px solid #ccc}.alert,.input-field{width:100%;padding:1rem;font-size:1rem;border-radius:.25rem;margin-bottom:1rem}.alert-danger{color:#a72425;background-color:#f8d7da;border:1px solid #f5c6cb}.alert-warning{color:#664d03;background-color:#fff3cd;border:1px solid #ffeeba}.button-secondary{display:inline-block;width:100%;padding:.75rem;background-color:#f5f5f5;color:#333;font-size:1rem;font-weight:500;letter-spacing:.02em;border:none;border-radius:.25rem;text-align:center;margin-top:.5rem}.gap-3{display:flex;flex-direction:column;gap:1rem;width:100%}@media (max-width:768px){.login-container{padding:2vw}.input-field{padding:2vw;min-height:4vw;font-size:4vw}.alert,.button-secondary{padding:2vw;font-size:4vw;margin-bottom:2vw}.gap-3{gap:2vw}}@media (max-width:480px){.login-container{padding:3vw}.input-field{padding:3vw;min-height:5vw;font-size:5vw}.alert,.button-secondary{padding:3vw;font-size:5vw;margin-bottom:3vw}.gap-3{gap:3vw}}.login-logo{max-width:150px;max-height:100px}.login-eye-icon{font-size:1.2rem;color:#000}.login-footer{font-size:.7em;color:#4a4a4a;border-top:1px solid #ddd}.spinner-border-sm{width:1rem;height:1rem}.input-field:disabled{background-color:#f8f9fa;opacity:.7}.navbar{width:100%;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08);position:relative;z-index:1000}.nav-container{max-width:1200px;margin:0 auto;padding:0 1rem;position:relative}.nav-container,.nav-links{display:flex;justify-content:center;align-items:center}.nav-links{list-style:none;padding:0;margin:0;gap:.25rem}.nav-links li{margin:0}.nav-links a{display:flex;align-items:center;gap:.5rem;padding:.875rem .75rem;color:#495057;font-weight:500;font-size:.9rem;text-decoration:none;transition:color .2s ease,background-color .2s ease;border-radius:6px;white-space:nowrap}.nav-links a:hover{color:#212529;background-color:#f8f9fa}.nav-links a.active{color:#212529;background-color:#f0f1f2;font-weight:600;position:relative}.nav-links a.active:after{content:"";position:absolute;bottom:0;left:.75rem;right:.75rem;height:2px;background-color:#495057;border-radius:1px}.nav-links a.active .nav-icon{opacity:1}.nav-icon{flex-shrink:0;opacity:.7;transition:opacity .2s ease}.nav-links a:hover .nav-icon{opacity:1}.nav-logout{margin-left:.5rem;padding-left:.5rem;border-left:1px solid #e9ecef}.nav-logout a:hover{color:#dc3545}.mobile-nav-toggle{display:none;color:#495057;cursor:pointer;padding:.75rem 0;z-index:1002;line-height:0}.nav-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.4);z-index:999;opacity:0;transition:opacity .3s ease}.nav-overlay.active{display:block;opacity:1}@media (max-width:768px){.nav-container{justify-content:flex-start;padding:0 1rem}.mobile-nav-toggle{display:flex;align-items:center}.nav-links{position:fixed;top:0;right:-100%;height:100vh;height:100dvh;width:280px;max-width:80vw;flex-direction:column;align-items:stretch;background-color:#fff;box-shadow:-4px 0 16px rgba(0,0,0,.1);gap:0;padding:4.5rem 0 1rem 0;transition:right .3s ease;z-index:1001;overflow-y:auto}.nav-links.active{right:0}.nav-links li{width:100%;border-bottom:1px solid #f1f3f4}.nav-links a{padding:1rem 1.25rem;font-size:.95rem;border-radius:0;gap:.75rem}.nav-links a:hover{background-color:#f8f9fa}.nav-links a.active{background-color:#f0f1f2;border-radius:0}.nav-links a.active:after{top:0;bottom:0;left:0;right:auto;width:3px;height:auto;border-radius:0}.nav-icon{width:22px;height:22px;opacity:.8}.nav-logout{margin-left:0;padding-left:0;border-left:none;margin-top:auto;border-top:1px solid #e9ecef;border-bottom:none!important}.nav-logout a{color:#dc3545}}@media (max-width:480px){.nav-links{width:260px}.nav-links a{padding:.9rem 1rem;font-size:.9rem}}:root{--primary-color:#55832a;--primary-hover:#4c6237;--secondary-color:#6c757d;--warning-color:#e6ac00;--warning-bg:#fff8e1;--warning-text:#6d4c00;--light-bg:#f8f9fa;--border-color:#e9ecef;--shadow-sm:0 2px 4px rgba(0,0,0,.05);--shadow-md:0 2px 8px rgba(0,0,0,.1);--shadow-lg:0 4px 12px rgba(0,0,0,.15);--border-radius:0.5rem;--transition:all 0.3s ease}*{box-sizing:border-box}.dynamic-text{font-family:"PT Serif",serif;font-size:clamp(1rem,4vw,1.4rem);font-weight:500;color:#333;text-align:center}.greeting-text{text-align:center;margin:.75rem 0 0;font-size:clamp(1.05rem,4vw,1.25rem);color:#6c757d;font-weight:400;letter-spacing:.2px}.greeting-text p{margin:0;line-height:1.4}.section-heading{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(.5rem,2vw,1rem);margin-bottom:clamp(1.5rem,5vw,2rem);font-family:"PT Serif",serif;font-size:clamp(1.6rem,6vw,2.2rem);font-weight:600;color:#2c3e50;letter-spacing:.3px;text-align:center;width:100%;padding:clamp(1rem,3vw,1.5rem);background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);border-left:4px solid var(--primary-color)}.section-heading i{color:var(--primary-color);font-size:clamp(1.4rem,5vw,1.8rem);margin-right:clamp(.75rem,3vw,1rem)}.current-date{font-size:clamp(1rem,4vw,1.4rem);font-weight:500;color:var(--primary-color);margin-left:auto;padding:clamp(.5rem,2vw,.75rem) clamp(.75rem,3vw,1rem);background:rgba(74,107,42,.1);border-radius:clamp(.25rem,1vw,.375rem);border:1px solid rgba(74,107,42,.2)}.dashboard-container{max-width:1200px;margin:0 auto;padding:clamp(1rem,5vw,2rem)}.content-container{max-width:100%;margin:0 auto;padding:clamp(.5rem,2vw,1rem)}.card-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:clamp(1rem,3vw,1.5rem);margin-bottom:clamp(1rem,4vw,2rem)}.schedule-card{border-radius:var(--border-radius);box-shadow:var(--shadow-md);overflow:hidden;background-color:#fff;transition:var(--transition);border:1px solid var(--border-color)}.schedule-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card-header{padding:clamp(1rem,3vw,1.25rem);background-color:var(--light-bg);border-bottom:1px solid var(--border-color);justify-content:space-between;flex-wrap:wrap}.card-header,.card-title{display:flex;align-items:center;gap:.5rem}.card-title{margin:0;font-size:clamp(1rem,3vw,1.1rem);font-weight:600;flex:1;min-width:0}.card-title img{width:clamp(30px,8vw,40px);height:clamp(30px,8vw,40px);flex-shrink:0}.card-body{padding:clamp(1rem,3vw,1.25rem)}.card-info{display:flex;flex-direction:column;gap:clamp(.75rem,3vw,1rem)}.info-item{display:flex;align-items:flex-start;gap:clamp(.5rem,2vw,.75rem);font-size:clamp(.9rem,3vw,1rem);line-height:1.4}.info-item i{color:var(--secondary-color);width:clamp(16px,4vw,20px);text-align:center;flex-shrink:0;margin-top:.1em}.info-item span{flex:1;word-break:break-word}.no-data-card{grid-column:1/-1;padding:clamp(2rem,8vw,3rem);background-color:var(--light-bg);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);text-align:center;color:var(--secondary-color)}.badge-bg-info{background-color:var(--primary-color);color:#fff;padding:clamp(.25rem,1vw,.5rem) clamp(.5rem,2vw,.75rem);border-radius:clamp(.25rem,1vw,.375rem);font-size:clamp(.75rem,2.5vw,.875rem);font-weight:500;white-space:nowrap}.deviation-card{background:linear-gradient(135deg,var(--warning-bg) 0,#ffeaa7 100%);border:1px solid var(--warning-color);border-radius:var(--border-radius);margin:clamp(1rem,3vw,1.25rem) 0;overflow:hidden;box-shadow:0 2px 4px rgba(255,193,7,.2)}.deviation-header{background-color:var(--warning-color);color:var(--warning-text);padding:clamp(.6rem,2vw,.75rem) clamp(.75rem,3vw,1rem);display:flex;align-items:center;gap:clamp(.5rem,2vw,.75rem);font-weight:600;font-size:clamp(.85rem,3vw,.9rem)}.deviation-header i{font-size:1rem;flex-shrink:0}.deviation-title{font-weight:600}.deviation-content{padding:clamp(.75rem,3vw,1rem);display:flex;flex-direction:column;gap:clamp(.5rem,2vw,.75rem)}.deviation-comment,.deviation-time{display:flex;align-items:flex-start;gap:clamp(.5rem,2vw,.75rem);color:var(--warning-text);font-weight:500;font-size:clamp(.85rem,3vw,.9rem);line-height:1.4}.deviation-comment i,.deviation-time i{color:var(--warning-text);width:clamp(14px,4vw,16px);text-align:center;flex-shrink:0;margin-top:.1em}.deviation-comment span,.deviation-time span{flex:1;word-break:break-word}.btn.button,.button{background:var(--primary-color);color:#fff;border:1px solid var(--primary-color);padding:clamp(.75rem,3vw,1rem) clamp(1rem,4vw,1.5rem);font-size:clamp(.9rem,3vw,1rem);font-weight:500;border-radius:var(--border-radius);transition:var(--transition);text-align:center;cursor:pointer;min-height:44px;text-decoration:none;display:inline-block;box-sizing:border-box}.btn.button:focus,.btn.button:hover,.button:focus,.button:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn.button-secondary,.button-secondary{background:var(--primary-color);color:#fff;border:1px solid var(--primary-color)}.btn.button-secondary:focus,.btn.button-secondary:hover,.button-secondary:focus,.button-secondary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}.fixed-bottom-button{position:fixed;bottom:clamp(1rem,3vw,1.5rem);left:clamp(1rem,3vw,1.5rem);right:clamp(1rem,3vw,1.5rem);width:auto;max-width:clamp(20rem,80vw,30rem);margin:0 auto;padding:clamp(1.5rem,5vw,2rem);font-size:clamp(1rem,4vw,1.2rem);font-weight:600;letter-spacing:.2px;background:#e9ecef;color:#495057;border:1px solid #dee2e6;border-radius:var(--border-radius);box-shadow:0 4px 20px rgba(0,0,0,.15);text-align:center;z-index:1000;transition:all .4s ease;cursor:pointer;min-height:80px;display:flex;align-items:center;justify-content:center;gap:.5rem;opacity:.95}.fixed-bottom-button:focus,.fixed-bottom-button:hover{background:#dee2e6;color:#343a40;box-shadow:0 6px 25px rgba(0,0,0,.2);transform:translateY(-3px);opacity:1}.fixed-bottom-button:active{transform:translateY(-1px);box-shadow:0 4px 15px rgba(0,0,0,.15);opacity:1}.fixed-bottom-button i{font-size:1.2em;color:#495057}.fixed-bottom-button:focus i,.fixed-bottom-button:hover i{color:#343a40}.fixed-bottom-button:not(:hover):not(:focus){opacity:.9}.fixed-bottom-button.scrolling{opacity:0;pointer-events:none;transform:translateY(20px)}.fixed-bottom-button.scrolling:focus,.fixed-bottom-button.scrolling:hover{opacity:.3;pointer-events:auto;transform:translateY(-2px)}.card-actions{display:flex;gap:clamp(.5rem,2vw,.75rem);align-items:stretch;margin-top:clamp(.75rem,3vw,1rem);flex-wrap:wrap}.card-action-btn{flex:1;min-width:120px;white-space:nowrap;padding:clamp(.6rem,2vw,.75rem) clamp(.75rem,3vw,1rem);font-size:clamp(.8rem,2.5vw,.875rem);border-radius:clamp(.25rem,1vw,.375rem);background:#f8f9fa!important;color:#343a40!important;border:1px solid #dee2e6!important;transition:var(--transition);text-align:center;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:center;text-decoration:none;opacity:.95;box-shadow:0 2px 4px rgba(0,0,0,.08)}.card-action-btn:focus,.card-action-btn:hover{background:#e9ecef!important;border-color:#adb5bd!important;color:#212529!important;transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.12);opacity:1}.card-action-btn i{margin-right:clamp(.25rem,1vw,.5rem);font-size:.9em;color:#6c757d!important}.card-action-btn:focus i,.card-action-btn:hover i{color:#495057!important}.btn-info.card-action-btn,.card-action-btn.btn-info{background:#f8f9fa!important;border-color:#dee2e6!important;color:#343a40!important;opacity:.95}.btn-info.card-action-btn:focus,.btn-info.card-action-btn:hover,.card-action-btn.btn-info:focus,.card-action-btn.btn-info:hover{background:#e9ecef!important;border-color:#adb5bd!important;color:#212529!important;opacity:1}.btn-info.card-action-btn i,.card-action-btn.btn-info i{color:#6c757d!important}.btn-info.card-action-btn:focus i,.btn-info.card-action-btn:hover i,.card-action-btn.btn-info:focus i,.card-action-btn.btn-info:hover i{color:#495057!important}.absence-buttons-container{display:flex;justify-content:center;align-items:stretch;gap:clamp(1rem,3vw,1.5rem);margin:clamp(1rem,3vw,1.25rem) 0;flex-wrap:wrap;padding:0 clamp(1rem,3vw,2rem)}.absence-buttons-container .btn,.absence-buttons-container .button{flex:1;max-width:250px;min-width:200px;background:var(--primary-color);color:#fff;border:1px solid var(--primary-color);padding:clamp(1rem,3vw,1.25rem);font-size:clamp(.9rem,3vw,1rem);font-weight:500;text-align:center;white-space:nowrap}.absence-buttons-container .btn:hover,.absence-buttons-container .button:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.button-container{display:flex;justify-content:center;align-items:center;width:100%;margin:clamp(1rem,4vw,2rem) 0 80px 0;padding:0 clamp(1rem,3vw,2rem)}.summary-section{background:linear-gradient(135deg,#f0f8ff,#e6f3ff);border-radius:var(--border-radius);padding:clamp(1rem,4vw,1.5rem);margin:clamp(1rem,4vw,2rem) 0;box-shadow:var(--shadow-sm);border:1px solid #cce7ff}.summary-section p{margin:0;font-size:clamp(1rem,3vw,1.1rem);color:#333}.summary-section b{color:var(--primary-color);font-weight:600}.processing-text{text-align:center;margin:clamp(1rem,4vw,2rem) 0;padding:clamp(1rem,4vw,1.5rem);font-size:clamp(1rem,3vw,1.1rem);color:var(--primary-color);background:rgba(85,131,42,.1);border-radius:var(--border-radius)}.modal-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center;z-index:2000;padding:clamp(1rem,5vw,2rem);overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-container{background-color:#fff;border-radius:var(--border-radius);width:100%;max-width:clamp(20rem,90vw,35rem);max-height:95vh;display:flex;flex-direction:column;box-shadow:0 10px 40px rgba(0,0,0,.3);margin:auto;position:relative}.modal-lg{max-width:clamp(25rem,95vw,50rem)}.modal-lg .modal-body h6{text-align:center;margin:clamp(1rem,4vw,1.5rem) 0 clamp(.75rem,3vw,1rem) 0;font-size:clamp(1rem,3vw,1.1rem);font-weight:600;color:var(--primary-color);padding:clamp(.5rem,2vw,.75rem);background:rgba(74,107,42,.08);border-radius:var(--border-radius);border:1px solid rgba(74,107,42,.15)}.modal-header,.modal-lg .modal-body h6 strong{font-weight:600}.modal-header{border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;font-size:clamp(1.1rem,4vw,1.3rem);background:var(--light-bg);border-radius:var(--border-radius) var(--border-radius) 0 0}.modal-body,.modal-header{padding:clamp(1rem,4vw,1.5rem)}.modal-body{overflow-y:auto;flex:1;font-size:clamp(.9rem,3vw,1rem);line-height:1.5}.modal-footer{padding:clamp(1rem,4vw,1.5rem);border-top:1px solid var(--border-color);gap:clamp(.75rem,3vw,1rem);flex-wrap:wrap;background:var(--light-bg);border-radius:0 0 var(--border-radius) var(--border-radius)}.btn-close,.modal-footer{display:flex;align-items:center;justify-content:center}.btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.5rem;color:var(--secondary-color);border-radius:50%;transition:var(--transition);width:40px;height:40px}.btn-close:hover{background:rgba(0,0,0,.1);color:#333}.btn-close:before{content:"×";font-weight:700}.form-control,.input-field{width:100%;max-width:100%;padding:clamp(.75rem,3vw,1rem);font-size:clamp(.9rem,3vw,1rem);border:1px solid var(--border-color);border-radius:clamp(.25rem,1vw,.375rem);transition:var(--transition);min-height:44px;box-sizing:border-box}.form-control:focus,.input-field:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(85,131,42,.2)}textarea.form-control,textarea.input-field{resize:vertical;min-height:80px;line-height:1.4;width:100%;max-width:100%}.form-check{display:flex;align-items:center;gap:.75rem;margin:1rem 0}.form-check-input{width:20px;height:20px}.form-check-label{cursor:pointer}.form-check-label,label{font-size:clamp(.9rem,3vw,1rem)}label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.loading-overlay{position:fixed;inset:0;background:hsla(0,0%,100%,.9);display:flex;justify-content:center;align-items:center;z-index:9999}.spinner{border:clamp(.25rem,2vw,.5rem) solid rgba(0,0,0,.1);border-top:clamp(.25rem,2vw,.5rem) solid var(--primary-color);border-radius:50%;width:clamp(3rem,12vw,5rem);height:clamp(3rem,12vw,5rem);animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.alert{padding:clamp(.75rem,3vw,1rem);margin:1rem 0;border-radius:var(--border-radius);border:1px solid transparent;font-size:clamp(.9rem,3vw,1rem);line-height:1.4}.alert-info{background-color:#d1ecf1;border-color:#bee5eb;color:#0c5460}.alert-light{background-color:#fefefe;border-color:#e2e3e5;color:#495057}.table{width:100%;margin-bottom:1rem;color:#333;border-collapse:collapse}.table tbody tr:nth-child(2n){background-color:hsla(93,39%,95%,.4)}.table tbody tr:nth-child(odd){background-color:#fff}.table td,.table th{padding:clamp(.5rem,2vw,.75rem);vertical-align:top;font-size:clamp(.85rem,3vw,.95rem)}.footer,.table td,.table th{border-top:1px solid var(--border-color)}.footer{margin-top:clamp(2rem,8vw,4rem);padding:clamp(1rem,4vw,2rem) 0;background:var(--light-bg)}.footer-content{text-align:center;color:var(--secondary-color);font-size:clamp(.85rem,3vw,.9rem)}.btn:not(.btn-close):not(.card-action-btn):not(.navbar-toggler),button:not(.btn-close):not(.spinner):not(.card-action-btn):not(.navbar-toggler),input[type=button],input[type=submit]{background:var(--primary-color)!important;color:#fff!important;border:1px solid var(--primary-color)!important;padding:clamp(.75rem,3vw,1rem) clamp(1rem,4vw,1.5rem);font-size:clamp(.9rem,3vw,1rem);font-weight:500;border-radius:var(--border-radius);transition:var(--transition);text-align:center;cursor:pointer;min-height:44px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.btn:hover:not(.btn-close):not(.card-action-btn):not(.navbar-toggler),button:hover:not(.btn-close):not(.spinner):not(.card-action-btn):not(.navbar-toggler),input[type=button]:hover,input[type=submit]:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:#fff!important;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:not(.card-action-btn):not(.navbar-toggler) i,button:not(.card-action-btn):not(.navbar-toggler) i{color:#fff!important;margin-right:.5rem;font-size:.9em}.btn:not(.card-action-btn):not(.navbar-toggler) i:last-child,button:not(.card-action-btn):not(.navbar-toggler) i:last-child{margin-right:0;margin-left:.5rem}.btn:disabled,button:disabled,input:disabled{background:#6c757d!important;border-color:#6c757d!important;color:#fff!important;cursor:not-allowed;opacity:.65;transform:none!important;box-shadow:none!important}.fixed-bottom-button.scrolling{opacity:.75;transition:opacity .3s ease}.fixed-bottom-button.scrolling:focus,.fixed-bottom-button.scrolling:hover{opacity:1}@media (max-width:480px){.card-container{grid-template-columns:1fr;gap:1rem;padding:0}.card-header{flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem}.card-title{font-size:1rem;width:100%}.badge-bg-info{align-self:flex-start}.card-actions{flex-direction:column;gap:.75rem;align-items:stretch}.card-action-btn,.card-actions .btn,.card-actions button{width:100%;min-width:auto;flex:none;margin:0;background:var(--primary-color)!important;color:#fff!important;border:1px solid var(--primary-color)!important;opacity:.9}.card-action-btn:focus,.card-action-btn:hover,.card-actions .btn:focus,.card-actions .btn:hover,.card-actions button:focus,.card-actions button:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:#fff!important;opacity:1}.card-actions .btn-info{background:#17a2b8!important;border-color:#17a2b8!important;color:#fff!important;opacity:.9}.card-actions .btn-info:focus{background:#138496!important;border-color:#117a8b!important;color:#fff!important;opacity:1}.absence-buttons-container{flex-direction:column;gap:1rem;align-items:stretch;padding:0 1rem;margin:.75rem 0}.absence-buttons-container .btn,.absence-buttons-container .button,.absence-buttons-container button{width:100%;max-width:none;min-width:auto;margin:0;background:var(--primary-color)!important;color:#fff!important;border:1px solid var(--primary-color)!important}.absence-buttons-container .btn:hover,.absence-buttons-container .button:hover,.absence-buttons-container button:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:#fff!important}.modal-container{width:95%;max-height:90vh;margin:1rem}.modal-footer{flex-direction:column;gap:.75rem}.modal-footer .btn,.modal-footer button{width:100%;background:var(--primary-color)!important;color:#fff!important;border:1px solid var(--primary-color)!important}.modal-footer .btn:hover,.modal-footer button:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:#fff!important}.fixed-bottom-button{left:1rem;right:1rem;bottom:1rem;padding:1.25rem;font-size:1rem;min-height:65px;max-width:none}.section-heading{flex-direction:column;align-items:center;text-align:center;width:100%;font-size:clamp(1.4rem,8vw,1.8rem);padding:1.25rem}.section-heading i{font-size:clamp(1.2rem,6vw,1.5rem);margin-right:0;margin-bottom:.5rem}.current-date{margin-left:0;align-self:center;width:auto;text-align:center;margin-top:.75rem;font-size:clamp(.9rem,5vw,1.2rem)}.info-item{flex-wrap:wrap}.content-container{padding:.75rem}.content-container+.content-container{padding-top:0}.greeting-text{margin:.5rem 0 0}.dashboard-container{padding-bottom:clamp(8rem,20vw,12rem)}.deviation-card{margin:1rem 0}.deviation-header{padding:.75rem 1rem;flex-wrap:wrap}.deviation-content{padding:1rem}.deviation-comment,.deviation-time{font-size:.9rem;align-items:flex-start}}@media (max-width:320px){.content-container,.dashboard-container{padding:.75rem}.card-body,.card-header,.modal-body,.modal-footer,.modal-header{padding:1rem}.btn.button,.button{padding:.875rem 1rem;font-size:.9rem}.fixed-bottom-button{padding:1rem;font-size:1rem}}@media (max-height:600px){.fixed-bottom-button:not(:hover):not(:focus):not(.scrolling){opacity:.8}}@media (max-height:500px) and (orientation:landscape){.fixed-bottom-button:not(:hover):not(:focus):not(.scrolling){opacity:.75}.fixed-bottom-button{bottom:.75rem;left:.75rem;right:.75rem;min-height:55px;padding:1rem}.modal-container{max-height:85vh}.modal-body{max-height:300px}}.btn:focus-visible,.button:focus-visible,.form-control:focus-visible,.input-field:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.text-center{text-align:center}.text-secondary{color:var(--secondary-color)}.text-dark{color:#333}.text-muted{color:#6c757d}.text-success{color:#198754}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.d-flex{display:flex}.align-items-center{align-items:center}.justify-content-center{justify-content:center}.flex-wrap{flex-wrap:wrap}.bg-light{background-color:var(--light-bg)}.rounded{border-radius:var(--border-radius)}.btn-sm.card-action-btn,.btn.card-action-btn,.card-action-btn,.card-actions .btn,.card-actions button{background:#f8f9fa!important;background-color:#f8f9fa!important;color:#343a40!important;border:1px solid #dee2e6!important;border-color:#dee2e6!important;box-shadow:0 2px 4px rgba(0,0,0,.08)!important;opacity:.95;transition:all .3s ease}.btn-sm.card-action-btn:focus,.btn-sm.card-action-btn:hover,.btn.card-action-btn:focus,.btn.card-action-btn:hover,.card-action-btn:focus,.card-action-btn:hover,.card-actions .btn:focus,.card-actions .btn:hover,.card-actions button:focus,.card-actions button:hover{background:#e9ecef!important;background-color:#e9ecef!important;color:#212529!important;border-color:#adb5bd!important;box-shadow:0 4px 8px rgba(0,0,0,.12)!important;opacity:1;transform:translateY(-1px)}.btn-info,.btn-info.card-action-btn,.btn-sm.btn-info,.btn.btn-info,.card-action-btn.btn-info,a.btn-info,button.btn-info,input.btn-info{background:#f8f9fa!important;background-color:#f8f9fa!important;color:#343a40!important;border:1px solid #dee2e6!important;border-color:#dee2e6!important;box-shadow:0 2px 4px rgba(0,0,0,.08)!important}.btn-info.card-action-btn:focus,.btn-info.card-action-btn:hover,.btn-info:active,.btn-info:focus,.btn-info:hover,.btn-sm.btn-info:focus,.btn-sm.btn-info:hover,.btn.btn-info:focus,.btn.btn-info:hover,.card-action-btn.btn-info:focus,.card-action-btn.btn-info:hover,a.btn-info:focus,a.btn-info:hover,button.btn-info:focus,button.btn-info:hover{background:#e9ecef!important;background-color:#e9ecef!important;color:#212529!important;border-color:#adb5bd!important;box-shadow:0 4px 8px rgba(0,0,0,.12)!important}.btn-secondary,.btn.button-secondary,.button-secondary{background:#f8f9fa!important;background-color:#f8f9fa!important;color:#343a40!important;border:1px solid #dee2e6!important;border-color:#dee2e6!important}.btn-secondary:focus,.btn-secondary:hover,.btn.button-secondary:focus,.btn.button-secondary:hover,.button-secondary:focus,.button-secondary:hover{background:#e9ecef!important;background-color:#e9ecef!important;color:#212529!important;border-color:#adb5bd!important}.bi-info-circle,.bi-info-circle-fill,.bi-info-square,.bi-info-square-fill,.btn-info i,.btn-info.card-action-btn i,.btn-sm.card-action-btn i,.btn.button-secondary i,.btn.card-action-btn i,.button-secondary i,.card-action-btn i,.card-action-btn.btn-info i,.card-actions .btn i,.card-actions button i,button.btn-info i{color:#6c757d!important}.btn-info.card-action-btn:focus i,.btn-info.card-action-btn:hover i,.btn-info:focus i,.btn-info:hover i,.btn.button-secondary:focus i,.btn.button-secondary:hover i,.btn.card-action-btn:focus i,.btn.card-action-btn:hover i,.button-secondary:focus i,.button-secondary:hover i,.card-action-btn.btn-info:focus i,.card-action-btn.btn-info:hover i,.card-action-btn:focus i,.card-action-btn:hover i,.card-actions .btn:focus i,.card-actions .btn:hover i,.card-actions button:focus i,.card-actions button:hover i,button.btn-info:focus i,button.btn-info:hover i{color:#495057!important}@media (max-width:480px){.card-actions{flex-direction:column;gap:.75rem;align-items:stretch}.btn-sm.card-action-btn,.btn.card-action-btn,.card-action-btn,.card-actions .btn,.card-actions button{width:100%;min-width:auto;flex:none;margin:0;background:#f8f9fa!important;background-color:#f8f9fa!important;color:#343a40!important;border:1px solid #dee2e6!important;border-color:#dee2e6!important}.btn.card-action-btn:focus,.btn.card-action-btn:hover,.card-action-btn:focus,.card-action-btn:hover,.card-actions .btn:focus,.card-actions .btn:hover,.card-actions button:focus,.card-actions button:hover{background:#e9ecef!important;background-color:#e9ecef!important;color:#212529!important;border-color:#adb5bd!important}.btn-info,.btn-info.card-action-btn,.btn-sm.btn-info,.btn.btn-info,.card-action-btn.btn-info,button.btn-info{background:#f8f9fa!important;background-color:#f8f9fa!important;color:#343a40!important;border:1px solid #dee2e6!important;border-color:#dee2e6!important}.btn-info.card-action-btn:focus,.btn-info.card-action-btn:hover,.btn-info:focus,.btn-info:hover,.btn-sm.btn-info:focus,.btn-sm.btn-info:hover,.btn.btn-info:focus,.btn.btn-info:hover,.card-action-btn.btn-info:focus,.card-action-btn.btn-info:hover,button.btn-info:focus,button.btn-info:hover{background:#e9ecef!important;background-color:#e9ecef!important;color:#212529!important;border-color:#adb5bd!important}.bi-info-circle,.bi-info-circle-fill,.btn-info i,.btn-info.card-action-btn i,.btn.card-action-btn i,.card-action-btn i,.card-action-btn.btn-info i,.card-actions .btn i,.card-actions button i,button.btn-info i{color:#6c757d!important}.btn-info:focus i,.btn-info:hover i,.btn.card-action-btn:focus i,.btn.card-action-btn:hover i,.card-action-btn:focus i,.card-action-btn:hover i,.card-actions .btn:focus i,.card-actions .btn:hover i,.card-actions button:focus i,.card-actions button:hover i,button.btn-info:focus i,button.btn-info:hover i{color:#495057!important}}.absence-buttons-container .btn,.absence-buttons-container button,.btn.button,.button:not(.button-secondary):not(.card-action-btn),.fixed-bottom-button,.modal-footer .btn,.modal-footer button{background:#4a6b2a!important;background-color:#4a6b2a!important;color:#fff!important;border:1px solid #4a6b2a!important;border-color:#4a6b2a!important}.absence-buttons-container .btn:hover,.absence-buttons-container button:hover,.btn.button:focus,.btn.button:hover,.button:not(.button-secondary):not(.card-action-btn):focus,.button:not(.button-secondary):not(.card-action-btn):hover,.fixed-bottom-button:focus,.fixed-bottom-button:hover,.modal-footer .btn:hover,.modal-footer button:hover{background:#5a7b3a!important;background-color:#5a7b3a!important;color:#fff!important;border-color:#5a7b3a!important}.absence-buttons-container .btn i,.absence-buttons-container button i,.btn.button i,.button:not(.button-secondary):not(.card-action-btn) i,.fixed-bottom-button i,.modal-footer .btn i,.modal-footer button i{color:#fff!important}[class*=bg-info],[class*=btn-info],[class*=text-info]{background:#f8f9fa!important;color:#343a40!important;border-color:#dee2e6!important}[class*=bg-info]:focus,[class*=bg-info]:hover,[class*=btn-info]:focus,[class*=btn-info]:hover{background:#e9ecef!important;color:#212529!important;border-color:#adb5bd!important}a[class*=bg-info],a[class*=btn-info]{color:#343a40!important;text-decoration:none}a[class*=bg-info]:focus,a[class*=bg-info]:hover,a[class*=btn-info]:focus,a[class*=btn-info]:hover{color:#212529!important;text-decoration:none}.dash-info-sheet-modal{max-width:95vw;width:900px;max-height:90vh}.dash-info-sheet-body{max-height:70vh;overflow-y:auto;padding:1.5rem}.dash-info-section-header{margin-bottom:1rem;color:#2c3e50;font-size:1.1rem}.dash-info-text-box{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem;min-height:120px;max-height:200px;overflow-y:auto;text-align:left!important;line-height:1.6;font-size:.95rem;color:#495057;box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}.dash-diagnosis-box{min-height:150px}.dash-comment-box{min-height:120px}.dash-checked-items-container{background-color:#f8fffe;border:1px solid #d1edda;border-radius:8px;padding:1.5rem}.dash-no-items-container{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:2rem}.dash-checked-item{display:flex;align-items:flex-start;margin-bottom:1rem;padding:.75rem;background-color:#fff;border:1px solid #d1edda;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:all .2s ease}.dash-checked-item:last-child{margin-bottom:0}.dash-checked-item:hover{box-shadow:0 2px 6px rgba(0,0,0,.1);transform:translateY(-1px)}.dash-check-icon-wrapper{flex-shrink:0;margin-right:1rem;margin-top:2px}.dash-check-icon{font-size:1.3rem!important;color:#28a745!important;filter:drop-shadow(0 1px 2px rgba(40,167,69,.3))}.dash-checked-label{text-align:left!important;line-height:1.5;font-size:.95rem;flex:1;padding-right:.5rem;color:#2c3e50;font-weight:500}@media (max-width:768px){.dash-info-sheet-modal{max-width:98vw;width:100%;margin:1rem}.dash-info-sheet-body{max-height:75vh;padding:1rem}.dash-info-text-box{min-height:100px;max-height:150px;padding:1rem}.dash-checked-items-container{padding:1rem}.dash-checked-item{margin-bottom:.75rem;padding:.6rem}.dash-check-icon-wrapper{margin-right:.75rem}.dash-check-icon{font-size:1.2rem!important}.dash-checked-label{font-size:.9rem}}@media (max-width:480px){.dash-info-sheet-modal{margin:.5rem}.dash-info-section-header{font-size:1rem}.dash-info-text-box{min-height:80px;max-height:120px;padding:.8rem;font-size:.9rem}.dash-checked-items-container{padding:.8rem}.dash-checked-item{padding:.5rem}.dash-check-icon{font-size:1.1rem!important}.dash-checked-label{font-size:.85rem}}.dash-info-sheet-body::-webkit-scrollbar,.dash-info-text-box::-webkit-scrollbar{width:6px}.dash-info-sheet-body::-webkit-scrollbar-track,.dash-info-text-box::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.dash-info-sheet-body::-webkit-scrollbar-thumb,.dash-info-text-box::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.dash-info-sheet-body::-webkit-scrollbar-thumb:hover,.dash-info-text-box::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.modal-footer{gap:1rem!important;align-items:stretch!important;padding:1rem 1.5rem!important}.modal-footer,.modal-footer .btn,.modal-footer button{display:flex!important;justify-content:center!important}.modal-footer .btn,.modal-footer button{flex:1!important;min-width:120px!important;max-width:200px!important;height:48px!important;padding:.75rem 1.5rem!important;font-size:1rem!important;font-weight:500!important;border-radius:6px!important;text-align:center!important;white-space:nowrap!important;align-items:center!important;margin:0!important;vertical-align:baseline!important}.modal-footer .btn.button-secondary,.modal-footer button.button-secondary{background:#f8f9fa!important;background-color:#f8f9fa!important;color:#343a40!important;border:1px solid #dee2e6!important;border-color:#dee2e6!important}.modal-footer .btn.button-secondary:focus,.modal-footer .btn.button-secondary:hover,.modal-footer button.button-secondary:focus,.modal-footer button.button-secondary:hover{background:#e9ecef!important;background-color:#e9ecef!important;color:#212529!important;border-color:#adb5bd!important}.modal-footer .btn.button,.modal-footer button.button{background:#4a6b2a!important;background-color:#4a6b2a!important;color:#fff!important;border:1px solid #4a6b2a!important;border-color:#4a6b2a!important}.modal-footer .btn.button:focus,.modal-footer .btn.button:hover,.modal-footer button.button:focus,.modal-footer button.button:hover{background:#5a7b3a!important;background-color:#5a7b3a!important;color:#fff!important;border-color:#5a7b3a!important}@media (max-width:480px){.modal-footer{flex-direction:column!important;gap:.75rem!important;padding:1rem!important}.modal-footer .btn,.modal-footer button{width:100%!important;max-width:none!important;min-width:auto!important}}.dash-comment-section{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;margin-top:.5rem;padding:.5rem 0}.dash-comment-label{font-weight:600;color:#495057;font-size:.9rem}.dash-comment-text{color:#6c757d;font-size:.95rem;line-height:1.4;word-break:break-word}.dash-dynamic-text{color:#1a1a1a}.form-check-label{font-size:clamp(.9rem,3vw,1.1rem);color:#333}.booking-custom-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);border:1px solid #e9ecef;padding:1.2rem;margin-bottom:1rem;min-height:120px;display:flex;flex-direction:column;justify-content:center}.booking-custom-container h5{font-size:clamp(1rem,3.5vw,1.2rem);margin-bottom:.5rem;color:#495057;font-weight:600}.booking-custom-container h3{font-size:clamp(1.3rem,4.5vw,1.8rem);color:#212529;word-break:break-word}.booking-collapsible-header{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .2s}.booking-collapsible-header:hover{background-color:rgba(0,0,0,.02);border-radius:8px}.booking-collapse-icon svg{transition:transform .3s ease}.booking-collapse-icon svg.rotated{transform:rotate(180deg)}.booking-current-month-row{background-color:#6c757d!important}.booking-current-month-row td{color:#000!important;font-weight:600}.booking-info-link{color:#6c757d;text-decoration:none;transition:color .2s,transform .2s;display:flex;align-items:center;justify-content:center}.booking-info-link:hover{color:#495057;transform:scale(1.1)}.booking-info-link-small{color:#6c757d;text-decoration:none;transition:color .2s,transform .2s;display:flex;align-items:center;justify-content:center}.booking-info-link-small:hover{color:#495057;transform:scale(1.1)}.booking-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000}.booking-modal-content{background:#fff;border-radius:12px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 4px 16px rgba(0,0,0,.2)}.booking-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef}.booking-modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#212529}.booking-modal-close{background:transparent;border:none;font-size:2rem;cursor:pointer;color:#6c757d;line-height:1;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.booking-modal-close:hover{color:#212529}.booking-modal-body{padding:1.5rem}.booking-modal-body p{margin:0;font-size:1rem;line-height:1.6;color:#495057}.booking-modal-footer{padding:1rem 1.5rem;border-top:1px solid #e9ecef;display:flex;justify-content:flex-end}.booking-btn-close-modal{background:#6c757d;color:#fff;border:none;padding:.5rem 1.5rem;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .3s}.booking-btn-close-modal:hover{background:#5a6268}.booking-school-year-select{min-width:200px;max-width:300px;font-size:clamp(.9rem,3vw,1rem);font-weight:600;border:2px solid #6c757d;border-radius:8px;padding:.5rem 1rem;background:#fff;color:#495057;box-shadow:0 2px 4px hsla(208,7%,46%,.2);transition:all .3s ease}.booking-school-year-select:focus{border-color:#495057;box-shadow:0 0 0 .2rem hsla(208,7%,46%,.25);outline:none}.booking-table-container{border-radius:8px;overflow-x:auto;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);max-width:100%}.booking-table{margin-bottom:0;border-collapse:separate;border-spacing:0;min-width:100%;width:auto}.booking-table-header{background:linear-gradient(135deg,#f8f9fa,#e9ecef);font-size:clamp(.75rem,2.8vw,.95rem);padding:1rem .6rem;font-weight:700;color:#495057;border:none;position:sticky;top:0;z-index:10;white-space:nowrap}.booking-table-cell{font-size:clamp(.7rem,2.8vw,.9rem);padding:.8rem .6rem;border-bottom:1px solid #f1f3f4;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.booking-table-success{background-color:rgba(40,167,69,.1);border-left:4px solid #28a745}.booking-table-danger{background-color:rgba(220,53,69,.1);border-left:4px solid #dc3545}.booking-table-success td,.booking-table-success td.booking-value-negative,.booking-table-success td.booking-value-positive{background-color:rgba(40,167,69,.1)!important;color:#212529!important}.booking-table-danger td,.booking-table-danger td.booking-value-negative,.booking-table-danger td.booking-value-positive{background-color:rgba(220,53,69,.1)!important;color:#212529!important}.booking-value-positive{background-color:#d1e7dd!important;color:#0f5132!important}.booking-value-negative{background-color:#f8d7da!important;color:#842029!important}.booking-text-positive{color:#0f5132!important}.booking-text-negative{color:#842029!important}.booking-legend{display:flex;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap}.booking-legend-item{display:flex;align-items:center;gap:.5rem;min-width:0;flex-shrink:0}.booking-legend-color{width:16px;height:16px;border-radius:50%;flex-shrink:0}.booking-legend-item span{font-size:clamp(.75rem,2.8vw,.9rem);color:#495057;font-weight:500}.form-check-input{width:3rem;height:1.5rem;background-color:#6c757d;border:none;border-radius:1rem;flex-shrink:0}.form-check-input:checked{background-color:#28a745}.booking-footer{background:linear-gradient(135deg,#343a40,#495057);color:#fff;text-align:center;padding:1.5rem 0;margin-top:2rem}.booking-footer-content p{margin:0;font-size:clamp(.8rem,3vw,.9rem)}.row{flex-wrap:wrap;margin:0 -.5rem}.col-12,.col-lg-4,.col-md-6{padding:0 .5rem}@media (max-width:768px){.container-fluid{max-height:calc(100vh - 3.5rem);padding:.5rem}.booking-custom-container{padding:1rem;margin-bottom:.8rem;min-height:100px}.booking-table-cell,.booking-table-header{padding:.6rem .4rem}.booking-legend{gap:1rem}.booking-table-cell{max-width:100px}.booking-school-year-select{min-width:180px;max-width:250px}.d-flex.justify-content-between{flex-direction:column;align-items:flex-start;gap:.8rem}.booking-school-year-select{align-self:flex-end}.booking-modal-content{width:95%}}@media (max-width:480px){.container-fluid{max-height:calc(100vh - 3rem);padding:.3rem}.booking-custom-container{padding:.8rem;margin-bottom:.6rem;min-height:90px}.booking-table-cell,.booking-table-header{padding:.5rem .3rem}.booking-legend{flex-direction:column;gap:.8rem}.booking-table-cell{max-width:80px}.booking-school-year-select{min-width:150px;max-width:200px;font-size:.85rem}}@media (max-width:360px){.booking-table-container{font-size:.7rem}.booking-table-cell,.booking-table-header{padding:.4rem .2rem}.booking-custom-container{padding:.6rem;min-height:80px}.booking-table-cell{max-width:70px}.booking-school-year-select{min-width:130px;max-width:170px;font-size:.8rem;padding:.4rem .8rem}}.booking-spinner-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem 0}.booking-spinner{width:48px;height:48px;border:5px solid #e9ecef;border-top-color:#55832a;border-radius:50%;animation:booking-spin .8s linear infinite}@keyframes booking-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.booking-spinner{animation-duration:1.5s}}.booking-pie-wrapper{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:1rem;flex-wrap:wrap}.booking-pie-chart{width:110px;height:110px;flex-shrink:0}.booking-pie-segment{transition:stroke-dasharray .5s ease}.booking-pie-text{font-size:.55rem;font-weight:700;fill:#212529}.booking-pie-legend{display:flex;flex-direction:column;gap:.4rem}.booking-pie-legend-item{display:flex;align-items:center;gap:.5rem}.booking-pie-legend-item span{font-size:clamp(.75rem,2.8vw,.9rem);color:#495057;font-weight:500}@media (max-width:480px){.booking-pie-chart{width:90px;height:90px}}@media (min-width:768px){.booking-equal-col{display:flex;flex-direction:column}.booking-equal-col .booking-custom-container{flex:1 1 auto}}.content-container{text-align:left;margin-top:clamp(8px,1vw,16px);padding:0 clamp(8px,1vw,20px);font-size:clamp(14px,1vw,16px)}.abs-absence-card{transition:all .3s cubic-bezier(.4,0,.2,1);min-height:200px;border:1px solid #e9ecef;border-radius:12px;overflow:hidden;position:relative;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.08)}.abs-absence-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px rgba(0,0,0,.12);border-color:#1e4d33}.abs-absence-card.cursor-pointer{cursor:pointer}.abs-absence-card .card-header{background:transparent;border-bottom:none;padding:16px 16px 8px 16px}.abs-absence-card .card-body{padding:8px 16px 16px 16px}.abs-absence-card .card-title{font-size:1.1rem;font-weight:600;margin-bottom:12px;color:#2c3e50}.abs-detail-row{border-left:3px solid #1e4d33;padding-left:12px;margin-bottom:8px;transition:border-color .2s ease}.abs-detail-row:hover{border-left-color:#155a32}.abs-date-time-display{display:flex;flex-direction:column;gap:2px}.abs-date-part{font-weight:600;font-size:1rem;color:#212529}.abs-time-part{font-weight:500;font-size:.9rem;color:#212529;background:rgba(30,77,51,.1);padding:2px 8px;border-radius:12px;width:-moz-fit-content;width:fit-content}.abs-absence-card .text-dark{color:#212529!important}.abs-absence-card .abs-detail-row span,.abs-absence-card .card-body{color:#212529}.border-success{border-color:#28a745!important}.border-danger{border-color:#dc3545!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-secondary{border-color:#6c757d!important}.border-violet{border-color:#8b5cf6!important}.bg-success-subtle{background-color:rgba(40,167,69,.08)!important}.bg-danger-subtle{background-color:rgba(220,53,69,.08)!important}.bg-info-subtle{background-color:rgba(23,162,184,.08)!important}.bg-warning-subtle{background-color:rgba(255,193,7,.08)!important}.bg-primary-subtle{background-color:rgba(30,77,51,.08)!important}.bg-violet-subtle{background-color:rgba(139,92,246,.15)!important}.bg-violet{background-color:#8b5cf6!important}.badge{font-size:.75rem;padding:6px 10px;border-radius:20px;font-weight:500;display:inline-flex;align-items:center;gap:4px}.badge i{font-size:.8em}.abs-legend{gap:clamp(8px,1vw,16px);margin-bottom:clamp(8px,.8vw,16px);flex-wrap:wrap;justify-content:center}.abs-legend,.abs-legend-item{display:flex;align-items:center}.abs-legend-item{font-size:clamp(12px,.95vw,14px);background:#f8f9fa;padding:6px 12px;border-radius:16px;border:1px solid #e9ecef}.abs-legend-color{display:inline-block;width:clamp(10px,1vw,12px);height:clamp(10px,1vw,12px);margin-right:clamp(4px,.5vw,8px);border-radius:50%;flex-shrink:0}.abs-modal{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;outline:0;backdrop-filter:blur(2px)}.abs-modal.fade.show{display:block!important;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.abs-modal-dialog{position:relative;width:auto;margin:clamp(8px,1.75vw,28px) auto;max-width:540px;z-index:1060;pointer-events:auto}.abs-modal-content{position:relative;display:flex;flex-direction:column;width:100%;background-color:#fff;border-radius:16px;outline:0;box-shadow:0 10px 40px rgba(0,0,0,.15);z-index:1070;max-height:calc(100vh - 40px);overflow:hidden}.abs-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e9ecef;background:#fff;border-radius:16px 16px 0 0}.abs-modal-title{font-size:clamp(16px,1.1vw,20px);font-weight:600;color:#6c757d;margin:0;display:flex;align-items:center;gap:8px}.abs-modal-body{position:relative;flex:1 1 auto;padding:24px;overflow-y:auto;font-size:clamp(14px,1vw,16px);background:#fff;color:#6c757d}.abs-modal-body .alert{color:#6c757d}.abs-modal-body .alert strong{color:#495057}.abs-modal-body .form-label{color:#6c757d;font-weight:500}.abs-modal-body h6,.abs-modal-body p{color:#6c757d}.abs-modal-body small{color:#adb5bd}.abs-modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:16px 24px;border-top:1px solid #e9ecef;background:#f8f9fa;border-radius:0 0 16px 16px;gap:12px}.abs-modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:rgba(0,0,0,.5);backdrop-filter:blur(2px)}.abs-modal-backdrop.fade.show{opacity:1}.abs-upload-zone{transition:all .3s cubic-bezier(.4,0,.2,1);min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #ced4da;border-radius:12px;background:#fff;cursor:pointer;position:relative;overflow:hidden}.abs-upload-zone:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.abs-upload-zone.border-primary,.abs-upload-zone:hover{border-color:#6c757d;background:#f8f9fa}.abs-upload-zone.border-success{border-color:#28a745;background:rgba(40,167,69,.05)}.abs-upload-zone i{color:#adb5bd}.abs-upload-zone .text-primary,.abs-upload-zone h6,.abs-upload-zone p{color:#6c757d!important}.abs-upload-zone .text-muted{color:#adb5bd!important}.abs-upload-zone .text-success i{color:#28a745}.abs-upload-zone .text-success h6,.abs-upload-zone .text-success p{color:#6c757d!important}.abs-progress{height:8px;border-radius:10px;background-color:#e9ecef;overflow:hidden}.abs-progress-bar{border-radius:10px;background:linear-gradient(90deg,#1e4d33,#155a32);transition:width .3s ease}.abs-progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.abs-progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.alert{border-radius:12px;border:none;box-shadow:0 4px 20px rgba(0,0,0,.1);animation:slideDown .4s cubic-bezier(.4,0,.2,1);max-width:400px;font-size:14px}@keyframes slideDown{0%{transform:translateX(-50%) translateY(-100%);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}.abs-toast-fixed .alert-success{background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724;border-left:4px solid #28a745}.abs-toast-fixed .alert-danger{background:linear-gradient(135deg,#f8d7da,#f5c6cb);color:#721c24;border-left:4px solid #dc3545}.form-control,.form-select{border-radius:8px;border:1px solid #ced4da;padding:12px 16px;font-size:clamp(14px,1vw,16px);transition:all .2s ease}.form-control:focus,.form-select:focus{border-color:#1e4d33;box-shadow:0 0 0 .2rem rgba(30,77,51,.15)}.form-control-lg,.form-select-lg{padding:16px 20px;font-size:clamp(16px,1.1vw,18px)}.form-label{font-weight:500;color:#495057;margin-bottom:8px}.btn{border-radius:8px;font-weight:500;padding:10px 20px;transition:all .2s ease;border:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:linear-gradient(135deg,#1e4d33,#155a32);color:#fff}.btn-primary:hover{background:linear-gradient(135deg,#155a32,#0f4128);transform:translateY(-1px);box-shadow:0 4px 12px rgba(30,77,51,.3)}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62;transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.cursor-pointer{cursor:pointer}.text-break{word-break:break-word;overflow-wrap:break-word}.fw-semibold{font-weight:600}.shadow-sm{box-shadow:0 2px 8px rgba(0,0,0,.08)!important}.shadow-lg{box-shadow:0 8px 30px rgba(0,0,0,.15)!important}@media (max-width:992px){.content-container{padding:0 16px}.abs-absence-card{min-height:180px}}@media (max-width:768px){.content-container{padding:0 12px;margin-top:8px}.abs-legend{justify-content:center;gap:8px}.abs-legend-item{font-size:12px;padding:4px 8px}.abs-modal-dialog{margin:8px}.abs-modal-fullscreen-sm-down{margin:0!important;max-width:none!important;width:100%!important;height:100vh;height:100dvh}.abs-modal-fullscreen-sm-down .abs-modal-content{height:100vh;height:100dvh;border:0;border-radius:0;max-height:none;overflow:hidden}.abs-modal-fullscreen-sm-down .abs-modal-footer,.abs-modal-fullscreen-sm-down .abs-modal-header{flex-shrink:0}.abs-modal-fullscreen-sm-down .abs-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.abs-modal-fullscreen-sm-down .abs-modal-footer{position:sticky;bottom:0;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.abs-modal-body,.abs-modal-footer,.abs-modal-header{padding:16px}.abs-modal-header{background:#fff;border-bottom:1px solid #e9ecef}.abs-modal-body{background:#fff}.abs-modal-footer{background:#f8f9fa;padding:20px 16px}.abs-upload-zone{min-height:140px;padding:20px;margin:16px 0}.form-select-lg{font-size:18px;padding:14px 16px}.btn{padding:14px 20px;font-size:16px;min-height:48px}.abs-absence-card{min-height:160px}.card-body,.card-header{padding:12px!important}.abs-detail-row{padding-left:8px;border-left-width:2px}}@media (max-width:576px){.content-container{padding:0 8px}.abs-absence-card{min-height:140px}.card-title{font-size:1rem!important}.badge{font-size:.7rem;padding:4px 8px}.abs-modal-body,.abs-modal-footer,.abs-modal-header{padding:12px}.btn{padding:12px 16px}.abs-upload-zone{min-height:120px;padding:16px}.form-control,.form-select{font-size:16px}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.abs-title-light{color:#495057}.abs-modal-body .alert{display:block;max-width:none;width:100%;text-align:center;margin:0 0 1.5rem 0}.abs-modal-body .alert .d-flex{display:flex;flex-direction:column;align-items:center;gap:.5rem}.abs-modal-body .alert .d-flex>i{margin:0!important;font-size:1.4rem}.abs-modal-open{display:block}.abs-toast-fixed{z-index:9999}.abs-text-faint{color:#adb5bd!important}.abs-text-muted2{color:#6c757d!important}.container-fluid{max-height:calc(100vh - 4rem);overflow-y:auto;-webkit-overflow-scrolling:touch}.sig-custom-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);border:1px solid #e9ecef;padding:1.2rem;margin-bottom:1rem;min-height:120px;display:flex;flex-direction:column;justify-content:center}.sig-custom-container h5{font-size:clamp(1rem,3.5vw,1.2rem);margin-bottom:.5rem;color:#495057;font-weight:600}.sig-filter-select{min-width:150px;font-size:clamp(.9rem,3vw,1rem);font-weight:600;border:2px solid #6c757d;border-radius:8px;padding:.5rem 1rem;background:#fff;color:#495057;box-shadow:0 2px 4px hsla(208,7%,46%,.2);transition:all .3s ease}.sig-filter-select:focus{border-color:#495057;box-shadow:0 0 0 .2rem hsla(208,7%,46%,.25);outline:none}.sig-signature-display-container{display:flex;justify-content:center;margin:15px 0}.sig-signature-image{max-width:300px;max-height:120px;background-color:#fff;border:2px solid #e9ecef;border-radius:8px}.sig-signature-container{display:flex;justify-content:center;align-items:center;margin:15px 0;padding:10px;width:100%;box-sizing:border-box}.sig-signature-canvas{border:2px solid #e9ecef;border-radius:8px;background-color:#fff;cursor:crosshair;touch-action:none;display:block;max-width:100%;width:auto;height:auto}.sig-table-container{border-radius:8px;overflow-x:auto;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);max-width:100%}.sig-table{margin-bottom:0;border-collapse:separate;border-spacing:0;min-width:100%;width:auto}.sig-table-header{font-size:clamp(.75rem,2.8vw,.95rem);padding:1rem .6rem;font-weight:700;color:#495057;border:none;top:0;z-index:10;white-space:nowrap}.sig-table-header,.sig-table-header-sticky{background:linear-gradient(135deg,#f8f9fa,#e9ecef);position:sticky}.sig-table-header-sticky{left:0;z-index:20;box-shadow:2px 0 4px rgba(0,0,0,.1);min-width:150px;padding:8px 12px}.sig-table-cell{font-size:clamp(.7rem,2.8vw,.9rem);padding:.8rem .6rem;border-bottom:1px solid #f1f3f4;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.sig-table-cell-sticky{position:sticky;left:0;z-index:5;background:inherit;box-shadow:2px 0 4px rgba(0,0,0,.1);min-width:150px;vertical-align:middle;padding:8px 12px}.sig-table-success .sig-table-cell-sticky{background-color:#e8f5e9!important}.sig-table-warning .sig-table-cell-sticky{background-color:#fff8e1!important}.sig-table-danger-row .sig-table-cell-sticky{background-color:#f8d7da!important}.sig-table-success{border-left:4px solid #28a745}.sig-table-success,.sig-table-success td{background-color:#e8f5e9!important}.sig-table-warning{border-left:4px solid #ffc107}.sig-table-warning,.sig-table-warning td{background-color:#fff8e1!important}.sig-table-danger-row{border-left:4px solid #dc3545}.sig-table-danger-row,.sig-table-danger-row td{background-color:#f8d7da!important}.sig-btn-group-actions{display:flex;gap:8px;align-items:center;justify-content:flex-start}.sig-btn-action{width:40px;height:40px;padding:0;margin:0;border-radius:6px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.sig-btn-action:hover:not(:disabled){transform:scale(1.05)}.sig-btn-action:disabled{opacity:.4;cursor:not-allowed}.sig-btn-action i{font-size:18px;line-height:1;margin:0;padding:0}.sig-btn-action .spinner-border-sm{width:18px;height:18px;margin:0;padding:0}.sig-comment-text{color:#856404;font-weight:500}.sig-comment-rejected{color:#dc3545}.sig-legend{display:flex;gap:1.5rem;flex-wrap:wrap}.sig-legend-item{display:flex;align-items:center;gap:.5rem;min-width:0;flex-shrink:0}.sig-legend-color{width:16px;height:16px;border-radius:50%;flex-shrink:0}.sig-legend-item span{font-size:clamp(.75rem,2.8vw,.9rem);color:#495057;font-weight:500}.sig-sheet-card{border-radius:12px;margin-bottom:12px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.1)}.sig-sheet-card-signed{background-color:#e8f5e9;border-left:5px solid #28a745}.sig-sheet-card-pending{background-color:#fff8e1;border-left:5px solid #ffc107}.sig-sheet-card-rejected{background-color:#f8d7da;border-left:5px solid #dc3545}.sig-sheet-card-header{padding:12px 14px 8px 14px}.sig-sheet-card-status{margin-bottom:6px}.sig-status-badge{display:inline-block;font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px}.sig-badge-signed{background-color:#28a745;color:#fff}.sig-badge-pending{background-color:#ffc107;color:#212529}.sig-badge-rejected{background-color:#dc3545;color:#fff}.sig-sheet-card-title{font-size:1rem;font-weight:700;color:#212529}.sig-sheet-card-body{padding:0 14px 8px 14px}.sig-sheet-card-info{display:flex;flex-direction:column;gap:4px}.sig-sheet-card-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;font-size:.88rem;line-height:1.4}.sig-sheet-card-label{color:#6c757d;font-weight:500;flex-shrink:0}.sig-sheet-card-value{color:#212529;font-weight:600;text-align:right;word-break:break-word}.sig-sheet-card-actions{display:flex;gap:10px;justify-content:center;padding:10px 14px 14px 14px;border-top:1px solid rgba(0,0,0,.08)}.sig-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;padding:10px;box-sizing:border-box}.sig-modal-content{background:#fff;border-radius:12px;max-width:500px;width:100%;max-height:calc(100vh - 20px);overflow-y:auto;box-shadow:0 4px 16px rgba(0,0,0,.2);margin:0}.sig-modal-content.sig-modal-lg{max-width:700px}.sig-modal-content.sig-modal-signature{max-width:600px;width:calc(100% - 20px)}.sig-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef;flex-shrink:0}.sig-modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#212529}.sig-modal-close{background:transparent;border:none;font-size:2rem;cursor:pointer;color:#6c757d;line-height:1;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.sig-modal-close:hover{color:#212529}.sig-modal-body{padding:1.5rem}.sig-modal-body p{margin:0;font-size:1rem;line-height:1.6;color:#495057}.sig-modal-footer{padding:1rem 1.5rem;border-top:1px solid #e9ecef;display:flex;justify-content:flex-end;gap:.5rem;flex-shrink:0}.sig-modal-footer.justify-content-center{justify-content:center}.sig-info-box{background:#e9ecef;color:#495057}.sig-info-box,.sig-warning-box{border-radius:8px;padding:1rem;font-size:.95rem}.sig-warning-box{background:#fff3cd;color:#856404}.sig-pdf-fullscreen-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;background:#1a1a1a;z-index:2000;display:flex;flex-direction:column}.sig-pdf-fullscreen-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:#212529;flex-shrink:0;min-height:48px;gap:.5rem}.sig-pdf-fullscreen-title{margin:0;font-size:clamp(.85rem,3vw,1.1rem);font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.sig-pdf-fullscreen-actions{display:flex;gap:.5rem;flex-shrink:0}.sig-pdf-fullscreen-actions .btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:8px}.sig-pdf-fullscreen-actions .btn i{font-size:18px}.sig-pdf-fullscreen-body{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.sig-pdf-fullscreen-iframe{width:100%;height:100%;border:none;flex:1;background:#fff}.sig-pdf-error,.sig-pdf-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;flex:1}.sig-pdf-error{color:#adb5bd}.sig-footer{background:linear-gradient(135deg,#343a40,#495057);color:#fff;text-align:center;padding:1.5rem 0;margin-top:2rem}.sig-footer-content p{margin:0;font-size:clamp(.8rem,3vw,.9rem)}.text-muted{color:#6c757d!important;font-size:clamp(.85rem,3vw,1rem)}@media (max-width:768px){.container-fluid{max-height:calc(100vh - 3.5rem);padding:.5rem}.sig-custom-container{padding:1rem;margin-bottom:.8rem;min-height:100px}.sig-table-cell,.sig-table-header{padding:.6rem .4rem}.sig-legend{gap:1rem}.sig-table-cell{max-width:100px}.sig-filter-select{min-width:100%}.sig-modal-content{width:calc(100% - 20px);margin:10px}.sig-btn-action{width:42px;height:42px}.sig-btn-action i{font-size:18px}.sig-btn-action .spinner-border-sm{width:18px;height:18px}.sig-signature-container{padding:5px}.sig-signature-canvas{max-width:calc(100% - 10px)}.sig-pdf-fullscreen-header{padding:.4rem .75rem;min-height:44px}.sig-pdf-fullscreen-actions .btn{width:36px;height:36px}.sig-pdf-fullscreen-actions .btn i{font-size:16px}.sig-sheet-card-actions .sig-btn-action{width:44px;height:44px}.sig-sheet-card-actions .sig-btn-action i{font-size:20px}}@media (max-width:480px){.container-fluid{max-height:calc(100vh - 3rem);padding:.3rem}.sig-custom-container{padding:.8rem;margin-bottom:.6rem;min-height:90px}.sig-table-cell,.sig-table-header{padding:.5rem .3rem}.sig-legend{flex-direction:row;flex-wrap:wrap;gap:.8rem}.sig-table-cell{max-width:80px}.sig-modal-overlay{padding:5px}.sig-modal-content{margin:5px;border-radius:8px}.sig-modal-content,.sig-modal-content.sig-modal-signature{width:calc(100% - 10px)}.sig-signature-container{padding:5px;margin:10px 0}.sig-signature-image{max-width:100%;width:auto}.sig-pdf-fullscreen-header{padding:.3rem .5rem;min-height:40px}.sig-pdf-fullscreen-actions .btn{width:34px;height:34px}.sig-sheet-card-row{font-size:.84rem}.sig-sheet-card-title{font-size:.95rem}}@media (max-width:360px){.sig-table-container{font-size:.7rem}.sig-table-cell,.sig-table-header{padding:.4rem .2rem}.sig-custom-container{padding:.6rem;min-height:80px}.sig-table-cell{max-width:70px}.sig-signature-container{padding:3px}.sig-signature-image{max-width:100%}.sig-sheet-card{margin-bottom:10px}.sig-sheet-card-header{padding:10px 12px 6px 12px}.sig-sheet-card-body{padding:0 12px 6px 12px}.sig-sheet-card-actions{padding:8px 12px 12px 12px}.sig-sheet-card-row{font-size:.8rem}}.cal-page{padding-bottom:2rem}.cal-toolbar{position:sticky;top:0;z-index:20;display:flex;align-items:stretch;gap:.5rem;padding:.45rem;margin-bottom:.75rem;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}.cal-toolbar .cal-nav-btn.card-action-btn{flex:0 0 auto;width:2.5rem;min-width:2.5rem;height:auto;min-height:2.5rem;padding:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;color:var(--primary-color)!important;background:var(--light-bg)!important;border:1px solid var(--border-color)!important;border-radius:var(--border-radius);box-shadow:none;opacity:1;cursor:pointer}.cal-toolbar .cal-nav-btn.card-action-btn:hover{color:#fff!important;background:var(--primary-color)!important;border-color:var(--primary-color)!important;transform:none;box-shadow:none}.cal-toolbar .cal-nav-btn.card-action-btn:disabled{color:var(--secondary-color)!important;background:var(--light-bg)!important;border-color:var(--border-color)!important;opacity:.4;cursor:not-allowed}.cal-toolbar .cal-nav-btn.card-action-btn i{margin:0;font-size:1.1rem;color:inherit!important}.cal-range{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;text-align:center}.cal-range-title{font-family:"PT Serif",serif;font-size:clamp(.9rem,3.4vw,1.05rem);font-weight:600;color:#2c3e50;line-height:1.2}.cal-range-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.3rem;font-size:.72rem;color:var(--secondary-color)}.cal-school-year{display:inline-block;padding:.1rem .45rem;font-weight:600;color:var(--primary-color);background:rgba(85,131,42,.12);border:1px solid rgba(85,131,42,.25);border-radius:999px;white-space:nowrap}.cal-jump-bar{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin-bottom:.9rem}.cal-jump-bar .cal-jump-btn.card-action-btn{flex:0 0 auto;width:auto;min-width:0;min-height:2.25rem;padding:.35rem .75rem;font-size:.78rem;font-weight:500;color:#2c3e50!important;background:#fff!important;border:1px solid var(--border-color)!important;border-radius:999px;box-shadow:var(--shadow-sm);cursor:pointer}.cal-jump-bar .cal-jump-btn.card-action-btn:hover{color:var(--primary-color)!important;background:#fff!important;border-color:var(--primary-color)!important;box-shadow:var(--shadow-sm)}.cal-jump-bar .cal-jump-btn--primary.card-action-btn,.cal-jump-bar .cal-jump-btn--primary.card-action-btn:hover{color:#fff!important;background:var(--primary-color)!important;border-color:var(--primary-color)!important}.cal-jump-bar .cal-jump-btn.card-action-btn i{margin:0;font-size:.85em;color:inherit!important}.cal-list{display:flex;flex-direction:column;gap:.9rem}.cal-list--busy{opacity:.45;pointer-events:none}.cal-day-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem;padding:.3rem .6rem;margin-bottom:.4rem;background:var(--light-bg);border-left:3px solid var(--border-color);border-radius:0 .25rem .25rem 0}.cal-day--today .cal-day-header{border-left-color:var(--primary-color);background:rgba(85,131,42,.1)}.cal-day--weekend .cal-day-header{background:#f4f4f4}.cal-day-weekday{font-family:"PT Serif",serif;font-size:.92rem;font-weight:600;color:#2c3e50}.cal-day-date{font-size:.76rem;color:var(--secondary-color)}.cal-today-badge{margin-left:auto;padding:.08rem .5rem;font-size:.68rem;font-weight:600;color:#fff;background:var(--primary-color);border-radius:999px;white-space:nowrap}.cal-cards{display:grid;grid-template-columns:1fr;gap:.4rem}.cal-card{background:#fff;border:1px solid var(--border-color);border-left:3px solid var(--primary-color);border-radius:.375rem;overflow:hidden}.cal-day--today .cal-card{border-left-color:#e6ac00}.cal-card--open{box-shadow:var(--shadow-sm)}.cal-card .cal-card-summary.card-action-btn{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;width:100%;flex:none;min-width:0;min-height:0;padding:.45rem .55rem;text-align:left;color:inherit!important;background:transparent!important;border:none!important;border-radius:0;box-shadow:none;opacity:1;cursor:pointer}.cal-card .cal-card-summary.card-action-btn:hover{background:var(--light-bg)!important;transform:none;box-shadow:none}.cal-card-icon{flex:0 0 auto;width:22px;height:22px}.cal-card-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.1rem}.cal-card-title{font-size:.9rem;font-weight:600;line-height:1.25;color:#2c3e50;overflow-wrap:anywhere}.cal-card-meta{display:flex;flex-wrap:wrap;gap:.1rem .7rem;font-size:.76rem;line-height:1.35;color:var(--secondary-color)}.cal-meta{display:inline-flex;align-items:baseline;gap:.3rem;min-width:0;overflow-wrap:anywhere}.cal-card .cal-card-summary.card-action-btn .cal-meta i{flex:0 0 auto;margin:0;font-size:.8em;color:var(--primary-color)!important}.cal-meta--time{font-weight:600;color:#2c3e50;white-space:nowrap}.cal-meta--muted{font-style:italic;opacity:.75}.cal-card .cal-card-summary.card-action-btn .cal-card-chevron{flex:0 0 auto;margin:0;font-size:.85rem;color:var(--secondary-color)!important;transition:transform .2s ease}.cal-card--open .cal-card-summary.card-action-btn .cal-card-chevron{transform:rotate(180deg)}.cal-card-details{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.5rem .6rem .55rem;background:#fafbf7;border-top:1px solid var(--border-color)}.cal-detail{display:flex;flex-wrap:wrap;gap:.15rem .5rem;font-size:.78rem;line-height:1.4;color:#495057}.cal-detail-label{flex:0 0 6.5rem;color:var(--secondary-color)}.cal-comment{display:flex;align-items:flex-start;gap:.4rem;width:100%;padding:.4rem .55rem;font-size:.78rem;line-height:1.4;color:var(--warning-text);background:var(--warning-bg);border:1px solid rgba(230,172,0,.3);border-radius:.25rem;overflow-wrap:anywhere}.cal-comment i{flex:0 0 auto;margin-top:.15rem;font-size:.85em}.cal-card .cal-info-btn.card-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;flex:0 0 auto;width:auto;min-width:0;min-height:2rem;margin-top:.1rem;padding:.3rem .7rem;font-size:.76rem;font-weight:500;color:var(--primary-color)!important;background:#fff!important;border:1px solid var(--primary-color)!important;border-radius:.25rem;box-shadow:none;opacity:1;cursor:pointer}.cal-card .cal-info-btn.card-action-btn:hover{color:#fff!important;background:var(--primary-color)!important;border-color:var(--primary-color)!important;transform:none;box-shadow:none}.cal-card .cal-info-btn--empty.card-action-btn{color:var(--secondary-color)!important;border-color:var(--border-color)!important}.cal-card .cal-info-btn--empty.card-action-btn:hover{color:#fff!important;background:var(--secondary-color)!important;border-color:var(--secondary-color)!important}.cal-card .cal-info-btn.card-action-btn i{margin:0;font-size:.9em;color:inherit!important}.cal-empty{padding:.5rem .6rem;font-size:.78rem;color:var(--secondary-color);background:#fff;border:1px dashed var(--border-color);border-radius:.375rem}.cal-error{margin-bottom:.75rem;padding:.7rem .9rem;font-size:.85rem;color:#842029;background:#f8d7da;border:1px solid #f5c2c7;border-radius:var(--border-radius);text-align:center}.cal-info-modal{max-width:min(900px,95vw);width:100%}.cal-info-body{max-height:70vh}.cal-info-section{margin-bottom:1.25rem}.cal-info-section:last-child{margin-bottom:0}.cal-info-section-header{margin-bottom:.5rem;font-size:clamp(.9rem,3.2vw,1.05rem);font-weight:600;color:#2c3e50}.cal-info-text-box{padding:.8rem .9rem;font-size:clamp(.82rem,3vw,.92rem);line-height:1.6;color:#495057;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--light-bg);border:1px solid var(--border-color);border-radius:.5rem}.cal-info-facility{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.5rem .7rem;font-size:clamp(.82rem,3vw,.92rem);color:#2c3e50;background:rgba(85,131,42,.08);border:1px solid rgba(85,131,42,.2);border-radius:.5rem}.cal-info-facility i{color:var(--primary-color)}.cal-check-list{display:flex;flex-direction:column;gap:.4rem;padding:.75rem;background:#f8fffe;border:1px solid #d1edda;border-radius:.5rem}.cal-check-item{display:flex;align-items:flex-start;gap:.55rem;padding:.5rem .6rem;font-size:clamp(.8rem,2.9vw,.9rem);line-height:1.45;color:#2c3e50;text-align:left;background:#fff;border:1px solid #d1edda;border-radius:.25rem}.cal-check-item i{flex:0 0 auto;margin-top:.15rem;font-size:1.05rem;color:#28a745}@media (min-width:576px){.cal-cards{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));align-items:start}}@media (min-width:768px){.cal-toolbar{padding:.6rem .9rem;gap:.9rem}.cal-day-header{padding:.4rem .8rem}.cal-card .cal-card-summary.card-action-btn{padding:.55rem .7rem}}@media (prefers-reduced-motion:reduce){.cal-card .cal-card-summary.card-action-btn .cal-card-chevron{transition:none}}.news-section{max-width:800px;margin:0 auto;padding:20px}.news-header{color:#2c3e50;font-weight:600;text-align:center;margin-bottom:30px;padding-bottom:10px;border-bottom:2px solid #3498db}.news-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #dee2e6;border-radius:12px;padding:20px;box-shadow:0 4px 6px rgba(0,0,0,.1);transition:transform .2s ease,box-shadow .2s ease}.news-card:hover{transform:translateY(-2px);box-shadow:0 6px 12px rgba(0,0,0,.15)}.news-header-section{display:flex;justify-content:flex-end;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #e9ecef}.news-date{color:#6c757d;font-weight:500;display:flex;align-items:center;gap:6px}.news-date,.news-date i{font-size:.9em}.news-content .news-title{font-weight:700;font-size:1.1em;color:#2c3e50;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #bdc3c7}.news-content .news-text{color:#34495e;line-height:1.6;margin-bottom:8px}.news-content .news-text:last-child{margin-bottom:0}.no-news-card{background:#f8f9fa;border:2px dashed #6c757d;border-radius:12px;padding:40px;text-align:center}.no-news-content{color:#6c757d;font-size:1.1em;font-weight:500}@media (max-width:768px){.news-card,.news-section{padding:15px}.news-header{font-size:1.5em}}