:root{font-family:Arial,Helvetica,sans-serif;color:#122534;background:#f3f6f8;--prig-navy:#071b2c;--prig-navy-2:#0b2236;--prig-blue:#1596e0;--prig-blue-dark:#0b6fae;--prig-orange:#f47a1f;--prig-silver:#f3f6f8;--prig-soft:#eef3f6;--prig-border:#d5e0e7;--prig-text:#122534;--prig-muted:#5f7180;--success:#1e8e5a;--warning:#c77a00;--danger:#c62828}*{box-sizing:border-box}body{margin:0;background:var(--prig-silver);color:var(--prig-text)}a{text-decoration:none;color:inherit}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,var(--prig-navy) 0,var(--prig-navy-2) 100%);color:#fff;padding:24px;display:flex;flex-direction:column;border-right:1px solid #23435c;box-shadow:8px 0 24px rgba(7,27,44,.08)}.brand{font-size:22px;font-weight:900;color:#fff;margin-bottom:28px;letter-spacing:.5px;padding-bottom:16px;border-bottom:2px solid var(--prig-orange)}.brand span{color:#dbe8f2;font-size:14px;letter-spacing:1.3px}.nav a{display:block;padding:10px 12px;margin:4px 0;border-radius:8px;color:#e5eef5;transition:background .18s ease,color .18s ease,transform .18s ease}.nav a:hover{background:rgba(21,150,224,.14);color:#fff}.nav a.active{background:linear-gradient(90deg,var(--prig-blue-dark),var(--prig-blue));color:#fff;box-shadow:inset 3px 0 0 var(--prig-orange)}.side-footer{margin-top:auto;padding-top:24px}.link-button{background:none;border:0;color:#dbe8f2;cursor:pointer;padding:10px 12px;font:inherit}.main{padding:28px;background:linear-gradient(180deg,#f5f8fa,#eef3f6)}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px}.card{background:#fff;border:1px solid var(--prig-border);border-radius:12px;padding:18px;box-shadow:0 8px 24px rgba(7,27,44,.07)}.metric{font-size:28px;font-weight:800;color:var(--prig-navy)}.danger{color:var(--danger)}.warn{color:var(--warning)}.ok{color:var(--success)}.btn{display:inline-block;background:linear-gradient(90deg,var(--prig-blue-dark),var(--prig-blue));color:#fff;border:none;border-radius:8px;padding:10px 14px;font-weight:700;cursor:pointer;transition:filter .18s ease,transform .18s ease,box-shadow .18s ease}.btn:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 7px 16px rgba(11,111,174,.18)}.btn.secondary{background:var(--prig-navy);color:#fff}.btn.warning-action{background:linear-gradient(90deg,#d96700,var(--prig-orange));color:#fff}.btn.danger-action,.danger-btn{background:var(--danger);color:#fff}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:12px;border-bottom:1px solid #e2e8ed}.table th{color:var(--prig-navy);background:#f7fafc}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}.badge.ok{background:#dcfce7;color:#166534}.badge.warn{background:#fff3cd;color:#7c5700}.badge.danger{background:#fee2e2;color:#991b1b}.form-group{margin:14px 0}.form-group label{display:block;font-weight:700;margin-bottom:6px;color:var(--prig-navy)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px;border:1px solid #c8d4dc;border-radius:8px;background:#fff;color:var(--prig-text)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--prig-blue);box-shadow:0 0 0 3px rgba(21,150,224,.12)}.section{margin-top:24px}.muted{color:var(--prig-muted)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,var(--prig-navy),#123654)}.login-card{width:min(440px,100%);padding:28px}.login-mark{font-size:30px;font-weight:900;color:#fff;letter-spacing:1px}.full{width:100%}.alert{padding:10px 12px;border-radius:8px;margin:12px 0}.danger-bg{background:#fee2e2;color:#991b1b}.warning-bg{background:#fff3cd;border-color:#ffe69c;color:#7c5700}.success-bg{background:#d1e7dd;border-color:#badbcc;color:#14532d}.toolbar{flex-wrap:wrap}.status-row,.toolbar{display:flex;gap:10px;align-items:center}.empty{padding:24px;text-align:center;color:var(--prig-muted)}.fail-box{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:12px;margin-top:10px}.radio-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.choice{border:1px solid #c8d4dc;background:#fff;border-radius:7px;padding:7px 10px;cursor:pointer}.choice.selected{border-color:var(--prig-blue);box-shadow:0 0 0 1px var(--prig-blue)}.choice.pass.selected{background:#dcfce7;border-color:var(--success)}.choice.fail.selected{background:#fee2e2;border-color:var(--danger)}.choice.na.selected{background:#f3f4f6;border-color:#6b7280}.signature-pad{display:block;width:100%;height:150px;background:#fff;border:1px solid #cfd4da;border-radius:8px;touch-action:none;margin-bottom:8px}.small{padding:7px 10px;font-size:.85rem}.qr-card{text-align:center}.qr-card img{max-width:100%;height:auto;border:8px solid #fff}.mobile-nav-backdrop,.mobile-nav-button{display:none}@media(max-width:800px){.shell{display:block;min-height:100vh}.main{padding:72px 14px 18px;min-width:0}.mobile-nav-button{position:fixed;top:12px;left:12px;z-index:1200;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:0;border-radius:9px;background:var(--prig-navy);color:#fff;font-weight:800;box-shadow:0 5px 18px rgba(7,27,44,.22);cursor:pointer}.mobile-nav-button span:first-child{font-size:21px;line-height:1}.mobile-nav-backdrop{position:fixed;inset:0;z-index:1190;display:block;border:0;background:rgba(3,15,25,.56);padding:0}.side{position:fixed;top:0;left:0;bottom:0;z-index:1210;width:min(86vw,320px);padding:18px 16px;overflow-y:auto;transform:translateX(-105%);transition:transform .2s ease;box-shadow:10px 0 30px rgba(0,0,0,.25)}.side.mobile-open{transform:translateX(0)}.nav{display:block;overflow:visible}.nav a{white-space:normal;min-height:44px}.side-footer{display:block}.brand-lockup{justify-content:center}.brand-lockup-image{max-width:172px}.top{align-items:flex-start;gap:14px;flex-direction:column}.top>div:last-child{width:100%}.top .btn{min-height:44px}.card{padding:15px}.table{min-width:680px}.form-group input,.form-group select,.form-group textarea{min-height:44px;font-size:16px}.btn{min-height:44px}}@media(max-width:520px){.main{padding-left:10px;padding-right:10px}.grid{grid-template-columns:1fr}.card{border-radius:10px;padding:14px}.metric{font-size:25px}.top h1{font-size:27px;line-height:1.15;margin-bottom:8px}.toolbar{align-items:stretch}.toolbar>.btn,.toolbar>a.btn{width:100%;text-align:center}}@media print{.btn:not(.print-keep),.sidebar,.topbar{display:none!important}.main{margin:0!important}.qr-card{box-shadow:none;border:2px solid #111;max-width:320px}}.action-icon,.metric-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:999px}.action-icon{width:40px;height:40px;color:#fff}.metric-icon{width:30px;height:30px}.action-icon.blue{background:#0b6fae}.action-icon.orange{background:#f47a1f}.action-icon.red{background:#c62828}.action-icon.gray{background:#7b8d9d}.metric-icon.blue{color:#0b6fae;background:rgba(21,150,224,.1)}.metric-icon.orange{color:#f47a1f;background:rgba(244,122,31,.11)}.metric-icon.red{color:#c62828;background:rgba(198,40,40,.1)}.metric-icon.gray{color:#607587;background:rgba(96,117,135,.1)}.nav svg{flex:0 0 auto;opacity:.92}.nav a.active svg{opacity:1}.brand-lockup{margin:0 0 18px;padding:0 0 18px;border-bottom:2px solid var(--prig-orange);display:flex;align-items:center;justify-content:center}.brand-lockup-image{display:block;width:100%;max-width:188px;height:auto;object-fit:contain;filter:drop-shadow(0 3px 8px rgba(0,0,0,.18))}@media(max-width:800px){.brand-lockup{justify-content:flex-start;padding-bottom:12px;margin-bottom:12px}.brand-lockup-image{max-width:168px}}.dashboard-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.dashboard-activity-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center}.dashboard-activity-detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-jobsite-select{min-width:300px}@media(max-width:1000px){.dashboard-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.dashboard-jobsite-select{min-width:0;width:100%}.dashboard-activity-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:start}.dashboard-activity-row>div:first-child,.dashboard-activity-row>span:first-child{grid-column:1/-1;justify-self:start}.dashboard-activity-detail{overflow:visible;text-overflow:clip;white-space:normal}}@media(max-width:520px){.dashboard-activity-row,.dashboard-quick-grid{grid-template-columns:1fr}.dashboard-activity-row>div:last-child{white-space:normal!important}}.inspection-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.inspection-filter-grid{display:grid;grid-template-columns:minmax(260px,2fr) repeat(4,minmax(170px,1fr));grid-gap:14px;gap:14px}.toolbox-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:20px}@media(max-width:1050px){.inspection-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.toolbox-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.inspection-filter-grid{grid-template-columns:1fr}.inspection-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.inspection-metric-grid,.toolbox-metric-grid{grid-template-columns:1fr}}.empty-state{padding:34px 22px;text-align:center;border:1px dashed #c8d4dc;border-radius:12px;background:linear-gradient(180deg,#fbfdfe,#f5f8fa)}.empty-state-title{font-size:19px;font-weight:900;color:var(--prig-navy);margin-bottom:7px}.empty-state-detail{max-width:680px;margin:0 auto;line-height:1.5}.empty-state-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}.data-error{margin:12px 0 18px;padding:16px 18px;border:1px solid #f3b7b7;border-left:5px solid var(--danger);border-radius:10px;background:#fff5f5}.data-error-title{font-weight:900;color:#8e1f1f;margin-bottom:4px}.data-error-detail{color:#7c3a3a;line-height:1.45}@media(max-width:520px){.empty-state{padding:26px 14px}.empty-state-actions{align-items:stretch}.empty-state-actions .btn{width:100%;text-align:center}}.training-assignment-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.training-assignment-filter-grid{display:grid;grid-template-columns:minmax(260px,2fr) minmax(210px,1fr);grid-gap:14px;gap:14px}@media(max-width:1050px){.training-assignment-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.training-assignment-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.training-assignment-filter-grid{grid-template-columns:1fr}}@media(max-width:520px){.training-assignment-metric-grid{grid-template-columns:1fr}}.training-row-critical td{background:#fff1f1}.training-row-critical td:first-child{box-shadow:inset 5px 0 0 var(--danger)}.training-row-high td{background:#fff8ed}.training-row-high td:first-child{box-shadow:inset 5px 0 0 var(--prig-orange)}.training-row-medium td{background:#fffdf5}.training-row-medium td:first-child{box-shadow:inset 5px 0 0 #d4a72c}.badge.priority-critical{background:#fee2e2;color:#991b1b}.badge.priority-high{background:#ffedd5;color:#9a3412}.badge.priority-medium{background:#fef3c7;color:#854d0e}.badge.priority-normal{background:#e8f3fb;color:#0b5f8a}