:root{color-scheme:light;--ink:#17213f;--blue:#2765d6;--blue-deep:#153b8d;--cyan:#20c5d8;--pink:#ec4f91;--muted:#5f6b85;--paper:#ffffff;--background:#eaf3ff;--field-border:#5f6b85;--focus-inner:#ffffff;--focus-outer:#17213f}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html{background:var(--background)}body{margin:0;color:var(--ink);background:radial-gradient(circle at 18% 22%,rgb(32 197 216/18%) 0 9%,transparent 9.5%),radial-gradient(circle at 86% 18%,rgb(236 79 145/14%) 0 8%,transparent 8.5%),radial-gradient(circle at 72% 84%,rgb(39 101 214/13%) 0 12%,transparent 12.5%),var(--background);font-family:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.page-shell{min-height:100svh;display:grid;place-items:center;padding:2rem}.hero{padding:clamp(2rem,6vw,5rem);background:rgb(255 255 255/88%)}.card,.hero{width:min(68rem,100%);border:2px solid rgb(23 33 63/18%);border-radius:2rem;box-shadow:0 1.5rem 5rem rgb(21 59 141/16%)}.card{padding:clamp(1.5rem,5vw,3.5rem);background:rgb(255 255 255/92%)}.card.narrow{width:min(34rem,100%)}.card.wide{width:min(80rem,100%)}.align-start{place-items:start center}.page-title{margin:0 0 1rem;font-size:clamp(2rem,5vw,4rem);line-height:1.05}.eyebrow{margin:0 0 1rem;color:var(--blue-deep);font-size:clamp(.9rem,1.5vw,1.05rem);font-weight:750;letter-spacing:.06em;text-transform:uppercase}h1{margin:0;font-size:clamp(2.3rem,7vw,6.4rem);line-height:.98;letter-spacing:-.025em}h2,h3,h4{letter-spacing:-.012em}h1 span{color:var(--pink)}.lead{max-width:50rem;margin:2rem 0 0;font-size:clamp(1.05rem,2.2vw,1.45rem);line-height:1.55}.lead.compact{font-size:clamp(1rem,2vw,1.25rem)}.button,.small-button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.75rem 1.25rem;border:2px solid var(--blue-deep);border-radius:.8rem;color:#fff;background:var(--blue-deep);font:inherit;font-weight:750;text-decoration:none;cursor:pointer}.hero .button{margin-top:2rem}.button:focus-visible,.button:hover,.small-button:focus-visible,.small-button:hover{background:var(--blue)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus-inner);outline-offset:2px;box-shadow:0 0 0 6px var(--focus-outer)}.button:disabled{opacity:.65;cursor:wait}.button.secondary{color:var(--blue-deep);background:#fff}.button.quiet{color:var(--ink);border-color:rgb(23 33 63/28%);background:transparent}.small-button{min-height:2.3rem;padding:.4rem .65rem;font-size:.88rem}.form{display:grid;gap:1.1rem;margin:1.5rem 0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form label{display:grid;gap:.45rem;font-weight:700}input,select{width:100%;min-height:3rem;padding:.65rem .8rem;border:2px solid var(--field-border);border-radius:.65rem;background:#fff;color:var(--ink);font:inherit}.message{padding:.8rem 1rem;border-radius:.7rem;font-weight:700}.message.error{color:#861b42;background:#ffe3ee}.message.success{color:#0b5d4a;background:#d9fff2}.text-link{display:inline-block;margin-top:1rem;color:var(--blue-deep);font-weight:700}.actions,.row-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.breadcrumbs{position:relative;z-index:10;padding:.85rem max(1rem,calc((100vw - 80rem) / 2));border-bottom:1px solid rgb(23 33 63/15%);background:rgb(255 255 255/88%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0;padding:0;list-style:none;font-size:.92rem}.breadcrumbs li{display:inline-flex;align-items:center;gap:.45rem}.breadcrumbs li+li:before{content:"›";color:var(--muted);font-weight:800}.breadcrumbs a{color:var(--blue-deep);font-weight:750;text-decoration-thickness:1px;text-underline-offset:.2em}.breadcrumbs [aria-current=page]{color:var(--muted);font-weight:700}.course-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1.5rem;align-items:center;margin-top:2rem;padding:clamp(1.25rem,3vw,2rem);border:3px solid var(--blue-deep);border-radius:1.4rem;color:#fff;background:linear-gradient(120deg,var(--blue-deep),var(--blue) 62%,#187cba);box-shadow:0 1rem 2.5rem rgb(21 59 141/24%);text-decoration:none}.course-entry small,.course-entry span,.course-entry strong{display:block}.course-entry span{color:#ddecff;font-size:.9rem;font-weight:800;text-transform:uppercase}.course-entry strong{grid-column:1;font-size:clamp(1.65rem,4vw,2.65rem);line-height:1.08;letter-spacing:-.02em}.course-entry small{grid-column:1;margin-top:.35rem;font-size:clamp(.95rem,1.8vw,1.08rem);line-height:1.45}.course-entry b{grid-column:2;grid-row:1/4;font-size:clamp(2rem,5vw,3.5rem)}.course-entry:focus-visible,.course-entry:hover{border-color:var(--pink);background:linear-gradient(120deg,#173f93,#2f71e2 62%,#1687c9)}.dashboard-extras{margin-top:1.25rem;padding-top:1.25rem;border-top:2px solid rgb(39 101 214/14%)}.create-panel{margin:2rem 0;padding:1rem 1.2rem;border:2px solid rgb(39 101 214/22%);border-radius:1rem;background:#f5f9ff}.create-panel summary{font-size:1.1rem;font-weight:800;cursor:pointer}.table-scroll{margin:2rem 0}table{width:100%;border-collapse:collapse;background:#fff}caption{padding:0 0 .8rem;font-weight:800}caption,td,th{text-align:left}td,th{padding:.9rem;border-bottom:1px solid rgb(23 33 63/18%);vertical-align:top}thead th{color:#fff;background:var(--blue-deep)}tbody th small,tbody th span{display:block}tbody th small{margin-top:.25rem;font-weight:500}.row-actions{margin-top:0}.notification-list{display:grid;gap:1rem;margin:2rem 0 0;padding:0;list-style:none}.notification-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:1.25rem;border:2px solid rgb(23 33 63/18%);border-radius:1rem;background:#fff}.notification-item.unread{border-color:var(--blue);background:#f4f8ff}.notification-item h2{margin:.2rem 0 .5rem;font-size:1.25rem}.notification-item p{margin:0 0 .65rem;line-height:1.55}.notification-item time,.notification-state{color:var(--blue-deep);font-size:.9rem;font-weight:750}.notification-state{margin:0}.notification-dismiss{color:var(--ink);border-color:rgb(23 33 63/35%);background:#fff}.empty-state{margin-top:2rem;padding:1.25rem;background:#f5f9ff;line-height:1.55}.certificate-list{display:grid;gap:1.25rem;margin:2rem 0 0;padding:0;list-style:none}.certificate-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;padding:1.5rem;border:2px solid rgb(39 101 214/24%);border-radius:1.25rem;background:#f8faff}.certificate-card h2{margin:.25rem 0 .75rem;font-size:clamp(1.25rem,2.5vw,1.8rem)}.certificate-card p{margin:.35rem 0}.certificate-kind,.certificate-state{color:var(--blue-deep);font-size:.9rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.certificate-state.state-revoked{color:#861b42}.achievement-badge{display:inline-block;margin-top:.75rem!important;padding:.5rem .85rem;border-radius:999px;color:#fff;background:var(--blue-deep);font-weight:800}.certificate-actions{display:grid;gap:.75rem;min-width:13rem}.verification-card{width:min(55rem,100%)}.verification-result{margin:1.5rem 0;padding:1.25rem;border:2px solid;border-radius:1rem}.verification-result h2,.verification-result p{margin:.25rem 0}.verification-result.valid{border-color:#0b8064;background:#d9fff2}.verification-result.invalid{border-color:#a62955;background:#ffe3ee}.certificate-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.certificate-details div{padding:1rem;border-radius:.85rem;background:#f5f9ff}.certificate-details dt{color:var(--blue-deep);font-size:.85rem;font-weight:800;text-transform:uppercase}.certificate-details dd{margin:.4rem 0 0;font-size:1.05rem;font-weight:700}.notification-preferences{margin-top:2rem}.checkbox-label{display:flex!important;grid-template-columns:none;align-items:center;gap:.75rem!important}.checkbox-label input{width:1.35rem;min-height:1.35rem;margin:0}.notification-time-grid{margin:0}.form-hint{margin:0;color:rgb(23 33 63/78%);line-height:1.5}.delivery-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:2rem 0}.delivery-summary div{padding:1rem;border:2px solid rgb(39 101 214/22%);border-radius:1rem;background:#f5f9ff}.delivery-summary dt{color:var(--blue-deep);font-weight:750}.delivery-summary dd{margin:.35rem 0 0;font-size:1.8rem;font-weight:850}.delivery-filter{display:grid;max-width:22rem;gap:.45rem;font-weight:750}.delivery-status{display:inline-block;padding:.35rem .65rem;border-radius:999px;background:#e8efff;font-size:.88rem;font-weight:800}.delivery-status.status-delivered{color:#075d48;background:#dff9ef}.delivery-status.status-failed_permanent,.delivery-status.status-failed_temporary{color:#7f1d1d;background:#ffe3e7}.delivery-error{display:block;margin-top:.35rem;color:#7f1d1d}@media (max-width:50rem){.delivery-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:44rem){.notification-item{grid-template-columns:1fr}}.module-list{display:grid;gap:1rem;margin:2rem 0;padding:0;list-style:none}.module-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.2rem;align-items:center;padding:1.25rem;border:2px solid rgb(39 101 214/24%);border-radius:1.2rem;background:#fff}.module-card.status-locked{color:rgb(23 33 63/67%);border-color:rgb(23 33 63/14%);background:rgb(255 255 255/62%)}.module-card.status-completed{border-color:rgb(11 123 97/40%);background:#effff9}.module-number{display:grid;width:3rem;height:3rem;place-items:center;border-radius:50%;color:#fff;background:var(--pink);font-size:1.2rem;font-weight:850}.module-copy h2,.section-card h2{margin:.25rem 0 .5rem}.module-copy p{margin:.25rem 0}.module-meta{color:var(--blue-deep);font-size:.9rem;font-weight:750}.module-action{display:grid;gap:.65rem;justify-items:end}.section-kind,.status-pill{display:inline-flex;width:fit-content;padding:.38rem .7rem;border-radius:999px;background:#e8efff;color:var(--blue-deep);font-size:.88rem;font-weight:800}.status-completed{color:#075e49;background:#d9fff2}.section-list{display:grid;gap:1.2rem;margin:2rem 0}.section-card{padding:clamp(1.2rem,3vw,2rem);border:2px solid rgb(23 33 63/16%);border-radius:1.2rem;background:#fff}.section-card.section-status-locked{color:rgb(23 33 63/68%);border-color:rgb(23 33 63/12%);background:rgb(255 255 255/66%)}.section-card:target{outline:4px solid var(--cyan);outline-offset:4px}.section-next-step{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-top:1rem}.section-next-step .message{margin:0}.module-navigation{display:grid;grid-template-columns:minmax(13rem,auto) minmax(18rem,1fr);gap:1rem;align-items:stretch;margin-top:2.4rem;padding-top:1.5rem;border-top:2px solid rgb(39 101 214/18%)}.module-navigation .button{min-height:4rem;font-size:clamp(1rem,1.6vw,1.18rem)}.module-list-button{gap:.65rem}.module-next-button{gap:.75rem;border-color:#9c205d;background:linear-gradient(135deg,var(--pink),#9c205d);box-shadow:0 12px 28px rgb(196 42 111/24%);font-weight:850}.module-next-button:focus-visible,.module-next-button:hover{border-color:#7f1749;background:#9c205d}.module-next-hint{display:flex;align-items:center;margin:0;padding:.9rem 1.1rem;border:2px dashed rgb(39 101 214/25%);border-radius:.8rem;color:rgb(23 33 63/72%);background:#f7f9ff;font-size:.92rem;line-height:1.45}.section-card header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem}.compact-actions{margin-top:1rem}.course-video{width:100%;max-height:70svh;border-radius:.9rem;background:#0e1730}.video-watch-status{display:grid;gap:.55rem;margin-top:.9rem}.video-watch-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:.94rem}.video-watch-heading strong{color:var(--brand-deep);font-size:1.05rem}.video-watch-track{width:100%;height:.9rem;overflow:hidden;border:1px solid #b9c5e7;border-radius:999px;background:#e9eefc}.video-watch-track>span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--accent));transition:width .18s ease-out}@media (max-width:42rem){.module-navigation{grid-template-columns:1fr}.module-next-button{grid-row:1}}.lesson-document{width:min(72rem,100%);font-size:1.08rem;line-height:1.72}.lesson-document>h1{margin:2rem 0 1.25rem;font-size:clamp(2.1rem,5vw,4rem);line-height:1.08}.lesson-document>h2{margin:3.4rem 0 1rem;font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.2}.lesson-document>ol,.lesson-document>p,.lesson-document>ul{max-width:52rem}.lesson-back{margin:0 0 1.5rem}.lesson-animation,.lesson-figure{margin:1.6rem 0 2.4rem}.course-animation-video,.lesson-media{display:block;width:100%;height:auto;border:2px solid rgb(23 33 63/16%);border-radius:1rem;background:#fff}.lesson-animation{padding:clamp(1rem,3vw,1.5rem);border:2px solid rgb(39 101 214/24%);border-radius:1.2rem;background:#f5f9ff}.lesson-animation>figcaption{display:grid;gap:.3rem;margin-bottom:1rem}.lesson-animation>figcaption strong{color:var(--blue-deep)}.animation-controls{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.animation-description,.animation-steps{margin-top:1rem;padding:.9rem 1rem;border:2px solid rgb(23 33 63/14%);border-radius:.8rem;background:#fff}.animation-description summary,.animation-steps summary{font-weight:800;cursor:pointer}.animation-steps ol{display:grid;gap:1.5rem;padding-left:1.5rem}.animation-steps figure{margin:0}.animation-steps figcaption{margin-top:.5rem;font-weight:750}.lesson-completion{margin-top:4rem;padding:clamp(1.2rem,3vw,2rem);border:2px solid rgb(11 123 97/36%);border-radius:1.2rem;background:#effff9}.lesson-completion h2{margin-top:0}.statistics-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:2rem 0}.statistics-summary article{display:grid;gap:.25rem;padding:1.2rem;border:2px solid rgb(39 101 214/22%);border-radius:1rem;background:#f5f9ff}.statistics-summary strong{color:var(--blue-deep);font-size:clamp(1.5rem,3vw,2.2rem)}.statistics-summary span{color:var(--muted);font-weight:700}.statistics-panel{margin:2rem 0}.table-scroll{overflow-x:auto}.table-scroll table{width:100%;border-collapse:collapse}.table-scroll td,.table-scroll th{padding:.85rem 1rem;border-bottom:1px solid rgb(23 33 63/14%);text-align:left;vertical-align:top}.table-scroll thead th{color:var(--blue-deep);background:#f5f9ff}.table-scroll tbody th small{display:block;margin-top:.25rem;color:var(--muted);font-weight:500}.empty-state{padding:clamp(1.2rem,4vw,2.4rem);border:2px dashed rgb(39 101 214/35%);border-radius:1rem;background:#f8fbff}.empty-state h3{margin-top:0}.table-link{color:var(--blue-deep);text-decoration-thickness:.12em;text-underline-offset:.2em}.statistics-chart{margin:1rem 0;padding:1rem;border:2px solid rgb(39 101 214/22%);border-radius:1rem;background:#fff}.statistics-chart svg{display:block;width:100%;height:auto}.statistics-chart text{fill:var(--muted);font:700 16px Manrope,sans-serif}.chart-axis{stroke:rgb(23 33 63/45%);stroke-width:2}.chart-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:5}.chart-line-mean{stroke:var(--blue)}.chart-line-maximum{stroke:var(--pink)}.statistics-chart figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:.75rem;font-weight:700}.legend-swatch{width:1.5rem;height:.3rem;margin-left:.5rem;border-radius:1rem}.legend-swatch.mean{background:var(--blue)}.legend-swatch.maximum{background:var(--pink)}.ranking-highlight{display:grid;gap:.3rem;padding:1.2rem;border:2px solid rgb(226 50 121/35%);border-radius:1rem;background:#fff2f8}.ranking-highlight strong{color:var(--pink);font-size:1.45rem}.ranking-metadata{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:2rem 0}.ranking-metadata div{display:grid;gap:.35rem;padding:1rem;border-radius:.9rem;background:#f5f9ff}.ranking-metadata span{color:var(--muted);font-weight:700}.ranking-metadata strong{color:var(--blue-deep);font-size:1.15rem}.ranking-groups{display:flex;flex-wrap:wrap;gap:.6rem;margin:.75rem 0 0;padding:0;list-style:none}.ranking-groups li{padding:.4rem .7rem;border:2px solid rgb(23 33 63/18%);border-radius:999px;background:#fff;font-weight:800}.ranking-groups li.achieved{color:#fff;border-color:var(--blue-deep);background:var(--blue-deep)}.own-ranking-row{background:#fff2f8}.ranking-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem;margin-top:1.25rem}.ranking-pagination span{font-weight:800}.statistics-secondary-link{margin-left:1.5rem}.parameter-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.parameter-list div{padding:.85rem 1rem;border-radius:.8rem;background:#f5f9ff}.parameter-list dt{color:var(--muted);font-weight:700}.parameter-list dd{margin:.2rem 0 0;overflow-wrap:anywhere;font-weight:800}.activity-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.activity-breakdown div{padding:1rem;border-radius:.8rem;background:#f5f9ff}.activity-breakdown dt{color:var(--muted);font-weight:700}.activity-breakdown dd{margin:.25rem 0 0;color:var(--blue-deep);font-size:1.25rem;font-weight:850}.admin-search{display:grid;gap:.45rem;margin:1.75rem 0}.admin-search label,.certificate-admin-operations label{color:var(--blue-deep);font-weight:800}.admin-search input{min-width:min(28rem,65vw)}.admin-certificate-list{display:grid;gap:1.25rem;margin:1.5rem 0}.admin-certificate{padding:clamp(1rem,3vw,1.5rem);border:2px solid rgb(39 101 214/22%);border-radius:1.1rem;background:#fff}.admin-certificate>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.admin-certificate h2{margin:.2rem 0}.admin-certificate code{overflow-wrap:anywhere}.admin-certificate-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}.admin-certificate-facts div{padding:.8rem;border-radius:.8rem;background:#f5f9ff}.admin-certificate-facts dt{color:var(--muted);font-weight:700}.admin-certificate-facts dd{margin:.2rem 0 0;font-weight:850}.certificate-admin-operations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.certificate-admin-operations details{padding:1rem;border:2px solid rgb(23 33 63/14%);border-radius:.9rem;background:#f8fbff}.certificate-admin-operations summary{cursor:pointer;color:var(--blue-deep);font-weight:850}.certificate-admin-operations form{display:grid;gap:.85rem;margin-top:1rem}.certificate-admin-operations label{display:grid;gap:.35rem}.admin-search input,.certificate-admin-operations input,.certificate-admin-operations select,.certificate-admin-operations textarea{box-sizing:border-box;width:100%;padding:.75rem;border:2px solid rgb(23 33 63/25%);border-radius:.7rem;background:#fff;color:var(--ink);font:inherit}.button.danger{border-color:#a21b39;background:#a21b39;color:#fff}.certificate-audit{margin-top:1rem;padding:1rem;border-left:5px solid var(--pink);border-radius:.6rem;background:#fff2f8}.certificate-audit h3{margin-top:0}.certificate-audit li+li{margin-top:.65rem}.user-editor{display:grid;gap:1.25rem;margin:1.5rem 0;padding:clamp(1rem,3vw,1.5rem);border:2px solid rgb(39 101 214/28%);border-radius:1.1rem;background:#f8fbff}.user-editor-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.password-reset-form h3,.user-editor-heading h2{margin:.15rem 0}.job-status{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.25rem 0;padding:1rem 1.25rem;border:2px solid rgb(39 101 214/25%);border-radius:1rem;background:#f5f9ff}.job-status h2{margin:0 0 .35rem}.job-status p{margin:.2rem 0}.password-reset-form{padding-top:1.25rem;border-top:2px solid rgb(39 101 214/18%)}.password-reset-form label{max-width:32rem}@media (max-width:40rem){.page-shell{padding:1rem}.card,.hero{border-radius:1.4rem}.form-grid{grid-template-columns:1fr}.module-card{grid-template-columns:auto minmax(0,1fr)}.module-action{grid-column:1/-1;justify-items:stretch}.activity-breakdown,.certificate-card,.certificate-details,.parameter-list,.ranking-metadata,.statistics-summary{grid-template-columns:1fr}.certificate-actions{min-width:0}.admin-certificate>header{display:grid}.admin-certificate-facts,.certificate-admin-operations{grid-template-columns:1fr}.admin-search input{min-width:0}.user-editor-heading{display:grid}.job-status{align-items:stretch;flex-direction:column}.breadcrumbs{padding-block:.7rem}.course-entry{grid-template-columns:1fr}.course-entry b{display:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}