:root{--navy:#152a4a;--navy2:#22406b;--paper:#f4f2ec;--card:#fff;--line:#ddd8cc;--text:#1c2333;--muted:#6b7280;--amber:#e08a1e;--green:#2e7d4f;--red:#b23a2e;--bluebg:#eaf1fb;--greenbg:#e4f2e9;--redbg:#fbe8e5;--grey:#efede6;font-family:Inter,"Segoe UI",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--text)}button,input,select,textarea{font:inherit}.shell{min-height:100vh}.topbar{height:64px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 22px;gap:16px;position:sticky;top:0;z-index:20}.logo{width:36px;height:36px;border-radius:8px;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:900}.brand{font-weight:800}.brand small{display:block;font-weight:400;opacity:.7;font-size:11px}.spacer{flex:1}.online{font-size:11px;padding:5px 9px;border-radius:20px;background:rgba(255,255,255,.13)}.role-select{background:#fff;color:var(--navy);border:0;border-radius:7px;padding:8px 10px;font-weight:700}.layout{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 64px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:18px 12px}.navbtn{width:100%;border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:8px;color:var(--muted);cursor:pointer;margin-bottom:4px}.navbtn.active{background:var(--navy);color:#fff;font-weight:700}.content{padding:26px;max-width:1400px;width:100%;margin:0 auto}.pagehead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.pagehead h1{font-size:25px;margin:0 0 4px;color:var(--navy)}.sub{font-size:13px;color:var(--muted)}.btn{border:0;background:var(--navy);color:#fff;padding:10px 14px;border-radius:8px;font-weight:700;cursor:pointer}.btn.secondary{background:#fff;color:var(--navy);border:1px solid var(--navy)}.btn.green{background:var(--green)}.btn.red{background:var(--red)}.btn.small{padding:6px 9px;font-size:11px}.btn:disabled{background:#ccc;cursor:not-allowed}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat,.card{background:#fff;border:1px solid var(--line);border-radius:12px}.stat{padding:16px}.stat b{display:block;font-size:23px;color:var(--navy)}.stat span{font-size:11px;color:var(--muted)}.card{padding:18px;margin-bottom:16px}.card h2{font-size:16px;margin:0 0 13px;color:var(--navy)}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;text-transform:uppercase;letter-spacing:.35px;font-size:10px;color:var(--muted);padding:9px;border-bottom:1px solid var(--line)}td{padding:11px 9px;border-bottom:1px solid var(--line);vertical-align:top}.badge{display:inline-block;padding:4px 8px;border-radius:20px;font-size:10px;font-weight:800}.allocated{background:var(--grey);color:#5a6b85}.onsite{background:#fdecd2;color:#9b5a0b}.review{background:var(--bluebg);color:#2451a3}.passed,.paid{background:var(--greenbg);color:var(--green)}.query{background:var(--redbg);color:var(--red)}.jobcards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.job{padding:16px;background:#fff;border:1px solid var(--line);border-radius:12px;cursor:pointer}.job:hover{border-color:var(--navy2);box-shadow:0 6px 20px rgba(21,42,74,.08)}.job h3{font-size:14px;margin:0 0 4px}.job .measure{font-size:12px;color:var(--muted);margin-bottom:12px}.progress{height:7px;background:var(--grey);border-radius:10px;overflow:hidden;margin:8px 0}.bar{height:100%;background:var(--green)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.tab{padding:8px 11px;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:7px;cursor:pointer;font-size:12px}.tab.active{background:var(--navy);color:#fff}.detailgrid{display:grid;grid-template-columns:1fr 330px;gap:18px}.group-title{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:800;margin:17px 0 8px}.item{display:flex;align-items:flex-start;gap:10px;padding:11px;background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:7px}.item-main{flex:1}.item-title{font-size:12px;font-weight:750}.item-meta{font-size:10px;color:var(--muted);margin-top:3px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.photo{min-height:125px;background:var(--grey);border:1.5px dashed #c7c2b6;border-radius:9px;padding:9px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;cursor:pointer;font-size:10px;font-weight:700;position:relative}.photo.done{background:linear-gradient(135deg,#33465f,#17253a);color:#fff;border-style:solid}.photo .stamp{font-size:8px;font-weight:400;margin-top:7px;opacity:.85}.photo .tick{position:absolute;right:6px;top:6px;background:var(--green);width:19px;height:19px;border-radius:50%;display:grid;place-items:center}.notice{padding:11px 12px;border-radius:9px;background:var(--bluebg);color:#294e7a;font-size:12px;margin-bottom:13px}.warning{background:#fff4df;color:#84510d}.danger{background:var(--redbg);color:var(--red)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field label{display:block;font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:9px;background:#fff}.field textarea{min-height:80px}.actions{display:flex;gap:8px;flex-wrap:wrap}.rightbox{position:sticky;top:84px}.metric{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.metric:last-child{border-bottom:0}.metric b{color:var(--navy)}.empty{text-align:center;padding:50px 20px;color:var(--muted)}.modalback{position:fixed;inset:0;background:rgba(10,20,34,.55);display:grid;place-items:center;z-index:50;padding:16px}.modal{background:#fff;border-radius:14px;padding:20px;width:min(620px,100%);max-height:90vh;overflow:auto}.modal h2{margin:0 0 14px;color:var(--navy)}.audit{font-size:11px;padding:8px 0;border-bottom:1px solid var(--line)}.audit time{color:var(--muted);margin-right:7px}.mobilebar{display:none}.integration{display:flex;align-items:center;justify-content:space-between;padding:13px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px;background:var(--amber)}.dot.connected{background:var(--green)}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{display:none}.content{padding:16px 12px 80px}.grid{grid-template-columns:1fr 1fr}.jobcards{grid-template-columns:1fr}.detailgrid{grid-template-columns:1fr}.rightbox{position:static}.photo-grid{grid-template-columns:1fr 1fr}.mobilebar{display:flex;position:fixed;bottom:0;left:0;right:0;height:62px;background:#fff;border-top:1px solid var(--line);z-index:30;justify-content:space-around}.mobilebar button{border:0;background:transparent;color:var(--muted);font-size:10px}.mobilebar button.active{color:var(--navy);font-weight:800}.topbar{padding:0 12px}.brand small{display:none}.online{display:none}.pagehead{flex-direction:column}.formgrid{grid-template-columns:1fr}}
@media(max-width:480px){.grid{grid-template-columns:1fr 1fr}.photo-grid{grid-template-columns:1fr 1fr}.content{padding-left:10px;padding-right:10px}.role-select{max-width:130px}.stat b{font-size:19px}}
