:root{--coral:#f26440;--coral-tint:#fff4f0;--coral-ink:#c4432a;--ink:#333;--body:#5c5c5c;--muted:#8a8a8a;--surface:#f5f5f5;--canvas:#fafafa;--line:#e2e2e2;--line-strong:#cfcfcf;--white:#fff;--ok:#2f8f5b;--warn:#c98a1b;--danger:#b3261e;--font-body:Arial, "Helvetica Neue", Helvetica, sans-serif;--font-display:"Arial Black", "Arial Bold", Gadget, Arial, sans-serif;--sidebar-open:240px;--sidebar-closed:68px;--topbar:60px;--radius-s:6px;--radius-m:10px;--shadow:0 1px 2px #0000000a, 0 2px 8px #0000000a}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--white);color:var(--body);font:400 .9375rem/1.55 var(--font-body);margin:0}h1,h2,h3{color:var(--ink);margin:0}h1{font:900 clamp(1.6rem, 2.6vw, 2rem)/1.15 var(--font-display);letter-spacing:-.01em}h2{font:900 1.0625rem/1.3 var(--font-display)}h3{font:700 1rem/1.4 var(--font-body)}p{max-width:70ch;margin:0}a{color:var(--ink);text-underline-offset:3px}a:hover{color:var(--coral-ink)}:focus-visible{outline:3px solid var(--coral-ink);outline-offset:2px;border-radius:3px}.muted{color:var(--muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{white-space:nowrap;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--white);min-height:40px;color:var(--ink);font:700 .875rem/1 var(--font-body);cursor:pointer;justify-content:center;align-items:center;gap:.45rem;padding:0 1rem;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink);color:var(--ink)}.btn svg{width:16px;height:16px}.btn-primary{background:var(--coral);border-color:var(--coral);color:var(--white)}.btn-primary:hover{background:var(--coral-ink);border-color:var(--coral-ink);color:var(--white)}.btn-quiet{color:var(--body);background:0 0;border-color:#0000}.btn-quiet:hover{background:var(--surface);border-color:#0000}.btn-small{min-height:32px;padding:0 .7rem;font-size:.8125rem}.btn[disabled]{opacity:.55;cursor:progress}.form-stack{gap:1.25rem;display:grid}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1rem 1.25rem;display:grid}.span-2{grid-column:span 2}.span-3{grid-column:1/-1}.form-row{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.form-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.field{border:0;gap:.4rem;min-width:0;margin:0;padding:0;display:grid}.field-narrow{max-width:12rem}.field-end{align-self:end;justify-items:start}.field-label{color:var(--ink);padding:0;font-size:.8125rem;font-weight:700}.hint{color:var(--muted);font-size:.8125rem}.hint-inline{color:var(--muted);margin-left:.25rem;font-weight:400}.form-ok{color:var(--ok);font-size:.875rem;font-weight:700}.form-error{color:var(--danger);font-size:.875rem;font-weight:700}.field input[type=text],.field input[type=email],.field input[type=number],.input-prefix{border:1px solid var(--line-strong);border-radius:var(--radius-s);width:100%;min-height:40px;font:inherit;color:var(--ink);background:var(--white);padding:0 .75rem}.field input::placeholder{color:#b5b5b5}.field input:focus-visible{outline-offset:0;border-color:var(--coral-ink);outline:3px solid #f2644059}.input-prefix{align-items:stretch;padding:0;display:flex;overflow:hidden}.input-prefix span{background:var(--surface);color:var(--muted);border-right:1px solid var(--line);white-space:nowrap;align-items:center;padding:0 .65rem;font-size:.875rem;display:flex}.input-prefix input{border:0!important;border-radius:0!important;min-height:38px!important}.input-prefix:focus-within{border-color:var(--coral-ink);outline:3px solid #f2644059}.input-prefix input:focus-visible{outline:none}.file{font:inherit;color:var(--body);font-size:.875rem}.file::file-selector-button{cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--white);min-height:36px;color:var(--ink);font:700 .8125rem var(--font-body);margin-right:.75rem;padding:0 .9rem}.tiles{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.5rem;display:grid}.tile{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--white);cursor:pointer;min-height:48px;color:var(--ink);align-items:center;gap:.65rem;padding:.6rem .85rem;font-size:.875rem;font-weight:700;display:flex;position:relative}.tile input{width:18px;height:18px;accent-color:var(--coral);flex:none;margin:0}.tile:has(input:checked){border-color:var(--coral);background:var(--coral-tint)}.tile:has(input:focus-visible){outline:3px solid #f2644059}.shell{grid-template-columns:var(--sidebar-open) minmax(0, 1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid}.shell[data-collapsed=true]{grid-template-columns:var(--sidebar-closed) minmax(0, 1fr)}.sidebar-col{background:var(--surface);border-right:1px solid var(--line);min-width:0}.sidebar{flex-direction:column;height:100vh;padding:.75rem;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-brand{align-items:center;min-height:56px;margin-bottom:.75rem;padding:0 .4rem;text-decoration:none;display:flex}.sidebar-brand img{object-fit:contain;max-width:100%;max-height:40px}.sidebar-brand img[src="/rollo-logo.png"]{max-height:22px}.sidebar-brand .initials{border-radius:var(--radius-s);background:var(--ink);width:40px;height:40px;color:var(--white);font:900 .9375rem var(--font-display);flex:none;place-items:center;display:grid}.sidebar-brand .brand-name{color:var(--ink);margin-left:.7rem;font-weight:700;line-height:1.2}.sidebar-brand.has-logo .initials{display:none}.nav{gap:2px;display:grid}.nav a{border-radius:var(--radius-s);min-height:40px;color:var(--ink);white-space:nowrap;border-left:3px solid #0000;align-items:center;gap:.75rem;padding:0 .65rem;text-decoration:none;display:flex}.nav a:hover{background:var(--white)}.nav a[aria-current=page]{background:var(--white);border-left-color:var(--coral);box-shadow:var(--shadow);font-weight:700}.nav svg,.collapse-btn svg{flex:none;width:20px;height:20px}.sidebar-foot{gap:.25rem;margin-top:auto;padding-top:1rem;display:grid}.collapse-btn{border-radius:var(--radius-s);min-height:40px;color:var(--body);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.75rem;padding:0 .65rem;display:flex}.collapse-btn:hover{background:var(--white);color:var(--ink)}.collapse-btn svg{transition:transform .18s}.made-by{color:var(--muted);align-items:center;gap:.5rem;padding:.5rem .65rem 0;font-size:.75rem;display:flex}.made-by img{width:auto;height:13px}.shell[data-collapsed=true] .label,.shell[data-collapsed=true] .brand-name,.shell[data-collapsed=true] .made-by span,.shell[data-collapsed=true] .sidebar-brand.has-logo img{display:none}.shell[data-collapsed=true] .sidebar-brand.has-logo .initials{display:grid}.shell[data-collapsed=true] .collapse-btn svg{transform:rotate(180deg)}.workspace-col{background:var(--canvas);flex-direction:column;min-width:0;display:flex}.topbar{z-index:5;height:var(--topbar);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#ffffffeb;justify-content:space-between;align-items:center;gap:1rem;padding:0 clamp(1rem,3vw,2.5rem);display:flex;position:sticky;top:0}.topbar-context{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.topbar-right{align-items:center;gap:1rem;display:flex}.topbar-link{font-size:.875rem;font-weight:700}.account{align-items:center;gap:.6rem;display:flex}.avatar{background:var(--coral-tint);width:32px;height:32px;color:var(--coral-ink);font:900 .75rem var(--font-display);border-radius:50%;flex:none;place-items:center;display:grid}.account-text{font-size:.8125rem;line-height:1.2;display:grid}.account-text strong{color:var(--ink)}.account-text span{color:var(--muted)}.main{width:100%;max-width:76rem;padding:clamp(1.5rem,3vw,2.5rem) clamp(1rem,3vw,2.5rem) 4rem}@media (max-width:860px){.shell,.shell[data-collapsed=false]{grid-template-columns:var(--sidebar-closed) minmax(0, 1fr)}.shell .label,.shell .brand-name,.shell .made-by span,.shell .sidebar-brand.has-logo img{display:none}.shell .sidebar-brand.has-logo .initials{display:grid}.collapse-btn,.account-text{display:none}.form-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}}.page-head{gap:.4rem;margin-bottom:1.75rem;display:grid}.page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-head-row>div{gap:.4rem;display:grid}.crumb{color:var(--muted);font-size:.8125rem}.crumb a{color:var(--muted)}.section{margin-top:1.5rem}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow);align-content:start;gap:1rem;padding:clamp(1.1rem,2vw,1.5rem);display:grid}.card>p.muted{margin-top:-.5rem}.card-narrow{max-width:56rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));align-items:start;gap:1.5rem;display:grid}.notice{border-left:4px solid var(--coral);background:var(--coral-tint);color:var(--ink);border-radius:0 var(--radius-s) var(--radius-s) 0;max-width:none;margin-bottom:1.5rem;padding:.85rem 1.1rem}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius-m);background:var(--white);justify-items:start;gap:1rem;padding:2.5rem;display:grid}.stats{flex-wrap:wrap;gap:2.5rem;display:flex}.stat{display:grid}.stat strong{color:var(--ink);font:900 2rem/1.1 var(--font-display)}.stat span{color:var(--muted);font-size:.8125rem}.stats-cards{gap:1rem}.stats-cards .stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);min-width:10rem;box-shadow:var(--shadow);padding:1rem 1.25rem}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--white);box-shadow:var(--shadow);overflow-x:auto}.card .table-wrap{box-shadow:none}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.75rem 1rem}th{background:var(--canvas);color:var(--muted);font-size:.75rem;font-weight:700}tbody tr:hover{background:#fcfcfc}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.actions{text-align:right;white-space:nowrap}td.actions a{margin-left:1rem;font-size:.8125rem;font-weight:700}.row-title{align-items:center;gap:.75rem;text-decoration:none;display:flex}.row-title>span{line-height:1.3;display:grid}.row-title strong{color:var(--ink)}.row-title .muted{font-size:.8125rem}.thumb{border-radius:var(--radius-s);background:var(--surface);width:36px;height:36px;color:var(--ink);font:900 .75rem var(--font-display);object-fit:contain;border:1px solid var(--line);flex:none;place-items:center;display:grid}.meter{align-items:center;gap:.65rem;min-width:10rem;display:flex}.meter-bar{background:var(--surface);border-radius:3px;flex:1;max-width:8rem;height:6px;overflow:hidden}.meter-bar span{background:var(--coral);border-radius:3px;height:100%;display:block}.meter-text{font-variant-numeric:tabular-nums;color:var(--ink);font-size:.8125rem}.pill{background:var(--surface);color:var(--body);border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.pill[data-tone=ok]{color:var(--ok);background:#e8f4ed}.state{align-items:center;gap:.4rem;font-size:.8125rem;display:inline-flex}.state:before{content:"";background:var(--line-strong);border-radius:50%;width:8px;height:8px}.state[data-state=in_progress]:before,.state[data-state=invited]:before{background:var(--warn)}.state[data-state=completed]:before,.state[data-state=active]:before{background:var(--ok)}.logo-preview{border:1px dashed var(--line-strong);border-radius:var(--radius-s);background:var(--canvas);place-items:center;min-height:96px;padding:1rem;display:grid}.logo-preview img{object-fit:contain;max-width:100%;max-height:72px}.hero{max-width:72rem;padding-top:clamp(1rem,6vh,4rem)}.hero-title{color:var(--ink);font:900 clamp(3rem, 10vw, 7.5rem)/.92 var(--font-display);letter-spacing:-.035em;margin:0}.hero-rule{background:var(--coral);border:0;width:6rem;height:6px;margin:2rem 0 1.75rem}.hero-client{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.hero-client img{object-fit:contain;max-width:260px;max-height:72px}.hero-client img+.for{border-left:1px solid var(--line);padding-left:1.25rem}.hero-client .for{color:var(--ink);font-size:1.375rem;font-weight:700}.hero-lead{margin-top:1.5rem;font-size:1.0625rem}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.standalone{background:var(--white);flex-direction:column;min-height:100vh;padding:clamp(1.5rem,5vw,4rem);display:flex}.standalone-top{justify-content:space-between;align-items:center;display:flex}.standalone-top img{width:auto;height:26px}@media (prefers-reduced-motion:reduce){.shell,.collapse-btn svg{transition:none}}.course-grid{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;display:grid}.course-card{gap:.65rem;text-decoration:none;transition:border-color .15s,box-shadow .15s}.course-card:hover{border-color:var(--coral);color:inherit}.course-card h2{font-size:1.125rem}.course-progress{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.meter-wide{flex:1;min-width:14rem}.meter-wide .meter-bar{max-width:none;height:8px}.lesson-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.lesson{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:1rem;padding:1rem 1.25rem;display:grid}.lesson[data-done=true]{background:#fbfdfb}.lesson-num{border:2px solid var(--line-strong);width:34px;height:34px;color:var(--ink);font:900 .875rem var(--font-display);border-radius:50%;flex:none;place-items:center;display:grid}.lesson[data-done=true] .lesson-num{border-color:var(--ok);background:var(--ok);color:var(--white)}.lesson-body{gap:.3rem;display:grid}.lesson-title{font:700 1rem/1.35 var(--font-body)}.lesson-outcome{color:var(--body)}.lesson-meta{color:var(--muted);font-size:.8125rem}.lesson-meta a{font-weight:700}.lesson-action{align-self:center}@media (max-width:640px){.lesson{grid-template-columns:auto minmax(0,1fr)}.lesson-action{grid-column:2}}.exercise-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.prose.exercise-intro{max-width:none;margin-bottom:.75rem}.exercise-list .lesson-action{align-self:start}.exercise-list .prose{max-width:none;padding:0;font-size:.9375rem;line-height:1.6}.sticker-track{border-top:1px solid var(--line);flex-wrap:wrap;align-items:flex-start;gap:1.5rem;padding:1.25rem 0;display:flex}.test-card-head+.sticker-track{border-top:0}.sticker-row{flex-wrap:wrap;flex:18rem;gap:1rem;display:flex}.sticker{text-align:center;justify-items:center;gap:.5rem;width:7.5rem;margin:0;display:grid}.sticker[data-size=large]{width:9.5rem}.sticker-art{width:88px;height:88px;position:relative}.sticker[data-size=large] .sticker-art{width:120px;height:120px}.sticker-art img{object-fit:contain;background:var(--white);width:100%;height:100%;box-shadow:0 0 0 1px var(--line), 0 6px 14px #0000001f;border-radius:50%;padding:5px}.sticker[data-earned=true] .sticker-art{transform:rotate(-4deg)}.sticker[data-earned=false] .sticker-art img{filter:grayscale();opacity:.35;box-shadow:0 0 0 1px var(--line)}.sticker-tag{white-space:nowrap;border:2px solid var(--white);background:var(--sticker-tag);color:var(--white);font:700 .6875rem/1.4 var(--font-body);border-radius:999px;padding:.1rem .55rem;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.sticker[data-earned=false] .sticker-tag{background:var(--muted)}.sticker-lock{background:var(--white);width:24px;height:24px;color:var(--muted);box-shadow:0 0 0 1px var(--line);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;right:0}.sticker figcaption{gap:.1rem;font-size:.8125rem;line-height:1.3;display:grid}.sticker figcaption strong{color:var(--ink)}.sticker figcaption .muted{font-size:.75rem}.leaderboard th:first-child,.leaderboard td:first-child{text-align:center;width:4.5rem}.leaderboard tr[data-me=true] td{background:var(--coral-tint);font-weight:700}.leaderboard .pill{margin-left:.5rem}.rank{border-radius:50%;place-items:center;min-width:1.75rem;height:1.75rem;font-weight:900;display:inline-grid}.rank[data-rank="1"]{color:#5c4300;background:#f6d77a}.rank[data-rank="2"]{color:#3d4148;background:#dfe1e4}.rank[data-rank="3"]{color:#5a3212;background:#ecc29e}.leaderboard-privacy{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;display:flex}.leaderboard-privacy p{margin:0}.sticker-admin{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;display:flex}.sticker-preview{object-fit:contain;background:var(--white);width:128px;height:128px;box-shadow:0 0 0 1px var(--line), 0 6px 14px #0000001f;border-radius:50%;padding:6px}.sticker-admin .form-stack{flex:18rem}@media (max-width:640px){.sticker-track{justify-content:center}.sticker-row{justify-content:center;gap:.75rem .5rem}.sticker{width:6.25rem}.sticker-art{width:76px;height:76px}.leaderboard th,.leaderboard td{padding:.6rem .5rem}}.test-card-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.test-card[data-reason=passed]{background:#f7fcf9;border-color:#bfe0cc}.test-form{gap:1rem;display:grid}.question{gap:.75rem}.question-title{color:var(--ink);padding:0;font-weight:700}.options{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.option{border:1px solid var(--line-strong);border-radius:var(--radius-s);cursor:pointer;color:var(--ink);align-items:center;gap:.65rem;padding:.65rem .85rem;display:flex}.option input{width:18px;height:18px;accent-color:var(--coral);flex:none;margin:0}.option:has(input:checked){border-color:var(--coral);background:var(--coral-tint)}.options-result .option{cursor:default}.options-result .option[data-chosen=true]{border-color:var(--ink)}.options-result .option[data-right=true]{border-color:var(--ok);background:#f1f9f4}.question[data-correct=false]{border-left:4px solid var(--danger)}.question[data-correct=true]{border-left:4px solid var(--ok)}.result-banner{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.result-banner strong{font:900 2rem/1 var(--font-display);color:var(--ink)}.result-pass{background:#f7fcf9;border-color:#bfe0cc}.track-group{gap:.5rem;display:grid}.track-label{color:var(--coral-ink);font-size:.75rem;font-weight:700}.lang-switch{border:1px solid var(--line-strong);border-radius:var(--radius-s);display:inline-flex;overflow:hidden}.lang-switch a{color:var(--body);padding:.35rem .7rem;font-size:.8125rem;font-weight:700;text-decoration:none}.lang-switch a[aria-current=true]{background:var(--ink);color:var(--white)}.lesson-title a{color:var(--ink);text-decoration:none}.lesson-title a:hover{color:var(--coral-ink);text-decoration:underline}.lesson-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.reading{gap:.35rem;margin:0;padding-left:1.1rem;display:grid}td.downloads a{white-space:nowrap;margin-right:.6rem;font-size:.8125rem;font-weight:700}.prose{color:#3d3d3d;max-width:52rem;padding:clamp(1.25rem,3vw,2.25rem);line-height:1.7;display:block}.prose>*+*{margin-top:1rem}.prose h2{font:900 1.35rem/1.25 var(--font-display);margin-top:2.25rem}.prose h3{font:700 1.1rem/1.3 var(--font-body);color:var(--ink);margin-top:1.75rem}.prose p,.prose li{max-width:68ch}.prose ul,.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.35rem}.prose a{color:var(--coral-ink)}.prose blockquote{border-left:4px solid var(--coral);background:var(--coral-tint);border-radius:0 var(--radius-s) var(--radius-s) 0;color:var(--ink);margin:1.25rem 0;padding:.75rem 1.1rem}.prose blockquote p{margin:0}.prose blockquote p+p{margin-top:.5rem}.prose pre{color:#f3f3f3;border-radius:var(--radius-s);background:#1f1f1f;padding:1rem 1.1rem;font-size:.875rem;line-height:1.55;overflow-x:auto}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.prose :not(pre)>code{background:var(--surface);border-radius:4px;padding:.1rem .35rem}.prose table{border:1px solid var(--line);border-radius:var(--radius-s);display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line)}.prose figure{margin:1.75rem 0}.prose figure svg{width:100%;height:auto;display:block}.prose figcaption{color:var(--muted);margin-top:.5rem;font-size:.8125rem}.prose h2 svg,.prose h3 svg{vertical-align:-.16em;width:1.05em;height:1.05em;margin-right:.45em}.prose hr{border:0;border-top:1px solid var(--line);margin:2rem 0}.practice .question{border:0;margin:0;padding:0}.practice-q[data-correct=false] .question-title{color:var(--danger)}.practice-q[data-correct=true] .question-title{color:var(--ok)}.option[data-right=true]{border-color:var(--ok);background:#f1f9f4}.cert-card{gap:.5rem}.cert-card h3{font:900 1.1rem/1.3 var(--font-display)}.cert-code{letter-spacing:.06em;color:var(--ink);font:700 .9375rem/1 ui-monospace,SFMono-Regular,Menlo,monospace}.verify h1{font:900 clamp(2rem, 5vw, 3rem)/1.1 var(--font-display);margin:.5rem 0 1.5rem}.verify-card{gap:.5rem;max-width:36rem}.verify-name{font:900 1.75rem/1.2 var(--font-display);color:var(--ink)}.ring-button{cursor:pointer;background:0 0;border:0;border-radius:50%;gap:.35rem;padding:.15rem;display:inline-flex}.ring-button:hover svg{filter:drop-shadow(0 0 3px #0000002e)}.progress-legend{color:var(--body);flex-wrap:wrap;gap:.4rem 1rem;margin:0;padding:0;font-size:.75rem;list-style:none;display:flex}.progress-legend li{align-items:center;gap:.3rem;display:inline-flex}.progress-dialog{border-radius:var(--radius-m);width:min(36rem,100vw - 2rem);color:var(--body);border:0;padding:0;box-shadow:0 20px 60px #00000040}.progress-dialog::backdrop{background:#1e1e1e73}.progress-dialog-body{gap:1.25rem;padding:1.5rem;display:grid}.progress-dialog-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.progress-dialog-head h2{font:900 1.25rem/1.2 var(--font-display)}.progress-track{gap:.75rem;display:grid}.progress-track-head{align-items:center;gap:.85rem;display:flex}.progress-track-head h3{font:900 1rem/1.2 var(--font-display)}.progress-parts{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.progress-parts li{border:1px solid var(--line);border-radius:var(--radius-s);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.6rem .75rem;display:grid}.progress-parts li[data-state=passed]{background:#f2f6fd;border-color:#c9d8f3}.progress-part-title{line-height:1.3;display:grid}.progress-part-title strong{color:var(--ink);font-size:.875rem}.progress-part-title .muted{font-size:.75rem}.progress-label{white-space:nowrap;color:var(--ink);font-size:.8125rem;font-weight:700}.nav-item{display:grid}.nav-group{color:var(--muted);text-transform:none;letter-spacing:.02em;padding:.9rem .65rem .3rem;font-size:.6875rem;font-weight:700;display:block}.nav-item:first-child .nav-group{padding-top:.2rem}.shell[data-collapsed=true] .nav-group{visibility:hidden;height:.6rem;padding:0}@media (max-width:860px){.shell .nav-group{visibility:hidden;height:.6rem;padding:0}}.support-banner{color:#1f4f9c;background:#eaf1fc;border-bottom:1px solid #c9d8f3;padding:.55rem clamp(1rem,3vw,2.5rem);font-size:.8125rem;font-weight:700}.support-visits{gap:.5rem;max-width:36rem;margin-top:1.5rem}.support-visits ul{margin:0;padding-left:1.1rem;font-size:.875rem}.nav{min-height:0;overflow-y:auto}.log-filters{margin-bottom:1.25rem}.log-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.field select,.field input[type=date]{border:1px solid var(--line-strong);border-radius:var(--radius-s);width:100%;min-height:40px;font:inherit;color:var(--ink);background:var(--white);padding:0 .6rem}.log-actions{align-items:end;gap:.5rem;display:flex}.log-table td{vertical-align:top;font-size:.8125rem}.log-table .nowrap{white-space:nowrap;color:var(--body)}.log-type{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6875rem}.log-details{max-width:22rem;color:var(--body)}.log-pill{color:#1f4f9c;background:#eaf1fc;margin-left:.4rem}.log-table tr[data-type=auth] td:first-child{border-left:3px solid #8a8a8a}.log-table tr[data-type=test] td:first-child,.log-table tr[data-type=certificate] td:first-child{border-left:3px solid #2563c9}.log-table tr[data-type=lesson] td:first-child,.log-table tr[data-type=course] td:first-child{border-left:3px solid #2f8f5b}.log-table tr[data-type=support] td:first-child{border-left:3px solid #1f4f9c}.log-table tr[data-type=mail] td:first-child,.log-table tr[data-type=membership] td:first-child{border-left:3px solid #e07b1a}@media (max-width:1100px){.log-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:1rem;display:grid}.stat-card{gap:.2rem}.stat-card strong{font:900 2rem/1.1 var(--font-display);color:var(--ink)}.meter-bar.warn span{background:#e07b1a}.meter-bar.bad span{background:#c0392b}.pill.fill-nearly_full{color:#a85a10;background:#fdf0e4}.pill.fill-full{color:#a12b1f;background:#fbe9e7}.stack-bar{gap:2px;min-width:14rem;height:22px;display:flex}.stack-bar span{place-items:center;min-width:22px;font-size:.6875rem;font-weight:700;display:grid}.stack-bar span:last-child{border-radius:0 4px 4px 0}.track-table td{vertical-align:middle}.month-bars{align-items:flex-end;gap:.75rem;min-height:170px;padding-top:.5rem;display:flex;overflow-x:auto}.month-bar{justify-items:center;gap:.3rem;min-width:2.75rem;font-size:.75rem;display:grid}.month-fill{background:#2563c9;border-radius:4px 4px 0 0;width:1.75rem}.month-count{color:var(--ink);font-weight:700}.catalogue{gap:.75rem;margin-top:1rem;display:grid}.catalogue-part{gap:0;padding:0}.catalogue-part summary{cursor:pointer;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;list-style:none;display:flex}.catalogue-part summary::-webkit-details-marker{display:none}.catalogue-part summary:after{content:"›";color:var(--muted);font-size:1.4rem;transition:transform .15s}.catalogue-part[open] summary:after{transform:rotate(90deg)}.catalogue-head{flex:1;min-width:14rem;line-height:1.3;display:grid}.catalogue-head strong{color:var(--ink);font-size:1rem}.catalogue-facts{flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.catalogue-body{gap:1rem;padding:0 1.25rem 1.25rem;display:grid}.facts{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.5rem 1.5rem;margin:0;display:grid}.facts div{gap:.1rem;display:grid}.facts dt{color:var(--muted);font-size:.75rem;font-weight:700}.facts dd{color:var(--ink);margin:0;font-size:.875rem}.pill.bank-open{color:var(--ok);background:#e8f4ed}.pill.bank-local{color:#1f4f9c;background:#eaf1fc}.pill.bank-closed{color:#a85a10;background:#fdf0e4}.docs{max-width:60rem}.docs table{width:100%;font-size:.875rem;display:table}.docs th,.docs td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:.45rem .6rem}.docs-meta{margin-bottom:.75rem;font-size:.8125rem}.maker{grid-template-columns:minmax(0,1fr) minmax(20rem,26rem);align-items:start;gap:1.5rem;display:grid}.maker-main{gap:1.5rem;min-width:0;display:grid}.maker-side{top:calc(var(--topbar) + 1rem);max-height:calc(100vh - var(--topbar) - 2rem);gap:1rem;display:grid;position:sticky;overflow:auto}@media (max-width:1100px){.maker{grid-template-columns:1fr}.maker-side{max-height:none;position:static}}.field textarea{border:1px solid var(--line-strong);border-radius:var(--radius-s);width:100%;font:inherit;color:var(--ink);background:var(--white);resize:vertical;padding:.55rem .7rem}.field textarea:focus-visible{outline-offset:0;border-color:var(--coral-ink);outline:3px solid #f2644059}.field-wide{grid-column:span 3}.form-grid .field-wide:nth-of-type(n){grid-column:auto/span 3}.check-row{color:var(--ink);align-items:center;gap:.4rem;font-size:.875rem;display:flex}.maker-questions{gap:.6rem;margin-bottom:1rem;display:grid}.maker-q{gap:.75rem;padding:.75rem 1rem}.maker-q.has-problems{border-color:var(--danger)}.maker-q>summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.5rem;list-style:none;display:flex}.maker-q>summary::-webkit-details-marker{display:none}.maker-q-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:16rem;min-width:0;font-weight:700;overflow:hidden}.maker-q-body{border-top:1px solid var(--line);gap:1rem;padding-top:.5rem;display:grid}.maker-options{gap:.4rem;display:grid}.maker-option{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.maker-option input[type=text]{border:1px solid var(--line-strong);border-radius:var(--radius-s);width:100%;min-height:36px;font:inherit;padding:0 .6rem}.maker-option input[type=radio],.maker-option input[type=checkbox]{width:18px;height:18px;accent-color:var(--ok)}.maker-option-tools{display:flex}.maker-problems{color:var(--danger);gap:.25rem;margin:0;padding-left:1.1rem;font-size:.8125rem;display:grid}.maker-warnings{color:#a85a10}.maker-tabs{gap:.25rem;display:flex}.maker-yaml{background:var(--surface);border-radius:var(--radius-s);white-space:pre;max-height:28rem;color:var(--ink);margin:0;padding:.75rem;font:.75rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.doc-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.doc{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow);grid-template-columns:auto 1fr auto;align-items:start;gap:1rem;padding:1rem 1.25rem;display:grid}.doc[data-inactive]{background:var(--canvas)}.doc-type{border-radius:var(--radius-s);background:var(--coral-tint);width:2.75rem;height:2.75rem;color:var(--coral-ink);letter-spacing:.02em;place-items:center;font-size:.6875rem;font-weight:700;display:grid}.doc-body{gap:.25rem;min-width:0;display:grid}.doc-title{color:var(--ink);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.doc-description{color:var(--body);white-space:pre-line;overflow-wrap:anywhere;margin:0}.doc-meta{margin:0;font-size:.8125rem}.doc-manage{margin-top:.5rem}.doc-manage>summary{cursor:pointer;color:var(--coral-ink);width:fit-content;font-size:.8125rem;font-weight:700}.doc-manage[open]{gap:1rem;padding-top:.25rem;display:grid}.doc-manage[open]>summary{margin-bottom:.25rem}@media (max-width:560px){.doc{grid-template-columns:auto 1fr}.doc>.btn{grid-column:2;justify-self:start}}.track-choice{border:0;min-width:0;margin:0;padding:0}.track-choice .form-row{gap:1rem}.seat-toggles{flex-wrap:wrap;gap:.35rem;display:flex}.seat-toggles form{display:contents}.seat-toggles .form-error{flex-basis:100%;margin:0;font-size:.75rem}.seat-toggle{border:1px dashed var(--line-strong);background:var(--white);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;font-size:.75rem}.seat-toggle[aria-pressed=true]{border:1px solid var(--ok);background:var(--ok);color:var(--white);font-weight:700}.seat-toggle:focus-visible{outline-offset:1px;outline:3px solid #f2644059}.seat-toggle:disabled{opacity:.6;cursor:progress}.nowrap{white-space:nowrap}:root{--viz-1:#2a78d6;--viz-2:#eb6834;--viz-3:#1baf7a;--viz-other:#898781;--viz-grid:#e1e0d9;--viz-axis:#c3c2b7;--viz-tick:#898781;--viz-good:#006300;--viz-warning:#fab219;--viz-critical:#d03b3b}.viz-grid-layout{grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));gap:1rem;display:grid}.viz{grid-template-columns:minmax(0,1fr);gap:.75rem;min-width:0;margin:0;padding:1.25rem;display:grid}.viz-head h2{margin:0;font-size:1rem}.viz-head p{color:var(--muted);margin:.2rem 0 0;font-size:.8125rem}.viz-legend{color:var(--body);flex-wrap:wrap;gap:.4rem 1rem;margin:0;padding:0;font-size:.8125rem;list-style:none;display:flex}.viz-legend li{align-items:center;gap:.4rem;display:inline-flex}.viz-swatch{border-radius:2px;width:10px;height:10px}.viz-swatch.is-line{border-radius:1px;width:14px;height:2px}.viz-plot{position:relative}.viz-svg{width:100%;height:auto;display:block;overflow:visible}.viz-grid{stroke:var(--viz-grid);stroke-width:1px}.viz-base{stroke:var(--viz-axis);stroke-width:1px}.viz-tick{fill:var(--viz-tick);font-variant-numeric:tabular-nums;font-size:12px}.viz-value{fill:var(--ink);font-size:13px;font-weight:700}.viz-line{stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.viz-dot{stroke:var(--white);stroke-width:2px}.viz-hit{fill:#0000;cursor:default;outline:none}.viz-hit:focus-visible{fill:#2a78d614}.viz-crosshair{stroke:var(--viz-axis);stroke-width:1px;opacity:0;pointer-events:none}.viz-col:hover .viz-crosshair,.viz-col:focus-within .viz-crosshair{opacity:1}:is(g:has(>.viz-hit:hover)>path,g:has(>.viz-hit:focus-visible)>path){filter:brightness(1.12)}.viz-tip{z-index:3;pointer-events:none;background:var(--white);border:1px solid #0b0b0b1a;border-radius:6px;gap:.2rem;min-width:9rem;max-width:16rem;padding:.5rem .65rem;font-size:.8125rem;display:grid;position:absolute;top:0;left:0;box-shadow:0 4px 16px #00000014}.viz-tip[hidden]{display:none}.viz-tip-title{color:var(--muted);font-size:.75rem}.viz-tip-row{color:var(--body);align-items:center;gap:.45rem;display:flex}.viz-tip-row strong{color:var(--ink);font-variant-numeric:tabular-nums}.viz-tip-key{border-radius:1px;flex:none;width:12px;height:2px}.viz-empty{text-align:center;color:var(--muted);margin:0;padding:2.5rem 0;font-size:.875rem}.viz-table summary{cursor:pointer;color:var(--coral-ink);font-size:.8125rem}.viz-table table{margin-top:.5rem;font-size:.8125rem}.viz-table .num{text-align:right;font-variant-numeric:tabular-nums}.viz-hbars{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.viz-hbars li{gap:.3rem;display:grid}.viz-hbar-label{color:var(--body);font-size:.8125rem}.viz-hbar-track{align-items:center;gap:.6rem;display:flex}.viz-hbar{gap:2px;min-width:2px;height:16px;display:flex}.viz-hbar-seg{outline:none;min-width:3px}.viz-hbar-seg:last-child{border-radius:0 4px 4px 0}.viz-hbar-seg:hover,.viz-hbar-seg:focus-visible{filter:brightness(1.12);box-shadow:0 0 0 2px var(--white), 0 0 0 3px var(--viz-axis)}.viz-hbar-total{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.75rem}.viz-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:1rem;display:grid}.viz-stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);align-content:start;gap:.3rem;padding:1rem 1.25rem;display:grid}.viz-stat-label{color:var(--muted);font-size:.8125rem}.viz-stat-value{font:700 1.75rem/1.1 var(--font-body);color:var(--ink)}.viz-stat-value small{color:var(--muted);font-size:.875rem;font-weight:400}.viz-delta{color:var(--muted);font-size:.75rem}.viz-delta.is-up{color:var(--viz-good)}.viz-spark{width:96px;height:28px}.viz-spark polyline{fill:none;stroke:var(--viz-axis);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.viz-spark circle{fill:var(--viz-1);stroke:var(--white);stroke-width:2px}.viz-meter{background:#cde2fb;border-radius:4px;height:8px;display:block;overflow:hidden}.viz-meter span{background:var(--viz-1);border-radius:4px;height:100%;display:block}.viz-meter[data-state=nearly] span{background:var(--viz-warning)}.viz-meter[data-state=full] span{background:var(--viz-critical)}.viz-meter-note{color:var(--ink);font-size:.75rem;font-weight:700}.viz-meter[data-state=nearly]{background:#fdeec9}.viz-meter[data-state=full]{background:#f6d5d5}.viz-filters{flex-wrap:wrap;align-items:end;gap:.75rem;margin-bottom:1.25rem;display:flex}.viz-filters .field{min-width:10rem}
