.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f3f4f6}.login-card{background:#fff;border-radius:10px;box-shadow:0 2px 12px #0000001a;padding:2.5rem 2rem;width:100%;max-width:380px;text-align:center}.login-logo{display:inline-block;background:#1e3a5f;color:#fff;font-weight:800;font-size:1.4rem;letter-spacing:.08em;padding:4px 14px;border-radius:6px;margin-bottom:.75rem}.login-title{font-size:1.1rem;font-weight:600;color:#1e3a5f;margin-bottom:1.75rem;line-height:1.4}.login-form{display:flex;flex-direction:column;gap:1rem;text-align:left}.login-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;color:#374151}.login-form input{padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;outline:none;transition:border-color .15s,box-shadow .15s}.login-form input:focus{border-color:#1e3a5f;box-shadow:0 0 0 3px #1e3a5f1f}.login-error{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;border-radius:6px;padding:.5rem .75rem;font-size:.85rem;margin:0}.login-form button{margin-top:.25rem;background:#1e3a5f;color:#fff;border:none;border-radius:6px;padding:.7rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.login-form button:hover:not(:disabled){background:#16305a}.login-form button:disabled{opacity:.6;cursor:not-allowed}.pw-wrap{position:relative}.pw-wrap input{width:100%;padding-right:2rem;box-sizing:border-box}.pw-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none!important;border:none;padding:0;margin:0!important;cursor:pointer;color:#9ca3af;display:flex;align-items:center;line-height:1;width:auto;font-size:inherit;font-weight:400}.pw-toggle:hover{background:none!important;color:#1e3a5f}.login-row{display:flex;align-items:center;justify-content:space-between;margin-top:-.25rem}.remember-label{display:flex;flex-direction:row;align-items:center;gap:.4rem;font-size:.82rem;font-weight:400;color:#6b7280;cursor:pointer}.remember-label input[type=checkbox]{width:auto;margin:0;cursor:pointer;accent-color:#1e3a5f}.forgot-link{font-size:.82rem;color:#1e3a5f;text-decoration:none}.forgot-link:hover{text-decoration:underline}.reset-steps{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.5rem}.reset-step{display:flex;flex-direction:column;align-items:center;gap:.25rem;opacity:.35}.reset-step.active,.reset-step.done{opacity:1}.reset-step-num{width:1.6rem;height:1.6rem;border-radius:50%;background:#e5e7eb;color:#374151;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center}.reset-step.active .reset-step-num{background:#1e3a5f;color:#fff}.reset-step.done .reset-step-num{background:#16a34a;color:#fff}.reset-step-label{font-size:.7rem;color:#6b7280}.reset-step.active .reset-step-label{color:#1e3a5f;font-weight:600}.login-footer{font-size:.72rem;color:#9ca3af}input[type=password]::-ms-reveal,input[type=password]::-ms-clear,input[type=password]::-webkit-credentials-auto-fill-button{display:none}.field-error{color:#b91c1c;font-size:.78rem;font-weight:400;margin-top:2px}.tl-shell{display:flex;flex-direction:column;height:100dvh;background:#f3f4f6;overflow:hidden;position:relative}.tl-header{display:flex;align-items:center;gap:.5rem;background:#1e3a5f;color:#fff;padding:0 .75rem;height:56px;flex-shrink:0;z-index:10}.tl-back{background:#ffffff26;border:none;color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s}.tl-back:hover{background:#ffffff40}.tl-home{background:#ffffff26;border:none;color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s;margin-left:.35rem}.tl-home:hover{background:#ffffff40}.tl-header-center{flex:1;text-align:center}.tl-header-title{font-size:.9rem;font-weight:700;line-height:1.2}.tl-header-sub{font-size:.72rem;color:#93c5fd;margin-top:1px}.tl-header-spacer{width:36px;flex-shrink:0}.tl-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1rem .75rem .5rem;display:flex;flex-direction:column;gap:3px}.tl-section-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#6b7280;margin-bottom:4px;padding-left:2px}.tl-info-note{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e40af;font-size:.88rem;line-height:1.5;padding:.75rem 1rem;margin-bottom:.75rem}.tl-page-notice{background:#fefce8;border:1.5px solid #fbbf24;border-left:4px solid #f59e0b;border-radius:8px;color:#78350f;font-size:.9rem;line-height:1.55;padding:.85rem 1rem;margin-bottom:1rem}.tl-row{display:flex;align-items:center;gap:.5rem;background:#fff;border-radius:10px;padding:.7rem .85rem;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:1px solid transparent;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 3px #00000012}.tl-row:active,.tl-row:hover{border-color:#93c5fd;box-shadow:0 0 0 3px #93c5fd40}.tl-row-lunch{background:#f8faff;border-color:#dbeafe}.tl-row-callin{background:#fffbf0;border-color:#fde68a}.tl-row-callin:hover,.tl-row-callin:active{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b2e}.tl-row-left{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.tl-row-name{font-size:.88rem;font-weight:600;color:#111827}.tl-row-note{font-size:.68rem;color:#9ca3af;font-style:italic}.tl-callin-badge{font-size:.6rem;font-weight:800;letter-spacing:.06em;background:#f59e0b;color:#fff;border-radius:4px;padding:1px 5px;align-self:flex-start;margin-bottom:2px}.tl-lunch-badge{font-size:.6rem;font-weight:800;letter-spacing:.06em;background:#6b7280;color:#fff;border-radius:4px;padding:1px 5px;align-self:flex-start;margin-bottom:2px}.tl-row-times{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:500;color:#1e3a5f;white-space:nowrap}.tl-to{font-size:.7rem;color:#9ca3af;font-weight:400}.tl-muted{color:#9ca3af}.tl-chevron{color:#9ca3af;flex-shrink:0}.tl-del-btn{background:#ef44441a;border:none;color:#ef4444;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;padding:0;transition:background .15s}.tl-del-btn:hover{background:#ef444433}.tl-add-btn{background:#ef4444;border:none;color:#fff;font-size:.82rem;font-weight:600;padding:.6rem .85rem;border-radius:10px;cursor:pointer;text-align:left;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:background .15s}.tl-add-btn:hover{background:#dc2626}.tl-desc-row{display:flex;flex-direction:column;gap:.35rem;margin-top:1rem;padding:0 .1rem}.tl-desc-label{font-size:.78rem;font-weight:600;color:#374151}.tl-desc-hint{font-weight:400;color:#9ca3af;font-size:.72rem}.tl-desc-input{border:1.5px solid #d1d5db;border-radius:8px;padding:.55rem .75rem;font-size:.85rem;font-family:inherit;outline:none;transition:border-color .15s}.tl-desc-input:focus{border-color:#1e3a5f}.tl-desc-counter{font-size:.7rem;color:#9ca3af;text-align:right}.tl-save-error{margin-top:.5rem;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:.8rem;padding:.6rem .75rem;border-radius:8px;line-height:1.4}.tl-footer{flex-shrink:0;background:#fff;border-top:1px solid #e5e7eb;padding:.75rem .75rem calc(.75rem + env(safe-area-inset-bottom,0));display:flex;flex-direction:column;gap:.5rem}.tl-total-block{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.25rem 0}.tl-total-label{font-size:.72rem;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.tl-total-val{font-size:2rem;font-weight:800;color:#1e3a5f;letter-spacing:-.03em;line-height:1}.tl-total-unit{font-size:1rem;font-weight:600;color:#6b7280;margin-left:2px}.tl-total-hint{font-size:.7rem;color:#9ca3af;font-style:italic}.tl-save-btn{background:#1e3a5f;color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;padding:.8rem;cursor:pointer;font-family:inherit;letter-spacing:.01em;-webkit-tap-highlight-color:transparent;transition:background .15s}.tl-save-btn:hover:not(:disabled){background:#2a4f80}.tl-save-btn:disabled{background:#9ca3af;cursor:not-allowed}.tl-save-err{margin:0 0 .5rem;padding:.5rem .75rem;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;color:#b91c1c;font-size:.85rem;text-align:center}.tl-backdrop{position:fixed;inset:0;background:#00000073;z-index:40;animation:fadeIn .15s ease-out}.tl-modal{position:fixed;bottom:0;left:0;right:0;z-index:50;background:#fff;border-radius:16px 16px 0 0;padding:.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom,0));animation:slideUpModal .24s ease-out}@keyframes slideUpModal{0%{transform:translateY(100%)}to{transform:translateY(0)}}.tl-modal-handle{width:36px;height:4px;background:#d1d5db;border-radius:2px;margin:.35rem auto .75rem}.tl-modal-title{font-size:1rem;font-weight:700;color:#111827;text-align:center;margin-bottom:1.25rem}.tl-time-pair{display:flex;align-items:flex-start;gap:.5rem}.tl-time-block{flex:1;display:flex;flex-direction:column;gap:.35rem}.tl-pair-sep{font-size:.78rem;color:#9ca3af;font-weight:500;margin-top:2.2rem;flex-shrink:0}.tl-time-lbl{font-size:.72rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.tl-time-input{font-size:1.8rem;font-weight:700;font-family:SF Mono,Fira Code,monospace;color:#111827;border:2px solid #d1d5db;border-radius:10px;padding:.45rem .6rem;text-align:center;width:100%;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;letter-spacing:.05em}.tl-time-input:focus{border-color:#1e3a5f;box-shadow:0 0 0 3px #1e3a5f26}.tl-input-locked{background:#f3f4f6;color:#9ca3af;border-color:#e5e7eb;cursor:not-allowed}.tl-12h-preview{font-size:.8rem;color:#6b7280;text-align:center;font-weight:500}.tl-modal-duration{display:flex;align-items:center;gap:.6rem;margin-top:.75rem}.tl-modal-duration-badge{font-size:.9rem;font-weight:700;color:#fff;background:#374151;border-radius:999px;padding:.2rem .7rem}.tl-modal-lunch-hint{font-size:.75rem;font-weight:600;color:#0369a1;background:#e0f2fe;border-radius:999px;padding:.2rem .6rem}.tl-modal-lunch-info{margin-top:.6rem;font-size:.75rem;color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:.35rem .65rem}.tl-modal-err{margin-top:.75rem;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:.8rem;padding:.5rem .75rem;border-radius:8px;text-align:center;line-height:1.4}.tl-modal-actions{display:flex;gap:.6rem;margin-top:1.25rem}.tl-modal-cancel{flex:1;background:#f3f4f6;color:#374151;border:none;border-radius:10px;padding:.75rem;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent}.tl-modal-cancel:hover{background:#e5e7eb}.tl-modal-save{flex:2;background:#1e3a5f;color:#fff;border:none;border-radius:10px;padding:.75rem;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:background .15s}.tl-modal-save:hover{background:#2a4f80}.dl-shell{position:fixed;inset:0;display:flex;flex-direction:column;background:#f4f6f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;z-index:100}.dl-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#1e3a5f;color:#fff;position:sticky;top:0;z-index:10;flex-shrink:0}.dl-back{background:none;border:none;color:#fff;cursor:pointer;padding:.25rem;display:flex;align-items:center;border-radius:6px;-webkit-tap-highlight-color:transparent}.dl-back:hover{background:#ffffff1f}.dl-home{background:none;border:none;color:#fff;cursor:pointer;padding:.25rem;display:flex;align-items:center;border-radius:6px;-webkit-tap-highlight-color:transparent;margin-left:.1rem}.dl-home:hover{background:#ffffff1f}.dl-header-center{flex:1;min-width:0}.dl-header-title{font-size:1rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-header-date{font-size:.72rem;font-weight:400;color:#ffffff8c;margin-left:.4rem}.dl-header-sub{font-size:.82rem;font-weight:600;color:#ffffffeb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.05rem}.dl-header-sub--secondary{font-size:.75rem;color:#fde68a;font-weight:600}.dl-header-spacer{width:28px;flex-shrink:0}.dl-announcement{display:flex;align-items:flex-start;gap:.5rem;margin:.6rem .9rem 0;padding:.6rem .85rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;font-size:.82rem;color:#78350f;line-height:1.45}.dl-announcement-icon{flex-shrink:0;font-size:.95rem;margin-top:1px}.dl-announcement-text{flex:1;white-space:pre-wrap}.dl-scroll{flex:1;overflow-y:auto;padding:.75rem .9rem 1rem;display:flex;flex-direction:column;gap:.4rem;-webkit-overflow-scrolling:touch}.dl-remaining{display:flex;justify-content:space-between;align-items:center;border-radius:10px;padding:.65rem .85rem;margin-bottom:.2rem}.dl-remaining--deficit{background:#fef2f2;border:1.5px solid #fca5a5;color:#b91c1c}.dl-remaining--over{background:#fff7ed;border:1.5px solid #fdba74;color:#c2410c}.dl-remaining--ok{background:#f0fdf4;border:1.5px solid #86efac;color:#15803d}.dl-remaining-label{font-size:.82rem;font-weight:600}.dl-remaining-val{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}.dl-section-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;margin-top:.6rem;padding-left:.1rem}.dl-help-box{background:#fefce8;border:1px solid #fbbf24;border-left:4px solid #f59e0b;border-radius:8px;padding:.65rem .85rem;font-size:.82rem;color:#78350f;line-height:1.5;margin-top:.4rem}.dl-entry-row{display:flex;align-items:center;gap:.4rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem .75rem;font-size:.83rem}.dl-entry-row--callin{background:#fef9ec;border-color:#fde68a}.dl-entry-label{flex:1;font-weight:600;color:#1e293b;display:flex;align-items:center;gap:.35rem}.dl-callin-badge{font-size:.6rem;font-weight:700;letter-spacing:.04em;background:#f59e0b;color:#fff;border-radius:3px;padding:1px 4px}.dl-entry-times{font-variant-numeric:tabular-nums;color:#475569;font-size:.8rem}.dl-entry-dur{font-weight:700;color:#1e3a5f;font-variant-numeric:tabular-nums;min-width:3.2rem;text-align:right}.dl-assign-row{display:flex;gap:.5rem;margin-top:.15rem}.dl-assign-btn{flex:1;background:#1e3a5f;color:#fff;border:none;border-radius:10px;padding:.65rem .85rem;font-size:.88rem;font-weight:600;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.dl-assign-btn:hover{background:#2a4f80}.dl-repeat-btn{background:#e2e8f0;color:#334155;border:none;border-radius:10px;padding:.65rem .75rem;font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:background .15s}.dl-repeat-btn:hover{background:#cbd5e1}.dl-empty{text-align:center;color:#94a3b8;font-size:.85rem;font-style:italic;padding:1.5rem 0}.dl-card{border-radius:10px;border:1.5px solid rgba(0,0,0,.15);padding:.45rem .75rem;cursor:pointer;transition:filter .12s;-webkit-tap-highlight-color:transparent}.dl-card:hover{filter:brightness(.95)}.dl-card--callin{border-style:dashed}.dl-card--locked{cursor:default;opacity:.85}.dl-card--locked:hover{filter:none}.dl-card-header{display:flex;align-items:center;gap:.45rem;min-width:0}.dl-card-code{font-size:.82rem;font-weight:700;color:#000;flex-shrink:0}.dl-card-name{flex:1;font-size:.8rem;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.dl-card-times{font-size:.78rem;font-weight:600;color:#1e293b;font-variant-numeric:tabular-nums;flex-shrink:0}.dl-card-del{background:none;border:none;font-size:1.1rem;line-height:1;color:#00000073;cursor:pointer;padding:0 .15rem;flex-shrink:0;-webkit-tap-highlight-color:transparent}.dl-card-del:hover{color:#dc2626}.dl-footer{flex-shrink:0;padding:.65rem .9rem;background:#fff;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:.4rem}.dl-save-err{font-size:.78rem;color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:.4rem .6rem}.dl-leave-warn{font-size:.84rem;font-weight:600;color:#7f1d1d;background:#fef2f2;border:2px solid #dc2626;border-radius:8px;padding:.65rem .8rem;line-height:1.45}.dl-save-btn{padding:.85rem;background:#16a34a;color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,opacity .15s}.dl-save-btn:hover:not(:disabled){background:#15803d}.dl-save-btn:disabled{opacity:.45;cursor:not-allowed}.dl-backdrop{position:fixed;inset:0;background:#00000073;z-index:40}.dl-picker-modal{position:fixed;top:0;left:0;right:0;max-height:85dvh;background:#fff;border-radius:0 0 18px 18px;z-index:50;display:flex;flex-direction:column;padding:env(safe-area-inset-top,0) 0 0}.dl-modal-handle{width:36px;height:4px;background:#cbd5e1;border-radius:2px;margin:.55rem auto .3rem;flex-shrink:0}.dl-picker-title{font-size:1rem;font-weight:700;color:#1e293b;text-align:center;padding:.25rem 1rem .4rem;flex-shrink:0}.dl-fema-header{background:#dc2626;padding:.6rem 1rem;margin:.25rem .75rem .3rem;border-radius:8px;flex-shrink:0}.dl-fema-primary{font-size:.95rem;font-weight:700;color:#fff;text-align:center}.dl-fema-hint{font-size:.75rem;color:#ffffffd9;text-align:center;margin-top:.2rem}.dl-fema-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:#dc2626;color:#fff;border:none;border-radius:10px;padding:.75rem 1rem;font-family:inherit;font-size:1.05rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.dl-fema-btn:hover,.dl-fema-btn--active{background:#b91c1c}.dl-fema-btn-sub{font-size:.8rem;font-weight:400;letter-spacing:0;text-transform:none;opacity:.9}.dl-fema-clear{margin-left:auto;font-size:.9rem;opacity:.75;flex-shrink:0}.dl-picker-search{margin:0 .75rem .4rem;flex-shrink:0;border:1.5px solid #d1d5db;border-radius:8px;padding:.5rem .7rem;font-size:.88rem;font-family:inherit;outline:none}.dl-picker-search:focus{border-color:#1e3a5f}.dl-picker-list{flex:1;overflow-y:auto;padding:0 .75rem}.dl-picker-cat-label{font-size:.65rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8;margin:.5rem 0 .2rem}.dl-picker-item{display:flex;align-items:center;gap:.6rem;width:100%;border:1.5px solid rgba(0,0,0,.12);border-radius:8px;padding:.55rem .7rem;margin-bottom:.35rem;cursor:pointer;font-family:inherit;text-align:left;-webkit-tap-highlight-color:transparent;transition:filter .1s}.dl-picker-item:hover{filter:brightness(.93)}.dl-picker-code{font-size:.88rem;font-weight:700;color:#000;min-width:2.5rem}.dl-picker-desc{font-size:.8rem;color:#1e293b;flex:1}.dl-picker-empty{text-align:center;color:#94a3b8;font-size:.85rem;padding:1.5rem 0}.dl-picker-cancel{margin:.5rem .75rem;padding:.7rem;background:#dc2626;color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:700;cursor:pointer;font-family:inherit;flex-shrink:0;-webkit-tap-highlight-color:transparent}.dl-picker-cancel:hover{background:#b91c1c}.dl-form-modal{position:fixed;top:0;left:0;right:0;max-height:92dvh;background:#fff;border-radius:0 0 18px 18px;z-index:50;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0);overflow-y:auto}.dl-form-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem .45rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.dl-form-title{font-size:1rem;font-weight:700;color:#1e293b}.dl-form-close{background:none;border:none;font-size:1.3rem;color:#94a3b8;cursor:pointer;padding:0 .2rem;-webkit-tap-highlight-color:transparent}.dl-form-close:hover{color:#ef4444}.dl-form-scroll{flex:1;overflow-y:auto;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.65rem}.dl-callin-flag{display:flex;align-items:center;gap:.5rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:.45rem .65rem}.dl-callin-flag-badge{font-size:.65rem;font-weight:800;letter-spacing:.06em;color:#fff;background:#2563eb;border-radius:4px;padding:2px 6px;flex-shrink:0}.dl-callin-flag-text{font-size:.75rem;color:#1d4ed8;font-weight:500}.dl-form-code-badge{border-radius:8px;border:none;padding:.6rem .75rem;text-align:left;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;gap:.15rem;-webkit-tap-highlight-color:transparent;transition:filter .1s}.dl-form-code-badge:hover{filter:brightness(.93)}.dl-form-code-lbl{font-size:.68rem;font-weight:600;color:#0000008c}.dl-form-code-val{font-size:.9rem;font-weight:700;color:#000}.dl-form-fema-val{font-size:.78rem;color:#dc2626;font-weight:600}.dl-form-time-row{display:flex;align-items:flex-start;gap:.5rem}.dl-form-time-block{flex:1;display:flex;flex-direction:column;gap:.2rem}.dl-form-sep{align-self:center;padding-top:1.5rem;font-size:.85rem;color:#94a3b8}.dl-form-lbl{font-size:.75rem;font-weight:600;color:#475569}.dl-required{color:#dc2626}.dl-fema-min{font-size:.68rem;color:#dc2626}.dl-form-time-input{font-size:1.5rem;font-weight:700;font-family:SF Mono,Fira Code,monospace;border:2px solid #d1d5db;border-radius:8px;padding:.35rem .5rem;text-align:center;outline:none;width:100%;transition:border-color .15s}.dl-form-time-input:focus{border-color:#1e3a5f}.dl-form-time-input--locked{background:#f3f4f6;color:#6b7280;cursor:not-allowed;border-color:#e5e7eb}.dl-form-time-input--locked:focus{border-color:#e5e7eb}.dl-form-locked-hint{font-size:.7rem;color:#9ca3af;text-align:center;margin-top:2px}.dl-form-12h{font-size:.75rem;color:#dc2626;text-align:center;font-weight:600}.dl-form-field{display:flex;flex-direction:column;gap:.2rem}.dl-form-textarea{border:1.5px solid #d1d5db;border-radius:8px;padding:.45rem .6rem;font-size:.88rem;font-family:inherit;resize:vertical;outline:none;transition:border-color .15s}.dl-form-textarea:focus{border-color:#1e3a5f}.dl-form-input{border:1.5px solid #d1d5db;border-radius:8px;padding:.45rem .6rem;font-size:.88rem;font-family:inherit;outline:none;transition:border-color .15s}.dl-form-input:focus{border-color:#1e3a5f}.dl-form-err{font-size:.78rem;color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:.4rem .6rem}.dl-form-save-btn{padding:.8rem;background:#16a34a;color:#fff;border:none;border-radius:10px;font-size:.92rem;font-weight:700;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:background .15s;margin-top:.2rem}.dl-form-save-btn:hover{background:#15803d}.dl-form-del-btn{padding:.65rem;background:none;color:#dc2626;border:1.5px solid #fca5a5;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:background .15s}.dl-form-del-btn:hover{background:#fef2f2}.dl-summary-card{margin:1rem 0 .5rem;border:1.5px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#f8fafc}.dl-summary-row{display:flex;justify-content:space-between;align-items:center;padding:.55rem .9rem;border-bottom:1px solid #e2e8f0;font-size:.88rem;color:#374151}.dl-summary-row:last-child{border-bottom:none}.dl-summary-label{font-weight:500;display:flex;flex-direction:column;gap:1px}.dl-summary-hint{font-size:.68rem;font-weight:400;color:#9ca3af;line-height:1.3}.dl-summary-val{font-weight:700;font-variant-numeric:tabular-nums}.dl-summary-row--highlight{font-size:.9rem;background:#f1f5f9}.dl-summary-row--highlight.dl-remaining--deficit{background:#fff0f0;color:#b91c1c}.dl-summary-row--highlight.dl-remaining--over{background:#fffbeb;color:#92400e}.dl-summary-row--highlight.dl-remaining--ok{background:#f0fdf4;color:#166534}.dl-summary-row--warn{background:#fffbeb;color:#92400e}.dl-summary-row--error{background:#fef2f2;color:#991b1b}.dl-summary-row--ot{background:#f0fdf4;color:#15803d}.dl-ot-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92vw,380px);background:#fff;border-radius:16px;z-index:50;padding:1.5rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.85rem;box-shadow:0 8px 32px #00000038}.dl-ot-title{font-size:1.15rem;font-weight:700;color:#0f172a;text-align:center}.dl-ot-sub{font-size:.82rem;color:#64748b;text-align:center;margin:0}.dl-ot-split-labels{display:flex;justify-content:space-between;align-items:flex-end}.dl-ot-split-val{display:flex;flex-direction:column;gap:2px}.dl-ot-split-val--comp{align-items:flex-start}.dl-ot-split-val--pay{align-items:flex-end}.dl-ot-split-num{font-size:1.35rem;font-weight:700;line-height:1}.dl-ot-split-val--comp .dl-ot-split-num{color:#15803d}.dl-ot-split-val--pay .dl-ot-split-num{color:#0f172a}.dl-ot-split-lbl{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.dl-ot-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:#e2e8f0}.dl-ot-bar-comp{background:#15803d;transition:width .1s}.dl-ot-bar-pay{background:#94a3b8;transition:width .1s}.dl-ot-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:#e2e8f0;outline:none;cursor:pointer}.dl-ot-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:#15803d;border:3px solid #fff;box-shadow:0 1px 6px #15803d66;cursor:grab}.dl-ot-range::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#15803d;border:3px solid #fff;box-shadow:0 1px 6px #15803d66;cursor:grab}.dl-ot-range-ends{display:flex;justify-content:space-between;font-size:.72rem;color:#94a3b8;margin-top:-.4rem}.dl-ot-row{display:flex;align-items:center;gap:.75rem;justify-content:space-between}.dl-ot-row label{font-size:.88rem;font-weight:600;color:#334155;white-space:nowrap}.dl-ot-row input{width:100px;padding:.45rem .6rem;border:1.5px solid #cbd5e1;border-radius:8px;font-size:.95rem;text-align:right;color:#0f172a}.dl-ot-total{text-align:center;font-size:.92rem;font-weight:600;padding:.4rem 0;border-radius:8px}.dl-ot-total--ok{background:#f0fdf4;color:#15803d}.dl-ot-total--err{background:#fef2f2;color:#b91c1c}.dl-ot-bank{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;padding:.6rem .75rem;display:flex;flex-direction:column;gap:.3rem}.dl-ot-bank-row{display:flex;justify-content:space-between;font-size:.84rem;color:#475569}.dl-ot-bank-row span:last-child{font-weight:700;color:#0f172a}.dl-ot-bank-row--projected span:last-child{color:#15803d}.dl-ot-bank-cap{font-size:.75rem;color:#94a3b8;text-align:right;margin-top:.1rem}.dl-ot-bank-cap-row{display:flex;justify-content:space-between;font-size:.84rem;font-weight:700;color:#475569;border-top:1.5px dashed #cbd5e1;margin-top:.25rem;padding-top:.3rem}.dl-ot-bank-cap-row span:last-child{color:#475569}.dl-ot-bank-cap-row--warn{color:#b91c1c;border-top-color:#fca5a5;background:#fef2f2;border-radius:6px;padding:.35rem .5rem;margin:.2rem -.1rem 0}.dl-ot-bank-cap-row--warn span:last-child{color:#b91c1c}.dl-ot-cap-err{background:#fef2f2;border:1.5px solid #fca5a5;border-radius:8px;color:#b91c1c;font-size:.82rem;font-weight:600;padding:.5rem .75rem;text-align:center}.dl-ot-cap-warn{background:#fffbeb;border:1.5px solid #fcd34d;border-radius:8px;color:#92400e;font-size:.82rem;font-weight:600;padding:.5rem .75rem;text-align:center}.dl-ot-cancel{background:none;border:1.5px solid #cbd5e1;border-radius:10px;padding:.6rem;font-size:.92rem;color:#64748b;cursor:pointer;font-weight:600}.dl-ot-cancel:hover{background:#f8fafc}.submission-page{padding-bottom:1.5rem}.sub-pp-label{font-size:.82rem;color:var(--text-muted, #888);margin:0 0 1rem;padding:0 1rem}.sub-table-name{font-size:.9rem;font-weight:600;color:#1e3a5f;margin-bottom:.4rem}.tih-row{display:flex;align-items:center;flex-wrap:nowrap;background:#1e3a5f;color:#fff;border-radius:4px 4px 0 0;padding:4px 10px;margin-bottom:0;font-size:.75rem;white-space:nowrap;min-width:max-content;width:100%;box-sizing:border-box}.tih-wrap{display:inline-block;min-width:100%}.tih-field{display:flex;flex-direction:column;padding:0 12px;line-height:1.3}.tih-field:first-child{padding-left:0}.tih-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:#93b8d8;font-weight:600}.tih-sep{width:1px;height:28px;background:#fff3;flex-shrink:0}.acc-list{display:flex;flex-direction:column;gap:.75rem;padding:0 .75rem}.acc-card{border:1px solid var(--border, #e0e0e0);border-radius:10px;overflow:hidden;background:var(--card-bg, #fff);box-shadow:0 1px 3px #0000000f}.acc-header{width:100%;display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;background:none;border:none;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.acc-header:active{background:var(--hover-bg, #f5f5f5)}.acc-title{flex:1;font-size:.95rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.acc-badge{font-size:.73rem;font-weight:700;padding:.15rem .5rem;border-radius:99px;background:var(--accent-light, #e8f0fe);color:var(--accent, #1a73e8);min-width:1.4rem;text-align:center}.accordion-chevron{flex-shrink:0;color:var(--text-muted, #888);transition:transform .18s ease}.accordion-chevron--open{transform:rotate(180deg)}.acc-body{border-top:1px solid var(--border, #e0e0e0)}.acc-scroll{overflow-x:auto;overflow-y:auto;max-height:55vh;-webkit-overflow-scrolling:touch}.sub-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.8rem;border:1px solid #d1d5db}.sub-table thead{position:sticky;top:0;z-index:2;background:var(--header-bg, #f8f9fa)}.sub-table th{padding:.5rem .65rem;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted, #666);border-bottom:2px solid #94a3b8;border-right:1px solid #d1d5db;white-space:nowrap}.sub-table th:last-child{border-right:none}.sub-table td{padding:.45rem .65rem;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;white-space:nowrap;vertical-align:top;color:var(--text-primary, #1a1a1a)}.sub-table td:last-child{border-right:none}.sub-table tbody tr:last-child td{border-bottom:none}.sub-table tbody tr:hover td{background:var(--hover-bg, #fafafa)}.sub-table tbody tr.row-call-in td{color:#c0392b;font-weight:600}.sub-table tbody tr.row-call-in:hover td{background:#fff5f5}.sub-table tbody tr.row-leave td{color:#16a34a;font-weight:600}.sub-table tbody tr.row-leave:hover td{background:#f0fdf4}.sub-table td.num,.sub-table th.col-num{text-align:right;font-variant-numeric:tabular-nums}.sub-table th.col-sep,.sub-table td.col-sep{border-left:1px solid var(--border, #e0e0e0)}.sub-table td.col-callin-day{color:#1d4ed8;font-style:italic;text-align:center}.sub-table td.col-callin-day .ci-block,.sub-table td .ci-block{white-space:nowrap;color:#1d4ed8;font-style:italic}.sub-table td.col-callin-day .ci-block+.ci-block:before,.sub-table td .ci-block+.ci-block:before{content:"  |  "}.tl-shifts{display:flex;flex-wrap:wrap;gap:.3rem}.tl-shift-block{display:inline-block;padding:.1rem .35rem;border:1px solid #cbd5e1;border-radius:3px;font-size:.72rem;white-space:nowrap;background:#f1f5f9}.tl-shift-ci{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;font-style:italic}.tl-total-row{border-top:2px solid #1e3a5f;font-weight:700;font-size:.9rem;background:#f1f5f9}.tl-total-row .tl-total-label{text-align:right;padding-right:1rem;color:#1e3a5f}.tl-total-row td.num{font-weight:700}th.col-ot-status,td.col-ot-status{text-align:center;white-space:nowrap;min-width:90px}th.col-notes,td.col-notes{min-width:120px;font-size:.74rem;color:#475569}.ot-st-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:.75rem;font-weight:600}.ot-st-approved{background:#dcfce7;color:#15803d}.ot-st-denied{background:#fee2e2;color:#dc2626}.ot-st-pending{background:#fef9c3;color:#92400e}.ot-st-na{color:#9ca3af}.ta-table{font-size:.75rem;border-collapse:collapse;border:1px solid #d1d5db}.ta-table th,.ta-table td{border:1px solid #d1d5db}.ta-table .ta-date{min-width:68px;text-align:center}.ta-table .ta-buf{min-width:28px;text-align:center}.ta-buf--label{font-weight:700!important;color:#001f3f}.ta-group-hdr td,.ta-group-hdr th{padding:2px 4px}.ta-group-label{text-align:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#e2e8f0;color:#334155;border-bottom:2px solid #94a3b8}.ta-group-label--leave{background:#dcfce7;color:#166534;border-bottom:2px solid #86efac}.ta-table .ta-code{min-width:36px;text-align:center;font-size:.68rem}.ta-code--red{color:#dc2626!important}.ta-code--fema{color:#ea580c!important}.ta-table .ta-cell{min-width:36px;text-align:center}.ta-cell--red{color:#dc2626;font-weight:700}.ta-cell--fema{color:#ea580c;font-weight:700}.ta-table .ta-sum{min-width:52px;text-align:right;background:#f5f5f5}.ta-table .ta-desc{min-width:100px;max-width:160px;font-size:.7rem;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ta-office-row .ta-desc{background:#fff!important;border-top-color:transparent!important;border-bottom-color:transparent!important;border-right-color:transparent!important}.ta-grp-work{background:#001f3f;color:#fff;font-weight:700;text-align:center;font-size:.7rem}.ta-grp-leave{background:#bfdbfe;color:#1e3a5f;font-weight:700;text-align:center;font-size:.7rem}.ta-grp-blank{background:transparent}.ta-total-row td{font-weight:700;background:#f0f0f0}.ta-total-toggle-row td{padding:0;background:#f8f8f8;border-top:1px solid #ddd}.ta-total-toggle-btn{background:none;border:none;cursor:pointer;font-size:.72rem;color:#6b7280;padding:4px 8px;width:100%;text-align:left}.ta-total-toggle-btn:hover{color:#111}.ta-spacer td{height:10px;border:none!important;background:transparent}.ta-office-hdr td{font-weight:700;font-size:.72rem;color:#001f3f;border-top:2px solid #001f3f!important;border-bottom:1px solid #001f3f!important;padding:3px 6px}.ta-office-row td{height:32px;vertical-align:middle}.ta-wage-cell{font-weight:700;color:#166534;text-align:right;padding-right:6px!important;font-size:.8rem}.ta-office-codes td{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted, #666);background:var(--header-bg, #f8f9fa);text-align:center;border-bottom:1px solid var(--border, #e0e0e0)}.sub-empty{padding:1rem;font-size:.85rem;color:var(--text-muted, #888);margin:0}.print-btn-row{display:flex;justify-content:flex-end;padding:.4rem .75rem .2rem}.btn-print{font-size:.78rem;padding:.3rem .8rem;border:1.5px solid #1e3a5f;border-radius:5px;background:#fff;color:#1e3a5f;cursor:pointer;font-weight:600;letter-spacing:.02em}.btn-print:hover{background:#e8eef7}.sub-sign-section{padding:1.25rem 1rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.sub-sign-btn{padding:.65rem 2rem;background:#1e3a5f;color:#fff;font-size:.9rem;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:background .15s}.sub-sign-btn:hover{background:#162d4a}.sub-sign-btn--resubmit{background:#64748b;font-size:.8rem;padding:.4rem 1.2rem}.sub-sign-btn--resubmit:hover{background:#475569}.sub-sign-btn--incomplete{background:#cbd5e1;color:#64748b;cursor:not-allowed;opacity:.85}.sub-sign-btn--incomplete:hover{background:#cbd5e1}.sub-sign-incomplete{display:flex;flex-direction:column;align-items:center;gap:.4rem}.sub-sign-incomplete-hint{font-size:.75rem;color:#94a3b8;text-align:center}.sub-sign-status{display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center}.sub-sign-badge{display:inline-block;font-size:.78rem;font-weight:700;padding:3px 12px;border-radius:20px}.sub-sign-badge--submitted{background:#dcfce7;color:#15803d}.sub-sign-badge--approved{background:#bbf7d0;color:#166534;border:1px solid #86efac}.sub-sign-badge--pending{background:#fef9c3;color:#854d0e}.sub-sign-badge--correction{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.sub-sign-meta{font-size:.78rem;color:#64748b}.sub-sign-meta--correction{font-size:.78rem;color:#c2410c;font-style:italic}.sig-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.sig-modal{background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000038;width:100%;max-width:480px;display:flex;flex-direction:column;overflow:hidden}.sig-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid #e2e8f0;background:#1e3a5f;color:#fff}.sig-header-title{font-size:1rem;font-weight:700;letter-spacing:.02em}.sig-close-btn{background:none;border:none;color:#cbd5e1;font-size:1.1rem;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.sig-close-btn:hover{color:#fff;background:#ffffff26}.sig-section{padding:.85rem 1.25rem;border-bottom:1px solid #f1f5f9}.sig-section:last-child{border-bottom:none}.sig-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.3rem;font-size:.85rem}.sig-row:last-child{margin-bottom:0}.sig-label{color:#64748b;white-space:nowrap;flex-shrink:0}.sig-val{color:#1e293b}.sig-val--bold{font-weight:700}.sig-totals-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:.6rem}.sig-totals-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.sig-total-cell{display:flex;flex-direction:column;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.45rem .25rem}.sig-total-cell--total{background:#eff6ff;border-color:#bfdbfe}.sig-total-num{font-size:1rem;font-weight:700;color:#1e3a5f}.sig-total-cell--total .sig-total-num{color:#1d4ed8}.sig-total-lbl{font-size:.65rem;color:#94a3b8;margin-top:2px;text-align:center}.sig-prior{background:#fffbeb;border-color:#fde68a}.sig-prior-label{font-size:.8rem;font-weight:700;color:#92400e;margin-bottom:.2rem}.sig-prior-detail{font-size:.8rem;color:#78350f}.sig-prior-note{font-size:.75rem;color:#b45309;margin-top:.3rem;font-style:italic}.sig-cert-text{font-size:.8rem;color:#334155;line-height:1.55;font-style:italic;background:#f8fafc}.sig-name-section{padding-bottom:.75rem}.sig-name-label{display:block;font-size:.75rem;font-weight:700;color:#475569;margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.05em}.sig-name-input{width:100%;box-sizing:border-box;padding:.55rem .75rem;font-size:.95rem;font-family:Georgia,serif;border:2px solid #cbd5e1;border-radius:6px;color:#1e293b;transition:border-color .15s}.sig-name-input:focus{outline:none;border-color:#1e3a5f}.sig-footer{display:flex;justify-content:flex-end;gap:.6rem;padding:.85rem 1.25rem;border-top:1px solid #e2e8f0;background:#f8fafc}.sig-btn{padding:.5rem 1.25rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;border:none;transition:background .15s,opacity .15s}.sig-btn:disabled{opacity:.55;cursor:not-allowed}.sig-btn--cancel{background:#e2e8f0;color:#475569}.sig-btn--cancel:hover:not(:disabled){background:#cbd5e1}.sig-btn--confirm{background:#1e3a5f;color:#fff}.sig-btn--confirm:hover:not(:disabled){background:#162d4a}.sig-btn--approve{background:#15803d}.sig-btn--approve:hover:not(:disabled){background:#166534}.app-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:#f3f4f6}.mobile-header{display:flex;align-items:center;justify-content:space-between;background:#1e3a5f;color:#fff;padding:0 1rem;height:52px;flex-shrink:0;z-index:10}.header-logo{font-weight:800;font-size:1.1rem;letter-spacing:.06em;background:#fff;color:#1e3a5f;padding:2px 8px;border-radius:4px}.header-right{display:flex;flex-direction:row;align-items:center;gap:.6rem}.header-user-btn{background:none;border:none;padding:0;cursor:pointer;font-size:.78rem;color:#93c5fd;text-decoration:underline dotted;text-underline-offset:3px;font-family:inherit;-webkit-tap-highlight-color:transparent}.header-user-btn:hover{color:#fff}.header-username{font-size:.78rem;color:#93c5fd}.uim-sheet{position:fixed;bottom:0;left:0;right:0;z-index:50;background:#fff;border-radius:16px 16px 0 0;max-height:85dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:slideUp .25s ease-out;padding-bottom:env(safe-area-inset-bottom,0)}.uim-body{padding:.5rem 1.25rem 2rem;display:flex;flex-direction:column;align-items:center}.uim-avatar{width:56px;height:56px;border-radius:50%;background:#1e3a5f;color:#fff;font-size:1.3rem;font-weight:700;display:flex;align-items:center;justify-content:center;text-transform:uppercase;margin-bottom:.5rem}.uim-name{font-size:1rem;font-weight:700;color:#111827}.uim-email{font-size:.78rem;color:#9ca3af;margin-bottom:1rem}.uim-section{width:100%;margin-top:1rem}.uim-section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;margin-bottom:.4rem;padding-bottom:4px;border-bottom:1px solid #f3f4f6}.uim-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid #f9fafb;font-size:.875rem}.uim-row:last-child{border-bottom:none}.uim-label{color:#6b7280}.uim-value{font-weight:600;color:#111827;text-align:right;text-transform:capitalize}.uim-no-rules{font-size:.82rem;color:#9ca3af;margin-top:1rem}.hdr-comp-badge{display:flex;flex-direction:column;align-items:center;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.2rem .5rem;flex-shrink:0;min-width:52px}.hdr-comp-label{font-size:.55rem;font-weight:700;letter-spacing:.06em;color:#fff9;line-height:1}.hdr-comp-val{font-size:.82rem;font-weight:700;color:#fff;line-height:1.2}.hdr-supervisor-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.35);color:#93c5fd;border-radius:6px;padding:4px 10px;font-size:.75rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0}.hdr-supervisor-btn:hover{background:#ffffff38;color:#fff}.mobile-main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:1rem}.month-nav{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem .5rem;background:#fff;border-bottom:1px solid #e5e7eb}.month-arrow{background:none;border:none;color:#1e3a5f;cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center}.month-arrow:hover:not(:disabled){background:#f0f4f8}.month-arrow:active:not(:disabled){background:#dbeafe}.month-arrow:disabled{color:#d1d5db;cursor:default}.month-label{background:none;border:none;font-size:.9rem;font-weight:700;color:#1e3a5f;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;padding:0;text-align:center;min-width:0}.month-label:disabled{cursor:default}.back-today{font-size:.68rem;font-weight:400;color:#6b7280;text-decoration:underline}.pv-announcement{display:flex;align-items:flex-start;gap:.5rem;margin:.5rem 1rem 0;padding:.6rem .85rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;color:#92400e;font-size:.82rem;line-height:1.4}.pv-announcement-icon{flex-shrink:0;font-size:1rem;margin-top:.05rem}.pv-announcement-text{flex:1}.day-list{display:flex;flex-direction:column;gap:0;padding:.75rem 1rem;background:#f3f4f6}.day-list-loading{text-align:center;color:#9ca3af;font-size:.85rem;padding:2rem 0}.day-list-error{text-align:center;color:#b91c1c;font-size:.82rem;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:.75rem 1rem;margin-top:.5rem}.day-card{background:#fff;border-radius:10px;margin-bottom:6px;box-shadow:0 1px 3px #00000012;overflow:hidden;transition:box-shadow .15s}.day-card.day-card-weekend{background:#fff;border:1px solid #d1d5db;box-shadow:none}.day-card.day-card-today{border-left:3px solid #1e3a5f}.day-card.day-card-open{box-shadow:0 2px 8px #0000001c}.day-card-collapsed{display:flex;align-items:center;gap:.75rem;padding:.45rem .9rem;background:#f9fafb;border:1px solid #e5e7eb;box-shadow:none}.day-card-collapsed.day-card-holiday{background:#fef9ec;border-color:#fde68a}.day-card-collapsed.day-card-weekend{background:#f3f4f6;border-color:#e5e7eb}.dc-status-badge{margin-left:auto;font-size:.7rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;letter-spacing:.02em}.dc-status-badge.dc-holiday{background:#fde68a;color:#92400e}.dc-status-badge.dc-weekend{background:#e5e7eb;color:#6b7280}.dc-collapsed-right{margin-left:auto;display:flex;align-items:center}.dc-header{width:100%;display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:.75rem .9rem;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.dc-header:active{background:#f0f6ff}.dc-left{display:flex;flex-direction:column;gap:1px;min-width:56px}.dc-dow{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.day-card-today .dc-dow{color:#1e3a5f}.day-card-weekend .dc-dow{color:#6b7280}.dc-date-row{display:flex;align-items:center;gap:.4rem}.dc-date{font-size:.95rem;font-weight:600;color:#111827}.day-card-weekend .dc-date{color:#6b7280}.dc-center{flex:1;display:flex;align-items:center;justify-content:center}.dc-sched-hint{font-size:.72rem;color:#9ca3af;white-space:nowrap}.dc-holiday-badge{font-size:.72rem;font-weight:600;color:#fff;background:#0e7490;padding:2px 8px;border-radius:99px;white-space:nowrap}.dc-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.dc-status{font-size:.7rem;font-weight:600;border-radius:999px;padding:2px 9px;white-space:nowrap}.dc-weekend{background:#e8ebf2;color:#6b7280}.dc-off{background:#f3f4f6;color:#9ca3af}.dc-empty{background:#fafafa;color:#9ca3af;border:1px solid #e5e7eb}.dc-progress{background:#fef9c3;color:#a16207}.dc-finalized{background:#dcfce7;color:#15803d}.dc-holiday{background:#dbeafe;color:#1d4ed8}.dc-hours{font-size:.78rem;font-weight:600;color:#374151}.dc-icon{flex-shrink:0}.dc-icon-check{color:#16a34a}.dc-icon-empty{color:#dc2626}.dc-needs-badge{flex-shrink:0;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:#dc2626;border-radius:999px;padding:.2rem .55rem;white-space:nowrap}.dc-chevron{color:#9ca3af;flex-shrink:0;transition:transform .2s}.dc-chevron-open{transform:rotate(180deg)}.dc-body{border-top:1px solid #f3f4f6;padding:0 .9rem .9rem}.dc-section{padding-top:.75rem}.dc-section+.dc-section{border-top:1px solid #f3f4f6}.dc-section-title{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;margin-bottom:.35rem}.dc-info-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:.84rem;border-bottom:1px solid #f9fafb}.dc-info-row:last-child{border-bottom:none}.dc-info-row span{color:#6b7280;display:flex;flex-direction:column;gap:1px}.dc-info-row strong{color:#111827;font-weight:600;text-align:right}.dc-info-hint{font-size:.66rem;font-weight:400;color:#9ca3af;line-height:1.3}.dc-info-total{background:#f8fafc;margin:4px -4px 0;padding:6px 4px;border-radius:6px;border-bottom:none!important}.dc-info-total strong{color:#1e3a5f}.dc-info-warn strong,.dc-info-warn span{color:#b45309}.dc-info-warn{background:#fffbeb;margin:2px -4px;padding:4px;border-radius:4px}.dc-info-ot strong,.dc-info-ot span{color:#15803d}.dc-info-ot{background:#f0fdf4;margin:2px -4px;padding:4px;border-radius:4px}.dc-ot-approved{background:#f0fdf4;margin:2px -4px;padding:4px 8px;border-radius:4px;font-size:.82rem;font-weight:600;color:#15803d}.dc-ot-denied{background:#fef2f2;margin:2px -4px;padding:4px 8px;border-radius:4px;font-size:.82rem;font-weight:600;color:#dc2626}.dc-ot-denied .dc-info-hint{color:#7f1d1d;font-weight:400}.dc-ot-pending{background:#fffbeb;margin:2px -4px;padding:4px 8px;border-radius:4px;font-size:.82rem;color:#92400e}.dc-note{font-size:.82rem;padding:6px 0 2px;border-radius:6px}.dc-note-holiday{color:#1d4ed8}.dc-note-off{color:#9ca3af}.dc-log-row{background:#f9fafb;border-radius:7px;padding:.5rem .65rem;margin-bottom:5px}.dc-log-code{font-size:.82rem;font-weight:600;color:#1e3a5f;margin-bottom:2px}.dc-log-meta{display:flex;justify-content:space-between;font-size:.75rem;color:#6b7280}.dc-log-dur{font-weight:600;color:#374151}.dc-log-notes{font-size:.72rem;color:#9ca3af;margin-top:2px}.btn-full{width:100%;justify-content:center}.bottom-nav{display:flex;background:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0)}.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;background:none;border:none;cursor:pointer;color:#9ca3af;font-size:.68rem;font-weight:500;-webkit-tap-highlight-color:transparent;transition:color .15s}.nav-tab:hover,.nav-tab.nav-active{color:#1e3a5f}.nav-tab.nav-active svg{stroke:#1e3a5f}.sheet-backdrop{position:fixed;inset:0;background:#00000059;z-index:40;animation:fadeIn .2s}.day-sheet{position:fixed;bottom:0;left:0;right:0;z-index:50;background:#fff;border-radius:16px 16px 0 0;max-height:80dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:slideUp .25s ease-out;padding-bottom:env(safe-area-inset-bottom,0)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sheet-handle{width:40px;height:4px;border-radius:2px;background:#d1d5db;margin:10px auto 0}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem .5rem;border-bottom:1px solid #f3f4f6}.sheet-date{font-size:.95rem;font-weight:600;color:#111827}.sheet-close{background:none;border:none;cursor:pointer;color:#6b7280;padding:4px;display:flex;align-items:center}.sheet-close:hover{color:#111827}.sheet-empty{padding:2rem 1rem;text-align:center;color:#6b7280;font-size:.9rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.sheet-body{padding:.75rem 1rem 1.5rem}.status-badge{display:inline-block;border-radius:999px;padding:2px 12px;font-size:.75rem;font-weight:600;margin-bottom:1rem}.badge-green{background:#dcfce7;color:#15803d}.badge-amber{background:#fef9c3;color:#a16207}.sheet-section h3{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin-bottom:.5rem}.sheet-section+.sheet-section{margin-top:1.25rem}.time-grid{display:flex;flex-direction:column;gap:1px}.time-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #f3f4f6;font-size:.88rem}.time-label{color:#6b7280}.time-val{font-weight:500;color:#111827}.log-row{background:#f9fafb;border-radius:8px;padding:.6rem .75rem;margin-bottom:6px}.log-code{font-size:.85rem;font-weight:600;color:#1e3a5f;margin-bottom:3px}.log-meta{display:flex;justify-content:space-between;font-size:.78rem;color:#6b7280}.log-dur{font-weight:600;color:#374151}.log-notes{font-size:.75rem;color:#9ca3af;margin-top:3px}.tab-content{padding:1rem}.tab-title{font-size:1.1rem;font-weight:700;color:#1e3a5f;margin-bottom:1rem}.tab-error{color:#b91c1c;font-size:.85rem;margin-bottom:.5rem}.tab-loading{color:#9ca3af;font-size:.85rem}.info-card{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 1px 4px #00000012}.info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f3f4f6;font-size:.88rem}.info-row:last-child{border-bottom:none}.info-row span{color:#6b7280}.info-row strong{color:#111827;text-align:right;max-width:60%}.card-sub-title{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:#9ca3af;text-transform:uppercase;margin-bottom:.5rem}.comp-display{font-size:2.25rem;font-weight:700;color:#1e3a5f;text-align:center;padding:.5rem 0}.comp-unit{font-size:1rem;font-weight:400;color:#6b7280;margin-left:4px}.profile-card{display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem;gap:.25rem}.profile-avatar{width:60px;height:60px;border-radius:50%;background:#1e3a5f;color:#fff;font-size:1.4rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem;text-transform:uppercase}.profile-name{font-size:1.05rem;font-weight:700;color:#111827}.profile-email{font-size:.8rem;color:#6b7280}.btn-primary{background:#1e3a5f;color:#fff;border:none;border-radius:8px;padding:.65rem 1.5rem;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-reset{background:#fff;color:#b91c1c;border:1.5px solid #b91c1c;border-radius:8px;padding:.55rem 1.5rem;font-size:.88rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.btn-reset:hover{background:#fef2f2}.btn-secondary{background:#fff;color:#1e3a5f;border:1.5px solid #1e3a5f;border-radius:8px;padding:.65rem 1.5rem;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem}.btn-secondary:active{background:#f0f4f8}.coming-soon{font-size:.7rem;font-weight:400;opacity:.7}.btn-signout{margin-top:1.5rem;width:100%;background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5;border-radius:8px;padding:.75rem;font-size:.95rem;font-weight:600;cursor:pointer}.btn-signout:hover{background:#fee2e2}.dc-locked-msg{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#6b7280;background:#f1f5f9;border:1px dashed #cbd5e1;border-radius:7px;padding:8px 12px}.sp-root{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:#f3f4f6;font-family:system-ui,-apple-system,sans-serif;font-size:14px}.sp-topbar-logo{font-weight:800;font-size:1rem;letter-spacing:.06em;background:#fff;color:#1e3a5f;padding:2px 8px;border-radius:4px;flex-shrink:0}.sp-title{font-size:.9rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;flex:1;margin:0}.sp-user-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.sp-user-name{font-size:.8rem;color:#93c5fd}.sp-switch-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.35);color:#93c5fd;border-radius:6px;padding:4px 10px;font-size:.75rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0}.sp-switch-btn:hover{background:#ffffff38;color:#fff}.sp-logout-btn{background:none;border:1px solid rgba(255,255,255,.3);color:#93c5fd;border-radius:5px;padding:3px 10px;font-size:.75rem;cursor:pointer;font-family:inherit}.sp-loading-dot{font-size:1rem}.sp-success-msg{font-size:.8rem;color:#86efac;font-weight:600}.sp-error-msg{font-size:.8rem;color:#fca5a5;font-weight:600;display:flex;align-items:center;gap:.3rem}.sp-error-msg button{background:none;border:none;cursor:pointer;color:#fca5a5;font-size:1rem;line-height:1}.sp-emp-panel{width:270px;min-width:220px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.sp-pp-nav{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0}.sp-pp-arrow{background:none;border:none;color:#1e3a5f;cursor:pointer;padding:5px;border-radius:6px;display:flex;align-items:center}.sp-pp-arrow:hover:not(:disabled){background:#f0f4f8}.sp-pp-arrow:disabled{color:#d1d5db;cursor:default}.sp-pp-label{font-size:.78rem;font-weight:700;color:#1e3a5f;text-align:center;flex:1;padding:0 .25rem}.sp-emp-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .85rem;font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#374151;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.sp-emp-count{background:#1e3a5f;color:#fff;border-radius:10px;padding:1px 7px;font-size:.68rem;font-weight:700}.sp-emp-list{flex:1;overflow-y:auto;padding:.4rem;display:flex;flex-direction:column;gap:.3rem}.sp-emp-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.1rem;padding:.55rem .75rem;border:1px solid #e2e8f0;border-radius:7px;background:#fafafa;cursor:pointer;font-family:inherit;transition:background .1s,border-color .1s;width:100%}.sp-emp-name{font-size:.84rem;font-weight:600;color:#1e293b}.sp-emp-title{font-size:.7rem;color:#6b7280}.sp-emp-stats{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.2rem}.sp-stat{font-size:.65rem;font-weight:600;padding:1px 5px;border-radius:8px}.sp-sub-badge{font-size:.62rem;font-weight:700;padding:1px 6px;border-radius:8px;white-space:nowrap}.sp-sub-badge--submitted{background:#dbeafe;color:#1d4ed8}.sp-sub-badge--approved{background:#dcfce7;color:#15803d}.sp-sub-badge--correction{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.sp-empty{font-size:.8rem;color:#9ca3af;text-align:center;padding:1.5rem}.sp-sidebar-footer{padding:.6rem;border-top:1px solid #e2e8f0;flex-shrink:0}.sp-back-btn{width:100%;background:none;border:1px solid #d1d5db;color:#374151;border-radius:6px;padding:6px 10px;font-size:.78rem;cursor:pointer;font-family:inherit;text-align:center}.sp-back-btn:hover{background:#f1f5f9}.sp-frame{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f3f4f6}.sp-frame-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:.95rem}.sp-frame-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;background:#1e3a5f;color:#fff;padding:.55rem 1.25rem;flex-shrink:0;border-bottom:1px solid #e2e8f0}.sp-frame-emp-name{font-size:.95rem;font-weight:700;color:#fff;display:flex;flex-direction:column;gap:1px}.sp-frame-emp-sub{font-size:.72rem;color:#93c5fd;font-weight:400}.sp-period-totals{display:flex;gap:1.25rem}.sp-tot{display:flex;flex-direction:column;align-items:center}.sp-tot-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#93c5fd}.sp-tot-val{font-size:.95rem;font-weight:700;color:#fff}.sp-frame-main{flex:1;overflow-y:auto;padding-bottom:.5rem}.sp-frame-content{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.75rem}.sp-frame-nav{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;height:60px}.sp-nav-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;cursor:pointer;color:#9ca3af;font-size:.65rem;font-weight:600;font-family:inherit;padding:0;transition:color .12s;-webkit-tap-highlight-color:transparent}.sp-nav-tab:hover,.sp-nav-active{color:#1e3a5f}.sp-nav-active svg{stroke:#1e3a5f}.sp-day-row{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.sp-day--none{opacity:.55}.sp-day-header{display:flex;align-items:center;gap:.6rem;padding:.55rem .85rem;cursor:pointer;flex-wrap:wrap}.sp-day-date{font-size:.8rem;font-weight:600;color:#1e293b;min-width:115px}.sp-day-hours{font-size:.75rem;color:#374151}.sp-day-ot{font-size:.68rem;font-weight:700;background:#fef9c3;color:#92400e;padding:1px 5px;border-radius:8px}.sp-day-actions{display:flex;gap:.35rem;align-items:center}.sp-chevron{font-size:.85rem;color:#9ca3af;transition:transform .15s}.sp-day-notes{font-size:.75rem;color:#92400e;background:#fef9c3;padding:.3rem .85rem;border-top:1px solid #fde68a}.sp-day-logs{border-top:1px solid #e2e8f0;padding:.6rem .85rem;overflow-x:auto}.sp-logs-table{border-collapse:collapse;width:100%;font-size:.75rem}.sp-logs-table th{background:#f1f5f9;color:#374151;font-weight:700;padding:4px 7px;text-align:left;border-bottom:1px solid #cbd5e1}.sp-logs-table td{padding:3px 7px;border-bottom:1px solid #f1f5f9;color:#1e293b}.sp-sub-section{display:flex;flex-direction:column;gap:0}.sp-sub-section-title{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;border-bottom:2px solid #1e3a5f;cursor:pointer;padding:6px 2px 5px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#374151;-webkit-user-select:none;user-select:none}.sp-sub-section-title:hover{color:#1e3a5f}.sp-sub-chevron{width:14px;height:14px;flex-shrink:0;color:#6b7280;transition:transform .18s ease}.sp-sub-section--open .sp-sub-chevron{transform:rotate(180deg)}.sp-sub-section-body{padding:6px 0 4px}.sp-approval-section{border-top:1px dashed #e2e8f0;margin-top:12px;padding-top:12px;display:flex;flex-direction:column;gap:8px}.sp-approval-actions{display:flex;gap:8px;flex-wrap:wrap}.sp-approval-btn{font-size:.78rem;font-weight:600;padding:5px 14px;border-radius:6px;border:none;cursor:pointer;transition:opacity .15s}.sp-approval-btn:disabled{opacity:.6;cursor:default}.sp-approval-btn--approve{background:#166534;color:#fff}.sp-approval-btn--approve:hover{background:#14532d}.sp-approval-btn--needs-correction{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.sp-approval-btn--needs-correction:hover{background:#fed7aa}.sp-approval-btn--correction{background:#c2410c;color:#fff}.sp-approval-btn--correction:hover{background:#9a3412}.sp-approval-btn--cancel{background:#f1f5f9;color:#475569}.sp-approval-btn--cancel:hover{background:#e2e8f0}.sp-approval-btn--secondary{background:#e2e8f0;color:#1e3a5f}.sp-approval-btn--secondary:hover{background:#cbd5e1}.sp-approval-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sp-approval-correction-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.sp-approval-badge{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:8px;white-space:nowrap}.sp-approval-badge--approved{background:#dcfce7;color:#15803d;border:1px solid #86efac}.sp-approval-badge--correction{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.sp-approval-meta{font-size:.76rem;color:#64748b}.sp-correction-form{display:flex;flex-direction:column;gap:6px;max-width:420px}.sp-correction-note{width:100%;font-size:.8rem;border:1px solid #cbd5e1;border-radius:5px;padding:6px 8px;resize:vertical;font-family:inherit}.sp-correction-actions{display:flex;gap:6px}.sp-tbl-wrap{overflow-x:auto;border-radius:7px;border:1px solid #e2e8f0;background:#fff}.sp-tbl-empty{font-size:.8rem;color:#9ca3af;padding:.75rem;background:#fff;border-radius:7px;border:1px solid #e2e8f0;margin:0}.sp-sub-table{border-collapse:collapse;width:100%;font-size:.75rem;min-width:700px}.sp-sub-table th{background:#1e3a5f;color:#fff;font-weight:700;padding:5px 8px;text-align:left;border-right:1px solid rgba(255,255,255,.3);white-space:nowrap}.sp-sub-table th:last-child{border-right:none}.sp-sub-table td{padding:4px 8px;border-bottom:1px solid #d1d5db;border-right:1px solid #d1d5db;color:#1e293b;vertical-align:top}.sp-sub-table td:last-child{border-right:none}.sp-sub-table tbody tr:hover{background:#f8fafc}.sp-sub-table .col-sep{border-left:2px solid #e2e8f0}.sp-row-leave td{color:#15803d;font-weight:600}.sp-row-callin{background:#eff6ff}.sp-td-date{white-space:nowrap}.sp-td-code{font-weight:600;white-space:nowrap}.sp-td-nonshift{font-style:italic;color:#6b7280}.sp-ci-block{display:inline-block;margin-right:.4rem;font-style:italic;color:#1d4ed8;font-size:.72rem}.sp-shifts{display:flex;flex-wrap:wrap;gap:.3rem}.sp-shift-block{display:inline-block;padding:.1rem .35rem;border:1px solid #cbd5e1;border-radius:3px;font-size:.72rem;white-space:nowrap;background:#f1f5f9}.sp-shift-ci{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;font-style:italic}.sp-td-shifts{min-width:160px}.sp-total-row td{font-weight:700;border-top:2px solid #1e3a5f;background:#f8fafc}.sp-total-label{color:#374151}.sp-ot-th{white-space:nowrap;min-width:110px}.sp-ot-td{white-space:nowrap;min-width:160px;vertical-align:top}.sp-ot-status-cell{display:flex;flex-direction:column;gap:.2rem}.sp-ot-reason{font-size:.65rem;color:#6b7280;font-style:italic;max-width:180px;white-space:normal;word-break:break-word}.sp-ot-deny-form{display:flex;flex-direction:column;gap:.25rem}.sp-ot-reason-input{width:180px;font-size:.72rem;font-family:inherit;border:1px solid #f87171;border-radius:4px;padding:3px 6px;resize:vertical;background:#fff7f7}.sp-ot-undo{font-size:.6rem;color:#9ca3af;background:none;border:none;cursor:pointer;padding:0;text-decoration:underline;font-family:inherit;align-self:flex-start}.sp-ot-undo:hover{color:#374151}.sp-ot-flash{font-size:.68rem;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;align-self:flex-start}.sp-ot-flash--ok{background:#dcfce7;color:#15803d}.sp-ot-flash--err{background:#fee2e2;color:#b91c1c}.sp-ot-na{color:#9ca3af;font-size:.7rem}.sp-ot-status{font-size:.72rem;font-weight:700;padding:2px 6px;border-radius:8px;white-space:nowrap}.sp-ot-approved{background:#dcfce7;color:#15803d}.sp-ot-denied{background:#fee2e2;color:#b91c1c}.sp-ot-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}.sp-ot-needs-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;border-radius:4px;padding:2px 6px;white-space:nowrap;cursor:pointer;font-family:inherit}.sp-ot-needs-badge:hover{background:#fde68a}.sp-ot-btn-row{display:flex;gap:.25rem}.sp-notes-th{min-width:160px}.sp-notes-td{min-width:160px;padding:2px 5px!important}.sp-notes-input{width:100%;resize:none;border:1px solid #d1d5db;border-radius:4px;padding:3px 6px;font-size:.72rem;font-family:inherit;color:#1e293b;background:#fefce8;box-sizing:border-box;line-height:1.4;field-sizing:content;min-height:28px}.sp-notes-input:focus{outline:2px solid #3b82f6;outline-offset:1px;background:#fff}.sp-notes-input::placeholder{color:#9ca3af}.sp-profile-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;display:flex;flex-direction:column;align-items:center;gap:.3rem}.sp-profile-avatar{width:52px;height:52px;border-radius:50%;background:#1e3a5f;color:#fff;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;text-transform:uppercase;margin-bottom:.25rem}.sp-profile-name{font-size:1rem;font-weight:700;color:#1e293b}.sp-profile-email{font-size:.78rem;color:#9ca3af}.sp-info-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.sp-info-card-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;padding:.5rem 1rem .25rem;border-bottom:1px solid #f1f5f9}.sp-info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-bottom:1px solid #f9fafb;font-size:.82rem}.sp-info-row:last-child{border-bottom:none}.sp-info-label{color:#6b7280}.sp-info-val{font-weight:600;color:#1e293b;text-transform:capitalize}.sp-badge{font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.sp-btn{padding:5px 12px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:opacity .1s,background .1s;white-space:nowrap}.sp-btn:disabled{opacity:.45;cursor:not-allowed}.sp-btn--deny-sm{padding:3px 8px;font-size:.7rem;border-radius:5px;background:#ef4444;color:#fff}.sp-btn--ghost-sm{padding:3px 8px;font-size:.7rem;border-radius:5px;background:#f1f5f9;color:#374151;border:1px solid #d1d5db}.sp-modal-title{font-size:1rem;font-weight:700;color:#1e293b;margin:0}.sp-modal-sub{font-size:.8rem;color:#6b7280;margin:-.5rem 0 0}.sp-modal-label{font-size:.78rem;font-weight:600;color:#374151}.sp-modal-textarea{width:100%;border:1px solid #d1d5db;border-radius:7px;padding:.55rem;font-size:.83rem;font-family:inherit;resize:vertical;color:#1e293b;box-sizing:border-box}.sp-modal-check{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#374151;cursor:pointer}.sp-cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle;flex-shrink:0}.sp-topbar{display:flex;align-items:center;gap:1rem;background:#1e3a5f;color:#fff;padding:0 1.25rem;height:52px;flex-shrink:0;z-index:10}.sp-back-btn{background:none;border:1px solid rgba(255,255,255,.35);color:#93c5fd;border-radius:6px;padding:4px 10px;font-size:.8rem;cursor:pointer;font-family:inherit;white-space:nowrap}.sp-back-btn:hover{background:#ffffff1a;color:#fff}.sp-title{font-size:1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;flex:1}.sp-user-info{display:flex;align-items:center;gap:.75rem;font-size:.8rem;color:#93c5fd;white-space:nowrap}.sp-logout-btn{background:none;border:1px solid rgba(255,255,255,.3);color:#93c5fd;border-radius:5px;padding:3px 8px;font-size:.75rem;cursor:pointer;font-family:inherit}.sp-logout-btn:hover{background:#ffffff1a;color:#fff}.sp-period-bar{display:flex;align-items:center;gap:.75rem;background:#fff;border-bottom:1px solid #e2e8f0;padding:.6rem 1.25rem;flex-shrink:0;flex-wrap:wrap}.sp-period-label{font-size:.82rem;font-weight:600;color:#374151;white-space:nowrap}.sp-period-select{font-size:.85rem;border:1px solid #d1d5db;border-radius:6px;padding:5px 10px;background:#fff;color:#1e293b;cursor:pointer;min-width:220px;font-family:inherit}.sp-period-select:focus{outline:2px solid #3b82f6;outline-offset:1px}.sp-loading-dot{font-size:.8rem;color:#6b7280}.sp-success-msg{font-size:.82rem;color:#16a34a;font-weight:600;animation:sp-fade-in .2s}.sp-error-msg{font-size:.82rem;color:#dc2626;font-weight:600;display:flex;align-items:center;gap:.4rem}.sp-error-msg button{background:none;border:none;cursor:pointer;color:#dc2626;font-size:.9rem;line-height:1}.sp-body{display:flex;flex:1;overflow:hidden}.sp-emp-panel{width:260px;min-width:220px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.sp-emp-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#374151;border-bottom:1px solid #e2e8f0;background:#f8fafc}.sp-emp-count{background:#1e3a5f;color:#fff;border-radius:10px;padding:1px 7px;font-size:.72rem;font-weight:700}.sp-emp-list{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:.35rem}.sp-emp-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.15rem;padding:.65rem .85rem;border:1px solid #e2e8f0;border-radius:8px;background:#fafafa;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s;width:100%}.sp-emp-card:hover{background:#eff6ff;border-color:#bfdbfe}.sp-emp-card--active{background:#dbeafe;border-color:#3b82f6}.sp-emp-name{font-size:.88rem;font-weight:600;color:#1e293b}.sp-emp-title{font-size:.72rem;color:#6b7280}.sp-emp-stats{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.25rem}.sp-stat{font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:10px}.sp-stat--submitted{background:#e2e8f0;color:#374151}.sp-stat--approved{background:#dcfce7;color:#15803d}.sp-stat--denied{background:#fee2e2;color:#b91c1c}.sp-stat--pending{background:#fef9c3;color:#92400e}.sp-empty{font-size:.82rem;color:#9ca3af;text-align:center;padding:2rem 1rem}.sp-detail-panel{flex:1;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.sp-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:.75rem;color:#9ca3af}.sp-detail-empty-icon{font-size:2rem}.sp-detail-empty p{font-size:.9rem}.sp-detail-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.75rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1rem 1.25rem}.sp-detail-name{font-size:1.1rem;font-weight:700;color:#1e293b;margin:0}.sp-detail-sub{font-size:.78rem;color:#6b7280}.sp-days-list{display:flex;flex-direction:column;gap:.4rem}.sp-day-row{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;transition:border-color .12s}.sp-day--approved{border-left:4px solid #16a34a}.sp-day--denied{border-left:4px solid #dc2626}.sp-day--pending{border-left:4px solid #f59e0b}.sp-day--draft{border-left:4px solid #d1d5db}.sp-day--none{opacity:.6}.sp-day-header{display:flex;align-items:center;gap:.75rem;padding:.6rem .9rem;cursor:pointer;flex-wrap:wrap}.sp-day-date{font-size:.82rem;font-weight:600;color:#1e293b;min-width:120px}.sp-day-meta{display:flex;gap:.5rem;align-items:center;flex:1}.sp-day-hours{font-size:.78rem;color:#374151}.sp-day-ot{font-size:.72rem;font-weight:700;background:#fef9c3;color:#92400e;padding:1px 6px;border-radius:8px}.sp-day-actions{display:flex;gap:.4rem;align-items:center}.sp-chevron{font-size:.9rem;color:#9ca3af;transition:transform .15s}.sp-chevron--open{transform:rotate(180deg)}.sp-day-notes{font-size:.78rem;color:#92400e;background:#fef9c3;padding:.35rem .9rem;border-top:1px solid #fde68a}.sp-day-logs{border-top:1px solid #e2e8f0;padding:.75rem;overflow-x:auto}.sp-logs-table{border-collapse:collapse;width:100%;font-size:.78rem}.sp-logs-table th{background:#f1f5f9;color:#374151;font-weight:700;padding:5px 8px;text-align:left;border-bottom:1px solid #cbd5e1}.sp-logs-table td{padding:4px 8px;border-bottom:1px solid #f1f5f9;color:#1e293b}.sp-logs-table tbody tr:hover{background:#f8fafc}.sp-log--callin td{background:#eff6ff;color:#1d4ed8}.sp-num{text-align:right;font-variant-numeric:tabular-nums}.sp-cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}.sp-badge{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.sp-badge--none{background:#f1f5f9;color:#94a3b8}.sp-badge--draft{background:#f1f5f9;color:#475569}.sp-badge--pending{background:#fef9c3;color:#92400e}.sp-badge--approved{background:#dcfce7;color:#15803d}.sp-badge--denied{background:#fee2e2;color:#b91c1c}.sp-btn{padding:6px 14px;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:opacity .1s,background .12s}.sp-btn:disabled{opacity:.5;cursor:not-allowed}.sp-btn--approve{background:#16a34a;color:#fff}.sp-btn--approve:hover:not(:disabled){background:#15803d}.sp-btn--deny{background:#dc2626;color:#fff}.sp-btn--deny:hover:not(:disabled){background:#b91c1c}.sp-btn--ghost{background:#f1f5f9;color:#374151;border:1px solid #d1d5db}.sp-btn--ghost:hover:not(:disabled){background:#e2e8f0}.sp-btn--approve-sm,.sp-btn--deny-sm,.sp-btn--ghost-sm{padding:3px 9px;font-size:.72rem;border-radius:5px}.sp-btn--deny-sm{background:#ef4444;color:#fff}.sp-btn--deny-sm:hover:not(:disabled){background:#dc2626}.sp-btn--ghost-sm{background:#f1f5f9;color:#374151;border:1px solid #d1d5db}.sp-btn--ghost-sm:hover:not(:disabled){background:#e2e8f0}.sp-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.sp-modal{background:#fff;border-radius:12px;padding:1.5rem;width:min(480px,94vw);display:flex;flex-direction:column;gap:.85rem;box-shadow:0 20px 60px #00000040}.sp-modal-title{font-size:1.05rem;font-weight:700;color:#1e293b;margin:0}.sp-modal-sub{font-size:.82rem;color:#6b7280;margin:-.5rem 0 0}.sp-modal-label{font-size:.8rem;font-weight:600;color:#374151}.sp-modal-textarea{width:100%;border:1px solid #d1d5db;border-radius:7px;padding:.6rem;font-size:.85rem;font-family:inherit;resize:vertical;color:#1e293b;box-sizing:border-box}.sp-modal-textarea:focus{outline:2px solid #3b82f6;outline-offset:1px}.sp-modal-check{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:#374151;cursor:pointer}.sp-modal-actions{display:flex;justify-content:flex-end;gap:.6rem}@keyframes sp-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.sp-emp-panel{width:100%;min-width:unset;border-right:none;border-bottom:1px solid #e2e8f0;max-height:220px}.sp-body{flex-direction:column}.sp-period-totals{gap:.75rem}}.sp-emp-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}.sp-emp-badge{display:inline-flex;align-items:center;font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:8px;border:1px solid;cursor:pointer;background:transparent;transition:opacity .12s,filter .12s;line-height:1.4}.sp-emp-badge:hover{filter:brightness(.92);opacity:.9}.sp-emp-badge--comp{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.sp-emp-badge--ein{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.sp-emp-badge--wage{background:#fefce8;color:#92400e;border-color:#fde68a}.sp-comp-bank-row{display:flex;align-items:center;gap:.45rem;padding:.3rem .75rem;border-top:1px solid #e2e8f0;background:#f8fafc;font-size:.78rem;flex-shrink:0;flex-wrap:wrap}.sp-comp-bank-label{font-weight:700;color:#374151;text-transform:uppercase;font-size:.65rem;letter-spacing:.05em}.sp-comp-bank-val{font-weight:700;color:#15803d;font-size:.9rem}.sp-comp-cap{color:#9ca3af;font-size:.72rem}.sp-comp-edit-btn{background:none;border:1px solid #d1d5db;border-radius:4px;padding:1px 6px;font-size:.78rem;cursor:pointer;color:#6b7280;line-height:1.4}.sp-comp-edit-btn:hover{background:#f3f4f6;color:#111827}.sp-comp-input{width:5.5rem;padding:2px 6px;border:1px solid #93c5fd;border-radius:4px;font-size:.82rem;outline:none}.sp-comp-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f62e}.sp-comp-save{padding:2px 10px;font-size:.78rem;font-weight:600;background:#15803d;color:#fff;border:none;border-radius:4px;cursor:pointer}.sp-comp-save:hover:not(:disabled){background:#166534}.sp-comp-save:disabled{opacity:.6;cursor:not-allowed}.sp-comp-cancel{background:none;border:1px solid #d1d5db;border-radius:4px;padding:2px 7px;font-size:.78rem;cursor:pointer;color:#6b7280}.sp-comp-cancel:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.sp-comp-err{color:#b91c1c;font-size:.72rem}.sp-ann-btn{display:flex;align-items:center;gap:.4rem;width:calc(100% - 1.6rem);margin:.5rem .8rem .3rem;padding:.35rem .75rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;color:#92400e;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.sp-ann-btn:hover,.sp-ann-btn--active{background:#fef3c7;border-color:#f59e0b}.sp-ann-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1200}.sp-ann-modal{background:#fff;border-radius:10px;padding:1.4rem 1.6rem 1.2rem;width:min(480px,92vw);box-shadow:0 8px 32px #00000038;display:flex;flex-direction:column;gap:.6rem}.sp-ann-modal-title{font-size:1rem;font-weight:700;color:#92400e}.sp-ann-modal-sub{font-size:.78rem;color:#6b7280;margin-top:-.3rem}.sp-ann-textarea{width:100%;resize:vertical;border:1px solid #d1d5db;border-radius:6px;padding:.55rem .65rem;font-size:.85rem;font-family:inherit;color:#111827;background:#f9fafb;box-sizing:border-box;transition:border-color .15s}.sp-ann-textarea:focus{outline:none;border-color:#f59e0b;background:#fff}.sp-ann-err{color:#b91c1c;font-size:.75rem}.sp-ann-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.2rem}.sp-ann-save{padding:.35rem 1rem;background:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s}.sp-ann-save:hover:not(:disabled){background:#d97706}.sp-ann-save:disabled{opacity:.6;cursor:not-allowed}.sp-ann-cancel{padding:.35rem .9rem;background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:6px;font-size:.82rem;cursor:pointer;transition:background .15s}.sp-ann-cancel:hover{background:#e5e7eb}.sp-ann-clear{padding:.35rem .9rem;background:#fff;color:#b91c1c;border:1px solid #fca5a5;border-radius:6px;font-size:.82rem;cursor:pointer;transition:background .15s;margin-right:auto;order:-1}.sp-ann-clear:hover:not(:disabled){background:#fee2e2}.sp-ann-clear:disabled{opacity:.6;cursor:not-allowed}.sp-ann-input{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:.5rem .65rem;font-size:.9rem;font-family:inherit;color:#111827;background:#f9fafb;box-sizing:border-box;transition:border-color .15s}.sp-ann-input:focus{outline:none;border-color:#f59e0b;background:#fff}.sp-ann-display{display:flex;align-items:flex-start;gap:.4rem;margin:.4rem .8rem 0;padding:.5rem .7rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;color:#92400e;font-size:.75rem;line-height:1.4}.sp-ann-display-icon{flex-shrink:0;font-size:.9rem}.sp-ann-display-text{flex:1}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,sans-serif;background:#f3f4f6;color:#111827;min-height:100vh;overscroll-behavior:none}#root{max-width:unset;padding:0}.app-footer{background:#e5e7eb;text-align:center;padding:.75rem;font-size:.75rem;color:#6b7280}
