@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/poppins-400-BwTUGeWf.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/poppins-400-italic-CxYFm1lD.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/poppins-500-CWICHMj6.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/poppins-600-DJVo7c07.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/poppins-700-g9MkRaG0.woff2)format("woff2")}:root{--text:#5f5f5f;--text-h:#4c3128;--bg:#fff;--surface:#fff6f0;--border:#e3e3e3;--code-bg:#fff6f0;--accent:#ad6243;--accent-bg:#ad62431a;--accent-border:#ad624373;--on-accent:#fff;--success:#27ae60;--warning:#9a6700;--danger:#b3261e;--danger-bg:#b3261e14;--social-bg:#fff6f099;--shadow:#4c31281a 0 10px 15px -3px, #4c31280d 0 4px 6px -2px;--sans:"Poppins", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Poppins", system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/150% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--text:#c6b8b1;--text-h:#f7f0eb;--bg:#1c1512;--surface:#241a16;--border:#3a2b25;--code-bg:#241a16;--accent:#d08a66;--accent-bg:#d08a6629;--accent-border:#d08a6673;--on-accent:#241a16;--success:#4ecb84;--warning:#e0a750;--danger:#ef7a72;--danger-bg:#ef7a7224;--social-bg:#241a1699;--shadow:#00000073 0 10px 15px -3px, #0000004d 0 4px 6px -2px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}#root{flex-direction:column;min-height:100svh;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-.3px;margin:0 0 .35rem;font-size:1.6rem;line-height:1.25}h2{letter-spacing:-.2px;margin:0 0 .5rem;font-size:1.15rem;line-height:1.3}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.auth-loading{opacity:.7;place-items:center;min-height:60vh;display:grid}.auth-page{flex:auto;justify-content:center;align-items:center;padding:3rem 1.25rem;display:flex}.auth-card{text-align:left;flex-direction:column;gap:2.5rem;width:100%;max-width:22rem;display:flex}.auth-head{text-align:center}.auth-mark{object-fit:contain;width:3.5rem;height:3.5rem;margin:0 auto;display:block}.auth-head h1{letter-spacing:-.3px;margin:1.75rem 0 0;font-size:1.5rem;font-weight:600}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.auth-fields{flex-direction:column;display:flex}.auth-form input,.auth-form select{font:inherit;border:1px solid var(--border);color:inherit;background:0 0;border-radius:0;padding:.6rem .75rem}.auth-fields input:first-child,.auth-fields select:first-child{border-radius:.5rem .5rem 0 0}.auth-fields input:last-child,.auth-fields select:last-child{border-radius:0 0 .5rem .5rem;margin-top:-1px}.auth-form input::placeholder{color:var(--text);opacity:.6}.auth-form input:focus-visible,.auth-form select:focus-visible{z-index:1;outline:2px solid var(--accent);outline-offset:-2px;border-color:var(--accent);position:relative}.auth-hint{opacity:.7;margin:-.5rem 0 0;font-size:.8125rem}.auth-submit{width:100%;font:inherit;cursor:pointer;color:var(--on-accent);background:var(--accent);box-shadow:var(--shadow);border:1px solid #0000;border-radius:.5rem;padding:.6rem .9rem;font-weight:600}.auth-submit:hover:not(:disabled){filter:brightness(1.08)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-submit:disabled[aria-busy=true]{cursor:progress}.auth-switch{text-align:center;opacity:.85;font-size:.875rem}.auth-toggle{font:inherit;cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0;font-weight:600}.auth-toggle:hover{text-decoration:underline}.dashboard{text-align:left;border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:1rem;max-width:22rem;margin:4rem auto;padding:2rem;display:flex}.dashboard h1{margin:0;font-size:1.4rem}.dashboard button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:.5rem;padding:.6rem .9rem}.auth-error{white-space:pre-wrap;color:var(--danger);background:var(--danger-bg);border-radius:.5rem;margin:0;padding:.6rem .7rem;font-size:.8125rem}.course-list{text-align:left;max-width:44rem;margin:2.5rem auto;padding:0 1.25rem}.course-intro{opacity:.75;font-size:.9rem}.course-list ul{margin:1.5rem 0 0;padding:0;list-style:none}.course-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 0;display:flex}.course-position{letter-spacing:.08em;text-transform:uppercase;opacity:.6;font-size:.72rem;display:block}.course-score{white-space:nowrap;font-size:.85rem}.course-untaken{opacity:.55}.course-passed{color:var(--success)}.course-below{color:var(--warning)}.course-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--success);background:color-mix(in srgb, var(--success) 14%, transparent);border-radius:999px;margin-right:.5rem;padding:.1rem .45rem;font-size:.7rem;display:inline-block}.quiz-page{text-align:left;max-width:42rem;margin:2rem auto;padding:0 1.25rem}.quiz-header{opacity:.75;justify-content:space-between;margin-bottom:.5rem;font-size:.8rem;display:flex}.quiz-history{background:var(--accent-bg);border-radius:.5rem;align-items:center;gap:.15rem;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.8rem;display:flex}.progress-track{background:var(--border);border-radius:3px;height:6px;margin-bottom:1.5rem;overflow:hidden}.progress-fill{opacity:.55;background:currentColor;height:100%;transition:width .2s}.question-module{letter-spacing:.08em;text-transform:uppercase;opacity:.6;margin:0 0 .4rem;font-size:.72rem}.question-prompt{margin:0 0 1rem;font-size:1.05rem;font-weight:600}.option-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.option{cursor:pointer;border:1px solid var(--border);border-radius:.5rem;align-items:flex-start;gap:.6rem;padding:.7rem .85rem;display:flex}.option.selected{background:var(--accent-bg);border-color:currentColor}.option input{margin-top:.2rem}.option-label{min-width:1.2rem;font-weight:600}.quiz-nav{justify-content:space-between;align-items:center;margin-top:1.5rem;display:flex}.quiz-saving{opacity:.6;font-size:.78rem}.review-grid h2{margin:0 0 .5rem;font-size:1.1rem}.review-warning{color:var(--warning);font-size:.875rem}.review-ok{color:var(--success);font-size:.875rem}.review-cells{flex-wrap:wrap;gap:.4rem;margin:1rem 0 1.25rem;display:flex}.review-cell{cursor:pointer;border:1px solid var(--border);width:2.2rem;height:2.2rem;color:inherit;background:0 0;border-radius:.4rem}.review-cell.answered{background:var(--accent-bg);border-color:currentColor}.review-cell.blank{opacity:.6;border-style:dashed}button.primary{cursor:pointer;border-radius:.5rem;padding:.6rem 1rem}.results-page{text-align:left;max-width:42rem;margin:2rem auto;padding:0 1.25rem}.score-block{text-align:center;border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding:1.25rem 0 1.5rem}.score-number{font-size:2.6rem;font-weight:700;line-height:1}.score-of{opacity:.6;font-size:1.1rem}.score-previous{opacity:.7;margin:.25rem 0 0;font-size:.82rem}.score-block .course-badge{margin:.4rem 0 0}.modules-block{background:var(--accent-bg);border-radius:.5rem;margin-bottom:1.5rem;padding:.85rem 1rem}.label{letter-spacing:.08em;text-transform:uppercase;opacity:.65;margin:0 0 .5rem;font-size:.72rem}.result-list{margin:0;padding:0;list-style:none}.result-missed{border-left:3px solid var(--danger);margin:.6rem 0;padding:.6rem 0 .6rem .75rem}.result-q{margin:0 0 .3rem;font-size:.95rem;font-weight:600}.result-line{margin:0 0 .2rem;font-size:.86rem}.result-explanation{opacity:.85;margin:.35rem 0 .4rem;font-size:.86rem}.result-module{background:var(--accent-bg);border-radius:.3rem;padding:.15rem .5rem;font-size:.72rem;display:inline-block}.result-correct{border-bottom:1px solid var(--border)}.result-toggle{cursor:pointer;width:100%;color:inherit;font:inherit;opacity:.7;text-align:left;background:0 0;border:none;justify-content:space-between;gap:1rem;padding:.5rem 0;font-size:.86rem;display:flex}.result-answer{font-weight:600}.results-actions{align-items:center;gap:1rem;margin-top:1.75rem;display:flex}.results-actions .primary{color:inherit;border:1px solid;border-radius:.5rem;padding:.55rem 1rem;text-decoration:none}.notfound-page{text-align:center;max-width:32rem;margin:5rem auto;padding:0 1.25rem}.notfound-code{opacity:.35;font-variant-numeric:tabular-nums;margin:0;font-size:3.5rem;font-weight:700;line-height:1}.notfound-page h1{margin:.5rem 0 .75rem;font-size:1.3rem}.notfound-path{opacity:.75;overflow-wrap:anywhere;margin:0 0 1.75rem;font-size:.875rem}.notfound-path code{background:var(--accent-bg);border-radius:.3rem;padding:.1rem .35rem;font-size:.85em}.notfound-page .primary{color:inherit;border:1px solid;border-radius:.5rem;padding:.55rem 1rem;text-decoration:none;display:inline-block}.shell{flex-direction:column;min-height:100vh;display:flex}.topnav{background:var(--surface);z-index:30;flex:none;align-items:center;gap:.85rem;height:3.5rem;padding:0 1rem;display:flex;position:sticky;top:0}.sidebar-toggle{cursor:pointer;width:2.25rem;height:2.25rem;color:inherit;border:1px solid var(--border);background:0 0;border-radius:.5rem;flex:none;place-items:center;display:grid}.sidebar-toggle:hover{background:var(--accent-bg);border-color:var(--accent-border)}.sidebar-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toggle-bars{gap:3px;width:1rem;display:grid}.toggle-bars span{background:currentColor;border-radius:1px;height:1.5px;transition:transform .18s,opacity .18s;display:block}.shell:not(.collapsed) .toggle-bars span:first-child{transform:translateY(4.5px)rotate(45deg)}.shell:not(.collapsed) .toggle-bars span:nth-child(2){opacity:0}.shell:not(.collapsed) .toggle-bars span:nth-child(3){transform:translateY(-4.5px)rotate(-45deg)}.topnav-start{flex:1 1 0;align-items:center;gap:.85rem;min-width:0;display:flex}.topnav-brand{color:var(--text-h);align-items:center;gap:.55rem;font-size:.95rem;font-weight:600;text-decoration:none;display:flex}.topnav-mark{object-fit:contain;width:1.75rem;height:1.75rem;display:block}.topnav-right{flex:1 1 0;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.global-search{flex:none;width:100%;max-width:22rem;margin:0 .5rem;position:relative}.global-search-icon{width:1rem;height:1rem;color:var(--text);pointer-events:none;position:absolute;top:50%;left:.6rem;transform:translateY(-50%)}.global-search-input{border:1px solid var(--border);background:var(--surface);width:100%;height:2.25rem;color:inherit;border-radius:.5rem;padding:0 .75rem 0 2rem;font-size:.9rem}.global-search-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.global-search-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:40;border-radius:.5rem;max-height:20rem;margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto}.global-search-note{color:var(--text);padding:.5rem .6rem;font-size:.85rem}.global-search-option{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.4rem;flex-direction:column;align-items:flex-start;padding:.45rem .6rem;font-size:.9rem;display:flex}.global-search-option:hover,.global-search-option.highlighted{background:var(--accent-bg)}.global-search-option-sublabel{color:var(--text);font-size:.75rem}.shell-body{flex:auto;align-items:stretch;min-height:0;display:flex}.shell-sidebar{background:var(--surface);flex:0 0 16rem;overflow-y:auto}.shell-sidebar[hidden]{display:none}.sidebar-nav{text-align:left;flex-direction:column;min-height:100%;padding:1rem .75rem 0;display:flex}.nav-list{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.nav-item{width:100%;font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:.45rem;align-items:center;gap:.7rem;padding:.5rem .6rem;font-size:.875rem;font-weight:600;text-decoration:none;display:flex}.nav-item:hover,.nav-item.current{background:var(--accent-bg);color:var(--text-h)}.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nav-icon{opacity:.8;flex:none;width:1.4rem;height:1.4rem}.nav-label{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.nav-count{opacity:.55;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:500}.nav-chevron{opacity:.6;flex:none;width:1.05rem;height:1.05rem;transition:transform .18s}.nav-chevron.open{transform:rotate(90deg)}.nav-panel{margin:.15rem 0 .35rem;padding:0 0 0 .6rem;list-style:none}.nav-panel[hidden]{display:none}.nav-sublink{color:var(--text);border-radius:.4rem;gap:.55rem;padding:.4rem .6rem .4rem 1.5rem;font-size:.82rem;line-height:1.35;text-decoration:none;display:flex}.nav-sublink:hover{background:var(--accent-bg);color:var(--text-h)}.nav-sublink.active{background:var(--accent-bg);color:var(--text-h);font-weight:600}.nav-sublink-pos{opacity:.5;font-variant-numeric:tabular-nums}.nav-sublink-pass{color:var(--success);margin-left:auto}.nav-panel-note{opacity:.6;padding:.35rem .6rem .35rem 1.5rem;font-size:.8rem}.admin-page{text-align:left;max-width:56rem;margin:2rem auto;padding:0 1.25rem}.admin-table{border-collapse:collapse;width:100%;margin-top:1rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .75rem}.admin-actions{gap:.5rem;display:flex}.admin-pager{align-items:center;gap:1rem;margin-top:1rem;display:flex}.recycle-bin-tabs{gap:.5rem;margin:1rem 0 1.5rem;display:flex}.recycle-bin-tab{border:1px solid var(--border);color:inherit;cursor:pointer;background:0 0;border-radius:.45rem;padding:.5rem 1rem}.recycle-bin-tab:hover{background:var(--accent-bg)}.recycle-bin-tab.active{background:var(--accent-bg);border-color:var(--accent-border);font-weight:600}.icon-button{cursor:pointer;width:2rem;height:2rem;color:inherit;border:1px solid var(--border);background:0 0;border-radius:.45rem;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent-border)}.icon-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-button:disabled{opacity:.5;cursor:not-allowed}.icon-button-icon{flex:none;width:1.05rem;height:1.05rem}.attempts-toggle-icon{transition:transform .15s}.attempts-toggle-icon.open{transform:rotate(90deg)}.admin-attempts-row td{background:var(--accent-bg);padding:.75rem .75rem 1rem}.admin-modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:var(--bg);border:1px solid var(--border);border-radius:.6rem;flex-direction:column;width:90%;max-width:40rem;max-height:80vh;display:flex}.admin-modal.admin-import-modal{max-width:48rem}.admin-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.admin-modal-header h2{margin:0;font-size:1.1rem}.admin-modal-body{padding:0 1.25rem 1.25rem;overflow-y:auto}.admin-user-actions{gap:.75rem;margin:1rem 0 1.5rem;display:flex}.admin-user-actions .auth-submit{width:auto}.import-form,.admin-add-user-form{max-width:24rem;margin-top:1rem}.import-errors,.import-preview{margin-top:1.5rem}.import-errors{color:var(--warning)}.import-success{color:var(--success);margin-top:1rem}.profile-page{text-align:left;max-width:26rem;margin:2rem auto;padding:0 1.25rem}.profile-details{margin:1rem 0 2rem}.profile-details dt{opacity:.65;margin-top:.75rem;font-size:.8rem}.profile-details dd{margin:.15rem 0 0;font-size:1rem}.profile-form{margin-top:1rem}.profile-actions{gap:.75rem;margin-top:1rem;display:flex}.profile-actions .auth-submit{flex:1;width:auto}.auth-submit-secondary{color:inherit;border:1px solid var(--border);background:0 0}.auth-submit-secondary:hover:not(:disabled){background:var(--accent-bg);filter:none}.sidebar-footer{border-top:1px solid var(--border);align-items:center;gap:.6rem;margin-top:auto;padding:.85rem .6rem;font-size:.8rem;display:flex}.sidebar-avatar{width:1.75rem;height:1.75rem;color:var(--accent);background:var(--accent-bg);border-radius:50%;flex:none;place-items:center;font-size:.78rem;font-weight:700;display:grid}.sidebar-footer-email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shell-main{background:var(--bg);flex:auto;min-width:0}.shell-scrim{display:none}@media (width<=48rem){.shell-sidebar{z-index:20;flex:none;width:16rem;position:fixed;top:3.5rem;bottom:0;left:0}.shell-scrim{z-index:10;background:#00000073;display:block;position:fixed;inset:3.5rem 0 0}}.theme-toggle{font:inherit;cursor:pointer;color:inherit;border:1px solid var(--border);background:0 0;border-radius:.45rem;align-items:center;gap:.4rem;padding:.35rem .6rem;font-size:.8rem;display:flex}.theme-toggle:hover{background:var(--accent-bg);border-color:var(--accent-border)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-icon{opacity:.85;flex:none;width:1.05rem;height:1.05rem}.account-menu{position:relative}.account-menu-trigger{font:inherit;cursor:pointer;color:inherit;border:1px solid var(--border);background:0 0;border-radius:.45rem;align-items:center;gap:.5rem;max-width:12rem;padding:.3rem .6rem .3rem .3rem;font-size:.82rem;display:flex}.account-menu-trigger:hover{background:var(--accent-bg);border-color:var(--accent-border)}.account-menu-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.account-avatar{width:1.6rem;height:1.6rem;color:var(--accent);background:var(--accent-bg);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:grid}.account-email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-menu-panel{background:var(--surface);border:1px solid var(--border);z-index:10;border-radius:.5rem;min-width:10rem;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% + .4rem);right:0;box-shadow:0 .5rem 1.5rem #0000001f}.account-menu-item{box-sizing:border-box;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.35rem;align-items:center;gap:.4rem;padding:.4rem .6rem;font-size:.85rem;text-decoration:none;display:flex}.account-menu-item:hover,.account-menu-item.active{background:var(--accent-bg)}.account-menu-divider{background:var(--border);height:1px;margin:.35rem .4rem;list-style:none}@media (width<=30rem){.theme-label{display:none}}@media (width<=40rem){.admin-table thead{display:none}.admin-table tr{border:1px solid var(--border);border-radius:.5rem;margin-bottom:.75rem;padding:.75rem;display:block}.admin-table tbody tr:last-child{margin-bottom:0}.admin-table td{border-bottom:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.3rem 0;display:flex}.admin-table td:before{content:attr(data-label);opacity:.7;flex:none;font-weight:600}.admin-table td.admin-actions{justify-content:flex-start}.admin-table td.admin-actions:before{content:none}.admin-attempts-row td{display:block}.profile-actions,.results-actions{flex-direction:column;align-items:stretch}.topnav{gap:.5rem;padding:0 .6rem}.topnav-brand{gap:.35rem}}
