:root{--primary-blue: #0048BA;--primary-yellow: #FBCD3E;--light-blue: #0066CC;--dark-blue: #003380;--bg-color: #F5F7FA;--white: #FFFFFF;--text-dark: #1F2937;--text-gray: #6B7280;--text-light: #9CA3AF;--border-color: #E5E7EB;--error-color: #EF4444;--success-color: #10B981}#app{min-height:100vh;background:var(--bg-color)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Onest,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.page-container{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.page-header{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;display:flex;align-items:center;gap:16px}.page-header.rounded-bottom{border-radius:0 0 24px 24px}.header-title{font-size:20px;font-weight:700;color:#fff}.header-spacer{width:40px}.page-content,.main-content{padding:20px}.section{margin-bottom:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-title{font-size:18px;font-weight:700;color:var(--text-dark);margin-bottom:8px}.section-title-small{font-size:16px;font-weight:600;color:var(--text-dark);margin-bottom:12px}.card{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000a}.card-rounded{border-radius:20px}.card-clickable{cursor:pointer;transition:transform .2s ease}.card-clickable:hover{transform:translateY(-2px)}.btn{padding:12px 20px;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary-blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--light-blue)}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover:not(:disabled){background:#d97706}.btn-secondary{background:var(--bg-color);color:var(--text-gray)}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn:active:not(:disabled){transform:scale(.98)}.btn-full{width:100%}.badge{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;background:#0000000d;width:fit-content;white-space:nowrap}.badge-blue{color:var(--primary-blue);background:#0048ba1a}.badge-green{color:#10b981;background:#10b9811a}.badge-yellow{color:#f59e0b;background:#f59e0b1a}.badge-red{color:#ef4444;background:#ef44441a}.bottom-nav{position:fixed;bottom:12px;left:16px;right:16px;background:#fff;display:flex;justify-content:space-around;box-shadow:0 4px 20px #0000001a;border-radius:30px;z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;cursor:pointer;color:var(--text-light);font-size:11px;padding:6px 12px;transition:color .2s ease}.nav-item .nav-icon{width:18px;height:18px}.nav-item.active{color:var(--primary-blue)}.nav-item.active .nav-icon{filter:brightness(0) saturate(100%) invert(35%) sepia(98%) saturate(1653%) hue-rotate(199deg) brightness(101%) contrast(91%)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:16px;padding:24px;width:100%;max-width:400px;box-shadow:0 10px 40px #0003;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-title{font-size:18px;font-weight:700;color:var(--text-dark);margin:0 0 8px}.modal-subtitle{font-size:14px;color:var(--text-gray);margin:0 0 20px}.modal-close-btn{background:none;border:none;cursor:pointer;padding:4px;color:var(--text-gray)}.modal-form{margin-bottom:20px}.modal-label{font-size:13px;font-weight:500;color:var(--text-gray);margin-bottom:8px;display:block}.modal-textarea,.modal-input{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:10px;font-size:14px;color:var(--text-dark);background:#fff;font-family:inherit;transition:all .2s ease}.modal-textarea{resize:none}.modal-textarea:focus,.modal-input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #0048ba1a}.modal-textarea::placeholder,.modal-input::placeholder{color:var(--text-light)}.modal-actions{display:flex;gap:10px}.loading-state,.empty-state{text-align:center;padding:60px 20px}.loading-state p,.empty-text{color:var(--text-gray);font-size:16px;font-weight:500;margin:16px 0 8px}.empty-subtext{color:var(--text-light);font-size:14px;margin:0}.list{display:flex;flex-direction:column;gap:12px}.list-item{background:#fff;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px #0000000a}.list-item-clickable{cursor:pointer;transition:transform .2s ease}.list-item-clickable:hover{transform:translateY(-2px)}.info-item{background:#fff;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px #0000000a}.info-icon{width:40px;height:40px;background:#0048ba14;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.info-icon-img{width:20px;height:20px}.info-content{flex:1}.info-label{font-size:12px;color:var(--text-light);margin:0 0 2px}.info-value{font-size:15px;font-weight:500;color:var(--text-dark);margin:0}.spin{animation:spin 1s linear infinite}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-center{text-align:center}.flex-center{display:flex;align-items:center;justify-content:center}.login-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f5f7;padding:20px;width:100%;max-width:400px;margin:0 auto}.logo-section{display:flex;justify-content:center;margin-bottom:16px}.logo-image{width:160px;height:100px;object-fit:contain}.sign-in-title{font-size:20px;font-weight:700;color:#333;text-align:center;margin-bottom:8px}.subtitle{font-size:14px;color:#666;text-align:center;margin-bottom:16px}.login-form{display:flex;flex-direction:column;width:100%;margin-top:16px}.login-form .form-group{margin-bottom:8px}.login-form .form-group input{width:100%;padding:12px 16px;border:1px solid #DDDDDD;border-radius:8px;font-size:14px;transition:all .2s ease;outline:none;background:#fff;color:#333}.login-form .form-group input::placeholder{color:#999}.login-form .form-group input:focus{border-color:var(--primary-blue);box-shadow:0 0 0 2px #0048ba1a}.login-form .form-group input.error{border-color:var(--error-color)}.login-form .error-message{font-size:12px;color:var(--error-color);margin-top:4px}.forgot-password{text-align:right;margin-bottom:24px}.forgot-password a{font-size:12px;color:var(--primary-blue);text-decoration:none;font-weight:400}.forgot-password a:hover{text-decoration:underline}.login-button{width:100%;padding:12px 24px;background:var(--primary-blue);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a;margin-top:16px}.login-button:hover:not(:disabled){background:var(--light-blue)}.login-button:active:not(:disabled){transform:translateY(1px)}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-button.loading{display:flex;align-items:center;justify-content:center}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.password-input{position:relative;width:100%}.password-input input{width:100%;padding:12px 44px 12px 16px;border:1px solid #DDDDDD;border-radius:8px;font-size:14px;transition:all .2s ease;outline:none;background:#fff;color:#333}.password-input input::placeholder{color:#999}.password-input input:focus{border-color:var(--primary-blue);box-shadow:0 0 0 2px #0048ba1a}.password-input input.error{border-color:var(--error-color)}.toggle-password{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#999;transition:color .2s ease}.toggle-password:hover{color:var(--primary-blue)}.toggle-password:active{transform:translateY(-50%) scale(.95)}.error-banner{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fef2f2;border:1px solid #FEE2E2;border-radius:8px;color:#991b1b;font-size:13px;margin-top:16px}.form-container{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:14px;font-weight:600;color:var(--text-dark)}.form-input,.form-select,.form-textarea{width:100%;padding:14px 16px;border:1px solid var(--border-color);border-radius:12px;font-size:15px;color:var(--text-dark);background:#fff;transition:all .2s ease;font-family:Onest,sans-serif}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #0048ba1a}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:var(--text-light)}.form-textarea{resize:vertical;min-height:100px}.form-textarea-sm{min-height:80px}.input-simple{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:10px;font-size:15px;color:var(--text-dark);background:#fff;transition:all .2s ease;outline:none}.input-simple:focus{border-color:var(--primary-blue);box-shadow:0 0 0 3px #0048ba1a}.input-simple::placeholder{color:var(--text-light)}.input-with-icon{position:relative}.input-with-icon .form-input{padding-right:44px}.input-icon-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;color:var(--text-gray)}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--error-color, #EF4444)}.error-message-form{font-size:12px;color:var(--error-color, #EF4444);margin-top:4px}.error-banner-form{padding:14px 16px;background:#fee2e2;border:1px solid #FECACA;border-radius:12px;color:#dc2626;font-size:14px;font-weight:500}.submit-btn-form{padding:16px;background:var(--primary-blue);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:Onest,sans-serif}.submit-btn-form:hover:not(:disabled){background:var(--light-blue)}.submit-btn-form:active:not(:disabled){transform:scale(.98)}.submit-btn-form:disabled{opacity:.6;cursor:not-allowed}.submit-btn{width:100%;padding:14px 20px;background:var(--primary-blue);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.submit-btn:hover:not(:disabled){background:var(--light-blue)}.submit-btn:active:not(:disabled){transform:scale(.98)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.balance-card-form{text-align:center;padding:20px;background:linear-gradient(135deg,#0048ba,#06c);border-radius:12px}.balance-label{font-size:13px;color:#fffc;margin:0 0 8px}.balance-remaining,.balance-value{font-size:36px;font-weight:700;color:#fff;margin:0}.balance-unit{font-size:14px;color:#fffc}.loading-in-form{padding:14px 16px;color:var(--text-gray);font-size:14px;text-align:center;border:1px solid var(--border-color);border-radius:12px}.password-input-wrapper{position:relative}.password-input-wrapper .form-input{padding-right:44px}.password-toggle-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;color:var(--text-gray)}.home-container{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.header{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;border-radius:0 0 24px 24px}.header-content{display:flex;justify-content:space-between;align-items:center}.greeting-text{font-size:24px;font-weight:700;color:#fff;margin-bottom:4px}.greeting-subtitle{font-size:14px;color:#fffc}.role-badges{display:flex;gap:6px;margin-top:8px}.hr-badge{background:#10b98133;color:#10b981;border:1px solid rgba(16,185,129,.4)}.supervisor-badge{background:#fbbf2433;color:#f59e0b;border:1px solid rgba(251,191,36,.4)}.header-actions{display:flex;gap:12px}.notification-btn{width:44px;height:44px;background:#fff3;border:none;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .2s ease}.notification-btn:hover{background:#ffffff4d}.main-content{padding:20px}.clock-section{margin-bottom:24px}.clock-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000a;display:flex;justify-content:space-between;align-items:center}.clock-card.clock-completed{background:linear-gradient(135deg,#10b981,#059669)}.clock-completed-info{display:flex;align-items:center;gap:24px;width:100%;justify-content:space-around}.clock-row{display:flex;flex-direction:column;align-items:center;gap:4px}.clock-completed-info .clock-label{font-size:12px;color:#fffc;margin-bottom:4px}.clock-completed-info .clock-time{font-size:20px;font-weight:700;color:#fff}.clock-divider{width:1px;height:40px;background:#ffffff4d}.clock-info{flex:1}.clock-label{font-size:12px;color:var(--text-gray);margin-bottom:4px}.clock-time{font-size:20px;font-weight:700;color:var(--text-dark)}.clock-actions{display:flex}.clock-btn{display:flex;align-items:center;gap:8px}.menu-section{margin-bottom:24px}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.menu-item{display:flex;flex-direction:column;align-items:center;gap:10px;background:none;border:none;cursor:pointer;padding:8px}.menu-icon{width:60px;height:60px;object-fit:contain;transition:transform .2s ease}.menu-item:active .menu-icon{transform:scale(.95)}.menu-label{font-size:12px;font-weight:500;color:var(--text-dark)}.announcements-section{margin-bottom:24px}.announcements-list{margin-top:8px}.announcement-card{padding:16px}.announcement-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.announcement-date{font-size:11px;color:var(--text-light)}.announcement-title{font-size:15px;font-weight:600;color:var(--text-dark);margin-bottom:6px}.announcement-description{font-size:13px;color:var(--text-gray);line-height:1.5}.view-all-btn{background:none;border:none;color:var(--primary-blue);font-size:13px;font-weight:500;cursor:pointer;padding:4px 0;transition:opacity .2s ease}.view-all-btn:hover{opacity:.8}.notification-modal{background:#fff;border-radius:20px;width:100%;max-width:360px;max-height:400px;overflow:hidden}.notification-list{padding:20px}.no-notifications{text-align:center;color:var(--text-gray);font-size:14px}.page-with-header{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.page-header-blue{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;display:flex;align-items:center;gap:16px}.back-button{width:40px;height:40px;background:#fff3;border:none;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.back-button:hover{background:#ffffff4d}.back-button:active{transform:scale(.95)}.back-button-small{width:36px;height:36px;background:#ffffff26;border:none;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.back-button-small:hover{background:#ffffff40}.back-button-small:active{transform:scale(.95)}.header-spacer-40{width:40px;flex-shrink:0}.request-container,.detail-container{min-height:100vh;background:var(--bg-color)}.request-content,.detail-content{padding:20px}.type-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.leave-type-badge,.activity-badge{font-size:18px;font-weight:700;color:var(--text-dark)}.status-badge{font-size:12px;font-weight:600;padding:6px 12px;border-radius:8px;white-space:nowrap}.info-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000a;margin-bottom:12px}.card-title{font-size:14px;font-weight:600;color:var(--text-gray);margin:0 0 16px;text-transform:uppercase;letter-spacing:.5px}.card-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.period-display{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.period-date{display:flex;flex-direction:column;align-items:center;flex:1}.date-label{font-size:12px;color:var(--text-light);margin-bottom:4px}.date-value{font-size:16px;font-weight:600;color:var(--text-dark)}.period-arrow{display:flex;align-items:center;padding:0 16px}.duration-display{display:flex;align-items:center;gap:8px;padding-top:16px;border-top:1px solid var(--border-color);font-size:15px;color:var(--text-gray)}.duration-icon{width:16px;height:16px}.date-display{margin-bottom:16px}.approval-card .approval-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.approval-status{font-size:14px;font-weight:600;margin-bottom:16px}.approval-notes{font-size:15px;color:var(--text-gray);margin:0 0 8px;line-height:1.5}.no-notes{font-size:14px;color:var(--text-light);font-style:italic;margin:0 0 8px}.approval-time{font-size:12px;color:var(--text-light)}.type-badge-inline{font-size:12px;font-weight:600;padding:6px 12px;border-radius:8px;background:linear-gradient(135deg,#0048ba,#06c);color:#fff;white-space:nowrap}.type-badge-inline.holiday-type{background:linear-gradient(135deg,#dc2626,#ef4444)}.type-badge-inline.working-day-type{background:linear-gradient(135deg,#0048ba,#06c)}.info-row{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.info-row:last-child{margin-bottom:0}.info-label{font-size:12px;color:var(--text-light);margin:0}.info-value{font-size:15px;color:var(--text-gray);margin:0;line-height:1.5}.loading-state-small{text-align:center;padding:60px 20px;color:var(--text-gray)}.announcement-list-container{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.announcement-header{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;display:flex;align-items:center;gap:16px}.announcement-detail-container{min-height:100vh;background:var(--bg-color)}.detail-header{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;display:flex;align-items:center;gap:16px}.announcement-content{padding:0 16px 16px}.detail-content{margin:20px}.detail-title{font-size:20px;font-weight:700;color:var(--text-dark);margin-bottom:8px;line-height:1.4}.detail-date{font-size:13px;color:var(--text-light);margin-bottom:20px}.detail-description{font-size:15px;color:var(--text-dark);line-height:1.7}.detail-description :deep(p){margin-bottom:12px}.detail-description :deep(ul),.detail-description :deep(ol){margin:12px 0;padding-left:24px}.detail-description :deep(li){margin-bottom:6px}.detail-description :deep(strong){font-weight:600}.detail-description :deep(a){color:var(--primary-blue);text-decoration:underline}.announcements-list{display:flex;flex-direction:column;gap:12px}.announcement-card{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000a;transition:transform .2s ease;cursor:pointer}.announcement-card:hover{transform:translateY(-2px)}.announcement-icon{width:36px;height:36px;background:#0048ba14;border-radius:10px;display:flex;align-items:center;justify-content:center}.announcement-header-card{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.announcement-meta{display:flex;gap:8px}.announcement-date{font-size:11px;color:var(--text-light);margin-bottom:12px}.announcement-title{font-size:16px;font-weight:600;color:var(--text-dark);margin:0 0 6px}.announcement-description{font-size:14px;color:var(--text-gray);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.attachments-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--border-color)}.attachments-title{font-size:16px;font-weight:600;color:var(--text-dark);margin-bottom:12px}.attachments-list{display:flex;flex-direction:column;gap:10px}.attachment-item{display:flex;align-items:center;gap:12px;padding:12px;background:#0048ba0a;border-radius:12px;text-decoration:none;transition:all .2s ease}.attachment-item:hover{background:#0048ba14;transform:translateY(-1px)}.attachment-item:active{transform:scale(.98)}.attachment-icon{width:40px;height:40px;background:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.attachment-info{flex:1;min-width:0}.attachment-filename{font-size:14px;font-weight:500;color:var(--text-dark);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-meta{font-size:12px;color:var(--text-light);margin:2px 0 0}.attachment-download{color:var(--primary-blue);flex-shrink:0}.retry-button{padding:10px 24px;background:var(--primary-blue);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:var(--light-blue)}.retry-button:active{transform:scale(.95)}.filter-section{background:#fff;margin:16px;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000a}.filter-section-no-margin{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000a;margin-bottom:16px}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.filter-header-static{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.filter-title{font-size:14px;font-weight:600;color:var(--text-dark)}.filter-toggle-btn{width:28px;height:28px;background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-light);transition:transform .3s ease;padding:0}.filter-toggle-btn svg{transition:transform .3s ease}.filter-toggle-btn svg.rotate-180{transform:rotate(180deg)}.filter-controls{display:flex;flex-direction:column;gap:12px;overflow:hidden;transition:all .3s ease}.filter-controls-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.filter-input-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:120px}.filter-input-group-static{flex:unset;min-width:unset}.filter-label{font-size:12px;color:var(--text-light);margin:0}.filter-input{padding:10px 12px;border:1px solid #e0e0e0;border-radius:10px;font-size:14px;color:var(--text-dark);outline:none;transition:border-color .2s ease;width:100%}.filter-input:focus{border-color:var(--primary-blue)}.filter-input::placeholder{color:#bdbdbd}.filter-buttons{display:flex;gap:8px;margin-top:4px}.filter-buttons-inline{margin-top:0}.filter-btn{flex:1;padding:10px 16px;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.filter-btn-apply{background:var(--primary-blue);color:#fff}.filter-btn-apply:hover{background:#0056b3}.filter-btn-apply:active{transform:scale(.95)}.filter-btn-reset{background:#f5f5f5;color:var(--text-gray)}.filter-btn-reset:hover{background:#e0e0e0}.filter-btn-reset:active{transform:scale(.95)}.filter-btn-icon{flex:0;padding:10px 14px}.date-range-filter{display:flex;flex-direction:column;gap:12px}.date-input-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:120px}.date-input{padding:10px 12px;border:1px solid #e0e0e0;border-radius:10px;font-size:14px;color:var(--text-dark);outline:none;transition:border-color .2s ease}.date-input:focus{border-color:var(--primary-blue)}.leave-type-dropdown{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:10px;font-size:15px;color:var(--text-dark);background:#fff;cursor:pointer;transition:all .2s ease}.balance-display-filter{margin-top:20px;text-align:center;padding:20px;background:linear-gradient(135deg,#0048ba,#06c);border-radius:12px}.profile-container{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.profile-content{padding-top:20px}.profile-section{margin-bottom:20px}.profile-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 20px}.profile-avatar{width:80px;height:80px;background:#0048ba1a;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.profile-name{font-size:20px;font-weight:700;color:var(--text-dark);margin:0 0 4px}.profile-username{font-size:14px;color:var(--text-gray);margin:0}.role-badges{display:flex;gap:6px;margin-top:8px;justify-content:center}.role-badge{font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}.hr-badge{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.supervisor-badge{background:#fbbf2426;color:#f59e0b;border:1px solid rgba(251,191,36,.3)}.info-list{flex-direction:column}.logout-btn{padding:14px 20px;font-size:16px;box-shadow:0 2px 8px #ef444433}.timeoff-container{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.timeoff-header{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;display:flex;align-items:center;gap:16px}.timeoff-content{padding:20px}.balance-section,.requests-section{margin-bottom:24px}.section-title{font-size:18px;font-weight:700;color:var(--text-dark);margin-bottom:12px}.balance-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000a;margin-top:18px}.balance-label{font-size:13px;font-weight:500;color:var(--text-gray);margin-bottom:8px;display:block}.leave-type-dropdown{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:12px;font-size:15px;color:var(--text-dark);background:#fff;cursor:pointer;transition:all .2s ease;margin-bottom:16px}.leave-type-dropdown:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #0048ba1a}.balance-display{text-align:center;padding:20px;background:linear-gradient(135deg,#0048ba,#06c);border-radius:12px}.balance-remaining{font-size:36px;font-weight:700;color:#fff;margin:0}.balance-text{font-size:14px;color:#fffc;margin:4px 0 0}.balance-card.loading p{text-align:center;color:var(--text-gray);font-size:14px}.timeoff-request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.request-type{font-size:16px;font-weight:600;color:var(--text-dark)}.request-status{font-size:11px;font-weight:600;padding:5px 10px;border-radius:8px;white-space:nowrap}.request-dates{display:flex;align-items:center;gap:8px;margin-bottom:8px}.date-item{display:flex;align-items:center;gap:6px}.date-icon{width:16px;height:16px}.date-label{font-size:13px;color:var(--text-gray)}.date-value{font-size:14px;font-weight:500;color:var(--text-dark)}.request-period{margin-bottom:0}.request-reason{padding-top:8px;border-top:1px solid var(--border-color)}.leave-request-container{min-height:100vh;background:var(--bg-color)}.leave-form{display:flex;flex-direction:column;gap:20px}.leave-request-detail-container{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.reason-text{font-size:15px;color:var(--text-gray);margin:0;line-height:1.6}.requests-list{margin-top:8px}.request-card{display:flex;flex-direction:column;gap:12px}.request-header{display:flex;justify-content:space-between;align-items:center}.requester-info{display:flex;align-items:center;gap:8px}.requester-label{font-size:12px;color:var(--text-light);margin:0}.requester-name{font-size:14px;font-weight:600;color:var(--text-dark);margin:0}.request-period-inbox{display:flex;flex-direction:column;gap:4px}.period-label{font-size:12px;color:var(--text-light);margin:0}.overtime-type-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;margin-left:8px;background:#0048ba1a;color:var(--primary-blue)}.overtime-type-badge.holiday-type{background:#ef44441a;color:#ef4444}.request-reason{padding-top:8px}.reason-label{font-size:12px;color:var(--text-light);margin:0 0 2px}.reason-value{font-size:14px;color:var(--text-gray);margin:0}.request-project{padding-top:4px}.request-actions{display:flex;gap:8px;margin-top:4px}.action-btn{flex:1}.attendance-container{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.attendance-header{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;display:flex;align-items:center;gap:16px}.attendance-content{padding:20px}.attendance-list{display:flex;flex-direction:column;gap:12px}.attendance-card{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000a}.attendance-date{margin-bottom:16px}.attendance-date .date-label{font-size:16px;font-weight:600;color:var(--text-dark);margin:0}.attendance-times{display:flex;gap:24px}.time-item{display:flex;align-items:center;gap:10px;flex:1}.time-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.time-icon.clock-in{background:#10b9811a}.time-icon.clock-out{background:#ef44441a}.time-info{flex:1}.time-label{font-size:12px;color:var(--text-light);margin:0 0 2px}.time-value{font-size:14px;font-weight:600;color:var(--text-dark);margin:0}.overtime-container{min-height:100vh;background:var(--bg-color);padding-bottom:85px}.overtime-header{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;display:flex;align-items:center;gap:16px}.overtime-content{padding:20px}.requests-section{margin-bottom:24px}.section-title{font-size:18px;font-weight:700;color:var(--text-dark);margin-bottom:0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.request-btn{padding:12px 20px;background:var(--primary-blue);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.request-btn:hover{background:var(--light-blue)}.request-btn:active{transform:scale(.95)}.requests-loading,.requests-empty{text-align:center;padding:40px 20px;color:var(--text-gray);font-size:14px}.requests-list{display:flex;flex-direction:column;gap:12px}.request-card{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:all .2s ease}.request-card:hover{box-shadow:0 4px 12px #00000014}.request-card:active{transform:scale(.99)}.request-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.request-activity{font-size:16px;font-weight:600;color:var(--text-dark);flex:1;padding-right:12px}.request-status{display:inline-flex;width:fit-content;font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px;background:#0000000d;white-space:nowrap}.request-period{margin-bottom:8px}.period-label{font-size:12px;color:var(--text-light);margin:0 0 2px}.period-row{display:flex;justify-content:space-between;align-items:center}.period-value{font-size:14px;font-weight:500;color:var(--text-dark);margin:0}.request-project{margin-bottom:8px}.project-label{font-size:12px;color:var(--text-light);margin:0 0 2px}.project-value{font-size:14px;font-weight:500;color:var(--text-dark);margin:0}.type-badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px;background:linear-gradient(135deg,#0048ba,#06c);color:#fff}.type-badge-holiday{background:linear-gradient(135deg,#dc2626,#ef4444)}.overtime-request-container{min-height:100vh;background:var(--bg-color)}.request-header{background:linear-gradient(135deg,#0048ba,#06c);padding:24px 20px;display:flex;align-items:center;gap:16px}.request-content{padding:20px}.overtime-form{display:flex;flex-direction:column;gap:20px}
