:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--bg-main:#f5f5f7;--bg-card:#fff;--bg-card-hover:#fff;--border-color:#e5e5e7;--border-color-hover:#d2d2d7;--color-primary:#0071e3;--color-primary-glow:#0071e314;--color-secondary:#5856d6;--color-success:#34c759;--color-success-glow:#34c7591a;--color-warning:#ff9500;--color-danger:#ff3b30;--color-danger-glow:#ff3b301a;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-muted:#86868b;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 8px #0000000a;--shadow-lg:0 8px 20px #0000000f;--shadow-primary:0 4px 12px #0071e326;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--radius-xl:18px;--transition-fast:.12s ease;--transition-normal:.22s cubic-bezier(.25, 1, .5, 1);--transition-slow:.38s cubic-bezier(.25, 1, .5, 1)}@media (prefers-color-scheme:dark){:root{--bg-main:#000;--bg-card:#1c1c1e;--bg-card-hover:#2c2c2e;--border-color:#2c2c2e;--border-color-hover:#3a3a3c;--color-primary:#0a84ff;--color-primary-glow:#0a84ff1f;--color-secondary:#5e5ce6;--color-success:#30d158;--color-success-glow:#30d1581f;--color-warning:#ff9f0a;--color-danger:#ff453a;--color-danger-glow:#ff453a1f;--text-primary:#f5f5f7;--text-secondary:#86868b;--text-muted:#6e6e73;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0003;--shadow-lg:0 8px 24px #0000004d}}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-primary);letter-spacing:-.011em;min-height:100vh;transition:background-color var(--transition-normal);font-size:16px;font-weight:400;line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}#root{flex-direction:column;width:100%;min-height:100vh;margin:0 auto;display:flex}h1,h2,h3,h4,h5,h6{letter-spacing:-.022em;color:var(--text-primary);font-weight:600}.container{width:100%;max-width:1300px;margin:0 auto;padding:1.5rem 1rem}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--transition-normal), background-color var(--transition-normal), box-shadow var(--transition-normal);padding:1.5rem}.card:hover{box-shadow:var(--shadow-md)}.btn{cursor:pointer;transition:all var(--transition-fast);font-size:.875rem;font-weight:500;font-family:var(--font-sans);border:1px solid #0000;border-radius:980px;outline:none;justify-content:center;align-items:center;gap:.375rem;padding:.5rem 1rem;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{filter:brightness(1.05)}.btn-primary:active{filter:brightness(.95)}.btn-secondary{background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--bg-main);border-color:var(--border-color-hover)}.btn-secondary:active{background-color:var(--border-color)}.btn-danger{background-color:var(--color-danger-glow);color:var(--color-danger);border:1px solid #ff3b3026}.btn-danger:hover{background-color:var(--color-danger);color:#fff;border-color:#0000}.btn-sm{padding:.25rem .75rem;font-size:.75rem}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-secondary);letter-spacing:-.01em;margin-bottom:.375rem;font-size:.8125rem;font-weight:600;display:block}.form-control{background-color:var(--bg-main);border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-size:.875rem;font-family:var(--font-sans);transition:all var(--transition-fast);border-radius:8px;padding:.625rem .875rem}.form-control:focus{border-color:var(--color-primary);background-color:var(--bg-card);box-shadow:0 0 0 3px var(--color-primary-glow);outline:none}.form-control::placeholder{color:var(--text-muted)}.form-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;display:grid}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-normal) forwards}.table-responsive{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-card);width:100%;overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.table th{background-color:var(--bg-main);color:var(--text-secondary);border-bottom:1px solid var(--border-color);text-transform:none;padding:.75rem 1rem;font-size:.8125rem;font-weight:500}.table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);transition:background-color var(--transition-fast);padding:.875rem 1rem}.table tr:last-child td{border-bottom:none}.table tr:hover td{background-color:var(--bg-main)}.badge{border-radius:4px;align-items:center;padding:.125rem .375rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge-success{background-color:var(--color-success-glow);color:var(--color-success)}.badge-primary{background-color:var(--color-primary-glow);color:var(--color-primary)}.badge-danger{background-color:var(--color-danger-glow);color:var(--color-danger)}.app-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding:1.25rem 0;display:flex}.logo-section{align-items:center;gap:.625rem;display:flex}.logo-icon{background-color:var(--color-primary);color:#fff;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;font-size:1rem;font-weight:600;display:flex}.logo-text{color:var(--text-primary);font-size:1.125rem;font-weight:700}.tab-nav{background:#0000000d;border-radius:8px;padding:2px;display:flex}@media (prefers-color-scheme:dark){.tab-nav{background:#ffffff14}}.tab-btn{color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:6px;align-items:center;gap:.375rem;padding:.3125rem 1rem;font-size:.8125rem;font-weight:500;display:flex}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:#1d1d1f;background:#fff;box-shadow:0 1px 3px #0000001a,0 1px 1px #0000000f}@media (prefers-color-scheme:dark){.tab-btn.active{color:#fff;box-shadow:none;background:#ffffff26}}.toast{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;align-items:center;gap:.625rem;padding:.75rem 1.25rem;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideIn;display:flex;position:fixed;bottom:2rem;right:2rem}@keyframes slideIn{0%{opacity:0;transform:translateY(.75rem)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.footer{border-top:1px solid var(--border-color);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding:2.5rem 0;font-size:.75rem;display:flex}.payslip-modal-backdrop{-webkit-backdrop-filter:blur(12px);z-index:2000;background-color:#0006;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.payslip-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow-lg);flex-direction:column;gap:1.25rem;margin:auto 0;padding:2rem;display:flex;position:relative}.payslip-header{align-items:center;gap:.875rem;display:flex;position:relative}.payslip-logo{background:var(--color-primary-glow);width:40px;height:40px;color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;display:flex}.payslip-close-btn{background:var(--bg-main);border:1px solid var(--border-color);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;line-height:1;display:flex;position:absolute;top:-.5rem;right:-.5rem}.payslip-close-btn:hover{background:var(--border-color);color:var(--text-primary)}.payslip-meta{background:var(--bg-main);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;gap:.5rem;padding:.875rem 1.125rem;font-size:.8125rem;display:flex}.meta-row{justify-content:space-between;display:flex}.meta-row span{color:var(--text-secondary)}.meta-row strong{color:var(--text-primary);font-weight:600}.payslip-section{flex-direction:column;gap:.5rem;display:flex}.section-title{text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-color);letter-spacing:.05em;margin-bottom:.25rem;padding-bottom:.25rem;font-size:.75rem;font-weight:700}.payslip-item{color:var(--text-primary);justify-content:space-between;align-items:center;font-size:.875rem;display:flex}.dot-leader{border-bottom:1px dotted var(--border-color);flex-grow:1;margin:0 .5rem;position:relative;top:-4px}.payslip-total-row{color:var(--text-primary);justify-content:space-between;margin-top:.25rem;padding-top:.25rem;font-size:.875rem;font-weight:600;display:flex}.payslip-item.deduction span:last-child,.payslip-total-row.deduction span:last-child{color:var(--color-danger)}.payslip-divider{border-bottom:1px dashed var(--border-color);margin:.25rem 0}.payslip-footer-row{justify-content:space-between;align-items:center;display:flex}.payslip-footer-row span:first-child{color:var(--text-primary);font-size:.9375rem;font-weight:600}.payslip-net-amount{color:var(--color-success);font-size:1.5rem;font-weight:700}.payslip-remark{color:var(--text-secondary);background:var(--bg-main);border-left:2.5px solid var(--color-primary);border-radius:0 4px 4px 0;padding:.5rem .75rem;font-size:.75rem}.payslip-actions{gap:.75rem;margin-top:.5rem;display:flex}.payslip-actions button{flex:1;height:38px}@media print{body *{visibility:hidden}.payslip-modal-backdrop,.payslip-modal-backdrop *{visibility:visible}.payslip-modal-backdrop{width:100%;height:auto;margin:0;padding:0;position:absolute;top:0;left:0;-webkit-backdrop-filter:none!important;background:0 0!important}.payslip-card{max-width:100%;margin:0 auto;padding:0;box-shadow:none!important;background:0 0!important;border:none!important}.no-print,.payslip-close-btn{display:none!important}}
