:root{--blue:#0064e0;--blue-hover:#0356b8;--blue-press:#024187;--blue-soft:#e7f3ff;--ink:#1c2b33;--ink-2:#465a69;--muted:#65676b;--faint:#6b6e72;--line:#e4e6eb;--line-strong:#ccd0d5;--surface:#f1f4f7;--surface-2:#f7f8fa;--canvas:#fff;--green:#16703f;--green-soft:#e6f4ec;--red:#c9302c;--red-soft:#fdecea;--amber:#8a5300;--amber-soft:#fff4e0;--violet:#6b4fd8;--violet-soft:#f0ecff;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--t-xs:12px;--t-sm:13px;--t-md:15px;--t-lg:17px;--t-xl:22px;--t-2xl:36px;--radius-lg:24px;--radius:16px;--radius-sm:10px;--shadow-sm:0 1px 2px #1c2b330f;--shadow:0 1px 2px #1c2b330f, 0 8px 24px #1c2b3314;--shadow-drawer:-12px 0 40px #1c2b331f;--font:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--header:60px;--sidebar:264px;--drawer:440px;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--canvas);color:var(--ink);font-family:var(--font);font-size:var(--t-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}code,pre{font-family:var(--mono);font-size:.88em}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{grid-template-rows:var(--header) 1fr;height:100%;display:grid}.header{align-items:center;gap:var(--s3);padding:0 var(--s5);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--canvas) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30;display:flex;position:relative}.brand{align-items:center;gap:var(--s3);display:flex}.brand img{height:17px;display:block}.brand .divider{background:var(--line);width:1px;height:20px}.brand .name{font-weight:700;font-size:var(--t-lg);letter-spacing:-.01em}.header .spacer{flex:1}.header .menu-btn{display:none}.body{min-height:0;display:flex}.sidebar{width:var(--sidebar);border-right:1px solid var(--line);background:var(--surface-2);padding:var(--s5) var(--s3);flex:none;overflow-y:auto}.main{scroll-behavior:smooth;flex:1;min-width:0;overflow-y:auto}.drawer{background:var(--canvas);width:0;transition:width .24s var(--ease), border-color .24s;border-left:1px solid #0000;flex:none;overflow:hidden}.drawer.open{width:var(--drawer);border-left-color:var(--line)}.drawer-inner{width:var(--drawer);flex-direction:column;height:100%;display:flex}.drawer-head{align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--line);display:flex}.drawer-head h2{font-size:var(--t-lg);flex:1;margin:0}.drawer-body{padding:var(--s5);gap:var(--s4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.scrim{display:none}@media (width<=1279px){.drawer{top:var(--header);z-index:25;width:min(var(--drawer), 100vw);transition:transform .24s var(--ease);box-shadow:none;position:fixed;bottom:0;right:0;transform:translate(100%)}.drawer.open{box-shadow:var(--shadow-drawer);width:min(var(--drawer), 100vw);transform:none}.drawer-inner{width:100%}.scrim.open{inset:var(--header) 0 0 0;z-index:20;background:#1c2b333d;display:block;position:fixed}}@media (width<=860px){.header .menu-btn{display:inline-grid}.sidebar{top:var(--header);z-index:25;transition:transform .24s var(--ease);position:fixed;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none;box-shadow:12px 0 40px #1c2b331f}.brand .divider{display:none}.brand{gap:var(--s2)}}.eyebrow{color:var(--blue);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.muted{color:var(--muted)}.small{font-size:var(--t-sm)}.stack{gap:var(--s3);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.row.between{justify-content:space-between}.btn{justify-content:center;align-items:center;gap:var(--s2);height:40px;padding:0 var(--s5);white-space:nowrap;border:1px solid #0000;border-radius:999px;font-weight:600;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover:not(:disabled){background:var(--blue-hover)}.btn.secondary{background:var(--canvas);border-color:var(--line-strong);color:var(--ink)}.btn.secondary:hover:not(:disabled){background:var(--surface)}.btn.quiet{color:var(--ink-2);padding:0 var(--s3);background:0 0}.btn.quiet:hover:not(:disabled){background:var(--surface)}.btn.danger{background:var(--canvas);color:var(--red);border-color:#f0b8b5}.btn.sm{height:32px;padding:0 var(--s4);font-size:var(--t-sm)}.btn.block{width:100%}.icon-btn{width:32px;height:32px;color:var(--ink-2);background:0 0;border:none;border-radius:50%;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface)}.chip{height:24px;font-size:var(--t-xs);white-space:nowrap;background:var(--surface);color:var(--ink-2);border:none;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-weight:600;display:inline-flex}.chip.blue{background:var(--blue-soft);color:var(--blue)}.chip.green{background:var(--green-soft);color:var(--green)}.chip.red{background:var(--red-soft);color:var(--red)}.chip.amber{background:var(--amber-soft);color:var(--amber)}.chip.violet{background:var(--violet-soft);color:var(--violet)}button.chip:hover{filter:brightness(.97)}.header-btn{position:relative}.badge-dot{background:var(--blue);width:8px;height:8px;box-shadow:0 0 0 2px var(--canvas);border-radius:50%;position:absolute;top:6px;right:8px}.avatar{background:var(--blue-soft);width:32px;height:32px;color:var(--blue);font-weight:700;font-size:var(--t-sm);border-radius:50%;place-items:center;display:grid;position:relative}.avatar .status,.account .status{border:2px solid var(--canvas);background:var(--amber);border-radius:50%;width:10px;height:10px;position:absolute;bottom:-1px;right:-1px}.avatar .status.on,.account .status.on{background:var(--green)}.account{display:inline-flex;position:relative}.card{background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4)}.card.soft{background:var(--surface-2);border-color:#0000}.segmented{background:var(--surface);border-radius:999px;padding:3px;display:flex}.segmented button{height:32px;padding:0 var(--s3);font-size:var(--t-sm);color:var(--ink-2);background:0 0;border:none;border-radius:999px;flex:1;font-weight:600}.segmented button.on{background:var(--canvas);color:var(--ink);box-shadow:0 1px 3px #0000001f}.segmented button:disabled{opacity:.45;cursor:not-allowed}.field{flex-direction:column;gap:6px;display:flex}.field>span{font-size:var(--t-xs);color:var(--muted);font-weight:600}.input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--canvas);width:100%;padding:9px 12px}textarea.input{resize:vertical;min-height:96px;font-family:var(--mono);font-size:var(--t-sm)}.input:focus{outline:3px solid var(--blue-soft);border-color:var(--blue)}details.disclosure>summary{align-items:center;gap:var(--s2);cursor:pointer;font-weight:600;font-size:var(--t-sm);color:var(--ink-2);list-style:none;display:flex}details.disclosure>summary::-webkit-details-marker{display:none}details.disclosure>summary .caret{transition:transform .2s var(--ease)}details.disclosure[open]>summary .caret{transform:rotate(90deg)}.course-card{padding:0 var(--s2) var(--s4)}.course-card .title{font-weight:700;font-size:var(--t-lg)}.meter{background:var(--line);height:6px;margin-top:var(--s2);border-radius:6px;overflow:hidden}.meter>span{background:var(--green);height:100%;transition:width .4s var(--ease);border-radius:6px;display:block}.path{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.path-item{align-items:center;gap:var(--s3);text-align:left;width:100%;padding:var(--s2) var(--s2);border-radius:var(--radius-sm);background:0 0;border:none;display:flex}.path-item:hover{background:var(--surface)}.path-item.on{background:var(--canvas);box-shadow:var(--shadow-sm);font-weight:600}.path-item .num{width:26px;height:26px;font-size:var(--t-xs);color:var(--muted);border:1.5px solid var(--line-strong);background:var(--canvas);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.path-item .num.progress{border-color:var(--amber);color:var(--amber)}.path-item .num.rerouted{border-color:var(--violet);color:var(--violet);background:var(--violet-soft)}.path-item .num.mastered{border-color:var(--green);background:var(--green);color:#fff}.path-item .grow{flex:1;min-width:0;line-height:1.35}.sections{margin:2px 0 var(--s2);padding:0 0 0 46px;list-style:none}.sections a{padding:5px var(--s2);color:var(--ink-2);font-size:var(--t-sm);border-radius:8px;text-decoration:none;display:block}.sections a:hover{background:var(--surface);color:var(--ink)}.lesson{max-width:720px;padding:var(--s7) var(--s5) var(--s8);margin:0 auto}.crumbs{align-items:center;gap:var(--s2);color:var(--muted);font-size:var(--t-sm);margin-bottom:var(--s3);display:flex}.lesson h1{font-size:var(--t-2xl);letter-spacing:-.02em;margin:0 0 var(--s3);line-height:1.15}.lesson .lede{color:var(--ink-2);font-size:var(--t-lg);margin:0 0 var(--s4)}.lesson .prereqs{margin-bottom:var(--s6)}.lesson .lede+.section,.lesson .prereqs+.section{margin-top:var(--s6)}.notice{align-items:center;gap:var(--s3);background:var(--blue-soft);color:var(--blue-press);border-radius:var(--radius);padding:var(--s3) var(--s4);margin-bottom:var(--s5);font-size:var(--t-sm);display:flex}.notice .grow{flex:1}.notice.approval{background:var(--canvas);border:1px solid var(--blue);color:var(--ink);box-shadow:var(--shadow)}.section{scroll-margin-top:var(--s5)}.section h2{font-size:var(--t-xl);letter-spacing:-.01em;margin:var(--s7) 0 var(--s3)}.prose p{margin:0 0 var(--s4)}.prose ul{margin:0 0 var(--s4);padding-left:22px}.prose li+li{margin-top:4px}.prose pre{background:var(--surface);border-radius:var(--radius-sm);padding:var(--s3) var(--s4);margin:0 0 var(--s4);overflow-x:auto}.prose code{background:var(--surface);border-radius:6px;padding:1px 6px}.prose pre code{background:0 0;padding:0}.block.new{position:relative}.block.new:before{content:"";background:var(--green);border-radius:3px;width:3px;position:absolute;top:4px;bottom:4px;left:-16px}.block.archived{opacity:.45;text-decoration:line-through}.slot{align-items:center;gap:var(--s3);margin:var(--s5) 0;padding:var(--s3) var(--s4);border-radius:var(--radius);background:#faf8ff;border:1px dashed #c9bdf5;display:flex}.slot .grow{flex:1;min-width:0}.slot .what{font-weight:600;font-size:var(--t-sm);color:var(--violet)}.slot .who{font-size:var(--t-sm);color:var(--ink-2)}.slot-preview{margin:calc(-1 * var(--s3)) 0 var(--s5)}.contrast{border-radius:var(--radius-lg);background:var(--canvas);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.contrast .sides{grid-template-columns:1fr 1fr;display:grid}.contrast .side{padding:var(--s5)}.contrast .side.myth{background:var(--red-soft)}.contrast .side.fact{background:var(--green-soft)}.contrast .side h4{margin:0 0 var(--s2);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase}.contrast .side.myth h4{color:var(--red)}.contrast .side.fact h4{color:var(--green)}.contrast .why{padding:var(--s4) var(--s5);border-top:1px solid var(--line);color:var(--ink-2);font-size:var(--t-sm)}.contrast .check{padding:var(--s5);border-top:1px solid var(--line)}@media (width<=640px){.contrast .sides{grid-template-columns:1fr}}.player{border-radius:var(--radius-lg);color:#e8eef2;padding:var(--s5);box-shadow:var(--shadow);background:#0f1d26}.player h4{margin:0 0 var(--s1);font-size:var(--t-md)}.player .caption{color:#b7c6d1;font-size:var(--t-sm);min-height:44px;margin-bottom:var(--s3)}.player .messages{gap:var(--s2);flex-direction:column;min-height:180px;display:flex}.msg{gap:var(--s3);animation:rise .3s var(--ease);background:#172a36;border-radius:12px;grid-template-columns:72px 1fr;align-items:start;padding:10px 12px;transition:background .25s,box-shadow .25s;display:grid}@keyframes rise{0%{opacity:0;transform:translateY(4px)}}.msg .role{letter-spacing:.06em;text-transform:uppercase;padding-top:2px;font-size:11px;font-weight:700}.msg .role.user{color:#8fc4ff}.msg .role.model{color:#c7b8ff}.msg .role.harness{color:#ffd38a}.msg .role.tool{color:#8fe0b3}.msg .text{font-family:var(--mono);font-size:var(--t-sm)}.msg.hl{background:#1f3b4f;box-shadow:inset 0 0 0 2px #4aa3ff}.player .controls{align-items:center;gap:var(--s2);margin-top:var(--s4);display:flex}.player .controls .btn.secondary{color:#e8eef2;background:0 0;border-color:#36505f}.player .controls .btn.secondary:hover:not(:disabled){background:#172a36}.player .dots{flex:1;gap:6px;display:flex}.player .dots span{background:#2b4252;border-radius:4px;flex:1;height:4px}.player .dots span.on{background:#4aa3ff}.options{gap:var(--s2);margin-top:var(--s3);flex-direction:column;display:flex}.option{gap:var(--s3);text-align:left;width:100%;padding:var(--s3) var(--s4);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--canvas);align-items:flex-start;transition:border-color .15s,background .15s;display:flex}.option:hover:not(:disabled){border-color:var(--line-strong)}.option .mark{border:1.5px solid var(--line-strong);border-radius:50%;flex:none;place-items:center;width:18px;height:18px;margin-top:3px;display:grid}.option .mark.square{border-radius:5px}.option.picked{border-color:var(--blue);background:var(--blue-soft)}.option.picked .mark{border-color:var(--blue);background:var(--blue);box-shadow:inset 0 0 0 3px var(--blue-soft)}.option.picked .mark.square{box-shadow:none;color:#fff;font-size:12px}.option.right{border-color:var(--green);background:var(--green-soft)}.option.wrong{border-color:var(--red);background:var(--red-soft)}.option:disabled{cursor:default}.feedback{font-size:var(--t-sm);color:var(--ink-2);margin-top:var(--s1)}.quiz{margin-top:var(--s8);padding-top:var(--s6);border-top:1px solid var(--line)}.quiz-top{justify-content:space-between;align-items:baseline;gap:var(--s3);display:flex}.quiz-top h2{font-size:var(--t-xl);margin:0}.progressbar{margin:var(--s4) 0 var(--s5);gap:4px;display:flex}.progressbar button{background:var(--line);border:none;border-radius:6px;flex:1;height:6px;padding:0}.progressbar button.done{background:#3d7fd6}.progressbar button.current{background:var(--blue);box-shadow:0 0 0 2px var(--canvas), 0 0 0 4px var(--blue)}.question{background:var(--surface-2);border-radius:var(--radius-lg);padding:var(--s5)}.question .kind{font-size:var(--t-xs);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--s2);font-weight:600}.question .prompt{font-size:var(--t-lg);font-weight:600;line-height:1.45}.question .sub{margin-top:var(--s4);font-weight:600}.certainty{align-items:center;gap:var(--s3);margin-top:var(--s5);font-size:var(--t-sm);color:var(--muted);display:flex}.certainty .segmented{flex:0 300px}.quiz-nav{margin-top:var(--s4);justify-content:space-between;align-items:center;display:flex}.list{margin-top:var(--s3);flex-direction:column;gap:6px;display:flex}.list-item{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius-sm);display:flex}.list-item .grow{flex:1}.list-item.code{font-family:var(--mono);font-size:var(--t-sm);white-space:pre;overflow-x:auto}button.list-item:hover{border-color:var(--line-strong)}.match{gap:var(--s3);margin-top:var(--s2);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:center;display:grid}.cloze{line-height:2.6;font-size:var(--t-lg)}.cloze input{width:160px;margin:0 var(--s1);padding:4px 10px;display:inline-block}.result{border-radius:var(--radius-lg);padding:var(--s5)}.result.pass{background:var(--green-soft)}.result.fail{background:var(--amber-soft)}.result h3{font-size:var(--t-xl);margin:0}.score-dots{margin-top:var(--s3);gap:6px;display:flex}.score-dots span{background:var(--line-strong);border-radius:50%;width:12px;height:12px}.score-dots span.right{background:var(--green)}.score-dots span.wrong{background:var(--red)}.next-steps{gap:var(--s5);margin-top:var(--s5);flex-direction:column;display:flex}.for-you{align-items:center;gap:var(--s2);font-size:var(--t-sm);color:var(--violet);margin-bottom:var(--s3);font-weight:600;display:flex}.stepper{align-items:flex-start;display:flex}.stepper .stage{color:var(--faint);text-align:center;flex-direction:column;flex:1;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex;position:relative}.stepper .stage:before{content:"";background:var(--line);z-index:0;height:2px;position:absolute;top:11px;left:-50%;right:50%}.stepper .stage:first-child:before{display:none}.stepper .stage .node{background:var(--canvas);border:2px solid var(--line-strong);z-index:1;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;display:grid}.stepper .stage.done{color:var(--ink-2)}.stepper .stage.done:before,.stepper .stage.current:before{background:var(--blue)}.stepper .stage.done .node{background:var(--blue);border-color:var(--blue);color:#fff}.stepper .stage.current{color:var(--blue)}.stepper .stage.current .node{border-color:var(--blue)}.stepper .stage.failed{color:var(--red)}.stepper .stage.failed .node{background:var(--red);border-color:var(--red);color:#fff}.headline{font-size:var(--t-lg);margin-top:var(--s4);font-weight:700}.headline-sub{color:var(--muted);font-size:var(--t-sm)}.approval{border:1.5px solid var(--blue);border-radius:var(--radius);padding:var(--s4);box-shadow:var(--shadow);background:var(--canvas)}.approval .version{font-family:var(--mono);font-size:var(--t-sm)}.approval ul{margin:var(--s2) 0;padding-left:20px}.approval .why{font-size:var(--t-sm);color:var(--ink-2)}.activity{margin-top:var(--s2);flex-direction:column;display:flex}.act{align-items:flex-start;gap:var(--s3);padding:6px var(--s1);text-align:left;background:0 0;border:none;border-radius:8px;width:100%;display:flex}button.act:hover{background:var(--surface-2)}.act .who{border-radius:50%;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;font-size:11px;display:grid}.act .who.agent{background:var(--violet-soft);color:var(--violet)}.act .who.code{background:var(--surface);color:var(--ink-2)}.act .who.human{background:var(--blue-soft);color:var(--blue)}.act .text{font-size:var(--t-sm);flex:1}.act.rejected .text{color:var(--red)}.act .detail{font-size:var(--t-xs);color:var(--ink-2);white-space:pre-wrap;background:var(--surface-2);padding:var(--s2) var(--s3);margin:2px 0 var(--s2) 34px;border-radius:8px}.spinner{border:2px solid var(--blue-soft);border-top-color:var(--blue);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.verdict{border-radius:var(--radius);padding:var(--s4)}.verdict.keep{background:var(--green-soft)}.verdict.revert{background:var(--red-soft)}.verdict h3{font-size:var(--t-lg);margin:0}.bars{gap:var(--s3);margin:var(--s4) 0 var(--s3);flex-direction:column;display:flex}.bar .label{font-size:var(--t-xs);color:var(--ink-2);justify-content:space-between;margin-bottom:4px;display:flex}.bar .track{background:#fffc;border-radius:10px;height:10px;overflow:hidden}.bar .fill{height:100%;transition:width .6s var(--ease);border-radius:10px}.history{gap:var(--s2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history button{text-align:left;border:1px solid var(--line);background:var(--canvas);border-radius:var(--radius-sm);width:100%;padding:var(--s3)}.history button:hover{border-color:var(--line-strong)}.history button.on{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.history .ver{font-family:var(--mono);font-size:var(--t-sm);font-weight:600}.history .what{font-size:var(--t-sm);color:var(--ink-2);margin-top:2px}.empty{color:var(--muted);font-size:var(--t-sm);text-align:center;padding:var(--s6) var(--s3)}.footnote{font-size:var(--t-xs);color:var(--faint)}.auth{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100%;display:grid}.auth-brand{padding:var(--s6) clamp(var(--s5), 5vw, var(--s8));border-right:1px solid var(--line);background:radial-gradient(90% 70% at 30% 40%,#e7f3ff 0%,#f5f9ff 55%,#fff 100%);flex-direction:column;justify-content:space-between;display:flex}.auth-brand .brand img{height:18px}.auth-hero{align-items:flex-start;gap:var(--s3);flex-direction:column;display:flex}.auth-hero h1{letter-spacing:-.03em;margin:0;font-size:clamp(34px,3.8vw,52px);line-height:1.05}.auth-hero p{font-size:var(--t-lg);color:var(--ink-2);max-width:30ch;margin:0}.auth-credit{font-size:var(--t-sm);color:var(--muted)}.auth-form{padding:var(--s6) var(--s5);background:var(--canvas);place-items:center;display:grid}.network{width:min(100%,470px);height:auto;margin-top:var(--s6);overflow:visible}.network .edge{fill:none;stroke:#b9d0ee;stroke-width:1.6px;stroke-linecap:round}.network .edge.thin{stroke:#dbe6f4;stroke-width:1px}.network .edge.repair{stroke:var(--blue);stroke-width:2px;stroke-dasharray:1;stroke-dashoffset:1px;animation:8s infinite repair-edge}.network .node{fill:var(--canvas);stroke:#8fb2e2;stroke-width:2px}.network .node.small{stroke:#c4d6ee;stroke-width:1.5px}.network .node.lesson{fill:#eef5ff}.network .node.struggling{animation:8s infinite struggle}.network .pulse{fill:var(--blue);opacity:.85}.network .repair-pulse{filter:drop-shadow(0 0 5px #0064e08c)}@keyframes struggle{0%,8%{fill:#eef5ff;stroke:#8fb2e2}14%,36%{fill:#fff1d6;stroke:#e0a030}50%,92%{fill:var(--blue);stroke:var(--blue)}to{fill:#eef5ff;stroke:#8fb2e2}}@keyframes repair-edge{0%,30%{stroke-dashoffset:1px;opacity:1}50%,90%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}.network.still .edge.repair{stroke-dashoffset:0;animation:none}.network.still .node.struggling{fill:var(--blue);stroke:var(--blue);animation:none}@media (width<=900px){.auth{grid-template-columns:1fr}.auth-brand{border-right:none;border-bottom:1px solid var(--line);gap:var(--s4);padding:var(--s5)}.network,.auth-credit,.auth-hero p{display:none}.auth-hero h1{margin-top:var(--s2);font-size:28px}}.tiles{gap:var(--s3);margin:var(--s5) 0 var(--s2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.tile{background:var(--surface-2);border-radius:var(--radius);padding:var(--s4);flex-direction:column;gap:2px;display:flex}.tile .value{font-size:var(--t-xl);letter-spacing:-.01em;font-weight:700}.tile .of{font-size:var(--t-md);color:var(--muted);font-weight:600}.tile .label{font-size:var(--t-sm);color:var(--muted)}@media (width<=640px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.lesson-rows,.belief-list,.plain-list{gap:var(--s2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lesson-row{align-items:center;gap:var(--s4);text-align:left;border:1px solid var(--line);background:var(--canvas);border-radius:var(--radius-sm);width:100%;padding:var(--s3) var(--s4);display:flex}.lesson-row:hover{border-color:var(--line-strong)}.lesson-row .grow{flex-direction:column;flex:1;min-width:0;display:flex}.lesson-row .name{font-weight:600}.mastery{align-items:center;gap:var(--s2);flex:none;width:160px;display:flex}.mastery .meter{flex:1;margin:0}.belief{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--radius-sm);background:var(--surface-2);display:flex}.belief .grow{flex:1;min-width:0}.belief.open{background:var(--amber-soft)}.two-col{gap:var(--s6);grid-template-columns:1fr 1fr;display:grid}@media (width<=720px){.two-col{grid-template-columns:1fr}}.danger-zone{border-top:1px solid var(--line);margin-top:var(--s7);padding-top:var(--s2)}.lesson.wide{max-width:960px}.learner-rows{margin:var(--s3) 0 0;gap:var(--s2);flex-direction:column;padding:0;list-style:none;display:flex}.learner-row{align-items:center;gap:var(--s4);text-align:left;border:1px solid var(--line);background:var(--canvas);border-radius:var(--radius-sm);width:100%;padding:var(--s3) var(--s4);display:flex}.learner-row:hover{border-color:var(--line-strong)}.learner-row .who{flex-direction:column;flex:1;min-width:0;display:flex}.learner-row .name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.learner-row .beliefs{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:300px;display:flex}.learner-row .mastery{width:120px}@media (width<=760px){.learner-row .beliefs,.learner-row .mastery{display:none}}.timeline-list{border-left:2px solid var(--line);margin:0 0 0 6px;padding:0;list-style:none}.timeline-list li{align-items:baseline;gap:var(--s3);padding:6px 0 6px var(--s4);font-size:var(--t-sm);display:flex;position:relative}.timeline-list .dot{background:var(--line-strong);border:2px solid var(--canvas);border-radius:50%;width:10px;height:10px;position:absolute;top:12px;left:-6px}.timeline-list li.fail .dot{background:var(--amber)}.timeline-list li.pass .dot{background:var(--green)}.timeline-list li.intervention .dot{background:var(--violet)}.timeline-list li.session .dot{background:var(--canvas);border-color:var(--line-strong)}.timeline-list .grow{flex:1}.timeline-list time{flex:none}
