.jl-sapphire{--bg:#0b0f19;--surface:#181f2e;--surface-2:#1f293780;--border:#ffffff14;--border-soft:#ffffff0d;--ring:#ffffff1a;--text:#f9fafb;--text-muted:#9ca3af;--text-dim:#6b7280;--accent:#6172f3;--accent-solid:#444ce7;--accent-hover:#6172f3;--accent-soft:#6172f329;--accent-contrast:#fff;--info:#60a5fa;--info-soft:#60a5fa29;--success:#4ade80;--success-soft:#4ade8029;--warn:#fbbf24;--warn-soft:#fbbf2429;--danger:#f87171;--danger-solid:#dc2626;--danger-soft:#f8717129;--shadow:0 24px 48px -20px #0009;--glow:0 10px 30px -10px #6172f373;--blur:14px;--font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--maxw:1200px;--header-h:64px;--r-card:16px;--r-control:12px;--r-pill:999px;background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.5;position:relative}.jl-sapphire[data-theme=light]{--bg:#f6f7fb;--surface:#fff;--surface-2:#ffffffb8;--border:#0f172a17;--border-soft:#0f172a0d;--ring:#0f172a0f;--text:#0b0f19;--text-muted:#4b5563;--text-dim:#94a3b8;--accent:#4f5fe0;--accent-solid:#444ce7;--accent-hover:#3538cd;--accent-soft:#6172f31f;--accent-contrast:#fff;--info:#2563eb;--info-soft:#2563eb1a;--success:#059669;--success-soft:#0596691a;--warn:#d97706;--warn-soft:#d977061a;--danger:#dc2626;--danger-solid:#dc2626;--danger-soft:#dc26261a;--shadow:0 18px 40px -22px #0f172a2e;--glow:0 10px 30px -12px #444ce747}.jl-sapphire *,.jl-sapphire :before,.jl-sapphire :after{box-sizing:border-box}.jl-sapphire h1,.jl-sapphire h2,.jl-sapphire h3,.jl-sapphire h4,.jl-sapphire p,.jl-sapphire ul{margin:0}.jl-sapphire a{color:inherit;text-decoration:none}.jl-sapphire button{cursor:pointer;color:inherit;background:0 0;border:0;font-family:inherit}.jl-sapphire input,.jl-sapphire textarea,.jl-sapphire select{font-family:inherit;font-size:inherit;color:inherit}.jl-sapphire img{max-width:100%}.jl-sapphire *,.jl-sapphire :before,.jl-sapphire :after{transition:background-color .22s,border-color .22s,color .22s,fill .22s,box-shadow .22s}.jl-sapphire ::selection{background:var(--accent);color:#fff}.jl-sapphire :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:10px}.jl-sapphire .mono{font-family:var(--font-mono)}.jl-sapphire .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes jl-pulse-glow{0%,to{box-shadow:0 0 8px #444ce74d}50%{box-shadow:0 0 20px 4px #444ce780}}@keyframes jl-dot-pulse{0%,to{box-shadow:0 0 #6172f380}50%{box-shadow:0 0 0 5px #6172f300}}@keyframes jl-fade-in-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes jl-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes jl-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.jl-sapphire *,.jl-sapphire :before,.jl-sapphire :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
@keyframes jl-fade-in{0%{opacity:0}to{opacity:1}}.jl-sapphire .container{max-width:var(--maxw);margin:0 auto;padding-left:24px;padding-right:24px}.jl-sapphire .section{padding-top:clamp(48px,7vw,88px);padding-bottom:clamp(48px,7vw,88px)}.jl-sapphire .ic{flex:none}.jl-sapphire .icon-box{border-radius:var(--r-control);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.jl-sapphire .icon-box.is-info{background:var(--info-soft);color:var(--info)}.jl-sapphire .icon-box.is-success{background:var(--success-soft);color:var(--success)}.jl-sapphire .icon-box.is-warn{background:var(--warn-soft);color:var(--warn)}.jl-sapphire .icon-box.is-danger{background:var(--danger-soft);color:var(--danger)}.jl-sapphire .eyebrow{font-family:var(--font-mono);color:var(--accent);letter-spacing:.02em;margin-bottom:10px;font-size:13px}.jl-sapphire .h2{letter-spacing:-.025em;color:var(--text);font-size:clamp(24px,3.5vw,34px);font-weight:700}.jl-sapphire .btn{border-radius:var(--r-control);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;line-height:1.2;display:inline-flex}.jl-sapphire .btn:disabled,.jl-sapphire .btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.jl-sapphire .btn-sm{border-radius:10px;gap:6px;padding:7px 12px;font-size:13px}.jl-sapphire .btn-lg{padding:13px 22px;font-size:15px}.jl-sapphire .btn-primary{background:var(--accent-solid);color:var(--accent-contrast);box-shadow:var(--glow)}.jl-sapphire .btn-primary:not(:disabled):hover{background:var(--accent-hover);transform:translateY(-1px)}.jl-sapphire .btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);-webkit-backdrop-filter:blur(var(--blur))}.jl-sapphire .btn-secondary:not(:disabled):hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.jl-sapphire .btn-ghost{color:var(--text-muted);background:0 0}.jl-sapphire .btn-ghost:not(:disabled):hover{background:var(--surface-2);color:var(--text)}.jl-sapphire .btn-danger{background:var(--danger-solid);color:#fff}.jl-sapphire .btn-danger:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-1px)}.jl-sapphire .btn-icon{border-radius:var(--r-control);border:1px solid var(--border);background:var(--surface-2);width:38px;height:38px;color:var(--text-muted);-webkit-backdrop-filter:blur(var(--blur));justify-content:center;align-items:center;display:inline-flex}.jl-sapphire .btn-icon:not(:disabled):hover{color:var(--accent);border-color:var(--accent)}.jl-sapphire .icon-moon{display:none}.jl-sapphire .icon-sun{color:var(--warn);display:block}.jl-sapphire[data-theme=light] .icon-sun{display:none}.jl-sapphire[data-theme=light] .icon-moon{color:var(--text-dim);display:block}.jl-sapphire .badge{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface-2);font-family:var(--font-mono);color:var(--text-muted);-webkit-backdrop-filter:blur(var(--blur));align-items:center;gap:8px;padding:6px 13px;font-size:12px;display:inline-flex}.jl-sapphire .badge-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2.2s infinite jl-dot-pulse}.jl-sapphire .status-badge{border-radius:var(--r-pill);align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:500;line-height:1.4;display:inline-flex}.jl-sapphire .status-badge .dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.jl-sapphire .status-badge.is-neutral{background:var(--surface-2);color:var(--text-muted)}.jl-sapphire .status-badge.is-info{background:var(--info-soft);color:var(--info)}.jl-sapphire .status-badge.is-success{background:var(--success-soft);color:var(--success)}.jl-sapphire .status-badge.is-warn{background:var(--warn-soft);color:var(--warn)}.jl-sapphire .status-badge.is-danger{background:var(--danger-soft);color:var(--danger)}.jl-sapphire .status-badge.is-accent{background:var(--accent-soft);color:var(--accent)}.jl-sapphire .card{border:1px solid var(--border-soft);border-radius:var(--r-card);background:var(--surface-2);-webkit-backdrop-filter:blur(var(--blur));padding:20px;position:relative}.jl-sapphire .card--flush{padding:0;overflow:hidden}.jl-sapphire .card--hover{transition:transform .25s,border-color .25s,box-shadow .25s}.jl-sapphire .card--hover:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-3px)}.jl-sapphire .card--link{cursor:pointer;color:inherit;display:block}.jl-sapphire .card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.jl-sapphire .card-title{letter-spacing:-.01em;color:var(--text);font-size:16px;font-weight:600}.jl-sapphire .card-sub{font-family:var(--font-mono);color:var(--accent);margin-top:2px;font-size:12px}.jl-sapphire .card-body{color:var(--text-muted);font-size:14px;line-height:1.55}.jl-sapphire .modal-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out jl-fade-in;display:flex;position:fixed;inset:0}.jl-sapphire .modal-panel{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-2);width:100%;max-width:28rem;-webkit-backdrop-filter:blur(calc(var(--blur) + 6px));box-shadow:var(--shadow);padding:22px;animation:.18s ease-out jl-scale-in}.jl-sapphire .modal-head{align-items:flex-start;gap:14px;display:flex}.jl-sapphire .modal-title{color:var(--text);font-size:16px;font-weight:600}.jl-sapphire .modal-desc{color:var(--text-muted);margin-top:4px;font-size:14px;line-height:1.5}.jl-sapphire .modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.jl-sapphire .toast-stack{z-index:70;flex-direction:column-reverse;gap:8px;max-width:24rem;display:flex;position:fixed;bottom:16px;right:16px}.jl-sapphire .toast{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-2);-webkit-backdrop-filter:blur(calc(var(--blur) + 6px));box-shadow:var(--shadow);color:var(--text);align-items:center;gap:12px;padding:12px 14px;font-size:14px;font-weight:500;animation:.2s ease-out jl-scale-in;display:flex}.jl-sapphire .toast-icon{flex:none}.jl-sapphire .toast.is-success .toast-icon{color:var(--success)}.jl-sapphire .toast.is-error .toast-icon{color:var(--danger)}.jl-sapphire .toast.is-info .toast-icon{color:var(--info)}.jl-sapphire .toast-msg{flex:1}.jl-sapphire .toast-close{color:var(--text-dim);opacity:.7;flex:none;display:inline-flex}.jl-sapphire .toast-close:hover{opacity:1;color:var(--text)}.jl-sapphire .field{flex-direction:column;gap:6px;display:flex}.jl-sapphire .field-label{color:var(--text-muted);font-size:13px;font-weight:500}.jl-sapphire .field-input{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-2);width:100%;-webkit-backdrop-filter:blur(var(--blur));color:var(--text);padding:10px 13px;font-size:14px}.jl-sapphire .field-input::placeholder{color:var(--text-dim)}.jl-sapphire .field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.jl-sapphire .field--invalid .field-input{border-color:var(--danger)}.jl-sapphire .field--invalid .field-input:focus{box-shadow:0 0 0 3px var(--danger-soft)}.jl-sapphire .field-hint{color:var(--text-dim);font-size:12px}.jl-sapphire .field-error{color:var(--danger);font-size:12px}.jl-sapphire .empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:64px 16px;display:flex}.jl-sapphire .empty-icon{border-radius:var(--r-card);background:var(--surface-2);border:1px solid var(--border-soft);width:56px;height:56px;color:var(--text-dim);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.jl-sapphire .empty-title{color:var(--text);font-size:16px;font-weight:600}.jl-sapphire .empty-desc{max-width:24rem;color:var(--text-muted);margin-top:4px;font-size:14px;line-height:1.5}.jl-sapphire .empty-action{margin-top:20px}.jl-sapphire .stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.jl-sapphire .stat{border:1px solid var(--border-soft);border-radius:var(--r-card);background:var(--surface-2);-webkit-backdrop-filter:blur(var(--blur));align-items:center;gap:12px;padding:18px;display:flex}.jl-sapphire .stat-value{color:var(--text);font-size:22px;font-weight:700;line-height:1.1}.jl-sapphire .stat-label{color:var(--text-muted);margin-top:2px;font-size:12px}.jl-sapphire .tabs{border:1px solid var(--border-soft);border-radius:var(--r-control);background:var(--surface-2);-webkit-backdrop-filter:blur(var(--blur));gap:4px;padding:4px;display:inline-flex}.jl-sapphire .tab{color:var(--text-muted);background:0 0;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:500}.jl-sapphire .tab:hover{color:var(--text)}.jl-sapphire .tab.is-active{background:var(--accent-soft);color:var(--accent)}.jl-sapphire .spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite jl-spin;display:inline-block}.jl-sapphire .spinner-sm{border-width:2px;width:16px;height:16px}.jl-sapphire .spinner-lg{border-width:3px;width:28px;height:28px}

:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root:has(.jl-sapphire[data-theme=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{min-height:100%;margin:0;padding:0}body{background:#0b0f19}body:has(.jl-sapphire[data-theme=light]){background:#f6f7fb}.jl-sapphire .protected{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.jl-sapphire .protected img{-webkit-user-drag:none;pointer-events:none}html.app-hidden .jl-sapphire .protected{filter:blur(18px);transition:filter .1s}.jl-sapphire .app-shell{flex-direction:column;min-height:100dvh;display:flex}.jl-sapphire .app-header{z-index:30;border-bottom:1px solid var(--border-soft);background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(var(--blur));position:sticky;top:0}.jl-sapphire .app-header-in{min-height:var(--header-h);padding-top:calc(8px + env(safe-area-inset-top));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding-bottom:8px;display:flex}.jl-sapphire .brand{letter-spacing:-.02em;align-items:center;gap:11px;font-size:17px;font-weight:800;display:flex}.jl-sapphire .brand-mark{border-radius:var(--r-control);background:linear-gradient(140deg, var(--accent), var(--accent-solid));width:32px;height:32px;box-shadow:var(--glow);color:#fff;flex:none;justify-content:center;align-items:center;display:inline-flex}.jl-sapphire .container-narrow{width:100%;max-width:760px;padding-left:max(20px, env(safe-area-inset-left));padding-right:max(20px, env(safe-area-inset-right));margin:0 auto}.jl-sapphire .page-bottom-safe{padding-bottom:calc(64px + env(safe-area-inset-bottom))}@media (max-width:560px){.jl-sapphire .page-bottom-safe{padding-bottom:calc(150px + env(safe-area-inset-bottom))}}.jl-sapphire .stack{flex-direction:column;gap:16px;display:flex}.jl-sapphire .stack-sm{flex-direction:column;gap:8px;display:flex}.jl-sapphire .row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.jl-sapphire .row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.jl-sapphire .grow{flex:1}.jl-sapphire .muted{color:var(--text-muted);font-size:14px;line-height:1.55}.jl-sapphire .dim{color:var(--text-dim);font-size:13px}.jl-sapphire .h1{letter-spacing:-.03em;color:var(--text);font-size:clamp(28px,5vw,44px);font-weight:800;line-height:1.05}.jl-sapphire .lead{color:var(--text-muted);font-size:clamp(16px,2vw,18px);line-height:1.6}.jl-sapphire .code-chip{font-family:var(--font-mono);letter-spacing:.18em;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r-control);padding:6px 12px;font-size:15px;font-weight:700;display:inline-block}.jl-sapphire .lesson-prose h3{color:var(--text);margin:0 0 10px;font-size:20px;font-weight:700}.jl-sapphire .lesson-prose p{color:var(--text);margin:0 0 14px;line-height:1.65}.jl-sapphire .lesson-prose strong{color:var(--text);font-weight:700}.jl-sapphire .lesson-scan{border-radius:var(--r-card);border:1px solid var(--border-soft);width:100%;margin-top:8px}.jl-sapphire .quiz-q{border:1px solid var(--border-soft);border-radius:var(--r-card);background:var(--surface-2);-webkit-backdrop-filter:blur(var(--blur));padding:18px}.jl-sapphire .quiz-q-prompt{color:var(--text);margin-bottom:12px;font-weight:600}.jl-sapphire .quiz-q-prompt .num{color:var(--accent);font-family:var(--font-mono);margin-right:8px}.jl-sapphire .opt{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface);cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;padding:11px 14px;transition:border-color .18s,background .18s;display:flex}.jl-sapphire .opt:hover{border-color:var(--accent)}.jl-sapphire .opt.is-checked{border-color:var(--accent);background:var(--accent-soft)}.jl-sapphire .opt.is-correct{border-color:var(--success);background:var(--success-soft)}.jl-sapphire .opt.is-wrong{border-color:var(--danger);background:var(--danger-soft)}.jl-sapphire .opt input{accent-color:var(--accent);flex:none;width:18px;height:18px}.jl-sapphire .opt-text{flex:60%;min-width:0}.jl-sapphire .progress{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--border-soft);height:10px;overflow:hidden}.jl-sapphire .progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-solid));height:100%}.jl-sapphire .score-big{font-variant-numeric:tabular-nums;color:var(--text);font-size:56px;font-weight:800;line-height:1}.jl-sapphire .score-big .denom{color:var(--text-dim);font-size:24px}@media (max-width:560px){.jl-sapphire .score-big{font-size:44px}.jl-sapphire .spark{gap:3px}.jl-sapphire .spark-num{font-size:11px}.jl-sapphire .tree-indent{padding-left:8px}}.jl-sapphire .field-ok{color:var(--success);font-size:12px}.jl-sapphire .stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}@media (max-width:420px){.jl-sapphire .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.jl-sapphire .stack-xs{flex-direction:column;gap:6px;display:flex}.jl-sapphire .tree-indent{padding-left:12px}.jl-sapphire .stat-tile{border:1px solid var(--border-soft);border-radius:var(--r-card);background:var(--surface-2);padding:14px 16px}.jl-sapphire .stat-value{font-variant-numeric:tabular-nums;color:var(--text);font-size:30px;font-weight:800;line-height:1.1}.jl-sapphire .stat-unit{color:var(--text-dim);font-size:15px;font-weight:600}.jl-sapphire .stat-label{color:var(--text-muted);margin-top:4px;font-size:13px}.jl-sapphire .spark{align-items:flex-end;gap:6px;display:flex}.jl-sapphire .spark-col{flex-direction:column;flex:1;gap:4px;display:flex}.jl-sapphire .spark-bar-wrap{background:var(--surface-2);border-radius:6px;align-items:flex-end;height:56px;display:flex;overflow:hidden}.jl-sapphire .spark-bar{background:linear-gradient(180deg, var(--accent), var(--accent-solid));border-radius:6px 6px 0 0;width:100%;min-height:3px}.jl-sapphire .spark-num{text-align:center;font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:12px;font-weight:700}.jl-sapphire .pwa-steps{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.jl-sapphire .pwa-step{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-2);color:var(--text);align-items:flex-start;gap:12px;padding:12px 14px;font-size:14px;line-height:1.45;display:flex}.jl-sapphire .pwa-step-num{background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.jl-sapphire .pwa-chip{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:8px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.jl-sapphire .pwa-done{border:1px solid var(--success);border-radius:var(--r-control);background:var(--success-soft);color:var(--text);align-items:center;gap:12px;padding:14px;font-size:14px;display:flex}.jl-sapphire .pwa-done span{font-size:20px}.jl-sapphire .pwa-prompt{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow);align-items:flex-start;gap:12px;padding:14px 16px;display:flex;position:fixed}@media (min-width:560px){.jl-sapphire .pwa-prompt{max-width:360px;left:auto;right:24px}}.jl-sapphire .pwa-prompt-icon{font-size:22px;line-height:1}.jl-sapphire .pwa-prompt-body{flex:1;min-width:0}.jl-sapphire .pwa-prompt-title{color:var(--text);font-size:14px;font-weight:700}.jl-sapphire .pwa-prompt-sub{color:var(--text-dim);margin-top:2px;font-size:12px}.jl-sapphire .pwa-prompt-close{width:36px;height:36px;color:var(--text-dim);cursor:pointer;border-radius:999px;flex:none;font-size:12px}.jl-sapphire .pwa-prompt-close:hover{background:var(--surface-2);color:var(--text)}.jl-sapphire .mindmap{flex-direction:column;gap:14px;display:flex}.jl-sapphire .mindmap-central{text-align:center;color:#fff;background:linear-gradient(140deg, var(--accent), var(--accent-solid));box-shadow:0 6px 18px -8px var(--accent);border-radius:999px;align-self:center;max-width:100%;padding:12px 20px;font-size:18px;font-weight:800;line-height:1.3}.jl-sapphire .mindmap-branches{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.jl-sapphire .mindmap-branch{border:1px solid var(--border-soft);border-left:3px solid var(--accent);border-radius:var(--r-card);background:var(--surface-2);padding:14px 16px}.jl-sapphire .mindmap-branch-label{color:var(--accent);margin-bottom:8px;font-weight:700;line-height:1.35}.jl-sapphire .mindmap-leaves,.jl-sapphire .mindmap-subleaves{margin:0;padding:0;list-style:none}.jl-sapphire .mindmap-leaves>li{color:var(--text);margin-top:6px;padding-left:16px;line-height:1.55;position:relative}.jl-sapphire .mindmap-leaves>li:before{content:"";background:var(--accent);border-radius:999px;width:6px;height:6px;position:absolute;top:9px;left:2px}.jl-sapphire .mindmap-subleaves>li{color:var(--text-muted);margin-top:4px;padding-left:14px;font-size:14px;line-height:1.5;position:relative}.jl-sapphire .mindmap-subleaves>li:before{content:"-";color:var(--text-dim);position:absolute;left:0}.jl-sapphire .h1,.jl-sapphire .muted,.jl-sapphire .dim,.jl-sapphire .quiz-q-prompt,.jl-sapphire .opt-text,.jl-sapphire .lesson-prose,.jl-sapphire .mindmap-central,.jl-sapphire .mindmap-branch-label,.jl-sapphire .mindmap-leaves,.jl-sapphire .mindmap-subleaves,.jl-sapphire .pwa-step,.jl-sapphire .stat-label{overflow-wrap:anywhere}.jl-sapphire .btn{max-width:100%}.jl-sapphire .btn-block{white-space:normal;width:100%}.jl-sapphire .modal-panel{max-height:calc(100dvh - 32px);overflow-y:auto}.jl-sapphire .tabs-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;margin:-3px;padding:3px;overflow-x:auto}.jl-sapphire .tabs-scroll::-webkit-scrollbar{display:none}.jl-sapphire .tabs-scroll .tab{scroll-snap-align:start}@media (max-width:560px){.jl-sapphire .field-input{font-size:16px}.jl-sapphire .btn-sm{min-height:40px}.jl-sapphire .btn-lg{padding:12px 16px;font-size:14px}}@media (hover:none){.jl-sapphire .opt:hover:not(.is-checked):not(.is-correct):not(.is-wrong){border-color:var(--border)}.jl-sapphire .card--hover:hover{box-shadow:none;transform:none}}
