@font-face{font-family:"Public Sans";src:url(/static/public-sans.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{--paper:#fff;--ink:#1c2128;--accent:#1d6f73;--right:#2a7a4b;--wrong:#b0352b;--warn:#a5650b;--soft:color-mix(in srgb,var(--ink) 66%,var(--paper));--line:color-mix(in srgb,var(--ink) 12%,var(--paper));--tint:color-mix(in srgb,var(--accent) 7%,var(--paper))}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 "Public Sans",Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
.tbar{background:var(--accent);color:#fff}
.tin{max-width:1120px;margin:0 auto;padding:0 24px;min-height:52px;display:flex;align-items:center;gap:14px;font-size:14.5px;flex-wrap:wrap}
.org{display:flex;align-items:center;gap:10px;font-weight:600;white-space:nowrap;color:#fff;text-decoration:none}
.mark{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#fff;color:var(--accent);font:700 11.5px "Public Sans";overflow:hidden;flex:0 0 auto}
.mark img{width:100%;height:100%;object-fit:contain}
.sep{width:1px;height:18px;background:currentColor;opacity:.22}.dim{opacity:.82}
/* the account menu: who you are and Sign out, on the right of the brand bar */
.acct{margin-left:auto;position:relative}
.acct summary{list-style:none;display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:99px;cursor:pointer;white-space:nowrap}
.acct summary::-webkit-details-marker{display:none}
.acct summary:hover,.acct[open] summary{background:rgba(255,255,255,.14)}
.acct summary:focus-visible{outline:2px solid #fff;outline-offset:2px}
.acct summary i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.2);font:600 11.5px "Public Sans";font-style:normal}
.acct summary b{font-weight:400;font-size:11px;opacity:.75}
.amenu{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:min(280px,90vw);background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -18px rgba(16,24,40,.35);padding:6px}
.awho{padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px;overflow-wrap:anywhere}
.awho b{display:block;font-weight:600}.awho small{color:var(--soft);font-size:13px}
.amenu form{margin:0}.amenu button{width:100%;text-align:left;border:0;background:none;color:var(--ink);font:inherit;padding:9px 12px;border-radius:8px;cursor:pointer}
.amenu button:hover,.amenu button:focus-visible{background:color-mix(in srgb,var(--ink) 5%,var(--paper))}
/* where you go: the portal's pages as tabs under the brand bar, Admin set apart on the right */
.ttabs{background:#fff;border-bottom:1px solid var(--line)}
.ttin{max-width:1120px;margin:0 auto;padding:0 24px;display:flex;gap:26px;align-items:stretch;min-height:48px;overflow-x:auto;scrollbar-width:none}
.ttin::-webkit-scrollbar{display:none}
.ttin a{display:flex;align-items:center;white-space:nowrap;color:var(--soft);text-decoration:none;font-size:14.5px;border-bottom:2px solid transparent;margin-bottom:-1px}
.ttin a:hover{color:var(--ink)}
.ttin a.on{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
.ttin a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ttin .tadmin{margin-left:auto}
main{max-width:1120px;margin:0 auto;padding:48px 24px 100px}
.narrow{max-width:520px;margin:0 auto;padding:72px 24px 100px}
h1{font-size:38px;line-height:1.1;letter-spacing:-.02em;margin:0 0 10px}
h2{font-size:20px;margin:36px 0 12px}
.lede{font-size:18px;color:var(--soft);margin:0 0 28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:999px;border:0;background:var(--accent);color:#fff;font-weight:600;font-size:15px;cursor:pointer;text-decoration:none}
.btn.wide{width:100%}.btn.sm{padding:8px 16px;font-size:14px}
.btn.ghost{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 40%,transparent)}
label{display:block;font-size:14px;font-weight:600;margin:0 0 6px}
input.f{width:100%;height:48px;border:1.5px solid var(--line);border-radius:10px;padding:0 14px;color:var(--ink);background:var(--paper)}
input.code{letter-spacing:.5em;font:600 24px ui-monospace,Menlo,monospace;text-align:center}
input.f:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.hint{color:var(--soft);font-size:14.5px;margin:10px 0 0}
.err{color:var(--wrong);font-size:15px;margin:12px 0 0}
.ok{color:var(--right);font-size:15px;margin:0 0 18px}
.note{border-radius:12px;background:var(--tint);padding:14px 16px;font-size:15px;margin:0 0 22px}
.small{color:var(--soft);font-size:14px;margin-top:22px}
a.lnk,button.lnk{color:var(--accent);font-weight:600;text-decoration:none;background:none;border:0;padding:0;cursor:pointer}
.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin:0 0 8px;flex-wrap:wrap}
.tabs a{padding:0 0 10px;color:var(--soft);text-decoration:none;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a.on{color:var(--accent);border-color:var(--accent);font-weight:600}
.tabs .n{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:color-mix(in srgb,var(--ink) 7%,var(--paper));font-size:12.5px;font-weight:600}
.tabs a.on .n{background:color-mix(in srgb,var(--accent) 14%,var(--paper))}
.course{display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:22px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.course img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;display:block;background:var(--tint)}
.course h3{font-size:19px;margin:0 0 4px;line-height:1.3}
.meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--soft);font-size:14.5px}
.chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;background:color-mix(in srgb,var(--ink) 7%,var(--paper));color:var(--soft)}
.chip.go{background:color-mix(in srgb,var(--accent) 12%,var(--paper));color:var(--accent)}
.chip.ok{background:color-mix(in srgb,var(--right) 12%,var(--paper));color:var(--right)}
.chip.late{background:color-mix(in srgb,var(--wrong) 10%,var(--paper));color:var(--wrong)}
.bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:10px;max-width:360px}.bar i{display:block;height:100%;background:var(--accent)}
.act{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}.act small{color:var(--soft);font-size:13.5px}
.empty{padding:40px 0;color:var(--soft)}
.certs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.cert{border:1px solid var(--line);border-radius:12px;padding:18px}.cert h3{font-size:16.5px;margin:0 0 4px}.cert p{margin:0 0 12px;color:var(--soft);font-size:14.5px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:start}
.logo{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.logo .mark{width:56px;height:56px;border-radius:12px;background:var(--tint);font-size:18px}
input[type=color]{width:64px;height:44px;border:1.5px solid var(--line);border-radius:10px;padding:4px;background:var(--paper);cursor:pointer}
.kv{display:grid;grid-template-columns:200px minmax(0,1fr);gap:10px 18px;font-size:15.5px}.kv dt{color:var(--soft)}.kv dd{margin:0;overflow-wrap:anywhere}
.preview{border:1px solid var(--line);border-radius:14px;overflow:hidden}.preview .pv{padding:22px}
@media (max-width:820px){
 main{padding:32px 16px 100px}.narrow{padding:44px 16px 100px}h1{font-size:30px}
 .tin{padding:8px 16px;row-gap:4px}.sep,.dim,.acct summary span{display:none}.ttin{padding:0 28px 0 16px;gap:20px}.ttin .tadmin{margin-left:0}
 .ttabs{position:relative}.ttabs::after{content:"";position:absolute;top:0;right:0;bottom:1px;width:28px;pointer-events:none;background:linear-gradient(to right,rgba(255,255,255,0),#fff)}
 .course{grid-template-columns:96px minmax(0,1fr);gap:14px}.act{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;text-align:left}
 .split,.kv{grid-template-columns:1fr}
}
/* admin: people and results */
.crumb{font-size:14.5px;color:var(--soft);margin:0 0 10px}.crumb a{color:var(--accent);text-decoration:none;font-weight:600}
.clist .item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px 0;border-top:1px solid var(--line)}
.clist .item:last-child{border-bottom:1px solid var(--line)}
.clist h3{font-size:19px;margin:0 0 4px;line-height:1.3}
.mix{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--line);margin:12px 0 8px;max-width:520px}.mix i{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px;color:var(--soft)}.legend b{color:var(--ink)}
.legend s{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;text-decoration:none}
.stats4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0}
.stats4 div{border:1px solid var(--line);border-radius:12px;padding:14px 16px}.stats4 b{display:block;font-size:28px;line-height:1.15}.stats4 span{color:var(--soft);font-size:14px}
.tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 22px}
.due{display:flex;align-items:center;gap:8px;margin:0 0 0 auto;font-size:14.5px}.due input{height:38px;border:1.5px solid var(--line);border-radius:9px;padding:0 10px;color:var(--ink);background:var(--paper)}
table.people{width:100%;border-collapse:collapse;font-size:15px}
table.people th{text-align:left;font-size:13px;font-weight:600;color:var(--soft);padding:10px 12px 10px 0;border-bottom:1px solid var(--line);white-space:nowrap}
table.people td{padding:12px 12px 12px 0;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
table.people td small{display:block;color:var(--soft);font-size:13.5px;overflow-wrap:anywhere}
table.people .acts{display:flex;gap:14px;justify-content:flex-end;align-items:baseline;flex-wrap:wrap}
table.people .acts form{margin:0}
.lnk.bad{color:var(--wrong)}
.btn.bad{background:var(--wrong)}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}
.box{border:1px solid var(--line);border-radius:14px;padding:22px;min-width:0}.box h2{margin:0 0 6px}
.drop{border:1.5px dashed color-mix(in srgb,var(--ink) 22%,var(--paper));border-radius:12px;padding:22px;text-align:center;margin:14px 0}
input[type=file]{max-width:100%}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:15px;margin:18px 0 0}.check input{margin-top:5px}
.skips{padding-left:20px;margin:8px 0 0}.skips li{margin:0 0 6px}
.rec-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap}
details.att{border:1px solid var(--line);border-radius:12px;margin:0 0 10px}
details.att summary{cursor:pointer;padding:14px 16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;list-style:none}
details.att summary::-webkit-details-marker{display:none}
details.att .qs{padding:0 16px 14px}
.q{display:grid;grid-template-columns:22px minmax(0,1fr);gap:4px 10px;padding:10px 0;border-top:1px solid var(--line);font-size:15px}
.q .y{color:var(--right);font-weight:700}.q .n{color:var(--wrong);font-weight:700}.q small{color:var(--soft);display:block}
.tl{list-style:none;padding:0;margin:0}.tl li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:8px 0;border-top:1px solid var(--line);font-size:15px}.tl time{color:var(--soft)}
.mail{max-width:620px;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:0 0 28px}
.mail .hd{background:color-mix(in srgb,var(--ink) 4%,var(--paper));padding:12px 18px;font-size:14px;color:var(--soft)}.mail .hd b{color:var(--ink)}
.mail .bd{padding:22px 18px;font-size:15.5px}.mail .bd p{margin:0 0 12px}
.confirm{max-width:560px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
@media (max-width:820px){
 .stats4{grid-template-columns:repeat(2,minmax(0,1fr))}.cols,.row2{grid-template-columns:1fr}.due{margin-left:0}
 .clist .item{grid-template-columns:1fr}
 table.people thead{display:none}table.people,table.people tbody,table.people tr,table.people td{display:block;width:100%}
 table.people tr{border-bottom:1px solid var(--line);padding:12px 0}table.people td{border:0;padding:3px 0}
 table.people .acts{justify-content:flex-start;margin-top:6px}
 table.people td[data-l]::before{content:attr(data-l) ": ";color:var(--soft)}
 .tl li{grid-template-columns:1fr;gap:0}
}
@media print{.tbar,.noprint{display:none!important}main{padding:0}details.att .qs{display:block}}
/* company details form (admin: Courses) */
.detail{margin:0 0 22px}.detail>.hint{margin:0 0 8px}
textarea.f{width:100%;min-height:96px;border:1.5px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink);background:var(--paper);font:inherit;resize:vertical}
.detail.bad input.f,.detail.bad textarea.f{border-color:var(--wrong)}
.with-unit{display:flex;gap:10px;align-items:center}.with-unit>span{color:var(--soft);white-space:nowrap}
.listed-rows{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px;counter-reset:li}
.listed-rows li{display:flex;align-items:center;gap:2px;border:1.5px solid var(--line);border-radius:10px;padding:4px 6px 4px 14px;counter-increment:li}
.listed-rows li::before{content:counter(li) ".";color:var(--soft);margin-right:8px;font-variant-numeric:tabular-nums}
.listed-text{flex:1;min-width:0;overflow-wrap:anywhere}
.listed-btn{border:0;background:none;min-width:36px;height:36px;border-radius:8px;cursor:pointer;color:var(--ink);font-size:17px}
.listed-btn:hover:not(:disabled){background:var(--tint)}.listed-btn:disabled{opacity:.3;cursor:default}
.listed-add{display:flex;gap:8px;align-items:center}
.detail-form{max-width:640px}
.ok a{color:inherit;font-weight:600;text-underline-offset:2px}
/* audit report (admin: a course's record for an auditor), print-first */
.audit section{margin:34px 0 0}.audit h2{font-size:19px;margin:0 0 6px}
.audit .eyebrow{text-transform:none;color:var(--soft);font-size:14px;font-weight:600;margin:0 0 2px}
.audit .supports{margin:10px 0 0;font-weight:600}
.audit .stats4{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.kv-table,.people-table{width:100%;border-collapse:collapse;margin:12px 0 0;font-size:15px}
.kv-table th,.kv-table td,.people-table th,.people-table td{text-align:left;vertical-align:top;padding:9px 10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.kv-table th{width:38%;font-weight:600;color:var(--ink)}
.people-table th{font-size:13px;color:var(--soft);font-weight:600}
.people-table td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;letter-spacing:.02em}
.late{color:var(--warn);font-weight:600}
.table-scroll{overflow-x:auto}
@media print{
 @page{size:A4;margin:14mm}
 .table-scroll{overflow:visible}
 .audit{font-size:11pt}.audit .kv-table,.audit .people-table{font-size:9.5pt}
 .audit .people-table thead{display:table-header-group}
 .audit tr,.audit .stats4 div{break-inside:avoid}
 .audit section{break-inside:auto}.audit h2{break-after:avoid}
 *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* the roster check: what each column is for */
table.cols-roles select{height:38px;border:1.5px solid var(--line);border-radius:9px;padding:0 8px;background:var(--paper);color:var(--ink)}
/* insights: the filter rail, the dot field and the graphs it makes */
main.in-wide{max-width:1440px}
.in-wb{display:grid;grid-template-columns:260px minmax(0,1fr) 300px;gap:18px;align-items:start}
.in-wb.nopane{grid-template-columns:260px minmax(0,1fr)}
.in-rail{display:flex;flex-direction:column;gap:10px;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;padding-right:2px}
.in-shown{display:flex;align-items:center;gap:8px;background:var(--tint);border-radius:9px;padding:7px 10px;font-size:12.5px;color:color-mix(in srgb,var(--accent) 70%,var(--ink))}
.in-shown span{flex:1}.in-shown button{border:1px solid var(--accent);background:var(--paper);color:var(--accent);border-radius:5px;font-size:11.5px;padding:1px 8px;cursor:pointer;font-weight:600}
.in-views select{width:100%;height:34px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font-size:13px;background:var(--paper);color:var(--ink)}
.in-links{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:5px}
.in-link{border:0;background:none;padding:0;color:var(--accent);font-weight:600;font-size:13px;cursor:pointer;text-decoration:none}
.in-link.bad{color:var(--wrong)}
.in-save{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:8px;font-size:13px}
.in-save input[type=text]{height:34px;border:1px solid var(--line);border-radius:7px;padding:0 8px;width:100%;background:var(--paper);color:var(--ink)}
.in-save label{display:flex;gap:6px;align-items:center;margin:0;font-weight:400;font-size:13px}
.in-save .go{border:0;background:var(--accent);color:#fff;border-radius:999px;padding:6px 14px;font-weight:600;cursor:pointer;font-size:13px}
.in-err{color:var(--wrong);font-size:12.5px;margin:0}
.in-pn{border:1px solid var(--line);border-radius:10px;padding:9px 10px}
.in-pt{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;font-weight:600;margin-bottom:5px}
.in-seg{display:flex;border:1px solid var(--line);border-radius:6px;padding:2px}
.in-seg button{border:0;background:none;font-size:10.5px;padding:1px 7px;border-radius:4px;color:var(--soft);cursor:pointer}
.in-seg button.on{background:var(--accent);color:#fff}
.in-it{display:flex;gap:7px;align-items:flex-start;width:100%;border:0;background:none;text-align:left;padding:3px 5px;border-radius:5px;cursor:pointer;font-size:12.5px;line-height:1.35;color:var(--ink)}
.in-it:hover{background:color-mix(in srgb,var(--ink) 4%,var(--paper))}
.in-it.on{background:color-mix(in srgb,var(--accent) 14%,var(--paper));color:color-mix(in srgb,var(--accent) 60%,var(--ink));box-shadow:inset 2px 0 0 var(--accent)}
.in-it.not.on{background:color-mix(in srgb,var(--wrong) 10%,var(--paper));color:var(--wrong);box-shadow:inset 2px 0 0 var(--wrong);text-decoration:line-through}
.in-it .lb{flex:1;min-width:0;overflow-wrap:anywhere}.in-it .ct{font:600 12px ui-monospace,Menlo,monospace}
.in-it.z .ct,.in-it.z .lb{color:var(--soft);opacity:.6}
.in-it i{width:7px;height:7px;border-radius:50%;margin-top:6px;flex:none}
.in-more{border:0;background:none;color:var(--accent);font-size:11.5px;cursor:pointer;padding:2px 5px;font-weight:600}
.in-big{font:500 34px/1 ui-monospace,Menlo,monospace;letter-spacing:-.03em}
.in-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}.in-head span{color:var(--soft);font-size:13.5px}
.in-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.in-chip{display:inline-flex;gap:6px;align-items:center;background:var(--tint);border:1px solid var(--line);border-radius:999px;padding:2px 6px 2px 11px;font-size:12.5px}
.in-chip em{font-style:normal;color:var(--soft)}.in-chip button{border:0;background:none;cursor:pointer;color:var(--soft);font-size:15px;line-height:1;padding:0 3px}
.in-chip.neg{background:color-mix(in srgb,var(--wrong) 9%,var(--paper))}
.in-ctl{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin:14px 0 10px}
.in-modes{display:flex;border:1px solid var(--line);border-radius:8px;padding:2px}
.in-modes button{border:0;background:none;padding:5px 14px;border-radius:6px;font-size:13px;color:var(--soft);cursor:pointer;font-weight:500}
.in-modes button.on{background:var(--accent);color:#fff}
.in-ctl label{font-size:13px;color:var(--soft);display:flex;gap:7px;align-items:center;margin:0;font-weight:400}
.in-ctl select{height:32px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:var(--paper);font-size:13px;color:var(--ink)}
.in-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-left:auto;font-size:12.5px;color:var(--soft)}
.in-legend s{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.in-cv{position:relative;height:480px;border:1px solid var(--line);border-radius:12px;background:#fcfcfd}
.in-cv canvas{display:block;width:100%;height:100%;border-radius:12px;cursor:crosshair}
.in-tip{position:absolute;pointer-events:none;background:var(--paper);border:1px solid var(--line);border-radius:9px;box-shadow:0 6px 22px rgba(13,20,60,.14);padding:7px 10px;font-size:12px;max-width:240px;z-index:3}
.in-tip b{display:block;font-size:12.5px}.in-tip small{color:var(--soft);display:block;font-size:11.5px}
.in-msg{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--soft);padding:20px}
.in-msg b{color:var(--ink)}.in-msg button{margin-top:10px}
.in-note{font-size:12px;color:var(--soft);margin:7px 0 0}
.in-pane{border-left:1px solid var(--line);padding-left:18px;position:sticky;top:12px}
.in-pane h3{margin:0 0 2px;font-size:17px;overflow-wrap:anywhere}.in-pane .x{float:right;border:0;background:none;font-size:20px;color:var(--soft);cursor:pointer;line-height:1}
.in-pane dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px;margin:12px 0}.in-pane dt{color:var(--soft)}.in-pane dd{margin:0;overflow-wrap:anywhere}
.in-pane .b{display:block;width:100%;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:8px;font-size:12.5px;cursor:pointer;margin-top:6px;text-align:center;color:var(--ink);text-decoration:none}
.in-pane .b:hover{border-color:var(--accent);color:var(--accent)}
.in-auto{margin-top:28px}.in-auto>h2{font-size:18px;margin:0 0 2px}.in-auto>p{margin:0 0 14px;color:var(--soft);font-size:13.5px}
.in-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px}
.in-card{border:1px solid var(--line);border-radius:12px;padding:16px 18px;min-width:0}
.in-card h3{font-size:15px;margin:0 0 2px}.in-card>p{margin:0 0 10px;color:var(--soft);font-size:12.5px}
.in-card.wide{grid-column:1/-1}
.in-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.in-kpis div{border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:0}
.in-kpis b{display:block;font-size:26px;line-height:1.15}.in-kpis span{color:var(--soft);font-size:13px;display:block}.in-kpis em{font-style:normal;font-size:12px;color:var(--soft);display:block}
.in-fun .st{display:grid;grid-template-columns:minmax(120px,210px) minmax(0,1fr) 92px;gap:10px;align-items:center;padding:4px 0;font-size:13.5px}
.in-fun .tr{height:16px;background:var(--tint);border-radius:4px;overflow:hidden}.in-fun .tr i{display:block;height:100%;background:var(--accent);border-radius:4px}
.in-fun .tr.g i{background:var(--right)}
.in-fun .n{text-align:right;color:var(--soft)}.in-fun .n b{color:var(--ink);font-size:15px}
.in-fun .dr{font-size:11.5px;color:var(--warn);margin:-1px 0 1px 220px}
.in-dn{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.in-dn svg{width:140px;height:140px;flex:none}
.in-lg{list-style:none;margin:0;padding:0;display:grid;gap:5px;font-size:13.5px}.in-lg li{display:flex;gap:8px;align-items:center}.in-lg s{width:10px;height:10px;border-radius:2px;display:inline-block}.in-lg b{min-width:26px;font-family:ui-monospace,Menlo,monospace}
.in-by{display:grid;grid-template-columns:minmax(80px,130px) minmax(0,1fr) 84px;gap:7px 10px;align-items:center;font-size:13px}
.in-by .bar{display:flex;height:16px;border-radius:4px;overflow:hidden;background:var(--line)}.in-by .bar i{display:block;height:100%}
.in-by .r{text-align:right;color:var(--soft);font-size:12px}.in-by .r b{color:var(--ink)}
.in-hid{min-height:16px;border:1.5px dashed color-mix(in srgb,var(--ink) 22%,var(--paper));border-radius:4px;font-size:11.5px;color:var(--soft);padding:1px 8px;display:flex;align-items:center}
.in-stk{display:flex;height:26px;border-radius:6px;overflow:hidden;margin:6px 0 10px;background:var(--line)}
.in-stk i{display:grid;place-items:center;font-style:normal;font-size:12.5px;font-weight:600;color:#fff;min-width:0}
.in-hb{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr) 78px;gap:8px 12px;align-items:center;font-size:14px}
.in-hb .tk{height:16px;background:var(--tint);border-radius:4px}.in-hb .tk i{display:block;height:100%;background:var(--accent);border-radius:4px}
.in-hb .n{text-align:right;color:var(--soft)}.in-hb .n b{color:var(--ink)}
.in-lg2{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--soft);margin-top:8px}.in-lg2 s{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}
.in-ch{display:block;width:100%;height:auto}.in-ch text{fill:var(--soft);font-size:10.5px;font-family:"Public Sans",sans-serif}.in-ch .v text{fill:var(--ink);font-weight:600}
.in-qr{border-top:1px solid var(--line);padding:14px 0}
.in-qh{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.in-qh p{margin:0;font-weight:600;max-width:68ch;font-size:14px}
.in-tg{display:inline-block;padding:1px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:color-mix(in srgb,var(--ink) 7%,var(--paper));color:var(--soft);margin-left:4px}
.in-tg.late{background:color-mix(in srgb,var(--wrong) 10%,var(--paper));color:var(--wrong)}.in-tg.wait{background:color-mix(in srgb,var(--warn) 12%,var(--paper));color:var(--warn)}.in-tg.ok{background:color-mix(in srgb,var(--right) 12%,var(--paper));color:var(--right)}
.in-an{display:grid;grid-template-columns:minmax(0,1fr) 150px 44px;gap:4px 12px;align-items:center;font-size:13.5px;padding:2px 0}
.in-an .t{display:flex;gap:7px}.in-an .t s{text-decoration:none;font-weight:700;width:13px;flex:none}.in-an .y{color:var(--right)}.in-an .x{color:var(--wrong)}
.in-an .bar{height:9px;border-radius:3px;background:var(--line);overflow:hidden}.in-an .bar i{display:block;height:100%}.in-an .p{text-align:right;font-weight:600}
.in-empty{border:1px dashed color-mix(in srgb,var(--ink) 22%,var(--paper));border-radius:12px;padding:22px;text-align:center;color:var(--soft)}
.in-empty b{color:var(--ink)}
@media (max-width:1100px){.in-wb,.in-wb.nopane{grid-template-columns:240px minmax(0,1fr)}.in-pane{grid-column:1/-1;border-left:0;padding-left:0;position:static}}
@media (max-width:820px){.in-wb,.in-wb.nopane{grid-template-columns:1fr}.in-rail{position:static;max-height:none}.in-legend{margin-left:0}.in-cards{grid-template-columns:1fr}.in-fun .st{grid-template-columns:110px minmax(0,1fr) 80px}.in-fun .dr{margin-left:0}.in-cv{height:420px}.in-an{grid-template-columns:minmax(0,1fr) 40px}.in-an .bar{grid-column:1/-1;order:3}}
.in-msg[hidden],.in-tip[hidden],.in-pane[hidden],.in-auto[hidden]{display:none}
.in-save select{height:34px;border:1px solid var(--line);border-radius:7px;padding:0 8px;width:100%;background:var(--paper);color:var(--ink);font-size:13px}
.in-save input[hidden]{display:none}

/* the company's People list: words wrap between words, an email may break anywhere */
table.team td{overflow-wrap:normal;word-break:normal}
table.team td.pname{min-width:200px}
table.team td.pname small{overflow-wrap:anywhere}
table.team .pcourse{display:block}
table.team .soft{color:var(--soft)}
/* People: numbers that filter, a toolbar, the list, a bar for the people ticked */
.pt-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 20px}
.pt-tiles a{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:12px 16px;color:var(--ink);text-decoration:none}
.pt-tiles a:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.pt-tiles a.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--tint)}
.pt-tiles span{color:var(--soft);font-size:13.5px;font-weight:600}
.pt-tiles b{font-size:26px;line-height:1.2;font-variant-numeric:tabular-nums}
.pt-tiles small{color:var(--soft);font-size:13px}
.pt-tiles a.bad b{color:var(--wrong)}
.pt-bar{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin:0 0 14px}
.pt-find{display:flex;gap:8px;flex-wrap:wrap;align-items:center;flex:1 1 520px}
.pt-find input.f{height:38px;max-width:260px;font-size:15px}
.pt-find select,.pt-give select{height:38px;border:1.5px solid var(--line);border-radius:9px;padding:0 8px;background:var(--paper);color:var(--ink);font-size:14.5px;max-width:240px}
.pt-add{display:flex;gap:8px;align-items:flex-start}
.pt-pop{position:relative}
.pt-pop>summary{list-style:none}.pt-pop>summary::-webkit-details-marker{display:none}
.pt-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:340px;max-width:calc(100vw - 32px);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:10px}
.pt-pop.up .pt-panel{top:auto;bottom:calc(100% + 8px);left:0;right:auto;max-height:60vh;overflow:auto}
.pt-panel h3{margin:0;font-size:16px}
.pt-panel label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600;color:var(--soft)}
.pt-panel label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--ink);margin:0}
.pt-panel input.f{height:40px;font-size:15px}
.pt-panel .actions{margin:4px 0 0}
table.team .pt-tick{width:28px}
table.team td.pname a{font-weight:600;color:var(--ink);text-decoration:none}
table.team td.pname a:hover{color:var(--accent);text-decoration:underline}
.pt-cs{list-style:none;margin:0;padding:0}
.pt-cs li{margin:0 0 6px;line-height:1.6}.pt-cs li:last-child{margin:0}
.pt-cs .chip{margin:0 4px;vertical-align:1px}
.pt-cs .t{font-weight:500}
.pt-cs small{display:inline!important;color:var(--soft);font-size:13px}
.pt-sel{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:18px 0 10px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.pt-sel .n{font-weight:600;margin-right:auto}
.pt-sel.js{position:sticky;bottom:16px;z-index:10;box-shadow:0 8px 24px rgba(0,0,0,.10)}
.pt-sel.js:not(.on){display:none}
.pt-empty{border:1px dashed var(--line);border-radius:14px;padding:32px;text-align:center}
.pt-empty h2{margin:0 0 6px}
.pt-names{margin:0 0 18px;padding-left:20px}.pt-names small{color:var(--soft)}
.pt-give{display:flex;gap:8px;align-items:center;margin:0}
@media (max-width:820px){.pt-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pt-tiles a{padding:10px 12px}.pt-tiles b{font-size:21px}.pt-tiles small{display:none}.pt-panel{right:auto;left:0}table.team td[data-l]:empty{display:none}.pt-find select,.pt-find input.f{max-width:none;flex:1 1 100%}}
.pt-count{color:var(--soft);font-size:14px;font-variant-numeric:tabular-nums}
/* Emails: what goes out on its own */
.em-state{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin:0 0 8px;font-size:15px}
.em-state.on{border-color:color-mix(in srgb,var(--right) 45%,var(--line));background:color-mix(in srgb,var(--right) 5%,var(--paper))}
.em-state span{color:var(--soft)}.em-state .bad{color:var(--wrong)}
.em-form{max-width:none}
.em-form section{border-bottom:1px solid var(--line);padding:0 0 22px}
.em-form h2{margin:26px 0 4px;font-size:18px}
.em-form .hint{margin:0 0 4px}
.em-row{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin:12px 0 0}
.em-row>label:not(.check){display:flex;gap:8px;align-items:center;font-size:15px;color:var(--soft)}
.em-row .check{margin:0}
.em-form select{height:38px;border:1.5px solid var(--line);border-radius:9px;padding:0 8px;background:var(--paper);color:var(--ink);font-size:15px}
.em-day{padding:6px 12px;border:1px solid var(--line);border-radius:999px}.em-day input{margin-top:3px}
.em-num{width:72px;height:38px;border:1.5px solid var(--line);border-radius:9px;padding:0 8px;font-size:15px;color:var(--ink);background:var(--paper)}
.course .ph{display:block;width:100%;aspect-ratio:16/9;border-radius:8px;background:var(--tint)}
.course.task{grid-template-columns:minmax(0,1fr) auto}
/* Certificate: the design, drawn by Maestro's script (/vendor/maestro-certificate.js) */
.ct-wrap{display:grid;grid-template-columns:360px minmax(0,1fr);gap:36px;align-items:start}
.ct-side section{border-bottom:1px solid var(--line);padding:0 0 20px;margin:0 0 20px}
.ct-side h2{font-size:17px;margin:0 0 10px}
.ct-tpls{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ct-tpl{position:relative;display:block;border:1.5px solid var(--line);border-radius:10px;padding:8px;cursor:pointer;background:var(--paper)}
.ct-tpl input{position:absolute;opacity:0;pointer-events:none}
.ct-tpl:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}
.ct-tpl:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.ct-tpl b{display:block;font-size:14px;margin-top:6px}.ct-tpl small{color:var(--soft);font-size:12.5px}
.ct-thumb{display:block;border:1px solid var(--line);border-radius:4px;overflow:hidden;min-height:40px;pointer-events:none}
.ct-f{display:block;font-size:14px;font-weight:600;color:var(--soft);margin:12px 0 4px}.ct-f .soft{font-weight:400}
.ct-in{height:40px;font-size:15px}
#ct-form select{width:100%;height:40px;border:1.5px solid var(--line);border-radius:9px;padding:0 10px;background:var(--paper);color:var(--ink);font-size:15px}
#ct-title-own{margin-top:8px}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ct-signer{margin-top:4px;padding-top:4px}
.ct-signer input[type=file]{font-size:14px;max-width:100%}
.ct-check{margin:10px 0 0}.ct-lock{color:var(--soft)}.ct-lock small{display:block;font-size:13px}
.ct-seg{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.ct-seg label{position:relative;cursor:pointer}.ct-seg input{position:absolute;opacity:0;pointer-events:none}
.ct-seg span{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:999px;padding:5px 12px;font-size:14px}
.ct-seg input:checked+span{border-color:var(--accent);color:var(--accent);font-weight:600}
.ct-seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.ct-sw{width:12px;height:12px;border-radius:3px;display:inline-block}
.ct-prev{position:sticky;top:20px}
.ct-prevhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 10px}.ct-prevhead span{color:var(--soft);font-size:14px}
.ct-stage{background:#eef0f3;border-radius:14px;padding:24px}
.ct-paper{max-width:860px;margin:0 auto;box-shadow:0 10px 30px rgba(20,30,50,.12);background:#fff}
.ct-wait{padding:60px 20px;text-align:center;color:var(--soft);margin:0}
.ct-sheet{box-shadow:0 10px 30px rgba(20,30,50,.12);max-width:100%}
@media (max-width:980px){.ct-wrap{grid-template-columns:1fr}.ct-prev{position:static}}
@media print{
 body:has(.ct-sheet) .tbar,.ct-sample-page>*:not(.ct-sheet){display:none!important}
 body:has(.ct-sheet) main{padding:0!important;max-width:none!important;margin:0!important}
 .ct-sheet{box-shadow:none}
}
.devin{margin-top:36px;padding-top:24px;border-top:1px dashed var(--line,#d0d5dd)}

/* ── Home (welcome): one light card, two tiles, goofy birds ─────────────────── */
.welcome{max-width:620px;padding:96px 24px 100px}
.wcard{position:relative;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 60px -40px rgba(13,20,80,.35);padding:48px 36px 36px}
.wperch{position:absolute;left:50%;top:-66px;width:92px;height:86px;transform:translateX(-50%);overflow:visible}
.wcard h1{margin:0 0 10px}
.wwho{margin:0;color:var(--soft);font-size:15px}
.wtiles{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:32px}
.wtile{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 12px 18px;border:1px solid var(--line);border-radius:20px;background:color-mix(in srgb,var(--tint) 7%,var(--paper));color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}
.wtile:hover{transform:translateY(-3px);box-shadow:0 18px 36px -26px rgba(13,20,80,.4);border-color:color-mix(in srgb,var(--tint) 35%,var(--line))}
.wtile:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.wtile svg{width:92px;height:92px;overflow:visible}
.wname{font-size:21px;font-weight:800;letter-spacing:-.01em}
.wbadge{position:absolute;top:12px;right:12px;padding:2px 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--soft);font-size:12.5px;font-weight:700}
.wnote{margin:22px 0 0;color:var(--soft);font-size:14.5px}
@media (max-width:420px){.wtiles{gap:12px}.wtile svg{width:72px;height:72px}.wcard{padding:44px 18px 24px}}
.bird *{stroke-linecap:round;stroke-linejoin:round}
.b-body{fill:var(--hue);stroke:#0e1116;stroke-width:3}.b-belly{fill:#fff;fill-opacity:.55}
.b-wing{fill:color-mix(in srgb,var(--hue) 70%,#0e1116);stroke:#0e1116;stroke-width:3}
.b-feet{fill:none;stroke:#ff8a00;stroke-width:3.5}.b-tuft{fill:none;stroke:#0e1116;stroke-width:3.5}
.b-white{fill:#fff;stroke:#0e1116;stroke-width:3}.b-pupil{fill:#0e1116;transition:transform .08s linear}
.b-glass{fill:none;stroke:#0e1116;stroke-width:3.5}.b-beak{fill:#ff8a00;stroke:#0e1116;stroke-width:3}
.b-cap{fill:#0e1116;stroke:#0e1116;stroke-width:3}.b-tassel{fill:none;stroke:#b6ff00;stroke-width:3}.b-tassel-end{fill:#b6ff00;stroke:#0e1116;stroke-width:2}
@media (prefers-reduced-motion:no-preference){.b-wave{transform-box:fill-box;transform-origin:10% 90%;animation:b-wave 1.2s ease-in-out infinite}}
@keyframes b-wave{50%{transform:rotate(-22deg)}}
