:root{--page:#f7f6f2;--surface:#fff;--ink:#171b19;--ink-2:#565d59;--ink-3:#8a908c;--line:#e5e3dc;--brand:#007020;--brand-deep:#101311;--brand-wash:#eaf3ee;--good:#0ca30c;--good-text:#0a6e0a;--warn:#b98300;--warn-wash:#fdf6e4;--bad:#d03b3b;--bad-wash:#fbecec;--radius:12px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15.5px;line-height:1.55}a{color:var(--brand)}header.app{background:var(--brand-deep);color:#fff;padding:14px 0}header.app .wrap{align-items:center;gap:12px;display:flex}.logo{width:30px;height:30px;color:var(--brand-deep);letter-spacing:-.5px;background:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.logoimg{background:#fff;border-radius:8px;flex:none;width:auto;height:34px;padding:4px 8px}header.app .t{font-size:15px;font-weight:650}header.app .s{color:#a8b0aa;font-size:12.5px}header.app .who{color:#a8b0aa;align-items:center;gap:12px;margin-left:auto;font-size:12.5px;display:flex}header.app .who button{color:#a8b0aa;cursor:pointer;background:0 0;border:1px solid #3c423e;border-radius:8px;padding:3px 10px;font-family:inherit;font-size:12px}header.app .who button:hover{color:#fff;border-color:#fff}.wrap{max-width:860px;margin:0 auto;padding:0 20px}main.wrap{padding:44px 20px 70px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px}.card+.card{margin-top:16px}h1{letter-spacing:-.3px;margin-bottom:6px;font-size:26px;line-height:1.25}h2{margin:0 0 10px;font-size:17px}.sub{color:var(--ink-2);font-size:14.5px}p{margin:0 0 12px}p:last-child{margin-bottom:0}.kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--brand);margin-bottom:10px;font-size:11.5px;font-weight:700;display:inline-block}.progress{color:var(--ink-2);align-items:center;gap:8px;margin:0 0 18px;font-size:13px;display:flex}.dots{gap:6px;display:flex}.dot{background:var(--line);border-radius:50%;width:9px;height:9px}.dot.done{background:var(--brand)}.dot.now{background:var(--brand);outline:3px solid var(--brand-wash)}.scenario{background:var(--brand-wash);border-radius:var(--radius);border:1px solid #d5e6dd;margin-bottom:22px;padding:20px 22px}.scenario .meta{color:var(--ink-2);flex-wrap:wrap;gap:14px;margin-bottom:8px;font-size:12.5px;display:flex}.scenario .meta b{color:var(--ink);font-weight:600}.scenario .msg{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-top:10px;padding:12px 15px;font-size:15px}.scenario .msg .from{color:var(--ink-3);margin-bottom:3px;font-size:12px}.field{margin-bottom:16px}.field label{margin-bottom:3px;font-size:15px;font-weight:700;display:block}.field .hint{color:var(--ink-2);margin-bottom:7px;font-size:13.5px}textarea,input[type=text],input[type=email],input[type=password]{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fcfcfb;border-radius:10px;padding:11px 13px;font-size:14.5px}textarea{resize:vertical;min-height:74px}textarea::placeholder,input::placeholder{color:#7d837f}textarea:focus,input:focus{outline:2px solid var(--brand);outline-offset:-1px;background:#fff}.btn{background:var(--brand);color:#fff;cursor:pointer;font:inherit;border:none;border-radius:10px;padding:11px 22px;font-size:15px;font-weight:650;text-decoration:none;display:inline-block}.btn:hover{background:#186647}.btn:disabled{cursor:default;background:#9db8ac}.btn.ghost{color:var(--brand);border:1px solid var(--brand);background:0 0}.btn.ghost:hover{background:var(--brand-wash)}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;display:flex}.actions .note{color:var(--ink-3);font-size:12.5px}.error{background:var(--bad-wash);color:#8c2323;border:1px solid #eec3c3;border-radius:10px;margin:12px 0;padding:10px 14px;font-size:14px}.scorehead{flex-wrap:wrap;align-items:center;gap:26px;margin-bottom:6px;display:flex}.big{letter-spacing:-1px;font-size:52px;font-weight:700;line-height:1}.big small{color:var(--ink-3);letter-spacing:0;font-size:18px;font-weight:600}.meter{flex:1;min-width:220px}.meter .track{background:#efeee8;border-radius:6px;height:10px;position:relative;overflow:visible}.meter .fill{background:var(--warn);border-radius:6px 0 0 6px;height:10px}.meter .fill.pass{background:var(--brand)}.meter .pin{background:var(--ink-3);width:2px;position:absolute;top:-5px;bottom:-5px}.meter .pinlab{color:var(--ink-3);margin-top:6px;font-size:11.5px}.meter .cap{color:var(--ink-2);margin-top:6px;font-size:12.5px}ul.fb{list-style:none}ul.fb li{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:9px 0;font-size:14.5px;display:flex}ul.fb li:last-child{border-bottom:none}.pill{border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;margin-top:2px;font-size:11px;font-weight:800;display:flex}.pill.ok{color:var(--good-text);background:#e2f4e2}.pill.miss,.pill.warn{background:var(--warn-wash);color:#7c5800}.pill.x{background:var(--bad-wash);color:#9c2626}.nextfocus{background:var(--warn-wash);border:1px solid #ecd9a4;border-radius:10px;margin-top:18px;padding:13px 16px;font-size:14px}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:4px 0 20px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 17px}.tile .l{color:var(--ink-2);margin-bottom:4px;font-size:12.5px}.tile .v{letter-spacing:-.5px;font-size:27px;font-weight:700}.tile .d{color:var(--ink-2);margin-top:3px;font-size:12.5px}.tile .d.up{color:var(--good-text);font-weight:600}.badge{border-radius:99px;align-items:center;gap:6px;padding:4px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.badge.pass{color:var(--good-text);background:#e2f4e2}.badge.fail{background:var(--warn-wash);color:#7c5800}.chart{padding:6px 0 0}.chart .row{align-items:flex-end;gap:18px;height:170px;padding:0 4px;display:flex;position:relative}.chart .passline{border-top:1px solid #c3c2b7;position:absolute;left:0;right:0}.chart .passline span{color:var(--ink-3);background:var(--surface);padding-left:6px;font-size:11.5px;position:absolute;top:-17px;right:0}.col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.col .val{margin-bottom:5px;font-size:13px;font-weight:650}.col .bar{background:var(--brand);border-radius:4px 4px 0 0;width:24px}.col .cap{color:var(--ink-2);text-align:center;margin-top:8px;font-size:12px;line-height:1.3}.chart .base{border-top:1px solid #c3c2b7;margin:0 4px}.chart .caps{gap:18px;padding:0 4px;display:flex}.chart .caps .col{height:auto}.twocol{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:640px){.twocol{grid-template-columns:1fr}}table.plain{border-collapse:collapse;width:100%;margin:8px 0;font-size:14px}table.plain th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);padding:8px 10px;font-size:12px;font-weight:650}table.plain td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}table.plain td.num{font-variant-numeric:tabular-nums;text-align:right;font-weight:650}table.plain tr:last-child td{border-bottom:none}.spin{border:3px solid var(--brand-wash);border-top-color:var(--brand);vertical-align:-4px;border-radius:50%;width:18px;height:18px;margin-right:8px;animation:.8s linear infinite sp;display:inline-block}@keyframes sp{to{transform:rotate(360deg)}}.grading{color:var(--ink-2);justify-content:center;align-items:center;gap:10px;padding:30px 0;font-size:15px;display:flex}footer.app{text-align:center;color:var(--ink-3);padding:26px 0 40px;font-size:12px}.btn.sm{padding:4px 10px;font-size:12.5px}.field select{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:8px;padding:9px 10px;font-family:inherit;font-size:14.5px}details.report{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-bottom:10px}details.report>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:13px 16px;font-size:14.5px;list-style:none;display:flex}details.report>summary::-webkit-details-marker{display:none}details.report>summary .chev{color:var(--ink-3);flex:none;font-size:11px;transition:transform .15s}details.report[open]>summary .chev{transform:rotate(90deg)}details.report>summary .who{font-weight:650}details.report>summary .when{color:var(--ink-3);margin-left:auto;font-size:12.5px}details.report .body{border-top:1px solid var(--line);padding:4px 18px 18px}details.report[open]>summary{border-bottom:none}.tag{border-radius:20px;padding:2px 10px;font-size:11.5px;font-weight:700;line-height:1.6;display:inline-block}.tag.active{color:var(--good-text);background:#e2f4e2}.tag.invited{background:var(--warn-wash);color:#7c5800}.tag.disabled{color:var(--ink-3);background:#eeedea}.tag.admin{background:var(--brand-wash);color:var(--brand)}.tag.trainee{color:var(--ink-2);background:#f1f0ec}.rowactions{justify-content:flex-end;gap:6px;display:flex}.rowactions button{border:1px solid var(--line);color:var(--ink-2);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.rowactions button:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-wash)}.rowactions button:disabled{opacity:.5;cursor:default}.addform{grid-template-columns:1.2fr 1.4fr .8fr auto;align-items:end;gap:10px;margin-top:10px;display:grid}@media (max-width:700px){.addform{grid-template-columns:1fr}}table.plain td{vertical-align:middle}.profilehead{align-items:center;gap:18px;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#0d9636,var(--brand-deep));letter-spacing:.5px;border-radius:50%;flex:none;justify-content:center;align-items:center;width:56px;height:56px;font-size:20px;font-weight:750;display:flex}.profilehead .meta{text-align:right;gap:26px;margin-left:auto;display:flex}.profilehead .meta span{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:700;display:block}.profilehead .meta b{font-size:14px;font-weight:650}@media (max-width:640px){.profilehead{flex-wrap:wrap}.profilehead .meta{text-align:left;margin-left:0}}.twocol{grid-template-columns:1.4fr 1fr;gap:16px;margin-top:16px;display:grid}.twocol+.card{margin-top:16px}@media (max-width:820px){.twocol{grid-template-columns:1fr}}.modulegrid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.module{border:1px solid var(--line);background:#fdfdfc;border-radius:10px;padding:14px 16px}.module .mtitle{margin-bottom:8px;font-size:14.5px;font-weight:650}.module .mstats{gap:18px;margin-top:12px;display:flex}.module .mstats span{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:10.5px;font-weight:700;display:block}.module .mstats b{font-size:14px;font-weight:650}.quizq{border-bottom:1px solid var(--line);margin:14px 0;padding-bottom:12px}.quizq:last-of-type{border-bottom:none}.quizq .qtext{align-items:flex-start;gap:8px;margin-bottom:8px;font-size:14.5px;font-weight:650;display:flex}.opt{border:1px solid var(--line);cursor:pointer;background:#fdfdfc;border-radius:9px;margin:6px 0;padding:9px 12px;font-size:14px;display:block}.opt:hover{border-color:var(--brand)}.opt.sel{border-color:var(--brand);background:var(--brand-wash);font-weight:600}.opt input{accent-color:var(--brand);margin-right:9px}.lessonlist{margin:8px 0 12px 20px}.lessonlist li{margin:4px 0;font-size:14.5px}.sheetgrid{columns:2 380px;column-gap:14px;margin-top:16px}.sheetgrid .prop{break-inside:avoid;width:100%;margin:0 0 14px;display:inline-block}.sheetgrid .prop h2{font-size:15.5px}.sheetgrid table.plain{font-size:13px}.sheetgrid table.plain td{vertical-align:top;padding:6px 8px 6px 0}.sheetrow-label{width:118px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:650}@media print{header.app,footer.app,.noprint,.btn{display:none!important}body{background:#fff}.card{box-shadow:none;border:1px solid #ccc}}.card{box-shadow:0 1px 3px #1013110d}a.brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}a.brand .t,a.brand .s{display:block}.navlink{color:#a8b0aa;border-radius:8px;padding:5px 10px;font-size:13px;font-weight:600;text-decoration:none}.navlink:hover{color:#fff;background:#232724}.whoname{padding-left:6px}@media (max-width:640px){.whoname{display:none}}.mcards{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;margin-top:16px;display:grid}.mcard{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;padding:22px 24px;transition:box-shadow .15s,transform .15s;display:flex;box-shadow:0 1px 3px #1013110d}.mcard:hover{transform:translateY(-1px);box-shadow:0 8px 28px #10131117}.mtop{justify-content:space-between;align-items:center;display:flex}.mnum{background:var(--brand-wash);width:40px;height:40px;color:var(--brand);letter-spacing:.02em;border-radius:11px;justify-content:center;align-items:center;font-size:14.5px;font-weight:800;display:flex}.mdesc{color:var(--ink-2);margin:0 0 16px;font-size:13.5px;line-height:1.55}.mprogress{margin-top:auto;padding-top:6px}.mprogress .row{justify-content:space-between;align-items:baseline;margin-bottom:7px;font-size:13px;display:flex}.mprogress .row b{font-size:13.5px}.mprogress .row.sub2{color:var(--ink-3);margin:8px 0 0;font-size:12px}.mprogress .track{background:#efeee8;border-radius:4px;height:7px;position:relative}.mprogress .fill{background:var(--warn);border-radius:4px;height:7px}.mprogress .fill.pass{background:var(--brand)}.mprogress .pin{background:#cbc9c1;border-radius:1px;width:2px;position:absolute;top:-3px;bottom:-3px}.mactions{align-items:center;gap:10px;margin-top:18px;display:flex}.btn.wide{text-align:center;flex:1}
