:root{--foliage-900:#1e4d2b;--foliage-700:#2d6a3a;--leaf-600:#2d8538;--leaf-700:#246e2f;--leaf-500:#4fb853;--leaf-300:#a9dda5;--leaf-50:#edf7ec;--mist:#f3f5f1;--surface:#fff;--border:#dde3da;--border-strong:#c5cec2;--ink:#1b2a1f;--text-muted:#5e6b60;--danger:#b4443f;--danger-50:#fbeceb;--warning:#b7791f;--warning-50:#fdf4e3;--radius:10px;--radius-sm:6px;--radius-leaf:14px 4px 14px 4px;--shadow-sm:0 1px 2px #1b2a1f0f;--shadow-md:0 10px 28px #1b2a1f24;--focus-ring:0 0 0 3px #4fb85359;--overlay:#0f231473;--green-default:var(--leaf-600);--primary-color-light:var(--leaf-600);--primary-color-dark:var(--foliage-900)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f3f5f1;background-color:var(--mist);color:#1b2a1f;color:var(--ink);font-family:Public Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45;margin:0}button,input,select,textarea{font-family:inherit}:focus-visible{box-shadow:0 0 0 3px #4fb85359;box-shadow:var(--focus-ring);outline:none}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important}}body,html{background-color:var(--mist);color:var(--ink);height:100%;margin:0;overflow-x:hidden;padding:0;width:100%}.App{display:flex;flex-direction:column;height:100vh;min-height:100vh;text-align:center}h1,h2{color:#fff}form{align-items:center;display:flex;flex-direction:column;gap:10px}.form-field,form{box-sizing:border-box}.form-field{padding:10px;width:100%}.form-container{margin:auto;padding:20px}.form-container button:disabled{cursor:not-allowed;opacity:.55}.form-container.centered{text-align:center}.form-group{margin-bottom:15px}label{display:block;font-weight:600;margin-bottom:5px}input[type=date],input[type=number],input[type=password],input[type=text],select{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);margin:0;padding:10px;transition:border-color .15s ease,box-shadow .15s ease;width:calc(100% - 20px)}input[type=date]:focus,input[type=number]:focus,input[type=password]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:var(--leaf-600);box-shadow:var(--focus-ring);outline:none}.submit-button{align-items:center;background-color:var(--leaf-600);border:1px solid var(--leaf-600);border-radius:12px 4px 12px 4px;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;font-weight:600;gap:6px;justify-content:center;min-height:44px;padding:10px 20px;transition:background-color .15s ease,border-color .15s ease}.submit-button:hover:not(:disabled){background-color:var(--leaf-700);border-color:var(--leaf-700)}.icon-action{align-items:center;background-color:var(--leaf-600)!important;border:none;border-radius:50%;box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;display:inline-flex;font-size:24px;height:52px;justify-content:center;min-height:0;padding:0;position:relative;transition:background-color .15s ease,transform .1s ease;width:52px}.icon-action:hover:not(:disabled){background-color:var(--leaf-700)!important}.icon-action:active:not(:disabled){transform:scale(.95)}.icon-action:focus-visible{box-shadow:var(--focus-ring)}.icon-action:disabled{cursor:not-allowed;opacity:.55}.icon-action.camera-full{background-color:var(--mist)!important;border:1px solid var(--border-strong);box-shadow:none;color:var(--text-muted)}footer{margin-top:auto}.icon-action .icon{height:28px;width:28px}.login-container{background:radial-gradient(60% 50% at 50% 40%,#4fb8531f,#0000 70%),var(--mist);height:100vh;justify-content:center;text-align:center}.login-container,.login-header{align-items:center;display:flex;flex-direction:column}.login-header{margin-bottom:20px}.login-logo{height:80px}.login-container form{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;padding:24px;width:300px}.login-container .form-group{display:flex;flex-direction:column;margin-bottom:15px;text-align:left}.login-container label{color:var(--ink);font-size:14px;margin-bottom:5px}.login-container input{box-sizing:border-box;font-size:16px;padding:10px;width:100%}.login-container button{background-color:var(--leaf-600);border:1px solid var(--leaf-600);border-radius:12px 4px 12px 4px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;min-height:44px;padding:10px 20px;transition:background-color .15s ease,border-color .15s ease}.login-container button:disabled{cursor:not-allowed;opacity:.55}.login-container button:hover:not(:disabled){background-color:var(--leaf-700);border-color:var(--leaf-700)}.login-container .error-message{color:var(--danger);margin-bottom:2px;text-align:center}#username{margin:0}.header-container{text-align:right;top:0}.avatar-text{padding:0 10px}.App-logo{height:auto;width:100px}.header-banner{align-items:center;background-color:var(--foliage-900);box-sizing:border-box;color:#fff;display:flex;justify-content:space-between;padding:10px;position:relative;text-align:left;width:100%}.header-back{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:50%;color:var(--foliage-900);cursor:pointer;display:inline-flex;font-size:18px;height:36px;justify-content:center;margin-top:10px;padding:0;transition:background-color .15s ease,border-color .15s ease;width:36px}.header-back:hover{background:var(--leaf-50);border-color:var(--leaf-300)}.header-logout{background:none;border:none;color:var(--leaf-600);cursor:pointer;font-weight:600;padding:0}.install-banner{align-items:center;background-color:var(--foliage-700);color:#fff;display:flex;justify-content:center;left:0;padding:10px;position:fixed;text-align:center;top:0;width:100%;z-index:1000}.install-button{background-color:var(--leaf-600);border:1px solid var(--leaf-600);border-radius:12px 4px 12px 4px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:10px 20px;transition:background-color .15s ease,border-color .15s ease}.install-button:hover{background-color:var(--leaf-700);border-color:var(--leaf-700)}.menu-container{position:relative}.menu-button{background:none;border:none;color:#fff;cursor:pointer;font-size:24px;padding-right:20px}.dropdown-menu{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;position:absolute;right:0;top:30px;width:190px;z-index:1000}.dropdown-item{background:none;border:none;padding:10px 20px;width:100%}.dropdown-item,.install-strip{color:var(--ink);text-align:left}.install-strip{align-items:center;background-color:var(--leaf-50);border-bottom:1px solid var(--leaf-300);display:flex;flex-wrap:wrap;font-size:14px;gap:8px;justify-content:space-between;margin-bottom:20px;padding:8px 12px}.install-strip .install-button{font-size:14px;padding:6px 16px}.install-strip .install-hint{flex-basis:100%;margin:0;max-width:none}.install-hint{color:var(--text-muted);font-size:13px;line-height:1.4;margin:8px auto 0;max-width:320px}.button-container{display:flex;justify-content:space-between;padding:0 20px}.submit-button.volver{background-color:var(--surface);border-color:var(--border-strong);color:var(--ink)}.submit-button.volver:hover:not(:disabled){background-color:var(--mist);border-color:var(--text-muted)}.error-message{color:var(--danger);display:block;padding:10px 0;text-align:center}.update-notification{animation:slideUp .3s ease-out;bottom:20px;left:50%;max-width:90%;position:fixed;transform:translateX(-50%);width:500px;z-index:9999}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.update-notification-content{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:16px;padding:20px}.update-notification-icon{animation:rotate 2s linear infinite;font-size:32px;text-align:center}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.update-notification-text{text-align:center}.update-notification-text strong{color:var(--foliage-900);display:block;font-size:18px;margin-bottom:8px}.update-notification-text p{color:var(--text-muted);font-size:14px;line-height:1.4;margin:0}.update-notification-actions{display:flex;gap:12px;justify-content:center}.update-notification-actions button{border:none;border-radius:var(--radius-sm);cursor:pointer;flex:1 1;font-size:14px;font-weight:600;max-width:200px;min-height:44px;padding:10px 24px;transition:background-color .15s ease,border-color .15s ease}.update-btn-primary{background:var(--leaf-600);border-radius:12px 4px 12px 4px!important;color:#fff}.update-btn-primary:hover{background:var(--leaf-700)}.update-notification-actions button:disabled,.update-notification-actions button:disabled:active,.update-notification-actions button:disabled:hover{background:var(--text-muted)!important;border-color:var(--text-muted)!important;box-shadow:none;color:#fff!important;cursor:wait;opacity:1;transform:none}.update-btn-secondary{background:var(--surface);border:1px solid var(--border-strong)!important;color:var(--ink)}.update-btn-secondary:hover{background:var(--mist);border-color:var(--text-muted)!important}@media (max-width:600px){.update-notification{bottom:10px;max-width:95%}.update-notification-content{padding:16px}.update-notification-icon{font-size:28px}.update-notification-text strong{font-size:16px}.update-notification-text p{font-size:13px}.update-notification-actions{flex-direction:column}.update-notification-actions button{max-width:100%}}h2{color:var(--foliage-900);margin:0;padding:0 20px}.text-date,h2{text-align:left}.text-date{padding:10px 20px}.flex,.form-group{display:flex;margin-bottom:10px}.form-group{align-items:center}.inline-label{font-size:14px;margin-right:10px;text-align:left;width:100px}.textarea{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px;resize:vertical;width:100%}.dropdown,.textarea{color:var(--ink);font-size:14px}.dropdown option{font-size:16px}.inline-input{flex:1 1}.dropdown{-webkit-appearance:none;appearance:none;background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px}.dropdown:focus{border-color:var(--leaf-600);box-shadow:var(--focus-ring);outline:none}.day-container{align-items:center;display:inline-block;flex-direction:column;justify-content:center}.error-message-form{color:var(--danger);font-size:14px}.image-button{background:none;border:none;cursor:pointer;padding:0}.button-save,.image-button img{display:block}.button-save{text-align:right}.inline-label.icon-action{flex:0 0 52px;margin:0 10px 0 0;text-align:center;width:52px}.spinner-selector{height:20px;width:20px}.spinner,.spinner-selector{animation:spin 1s linear infinite;border:3px solid #1e4d2b1a;border-radius:50%;border-top:3px solid var(--leaf-500);pointer-events:none}.spinner{height:100%;left:-2px;position:absolute;top:-2px;width:100%}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}button:disabled{cursor:not-allowed;opacity:.55}.image-button:disabled{background-color:initial!important}.images-grid{grid-gap:16px;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:grid;gap:16px;grid-template-columns:repeat(2,1fr);min-height:15.5px;padding:8px;width:100%}.image-container{align-items:center;display:flex;flex-direction:column}.image-item{height:auto;max-width:100%}.hidden{display:none}.reportadas-tabs{border-bottom:2px solid var(--leaf-600);display:flex;margin:12px 0}.reportadas-tab{background:var(--mist);border:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--text-muted);cursor:pointer;flex:1 1;font-size:15px;font-weight:500;padding:10px;transition:background-color .15s ease,color .15s ease}.reportadas-tab:hover:not(.active){background:var(--leaf-50);color:var(--foliage-900)}.reportadas-tab.active{background:var(--leaf-600);color:#fff;font-weight:600}.reportadas-table-container{margin:20px 0;overflow-x:auto}.reportadas-table{font-feature-settings:"tnum";background-color:var(--surface);border:1px solid var(--border);border-collapse:initial;border-radius:var(--radius);border-spacing:0;font-variant-numeric:tabular-nums;width:100%}.reportadas-table td,.reportadas-table th{border-bottom:1px solid var(--border);font-size:14px;padding:10px 12px;text-align:left}.reportadas-table th{background-color:var(--mist);color:var(--text-muted);font-size:13px;font-weight:600}.reportadas-table thead th:first-child{border-top-left-radius:var(--radius)}.reportadas-table thead th:last-child{border-top-right-radius:var(--radius)}.reportadas-table tr:last-child td{border-bottom:none}.reportadas-table tbody tr:hover{background-color:var(--leaf-50)}.done-yes{color:var(--leaf-600);font-weight:600}.done-no{color:var(--danger);font-weight:600}.photos-cell{padding:4px 8px!important;text-align:center}.photo-thumbnails-row{flex-wrap:wrap;gap:2px}.photo-thumb-small,.photo-thumbnails-row{align-items:center;display:flex;justify-content:center}.photo-thumb-small{background-color:var(--leaf-50);border:1px solid var(--leaf-300);border-radius:3px;color:var(--leaf-600);font-size:12px;height:20px;width:20px}.photo-count-more{color:var(--leaf-600);font-size:11px;font-weight:600;margin-left:2px}.sync-cell{padding:4px 8px!important;text-align:center}.sync-icon{font-size:16px;font-weight:700}.sync-icon.synced{color:var(--leaf-600)}.sync-icon.pending{color:var(--warning)}.photo-thumb-small.clickable{cursor:pointer;transition:transform .2s ease,background-color .2s ease}.photo-thumb-small.clickable:hover{background-color:var(--leaf-300);transform:scale(1.1)}.photo-modal{align-items:center;animation:fadeIn .3s ease;background-color:#0f2314d9;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.photo-modal-content{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-md);max-height:90vh;max-width:90vw;overflow:hidden;position:relative}.photo-modal-close{align-items:center;background:#0f2314b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;font-weight:700;height:35px;justify-content:center;position:absolute;right:15px;top:10px;transition:background-color .2s ease;width:35px;z-index:1001}.photo-modal-close:hover{background:var(--foliage-900)}.photo-modal-image{display:block;height:auto;max-height:90vh;max-width:100%;width:auto}.photo-error{color:var(--text-muted);font-size:16px;padding:40px;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.photo-count{color:var(--text-muted);font-size:13px;margin:4px 0}.camera-button{background:none;border:none;cursor:pointer;padding:0}.filterable-dropdown{color:var(--ink);display:inline-block;position:relative}.filter-input{box-sizing:border-box;color:var(--ink);width:100%}.filter-input::placeholder{color:var(--text-muted)}.dropdown-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);left:0;list-style:none;margin:0;max-height:200px;overflow-y:auto;padding:0;position:absolute;right:0;top:100%;z-index:1000}.dropdown-item{cursor:pointer;padding:8px}.dropdown-item:hover{background-color:var(--leaf-50)}.filterable-dropdown-error{color:var(--danger);font-size:12px;margin-top:4px}.dropdown.inline-input-si-no{max-width:100px;width:auto}.modal-trigger{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;padding:8px;text-align:left}.modal-overlay{align-items:center;background:var(--overlay);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-md);color:var(--ink);max-width:400px;padding:20px;text-align:left;width:100%}.modal-list{list-style:none;margin:0;max-height:200px;overflow-y:auto;padding:0}.modal-item{padding:8px}.modal-ok-button{background-color:var(--leaf-600);border:none;border-radius:12px 4px 12px 4px;color:#fff;cursor:pointer;font-weight:600;margin-top:20px;min-height:44px;padding:10px 20px;transition:background-color .15s ease}.modal-ok-button:hover{background-color:var(--leaf-700)}.modal-ok-button-container{display:flex;justify-content:center;margin-top:20px}.camera-overlay{align-items:center;background:#000;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.camera-video{height:100%;object-fit:contain;width:100%}.camera-video.hidden{display:none}.camera-flash{background:#fff;bottom:0;left:0;opacity:.6;pointer-events:none;position:absolute;right:0;top:0}.camera-message{color:#fff;font-size:16px;left:24px;position:absolute;right:24px;text-align:center}.camera-fallback-button{background:var(--leaf-600);border-radius:12px 4px 12px 4px;color:#fff;cursor:pointer;display:inline-block;font-weight:600;margin-top:16px;padding:12px 20px}.camera-top-bar{align-items:center;background:linear-gradient(#00000080,#0000);display:flex;flex-direction:column;gap:6px;left:0;padding:16px;position:absolute;right:0;top:0}.camera-count{color:#fff;font-size:16px;font-weight:700}.camera-notice{color:#ffd2d2;font-size:14px}.camera-bottom-bar{align-items:center;background:linear-gradient(#0000,#00000080);bottom:0;display:flex;justify-content:space-between;left:0;padding:24px 16px 32px;position:absolute;right:0}.camera-bottom-spacer,.camera-done-button{width:80px}.camera-done-button{background:none;border:none;color:#fff;cursor:pointer;font-size:17px;font-weight:700;padding:12px 0}.camera-shutter{background:#fff;background-clip:padding-box;border:6px solid #ffffff80;border-radius:50%;cursor:pointer;height:72px;width:72px}.camera-shutter:active{transform:scale(.92)}.camera-shutter:disabled{opacity:.4}.ausencia-note{color:var(--text-muted);font-size:12px;margin:-4px 0 10px 110px;text-align:left}.ausencia-message{background-color:var(--warning-50);border:1px solid var(--warning);border-radius:4px;color:var(--ink);font-size:13px;margin:8px 0;padding:10px 12px;text-align:left}.ausencia-pending{margin:6px 0 0;padding-left:18px}.ausencia-actions{gap:12px;justify-content:space-between}.ausencia-delete{background:none;border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);cursor:pointer;font-size:14px;padding:8px 14px}.ausencia-delete:disabled{cursor:not-allowed;opacity:.5}.ausencia-empty{color:var(--text-muted);font-size:14px;padding:12px 0}.ausencia-list{list-style:none;margin:0;padding:0}.ausencia-list li{margin-bottom:8px}.ausencia-item{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:2px;padding:10px 12px;text-align:left;width:100%}.ausencia-item:disabled{cursor:default;opacity:.7}.ausencia-item-title{font-size:14px;font-weight:600}.ausencia-item-detail{color:var(--text-muted);font-size:13px}.open-in-app{align-items:center;background-color:var(--mist);color:var(--ink);display:flex;flex-direction:column;inset:0;justify-content:center;padding:24px;position:fixed;text-align:center;z-index:3000}.open-in-app h2{color:var(--foliage-900);margin:16px 0 8px}.open-in-app p{line-height:1.5;margin:0;max-width:320px}.open-in-app-logo{height:auto;width:160px}