*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f4f6f9;color:#16243a}button{cursor:pointer;border:none;border-radius:8px;padding:8px 16px;background:#1f4fd8;color:#fff;font-size:14px;font-weight:600}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:#e5e9f0;color:#16243a}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid #D6DCE5;border-radius:8px;background:#fff;color:#16243a}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#16243a;padding:20px}.auth-card{background:#fff;padding:32px;border-radius:16px;width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px}.auth-card h1{margin:0}.auth-logo{width:100%;max-width:200px;height:auto;object-fit:contain;margin:0 auto 4px}.auth-subtitle{margin:0 0 12px;color:#6b7a8f;font-size:13px}.auth-error{color:#d14343;font-size:13px;margin:0}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:#16243a;color:#fff;display:flex;flex-direction:column;padding:20px 16px}.brand-logo{display:block;width:100%;max-width:168px;height:auto;margin-bottom:24px;object-fit:contain}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.nav-link{color:#b7c2d0;padding:10px 12px;border-radius:8px;text-decoration:none;font-size:14px}.nav-link.active,.nav-link:hover{background:#ffffff1a;color:#fff}.sidebar-footer{border-top:1px solid rgba(255,255,255,.15);padding-top:14px}.user-name{font-weight:600;font-size:14px}.user-role{font-size:12px;color:#b7c2d0;text-transform:capitalize;margin-bottom:10px}.content{flex:1;min-width:0;padding:32px;overflow-x:auto}.mobile-topbar,.sidebar-backdrop{display:none}@media(max-width:860px){.mobile-topbar{display:flex;align-items:center;justify-content:space-between;background:#16243a;color:#fff;padding:10px 16px;position:sticky;top:0;z-index:30}.mobile-topbar .brand-logo{max-width:120px;margin:0}.hamburger-btn{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:6px 12px;border-radius:8px}.app-shell{flex-direction:column}.sidebar{position:fixed;top:0;left:0;bottom:0;width:250px;max-width:82vw;transform:translate(-100%);transition:transform .22s ease;z-index:40;overflow-y:auto}.sidebar.open{transform:translate(0)}.sidebar-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:35}.content{padding:16px;overflow-x:auto}.page-header{flex-direction:column;align-items:stretch;gap:10px}.filter-bar{flex-direction:column;align-items:stretch}.form-grid{grid-template-columns:1fr}.modal-card{width:min(560px,92vw);padding:18px}.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:420px){.auth-card{padding:22px}.kpi-grid{grid-template-columns:1fr}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.page-header h1{margin:0 0 4px}.page-subtitle{margin:0;color:#6b7a8f;font-size:14px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.kpi-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f}.kpi-value{font-size:28px;font-weight:800}.kpi-label{color:#6b7a8f;font-size:13px;margin-top:4px}.section-title{font-size:16px;font-weight:700;margin:0 0 12px}.filter-bar{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.filter-bar label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:#16243a}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000f}.data-table th,.data-table td{text-align:left;padding:12px 16px;border-bottom:1px solid #EEF1F5;font-size:13px}.data-table th{color:#6b7a8f;font-weight:600}.row-actions{display:flex;gap:10px}.link-button{background:none;color:#1f4fd8;padding:0;font-weight:600}.link-button.danger{color:#d14343}.status-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#e5e9f0}.status-awarded,.status-running,.status-completed{background:#ddf4e4;color:#1f8a4c}.status-lost{background:#fbe2e2;color:#d14343}.status-submitted,.status-qualified,.status-under_review{background:#fff2d6;color:#a1690b}.status-on_hold{background:#fbe2e2;color:#d14343}.status-in_progress{background:#dce8ff;color:#1f4fd8}.priority-urgent{background:#fbe2e2;color:#d14343}.priority-high{background:#ffe3cc;color:#b5550c}.priority-medium{background:#fff2d6;color:#a1690b}.priority-low{background:#e5e9f0;color:#5c6b80}.task-board{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px}.task-board-column{background:#f4f6f9;border-radius:12px;padding:12px;min-width:240px;flex:1}.task-board-column h3{margin:0 0 12px;font-size:14px;color:#16243a}.task-board-column-body{display:flex;flex-direction:column;gap:10px;min-height:60px}.task-board-column-over{background:#e5e9f0}.task-board-card{background:#fff;border-radius:10px;padding:12px;box-shadow:0 1px 3px #00000014;display:flex;flex-direction:column;gap:6px}.task-board-card-title{font-weight:700;font-size:13px;color:#16243a}.task-board-card-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;color:#6b7a8f;align-items:center}.notif-bell-wrap{position:fixed;top:16px;right:24px;z-index:20}.notif-bell{background:#fff;border-radius:50%;width:40px;height:40px;box-shadow:0 1px 3px #0000001f;position:relative;font-size:18px}.notif-badge{position:absolute;top:-4px;right:-4px;background:#d14343;color:#fff;border-radius:999px;font-size:11px;padding:1px 6px}.notif-dropdown{position:absolute;right:0;top:48px;width:280px;max-height:360px;overflow-y:auto;background:#fff;border-radius:12px;box-shadow:0 4px 16px #00000026;padding:12px}.notif-dropdown-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.notif-dropdown ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.notif-dropdown li{padding:8px;border-radius:8px;background:#f4f6f9;font-size:13px}.notif-unread{background:#e5eeff!important}.empty-card{background:#fff;border-radius:12px;padding:24px;color:#6b7a8f;text-align:center}.error-text{color:#d14343;font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center}.modal-card{background:#fff;border-radius:14px;padding:24px;width:560px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.modal-card h2{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label,.full-width{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:#16243a}.form-grid .full-width{grid-column:1 / -1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.payslip-page{display:flex;flex-direction:column;align-items:center;padding:24px;background:#f4f6f9;min-height:100vh}.payslip-toolbar{margin-bottom:16px;display:flex;gap:8px}.payslip-sheet{position:relative;background:#fff;width:720px;padding:32px;border-radius:8px;box-shadow:0 1px 3px #00000014;box-sizing:border-box}.payslip-letterhead{width:100%;display:block;margin-bottom:12px}.payslip-sheet h2{margin:0 0 4px}.payslip-sheet h3{margin:20px 0 8px;font-size:14px}.payslip-form-tag{font-size:12px;color:#6b7a8f;margin:8px 0}.payslip-row{display:flex;justify-content:space-between;margin:12px 0;font-size:14px}.payslip-meta,.payslip-table{width:100%;border-collapse:collapse;margin-bottom:8px;table-layout:fixed}.payslip-meta td{padding:6px 4px;font-size:13px;word-break:break-word}.payslip-table th,.payslip-table td{border:1px solid #D6DCE5;padding:6px 4px;font-size:11px;text-align:center;word-break:break-word}.payslip-net{text-align:right;font-size:16px;font-weight:700;margin:16px 0}.payslip-signatures{display:flex;justify-content:space-between;align-items:flex-end;margin-top:60px;font-size:13px}.payslip-sign-block{display:flex;flex-direction:column;align-items:center;gap:4px}.payslip-sign-img{height:56px;max-width:160px;object-fit:contain}.payslip-stamp-img{height:70px;max-width:120px;object-fit:contain;position:absolute;right:40px;bottom:90px;opacity:.85}@media print{@page{size:A4;margin:12mm}.no-print{display:none}.payslip-page{background:#fff;padding:0}.payslip-sheet{box-shadow:none;width:100%;padding:0}}
