@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--ink:#151312;--paper:#f6f3ec;--paper-2:#efeae0;--crimson:#8b1a1a;--crimson-bright:#a52222;--gold:#b5893a;--sage:#3f6152;--line:#ddd6c8;--line-strong:#c7bda8;--muted:#6f685c;--white:#fffdf8;--shadow:0 1px 2px rgba(21,19,18,.04),0 8px 28px -12px rgba(21,19,18,.14)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased}body{font-family:Inter,system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.5;font-size:14px}::selection{background:var(--crimson);color:var(--white)}.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{background:var(--ink);color:#e9e3d6;padding:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:22px 22px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.brand .mark{font-family:Fraunces,serif;font-weight:600;font-size:19px;letter-spacing:-.01em;color:var(--white);line-height:1.1}.brand .mark span{color:var(--crimson-bright)}.brand .sub{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a8172;margin-top:7px}nav{padding:14px 12px;flex:1}.nav-label{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#736a5b;padding:12px 10px 7px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;color:#cfc8ba;font-size:13.5px;font-weight:500;cursor:pointer;margin-bottom:1px;transition:background .15s,color .15s}.nav-item:hover{background:#ffffff0d;color:var(--white)}.nav-item.active{background:var(--crimson);color:var(--white)}.nav-item .ic{width:16px;height:16px;flex:none;opacity:.9}.whoami{padding:14px 18px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:11px}.whoami .av{width:32px;height:32px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--crimson),var(--gold));display:grid;place-items:center;color:#fff;font-weight:600;font-size:13px;font-family:Fraunces,serif}.whoami .who{font-size:12.5px;font-weight:600;color:#e9e3d6}.whoami .role{font-size:10.5px;color:#8a8172;font-family:IBM Plex Mono,monospace}main{padding:0;min-width:0}.topbar{background:var(--white);border-bottom:1px solid var(--line);padding:16px 30px;display:flex;align-items:center;gap:20px;position:sticky;top:0;z-index:20}.crumbs{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted);letter-spacing:.03em}.crumbs b{color:var(--ink);font-weight:600}.scope-switch{margin-left:auto;display:flex;align-items:center;gap:10px}.scope-switch label{font-size:11px;color:var(--muted);font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.08em}select#client{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:8px;padding:8px 34px 8px 13px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b1a1a' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .15s}select#client:hover{border-color:var(--crimson)}.feed-pill{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--sage);font-family:IBM Plex Mono,monospace;background:#3f615217;padding:6px 11px;border-radius:20px;font-weight:500}.feed-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--sage);box-shadow:0 0 #3f615280;animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 #3f615273}70%{box-shadow:0 0 0 7px #3f615200}to{box-shadow:0 0 #3f615200}}.canvas{padding:28px 30px 60px}.page-head{margin-bottom:24px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}.page-head h1{font-family:Fraunces,serif;font-weight:600;font-size:32px;letter-spacing:-.02em;line-height:1.05;color:var(--ink)}.page-head h1 em{font-style:italic;color:var(--crimson)}.page-head .desc{font-size:13.5px;color:var(--muted);margin-top:6px;max-width:52ch}.asof{text-align:right;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted);line-height:1.7}.asof b{color:var(--ink);font-size:13px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.kpi{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:17px 18px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--crimson)}.kpi:nth-child(2):before{background:var(--gold)}.kpi:nth-child(3):before{background:var(--sage)}.kpi:nth-child(4):before{background:var(--ink)}.kpi .lab{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:600;font-family:IBM Plex Mono,monospace}.kpi .val{font-family:Fraunces,serif;font-size:34px;font-weight:600;letter-spacing:-.02em;margin-top:8px;line-height:1}.kpi .delta{font-size:11.5px;margin-top:9px;font-weight:600;display:flex;align-items:center;gap:5px}.kpi .delta.up{color:var(--sage)}.kpi .delta.flat{color:var(--muted)}.kpi .delta .m{font-family:IBM Plex Mono,monospace;color:var(--muted);font-weight:400}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.card{background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.card.wide{grid-column:1/-1}.card-h{padding:16px 20px 0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card-h h3{font-family:Fraunces,serif;font-size:17px;font-weight:600;letter-spacing:-.01em}.card-h .hint{font-size:11px;color:var(--muted);font-family:IBM Plex Mono,monospace}.card-b{padding:16px 20px 20px}.chartwrap{position:relative}svg.chart{width:100%;height:210px;display:block;overflow:visible}.gridline{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}.axlab{font-family:IBM Plex Mono,monospace;font-size:9.5px;fill:var(--muted)}.area{fill:url(#grad)}.trend{fill:none;stroke:var(--crimson);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.dot-pt{fill:var(--white);stroke:var(--crimson);stroke-width:2.5}.dot-hit{fill:transparent;cursor:pointer}table{width:100%;border-collapse:collapse}th{text-align:left;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:9px 12px;border-bottom:1.5px solid var(--line-strong);white-space:nowrap}th.num,td.num{text-align:right}td{padding:11px 12px;border-bottom:1px solid var(--line);font-size:13px}tr:last-child td{border-bottom:none}tbody tr{cursor:pointer;transition:background .12s}tbody tr:hover{background:var(--paper-2)}.cli{display:flex;align-items:center;gap:10px;font-weight:600}.cli .badge{width:26px;height:26px;border-radius:7px;flex:none;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;font-family:Fraunces,serif}.mono{font-family:IBM Plex Mono,monospace;font-size:12px}.bar{height:6px;border-radius:3px;background:var(--paper-2);position:relative;min-width:80px;overflow:hidden}.bar>i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--sage)}.pct{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;color:var(--ink)}.go{color:var(--crimson);font-weight:600;font-size:12px;white-space:nowrap}.topic{display:flex;align-items:center;gap:13px;padding:11px 0;border-bottom:1px solid var(--line)}.topic:last-child{border-bottom:none}.topic .rank{font-family:Fraunces,serif;font-size:15px;font-weight:600;color:var(--line-strong);width:22px;flex:none}.topic .tinfo{flex:1;min-width:0}.topic .tt{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic .tc{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted);margin-top:1px}.topic .tnum{text-align:right;flex:none}.topic .tnum .big{font-weight:700;font-size:15px}.topic .tnum .sm{font-size:10.5px;color:var(--muted);font-family:IBM Plex Mono,monospace}.donut-wrap{display:flex;align-items:center;gap:22px}.legend{display:flex;flex-direction:column;gap:10px;flex:1}.leg{display:flex;align-items:center;gap:9px;font-size:12.5px}.leg .sw{width:11px;height:11px;border-radius:3px;flex:none}.leg .ln{flex:1;color:var(--ink);font-weight:500}.leg .lv{font-family:IBM Plex Mono,monospace;font-weight:600}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace}.chip.done{background:#3f61521f;color:var(--sage)}.chip.prog{background:#b5893a26;color:#8a6420}.note{margin-top:22px;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:14px 17px;font-size:12px;color:var(--muted);display:flex;gap:11px;align-items:flex-start}.note svg{flex:none;margin-top:1px}.note b{color:var(--ink)}.tip{position:fixed;pointer-events:none;background:var(--ink);color:var(--white);padding:8px 11px;border-radius:8px;font-size:12px;opacity:0;transition:opacity .12s;z-index:50;font-family:IBM Plex Mono,monospace;box-shadow:var(--shadow);white-space:nowrap}.tip b{color:#fff;font-family:Inter;font-weight:600}@media (max-width:960px){.app{grid-template-columns:1fr}aside{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto}nav{display:flex;gap:4px;padding:10px}.nav-label,.whoami{display:none}.brand{border:none}.kpis{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}}.flab{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:4px;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.05em}.fattr{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--crimson);background:#8b1a1a12;padding:1px 5px;border-radius:4px;text-transform:none;letter-spacing:0;margin-left:5px}.finp{width:100%;font-family:Inter,sans-serif;font-size:13px;padding:8px 11px;border:1.5px solid var(--line-strong);border-radius:7px;background:var(--paper);color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none}.finp:focus{outline:none;border-color:var(--crimson)}select.finp{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b1a1a' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:32px}.btn-primary{background:var(--crimson);color:#fff;border:none;border-radius:8px;padding:11px;font-family:Inter;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s;margin-top:4px}.btn-primary:hover{background:var(--crimson-bright)}.src-tag{display:inline-flex;align-items:center;gap:5px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:20px}.src-tag.feed{background:#3f61521f;color:var(--sage)}.src-tag.map{background:#b5893a26;color:#8a6420}.setbtn{font-family:Inter;font-size:11.5px;font-weight:600;color:var(--crimson);background:none;border:1.5px solid var(--line-strong);border-radius:6px;padding:4px 9px;cursor:pointer}.setbtn:hover{border-color:var(--crimson)}.cpick{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:8px;cursor:pointer;transition:background .12s;margin-bottom:2px}.cpick:hover{background:var(--paper-2)}.cpick.on{background:var(--ink)}.cpick.on .cpick-name,.cpick.on .cpick-sub{color:#fff}.cpick .badge{width:28px;height:28px;border-radius:8px;flex:none;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;font-family:Fraunces,serif}.cpick-name{font-weight:600;font-size:13px}.cpick-sub{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted)}.bundle{border:1px solid var(--line);border-radius:11px;margin-bottom:12px;overflow:hidden;background:var(--white)}.bundle-h{display:flex;align-items:center;gap:12px;padding:13px 15px;background:var(--paper-2);cursor:pointer}.bundle-h .btitle{font-family:Fraunces,serif;font-weight:600;font-size:14px;flex:1}.bundle-h .bcount{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted);margin-right:8px}.toggle{width:38px;height:22px;border-radius:11px;background:var(--line-strong);position:relative;flex:none;transition:background .15s;cursor:pointer}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px #0003}.toggle.on{background:var(--sage)}.toggle.on:after{transform:translate(16px)}.toggle.partial{background:var(--gold)}.toggle.partial:after{transform:translate(8px)}.courses{padding:4px 15px 12px}.crow{display:flex;align-items:center;gap:11px;padding:8px 4px;border-bottom:1px solid var(--line)}.crow:last-child{border-bottom:none}.crow .cbox{width:19px;height:19px;border-radius:5px;border:1.8px solid var(--line-strong);flex:none;cursor:pointer;display:grid;place-items:center;transition:all .12s}.crow .cbox.on{background:var(--sage);border-color:var(--sage)}.crow .cbox.on:after{content:"✓";color:#fff;font-size:12px;font-weight:700}.crow .cname{flex:1;font-size:13px;font-weight:500}.crow .ccode{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted)}.tile{display:flex;align-items:center;gap:13px;padding:14px 15px;background:var(--white);border:1px solid var(--line);border-radius:11px;margin-bottom:9px}.tile .tico{width:38px;height:38px;border-radius:9px;flex:none;display:grid;place-items:center;background:linear-gradient(135deg,var(--crimson),var(--gold));color:#fff}.tile .tname{font-weight:600;font-size:13.5px}.tile .tmeta{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted);margin-top:1px}.tile .launch{margin-left:auto;font-size:11.5px;font-weight:600;color:var(--crimson);border:1.5px solid var(--line-strong);border-radius:7px;padding:6px 12px}.role-toggle{display:flex;background:var(--paper-2);border-radius:9px;padding:3px;gap:2px}.rt-btn{border:none;background:none;font-family:Inter;font-size:12px;font-weight:600;color:var(--muted);padding:6px 13px;border-radius:7px;cursor:pointer;transition:all .15s}.rt-btn.active{background:var(--white);color:var(--ink);box-shadow:0 1px 2px #00000014}.super-only.nav-hidden{display:none}.lc{display:inline-flex;align-items:center;gap:5px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px}.lc.active{background:#3f61521f;color:var(--sage)}.lc.invited{background:#b5893a26;color:#8a6420}.lc.reset{background:#8b1a1a1a;color:var(--crimson)}.lc.sso{background:#3a4a7a1f;color:#3a4a7a}.lm-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:5px 11px;border-radius:8px;font-family:Inter}.lm-badge.issued{background:#b5893a1f;color:#8a6420}.lm-badge.fed{background:#3a4a7a1a;color:#3a4a7a}.seg{display:flex;gap:0;border:1.5px solid var(--line-strong);border-radius:8px;overflow:hidden;width:fit-content}.seg button{border:none;background:var(--paper);font-family:Inter;font-size:12px;font-weight:600;color:var(--muted);padding:7px 14px;cursor:pointer}.seg button.on{background:var(--ink);color:#fff}.dropzone{border:2px dashed var(--line-strong);border-radius:12px;padding:26px;text-align:center;color:var(--muted);background:var(--paper);cursor:pointer;transition:border-color .15s}.dropzone:hover{border-color:var(--crimson)}.logrow{display:flex;align-items:center;gap:14px;padding:13px 15px;border-bottom:1px solid var(--line)}.logrow:last-child{border-bottom:none}.logrow .lstatus{width:9px;height:9px;border-radius:50%;flex:none}.logrow .ok{background:var(--sage)}.logrow .empty{background:var(--gold)}.logrow .fail{background:var(--crimson)}.repcard{border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--white);display:flex;flex-direction:column;gap:12px}.repcard h4{font-family:Fraunces;font-size:15px;font-weight:600}.pwd-box{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;background:var(--paper-2);color:var(--ink);padding:3px 8px;border-radius:5px;letter-spacing:.03em}.method-pick{display:flex;flex-direction:column;gap:8px;margin-top:6px}.method-opt{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1.5px solid var(--line);border-radius:9px;cursor:pointer;transition:border-color .15s,background .15s}.method-opt:hover{border-color:var(--line-strong)}.method-opt.on{border-color:var(--crimson);background:#8b1a1a08}.method-opt .mo-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--line-strong);flex:none;margin-top:2px}.method-opt.on .mo-dot{border-color:var(--crimson);background:radial-gradient(circle,var(--crimson) 0 4px,transparent 5px)}.method-opt .mo-t{font-weight:600;font-size:13px}.method-opt .mo-d{font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e18106b;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-card{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 24px 60px #1e181047;padding:22px 24px;width:100%;max-width:420px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-head h2{font-family:Fraunces,serif;font-size:19px;font-weight:600;margin:0}.kpi.clickable{cursor:pointer;transition:border-color .12s ease,transform .12s ease}.kpi.clickable:hover{border-color:var(--line-strong);transform:translateY(-1px)}.kpi.clickable:focus-visible{outline:2px solid var(--crimson);outline-offset:2px}.kpi.active{border-color:var(--crimson)}.kpi-more{font-family:Inter,sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--crimson);margin-top:6px;opacity:.75}.seg{display:flex;gap:0;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}.seg-b{flex:1;padding:7px 10px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:600;color:var(--muted);background:none;border:none;cursor:pointer}.seg-b+.seg-b{border-left:1px solid var(--line-strong)}.seg-b.on{background:var(--crimson);color:#fff}.seg-toggle{display:flex;align-items:center;gap:8px;font-size:12.5px;cursor:pointer;color:var(--ink)}.hintbox{font-size:11.5px;color:var(--muted);background:var(--paper-2);border-radius:8px;padding:8px 10px;line-height:1.6}.linkish{font-family:Inter,sans-serif;font-size:12px;font-weight:600;color:var(--crimson);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}textarea.finp{resize:vertical;min-height:90px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--paper);padding:24px}.login-card{width:360px;max-width:92vw;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px 26px;display:flex;flex-direction:column}.btn-sso{background:var(--ink);color:var(--white);border:none;border-radius:8px;padding:11px;font-family:Inter,sans-serif;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s}.btn-sso:hover{background:#2a2724}.btn-sso:disabled{opacity:.6;cursor:default}.login-or{display:flex;align-items:center;text-align:center;color:var(--muted);font-size:11px;font-family:IBM Plex Mono,monospace;margin:16px 0 6px}.login-or:before,.login-or:after{content:"";flex:1;border-bottom:1px solid var(--line)}.login-or span{padding:0 12px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#15131266;z-index:60;display:flex;justify-content:flex-end}.drawer-panel{width:440px;max-width:92vw;background:var(--white);height:100%;overflow-y:auto;box-shadow:-8px 0 40px -12px #1513124d}.whoami .setbtn{padding:4px 8px}.learner-app{min-height:100vh;background:var(--paper)}.learner-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 30px;background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.learner-who{display:flex;align-items:center;gap:12px}.learner-who .who{font-weight:600;font-size:13px}.learner-who .role{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.learner-canvas{max-width:1120px;margin:0 auto;padding:34px 30px 60px}.learner-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}.learner-stat{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:15px 18px;box-shadow:var(--shadow);text-align:left;cursor:pointer;font:inherit;transition:border-color .12s,box-shadow .12s}.learner-stat:hover{border-color:var(--line-strong)}.learner-stat.active{border-color:var(--crimson);box-shadow:0 0 0 1px var(--crimson),var(--shadow)}.learner-stat .lab{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.learner-stat .val{font-family:Fraunces,serif;font-size:30px;font-weight:600;margin-top:4px}.learner-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.learner-controls .search{flex:1;min-width:220px}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:var(--white)}.seg button{border:none;background:transparent;padding:8px 13px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;border-right:1px solid var(--line);transition:background .12s,color .12s}.seg button:last-child{border-right:none}.seg button:hover{color:var(--ink)}.seg button.active{background:var(--crimson);color:#fff}.result-count{font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--muted);margin-bottom:18px;display:flex;align-items:center;gap:12px}.clear-filters{border:none;background:none;color:var(--crimson);font-family:Inter,sans-serif;font-size:11.5px;font-weight:600;cursor:pointer;padding:0}.clear-filters:hover{text-decoration:underline}.course-group{margin-bottom:28px}.course-group-title{font-family:Fraunces,serif;font-size:15px;font-weight:600;color:var(--ink);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px}.course-group-title span{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;color:var(--muted)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:16px}.course-card{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:12px;padding:18px 18px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column}.course-card.completed{border-left-color:var(--sage)}.course-card.progress{border-left-color:var(--gold)}.course-card.not_started{border-left-color:var(--crimson)}.course-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.course-bundle{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.chip.todo{background:#8b1a1a1a;color:var(--crimson)}.course-title{font-family:Fraunces,serif;font-size:17px;font-weight:600;line-height:1.3}.course-code{font-size:11px;color:var(--muted)}.course-thumb{width:calc(100% + 36px);margin:-18px -18px 14px;height:116px;object-fit:cover;border-radius:12px 12px 0 0;background:var(--paper-2);display:block}.course-sub{display:flex;align-items:baseline;gap:6px;margin-top:4px;flex-wrap:wrap}.course-dur{font-size:11.5px;color:var(--muted);font-weight:600}.course-desc{font-size:12.5px;line-height:1.5;color:var(--muted);margin:10px 0 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.course-meta{margin:14px 0 16px;display:flex;flex-direction:column;gap:6px;flex:1}.course-meta div{display:flex;justify-content:space-between;gap:10px;font-size:12.5px}.course-meta dt{color:var(--muted)}.course-meta dd{font-weight:600;color:var(--ink)}.course-launch{display:block;text-align:center;background:var(--crimson);color:#fff;text-decoration:none;border-radius:8px;padding:10px;font-size:13px;font-weight:600;transition:background .15s}.course-launch:hover{background:var(--crimson-bright)}.course-launch.disabled{background:var(--paper-2);color:var(--muted);cursor:not-allowed}@media (max-width: 720px){.learner-stats{grid-template-columns:repeat(2,1fr)}.learner-canvas{padding:24px 18px 48px}}
