.ui-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.ui-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:14px;font-weight:500;white-space:nowrap;flex:none}.ui-badge i{width:6px;height:6px;border-radius:50%}.ui-minibar{display:inline-flex;align-items:center;gap:12px;flex:none}.ui-minibar-track{display:flex;width:72px;height:4px;border-radius:2px;background:var(--surface-tertiary);overflow:hidden}.ui-minibar-track span{height:100%}.ui-minibar-n{min-width:40px;text-align:right;font-size:14px;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.ui-minibar-n b{color:var(--text-primary);font-weight:700}.ui-iconbtn{width:40px;height:40px;display:grid;place-items:center;flex:none;padding:0;border-radius:10px;color:var(--text-secondary);text-align:center}.ui-iconbtn:hover{background:var(--interactive-ghost-hover);color:var(--text-primary)}.ui-iconbtn.outline{background:var(--surface-primary);border:1px solid var(--border-primary)}.ui-iconbtn.outline:hover{border-color:var(--border-strong)}.ui-iconbtn[aria-pressed=true]{background:var(--interactive-selected);color:var(--interactive-primary)}.ui-search{display:flex;align-items:center;gap:8px;min-width:0;border:1px solid var(--border-primary);border-radius:10px;background:var(--surface-secondary);color:var(--text-tertiary);cursor:text}.ui-search.md{height:40px;padding:0 8px 0 12px}.ui-search.sm{height:36px;padding:0 8px 0 10px}.ui-search:focus-within{border-color:var(--interactive-primary);background:var(--surface-primary);box-shadow:var(--focus-ring)}.ui-search input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:14px;color:var(--text-primary)}.ui-search input::placeholder{color:var(--text-tertiary)}.ui-search kbd{font:inherit;font-size:12px;border:1px solid var(--border-primary);background:var(--surface-primary);border-radius:6px;padding:0 6px;line-height:18px}.ui-search-clear{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;color:var(--text-secondary);font-size:18px;line-height:1;padding:0;text-align:center}.ui-search-clear:hover{background:var(--border-primary)}.ui-row{display:flex;align-items:center;gap:12px;width:100%;padding:8px;border-radius:8px;text-align:left;color:var(--text-primary)}.ui-row>.ui-dot{align-self:flex-start;margin-top:6px}.ui-row:hover:not(:disabled),.ui-row.active{background:var(--interactive-ghost-hover)}.ui-row.selected{background:var(--interactive-selected)}.ui-row.selected .ui-row-name{color:var(--text-link-hover);font-weight:700}.ui-row:disabled{opacity:.45;cursor:default}.ui-row-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ui-row-code{font-size:12px;line-height:16px;font-weight:500;letter-spacing:.02em;color:var(--text-tertiary)}.ui-row-name{font-size:14px;line-height:20px}.ui-row-meta{font-size:12px;line-height:16px;color:var(--text-tertiary)}.ui-row-end{flex:none;display:flex;align-items:center;color:var(--text-secondary);font-size:14px;font-variant-numeric:tabular-nums}.ui-row-check{flex:none;width:16px;color:var(--text-link-hover);font-weight:700}.ui-list{display:flex;flex-direction:column;gap:2px;margin:0 -8px}.ui-dd{position:absolute;z-index:40;background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:12px;box-shadow:0 16px 40px #0f172a29;padding:8px;display:flex;flex-direction:column;gap:8px;animation:pop .14s ease-out}.ui-dd-head{display:flex;flex-direction:column;gap:2px;padding:4px 8px 8px;border-bottom:1px solid var(--border-primary);font-size:14px;color:var(--text-secondary)}.ui-dd-head b{color:var(--text-primary);font-size:14px;line-height:20px;font-weight:600}.ui-dd-head span{font-size:12px;color:var(--text-tertiary)}.ui-dd-list{max-height:320px;overflow:auto;display:flex;flex-direction:column;gap:2px}.ui-empty{padding:12px 8px;color:var(--text-tertiary);font-size:14px}.ui-dd.inline{position:static;box-shadow:none;margin-top:8px}@keyframes uiRise{0%{opacity:0;transform:translateY(10px) scale(.6)}to{opacity:1;transform:none}}@keyframes uiFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes uiGrowX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes uiWipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes uiFade{0%{opacity:0}to{opacity:1}}.pchart .pcell{transform-box:fill-box;transform-origin:50% 100%;animation:uiRise var(--duration-slow) var(--ease-emphasized) backwards}.pchart .psky{animation:uiWipe .7s var(--ease-standard) backwards}.pchart .plab,.pchart .pband{animation:uiFade var(--duration-slow) var(--ease-emphasized) backwards}.pchart .pname-fo{animation:uiFadeUp var(--duration-slow) var(--ease-emphasized) .35s backwards}.pmap-h{animation:uiFadeUp var(--duration-base) var(--ease-emphasized) backwards}.dlist>.ui-row,.answers>.answer,.mlist>.mitem{animation:uiFadeUp .32s var(--ease-emphasized) backwards}.dlist>.ui-row:nth-child(1),.answers>.answer:nth-child(1){animation-delay:30ms}.dlist>.ui-row:nth-child(2),.answers>.answer:nth-child(2){animation-delay:60ms}.dlist>.ui-row:nth-child(3),.answers>.answer:nth-child(3){animation-delay:90ms}.dlist>.ui-row:nth-child(4),.answers>.answer:nth-child(4){animation-delay:.12s}.dlist>.ui-row:nth-child(5){animation-delay:.15s}.dlist>.ui-row:nth-child(6){animation-delay:.18s}.dlist>.ui-row:nth-child(7){animation-delay:.21s}.dlist>.ui-row:nth-child(8){animation-delay:.24s}.dlist>.ui-row:nth-child(n+9){animation-delay:.27s}.pbar span,.ui-minibar-track span,.strip span{transform-origin:left center;animation:uiGrowX .6s var(--ease-emphasized) .12s backwards}.ui-row,.ui-chip,.ui-iconbtn,.lsw,.ui-search,.stabs button{transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.chev-ic{transition:transform var(--duration-base) var(--ease-emphasized)}.inferred-note,.psum{animation:uiFade var(--duration-slow) var(--ease-emphasized) .15s backwards}@media (prefers-reduced-motion:reduce){.pchart *,.pmap-h,.dlist>*,.answers>*,.mlist>*,.pbar span,.ui-minibar-track span,.strip span,.inferred-note,.psum{animation:none!important}}.ui-row-name{font-weight:500;color:var(--text-primary)}.ui-row-end .ui-minibar{gap:6px}.ui-row-end .ui-minibar-track{height:3px}.ui-row-end .ui-minibar-bd{font-size:14px;color:var(--text-tertiary);gap:8px}.ui-row-end .ui-minibar-bd b{font-weight:400;color:var(--text-secondary)}.ui-row-end .ui-minibar-bd .ui-dot{width:6px;height:6px}.ui-row-end .ui-minibar-bd .zero{opacity:.45}.ui-icon{display:block;flex:none}.ui-row-icon{flex:none;width:24px;height:24px;color:var(--text-secondary);margin-top:0}.ui-row-icon.ok{color:var(--text-success)}.ui-row-icon.no{color:var(--text-danger)}.ui-row.static{cursor:default}.ui-row.static:hover{background:none}.ui-row:has(.ui-row-icon){align-items:flex-start}.msec .ui-minibar{width:100%}.msec .ui-minibar-track{width:100%;height:4px}.msec .dlist{margin-top:8px}.ui-row.inline{align-items:flex-start}.ui-row-num{flex:none;min-width:36px;font-size:14px;line-height:20px;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.ui-row.inline>.ui-dot{margin-top:6px}.ui-row.inline .ui-row-end{min-height:20px}.ui-row.stacked{align-items:center}.ui-row-name{font-size:16px;line-height:24px}.ui-row-code{font-size:14px;line-height:20px;letter-spacing:.01em}.ui-row-meta{font-size:14px;line-height:20px}.ui-row-num{font-size:16px;line-height:24px}.ui-row>.ui-dot,.ui-row.inline>.ui-dot{margin-top:8px}.ui-row.inline .ui-row-end{min-height:24px}.ui-dd-head span{font-size:14px}.ui-row-num{font-variant-numeric:normal}.ui-dd-head{flex-direction:column}.ui-filter{display:flex;flex-wrap:wrap;gap:8px}.ui-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border-primary);background:var(--surface-primary);color:var(--text-secondary);font-size:14px;font-weight:500;white-space:nowrap}.ui-chip em{font-style:normal;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.ui-chip:hover{border-color:var(--border-strong)}.ui-chip.on{background:var(--surface-inverse);border-color:var(--surface-inverse);color:var(--surface-primary)}.ui-chip.on em{color:var(--text-disabled)}.ui-chip .ui-dot{width:8px;height:8px}.ui-filter{flex-wrap:nowrap;gap:6px}.ui-chip{padding:0 10px}.ui-filter{overflow-x:auto;scrollbar-width:none;margin:0 -2px;padding:0 2px}.ui-filter::-webkit-scrollbar{display:none}.ui-chip{padding:0 8px;gap:5px;flex:none}.ui-row-num{min-width:24px}.ui-row.inline{gap:10px}.ui-row-meta .ui-minibar{gap:8px;margin-top:4px}.ui-row-meta .ui-minibar-track{width:96px}.ui-row-meta .ui-minibar-n{min-width:0;text-align:left}.ui-row.inline .ui-row-end{align-self:center}.ui-row-meta .ui-minibar{flex-direction:column;align-items:flex-start;gap:6px}.ui-minibar-bd{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px;line-height:20px;color:var(--text-secondary)}.ui-minibar-bd span{display:inline-flex;align-items:center;gap:4px}.ui-minibar-bd b{color:var(--text-primary);font-weight:700}.ui-row-meta .ui-minibar{flex-direction:row;align-items:center;gap:12px}.ui-minibar-bd{flex-wrap:nowrap;gap:10px}.ui-minibar-bd span{gap:4px}.ui-minibar-bd .zero{opacity:.4}.ui-row-meta .ui-minibar-track{width:72px}.ui-row-end .ui-minibar{gap:10px}.ui-row-end .ui-minibar-track{width:48px}.ui-row-end .ui-minibar-bd{gap:8px}.ui-row.inline .ui-row-end{align-self:flex-start;min-height:24px}.ui-row-end .ui-minibar{flex-direction:column;align-items:stretch;gap:6px;width:auto}.ui-row-end .ui-minibar-track{width:100%}.ui-row-end .ui-minibar-bd{gap:8px;justify-content:flex-end}.ui-row.inline .ui-row-end{padding-top:4px}.ui-row-end .ui-minibar{width:96px}.ui-minibar-track{gap:2px;background:none;overflow:visible}.ui-minibar-track span{border-radius:2px;min-width:3px}.ui-icontile{flex:none;width:48px;height:48px;padding:12px;box-sizing:border-box;display:grid;place-items:center;color:var(--text-brand)}.ui-icontile .ui-icon{width:24px;height:24px}.ui-icontile.ok{color:var(--feedback-success-icon)}.ui-icontile.no{color:var(--feedback-danger-icon)}.ui-row:has(.ui-icontile){align-items:center;gap:12px}.ui-row:has(.ui-icontile){align-items:flex-start;gap:12px;padding:12px 0;border-radius:0}.ui-row:has(.ui-icontile) .ui-row-txt{min-height:48px;justify-content:center;gap:2px}.ui-row:has(.ui-icontile) .ui-row-name{font-size:16px;line-height:24px}.ui-row:has(.ui-icontile) .ui-row-meta{font-size:14px;line-height:20px;color:var(--text-tertiary)}.ui-row:has(.ui-icontile)+.ui-row:has(.ui-icontile){border-top:1px solid var(--border-primary)}.dlist:has(>.ui-row .ui-icontile){margin:0;gap:0}.cat{max-width:880px;margin:0 auto;padding:48px 24px 96px;background:#fff;min-height:100vh}.cat-top{display:flex;flex-direction:column;gap:8px;margin-bottom:32px}.cat-top h1{font-size:32px;line-height:40px}.cat-top p{color:var(--mute);font-size:16px;line-height:24px}.cat-top a{color:#1d4ed8;font-size:14px}.cat-entry{display:grid;grid-template-columns:260px 1fr;gap:32px;padding:24px 0;border-top:1px solid #eef1f5}.cat-entry h2{font-size:18px;line-height:28px}.cat-entry header p{font-size:14px;line-height:20px;color:var(--ink2);margin-top:4px}.cat-where{color:var(--faint)!important;font-size:12px!important;line-height:16px!important}.cat-demo{display:flex;align-items:flex-start}.cat-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.cat-col{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%}.cat-list{gap:2px;max-width:420px}.cat-swatch{display:inline-flex;align-items:center;gap:8px;font-size:14px}.cat-swatch i{width:16px;height:16px;border-radius:4px}.cat-swatch code{color:var(--faint);font-size:12px}.cat .ui-dd{left:0;right:0;top:calc(100% + 8px)}@media (max-width:767px){.cat-entry{grid-template-columns:1fr;gap:12px}}.cat-scroll{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;background:var(--canvas,#f0f6fe)}.cat .lsw-wrap{position:static}:root{--color-stone-50: #faf8f5;--color-stone-100: #f5f3ef;--color-stone-200: #e7e5e4;--color-stone-300: #d6d3d1;--color-stone-400: #a8a29e;--color-stone-500: #78716c;--color-stone-600: #57534e;--color-stone-700: #44403c;--color-stone-800: #292524;--color-stone-900: #1c1917;--color-stone-950: #0c0a09;--color-blue-50: #eff6ff;--color-blue-100: #dbeafe;--color-blue-200: #bfdbfe;--color-blue-300: #93c5fd;--color-blue-400: #60a5fa;--color-blue-500: #3b82f6;--color-blue-600: #2563eb;--color-blue-700: #1d4ed8;--color-blue-800: #1e40af;--color-blue-900: #1e3a8a;--color-blue-950: #172554;--color-green-50: #ecfdf5;--color-green-100: #d1fae5;--color-green-200: #a7f3d0;--color-green-300: #6ee7b7;--color-green-400: #34d399;--color-green-500: #10b981;--color-green-600: #059669;--color-green-700: #047857;--color-green-800: #065f46;--color-green-900: #064e3b;--color-green-950: #022c22;--color-amber-50: #fffbeb;--color-amber-100: #fef3c7;--color-amber-200: #fde68a;--color-amber-300: #fcd34d;--color-amber-400: #fbbf24;--color-amber-500: #f59e0b;--color-amber-600: #d97706;--color-amber-700: #b45309;--color-amber-800: #92400e;--color-amber-900: #78350f;--color-amber-950: #451a03;--color-rose-50: #fff1f2;--color-rose-100: #ffe4e6;--color-rose-200: #fecdd3;--color-rose-300: #fda4af;--color-rose-400: #fb7185;--color-rose-500: #f43f5e;--color-rose-600: #e11d48;--color-rose-700: #be123c;--color-rose-800: #9f1239;--color-rose-900: #881337;--color-rose-950: #4c0519;--color-sky-50: #f0f9ff;--color-sky-100: #e0f2fe;--color-sky-200: #bae6fd;--color-sky-300: #7dd3fc;--color-sky-400: #38bdf8;--color-sky-500: #0ea5e9;--color-sky-600: #0284c7;--color-sky-700: #0369a1;--color-sky-800: #075985;--color-sky-900: #0c4a6e;--color-sky-950: #082f49;--color-coral-50: #fff7f5;--color-coral-100: #fef0ec;--color-coral-200: #fcc6b8;--color-coral-300: #f9a895;--color-coral-400: #f48a72;--color-coral-500: #ef6c4f;--color-coral-600: #c93f1f;--color-coral-700: #9c3618;--color-coral-800: #7c2812;--color-coral-900: #5c1a0a;--color-coral-950: #3a0f05;--color-indigo-50: #f5f6fe;--color-indigo-100: #eef0fd;--color-indigo-200: #c7d2fe;--color-indigo-300: #a5b4fc;--color-indigo-400: #818cf8;--color-indigo-500: #4f46e5;--color-indigo-600: #4338ca;--color-indigo-700: #3730a3;--color-indigo-800: #312e81;--color-indigo-900: #1e1b4b;--color-indigo-950: #110f2e;--color-teal-50: #f0fdfa;--color-teal-100: #e6f6f4;--color-teal-200: #99f6e4;--color-teal-300: #5eead4;--color-teal-400: #2dd4bf;--color-teal-500: #14b8a6;--color-teal-600: #0d9488;--color-teal-700: #0f6e64;--color-teal-800: #0a4540;--color-teal-900: #042f2c;--color-teal-950: #021a18;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-32: 128px;--radius-none: 0px;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--text-xs: .75rem;--text-xs--line-height: 1rem;--text-sm: .875rem;--text-sm--line-height: 1.25rem;--text-base: 1rem;--text-base--line-height: 1.5rem;--text-lg: 1.125rem;--text-lg--line-height: 1.75rem;--text-xl: 1.25rem;--text-xl--line-height: 1.75rem;--text-2xl: 1.5rem;--text-2xl--line-height: 2rem;--text-3xl: 2rem;--text-3xl--line-height: 2.5rem;--text-4xl: 2.5rem;--text-4xl--line-height: 3rem;--text-5xl: 3.5rem;--text-5xl--line-height: 4rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--font-weight-black: 900;--duration-instant: 0ms;--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s;--duration-slower: .48s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-emphasized: cubic-bezier(.16, 1, .3, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-raised: 10;--z-sticky: 20;--z-header: 30;--z-dropdown: 40;--z-overlay: 50;--z-modal: 60;--z-toast: 70;--z-tooltip: 80;--surface-primary: #ffffff;--surface-secondary: #faf8f5;--surface-tertiary: #f5f3ef;--surface-elevated: #ffffff;--surface-sunken: #f5f3ef;--surface-overlay: rgba(28, 25, 23, .4);--surface-inverse: #1c1917;--surface-brand-subtle: #eff6ff;--text-primary: #1c1917;--text-secondary: #57534e;--text-tertiary: #78716c;--text-disabled: #a8a29e;--text-inverse: #faf8f5;--text-on-brand: #ffffff;--text-brand: #2563eb;--text-link: #2563eb;--text-link-hover: #1d4ed8;--text-success: #047857;--text-warning: #b45309;--text-danger: #be123c;--border-secondary: rgba(28, 25, 23, .06);--border-primary: rgba(28, 25, 23, .08);--border-strong: rgba(28, 25, 23, .2);--border-control: #78716c;--border-control-hover: #57534e;--border-brand: #2563eb;--border-focus: #2563eb;--border-danger: #e11d48;--border-success: #059669;--interactive-primary: #2563eb;--interactive-primary-hover: #1d4ed8;--interactive-primary-active: #1e40af;--interactive-secondary: #f5f3ef;--interactive-secondary-hover: #e7e5e4;--interactive-ghost-hover: rgba(28, 25, 23, .06);--interactive-ghost-active: rgba(28, 25, 23, .12);--interactive-danger: #e11d48;--interactive-danger-hover: #be123c;--interactive-success: #047857;--interactive-success-hover: #065f46;--interactive-disabled: #e7e5e4;--interactive-disabled-fg: #a8a29e;--interactive-selected: #eff6ff;--feedback-info-bg: #eff6ff;--feedback-info-border: #bfdbfe;--feedback-info-text: #1d4ed8;--feedback-info-icon: #2563eb;--feedback-success-bg: #ecfdf5;--feedback-success-border: #a7f3d0;--feedback-success-text: #047857;--feedback-success-icon: #059669;--feedback-warning-bg: #fffbeb;--feedback-warning-border: #fde68a;--feedback-warning-text: #92400e;--feedback-warning-icon: #d97706;--feedback-danger-bg: #fff1f2;--feedback-danger-border: #fecdd3;--feedback-danger-text: #be123c;--feedback-danger-icon: #e11d48;--persona-student: #ef6c4f;--persona-student-bold: #c93f1f;--persona-student-subtle: #fef0ec;--persona-student-text: #9c3618;--persona-instructor: #4f46e5;--persona-instructor-bold: #3730a3;--persona-instructor-subtle: #eef0fd;--persona-instructor-text: #4338ca;--persona-parent: #0d9488;--persona-parent-bold: #0f6e64;--persona-parent-subtle: #e6f6f4;--persona-parent-text: #0f6e64;--mastery-not-started: #d6d3d1;--mastery-in-progress: #93c5fd;--mastery-mastered: #1d4ed8;--score-1: #e11d48;--score-2: #d97706;--score-3: #fbbf24;--score-4: #10b981;--score-5: #047857;--viz-1: #2563eb;--viz-2: #059669;--viz-3: #f59e0b;--viz-4: #0284c7;--viz-5: #78716c;--elevation-xs: 0 1px 2px rgba(28, 25, 23, .04);--elevation-sm: 0 0 0 1px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .04);--elevation-md: 0 0 0 1px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .04), 0 8px 16px -8px rgba(28, 25, 23, .08);--elevation-lg: 0 0 0 1px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .04), 0 8px 16px -8px rgba(28, 25, 23, .08), 0 16px 32px -16px rgba(28, 25, 23, .12);--elevation-xl: 0 0 0 1px rgba(28, 25, 23, .08), 0 4px 8px rgba(28, 25, 23, .04), 0 12px 24px rgba(28, 25, 23, .06), 0 24px 48px rgba(28, 25, 23, .08), 0 48px 96px rgba(28, 25, 23, .12);--elevation-brand: 0 1px 2px rgba(37, 99, 235, .2), 0 0 0 1px rgba(37, 99, 235, .1);--button-radius: 9999px;--button-height-sm: 32px;--button-height-md: 40px;--button-height-lg: 48px;--button-padding-x-sm: 16px;--button-padding-x-md: 16px;--button-padding-x-lg: 24px;--button-gap: 8px;--button-font-size: .875rem;--button-font-weight: 700;--button-primary-bg: var(--interactive-primary);--button-primary-bg-hover: var(--interactive-primary-hover);--button-primary-bg-active: var(--interactive-primary-active);--button-primary-fg: var(--text-on-brand);--button-secondary-bg: var(--interactive-secondary);--button-secondary-bg-hover: var(--interactive-secondary-hover);--button-secondary-fg: var(--text-primary);--button-outline-border: var(--border-brand);--button-outline-fg: var(--text-brand);--button-ghost-bg-hover: var(--interactive-ghost-hover);--button-ghost-fg: var(--text-secondary);--button-danger-bg: var(--interactive-danger);--button-danger-bg-hover: var(--interactive-danger-hover);--button-success-bg: var(--interactive-success);--button-success-bg-hover: var(--interactive-success-hover);--button-disabled-bg: var(--interactive-disabled);--button-disabled-fg: var(--interactive-disabled-fg);--input-height: 40px;--input-padding-x: 16px;--input-radius: 12px;--input-bg: var(--surface-primary);--input-border: var(--border-control);--input-border-hover: var(--border-control-hover);--input-border-focus: var(--border-focus);--input-border-invalid: var(--border-danger);--input-fg: var(--text-primary);--input-placeholder: var(--text-tertiary);--input-label-fg: var(--text-secondary);--input-help-fg: var(--text-tertiary);--input-error-fg: var(--text-danger);--card-radius: 16px;--card-padding: 24px;--card-bg: var(--surface-primary);--card-border: var(--border-secondary);--card-shadow: var(--elevation-md);--card-shadow-hover: var(--elevation-lg);--badge-radius: 9999px;--badge-padding-x: 8px;--badge-height: 24px;--badge-neutral-bg: var(--surface-tertiary);--badge-neutral-text: var(--text-secondary);--dialog-radius: 24px;--dialog-padding: 24px;--dialog-bg: var(--surface-elevated);--dialog-shadow: var(--elevation-xl);--dialog-scrim: var(--surface-overlay);--menu-radius: 12px;--menu-item-radius: 8px;--menu-item-height: 40px;--menu-bg: var(--surface-elevated);--menu-shadow: var(--elevation-lg);--menu-item-hover: var(--interactive-ghost-hover);--tooltip-radius: 8px;--tooltip-bg: var(--surface-inverse);--tooltip-fg: var(--text-inverse);--toast-radius: 12px;--toast-bg: var(--surface-elevated);--toast-fg: var(--text-primary);--toast-shadow: var(--elevation-lg);--table-header-bg: var(--surface-tertiary);--table-row-hover: var(--interactive-ghost-hover);--table-stripe: var(--surface-secondary);--table-row-height: 48px;--table-border: var(--border-primary);--sidebar-width: 280px;--sidebar-bg: var(--surface-primary);--sidebar-border: var(--border-secondary);--sidebar-item-active-bg: var(--interactive-selected);--sidebar-item-active-fg: var(--text-brand);--header-bg: color-mix(in srgb, var(--surface-primary) 85%, transparent);--header-border: var(--border-primary);--focus-ring: 0 0 0 2px var(--surface-primary), 0 0 0 4px var(--border-focus)}[data-theme=dark]{color-scheme:dark;--surface-primary: #1c1917;--surface-secondary: #0c0a09;--surface-tertiary: #292524;--surface-elevated: #292524;--surface-sunken: #0c0a09;--surface-overlay: rgba(12, 10, 9, .7);--surface-inverse: #faf8f5;--surface-brand-subtle: rgba(59, 130, 246, .12);--text-primary: #faf8f5;--text-secondary: #d6d3d1;--text-tertiary: #a8a29e;--text-disabled: #57534e;--text-inverse: #1c1917;--text-on-brand: #ffffff;--text-brand: #60a5fa;--text-link: #60a5fa;--text-link-hover: #93c5fd;--text-success: #34d399;--text-warning: #fbbf24;--text-danger: #fb7185;--border-secondary: rgba(255, 255, 255, .06);--border-primary: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--border-control: #78716c;--border-control-hover: #a8a29e;--border-brand: #60a5fa;--border-focus: #60a5fa;--border-danger: #fb7185;--border-success: #34d399;--interactive-primary: #2563eb;--interactive-primary-hover: #1d4ed8;--interactive-primary-active: #1e40af;--interactive-secondary: #292524;--interactive-secondary-hover: #44403c;--interactive-ghost-hover: rgba(255, 255, 255, .08);--interactive-ghost-active: rgba(255, 255, 255, .12);--interactive-danger: #e11d48;--interactive-danger-hover: #be123c;--interactive-success: #047857;--interactive-success-hover: #065f46;--interactive-disabled: #292524;--interactive-disabled-fg: #57534e;--interactive-selected: rgba(59, 130, 246, .16);--feedback-info-bg: rgba(59, 130, 246, .12);--feedback-info-border: rgba(59, 130, 246, .24);--feedback-info-text: #93c5fd;--feedback-info-icon: #60a5fa;--feedback-success-bg: rgba(16, 185, 129, .12);--feedback-success-border: rgba(16, 185, 129, .24);--feedback-success-text: #6ee7b7;--feedback-success-icon: #34d399;--feedback-warning-bg: rgba(245, 158, 11, .12);--feedback-warning-border: rgba(245, 158, 11, .24);--feedback-warning-text: #fcd34d;--feedback-warning-icon: #fbbf24;--feedback-danger-bg: rgba(244, 63, 94, .12);--feedback-danger-border: rgba(244, 63, 94, .24);--feedback-danger-text: #fda4af;--feedback-danger-icon: #fb7185;--persona-student: #f48a72;--persona-student-bold: #ef6c4f;--persona-student-subtle: rgba(239, 108, 79, .12);--persona-student-text: #f9a895;--persona-instructor: #818cf8;--persona-instructor-bold: #4f46e5;--persona-instructor-subtle: rgba(79, 70, 229, .16);--persona-instructor-text: #a5b4fc;--persona-parent: #2dd4bf;--persona-parent-bold: #14b8a6;--persona-parent-subtle: rgba(13, 148, 136, .16);--persona-parent-text: #5eead4;--mastery-not-started: #44403c;--mastery-in-progress: #1e40af;--mastery-mastered: #60a5fa;--score-1: #fb7185;--score-2: #fbbf24;--score-3: #fcd34d;--score-4: #34d399;--score-5: #6ee7b7;--viz-1: #60a5fa;--viz-2: #34d399;--viz-3: #fbbf24;--viz-4: #38bdf8;--viz-5: #a8a29e;--elevation-xs: 0 1px 2px rgba(0, 0, 0, .4);--elevation-sm: 0 0 0 1px rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .4);--elevation-md: 0 0 0 1px rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .4), 0 8px 16px -8px rgba(0, 0, 0, .5);--elevation-lg: 0 0 0 1px rgba(255, 255, 255, .08), 0 1px 2px rgba(0, 0, 0, .4), 0 8px 16px -8px rgba(0, 0, 0, .5), 0 16px 32px -16px rgba(0, 0, 0, .6);--elevation-xl: 0 0 0 1px rgba(255, 255, 255, .08), 0 4px 8px rgba(0, 0, 0, .3), 0 12px 24px rgba(0, 0, 0, .4), 0 24px 48px rgba(0, 0, 0, .5), 0 48px 96px rgba(0, 0, 0, .6);--elevation-brand: 0 1px 2px rgba(0, 0, 0, .4), 0 0 0 1px rgba(96, 165, 250, .24)}:root{--ink:#0f172a;--ink2:#334155;--mute:#64748b;--faint:#94a3b8;--line:#eceff5;--soft:#f6f7fb;--accent:#4f46e5;--bg:#f6f7fb}*{box-sizing:border-box;margin:0}body{font-family:Satoshi,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:left}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:10px}.app{display:grid;grid-template-columns:272px 1fr 420px;height:100vh;min-height:720px}.muted{color:var(--mute)}.small{font-size:14px}.h14{font-weight:700;font-size:14px}.h16{font-weight:700;font-size:16px}.h18{font-size:18px;font-weight:700}.h22{font-size:24px;font-weight:700}.h26{font-size:24px;font-weight:700;line-height:1.2;margin-top:4px}.body{color:var(--ink2);line-height:1.5;margin-top:6px}.classes{background:#fff;border-right:1px solid var(--line);padding:24px 16px 16px;display:flex;flex-direction:column;gap:18px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;padding:0 8px}.logo{background:#1e3a8a;color:#fff;border-radius:10px;padding:7px 8px;font-size:14px}.class-card{background:#f5f7ff;border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:2px}.class-head{display:flex;gap:10px;align-items:center;margin-bottom:8px}.class-head small,.me small{color:var(--mute);font-size:14px}.avatar{background:var(--accent);color:#fff;font-weight:700;border-radius:10px;padding:8px}.avatar.sm{background:#dbe4ff;color:var(--accent);border-radius:18px;padding:7px 11px}.nav{padding:8px 10px;border-radius:10px;color:var(--ink2);font-weight:500}.nav.on{background:#fff;font-weight:700;color:var(--ink);box-shadow:0 1px 3px #0f172a0f}.me{margin-top:auto;display:flex;gap:10px;align-items:center;padding:8px}.centre{padding:24px;min-width:0}.chart-card{background:#fff;border-radius:24px;padding:24px 28px;height:100%;display:flex;flex-direction:column;gap:16px}.chart{width:100%;flex:1;min-height:0}.col{cursor:pointer}.band{fill:transparent}.band.on{fill:#eef2ff}.col:hover .band:not(.on){fill:#f6f7fb}.lab{fill:var(--faint);font-size:14px;font-weight:500}.lab.on{fill:var(--accent);font-weight:700}.skyline{filter:drop-shadow(0 0 4px rgba(34,197,94,.45));pointer-events:none}.side{background:#fff;border-left:1px solid var(--line);padding:28px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.parents{background:var(--soft);border-radius:16px;overflow:hidden}.prow-wrap{border-bottom:1px solid var(--line)}.prow-wrap:last-child{border-bottom:0}.prow-wrap.fade{opacity:.35}.prow{display:flex;align-items:center;gap:4px;padding-right:8px}.prow.open{background:#eef2ff}.prow-main{flex:1;display:flex;align-items:center;gap:10px;padding:11px 0;min-width:0}.prow-main:hover .pname{color:var(--accent)}.prow-text{display:flex;flex-direction:column;min-width:0;flex:1}.lvl{color:var(--faint)}.pname{font-weight:500;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnt{color:var(--mute);font-weight:500;white-space:nowrap}.chev{color:var(--faint);padding:6px;border-radius:8px}.chev:hover{background:#e7ebf3;color:var(--ink2)}.switcher{padding:8px 10px 12px 26px;background:#f3f5fb;display:flex;flex-direction:column;gap:6px}.search{font:inherit;border:1px solid #e2e6ef;border-radius:10px;padding:8px 10px;background:#fff}.switch-list{max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:2px}.switch-item{display:flex;gap:10px;align-items:center;padding:7px 10px;border-radius:10px}.switch-item:hover{background:#fff}.switch-item.on{background:#e0e7ff;color:#3730a3;font-weight:700}.switch-item .num{color:var(--faint);width:28px;text-align:right}.switch-item .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.level{display:flex;flex-direction:column;gap:18px;transition:opacity .2s;animation:in .25s ease-out}.level.faded{opacity:.35}@keyframes in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ring-label{font-size:14px;font-weight:700;fill:var(--ink)}.summary{display:flex;gap:16px;align-items:center}.summary .grow{flex:1}.card-soft{background:#f8f9fc;border-radius:20px;padding:18px}.legend{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;margin-top:8px;color:var(--mute)}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.legend b{color:var(--ink)}.group{color:var(--mute);font-weight:700;margin-top:4px}.group em{font-style:normal;color:var(--faint);font-weight:500;margin-left:6px}.group.dark{color:var(--ink);font-size:16px}.group.row{display:flex;justify-content:space-between;align-items:center}.drow{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:14px;margin:-10px -12px}.drow:hover{background:var(--soft)}.drow-top{display:flex;gap:10px;align-items:center;color:var(--faint)}.drow-top .nm{flex:1;color:var(--ink);font-size:16px;font-weight:500}.bar{display:flex;height:5px;border-radius:3px;background:#eef1f6;overflow:hidden}.mastered{display:flex;gap:12px;align-items:center;background:#f2fbf5;border-radius:16px;padding:14px 16px;color:#14532d}.mastered small{color:#3f7a52;font-size:14px}.mastered span:nth-child(2){flex:1}.tick{background:#22c55e;color:#fff;border-radius:12px;width:24px;height:24px;display:grid;place-items:center;font-size:12px}.trow{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:18px;background:#f8f9fc;color:var(--faint)}.trow:hover{background:#eef2ff}.trow.disabled{opacity:.6;cursor:default}.trow.disabled:hover{background:#f8f9fc}.tnum{width:36px;color:var(--faint);font-weight:500}.tmain{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.tmain .nm{color:var(--ink);font-weight:700;font-size:16px}.placeholder{background:#f8f9fc;border-radius:16px;padding:16px;color:var(--mute);line-height:1.5}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:18px;background:#f8f9fc;border:1.5px solid transparent}.tile:hover{border-color:#c7d2fe;background:#fff}.tile-top{display:flex;justify-content:space-between;align-items:center}.tile-top i{width:12px;height:12px;border-radius:3px}.tile-st{color:var(--ink2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:12px;font-weight:500;width:fit-content}.pill i{width:7px;height:7px;border-radius:50%}.code-row{display:flex;gap:8px;align-items:center}.seg{display:flex;gap:4px;background:#f3f5f9;border-radius:12px;padding:4px}.seg button{flex:1;text-align:center;padding:8px;border-radius:9px;color:var(--mute);font-weight:500}.seg button.on{background:#fff;color:var(--ink);font-weight:700;box-shadow:0 1px 3px #0f172a14}.strip{display:flex;gap:4px;margin-top:8px}.strip span{flex:1;height:7px;border-radius:3px}.link{color:var(--accent);font-weight:700}.answers{display:flex;flex-direction:column;gap:8px}.answer{display:flex;gap:12px;align-items:flex-start;background:#f8f9fc;border-radius:16px;padding:12px 14px}.res{width:24px;height:24px;border-radius:12px;display:grid;place-items:center;font-size:12px;flex:none}.res.ok{background:#dcfce7;color:#16a34a}.res.no{background:#fee2e2;color:#dc2626}.amain{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.amain .nm{font-weight:500}b.ok{color:#15803d}b.no{color:#b91c1c}.resources{border:1px solid #e6e9f2;border-radius:16px;padding:12px 16px}.resources summary{font-weight:700;cursor:pointer}.resources em{font-style:normal;color:var(--mute);font-weight:400;margin-left:6px}.res-row{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid #f1f3f7;margin-top:8px}.explainer{border-radius:16px;padding:16px}.empty{border:1px dashed #d8dde8;border-radius:16px;padding:28px 16px;text-align:center;display:flex;flex-direction:column;gap:6px}.meta{display:flex;flex-direction:column;gap:4px}:root{--ink:#1f2937;--ink2:#374151;--mute:#6b7280;--faint:#9ca3af;--line:#eef0f3;--bg:#f7f8fa}body{font-size:16px;line-height:1.5}.chart-card{border:1px solid var(--line);box-shadow:none}.band.on{fill:#f3f5fb}.lab.on{fill:#3651d4}.skyline{filter:none}.side{gap:24px;padding:32px 28px}.parents{background:none;border:1px solid var(--line);border-radius:14px}.prow.open{background:#f7f8fb}.prow-main{padding:12px 0}.pname{font-weight:500;color:var(--ink)}.lvl{font-size:14px;letter-spacing:.01em}.switcher{background:#fafbfc}.switch-item.on{background:#eef1fd;color:#2c3fae}.card-soft{background:none;padding:0}.h26{font-size:24px;line-height:1.25}.group{font-weight:700}.group.dark{font-size:16px}.drow{margin:0;padding:12px 0;border-radius:0;border-bottom:1px solid var(--line)}.drow:hover{background:none}.drow-top .nm{font-size:16px}.bar{height:4px;background:#f1f3f6}.mastered{background:none;border:1px solid var(--line);padding:14px 16px;color:var(--ink)}.mastered small{color:var(--mute)}.tick{background:#e8f6ef;color:#2f8a5f}.trow{background:none;border-radius:0;border-bottom:1px solid var(--line);padding:14px 0}.trow:hover{background:none}.trow:hover .nm{color:#3651d4}.tmain .nm{font-weight:700;font-size:16px}.tile{background:#fff;border:1px solid var(--line);border-radius:14px}.tile:hover{border-color:#cdd5f3;background:#fff}.answers{gap:0}.answer{background:none;border-radius:0;border-bottom:1px solid var(--line);padding:14px 0}.res{width:22px;height:22px}.res.ok{background:#e8f6ef;color:#2f8a5f}.res.no{background:#fdeeee;color:#c24141}b.ok{color:#2f8a5f;font-weight:700}b.no{color:#c24141;font-weight:700}.strip span{height:5px}.seg{background:#f4f5f8}.resources{border-color:var(--line)}.explainer{border-radius:14px}.empty{border-color:#e3e6ec}.pill{padding:2px 10px;font-size:14px}.mastered small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:270px}.drow{border-bottom:0;padding:10px 0}.dlist{display:flex;flex-direction:column;margin-top:-12px}.dlist .drow{padding:7px 0;gap:5px}.dlist .drow{padding:5px 0;gap:4px}.side{padding-top:26px;gap:20px}.stag{display:inline-flex;align-items:center;gap:6px;padding:1px 9px;border-radius:10px;font-size:14px;font-weight:500;white-space:nowrap}.stag i{width:6px;height:6px;border-radius:50%}.drow-top .cnt{min-width:44px;text-align:right}.drow-top .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.tmain .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tmain .nm{white-space:normal}.tmeta{display:flex;gap:10px;align-items:center;margin-top:4px}.trow{align-items:flex-start}.trow .tnum{padding-top:1px}.sdot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;background:transparent}.drow{flex-direction:row;align-items:center;gap:12px;padding:9px 0;border-bottom:0}.drow .nm{flex:1;font-size:16px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dlist .drow{padding:8px 4px;gap:12px}.dlist{margin-top:-8px}.drow .cnt{color:var(--faint);font-weight:500;font-variant-numeric:tabular-nums}.drow:hover .nm{color:#3651d4}.dhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.dlegend{display:flex;gap:12px;color:var(--mute);font-size:14px}.dlegend span{display:flex;align-items:center;gap:5px}.trow{align-items:center;gap:12px;padding:12px 4px}.trow .tnum{width:auto;min-width:30px}.tmain .nm{font-weight:500}.stats{display:flex;gap:22px;margin-top:10px}.stats span{display:flex;flex-direction:column;gap:2px}.stats b{font-size:20px;font-weight:700;line-height:1.1}.stats small{display:flex;align-items:center;gap:6px;color:var(--mute);font-size:14px}.thead{display:flex;align-items:center;gap:12px;padding:0 4px 10px 24px;border-bottom:1px solid var(--line);margin-top:8px}.thead .tl{flex:1;font-weight:700;font-size:16px;color:var(--ink)}.counts{display:flex;flex:none}.counts .c{width:44px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink2);font-weight:500}.counts .c.zero{color:#cfd3da}.counts.head .c{display:flex;justify-content:flex-end;align-items:center;padding-right:2px}.dlist{margin-top:0}.dlist .drow{padding:10px 4px;gap:12px;border-bottom:1px solid #f4f5f7}.drow .tnum{color:var(--faint);min-width:30px}.drow.disabled{opacity:.55;cursor:default}.side{gap:22px}.stats{margin-top:0}.thead{margin-top:2px}.drow.wrap .nm{white-space:normal;line-height:1.35}.drow.wrap{align-items:flex-start}.drow.wrap .sdot{margin-top:7px}.pblock{display:flex;flex-direction:column;gap:14px}.pbar{display:flex;gap:3px;height:10px}.pbar span{border-radius:4px;min-width:6px}.plegend{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.plegend>div{display:flex;flex-direction:column;gap:4px}.pl-label{display:flex;align-items:center;gap:7px;color:var(--mute);font-size:14px}.pl-val{display:flex;align-items:baseline;gap:8px}.pl-val b{font-size:24px;font-weight:700;color:var(--ink);line-height:1.1}.pl-val em{font-style:normal;color:var(--faint);font-size:14px}.lhead{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.lhead .tl{font-weight:700;font-size:16px}.toggle{display:flex;background:#f3f4f7;border-radius:9px;padding:3px}.toggle button{padding:4px 10px;border-radius:7px;color:var(--mute);font-size:14px;font-weight:500}.toggle button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px #0f172a14}.lhead+.thead{margin-top:-10px}.brow{display:flex;align-items:center;gap:14px;padding:10px 4px;border-bottom:1px solid #f4f5f7}.brow .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;color:var(--ink)}.brow:hover .nm{color:#3651d4}.brow.disabled{opacity:.55;cursor:default}.mbar{display:flex;width:96px;height:6px;border-radius:3px;background:#f1f3f6;overflow:hidden;flex:none;gap:2px}.mbar span{height:100%;border-radius:3px}.mcount{width:48px;text-align:right;color:var(--faint);font-variant-numeric:tabular-nums;flex:none}.mcount b{color:var(--ink2);font-weight:700}.brow .tnum{color:var(--faint);min-width:30px}.brow{padding:8px 4px}.brow .nm,.drow .nm,.pname,.amain .nm,.switch-item .nm,.tmain .nm{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}.brow,.drow{align-items:flex-start}.brow .mbar{margin-top:7px}.brow .mcount,.brow .tnum,.drow .cnt{padding-top:0}.drow .sdot{margin-top:7px}.sec-count{font-style:normal;color:var(--faint);font-weight:500;margin-left:6px}.res.doc{background:#f1f3f8;color:#5b6472}.side{padding-bottom:40px}.side>*{flex-shrink:0}.level>*{flex-shrink:0}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;color:var(--mute);font-size:14px;line-height:1.5}.crumb{display:inline-flex;align-items:center;gap:4px}.crumb .sep{color:#c7ccd4}.crumb button{color:var(--mute);padding:2px 4px;border-radius:6px}.crumb button:hover{color:#3651d4;background:#f3f5fb}.pline{display:flex;flex-wrap:wrap;gap:16px;color:var(--mute);font-size:14px}.pline span{display:flex;align-items:center;gap:6px}.pline b{color:var(--ink);font-weight:700}.pblock{gap:12px}.pbar{height:8px}.mbar{height:4px;width:80px;opacity:.9}.lhead{margin-top:4px}.utabs{display:flex;gap:22px;border-bottom:1px solid var(--line)}.utabs button{padding:0 0 10px;color:var(--mute);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}.utabs button.on{color:var(--ink);font-weight:700;border-color:#3651d4}.score p{color:var(--mute)}.score b{color:var(--ink)}.meta-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.link{align-self:flex-start}.empty{border:0;background:#fafbfc;text-align:left;padding:18px}.crumbs{gap:6px}.crumb{position:relative}.chip{display:inline-flex;align-items:center;background:#f3f5f9;border:1px solid #e7eaf0;border-radius:10px;overflow:hidden}.chip.cur{background:#e8eefc;border-color:#c9d6fa}.chip.cur .chip-name{color:#1d4ed8;font-weight:700}.chip.open{border-color:#93c5fd}.chip-name{padding:5px 8px 5px 10px;color:var(--ink);font-weight:500;font-size:14px;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-caret{padding:5px 6px;color:var(--mute);border-left:1px solid #e3e7ee}.chip-caret:hover{background:#e9edf4;color:var(--ink)}.crumb button{border-radius:0}.crumb .chip-name:hover{color:#1d4ed8;background:none}.menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:340px;background:#fff;border:1px solid #e7eaf0;border-radius:14px;box-shadow:0 12px 32px #0f172a24;padding:8px}.menu-h{font-size:14px;color:var(--faint);padding:4px 8px 6px;font-weight:700}.menu-list{max-height:360px;overflow:auto;display:flex;flex-direction:column;gap:1px}.menu-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:9px}.menu-item:hover{background:#f5f7fb}.menu-item.on{background:#e8eefc}.menu-item.on .mi-nm{color:#1d4ed8;font-weight:700}.menu-item:disabled{opacity:.45;cursor:default}.mi-num{color:var(--faint);min-width:42px;font-size:14px}.mi-nm{flex:1;color:var(--ink);line-height:1.35}.mi-cnt{color:var(--mute);font-variant-numeric:tabular-nums}.brow .stag{margin-left:auto;flex:none}.crumbs{display:flex;flex-direction:column;gap:6px;align-items:stretch}.crumb{display:flex;align-items:center;gap:10px}.crumb-l{width:84px;flex:none;color:var(--faint);font-size:14px}.chip{flex:1;min-width:0;justify-content:space-between;background:#fff;border-color:#e5e8ee}.chip-name{flex:1;max-width:none;text-align:left}.chip.cur{background:#eef3fe;border-color:#c9d6fa}.menu{left:94px;width:calc(100% - 94px)}.crumbline{display:flex;align-items:flex-start;gap:10px}.crumbs-plain{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;font-size:14px;line-height:1.5}.crumbs-plain .pc{display:inline-flex;align-items:center;gap:4px}.crumbs-plain .sep{color:#c7ccd4}.crumbs-plain button{color:var(--mute);padding:1px 3px;border-radius:6px}.crumbs-plain button:hover{color:#1d4ed8;background:#f1f5fe}.crumbs-plain button.cur{color:var(--ink);font-weight:700}.change{display:inline-flex;align-items:center;gap:6px;flex:none;padding:6px 12px;border:1px solid #dfe5f2;border-radius:10px;color:#1d4ed8;font-weight:700;font-size:14px;background:#fff}.change:hover{background:#f1f5fe}.picker-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a2e;display:flex;justify-content:flex-end;align-items:flex-start;padding:20px 20px 0 0;z-index:50;animation:fade .15s ease-out}@keyframes fade{0%{opacity:0}to{opacity:1}}.picker{width:min(860px,calc(100vw - 300px));background:#fff;border-radius:18px;box-shadow:0 24px 60px #0f172a38;display:flex;flex-direction:column;max-height:calc(100vh - 40px);animation:pop .18s ease-out}@keyframes pop{0%{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}.picker-head{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}.picker-head .search{flex:1}.x{color:var(--mute);padding:6px 8px;border-radius:8px}.x:hover{background:#f3f4f6}.cols{display:grid;grid-template-columns:1.2fr 1fr 1fr;min-height:0;flex:1}.col-list{border-right:1px solid var(--line);padding:10px;overflow:auto;max-height:560px;display:flex;flex-direction:column;gap:2px}.col-list:last-child{border-right:0}.col-h{font-size:14px;font-weight:700;color:var(--faint);padding:4px 8px 8px}.col-empty{color:var(--faint);padding:8px;font-size:14px}.pi{display:flex;align-items:flex-start;gap:9px;padding:8px;border-radius:9px;text-align:left}.pi .sdot{margin-top:6px}.pi.on{background:#e8eefc}.pi.on .pi-nm{color:#1d4ed8;font-weight:700}.pi:disabled{opacity:.45;cursor:default}.pi-n{color:var(--faint);min-width:30px;font-size:14px}.pi-nm{flex:1;line-height:1.35}.pi-c{color:var(--mute);font-variant-numeric:tabular-nums}.picker-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-top:1px solid var(--line)}.btn{background:#1d4ed8;color:#fff;font-weight:700;padding:9px 16px;border-radius:10px}.btn:hover{background:#1a43bd}.crumbs-plain{flex-wrap:nowrap;min-width:0;overflow:hidden}.crumbs-plain .pc{min-width:0}.crumbs-plain button{max-width:104px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crumbs-plain .pc:first-child button,.crumbs-plain button.cur{max-width:none}.change.icon{padding:7px 9px}.crumbline{align-items:center}.crumbs-plain button{max-width:170px}.crumbs-plain .pc{flex-shrink:1}.locbar{display:flex;align-items:center;gap:8px;border:1px solid #e3e7ef;border-radius:12px;padding:5px 5px 5px 10px;background:#fff}.loc-path{flex:1;min-width:0;display:flex;align-items:center;gap:2px;overflow:hidden;white-space:nowrap;font-size:14px}.loc-pc{display:inline-flex;align-items:center;gap:2px;min-width:0}.loc-path .sep{color:#c7ccd4;padding:0 2px}.loc-seg{color:var(--mute);padding:3px 4px;border-radius:6px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-seg:hover{color:#1d4ed8;background:#f1f5fe}.loc-seg.cur{color:var(--ink);font-weight:700}.loc-open{display:inline-flex;align-items:center;gap:6px;flex:none;background:#1d4ed8;color:#fff;border-radius:9px;padding:6px 10px;font-weight:700;font-size:14px}.loc-open:hover{background:#1a43bd}.loc-open kbd{font:inherit;font-size:12px;opacity:.75;background:#ffffff2e;border-radius:5px;padding:0 5px}.sfilter{display:flex;flex-wrap:wrap;gap:6px}.sfilter button{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #e5e8ee;border-radius:999px;font-size:14px;color:var(--ink2);background:#fff}.sfilter button em{font-style:normal;color:var(--faint);font-variant-numeric:tabular-nums}.sfilter button.on{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.sfilter button.on em{color:#fffc}.sfilter button:disabled{opacity:.4;cursor:default}.sfilter .sdot{width:7px;height:7px}.picker-head{gap:10px}.search-box{flex:1;display:flex;align-items:center;gap:10px;border:1px solid #dfe5f2;border-radius:12px;padding:10px 12px;color:var(--faint)}.search-box:focus-within{border-color:#93c5fd;box-shadow:0 0 0 3px #eaf4ff}.search-box input{flex:1;border:0;outline:0;font:inherit;font-size:16px;color:var(--ink)}.x{font-size:14px;border:1px solid #e5e8ee}.picker-filter{padding:12px 18px 4px}.results{padding:8px 10px;overflow:auto;max-height:560px}.rgroup{margin-bottom:8px}.pi{display:flex;align-items:stretch;border-radius:9px;padding:0}.pi:hover{background:#f5f7fb}.pi-main{flex:1;display:flex;align-items:flex-start;gap:9px;padding:8px;text-align:left;min-width:0}.pi-txt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.pi-path{color:var(--faint);font-size:14px}.pi-go{opacity:0;color:#1d4ed8;font-weight:700;font-size:14px;padding:0 10px;white-space:nowrap}.pi:hover .pi-go,.pi.on .pi-go{opacity:1}.pi.dis{opacity:.45}.picker-foot{font-size:14px}.picker-foot kbd{font:inherit;font-size:12px;border:1px solid #e3e7ef;border-bottom-width:2px;border-radius:5px;padding:0 5px;margin:0 2px;background:#fafbfc}.pi{position:relative}.pi-go{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:#fff;border:1px solid #dbe3f5;border-radius:8px;padding:3px 8px;box-shadow:0 2px 6px #0f172a0f}.cols{grid-template-columns:1.35fr 1fr 1fr}.sidebar-tight,.side .sfilter{gap:4px;flex-wrap:nowrap}.side .sfilter button{padding:4px 8px;gap:5px;font-size:14px;white-space:nowrap}.side .sfilter .sdot{display:none}.side .sfilter button{padding:4px 9px}.mtop,.mtabs{display:none}@media (max-width:767px){body{font-size:16px;background:#fff}.app{display:flex;flex-direction:column;height:auto;min-height:100vh;padding-bottom:64px}.classes{display:none}.mtop{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:30}.mtop-t{flex:1;display:flex;flex-direction:column;line-height:1.2}.mtop-t small{color:var(--mute);font-size:14px}.centre{padding:12px 16px 0}.chart-card{padding:14px 12px 8px;border-radius:18px;height:auto;gap:6px}.chart-head .muted{font-size:14px}.chart{height:200px;flex:none}.side{border-left:0;padding:16px 16px 24px;overflow:visible;gap:18px}.locbar{position:sticky;top:61px;z-index:20;box-shadow:0 6px 14px -10px #0f172a40}.loc-open kbd{display:none}.loc-seg{max-width:96px}.h26{font-size:24px}.side .sfilter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}.side .sfilter::-webkit-scrollbar{display:none}.brow,.drow{padding:12px 2px}.mbar{width:64px}.utabs{overflow-x:auto}.mtabs{display:flex;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);z-index:30;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.mtabs a{flex:1;text-align:center;font-size:12px;color:var(--mute);padding:6px 0;border-radius:10px}.mtabs a.on{color:#1d4ed8;font-weight:700;background:#eef3fe}.sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a52;z-index:60;display:flex;align-items:flex-end;animation:fade .15s}.sheet{width:100%;height:88vh;background:#fff;border-radius:20px 20px 0 0;display:flex;flex-direction:column;gap:12px;padding:8px 16px 0;animation:up .22s ease-out}@keyframes up{0%{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}.grab{width:40px;height:5px;border-radius:3px;background:#d9dde5;align-self:center}.sheet-head{display:flex;align-items:center;gap:8px}.sh-back{width:36px;height:36px;border-radius:10px;font-size:24px;line-height:1;color:var(--ink2);display:grid;place-items:center}.sh-back:not(.ghost):active{background:#f3f4f6}.sh-title{flex:1;text-align:center;font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sh-close{color:#1d4ed8;font-weight:700;padding:8px}.sheet .search-box input{font-size:16px}.chips-scroll{overflow-x:auto;margin:0 -16px;padding:0 16px;scrollbar-width:none}.chips-scroll::-webkit-scrollbar{display:none}.chips-scroll .sfilter{flex-wrap:nowrap}.chips-scroll .sfilter button{white-space:nowrap;padding:7px 12px}.sh-openlevel{align-self:flex-start;color:#1d4ed8;font-weight:700;font-size:14px;padding:2px 0}.sheet-list{flex:1;overflow:auto;margin:0 -16px;padding:0 8px 24px}.srow{width:100%;display:flex;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid #f2f3f6;text-align:left;min-height:52px}.srow.on{background:#eef3fe;border-radius:12px}.srow.on .pi-nm{color:#1d4ed8;font-weight:700}.srow.dis{opacity:.45}.srow .pi-nm{font-size:16px}.ty{font-style:normal;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin-right:6px}.chev-r{color:#b6bcc7;font-size:20px;line-height:1}}@media (max-width:767px){.sheet .search-box{flex:none}.chart{height:auto;width:100%}.chart .lab{font-size:12px}}.vbar{display:flex;gap:4px;background:#f3f4f7;border-radius:10px;padding:3px;font-size:12px}.vbar button{flex:1;padding:5px 4px;border-radius:7px;color:var(--mute);text-align:center;white-space:nowrap}.vbar button.on{background:#fff;color:var(--ink);font-weight:700;box-shadow:0 1px 2px #0f172a14}.swA{display:flex;flex-direction:column;border:1px solid #e3e7ef;border-radius:14px;overflow:hidden}.swA-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border-bottom:1px solid #eef0f4;color:var(--faint);min-height:48px}.swA-row:last-of-type{border-bottom:0}.swA-row:active{background:#f5f7fb}.swA-l{width:86px;flex:none;font-size:14px;color:var(--faint)}.swA-v{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.swA-n{color:var(--faint);font-size:14px}.swA-t{color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.swA-clear{align-self:flex-start;color:#1d4ed8;font-size:14px;font-weight:700;padding:8px 12px}.swC .swA-clear{padding:6px 0}.swB{display:flex;flex-direction:column;gap:10px}.swB-all{font-size:14px;color:#1d4ed8;font-weight:700}.swB-all.on{color:var(--ink)}.swB-l{font-size:14px;color:var(--faint);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.swB-l span{color:var(--ink);font-weight:700}.swB-scroll{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px}.swB-scroll::-webkit-scrollbar{display:none}.swB-chip{flex:none;min-width:40px;height:36px;padding:0 10px;border-radius:10px;font-size:14px;font-weight:700;border:1.5px solid transparent;font-variant-numeric:tabular-nums}.swB-chip.lv-mastered{background:#e8eefc;color:#1d4ed8}.swB-chip.lv-progress{background:#eaf4ff;color:#1e5fae;border-color:#93c5fd}.swB-chip.lv-not{background:#f5f5f4;color:#78716c}.swB-chip.on{background:#1d4ed8;color:#fff;border-color:#1d4ed8;box-shadow:0 4px 10px #1d4ed840}.swB-chip:disabled{opacity:.4}.swC{display:flex;flex-direction:column;gap:8px}.swC-row{display:flex;align-items:stretch;border:1px solid #e3e7ef;border-radius:14px;overflow:hidden}.swC-arr{width:44px;flex:none;font-size:24px;color:var(--ink2)}.swC-arr:disabled{color:#d4d7dd}.swC-arr:not(:disabled):active{background:#f3f5f9}.swC-mid{flex:1;min-width:0;padding:8px 6px;text-align:center;border-left:1px solid #eef0f4;border-right:1px solid #eef0f4;display:flex;flex-direction:column;align-items:center;gap:2px}.swC-l{font-size:12px;color:var(--faint)}.swC-t{display:flex;align-items:center;gap:6px;max-width:100%;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tick-s{color:#1d4ed8;font-weight:700}@media (min-width:768px){.sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a33;z-index:60;display:flex;justify-content:flex-end;align-items:flex-start;padding:20px}.sheet.small{width:400px;max-height:80vh;background:#fff;border-radius:16px;box-shadow:0 24px 60px #0f172a33;display:flex;flex-direction:column;gap:10px;padding:12px 14px}.sheet.small .grab{display:none}.sheet.small .sheet-head{display:flex;align-items:center}.sheet.small .sh-title{flex:1;font-weight:700}.sheet.small .sh-close{color:#1d4ed8;font-weight:700}.sheet.small .sheet-list{overflow:auto}.sheet.small .srow{display:flex;align-items:center;gap:10px;padding:10px 8px;width:100%;text-align:left;border-radius:9px}.sheet.small .srow.on{background:#eef3fe}.sheet.small .srow:hover{background:#f5f7fb}.sheet.small .srow.dis{opacity:.45}}@media (max-width:767px){.sheet.small{height:auto;max-height:80vh}.sheet .pi-n{color:var(--faint);min-width:34px}}.pmap{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0}.pmap-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.pmap-crumb{display:flex;align-items:center;gap:8px;font-size:18px}.pmap-crumb b{font-weight:700}.pmap-crumb button{color:#1d4ed8;font-weight:700;font-size:18px}.pmap-crumb span{color:#c7ccd4}.pmap-sub{color:var(--mute);font-size:14px;margin-top:2px}.pmap-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:14px;color:var(--mute);padding-top:4px}.pmap-legend span{display:flex;align-items:center;gap:6px}.pmap-legend i{width:10px;height:10px;border-radius:3px}.pmap-legend i.sky{height:3px;width:14px;border-radius:2px;background:#22c55e}.pmap-plot{position:relative;flex:1;min-height:0;display:flex;align-items:flex-end}.pmap-svg{width:100%;height:100%;max-height:100%;overflow:visible}.gl{stroke:#eef0f4;stroke-width:1}.gt{fill:#b6bcc7;font-size:12px}.base{stroke:#e3e6ec}.pcol{cursor:pointer}.pcol.nodata{cursor:default}.pband{fill:transparent;transition:fill .15s}.pband.hov{fill:#f6f8fc}.pband.on{fill:#eef3fe}.pcell{transition:opacity .15s}.pcell.tap:hover{opacity:.75}.pring{fill:none;stroke:#f59e0b;stroke-width:2.5}.plab{fill:#9ca3af;font-size:14px;font-weight:500}.plab.on{fill:#1d4ed8;font-weight:700}.psky{fill:none;stroke:#22c55e;stroke-width:2.5;stroke-linejoin:round;pointer-events:none}.ptip{position:absolute;top:0;width:220px;background:#fff;border:1px solid #e7eaf0;border-radius:12px;box-shadow:0 10px 28px #0f172a24;padding:10px 12px;pointer-events:none;z-index:5}.ptip-k{font-size:12px;color:var(--faint)}.ptip-t{font-weight:700;color:var(--ink);line-height:1.3;margin:2px 0 6px}.ptip-row{display:flex;flex-direction:column;gap:2px;font-size:14px;color:var(--mute)}.ptip-row span,.ptip-s{display:flex;align-items:center;gap:6px}.ptip-row b{color:var(--ink)}.ptip i{width:8px;height:8px;border-radius:2px;display:inline-block}.ptip-s{font-size:12px;color:#1d4ed8;margin-top:6px}@media (max-width:767px){.pmap{gap:10px}.pmap-crumb,.pmap-crumb button{font-size:16px}.pmap-legend{gap:10px;font-size:12px}.pmap-svg{height:auto}.plab{font-size:12px}.ptip{width:200px}}.pmap-plot{align-items:stretch;overflow:visible}.pmap-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.chart-card{min-height:0}@media (max-width:767px){.pmap-plot{flex:none;height:250px}}.pmap-crumb{flex-wrap:wrap}.pmap-crumb button{white-space:nowrap}.ctx{border:1px solid #e3e7ef;border-radius:16px;background:#fff;overflow:hidden}.ctx-top{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px}.ctx-fw{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border-radius:10px;padding:2px}.ctx-fw:hover b{color:#1d4ed8}.ctx-fw-ic{width:32px;height:32px;border-radius:9px;background:#eef3fe;color:#1d4ed8;display:grid;place-items:center;font-weight:700;flex:none}.ctx-fw-t{display:flex;flex-direction:column;min-width:0;line-height:1.25}.ctx-fw-t b{font-size:14px;font-weight:700;color:var(--ink)}.ctx-fw-t small{font-size:12px;color:var(--faint)}.ctx-path{list-style:none;margin:0;padding:6px 12px 10px 27px;border-top:1px solid #f0f2f5;background:#fafbfc;position:relative}.ctx-path:before{content:"";position:absolute;left:27px;top:16px;bottom:26px;width:2px;background:#dbe3f5;border-radius:1px}.ctx-path li:before{content:"";position:absolute;left:-4px;top:15px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #93c5fd}.ctx-l{font-size:12px;color:var(--faint);font-weight:500}.ctx-n{font-size:14px;color:var(--ink);font-weight:500;line-height:1.35}.stabs{display:flex;gap:4px;background:#f1f3f7;border-radius:12px;padding:4px}.stabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 6px;border-radius:9px;color:var(--mute);font-weight:500;font-size:14px;white-space:nowrap}.stabs button em{font-style:normal;font-size:12px;font-weight:700;background:#e2e6ee;color:var(--mute);border-radius:8px;padding:0 6px;line-height:18px}.stabs button:hover{color:var(--ink)}.stabs button.on{background:#fff;color:#1d4ed8;font-weight:700;box-shadow:0 1px 3px #0f172a1a,0 0 0 1px #e3e9f8}.stabs button.on em{background:#1d4ed8;color:#fff}.meta{display:flex;flex-direction:column;gap:22px}.demo-note{font-size:12px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:6px 10px}.meta section{display:flex;flex-direction:column}.meta-h{font-weight:700;font-size:16px}.meta-h em{font-style:normal;color:var(--faint);font-weight:500;margin-left:6px}.meta-sub{font-size:14px;color:var(--faint);margin:2px 0 6px}.mrow{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.mrow .sdot{margin-top:7px}.mcode{color:var(--faint);font-size:14px;min-width:62px;padding-top:2px}.mtxt{flex:1;line-height:1.4;font-size:14px}.mst{font-size:12px;color:var(--mute);white-space:nowrap;padding-top:2px}.alt{padding:10px 12px;border-radius:10px;background:#fafbfc;border:1px solid var(--line);margin-bottom:8px;display:flex;flex-direction:column;gap:4px;font-size:14px;line-height:1.4}.alt p{display:flex;gap:8px}.alt span{flex:none;font-weight:700}.alt-w{color:#9f2a2a}.alt-w span{color:#dc2626}.alt-r{color:var(--ink2)}.alt-r span{color:#16a34a}@media (max-width:767px){.ctx{position:sticky;top:61px;z-index:20}.locbar{position:static}.stabs button{font-size:14px;gap:4px}}.stabs button{min-width:0;gap:5px;padding:9px 4px;font-size:14px}.stabs button span{overflow:hidden;text-overflow:ellipsis}.ctx-path:before{top:20px;bottom:24px}.ctx-path li:before{top:12px}@media (max-width:767px){.ctx{position:static}}.stabs button svg{display:none}.stabs button{gap:6px;font-size:14px}.ctx{overflow:visible}.ctx-path{padding:6px 10px 10px 27px}.ctx-path li{position:relative}.ctx-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px 7px 18px;border-radius:10px;text-align:left}.ctx-row:hover,.ctx-path li.open>.ctx-row{background:#eef3fe}.ctx-path li.open>.ctx-row .ctx-n{color:#1d4ed8}.ctx-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ctx-sw{display:flex;align-items:center;gap:2px;color:var(--faint);font-size:12px;flex:none;border:1px solid #e3e7ef;background:#fff;border-radius:8px;padding:2px 4px 2px 8px}.ctx-row:hover .ctx-sw{color:#1d4ed8;border-color:#c9d6fa}.ctx-path li:last-child .ctx-n{font-weight:700}.ldd{position:absolute;left:8px;right:-2px;top:calc(100% + 4px);z-index:40;background:#fff;border:1px solid #e3e7ef;border-radius:14px;box-shadow:0 16px 40px #0f172a29;padding:10px;display:flex;flex-direction:column;gap:8px;animation:pop .14s ease-out}.search-box.sm{padding:7px 10px}.search-box.sm input{font-size:14px}.ldd .sfilter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.ldd .sfilter button{padding:3px 8px;font-size:12px;white-space:nowrap}.ldd .sfilter .sdot{display:none}.ldd-list{max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:1px;margin:0 -4px}.ldd-i{display:flex;align-items:flex-start;gap:9px;padding:8px;border-radius:9px;text-align:left}.ldd-i:hover{background:#f5f7fb}.ldd-i.on{background:#eef3fe}.ldd-i.on .ldd-t{color:#1d4ed8;font-weight:700}.ldd-i .sdot{margin-top:6px}.ldd-i:disabled{opacity:.4;cursor:default}.ldd-n{color:var(--faint);font-size:14px;min-width:30px;padding-top:1px}.ldd-t{flex:1;line-height:1.35;font-size:14px}.ldd-c{color:var(--mute);font-size:14px;font-variant-numeric:tabular-nums;padding-top:1px}.ldd-ck{width:14px;color:#1d4ed8;font-weight:700}.ctx-row{flex-direction:row}.ctx-row:hover .ctx-n{color:#1d4ed8}.ldd-i{flex-direction:row;width:100%}.ldd .sfilter{flex-wrap:nowrap}.ldd .sfilter button{flex-direction:row}.ldd-list{gap:0}.ldd-i{border-bottom:1px solid #f3f4f7;border-radius:8px}.ctx-path li:before{top:14px}.chips-scroll{flex:none;padding-bottom:2px}.chips-scroll .sfilter button{flex:none}.h1{display:flex;flex-direction:column;gap:10px;padding:12px;border-top:1px solid #f0f2f5}.h1-f{position:relative;display:flex;flex-direction:column;gap:4px}.h1-l{font-size:12px;font-weight:700;color:var(--faint)}.h1-sel{display:flex;align-items:center;gap:8px;width:100%;border:1px solid #dfe4ec;border-radius:10px;padding:9px 10px;background:#fff;color:var(--faint);text-align:left}.h1-sel:hover{border-color:#b9c8ef}.h1-sel.open{border-color:#93c5fd;box-shadow:0 0 0 3px #eaf4ff}.h1-n{color:var(--faint);font-size:14px;flex:none}.h1-t{flex:1;min-width:0;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.h1-sel.ph .h1-t{color:var(--faint);font-weight:400}.h1 .ldd{left:0;right:0}.h2{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px 12px;border-top:1px solid #f0f2f5}.h2-c{position:relative;display:inline-flex;align-items:center;gap:6px}.h2-sep{color:#c7ccd4}.h2-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 6px 6px 10px;border:1px solid #dfe4ec;border-radius:999px;background:#fff;font-size:14px;font-weight:500;color:var(--ink)}.h2-chip:hover{border-color:#b9c8ef}.h2-chip.open{border-color:#93c5fd;background:#eef3fe;color:#1d4ed8}.h2-chip.last{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.h2-chip.last .sdot{box-shadow:0 0 0 2px #fff}.h2-chip.ph{color:var(--faint);border-style:dashed}.h2 .ldd{left:0;right:auto;width:340px}.h3{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #f0f2f5}.h3-cell{position:relative;border-right:1px solid #f0f2f5}.h3-cell:last-child{border-right:0}.h3-b{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px 12px;text-align:left;min-height:84px}.h3-b:hover:not(:disabled){background:#f6f8fc}.h3-b.open{background:#eef3fe}.h3-b:disabled{cursor:default;opacity:.5}.h3-l{display:flex;align-items:center;gap:2px;font-size:12px;font-weight:700;color:var(--faint)}.h3-v{display:flex;align-items:center;gap:6px;font-weight:700;font-size:16px;color:var(--ink)}.h3-t{font-size:14px;color:var(--mute);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.h3-cell:nth-child(2) .ldd{left:-100%}.h3-cell:nth-child(3) .ldd{left:-200%}.h3 .ldd{right:auto;width:340px}@media (max-width:767px){.h3 .ldd{display:none}}@media (min-width:768px){html,body,#root{height:100%}.app{height:100vh;min-height:0;overflow:hidden}.side{height:100vh;overflow:hidden;display:flex;flex-direction:column}.side>.ctx,.side>.vbar,.side>.swA,.side>.swB,.side>.swC,.side>.locbar{flex:none}.level{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.level>.dlist,.level>.answers,.level>.meta{flex:1 1 auto;min-height:0;overflow:auto;flex-shrink:1;margin-right:-10px;padding-right:10px}.level>.dlist::-webkit-scrollbar,.level>.answers::-webkit-scrollbar,.level>.meta::-webkit-scrollbar{width:6px}.level>.dlist::-webkit-scrollbar-thumb,.level>.answers::-webkit-scrollbar-thumb,.level>.meta::-webkit-scrollbar-thumb{background:#e1e5ec;border-radius:3px}.centre{min-height:0;height:100vh}.chart-card{height:100%}}@media (min-width:768px) and (max-width:1366px){.app{grid-template-columns:232px 1fr 392px}.classes{padding:20px 12px 12px}}@media (min-width:768px) and (max-height:820px){.side{padding:20px 22px 16px;gap:14px}.level{gap:12px}.centre{padding:16px}.chart-card{padding:18px 20px;gap:10px}.h26{font-size:24px;margin-top:2px}.body{margin-top:3px;font-size:14px}.ctx-top{padding:8px 8px 8px 10px}.ctx-fw-ic{width:28px;height:28px}.h3-b{min-height:0;padding:8px 10px 10px}.stabs button{padding:7px 4px}.answer{padding:10px 0}.brow{padding:7px 4px}.pblock{gap:8px}}@media (min-width:768px){.level>.dlist,.level>.answers,.level>.meta{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent);padding-bottom:24px}.side .sfilter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.side .sfilter::-webkit-scrollbar{display:none}.side .sfilter button{flex:none;padding:4px 8px}.ldd .sfilter{gap:4px}}.hbar{display:flex;align-items:center;gap:2px;border:1px solid #e3e7ef;border-radius:12px;padding:4px;background:#fff;flex:none;position:relative}.hb-fw{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;font-weight:700;color:#1d4ed8;font-size:14px}.hb-fw span{color:var(--ink2);font-weight:700}.hb-fw:hover{background:#f1f5fe}.hb-fw.on span{color:#1d4ed8}.hb-c{position:static;display:inline-flex;align-items:center;gap:2px;min-width:0}.hb-sep{color:#c7ccd4;font-size:14px}.hb-b{display:inline-flex;align-items:center;gap:5px;padding:5px 4px 5px 8px;border-radius:8px;font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap}.hb-b:hover{background:#f3f5f9}.hb-b.open{background:#eef3fe;color:#1d4ed8}.hb-b.ph{color:var(--faint);font-weight:500}.hb-c:last-of-type .hb-b:not(.ph){background:#eef3fe;color:#1d4ed8}.hb-search{margin-left:auto;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:#fff;background:#1d4ed8;flex:none}.hb-search:hover{background:#1a43bd}.hbar .ldd{left:-1px;right:-1px;top:calc(100% + 6px)}.lvh{display:flex;flex-direction:column;gap:4px;padding:2px 2px 8px;border-bottom:1px solid #f0f2f5;flex:none}.lvh-steps{display:flex;gap:4px;margin-bottom:4px}.lvh-steps span{flex:1;font-size:12px;font-weight:700;letter-spacing:.02em;color:#b6bcc7;padding-top:6px;border-top:3px solid #eceff4;border-radius:2px}.lvh-steps span.done{color:var(--mute);border-color:#bfd0f7}.lvh-steps span.on{color:#1d4ed8;border-color:#1d4ed8}.lvh-t{font-weight:700;font-size:16px;color:var(--ink)}.lvh-t em{font-style:normal;color:var(--faint);font-weight:500;margin-left:4px}.lvh-p{font-size:14px;color:var(--mute);line-height:1.35}.lvh-p b{color:var(--ink2);font-weight:700}.ldd{max-height:min(520px,calc(100vh - 120px))}.ldd-list{flex:1;min-height:0}.hb-fw,.hb-b{flex-direction:column;align-items:flex-start;gap:0;padding:4px 6px 5px 8px}.hb-eb{font-size:12px;line-height:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9aa2af}.hb-v{display:inline-flex;align-items:center;gap:5px;font-size:14px;line-height:20px;font-weight:700;color:var(--ink)}.hb-fw .hb-v{color:#1d4ed8}.hb-b.open .hb-eb,.hb-c:last-of-type .hb-b:not(.ph) .hb-eb{color:#6b8ff0}.hb-b.open .hb-v,.hb-c:last-of-type .hb-b:not(.ph) .hb-v{color:#1d4ed8}.hb-b.ph .hb-v{color:var(--faint);font-weight:500}.hb-sep{align-self:flex-end;padding-bottom:6px}.hb-search{height:38px;width:38px}.hbar{gap:0;padding:4px 4px 4px 2px}.hb-fw,.hb-b{padding:4px 5px 5px 6px}.hb-eb{letter-spacing:.03em}.hb-sep{font-size:12px;padding:0 1px 6px}.hb-v{gap:4px}.hb-v svg{width:14px;height:14px}.hb-search{width:34px;height:34px}.hb-seg{display:inline-flex;align-items:stretch;border-radius:8px}.hb-go{display:flex;flex-direction:column;align-items:flex-start;padding:4px 2px 5px 6px;border-radius:8px 0 0 8px}.hb-dd{display:grid;place-items:center;padding:0 4px;border-radius:0 8px 8px 0;color:var(--faint)}.hb-seg:hover .hb-go,.hb-seg:hover .hb-dd{background:#f3f5f9}.hb-dd:hover{color:#1d4ed8;background:#e6edfc!important}.hb-seg.cur .hb-go,.hb-seg.cur .hb-dd{background:#eef3fe}.hb-seg.cur .hb-eb{color:#6b8ff0}.hb-seg.cur .hb-v{color:#1d4ed8}.hb-seg.open .hb-dd{background:#dfe8fd;color:#1d4ed8}.hb-seg.ph .hb-v{color:var(--faint);font-weight:500}.hb-dd svg{width:14px;height:14px}.hb-back{width:28px;height:38px;border-radius:8px;font-size:24px;line-height:1;color:var(--ink2);display:grid;place-items:center;flex:none;margin-right:2px}.hb-back:hover{background:#f3f5f9;color:#1d4ed8}.hb-dd{margin-left:2px;width:22px;border:1px solid #e3e7ef;border-radius:7px;background:#fff;align-self:center;height:24px;padding:0}.hb-seg:hover .hb-dd{background:#fff}.hb-seg.cur .hb-dd{background:#fff;border-color:#c9d6fa;color:#1d4ed8}.hb-seg{padding-right:4px}.hb-seg.cur{background:#eef3fe}.hb-seg.cur .hb-go{background:transparent}.hb-go{padding:4px 4px 5px 6px}.hb-back{border:1px solid #e3e7ef;width:30px;height:34px;margin:0 4px 0 2px}.backlink{display:flex;align-items:center;gap:8px;align-self:flex-start;max-width:100%;padding:6px 12px 6px 8px;border-radius:999px;background:#eef3fe;color:#1d4ed8;font-size:14px;flex:none}.backlink:hover{background:#dfe8fd}.bl-ar{width:22px;height:22px;border-radius:50%;background:#1d4ed8;color:#fff;display:grid;place-items:center;font-size:14px;flex:none}.bl-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.bl-t b{font-weight:700}.bl-n{color:#4b6fd1}.hb-back{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.hb-back:hover{background:#1a43bd;color:#fff}.hb-sel{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 8px;border:1px solid #d5dce8;border-radius:10px;background:#fff;box-shadow:0 1px 2px #0f172a0d}.hb-sel:hover{border-color:#93b0f0;background:#f8faff}.hb-sel.cur{border-color:#9db7f5;background:#eef3fe}.hb-sel.cur .hb-eb{color:#6b8ff0}.hb-sel.cur .hb-v{color:#1d4ed8}.hb-sel.open{border-color:#1d4ed8;box-shadow:0 0 0 3px #e3ebfd}.hb-sel.ph{border-style:dashed}.hb-sel.ph .hb-v{color:var(--faint);font-weight:500}.hb-txt{display:flex;flex-direction:column;align-items:flex-start}.hb-car{width:20px;height:20px;border-radius:6px;background:#eef1f6;color:#475569;display:grid;place-items:center}.hb-car svg{width:14px;height:14px}.hb-sel:hover .hb-car,.hb-sel.cur .hb-car{background:#dbe5fb;color:#1d4ed8}.hb-sel.open .hb-car{background:#1d4ed8;color:#fff}.hbar{gap:2px}.hb-sep{padding:0 1px}.ldd-go{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;background:#f1f5fe;border:1px solid #dbe5fb;text-align:left;width:100%;flex:none}.ldd-go:hover{background:#e6edfc}.ldd-go-ic{width:26px;height:26px;border-radius:8px;background:#1d4ed8;color:#fff;display:grid;place-items:center;font-weight:700;flex:none}.ldd-go b{display:block;color:#1d4ed8;font-size:14px}.ldd-go small{display:block;color:var(--mute);font-size:14px;line-height:1.3}.sheet .ldd-go{margin:0}.hb-sel{padding:3px 3px 3px 6px;gap:4px}.hb-sep{display:none}.hbar{gap:4px}.hb-eb{letter-spacing:.02em}.hbar{border:0;padding:0;background:transparent;gap:6px}.hb-sel{border:0;box-shadow:none;background:#f3f5f9;padding:5px 4px 5px 10px;border-radius:10px}.hb-sel:hover{background:#eceff5}.hb-sel.cur{background:#eaf0fd}.hb-sel.open{background:#e3ebfd;box-shadow:none}.hb-sel.ph{border:0;background:#f7f8fa}.hb-car{background:transparent;width:18px}.hb-sel:hover .hb-car,.hb-sel.cur .hb-car{background:transparent}.hb-sel.open .hb-car{background:transparent;color:#1d4ed8}.hb-back{border:0;background:#f3f5f9;color:var(--ink2);height:40px;width:32px;margin:0}.hb-back:hover{background:#e6ebf5;color:#1d4ed8}.hb-search{height:40px;width:40px;background:#f3f5f9;color:var(--ink2)}.hb-search:hover{background:#e6ebf5;color:#1d4ed8}.meta{gap:26px}.msec{display:flex;flex-direction:column;gap:10px}.msec-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.msec-h .meta-sub{margin:2px 0 0}.msec-c{font-size:14px;color:var(--mute);white-space:nowrap;padding-top:2px}.msec-c b{color:var(--ink);font-weight:700}.msec-bar{display:flex;gap:3px}.msec-bar span{flex:1;height:4px;border-radius:2px}.msec-bar .lv-mastered{background:#1d4ed8}.msec-bar .lv-progress{background:#93c5fd}.msec-bar .lv-not{background:#e7e5e4}.mlist{display:flex;flex-direction:column;gap:4px}.mitem{display:flex;align-items:flex-start;gap:12px;padding:10px 10px 10px 8px;border-radius:12px;background:#f8f9fb}.mitem.link{cursor:pointer}.mitem.link:hover{background:#eef3fe}.mitem.link:hover .mname{color:#1d4ed8}.mico{width:16px;height:16px;border-radius:50%;flex:none;margin-top:12px;box-sizing:border-box}.mico.lv-mastered{background:#1d4ed8}.mico.lv-progress{border:2px solid #93c5fd;background:linear-gradient(90deg,#93c5fd 50%,transparent 50%)}.mico.lv-not{border:2px solid #d6d3d1}.mbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.mcode2{font-size:12px;font-weight:700;letter-spacing:.03em;color:#9aa2af}.mname{font-size:14px;line-height:1.4;color:var(--ink)}.mstat{font-size:12px;font-weight:700;white-space:nowrap;margin-top:12px;padding:1px 8px;border-radius:999px}.mstat.lv-mastered{color:#1d4ed8;background:#e8eefc}.mstat.lv-progress{color:#1e5fae;background:#eaf4ff}.mstat.lv-not{color:#78716c;background:#f1f0ef}.mgo{color:#b6bcc7;font-size:18px;margin-top:9px}.alt{background:#f8f9fb;border:0;border-radius:12px;padding:12px}.mname{font-weight:400}.drawer-top{display:none}@media (max-width:767px){.app{height:100dvh;min-height:0;overflow:hidden;padding-bottom:0;display:flex;flex-direction:column}.mtop{position:static;padding:10px 12px;gap:8px;border-bottom:0}.mtop-back{width:32px;height:32px;font-size:24px;line-height:1;color:var(--ink2)}.mtop-t{line-height:1.15}.mtop-t small{font-size:12px;color:var(--mute)}.mtop-t b{font-size:20px}.centre{flex:1;min-height:0;padding:0 0 8px;background:#f4f7fc}.chart-card{height:100%;border-radius:0;background:#f4f7fc;padding:14px 12px 6px;display:flex;flex-direction:column}.pmap{height:100%}.pmap-head{position:relative;padding-right:36px}.pmap-open{position:absolute;right:0;top:4px;width:32px;height:32px;border-radius:10px;background:#fff;color:var(--ink2);font-size:24px;line-height:1;display:grid;place-items:center;box-shadow:0 1px 3px #0f172a14}.pmap-plot{flex:1;height:auto;min-height:0}.pmap-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.mtabs{position:static;display:flex;padding:8px 6px calc(10px + env(safe-area-inset-bottom));border-top:0;border-radius:20px 20px 0 0;box-shadow:0 -4px 16px #0f172a0f}.mtabs a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:12px;background:none!important}.mtabs a.on{color:#1d4ed8}.mtabs a:first-child{border-right:1px solid var(--line)}.side{position:fixed;left:8px;right:8px;bottom:8px;top:56px;z-index:50;background:#fff;border-radius:24px;box-shadow:0 20px 60px #0f172a47;padding:0 16px 20px;overflow-y:auto;overflow-x:hidden;transform:translateY(calc(100% + 20px));transition:transform .28s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;gap:14px;border:0}.side.drawer-open{transform:none}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a47;z-index:45;animation:fade .2s}.drawer-top{display:flex;justify-content:center;position:sticky;top:0;z-index:5;background:#fff;padding:8px 0 4px;margin:0 -16px;border-radius:24px 24px 0 0}.drawer-top .grab{width:40px;height:5px;border-radius:3px;background:#d9dde5;margin-top:2px}.drawer-x{position:absolute;right:12px;top:6px;width:32px;height:32px;border-radius:50%;background:#f3f5f9;color:var(--mute);font-size:14px}.side .hbar{margin-top:2px}.level{gap:14px}}.ldd.inline{position:relative;left:auto;right:auto;top:auto;box-shadow:none;border:0;padding:4px 0 0;max-height:none;animation:none;flex:1;min-height:0;background:transparent}.ldd.inline .ldd-list{max-height:none;overflow:visible}.ldd-close{position:absolute;right:0;top:0;color:#1d4ed8;font-weight:700;font-size:14px;padding:6px 2px}.ldd.inline~.level{display:none}.ldd.inline .ldd-i{padding:12px 8px;min-height:48px}.ldd.inline .search-box{flex:none}.ldd.inline .lvh-steps{margin-right:52px}.ldd-close{top:-2px}@media (max-width:767px){.centre{padding-bottom:172px}.side.sheet-m{position:fixed;left:8px;right:8px;top:auto;bottom:calc(84px + env(safe-area-inset-bottom));transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:0 -6px 30px #0f172a29,0 2px 8px #0f172a0f;border-radius:22px;z-index:40}.side.sheet-m.dragging{transition:none}.side.sheet-m.peek{overflow:hidden}.side.sheet-m .drawer-top{cursor:grab;touch-action:none;padding:10px 0 8px}.drawer-x{font-size:16px}.mtabs{position:relative;z-index:42;background:#fff}.drawer-scrim{z-index:35}}@media (max-width:767px){.centre{padding-bottom:100px}.side.sheet-m .drawer-top{flex-direction:column;align-items:stretch;gap:8px;padding:8px 16px 10px;margin:0 -16px}.side.sheet-m .drawer-top .grab{align-self:center}.peek{display:flex;flex-direction:column;gap:6px}.peek-row{display:flex;align-items:center;gap:8px}.peek-n{flex:1;min-width:0;font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.peek-up{color:var(--faint);font-size:14px}.peek-bar{display:flex;gap:2px;height:5px}.peek-bar span{border-radius:3px}.peek-st{display:flex;gap:12px;font-size:12px;color:var(--mute);white-space:nowrap}.peek-st span{display:flex;align-items:center;gap:4px}.peek-st i{width:6px;height:6px;border-radius:50%}.peek-st b{color:var(--ink);font-weight:700}.side.sheet-m.peek{padding-bottom:0}}@media (max-width:767px){.peek-row .pill{font-size:12px;padding:1px 8px}}@media (max-width:767px){.side.sheet-m{bottom:calc(76px + env(safe-area-inset-bottom));transition:transform .3s cubic-bezier(.2,.8,.2,1),left .2s,right .2s,border-radius .2s}.side.sheet-m.is-open,.side.sheet-m.dragging{left:0;right:0;border-radius:20px 20px 0 0;box-shadow:0 -4px 20px #0f172a1a}.mtabs{border-radius:0;box-shadow:0 -1px 0 var(--line)}}@keyframes slideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (max-width:767px){.side.sheet-m{transition:transform .5s cubic-bezier(.3,1.3,.5,1),left .3s ease,right .3s ease,border-radius .3s ease,box-shadow .3s}.side.sheet-m.dragging{transition:none}.peek-row,.peek-st{animation:slideIn .35s cubic-bezier(.2,.8,.2,1) both}.peek-st{animation-delay:.05s}.peek-bar span{transition:flex-grow .6s cubic-bezier(.2,.8,.2,1),background .3s}.side.sheet-m.peek .peek-up{animation:nudge 1.8s ease-in-out 1s 2}.side.sheet-m.is-open .hbar,.side.sheet-m.is-open .level{animation:fadeUp .4s cubic-bezier(.2,.8,.2,1) both}.side.sheet-m.is-open .level{animation-delay:.06s}.side.sheet-m .grab{transition:width .2s,background .2s}.side.sheet-m.dragging .grab{width:56px;background:#b8c0cc}}.pband{transition:fill .25s ease}.pcell{transition:opacity .2s,transform .2s;transform-box:fill-box;transform-origin:center}.pcell.tap:hover{transform:scale(1.08)}.pring{animation:ringIn .3s cubic-bezier(.3,1.4,.5,1) both;transform-box:fill-box;transform-origin:center}@keyframes ringIn{0%{opacity:0;transform:scale(1.4)}to{opacity:1;transform:none}}.level{animation:fadeUp .3s cubic-bezier(.2,.8,.2,1) both}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media (max-width:767px){.side.sheet-m,.side.sheet-m.peek{left:0;right:0;border-radius:20px 20px 0 0;box-shadow:0 -4px 20px #0f172a1a}.centre{padding-bottom:120px}}.proto{position:fixed;left:16px;bottom:16px;z-index:80;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.proto-btn{display:flex;align-items:center;gap:6px;background:#0f172a;color:#fff;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;box-shadow:0 8px 24px #0f172a40}.proto-panel{width:300px;background:#fff;border-radius:16px;box-shadow:0 20px 50px #0f172a38;padding:14px;display:flex;flex-direction:column;gap:6px;animation:fadeUp .2s ease-out}.proto-h{font-weight:700;font-size:14px;margin-bottom:2px}.proto-l{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin-top:6px}.proto-row{display:flex;flex-wrap:wrap;gap:6px}.proto-row a{font-size:14px;padding:5px 10px;border-radius:8px;background:#f3f5f9;color:var(--ink2);text-decoration:none}.proto-row a.on{background:#1d4ed8;color:#fff}.proto-note{font-size:12px;color:var(--mute);margin-top:6px}.sheet-scrim{display:none}@media (max-width:767px){.sheet-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:39;pointer-events:none;transition:opacity .35s ease}.sheet-scrim.on{pointer-events:auto}.mtop{position:relative;z-index:38}}.chev-ic{display:block;flex:none;transition:transform .2s ease}.chev-ic.up{transform:rotate(180deg)}.hb-car{width:20px;height:20px;display:grid;place-items:center;color:#64748b}.hb-car .chev-ic{width:16px;height:16px}.hb-sel.cur .hb-car,.hb-sel.open .hb-car{color:#1d4ed8}.drawer-x{display:grid;place-items:center;color:#475569}.peek-up{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#f1f3f7;color:#475569}.ctx-sw .chev-ic,.h1-sel .chev-ic,.h2-chip .chev-ic{width:16px;height:16px}.proto{bottom:76px}:root{--canvas:#f0f6fe;--brand:#2f6fde;--brand-50:#e8f0fd}@media (min-width:768px){.app{grid-template-columns:264px 1fr 420px}.classes{padding:0;gap:0;background:#fff;border-right:1px solid #e6eaf0;min-height:0}.lp-top{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 0 24px;height:64px}.lp-logo{display:flex;flex-direction:column;line-height:1;font-weight:900;font-size:14px;letter-spacing:.02em;color:#1e3a8a}.lp-logo b:first-child{color:#c8961e}.lp-icbtn{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;color:#6b7280;text-align:center}.lp-icbtn:hover{background:#f3f5f8;color:var(--ink)}.lp-title{font-size:20px;line-height:28px;font-weight:700;color:var(--ink);padding:16px 24px 8px}.lp-tabs{display:flex;border-bottom:1px solid #e6eaf0}.lp-tabs button{flex:1;text-align:center;padding:12px 0;font-size:16px;font-weight:500;color:var(--mute);border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;justify-content:center;align-items:center;gap:8px}.lp-tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}.lp-tabs em{font-style:normal;font-size:12px;font-weight:700;line-height:20px;min-width:20px;padding:0 6px;border-radius:999px;background:var(--brand-50);color:var(--brand)}.lp-body{flex:1;min-height:0;overflow:auto;padding:16px}.lp-class{border:2px solid #a9c4f2;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 24px #2f6fde1a}.lp-cover{position:relative;aspect-ratio:2/1;background:url(/class-cover.jpg) center/cover,linear-gradient(135deg,#dfe7f1,#c9d6e6)}.lp-chip{position:absolute;top:8px;left:8px;background:#fff;border-radius:6px;padding:2px 8px;font-size:12px;line-height:20px;font-weight:700;color:var(--ink)}.lp-info{display:flex;flex-direction:column;gap:4px;padding:16px 16px 12px}.lp-name{font-size:14px;line-height:20px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}.lp-meta,.lp-teacher{font-size:12px;line-height:16px;color:var(--mute);display:flex;align-items:center;gap:6px}.lp-meta i{font-style:normal;color:#c3c8d0}.lp-teacher{margin-top:4px}.lp-nav{display:flex;gap:4px;margin:0 16px;padding:8px 0 12px;border-top:1px solid #eceff3}.lp-nav a{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;color:#9aa3b0;cursor:pointer}.lp-nav a:hover{background:#f3f5f8;color:var(--ink2)}.lp-nav a.on{background:var(--brand-50);color:var(--brand)}.lp-me{display:flex;align-items:center;gap:12px;padding:16px 16px 16px 24px;border-top:1px solid #e6eaf0}.lp-avatar{width:40px;height:40px;border-radius:50%;background:#3b74d9;color:#fff;display:grid;place-items:center;font-weight:700;flex:none}.lp-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:20px}.lp-who small{font-size:12px;line-height:16px;color:var(--mute)}.lp-who b{font-size:14px;font-weight:500;color:var(--ink)}body,.centre{background:var(--canvas)}.centre{padding:24px 32px}.chart-card{background:none;border:0;box-shadow:none;border-radius:0;padding:0;gap:16px}.band.on{fill:#fff}}@media (min-width:768px) and (max-width:1366px){.app{grid-template-columns:248px 1fr 392px}.classes{padding:0}}@media (min-width:768px) and (max-height:820px){.centre{padding:16px 24px}.chart-card{padding:0}}@media (min-width:768px){.pband.on{fill:#fff}.pband.hov{fill:#ffffff8c}.gl{stroke:#dfe7f3}.base{stroke:#cfd9e8}.gt{fill:#8f9bb0}}@media (min-width:768px){.lp-name{overflow-wrap:normal}.lp-meta{flex-wrap:wrap;gap:2px 6px}.lp-meta span{white-space:nowrap}.lp-nav{justify-content:space-between}}@media (min-width:768px){.pmap-crumb button{padding-left:0;padding-right:0}.lp-meta,.lp-teacher{font-size:14px;line-height:20px}}@media (min-width:768px){.pmap-head{flex-direction:column;align-items:flex-start;gap:12px;flex-wrap:nowrap}.pmap-legend{padding-top:0}}.picker{width:min(640px,calc(100vw - 300px))}.picker.idle{border-radius:16px}.picker.idle .picker-head{border-bottom:0}.pi.cur .pi-nm{font-weight:700}@media (min-width:768px){.pmap-crumb{display:flex;align-items:baseline;gap:8px;min-width:0;max-width:100%;font-size:20px;line-height:28px;flex-wrap:nowrap}.pmap-crumb .pc-step{display:flex;align-items:baseline;gap:8px;min-width:0;flex:0 1 auto}.pmap-crumb .pc-step button{font-size:16px;font-weight:500;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:220px}.pmap-crumb .pc-step button:hover{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}.pmap-crumb .pc-step>span{color:#b6bfcc;font-size:16px}.pmap-crumb b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto;color:var(--ink)}.pmap-title{min-width:0;width:100%}.pmap-sub{margin-top:4px}.centre{padding:32px 40px 24px}}@media (min-width:768px) and (max-height:820px){.centre{padding:24px 32px 16px}}@media (min-width:768px){.pmap-path{display:flex;align-items:center;gap:6px;min-width:0;font-size:14px;line-height:20px;margin-bottom:4px}.pmap-path .pc-step{display:flex;align-items:center;gap:6px;min-width:0;flex:0 1 auto}.pmap-path button{font-size:14px;font-weight:500;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pmap-path button:hover{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}.pmap-path .pc-step>span{color:#b6bfcc}.pmap-path .pc-step:last-child>span{display:none}.pmap-h{font-size:24px;line-height:32px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media (min-width:768px){.pmap-path button{padding:0}:root{--side-w:420px}.picker-wrap{padding:16px 16px 0 0}.picker{width:calc(var(--side-w) - 32px);max-height:calc(100vh - 32px)}.picker .results{max-height:none;flex:1;min-height:0}.picker .pi-n{min-width:0}}@media (min-width:768px) and (max-width:1366px){:root{--side-w:392px}}@media (min-width:768px){.app{grid-template-columns:320px 1fr var(--side-w)}}@media (min-width:768px) and (max-width:1366px){.app{grid-template-columns:296px 1fr var(--side-w)}}.pmap-top{display:flex;align-items:flex-start;gap:16px;width:100%;min-width:0}.pmap-top .pmap-title{flex:1;min-width:0}.pmap-tools{display:flex;align-items:center;gap:8px;flex:none}.pm-tool{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:10px;background:#fff;border:1px solid #dfe6f0;color:var(--ink2);font-size:14px;font-weight:500}.pm-tool:hover{border-color:#c5d2e4;color:var(--ink)}.pm-tool kbd{font:inherit;font-size:12px;color:var(--faint);border:1px solid #e3e8ef;border-radius:6px;padding:0 6px;line-height:18px}.pm-tool.icon{width:40px;padding:0;justify-content:center}.pm-tool.icon[aria-pressed=true]{background:var(--brand-50);border-color:#c9daf8;color:var(--brand)}@media (min-width:768px){.app{transition:grid-template-columns .24s cubic-bezier(.2,0,0,1)}.app.side-closed{grid-template-columns:320px 1fr 0px}.app.side-closed .side{visibility:hidden;padding:0;border:0;overflow:hidden}.side{padding-top:24px}}@media (min-width:768px) and (max-width:1366px){.app.side-closed{grid-template-columns:296px 1fr 0px}}@media (prefers-reduced-motion:reduce){.app{transition:none}}@media (min-width:768px){.side{position:relative}.side-collapse{position:absolute;top:16px;right:16px;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;color:var(--mute);z-index:2}.side-collapse:hover{background:#f3f5f8;color:var(--ink)}.side>.level{padding-right:0}.side .level>div:first-child{padding-right:40px}}.pcrumbs{min-width:0;display:flex;flex-direction:column;align-items:flex-start}.pcrumbs .cr-path{max-width:100%}.cr-path{display:flex;align-items:center;gap:6px;min-width:0;font-size:14px;line-height:20px;margin-bottom:4px}.cr-step{display:flex;align-items:center;gap:6px;min-width:0;flex:0 1 auto}.cr-step:first-child{flex:none}.cr-link{padding:0;font-size:14px;font-weight:500;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.cr-link:hover{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}.cr-sep{color:#b6bfcc;flex:none}.cr-sw{position:relative;display:flex;align-items:center;gap:2px;min-width:0}.cr-car{display:grid;place-items:center;flex:none;border-radius:6px;color:var(--faint)}.cr-car:hover,.cr-car[aria-expanded=true]{background:#e3eaf5;color:var(--ink)}.cr-sw.sm .cr-car{width:20px;height:20px}.cr-sw.lg{align-self:flex-start;max-width:100%}.cr-sw.lg .cr-car{width:32px;height:32px;margin-left:4px}.cr-sw .ldd{left:0;right:auto;width:360px;top:calc(100% + 6px)}@media (min-width:768px){.side .side-title{display:none}.side div:has(>p.muted+.side-title){display:none}}.cr-path .cr-step:last-child .cr-sep{display:none}@media (min-width:768px){.side-head{display:flex;align-items:center;justify-content:space-between;margin:-8px -8px -8px 0;flex:none}.side-head>span{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.side-head .side-collapse{position:static}.side .level>div:first-child{padding-right:0}}@media (min-width:768px){.side-head{align-items:flex-start;gap:8px;margin:-8px -8px 0 0}.side-acts{display:flex;gap:2px;flex:none}.pcrumbs{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding-top:8px}.cr-row{display:flex;max-width:100%;min-width:0;line-height:20px}.pcrumbs>.cr-link.cr-row{font-size:14px}.cr-cur{font-size:20px;line-height:28px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;margin-top:2px}.side .cr-sw .ldd{left:0;right:auto;width:340px}.side .cr-sw.lg .cr-car{width:28px;height:28px;margin-left:2px}}@media (min-width:768px){.pcrumbs .cr-path{display:flex;align-items:center;gap:4px;width:100%;min-width:0;margin:0;flex-wrap:nowrap}.pcrumbs .cr-step{display:flex;align-items:center;gap:4px;min-width:0;flex:0 1 auto}.pcrumbs .cr-step.fw{flex:0 2 auto;min-width:40px}.pcrumbs .cr-step .cr-sep{display:inline}.pcrumbs .cr-link{font-size:14px;line-height:20px}}:root{--left-w:320px}@media (min-width:768px) and (max-width:1366px){:root{--left-w:296px}}@media (min-width:768px) and (max-width:1200px){:root{--left-w:248px;--side-w:360px}.app,.app.side-closed{grid-template-columns:var(--left-w) 1fr var(--side-w)}.app.side-closed{grid-template-columns:var(--left-w) 1fr 0px}.lp-top{padding:12px 12px 0 16px;height:56px}.lp-title{padding:8px 16px 4px;font-size:18px}.lp-tabs button{font-size:14px;padding:10px 0}.lp-body{padding:12px}.lp-info{padding:12px 12px 8px}.lp-nav{margin:0 12px;padding:4px 0 8px}.lp-nav a{width:40px;height:40px}.lp-me{padding:12px 12px 12px 16px}.centre{padding:24px 24px 16px}.side{padding:20px 20px 16px}.pmap-legend{gap:12px}}@media (min-width:768px) and (max-height:700px){.lp-cover{aspect-ratio:3/1}.pmap-h{font-size:20px;line-height:28px}.pmap-head{gap:8px}.centre{padding-top:20px}}@media (min-width:768px){.pmap-h{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.pname-fo{overflow:visible;pointer-events:none}.pname{display:flex;height:100%;align-items:flex-end}.pname span{max-width:100%;background:#fff;color:var(--ink);font-size:14px;line-height:20px;font-weight:500;padding:4px 10px;border-radius:8px;box-shadow:0 1px 2px #0f172a0f,0 4px 12px #0f172a0f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width:768px){.pcrumbs .cr-step,.pcrumbs .cr-step.fw{flex:none}.pcrumbs .cr-step:last-child{flex:0 1 auto;min-width:0}}@media (min-width:768px){.pcrumbs .cr-step:last-child{flex:none}.pcrumbs .cr-link{overflow:visible}}@media (min-width:768px){.side-tools{display:flex;align-items:center;gap:8px;flex:none}.side-search{flex:1;display:flex;align-items:center;gap:8px;height:40px;padding:0 8px 0 12px;border:1px solid #e3e8ef;border-radius:10px;background:#f8fafc;color:var(--faint);font-size:14px}.side-search span{flex:1}.side-search:hover{border-color:#cdd6e3;color:var(--mute)}.side-search kbd{font:inherit;font-size:12px;border:1px solid #e3e8ef;background:#fff;border-radius:6px;padding:0 6px;line-height:18px}.side-tools .side-collapse{position:static;flex:none}.side>.pcrumbs{padding-top:0;flex:none}.pcrumbs .cr-step:last-child{flex:0 1 auto}}.ssearch{position:relative;flex:1;min-width:0}.side-search{cursor:text}.side-search:focus-within{border-color:#2f6fde;background:#fff;box-shadow:0 0 0 3px #2f6fde26}.side-search input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:14px;color:var(--ink)}.side-search input::placeholder{color:var(--faint)}.ss-clear{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;color:var(--mute);font-size:18px;line-height:1;text-align:center}.ss-clear:hover{background:#eef1f5}.ss-list{position:absolute;left:0;right:-48px;top:calc(100% + 6px);z-index:45;background:#fff;border:1px solid #e3e7ef;border-radius:12px;box-shadow:0 16px 40px #0f172a29;padding:8px;max-height:min(480px,calc(100vh - 120px));overflow:auto;animation:pop .14s ease-out}.ss-list .col-h{padding:8px 8px 4px}.ss-i{display:flex;align-items:flex-start;gap:10px;width:100%;padding:8px;border-radius:8px}.ss-i .sdot{margin-top:7px;flex:none}.ss-i.on{background:#eef3fe}.ss-n{font-weight:500;color:var(--faint);margin-right:2px}@media (min-width:768px){.side>.pcrumbs{position:relative}.side .pcrumbs .cr-sw{position:static;gap:4px}.side .pcrumbs .cr-sw .ldd{left:0;right:0;width:auto;top:calc(100% + 8px)}.pcrumbs .cr-path,.pcrumbs .cr-step{gap:6px}.cr-sw.sm .cr-car{width:24px;height:24px;border-radius:6px;margin-left:0}.cr-sw.lg .cr-car{width:32px;height:32px;border-radius:8px;margin-left:4px}.cr-car svg{width:16px;height:16px}.brow{padding:8px}}.brow-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left}.brow-code{font-size:12px;line-height:16px;font-weight:500;letter-spacing:.02em;color:var(--faint)}.brow-txt .nm{line-height:22px}.brow:has(.brow-txt){align-items:center}.brow:has(.brow-txt) .sdot{align-self:flex-start;margin-top:6px}@media (min-width:768px){.cr-cur{white-space:normal;overflow:visible;text-overflow:clip}.cr-sw.lg{align-items:flex-start}.cr-sw.lg .cr-car{margin-top:-2px}}@media (min-width:768px){.cr-sw.lg{display:inline-flex;width:auto}.cr-cur{flex:0 1 auto}.cr-sw.lg .cr-car{margin-top:0}}.lsw-wrap{display:inline-flex;min-width:0;max-width:100%}.lsw{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;border-radius:8px;color:var(--mute);font-weight:500;text-align:left;transition:background .12s}.lsw.sm{font-size:14px;line-height:20px;padding:2px 4px 2px 6px;margin:-2px 0}.lsw.sm.plain{padding:2px 6px}.lsw.lg{font-size:20px;line-height:28px;font-weight:700;color:var(--ink);padding:2px 6px;margin:0 0 0 -6px;align-items:flex-start}.lsw.lg .chev-ic{margin-top:4px}.lsw:hover,.lsw.open{background:#eef2f7;color:var(--ink)}.lsw .chev-ic{flex:none;color:var(--faint)}.lsw:hover .chev-ic,.lsw.open .chev-ic{color:var(--ink2)}.lsw-t{min-width:0}.pcrumbs .cr-path{margin-left:-6px;gap:2px;align-items:center}.pcrumbs .cr-step{display:flex;align-items:center;gap:2px}.pcrumbs .cr-sep{color:#b6bfcc;padding:0 2px}.side>.pcrumbs{gap:4px}.side .pcrumbs .lsw-wrap{position:static}.side .pcrumbs .ldd{left:0;right:0;width:auto;top:calc(100% + 8px)}.lsw{display:inline-block}.lsw .lsw-t .chev-ic{display:inline-block;vertical-align:-3px;margin-left:4px;margin-top:0}.lsw.lg .lsw-t .chev-ic{vertical-align:-3px}.pcrumbs .cr-path .cr-sep,.pcrumbs .cr-step:last-child .cr-sep{display:inline}.lsw-end{white-space:nowrap}.side .pcrumbs .ui-dd{left:0;right:0;top:calc(100% + 8px)}.side .dlist{display:flex;flex-direction:column;gap:2px;margin:0 -8px}.ssearch .ui-search{flex:1}.ss-list .ui-row{padding:8px}@media (min-width:768px) and (max-width:1200px){.lsw.lg{font-size:18px;line-height:26px}}.pcrumbs>.lsw-wrap{align-self:stretch;display:block;margin-left:-6px;width:calc(100% + 6px);max-width:none}.pcrumbs>.lsw-wrap>.lsw.lg{display:inline-block;margin:0;max-width:100%}.inferred-note{margin-top:8px;font-size:14px;line-height:20px;color:#2f4fb5;background:#eef2fd;border-radius:8px;padding:8px 12px}.psum{font-size:14px;line-height:20px;color:var(--mute);margin-top:8px}.psum b{color:var(--ink);font-weight:700}@media (min-width:768px){.pmap-plot{overflow:auto;align-items:flex-start}.pmap-plot .pmap-svg{position:static;width:auto;height:auto;max-height:none;flex:none}}.ptip.follow{position:absolute;bottom:auto;right:auto;transform:none;pointer-events:none;z-index:5;transition:left 60ms linear,top 60ms linear}@media (max-width:767px){.pmap-plot{overflow:auto;-webkit-overflow-scrolling:touch}.pmap-plot .pmap-svg{position:static;width:auto;height:auto;max-height:none;flex:none}.pcol{cursor:pointer;-webkit-tap-highlight-color:transparent}.side.sheet-m .side-tools{margin-top:4px}}.side .side-title{display:none}.side div:has(>p.muted+.side-title){display:none}@media (max-width:767px){.ui-search kbd{display:none}}.side .pcrumbs{position:relative}@media (max-width:767px){.side .pcrumbs .ui-dd{left:0;right:0;top:calc(100% + 8px);max-height:60vh;overflow:auto}.ss-list{right:0}}@media (max-width:767px){.side .pcrumbs .ui-dd.inline{align-self:stretch;width:auto;position:static;border:0;box-shadow:none;padding:8px 0 0;max-height:none;overflow:visible;margin-top:8px;border-top:1px solid #eef1f5;border-radius:0}.side .pcrumbs .ui-dd.inline .ui-dd-list{max-height:none}.side .pcrumbs .ui-dd.inline .ldd-close{align-self:flex-end;color:#1d4ed8;font-weight:600;font-size:14px;padding:8px 4px}.side:has(.pcrumbs .ui-dd.inline) .level{display:none}.ss-list{position:static;box-shadow:none;border:0;padding:8px 0 0;max-height:none;margin-top:8px;border-top:1px solid #eef1f5;border-radius:0}.side:has(.ss-list) .level,.side:has(.ss-list)>.pcrumbs{display:none}}@media (max-width:767px){.side .pcrumbs .ui-dd.inline .ldd-close{position:static}}@media (max-width:767px){.side .pcrumbs .ui-dd.inline{display:grid;grid-template-columns:1fr auto;align-items:start;column-gap:12px}.side .pcrumbs .ui-dd.inline .ldd-close{grid-column:2;grid-row:1;padding:4px}.side .pcrumbs .ui-dd.inline .ui-dd-head{grid-column:1;grid-row:1;border-bottom:0;padding:4px 0 8px}.side .pcrumbs .ui-dd.inline>*:not(.ldd-close):not(.ui-dd-head){grid-column:1 / -1}}.meta{display:flex;flex-direction:column;gap:24px}.msec{display:flex;flex-direction:column;gap:8px}@media (max-width:767px){.pmap-h{font-size:20px;line-height:28px}}@media (max-width:767px){.side.sheet-m .side-tools{display:flex;align-items:center;gap:8px}.side.sheet-m .side-tools .ssearch{flex:1;min-width:0}}@media (max-width:767px){.peek-n{font-size:16px;line-height:24px}.peek-st{font-size:14px;line-height:20px;gap:12px}.peek-st i{width:8px;height:8px}}@media (max-width:767px){.side .pcrumbs .ui-dd.inline .ldd-close{padding:0;align-self:center;justify-self:end;margin-right:-8px}.side .pcrumbs .ui-dd.inline .ldd-close .ui-iconbtn{color:var(--text-secondary)}}@media (max-width:767px){.peek-st{font-size:16px;line-height:24px;flex-wrap:wrap;row-gap:0}.pmap-sub,.psum{font-size:16px;line-height:24px}.pmap-legend,.pmap-legend span{font-size:14px;line-height:20px}.side .ui-dd-head span,.side .ui-row-meta{font-size:16px;line-height:24px}}@media (max-width:767px){.pmap-legend{gap:12px;flex-wrap:nowrap}.pmap-legend span{gap:6px;white-space:nowrap}}@media (max-width:767px){.peek-n{display:flex;flex-direction:column;white-space:normal;overflow:visible}.peek-n>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.peek-e{font-size:14px;line-height:20px;font-weight:500;color:var(--text-tertiary)}}
