:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--dark:0;--color-paper:var(--lightningcss-light,#fbf9f5)var(--lightningcss-dark,#14150f);--color-surface-low:var(--lightningcss-light,#f5f3ef)var(--lightningcss-dark,#1c1e18);--color-surface-high:var(--lightningcss-light,#eae8e4)var(--lightningcss-dark,#2a2d26);--color-surface-lowest:var(--lightningcss-light,#fff)var(--lightningcss-dark,#212319);--color-border:var(--lightningcss-light,#d4d8d0)var(--lightningcss-dark,#363a31);--color-ink:var(--lightningcss-light,#1b1c1a)var(--lightningcss-dark,#e6e5df);--color-ink-soft:var(--lightningcss-light,#434840)var(--lightningcss-dark,#b3b8ac);--color-ink-faint:var(--lightningcss-light,#8b9086)var(--lightningcss-dark,#7e857a);--color-ink-wash:var(--lightningcss-light,#1b1c1a1a)var(--lightningcss-dark,#e6e5df1f);--color-on-accent:var(--lightningcss-light,#fff)var(--lightningcss-dark,#14180f);--color-primary:var(--lightningcss-light,#4c6546)var(--lightningcss-dark,#9cbf90);--color-primary-hover:var(--lightningcss-light,#3b5334)var(--lightningcss-dark,#b0cfa4);--color-primary-light:var(--lightningcss-light,#89a481)var(--lightningcss-dark,#6f8f66);--color-primary-container:var(--lightningcss-light,#c6dabc)var(--lightningcss-dark,#35472f);--color-primary-wash:var(--lightningcss-light,#edf1e8)var(--lightningcss-dark,#1f2a1b);--color-secondary:var(--lightningcss-light,#576153)var(--lightningcss-dark,#a8b3a2);--color-secondary-container:var(--lightningcss-light,#dbe6d3)var(--lightningcss-dark,#2e3b29);--color-secondary-hover:var(--lightningcss-light,#e6e8e0)var(--lightningcss-dark,#333730);--color-sage:var(--lightningcss-light,#6ab47b)var(--lightningcss-dark,#7fc48d);--color-tertiary:var(--lightningcss-light,#7c5262)var(--lightningcss-dark,#d3a6b6);--color-tertiary-container:var(--lightningcss-light,#f2e2e7)var(--lightningcss-dark,#3a2b31);--color-danger:var(--lightningcss-light,#a13d3d)var(--lightningcss-dark,#e08b8b);--color-danger-hover:var(--lightningcss-light,#8a3333)var(--lightningcss-dark,#ea9d9d);--color-danger-container:var(--lightningcss-light,#f3dede)var(--lightningcss-dark,#3a2020);--color-warn:var(--lightningcss-light,#d48a2e)var(--lightningcss-dark,#e0a050);--color-warn-ink:var(--lightningcss-light,#a06820)var(--lightningcss-dark,#eab97a);--color-warn-container:var(--lightningcss-light,#fef6ec)var(--lightningcss-dark,#2a1f0e);--color-info-container:var(--lightningcss-light,#e0ecf0)var(--lightningcss-dark,#23343a);--color-info-ink:var(--lightningcss-light,#3a6575)var(--lightningcss-dark,#a8cddb);--color-hairline-sage:var(--lightningcss-light,#89a4812e)var(--lightningcss-dark,#9cbf9038);--color-dot:var(--lightningcss-light,#1b1c1a21)var(--lightningcss-dark,#e6e5df1a);--color-dot-strong:var(--lightningcss-light,#1b1c1a61)var(--lightningcss-dark,#e6e5df4d);--color-dot-faint:var(--lightningcss-light,#1b1c1a0d)var(--lightningcss-dark,#e6e5df0d);--color-scrim-modal:var(--lightningcss-light,#1b1c1a59)var(--lightningcss-dark,#0009);--color-scrim-nav:var(--lightningcss-light,#00000073)var(--lightningcss-dark,#000000b3);--line:var(--lightningcss-light,#1b1c1a14)var(--lightningcss-dark,#e6e5df1a);--color-deco-pink:var(--lightningcss-light,var(--color-tertiary-container))var(--lightningcss-dark,var(--color-tertiary));--color-deco-green:var(--lightningcss-light,var(--color-secondary-container))var(--lightningcss-dark,var(--color-primary-light));--color-node-mastered:var(--lightningcss-light,#4c6546)var(--lightningcss-dark,#557a4b);--color-node-learning:var(--lightningcss-light,#89a481)var(--lightningcss-dark,#3d5636);--color-node-new:var(--lightningcss-light,#dbe6d3)var(--lightningcss-dark,#26301f);--color-node-field-new:var(--lightningcss-light,#c6dab8)var(--lightningcss-dark,#2f3f28);--color-node-label:var(--lightningcss-light,#fff)var(--lightningcss-dark,#f0f3ec);--shadow-offset:.25rem .25rem 0 var(--color-secondary-container);--shadow-lift:0 1.125rem 2.5rem -1.375rem var(--lightningcss-light,#1b1c1a38)var(--lightningcss-dark,#000000b3);--shadow-lift-sm:0 .625rem 1.5rem -1.125rem var(--lightningcss-light,#1b1c1a2e)var(--lightningcss-dark,#0009);--shadow-menu:0 .25rem 1rem -.5rem var(--lightningcss-light,#1b1c1a1f)var(--lightningcss-dark,#0000), 0 1.5rem 3.5rem -1rem var(--lightningcss-light,#1b1c1a33)var(--lightningcss-dark,#000000b3);--shadow-pop:0 .5rem 2.5rem var(--lightningcss-light,#1b1c1a33)var(--lightningcss-dark,#0009);--shadow-toast:0 .75rem 2.5rem var(--lightningcss-light,#1b1c1a33)var(--lightningcss-dark,#0009);--shadow-tip:0 .375rem 1.5rem var(--lightningcss-light,#1b1c1a26)var(--lightningcss-dark,#00000080);--shadow-pill:0 .0625rem .25rem var(--lightningcss-light,#1b1c1a1a)var(--lightningcss-dark,#0006);--shadow-tail-lift:0 -.6rem 1.1rem -.85rem var(--lightningcss-light,#1b1c1a4d)var(--lightningcss-dark,#000000a6);--shadow-raised:0 1px 2px var(--lightningcss-light,#1b1c1a29)var(--lightningcss-dark,#00000080), 0 2px 6px 2px var(--lightningcss-light,#1b1c1a17)var(--lightningcss-dark,#00000059);--shadow-halo:0 0 6rem .5rem var(--lightningcss-light,#1b1c1a29)var(--lightningcss-dark,#0009);--shadow-tail-fade:0 -1.25rem 3rem -1.5rem var(--lightningcss-light,#1b1c1a38)var(--lightningcss-dark,#000000b3);--shadow-fab:0 1px 3px var(--lightningcss-light,#1b1c1a29)var(--lightningcss-dark,#00000080), 0 4px 8px 3px var(--lightningcss-light,#1b1c1a1c)var(--lightningcss-dark,#00000061);--card-edge:calc(1px * var(--dark)) solid var(--color-border);--thumb-filter:brightness(calc(1 - .15 * var(--dark))) saturate(calc(1 - .05 * var(--dark)));--radius-sm:.5rem;--radius-tab:.75rem;--radius-md:1.5rem;--radius-lg:2rem;--radius-xl:3rem;--radius-fab:1rem;--radius-full:999px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--dark:1}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--dark:0}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--dark:1}*{box-sizing:border-box}html,body,#root{min-height:100vh}body{background-color:var(--color-paper);background-image:radial-gradient(var(--color-dot) 1.4px, transparent 1.4px);color:var(--color-ink);overflow-wrap:anywhere;background-position:13px 13px;background-size:26px 26px;margin:0;font-family:Plus Jakarta Sans,sans-serif;position:relative}.canvas-grid{pointer-events:none;z-index:0;position:fixed;inset:0}.canvas-glow{pointer-events:none;z-index:0;background-color:#0000;background-image:radial-gradient(var(--color-dot-strong) 1.4px, transparent 1.4px);background-size:26px 26px;background-position:var(--scroll-x,13px) var(--scroll-y,13px);-webkit-mask-image:radial-gradient(12.5rem circle at var(--mouse-x,-999px) var(--mouse-y,-999px), black 0%, transparent 100%);-webkit-mask-image:radial-gradient(12.5rem circle at var(--mouse-x,-999px) var(--mouse-y,-999px), black 0%, transparent 100%);mask-image:radial-gradient(12.5rem circle at var(--mouse-x,-999px) var(--mouse-y,-999px), black 0%, transparent 100%);position:fixed;inset:0}#root{z-index:1;position:relative;overflow-x:clip}.top-nav{z-index:10;background:var(--color-paper);justify-content:space-between;align-items:center;gap:1.5rem;padding:1.25rem 2.5rem;display:flex;position:sticky;top:0}.app-shell{max-width:60rem;margin:0 auto;padding:2rem 1.5rem 4rem}.top-nav-logo img,.login-brand img{content:url(/parcourse-wordmark.svg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .top-nav-logo img,:root:not([data-theme=light]) .login-brand img{content:url(/parcourse-wordmark-dark.svg)}}:root[data-theme=dark] .top-nav-logo img,:root[data-theme=dark] .login-brand img{content:url(/parcourse-wordmark-dark.svg)}.top-nav-logo{color:var(--color-primary);align-items:center;gap:.4rem;font-size:1.25rem;font-weight:800;text-decoration:none;display:flex}.top-nav-links{color:var(--color-ink-soft);flex:1;gap:.35rem;font-size:.9rem;font-weight:700;display:flex}.top-nav-links a{color:inherit;cursor:pointer;border-radius:var(--radius-full);padding:.55rem 1rem;text-decoration:none;transition:background .15s,color .15s}.top-nav-links a:hover{background:var(--color-surface-high);color:var(--color-ink)}.top-nav-links a.active{background:var(--color-secondary-container);color:var(--color-primary)}.top-nav-user{align-items:center;gap:.75rem;display:flex;position:relative}.avatar-button{appearance:none;cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;padding:0;transition:transform .12s}.avatar-button:hover{transform:scale(1.06)}.avatar{border-radius:var(--radius-full);background:var(--color-secondary-container);width:2.25rem;height:2.25rem;color:var(--color-primary);object-fit:cover;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:800;transition:background .15s;display:flex}.avatar:hover{background:var(--color-primary-container)}.user-menu{z-index:30;text-align:left;flex-direction:column;gap:.35rem;min-width:16rem;max-width:min(20rem,100vw - 2rem);display:flex;position:absolute;top:calc(100% + .625rem);right:0}.user-dropdown{background:var(--color-surface-lowest);border-radius:var(--radius-lg);box-shadow:var(--shadow-menu);border:var(--card-edge);flex-direction:column;padding:.5rem;display:flex}.user-dropdown-header{border-bottom:1px solid var(--line);flex-direction:column;gap:.15rem;margin-bottom:.3rem;padding:.7rem .9rem .6rem;display:flex}.user-dropdown-identity{align-items:center;gap:.5rem;display:flex}.user-dropdown-name{min-width:0;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;font-weight:700;overflow:hidden}.user-dropdown-email{color:var(--color-ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.user-dropdown-header .role-pill{flex-shrink:0}.theme-switch{border-radius:var(--radius-md);background:var(--color-surface-low);gap:.15rem;margin:.25rem .15rem;padding:.2rem;display:flex}.theme-switch-option{appearance:none;cursor:pointer;border-radius:var(--radius-md);color:var(--color-ink-soft);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:.3rem;padding:.4rem .3rem;font-family:inherit;font-size:.72rem;font-weight:700;transition:background .12s,color .12s;display:flex}.theme-switch-option:hover{color:var(--color-ink)}.login-theme-switch{z-index:2;width:auto;position:absolute;top:1.25rem;right:1.25rem}.theme-switch.login-theme-switch .theme-switch-option{white-space:nowrap;flex:none;padding:.4rem .6rem}@media (width<=640px){.login-theme-switch{top:.75rem;right:.75rem}}.theme-switch-option.active{background:var(--color-surface-lowest);color:var(--color-primary);box-shadow:var(--shadow-pill)}.user-dropdown-item{appearance:none;text-align:left;border-radius:var(--radius-md);cursor:pointer;color:var(--color-ink);background:0 0;border:none;align-items:center;gap:.5rem;padding:.6rem .9rem;font-size:.85rem;font-weight:700;transition:background .12s;display:flex}.user-dropdown-item svg{opacity:.6;flex-shrink:0}.user-dropdown-item:hover{background:var(--color-surface-low)}.user-dropdown-item.danger{color:var(--color-danger)}.user-dropdown-version{background:var(--color-secondary-container);border-radius:var(--radius-lg);box-shadow:var(--shadow-menu);border-radius:var(--radius-full);color:var(--color-primary);align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-size:.7rem;font-weight:700;text-decoration:none;transition:background .12s;display:flex}.user-dropdown-version svg{opacity:.7;flex-shrink:0}.user-dropdown-version svg:last-child{margin-left:auto;transition:transform .15s}.user-dropdown-version:hover{background:var(--color-primary);color:var(--color-surface-lowest)}.user-dropdown-version:hover svg:last-child{transform:translate(.15rem)}.user-email{color:var(--color-ink-soft);font-size:.9rem}.hero{text-align:center;padding:2rem 0 3rem;position:relative}.hero:before{content:"";z-index:-1;background:radial-gradient(ellipse 60% 80% at 50% 40%, var(--color-paper) 40%, transparent 100%);pointer-events:none;position:absolute;inset:-2rem -4rem}.hero-title{letter-spacing:-.02em;margin:0;font-size:3rem;font-weight:800;line-height:1.1}.hero-title .accent{color:var(--color-primary-light);font-style:italic}.hero-subtitle{color:var(--color-ink-soft);max-width:33rem;margin:1.25rem auto 0}.login-page .hero-title{max-width:33rem;margin-left:auto;margin-right:auto}.login-page .hero{width:100%;max-width:33rem}.url-form-wrap{max-width:40rem;margin:2rem auto 0;position:relative}.url-form{background:var(--color-surface-lowest);border:1.5px solid var(--color-ink);border-radius:var(--radius-full);box-shadow:.25rem .25rem 0 var(--color-secondary-container);gap:.5rem;padding:.5rem .5rem .5rem 1.5rem;display:flex}.text-input{min-width:0;color:var(--color-ink);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:1rem}.text-input::placeholder{color:var(--color-ink-soft);opacity:.6}.text-input:-webkit-autofill{-webkit-box-shadow:0 0 0 62.5rem var(--color-surface-lowest) inset;box-shadow:0 0 0 62.5rem var(--color-surface-lowest) inset;-webkit-text-fill-color:var(--color-ink);caret-color:var(--color-ink)}.text-input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 62.5rem var(--color-surface-lowest) inset;box-shadow:0 0 0 62.5rem var(--color-surface-lowest) inset;-webkit-text-fill-color:var(--color-ink);caret-color:var(--color-ink)}.text-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 62.5rem var(--color-surface-lowest) inset;box-shadow:0 0 0 62.5rem var(--color-surface-lowest) inset;-webkit-text-fill-color:var(--color-ink);caret-color:var(--color-ink)}.text-input.boxed{background:var(--color-surface-low);border-radius:var(--radius-full);width:100%;margin-bottom:.85rem;padding:.85rem 1.5rem;display:block}.text-input.boxed.textarea{border-radius:var(--radius-md);resize:vertical;min-height:5rem;font-family:inherit}.button{border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;letter-spacing:normal;text-transform:none;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.9rem 1.85rem;font-family:inherit;font-size:.95rem;font-style:normal;font-weight:700;line-height:normal;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.button:active{transform:scale(.975)}.button.primary{background:var(--color-primary);color:var(--color-on-accent)}.button.primary:hover{background:var(--color-primary-hover)}.button.secondary{background:var(--color-surface-high);color:var(--color-ink)}.button.secondary:hover{background:var(--color-secondary-hover)}.button.danger{background:var(--color-danger);color:var(--color-on-accent)}.button.danger:hover{background:var(--color-danger-hover)}.button.tertiary{color:var(--color-primary);background:0 0;padding:.5rem 0;text-decoration:underline}.button:disabled{opacity:.5;cursor:default}.button-row{flex-wrap:wrap;gap:.75rem;display:flex}.status-message{text-align:center;color:var(--color-ink-soft);margin-top:1rem}.error-message{text-align:center;color:var(--color-danger);margin-top:1rem}.empty-state{text-align:center;padding:4rem 1rem}.card{background:var(--color-surface-lowest);border-radius:var(--radius-xl);box-shadow:var(--shadow-lift-sm);border:var(--card-edge);text-align:left;padding:2rem 1.75rem;transition:background .15s,box-shadow .2s}.card.muted{background:var(--color-surface-low)}.login-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative}.login-brand{color:var(--color-primary);align-items:center;gap:.55rem;margin-bottom:2.5rem;font-size:1.5rem;font-weight:800;display:flex}.login-form{flex-direction:column;gap:.75rem;width:100%;max-width:33rem;margin:2.25rem auto 0;display:flex}.login-input-pill{background:var(--color-surface-lowest);border:1.5px solid var(--color-ink);border-radius:var(--radius-full);box-shadow:.25rem .25rem 0 var(--color-secondary-container);align-items:center;padding:1rem 1.75rem;display:flex}.login-input-pill .text-input{flex:1;font-size:1.05rem}.login-input-pill .icon-btn{margin:-.45rem -.5rem -.45rem .5rem}.login-submit{width:100%;margin-top:.25rem;padding:1rem 1.75rem;font-size:1.05rem;border-radius:var(--radius-full)!important}.login-sso{flex-direction:column;width:100%;max-width:33rem;margin:1.25rem auto 0;display:flex}.login-divider{color:var(--color-ink-soft);grid-template-columns:1fr auto 1fr;align-items:center;gap:.85rem;margin-bottom:1.25rem;font-size:.85rem;display:grid}.login-divider:before,.login-divider:after{content:"";background:var(--color-surface-high);height:1.5px}.login-sso .login-submit{text-align:center;justify-content:center;align-items:center;margin-top:0;text-decoration:none;display:inline-flex}.login-sso-note{text-align:center;color:var(--color-ink-soft);margin:.9rem 0 0;font-size:.85rem}.link-button{appearance:none;color:var(--color-ink-soft);cursor:pointer;text-underline-offset:.1875rem;background:0 0;border:none;font-family:inherit;font-size:.85rem;font-weight:600;text-decoration:underline}.link-button:hover{color:var(--color-ink)}.setup-radio-pill{background:var(--color-surface-lowest);border:1.5px solid var(--color-ink);border-radius:var(--radius-full);box-shadow:.25rem .25rem 0 var(--color-secondary-container);cursor:pointer;text-align:left;align-items:center;gap:1rem;padding:1rem 1.75rem;transition:background .12s,border-color .12s;display:flex}.setup-radio-pill input[type=radio]{accent-color:var(--color-primary);flex-shrink:0;width:1.1rem;height:1.1rem}.setup-radio-pill.selected{background:var(--color-secondary-container);border-color:var(--color-primary)}.setup-radio-text{flex-direction:column;gap:.1rem;font-size:1rem;display:flex}.setup-radio-text strong{color:var(--color-ink);font-weight:700}.setup-radio-text span{color:var(--color-ink-soft);font-size:.85rem}.setup-added-list{flex-wrap:wrap;justify-content:center;gap:.4rem;margin:.75rem 0;display:flex}.setup-added-pill{background:var(--color-secondary-container);color:var(--color-primary);border-radius:var(--radius-full);padding:.3rem .85rem;font-size:.82rem;font-weight:600}.radio-row{cursor:pointer;align-items:center;gap:.6rem;padding:.6rem 0;display:flex}.deco-wrap{display:inline-flex;position:relative}.deco-ring{border:2px dashed var(--color-primary-light);opacity:.6;pointer-events:none;border-radius:44% 56% 52% 48%/48% 44% 56% 52%;position:absolute;inset:-.875rem}.deco-dot{pointer-events:none;border-radius:50%;position:absolute}.deco-dot.rose{background:var(--color-tertiary);width:1.1rem;height:1.1rem;top:-.5rem;right:-.3rem}.deco-dot.moss{background:var(--color-secondary-container);border-radius:40% 60% 55% 45%/50%;width:1.7rem;height:1.7rem;bottom:-.7rem;left:-1rem;transform:rotate(-12deg)}.ai-card{background:var(--color-primary-wash);border-radius:var(--radius-xl);padding:2.25rem 2.5rem 2.4rem;position:relative}.ai-card-head{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.ai-card-head .spark{color:var(--color-primary-light);font-size:1.4rem;line-height:1}.ai-card-head h3{color:var(--color-primary);letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:800}.ai-card-eyebrow{color:var(--color-primary);letter-spacing:-.02em;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:1.35rem;font-weight:800;display:flex}.ai-card-grid{grid-template-columns:1.15fr 1fr;gap:2.5rem;display:grid}@media (width<=760px){.ai-card{padding:1.5rem 1.5rem 1.75rem}.ai-card-grid{grid-template-columns:1fr;gap:1.25rem}}.ai-card p.quote{color:var(--color-ink-soft);margin:0;font-size:1rem;line-height:1.72}.ai-card-points{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.ai-card-points li{padding-left:1.6rem;font-size:1rem;font-weight:600;line-height:1.45;position:relative}.ai-card-points li:before{content:"";background:var(--color-tertiary);border-radius:50%;width:.6rem;height:.6rem;position:absolute;top:.5rem;left:0}.ai-card-points li:nth-child(2):before{background:var(--color-primary)}.ai-card-points li:nth-child(3):before{background:var(--color-primary-light)}.ai-card-points li:nth-child(4):before{background:var(--color-secondary)}.course-layout{grid-template-columns:13.75rem 1fr;gap:2rem;max-width:100vw;margin:0 calc(50% - 50vw);padding:0 calc(50vw - 36.875rem);display:grid}.course-actions-mobile{display:none}@media (width<=860px){.course-actions-mobile{justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.course-layout{grid-template-columns:1fr;margin:0;padding:0}.course-sidebar{display:none}}.course-sidebar{position:relative}.sidebar-nav{flex-direction:column;gap:.25rem;display:flex;position:sticky;top:2rem}.sidebar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-soft);margin-bottom:.25rem;font-size:.7rem;font-weight:700}.sidebar-heading{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.sidebar-heading .sidebar-label{margin-bottom:0}.thumb-style{z-index:1;position:absolute;bottom:.6rem;right:.6rem}.tag.style-tag{align-items:center;gap:.3rem;display:inline-flex}.sidebar-section-list{background:var(--color-surface-lowest);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift-sm);flex-direction:column;gap:.15rem;padding:.35rem;display:flex}.sidebar-item{appearance:none;border-radius:var(--radius-full);cursor:pointer;text-align:left;color:var(--color-ink-soft);background:0 0;border:none;align-items:center;gap:.5rem;padding:.45rem .75rem;font-family:inherit;font-size:.82rem;transition:background .12s,color .12s;display:flex}.sidebar-item:hover{background:var(--color-surface-high);color:var(--color-ink)}.sidebar-item.active{background:var(--color-secondary-container);color:var(--color-primary);font-weight:600}.sidebar-item-num{border-radius:var(--radius-full);background:var(--color-surface-high);flex-shrink:0;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.72rem;font-weight:700;display:flex}.sidebar-item.active .sidebar-item-num,.sidebar-item.done .sidebar-item-num,.sidebar-item.done.active .sidebar-item-num{background:var(--color-primary);color:var(--color-on-accent)}.sidebar-item-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.course-main{min-width:0}.course-view{flex-direction:column;gap:1.5rem;display:flex}.video-stage{position:relative}.video-fs{appearance:none;border-radius:var(--radius-full);color:#fff;cursor:pointer;opacity:0;background:#0000008c;border:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;transition:opacity .15s,background .15s;display:inline-flex;position:absolute;bottom:4.5rem;right:.75rem}.video-stage:hover .video-fs,.video-fs:focus-visible{opacity:1}.video-fs:hover{opacity:1;background:#000c}.video-scrim{background:#0000008c;position:absolute;inset:0}.video-stage:fullscreen{background:#000;justify-content:center;align-items:center;display:flex}.video-stage:fullscreen .video-frame{border-radius:0;width:100%;max-height:100%}.video-stage:fullscreen .boundary-card{width:max-content;max-width:calc(100vw - 4rem);height:fit-content;margin:auto 0;position:fixed;inset:0 2rem 0 auto;box-shadow:0 1.5rem 3rem -1rem #00000080}.video-stage:fullscreen .boundary-title{display:none}.video-frame{aspect-ratio:16/9;border-radius:var(--radius-xl);background:var(--color-ink);position:relative;overflow:hidden}.video-frame>div,.video-frame iframe{border:none;width:100%;height:100%;display:block}.boundary-card{z-index:1;align-items:center;gap:1rem;margin-top:1rem;padding:.8rem .9rem .8rem 1.25rem;animation:.55s boundary-in;display:flex;position:relative}.boundary-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary);white-space:nowrap;font-size:.72rem;font-weight:800}.boundary-title{min-width:0;color:var(--color-ink-soft);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.boundary-actions{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.boundary-btn{appearance:none;border-radius:var(--radius-full);white-space:nowrap;cursor:pointer;border:none;padding:.5rem 1.05rem;font-family:inherit;font-size:.82rem;font-weight:700;transition:background .15s,color .15s}.boundary-btn.quiet{color:var(--color-ink-faint);background:0 0}.boundary-btn.quiet:hover{background:var(--color-surface-high);color:var(--color-ink)}.boundary-btn.loud{background-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-ink));background-image:linear-gradient(var(--color-primary) 0 0);color:var(--color-on-accent);animation:boundary-drain var(--boundary-linger) linear forwards;background-repeat:no-repeat}.boundary-btn.loud:hover{background-image:linear-gradient(var(--color-primary-hover) 0 0)}@keyframes boundary-drain{0%{background-size:100% 100%}to{background-size:0 100%}}@keyframes boundary-in{0%{opacity:0;transform:translateY(-.4rem)rotate(0)}35%{opacity:1;transform:translateY(0)rotate(0)}50%{transform:rotate(-.6deg)}65%{transform:rotate(.6deg)}80%{transform:rotate(-.3deg)}92%{transform:rotate(.15deg)}to{transform:rotate(0)}}@media (width<=640px){.boundary-card{gap:.75rem;padding:.9rem .9rem .9rem 1.1rem}.boundary-title{display:none}.boundary-eyebrow{white-space:normal;flex:1;min-width:0}.boundary-btn{padding:.5rem .9rem}}@media (prefers-reduced-motion:reduce){.boundary-card{animation:none}.graph-canvas-wrap.expanded{transition:none}}.section-heading{margin:.5rem 0 0;font-size:1.5rem;font-weight:800}.section-card{flex-direction:column;gap:0;transition:box-shadow .18s;display:flex}.section-card:hover{box-shadow:var(--shadow-lift)}.section-card-toggle{appearance:none;cursor:pointer;text-align:left;width:100%;color:var(--color-ink);background:0 0;border:none;align-items:center;gap:.75rem;padding:0;font-family:inherit;display:flex}.section-card-toggle .sidebar-item-num{flex-shrink:0}.section-stamp{border-radius:var(--radius-full);background:var(--color-surface-high);color:var(--color-ink-faint);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-shrink:0;padding:.2rem .6rem;font-size:.72rem;font-weight:700}.toggle-chevron{color:var(--color-ink-faint);margin-left:auto;font-size:1.1rem;transition:transform .2s}.toggle-chevron.open{transform:rotate(180deg)}.section-card-body{flex-direction:column;gap:1.25rem;padding-top:1.25rem;display:flex}.section-card-body>.button{align-self:flex-start}.section-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.section-title{flex:1;margin:0;font-size:1.15rem;font-weight:700}.section-summary{color:var(--color-ink-soft);margin:0}.section-done-btn{align-self:flex-start;align-items:center;gap:.15rem;display:flex}.section-done-btn .undone-label,.section-done-btn.done:hover .done-label{display:none}.section-done-btn.done:hover .undone-label{display:inline}.section-done-btn.done:hover{border-color:var(--color-danger);color:var(--color-danger)}.sidebar-item-num.done{background:var(--color-primary);color:var(--color-on-accent)}.question-block{background:var(--color-surface-low);border-radius:var(--radius-lg);padding:1.25rem 1.5rem}.question-text{margin:0 0 .85rem;font-weight:600}.mcq-options{flex-direction:column;gap:.65rem;display:flex}.mcq-option{cursor:pointer;background:var(--color-surface-lowest);border-radius:var(--radius-full);text-align:left;border:2px solid #0000;align-items:center;gap:.85rem;padding:.9rem 1.25rem;font-size:.95rem;transition:border-color .14s,background .14s;display:flex}.mcq-option:hover{border-color:var(--color-primary-container)}.mcq-option:has(input:checked){border-color:var(--color-primary);background:var(--color-secondary-container);font-weight:700}.mcq-option input[type=radio],.radio-row input[type=radio]{appearance:none;border:2px solid var(--color-border);cursor:pointer;border-radius:50%;flex-shrink:0;width:1.1rem;min-width:1.1rem;height:1.1rem;transition:border-color .14s,background .14s;position:relative}.mcq-option input[type=radio]:before,.radio-row input[type=radio]:before{content:"";background:0 0;border-radius:50%;width:.45rem;height:.45rem;transition:background .14s;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mcq-option input[type=radio]:checked,.radio-row input[type=radio]:checked{border-color:var(--color-primary);background:var(--color-primary)}.mcq-option input[type=radio]:checked:before,.radio-row input[type=radio]:checked:before{background:var(--color-surface-lowest)}.mcq-option:hover input[type=radio]:not(:checked),.radio-row:hover input[type=radio]:not(:checked){border-color:var(--color-primary-light)}.quiz-sidebar-box{background:var(--color-surface-lowest);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift-sm);border:var(--card-edge);flex-direction:column;gap:.75rem;max-height:10rem;margin-top:1rem;padding:1rem;transition:opacity .2s,max-height .3s,margin-top .3s,padding .3s;display:flex;overflow:hidden}.quiz-sidebar-box.fading{opacity:0;max-height:0;box-shadow:none;pointer-events:none;margin-top:0;padding-top:0;padding-bottom:0}.quiz-sidebar-count{color:var(--color-ink-soft);text-align:center;font-size:.85rem;font-weight:600}.quiz-last-attempt{appearance:none;cursor:pointer;color:var(--color-ink-soft);white-space:nowrap;background:0 0;border:none;justify-content:center;align-items:center;gap:.3rem;padding:0;font-family:inherit;font-size:.85rem;font-weight:600;transition:color .12s;display:flex}.quiz-last-attempt b{color:var(--color-ink);font-weight:800;transition:color .12s}.quiz-last-attempt:hover,.quiz-last-attempt:hover b{color:var(--color-primary)}.sidebar-actions{border-top:1px solid var(--line);justify-content:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.submit-bar{justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 1.75rem;display:flex}.submit-bar .status-message{margin:0}@media (width<=640px){.submit-bar{flex-direction:column;gap:.85rem}.submit-bar .button{width:100%}}.results-headline{margin:0;font-size:2rem;font-weight:800}.result-card{text-align:left;flex-direction:column;gap:.75rem;width:100%;display:flex}.result-card-header{align-items:flex-start;gap:.75rem;display:flex}.result-card-header .question-text{flex:1;margin:0;font-weight:600}.result-card-header .tag{flex-shrink:0;margin-top:.15rem}.result-feedback{color:var(--color-ink-soft);margin:0;padding-left:2.55rem;font-size:.88rem}.chip{border-radius:var(--radius-full);background:var(--color-secondary-container);color:var(--color-secondary);white-space:nowrap;padding:.3rem .9rem;font-size:.8rem;font-style:normal;font-weight:700;line-height:normal;display:inline-block}.chip.correct{background:var(--color-secondary-container);color:var(--color-primary)}.chip.incorrect{background:var(--color-danger-container);color:var(--color-danger)}.dimension-bars{flex-direction:column;gap:.5rem;display:flex}.dimension-row{grid-template-columns:6rem 1fr 3rem;align-items:center;gap:.75rem;display:grid}.dimension-label{text-transform:capitalize;color:var(--color-ink-soft);font-size:.8rem}.dimension-track{border-radius:var(--radius-full);background:var(--color-surface-high);height:.5rem;overflow:hidden}.dimension-fill{border-radius:var(--radius-full);background:var(--color-primary);height:100%}.dimension-score{color:var(--color-ink-soft);text-align:right;font-size:.8rem}.result-feedback{color:var(--color-ink-soft);margin:0;font-style:italic}.admin-view{flex-direction:column;gap:1.5rem;display:flex}.admin-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.user-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-soft);margin-bottom:-.75rem;font-size:.7rem;font-weight:700}.user-table{flex-direction:column;gap:.5rem;padding:1rem;display:flex}.user-row{border-radius:var(--radius-lg);text-align:left;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.user-row:hover{background:var(--color-surface-low)}.user-avatar{border-radius:var(--radius-full);background:var(--color-secondary-container);width:2.5rem;height:2.5rem;color:var(--color-secondary);object-fit:cover;letter-spacing:normal;text-transform:none;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.user-info{flex-direction:column;flex:1;align-items:flex-start;gap:.3rem;display:flex}.user-row-name{font-size:.95rem;font-weight:700}.user-row-email{color:var(--color-ink-soft);font-size:.85rem;font-weight:600}.user-row-role{color:var(--color-ink-soft);text-transform:capitalize;font-size:.8rem}.user-row-courses{color:var(--color-ink-soft);white-space:nowrap;font-size:.9rem}@media (width<=640px){.admin-header{flex-direction:column;align-items:stretch}.user-row{flex-wrap:wrap;gap:.5rem .75rem;padding:.75rem}.user-info{flex:calc(100% - 3.25rem);min-width:0}.user-row-email{overflow-wrap:anywhere}.user-row-actions{margin-left:auto}}.graph-view{flex-direction:column;gap:1.5rem;display:flex}.graph-legend-stack{z-index:2;flex-direction:column;align-items:flex-start;gap:.5rem;display:flex;position:absolute;bottom:1rem;left:1rem}.graph-legend-toggle{appearance:none;border-radius:var(--radius-full);background:var(--color-surface-low);color:var(--color-ink-soft);cursor:pointer;box-shadow:var(--shadow-raised);border:none;align-items:center;gap:.45rem;padding:.5rem .75rem;font-family:inherit;font-size:.82rem;font-weight:600;transition:color .15s;display:inline-flex}.graph-legend-toggle:hover{color:var(--color-ink)}.graph-legend-dots{align-items:center;display:inline-flex}.graph-legend-dots .legend-dot{box-shadow:0 0 0 2px var(--color-surface-low)}.graph-legend-dots .legend-dot+.legend-dot{margin-left:-.28rem}.graph-legend-card{border-radius:var(--radius-md);background:var(--color-surface-low);max-width:15rem;box-shadow:var(--shadow-raised);flex-direction:column;gap:.6rem;padding:.75rem .9rem;display:flex}.graph-legend-level{align-items:flex-start;gap:.55rem;display:flex}.graph-legend-level .legend-dot{flex-shrink:0;margin-top:.3rem}.graph-legend-level-text{color:var(--color-ink-soft);flex-direction:column;font-size:.76rem;line-height:1.35;display:flex}.graph-legend-level-text strong{color:var(--color-ink);font-size:.82rem;font-weight:700}.legend-dot{border-radius:var(--radius-full);width:.7rem;height:.7rem;display:inline-block}.legend-dot.mastered,.graph-node.mastered{background:var(--color-node-mastered)}.legend-dot.learning,.graph-node.learning{background:var(--color-node-learning)}.legend-dot.new,.graph-node.new{background:var(--color-node-new)}.graph-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.graph-toolbar-main{align-items:center;gap:.5rem;display:flex}.graph-tools-toggle{padding:.5rem .7rem;display:none}.graph-tools-toggle svg{transition:transform .2s}.graph-toolbar.tools-open .graph-tools-toggle svg{transform:rotate(180deg)}.graph-toolbar-right{--graph-control-height:2.55rem;flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.graph-granularity-pills{--graph-pill-pad-x:1.35rem;background:var(--color-surface-low);border-radius:var(--radius-full);align-items:center;gap:0;padding:.25rem;display:flex}.graph-pill{appearance:none;color:var(--color-ink-soft);white-space:nowrap;padding:.5rem var(--graph-pill-pad-x);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:.35rem;font-family:inherit;font-size:.82rem;font-weight:600;transition:background .15s,color .15s;display:flex}.graph-pill:hover{color:var(--color-ink)}.graph-pill.active{background:var(--color-secondary-container);color:var(--color-primary)}.graph-pill-icon{flex-shrink:0;width:1.05rem;height:1.05rem}.graph-pill-count{opacity:.6;font-size:.72rem;font-weight:500}.graph-zoom-controls,.graph-export-controls{gap:.4rem;display:flex}.graph-zoom-slider{height:var(--graph-control-height);border-radius:var(--radius-full);background:var(--color-surface-low);align-items:center;gap:.15rem;padding:0 .35rem;display:flex}.graph-zoom-divider{background:var(--color-border);width:1px;height:1.1rem;margin:0 .2rem}.graph-zoom-step{appearance:none;border-radius:var(--radius-full);width:1.6rem;height:1.6rem;color:var(--color-ink-soft);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.graph-zoom-step:hover{background:var(--color-ink-wash);color:var(--color-ink)}.graph-expanded .graph-zoom-slider{background:0 0}.m3-slider{--track:1rem;--handle-gap:6px;--handle-width:4px;width:7rem;height:2rem;margin:0 .35rem;position:relative}.m3-slider-active,.m3-slider-inactive{height:var(--track);position:absolute;top:50%;transform:translateY(-50%)}.m3-slider-active{width:max(0px, calc(var(--fill) - var(--handle-width) / 2 - var(--handle-gap)));border-radius:var(--radius-full) 2px 2px var(--radius-full);background:var(--color-primary);left:0}.m3-slider-inactive{width:max(0px, calc(100% - var(--fill) - var(--handle-width) / 2 - var(--handle-gap)));border-radius:2px var(--radius-full) var(--radius-full) 2px;background:var(--color-secondary-container);right:0;overflow:hidden}.m3-slider-inactive:after{content:"";top:50%;right:calc((var(--track) - 4px) / 2);border-radius:var(--radius-full);background:var(--color-primary);width:4px;height:4px;position:absolute;transform:translateY(-50%)}.m3-slider-handle{top:0;left:var(--fill);width:var(--handle-width);border-radius:var(--radius-full);background:var(--color-primary);height:100%;transition:width .1s;position:absolute;transform:translate(-50%)}.m3-slider input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.m3-slider:active .m3-slider-handle{width:2px}.m3-slider:has(input:focus-visible) .m3-slider-handle{outline:2px solid var(--color-primary);outline-offset:2px}.graph-zoom-controls .button,.graph-export-controls .button{height:var(--graph-control-height);background:var(--color-surface-low);padding:0 1.1rem;font-size:.82rem}@media (width<=640px){.graph-toolbar,.graph-toolbar-right,.graph-zoom-controls,.graph-export-controls{justify-content:center}}.graph-canvas-wrap{border-radius:var(--radius-xl);background:var(--color-surface-low);background-image:radial-gradient(var(--color-dot-faint) 1px, transparent 1px);touch-action:none;background-size:24px 24px;height:62vh;min-height:26.25rem;position:relative;overflow:hidden}.graph-canvas-wrap.expanded{z-index:60;border-radius:0;height:auto;transition:inset .32s,border-radius .32s;position:fixed;inset:0}.graph-expanded .graph-toolbar{z-index:62;border-radius:var(--radius-md);background:var(--color-surface-low);width:max-content;box-shadow:var(--shadow-raised);padding:.5rem .75rem;position:fixed;top:.85rem;left:.85rem}.graph-expanded .graph-toolbar-right:before{content:"";background:var(--color-border);flex-shrink:0;width:1px;height:1.5rem}.graph-expanded .graph-granularity-pills{background:0 0;padding:.15rem}.graph-expanded .graph-pill{padding:.35rem var(--graph-pill-pad-x)}.graph-expanded .graph-tools-toggle,.graph-expanded .graph-zoom-controls .button,.graph-expanded .graph-export-controls .button{color:var(--color-ink-soft);background:0 0}.graph-expanded .graph-tools-toggle:hover,.graph-expanded .graph-zoom-controls .button:hover,.graph-expanded .graph-export-controls .button:hover{background:var(--color-ink-wash);color:var(--color-ink)}@media (width<=640px){.graph-tools-toggle{display:inline-flex}.graph-toolbar{flex-direction:column;align-items:center;gap:.55rem}.graph-toolbar-main{justify-content:center;gap:.4rem}.graph-granularity-pills{--graph-pill-pad-x:.5rem}.graph-toolbar-right{display:none}.graph-toolbar.tools-open .graph-toolbar-right{display:flex}.graph-toolbar-right:before{display:none}.graph-expanded .graph-toolbar{width:auto;box-shadow:none;background:0 0;border:none;align-items:center;gap:.55rem;padding:0;top:.6rem;left:.6rem;right:.6rem}.graph-expanded .graph-toolbar-main,.graph-expanded .graph-toolbar.tools-open .graph-toolbar-right{border-radius:var(--radius-md);background:var(--color-surface-low);box-shadow:var(--shadow-raised);justify-content:center;padding:.5rem .75rem}.graph-expanded .graph-toolbar-main,.graph-expanded .graph-toolbar-right{width:max-content;max-width:100%}}.graph-fs.tip{z-index:2;appearance:none;border-radius:var(--radius-fab);background:var(--color-primary-container);width:3.5rem;height:3.5rem;color:var(--color-ink);cursor:pointer;box-shadow:var(--shadow-fab);border:none;justify-content:center;align-items:center;transition:background .15s;display:inline-flex;position:absolute;bottom:1rem;right:1rem}.graph-fs.tip:hover{background:var(--color-secondary-container)}.graph-fs.tip:after{left:auto;right:0;transform:translateY(.35rem)}.graph-fs.tip:hover:after,.graph-fs.tip:focus-visible:after{transform:translate(0)}.graph-svg{transform-origin:50%;width:100%;height:100%;display:block}.graph-edge{stroke:var(--color-secondary);stroke-opacity:.2;stroke-width:1.5px}.graph-edge-related_to{stroke-dasharray:5 4;stroke-opacity:.15}.graph-edge-prerequisite_of{stroke-opacity:.3;stroke-width:2px}@keyframes node-enter{0%{transform:scale(0)}to{transform:scale(1)}}.graph-node-scale-wrap{transform-box:fill-box;transform-origin:50%;transition:transform .2s cubic-bezier(.34,1.56,.64,1);animation:.45s cubic-bezier(.34,1.56,.64,1) backwards node-enter}.graph-node-group:hover .graph-node-scale-wrap{transform:scale(1.1)}.tier-you.graph-node-group:hover .graph-node-scale-wrap{transform:scale(1.05)}@media (prefers-reduced-motion:reduce){.graph-node-scale-wrap{transition:none;animation:none}}.graph-empty-hint{color:var(--color-secondary);opacity:.6;pointer-events:none;white-space:nowrap;align-items:center;font-size:.8rem;display:flex;position:absolute;bottom:1.75rem;left:50%;transform:translate(-50%)}@media (width<=640px){.graph-empty-hint{white-space:normal;text-align:center;justify-content:center;width:calc(100% - 3rem)}.graph-empty-hint span{text-wrap:pretty;min-width:0}}.graph-node-group{cursor:pointer}.graph-node-group:active{cursor:grabbing}.graph-node-hit{fill:#0000;stroke:none}.graph-node-ring{fill:none;stroke:var(--color-primary);stroke-width:2px;opacity:0;pointer-events:none;transition:opacity .15s}.graph-node-group.hovered .graph-node-ring{opacity:.55}.graph-node-group.pinned .graph-node-ring{opacity:0}.graph-node-circle{transition:filter .15s,r .15s}.graph-node-group:hover .graph-node-circle{filter:brightness(1.12)saturate(1.1)}.graph-node-group.mastered .graph-node-circle{fill:var(--color-node-mastered)}.graph-node-group.learning .graph-node-circle{fill:var(--color-node-learning)}.graph-node-group.new .graph-node-circle{fill:var(--color-node-new)}.graph-node-group.tier-you .graph-node-circle{fill:var(--color-node-mastered);stroke:var(--color-node-label);stroke-width:2.5px}.graph-node-group.tier-you .graph-node-label{letter-spacing:.02em;font-size:1rem;font-weight:800}.graph-node-group.pinned .graph-node-circle{stroke:var(--color-primary);stroke-width:2.5px;stroke-dasharray:4 3}.graph-node-group.tier-field.mastered .graph-node-circle{fill:var(--color-node-mastered)}.graph-node-group.tier-field.new .graph-node-circle{fill:var(--color-node-field-new)}.graph-node-group .graph-node-label{text-align:center;width:100%;height:100%;color:var(--color-node-label);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:.35rem;font-size:.72rem;font-weight:700;line-height:1.2;display:flex}.graph-node-group .graph-node-label.tier-field{font-size:.9rem;font-weight:800}.graph-node-group .graph-node-label.tier-topic{font-size:.78rem;font-weight:700}.graph-node-group .graph-node-label.tier-skill{font-size:.62rem;font-weight:600}.graph-node-group.new .graph-node-label{color:var(--color-secondary)}.graph-tooltip{background:var(--color-surface-lowest);border-radius:var(--radius-lg);max-width:18rem;box-shadow:var(--shadow-pop);border:var(--card-edge);text-align:left;flex-direction:column;gap:.5rem;padding:1rem 1.25rem;display:flex;position:relative}.graph-tooltip.pinned{border:1.5px solid var(--color-primary)}.graph-tooltip-close{appearance:none;color:var(--color-ink-soft);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.1rem .3rem;font-size:1.1rem;line-height:1;position:absolute;top:.5rem;right:1.25rem}.graph-tooltip-close:hover{color:var(--color-ink);background:var(--color-surface-low)}.graph-tooltip-header{flex-direction:column;align-items:flex-start;gap:.2rem;padding-right:1.25rem;display:flex}.graph-tooltip-label{color:var(--color-ink);font-size:1rem;font-weight:700}.graph-tooltip-tier{text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-soft);font-size:.7rem}.graph-tooltip-desc{color:var(--color-ink-soft);margin:0;font-size:.84rem;line-height:1.5}.graph-tooltip-courses{border-top:1px solid var(--color-surface-high);flex-direction:column;gap:.3rem;padding-top:.5rem;display:flex}.graph-tooltip-courses-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-soft);font-size:.72rem;font-weight:600}.graph-tooltip-course-link{color:var(--color-primary);pointer-events:auto;font-size:.82rem;font-weight:500;text-decoration:none}.graph-tooltip-course-link:hover{text-decoration:underline}.graph-columns{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:start;gap:1.5rem;display:grid}.graph-column{flex-direction:column;gap:.6rem;display:flex}.graph-column-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-soft);margin:0 0 .25rem;font-size:.85rem}.graph-node{border-radius:var(--radius-full);color:var(--color-on-accent);justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.85rem;font-weight:600;display:flex}.graph-node.new{color:var(--color-secondary)}.graph-node-count{opacity:.8;font-size:.75rem}.model-select{appearance:none;border:1.5px solid var(--color-surface-high);border-radius:var(--radius-full);background:var(--color-surface-lowest) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23434840' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1rem center;color:var(--color-ink);cursor:pointer;min-width:14rem;padding:.6rem 2.5rem .6rem 1rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.model-select:hover{border-color:var(--color-primary-light)}.model-select:focus{border-color:var(--color-primary);outline:none}.notebook-view{flex-direction:column;gap:1.5rem;display:flex}.notebook-header{grid-template-columns:auto 1fr auto;align-items:baseline;column-gap:.75rem;display:grid;position:relative}.notebook-header:before{content:"";z-index:-1;background:radial-gradient(ellipse 70% 100% at 30% 50%, var(--color-paper) 30%, transparent 100%);pointer-events:none;position:absolute;inset:-1.5rem -3rem}.notebook-header-tools{align-items:center;gap:.25rem;display:flex;position:relative}.notebook-header-tools:before{content:"";z-index:-1;background:radial-gradient(ellipse 70% 100% at 50% 50%, var(--color-paper) 30%, transparent 100%);pointer-events:none;position:absolute;inset:-1rem -2rem}@media (width<=640px){.notebook-header{grid-template-columns:1fr auto;row-gap:.25rem}.notebook-header .page-header-title{grid-area:1/1}.notebook-header-tools{grid-area:1/2}.notebook-header .page-header-sub{grid-area:2/1/auto/-1}}.icon-menu{position:relative}.icon-btn.active{color:var(--color-primary);background:var(--color-secondary-container)}.icon-menu-panel{background:var(--color-paper);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);min-width:11rem;box-shadow:var(--shadow-lift);z-index:200;text-align:left;margin:0;padding:.35rem;font-weight:400;list-style:none;position:absolute;top:calc(100% + .4rem);right:0}.notebook-search{border-radius:var(--radius-full);background:var(--color-surface-lowest);border:1.5px solid var(--color-ink);box-shadow:.25rem .25rem 0 var(--color-secondary-container);color:var(--color-ink-soft);align-items:center;gap:.75rem;padding:1.32rem 1.5rem;display:flex}.notebook-search:focus-within{border-color:var(--color-primary)}.notebook-rule{border:none;border-top:1px solid var(--line);width:100%;height:0;margin:0}.notebook-grid{grid-template-columns:repeat(auto-fill,minmax(16.25rem,1fr));gap:1.25rem;display:grid}.notebook-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.notebook-card-link{color:inherit;cursor:pointer;flex:1;text-decoration:none}.notebook-thumb-wrap{border-radius:var(--radius-lg) var(--radius-lg) 0 0;position:relative;overflow:hidden}.notebook-thumb-wrap:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#00000061 100%);position:absolute;inset:0}.notebook-thumb{filter:var(--thumb-filter);aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;display:block}.notebook-card-body{padding:1rem 1.25rem 1.25rem}.notebook-card-title{color:var(--color-ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 .4rem;font-size:.95rem;font-weight:700;display:-webkit-box;overflow:hidden}.notebook-section-count{color:var(--color-primary);font-size:.85rem;font-weight:700}.notebook-sections{color:var(--color-ink-soft);flex-direction:column;gap:.15rem;margin:.5rem 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.notebook-card-actions{border-top:1px solid var(--line);justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.notebook-progress-bar{background:var(--color-surface-high);height:.1875rem}.notebook-progress-fill{background:var(--color-primary);height:100%;transition:width .3s}.page-header{align-items:baseline;gap:.75rem;display:flex;position:relative}.page-header:before{content:"";z-index:-1;background:radial-gradient(ellipse 70% 100% at 30% 50%, var(--color-paper) 30%, transparent 100%);pointer-events:none;position:absolute;inset:-1.5rem -3rem}@media (width<=640px){.page-header{flex-direction:column;align-items:flex-start;gap:.25rem}}.page-header-title{white-space:nowrap;margin:0;font-size:1.5rem;font-weight:800}@media (width<=640px){.page-header-title{white-space:normal}}.page-header-sub{color:var(--color-ink-faint);margin:0;font-size:.9rem;line-height:1.5rem}.icon-btn{appearance:none;cursor:pointer;border-radius:var(--radius-full);color:var(--color-ink-faint);background:0 0;border:none;justify-content:center;align-items:center;padding:.45rem;transition:background .12s,color .12s;display:inline-flex}.icon-btn:hover{background:var(--color-surface-high);color:var(--color-ink)}.icon-btn.danger{color:var(--color-danger)}.icon-btn.danger:hover{background:var(--color-danger-container)}.icon-btn.primary{color:var(--color-primary)}.icon-btn.primary:hover{background:var(--color-secondary-container)}.icon-btn:disabled{cursor:default}.icon-btn:disabled svg{opacity:.4}.confirm-bar{flex:1;align-items:center;gap:.35rem;display:flex}.confirm-text{color:var(--color-ink-soft);flex:1;font-size:.75rem;font-weight:600;line-height:1.3}.confirm-text.danger{color:var(--color-danger)}.user-row-actions{align-items:center;gap:.15rem;display:flex}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:0;padding:4rem 1rem;display:flex}.empty-state-icon{background:var(--color-secondary-container);border-radius:1rem;flex-shrink:0;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;margin-bottom:1.25rem;display:flex}.empty-state-title{color:var(--color-ink);margin:0 0 .375rem;font-size:1.1rem;font-weight:700}.empty-state-body{color:var(--color-ink-soft);max-width:26rem;margin:0;font-size:.875rem;line-height:1.55}.home-hint{color:var(--color-ink-faint);margin-top:.75rem;font-size:.85rem}.section-row{justify-content:space-between;align-items:baseline;margin:3rem 0 1rem;display:flex}.section-row-title{margin:0;font-size:1.25rem;font-weight:800}.section-row-link{color:var(--color-primary);font-size:.85rem;font-weight:600;text-decoration:none}.section-row-link:hover{text-decoration:underline}.course-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.25rem;display:grid}.course-card{color:inherit;background:var(--color-surface-lowest);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift-sm);text-decoration:none;overflow:hidden}.course-card-thumb{aspect-ratio:16/9;background:var(--color-surface-high);position:relative;overflow:hidden}.course-card-thumb:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#00000061 100%);position:absolute;inset:0}.course-card-thumb img{filter:var(--thumb-filter);object-fit:cover;width:100%;height:100%;display:block}.done-toggle{color:var(--color-ink-faint);transition:color .15s,opacity .15s}.done-toggle:hover{color:var(--color-primary);background:var(--color-secondary-container)}.done-toggle.done{color:var(--color-primary)}.done-toggle.done:hover{opacity:.6;background:var(--color-secondary-container)}.icon-btn:disabled:hover{opacity:1;background:0 0}.course-card-title{margin:0;padding:.75rem 1rem 0;font-size:.95rem;font-weight:700}.course-card-meta{color:var(--color-ink-faint);margin:.25rem 0 0;padding:0 1rem 1rem;font-size:.8rem}.stats-row{grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));gap:1rem;margin-top:2.5rem;display:grid}.stat-card{background:var(--color-surface-lowest);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift-sm);text-align:left;flex-direction:column;gap:.25rem;padding:1.25rem 1.5rem;display:flex}.stat-big{color:var(--color-primary);font-size:2rem;font-weight:800;line-height:1}.stat-label{color:var(--color-ink-faint);font-size:.85rem}.role-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-full);background:var(--color-secondary-container);color:var(--color-primary);padding:.15rem .5rem;font-size:.7rem;font-style:normal;font-weight:700;line-height:normal;display:inline-block}.role-pill.admin{background:var(--color-tertiary-container);color:var(--color-tertiary)}.admin-kpi-row{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.admin-kpi{background:var(--color-surface-lowest);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift-sm);padding:1rem 1.25rem}.admin-kpi b{color:var(--color-primary);font-size:1.5rem;font-weight:800;line-height:1.2;display:block}.admin-kpi span{color:var(--color-ink-faint);font-size:.8rem}.settings-view{flex-direction:column;gap:1.5rem;display:flex}.settings-section{flex-direction:column;gap:.75rem;display:flex}.settings-section-title{margin:0;font-size:1.1rem;font-weight:800}.settings-section-desc{color:var(--color-ink-faint);margin:0;font-size:.9rem}.settings-layout{grid-template-columns:12.5rem 1fr;gap:2rem;display:grid}.settings-sidebar{flex-direction:column;gap:.25rem;display:flex}.settings-sidebar button{font:inherit;text-align:left;border-radius:var(--radius-full);cursor:pointer;color:var(--color-ink-soft);background:0 0;border:none;padding:.5rem .75rem;font-size:.9rem;font-weight:600}.settings-sidebar button.active{background:var(--color-secondary-container);color:var(--color-primary)}.settings-pane{flex-direction:column;gap:1.5rem;display:flex}.settings-pane h2{margin:0;font-size:1.25rem;font-weight:800}.style-tiles{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:.5rem;display:grid}.style-tile{color:var(--color-ink-soft);background:var(--color-surface-lowest);border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.25rem .75rem 1.1rem;font-family:inherit;font-size:.9rem;font-weight:700;line-height:normal;transition:background .15s,color .15s,border-color .15s;display:flex}.style-tile:hover{color:var(--color-ink);border-color:var(--color-ink-faint)}.style-tile.selected{background:var(--color-secondary-container);border-color:var(--color-primary);color:var(--color-primary)}.style-detail{border-radius:var(--radius-md);background:var(--color-surface-low);color:var(--color-primary);align-items:center;gap:.75rem;padding:.9rem 1.1rem;display:flex}.style-detail svg{flex-shrink:0}.style-detail p{color:var(--color-ink-soft);margin:0;font-size:.9rem;line-height:1.45}@media (width<=640px){.style-tiles{grid-template-columns:repeat(2,1fr)}.settings-layout{grid-template-columns:1fr}.settings-sidebar{flex-direction:row;gap:.5rem;overflow-x:auto}}.modal-overlay{background:var(--color-scrim-modal);z-index:50;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{text-align:left;flex-direction:column;width:100%;max-width:26rem;display:flex}.modal-checkbox-pair{grid-template-rows:1fr 1fr;gap:.5rem;margin-top:1rem;display:grid}.modal-checkbox-row{color:var(--color-ink-soft);cursor:pointer;background:var(--color-surface-low);border-radius:var(--radius-md);border:1.5px solid var(--color-surface-high);align-items:center;gap:.6rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.modal-checkbox-row:hover{border-color:var(--color-primary-light)}.modal-checkbox-row:has(input:checked){background:var(--color-secondary-container);border-color:var(--color-primary);color:var(--color-ink)}.modal-checkbox-row input[type=checkbox],.graph-tidy-check{appearance:none;border:1.5px solid var(--color-surface-high);border-radius:var(--radius-sm);background-color:var(--color-surface-lowest);cursor:pointer;background-position:50%;background-repeat:no-repeat;background-size:.72rem;flex-shrink:0;width:1.15rem;height:1.15rem;margin:0;transition:background-color .15s,border-color .15s}.modal-checkbox-row input[type=checkbox]:checked,.graph-tidy-check:checked{background-color:var(--color-primary);border-color:var(--color-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}.graph-tidy-check:indeterminate{background-color:var(--color-primary);border-color:var(--color-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round'%3E%3Cline x1='6' y1='12' x2='18' y2='12'/%3E%3C/svg%3E")}.graph-tidy-check:disabled{cursor:default;opacity:.6}.modal-checkbox-row input[type=checkbox]:focus-visible,.graph-tidy-check:focus-visible{outline:2px solid var(--color-primary);outline-offset:.125rem}.modal-checkbox-row span{line-height:1.4}.modal-form{flex-direction:column;gap:.65rem;display:flex}.modal-form .text-input.boxed{margin-bottom:0;padding:.7rem 1rem}.modal-form-row{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.password-form{flex-direction:column;gap:.65rem;display:flex}.password-form>*{animation:.18s ease-out password-reveal}@keyframes password-reveal{0%{opacity:0;transform:translateY(-.35rem)}}@media (prefers-reduced-motion:reduce){.password-form>*{animation:none}}.password-input-boxed{background:var(--color-surface-low);border-radius:var(--radius-full);align-items:center;padding:.85rem 1.5rem;display:flex}.password-input-boxed .icon-btn{margin:-.45rem -.75rem -.45rem .5rem}.password-form .button{align-self:flex-start;margin-top:.35rem}.profile-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:.65rem;display:grid}.profile-row .text-input.boxed{margin-bottom:0}@media (width<=640px){.modal-form-row,.profile-row{grid-template-columns:1fr}}.modal-field{flex-direction:column;gap:.75rem;display:flex}.password-field{align-items:center;gap:.4rem;display:flex}.password-field .text-input.boxed{letter-spacing:.02em;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.login-form .password-field{background:var(--color-surface-lowest);border:1.5px solid var(--color-ink);border-radius:var(--radius-full);box-shadow:.25rem .25rem 0 var(--color-secondary-container);gap:.15rem;padding:.85rem 1rem .85rem 1.75rem}.login-form .password-field .text-input.boxed{background:0 0;border-radius:0;padding:0;font-size:1.05rem}.login-form .modal-field-hint{text-align:left;padding:0 .35rem}.modal-field-label{color:var(--color-ink);font-size:.8rem;font-weight:700}.modal-field-hint{color:var(--color-ink-faint);text-align:left;font-size:.78rem;line-height:1.4}.modal-field-hint.is-error{color:var(--color-danger)}.hero>.modal-field-hint.is-error{text-align:center}.learning-style-field{margin-bottom:1.25rem}.modal-textarea{resize:vertical;min-height:5rem;font-size:.875rem}.modal-field .text-input.boxed{margin-bottom:0;padding:.7rem 1rem}.results-view{flex-direction:column;gap:2.5rem;display:flex}.results-hero{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;padding:1.5rem 0 .5rem;display:flex}.score-stage{padding:1.5rem;position:relative}.score-deco-frame{border:3px dashed var(--color-primary-light);border-radius:var(--radius-xl);opacity:.35;position:absolute;inset:0;transform:rotate(6deg)}.score-orbit{border-radius:var(--radius-xl);position:absolute;inset:0;transform:rotate(6deg)}.score-blob-tr,.score-blob-bl{offset-path:border-box;offset-rotate:auto;animation:26s linear infinite score-orbit-travel}.score-blob-bl{animation-delay:-13s}@keyframes score-orbit-travel{0%{offset-distance:0%}to{offset-distance:100%}}@media (prefers-reduced-motion:reduce){.score-blob-tr,.score-blob-bl{animation:none}}.score-blob-tr{border-radius:var(--radius-full);background:var(--color-deco-pink);width:1.75rem;height:1.75rem;position:absolute;top:-.375rem;right:-.375rem}.score-blob-bl{border-radius:var(--radius-sm);background:var(--color-deco-green);width:2.25rem;height:2.25rem;position:absolute;bottom:-.625rem;left:-.625rem;transform:rotate(12deg)}.score-circle{width:10rem;height:10rem;position:relative}.score-ring-svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.score-ring-bg{fill:none;stroke:var(--color-surface-high);stroke-width:7px;stroke-linecap:round}.score-ring-fill{fill:none;stroke:var(--color-primary);stroke-width:7px;stroke-linecap:round;transition:stroke-dashoffset .8s}.score-complete{border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-on-accent);pointer-events:none;place-items:center;animation:.42s cubic-bezier(.34,1.4,.64,1) both score-complete-in,.6s ease-in 1.5s forwards score-complete-out;display:grid;position:absolute;inset:.55rem}@keyframes score-complete-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes score-complete-out{to{opacity:0;transform:scale(1.6)}}.score-complete-tick{stroke-dasharray:30;stroke-dashoffset:30px;width:45%;height:45%;animation:.38s ease-out .2s forwards score-tick-draw}@keyframes score-tick-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.score-complete{animation:.4s ease-in 1.5s forwards score-complete-out}.score-complete-tick{stroke-dashoffset:0;animation:none}}.score-ring-label{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.score-ring-big{color:var(--color-ink);font-size:2.6rem;font-weight:800;line-height:1}.score-ring-star{color:var(--color-primary);vertical-align:super;font-size:1.2rem;font-weight:700;line-height:0}.score-ring-denom{color:var(--color-ink-soft);font-size:1.4rem;font-weight:700}.score-ring-sub{text-transform:uppercase;letter-spacing:.14em;color:var(--color-ink-faint);margin-top:.2rem;font-size:.6rem;font-weight:700}.results-headline{max-width:40rem;margin:0;font-size:2.25rem;font-weight:800;line-height:1.15}.results-subtitle{color:var(--color-ink-soft);max-width:32.5rem;margin:0;line-height:1.65}.results-grid{grid-template-columns:1.3fr 1fr;align-items:start;gap:2rem;display:grid}@media (width<=700px){.results-grid{grid-template-columns:1fr}}.results-col{flex-direction:column;gap:1rem;display:flex}.result-card-num{border-radius:var(--radius-full);background:var(--color-secondary);width:1.8rem;height:1.8rem;color:var(--color-on-accent);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.ai-prose-card{background:var(--color-surface-lowest);border-radius:var(--radius-lg);border:2px solid var(--color-hairline-sage);box-shadow:var(--shadow-lift-sm);margin-top:1rem;position:relative}.ai-prose-pill{background:var(--color-primary-light);color:var(--color-on-accent);text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-full);padding:.25rem .85rem;font-size:.65rem;font-weight:700;position:absolute;top:-.85rem;left:1.25rem}.ai-prose-body{align-items:flex-start;gap:.85rem;padding:1.5rem 1.25rem 1.25rem;display:flex}.ai-prose-icon{color:var(--color-primary);flex-shrink:0;margin-top:.1rem}.ai-prose-text{color:var(--color-ink-soft);margin:0;font-size:.9rem;font-style:italic;line-height:1.7}.tutor-card{background:var(--color-secondary-container);border-radius:var(--radius-lg);margin-top:1rem;padding:1.5rem 1.25rem 1.25rem;position:relative}.tutor-card-heading{color:var(--color-primary);margin:0 0 1rem;font-size:1.1rem;font-weight:700}.tutor-rows{flex-direction:column;gap:.65rem;display:flex}.tutor-row{color:var(--color-ink-soft);align-items:flex-start;gap:.75rem;font-size:.9rem;line-height:1.5;display:flex}.tutor-row-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.75rem;font-weight:700;display:flex}.tutor-row-icon--good{background:var(--color-primary);color:var(--color-on-accent)}.tutor-row-icon--warn{background:var(--color-ink-wash);color:var(--color-ink-soft)}.retake-btn{appearance:none;cursor:pointer;border-radius:var(--radius-full);background:var(--color-surface-high);width:100%;color:var(--color-ink);border:none;justify-content:center;align-items:center;gap:.5rem;padding:1rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:background .15s;display:flex}.retake-btn:hover{background:var(--color-surface-high);filter:brightness(.96)}.retake-btn.mark-done-btn{background:var(--color-primary);color:var(--color-on-accent)}.retake-btn.mark-done-btn:hover{background:var(--color-primary);filter:brightness(.92)}.retake-btn.mark-done-btn:disabled{opacity:.6;cursor:default;filter:none}.tag{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-full);padding:.2rem .6rem;font-size:.7rem;font-style:normal;font-weight:700;line-height:normal;display:inline-block}.tag.sage{background:var(--color-secondary-container);color:var(--color-primary)}.tag.plum{background:var(--color-tertiary-container);color:var(--color-tertiary)}.tag.mist{background:var(--color-info-container);color:var(--color-info-ink)}.tag.brick{background:var(--color-danger-container);color:var(--color-danger)}.text-input:focus{border-color:var(--color-primary);outline:none}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-faint);margin:0;font-size:.7rem;font-weight:700}.tip{cursor:help;position:relative}button.tip,a.tip{cursor:pointer}.tip:after{content:attr(data-tip);z-index:30;border-radius:var(--radius-sm);background:var(--color-surface-lowest);color:var(--color-ink-soft);letter-spacing:normal;text-transform:none;white-space:nowrap;box-shadow:var(--shadow-pop);border:var(--card-edge);opacity:0;pointer-events:none;text-align:left;padding:.45rem .8rem;font-size:.78rem;font-style:normal;font-weight:500;line-height:1.5;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%,.35rem)}.tip:hover:after,.tip:focus-visible:after{opacity:1;transform:translate(-50%)}.style-tag.tip:after{white-space:normal;width:14rem;inset:calc(100% + .5rem) 0 auto auto;transform:translateY(-.35rem)}.style-tag.tip:hover:after,.style-tag.tip:focus-visible:after{transform:translate(0)}.toast-container{z-index:100;pointer-events:none;text-align:left;letter-spacing:normal;flex-direction:column;gap:.5rem;font-style:normal;line-height:normal;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-full);box-shadow:var(--shadow-toast);pointer-events:auto;white-space:nowrap;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;animation:.25s toast-in}.toast-success{background:var(--color-primary);color:var(--color-on-accent)}.toast-error{background:var(--color-danger);color:var(--color-on-accent)}.toast-info{background:var(--color-surface-lowest);color:var(--color-ink)}.toast-loading{background:var(--color-surface-lowest);color:var(--color-ink);align-items:center;gap:.6rem;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.generation-msg{animation:.4s fade-swap}@keyframes fade-swap{0%{opacity:0}to{opacity:1}}.gen-overlay{background:var(--color-paper);opacity:.65;z-index:50;pointer-events:all;position:fixed;inset:0}.gen-pills-panel{z-index:51;text-align:left;flex-direction:column;gap:.65rem;width:16.25rem;max-width:calc(100vw - 2rem);display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}@media (width>=1280px){.gen-pills-panel{position:absolute;inset:50% calc(22rem - 50vw) auto auto;transform:translateY(-50%)}.gen-pills-panel:before{content:"";background:radial-gradient(ellipse 85% 85% at 50% 50%, var(--color-paper) 35%, color-mix(in srgb, var(--color-paper) 60%, transparent) 62%, transparent 80%);z-index:-1;pointer-events:none;position:absolute;inset:-5rem -4rem}}@media (width<=768px){.gen-pill:not(.active):not(.blocked){display:none}.gen-pill{padding:.6rem 1rem;font-size:.78rem}}.gen-steps{text-align:left;flex-direction:column;gap:.65rem;margin:.25rem 0 .5rem;display:flex}.gen-pill{border-radius:var(--radius-full);color:var(--color-ink-faint);--pill-icon-size:.875rem;--pill-icon-gap:.65rem;align-items:center;gap:.65rem;padding:.75rem 1.1rem;font-size:.82rem;font-weight:600;transition:color .2s;display:flex}.gen-pill.done{color:var(--color-ink-soft)}.gen-pill.active{color:var(--color-ink);background:var(--color-secondary-container)}.gen-pill.blocked{border-radius:var(--radius-lg);background:var(--color-warn-container);color:var(--color-ink);flex-direction:column;align-items:flex-start;gap:.45rem}.gen-pill.blocked.ask{background:var(--color-secondary-container)}.gen-pill.blocked.ask .gen-pill-reason{color:var(--color-ink-soft)}.gen-pill-ask{color:var(--color-primary);flex-shrink:0}.gen-pill.blocked.ask .gen-pill-override{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-accent)}.gen-pill.blocked.ask .gen-pill-override:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.gen-pill-left{align-items:center;gap:var(--pill-icon-gap);width:100%;display:flex}.gen-pill:not(.blocked) .gen-pill-left{display:contents}.gen-pill-label{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.gen-pill-sub{color:var(--color-ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;font-weight:400;overflow:hidden}.gen-pill-reason{color:var(--color-warn-ink);padding-left:calc(var(--pill-icon-size) + var(--pill-icon-gap));font-size:.73rem;font-weight:400}.gen-pill-warn{color:var(--color-warn);flex-shrink:0}.gen-pill-actions{align-self:flex-end;align-items:center;gap:.6rem;margin-top:.3rem;display:flex}.gen-pill-cancel{appearance:none;white-space:nowrap;border:1.5px solid var(--color-border);background:var(--color-surface-lowest);color:var(--color-ink-soft);border-radius:var(--radius-full);cursor:pointer;padding:.35rem .85rem;font-family:inherit;font-size:.78rem;font-weight:700;transition:border-color .15s,color .15s}.gen-pill-cancel:hover{border-color:var(--color-ink-faint);color:var(--color-ink)}.gen-pill-override{appearance:none;white-space:nowrap;border:1.5px solid var(--color-warn);color:var(--color-warn);border-radius:var(--radius-full);cursor:pointer;background:0 0;padding:.35rem .85rem;font-family:inherit;font-size:.78rem;font-weight:700;transition:background .15s,color .15s}.gen-pill-override:hover{background:var(--color-warn);color:var(--color-on-accent)}.gen-pill-icon{color:var(--color-sage);flex-shrink:0}.gen-pill-dot{background:var(--color-ink-faint);border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem}.gen-pill-spinner{border:2px solid var(--color-primary);border-top-color:#0000;border-radius:50%;flex-shrink:0;width:.75rem;height:.75rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.score-dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:inline-flex}.score-dot.sage{background:var(--color-secondary-container);color:var(--color-primary)}.score-dot.mist{background:var(--color-info-container);color:var(--color-info-ink)}.score-dot.brick{background:var(--color-danger-container);color:var(--color-danger)}.score-dot-text{letter-spacing:-.02em;font-size:.6rem;font-weight:800;line-height:1}.hamburger-btn{appearance:none;cursor:pointer;border-radius:var(--radius-sm,.375rem);color:var(--color-ink);background:0 0;border:none;justify-content:center;align-items:center;padding:.4rem;display:none}.mobile-nav{z-index:100;display:flex;position:fixed;inset:0}.mobile-nav-backdrop{background:var(--color-scrim-nav);position:absolute;inset:0}.mobile-nav-drawer{background:var(--color-paper);z-index:1;text-align:left;flex-direction:column;gap:.25rem;width:17.5rem;max-width:85vw;height:100%;padding:1.25rem 1rem;display:flex;position:relative;overflow-y:auto}.mobile-nav-close{appearance:none;cursor:pointer;color:var(--color-ink-soft);border-radius:var(--radius-sm,.375rem);background:0 0;border:none;align-self:flex-end;margin-bottom:.5rem;padding:.5rem}.mobile-nav-link{color:var(--color-ink);border-radius:.625rem;flex-direction:column;padding:.85rem 1rem;text-decoration:none;transition:background .15s;display:flex}.mobile-nav-link:hover{background:var(--color-surface-high)}.mobile-nav-link.active{background:var(--color-secondary-container);color:var(--color-primary)}.mobile-nav-link-title{font-size:.95rem;font-weight:700}.mobile-nav-link-desc{color:var(--color-ink-soft);margin-top:.15rem;font-size:.78rem;font-weight:400}.mobile-nav-link.active .mobile-nav-link-desc{color:var(--color-primary);opacity:.75}@media (width<=640px){.top-nav-links{display:none}.hamburger-btn{display:flex}}.custom-select{-webkit-user-select:none;user-select:none;text-align:left;min-width:14rem;position:relative}.custom-select-trigger{appearance:none;border-radius:var(--radius-full);background:var(--color-surface-lowest);border:none;border:1.5px solid var(--color-surface-high);width:100%;color:var(--color-ink);cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;font-family:inherit;font-size:.9rem;transition:border-color .15s;display:flex}.custom-select-value{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.custom-select-trigger:hover,.custom-select.open .custom-select-trigger{border-color:var(--color-primary)}.custom-select.disabled .custom-select-trigger{opacity:.55;cursor:default}.custom-select-chevron{color:var(--color-ink-soft);flex-shrink:0;transition:transform .2s}.custom-select.open .custom-select-chevron{transform:rotate(180deg)}.custom-select-panel{background:var(--color-paper);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);z-index:200;flex-direction:column;gap:.35rem;padding:.35rem;font-weight:400;display:flex;position:absolute;top:calc(100% + .4rem);left:0;right:0}.custom-select-search{border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-lowest);color:var(--color-ink);padding:.5rem .65rem;font-family:inherit;font-size:.9rem}.custom-select-search:focus{border-color:var(--color-primary);outline:none}.custom-select-list{flex-direction:column;gap:.1rem;max-height:17rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.custom-select-group{flex-direction:column;gap:.1rem;display:flex}.custom-select-group ul{flex-direction:column;gap:.1rem;margin:0;padding:0;list-style:none;display:flex}.custom-select-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-faint);padding:.5rem .65rem .25rem;font-size:.7rem;font-weight:800}.custom-select-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);background:var(--color-secondary-container);color:var(--color-primary);margin-left:auto;padding:.15rem .45rem;font-size:.62rem;font-weight:800}.custom-select-group-label.is-primary{color:var(--color-primary)}.custom-select-group-label.is-secondary{color:var(--color-primary-light)}.custom-select-empty{color:var(--color-ink-faint);text-align:center;padding:.65rem;font-size:.85rem}.custom-select-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--color-ink-soft);align-items:center;gap:.5rem;padding:.55rem .85rem;font-size:.88rem;transition:background .12s,color .12s;display:flex}.custom-select-item:hover{background:var(--color-surface-high);color:var(--color-ink)}.custom-select-item.selected{color:var(--color-primary);font-weight:600}.custom-select-item svg{color:var(--color-primary);flex-shrink:0}.provider-form{flex-direction:column;gap:1rem;display:flex}.provider-form .text-input.boxed{margin-bottom:0;padding:.7rem 1rem}.provider-form-actions{flex-wrap:wrap;gap:.5rem;display:flex}a.modal-field-hint{color:var(--color-ink-soft);text-underline-offset:.1875rem;width:fit-content;text-decoration:underline}.login-form .provider-form{text-align:left}.login-form .provider-form-actions .button{flex:1}.modal-field-label{align-items:center;gap:.35rem;display:flex}.field-toggle{border:1.5px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-lowest);flex-shrink:0;align-self:flex-start;padding:.15rem;display:flex}.field-toggle button{border-radius:var(--radius-full);color:var(--color-ink-faint);cursor:pointer;background:0 0;border:none;padding:.35rem .75rem;font-family:inherit;font-size:.75rem;font-weight:700;transition:background .15s,color .15s}.field-toggle button.selected{background:var(--color-secondary-container);color:var(--color-ink)}.field-toggle button:not(.selected):hover{color:var(--color-ink)}.connection-help-bar{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 1.75rem;display:flex}.connection-help-bar .status-message{text-align:left;color:var(--color-ink);margin:0;font-weight:700}.connection-help-bar .button{flex-shrink:0}@media (width<=640px){.connection-help-bar{flex-direction:column;align-items:stretch}}.test-result{border-radius:var(--radius-lg);border:1.5px solid #0000;align-items:center;gap:.65rem;padding:.85rem 1rem;display:flex}.test-result.ok{background:var(--color-secondary-container);border-color:var(--color-primary-light);color:var(--color-primary)}.test-result.failed{background:var(--color-danger-container);border-color:var(--color-danger);color:var(--color-danger)}.test-result-icon{border-radius:var(--radius-full);background:currentColor;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;display:inline-flex}.test-result-icon svg{color:var(--color-surface-lowest)}.test-result-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.test-result-text strong{font-size:.82rem;font-weight:800}.test-result-text span{color:var(--color-ink-soft);word-break:break-word;font-size:.78rem;line-height:1.45}.test-result-tag:after{white-space:normal;width:max-content;max-width:15rem}.test-result-tag{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);background:var(--color-surface-lowest);flex-shrink:0;margin-left:auto;padding:.15rem .45rem;font-size:.62rem;font-weight:800}.url-form-gate{cursor:pointer;text-align:left;align-items:center;width:100%;font-family:inherit;transition:border-color .6s,box-shadow .6s;position:relative;overflow:hidden}.url-form-gate:before{content:"";left:var(--fill-x,50%);top:var(--fill-y,50%);aspect-ratio:1;background:var(--color-primary);border-radius:50%;width:200%;transition:transform .95s cubic-bezier(.33,0,.15,1);position:absolute;transform:translate(-50%,-50%)scale(0)}.url-form-gate:hover:before,.url-form-gate:focus-visible:before{transform:translate(-50%,-50%)scale(1)}.url-form-gate:hover,.url-form-gate:focus-visible{border-color:var(--color-primary)}.url-form-gate-resting{align-items:center;gap:.5rem;width:100%;transition:opacity .45s;display:flex;position:relative}.url-form-gate-resting .text-input{color:var(--color-ink-faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.url-form-gate-resting .button{pointer-events:none}.url-form-gate-label{color:var(--color-surface-lowest);opacity:0;justify-content:center;align-items:center;font-size:1rem;font-weight:800;transition:opacity .45s .35s;display:flex;position:absolute;inset:0}.url-form-gate:hover .url-form-gate-resting,.url-form-gate:focus-visible .url-form-gate-resting{opacity:0}.url-form-gate:hover .url-form-gate-label,.url-form-gate:focus-visible .url-form-gate-label{opacity:1}@media (hover:none) and (pointer:coarse){.url-form-gate:before{animation:.95s cubic-bezier(.33,0,.15,1) .45s forwards gate-fill;top:50%;left:50%}.url-form-gate{animation:.6s .45s forwards gate-edge}.url-form-gate-resting{animation:.45s .45s forwards gate-out}.url-form-gate-label{animation:.45s .8s forwards gate-in}}@keyframes gate-fill{to{transform:translate(-50%,-50%)scale(1)}}@keyframes gate-edge{to{border-color:var(--color-primary)}}@keyframes gate-out{to{opacity:0}}@keyframes gate-in{to{opacity:1}}@media (prefers-reduced-motion:reduce){.url-form-gate:before,.url-form-gate-resting,.url-form-gate-label{transition-duration:.01ms;animation-duration:.01ms;animation-delay:0s}}.provider-field{gap:.6rem;padding-bottom:.35rem}.provider-intro,.attempt-list{flex-direction:column;gap:.75rem;display:flex}.attempt-row{text-align:left;cursor:pointer;border:none;align-items:center;gap:1.25rem;width:100%;padding:1.25rem 1.75rem;font-family:inherit;display:flex}.attempt-row:hover{box-shadow:var(--shadow-lift)}.attempt-points sup{color:var(--color-primary);font-weight:700}.attempt-back{background:var(--color-surface-high);box-shadow:none;color:var(--color-ink-soft);justify-content:center;gap:.6rem;font-size:.9rem;font-weight:700;text-decoration:none}.attempt-back:hover{color:var(--color-primary);box-shadow:var(--shadow-lift)}.attempt-score{color:var(--color-primary);font-variant-numeric:tabular-nums;min-width:4rem;font-size:1.5rem;font-weight:800}.attempt-detail{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.attempt-meta{color:var(--color-ink-soft);font-size:.85rem}.attempt-tags{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.4rem;display:flex}@media (width<=640px){.attempt-row{flex-wrap:wrap;gap:.5rem 1rem;padding:1rem 1.75rem}.attempt-score{order:1}.attempt-tags{order:2;justify-content:flex-start}.attempt-row{padding-right:3.5rem;position:relative}.attempt-arrow{position:absolute;top:50%;right:1.25rem;transform:translateY(-50%)}.attempt-row:hover .attempt-arrow{transform:translate(.25rem,-50%)}.attempt-detail{flex-direction:row;flex:100%;order:4;align-items:baseline;gap:.4rem}.attempt-meta:before{content:"·";margin-right:.4rem}.attempt-back{padding-right:1.75rem}}.attempt-badge.mastery{background:var(--color-primary);color:var(--color-on-accent);align-items:center;gap:.3rem;display:inline-flex}.attempt-arrow{color:var(--color-ink-faint);flex-shrink:0;transition:transform .18s,color .18s}.attempt-row:hover .attempt-arrow{color:var(--color-primary);transform:translate(.25rem)}.attempt-points{color:var(--color-ink);font-weight:700}.attempt-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);background:var(--color-secondary-container);color:var(--color-primary);padding:.15rem .45rem;font-size:.62rem;font-weight:800}.cheatsheet-view{flex-direction:column;gap:1.5rem;display:flex}.cheatsheet-head{justify-content:space-between;align-items:flex-start;gap:1.5rem}.cheatsheet-head-text{flex-direction:column;gap:.25rem;display:flex}.cheatsheet-actions{flex-shrink:0;gap:.75rem;display:flex}.cheatsheet-sheet{flex-direction:column;display:flex}.cheatsheet-section{--sheet-num-size:1.4rem;--sheet-num-gap:.75rem;--sheet-text-column:calc(var(--sheet-num-size) + var(--sheet-num-gap));--sheet-bullet-size:.6rem;--sheet-title-size:1.15rem;--sheet-title-leading:1.35;--sheet-title-line:calc(var(--sheet-title-size) * var(--sheet-title-leading));border-top:1px solid var(--line);padding:1.75rem 0}.cheatsheet-section:first-child{border-top:none;padding-top:0}.cheatsheet-section:last-child{padding-bottom:0}.cheatsheet-section-head{align-items:flex-start;gap:var(--sheet-num-gap);display:flex}.cheatsheet-num{width:var(--sheet-num-size);height:var(--sheet-num-size);border-radius:var(--radius-full);background:var(--color-secondary-container);color:var(--color-primary);margin-top:calc((var(--sheet-title-line) - var(--sheet-num-size)) / 2);flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;font-size:.72rem;font-weight:800;display:flex}.cheatsheet-section-title{font-size:var(--sheet-title-size);font-weight:800;line-height:var(--sheet-title-leading);flex:1;margin:0}.cheatsheet-stamp{height:var(--sheet-title-line);font-variant-numeric:tabular-nums;color:var(--color-ink-faint);border-radius:var(--radius-sm);background:var(--color-surface-high);flex-shrink:0;align-items:center;padding:0 .5rem;font-size:.8rem;font-weight:700;text-decoration:none;transition:background .15s,color .15s;display:flex}.cheatsheet-stamp:hover{background:var(--color-secondary-container);color:var(--color-primary)}.cheatsheet-points{margin:1rem 0 0 var(--sheet-text-column);flex-direction:column;gap:.75rem;padding:0;list-style:none;display:flex}.cheatsheet-points li{padding-left:1.6rem;font-size:1rem;font-weight:500;line-height:1.55;position:relative}.cheatsheet-points li:before{content:"";width:var(--sheet-bullet-size);height:var(--sheet-bullet-size);background:var(--color-tertiary);border-radius:50%;position:absolute;top:.5rem;left:0}@media (width<=640px){.cheatsheet-head{flex-direction:column;align-items:stretch;gap:1rem}.cheatsheet-actions .button{width:100%}.cheatsheet-sheet{padding:1.5rem 1.25rem}.cheatsheet-section{--sheet-num-gap:.6rem;padding:1.25rem 0}.cheatsheet-section-head{flex-wrap:wrap}.cheatsheet-points{margin-left:0}.cheatsheet-points li{padding-left:var(--sheet-text-column)}.cheatsheet-points li:before{left:calc((var(--sheet-num-size) - var(--sheet-bullet-size)) / 2)}}.cheatsheet-waiting{align-items:center;gap:1rem;display:flex}.cheatsheet-waiting-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:800}.cheatsheet-waiting-body{color:var(--color-ink-faint);margin:0;font-size:.95rem;line-height:1.6}.cheatsheet-cta{gap:.6rem;text-decoration:none}.cheatsheet-sidebar{margin-top:1rem}.cheatsheet-sidebar .cheatsheet-cta{justify-content:flex-start;width:100%}.cheatsheet-head-text .source-credit{margin-top:.6rem}.course-view>.source-credit{margin-top:.25rem}.source-credit{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.source-chip{border-radius:var(--radius-full);background:var(--color-surface-high);color:var(--color-ink);align-items:center;gap:.4rem;padding:.3rem .8rem;font-size:.8rem;font-weight:700;text-decoration:none;display:inline-flex}.source-chip:hover{background:var(--color-secondary-hover)}.source-chip svg{color:var(--color-ink-soft);flex-shrink:0}.source-credit-note{color:var(--color-ink-faint);font-size:.8rem}.source-imprint{border-top:2px solid var(--color-ink);grid-template-columns:6rem 1fr;gap:.35rem 1rem;margin:0;padding-top:.75rem;display:grid}.source-imprint dt{text-transform:uppercase;letter-spacing:.12em;color:var(--color-ink-faint);padding-top:.15rem;font-size:.7rem;font-weight:800}.source-imprint dd{margin:0;font-size:.95rem;font-weight:500}.source-imprint dd b{color:var(--color-primary);font-weight:800}.cheatsheet-export-credit{margin-top:1.5rem}.cheatsheet-cta.disabled,.retake-btn.disabled{cursor:default}.cheatsheet-cta.disabled>*,.retake-btn.disabled>*{opacity:.5}.cheatsheet-bar-mobile{display:none}@media (width<=860px){.cheatsheet-bar-mobile{display:block}.cheatsheet-bar-mobile .cheatsheet-cta{border-radius:var(--radius-xl);justify-content:flex-start;width:100%;padding:1.5rem 1.75rem}}.cheatsheet-cta-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cheatsheet-cta-go{flex-shrink:0;margin-left:auto}.icon-btn.waiting{color:var(--color-ink-faint)}.graph-tooltip-stack{z-index:63;pointer-events:none;flex-direction:column;gap:.5rem;max-width:18rem;display:flex;position:fixed}.graph-tooltip-stack.pinned{pointer-events:auto}.graph-confirm-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:800}.graph-confirm-body{color:var(--color-ink-soft);margin:0 0 1rem}.graph-confirm-list{background:var(--color-surface-low);border-radius:var(--radius-md);flex-direction:column;gap:.5rem;max-height:12rem;margin:0;padding:.75rem 1rem;font-size:.9rem;font-weight:600;list-style:none;display:flex;overflow-y:auto}.graph-confirm-list li{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.graph-confirm-tier{text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-faint);font-size:.68rem;font-weight:800}.graph-tidy-card{max-width:34rem}.graph-tidy-groups{flex-direction:column;gap:.5rem;max-height:min(20rem,45vh);display:flex;overflow-y:auto}.graph-tidy-group{background:var(--color-surface-low);border-radius:var(--radius-md)}.graph-tidy-group-head{align-items:center;gap:.75rem;padding:0 .9rem;display:flex}.graph-tidy-toggle{font:inherit;color:var(--color-ink);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.5rem;padding:.75rem 0;display:flex}.graph-tidy-group-name{flex:1;font-size:.9rem;font-weight:700}.graph-tidy-group-count{color:var(--color-ink-faint);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:600}.graph-tidy-toggle .notes-chevron{color:var(--color-ink-faint)}.graph-tidy-rows{border-top:1px solid var(--color-surface-high);margin:0;padding:.25rem .9rem .6rem;list-style:none}.graph-tidy-change{color:var(--color-ink);cursor:pointer;align-items:flex-start;gap:.75rem;padding:.4rem 0;font-size:.875rem;line-height:1.4;display:flex}.graph-tidy-change.skipped .graph-tidy-text{color:var(--color-ink-faint)}.graph-tidy-text{flex:1;min-width:0}.graph-tidy-arrow{color:var(--color-ink-faint);margin:0 .4rem}.graph-tidy-change .graph-confirm-tier{white-space:nowrap;flex-shrink:0;line-height:1.4rem}.graph-tidy-change .graph-tidy-check{margin-top:.1rem}.graph-tidy-check:not(:checked):not(:indeterminate){border-color:var(--color-ink-faint)}.graph-tidy-reply{margin-top:1rem}.graph-tidy-reply .modal-textarea{min-height:3.5rem}.graph-confirm-actions{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.graph-tooltip-forget{background:var(--color-danger-container);border-radius:var(--radius-full);box-shadow:var(--shadow-menu);color:var(--color-danger);cursor:pointer;border:none;align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-family:inherit;font-size:.7rem;font-weight:700;transition:background .12s,color .12s;display:flex}.graph-tooltip-forget svg{opacity:.7;flex-shrink:0}.graph-tooltip-forget svg:last-child{margin-left:auto;transition:transform .15s}.graph-tooltip-forget:hover{background:var(--color-danger);color:var(--color-on-accent)}.graph-tooltip-forget:hover svg:last-child{transform:translate(.15rem)}.graph-tooltip-forget:disabled{cursor:default;opacity:.6}.cheatsheet-export{background:var(--color-paper);color:var(--color-ink);padding:3.5rem 3.5rem 2.5rem;font-family:inherit;position:fixed;top:0;left:-20000px}.cheatsheet-export-masthead{border-bottom:2px solid var(--color-primary);justify-content:space-between;align-items:center;padding-bottom:1.5rem;display:flex}.cheatsheet-export-logo{height:2.25rem;display:block}.cheatsheet-export-eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--color-primary);font-size:.75rem;font-weight:800}.cheatsheet-export-course{margin:2rem 0 0;font-size:2rem;font-weight:800;line-height:1.2}.cheatsheet-export-body{flex-direction:column;gap:2.25rem;margin-top:2.5rem;display:flex}.cheatsheet-export-section{background:var(--color-surface-lowest);break-inside:avoid;border-radius:1.75rem;padding:1.75rem 2rem}.cheatsheet-export-head{align-items:baseline;gap:.85rem;display:flex}.cheatsheet-export-num{border-radius:var(--radius-full);background:var(--color-secondary-container);width:1.75rem;height:1.75rem;color:var(--color-primary);flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;font-size:.82rem;font-weight:800;display:flex}.cheatsheet-export-title{flex:1;margin:0;font-size:1.25rem;font-weight:800;line-height:1.35}.cheatsheet-export-stamp{font-variant-numeric:tabular-nums;color:var(--color-primary);background:var(--color-secondary-container);border-radius:var(--radius-full);flex-shrink:0;padding:.2rem .7rem;font-size:.85rem;font-weight:700}.cheatsheet-export-points{flex-direction:column;gap:.85rem;margin:1.25rem 0 0 2.6rem;padding:0;list-style:none;display:flex}.cheatsheet-export-points li{color:var(--color-ink);padding-left:1.5rem;font-size:1.02rem;font-weight:500;line-height:1.55;position:relative}.cheatsheet-export-points li:before{content:"";background:var(--color-tertiary);border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:.55rem;left:0}.cheatsheet-export-footer{border-top:1px solid var(--line);color:var(--color-ink-faint);justify-content:space-between;align-items:center;margin-top:2.5rem;padding-top:1.25rem;font-size:.8rem;font-weight:700;display:flex}.notes-tab{z-index:40;appearance:none;border-radius:var(--radius-tab) 0 0 var(--radius-tab);background:var(--color-secondary-container);width:1.9rem;height:5.75rem;color:var(--color-primary);box-shadow:var(--shadow-pill);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;font-family:inherit;font-size:.62rem;font-weight:800;transition:transform .18s,opacity .18s;display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%)}.notes-tab.hidden{opacity:0;pointer-events:none;transform:translate(100%,-50%)}.notes-tab span{writing-mode:vertical-rl;transform:rotate(180deg)}.notes-tab-grip{opacity:.45;background-image:radial-gradient(currentColor 1px,#0000 1px);background-size:.25rem .3rem;width:.5rem;height:.85rem}.notes-overlay{z-index:90;justify-content:flex-end;display:flex;position:fixed;inset:0}.notes-backdrop{background:var(--color-scrim-nav);position:absolute;inset:0}.notes-sheet{z-index:1;background-color:var(--color-surface-lowest);background-image:radial-gradient(var(--color-dot-faint) 1.4px, transparent 1.4px);border-radius:var(--radius-lg) 0 0 var(--radius-lg);width:26rem;max-width:100vw;height:100%;box-shadow:var(--shadow-menu);text-align:left;background-position:13px 13px;background-size:26px 26px;flex-direction:column;animation:.22s notes-in;display:flex;position:relative}@keyframes notes-in{0%{transform:translate(100%)}}.notes-page-card{background-image:radial-gradient(var(--color-dot-faint) 1.4px, transparent 1.4px);text-align:left;background-position:13px 13px;background-size:26px 26px;height:min(38rem,70vh)}.notes-editor-page{flex:1;min-height:0;overflow:hidden}.notes-editor-page .cm-scroller{padding:0;font-size:1rem}.notes-head{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:1.1rem 1.35rem .85rem;display:flex}.notes-title{min-width:0;margin-right:auto;font-size:.95rem;font-weight:800}.notes-sub{color:var(--color-ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:600;display:block;overflow:hidden}.notes-chip{appearance:none;border-radius:var(--radius-full);white-space:nowrap;background:var(--color-surface-low);color:var(--color-ink-faint);border:none;align-items:center;gap:.35rem;padding:.3rem .75rem;font-family:inherit;font-size:.68rem;font-weight:700;line-height:1.2;display:inline-flex}.notes-chip.dirty{background:var(--color-warn-container);color:var(--color-warn-ink);cursor:pointer}.notes-chip.busy{color:var(--color-ink-soft)}.notes-spin{animation:.7s linear infinite spin}.notes-icon-btn{appearance:none;border-radius:var(--radius-full);width:1.9rem;height:1.9rem;color:var(--color-ink-faint);cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;display:grid}.notes-icon-btn:hover{background:var(--color-surface-high);color:var(--color-ink)}.notes-body{flex:1;min-height:0;overflow:hidden}.notes-tail{border-top:1px solid var(--line);color:var(--color-ink-faint);grid-template-columns:1fr auto;align-items:end;column-gap:.6rem;padding:.7rem 1.1rem .9rem 1.35rem;font-size:.68rem;display:grid}.notes-tail.open,.notes-page-tail.open{box-shadow:var(--shadow-tail-lift)}.notes-page-tail .notes-chip{padding:.45rem 1.05rem;font-size:.72rem}.notes-page-tail{border-top:1px solid var(--line);color:var(--color-ink-faint);grid-template-columns:1fr auto;align-items:end;column-gap:.6rem;padding-top:1.15rem;font-size:.68rem;display:grid}.notes-guide{min-width:0;color:var(--color-ink-faint);flex-direction:column;align-items:flex-start;gap:.7rem;font-size:.68rem;display:flex}.notes-guide-toggle{appearance:none;border-radius:var(--radius-full);background:var(--color-surface-low);color:var(--color-ink-faint);letter-spacing:.04em;cursor:pointer;border:none;align-items:center;gap:.35rem;padding:.45rem 1.05rem;font-family:inherit;font-size:.72rem;font-weight:400;line-height:1.2;display:inline-flex}.notes-guide-toggle:hover{background:var(--color-surface-high);color:var(--color-ink-soft)}.notes-guide-toggle.on{background:var(--color-secondary-container);color:var(--color-primary)}.notes-chevron{transition:transform .15s;display:inline-flex}.notes-chevron.up{transform:rotate(180deg)}.notes-marks{grid-template-columns:auto 1fr;align-items:baseline;gap:.3rem .75rem;margin:0;display:grid}.notes-marks>div{display:contents}.notes-marks dt,.notes-marks dd{margin:0}.notes-marks dd{color:var(--color-ink-soft)}.notes-mark-heading{color:var(--color-ink);font-size:1.05em;font-weight:800}.notes-mark-quote{color:var(--color-ink-faint);font-style:italic}.notes-mark-link{color:var(--color-primary);text-decoration:underline}.notes-marks code{color:var(--color-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.notes-key{background:var(--color-surface-low);color:var(--color-ink-soft);white-space:nowrap;border-radius:.25rem;padding:0 .25rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.notes-actions{gap:.5rem;display:flex}.notes-export-btn{appearance:none;border-radius:var(--radius-full);background:var(--color-surface-high);color:var(--color-ink);letter-spacing:.04em;cursor:pointer;border:none;align-items:center;padding:.45rem 1.05rem;font-family:inherit;font-size:.72rem;font-weight:700;line-height:1.2;display:inline-flex}.notes-export-btn:hover:not(:disabled){background:var(--color-secondary-container);color:var(--color-primary)}.notes-export-btn:disabled{opacity:.45;cursor:default}@media (width<=640px){.notes-tab{top:auto;bottom:5.5rem;transform:none}.notes-tab.hidden{transform:translate(100%)}.notes-sheet{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;margin-top:3.5rem}.notes-sheet:focus-within .notes-actions{display:none}}@media (prefers-reduced-motion:reduce){.notes-sheet{animation:none}.notes-tab,.notes-chevron{transition:none}}.notes-export{background:var(--color-paper);color:var(--color-ink);padding:3.5rem 3.5rem 2.5rem;font-family:inherit;position:fixed;top:0;left:-20000px}.notes-export-masthead{border-bottom:2px solid var(--color-primary);justify-content:space-between;align-items:center;padding-bottom:1.5rem;display:flex}.notes-export-logo{height:2.25rem;display:block}.notes-export-eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--color-primary);font-size:.75rem;font-weight:800}.notes-export-course{margin:2rem 0 0;font-size:2rem;font-weight:800;line-height:1.2}.notes-export-body{background:var(--color-surface-lowest);color:var(--color-ink-soft);border-radius:1.75rem;margin-top:2.5rem;padding:2.25rem 2.5rem;font-size:1rem;line-height:1.75}.notes-export-body>:first-child{margin-top:0}.notes-export-body>:last-child{margin-bottom:0}.notes-export-body h1,.notes-export-body h2,.notes-export-body h3,.notes-export-body h4,.notes-export-body h5{color:var(--color-ink);margin:1.75rem 0 .75rem;line-height:1.3}.notes-export-body h1{font-size:1.4rem;font-weight:800}.notes-export-body h2{font-size:1.2rem;font-weight:800}.notes-export-body h3{font-size:1.05rem;font-weight:700}.notes-export-body h4{color:var(--color-ink-soft);font-size:1rem;font-weight:700}.notes-export-body h5{color:var(--color-ink-faint);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:800}.notes-export-body p{margin:0 0 1rem}.notes-export-body strong{color:var(--color-ink);font-weight:700}.notes-export-body ul,.notes-export-body ol{flex-direction:column;gap:.35rem;margin:0 0 1rem;padding-left:1.5rem;display:flex}.notes-export-body blockquote{border-left:3px solid var(--color-primary-light);color:var(--color-ink-faint);margin:0 0 1rem;padding:.25rem 0 .25rem 1.25rem}.notes-export-body blockquote p:last-child{margin-bottom:0}.notes-export-body code{background:var(--color-primary-wash);color:var(--color-secondary);border-radius:.35rem;padding:.1rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.notes-export-body a{color:var(--color-primary);text-decoration:underline}.notes-export-body hr{border:none;border-top:1px solid var(--line);margin:1.75rem 0}.notes-export-footer{border-top:1px solid var(--line);color:var(--color-ink-faint);justify-content:space-between;align-items:center;margin-top:2.5rem;padding-top:1.25rem;font-size:.8rem;font-weight:700;display:flex}.lift{transition:transform .18s,box-shadow .18s}.lift:hover{box-shadow:var(--shadow-lift);transform:translateY(-.25rem)}@media (prefers-reduced-motion:reduce){.lift,.lift:hover{transition:none;transform:none}}
