*{box-sizing:border-box}body{margin:0;background:#f3f5f8;color:#172033;font:14px Arial,sans-serif}button,input,select,textarea{font:inherit}header{height:66px;background:#d71920;color:white;display:flex;justify-content:space-between;align-items:center;padding:0 20px;position:sticky;top:0;z-index:20}header h1{font-size:20px;margin:0}header small{opacity:.9}.head-actions{display:flex;gap:8px;align-items:center}.layout{display:flex;min-height:calc(100vh - 66px)}aside{width:235px;background:#172033;padding:12px;flex:none}.nav{width:100%;background:transparent;border:0;color:#dbe4f0;text-align:left;padding:11px;border-radius:6px;cursor:pointer;margin:2px 0}.nav:hover,.nav.active{background:#293750;color:white}.nav.active{border-left:4px solid white}.content{padding:20px;flex:1}.panel{background:#fff;border:1px solid #e3e8ef;border-radius:9px;padding:18px;margin-bottom:16px;box-shadow:0 2px 7px #0000000b}.grid2,.grid3,.grid4{display:grid;gap:12px}.grid2{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(4,1fr)}input,select,textarea{width:100%;padding:9px;border:1px solid #ccd4df;border-radius:6px;margin:4px 0 10px}textarea{min-height:90px}.btn,button{background:#d71920;color:white;border:0;border-radius:6px;padding:9px 13px;cursor:pointer}.secondary{background:#475569}.green{background:#15803d}.blue{background:#2563eb}.light{background:#e7ebf0;color:#172033}.danger{background:#991b1b}.actions{display:flex;gap:8px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.card{background:white;padding:16px;border-radius:9px;border:1px solid #e3e8ef}.card strong{font-size:28px;display:block;margin-top:7px;color:#d71920}table{width:100%;border-collapse:collapse;margin-top:8px}th{background:#172033;color:white;text-align:left;padding:9px;font-size:12px}td{border:1px solid #dfe5ec;padding:8px;font-size:12px;vertical-align:top}.badge{display:inline-block;padding:4px 8px;border-radius:12px;background:#e2e8f0;font-size:11px}.ok{background:#dcfce7;color:#166534}.warn{background:#fef3c7;color:#92400e}.bad{background:#fee2e2;color:#991b1b}.auth{min-height:100vh;display:grid;place-items:center;background:#172033}.auth-card{width:min(430px,92%);background:white;padding:25px;border-radius:12px}.hidden{display:none!important}.modal{position:fixed;inset:0;background:#0008;display:grid;place-items:center;z-index:100;padding:15px}.modal-card{background:#fff;width:min(1000px,96vw);max-height:92vh;overflow:auto;border-radius:10px;padding:20px;position:relative}.x{position:absolute;right:10px;top:8px;background:transparent;color:#333;font-size:25px}.sig{border:1px dashed #999;border-radius:6px}.sig canvas{width:100%;height:150px;touch-action:none;background:#fff}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.thumbs img{width:120px;height:85px;object-fit:cover;border-radius:6px;border:1px solid #ddd}.alert{padding:10px;border-radius:6px;background:#fff7ed;color:#9a3412;margin:8px 0}.msg{min-height:20px;color:#991b1b;margin:6px 0}.due-over{color:#b91c1c;font-weight:bold}.due-soon{color:#b45309;font-weight:bold}@media(max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}.grid4,.grid3{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.layout{display:block}aside{width:100%;display:flex;overflow:auto}.nav{white-space:nowrap;width:auto}.content{padding:12px}.grid2,.grid3,.grid4,.cards{grid-template-columns:1fr}header h1{font-size:15px}.head-actions span{display:none}}@media print{header,aside,.no-print{display:none!important}.content{padding:0}.panel{box-shadow:none}}
.project-assignment-list{display:grid;gap:8px;margin:12px 0 18px}.assignment-row{display:grid;grid-template-columns:minmax(220px,1fr) 180px;gap:12px;align-items:center;padding:10px;border:1px solid #e3e8ef;border-radius:8px;background:#fafbfc}.assignment-row label{margin:0}.member-project{margin:3px 0}.danger{background:#b42318!important;color:#fff!important;border-color:#b42318!important}.green{background:#16803c!important;color:#fff!important;border-color:#16803c!important}@media(max-width:700px){.assignment-row{grid-template-columns:1fr}.assignment-row select{width:100%}}

/* HSE visual engagement cards */
.hse-hero{display:flex;align-items:center;min-height:260px;background:#172033 url('images/hse-hero.svg') center/cover no-repeat;border-radius:14px;margin-bottom:16px;overflow:hidden;box-shadow:0 5px 18px #1720331c}.hse-hero-spacer{height:260px;width:100%}.hse-visual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}.hse-visual-card{padding:0;overflow:hidden;border:1px solid #e3e8ef;border-radius:12px;background:#fff;box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:transform .15s,box-shadow .15s;text-align:left;color:#172033}.hse-visual-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000012}.hse-visual-card img{display:block;width:100%;height:auto;aspect-ratio:12/5;object-fit:cover}.hse-visual-card span{display:block;padding:10px 12px;font-weight:700}.hse-visual-card small{display:block;padding:0 12px 12px;color:#64748b;font-weight:400}.hse-tip{display:flex;gap:10px;align-items:center;background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:9px;padding:12px 14px;margin-bottom:16px}.hse-tip strong{white-space:nowrap}@media(max-width:700px){.hse-visual-grid{grid-template-columns:1fr}.hse-visual-card img{aspect-ratio:16/6}}

/* Safety Performance dashboard charts */
.performance-bars{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-items:end;min-height:190px;padding:14px 4px 4px}.performance-bar-item{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.performance-bar-item strong{font-size:13px;color:#172033}.performance-bar-track{height:125px;width:min(46px,80%);display:flex;align-items:flex-end;background:#eef2f7;border-radius:8px 8px 3px 3px;overflow:hidden}.performance-bar-fill{width:100%;min-height:2px;background:linear-gradient(180deg,#2f6fed,#1c4ca3);border-radius:7px 7px 0 0}.performance-bar-item small{font-size:12px;color:#52627a;text-align:center}.performance-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(100px,3fr) 36px;gap:12px;align-items:center;margin:12px 0}.performance-row-track{height:10px;background:#eef2f7;border-radius:8px;overflow:hidden}.performance-row-fill{height:100%;background:#1c9b62;border-radius:8px;min-width:2px}.card small{display:block;margin-top:5px;color:#607086;font-size:12px;font-weight:400}@media(max-width:700px){.performance-bars{gap:6px}.performance-bar-track{height:95px;width:75%}.performance-row{grid-template-columns:100px minmax(60px,1fr) 28px;gap:7px}}


/* Neogen Engineering corporate branding layer */
:root{--neo-navy:#10243a;--neo-navy-2:#183b5b;--neo-orange:#f28c28;--neo-pale:#f3f6f9;--neo-border:#dce4ec}body{background:var(--neo-pale);color:#172b3f}header{height:auto;min-height:82px;background:var(--neo-navy);border-bottom:4px solid var(--neo-orange);padding:10px 22px;gap:16px}header h1{font-size:19px;letter-spacing:.1px}.header-brand{display:flex;align-items:center;gap:18px;min-width:0}.header-logo{display:flex;align-items:center;background:#fff;border-radius:8px;padding:5px 8px}.header-logo img{display:block;height:64px;width:auto;max-width:112px;object-fit:contain}.head-actions{flex-wrap:wrap;justify-content:flex-end}.head-actions .badge.warn{background:#fff2df;color:#8a4c0b}aside{background:#10243a;border-right:1px solid #233f59}.nav{color:#d8e3ed}.nav:hover,.nav.active{background:#1c3d5c;color:#fff}.nav.active{border-left:4px solid var(--neo-orange)}button{background:var(--neo-navy-2)}button.blue{background:#1769aa}button.green{background:#16803c}button.light{background:#e8eef4;color:#183047}button.danger{background:#b42318}.card strong{color:var(--neo-orange)}th{background:var(--neo-navy)}.panel,.card{border-color:var(--neo-border);box-shadow:0 3px 12px #10243a0a}.auth{background:radial-gradient(ellipse at 18% 12%,#244b6a 0,transparent 40%),linear-gradient(135deg,#0b1929,#10243a 62%,#1b3c57);padding:24px;position:relative}.auth:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0 68%,#f28c2810 68% 69%,transparent 69% 100%);pointer-events:none}.auth-card{position:relative;width:min(470px,96%);padding:30px;border:1px solid #e1e8ef;border-top:5px solid var(--neo-orange);border-radius:15px;box-shadow:0 18px 55px #0003}.brand-lockup{display:block;text-align:center;margin:0 auto 10px}.brand-lockup img{width:min(280px,100%);height:auto;max-height:190px;object-fit:contain}.auth-kicker{text-align:center;color:#a65a0b;font-size:11px;letter-spacing:2.4px;font-weight:700}.auth-card h2{text-align:center;color:var(--neo-navy);font-size:23px}.auth-card>p{text-align:center;color:#596b7b;line-height:1.55}.auth-card button{background:var(--neo-navy);padding:12px;font-weight:700}.auth-card button:hover{background:#1c4b70}.portal-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border-top:1px solid var(--neo-border);padding:13px 20px;color:#617386;font-size:12px}.portal-footer a{color:#1769aa;text-decoration:none;font-weight:600}.portal-footer a:hover{text-decoration:underline}.hse-tip{border-color:#c6e6d9}.hse-hero{border:1px solid #dce4ec}@media(max-width:900px){.header-brand{gap:10px}.header-logo img{height:54px;max-width:94px}.header-brand h1{font-size:16px}}@media(max-width:650px){header{align-items:flex-start;flex-direction:column;padding:12px}.header-brand{width:100%}.header-logo img{height:48px;max-width:82px}.head-actions{justify-content:flex-start}.portal-footer{padding:12px;display:block}.portal-footer span{display:block;margin:4px 0}}

.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.auth-tabs button{width:100%}
