:root{--nav:#172638;--nav2:#21364d;--bg:#f3f6fa;--card:#fff;--text:#142033;--muted:#6f7c8d;--line:#dfe6ee;--blue:#2678e9;--blue2:#eaf3ff;--green:#159a67;--red:#e14c4c;--amber:#d79218;--radius:14px;--shadow:0 8px 30px rgba(24,39,58,.07)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px}a{color:var(--blue);text-decoration:none}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--nav),#13202f);color:#fff;padding:0 14px;position:sticky;top:0;height:100vh;overflow:auto}.brand{height:74px;display:flex;align-items:center;gap:11px;padding:0 10px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:36px;height:36px;border-radius:10px;background:var(--blue);display:grid;place-items:center}.brand strong{display:block;font-size:18px}.brand small{color:#a9b7c5}.sidebar nav{padding:16px 0}.sidebar nav a{display:flex;align-items:center;gap:12px;color:#c8d3df;padding:11px 12px;border-radius:9px;margin:4px 0}.sidebar nav a.active{background:#2a4665;color:#fff}.sidebar nav a.disabled{opacity:.58;cursor:default}.sidebar nav a em{font-size:10px;margin-left:auto;border:1px solid #6e8094;padding:2px 5px;border-radius:5px;font-style:normal}.nav-label{font-size:10px;letter-spacing:1.2px;color:#71859b;padding:20px 12px 6px}.main{min-width:0}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.global-search{width:min(520px,45vw);background:#f6f8fb;border:1px solid #e8edf3;border-radius:9px;padding:9px 12px;color:#8390a0}.global-search input{border:0;outline:0;background:transparent;width:90%}.user-box{display:flex;align-items:center;gap:9px}.user-box strong,.user-box small{display:block}.user-box small{color:var(--muted);font-size:11px}.logout{margin-left:10px;font-size:12px}.content{padding:28px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:18px}.page-head h1{font-size:26px;margin:3px 0}.page-head p{margin:3px 0;color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.chip{background:var(--blue2);color:var(--blue);padding:7px 11px;border-radius:99px;font-weight:700}.btn{border:1px solid var(--line);background:#fff;color:var(--text);padding:10px 14px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font:inherit}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.secondary{background:#fff}.btn.small{padding:7px 10px;font-size:12px}.btn.full{width:100%;margin-top:8px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;gap:14px;box-shadow:var(--shadow)}.kpi-icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;font-size:20px}.kpi-icon.blue{background:#e7f1ff}.kpi-icon.teal{background:#e5f7f1}.kpi-icon.amber{background:#fff3d9}.kpi-icon.red{background:#ffebeb}.kpi small{color:var(--muted)}.kpi strong{font-size:27px;display:block;margin:5px 0}.kpi p{font-size:11px;color:var(--muted);margin:0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.panel h2{font-size:17px;margin:0 0 16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{margin:0}.muted{color:var(--muted);margin:3px 0}.risk-bars{display:grid;gap:15px}.bar-row{display:grid;grid-template-columns:70px 1fr 30px;align-items:center;gap:10px}.bar{height:9px;background:#edf1f5;border-radius:9px;overflow:hidden}.bar i{display:block;height:100%;border-radius:9px;min-width:2px}.low{background:#d9f4e7!important;color:#13734e!important}.medium{background:#fff0c9!important;color:#986800!important}.high{background:#ffe3cc!important;color:#b35400!important}.extreme{background:#ffe0e0!important;color:#b22f2f!important}.attention{display:grid;grid-template-columns:1fr 1fr;gap:14px}.attention>div{border:1px solid var(--line);border-radius:10px;padding:14px}.attention b{font-size:22px}.attention p{color:var(--muted);font-size:12px;margin:5px 0 0}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.dot.red{background:var(--red)}.dot.amber{background:var(--amber)}.dot.blue{background:var(--blue)}.table-wrap{overflow:auto}.table-panel{padding:0}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.35px;color:var(--muted);background:#f9fafc}tbody tr:hover{background:#fbfdff}.sub{display:block;color:var(--muted);font-size:11px;margin-top:4px}.empty{text-align:center;color:var(--muted);padding:35px}.status{display:inline-block;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:700;text-transform:capitalize}.status.active{background:#e4f7ec;color:#12804f}.status.inactive{background:#ffe7e7;color:#b23e3e}.status.draft{background:#eef1f4;color:#667383}.status.review{background:#fff0cd;color:#946200}.risk-badge{display:inline-grid;place-items:center;min-width:42px;padding:6px 8px;border-radius:7px;font-weight:800;font-size:12px}.person{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:600}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#dce3eb;color:#5b6876;font-weight:800}.avatar.small{width:34px;height:34px}.avatar.xl{width:82px;height:82px;font-size:27px}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#f2f5f8;color:#566476}.filterbar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;gap:10px;margin-bottom:16px;box-shadow:var(--shadow)}input,select,textarea{width:100%;border:1px solid #d8e0e9;border-radius:8px;padding:10px 11px;background:#fff;color:var(--text);font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#83b4f4;box-shadow:0 0 0 3px rgba(38,120,233,.1)}.filterbar input{flex:1;min-width:250px}.filterbar select{max-width:190px}.profile-hero{display:flex;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:14px}.grow{flex:1}.profile-title{display:flex;align-items:center;gap:10px}.profile-title h2{margin:0}.profile-hero p{margin:6px 0;color:var(--muted)}.gate-card{padding:14px 18px;border-radius:10px;text-align:center}.gate-card small,.gate-card strong{display:block}.gate-card.ok{background:#e4f7ec;color:#11764b}.gate-card.blocked{background:#ffe6e6;color:#aa3131}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs button{border:0;background:transparent;padding:12px 14px;color:var(--muted)}.tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue);font-weight:700}.tabs em{font-size:9px;background:#eef2f6;padding:2px 4px;border-radius:4px}.details{display:grid;gap:0}.details label{display:grid;grid-template-columns:160px 1fr;padding:11px 0;border-bottom:1px dashed var(--line);color:var(--muted)}.details span{color:var(--text);font-weight:600}.form-card h2{margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{color:#536173;font-size:12px;font-weight:700}.form-grid input,.form-grid select{margin-top:6px}.span-2{grid-column:span 2}.checkline{display:flex!important;align-items:center;gap:8px;margin-top:24px}.checkline input,.check input{width:auto}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.risk-entry{border:1px solid var(--line);border-radius:12px;padding:15px;margin:12px 0;background:#fbfcfe}.risk-entry-head{display:flex;justify-content:space-between;margin-bottom:12px}.text-danger{color:#c63e3e;border:0;background:transparent;cursor:pointer}.risk-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.risk-grid label{font-size:12px;color:#5d6b79;font-weight:700}.risk-grid input,.risk-grid textarea{margin-top:5px}.span-3{grid-column:span 3}.score-box{display:flex;align-items:end;gap:8px;border:1px solid var(--line);padding:10px;border-radius:10px}.score-box>b{align-self:center;margin-right:auto}.score-box label{width:70px}.score{width:42px;height:42px;border-radius:8px;display:grid;place-items:center}.sticky-actions{position:sticky;bottom:0;background:rgba(243,246,250,.95);border-top:1px solid var(--line);padding:12px 0;display:flex;justify-content:flex-end;gap:8px}.summary-grid{display:grid;grid-template-columns:repeat(6,1fr);background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;box-shadow:var(--shadow)}.summary-grid>div{padding:16px;border-right:1px solid var(--line)}.summary-grid>div:last-child{border-right:0}.summary-grid small,.summary-grid strong{display:block}.summary-grid small{color:var(--muted);margin-bottom:5px}.legend{display:flex;gap:5px}.matrix{display:grid;grid-template-columns:repeat(6,44px);gap:5px;align-items:center;justify-content:center}.matrix b,.matrix i{height:40px;display:grid;place-items:center;border-radius:7px;font-style:normal}.matrix b{color:var(--muted)}.policy p{display:flex;align-items:center;gap:10px}.back{font-size:12px;color:var(--muted)}.alert{padding:12px 14px;border-radius:9px;margin-bottom:14px}.alert.success{background:#e4f7ec;color:#126a47}.alert.danger{background:#ffe6e6;color:#a53333}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 20%,#fff,#eef3f9)}.login-card{width:min(440px,92vw);background:#fff;border:1px solid #dde5ee;border-radius:16px;padding:36px;box-shadow:0 20px 60px rgba(25,45,70,.12)}.login-logo{width:58px;height:58px;border-radius:16px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:26px;margin:0 auto 15px}.login-card h1{text-align:center;margin:0;font-size:25px}.login-card>p{text-align:center;color:var(--muted);margin:8px 0 25px}.login-card label{display:block;font-size:12px;font-weight:700;color:#536173;margin:13px 0 6px}.login-card .check{font-weight:400}.login-note{text-align:center;color:#98a3af;font-size:11px;margin-top:18px}@media(max-width:1000px){.app-shell{grid-template-columns:78px 1fr}.sidebar{padding:0 8px}.brand div:last-child,.sidebar nav a span,.sidebar nav a em,.nav-label{display:none}.brand{justify-content:center}.sidebar nav a{justify-content:center;font-size:18px}.kpi-grid{grid-template-columns:1fr 1fr}.summary-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.content{padding:16px}.topbar{padding:0 14px}.global-search{display:none}.grid-2,.kpi-grid,.form-grid,.risk-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:span 1}.filterbar{flex-direction:column}.filterbar select{max-width:none}.page-head{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:1fr 1fr}.profile-hero{align-items:flex-start;flex-wrap:wrap}.gate-card{width:100%}.attention{grid-template-columns:1fr}}
/* V1.1 additions */
.section-title{margin-top:28px!important;padding-top:20px;border-top:1px solid var(--line)}
.form-grid.one-col{grid-template-columns:1fr}.panel-head.padded{padding:18px 20px 0;margin-bottom:10px}.secondary-kpis .kpi.compact{padding:14px}.secondary-kpis .kpi.compact strong{font-size:22px}
.hse-mini{min-width:230px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#f9fbfd}.hse-mini small,.hse-mini strong,.hse-mini span{display:block}.hse-mini strong{font-size:12px;margin:5px 0}.hse-mini span{font-size:11px;color:var(--muted)}.success-text{color:#11764b}.danger-text{color:#b22f2f}
.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}.profile-stats>div{padding:14px 16px;border-right:1px solid var(--line)}.profile-stats>div:last-child{border-right:0}.profile-stats small,.profile-stats strong,.profile-stats span{display:block}.profile-stats small{color:var(--muted)}.profile-stats strong{font-size:20px;margin:3px 0;text-transform:capitalize}.profile-stats span{font-size:11px;color:var(--muted)}
.link-tabs a{padding:12px 14px;color:var(--muted);border-bottom:2px solid transparent}.link-tabs a.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:700}.link-tabs a b{font-size:10px;background:#eef4fb;border-radius:99px;padding:2px 6px;margin-left:3px}.link-tabs .disabled-tab{opacity:.55;cursor:default}.preline{white-space:pre-line;line-height:1.65;color:#536173}
.expiry{display:inline-block;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:800}.expiry.valid{background:#e4f7ec;color:#12764c}.expiry.expiring{background:#fff0cd;color:#946200}.expiry.expired{background:#ffe3e3;color:#af3434}.expiry.no_expiry{background:#eef2f6;color:#667383}
.attention-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attention-list a{border:1px solid var(--line);border-radius:10px;padding:13px;color:var(--text);background:#fbfcfe}.attention-list a b{font-size:21px;margin-right:5px}.attention-list a div{font-size:11px;color:var(--muted);margin-top:4px}
.search-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.search-result{display:block;padding:11px 0;border-bottom:1px dashed var(--line);color:var(--text)}.search-result:last-child{border-bottom:0}.search-result b,.search-result span{display:block}.search-result span{font-size:11px;color:var(--muted);margin-top:4px}.count-pill{font-size:11px;color:var(--blue);background:var(--blue2);border-radius:99px;padding:3px 7px;margin-left:4px}
.gate-card span{display:block;font-size:10px;margin-top:5px;opacity:.75}
@media(max-width:1050px){.profile-stats{grid-template-columns:1fr 1fr}.profile-stats>div:nth-child(2){border-right:0}.profile-stats>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.hse-mini{width:100%}.profile-hero{flex-wrap:wrap}.search-grid{grid-template-columns:1fr}}
@media(max-width:720px){.profile-stats{grid-template-columns:1fr}.profile-stats>div{border-right:0;border-bottom:1px solid var(--line)!important}.profile-stats>div:last-child{border-bottom:0!important}.attention-list{grid-template-columns:1fr}.link-tabs{overflow:auto;white-space:nowrap}}
.profile-photo{width:82px;height:82px;border-radius:50%;object-fit:cover;border:3px solid #eef3f8;background:#eef3f8}
/* V1.2 additions */
.inline-upload{display:inline-flex;margin:0}.gate-pill{display:inline-block;padding:5px 9px;border-radius:7px;font-size:11px;font-weight:800}.gate-pill.allowed{background:#e4f7ec;color:#12764c}.gate-pill.blocked{background:#ffe3e3;color:#af3434}.qr-mini{width:92px;text-align:center}.qr-mini img{width:78px;height:78px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:3px}.qr-mini small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.compliance-panel{padding-top:15px}.rule-line{padding:9px 12px;border-radius:8px;margin:7px 0;font-weight:600}.rule-line.fail{background:#fff0f0;color:#a83232}.rule-line.warn{background:#fff8e7;color:#8b6200}.warn-text{color:#8b6200}.matrix-panel{padding:0}.matrix-table th,.matrix-table td{text-align:center}.matrix-table th small{display:block;font-size:9px;font-weight:400;text-transform:none;white-space:normal;max-width:105px;margin-top:3px}.matrix-table .sticky-col{position:sticky;left:0;z-index:2;background:#fff;text-align:left;min-width:180px}.matrix-table thead .sticky-col{background:#f9fafc;z-index:3}.matrix-check input{width:19px;height:19px;accent-color:var(--blue)}.gate-layout{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(420px,1.2fr);gap:18px}.gate-scan-panel h2{font-size:21px}.gate-scan-panel input{font-size:18px;padding:16px;border-width:2px}.gate-result-card{min-height:290px}.gate-ok-bg{border:2px solid #77c9a6;background:linear-gradient(180deg,#f2fff9,#fff)}.gate-block-bg{border:2px solid #ef9999;background:linear-gradient(180deg,#fff3f3,#fff)}.gate-result-status{font-size:32px;font-weight:900;margin-bottom:18px}.gate-ok-bg .gate-result-status{color:#11764b}.gate-block-bg .gate-result-status{color:#b22f2f}.gate-person{display:flex;align-items:center;gap:15px}.gate-person h2{margin:0 0 5px}.gate-person p{margin:4px 0;color:var(--muted)}.gate-reasons{margin:18px 0;display:grid;gap:7px}.gate-reasons>div{padding:8px 10px;background:rgba(255,255,255,.72);border-radius:7px}.company-expired{color:var(--red)}
@media(max-width:900px){.gate-layout{grid-template-columns:1fr}.qr-mini{order:5}.matrix-table .sticky-col{min-width:145px}}
/* V1.3 additions */
.status.submitted{background:#eaf3ff;color:#2468b4}.status.approved{background:#e4f7ec;color:#12764c}.status.suspended{background:#fff0cd;color:#946200}.status.closed,.status.completed{background:#eef2f6;color:#667383}.status.open{background:#eaf3ff;color:#2468b4}.status.in_progress{background:#fff0cd;color:#946200}.status.verification{background:#efe9ff;color:#7055b5}
.wrap-cell{white-space:normal;min-width:260px;line-height:1.45}.people-chips{display:grid;gap:9px}.person-chip{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;color:var(--text)}.person-chip small{display:block;color:var(--muted);margin-top:3px}.employee-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:360px;overflow:auto}.check-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);padding:10px;border-radius:9px;background:#fbfcfe}.check-card input{width:auto;margin-top:3px}.check-card small{display:block;color:var(--muted);margin-top:3px}
.checklist-row{display:grid;grid-template-columns:1.4fr 150px 1fr 38px;gap:8px;margin:8px 0;align-items:center}.check-result,.severity,.event-badge{display:inline-block;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:800;text-transform:uppercase}.check-result.pass{background:#e4f7ec;color:#12764c}.check-result.fail{background:#ffe3e3;color:#af3434}.check-result.na{background:#eef2f6;color:#667383}.severity.low{background:#e4f7ec;color:#12764c}.severity.medium{background:#fff0cd;color:#946200}.severity.high{background:#ffe3cc;color:#b35400}.severity.critical{background:#ffe0e0;color:#b22f2f}.row-overdue{background:#fff8f8!important}.row-overdue td:first-child{border-left:3px solid var(--red)}
.scan-mode{display:flex;gap:16px;margin:12px 0}.scan-mode label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.scan-mode input{width:auto}.event-time{margin:14px 0;padding:10px;border-radius:8px;background:rgba(255,255,255,.72);font-weight:700}.event-badge.checkin{background:#e4f7ec;color:#12764c}.event-badge.checkout{background:#eaf3ff;color:#2468b4}.event-badge.blocked{background:#ffe3e3;color:#af3434}.empty-state{text-align:center;color:var(--muted);padding:55px 20px}.empty-state b{display:block;color:var(--text);font-size:20px;margin-bottom:8px}.compact-table table{font-size:13px}
@media(max-width:900px){.employee-picker{grid-template-columns:1fr}.checklist-row{grid-template-columns:1fr}.checklist-row .icon-btn{justify-self:end}}
/* V1.3.1 - employee lifecycle & safe deletion */
.people-view-tabs{display:flex;align-items:center;gap:8px;margin:-2px 0 14px;flex-wrap:wrap}.people-view-tabs>a{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--muted);font-size:12px;font-weight:700}.people-view-tabs>a.active{background:var(--blue2);border-color:#bcd7fb;color:var(--blue)}.people-view-tabs>a b{background:#fff;border-radius:99px;padding:2px 6px;color:inherit}.sample-delete-form{margin-left:auto}.btn.danger-outline{background:#fff;color:#b22f2f;border-color:#efb4b4}.btn.danger-outline:hover{background:#fff3f3}.bulk-toolbar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:10px;box-shadow:var(--shadow)}.bulk-toolbar select{width:auto;min-width:190px}.bulk-toolbar .grow{flex:1}.select-all{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:#536173}.select-all input,.check-col input{width:17px;height:17px;accent-color:var(--blue)}#selectedCount{font-size:11px;color:var(--muted)}.check-col{width:38px;text-align:center}.archived-row{background:#fbfcfe}.archived-row td{opacity:.9}.status.archived{background:#e9edf3;color:#596777}.row-menu-cell{width:54px;overflow:visible!important}.row-menu{position:relative}.row-menu summary{list-style:none;width:32px;height:32px;border-radius:8px;background:#f3f6f9;display:grid;place-items:center;cursor:pointer;font-weight:900}.row-menu summary::-webkit-details-marker{display:none}.row-menu-pop{position:absolute;right:0;top:36px;z-index:30;min-width:185px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 35px rgba(25,45,70,.18);padding:6px}.row-menu-pop a,.row-menu-pop button{display:block;width:100%;border:0;background:none;text-align:left;padding:9px 10px;border-radius:7px;color:var(--text);font:inherit;font-size:12px;cursor:pointer}.row-menu-pop a:hover,.row-menu-pop button:hover{background:#f4f7fb}.row-menu-pop .danger-text{color:#b22f2f}.lifecycle-note{margin-top:14px;padding:15px 18px}.lifecycle-note p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.archive-alert{background:#eef2f6;color:#536173;border:1px solid #dce3eb}.archive-alert b{color:#263445}
@media(max-width:800px){.sample-delete-form{margin-left:0;width:100%}.bulk-toolbar{align-items:stretch;flex-wrap:wrap}.bulk-toolbar .grow{display:none}.bulk-toolbar select{width:100%}.row-menu-pop{position:fixed;right:18px;top:auto}}

/* V1.4 - Incident, permit checklist, dashboard period KPI */
.filter-bar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;gap:10px;margin-bottom:16px;box-shadow:var(--shadow);align-items:end}.filter-bar>input{flex:1;min-width:220px}.filter-bar>select{max-width:210px}.filter-bar label{font-size:11px;color:var(--muted);font-weight:700;min-width:170px}.filter-bar label input,.filter-bar label select{margin-top:5px}.dashboard-filter{flex-wrap:wrap}.dashboard-filter label{min-width:210px}.period-kpis{margin:4px 0 0}.status.reported{background:#eaf3ff;color:#2468b4}.status.investigating{background:#fff0cd;color:#946200}.status.action{background:#efe9ff;color:#7055b5}.status.critical{background:#ffe0e0;color:#b22f2f}.status.warning{background:#fff0cd;color:#946200}.check-select{min-width:110px}.check-select.pass{border-color:#8fd2b4;background:#f0fff7}.check-select.fail{border-color:#ef9f9f;background:#fff4f4}.workflow-list{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.workflow-list b{padding:9px 10px;border-radius:8px;background:#f3f7fb;font-size:12px}.workflow-list span{color:var(--muted)}
@media(max-width:900px){.filter-bar{align-items:stretch;flex-direction:column}.filter-bar>select,.filter-bar>input,.filter-bar label{max-width:none;width:100%}}
.alert.warning{background:#fff0cd;color:#946200}

/* V1.5 - Asset, compliance reminders and safe deletion */
.status.valid{background:#e4f7ec;color:#12764c}.status.expiring,.status.warning{background:#fff0cd;color:#946200}.status.expired{background:#ffe3e3;color:#af3434}.status.no_expiry{background:#eef2f6;color:#667383}
.danger-zone{border:1px solid #efb4b4;background:#fffafa}.danger-zone h2{color:#a83333}.delete-confirm{display:flex;align-items:end;gap:12px;max-width:620px}.delete-confirm label{flex:1;font-size:12px;color:#536173;font-weight:700}.delete-confirm input{margin-top:6px}.danger-icon{color:#b22f2f;border:0;cursor:pointer}.actions form{margin:0}.chip.compact{padding:4px 8px;font-size:10px}.overdue-row{background:#fff8f8}.asset-kpis{margin-bottom:0}.asset-kpis .kpi{color:var(--text)}.reminder-kpis{margin-bottom:18px}
@media(max-width:800px){.delete-confirm{flex-direction:column;align-items:stretch}.asset-kpis{grid-template-columns:1fr}.reminder-kpis{grid-template-columns:1fr 1fr}}
/* V1.6 - Legal compliance, document control, emergency drill, audit trail */
.status.compliant{background:#e4f7ec;color:#12764c}.status.partial{background:#fff0cd;color:#946200}.status.noncompliant{background:#ffe3e3;color:#af3434}.status.not_assessed{background:#eef2f6;color:#667383}.status.planned{background:#eaf3ff;color:#2468b4}.status.cancelled,.status.obsolete{background:#eef2f6;color:#667383}.status.audit-create,.status.audit-add_version,.status.audit-evaluate{background:#e4f7ec;color:#12764c}.status.audit-update{background:#eaf3ff;color:#2468b4}.status.audit-delete,.status.audit-delete_version,.status.audit-delete_evaluation{background:#ffe3e3;color:#af3434}.governance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.source-link{word-break:break-all}.revision-badge{display:inline-flex;padding:4px 8px;border-radius:7px;background:#eaf3ff;color:#2468b4;font-size:11px;font-weight:800}@media(max-width:900px){.governance-grid{grid-template-columns:1fr}}
/* V1.7 - MOC, ISO Audit, Report Center, RBAC */
.status.implemented{background:#e4f7ec;color:#12764c}.status.rejected{background:#ffe3e3;color:#af3434}.status.in_progress{background:#fff0cd;color:#946200}.status.nonconformity{background:#ffe3e3;color:#af3434}.status.observation{background:#fff0cd;color:#946200}.status.conform{background:#e4f7ec;color:#12764c}.permission-note{font-size:11px;color:var(--muted)}
/* V1.8 */
.status.significant{background:#ffe3cc;color:#b35400}.status.noncompliant{background:#ffe3e3;color:#af3434}

/* =========================================================
   HSE V2.1.2 - Compact accordion sidebar + clear version UI
   ========================================================= */
.app-shell{grid-template-columns:252px 1fr}
.sidebar{padding:0;overflow:hidden;display:flex;flex-direction:column}
.brand{height:76px;flex:0 0 76px;padding:0 18px;background:linear-gradient(180deg,#172638,#162536);position:relative;z-index:3}
.brand-copy{min-width:0;flex:1}.brand-line{display:flex;align-items:center;gap:8px}.brand-line strong{font-size:20px}.brand-copy small{display:block;margin-top:3px}.version-badge{font-size:9px;font-weight:800;letter-spacing:.35px;padding:3px 6px;border-radius:999px;background:rgba(66,148,255,.18);border:1px solid rgba(116,177,255,.34);color:#b9d7ff;white-space:nowrap}
.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px 10px 16px;scrollbar-width:thin;scrollbar-color:#536c86 transparent}
.sidebar-scroll::-webkit-scrollbar{width:8px}.sidebar-scroll::-webkit-scrollbar-track{background:transparent}.sidebar-scroll::-webkit-scrollbar-thumb{background:#536c86;border-radius:12px;border:2px solid transparent;background-clip:padding-box}.sidebar-scroll::-webkit-scrollbar-thumb:hover{background:#6e86a0;background-clip:padding-box}
.sidebar-nav{padding:0!important}.nav-quick{padding:2px 0 8px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px}
.sidebar nav a{min-height:42px;padding:10px 11px;margin:2px 0;border-radius:9px;transition:background .16s ease,color .16s ease,transform .16s ease}.sidebar nav a:hover{background:rgba(255,255,255,.055);color:#fff}.sidebar nav a.active{background:#2d5278;color:#fff;box-shadow:inset 3px 0 0 #4d9aff}.sidebar nav a em{font-size:9px;color:#b8c6d4;border-color:#526a83}
.nav-group{margin:6px 0;border:1px solid transparent;border-radius:11px}.nav-group.open{background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.055)}
.nav-group-toggle{width:100%;height:42px;border:0;background:transparent;color:#aebdcd;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-radius:9px;cursor:pointer;font:inherit;text-align:left;transition:background .16s ease,color .16s ease}.nav-group-toggle:hover{background:rgba(255,255,255,.055);color:#fff}.nav-group.open>.nav-group-toggle{color:#fff;background:rgba(255,255,255,.045)}
.nav-group-title{display:flex;align-items:center;gap:10px;min-width:0}.nav-group-title b{width:21px;display:inline-flex;justify-content:center;font-weight:400}.nav-group-title span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.55px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-group-toggle>i{font-style:normal;font-size:16px;transition:transform .2s ease;color:#71869c}.nav-group.open>.nav-group-toggle>i{transform:rotate(180deg);color:#a8bdd2}
.nav-group-items{display:none;padding:4px 0 5px 9px}.nav-group.open>.nav-group-items{display:block;animation:hseNavOpen .16s ease}.nav-group-items a{font-size:13px!important;padding-left:10px!important}.nav-group-items a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes hseNavOpen{from{opacity:.35;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
.nav-collapse-all{width:100%;border:1px dashed rgba(255,255,255,.13);background:transparent;color:#7f93a8;border-radius:9px;padding:9px 10px;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font:inherit;font-size:11px}.nav-collapse-all:hover{color:#dce8f4;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.04)}
.topbar-right{display:flex;align-items:center;gap:12px}.top-version{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eef5ff;color:#2467bd;border:1px solid #d7e7fb;font-size:10px;font-weight:800;letter-spacing:.4px;white-space:nowrap}

@media(max-width:1000px){
  .app-shell{grid-template-columns:82px 1fr}
  .sidebar{padding:0}
  .brand{justify-content:center;padding:0 10px}.brand-copy{display:none}.brand-mark{width:38px;height:38px}
  .sidebar-scroll{padding:8px}
  .nav-group{border:0!important;background:transparent!important;margin:2px 0}.nav-group-toggle{display:none}
  .nav-group-items{display:block!important;padding:0!important;animation:none!important}
  .sidebar nav a{justify-content:center;font-size:18px!important;padding:10px 6px!important}.sidebar nav a span,.sidebar nav a em,.nav-collapse-all span{display:none}.sidebar nav a em{display:none!important}
  .nav-collapse-all{font-size:16px;padding:9px 0}
  .top-version{display:none}
}
@media(max-width:720px){.user-box .btn.small{display:none}.user-box>a:not(.logout){max-width:130px}.user-box strong{max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* =========================================================
   HSE V2.1.2 - Information architecture + visual analytics
   ========================================================= */
.nav-special{padding:7px 0;margin:7px 0;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}
.nav-special a{background:linear-gradient(90deg,rgba(38,120,233,.13),rgba(38,120,233,.02));border:1px solid rgba(93,159,245,.12)}
.nav-special a em{margin-left:auto!important;background:rgba(38,120,233,.15);color:#bdd8ff!important;border-color:rgba(105,167,248,.35)!important}
.nav-group-title span{text-transform:none;letter-spacing:.15px;font-size:11.5px}

.dashboard-head h1{font-size:28px}.kpi-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi-feature{position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease;color:var(--text)}.kpi-feature:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(24,39,58,.11)}.kpi-feature:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:linear-gradient(90deg,#2678e9,#16a6b6);opacity:.65}
.dashboard-chart-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(320px,.8fr);gap:18px;margin-bottom:18px}.dashboard-chart-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.chart-card{min-width:0}.chart-card canvas{display:block;max-width:100%}.chart-card .panel-head{margin-bottom:4px}.chart-card h2{margin:0}.chart-wide{min-height:365px}.compact-charts .panel{margin-bottom:0}.grid-dashboard{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(310px,.7fr);gap:18px;align-items:start}.grid-dashboard>.panel{margin-bottom:0}
.module-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.overview-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;position:relative;overflow:hidden}.overview-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#2678e9}.overview-card.safety:before{background:#d79218}.overview-card.assets:before{background:#159a67}.overview-card.compliance:before{background:#7457d6}.overview-title{display:flex;gap:12px;align-items:center;margin-bottom:14px}.overview-title>span{font-size:24px;width:42px;height:42px;border-radius:11px;background:#f3f7fb;display:grid;place-items:center}.overview-title h3{margin:0;font-size:16px}.overview-title p{margin:3px 0 0;color:var(--muted);font-size:11px}.overview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.overview-metrics a{padding:12px 10px;border-radius:10px;background:#f7f9fc;color:var(--text);border:1px solid #edf1f5;min-width:0}.overview-metrics a:hover{background:#f0f6ff;border-color:#d9e8fb}.overview-metrics b{display:block;font-size:20px;margin-bottom:3px}.overview-metrics span{font-size:10px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.section-tabs{display:flex;gap:7px;margin:0 0 14px;padding:5px;background:#eaf0f6;border-radius:11px;width:max-content;max-width:100%;overflow:auto}.section-tabs a{padding:9px 13px;border-radius:8px;color:#5d6b7a;font-size:12px;font-weight:700;white-space:nowrap}.section-tabs a.active{background:#fff;color:#2678e9;box-shadow:0 2px 8px rgba(24,39,58,.08)}
.ai-hero{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#fff,#f2f7ff)}.ai-orb{width:76px;height:76px;flex:0 0 76px;border-radius:22px;background:linear-gradient(135deg,#2678e9,#7457d6);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:900;box-shadow:0 12px 25px rgba(38,120,233,.2)}.ai-hero h2{margin:0 0 5px}.ai-search{display:flex;gap:9px;margin-top:15px}.ai-search input{flex:1}.quick-query-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-query-grid a{padding:13px;border:1px solid var(--line);border-radius:10px;background:#f9fbfd;color:var(--text)}.quick-query-grid a:hover{background:#eef6ff;border-color:#cee2fb}.assistant-roadmap p{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);margin:0}.assistant-roadmap p:last-child{border-bottom:0}.assistant-roadmap b{color:#2678e9}.assistant-roadmap span{color:var(--muted);font-size:12px;line-height:1.5}

@media(max-width:1450px){.kpi-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1150px){.dashboard-chart-grid,.dashboard-chart-grid.three,.grid-dashboard{grid-template-columns:1fr}.module-overview-grid{grid-template-columns:1fr}}
@media(max-width:800px){.kpi-grid-6{grid-template-columns:1fr 1fr}.ai-hero{align-items:flex-start}.ai-orb{width:58px;height:58px;flex-basis:58px;border-radius:16px}.ai-search{flex-direction:column}.quick-query-grid{grid-template-columns:1fr}.section-tabs{width:100%}}
@media(max-width:520px){.kpi-grid-6{grid-template-columns:1fr}.overview-metrics{grid-template-columns:1fr 1fr}.dashboard-head{align-items:flex-start}}

/* V2.1.2 - People / contractor onboarding */
.info-strip{padding:13px 16px;background:linear-gradient(90deg,#f4f8ff,#fff);border-color:#dceafb;color:#536173;font-size:12px;line-height:1.55}
.info-strip code{background:#edf3fb;border:1px solid #dbe7f6;border-radius:5px;padding:2px 5px;color:#235d9f}
.import-actions{align-items:center;gap:7px}.import-actions select{width:auto;min-width:158px;padding:10px 28px 10px 10px}
.package-links{display:flex;flex-wrap:wrap;gap:7px}.package-links a{display:inline-flex;padding:6px 9px;border-radius:8px;background:#eef5ff;border:1px solid #d8e8fb;font-size:11px;font-weight:700}
.package-records{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.package-records>div{padding:12px;border:1px solid var(--line);background:#f9fbfd;border-radius:10px}.package-records b,.package-records span{display:block}.package-records b{font-size:11px;color:#526174;margin-bottom:5px}.package-records span{font-size:18px;font-weight:800}
.status.planning{background:#eef3fa;color:#526b87}.status.suspended{background:#fff0cd;color:#8d6200}.status.completed{background:#e4f7ec;color:#12764c}.status.cancelled{background:#eef0f3;color:#667383}
.status.pending{background:#fff0cd;color:#946200}.status.approved{background:#e4f7ec;color:#12804f}.status.rejected{background:#ffe7e7;color:#b23e3e}
@media(max-width:1100px){.page-head{align-items:flex-start}.page-head .actions{justify-content:flex-start}.import-actions{flex-wrap:wrap}.package-records{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.filterbar{flex-wrap:wrap}.filterbar input,.filterbar select{min-width:100%;max-width:none}.package-records{grid-template-columns:1fr}.import-actions select{width:100%}}

/* =========================================================
   HSE V2.2 - Training Management System
   ========================================================= */
.training-tabs{width:100%;margin-bottom:18px}.training-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.training-recent{display:grid;gap:7px}.training-recent>a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);color:var(--text)}.training-recent>a:last-child{border-bottom:0}.training-recent b,.training-recent small{display:block}.training-recent small{color:var(--muted);margin-top:3px}.small-value{font-size:13px!important;overflow:hidden;text-overflow:ellipsis}.compact-filter{align-items:center}.compact-filter select{max-width:140px}.training-course-layout{grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr)}.row-actions{display:flex;align-items:center;gap:6px}.row-actions form{margin:0}.calendar-cell{text-align:center;min-width:46px}.training-calendar table{min-width:1000px}.training-calendar .sticky-col{position:sticky;left:0;background:#fff;z-index:2;min-width:220px}.training-calendar thead .sticky-col{background:#f9fafc}.plan-dot{width:27px;height:27px;border-radius:8px;display:inline-grid;place-items:center;font-weight:900;margin:2px;background:#eef5ff;color:#2678e9}.plan-dot.completed{background:#e4f7ec;color:#12804f}.plan-dot.cancelled{background:#eef0f3;color:#667383}.plan-dot.overdue{background:#ffe7e7;color:#b23e3e}.plan-dot.in_progress{background:#fff0cd;color:#946200}.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:11px;padding-top:12px}.training-detail-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.75fr);gap:18px;align-items:start}.training-session-summary strong.small-value{font-size:13px}.qr-attendance-card{background:linear-gradient(135deg,#fff,#f3f8ff)}.scan-form{display:flex;gap:10px}.scan-form input{font-size:18px;font-weight:700;letter-spacing:.4px}.padded-head{padding:16px 18px 0}.student-picker{padding:15px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fafc}.student-picker.hidden{display:none}.student-picker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:310px;overflow:auto;margin-bottom:12px}.student-picker-list label{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff}.student-picker-list input{width:auto;grid-row:span 2}.student-picker-list small{color:var(--muted)}.participant-result-form{display:grid;grid-template-columns:110px 80px 110px 125px minmax(170px,1fr) 60px;gap:6px;align-items:center}.participant-result-form select,.participant-result-form input{padding:7px;font-size:11px}.cert-fields{display:grid;grid-template-columns:1fr 125px;gap:5px}.template-generate-line,.generated-doc{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}.template-generate-line span b,.template-generate-line span small,.generated-doc>div>b,.generated-doc>div>small{display:block}.template-generate-line small,.generated-doc small{color:var(--muted);margin-top:3px}.signed-upload{display:flex;gap:5px;align-items:center}.signed-upload input{max-width:140px;padding:5px;font-size:10px}.template-engine-grid{grid-template-columns:minmax(330px,.75fr) minmax(0,1.25fr)}.token-grid{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 16px}.token-grid code{background:#eef5ff;color:#235d9f;border:1px solid #d8e8fb;border-radius:6px;padding:6px 8px;font-size:10px}.token-help h3{margin-top:20px}.template-version-form{display:grid;grid-template-columns:70px 135px minmax(150px,1fr);gap:5px;min-width:390px}.template-version-form textarea{grid-column:1/4;min-height:55px}.template-version-form .btn{grid-column:3}.contractor-training-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.contractor-training-card{margin-bottom:0}.compliance-ring{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:16px;font-weight:900;border:7px solid #dce7f4;background:#fff}.compliance-ring.ok{border-color:#62c69a;color:#12804f}.compliance-ring.warn{border-color:#f1c566;color:#946200}.compliance-ring.bad{border-color:#ef9292;color:#b23e3e}.contractor-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.contractor-kpis>div{background:#f7f9fc;border:1px solid #edf1f5;border-radius:9px;padding:11px}.contractor-kpis b,.contractor-kpis span{display:block}.contractor-kpis b{font-size:20px}.contractor-kpis span{font-size:10px;color:var(--muted)}.panel-head.mini{margin-top:16px;margin-bottom:8px}.status.pass{background:#e4f7ec;color:#12804f}.status.fail,.status.retraining{background:#ffe7e7;color:#b23e3e}.status.in_progress{background:#fff0cd;color:#946200}.status.cancelled{background:#eef0f3;color:#667383}
@media(max-width:1450px){.training-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.participant-result-form{grid-template-columns:100px 70px 95px 110px minmax(150px,1fr) 55px}}
@media(max-width:1150px){.training-detail-grid,.training-course-layout,.template-engine-grid{grid-template-columns:1fr}.contractor-training-grid{grid-template-columns:1fr}.participant-result-form{min-width:800px}.student-picker-list{grid-template-columns:1fr}}
@media(max-width:750px){.training-kpis{grid-template-columns:1fr 1fr}.scan-form{flex-direction:column}.summary-grid.training-session-summary{grid-template-columns:repeat(2,1fr)}.training-tabs{display:flex}}

/* =========================================================
   HSE V2.2.7 - Course Master aligned to factory Excel program
   ========================================================= */
.course-master-add summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none}.course-master-add summary::-webkit-details-marker{display:none}.course-master-add[open] summary{padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px}.course-master-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.course-master-form-grid .span-2{grid-column:span 2}.course-filter select{max-width:240px}.course-master-panel{overflow:hidden}.course-master-wrap{max-height:68vh;overflow:auto}.course-master-table{min-width:1900px;white-space:normal}.course-master-table thead th{position:sticky;top:0;z-index:3;background:#fffde2;color:#4d5663;border-bottom:1px solid #cbd5df}.course-master-table th,.course-master-table td{vertical-align:top;padding:10px 9px;border-right:1px solid #e4e9ef}.course-master-table th:first-child,.course-master-table td:first-child{position:sticky;left:0;z-index:2;background:#fff}.course-master-table thead th:first-child{z-index:4;background:#fffde2}.course-master-table .course-section-row td{position:static!important;background:#f8bd86!important;color:#1e2a38;font-size:13px;font-weight:800;border-top:2px solid #9b6a3e;border-bottom:1px solid #9b6a3e;padding:9px 12px}.course-section-row span{margin-left:14px}.course-name-cell{min-width:220px}.wrap-cell{white-space:normal;min-width:220px;max-width:330px;line-height:1.45}.material-count{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;color:#677487;background:#f8fafc;font-weight:700}.material-count.has-files{background:#eaf3ff;color:#235d9f;border-color:#d1e4fb}.course-program-form .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.course-program-form .span-2{grid-column:span 2}.course-material-upload{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px}.material-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.material-form-grid .span-2{grid-column:span 2}.doc-type-badge{display:inline-flex;padding:5px 8px;border-radius:7px;background:#eef5ff;color:#235d9f;font-size:11px;font-weight:700}.course-material-table table{min-width:980px}
@media(max-width:1200px){.course-master-form-grid,.course-program-form .form-grid,.material-form-grid{grid-template-columns:1fr 1fr}.course-master-form-grid .span-2,.course-program-form .span-2,.material-form-grid .span-2{grid-column:span 2}}
@media(max-width:720px){.course-master-form-grid,.course-program-form .form-grid,.material-form-grid{grid-template-columns:1fr}.course-master-form-grid .span-2,.course-program-form .span-2,.material-form-grid .span-2{grid-column:span 1}.course-master-add summary{align-items:flex-start;flex-direction:column}}
/* HSE V2.2.7 - Training course lifecycle */
.course-delete-policy{border-left:4px solid #d79218}.course-delete-policy h2{margin-bottom:8px}.course-delete-policy p{margin:6px 0;color:var(--muted);font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.mini-stat{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px}.mini-stat span,.mini-stat b{display:block}.mini-stat span{font-size:11px;color:var(--muted)}.mini-stat b{font-size:22px;margin-top:5px}.icon-btn:disabled,.btn:disabled{opacity:.42;cursor:not-allowed}.course-master-table tr:has(.status.inactive){background:#fafbfc}.course-master-table tr:has(.status.inactive) td{opacity:.82}
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.alert.warning{background:#fff4d6;color:#8a5d00}.btn.danger-outline:disabled{opacity:.42}

/* =========================================================
   HSE V2.2.7 - Training Plan UX / sticky annual matrix
   ========================================================= */
.training-plan-calendar-panel{padding:0;overflow:hidden}.training-plan-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:16px 18px;background:linear-gradient(180deg,#fff,#f7faff);border-bottom:1px solid var(--line)}.year-picker-form{display:grid;gap:5px;min-width:170px}.year-picker-form label{font-size:11px;font-weight:800;color:#5e6b7b}.year-picker-form select{font-size:16px;font-weight:800}.training-calendar-scroll{max-height:64vh;overflow:auto;position:relative}.training-plan-matrix{min-width:1180px;border-collapse:separate;border-spacing:0}.training-plan-matrix thead th{position:sticky;top:0;z-index:5;background:#edf3fa;color:#415066;border-bottom:2px solid #b9c8d8;padding-top:14px;padding-bottom:14px;text-align:center}.training-plan-matrix .sticky-course-head{left:0;z-index:7;text-align:left;min-width:270px;background:#e8f0f9;box-shadow:8px 0 14px -14px rgba(32,55,78,.65)}.training-plan-matrix .sticky-course-cell{position:sticky;left:0;z-index:3;min-width:270px;background:#fff;text-align:left;box-shadow:8px 0 14px -14px rgba(32,55,78,.65)}.training-plan-matrix tr.row-even td{background:#f8fbfe}.training-plan-matrix tr.row-even .sticky-course-cell{background:#f8fbfe}.training-plan-matrix tbody td{border-bottom:1px solid #dce5ee;border-right:1px solid #edf1f5}.training-plan-matrix tbody tr:hover td{background:#eef6ff}.training-plan-matrix tbody tr:hover .sticky-course-cell{background:#eef6ff}.training-plan-matrix .month-head{min-width:68px}.training-plan-matrix .month-head:nth-child(even){background:#f4f7fb}.training-plan-matrix .month-head.current-month,.training-plan-matrix .calendar-cell.current-month{background:#e9f3ff!important}.training-plan-matrix .month-head.current-month{color:#176bc8;box-shadow:inset 0 -3px 0 #2678e9}.training-plan-matrix .quarter-start{border-left:2px solid #b7c5d5!important}.training-plan-matrix .calendar-cell{height:66px;min-width:68px;text-align:center}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.legend-dot.planned{background:#2678e9}.legend-dot.in-progress{background:#d79218}.legend-dot.completed{background:#159a67}.legend-dot.overdue{background:#e14c4c}.legend-dot.cancelled{background:#8290a0}.training-plan-layout{grid-template-columns:minmax(520px,.9fr) minmax(600px,1.1fr);align-items:start}.training-plan-form{position:relative}.form-section-title{font-size:13px;text-transform:uppercase;letter-spacing:.45px;color:#425168;margin:22px 0 10px;padding-top:16px;border-top:1px solid var(--line)}.form-section-title:first-of-type{margin-top:2px;padding-top:0;border-top:0}.field-help{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:5px;line-height:1.4}.scope-type-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scope-type-card{display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f9fbfd;cursor:pointer}.scope-type-card:has(input:checked){border-color:#8dbcf6;background:#edf6ff;box-shadow:0 0 0 2px rgba(38,120,233,.07)}.scope-type-card input{width:20px;height:20px;accent-color:var(--blue)}.scope-type-card b,.scope-type-card small{display:block}.scope-type-card small{font-size:10px;color:var(--muted);margin-top:3px}.scope-block{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fcfdff}.scope-block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.scope-block-head b,.scope-block-head small{display:block}.scope-block-head small{font-size:10px;color:var(--muted);margin-top:3px}.text-link{border:0;background:transparent;color:var(--blue);cursor:pointer;font-size:11px;font-weight:700}.multi-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:190px;overflow:auto}.multi-check-grid>label{display:grid!important;grid-template-columns:auto 1fr;gap:8px;align-items:start;padding:8px 9px;border:1px solid #e4eaf1;border-radius:8px;background:#fff;cursor:pointer;font-size:11px;font-weight:600}.multi-check-grid>label:has(input:checked){background:#eef6ff;border-color:#a9cbf7}.multi-check-grid input{width:17px;height:17px;margin:0;accent-color:var(--blue)}.multi-check-grid small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.contractor-scope.hidden{display:none}.scope-summary{display:grid;gap:3px}.scope-summary span{font-size:11px;font-weight:700}.scope-summary small{max-width:260px;white-space:normal;color:var(--muted)}.training-plan-list{position:sticky;top:92px}.training-plan-list .table-wrap{max-height:75vh}.training-plan-list thead th{position:sticky;top:0;z-index:2}.status.planned{background:#e8f2ff;color:#266ec6}.status.overdue{background:#ffe7e7;color:#b23e3e}
@media(max-width:1250px){.training-plan-layout{grid-template-columns:1fr}.training-plan-list{position:static}.training-plan-list .table-wrap{max-height:none}}
@media(max-width:760px){.training-plan-toolbar{align-items:stretch;flex-direction:column}.scope-type-row,.multi-check-grid{grid-template-columns:1fr}.training-calendar-scroll{max-height:58vh}.training-plan-matrix .sticky-course-head,.training-plan-matrix .sticky-course-cell{min-width:220px}}
/* V2.2.7 - Annual training plan approval/archive */
.annual-plan-archive{scroll-margin-top:90px}.archive-head{align-items:center}.annual-plan-archive-grid{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr);gap:18px;padding:0 18px 18px}.signed-plan-upload{border:1px solid var(--line);border-radius:12px;padding:16px;background:linear-gradient(180deg,#fbfdff,#f6f9fc)}.signed-upload-title{display:grid;gap:3px;margin-bottom:12px}.signed-upload-title b{font-size:15px}.signed-upload-title small{color:var(--muted)}.compact-form-grid{gap:10px}.signed-plan-list{display:grid;gap:10px;align-content:start}.signed-plan-card{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:13px;background:#fff}.signed-plan-card.current{border-color:#8cc7ad;background:#f4fcf8;box-shadow:0 0 0 2px rgba(21,154,103,.06)}.signed-plan-icon{width:36px;height:36px;border-radius:10px;background:#eef4fb;display:grid;place-items:center;font-weight:900;color:#2678e9}.signed-plan-card.current .signed-plan-icon{background:#dff5e9;color:#12865a}.signed-plan-main{min-width:0}.signed-plan-title{display:flex;align-items:center;gap:8px}.signed-plan-meta{display:flex;flex-wrap:wrap;gap:12px;margin:5px 0;color:#4b596b;font-size:11px}.signed-plan-main small{color:var(--muted);display:block;word-break:break-word}.signed-plan-main p{margin:6px 0 0;font-size:11px;color:#4b596b}.signed-plan-actions{display:flex;align-items:center;gap:6px}.signed-plan-empty{border:1px dashed #c8d5e3;border-radius:12px;padding:24px;text-align:center;background:#fbfdff;color:#64748b}.signed-plan-empty b{display:block;color:#334155;margin-bottom:4px}
@media(max-width:1100px){.annual-plan-archive-grid{grid-template-columns:1fr}.archive-head{align-items:flex-start}.signed-plan-card{grid-template-columns:38px 1fr}.signed-plan-actions{grid-column:2}}

/* =========================================================
   HSE V2.2.7 - Training Matrix workforce separation + role editing
   ========================================================= */
.matrix-workforce-tabs{display:flex;gap:10px;margin:0 0 14px;overflow:auto;padding:2px 1px 4px}.workforce-tab{min-width:240px;display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);box-shadow:0 3px 14px rgba(24,39,58,.04)}.workforce-tab:hover{border-color:#b9d5f8;background:#fbfdff}.workforce-tab.active{border-color:#7eb4f5;background:#eef6ff;box-shadow:0 0 0 2px rgba(38,120,233,.08)}.workforce-tab .workforce-icon{width:36px;height:36px;border-radius:10px;background:#f1f5fa;display:grid;place-items:center;font-size:18px;flex:0 0 36px}.workforce-tab.active .workforce-icon{background:#dfeeff}.workforce-tab b,.workforce-tab small{display:block}.workforce-tab b{font-size:13px}.workforce-tab small{font-size:10px;color:var(--muted);margin-top:3px}.matrix-group-note{padding:12px 16px;margin-bottom:14px;background:linear-gradient(90deg,#f8fbff,#fff)}.matrix-group-note>div{display:flex;align-items:center;gap:14px}.matrix-group-note b{white-space:nowrap}.matrix-group-note span{font-size:11px;color:var(--muted)}.matrix-wrap{max-height:68vh;overflow:auto}.matrix-table{min-width:max-content}.matrix-table thead th{position:sticky;top:0;z-index:5;background:#f4f7fb;vertical-align:bottom}.matrix-table thead th>span,.matrix-table thead th>small{display:block}.matrix-table thead th>small{white-space:normal;max-width:105px;line-height:1.35;margin-top:5px;text-transform:none;font-weight:500;letter-spacing:0}.matrix-table .matrix-role-head,.matrix-table .matrix-role-cell{position:sticky;left:0;min-width:330px;max-width:330px;z-index:6;background:#fff;box-shadow:7px 0 12px -12px rgba(28,49,72,.8)}.matrix-table thead .matrix-role-head{z-index:8;background:#eef3f9}.matrix-table tbody tr:nth-child(even) .matrix-role-cell{background:#fafcff}.matrix-table tbody tr:hover .matrix-role-cell{background:#eef6ff}.matrix-table .matrix-people-head,.matrix-table .matrix-people-cell{position:sticky;left:330px;min-width:105px;text-align:center;z-index:4;background:#fff;border-right:2px solid #d9e3ee}.matrix-table thead .matrix-people-head{z-index:7;background:#eef3f9}.matrix-table tbody tr:nth-child(even) .matrix-people-cell{background:#fafcff}.matrix-table tbody tr:hover .matrix-people-cell{background:#eef6ff}.role-name-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.role-name-row>b{white-space:normal}.role-edit-btn{width:29px;height:29px;border:1px solid #dbe4ee;border-radius:7px;background:#f7f9fc;color:#516174;cursor:pointer;flex:0 0 29px}.role-edit-btn:hover{background:#eaf3ff;color:#176bc8;border-color:#b9d5f8}.matrix-check{text-align:center;min-width:72px}.matrix-check input{width:20px;height:20px;accent-color:var(--blue)}.role-rename-dialog{border:0;border-radius:14px;padding:0;max-width:520px;width:calc(100% - 32px);box-shadow:0 24px 80px rgba(13,29,47,.28)}.role-rename-dialog::backdrop{background:rgba(12,25,40,.42)}.role-rename-dialog form{padding:20px}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:8px}.dialog-head small{font-size:9px;letter-spacing:1px;color:var(--blue);font-weight:800}.dialog-head h3{margin:4px 0 0;font-size:20px}.dialog-close{border:0;background:#f1f4f8;border-radius:8px;width:32px;height:32px;font-size:20px;cursor:pointer;color:#5f6e7e}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.role-rename-dialog label{display:grid;gap:6px;font-size:12px;font-weight:700;margin-top:16px}
@media(max-width:900px){.workforce-tab{min-width:210px}.matrix-table .matrix-role-head,.matrix-table .matrix-role-cell{min-width:260px;max-width:260px}.matrix-table .matrix-people-head,.matrix-table .matrix-people-cell{left:260px}.matrix-group-note>div{display:block}.matrix-group-note span{display:block;margin-top:5px}}

/* HSE V2.3 - PPE Management */
.ppe-tabs{width:100%;margin-bottom:18px}.ppe-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.ppe-catalog-layout{grid-template-columns:minmax(310px,.62fr) minmax(0,1.38fr);align-items:start}.bad-text{color:#b23e3e!important;font-weight:800}.count-chip{display:inline-grid;min-width:28px;height:28px;border-radius:14px;place-items:center;background:#eaf3ff;color:#2678e9;font-weight:800}.mini-input{width:78px!important;min-width:70px;padding:7px!important}.matrix-switch{display:flex;gap:8px;margin-bottom:12px}.matrix-switch a{padding:10px 15px;border:1px solid var(--line);background:#fff;border-radius:9px;color:var(--text);font-weight:800}.matrix-switch a.active{background:#2678e9;color:#fff;border-color:#2678e9}.ppe-matrix table{min-width:1200px}.ppe-matrix th{vertical-align:bottom;min-width:90px}.ppe-matrix th small{display:block;font-weight:500;color:var(--muted);margin-top:4px;max-width:90px;white-space:normal}.ppe-matrix .sticky-col{position:sticky;left:0;background:#fff;z-index:3;min-width:230px}.ppe-matrix .sticky-col.second{left:230px;min-width:115px}.ppe-matrix thead .sticky-col{background:#f9fafc;z-index:5}.ppe-matrix thead .sticky-col.second{background:#f9fafc}.matrix-cell{text-align:center;min-width:92px}.matrix-cell input{width:23px;height:23px}.matrix-cell a{display:block;margin-top:5px;font-size:9px;color:#2678e9;font-weight:800}.month-bars{height:220px;display:flex;align-items:flex-end;gap:8px;padding-top:20px}.month-bars>div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}.month-bars i{display:block;width:65%;min-height:2px;background:#2678e9;border-radius:6px 6px 0 0}.month-bars span{font-size:10px;color:var(--muted)}.month-bars b{font-size:10px}.simple-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line)}.simple-list>div:last-child{border-bottom:0}.simple-list b,.simple-list small{display:block}.simple-list small{color:var(--muted);margin-top:2px}.simple-list em{font-style:normal;font-weight:800}.inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-form select,.inline-form input{max-width:220px}.ppe-policy-source{font-size:10px;color:var(--muted)}
@media(max-width:1180px){.ppe-kpis{grid-template-columns:repeat(3,1fr)}.ppe-catalog-layout{grid-template-columns:1fr}.ppe-matrix .sticky-col.second{left:200px}.ppe-matrix .sticky-col{min-width:200px}}
@media(max-width:750px){.ppe-kpis{grid-template-columns:1fr 1fr}.ppe-tabs{display:flex}.ppe-matrix .sticky-col.second{position:static}.ppe-matrix .sticky-col{min-width:180px}}

/* HSE V2.3.2 - People list sticky header + fullscreen workspace */
.people-table-wrap{max-height:calc(100vh - 315px);overflow:auto;position:relative;scrollbar-gutter:stable}
.people-table{border-collapse:separate;border-spacing:0}
.people-table thead th{position:sticky;top:0;z-index:8;background:#f3f6fa;border-bottom:2px solid #c9d4e0;box-shadow:0 2px 5px rgba(27,48,71,.08)}
.people-table tbody tr:nth-child(even){background:#fbfcfe}
.people-table tbody tr:hover{background:#eef6ff}
.people-fullscreen-btn{white-space:nowrap;font-weight:700}
.people-fullscreen-open{overflow:hidden}
.people-workspace.is-fullscreen,.people-workspace:fullscreen{position:fixed;inset:0;z-index:9999;background:var(--bg);padding:14px;display:flex;flex-direction:column;overflow:hidden;margin:0;max-width:none}
.people-workspace:fullscreen{width:100vw;height:100vh}
.people-workspace.is-fullscreen .people-filterbar,.people-workspace:fullscreen .people-filterbar{flex:0 0 auto;margin-bottom:10px;box-shadow:none}
.people-workspace.is-fullscreen #peopleBulkForm,.people-workspace:fullscreen #peopleBulkForm{display:flex;flex-direction:column;flex:1;min-height:0}
.people-workspace.is-fullscreen .people-bulk-toolbar,.people-workspace:fullscreen .people-bulk-toolbar{flex:0 0 auto;margin-bottom:10px}
.people-workspace.is-fullscreen .people-table-panel,.people-workspace:fullscreen .people-table-panel{flex:1;min-height:0;margin-bottom:0;border-radius:10px;overflow:hidden}
.people-workspace.is-fullscreen .people-table-wrap,.people-workspace:fullscreen .people-table-wrap{height:100%;max-height:none;overflow:auto}
.people-workspace.is-fullscreen .people-table thead th,.people-workspace:fullscreen .people-table thead th{background:#eaf0f7;box-shadow:0 3px 8px rgba(27,48,71,.12)}
@media(max-width:900px){.people-table-wrap{max-height:calc(100vh - 270px)}.people-fullscreen-btn{padding:9px 11px}}

/* =========================================================
   HSE V2.4.1 - Modern factory dashboard / People / Contractor UI
   Inspired by the user's approved visual references; all data remains live.
   ========================================================= */
:root{--nav:#062c52;--nav2:#083862;--bg:#f4f8fc;--text:#092b59;--muted:#687b96;--line:#dce8f3;--blue:#087ef0;--green:#10b868;--red:#ef3f45;--amber:#ff9d13;--purple:#7749ed;--radius:12px;--shadow:0 3px 14px rgba(26,65,107,.08)}
body{background:linear-gradient(180deg,#f7fbff 0,#f1f7fc 100%);color:#0c315e;font-size:13px}.modern-shell{grid-template-columns:260px minmax(0,1fr)}.modern-sidebar{padding:0 10px;background:linear-gradient(180deg,#07375f 0%,#05294d 65%,#072b4c 100%);box-shadow:5px 0 24px rgba(4,35,67,.12);overflow:hidden;display:flex;flex-direction:column}.modern-brand{height:68px;padding:0 14px;border-bottom:1px solid rgba(255,255,255,.08);gap:12px;flex:0 0 auto}.shield-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#1395ff,#0872e9);color:#fff;font-size:24px;box-shadow:0 8px 20px rgba(0,123,238,.25)}.modern-brand .brand-copy strong{display:block;font-size:15px;line-height:1.25;color:#fff}.modern-brand .brand-copy small{display:block;margin-top:3px;font-size:9px;letter-spacing:.7px;color:#8fb2d3}.sidebar-scroll{overflow:auto;scrollbar-width:thin;flex:1}.modern-nav{padding:12px 0 20px!important}.modern-nav>a,.modern-nav .nav-group-toggle{min-height:43px;border-radius:8px;margin:2px 0!important;padding:9px 14px!important;color:#d6e7f5!important;font-weight:600;font-size:13px}.modern-nav>a b,.modern-nav .nav-group-title>b{width:24px;text-align:center;font-size:15px;color:#cae4f8}.modern-nav>a:hover,.modern-nav .nav-group-toggle:hover{background:rgba(255,255,255,.07)}.modern-nav>a.active{background:linear-gradient(90deg,#0b84f8,#137cef);color:#fff!important;box-shadow:0 6px 18px rgba(0,113,237,.26)}.modern-nav>a.active b{color:#fff}.modern-more{margin-top:4px}.modern-more .nav-group-toggle{width:100%;background:transparent;border:0;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.modern-more .nav-group-title{display:flex;align-items:center;gap:12px}.modern-more .nav-group-items{display:none;padding:2px 0 5px 24px}.modern-more.open .nav-group-items{display:block}.modern-more .nav-group-items a{font-size:11px;min-height:34px;padding:7px 10px!important;margin:1px 0!important}.sidebar-divider{height:1px;background:rgba(255,255,255,.2);margin:10px 14px}.sidebar-slogan{flex:0 0 auto;padding:14px 16px 18px;border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(0,0,0,0),rgba(5,30,52,.4));font-weight:800;color:#d6e9f8;letter-spacing:.6px}.sidebar-slogan span{display:block;font-size:13px;line-height:1.35}.sidebar-slogan small{display:block;margin-top:4px;font-size:8px;color:#82a9ca}.modern-main{min-width:0}.modern-topbar{height:64px;padding:0 22px;background:rgba(255,255,255,.98);box-shadow:0 2px 12px rgba(11,58,104,.06);z-index:20;justify-content:flex-start;gap:16px}.topbar-menu{width:38px;height:38px;border:0;background:transparent;color:#0b3970;font-size:21px;cursor:pointer;border-radius:8px}.topbar-menu:hover{background:#edf6ff}.topbar-title{min-width:360px}.topbar-title h1{margin:0;color:#092d60;font-size:23px;line-height:1.12}.topbar-title p{margin:3px 0 0;color:#174a86;font-weight:600;font-size:11px}.modern-search{margin-left:auto;width:min(420px,34vw);height:40px;background:#fff;border:1px solid #dfe9f3;border-radius:9px;display:flex;align-items:center;gap:8px;padding:0 10px;box-shadow:0 3px 13px rgba(29,77,124,.06);color:#466c98}.modern-search input{padding:0;border:0;box-shadow:none;background:transparent;min-width:0;flex:1;color:#24476f}.modern-search input:focus{box-shadow:none;border:0}.modern-search kbd{font:10px/1 Segoe UI,Arial,sans-serif;background:#f5f8fb;border:1px solid #dbe5ef;border-radius:5px;padding:5px 7px;color:#7489a2;white-space:nowrap}.modern-userbar{margin-left:0;display:flex;align-items:center;gap:12px}.notify-btn{width:42px;height:40px;border:1px solid #e4ebf3;border-radius:9px;display:grid;place-items:center;color:#0b3a70;font-size:20px;background:#fff}.user-profile{display:flex;align-items:center;gap:9px;color:#0b2f5c;padding-left:12px;border-left:1px solid #e4ebf3}.user-profile strong{display:block;font-size:12px;white-space:nowrap}.user-profile small{display:block;font-size:10px;color:#5d7899;margin-top:2px}.modern-logout{margin:0;font-size:16px;color:#0b3d73}.modern-content{padding:14px 17px 24px;max-width:none;margin:0}.design-page{width:100%;max-width:1600px;margin:0 auto}.design-hero{height:145px;border-radius:11px;background-position:center;background-size:cover;background-repeat:no-repeat;box-shadow:0 2px 12px rgba(31,85,135,.08);position:relative;overflow:visible;margin-bottom:14px}.hero-dashboard{background-image:url('../img/banner_dashboard.png')}.hero-people{background-image:url('../img/banner_people.png')}.hero-contractors{background-image:url('../img/banner_contractors.png')}.hero-filter{position:absolute;right:12px;bottom:10px;z-index:3}.hero-filter summary{list-style:none;background:rgba(255,255,255,.93);border:1px solid rgba(174,202,229,.8);padding:7px 10px;border-radius:7px;cursor:pointer;color:#164f86;font-weight:700;font-size:10px;box-shadow:0 3px 10px rgba(24,70,115,.1)}.hero-filter summary::-webkit-details-marker{display:none}.hero-filter[open] form{display:grid}.hero-filter form{display:none;position:absolute;right:0;top:36px;width:310px;background:#fff;border:1px solid #dce7f2;border-radius:10px;padding:12px;box-shadow:0 14px 35px rgba(18,62,105,.18);gap:8px}.hero-filter label{font-size:10px;font-weight:700;color:#4f6682}.hero-filter input,.hero-filter select{margin-top:4px;padding:7px;font-size:11px}.hero-filter-actions{display:flex;gap:6px;justify-content:flex-end}.design-kpis{display:grid;gap:10px;margin-bottom:12px}.design-kpis.five{grid-template-columns:repeat(5,minmax(0,1fr))}.design-kpi{min-height:126px;background:linear-gradient(135deg,#fff,#fbfdff);border:1px solid #dfebf5;border-radius:12px;padding:14px 15px;display:flex;align-items:flex-start;gap:13px;box-shadow:0 3px 12px rgba(28,73,117,.07);color:#0c315e;position:relative;overflow:hidden}.design-kpi:after{content:"";position:absolute;width:86px;height:86px;border-radius:50%;right:-42px;bottom:-42px;background:currentColor;opacity:.035}.design-kpi:hover{transform:translateY(-1px);box-shadow:0 7px 22px rgba(28,73,117,.12)}.design-kpi-icon{width:49px;height:49px;flex:0 0 49px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:18px;font-weight:900;box-shadow:0 5px 13px rgba(0,0,0,.12)}.design-kpi.green .design-kpi-icon{background:linear-gradient(145deg,#27ca7a,#0faa5e)}.design-kpi.blue .design-kpi-icon{background:linear-gradient(145deg,#20a1ff,#0877e8)}.design-kpi.orange .design-kpi-icon{background:linear-gradient(145deg,#ff8d22,#ff5d06)}.design-kpi.purple .design-kpi-icon{background:linear-gradient(145deg,#8c5bff,#6f42e9)}.design-kpi.red .design-kpi-icon{background:linear-gradient(145deg,#ff5b5d,#e82a38)}.design-kpi small{display:block;color:#173b68;font-weight:700;font-size:11px;margin-bottom:2px}.design-kpi strong{display:inline-block;color:#092d5d;font-size:29px;line-height:1.15;margin:6px 4px 4px 0}.design-kpi em{font-style:normal;color:#53749a;font-size:11px}.design-kpi p{margin:4px 0 0;color:#6480a1;font-size:9px}.mini-progress{height:6px;background:#e8eef5;border-radius:99px;overflow:hidden;margin:2px 0 3px;max-width:145px}.mini-progress i{display:block;height:100%;background:#0d7ff1;border-radius:99px}.design-card{background:#fff;border:1px solid #dce8f3;border-radius:12px;box-shadow:0 3px 13px rgba(29,73,116,.07);overflow:hidden}.design-card-head{height:43px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e7eef5}.design-card-head h2{font-size:14px;margin:0;color:#0c315f}.design-card-head>a,.design-card-head>span{font-size:9px;color:#4b7098}.design-card-head>a{font-weight:700;color:#0876e4}.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,.92fr) minmax(310px,1.04fr);gap:10px;margin-bottom:10px}.dashboard-main-grid .design-card{height:270px}.dashboard-main-grid canvas.chart-lg{max-height:215px}.dashboard-main-grid canvas:not(.chart-lg){max-height:215px}.today-card{display:flex;flex-direction:column}.today-list{flex:1;overflow:auto}.today-item{display:grid;grid-template-columns:30px 1fr 16px;gap:9px;align-items:center;padding:8px 11px;border-bottom:1px solid #edf2f7;color:#11375f}.today-icon{width:27px;height:27px;border-radius:7px;display:grid;place-items:center;font-weight:800;background:#e9f7ef;color:#18a85f}.today-icon.action{background:#fff1d9;color:#e28a00}.today-icon.training{background:#eaf2ff;color:#1779e7}.today-item b{display:block;font-size:10px;line-height:1.25}.today-item small{display:block;color:#7890aa;font-size:9px;margin-top:2px}.today-item>i{font-style:normal;color:#7f98b1;font-size:18px}.today-add{font-size:9px;font-weight:700;color:#0878e9;border:1px solid #b8d9f8;border-radius:6px;padding:6px 10px;margin:8px 11px;align-self:flex-start}.design-bottom-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(340px,.9fr);gap:10px}.recent-permits,.quick-hse{min-height:250px}.design-tabs{display:flex;gap:5px;padding:7px 13px 3px}.design-tabs span{background:#edf3fa;color:#55708f;border-radius:6px;padding:5px 10px;font-size:9px;font-weight:600}.design-tabs span.active{background:#087ff0;color:#fff}.design-table{font-size:10px;white-space:nowrap}.design-table th{font-size:9px;text-transform:none;letter-spacing:0;background:#f6f9fc;color:#45607e;padding:8px 10px}.design-table td{padding:8px 10px;border-bottom:1px solid #e8eef4;color:#26486c}.design-table tbody tr:hover{background:#f4f9ff}.row-view{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border:1px solid #62aef4;border-radius:6px;color:#0879e7;font-size:9px;font-weight:700;background:#fff}.row-more{color:#365a80;font-size:17px;padding:2px 7px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:5px}.quick-grid a{min-height:91px;border:1px solid #e3ebf3;border-radius:8px;padding:8px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#173c67;text-align:center}.quick-grid a:hover{background:#f7fbff;border-color:#c4ddf5}.quick-grid span{font-size:22px;line-height:1}.quick-grid small{font-size:8px;margin:5px 0 2px}.quick-grid b{font-size:15px;color:#092d59}.quick-grid em{font-style:normal;font-size:8px;color:#6d86a4}.empty.compact{padding:20px;font-size:10px}

/* People + contractor management */
.people-layout{display:grid;grid-template-columns:minmax(0,1fr) 355px;gap:10px;align-items:start}.people-left{min-width:0}.people-list-card{margin-bottom:10px}.people-list-head{height:46px}.people-head-actions{display:flex;align-items:center;gap:7px}.tools-menu{position:relative}.tools-menu summary{list-style:none;cursor:pointer;border:1px solid #dbe6f0;background:#fff;border-radius:7px;padding:6px 9px;color:#356083;font-size:9px;font-weight:700}.tools-menu summary::-webkit-details-marker{display:none}.tools-menu>div{position:absolute;right:0;top:34px;z-index:30;width:210px;background:#fff;border:1px solid #dce7f2;border-radius:9px;box-shadow:0 14px 32px rgba(20,62,103,.17);padding:6px}.tools-menu>div a,.tools-menu>div label,.tools-menu>div button{display:block;padding:8px 9px;border-radius:6px;color:#315675;font-size:10px;cursor:pointer}.tools-menu>div button{width:100%;text-align:left;border:0;background:transparent;font-family:inherit}.tools-menu>div a:hover,.tools-menu>div label:hover,.tools-menu>div button:hover{background:#f0f7ff;color:#0877e8}.design-filterbar{display:grid;grid-template-columns:minmax(240px,1.7fr) repeat(3,minmax(105px,.55fr)) auto;gap:7px;padding:8px 10px;border-bottom:1px solid #e6edf4}.design-filterbar select,.design-filterbar input{height:32px;padding:5px 8px;border-radius:6px;border-color:#dce6f0;font-size:9px}.search-input{position:relative}.search-input span{position:absolute;left:9px;top:7px;color:#5a80a6;z-index:2}.search-input input{padding-left:26px}.people-selection-bar{height:34px;display:flex;align-items:center;gap:10px;padding:4px 10px;background:#fbfdff;border-bottom:1px solid #e8eef4;font-size:9px;color:#6480a0}.people-selection-bar label{display:flex;align-items:center;gap:5px}.people-selection-bar input[type=checkbox],.modern-people-table input[type=checkbox]{width:14px;height:14px}.people-selection-bar select{width:140px;height:27px;padding:3px 6px;font-size:9px}.modern-people-table{max-height:360px}.modern-people-table .people-table thead th{background:#f5f8fc;top:0}.row-person img{width:25px;height:25px;border-radius:50%;object-fit:cover;border:1px solid #d8e3ed}.row-person .avatar{width:25px;height:25px;font-size:9px}.row-person b{color:#143b65;font-size:10px}.selected-row{background:#edf7ff!important;box-shadow:inset 3px 0 #087ff0}.pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:6px;font-size:8px;font-weight:700;line-height:1.1}.pill.success{background:#dff8e9;color:#129152}.pill.warning{background:#fff1c8;color:#d38300}.pill.danger{background:#ffe3e3;color:#e4363f}.pill.info{background:#dfeeff;color:#1373d6}.pill.muted-pill{background:#eef2f6;color:#77899d}.row-actions{display:flex;align-items:center;gap:3px}.people-charts{display:grid;grid-template-columns:1.35fr 1fr;gap:10px}.people-charts .design-card{height:235px}.people-charts canvas{max-height:185px}.person-side-card{position:sticky;top:78px;min-height:520px}.person-profile-mini,.company-profile-mini{display:grid;grid-template-columns:86px 1fr;gap:12px;padding:12px 11px 8px}.person-profile-mini>img,.profile-placeholder{width:86px;height:104px;border-radius:10px;object-fit:cover;border:1px solid #dde7f0;background:linear-gradient(145deg,#dceaf5,#f6fbff)}.profile-placeholder{display:grid;place-items:center;font-size:33px;font-weight:800;color:#5c7b98}.profile-name{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.profile-name h3{margin:2px 0 6px;font-size:15px;color:#0d315e}.person-profile-mini dl,.company-profile-mini dl{display:grid;grid-template-columns:82px 1fr;gap:5px 7px;margin:0;font-size:9px}.person-profile-mini dt,.company-profile-mini dt{color:#69819e}.person-profile-mini dd,.company-profile-mini dd{margin:0;color:#24476b;font-weight:700}.profile-contact{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px;color:#0872dc;font-size:8px}.training-mini-card{border:1px solid #e3ebf3;border-radius:9px;margin:3px 10px 8px;padding:8px;display:grid;grid-template-columns:82px 1fr;grid-template-areas:"title title" "donut stats";gap:5px 10px}.training-mini-card h3{grid-area:title;margin:0 0 2px;font-size:10px;color:#143b65}.donut-css{grid-area:donut;width:76px;height:76px;border-radius:50%;background:conic-gradient(#13b867 calc(var(--pct)*1%),#e9eef4 0);display:grid;place-items:center;position:relative}.donut-css:after{content:"";position:absolute;width:55px;height:55px;background:#fff;border-radius:50%}.donut-css span{position:relative;z-index:2;text-align:center}.donut-css b{display:block;font-size:15px;color:#123b65}.donut-css small{font-size:7px;color:#728ba5}.training-mini-stats{grid-area:stats;align-self:center}.training-mini-stats p{margin:6px 0;font-size:8px;color:#5f7897}.training-mini-stats .dot{width:6px;height:6px;margin-right:5px}.green-dot{background:#17bc68}.amber-dot{background:#ffa215}.blue-dot{background:#1586f1}.person-quick-cards{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 10px 10px}.person-quick-cards a{min-height:66px;border:1px solid #e2eaf3;border-radius:8px;padding:8px;display:grid;grid-template-columns:28px 1fr;column-gap:7px;align-items:center;color:#173d66}.person-quick-cards a span{grid-row:1/3;width:27px;height:27px;border-radius:7px;background:#e8f3ff;color:#0d7ce8;display:grid;place-items:center;font-size:14px}.person-quick-cards a b{font-size:9px}.person-quick-cards a small{font-size:7px;color:#6d86a3}.person-quick-cards .span-two{grid-column:span 2}.company-layout .company-table-wrap{max-height:410px;overflow:auto}.company-name{display:flex;align-items:center;gap:7px;color:#153b66}.company-logo{width:27px;height:27px;border-radius:6px;background:linear-gradient(135deg,#e8f3ff,#fff1e2);display:grid;place-items:center;font-size:7px;font-weight:900;color:#1769ba;border:1px solid #dae6ef}.company-profile-mini{grid-template-columns:86px 1fr}.company-photo{width:86px;height:104px;border-radius:9px;background:linear-gradient(155deg,#b7d7ec,#eef6fb 55%,#d4e6d4);display:grid;place-items:center;border:1px solid #d7e5ef}.company-photo span{width:55px;height:55px;border-radius:16px;background:#fff;display:grid;place-items:center;font-size:15px;font-weight:900;color:#0e6fc8;box-shadow:0 5px 16px rgba(20,79,132,.14)}.contractor-quick{grid-template-columns:1fr 1fr}.contractor-quick .span-two{grid-column:auto}

/* Preserve full app usability on smaller screens */
body.sidebar-mini .modern-shell{grid-template-columns:76px minmax(0,1fr)}body.sidebar-mini .modern-brand .brand-copy,body.sidebar-mini .modern-nav a span,body.sidebar-mini .modern-nav .nav-group-title span,body.sidebar-mini .modern-nav .nav-group-toggle>i,body.sidebar-mini .sidebar-slogan{display:none}body.sidebar-mini .modern-brand{justify-content:center;padding:0}body.sidebar-mini .modern-nav>a,body.sidebar-mini .modern-nav .nav-group-toggle{justify-content:center;padding:9px!important}body.sidebar-mini .modern-more .nav-group-items{display:none!important}
@media(max-width:1380px){.modern-shell{grid-template-columns:230px minmax(0,1fr)}.topbar-title{min-width:300px}.topbar-title h1{font-size:20px}.design-kpis.five{grid-template-columns:repeat(5,minmax(150px,1fr));overflow:auto}.design-kpi{min-width:175px}.dashboard-main-grid{grid-template-columns:minmax(0,1.5fr) minmax(270px,.8fr)}.today-card{grid-column:1/-1;height:auto!important}.design-bottom-grid{grid-template-columns:1fr}.people-layout{grid-template-columns:minmax(0,1fr) 320px}.design-filterbar{grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(100px,.6fr));}.design-filterbar select:nth-of-type(3){display:none}}
@media(max-width:1100px){.modern-shell{grid-template-columns:76px minmax(0,1fr)}.modern-brand .brand-copy,.modern-nav a span,.modern-nav .nav-group-title span,.modern-nav .nav-group-toggle>i,.sidebar-slogan{display:none}.modern-brand{justify-content:center;padding:0}.modern-nav>a,.modern-nav .nav-group-toggle{justify-content:center;padding:9px!important}.modern-more .nav-group-items{display:none!important}.topbar-title{min-width:260px}.modern-search{width:300px}.people-layout{grid-template-columns:1fr}.person-side-card{position:static}.people-charts{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.modern-topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:8px 12px}.topbar-title{min-width:0;flex:1}.topbar-title h1{font-size:17px}.topbar-title p{font-size:9px}.modern-search{order:3;width:100%;margin:0}.modern-userbar{margin-left:auto}.user-profile span:last-child{display:none}.modern-content{padding:10px}.design-hero{height:100px}.design-kpis.five{display:flex;overflow:auto}.design-kpi{min-width:210px;min-height:105px}.dashboard-main-grid,.design-bottom-grid,.people-charts{grid-template-columns:1fr}.dashboard-main-grid .design-card{height:auto;min-height:250px}.design-filterbar{display:flex;overflow:auto;align-items:center}.design-filterbar .search-input{min-width:240px}.design-filterbar select{min-width:130px}.modern-people-table,.company-table-wrap{max-height:420px}.person-profile-mini,.company-profile-mini{grid-template-columns:72px 1fr}.person-profile-mini>img,.profile-placeholder,.company-photo{width:72px;height:90px}.quick-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.modern-shell{grid-template-columns:1fr}.modern-sidebar{position:fixed;left:-260px;width:250px;z-index:60;transition:left .2s}.sidebar-mini .modern-sidebar{left:0}.topbar-menu{display:block}.topbar-title p{display:none}.modern-userbar{gap:5px}.notify-btn{width:35px}.design-hero{height:82px;background-size:cover}.people-selection-bar{overflow:auto}.people-charts{display:block}.people-charts .design-card{margin-bottom:10px}.person-quick-cards{grid-template-columns:1fr}.person-quick-cards .span-two{grid-column:auto}}

/* ========================= HSE V2.5.0 operational modules ========================= */
.module-hero{min-height:138px;border-radius:16px;padding:26px 34px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:14px;border:1px solid #d7e5f3;box-shadow:0 8px 26px rgba(15,56,92,.07);overflow:hidden;position:relative;background:#eef7ff}
.module-hero:after{content:"";position:absolute;right:17%;top:-35%;width:320px;height:220px;border-radius:50%;background:rgba(255,255,255,.35);filter:blur(2px)}
.module-hero>div{position:relative;z-index:1}.module-hero h2{margin:0 0 8px;color:#063b78;font-size:28px;line-height:1.06;letter-spacing:-.5px}.module-hero p{margin:0;color:#15518d;font-weight:600}.hero-motto{text-align:right;font-size:20px;line-height:1.35;font-style:italic;color:#144d91;min-width:210px}.hero-motto b{font-size:22px}
.risk-hero{background:linear-gradient(90deg,#d7ecff 0%,#eff8ff 48%,#e1f2ff 100%)}
.fire-hero{background:linear-gradient(90deg,#ffe2df 0%,#fff2ed 52%,#ffe7e5 100%);border-color:#ffd2cd}.fire-hero h2,.fire-hero p,.fire-hero .hero-motto{color:#c42020}.fire-hero:after{background:rgba(255,83,72,.13)}
.chemical-hero{background:linear-gradient(90deg,#d7efff 0%,#f4f9ff 48%,#e6f2ff 100%)}.chemical-hero:after{background:rgba(255,178,42,.15)}
.environment-hero{background:linear-gradient(90deg,#dff6e5 0%,#f2fbf5 48%,#e4f7ea 100%);border-color:#cbead4}.environment-hero h2,.environment-hero p,.environment-hero .hero-motto{color:#13753f}.environment-hero:after{background:rgba(28,175,93,.12)}
.module-kpis{display:grid;gap:12px;margin-bottom:14px}.module-kpis.five{grid-template-columns:repeat(5,minmax(0,1fr))}.module-kpis.six{grid-template-columns:repeat(6,minmax(0,1fr))}.module-kpi{background:#fff;border:1px solid #dce7f1;border-radius:15px;padding:16px;display:flex;align-items:center;gap:12px;min-height:108px;box-shadow:0 5px 18px rgba(14,49,80,.05)}.module-kpi .big-icon{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:22px;box-shadow:0 6px 14px rgba(0,0,0,.12);flex:0 0 auto}.module-kpi small{display:block;color:#173a67;font-weight:700;margin-bottom:3px}.module-kpi strong{display:inline-block;color:#092c58;font-size:30px;line-height:1}.module-kpi p{margin:6px 0 0;font-size:11px;color:#6c819c}.module-kpi.blue .big-icon{background:linear-gradient(135deg,#0b86ff,#1f6de3)}.module-kpi.red .big-icon{background:linear-gradient(135deg,#ff4b43,#ee1d2f)}.module-kpi.amber .big-icon{background:linear-gradient(135deg,#ffad1f,#ff7900)}.module-kpi.green .big-icon{background:linear-gradient(135deg,#19c178,#0bab55)}.module-kpi.violet .big-icon{background:linear-gradient(135deg,#8d58ff,#6b3be2)}
.module-tabs{display:flex;align-items:center;gap:2px;background:#fff;border:1px solid #dbe6f1;border-radius:13px 13px 0 0;padding:6px 8px;margin-top:6px;overflow-x:auto}.module-tabs>a{padding:11px 16px;border-radius:7px;color:#315270;font-weight:700;white-space:nowrap;font-size:13px}.module-tabs>a:hover{background:#eef6ff}.module-tabs>a.active{background:#167af3;color:#fff}.fire-tabs>a.active{background:#f12e37}.chemical-tabs>a.active{background:#167af3}.environment-tabs>a.active{background:#14a15a}.module-tab-actions{margin-left:auto;display:flex;gap:8px;white-space:nowrap}.fire-btn{background:#ef2f37!important;border-color:#ef2f37!important}.chemical-btn{background:#167af3!important;border-color:#167af3!important}.environment-btn{background:#13a45b!important;border-color:#13a45b!important}
.smart-filter{display:flex;gap:8px;align-items:center;padding:10px;background:#fff;border:1px solid #dbe6f1;border-top:0;flex-wrap:wrap}.smart-filter input,.smart-filter select{min-height:38px}.smart-filter .grow{flex:1;min-width:220px}.module-grid{display:grid;gap:12px;margin-top:12px}.module-grid.main-side{grid-template-columns:minmax(0,3fr) minmax(290px,1fr)}.module-grid.half{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid.thirds{grid-template-columns:repeat(3,minmax(0,1fr))}.module-side-stack{display:grid;gap:12px;align-content:start}.panel-head.padded{padding:15px 16px 8px}.panel-head a{font-size:12px;font-weight:700}.danger-text{color:#d92a35!important}
.risk-pill{display:inline-flex;align-items:center;justify-content:center;min-width:82px;padding:5px 9px;border-radius:6px;font-weight:800;font-size:11px}.risk-pill.high{background:#ffe1e2;color:#db2531}.risk-pill.medium{background:#fff0c9;color:#db7800}.risk-pill.low{background:#dcf6e6;color:#118a4c}
.mini-bars{display:grid;gap:11px;padding:4px 0}.mini-bars>div{display:grid;grid-template-columns:minmax(90px,1fr) 1.5fr 34px;align-items:center;gap:8px;font-size:12px}.mini-bars i{height:8px;background:#e8f0f8;border-radius:99px;overflow:hidden}.mini-bars i b{display:block;height:100%;background:linear-gradient(90deg,#5db3ff,#167af3);border-radius:99px}.mini-bars strong{text-align:right;color:#244364}
.action-list{display:grid}.action-list>a{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 2px;border-bottom:1px solid #eef2f6;color:inherit}.action-list>a:last-child{border-bottom:0}.action-list b{display:block;font-size:12px;color:#24415f}.action-list small{display:block;color:#738398;margin-top:3px}.action-list em{font-style:normal;font-size:10px;background:#f3f5f7;border-radius:6px;padding:5px 7px;color:#66778b}.action-alert{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800}.action-alert.warn{background:#ff9e1b}.action-alert.danger{background:#ef3340}
.schedule-list{display:grid}.schedule-list a{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf2f6;color:inherit}.schedule-list time{background:#eef5ff;color:#176bcc;border-radius:8px;padding:8px 4px;text-align:center;font-weight:800}.schedule-list b{display:block;font-size:12px}.schedule-list small{display:block;color:#71849b;margin-top:2px}.report-buttons{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0}.quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.quick-links a{padding:12px;border:1px solid #dce7f1;border-radius:9px;background:#f8fbfe;font-weight:700;color:#165b9d}.linked-records{display:grid;gap:8px}.linked-records h3{margin:8px 0 0;color:#294d72}.linked-records a{padding:10px;border:1px solid #dce6ef;border-radius:8px;display:grid;gap:3px}.linked-records a span{font-size:11px;color:#718297}
.risk-matrix-pro{padding:12px}.matrix.compact{transform:scale(.92);transform-origin:top left;margin-bottom:-15px}.risk-matrix-pro .axis-y{display:block;font-size:11px;color:#718198;margin-bottom:8px}
@media(max-width:1400px){.module-kpis.six{grid-template-columns:repeat(3,1fr)}.module-kpis.five{grid-template-columns:repeat(3,1fr)}.module-grid.thirds{grid-template-columns:1fr 1fr}.module-grid.thirds>*:last-child{grid-column:1/-1}}
@media(max-width:1050px){.module-grid.main-side,.module-grid.half,.module-grid.thirds{grid-template-columns:1fr}.module-grid.thirds>*:last-child{grid-column:auto}.module-kpis.five,.module-kpis.six{grid-template-columns:repeat(2,1fr)}.module-hero h2{font-size:23px}.hero-motto{display:none}}
@media(max-width:650px){.module-kpis.five,.module-kpis.six{grid-template-columns:1fr}.module-hero{padding:22px}.module-tabs{border-radius:10px}.module-tab-actions{margin-left:0}.module-kpi{min-height:92px}.smart-filter>*{width:100%}}


/* ========================= HSE V2.6.0 Report Center ========================= */
.report-page{display:grid;gap:12px}.report-top-row{display:flex;align-items:end;justify-content:space-between;gap:14px;flex-wrap:wrap}.report-main-tabs{display:flex;background:#eaf4ff;border-radius:8px;padding:3px;min-width:310px}.report-main-tabs a{padding:10px 28px;border-radius:6px;font-weight:800;color:#2b5b8d;font-size:12px}.report-main-tabs a.active{background:#1478ed;color:#fff;box-shadow:0 5px 12px rgba(20,120,237,.22)}.report-period-filter{display:flex;align-items:end;gap:7px;flex-wrap:wrap}.report-period-filter label{font-size:9px;font-weight:700;color:#66809d}.report-period-filter input,.report-period-filter select{display:block;margin-top:4px;min-width:120px;height:34px;padding:5px 8px;font-size:10px}.report-period-filter .btn{height:34px}
.report-kpi-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.report-kpi{min-height:112px;border:1px solid #dce8f3;background:#fff;border-radius:12px;padding:12px;display:flex;align-items:flex-start;gap:10px;box-shadow:0 4px 14px rgba(20,65,108,.06);color:#113a67}.report-kpi:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(20,65,108,.1)}.report-kpi>i{font-style:normal;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:18px;flex:0 0 auto;box-shadow:0 5px 11px rgba(0,0,0,.13)}.report-kpi small{display:block;font-weight:800;font-size:9px}.report-kpi strong{display:block;font-size:26px;line-height:1;margin:7px 0 5px;color:#082d5e}.report-kpi p{margin:0;font-size:9px;font-weight:700}.report-kpi em{display:block;font-style:normal;color:#7389a1;font-size:8px;margin-top:4px}.report-kpi.danger>i{background:linear-gradient(145deg,#ff514f,#ed1e2f)}.report-kpi.amber>i{background:linear-gradient(145deg,#ffae2d,#ff7a00)}.report-kpi.blue>i{background:linear-gradient(145deg,#2d9cff,#176fdc)}.report-kpi.green>i{background:linear-gradient(145deg,#25c879,#11a45b)}.report-kpi.violet>i{background:linear-gradient(145deg,#9a63ff,#7040db)}.report-kpi.leaf>i{background:linear-gradient(145deg,#65c844,#38a725)}.report-kpi .good{color:#10a35b}.report-kpi .bad{color:#df2f3b}.report-kpi .warn{color:#dd8a00}
.report-dashboard-grid{display:grid;gap:10px}.report-dashboard-grid.top{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr) minmax(280px,1fr)}.report-dashboard-grid.bottom{grid-template-columns:minmax(270px,.85fr) minmax(0,1.35fr) minmax(310px,1fr)}.report-chart-card,.report-plan-card,.report-compliance-card{min-height:275px}.report-chart-card canvas{max-height:225px}.plan-bars,.compliance-bars{display:grid;gap:14px;padding:20px}.plan-bars>div,.compliance-bars>div{display:grid;grid-template-columns:110px 1fr 45px;align-items:center;gap:8px;font-size:10px;color:#355475}.plan-bars i,.compliance-bars i{height:10px;border-radius:99px;background:#e9f0f7;overflow:hidden}.plan-bars i b,.compliance-bars i b{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#52bafc,#13b96d)}.compliance-bars i b.ok{background:#20bc65}.compliance-bars i b.bad{background:#ed3f45}.plan-bars strong,.compliance-bars strong{text-align:right;color:#153b66}.report-action-donut canvas{max-height:230px}.report-issues-card .table-wrap{max-height:235px}.report-status{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:5px 9px;font-size:9px;font-weight:800;background:#eef2f6;color:#516a83;white-space:nowrap}.report-status.draft{background:#ffe8dc;color:#d75a20}.report-status.review{background:#fff0cd;color:#d07a00}.report-status.approved{background:#dcf6e7;color:#0f9252}.report-status.rejected{background:#ffe1e4;color:#ce2f3d}.report-status.warn{background:#fff0cf;color:#cf7900}.report-status.big{font-size:11px;padding:7px 12px}.report-schedule-list{display:grid}.report-schedule-list>div{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid #edf2f6}.report-file-icon{width:25px;height:25px;border-radius:6px;display:grid;place-items:center;background:#eaf4ff;color:#1478ed}.report-schedule-list b{font-size:10px;color:#173c66}.report-schedule-list small{display:block;font-size:8px;color:#72879f;margin-top:2px}.report-schedule-list em{font-style:normal;font-size:8px;padding:5px 7px;background:#f1f5f8;border-radius:6px;color:#526981}.report-schedule-list em.warn{background:#fff0ce;color:#d67a00}.report-schedule-list em.danger{background:#ffe2e4;color:#d12c3b}.report-export-row{display:flex;justify-content:flex-end;gap:8px}
.report-record-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.report-category-tabs{display:flex;gap:5px;overflow:auto;padding-bottom:2px}.report-category-tabs a{padding:8px 11px;border-radius:7px;border:1px solid #dce7f1;background:#fff;color:#315879;font-size:9px;font-weight:700;white-space:nowrap}.report-category-tabs a.active{background:#1478ed;color:#fff;border-color:#1478ed}.report-record-actions{display:flex;gap:7px;align-items:center}.report-template-menu>div{width:300px;padding:10px}.report-template-menu form{display:grid;gap:8px}.report-template-menu form label{font-size:9px;font-weight:700;color:#536d89}.report-template-menu input,.report-template-menu select{width:100%;margin-top:3px;padding:7px;font-size:10px}.report-record-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.8fr);gap:10px}.report-record-filter{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(120px,.7fr) minmax(120px,.6fr) auto;gap:7px;padding:8px 10px;border-bottom:1px solid #e7eef5}.report-record-filter input,.report-record-filter select{height:32px;font-size:9px}.report-record-table{max-height:520px}.report-record-table tr.selected-row{background:#eaf5ff}.report-category{display:inline-flex;padding:4px 7px;border-radius:5px;font-size:8px;font-weight:800;background:#eaf4ff;color:#1478ed}.report-category.fire{background:#ffe2e2;color:#db2b35}.report-category.chemical{background:#e9f2ff;color:#2866c8}.report-category.environment{background:#e3f7e9;color:#17884a}.report-category.contractor{background:#e8ecff;color:#5255b9}.report-category.training{background:#edf0ff;color:#5e53ce}.report-detail-side{position:sticky;top:76px;align-self:start}.report-selected-summary{padding:12px}.report-selected-title{display:flex;gap:10px;align-items:flex-start}.report-selected-title>span{width:38px;height:38px;border-radius:8px;background:#eaf4ff;color:#1478ed;display:grid;place-items:center;font-size:20px}.report-selected-title section{flex:1}.report-selected-title h3{font-size:13px;margin:0 0 6px;color:#12385f}.report-selected-summary dl{margin:14px 0;display:grid;gap:7px}.report-selected-summary dl div{display:grid;grid-template-columns:90px 1fr;gap:8px;font-size:9px}.report-selected-summary dt{color:#6a8099}.report-selected-summary dd{margin:0;color:#244668;font-weight:700}.report-selected-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.btn.excel{background:#e1f6e8;color:#0d8c4e;border-color:#bfe8cd}.btn.pdf{background:#ffe4e6;color:#c92b38;border-color:#fac4c8}.btn.word{background:#e4efff;color:#1e62bc;border-color:#c5daf5}.report-selected-summary h4{margin:15px 0 8px;color:#244365}.approval-mini{display:grid;gap:7px}.approval-mini>div{display:grid;grid-template-columns:65px 1fr auto;gap:7px;font-size:8px;padding:6px;border:1px solid #e8eef4;border-radius:6px}.approval-mini b{color:#214667}.approval-mini span{color:#667d95}.approval-mini em{font-style:normal;color:#138c50}.report-template-library{margin-top:0}.template-chip-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px}.template-chip-grid>div{border:1px solid #e1e9f1;border-radius:8px;padding:9px;display:grid;grid-template-columns:38px 1fr auto auto;gap:8px;align-items:center}.file-badge{width:34px;height:34px;border-radius:7px;display:grid;place-items:center;background:#e5f5e9;color:#13864d;font-size:8px;font-weight:900}.file-badge.pdf{background:#ffe3e5;color:#c92b38}.file-badge.doc,.file-badge.docx{background:#e4efff;color:#2863b1}.template-chip-grid b{font-size:9px;color:#234465}.template-chip-grid small{display:block;font-size:8px;color:#71869c;margin-top:2px}.template-chip-grid a{font-size:8px;color:#1478ed;font-weight:800}.template-chip-grid form button{border:0;background:transparent;color:#a4b2c0;cursor:pointer;font-size:16px}
.report-detail-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.report-detail-header>a,.report-detail-header div>a{font-size:10px;color:#1478ed;font-weight:700}.report-detail-header h1{font-size:22px;color:#0b3261;margin:6px 0 3px}.report-detail-header p{font-size:10px;color:#6c8199;margin:0}.report-detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,.75fr);gap:10px}.report-detail-grid>main,.report-detail-grid>aside{display:grid;gap:10px;align-content:start}.report-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}.report-info-grid>div{padding:9px;border:1px solid #e6edf4;border-radius:7px;background:#fbfdff}.report-info-grid small{display:block;color:#6d829a;font-size:8px}.report-info-grid b{display:block;color:#214467;font-size:10px;margin-top:3px}.report-text{padding:0 12px 14px}.report-text h3{font-size:11px;color:#224668;margin:12px 0 5px}.report-text p{font-size:10px;color:#536c85;line-height:1.55;white-space:pre-wrap}.snapshot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:12px}.snapshot-grid.small{grid-template-columns:repeat(4,1fr);padding-top:4px}.snapshot-grid>div{border:1px solid #e4ecf4;border-radius:7px;padding:9px;background:#fbfdff}.snapshot-grid small{display:block;font-size:8px;color:#6e849b}.snapshot-grid strong{font-size:19px;color:#123b67}.snapshot-grid em{font-style:normal;font-size:8px;color:#5f7d9c;margin-left:5px}.report-kpi-snapshot>h3{font-size:10px;padding:0 12px;color:#23476a}.report-export-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px}.report-workflow-card form{padding:12px}.report-workflow-card textarea{width:100%;font-size:9px}.workflow-buttons{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}.approval-timeline{display:grid;padding:0 12px 12px}.approval-timeline>div{display:grid;grid-template-columns:14px 1fr;gap:8px;padding:8px 0;border-top:1px solid #edf2f6}.approval-timeline i{width:10px;height:10px;border-radius:50%;background:#9cb0c3;margin-top:3px}.approval-timeline i.approved{background:#18a45a}.approval-timeline i.rejected{background:#d63442}.approval-timeline section b{font-size:9px;color:#24486a}.approval-timeline section span,.approval-timeline section small{display:block;font-size:8px;color:#74889f;margin-top:2px}.version-list{display:grid;padding:8px 12px}.version-list>div{display:grid;grid-template-columns:38px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid #edf2f6}.version-list>div>b{width:32px;height:32px;border-radius:50%;background:#eaf4ff;color:#1478ed;display:grid;place-items:center;font-size:9px}.version-list strong{font-size:9px;color:#244667}.version-list small,.version-list p{font-size:8px;color:#71869c;margin:2px 0}.report-form-shell .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.report-form-shell .span-two{grid-column:span 2}.report-form-shell .span-three{grid-column:1/-1}.report-form-shell .help{display:block;color:#73879d;font-size:8px;margin-top:4px}
@media(max-width:1450px){.report-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-dashboard-grid.top{grid-template-columns:1fr 1fr}.report-compliance-card{grid-column:1/-1}.report-dashboard-grid.bottom{grid-template-columns:1fr 1fr}.report-schedule-card{grid-column:1/-1}.template-chip-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1100px){.report-record-layout,.report-detail-grid{grid-template-columns:1fr}.report-detail-side{position:static}.report-dashboard-grid.top,.report-dashboard-grid.bottom{grid-template-columns:1fr}.report-compliance-card,.report-schedule-card{grid-column:auto}.report-kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.report-kpi-grid{grid-template-columns:repeat(2,1fr)}.report-period-filter{width:100%;overflow:auto;flex-wrap:nowrap}.report-record-filter{display:flex;overflow:auto}.report-record-filter>*{min-width:130px}.template-chip-grid{grid-template-columns:1fr}.report-form-shell .form-grid.three{grid-template-columns:1fr}.report-form-shell .span-two,.report-form-shell .span-three{grid-column:auto}.report-info-grid,.snapshot-grid,.snapshot-grid.small{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.report-kpi-grid{grid-template-columns:1fr}.report-main-tabs{min-width:0;width:100%}.report-main-tabs a{flex:1;text-align:center;padding:9px}.report-selected-buttons,.report-export-buttons{grid-template-columns:1fr}.report-info-grid,.snapshot-grid,.snapshot-grid.small{grid-template-columns:1fr}}

/* =========================================================
   V2.7.0 - Kiểm tra / Audit command center
   ========================================================= */
.audit-shell{display:grid;gap:10px}.audit-top-tabs{display:flex;align-items:center;gap:0;background:#fff;border:1px solid #dfe8f1;border-radius:10px;padding:0 8px;min-height:52px;box-shadow:0 5px 18px rgba(21,62,104,.05);overflow:auto}.audit-top-tabs>a:not(.btn){padding:15px 22px;border-right:1px solid #e7edf4;color:#31516f;font-size:12px;font-weight:800;white-space:nowrap}.audit-top-tabs>a:not(.btn).active{background:linear-gradient(180deg,#1784ff,#0b6ee8);color:#fff;border-radius:7px}.audit-tab-spacer{flex:1}.audit-help,.audit-create{white-space:nowrap;margin-left:8px}
.audit-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.audit-kpi{min-height:110px;background:#fff;border:1px solid #dfe8f1;border-radius:11px;padding:16px;display:flex;gap:12px;align-items:flex-start;box-shadow:0 5px 18px rgba(21,62,104,.05);text-decoration:none}.audit-kpi>i{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#fff;font-style:normal;font-size:24px;flex:0 0 auto;box-shadow:0 6px 15px rgba(0,0,0,.12)}.audit-kpi small{display:block;font-size:10px;font-weight:800;color:#35587b}.audit-kpi strong{display:block;font-size:28px;line-height:1.05;color:#0e3260;margin:7px 0 5px}.audit-kpi strong span{font-size:16px;font-weight:700;color:#3f6282}.audit-kpi em{font-style:normal;font-size:8px;color:#6f88a1}.audit-kpi.blue>i{background:linear-gradient(145deg,#20a5ff,#0877eb)}.audit-kpi.green>i{background:linear-gradient(145deg,#27d078,#0ca252)}.audit-kpi.amber>i{background:linear-gradient(145deg,#ffb323,#f28500)}.audit-kpi.red>i{background:linear-gradient(145deg,#ff4d56,#ec1329)}.audit-kpi.purple>i{background:linear-gradient(145deg,#9b6cff,#7045e8)}.audit-kpi.cyan>i{background:linear-gradient(145deg,#2bb5ff,#0877eb)}
.audit-grid{display:grid;gap:10px}.audit-grid.top{grid-template-columns:1.25fr 1fr 1fr}.audit-grid.bottom{grid-template-columns:1.2fr 1fr 1fr}.audit-grid.reports{grid-template-columns:1.3fr 1fr}.audit-card{background:#fff;border:1px solid #dfe8f1;border-radius:11px;box-shadow:0 5px 18px rgba(21,62,104,.05);overflow:hidden}.audit-card-head{min-height:48px;padding:11px 14px;border-bottom:1px solid #e7eef5;display:flex;align-items:center;justify-content:space-between;gap:10px}.audit-card-head h2{margin:0;color:#163c67;font-size:14px}.audit-card-head p{margin:4px 0 0;font-size:9px;color:#73889f}.audit-card-head a{font-size:9px;font-weight:800;color:#1478ed}.audit-card-head select{height:30px;font-size:9px}.audit-trend-chart{height:210px;padding:18px 18px 5px;display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;background:linear-gradient(#fff,#fbfdff)}.month-col{display:grid;grid-template-rows:1fr 20px;height:100%;gap:4px}.month-col>.bars{height:100%;display:flex;align-items:end;justify-content:center;position:relative;border-bottom:1px solid #ccd9e6;background:repeating-linear-gradient(to top,transparent 0,transparent 39px,#edf2f7 40px)}.month-col>.bars b{width:45%;min-height:3px;background:#3d9bff;border-radius:3px 3px 0 0}.month-col>.bars i{position:absolute;width:8px;height:8px;border-radius:50%;background:#ef3f4a;border:2px solid #fff;transform:translateY(50%);box-shadow:0 0 0 1px #ef3f4a}.month-col small{text-align:center;color:#607a94;font-size:8px}.chart-legend{display:flex;justify-content:center;gap:18px;padding:6px 12px 12px;font-size:8px;color:#5e758c}.chart-legend i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:5px}.blue-dot{background:#3d9bff}.red-dot{background:#ef3f4a}.green-dot{background:#17b765}.audit-donut-wrap{display:grid;grid-template-columns:180px 1fr;align-items:center;padding:18px;gap:6px}.audit-donut{--p:0;width:155px;height:155px;border-radius:50%;background:conic-gradient(#16b867 calc(var(--p)*1%),#f1a62a 0 88%,#ed3f4a 0);display:grid;place-items:center;position:relative}.audit-donut:after{content:"";position:absolute;width:103px;height:103px;border-radius:50%;background:#fff}.audit-donut>div{z-index:1;text-align:center}.audit-donut strong{display:block;font-size:26px;color:#163b66}.audit-donut small{font-size:9px;color:#6d839a}.donut-list{display:grid;gap:14px}.donut-list span{display:grid;grid-template-columns:10px 1fr auto;gap:7px;font-size:9px;color:#496782}.donut-list i{width:9px;height:9px;border-radius:2px}.donut-list i.ok{background:#17b765}.donut-list i.warn{background:#f0a72a}.donut-list i.bad{background:#ed3f4a}.donut-list b{color:#163b66}.field-bars{padding:14px;display:grid;gap:10px}.field-bars>div{display:grid;grid-template-columns:94px 1fr 28px;gap:8px;align-items:center;font-size:9px}.field-bars span{color:#254b72}.field-bars>div>i{height:12px;background:#eef2f6;border-radius:4px;overflow:hidden;display:flex}.field-bars>div>i b{background:#18b966;height:100%}.field-bars>div>i em{background:#ef4b54;height:100%}.field-bars strong{text-align:right;color:#22466c}
.audit-subtabs{display:flex;background:#fff;border:1px solid #dfe8f1;border-radius:10px 10px 0 0;overflow:auto}.audit-subtabs a{padding:12px 28px;color:#3f5f7f;font-size:10px;font-weight:800;border-right:1px solid #e7eef5;white-space:nowrap}.audit-subtabs a.active{background:#167df2;color:#fff}.audit-list-card{border-radius:0 0 10px 10px;margin-top:-10px}.audit-filter{display:grid;grid-template-columns:110px repeat(4,minmax(120px,.7fr)) minmax(220px,1.4fr) auto auto;gap:7px;padding:10px;border-bottom:1px solid #e7eef5}.audit-filter input,.audit-filter select{height:34px;font-size:9px;border:1px solid #d8e4ee;border-radius:6px;padding:0 9px;background:#fff}.audit-table{font-size:9px}.audit-table th{background:#eef4fa;color:#315274;font-size:8px;white-space:nowrap}.audit-table td{color:#2d5277;vertical-align:middle}.audit-status{display:inline-flex;padding:5px 9px;border-radius:6px;font-size:8px;font-weight:800;background:#eef3f7;color:#58718b;white-space:nowrap}.audit-status.completed,.audit-status.closed{background:#dff6e8;color:#0d9150}.audit-status.planned{background:#fff0ca;color:#cc7b00}.audit-status.open,.audit-status.in_progress{background:#deefff;color:#1578da}.audit-status.overdue,.audit-status.rejected{background:#ffe1e4;color:#cf2e3b}.upcoming-list,.top-finding-list,.action-mini-list{display:grid;padding:6px 12px 12px}.upcoming-list>div{display:grid;grid-template-columns:52px 1fr auto;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid #edf2f6}.upcoming-list time{font-weight:900;color:#1378e8;background:#eaf4ff;border-radius:7px;padding:8px 5px;text-align:center}.upcoming-list b,.top-finding-list span,.action-mini-list b{font-size:9px;color:#24496e}.upcoming-list small,.action-mini-list small{display:block;font-size:8px;color:#71869d;margin-top:2px}.upcoming-list em,.action-mini-list em{font-style:normal;font-size:8px;padding:5px 7px;border-radius:5px;background:#fff0cf;color:#c77a00}.top-finding-list>div{display:grid;grid-template-columns:24px 1fr 28px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #edf2f6}.top-finding-list>div>b{width:20px;height:20px;border-radius:50%;background:#eaf4ff;color:#1478ed;display:grid;place-items:center}.top-finding-list strong{text-align:right;color:#173d68}.action-mini-list>div{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #edf2f6}.action-mini-list em.danger{background:#ffe1e4;color:#ce2f3d}.actions form{display:inline-flex}
.execute-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px}.execute-grid article{border:1px solid #dfe8f1;border-radius:9px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:10px}.execute-grid article>div:first-child{grid-column:1/-1}.execute-grid h3{margin:8px 0 4px;color:#183d67;font-size:13px}.execute-grid p{font-size:9px;color:#71869d;margin:0}.execute-progress{text-align:right}.execute-progress b{font-size:18px;color:#1678e8}.execute-progress small{display:block;font-size:8px;color:#7b8fa4}.execute-grid .btn{align-self:end}.workflow-strip{margin:12px;display:flex;align-items:center;justify-content:space-around;border:1px solid #dce6ef;border-radius:9px;padding:15px}.workflow-strip span{display:grid;place-items:center;gap:4px;color:#1678e8;font-size:18px}.workflow-strip span b{font-size:9px;color:#284d72}.workflow-strip i{color:#95a8bb;font-style:normal}.report-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}.report-choice a{border:1px solid #dfe8f1;border-radius:9px;padding:15px;display:grid;grid-template-columns:44px 1fr;gap:3px 10px}.report-choice i{grid-row:1/3;width:42px;height:42px;border-radius:9px;background:#e9f4ff;color:#1478ed;display:grid;place-items:center;font-style:normal;font-weight:900}.report-choice b{font-size:11px;color:#23486e}.report-choice small{font-size:8px;color:#74899f}.template-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px}.template-grid article{border:1px solid #dfe8f1;border-radius:9px;padding:12px}.template-grid article>span{font-size:8px;background:#eaf4ff;color:#1478ed;padding:4px 6px;border-radius:5px;font-weight:800}.template-grid h3{font-size:12px;color:#183e69;margin:9px 0 3px}.template-grid p,.template-grid small{display:block;font-size:8px;color:#71869c;margin:3px 0}.template-grid strong{font-size:9px;color:#16935a}.template-grid .actions{margin-top:10px;display:flex;gap:5px;flex-wrap:wrap}
.audit-form-card .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-form-card .span-2{grid-column:span 2}.audit-form-card .span-3{grid-column:1/-1}.manual-checklist{border-top:1px solid #e6edf4;margin-top:14px;padding-top:12px}.manual-checklist h3{font-size:12px;color:#24486d}.manual-checklist h3 small{font-size:8px;color:#71869d}.manual-checklist>div{display:grid;grid-template-columns:220px 1fr;gap:7px;margin-top:6px}.manual-checklist input{height:34px}.existing-template-items{margin-top:15px;border-top:1px solid #e7edf4;padding-top:12px}.existing-template-items h3{font-size:12px;color:#24496e}.existing-template-items>div{display:grid;grid-template-columns:30px 150px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid #edf2f6}.existing-template-items b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eaf4ff;color:#1478ed}.existing-template-items span{font-size:9px;color:#688099}.existing-template-items p{font-size:9px;color:#24486a;margin:0}
.inspection-exec-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.inspection-exec-head h1{font-size:21px;color:#0d3563;margin:5px 0}.inspection-exec-head p{font-size:10px;color:#688097;margin:0}.exec-progress{margin:10px 0;background:#fff;border:1px solid #dfe8f1;border-radius:10px;padding:12px;display:grid;grid-template-columns:140px 1fr 45px;gap:12px;align-items:center}.exec-progress strong{font-size:20px;color:#1478ed}.exec-progress span{display:block;font-size:8px;color:#72879e}.exec-progress>i{height:9px;background:#edf2f6;border-radius:99px;overflow:hidden}.exec-progress>i b{display:block;height:100%;background:linear-gradient(90deg,#167df2,#18b765)}.exec-progress em{font-style:normal;font-weight:900;color:#19446e}.checklist-exec-form{display:grid;gap:10px;padding-bottom:74px}.check-item{background:#fff;border:1px solid #dfe8f1;border-left:5px solid #9fb1c2;border-radius:10px;padding:12px;box-shadow:0 4px 16px rgba(21,62,104,.04)}.check-item.pass{border-left-color:#18b766}.check-item.fail{border-left-color:#ed4050}.check-item.na{border-left-color:#7d91a6}.check-item header{display:grid;grid-template-columns:140px 1fr;gap:10px;align-items:center}.check-item header>div{display:flex;align-items:center;gap:7px}.check-item header>div b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eaf4ff;color:#1478ed}.check-item header>div span{font-size:9px;color:#73889f}.check-item header>strong{font-size:12px;color:#153d68}.result-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}.result-picker label input{display:none}.result-picker label span{display:block;padding:9px;border:1px solid #dce6ef;border-radius:7px;text-align:center;font-size:9px;font-weight:800;color:#54708c;cursor:pointer}.result-picker label.pass input:checked+span{background:#dff7e9;color:#0f9452;border-color:#98ddb7}.result-picker label.fail input:checked+span{background:#ffe0e4;color:#ce2f3d;border-color:#f4a5ae}.result-picker label.na input:checked+span{background:#edf1f5;color:#566c82}.result-picker label.pending input:checked+span{background:#fff1ce;color:#cb7900;border-color:#f5d185}.check-notes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-notes label{font-size:8px;font-weight:700;color:#58728d}.check-notes textarea{width:100%;margin-top:4px;font-size:9px}.evidence-strip{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.evidence-strip>a{font-size:8px;color:#1478ed;background:#eaf4ff;border-radius:5px;padding:5px 7px}.evidence-strip input{height:30px;font-size:8px}.upload-inline{font-size:8px;font-weight:800;color:#1478ed;border:1px dashed #9cc6ee;border-radius:6px;padding:6px;cursor:pointer}.upload-inline input{display:none}.finding-inline{margin-top:8px;border-top:1px dashed #dbe6ef;padding-top:7px}.finding-inline summary{font-size:8px;font-weight:800;color:#b96800;cursor:pointer}.finding-inline>div{display:grid;grid-template-columns:1fr 150px 1fr 150px;gap:7px;margin-top:7px;align-items:center}.finding-inline input,.finding-inline select{height:31px;font-size:8px}.check-item footer{margin-top:8px;font-size:7px;color:#8a9bab}.sticky-exec-actions{position:fixed;left:calc(var(--sidebar-w,260px) + 18px);right:20px;bottom:12px;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid #dbe6ef;border-radius:10px;padding:9px;display:flex;justify-content:flex-end;gap:7px;box-shadow:0 9px 30px rgba(20,62,100,.16)}.inspection-detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);gap:10px;margin-top:10px}.inspection-detail-grid main,.inspection-detail-grid aside{display:grid;gap:10px;align-content:start}.detail-checklist{padding:8px 12px;display:grid}.detail-checklist>div{display:grid;grid-template-columns:28px 1fr 70px;gap:9px;align-items:start;padding:9px 0;border-bottom:1px solid #edf2f6}.result-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:#edf2f6;color:#61778e}.result-dot.pass{background:#dff7e9;color:#0e9452}.result-dot.fail{background:#ffe0e4;color:#ce2f3d}.detail-checklist section b{font-size:9px;color:#23496f}.detail-checklist section small{display:block;font-size:8px;color:#72879e;margin-top:3px}.detail-checklist section p{margin:4px 0 0}.detail-checklist section p a{font-size:8px;color:#1478ed}.detail-checklist>div>em{font-style:normal;font-size:8px;text-transform:uppercase;text-align:right}.summary-side dl{padding:4px 13px 13px;margin:0}.summary-side dl div{display:grid;grid-template-columns:105px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid #edf2f6}.summary-side dt{font-size:8px;color:#71869c}.summary-side dd{font-size:9px;color:#24486e;font-weight:700;margin:0}.danger-zone{border-color:#f3c8cc}.danger-zone form{padding:12px}.danger-zone p{font-size:8px;color:#7b8997}
@media(max-width:1450px){.audit-kpis{grid-template-columns:repeat(3,1fr)}.audit-grid.top{grid-template-columns:1fr 1fr}.audit-grid.top>.audit-card:last-child{grid-column:1/-1}.audit-grid.bottom{grid-template-columns:1fr 1fr}.audit-grid.bottom>.audit-card:last-child{grid-column:1/-1}.audit-filter{grid-template-columns:repeat(4,minmax(120px,1fr));}.audit-filter input{grid-column:span 2}.template-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1050px){.audit-grid.top,.audit-grid.bottom,.audit-grid.reports,.inspection-detail-grid{grid-template-columns:1fr}.audit-grid.top>.audit-card:last-child,.audit-grid.bottom>.audit-card:last-child{grid-column:auto}.execute-grid{grid-template-columns:1fr 1fr}.template-grid{grid-template-columns:1fr 1fr}.audit-form-card .form-grid.three{grid-template-columns:1fr 1fr}.audit-form-card .span-3{grid-column:1/-1}.sticky-exec-actions{left:18px}.finding-inline>div{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.audit-top-tabs{padding:5px;gap:4px}.audit-top-tabs>a:not(.btn){padding:9px 12px;border:0;border-radius:6px}.audit-tab-spacer,.audit-help{display:none}.audit-kpis{grid-template-columns:1fr 1fr}.audit-grid.top,.audit-grid.bottom{grid-template-columns:1fr}.audit-filter{display:flex;overflow:auto}.audit-filter>*{min-width:130px}.audit-filter input{min-width:230px}.audit-donut-wrap{grid-template-columns:145px 1fr}.audit-donut{width:130px;height:130px}.audit-donut:after{width:86px;height:86px}.execute-grid,.template-grid{grid-template-columns:1fr}.audit-form-card .form-grid.three{grid-template-columns:1fr}.audit-form-card .span-2,.audit-form-card .span-3{grid-column:auto}.manual-checklist>div{grid-template-columns:1fr}.inspection-exec-head{display:grid}.result-picker{grid-template-columns:1fr 1fr}.check-notes{grid-template-columns:1fr}.check-item header{grid-template-columns:1fr}.finding-inline>div{grid-template-columns:1fr}.exec-progress{grid-template-columns:110px 1fr 38px}.sticky-exec-actions{bottom:6px;left:6px;right:6px}.sticky-exec-actions .btn{padding:8px 9px}.audit-table{min-width:900px}}
@media(max-width:500px){.audit-kpis{grid-template-columns:1fr}.audit-kpi{min-height:90px}.audit-trend-chart{height:175px;padding-left:7px;padding-right:7px}.audit-donut-wrap{grid-template-columns:1fr;justify-items:center}.donut-list{width:100%}.result-picker{grid-template-columns:1fr 1fr}.evidence-strip input[name=caption]{width:100%}.report-choice{grid-template-columns:1fr}.template-grid{grid-template-columns:1fr}}
.finding-source-link{display:block;margin-top:4px;font-size:8px;font-weight:800;color:#1478ed}

/* V2.7.1 - Interactive Inspection/Audit detail + Finding verification */
.audit-detail-hero{padding:14px 16px;display:flex;justify-content:space-between;gap:16px;align-items:center;background:linear-gradient(110deg,#eef7ff,#fff)}
.audit-detail-titleline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.audit-detail-titleline h1{font-size:18px;margin:0;color:#123d6c}.audit-detail-hero p{font-size:9px;color:#6d8298;margin:6px 0}.audit-detail-chips{display:flex;gap:6px;flex-wrap:wrap}.audit-detail-chips span{font-size:8px;background:#eaf4ff;color:#245d96;padding:5px 7px;border-radius:6px}.audit-detail-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0}.audit-detail-kpis article{padding:13px 15px;min-height:94px}.audit-detail-kpis span{font-size:8px;color:#68819a}.audit-detail-kpis strong{display:block;font-size:24px;color:#163e6c;margin:5px 0}.audit-detail-kpis small{font-size:8px;color:#7690a8}.audit-detail-kpis .good strong{color:#0b9e60}.audit-detail-kpis .bad strong{color:#df3545}.audit-detail-kpis .warn strong{color:#e28c10}.audit-mini-progress{height:7px;background:#edf2f6;border-radius:50px;overflow:hidden}.audit-mini-progress i{display:block;height:100%;background:#17b875;border-radius:50px}
.audit-detail-layout{display:grid;grid-template-columns:minmax(0,1.78fr) minmax(310px,.72fr);gap:10px}.audit-detail-main,.audit-detail-side{min-width:0}.audit-detail-side{display:grid;gap:10px;align-content:start}.audit-detail-tabs{display:flex;gap:5px;border-bottom:1px solid #e5edf5;padding:8px 9px 0;overflow:auto}.audit-detail-tabs button{border:0;background:#f2f7fc;color:#355b7d;padding:9px 12px;border-radius:7px 7px 0 0;font-size:9px;font-weight:800;cursor:pointer;white-space:nowrap}.audit-detail-tabs button.active{background:#0a73ee;color:#fff}.audit-detail-tabs button b{background:rgba(255,255,255,.25);border-radius:8px;padding:1px 5px;margin-left:4px}.audit-detail-panel{display:none;padding:11px}.audit-detail-panel.active{display:block}.audit-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.audit-panel-head h2{font-size:13px;color:#173e68;margin:0}.audit-panel-head p{font-size:8px;color:#768a9f;margin:3px 0 0}.audit-inline-checklist{display:grid;gap:9px}.audit-inline-item{border:1px solid #e1e9f2;border-left:4px solid #a8b8c7;border-radius:8px;padding:10px}.audit-inline-item.pass{border-left-color:#13ae68}.audit-inline-item.fail{border-left-color:#ed4051}.audit-inline-item.na{border-left-color:#8396aa}.audit-inline-item header{display:grid;grid-template-columns:125px 1fr 78px;gap:8px;align-items:center}.audit-inline-item header>div{display:flex;gap:6px;align-items:center}.audit-inline-item header>div b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e9f4ff;color:#0b73e8}.audit-inline-item header>div span{font-size:8px;color:#70859a}.audit-inline-item header>strong{font-size:10px;color:#1d456d}.audit-inline-item header>em{font-style:normal;text-align:center;font-size:8px;border-radius:6px;padding:5px;background:#edf2f6;color:#5f7488}.audit-inline-item header>em.pass{background:#def7e9;color:#078f50}.audit-inline-item header>em.fail{background:#ffe0e4;color:#c9313d}.audit-inline-item header>em.na{background:#edf1f5}.result-picker.compact{margin:9px 0}.audit-evidence-row{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(130px,.55fr) auto;gap:6px;align-items:center;margin-top:8px}.audit-evidence-files{display:flex;gap:5px;flex-wrap:wrap}.audit-evidence-files a{font-size:8px;color:#0871df;background:#eaf4ff;padding:5px 7px;border-radius:5px}.audit-evidence-files span{font-size:8px;color:#8496a8}.audit-item-alert{margin-top:8px;padding:7px;border-radius:6px;background:#fff3dd;color:#956006;font-size:8px}.audit-inline-item footer{font-size:7px;color:#8194a8;margin-top:7px}.audit-detail-savebar{position:sticky;bottom:8px;z-index:5;display:flex;justify-content:flex-end;align-items:center;gap:7px;margin-top:8px;padding:8px;background:rgba(255,255,255,.95);border:1px solid #dfe8f1;border-radius:8px;box-shadow:0 7px 20px rgba(23,61,100,.12)}.audit-detail-savebar span{margin-right:auto;font-size:8px;color:#6d8195}
.finding-workflow-legend{display:flex;gap:7px;align-items:center;justify-content:center;flex-wrap:wrap;padding:9px;background:#f5f9fd;border-radius:8px;margin-bottom:10px}.finding-workflow-legend span{font-size:8px;font-weight:800;color:#1b5a92}.finding-workflow-legend i{font-style:normal;color:#8aa3ba}.audit-finding-card{border:1px solid #dfe8f1;border-left:4px solid #f0a12d;border-radius:9px;padding:11px;margin-bottom:10px;background:#fff}.audit-finding-card:target{box-shadow:0 0 0 3px #d6eaff}.finding-head{display:flex;justify-content:space-between;gap:10px}.finding-head h3{font-size:11px;color:#163f6b;margin:5px 0}.finding-head p{font-size:8px;color:#607892;margin:0;line-height:1.45}.finding-code{font-size:8px;font-weight:900;color:#24527e}.finding-meta{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0;font-size:8px;color:#657d95}.finding-meta a{color:#0871df;font-weight:700}.finding-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.finding-photo-grid>section{border:1px solid #e5edf4;border-radius:8px;padding:8px}.finding-photo-grid header{display:flex;justify-content:space-between;gap:8px;font-size:8px;color:#315879}.finding-photo-grid header span{color:#8295a8}.finding-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:7px 0}.finding-thumb{min-height:75px;background:#f2f6fa;border-radius:7px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column}.finding-thumb img{width:100%;height:62px;object-fit:cover}.finding-thumb>span{height:62px;display:grid;place-items:center;font-weight:900;color:#d04c4c}.finding-thumb small{font-size:6px;color:#55708a;padding:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.finding-thumb.after{outline:1px solid #caeedc}.empty-photo{grid-column:1/-1;min-height:76px;border:1px dashed #cad8e5;border-radius:7px;display:grid;place-items:center;font-size:8px;color:#8395a7}.finding-upload{display:grid;grid-template-columns:1.2fr 1fr auto;gap:5px}.finding-upload input{font-size:7px;min-width:0}.finding-actions-block{margin-top:9px;padding-top:8px;border-top:1px solid #edf2f6}.finding-actions-block h4{margin:0;font-size:9px;color:#2a5177}.finding-action-row{display:grid;grid-template-columns:1fr 110px 160px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #edf2f6}.finding-action-row b{font-size:8px;color:#1b4c79}.finding-action-row p{font-size:8px;color:#405e7b;margin:2px 0}.finding-action-row small{font-size:7px;color:#8092a5}.finding-action-submit{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:6px;padding:8px;background:#f4f9ff;border-radius:7px}.finding-action-submit textarea{min-height:45px;font-size:8px}.finding-action-submit input{font-size:8px}.finding-verification-box{display:grid;grid-template-columns:1fr minmax(250px,.9fr);gap:10px;align-items:center;margin-top:10px;padding:9px;border-radius:8px;background:#fff7e8;border:1px solid #f6ddb0}.finding-verification-box.pending_verification{background:#eef6ff;border-color:#cce2fa}.finding-verification-box.closed{background:#e9f9f0;border-color:#bee9d1}.finding-verification-box b{font-size:9px;color:#214e76}.finding-verification-box p{font-size:8px;color:#697f94;margin:4px 0}.finding-verification-box form{display:grid;gap:6px}.finding-verification-box textarea{min-height:50px;font-size:8px}.verification-reject{font-size:8px;color:#b13540;background:#ffe5e7;padding:6px;border-radius:5px;margin-top:5px}.quick-finding-card form{padding:10px;display:grid;gap:7px}.quick-finding-card label{font-size:8px;font-weight:700;color:#4d6984}.quick-finding-card input,.quick-finding-card select,.quick-finding-card textarea{width:100%;margin-top:3px;font-size:8px}.fields-2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.btn.full{width:100%}.audit-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px}.audit-summary-grid div{background:#f4f8fc;border-radius:7px;padding:8px}.audit-summary-grid span{display:block;font-size:7px;color:#71879c}.audit-summary-grid b{font-size:16px;color:#163e68}.audit-summary-card>p{font-size:7px;color:#72869a;padding:0 10px}.audit-warning{margin:8px 10px 10px;padding:8px;background:#fff4e4;color:#99540e;border-radius:6px;font-size:8px}.audit-status.pending_verification,.audit-status.verification{background:#e7f1ff;color:#176ac1}.audit-status.open{background:#fff0d7;color:#b56b00}.audit-status.in_progress{background:#e9f4ff;color:#1473d4}.audit-status.closed{background:#dff7e9;color:#0e9151}.btn:disabled{opacity:.45;cursor:not-allowed}
.template-source-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.template-source-actions a{font-size:7px}
@media(max-width:1200px){.audit-detail-layout{grid-template-columns:1fr}.audit-detail-side{grid-template-columns:1fr 1fr}.quick-finding-card{grid-row:span 2}.audit-inline-item header{grid-template-columns:110px 1fr 75px}}
@media(max-width:820px){.audit-detail-hero{display:grid}.audit-detail-kpis{grid-template-columns:1fr 1fr}.audit-detail-side{grid-template-columns:1fr}.finding-photo-grid{grid-template-columns:1fr}.finding-action-row{grid-template-columns:1fr}.finding-action-submit{grid-template-columns:1fr}.finding-verification-box{grid-template-columns:1fr}.audit-evidence-row{grid-template-columns:1fr 1fr}.audit-inline-item header{grid-template-columns:1fr}.fields-2{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.audit-detail-tabs,.quick-finding-card,.danger-zone,.audit-detail-savebar,.finding-upload,.finding-action-submit,.audit-detail-hero .actions{display:none!important}.main-content{margin:0!important}.audit-detail-layout{grid-template-columns:1fr}.audit-detail-panel{display:block!important}.audit-detail-side{grid-template-columns:1fr}.audit-card{box-shadow:none}.audit-finding-card{break-inside:avoid}}

/* =========================================================
   V2.8.0 - JSA / JHA Management Center
   ========================================================= */
.jsa-topnav{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid #dce7f2;border-radius:10px;padding:5px;margin-bottom:10px;overflow:auto;box-shadow:0 3px 14px rgba(25,70,115,.04)}
.jsa-topnav>a{padding:10px 18px;border-radius:7px;color:#123c69;font-size:10px;font-weight:800;white-space:nowrap;text-decoration:none}
.jsa-topnav>a.active{background:#0876ef;color:#fff}.jsa-topnav>a:hover{background:#eaf4ff}.jsa-topnav>a.active:hover{background:#0876ef}.jsa-version{margin-left:auto;background:#edf6ff;color:#1876d7;padding:7px 12px;border-radius:16px;font-size:9px;font-weight:900}.jsa-topnav .jsa-new-btn{background:#0876ef;color:#fff;margin-left:4px}
.jsa-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:10px}.jsa-kpi{min-height:105px;background:#fff;border:1px solid #dce7f2;border-radius:11px;padding:14px;display:flex;align-items:flex-start;gap:12px;box-shadow:0 4px 16px rgba(29,68,107,.04);position:relative;overflow:hidden}.jsa-kpi:after{content:"";position:absolute;width:65px;height:65px;border-radius:50%;right:-26px;bottom:-27px;background:#f5f9fd}.jsa-kpi>i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-style:normal;font-size:18px;font-weight:900;box-shadow:0 4px 10px rgba(30,80,130,.15)}.jsa-kpi.blue>i{background:#1387f2}.jsa-kpi.green>i{background:#19b96b}.jsa-kpi.amber>i{background:#f0a321}.jsa-kpi.orange>i{background:#ff7c17}.jsa-kpi.red>i{background:#ed3442}.jsa-kpi.purple>i{background:#8049f0}.jsa-kpi small{display:block;font-size:8px;color:#31577f;font-weight:800}.jsa-kpi strong{display:block;color:#0b3566;font-size:23px;line-height:1.15;margin:6px 0 4px}.jsa-kpi strong span{font-size:11px}.jsa-kpi em{font-style:normal;font-size:7px;color:#7990a7}
.jsa-filterbar{display:grid;grid-template-columns:105px 145px 155px 170px 145px minmax(240px,1fr) auto;gap:7px;background:#fff;border:1px solid #dce7f2;border-radius:10px;padding:9px;margin-bottom:10px;align-items:end}.jsa-filterbar label{font-size:8px;font-weight:800;color:#37618a}.jsa-filterbar select,.jsa-filterbar input{width:100%;height:32px;margin-top:4px;font-size:9px}.jsa-search{display:flex}.jsa-search input{margin-top:0;border-radius:7px 0 0 7px}.jsa-search button{width:35px;border:1px solid #cbdbea;border-left:0;border-radius:0 7px 7px 0;background:#fff;color:#1576db;cursor:pointer}
.jsa-table-card,.jsa-card{background:#fff;border:1px solid #dce7f2;border-radius:10px;box-shadow:0 4px 16px rgba(30,65,100,.04);overflow:hidden}.jsa-table-card{margin-bottom:10px}.jsa-table-actions,.jsa-card-head{min-height:44px;padding:9px 12px;border-bottom:1px solid #e6edf5;display:flex;align-items:center;justify-content:space-between;gap:10px}.jsa-table-actions>b,.jsa-card-head h2{margin:0;color:#123d69;font-size:11px}.jsa-table-actions>div{display:flex;gap:6px}.jsa-table{font-size:8px}.jsa-table th{font-size:7px;white-space:nowrap}.jsa-table td{vertical-align:middle}.jsa-table td b{color:#153f6b}.jsa-link-pill{display:inline-flex;padding:4px 7px;border-radius:6px;font-weight:800;font-size:7px}.jsa-link-pill.blue{background:#e7f2ff;color:#1477dc}.jsa-link-pill.green{background:#e1f7e9;color:#129351}
.jsa-state{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:6px;font-size:7px;font-weight:900;white-space:nowrap;background:#eef2f6;color:#587087}.jsa-state.draft{background:#eef2f6;color:#64788c}.jsa-state.supervisor_review,.jsa-state.hse_review,.jsa-state.approval_pending{background:#fff0cf;color:#bf7300}.jsa-state.approved,.jsa-state.active{background:#ddf7e9;color:#109052}.jsa-state.needs_update{background:#fff0d7;color:#d66b00}.jsa-state.closed{background:#e8edf2;color:#647284}
.jsa-dashboard-grid{display:grid;grid-template-columns:1.35fr .92fr 1fr;gap:10px;margin-bottom:10px}.jsa-bottom-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:10px;margin-bottom:12px}.jsa-card-head h2{font-size:11px}.jsa-card-head p{margin:3px 0 0;font-size:7px;color:#71879e}.jsa-card-head>span,.jsa-card-head>a{font-size:8px;color:#1477dc;font-weight:800}.jsa-month-chart{height:175px;display:grid;grid-template-columns:repeat(12,1fr);gap:5px;padding:15px 14px 4px;align-items:end;background:repeating-linear-gradient(to top,#fff 0,#fff 34px,#eef3f8 35px)}.jsa-month-col{display:grid;grid-template-rows:1fr 18px;height:100%;gap:3px}.jsa-bars{display:flex;align-items:flex-end;justify-content:center;gap:2px;border-bottom:1px solid #ccd9e6}.jsa-bars i{display:block;width:20%;min-height:2px;border-radius:3px 3px 0 0}.jsa-bars i.ok,.jsa-legend i.ok{background:#22b86f}.jsa-bars i.pending,.jsa-legend i.pending{background:#f3b02b}.jsa-bars i.update,.jsa-legend i.update{background:#ff781c}.jsa-bars i.overdue,.jsa-legend i.overdue{background:#ed3948}.jsa-month-col small{text-align:center;font-size:7px;color:#617b95}.jsa-legend{display:flex;justify-content:center;gap:13px;padding:8px;font-size:7px;color:#526e88}.jsa-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px}.jsa-type-list{padding:13px;display:grid;gap:10px}.jsa-type-list>div{display:grid;grid-template-columns:100px 1fr 62px;gap:8px;align-items:center;font-size:8px}.jsa-type-list>div>span{color:#315677}.jsa-type-list i{height:10px;border-radius:6px;background:#eef3f7;overflow:hidden}.jsa-type-list i b{display:block;height:100%;background:#2786ed;border-radius:6px}.jsa-type-list strong{text-align:right;color:#173e67}.jsa-type-list strong small{font-weight:500;color:#7b90a4}.mini-table{font-size:8px}.mini-table th{font-size:7px;white-space:nowrap}.jsa-days{padding:4px 7px;border-radius:5px;background:#e9f6ee;color:#13884e;font-weight:800}.jsa-days.warn{background:#fff0cc;color:#c57800}.jsa-days.bad{background:#ffe2e5;color:#cf2e3e}
.jsa-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.jsa-template-card{background:#fff;border:1px solid #dce7f2;border-radius:10px;padding:14px;display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:start}.jsa-template-icon{width:45px;height:45px;border-radius:10px;background:#e8f3ff;color:#1477dc;display:grid;place-items:center;font-size:22px}.jsa-template-code{font-size:7px;color:#6d849b;font-weight:800}.jsa-template-card h3{margin:3px 0 5px;color:#143d68;font-size:12px}.jsa-template-card p{font-size:8px;line-height:1.5;color:#647e98;margin:0 0 8px}.jsa-template-note{margin-top:10px}.jsa-template-note h2{font-size:12px}.jsa-template-note p{font-size:9px;color:#55718d;line-height:1.6}
.jsa-form-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:9px}.jsa-form-head h1{margin:4px 0;font-size:19px;color:#113961}.jsa-form-head p{font-size:8px;color:#698099;margin:0}.jsa-form-links{display:flex;gap:5px;flex-wrap:wrap}.jsa-form-links a{font-size:8px;padding:7px 9px;border:1px solid #d9e5f0;border-radius:6px;background:#fff;color:#225985;font-weight:800}.jsa-form-section{margin-bottom:10px;padding:0;scroll-margin-top:80px}.jsa-section-title{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #e4ecf4}.jsa-section-title>span{width:29px;height:29px;border-radius:50%;background:#0876ef;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:900}.jsa-section-title>div{flex:1}.jsa-section-title h2{margin:0;color:#133e69;font-size:12px}.jsa-section-title p{margin:3px 0 0;color:#70869c;font-size:8px}.jsa-info-grid{padding:13px;grid-template-columns:repeat(4,minmax(0,1fr))}.jsa-info-grid label{font-size:8px}.jsa-info-grid input,.jsa-info-grid select,.jsa-info-grid textarea{font-size:9px}.jsa-step-help{margin:10px 13px;padding:9px 11px;background:#eef7ff;border-radius:7px;font-size:8px;color:#38617f}.jsa-step-card{margin:0 13px 10px;border:1px solid #dce7f2;border-radius:9px;overflow:hidden;background:#fbfdff}.jsa-step-head{display:flex;justify-content:space-between;align-items:center;padding:8px 11px;background:#edf5fd;color:#174976;font-size:9px}.jsa-step-grid{display:grid;grid-template-columns:1.15fr 1.15fr 1fr 1fr;gap:8px;padding:11px}.jsa-step-grid label{font-size:8px;font-weight:700;color:#41627f}.jsa-step-grid input,.jsa-step-grid textarea,.jsa-step-grid select{width:100%;font-size:8px;margin-top:3px}.jsa-step-grid .span-2{grid-column:span 2}.jsa-risk-pick{border-radius:8px;padding:7px;display:grid;grid-template-columns:1fr 45px 45px 40px;align-items:end;gap:5px}.jsa-risk-pick.initial{background:#fff4e5;border:1px solid #f4dcb7}.jsa-risk-pick.residual{background:#eaf8f0;border:1px solid #ccebd9}.jsa-risk-pick>strong{align-self:center;font-size:8px;color:#3d5e7a}.jsa-risk-pick label{font-size:7px}.jsa-risk-pick select{height:29px}.risk-live,.risk-big{display:inline-grid;place-items:center;font-weight:900;border-radius:6px}.risk-live{height:29px;font-size:10px;background:#eef3f6;color:#557087}.risk-live.low,.risk-big.low{background:#dff7e8;color:#108b4d}.risk-live.medium,.risk-big.medium{background:#fff0c9;color:#b46b00}.risk-live.high,.risk-big.high{background:#ffe0cf;color:#d45417}.risk-live.critical,.risk-big.critical{background:#ffdfe3;color:#c82d3d}.risk-big{padding:5px 9px}
.jsa-matrix-layout{display:grid;grid-template-columns:minmax(380px,.9fr) 1.1fr;gap:14px;padding:13px}.jsa-matrix-layout h3{font-size:10px;color:#204b74}.jsa-matrix{display:grid;grid-template-columns:34px repeat(5,1fr);gap:3px;max-width:470px}.jsa-matrix b{font-size:7px;color:#56718a;display:grid;place-items:center}.jsa-matrix i{font-style:normal;min-height:35px;display:grid;place-items:center;border-radius:4px;font-size:8px;font-weight:900}.jsa-matrix i.low{background:#64d58f;color:#095c34}.jsa-matrix i.medium{background:#f3df60;color:#705e00}.jsa-matrix i.high{background:#ff9e59;color:#8d3500}.jsa-matrix i.critical{background:#f2555d;color:#fff}.jsa-risk-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-content:start}.jsa-risk-summary>div{border:1px solid #e1e9f1;border-radius:8px;padding:11px}.jsa-risk-summary small{font-size:8px;color:#64809a;display:block}.jsa-risk-summary strong{font-size:21px;margin:5px 0}.jsa-risk-summary p{font-size:8px;color:#75899d}.jsa-risk-rule{grid-column:1/-1;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.jsa-risk-rule b{font-size:8px;color:#43637d}
.jsa-condition-table{font-size:8px}.jsa-condition-table th{font-size:7px}.jsa-condition-table select,.jsa-condition-table input{font-size:8px;min-width:115px}.jsa-condition-warning{margin:10px 13px 13px;padding:9px 11px;border-radius:7px;background:#fff2da;color:#9d6300;font-size:8px}.jsa-approval-flow{display:grid;grid-template-columns:1fr 24px 1fr 24px 1fr 24px 1fr;gap:5px;align-items:center;padding:15px}.jsa-approval-flow>div{border:1px solid #dfe8f1;border-radius:8px;padding:10px;display:grid;grid-template-columns:30px 1fr;column-gap:8px}.jsa-approval-flow>div i{grid-row:1/3;width:28px;height:28px;border-radius:50%;background:#edf2f7;color:#65809a;display:grid;place-items:center;font-style:normal;font-weight:900}.jsa-approval-flow>div.done i{background:#1fba6c;color:#fff}.jsa-approval-flow b{font-size:8px;color:#244d74}.jsa-approval-flow span{font-size:7px;color:#6c849a;margin-top:2px}.jsa-approval-flow>em{text-align:center;color:#93a9ba;font-style:normal}.jsa-approval-note{margin:0 15px 15px;padding:9px;border-radius:7px;background:#eef6ff;color:#3a6387;font-size:8px}.jsa-sticky{z-index:30}
.jsa-detail-hero{background:linear-gradient(115deg,#eaf5ff,#fff);border:1px solid #dce8f3;border-radius:11px;padding:14px;display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:9px}.jsa-detail-hero h1{font-size:16px;margin:3px 0;color:#123b66}.jsa-detail-hero p{font-size:8px;color:#65809a}.jsa-detail-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.jsa-detail-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:9px}.jsa-detail-kpis>div{background:#fff;border:1px solid #dce7f2;border-radius:9px;padding:11px}.jsa-detail-kpis small{font-size:7px;color:#67819a;display:block}.jsa-detail-kpis strong{font-size:18px;color:#123c68;margin-top:5px}.jsa-detail-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,.62fr);gap:10px}.jsa-detail-layout>main{display:grid;gap:10px;align-content:start}.jsa-detail-side{display:grid;gap:10px;align-content:start;position:sticky;top:76px}.jsa-analysis-table{font-size:8px}.jsa-analysis-table th{font-size:7px}.jsa-analysis-table td{vertical-align:top}.jsa-condition-state{display:inline-flex;padding:4px 7px;border-radius:5px;font-size:7px;font-weight:900}.jsa-condition-state.pass{background:#dcf7e7;color:#108e50}.jsa-condition-state.fail{background:#ffe0e3;color:#cf2f3e}.jsa-condition-state.na{background:#e8edf2;color:#66798b}.jsa-condition-state.pending{background:#fff0cf;color:#b76c00}.jsa-workflow{padding:11px;display:grid;gap:3px}.jsa-workflow>div{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:8px;border-left:2px solid #e2eaf2}.jsa-workflow>div i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e9eff5;color:#607b96;font-size:8px;font-style:normal;font-weight:900}.jsa-workflow>div.done i{background:#1fba6c;color:#fff}.jsa-workflow>div.current i{background:#1479e8;color:#fff}.jsa-workflow b{display:block;font-size:8px;color:#234d73}.jsa-workflow span,.jsa-workflow small{display:block;font-size:7px;color:#72879b;margin-top:2px}.jsa-workflow-actions{padding:0 11px 11px;display:grid;gap:6px}.jsa-workflow-actions textarea{width:100%;font-size:8px;min-height:48px}.jsa-ready-card{padding:12px}.jsa-ready-card h2{font-size:10px;margin:0 0 5px}.jsa-ready-card p{font-size:8px;line-height:1.5;margin:0}.jsa-ready-card.ready{background:#eaf9f1;border-color:#c5ead5;color:#146c42}.jsa-ready-card.not-ready{background:#fff5e6;border-color:#f3ddb6;color:#8b5a0e}.jsa-revision-list{padding:9px;display:grid;gap:6px}.jsa-revision-list>div{padding:7px;border:1px solid #e5ecf3;border-radius:6px}.jsa-revision-list b{font-size:8px;color:#234d74}.jsa-revision-list span{display:block;font-size:7px;color:#516d87;margin-top:2px}.jsa-revision-list small{font-size:7px;color:#8798a8}.jsa-new-revision{padding:0 9px 9px;display:grid;gap:5px}.jsa-new-revision input{font-size:8px}
@media(max-width:1450px){.jsa-kpis{grid-template-columns:repeat(3,1fr)}.jsa-filterbar{grid-template-columns:repeat(4,1fr)}.jsa-dashboard-grid{grid-template-columns:1.2fr 1fr}.jsa-dashboard-grid>section:last-child{grid-column:1/-1}.jsa-info-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.jsa-dashboard-grid,.jsa-bottom-grid,.jsa-detail-layout{grid-template-columns:1fr}.jsa-detail-side{position:static}.jsa-step-grid{grid-template-columns:1fr 1fr}.jsa-matrix-layout{grid-template-columns:1fr}.jsa-approval-flow{grid-template-columns:1fr}.jsa-approval-flow>em{transform:rotate(90deg)}.jsa-info-grid{grid-template-columns:repeat(2,1fr)}.jsa-template-grid{grid-template-columns:1fr}}
@media(max-width:720px){.jsa-kpis{grid-template-columns:1fr 1fr}.jsa-filterbar{grid-template-columns:1fr 1fr}.jsa-step-grid,.jsa-info-grid{grid-template-columns:1fr}.jsa-step-grid .span-2,.jsa-info-grid .span-2{grid-column:auto}.jsa-risk-pick{grid-template-columns:1fr 42px 42px 36px}.jsa-detail-kpis{grid-template-columns:1fr 1fr}.jsa-detail-hero{display:block}.jsa-detail-actions{justify-content:flex-start;margin-top:9px}.jsa-form-head{display:block}.jsa-form-links{margin-top:8px}}
.jsa-image-current,.jsa-step-image-link{display:inline-flex;margin-top:5px;font-size:7px;font-weight:800;color:#1477dc;text-decoration:none}.jsa-step-image-link{display:block}
.jsa-matrix i.extreme,.risk-big.extreme{background:#f2555d;color:#fff}

/* V2.8.1 - QR / Gate scanner synchronized with legacy contractor QR */
.gate-page-head{margin-bottom:14px}.gate-head-badges{display:flex;gap:8px;flex-wrap:wrap}.chip.good{background:#e5f8ee;color:#087747;border-color:#bcead0}.gate-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.gate-kpi{display:flex;align-items:center;gap:13px;padding:15px 17px;min-height:92px}.gate-kpi-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:21px;font-weight:900;box-shadow:0 7px 18px rgba(28,74,126,.14)}.gate-kpi-icon.blue{background:#1685ef}.gate-kpi-icon.purple{background:#7b49ef}.gate-kpi-icon.green{background:#14b76c}.gate-kpi-icon.red{background:#ef4242}.gate-kpi small,.gate-kpi strong,.gate-kpi em{display:block}.gate-kpi small{color:var(--muted);font-weight:700}.gate-kpi strong{font-size:27px;margin-top:3px}.gate-kpi em{font-size:11px;color:var(--muted);font-style:normal}.gate-console-grid{display:grid;grid-template-columns:minmax(390px,.82fr) minmax(520px,1.18fr);gap:14px;margin-bottom:14px}.gate-scanner-card{padding:18px}.gate-scanner-title{align-items:flex-start}.gate-scanner-title h2{margin:0}.scanner-live{display:inline-flex;align-items:center;gap:6px;background:#e5f8ee;color:#087747;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800}.scanner-live i{width:8px;height:8px;background:#13b76b;border-radius:50%;box-shadow:0 0 0 4px rgba(19,183,107,.12)}.gate-scan-form{margin-top:12px}.gate-scan-form>input{font-size:18px;padding:15px;border:2px solid #b8cce3}.gate-mode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}.gate-mode{border:1px solid var(--line);border-radius:9px;padding:10px;display:grid;grid-template-columns:20px 1fr;column-gap:6px;cursor:pointer;background:#fbfdff}.gate-mode input{width:auto;grid-row:span 2;margin:3px 0 0}.gate-mode b{font-size:12px}.gate-mode small{font-size:10px;color:var(--muted)}.gate-mode.active{border-color:#6aa7f3;background:#eef6ff;box-shadow:0 0 0 2px rgba(38,120,233,.08)}.gate-submit{width:100%;padding:12px}.gate-hint{color:var(--muted);font-size:11px;line-height:1.5}.gate-scan-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.gate-scan-meta span{font-size:10px;background:#f2f6fa;border:1px solid var(--line);padding:5px 7px;border-radius:6px}.gate-inline-alert{margin:10px 0 0}.alert.warning{background:#fff5de;color:#8d6300}.gate-result-modern{padding:18px;min-height:395px}.gate-result-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.gate-person-modern{display:grid;grid-template-columns:122px 1fr;gap:16px;align-items:center;margin:15px 0}.gate-photo-wrap{width:122px;height:142px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#eaf1f8;display:grid;place-items:center}.gate-photo-wrap img{width:100%;height:100%;object-fit:cover}.gate-photo-fallback{width:100%;height:100%;border-radius:0;font-size:38px}.gate-person-info h2{margin:0 0 9px;font-size:24px}.gate-person-lines{display:grid;grid-template-columns:1fr 1fr;gap:7px 14px;font-size:12px;color:#40546c}.gate-check-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.gate-check-tile{border-radius:8px;padding:9px;border:1px solid var(--line);background:#f6f8fb}.gate-check-tile small,.gate-check-tile b{display:block}.gate-check-tile small{font-size:9px;color:var(--muted);margin-bottom:4px}.gate-check-tile b{font-size:11px}.gate-check-tile.ok{background:#eaf9f1;border-color:#cceedd;color:#0e7047}.gate-check-tile.bad{background:#fff0f0;border-color:#f4cccc;color:#a32f2f}.gate-check-tile.warn{background:#fff7e7;border-color:#f1dfb4;color:#8e6500}.gate-check-tile.neutral{background:#f2f6fa}.gate-reasons-modern{margin:11px 0}.gate-reason{padding:7px 9px;border-radius:7px;font-size:11px}.gate-reason.ok{background:#eaf9f1;color:#0f7249}.gate-reason.bad{background:#fff0f0;color:#a33030}.gate-reason.warn{background:#fff7e7;color:#8e6500}.gate-result-actions{display:flex;gap:8px;flex-wrap:wrap}.gate-empty-ready{height:100%;min-height:345px;display:grid;place-items:center;align-content:center;text-align:center;color:var(--muted)}.gate-empty-ready h2{color:var(--text);margin:10px 0 4px}.gate-empty-ready p{max-width:520px;line-height:1.6}.gate-ready-icon{font-size:52px;color:#1983ec}.gate-supported{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.gate-supported span{background:#edf5ff;color:#1764b5;padding:6px 9px;border-radius:7px;font-size:10px;font-weight:700}.gate-bottom-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:14px}.gate-inside-panel{padding:0}.gate-inside-panel .panel-head{padding:15px 16px;border-bottom:1px solid var(--line)}.gate-inside-count{width:38px;height:38px;border-radius:50%;background:#e7f3ff;color:#1467bb;display:grid;place-items:center;font-weight:900}.gate-inside-list{padding:8px 12px;max-height:360px;overflow:auto}.gate-inside-person{display:flex;align-items:center;gap:9px;padding:9px 2px;border-bottom:1px solid var(--line);color:var(--text)}.gate-inside-person img{width:38px;height:38px;border-radius:50%;object-fit:cover}.gate-inside-person div{min-width:0}.gate-inside-person b,.gate-inside-person small{display:block}.gate-inside-person small{font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-badge.verified{background:#e4f7ec;color:#12804f}.event-badge.blocked{background:#ffe7e7;color:#b23e3e}.event-badge.checkin{background:#e7f2ff;color:#1764b5}.event-badge.checkout{background:#f0eaff;color:#6742af}@media(max-width:1150px){.gate-console-grid,.gate-bottom-grid{grid-template-columns:1fr}.gate-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.gate-kpis{grid-template-columns:1fr 1fr}.gate-check-grid{grid-template-columns:1fr 1fr}.gate-person-modern{grid-template-columns:92px 1fr}.gate-photo-wrap{width:92px;height:112px}.gate-person-lines{grid-template-columns:1fr}.gate-mode-grid{grid-template-columns:1fr}}
.between{display:flex;align-items:center;justify-content:space-between;gap:12px}

/* V2.8.4 - Nhận diện logo Phương án 1 */
.brand-logo-img{width:42px;height:42px;border-radius:11px;object-fit:cover;box-shadow:0 4px 12px rgba(0,90,190,.24);flex:none}body.sidebar-mini .brand-logo-img{width:40px;height:40px}

/* HSE V2.9.0 - reusable Gemini AI form assistant */
.hse-ai-tool{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #bad8fb;background:linear-gradient(135deg,#f2f8ff,#fff);padding:11px 13px;border-radius:11px;margin:0 0 14px}.hse-ai-tool .hse-ai-copy{flex:1;min-width:220px}.hse-ai-tool .hse-ai-copy b{display:block;color:#0b4e97}.hse-ai-tool .hse-ai-copy small{display:block;color:#647b96;margin-top:3px;line-height:1.4}.hse-ai-form-btn{background:linear-gradient(135deg,#0879ef,#655cf5)!important;color:#fff!important;border:0!important;white-space:nowrap}.hse-ai-result{width:100%;border:1px solid #d9e8f8;border-radius:8px;background:#f8fbff;padding:9px 11px;font-size:12px;line-height:1.5}.hse-ai-result.good{border-color:#b9e8d0;background:#f1fbf6}.hse-ai-result.warn{border-color:#ffd99f;background:#fff9ef}.hse-ai-result.error{border-color:#ffc2c2;background:#fff4f4;color:#9d2525}.hse-ai-result ul{margin:5px 0 0 18px}.hse-ai-result small{display:block;color:#697e96;margin-top:5px}

.ai-coverage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ai-coverage-grid>div{border:1px solid #dce8f5;background:#f7faff;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:5px}.ai-coverage-grid b{color:#143c6b}.ai-coverage-grid span{color:#687f9b;font-size:12px;line-height:1.5}@media(max-width:760px){.ai-coverage-grid{grid-template-columns:1fr}}
.form-grid>.hse-ai-tool{grid-column:1/-1;margin-top:-2px}

/* V2.9.1 - Login brand identity (Option 1) */
.login-card-brand{width:min(500px,94vw);padding:34px 38px 30px}
.login-brand-lockup{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:18px}
.login-brand-logo{width:88px;height:88px;object-fit:cover;border-radius:22px;flex:0 0 auto;box-shadow:0 10px 26px rgba(10,94,190,.18)}
.login-brand-copy{min-width:0}
.login-card .login-brand-copy h1{text-align:left;margin:0;color:#0b2f5c;font-size:27px;line-height:1.12;letter-spacing:-.45px}
.login-brand-subtitle{margin-top:8px;color:#32689f;font-size:14px;font-weight:600;letter-spacing:.15px}
.login-brand-divider{height:1px;background:linear-gradient(90deg,transparent,#dce8f5 18%,#dce8f5 82%,transparent);margin:4px 0 15px}
.login-card>p.login-slogan{text-align:center;color:#2b649d;font-size:13px;font-weight:600;margin:0 0 22px}
.login-card>p.login-welcome{text-align:left;color:#536f8e;margin:0 0 18px;font-size:13px}
.login-card-brand .btn.primary{background:linear-gradient(135deg,#1298ff,#0965db);border-color:#0873e8;box-shadow:0 8px 18px rgba(9,111,240,.16)}
.login-card-brand .btn.primary:hover{filter:brightness(.98)}
.login-card-brand .login-note{margin-top:20px;color:#7990a8}
@media(max-width:520px){
  .login-card-brand{padding:28px 24px}
  .login-brand-lockup{gap:14px;justify-content:flex-start}
  .login-brand-logo{width:72px;height:72px;border-radius:18px}
  .login-card .login-brand-copy h1{font-size:22px}
  .login-brand-subtitle{font-size:12px}
}

/* V2.9.2 - fast employee browsing without list scroll reset */
.person-data-row{cursor:pointer}.person-data-row:hover{background:#f7fbff}.person-side-card{transition:opacity .12s ease}.person-side-card.person-side-loading{opacity:.62;pointer-events:none}.person-side-empty{min-height:455px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px;color:#7187a0}.person-side-empty-icon{width:66px;height:66px;border-radius:18px;display:grid;place-items:center;background:#eaf4ff;color:#1478ed;font-size:30px;margin-bottom:12px}.person-side-empty h3{margin:0 0 7px;color:#173d66;font-size:14px}.person-side-empty p{max-width:270px;margin:0;font-size:9px;line-height:1.55}

/* V2.9.5 - Dashboard management analysis scope */
.hero-filter form{width:390px;grid-template-columns:1fr 1fr;gap:9px 10px}.hero-filter form>label{display:block}.hero-filter-actions{grid-column:1/-1}.hero-filter input:disabled{background:#f3f7fb;color:#44627f;opacity:1}.analysis-scope-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 10px;padding:9px 12px;background:rgba(255,255,255,.94);border:1px solid #dce8f3;border-radius:10px;box-shadow:0 2px 10px rgba(29,73,116,.05)}.analysis-scope-main{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:#24496f;font-size:10px}.analysis-scope-main>b{font-size:10px;color:#0b3767}.scope-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#eef6ff;border:1px solid #d1e6fb;color:#1e5d99;font-weight:700}.scope-legend{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:9px;color:#617a96}.scope-legend span{display:flex;align-items:center;gap:4px}.scope-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.scope-dot.global{background:#7a8da4}.scope-dot.current{background:#1f91ee}.scope-dot.period{background:#7c55e8}.kpi-scope{display:inline-flex;align-items:center;margin:2px 0 1px;padding:2px 6px;border-radius:999px;font-size:7px!important;line-height:1.35;font-weight:800!important;letter-spacing:.15px}.scope-global{background:#eef2f6;color:#60738a!important}.scope-current{background:#eaf6ff;color:#1978be!important}.scope-period{background:#f0ebff;color:#6d45d5!important}.card-scope-tag{font-size:8px!important;font-weight:800!important;border-radius:999px;padding:3px 7px!important;white-space:nowrap}.card-scope-tag.global{background:#eef2f6;color:#60738a!important}.card-scope-tag.current{background:#eaf6ff;color:#1978be!important}.card-scope-tag.period{background:#f0ebff;color:#6d45d5!important}.design-card-head:has(.card-scope-tag){justify-content:flex-start}.design-card-head:has(.card-scope-tag) a{margin-left:auto}.design-kpi p{line-height:1.3}.dashboard-category .design-card-head .card-scope-tag{margin-left:auto}.today-card .design-card-head>span:last-child:empty{display:none}
@media(max-width:1050px){.analysis-scope-bar{align-items:flex-start;flex-direction:column}.scope-legend{white-space:normal;flex-wrap:wrap}.hero-filter form{width:360px}}
@media(max-width:620px){.hero-filter form{width:min(92vw,360px);grid-template-columns:1fr}.hero-filter-actions{grid-column:auto}.analysis-scope-main{align-items:flex-start}.scope-chip{white-space:normal}}

/* V3.0.4 - Contractor module navigation aligned with Training module */
.contractor-tabs{width:100%;margin-bottom:18px}
.contractor-tabs a{display:inline-flex;align-items:center;gap:6px}
@media(max-width:800px){.contractor-tabs{display:flex;width:100%}}

/* V3.0.5 - contextual Personnel/Contractor document navigation */
.section-nav{margin-bottom:14px}

/* V3.0.6: personnel workspace and title filters */
.people-filters.design-filterbar{display:flex;flex-wrap:wrap;align-items:center;overflow:visible}
.people-filters .search-input{flex:1 1 240px}.people-filters select{display:block!important;flex:1 1 125px;width:auto;min-width:120px}
.people-title-filter{position:relative;flex:1 1 150px;font-size:11px}.people-title-filter summary{cursor:pointer;border:1px solid #dce6f0;border-radius:6px;padding:8px;background:white}
.people-title-options{position:absolute;top:100%;left:0;width:280px;max-width:85vw;max-height:330px;overflow:auto;z-index:60;background:white;border:1px solid #dce6f0;box-shadow:0 10px 30px #1234;padding:10px;border-radius:8px}
.people-title-options label{display:flex;align-items:center;gap:7px;padding:6px}.people-title-options label[hidden]{display:none}.people-title-options input[type=checkbox]{width:15px;height:15px;flex:none}
.people-filter-count{padding:6px 10px;font-size:11px;color:#56718d}.people-filter-count a{margin-left:14px;color:#0877e8}
.people-expanded-body{overflow:hidden}.people-layout.people-expanded{position:fixed;inset:0;z-index:1200;background:#f3f7fc;padding:12px;display:grid;grid-template-columns:minmax(0,1fr);height:100dvh;box-sizing:border-box}
.people-expanded .people-left{height:100%;min-height:0}.people-expanded .people-list-card{height:100%;margin:0;display:flex;flex-direction:column;min-height:0}
.people-expanded .people-charts{display:none}.people-expanded #peopleBulkForm{flex:1;display:flex;flex-direction:column;min-height:0}.people-expanded .modern-people-table{flex:1;min-height:0;max-height:none;overflow:auto}
.people-expanded .people-selection-bar{flex-shrink:0;height:auto;min-height:34px;flex-wrap:wrap}.people-expanded .people-list-head{height:auto;min-height:46px;flex-wrap:wrap;gap:8px;flex-shrink:0}
.people-expanded .person-side-card{display:none}.people-expanded.people-panel-open{grid-template-columns:minmax(0,1fr) 355px}.people-expanded.people-panel-open .person-side-card{display:block;position:relative;top:0;height:100%;min-height:0;overflow:auto}
.people-panel-close{display:none}.people-expanded .people-panel-close{display:block;margin:8px 10px}.people-expanded .people-head-actions{flex-wrap:wrap}
@media(max-width:820px){.people-expanded.people-panel-open{grid-template-columns:minmax(0,1fr)}.people-expanded.people-panel-open .person-side-card{position:absolute;right:8px;top:8px;bottom:8px;width:min(355px,95vw);height:auto;z-index:70;box-shadow:0 10px 40px #1235}.people-expanded .people-list-head h2{font-size:13px}}

/* V3.2: in-context assistant entry appears on each authenticated HSE page. */
.hse-context-ai{display:inline-flex;align-items:center;gap:6px;border:1px solid #bee3d6;color:#087c5e!important;background:#effaf5;padding:10px 12px;text-decoration:none;border-radius:11px;white-space:nowrap;font-size:11px;font-weight:800;box-shadow:0 2px 6px #13462c0b}
.hse-context-ai:hover{background:#dff6e9;border-color:#87d7b5}
@media(max-width:1120px){.hse-context-ai{padding:8px 9px;font-size:10px}}
@media(max-width:860px){.hse-context-ai{font-size:0;padding:9px 11px}.hse-context-ai::first-letter{font-size:16px}}
