:root{--bg:#f5f7f8;--card:#fff;--ink:#1f2933;--muted:#68737d;--line:#dfe4e8;--brand:#205c4f;--brand2:#16473d;--green:#2b7a4b;--yellow:#a76a00;--red:#b73737;--grey:#7a838a}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.45}.wrap{width:min(1120px,calc(100% - 28px));margin:0 auto}.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar-inner{display:flex;align-items:center;gap:24px;min-height:64px}.brand{font-weight:800;color:var(--brand);text-decoration:none;font-size:1.15rem}.topbar nav{display:flex;gap:18px;flex:1}.topbar nav a,.link-button{color:var(--ink);text-decoration:none;background:none;border:0;padding:0;font:inherit;cursor:pointer}.logout-form{margin-left:auto}main.wrap{padding:28px 0 50px}.footer{padding:18px 0 28px;color:var(--muted);font-size:.85rem}.page-head,.card-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-head{margin-bottom:20px}.page-head h1,.card h2{margin-top:0}.muted{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:18px;box-shadow:0 2px 8px rgba(0,0,0,.025)}.narrow{max-width:520px;margin:40px auto}.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 14px;border-radius:9px;text-decoration:none;font-weight:650;cursor:pointer}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.primary:hover{background:var(--brand2)}.btn.full{display:block;width:100%;text-align:center}.btn.large{padding:14px 18px;font-size:1.05rem}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.stat strong{display:block;font-size:1.8rem}.stat span{color:var(--muted)}.stat.warn strong{color:var(--yellow)}.stat.danger strong{color:var(--red)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.training-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800;margin-bottom:6px}.dot{width:14px;height:14px;border-radius:50%;display:inline-block}.dot.green,.badge.green{background:#e7f6ec;color:var(--green)}.dot.yellow,.badge.yellow{background:#fff3d7;color:var(--yellow)}.dot.red,.badge.red{background:#fde7e7;color:var(--red)}.dot.none,.badge.none{background:#eceff1;color:var(--grey)}.badge{padding:5px 8px;border-radius:999px;font-size:.8rem;font-weight:700}.responsive-table{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.8rem;text-transform:uppercase;color:var(--muted)}.tag{display:inline-block;padding:4px 7px;background:#eef4f2;border-radius:6px;margin:2px;text-decoration:none;color:var(--brand)}.form-card form p{display:grid;gap:6px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cbd3d8;border-radius:8px;background:#fff;font:inherit}input[type=checkbox],input[type=radio]{width:auto}.actions{display:flex;gap:10px;margin-top:20px}.messages{margin-bottom:16px}.message,.alert{padding:11px 13px;border-radius:9px;margin-bottom:10px;background:#eef3f5}.message.success,.success-box{border-color:#b9dfc6}.message.error,.alert.danger,.danger-box{background:#fdeaea;border-color:#efbcbc}.alert.warn{background:#fff4d9}.status-panel{display:flex;justify-content:space-between;padding:14px 16px;border-radius:10px;margin-bottom:18px;background:#eef3f5}.status-panel.red{background:#fdeaea}.status-panel.yellow{background:#fff4d9}.status-panel.green{background:#e8f6ed}.checklist{list-style:none;padding:0}.checklist li{padding:8px 0 8px 28px;position:relative}.checklist li:before{content:'○';position:absolute;left:0}.checklist li.done:before{content:'✓';color:var(--green);font-weight:800}.plain-list{padding-left:18px}.inline{display:inline}.danger-text{color:var(--red);margin-left:8px}.progress{height:8px;background:#e2e7ea;border-radius:999px;overflow:hidden;margin:0 0 18px}.progress span{display:block;height:100%;background:var(--brand)}.lesson{font-size:1.02rem}.sticky-action{position:sticky;bottom:12px}.question h2{font-size:1.15rem}.answer{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:12px;margin:9px 0;cursor:pointer}.answer:hover{background:#f8fafb}dl{display:grid;grid-template-columns:160px 1fr;gap:8px 14px}dt{font-weight:700}dd{margin:0}.result-card{text-align:center}.result-card .alert{text-align:left}@media(max-width:800px){.topbar-inner{flex-wrap:wrap;padding:10px 0}.topbar nav{order:3;width:100%;overflow:auto;padding-bottom:4px}.stats{grid-template-columns:repeat(2,1fr)}.grid-2,.training-cards{grid-template-columns:1fr}.page-head,.card-head{align-items:flex-start}.responsive-table table{min-width:720px}dl{grid-template-columns:1fr}.card{padding:16px}.wrap{width:min(100% - 20px,1120px)}}
.option-form{border-top:1px solid var(--line);padding:12px 0}.option-form:first-of-type{border-top:0}
.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag{background:#edf3f1;border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:.86rem}.action-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}

.confirm-row{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;margin:0 0 10px}.confirm-row input{margin-top:4px;flex:0 0 auto}

/* QM management additions */
.stats-4{grid-template-columns:repeat(4,1fr)}
.filter-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}
.filter-row label{display:block;font-size:.8rem;font-weight:750;color:var(--muted);margin-bottom:5px}
.filter-action{padding-bottom:1px}.filter-action .btn{min-width:92px}
.row-attention{background:#fff9eb}
.reminder-send-form{display:grid;gap:7px;min-width:220px}.reminder-send-form input{padding:8px}.reminder-send-form .btn{padding:8px 10px}
.badge.reminder-pending{background:#eef2f4;color:var(--grey)}
.badge.reminder-ready{background:#fff3d7;color:var(--yellow)}
.badge.reminder-sent{background:#e7f6ec;color:var(--green)}
.badge.reminder-skipped{background:#eef2f4;color:var(--grey)}
.matrix-card{padding:0;overflow:hidden}.matrix-table-wrap{max-height:68vh}.matrix-table{min-width:1020px}.matrix-table thead th{position:sticky;top:0;background:#fff;z-index:2}.matrix-table .matrix-module{position:sticky;left:0;background:#fff;z-index:1;min-width:260px}.matrix-table thead .matrix-module{z-index:3}.matrix-table td:not(.matrix-module),.matrix-table th:not(.matrix-module){text-align:center;min-width:74px}.matrix-table select{width:58px;padding:7px 4px;margin:auto}.change-reason-card{position:sticky;bottom:8px;box-shadow:0 -4px 24px rgba(0,0,0,.07)}
.import-grid{align-items:start}.import-preview{margin-top:18px;padding:14px;border:1px solid #b9dfc6;border-radius:10px;background:#edf8f1}.static-checklist li:before{content:'✓';color:var(--green);font-weight:800}
@media(max-width:800px){.stats-4{grid-template-columns:repeat(2,1fr)}.filter-row{grid-template-columns:1fr}.filter-action .btn{width:100%}.matrix-table-wrap{max-height:60vh}.change-reason-card{bottom:4px}.import-grid{grid-template-columns:1fr}.topbar nav{gap:14px}.topbar nav a{white-space:nowrap}.reminder-send-form{min-width:180px}}
.correction-list{display:grid;gap:12px}.correction-item{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfcfc}.correction-item p{margin:.45rem 0}.badge.correction-pending{background:#fff3d7;color:var(--yellow)}.badge.correction-approved{background:#e7f6ec;color:var(--green)}.badge.correction-rejected{background:#fde7e7;color:var(--red)}

/* Security/CSP compatible layout helpers (no inline styles). */
.sync-form{margin-top:16px}.reminder-note{margin-top:.45rem}.mfa-qr{text-align:center;margin:1rem 0}.progress span.progress-30{width:30%}.progress span.progress-60{width:60%}

/* v8: mobile navigation and documented security/access review */
.mobile-nav{display:none;margin-left:auto;position:relative}.mobile-nav summary{list-style:none;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-weight:700;cursor:pointer;background:#fff}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav[open] nav{display:grid;position:absolute;right:0;top:46px;width:min(310px,calc(100vw - 24px));background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 12px 36px rgba(0,0,0,.15);z-index:20}.mobile-nav nav a,.mobile-nav nav .link-button{display:block;padding:11px 12px;border-radius:8px;width:100%;text-align:left}.mobile-nav nav a:hover,.mobile-nav nav .link-button:hover{background:#f3f6f7}.mobile-nav nav form{margin:0}.review-start-form{display:grid;grid-template-columns:1fr 2fr auto;gap:12px;align-items:end}.review-start-form label,.review-decision-form label{display:grid;gap:5px}.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.review-item{margin:0}.review-item.review-change{border-color:#efbcbc}.review-item.review-ok{border-color:#b9dfc6}.compact-dl{grid-template-columns:120px 1fr;font-size:.92rem}.review-decision-form{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}button:disabled{opacity:.5;cursor:not-allowed}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9em}
@media(max-width:800px){.desktop-nav,.desktop-logout{display:none!important}.mobile-nav{display:block}.topbar-inner{flex-wrap:nowrap;min-height:60px;padding:8px 0}.review-grid{grid-template-columns:1fr}.review-start-form{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:13px}.stat strong{font-size:1.45rem}.page-head{display:grid;grid-template-columns:1fr;margin-bottom:16px}.page-head .action-stack{width:100%}.page-head .action-stack .btn{flex:1;text-align:center}.card{border-radius:12px;padding:14px;margin-bottom:14px}.btn{min-height:44px}.actions{display:grid;grid-template-columns:1fr}.actions .btn{width:100%;text-align:center}.responsive-table{border:1px solid var(--line);border-radius:10px}.responsive-table table{min-width:680px}.wrap{width:min(100% - 16px,1120px)}main.wrap{padding-top:18px}.narrow{margin:20px auto}.status-panel{display:grid;gap:5px}.confirm-row{padding:14px}.answer{padding:14px;min-height:52px}}
@media(max-width:460px){.stats,.stats-4{grid-template-columns:1fr 1fr;gap:8px}.stat strong{font-size:1.3rem}.eyebrow{font-size:.72rem}.page-head h1{font-size:1.65rem}.card h2{font-size:1.2rem}}
.mobile-assignment-list{display:none}.assignment-mobile-card h2{margin:.2rem 0 .6rem;font-size:1.15rem}
@media(max-width:800px){.desktop-assignment-table{display:none}.mobile-assignment-list{display:grid;gap:12px}.assignment-mobile-card{margin:0}.assignment-mobile-card p{margin:.45rem 0}}

/* v9: daily management work queue */
.task-filter-row{grid-template-columns:2fr 1fr 1fr 1fr auto}.task-list{display:grid;gap:10px}.task-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:11px;padding:14px;background:#fff}.task-row h3{margin:.1rem 0 .25rem}.task-row p{margin:.25rem 0}.task-row.task-overdue{border-color:#efbcbc;background:#fffafa}.task-row.task-high{border-color:#efd9a3;background:#fffdf7}.task-row.task-due_soon{border-color:#eadfbe}.task-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.badge.task-badge-management{background:#e7f6ec;color:var(--green)}.badge.task-badge-remedial{background:#fde7e7;color:var(--red)}.badge.task-badge-employee{background:#eef2f4;color:var(--grey)}
@media(max-width:800px){.task-filter-row{grid-template-columns:1fr}.task-row{display:grid}.task-actions{display:grid;grid-template-columns:1fr}.task-actions .btn{text-align:center}.task-actions .badge{justify-self:start}}

/* v9: CAPA and human-readable audit reporting */
.audit-filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr 1fr 1fr auto;gap:10px;align-items:end}.audit-filter-grid label{display:block;font-size:.8rem;font-weight:750;color:var(--muted);margin-bottom:5px}.audit-table{min-width:1100px}.audit-json{white-space:pre-wrap;word-break:break-word;display:block;max-width:360px}.audit-table details summary{cursor:pointer;font-weight:700;color:var(--brand)}
@media(max-width:1000px){.audit-filter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.audit-filter-grid{grid-template-columns:1fr}}

/* v10: transparent completion progress and immutable training history */
.workflow-progress-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:7px}.workflow-progress-head strong{font-size:1.25rem;color:var(--brand)}.workflow-progress-head span{color:var(--muted);text-align:right}.workflow-progress{width:100%;height:12px;accent-color:var(--brand);margin-bottom:12px}.workflow-checklist .optional-step{color:var(--muted)}.workflow-checklist .optional-step:before{content:'–';color:var(--grey)}.next-step-box{background:#f4f8f7;border:1px solid #cfe0db;border-radius:9px;padding:11px 12px;margin:10px 0 14px}.history-filter-grid{display:grid;grid-template-columns:2fr 1fr 1.4fr 1.5fr .7fr auto auto;gap:10px;align-items:end}.history-filter-grid label{display:block;font-size:.8rem;font-weight:750;color:var(--muted);margin-bottom:5px}.history-table{min-width:980px}.history-correction-note{font-size:.76rem;color:var(--muted);margin-top:6px}.mobile-history-list{display:none}.history-card-actions{display:flex;gap:8px}.pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin:18px 0}.employee-history-list{display:grid;gap:10px}.employee-history-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:10px 0}.employee-history-row:last-child{border-bottom:0}.employee-history-actions{display:flex;gap:8px;flex:0 0 auto}
@media(max-width:1100px){.history-filter-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.history-filter-grid{grid-template-columns:1fr}.desktop-history-table{display:none}.mobile-history-list{display:grid;gap:12px}.history-mobile-card{margin:0}.history-card-actions{display:grid;grid-template-columns:1fr 1fr}.history-card-actions .btn{text-align:center}.workflow-progress-head{display:grid}.workflow-progress-head span{text-align:left}.employee-history-row{display:grid}.employee-history-actions{display:grid;grid-template-columns:1fr 1fr}.employee-history-actions .btn{text-align:center}}
.remedial-history{display:grid;gap:10px}.remedial-item{border:1px solid var(--line);border-radius:10px;padding:13px;background:#fbfcfc}.remedial-item p{margin:.45rem 0}

/* v11: pilot acceptance */
.status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.status-card{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fff}.status-card p{margin:.55rem 0 0}.badge.pilot-pass{background:#e7f6ec;color:var(--green)}.badge.pilot-warn{background:#fff3d7;color:var(--yellow)}.badge.pilot-block{background:#fde7e7;color:var(--red)}@media(max-width:800px){.status-grid{grid-template-columns:1fr}}

/* v12: controlled training content workflow and content go-live gate */
.workflow-stage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.workflow-stage-grid>div{border:1px solid var(--line);border-radius:9px;padding:11px;background:#fbfcfc}.workflow-stage-grid strong,.workflow-stage-grid span{display:block}.workflow-stage-grid span{font-size:.85rem;color:var(--muted);margin-top:5px}.workflow-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.workflow-transition-form{border:1px solid var(--line);border-radius:10px;padding:12px}.workflow-transition-form label{display:grid;gap:6px;font-weight:700}.workflow-transition-form .btn{margin-top:8px}.workflow-history{margin-top:18px}.workflow-history summary{cursor:pointer;font-weight:750}.readiness-table{min-width:820px}
@media(max-width:900px){.workflow-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-actions{grid-template-columns:1fr}}@media(max-width:520px){.workflow-stage-grid{grid-template-columns:1fr}}
.question-thread{display:grid;gap:12px}.question-thread-item{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfcfc}.question-thread-item p{margin:.35rem 0}.answer-box{margin-top:10px;padding:12px;border-left:4px solid var(--brand);background:#eef6f3;border-radius:7px}
.learning-progress-card{margin-bottom:14px}.learning-chapter{min-height:260px}.learning-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin:14px 0}.learning-nav>div:last-child{text-align:right}.learning-progress-card .small{font-size:.82rem;margin-bottom:0}
@media(max-width:800px){.learning-nav{grid-template-columns:1fr}.learning-nav>div,.learning-nav>div:last-child{text-align:left}.learning-nav .btn{display:block;text-align:center;width:100%}.learning-chapter{min-height:0}}
