:root{--red: #8e101a;--red-accent: #bd231e;--brown: #60271f;--dark: #1a1818;--charcoal: #4a4a4a;--rose: #b59898;--rose-soft: #e8dcdc;--white: #fafaf8;--cream: #f5f0eb;--parchment: #fefaf5;--green: #27ae60;--yellow: #f1c40f;--off: #c0392b;--negative: #e74c3c}*{box-sizing:border-box}body{margin:0;background:var(--parchment);color:var(--charcoal);font-family:Inter,Segoe UI,Arial,sans-serif;font-size:13px;letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{display:flex;min-height:100vh}.sidebar{background:var(--dark);color:var(--white);display:flex;flex-direction:column;flex:0 0 232px}.brand{padding:20px 18px 14px}.logotype{color:var(--white);font-size:17px;font-weight:800}.logotype span{color:var(--red-accent)}.submark{color:#bfb5b5;font-size:11px;font-weight:700;margin:3px 0 12px}.wing{align-items:center;display:flex;gap:3px}.wing span{border-radius:999px;display:block;height:4px}.wing span:nth-child(1){background:var(--red);width:34px}.wing span:nth-child(2){background:var(--red-accent);width:22px}.wing span:nth-child(3){background:var(--rose);width:12px}.wing.large span{height:5px}.wing.large span:nth-child(1){width:54px}.wing.large span:nth-child(2){width:34px}.wing.large span:nth-child(3){width:18px}.nav{display:flex;flex:1;flex-direction:column;padding:8px 0}.nav button{align-items:center;background:transparent;border:0;border-left:3px solid transparent;color:#c8bebe;display:flex;gap:10px;height:44px;padding:0 18px;text-align:left}.nav button:hover,.nav button.active{background:#bd231e29;border-left-color:var(--red-accent);color:var(--white)}.sidebarFoot{border-top:1px solid rgba(255,255,255,.08);color:#a99f9f;display:grid;gap:4px;padding:14px 18px}.sidebarFoot b{color:var(--white);font-size:12px;text-transform:capitalize}.main{display:flex;flex:1;flex-direction:column;min-width:0}.topbar{align-items:center;background:var(--white);border-bottom:1px solid var(--rose-soft);display:flex;gap:16px;min-height:72px;padding:12px 26px}.crumb{color:var(--brown);font-size:11px;font-weight:800;text-transform:uppercase}h1{color:var(--red);font-size:20px;line-height:1.2;margin:2px 0 0}.stationPicker{align-items:center;display:flex;gap:8px;margin-left:auto}.stationPicker label,.formGrid span{color:var(--brown);font-size:11px;font-weight:800;text-transform:uppercase}select,input,textarea{background:var(--white);border:1px solid var(--rose);border-radius:6px;color:var(--charcoal);min-height:36px;padding:8px 10px}textarea{min-height:88px;resize:vertical}.iconButton{align-items:center;background:var(--white);border:1px solid var(--rose);border-radius:6px;color:var(--brown);display:inline-flex;height:36px;justify-content:center;width:36px}.content{padding:24px 26px 54px}.banner,.inlineError{align-items:center;background:#e74c3c1a;border:1px solid rgba(192,57,43,.26);border-radius:8px;color:var(--off);display:flex;gap:10px;margin-bottom:16px;padding:11px 13px}.banner button{background:transparent;border:0;color:var(--off);margin-left:auto}.loading,.empty{align-items:center;color:var(--brown);display:flex;gap:12px;min-height:180px;justify-content:center}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.kpis{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(130px,1fr));margin-bottom:20px}.kpi,.panel{background:var(--white);border:1px solid var(--rose-soft);border-radius:8px}.kpi{padding:15px 16px}.kpi .num{color:var(--dark);font-size:30px;font-weight:800;margin-top:10px}.kpi.alert .num{color:var(--off)}.kpi .label{color:var(--brown);font-size:11px;font-weight:800;text-transform:uppercase}.layout{display:grid;gap:18px}.layout.two,.layout.scan,.layout.eval,.layout.reports{grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr)}.panel{overflow:hidden}.panelHead{align-items:center;background:var(--cream);border-bottom:1px solid var(--rose-soft);display:flex;gap:10px;min-height:46px;padding:11px 15px}.panelHead h2{color:var(--brown);font-size:14px;margin:0}.panelHead span{color:var(--brown);font-size:11px;margin-left:auto}.tableWrap,.rosterList,.formGrid,.criteriaList,.authCard{padding:15px}.reportToolbar{border-bottom:1px solid var(--rose-soft);padding:12px 15px}.reportScope{max-width:260px}.panel>.inlineError{margin:12px 15px 0}.inlineStatus{align-items:center;color:var(--brown);display:inline-flex;font-size:12px;font-weight:800;gap:7px}.grid{border-collapse:collapse;width:100%}.grid th{background:var(--cream);color:var(--brown);font-size:11px;padding:9px 11px;text-align:left;text-transform:uppercase}.grid td{border-bottom:1px solid var(--rose-soft);padding:10px 11px}.grid b{color:var(--dark)}.miniTag{border:1px solid var(--rose);border-radius:5px;color:var(--brown);font-size:10px;margin-left:8px;padding:1px 5px}.personRow{align-items:center;border-bottom:1px solid var(--rose-soft);display:flex;justify-content:space-between;padding:10px 0}.personRow b{color:var(--dark);display:block}.personRow span{color:var(--brown);font-size:11px}.pill{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:800;gap:5px;min-height:22px;padding:3px 8px;text-transform:capitalize;white-space:nowrap}.pill:before{border-radius:50%;content:"";height:7px;width:7px}.pill-current,.pill-expiring{background:#27ae601f;color:#1d7a44}.pill-current:before,.pill-expiring:before{background:var(--green)}.pill-stale,.pill-missing{background:#f1c40f2e;color:#8a7008}.pill-stale:before,.pill-missing:before{background:var(--yellow)}.pill-in_training{background:#60271f1a;color:var(--brown)}.pill-in_training:before{background:var(--brown)}.pill-expired,.pill-revoked,.pill-not_trained{background:#c0392b1f;color:var(--off)}.pill-expired:before,.pill-revoked:before,.pill-not_trained:before{background:var(--off)}.filterbar{align-items:center;display:flex;gap:10px;margin-bottom:14px}.inputIcon{align-items:center;display:flex;position:relative}.inputIcon svg{color:var(--brown);left:10px;position:absolute}.inputIcon input{padding-left:34px}.matrixWrap{background:var(--white);border:1px solid var(--rose-soft);border-radius:8px;overflow:auto}.matrixLayout{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(330px,390px)}.matrix{border-collapse:collapse;min-width:980px;width:100%}.matrix th,.matrix td{border-bottom:1px solid var(--rose-soft);border-right:1px solid var(--rose-soft);text-align:center}.matrix th{background:var(--cream);color:var(--brown);font-size:11px;font-weight:800;height:44px;padding:8px}.matrix th.agentCol{left:0;min-width:210px;position:sticky;text-align:left;z-index:2}.matrix th.rocCol{min-width:62px}.matrix th.rot{height:120px;width:52px}.matrix th.rot div{transform:rotate(-90deg);white-space:nowrap;width:44px}.agentCell{background:var(--white);left:0;min-width:210px;padding:0;position:sticky;text-align:left;z-index:1}.matrix tr.selected .agentCell,.matrix tr.selected .agentCellButton{background:var(--cream)}.agentCellButton{background:var(--white);border:0;color:inherit;display:block;min-height:48px;padding:9px 12px;text-align:left;width:100%}.agentCellButton:hover{background:var(--cream)}.agentCellButton b,.agentCellButton span{display:block}.agentCellButton b{color:var(--dark)}.agentCellButton span{color:var(--brown);font-size:11px;margin-top:2px}.recordPanel{background:var(--white);border:1px solid var(--rose-soft);border-radius:8px;max-height:calc(100vh - 136px);overflow:auto}.recordHead{background:var(--red);color:var(--white);display:flex;gap:12px;justify-content:space-between;padding:15px}.recordHead span{color:#f1dedc;font-size:11px;font-weight:800;text-transform:uppercase}.recordHead h2{color:var(--white);font-size:20px;margin:2px 0}.recordHead p{margin:0}.rocMini{border-bottom:1px solid var(--rose-soft);display:grid;gap:10px;grid-template-columns:1fr 1fr;padding:12px 15px}.rocMini span,.miniLine,.auditLast span,.auditCounts span{color:var(--brown);font-size:11px}.rocMini b,.auditCounts b,.auditLast b{color:var(--dark);display:block;margin-top:2px}.recordList{display:grid;gap:10px;padding:15px}.recordCompetency{border:1px solid var(--rose-soft);border-radius:8px;display:grid;gap:9px;padding:10px}.recordCompetencyTop{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.recordCompetencyTop b,.recordCompetencyTop span{display:block}.recordCompetencyTop b{color:var(--dark)}.recordCompetencyTop span{color:var(--brown);font-size:11px;margin-top:2px}.currencyMeter{background:var(--cream);border-radius:999px;height:22px;overflow:hidden;position:relative}.currencyMeter span{background:var(--green);display:block;height:100%;min-width:3px}.currencyMeter.meter-stale span,.currencyMeter.meter-expiring span{background:var(--yellow)}.currencyMeter.meter-expired span,.currencyMeter.meter-revoked span{background:var(--off)}.currencyMeter.empty span{background:#ddd5d5;width:100%}.currencyMeter b{color:var(--brown);font-size:11px;font-weight:800;left:10px;line-height:22px;position:absolute;right:10px;top:0}.secondaryButton.small{font-size:11px;min-height:30px;padding:6px 9px;width:max-content}.auditSummary{border-top:1px solid var(--rose-soft);display:grid;gap:10px;padding:15px}.auditSummaryHead{align-items:center;display:flex;justify-content:space-between}.auditSummaryHead b{color:var(--red);font-size:14px}.auditSummaryHead span{color:var(--brown);font-size:11px}.auditCounts{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.auditCounts div,.auditLast{background:var(--cream);border-radius:7px;padding:9px}.dot{border-radius:5px;display:inline-block;height:16px;width:16px}.dot-current{background:var(--green)}.dot-stale,.dot-expiring,.dot-missing{background:var(--yellow)}.dot-in_training{background:var(--brown);opacity:.62}.dot-not_trained{background:#ddd5d5}.dot-expired,.dot-revoked{background:var(--off)}.legend{align-items:center;color:var(--brown);display:flex;flex-wrap:wrap;gap:14px;margin-top:13px;text-transform:capitalize}.legend span{align-items:center;display:inline-flex;gap:6px}.formGrid{display:grid;gap:12px}.formGrid label{display:grid;gap:5px}.modeToggle{background:var(--cream);border:1px solid var(--rose-soft);border-radius:7px;display:grid;grid-template-columns:1fr 1fr;padding:3px}.modeToggle button{background:transparent;border:0;border-radius:5px;color:var(--brown);font-weight:800;min-height:32px}.modeToggle button.active{background:var(--white);color:var(--red)}.modeToggle button:disabled{cursor:not-allowed;opacity:.55}.cameraBox{border:1px solid var(--rose-soft);border-radius:8px;display:grid;gap:10px;overflow:hidden;padding:10px}.cameraBox video{aspect-ratio:4 / 3;background:var(--cream);border-radius:6px;display:block;object-fit:cover;width:100%}.cameraActions{display:flex;gap:8px}.primaryButton,.secondaryButton{align-items:center;border-radius:7px;display:inline-flex;gap:8px;justify-content:center;min-height:38px;padding:9px 14px}.primaryButton{background:var(--red);border:1px solid var(--red);color:var(--white)}.secondaryButton{background:var(--white);border:1px solid var(--rose);color:var(--brown)}.primaryButton:disabled,.secondaryButton:disabled{cursor:not-allowed;opacity:.48}.primaryButton.full{margin:0 15px 15px;width:calc(100% - 30px)}.cardPanel{min-height:440px}.authCard{display:grid;gap:14px}.rocCertificate{display:grid;gap:14px;padding:15px}.authHeader{align-items:flex-start;background:var(--red);border-radius:8px;color:var(--white);display:flex;justify-content:space-between;padding:18px}.authHeaderActions{align-items:flex-end;display:grid;gap:10px;justify-items:end}.printButton{align-items:center;background:#fefaf521;border:1px solid rgba(254,250,245,.42);border-radius:7px;color:var(--white);display:inline-flex;gap:7px;min-height:34px;padding:7px 10px}.authHeader .printButton span{color:var(--white);font-size:11px;text-transform:none}.authHeader span{color:#f1dedc;font-size:11px;font-weight:800;text-transform:uppercase}.authHeader h2{color:var(--white);font-size:24px;margin:3px 0}.authHeader p{margin:0}.hardBlock{align-items:center;background:#c0392b1f;border:1px solid rgba(192,57,43,.25);border-radius:8px;color:var(--off);display:flex;gap:10px;padding:12px}.rocFacts{border:1px solid var(--rose-soft);border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);padding:12px}.rocFacts span,.rocFacts b{display:block}.rocFacts span{color:var(--brown);font-size:11px;font-weight:800;text-transform:uppercase}.rocFacts b{color:var(--dark);margin-top:3px}.authSection{border:1px solid var(--rose-soft);border-radius:8px;padding:12px}.authSection h3{color:var(--brown);font-size:14px;margin:0 0 10px}.authList{display:grid;gap:8px}.authItem{align-items:center;background:#27ae6012;border:1px solid rgba(39,174,96,.18);border-radius:7px;display:flex;gap:10px;padding:10px}.authItem svg{color:var(--green)}.authItem b,.authItem span{display:block}.authItem b{color:var(--dark)}.authItem span,.muted{color:var(--brown);font-size:11px}.miniStatus{align-items:center;border-top:1px solid var(--rose-soft);display:flex;justify-content:space-between;padding:8px 0}.agentPick{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.agentPick button{align-items:center;background:var(--white);border:1px solid var(--rose-soft);border-radius:7px;color:var(--charcoal);display:flex;gap:8px;min-height:38px;padding:8px 10px;text-align:left}.agentPick button.selected{background:#bd231e14;border-color:var(--red-accent);color:var(--red)}.agentPick button.blocked,.agentPick button:disabled{background:var(--cream);color:var(--rose);cursor:not-allowed;opacity:.55}.authShell{align-items:center;background:var(--parchment);display:flex;justify-content:center;min-height:100vh;padding:24px}.authCardBox{background:var(--white);border:1px solid var(--rose-soft);border-radius:12px;box-shadow:0 10px 40px #1a181814;max-width:360px;padding:28px 28px 22px;width:100%}.authBrand{margin-bottom:14px}.authCardBox h2{color:var(--red);font-size:20px;margin:6px 0 14px}.authHint{color:var(--brown);font-size:11px;margin-top:12px}.authDivider{align-items:center;color:var(--rose);display:flex;font-size:11px;gap:8px;margin:14px 0 10px;text-transform:uppercase}.authDivider:before,.authDivider:after{background:var(--rose-soft);content:"";flex:1;height:1px}.googleSignIn{align-items:center;display:flex;flex-direction:column}.logoutButton{align-items:center;background:transparent;border:1px solid rgba(245,240,235,.25);border-radius:6px;color:var(--cream);display:flex;gap:6px;justify-content:center;margin-top:10px;padding:6px 8px;width:100%}.logoutButton:hover{border-color:var(--red-accent)}.checkLine{align-items:center;display:flex!important;gap:8px}.checkLine input{min-height:auto}.criterion{align-items:center;border:1px solid var(--rose-soft);border-radius:8px;display:grid;gap:11px;grid-template-columns:28px minmax(0,1fr) 78px;margin-bottom:8px;padding:10px}.criterion.pass{background:#27ae600d;border-color:#27ae6059}.criterion.fail{background:#c0392b0f;border-color:#c0392b52}.criterionIndex{align-items:center;background:var(--cream);border-radius:6px;color:var(--brown);display:flex;font-weight:800;height:28px;justify-content:center;width:28px}.criterion p{color:var(--dark);margin:0}.markButtons{display:flex;gap:6px}.markButtons button{align-items:center;background:var(--white);border:1px solid var(--rose);border-radius:6px;color:var(--brown);display:inline-flex;height:32px;justify-content:center;width:32px}.markButtons button.pass{background:var(--green);border-color:var(--green);color:var(--white)}.markButtons button.fail{background:var(--off);border-color:var(--off);color:var(--white)}.resultBar{background:var(--cream);border-radius:8px;color:var(--brown);font-weight:800;margin:0 15px 12px;padding:12px;text-align:center}.resultBar.pass{background:#27ae601f;color:#1d7a44}.resultBar.fail{background:#c0392b1f;color:var(--off)}.submitResults{display:grid;gap:8px;padding:0 15px 15px}.submitResults div{border:1px solid var(--rose-soft);border-radius:8px;display:grid;gap:2px;padding:10px}.submitResults b{color:var(--dark)}.packet{background:var(--parchment);border:1px solid var(--rose-soft);border-radius:8px;color:var(--charcoal);font-size:11px;max-height:520px;overflow:auto;padding:12px;white-space:pre-wrap}@media (max-width: 940px){.app{display:block}.sidebar{flex:none}.nav{display:grid;grid-template-columns:repeat(2,1fr)}.kpis,.matrixLayout,.layout.two,.layout.scan,.layout.eval,.layout.reports{grid-template-columns:1fr}.recordPanel{max-height:none}.topbar{align-items:flex-start;flex-direction:column}.stationPicker{margin-left:0}}@media print{body{background:#fff}.sidebar,.topbar,.layout.scan>.panel:first-child,.printButton{display:none!important}.app,.main,.content,.layout.scan,.cardPanel{display:block;margin:0;padding:0}.panel,.cardPanel{border:0;box-shadow:none}.authCard{color:var(--charcoal);max-width:720px;padding:0}}
