*{box-sizing:border-box}body{color:#192a39;background:#f2f4f6;margin:0;font:16px/1.6 system-ui}header{color:#fff;background:#152939;align-items:center;gap:24px;padding:20px 5%;display:flex}header img{background:#fff;border-radius:4px;width:100px}header h1{margin:0;font-size:24px}header p{color:#b7cad6;margin:0}header a{color:#fff;margin-left:auto}main{max-width:1100px;margin:auto;padding:28px 22px}.panel{background:#fff;border:1px solid #d8e1e7;border-radius:12px;margin:20px 0;padding:26px}.notice{background:#fff2d6;border-radius:8px;padding:15px}.bar{flex-wrap:wrap;align-items:center;gap:15px;margin:24px 0;display:flex}.badge{background:#e0eee9;border-radius:20px;padding:5px 13px}button,.button{color:#fff;font:inherit;cursor:pointer;background:#087d77;border:0;border-radius:7px;padding:11px 18px;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:wait}label{margin:16px 0;display:block}input,textarea{width:100%;font:inherit;border:1px solid #b8c7d0;border-radius:6px;margin-top:6px;padding:11px;display:block}textarea{min-height:90px}.choice{border:1px solid #c5d2da;border-radius:6px;gap:14px;padding:14px;display:flex}.choice input{width:auto;margin:6px 0}.success{background:#e2f4e9;border-left:5px solid #168351;padding:20px}.error{color:#942b22;background:#ffe6e4;padding:15px}.action{border-top:1px solid #d2dce2;padding:18px 0}a{color:#087d77}progress{accent-color:#087d77;width:100%}h2,h3{line-height:1.3}@media (max-width:600px){header{flex-wrap:wrap;gap:12px}header img{width:75px}header h1{font-size:20px}.panel{padding:20px}main{padding:18px 14px}}select{width:100%;font:inherit;background:#fff;border:1px solid #b8c7d0;border-radius:6px;margin-top:6px;padding:11px;display:block}small{color:#5d707e;display:block}.cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}details{margin:18px 0}summary{cursor:pointer;font-weight:600}.field{margin:16px 0}.field>label{margin-bottom:6px}.expiry{background:#e5edf0;border-radius:6px;padding:3px 9px;display:inline-block}.expiry.expired{color:#942b22;background:#ffe0dd}.expiry.urgent{color:#7a4600;background:#ffe9ce}.expiry.soon{color:#775400;background:#fff2d6}#review-record{scroll-margin-top:20px}#review-record:focus{outline:2px solid #087d77}nav button[aria-pressed=true]{background:#152939;box-shadow:0 0 0 3px #b4d9d5}#record-editor{scroll-margin-top:20px}.allocation-grid{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:20px;display:grid}.allocation-roster{background:#e7eef2;border:1px solid #c5d2da;border-radius:10px;max-height:80vh;padding:16px;position:sticky;top:16px;overflow:auto}.allocation-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.allocation-box{background:#fff;border:1px solid #c5d2da;border-radius:10px;min-height:125px;padding:18px}.allocation-box h3{margin-top:0}.allocation-box h3 small{font-weight:400}.diary-person,.diary-job{overflow-wrap:anywhere;background:#eef5f3;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin:9px 0;padding:10px;display:flex}.diary-person{cursor:grab}.diary-person button,.diary-job button{padding:6px 9px;font-size:13px}.diary-job{background:#f0f3f7}.job-result{text-align:left;color:#163e3c;background:#e6f0ef;width:100%;margin:8px 0;display:block}.assignment-picker{border:2px solid #087d77}.absences .allocation-box{background:#f8fafb}@media (max-width:800px){.allocation-grid{grid-template-columns:1fr}.allocation-roster{max-height:none;position:static}.allocation-cards{grid-template-columns:1fr}}main:has(.allocation-grid){max-width:1800px;padding-left:30px;padding-right:30px}@media (min-width:1150px){.allocation-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:800px){main:has(.allocation-grid){padding-left:14px;padding-right:14px}}.handover-tools{margin:16px 0}fieldset{border:1px solid #c5d2da;border-radius:8px;margin:20px 0}.certificate-sheet{overflow-wrap:anywhere;background:#fff;border:2px solid #152939;margin-top:20px;padding:26px}.certificate-head{align-items:center;gap:24px;display:flex}.certificate-head img{width:100px}.certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.certificate-sheet h3{background:#e7eef2;padding:9px}@media print{body:has(.printing) *{visibility:hidden}.certificate-sheet.printing,.certificate-sheet.printing *{visibility:visible}.certificate-sheet.printing{border:0;width:100%;margin:0;padding:15mm;font-size:11pt;position:absolute;top:0;left:0}.certificate-sheet.printing .certificate-toolbar{display:none}.certificate-sheet h3{break-after:avoid}.certificate-sheet p{break-inside:avoid}header{display:none}body:has(.printing) main{max-width:none;margin:0;padding:0}body:has(.printing) main :not(:has(.printing)):not(.printing):not(.printing *){display:none!important}}.job-handover-card{color:#192a39;text-align:left;cursor:pointer;width:100%;font-weight:400}.job-handover-card:hover{background:#f5faf8;border-color:#087d77}.register-filters label{max-width:210px}.handover-tools{background:#edf3f5;border-radius:8px;padding:16px}.handover-tools h4{margin-top:0}.visit-editor{background:#f1f6f5;border-radius:8px;margin:16px 0;padding:20px}.attendance-row{align-items:center;gap:16px;display:flex}.attendance-row>span{flex:1}.attendance-row label{width:110px}.earnings-amount{max-width:260px}.table-wrap{background:#fff;border:1px solid #d8e1e7;border-radius:8px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #d8e1e7;padding:12px}th{background:#e7eef2}td{white-space:pre-wrap}nav.bar button{padding:9px 13px}@media (max-width:600px){.attendance-row{flex-wrap:wrap}}@media print{body:has(.printing-takeoff) *{visibility:hidden}.printing-takeoff,.printing-takeoff *{visibility:visible}.printing-takeoff{width:100%;padding:12mm;font-size:10pt;position:absolute;top:0;left:0}.printing-takeoff .report-controls{display:none}.printing-takeoff table{font-size:9pt}.printing-takeoff .table-wrap{overflow:visible}body:has(.printing-takeoff) main :not(:has(.printing-takeoff)):not(.printing-takeoff):not(.printing-takeoff *){display:none!important}}.group-row td{background:#e7eef2;font-weight:600}nav.bar{gap:8px}nav.bar button{padding:9px 11px;font-size:14px}.handover-tools details.action{margin-bottom:0}.site-review-group{margin:28px 0 42px}.site-review-header{border-radius:10px;justify-content:space-between;gap:16px;padding:15px 22px}.site-review-header h3{margin:0;font-size:18px}.site-attendance{background:#edf5f3;border-color:#bad5cf}.site-review-group>.panel:not(.site-attendance){border-left:4px solid #bad5cf;margin-left:18px}@media (max-width:600px){.site-review-group>.panel:not(.site-attendance){margin-left:0}}main:has(.takeoff-report){max-width:1500px}.site-wage-total{float:right;text-align:right;margin-left:20px}.site-wage-total small{font-weight:400}@media (max-width:600px){.site-wage-total{float:none;text-align:left;margin:8px 0 0;display:block}}
