:root{--bg:#0b1120;--panel:#131c31;--border:#243049;--text:#e2e8f0;--muted:#94a3b8;--accent:#6366f1;--panel-2:#1b2942;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--accent-hover:#4f46e5;--ok:#22c55e;--warn:#f59e0b;--danger:#ef4444}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}body{grid-template-columns:var(--nav-w,228px) minmax(0, 1fr);min-height:100vh;display:grid}html[data-nav-rail] body,:is(body:has(.admin-shell),body:has(.hr-nav),body:has(.wide-page)){--nav-w:56px}@media (max-width:1400px){body{--nav-w:56px}}.sidenav{container:sidenav/inline-size}.sidenav-inner{height:100dvh;width:var(--nav-w,228px);background:var(--panel);border-right:1px solid var(--border);scrollbar-width:thin;z-index:15;flex-direction:column;transition:width .15s;display:flex;position:sticky;top:0;overflow:hidden auto;container:navpanel/inline-size}.side-brand{border-bottom:1px solid var(--border);flex:none;align-items:center;height:46px;display:flex}.side-toggle{height:100%;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:0;flex:0 0 56px;padding:0;font-size:16px}.side-toggle:hover{filter:none;background:#6366f114}.side-title{letter-spacing:.3px;white-space:nowrap;font-weight:700}.sidenav nav{flex:none;padding-bottom:8px}.side-h{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);white-space:nowrap;padding:16px 12px 6px 16px;font-size:11px;font-weight:600}.side-link{height:30px;color:var(--muted);white-space:nowrap;align-items:center;display:flex;overflow:hidden}.side-link:hover{color:var(--text);background:#6366f10d;text-decoration:none}.side-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.side-glyph{text-align:center;flex:0 0 56px;font-size:15px;line-height:1}.side-label{text-overflow:ellipsis;font-size:13px;overflow:hidden}.side-link[aria-current=page]{color:var(--text);background:var(--panel-2);box-shadow:inset 3px 0 0 var(--accent)}.side-link[aria-current=page] .side-glyph{color:var(--accent)}.side-foot{border-top:1px solid var(--border);flex-direction:column;flex:none;gap:8px;margin-top:auto;padding:12px 14px;display:flex}.side-me{align-items:center;gap:8px;min-width:0;display:flex}.side-avatar{background:var(--panel-2);border:1px solid var(--border);width:24px;height:24px;color:var(--muted);text-transform:uppercase;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.side-email{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.side-foot-links{flex-wrap:wrap;gap:8px;display:flex}.ext{font-family:var(--mono);color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-size:12px}@container navpanel (max-width:60px){.side-title,.side-h,.side-email,.side-me .badge{display:none}.side-foot-links{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.side-group+.side-group{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.side-foot{align-items:center;padding:12px 0}}@container sidenav (max-width:60px){.sidenav-inner:focus-within,.sidenav[data-open] .sidenav-inner{z-index:30;width:228px;box-shadow:8px 0 24px #00000073}@media (hover:hover){.sidenav-inner:hover{z-index:30;width:228px;box-shadow:8px 0 24px #00000073}}}@media (max-width:720px){.sidenav[data-open] .sidenav-inner{height:100dvh;position:fixed;top:0;left:0}}.lang-switch{flex:none;width:auto;padding:.3rem .45rem;font-size:.8rem}.container{width:100%;max-width:960px;margin:0 auto;padding:2rem 1.5rem}.container:has(.wide-page){max-width:1240px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:1rem;padding:1.25rem}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}h1{margin:0 0 .5rem;font-size:1.8rem}h2{margin:1.5rem 0 .75rem;font-size:1.3rem}label{color:var(--muted);margin:.75rem 0 .25rem;font-size:.85rem;display:block}input,select{border:1px solid var(--border);width:100%;color:var(--text);background:#0e1626;border-radius:8px;padding:.6rem .7rem;font-size:.95rem}button,.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.55rem 1rem;font-size:.9rem;font-weight:600;display:inline-block}button:hover,.btn:hover{background:var(--accent-hover);text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.ghost,.btn.ghost{border:1px solid var(--border);color:var(--text);background:0 0}.btn.ghost:hover{background:var(--card-hover,#ffffff0a)}button.danger{background:var(--danger)}.btn.btn-sso{border:1px solid var(--border);width:100%;color:var(--text);background:0 0;justify-content:center;align-items:center;gap:.55rem;display:flex}.btn.btn-sso:hover{background:var(--card-hover,#ffffff0a)}.badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.badge.PENDING{color:var(--warn);background:#422006}.badge.APPROVED,.badge.PUBLISHED{color:var(--ok);background:#052e16}.badge.SUSPENDED,.badge.REJECTED,.badge.ARCHIVED{color:var(--danger);background:#450a0a}.badge.DRAFT{color:var(--muted);background:#1e293b}.badge.ACTIVE{color:var(--ok);background:#052e16}.badge.STALLED{color:var(--warn);background:#422006}.badge.NEVER{color:var(--danger);background:#450a0a}.badge.FAST{color:var(--warn);background:#422006}.badge.IMPLAUSIBLE{color:var(--danger);background:#450a0a}.badge.HR{color:#a5b4fc;background:#1e1b4b}.badge.MANAGER{color:#93c5fd;background:#172554}.badge.ASSIGNED{color:var(--muted);background:#1e293b}.error{color:var(--danger);margin-top:.5rem;font-size:.9rem}.success{color:var(--ok);margin-top:.5rem;font-size:.9rem}.muted{color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem}th{color:var(--muted);font-weight:600}.progressbar{background:#0e1626;border-radius:999px;height:8px;overflow:hidden}.progressbar>span{background:var(--accent);height:100%;display:block}.container:has(.admin-shell){max-width:1240px}.admin-shell{grid-template-columns:190px 1fr;align-items:start;gap:1.75rem;display:grid}.admin-content{min-width:0}.admin-nav{flex-direction:column;gap:.25rem;display:flex;position:sticky;top:2rem}.admin-nav a{color:var(--muted);border-radius:8px;padding:.5rem .75rem;font-size:.95rem}.admin-nav a:hover{background:var(--panel);color:var(--text);text-decoration:none}.admin-nav a.active{background:var(--panel);color:var(--text);border:1px solid var(--border)}@media (max-width:720px){.admin-shell{grid-template-columns:1fr}.admin-nav{flex-flow:wrap;position:static;top:auto}}.admin-nav-group{flex-direction:column;gap:.25rem;display:flex}.admin-nav-children{border-left:1px solid var(--border);flex-direction:column;gap:.25rem;margin:.1rem 0 .25rem .55rem;padding-left:.6rem;display:flex}.admin-nav-children a{padding:.35rem .6rem;font-size:.875rem}.report-filters{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.report-filters label{flex-direction:column;gap:.25rem;margin:0;display:flex}.report-filters label span{color:var(--muted);font-size:.85rem}.report-filters select,.report-filters input{width:auto;min-width:150px}.report-filters-actions,.table-filters-actions{align-items:flex-end;gap:.5rem;margin-left:auto;display:flex}.report-meta{margin-top:.25rem;font-size:.85rem}.report td.num,.report th.num{text-align:right;white-space:nowrap}.report .total-row td{border-top:2px solid var(--border)}.report-section{margin-top:1rem}.report-section h3,.report-user-block h3{margin:1.25rem 0 .5rem;font-size:1.05rem}.container:has(.course-filters){max-width:1240px}.course-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.course-head h1{margin:0}.course-meta{font-size:.85rem}.course-filters,.table-filters{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin:1rem 0 1.1rem;display:flex}.course-filters label,.table-filters label{flex-direction:column;gap:.25rem;margin:0;display:flex}.course-filters label>span,.table-filters label>span{color:var(--muted);font-size:.85rem}.course-filters input[type=search],.course-filters select,.table-filters input[type=search],.table-filters select{width:auto;min-width:190px}.course-filters .course-check{cursor:pointer;flex-direction:row;align-items:center;gap:.45rem;padding-bottom:.55rem}.course-filters .course-check input{width:auto;accent-color:var(--accent);margin:0}.course-filters .course-check span{color:var(--text);font-size:.9rem}.table-filters label.checkbox{cursor:pointer;flex-direction:row;align-items:center;gap:.45rem;padding-bottom:.55rem}.table-filters label.checkbox input{width:auto;accent-color:var(--accent);margin:0}.table-filters label.checkbox>span{color:var(--text);font-size:.9rem}.container:has(.table-filters){max-width:1240px}.picker-tools{flex-wrap:wrap;align-items:center;gap:.4rem .75rem;margin-bottom:.5rem;display:flex}.picker-tools label.checkbox{color:var(--muted);cursor:pointer;align-items:center;gap:.35rem;margin:0;font-size:.85rem;display:flex}.picker-tools label.checkbox input{width:auto;accent-color:var(--accent);margin:0}.picker-tools label.checkbox:has(input:disabled){opacity:.5;cursor:not-allowed}.picker-hint{color:var(--muted);margin:0 0 .5rem;font-size:.8rem;line-height:1.9}.chip{border:1px solid var(--border);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.3rem;width:auto;margin-right:.35rem;padding:.05rem .5rem;font-size:.78rem;display:inline-flex}.chip:hover{color:var(--text);border-color:var(--accent)}.chip.on{color:var(--text);border-color:var(--accent);background:#6366f129}.chip code{color:inherit;background:0 0;padding:0;font-size:.78rem}.chip .chip-count{opacity:.65}.container:has(.hr-nav){max-width:1240px}@media (min-width:1400px){:is(.container:has(.admin-shell),.container:has(.course-filters),.container:has(.table-filters),.container:has(.wide-page),.container:has(.hr-nav)){max-width:calc(100vw - 4rem)}}.hr-nav{flex-wrap:wrap;gap:.25rem;margin-bottom:1.5rem;display:flex}.hr-nav a{color:var(--muted);border-radius:8px;padding:.5rem .75rem;font-size:.95rem}.hr-nav a:hover{background:var(--panel);color:var(--text);text-decoration:none}.hr-nav a.active{background:var(--panel);color:var(--text);border:1px solid var(--border)}.hr-section-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.hr-section-head h2{margin-bottom:.5rem}.warnnum{color:var(--warn)}.course-filters .course-sort{margin-left:auto}.course-group{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:.9rem;overflow:hidden}.course-group.dynamic{border-color:#3a4160}.course-group-head{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);font:inherit;text-align:left;background:0 0;border-radius:0;align-items:center;gap:.6rem;padding:.7rem .9rem;font-weight:600;display:flex}.course-group-head:hover{background:#17223a}.course-group.collapsed .course-group-head{border-bottom-color:#0000}.course-group.dynamic .course-group-head{background:#151d33}.course-group-head .caret{color:var(--muted);width:.8em;font-size:.7rem}.course-group.collapsed .course-group-head .caret{transform:rotate(-90deg)}.course-group-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.78rem;font-weight:500}.course-group-more{border-top:1px solid var(--border);color:var(--muted);justify-content:flex-end;align-items:center;gap:.6rem;padding:.45rem .9rem;font-size:.8rem;display:flex}.course-group-more button{color:var(--accent);font:inherit;background:0 0;border:0;padding:0;font-weight:500}.course-group-more button:hover{background:0 0;text-decoration:underline}.course-table-wrap{overflow-x:auto}.course-table td,.course-table th{vertical-align:top;padding:.5rem .9rem}.course-table tbody tr:last-child td{border-bottom:0}.course-table th{letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;font-size:.72rem}.course-table td.c-title{min-width:15rem}.course-table td.c-title .t{font-weight:600}.course-table td.c-title .pin-btn{color:var(--muted);vertical-align:-1px;cursor:pointer;background:0 0;border:0;margin:0;padding:0 .4rem 0 0;font-size:1rem;line-height:1}.course-table td.c-title .pin-btn:hover{color:#fbbf24;background:0 0}.course-table td.c-title .pin-btn.on{color:#fbbf24}.course-table td.c-title .pin-btn:disabled{opacity:.35;cursor:not-allowed;color:var(--muted)}.course-table td.c-title .s{color:#7f8ea8;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;display:block}.course-table td.c-about{color:var(--muted);width:100%;min-width:14rem;max-width:34rem;font-size:.84rem}.course-table td.c-about>span{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.course-table td.c-added{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.83rem}.course-table td.c-added>span{display:block}.course-table td.c-added .d-updated.changed{color:var(--danger)}.course-table td.c-progress,.course-table th.c-progress{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;font-size:.85rem}.course-table td.c-status,.course-table td.c-act{white-space:nowrap}.course-table td.c-act{text-align:right}.badge.NONE{color:var(--muted);background:#1e293b}.badge.NEW{color:#a5b4fc;background:#1e1b4b;margin-left:.4rem}.btn-sm{border-radius:8px;padding:.28rem .7rem;font-size:.82rem}.link-open{color:var(--accent);font-size:.85rem;font-weight:500}.link-quiet{color:var(--muted);font-size:.85rem}.link-quiet:hover{color:var(--text)}.my-actions{justify-content:flex-end;align-items:center;gap:.75rem;display:inline-flex}.progress-cell{justify-content:flex-end;align-items:center;gap:.5rem;display:inline-flex}.progress-cell .progress-readout{white-space:nowrap}.progress-cell abbr{color:var(--muted);cursor:help;text-decoration:none}.course-table td.c-lastseen,.course-table th.c-lastseen{white-space:nowrap;font-size:.83rem}.lastseen{flex-direction:column;line-height:1.3;display:inline-flex}.lastseen-day{font-variant-numeric:tabular-nums}.lastseen-page{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;font-size:.78rem;overflow:hidden}.done-tick{color:var(--ok);font-weight:700}.progress-hero{gap:.9rem;display:grid}.progress-hero-bar{align-items:center;gap:.75rem;display:flex}.progress-hero-bar .progressbar{flex:1;height:12px}.progress-hero-bar strong{white-space:nowrap;font-variant-numeric:tabular-nums}.progress-hero-actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.progress-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:0;display:grid}.progress-stats dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.progress-stats dd{font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:1.05rem;font-weight:600}.inline-select,.inline-input{width:100%;min-width:6rem;margin:0;padding:.25rem .4rem;font-size:.85rem}.inline-input.narrow{min-width:3.5rem;max-width:5.5rem}.inline-hint{margin-top:.15rem;font-size:.72rem;display:block}.meta-editor{flex-wrap:nowrap;align-items:center;gap:4px;display:flex}.meta-editor input{width:auto;margin:0;padding:.25rem .4rem;font-size:.85rem}.meta-editor input.meta-vendor{width:5.5rem}.meta-editor input.meta-level{width:6rem}.meta-editor input.meta-tags{width:10rem}.meta-editor button{white-space:nowrap;padding:.28rem .6rem;font-size:.82rem}td.nowrap{white-space:nowrap}.table-pager{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin:.6rem 0 1.25rem;font-size:.85rem;display:flex}.table-pager label{align-items:center;gap:.4rem;margin:0;display:flex}.table-pager label>span{color:var(--muted)}.table-pager select{width:auto;min-width:0;margin:0;padding:.25rem .4rem;font-size:.85rem}.table-pager-nav{align-items:center;gap:.6rem;margin-left:auto;display:flex}.table-pager-nav button{border-radius:8px;padding:.28rem .7rem;font-size:.82rem}.table-pager-nav button:disabled{opacity:.45;cursor:not-allowed}@media (max-width:720px){.table-pager-nav,.course-filters .course-sort{margin-left:0}}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.stat{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem}.stat .num{font-size:1.9rem;font-weight:700;line-height:1.2}.stat .label{color:var(--muted);font-size:.85rem}.stat.alert{border-color:var(--warn)}.stat.alert .num{color:var(--warn)}
