@layer reset,tokens,base,vendor,components,patterns,pages;@layer pages{.account-entry{min-height:100dvh;display:grid;place-items:center;padding:24px}.account-card{width:min(100%,420px);padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel)}.account-card h1{font-size:var(--text-h1);margin:16px 0 8px}.account-card label,.account-settings label{display:grid;gap:7px;margin:18px 0}.account-card input,.account-settings input{width:100%;min-height:42px}.account-card>.button.primary{width:100%;justify-content:center;margin-top:6px}.account-menu{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.account-menu>[role=alert]{font-size:12px;max-width:220px}.account-settings{display:grid;gap:24px}.account-settings form+form,.account-settings section{border-top:1px solid var(--line);padding-top:16px}.account-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.account-row form{flex-basis:100%}.account-settings details{padding:8px 0}.account-row small{display:block;margin-top:4px}@media(max-width:480px){.account-card{padding:24px}.account-menu>.button{padding-inline:8px}}.account-card>.button.primary+p{margin-top:18px}.account-card input:focus{box-shadow:none;outline:2px solid var(--focus-ring);outline-offset:2px}.account-trigger{gap:8px}.account-avatar{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--state-selected);color:var(--accent);font-weight:600}@media(max-width:767px){.account-name{display:none}.account-trigger{padding:4px;min-width:36px;border:0;background:none}}}@layer pages{.syntax-code .hljs-keyword,.syntax-code .hljs-selector-tag{color:var(--violet)}.syntax-code .hljs-type,.syntax-code .hljs-built_in,.syntax-code .hljs-title{color:var(--info)}.syntax-code .hljs-string,.syntax-code .hljs-regexp{color:var(--code-string)}.syntax-code .hljs-number,.syntax-code .hljs-literal,.syntax-code .hljs-symbol{color:var(--warning)}.syntax-code .hljs-meta{color:var(--info)}.syntax-code .hljs-comment,.syntax-code .hljs-doctag{color:var(--muted)}.syntax-code .hljs-subst{color:var(--ink)}}@layer pages{.copy-code-icon,.copy-code-label{display:inline-grid;flex:none;align-items:center}.copy-code-icon>*,.copy-code-label>*{grid-area:1 / 1;transition:opacity var(--motion-fast) var(--ease-out)}.copy-code-label{white-space:nowrap;text-align:start}.copy-code-success{opacity:0}.copy-code-button[data-copied=true] .copy-code-success{opacity:1}.copy-code-button[data-copied=true] .copy-code-idle{opacity:0}.copy-code-button[data-motion=instant] :is(.copy-code-icon,.copy-code-label)>*,:root[data-motion-input=keyboard] .copy-code-button :is(.copy-code-icon,.copy-code-label)>*{transition:none}}@layer pages{.solved-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;border:1px solid var(--success);border-radius:50%;background:var(--success-soft);color:var(--success);line-height:1}.problem-open.is-solved{position:relative;padding-right:24px}.problem-open>.solved-mark{position:absolute;right:0;top:50%;transform:translateY(-50%)}.button.checkin-primary{background:var(--success);border-color:var(--success);color:var(--on-accent)}.button.checkin-primary:hover:not(:disabled){background:var(--success);border-color:var(--success)}.checkins-section .section-header{flex-wrap:wrap;gap:10px}.checkins-section .section-header h3{display:flex;align-items:center;gap:7px}.checkins-section .hint{font-size:13px;color:var(--muted)}.checkin-record{border:1px solid var(--line);border-radius:var(--radius-control);margin-top:10px;overflow:hidden}.checkin-record summary{padding:11px 12px;cursor:pointer;color:var(--success);font-size:13px;font-weight:600;background:var(--success-soft)}.checkin-record summary time{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:400}.checkin-record.withdrawn summary{background:var(--canvas);color:var(--muted)}.checkin-tools{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:10px 12px}.checkin-code{margin:0;padding:14px;max-height:280px;overflow:auto;background:var(--canvas);color:var(--ink);border-top:1px solid var(--line);font:var(--text-code) / 1.7 var(--font-code);white-space:pre;-moz-tab-size:4;tab-size:4}.checkin-code code{font:inherit}.checkin-form{display:flex;flex-direction:column;gap:15px}.checkin-form .checkin-problem-name{margin:0;font-weight:600;overflow-wrap:anywhere}.checkin-input-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr);gap:16px}.checkin-input-row label,.checkin-form>label:not(.checkin-confirm){display:flex;flex-direction:column;gap:7px;min-width:0}.checkin-input-row input{font-size:12px;max-width:100%}.checkin-editor{font:var(--text-code) / 1.7 var(--font-code);-moz-tab-size:4;tab-size:4;min-height:230px;white-space:pre;overflow-wrap:normal;resize:vertical}.checkin-confirm{display:flex;align-items:center;gap:9px}.checkin-confirm input{width:16px;height:16px;accent-color:var(--success);flex-shrink:0}.checkin-viewer .checkin-code{border:1px solid var(--line);border-radius:var(--radius-control);max-height:60vh}@media(max-width:600px){.checkin-input-row{grid-template-columns:1fr}.checkin-editor{min-height:190px}}}@layer pages{.markdown-body{font-size:16px;line-height:1.85;overflow-wrap:anywhere;min-width:0}.detail-page .problem-statement{padding-top:18px}.statement-navigation{display:flex;flex-wrap:wrap;gap:4px 8px;margin:0 0 14px}.markdown-body .statement-navigation a{display:inline-flex;align-items:center;min-height:36px;padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-control);font-size:13px;line-height:1.5;color:var(--muted);text-decoration:none}.markdown-body .statement-navigation a:hover{color:var(--accent);background:var(--surface-hover)}.markdown-body .statement-source{background:transparent;margin:0 0 16px;padding:0;border:0;font-size:13px;line-height:1.65}.detail-page .statement-source p{margin:0}.problem-statement .markdown-body>:is(h2,h3):first-child,.problem-statement .statement-source+:is(h2,h3),.problem-statement .statement-navigation+:is(h2,h3){margin-top:0}.markdown-body :is(h2,h3,h4,h5,h6)[id]{scroll-margin-top:18px}@media(max-width:600px){.markdown-body .statement-navigation a{min-height:44px}}.markdown-body p{margin:0 0 18px}.markdown-body>:last-child{margin-bottom:0}.markdown-body ul,.markdown-body ol{margin:8px 0 14px;padding-left:1.65em}.markdown-body li{margin:5px 0}.markdown-body li>p{margin-bottom:5px}.markdown-body strong{font-weight:600}.markdown-body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.markdown-body code{font-family:var(--font-code);font-size:.9em;background:var(--surface-subtle);border-radius:var(--radius-control);padding:2px 4px}.markdown-body pre{padding:18px 20px;border-radius:var(--radius-panel);overflow-x:auto;background:var(--surface-subtle);line-height:1.75;border:1px solid var(--line);font-size:var(--text-code)}.markdown-body pre code{font:inherit;font-family:var(--font-code);background:none;padding:0;white-space:pre;-moz-tab-size:4;tab-size:4;overflow-wrap:normal}.markdown-body blockquote{margin:12px 0;border-left:3px solid var(--line);padding-left:12px;color:var(--muted)}.markdown-body .katex{font-size:1.06em}.markdown-body .katex-display{overflow-x:auto;overflow-y:hidden;padding:4px 0;margin:12px 0}.markdown-body img{max-width:100%;height:auto}.markdown-table-scroll{overflow-x:auto;margin:12px 0}.markdown-body table{border-collapse:collapse;font-size:15px;width:auto;min-width:100%}.markdown-body th,.markdown-body td{border:1px solid var(--line);padding:10px 12px}.markdown-body th{background:var(--canvas)}.markdown-preview{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.6;margin-top:5px}.markdown-preview p{display:inline;margin:0}.markdown-loading{min-block-size:6em;padding-block:.45em}.markdown-loading-lines{display:grid;gap:.85em}.markdown-loading-lines>span{display:block;block-size:.85em;border-radius:var(--radius-control);background:var(--surface-hover)}.markdown-loading-lines>span:nth-child(2){width:92%}.markdown-loading-lines>span:last-child{width:68%}.markdown-load-error{padding:12px 14px;margin-bottom:16px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);color:var(--muted);font-size:var(--text-sm)}.markdown-load-error p{margin:0 0 10px}.detail-page .markdown-body{font-size:var(--text-reading);line-height:1.85}.markdown-body h1{font-size:1.6em;line-height:1.4;margin:32px 0 18px}.markdown-body h2{font-size:1.3em;line-height:1.5;margin:30px 0 16px}.markdown-body h3{font-size:1.12em;line-height:1.6;margin:26px 0 12px}.markdown-body h4{font-size:1em;line-height:1.6;margin:22px 0 10px}.markdown-body :is(h1,h2,h3,h4):first-child{margin-top:0}.markdown-body img{display:block;margin:24px auto;border-radius:var(--radius-control)}.markdown-body blockquote{color:var(--ink);padding:12px 18px;border-color:var(--accent-border);background:var(--surface-subtle)}@media(max-width:767px){.markdown-body pre{padding:14px}.markdown-body table{font-size:14px}}}@layer pages{.filter-topic-picker{min-width:0}.filter-topic-search{display:flex;align-items:center;gap:8px;margin-top:8px;border:1px solid var(--line);border-radius:var(--radius-control);padding:0 12px;background:var(--surface);color:var(--muted)}.filter-topic-search:focus-within{outline:2px solid var(--accent);outline-offset:2px}.filter-topic-search input:not([type=checkbox]):not([type=radio]):not([type=file]){width:100%;min-width:0;min-height:44px;padding:8px 0;border:0;background:transparent;font-size:16px}.filter-topic-search input[type=search]:focus{outline:none;box-shadow:none}.filter-topic-picker .selected-tags{margin-top:10px}.filter-topic-picker .selected-tags button{min-height:32px}.filter-topic-picker-caption{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;font-size:12px;color:var(--muted);margin:10px 0 6px}.filter-topic-options{max-height:232px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-control);padding:6px;scrollbar-gutter:stable}.filter-topic-options fieldset{border:0;min-width:0;padding:0;margin:0 0 8px}.filter-topic-options fieldset:last-child{margin-bottom:0}.filter-topic-options legend{padding:6px 8px;font-size:12px;font-weight:600;color:var(--muted)}.filter-topic-option{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;padding:7px 8px;border-radius:var(--radius-control);cursor:pointer}.filter-topic-option:hover,.filter-topic-option:focus-within{background:var(--surface-hover)}.filter-topic-option input{width:16px;height:16px;flex-shrink:0;margin:0;accent-color:var(--accent)}.filter-topic-option-name{font-size:14px}.filter-topic-option small{display:block;margin-top:2px;color:var(--muted);font-size:12px}.filter-topic-option:has(input:checked){background:var(--accent-soft)}.filter-topic-empty{margin:0;padding:20px 12px;color:var(--muted);font-size:14px}.filter-topic-advanced{margin:16px 0 22px;border-bottom:1px solid var(--line);padding-bottom:16px}.filter-topic-advanced>summary{cursor:pointer;color:var(--muted);font-size:13px;padding:8px 0}.filter-topic-advanced[open]>summary{margin-bottom:14px}.filter-topic-advanced .filter-section{margin-bottom:18px}}@layer pages{.dialog-content.advanced-filters-overlay{--advanced-filters-offset: -4px;position:fixed;top:var(--advanced-filters-top, 152px);right:var(--advanced-filters-right, 24px);bottom:auto;left:auto;width:min(620px,calc(100vw - 32px));max-height:min(640px,calc(var(--advanced-filters-viewport-bottom, 100dvh) - var(--advanced-filters-top, 152px) - 16px));display:flex;flex-direction:column;overflow:hidden;opacity:1;transform:translateY(0);background:var(--surface-float);border:1px solid var(--line);border-radius:var(--radius-float);box-shadow:var(--shadow-float);color:var(--ink);animation:none;transition:opacity var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.dialog-overlay.advanced-filters-backdrop{opacity:1;animation:none;transition:opacity var(--motion-fast) var(--ease-out)}.advanced-filters-backdrop[data-state=closed],.advanced-filters-overlay[data-state=closed]{opacity:0;pointer-events:none;animation:surface-exit var(--motion-fast) linear}.advanced-filters-overlay[data-state=closed]{transform:translateY(var(--advanced-filters-offset))}@starting-style{.advanced-filters-backdrop[data-state=open],.advanced-filters-overlay[data-state=open]{opacity:0}.advanced-filters-overlay[data-state=open]{transform:translateY(var(--advanced-filters-offset))}}.advanced-filters-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex:0 0 auto;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--line)}.advanced-filters-heading h2{margin:0;font-size:18px;font-weight:600;line-height:1.5;outline:none}.advanced-filters-heading .advanced-filters-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 36px;padding:0;border-radius:var(--radius-control)}.advanced-filters-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:var(--space-6);scrollbar-gutter:stable}.advanced-filters-overlay .filter-panel{max-height:none;overflow:visible;padding:0;border:0;background:transparent}.advanced-filters-overlay .filter-section{flex-wrap:wrap;margin-bottom:var(--space-4)}.advanced-filters-overlay .filter-section>.hint{flex-basis:100%;margin-top:2px;color:var(--muted);line-height:1.6}.advanced-filters-overlay .selected-tags{flex-basis:100%}.advanced-filters-overlay .selected-tags .tag{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left}.advanced-filters-overlay .rating-heading{align-items:flex-start;padding-top:var(--space-4)}.advanced-filters-overlay .rating-heading>div{min-width:0}.advanced-filters-overlay .rating-heading .hint{line-height:1.65}.advanced-filters-overlay .rating-heading>button{flex-shrink:0}.advanced-filters-overlay .rating-clause{gap:var(--space-2);padding:var(--space-3) 0}.advanced-filters-overlay .rating-clause+.rating-clause{border-top:1px solid var(--line)}.advanced-filters-overlay .checkbox-line{margin-top:var(--space-3)}.advanced-filters-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex:0 0 auto;padding:var(--space-4) var(--space-6);border-top:1px solid var(--line);background:var(--surface)}.advanced-filters-footer p{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.6}.advanced-filters-footer>button{min-width:80px;flex-shrink:0}@media(max-width:767px){.dialog-content.advanced-filters-overlay{--advanced-filters-offset: 12px;top:auto;right:0;bottom:max(0px,calc(100dvh - var(--advanced-filters-viewport-bottom, 100dvh)));left:0;width:100%;max-height:min(88dvh,calc(var(--advanced-filters-viewport-height, 100dvh) - 12px));border-radius:var(--radius-float) var(--radius-float) 0 0}.advanced-filters-heading,.advanced-filters-body,.advanced-filters-footer{padding-left:var(--space-4);padding-right:var(--space-4)}.advanced-filters-heading .advanced-filters-close{width:44px;height:44px;flex-basis:44px}.advanced-filters-overlay .topic-filter select{flex:1;min-width:0;max-width:100%}.advanced-filters-overlay .rating-heading{flex-wrap:wrap}.advanced-filters-footer{padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}.advanced-filters-footer>button{min-height:44px}}:is(.advanced-filters-backdrop,.advanced-filters-overlay)[data-motion=instant]{transition:none;animation:none}:is(.advanced-filters-backdrop,.advanced-filters-overlay)[data-motion=instant][data-state=closed]{animation:surface-exit 1ms linear!important}@media(prefers-reduced-motion:reduce){:is(.advanced-filters-backdrop,.advanced-filters-overlay)[data-state=closed]{animation:surface-exit 1ms linear!important}}:root[data-motion=reduce] :is(.advanced-filters-backdrop,.advanced-filters-overlay)[data-state=closed]{animation:surface-exit 1ms linear!important}}@layer pages{.difficulty-red{--rating-color: var(--lv-red);--rating-ink: var(--lv-red-ink)}.difficulty-orange{--rating-color: var(--lv-orange);--rating-ink: var(--lv-orange-ink)}.difficulty-yellow{--rating-color: var(--lv-yellow);--rating-ink: var(--lv-yellow-ink)}.difficulty-green{--rating-color: var(--lv-green);--rating-ink: var(--lv-green-ink)}.difficulty-cyan{--rating-color: var(--lv-cyan);--rating-ink: var(--lv-cyan-ink)}.difficulty-blue{--rating-color: var(--lv-blue);--rating-ink: var(--lv-blue-ink)}.difficulty-purple{--rating-color: var(--lv-purple);--rating-ink: var(--lv-purple-ink)}.difficulty-black{--rating-color: var(--lv-black);--rating-ink: var(--lv-black-ink)}.difficulty-unrated{--rating-color: var(--level-unrated);--rating-ink: var(--level-unrated-ink)}.difficulty-badge.difficulty-badge{display:inline-flex;align-items:center;align-self:flex-start;gap:6px;border:0;border-radius:var(--radius-tag);padding:2px 0;color:var(--rating-ink);background:none;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.4;max-width:100%;overflow-wrap:anywhere}.difficulty-badge:before{content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--rating-color);box-shadow:0 0 0 1px color-mix(in srgb,var(--rating-ink) 35%,transparent)}.difficulty-part{white-space:nowrap}.difficulty-legend-trigger.difficulty-legend-trigger{gap:5px;margin-right:12px;font-size:12px}.difficulty-legend-body{display:flex;flex-direction:column;gap:16px}.difficulty-scale-scroll{overflow-x:auto;flex-shrink:0}.difficulty-scale-table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}.difficulty-scale-table th,.difficulty-scale-table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line)}.difficulty-scale-table th{color:var(--muted);font-weight:500}.preview-rating-badges{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.preview-rating-badges>span{display:inline-flex;align-items:center;flex-wrap:wrap;gap:7px}@media(max-width:640px){.difficulty-legend-trigger.difficulty-legend-trigger{margin-right:0}.sort-control{flex-wrap:wrap;justify-content:flex-end}}}@layer pages{.related-training-dialog.dialog-content{width:min(660px,calc(100vw - 32px))}.related-count{margin-left:6px;font-size:11px;color:var(--accent);font-variant-numeric:tabular-nums}.related-training-context{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 24px}.related-training-context>div{flex:1;min-width:0}.related-training-context strong{display:block;font-size:16px;margin-top:5px;overflow-wrap:anywhere}.related-training-context span{color:var(--muted);font-size:12px}.related-training-context>button{white-space:nowrap;flex-shrink:0}.related-training-context>button.active{color:var(--accent)}.related-tabs{display:flex;padding:0 24px;gap:26px;border-bottom:1px solid var(--line)}.related-tabs>button{border:0;border-bottom:2px solid transparent;background:none;padding:12px 0;display:flex;gap:9px;align-items:center;color:var(--muted);font-weight:600}.related-tabs>button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.related-tabs>button>span{font-size:12px;font-variant-numeric:tabular-nums}.related-panel{overflow-y:auto;min-height:260px;padding:18px 24px 10px}.related-panel:focus-visible{outline-offset:-3px}.related-guidance{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 16px}.related-management{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.related-management>span{font-size:12px;color:var(--muted)}.related-management>button{white-space:nowrap}.related-training-list{margin:0;padding:0;list-style:none}.related-training-list>li{border-top:1px solid var(--line);padding:16px 0}.related-row-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.related-problem-open{border:0;padding:0;display:flex;align-items:baseline;gap:8px;min-width:0;background:none;text-align:left;color:var(--ink)}.related-problem-open strong{font-weight:600;font-size:15px;overflow-wrap:anywhere}.related-problem-open svg{color:var(--muted)}.related-problem-open:hover,.related-problem-open:hover svg{color:var(--accent)}.related-completion{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:12px;color:var(--muted);padding-top:2px}.related-completion.done{color:var(--success)}.related-identity{color:var(--muted);font-size:12px;margin:6px 0 8px}.related-reason{margin:0;font-size:14px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.related-row-actions{display:flex;gap:20px;margin-top:12px}.related-row-actions>button{font-size:12px}.related-empty{text-align:center;padding:38px 10px}.related-empty strong{font-size:15px;font-weight:600}.related-empty p{font-size:13px;line-height:1.7;color:var(--muted);margin:10px 0 0}.related-footer{padding:15px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.related-entry{margin:24px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.related-entry strong{font-size:14px;font-weight:600}.related-entry p{font-size:12px;color:var(--muted);margin:7px 0 0}.relation-direction{padding:12px 14px;border-left:2px solid var(--accent);background:var(--surface-subtle);line-height:1.7;font-size:13px}@media(max-width:600px){.related-training-dialog.dialog-content{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.related-training-context,.related-footer{padding:16px}.related-tabs{padding:0 16px;gap:24px}.related-panel{padding:16px;min-height:230px}.related-training-context strong{font-size:15px}.related-management{align-items:flex-start}}}@layer pages{.handout-dialog{max-width:520px}.handout-description{padding:20px 24px 8px}.handout-description strong{font-size:16px;line-height:1.5}.handout-description p{line-height:1.7;margin:10px 0}.handout-secondary{color:var(--muted);font-size:13px;line-height:1.6}.handout-dialog>.handout-secondary{margin:0 24px 16px}.handout-progress{display:flex;gap:10px;align-items:center;padding:14px 24px}.handout-dialog>.error-box{margin:0 24px 16px}.handout-footer{display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--line)}.handout-spinner{animation:handout-spin 1s linear infinite}@keyframes handout-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.handout-spinner{animation:none}}}@layer pages{.learning-mode{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}.learning-mode-buttons{display:inline-grid;grid-template-columns:repeat(2,minmax(84px,1fr));gap:3px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface)}.learning-mode-buttons>.button{min-height:34px;padding:6px 14px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--muted);font-size:var(--text-sm);font-weight:600;white-space:nowrap;transition:color var(--motion-hover) var(--ease-out),background-color var(--motion-hover) var(--ease-out),border-color var(--motion-hover) var(--ease-out)}@media(hover:hover){.learning-mode-buttons>.button:hover:not(:disabled){background:var(--surface-hover);border-color:transparent;color:var(--ink)}}@media(hover:hover){.learning-mode-buttons>.button[aria-pressed=true]:hover{color:var(--accent-strong);border-color:var(--line);background:var(--surface-float)}}.learning-mode-buttons>.button[aria-pressed=true]{color:var(--accent-strong);border-color:var(--line);background:var(--surface-float)}.learning-mode-buttons>.button:focus-visible{outline:2px solid var(--focus-ring, var(--accent));outline-offset:2px}.learning-mode p{flex:1 1 220px;margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.6}.learning-disclosure-gate{margin:12px 0}.learning-hint{padding:16px 0;border-top:1px solid var(--line)}.learning-hint h3{margin:0 0 8px;font-size:var(--text-ui);color:var(--muted)}.learning-hint-question{font-weight:600;line-height:1.8}.learning-hint-next{margin-top:12px}.learning-disclosure-fresh{animation:disclosure-reveal var(--motion-fast) var(--ease-out) both}@supports (interpolate-size: allow-keywords){.learning-disclosure-fresh{interpolate-size:allow-keywords;overflow:clip;transition:height var(--motion-normal) var(--ease-out);animation-duration:var(--motion-normal)}@starting-style{.learning-disclosure-fresh{height:0}}}@keyframes disclosure-reveal{0%{opacity:.35}to{opacity:1}}@media(max-width:600px){.learning-mode{gap:8px 12px;margin-bottom:14px;padding-bottom:12px}.learning-mode-buttons>.button{min-height:40px}}@media(prefers-reduced-motion:reduce){.learning-mode-buttons>.button{transition:none}.learning-disclosure-fresh{animation:none}}:root[data-motion=reduce] .learning-mode-buttons>.button{transition:none}:root[data-motion=reduce] .learning-disclosure-fresh{animation:none}.learning-disclosure-gate>.disclosure-row{width:100%;justify-content:space-between;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;text-align:left}.detail-section:has(+.learning-disclosure-gate){border-bottom:0}.detail-section>.learning-disclosure-gate:last-child>.disclosure-row,.learning-disclosure-gate:has(+.related-entry)>.disclosure-row{border-bottom:0}}@layer pages{.app-shell.learning-shell{--learn-ink: var(--ink);--learn-muted: var(--muted);--learn-accent: var(--accent);--learn-line: var(--line);--focus-ring: var(--accent);grid-template-columns:196px minmax(0,1fr);color:var(--learn-ink);background:var(--surface)}.app-shell.learning-shell.reading-page{grid-template-columns:minmax(0,1fr)}.learning-workspace{height:100dvh;min-width:0;overflow:auto;color:var(--ink);background:var(--surface)}.learning-workspace h1,.learning-workspace h2,.learning-workspace p{margin:0}.learn-content button,.learn-topbar button{border:0;background:none;padding:0}.learning-workspace button:disabled{cursor:default}.learn-topbar{height:59px;padding:0 38px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.learn-breadcrumbs{display:flex;align-items:center;gap:10px;min-width:0;color:var(--muted);font-size:13px}.learn-breadcrumbs strong{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.learn-breadcrumbs button{white-space:nowrap}.learn-breadcrumbs svg{flex-shrink:0;color:var(--muted)}@media(hover:hover){.learn-breadcrumbs button:hover{color:var(--accent)}}.learn-topbar-note{color:var(--muted);font-size:12px;white-space:nowrap}.learn-content{max-width:1230px;margin:auto;padding:24px 38px 60px}.learn-table-filters select{max-width:160px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);padding:5px 7px;font-size:12px;color:var(--muted)}.learn-recent h2{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:9px}.learn-recent h2 span{font-size:12px;font-weight:400;color:var(--muted)}.learn-empty{text-align:center;padding:60px 20px}.learn-empty h2{font-size:16px;margin-bottom:8px}.learn-empty p{color:var(--muted);font-size:13px;line-height:1.7}.learn-empty button{color:var(--accent);font-weight:600;padding:12px}.learn-course-menu{position:relative}.learn-course-menu summary{display:grid;place-items:center;width:32px;height:35px;color:var(--muted);cursor:pointer;border-radius:var(--radius-control);list-style:none}.learn-course-menu summary::-webkit-details-marker{display:none}@media(hover:hover){.learn-course-menu summary:hover{background:var(--surface-subtle)}}.learn-menu-content{position:absolute;top:40px;right:0;z-index:10;min-width:180px;padding:6px;border:1px solid var(--line);background:var(--surface-float);box-shadow:var(--shadow-float);border-radius:var(--radius-float)}.learn-menu-content button{width:100%;padding:9px 10px;text-align:left;font-size:13px;border-radius:var(--radius-control)}@media(hover:hover){.learn-menu-content button:hover{background:var(--accent-soft);color:var(--accent)}}.learn-menu-content>span{display:block;padding:8px 10px;font-size:12px;color:var(--muted);line-height:1.6}.learn-table-filters{display:flex;gap:14px;align-items:center;padding-bottom:10px}.learn-check{flex-direction:row;font-size:12px;display:inline-flex;gap:6px;align-items:center;color:var(--muted);cursor:pointer;white-space:nowrap}.learn-check input{accent-color:var(--accent);width:13px;height:13px;margin:0}.learn-problems-table{width:100%;border-collapse:collapse;table-layout:fixed}.learn-status-col{width:40px}.learn-source-col{width:87px}.learn-difficulty-col{width:151px}.learn-role-col{width:103px}.learn-required-col{width:52px}.learn-problems-table thead th{text-align:left;height:39px;font-size:11px;color:var(--muted);font-weight:500}.learn-problems-table thead th:first-child{padding-left:4px}.learn-problem-group th{font-weight:600;font-size:13px;text-align:left;padding:17px 0 10px;border-bottom:1px solid var(--line)}.learn-problems-table tbody:first-of-type .learn-problem-group th{padding-top:8px}.learn-group-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.learn-group-heading>span{display:inline-flex;align-items:center;gap:10px}.learn-group-heading small{color:var(--muted);font-size:11px;font-weight:400;width:15px}.learn-group-heading .learn-section-progress{font-size:12px;color:var(--muted);font-weight:400;white-space:nowrap}.learn-problem-row td{border-bottom:1px solid var(--surface-hover);height:46px;padding:7px 9px 7px 0;font-size:13px}@media(hover:hover){.learn-problem-row:hover{background:var(--surface-hover)}}.learn-problem-row .learn-status-cell{padding-left:6px}.learn-completion{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border:1.5px solid var(--line);border-radius:50%;vertical-align:middle}.learn-completion.done{border-color:var(--success);background:var(--success-soft);color:var(--success)}.learning-workspace .learn-problem-title{display:inline;font-size:14px;line-height:1.65;font-weight:500;overflow-wrap:anywhere;text-align:left}@media(hover:hover){.learn-problem-title:hover{color:var(--accent)}}.learn-problem-code{color:var(--muted);font-size:11px;margin-left:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.learn-next-read{margin-left:9px;color:var(--accent);background:var(--accent-soft);font-size:10px;padding:2px 5px;border-radius:var(--radius-tag);white-space:nowrap}.learn-repeat{margin-left:8px;color:var(--muted);font-size:11px;white-space:nowrap}.learn-problem-row .learn-source,.learn-problem-row .learn-role{color:var(--muted);font-size:12px}.learn-source-link{display:inline-flex;max-width:100%;color:var(--muted);font-weight:400;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.learn-source-link>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(hover:hover){.learn-source-link:hover{color:var(--accent);text-decoration-color:currentColor}}.learn-source-link:focus-visible{color:var(--accent);text-decoration-color:currentColor}.learn-rating{display:inline-flex;align-items:baseline;gap:7px;font-size:12px;white-space:nowrap}.learn-rating-source{font-size:11px;font-weight:400;color:var(--muted)}.learn-rating-value{color:var(--rating-ink, var(--muted));font-weight:600}.learn-role-label,.learn-required,.learn-optional{display:inline;padding:0;font-size:12px;line-height:18px;font-weight:500;white-space:nowrap}.learn-role-example{color:var(--accent)}.learn-role-basic{color:var(--info)}.learn-role-practice{color:var(--success)}.learn-role-advanced{color:var(--violet)}.learn-role-challenge{color:var(--warning)}.learn-required{color:var(--accent)}.learn-optional{color:var(--violet)}.learn-mobile-meta{display:none}.learn-table-bottom{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:20px;gap:20px}.learn-teaching-notes{margin-top:8px;color:var(--muted);font-size:12px}.learn-teaching-notes summary{cursor:pointer;width:fit-content}.learn-teaching-notes p{margin:10px 0;line-height:1.7;white-space:pre-wrap}.learn-teaching-notes strong{display:block;font-weight:600}.learn-recent{margin-top:40px}.learn-recent-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--surface-hover);font-size:13px}.learn-recent-row>svg{color:var(--success);flex-shrink:0}.learn-recent-row button{flex:1;text-align:left}@media(hover:hover){.learn-recent-row button:hover{color:var(--accent)}}.learn-recent-row time{color:var(--muted);font-size:12px}.learn-muted{color:var(--muted)}.course-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.course-reading-context{padding:12px max(20px,calc((100vw - 896px)/2));background:var(--accent-soft);border-bottom:1px solid var(--line);flex-shrink:0}.course-reading-context .course-actions{justify-content:space-between}.course-reading-context p{font-size:12px;color:var(--muted);line-height:1.6;margin:8px 0 0}.learn-reading-back{display:flex;align-items:center;gap:8px;border:0;background:none;padding:4px 0;font-size:13px;color:var(--accent)}.learn-reading-pager{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}.learn-reading-pager .button{font-size:12px;padding:6px 9px}.learning-menu{position:fixed;top:14px;left:15px;z-index:20}@media(min-width:1450px){.learn-content{padding-top:36px}}@media(max-width:1120px){.app-shell.learning-shell{grid-template-columns:178px minmax(0,1fr)}.learn-content,.learn-topbar{padding-left:26px;padding-right:26px}.learn-source-col{width:69px}.learn-difficulty-col{width:128px}.learn-role-col{width:79px}}@media(max-width:760px){.learn-content{padding:23px 20px 40px}.learn-topbar{height:54px;padding:0 20px}.learn-topbar-note{display:none}.learn-table-filters{width:100%;justify-content:space-between;padding-top:10px;border-top:1px solid var(--surface-hover)}.learn-status-col{width:28px}.learn-source-col,.learn-difficulty-col,.learn-role-col,.learn-required-col{width:0}.learn-problems-table thead,.learn-problems-table .learn-desktop-cell{display:none}.learn-problem-row td{height:65px;padding:9px 2px}.learn-problem-row .learn-status-cell{padding-left:1px;vertical-align:top;padding-top:14px}.learn-problem-code{display:none}.learn-next-read{margin-left:5px}.learn-mobile-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin-top:4px;font-size:11px;color:var(--muted)}.learn-mobile-meta .learn-rating,.learn-mobile-meta .learn-role-label,.learn-mobile-meta .learn-required,.learn-mobile-meta .learn-optional{font-size:11px}.learn-mobile-meta .learn-role-label,.learn-mobile-meta .learn-required,.learn-mobile-meta .learn-optional{padding:0}.learn-group-heading{font-size:13px}.learn-table-bottom{align-items:flex-start;font-size:11px}.learn-table-bottom span:last-child{text-align:right;max-width:150px}.learn-recent-row{flex-wrap:wrap}.learn-recent-row time{font-size:11px}.course-reading-context{padding:12px 16px}.learn-course-menu .learn-menu-content{right:0;left:auto;max-width:calc(100vw - 40px)}.course-form-grid>label{min-width:130px}.course-edit-section{padding:10px}}@media(max-width:700px){.app-shell.learning-shell{grid-template-columns:minmax(0,1fr)}}@media(max-width:460px){.learn-course-menu{margin-left:auto}}.course-fieldset{border:0;padding:0;margin:0;min-width:0}.course-form-grid{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin-bottom:14px}.course-form-grid>label{flex:1;min-width:150px}.course-editor label,.course-filters label{display:flex;flex-direction:column;gap:7px;font-size:14px}.course-editor input,.course-editor select,.course-editor textarea,.course-filters input,.course-filters select{width:100%;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);padding:9px 10px;color:var(--ink)}.course-editor textarea{min-height:68px;resize:vertical}.course-editor h3{margin:26px 0 12px}.course-editor .course-check{flex-direction:row;align-items:center;min-width:90px}.course-check input{width:auto}.course-edit-section{border:1px solid var(--line);border-radius:var(--radius-control);padding:16px;margin:16px 0}.course-edit-section>.course-actions{align-items:end}.course-edit-section>.course-actions>label{flex:1}.course-edit-item{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.course-edit-item>.course-actions{margin-bottom:16px}.course-edit-item strong{flex:1}.course-edit-item>label{margin:12px 0}.course-search{margin-top:30px}.course-search-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.course-search-row span{flex:1}.course-fieldset{display:block}.course-fieldset>label{margin-bottom:16px}.learn-problem-row{transition:background-color var(--motion-hover) var(--ease-out)}@media(hover:hover){.learn-problem-row:hover{background:var(--state-hover)}}.learn-problem-row[data-returned]{background:var(--state-selected);animation:returned-row var(--motion-expand) var(--ease-out)}}@layer pages{.learn-topic-name{font-family:var(--font-display);font-weight:700;letter-spacing:.02em}.course-diagram{display:block;margin:18px 22px 0;padding-top:8px;border-top:1px solid var(--line);color:var(--diagram-ink)}.course-diagram svg{display:block;width:100%;height:88px}.course-diagram-caption{display:block;margin-top:4px;color:var(--muted);font-size:var(--text-xs);line-height:1.6}.diagram-muted{color:var(--diagram-muted)}.diagram-guide{color:var(--diagram-guide);stroke-dasharray:3 5}.diagram-highlight{color:var(--diagram-highlight);fill:currentColor}.diagram-node{fill:currentColor}.diagram-open{fill:var(--diagram-open);stroke:var(--diagram-muted)}@media(max-width:767px){.course-diagram{margin:16px 20px 0}}@keyframes diagram-guide-flow{0%{stroke-dashoffset:16}to{stroke-dashoffset:0}}}@layer pages{.reading-range-controls,.reading-position-notice{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-block:8px;font-size:var(--text-sm);line-height:1.6;color:var(--muted)}.reading-range-controls{padding-block:6px}.reading-range-controls>span:first-child{flex:1 1 240px;font-weight:600;color:var(--ink)}.reading-range-controls>span{overflow-wrap:anywhere}.reading-position-notice{padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);color:var(--ink)}.reading-position-notice>span{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}.reading-range-controls>.button,.reading-position-notice>.button{min-height:32px;padding:5px 10px;font-size:var(--text-sm);flex-shrink:0}.reading-range-end{margin-block:8px;font-size:var(--text-sm);line-height:1.6;color:var(--muted)}@media(max-width:600px){.reading-range-controls .button,.reading-position-notice .button{min-height:40px}}.course-reading-context p[role=status],.course-reading-context .reading-range-end{display:block}}@layer tokens{:root{--paper-0: #fffefb;--paper-1: #faf8f3;--paper-2: #f3f0e8;--paper-3: #ece8de;--paper-rule-1: #e2ded5;--paper-rule-2: #cfcac0;--ink-1: #1b1e1c;--ink-2: #3a3f3c;--ink-3: #5c625e;--ink-4: #8a8f8b;--board-1: #1e2823;--board-2: #25312b;--board-3: #2d3a33;--board-float: #27332d;--board-rule-1: #3a4840;--board-rule-2: #4a5a51;--chalk-1: #e9ece6;--chalk-2: #cbd2cc;--chalk-3: #a8b2ab;--chalk-4: #7d8882;--cinnabar: #c23b22;--cinnabar-deep: #a8321d;--cinnabar-chalk: #e0654c;--cinnabar-chalk-soft: #f08a73;--seal-paper: #fff8f0;--lv-red: oklch(.62 .2 25);--lv-red-ink: oklch(.47 .16 25);--lv-orange: oklch(.73 .16 58);--lv-orange-ink: oklch(.5 .12 55);--lv-yellow: oklch(.83 .15 90);--lv-yellow-ink: oklch(.5 .1 85);--lv-green: oklch(.68 .16 145);--lv-green-ink: oklch(.47 .12 145);--lv-cyan: oklch(.7 .11 205);--lv-cyan-ink: oklch(.47 .08 210);--lv-blue: oklch(.57 .16 258);--lv-blue-ink: oklch(.45 .15 258);--lv-purple: oklch(.55 .19 305);--lv-purple-ink: oklch(.45 .17 305);--lv-black: oklch(.26 0 0);--lv-black-ink: oklch(.24 0 0);color-scheme:light;--canvas: var(--paper-1);--surface: var(--paper-1);--surface-subtle: var(--paper-2);--surface-hover: var(--paper-2);--surface-float: var(--paper-0);--field: var(--paper-0);--state-hover: var(--paper-2);--state-selected: var(--paper-3);--ink: var(--ink-1);--ink-soft: var(--ink-2);--muted: var(--ink-3);--faint: var(--ink-4);--line: var(--paper-rule-1);--line-strong: var(--paper-rule-2);--control-border: var(--ink-4);--accent: var(--ink-1);--accent-strong: #000000;--accent-soft: var(--paper-3);--accent-border: var(--paper-rule-2);--on-accent: var(--paper-1);--success: #2e7a4e;--success-soft: #e5efe6;--warning: #855719;--warning-soft: #f7eedb;--danger: #aa3942;--danger-soft: #f8e9e8;--info: #3f6684;--violet: #6f4f8f;--pen: var(--cinnabar);--pen-ink: var(--cinnabar-deep);--overlay: rgb(27 30 28 / 36%);--shadow-float: 0 1px 2px rgb(27 30 28 / 8%), 0 12px 32px rgb(27 30 28 / 14%);--focus-ring: var(--ink-1);--code-string: #00696f;--seal-bg: var(--cinnabar);--seal-ink: var(--seal-paper);--diagram-ink: var(--ink);--diagram-muted: var(--line-strong);--diagram-guide: var(--muted);--diagram-highlight: var(--pen);--diagram-open: var(--surface);--level-unrated: var(--line-strong);--level-unrated-ink: var(--muted);--radius-tag: 3px;--radius-control: 6px;--radius-panel: 6px;--radius-float: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--text-xs: 12px;--text-sm: 13px;--text-ui: 14px;--text-title: 16px;--text-h3: 17px;--text-h2: 22px;--text-h1: 28px;--text-display: 36px;--text-reading: 17px;--text-code: 16px;--reading-width: 850px;--note-width: 228px;--z-raised: 1;--z-sticky: 20;--z-drawer: 40;--z-overlay: 70;--z-sheet: 71;--z-dialog: 80;--z-toast: 95;--z-tooltip: 1200;--motion-fast: .14s;--motion-normal: .2s;--motion-expand: .3s;--motion-press: .1s;--motion-exit: .12s;--motion-stamp: .26s;--motion-hover: .1s;--motion-reader: .22s;--motion-route: .26s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: linear( 0, .42 10%, .9 22%, 1.06 32%, 1.07 40%, 1.02 55%, .99 70%, 1 );--font-display: "Bookshelf Serif", "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", serif;--font-ui: "PingFang SC", -apple-system, BlinkMacSystemFont, "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-code: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--blue: var(--accent);--blue-hover: var(--accent-strong);--blue-light: var(--accent-soft);--blue-border: var(--accent-border);--blue-surface: var(--surface-subtle);--green: var(--success)}:root[data-theme=dark]{color-scheme:dark;--lv-red: oklch(.68 .19 25);--lv-red-ink: oklch(.8 .11 25);--lv-orange: oklch(.76 .15 58);--lv-orange-ink: oklch(.83 .1 60);--lv-yellow: oklch(.86 .14 92);--lv-yellow-ink: oklch(.88 .1 92);--lv-green: oklch(.74 .15 145);--lv-green-ink: oklch(.83 .1 145);--lv-cyan: oklch(.76 .1 205);--lv-cyan-ink: oklch(.83 .07 205);--lv-blue: oklch(.68 .14 258);--lv-blue-ink: oklch(.8 .09 258);--lv-purple: oklch(.68 .16 305);--lv-purple-ink: oklch(.8 .1 305);--lv-black: oklch(.94 0 0);--lv-black-ink: oklch(.94 0 0);--canvas: var(--board-1);--surface: var(--board-1);--surface-subtle: var(--board-2);--surface-hover: var(--board-2);--surface-float: var(--board-float);--field: var(--board-2);--state-hover: var(--board-2);--state-selected: var(--board-3);--ink: var(--chalk-1);--ink-soft: var(--chalk-2);--muted: var(--chalk-3);--faint: var(--chalk-4);--line: var(--board-rule-1);--line-strong: var(--board-rule-2);--control-border: var(--chalk-4);--accent: var(--chalk-1);--accent-strong: #ffffff;--accent-soft: var(--board-3);--accent-border: var(--board-rule-2);--on-accent: var(--board-1);--success: #7cc79a;--success-soft: #24392e;--warning: #e3b56f;--warning-soft: #3a3326;--danger: #f1a3ac;--danger-soft: #3f2a2e;--info: #9ebed8;--violet: #c4aedb;--pen: var(--cinnabar-chalk);--pen-ink: var(--cinnabar-chalk-soft);--overlay: rgb(8 12 10 / 62%);--shadow-float: 0 1px 2px rgb(0 0 0 / 30%), 0 16px 40px rgb(0 0 0 / 40%);--focus-ring: var(--chalk-1);--code-string: #7cced2}@media(max-width:767px){:root{--text-reading: 16px;--text-code: 15px}}@supports not (color: oklch(0 0 0)){:root{--lv-red: #e64343;--lv-red-ink: #a12628;--lv-orange: #f08a2a;--lv-orange-ink: #964d09;--lv-yellow: #edc23e;--lv-yellow-ink: #7d5e07;--lv-green: #4db155;--lv-green-ink: #256c2c;--lv-cyan: #2cb2bf;--lv-cyan-ink: #056774;--lv-blue: #3475d3;--lv-blue-ink: #1351a6;--lv-purple: #8c4ac8;--lv-purple-ink: #6c329f;--lv-black: #242424;--lv-black-ink: #1f1f1f}:root[data-theme=dark]{--lv-red: #f75d59;--lv-red-ink: #fda19a;--lv-orange: #f79643;--lv-orange-ink: #f8b884;--lv-yellow: #f2ce59;--lv-yellow-ink: #efd689;--lv-green: #68c36d;--lv-green-ink: #9ed99f;--lv-cyan: #57c3cf;--lv-cyan-ink: #90d5dd;--lv-blue: #5f99ed;--lv-blue-ink: #9ac0f8;--lv-purple: #b07be6;--lv-purple-ink: #cdaef2;--lv-black: #ebebeb;--lv-black-ink: #ebebeb}}}@layer base{:root{font-family:var(--font-ui);color:var(--ink);background:var(--canvas);font-size:var(--text-ui);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}a{color:var(--blue-hover);text-decoration:none}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--text-h1);line-height:1.35;font-weight:700;letter-spacing:.02em}h2{font-size:21px;font-weight:600;line-height:1.5}h3{font-size:var(--text-h3);font-weight:600}h4{font-size:var(--text-sm);font-weight:600}p{line-height:1.75}small{font-size:var(--text-sm)}label{display:flex;flex-direction:column;gap:7px;color:var(--ink);font-size:var(--text-sm)}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-control);padding:9px 11px;min-width:0;max-width:100%;border-color:var(--control-border)}input::placeholder,textarea::placeholder{color:var(--muted)}textarea{resize:vertical;line-height:1.7}input[type=checkbox],input[type=radio]{accent-color:var(--blue);width:15px;height:15px;flex-shrink:0;margin:0}select{padding-right:28px}pre{font-size:var(--text-sm);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-family:var(--font-code)}body{color:var(--ink)}button,a{touch-action:manipulation}button,a,input,textarea,select{transition:color var(--motion-hover) var(--ease-out),background-color var(--motion-hover) var(--ease-out),border-color var(--motion-hover) var(--ease-out),box-shadow var(--motion-hover) var(--ease-out),transform var(--motion-press) var(--ease-out)}:root[data-theme-switching] *,:root[data-theme-switching] *:before,:root[data-theme-switching] *:after{transition:none!important}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}::selection{background:var(--accent);color:var(--on-accent)}*{scrollbar-width:thin;scrollbar-color:var(--accent-border) transparent}svg{stroke-width:1.65;flex-shrink:0}kbd{font:11px/1.6 var(--font-code);color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-control);padding:0 4px}:root{line-break:strict}h1,.display-title{font-family:var(--font-display);text-wrap:balance}.markdown-body h1{font-family:inherit}p,li,.markdown-body{text-autospace:normal}code,kbd,pre,samp{font-variant-numeric:tabular-nums}}@layer components{.seal{--seal-size: 26px;display:inline-grid;place-items:center;flex:none;inline-size:var(--seal-size);block-size:var(--seal-size);border-radius:var(--radius-tag);background:var(--seal-bg);color:var(--seal-ink);font:700 calc(var(--seal-size) * .58) / 1 var(--font-display);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--seal-ink) 22%,transparent);-webkit-user-select:none;user-select:none}.stamp{display:inline-grid;place-items:center;flex:none;min-inline-size:52px;block-size:26px;padding:0 var(--space-2);border:2px solid var(--success);border-radius:var(--radius-tag);color:var(--success);font:700 var(--text-ui) / 1 var(--font-display);letter-spacing:.08em;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--success) 18%,transparent);-webkit-user-select:none;user-select:none}.stamp[data-fresh],.solved-mark[data-fresh=true],.outline-number[data-fresh]{animation:stamp var(--motion-stamp) var(--ease-spring) both}@keyframes stamp{0%{opacity:0;transform:scale(1.15) rotate(-3deg)}to{opacity:1;transform:none}}.problem-cells{display:flex;flex-wrap:wrap;gap:var(--space-1);min-width:0}.problem-cell{inline-size:10px;block-size:14px;border:1.5px solid var(--rating-ink);border-radius:var(--radius-tag)}.problem-cell[data-ac]{background:var(--rating-color)}.problem-cell[data-optional]{border-style:dashed}.problem-cell[data-unavailable]{border-style:dotted;border-color:var(--faint);background:none}}@layer patterns{.page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-2) var(--space-8);padding-bottom:var(--space-4);border-bottom:2px solid var(--ink)}.page-kicker{grid-column:1 / -1;margin:0;color:var(--muted);font-size:var(--text-xs);letter-spacing:.16em}.page-title{margin:0;font-family:var(--font-display);font-size:var(--text-display);font-weight:700;line-height:1.2;letter-spacing:.02em}.page-meta{margin:0;color:var(--muted);font-variant-numeric:tabular-nums}.page-meta b{color:var(--ink);font:600 var(--text-ui) var(--font-code)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);border-bottom:1px solid var(--line)}.tabs{display:flex;gap:var(--space-6);min-width:0;overflow-x:auto;scrollbar-width:none}.tab{flex:none;padding:var(--space-3) 0 var(--space-2);border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);white-space:nowrap}.tab[aria-pressed=true],.tab[aria-selected=true]{border-bottom-color:var(--ink);color:var(--ink);font-weight:600}.tab[data-empty=true]{color:var(--muted)}.tab .n{margin-left:calc(var(--space-1) * 1.5);color:var(--muted);font:var(--text-xs) var(--font-code)}@media(hover:hover){.tab:hover{color:var(--ink)}}.underline-search{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:260px;padding:var(--space-2) 0;border-bottom:1px solid var(--line-strong);color:var(--muted)}.underline-search input{flex:1;min-width:0;padding:0;border:0;border-radius:0;outline:0;background:transparent;color:var(--ink)}.underline-search:focus-within{border-color:var(--ink)}.underline-search kbd{flex:none}.ink-link{display:inline-flex;align-items:center;gap:calc(var(--space-1) * 1.5);padding:0;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:none;color:var(--ink);font-weight:600;white-space:nowrap}@media(max-width:767px){.page-head{grid-template-columns:minmax(0,1fr)}.page-title{font-size:var(--text-h1)}.toolbar{flex-direction:column;align-items:stretch;gap:0}.underline-search{width:100%}}}@layer pages{button:disabled{cursor:not-allowed;opacity:.45}@media(hover:hover){a:hover{text-decoration:underline}}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted,.hint{color:var(--muted)}.hint{font-size:var(--text-sm);line-height:1.65}.required{color:var(--danger)}.preserve-text{white-space:pre-wrap;overflow-wrap:anywhere}.grow{flex:1}.push-left{margin-right:auto}.button{border:1px solid var(--line-strong);background:transparent;color:var(--ink);border-radius:var(--radius-control);min-height:40px;padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-size:var(--text-ui);font-weight:500;line-height:1.3}@media(hover:hover){.button:hover:not(:disabled){border-color:var(--ink)}}.button.primary{background:var(--blue);border-color:var(--blue);color:var(--on-accent)}@media(hover:hover){.button.primary:hover:not(:disabled){background:var(--blue-hover);border-color:var(--blue-hover)}}.button.danger{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}@media(hover:hover){.button.danger:hover:not(:disabled){border-color:var(--danger)}}.button.small{min-height:30px;padding:6px 10px;font-size:var(--text-sm)}.button.pressed{color:var(--ink);border-color:var(--ink);background:var(--state-selected)}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:6px;border:0;background:transparent;border-radius:var(--radius-control);color:var(--muted);line-height:1;width:36px;height:36px}@media(hover:hover){.icon-button:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}}.text-button{border:0;background:none;padding:3px 0;display:inline-flex;align-items:center;gap:5px;color:var(--blue-hover);font-size:var(--text-sm);line-height:1.4;white-space:nowrap}@media(hover:hover){.text-button:hover{text-decoration:underline}}.danger-text{color:var(--danger)}@media(hover:hover){.icon-button.danger-text:hover{color:var(--danger);background:var(--danger-soft)}}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-header h2,.section-header h3{display:flex;align-items:center;gap:8px}.app-shell{height:100dvh;display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden}.app-shell.reading-page{grid-template-columns:minmax(0,1fr)}.reading-page>.sidebar,.main-workspace[hidden]{display:none}.sidebar{background:var(--blue-surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;z-index:12}.brand{display:flex;align-items:center;gap:11px;padding:28px 22px 25px;color:var(--ink)}@media(hover:hover){.brand:hover{text-decoration:none}}.brand-mark{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--on-accent);background:var(--blue);border-radius:var(--radius-control);flex-shrink:0}.brand strong{display:block;font-size:19px;letter-spacing:-.7px;font-weight:600}.brand small{display:block;font-size:var(--text-sm);color:var(--muted);letter-spacing:0;margin-top:5px}.sidebar-nav{overflow:visible;flex:0 0 auto;padding:0 12px 16px}.nav-main{padding-bottom:14px;border-bottom:1px solid var(--line)}.nav-item{width:100%;border:0;background:transparent;border-radius:var(--radius-control);padding:10px 11px;display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink);text-align:left;margin-bottom:3px}@media(hover:hover){.nav-item:hover{background:var(--surface-hover)}}.nav-item.active{color:var(--blue-hover);background:var(--accent-soft);box-shadow:inset 3px 0 var(--blue);font-weight:600}.nav-item>span:nth-child(2){flex:1}.nav-count{font-size:var(--text-sm);min-width:20px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.nav-item.active .nav-count{color:var(--blue-hover)}.pending-dot{width:6px;height:6px;background:var(--blue);border-radius:50%;margin-right:6px}.sidebar-bottom{padding:10px 12px 17px;border-top:1px solid var(--line)}.local-status{display:flex;align-items:center;gap:7px;font-size:var(--text-sm);color:var(--muted);padding:14px 10px 0}.local-status>span{width:5px;height:5px;border-radius:50%;background:var(--success)}.local-status>span.offline{background:var(--warning)}.local-status svg{margin-left:auto}.main-workspace{padding:22px 28px 0;display:flex;flex-direction:column;min-height:0;min-width:0;position:relative;overflow:hidden;background:var(--surface)}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;flex-shrink:0}.workspace-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}.workspace-header p{font-size:var(--text-sm);color:var(--muted);margin-top:0}.workspace-header>.button{margin-top:0}.breadcrumb{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:var(--text-sm);margin-bottom:14px;line-height:1.6}.search-toolbar{display:flex;gap:9px;margin-bottom:8px;flex-shrink:0}.search-input{border:1px solid var(--line);border-radius:var(--radius-control);display:flex;align-items:center;gap:9px;padding:0 12px;background:var(--surface);min-width:0}.search-input svg{color:var(--muted);flex-shrink:0}.search-input input:not([type=checkbox]):not([type=radio]):not([type=file]){border:0;background:none;padding:10px 0;outline:0;min-width:0;width:100%;font-size:14px;box-shadow:none}.search-input:focus-within{border-color:var(--blue)}.button-count{font-size:var(--text-sm);background:var(--accent-soft);color:var(--blue-hover);min-width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-control)}.oj-filter{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--line);flex-shrink:0}.filter-label{font-size:var(--text-sm);color:var(--muted);margin-right:8px;white-space:nowrap}.oj-chip{border:0;background:none;color:var(--muted);border-radius:var(--radius-control);font-size:var(--text-sm);padding:5px 10px;line-height:1.5}@media(hover:hover){.oj-chip:hover{background:var(--blue-surface)}}.oj-chip.selected{background:var(--blue-light);color:var(--blue-hover);font-weight:600}.more-ojs{color:var(--muted);padding-left:5px;font-size:var(--text-sm)}.filter-panel{background:var(--canvas);padding:17px 16px 15px;border-bottom:1px solid var(--line);max-height:350px;overflow:auto;flex-shrink:0}.quick-difficulty{display:flex;align-items:center;flex-wrap:wrap;flex-shrink:0;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.quick-difficulty select{max-width:230px;min-width:120px;font-size:var(--text-sm);padding:5px 25px 5px 8px}.quick-difficulty .text-button{font-size:var(--text-sm)}.table-rating-source{font-size:var(--text-sm);color:var(--muted)}@media(hover:hover){.table-rating-source:hover{color:var(--blue-hover);text-decoration:underline}}.filter-section{display:flex;align-items:center;gap:10px;min-height:30px;margin-bottom:13px}.filter-section .hint{font-size:var(--text-sm)}.segmented{display:flex;border:1px solid var(--line);padding:2px;border-radius:var(--radius-control);background:var(--surface)}.segmented button{background:none;border:0;padding:4px 10px;font-size:var(--text-sm);border-radius:var(--radius-tag);color:var(--muted)}.segmented button.selected{background:var(--blue-light);color:var(--blue-hover)}.topic-filter{flex-wrap:wrap}.topic-filter select{font-size:var(--text-sm);padding:6px 25px 6px 9px;min-width:160px;max-width:260px}.selected-tags,.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;gap:4px;background:var(--surface-subtle);color:var(--muted);font-size:var(--text-sm);line-height:1.5;padding:3px 6px;border-radius:var(--radius-control);white-space:nowrap;border:0}.tag-selected{background:var(--accent-soft);color:var(--blue-hover)}.tag-excluded{background:var(--danger-soft);color:var(--danger)}.rating-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:13px;border-top:1px solid var(--line)}.rating-heading strong{font-size:var(--text-sm);font-weight:600}.rating-heading .hint{display:block;margin-top:4px;font-size:var(--text-sm)}.rating-clauses{padding:6px 0}.rating-clause{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:7px 0}.clause-or{font-size:var(--text-sm);color:var(--muted);width:26px}.rating-clause select{font-size:var(--text-sm);padding:6px 25px 6px 8px;max-width:210px}.range-input{display:flex;align-items:center;gap:7px;font-size:var(--text-sm);color:var(--muted)}.range-input input:not([type=checkbox]){width:84px;padding:6px 8px;font-size:var(--text-sm)}.level-choices{display:flex;flex-wrap:wrap;gap:5px}.check-pill{display:inline-flex;align-items:center;flex-direction:row;gap:4px;font-size:var(--text-sm);white-space:nowrap;border:1px solid var(--line);padding:5px;border-radius:var(--radius-control);background:var(--surface)}.check-pill input{width:12px;height:12px}.checkbox-line{display:flex;flex-direction:row;align-items:center;gap:7px;font-size:var(--text-sm);line-height:1.7}.result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;font-size:var(--text-sm);flex-shrink:0}.result-toolbar strong{font-weight:600;font-variant-numeric:tabular-nums}.clear-filters{margin-left:11px;color:var(--muted);font-size:var(--text-sm)}.sort-control{display:flex;align-items:center;gap:8px;color:var(--muted)}.sort-control select{border:0;background:none;padding:5px 20px 5px 5px;font-size:var(--text-sm);color:var(--muted)}.sort-help{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--muted);font-size:var(--text-sm);border-radius:50%;cursor:help;flex-shrink:0}.problem-table-scroll{flex:1;min-height:100px;overflow:auto;position:relative;border-top:1px solid var(--line)}.problem-open{border:0;background:none;padding:0;text-align:left;display:flex;align-items:center;gap:9px;width:100%;line-height:1.5;min-width:0;min-height:28px}.problem-code{font-size:var(--text-sm);color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.5;letter-spacing:.05px}.problem-open .problem-code{flex-shrink:0;max-width:50%;overflow:hidden;text-overflow:ellipsis}.problem-open strong{font-weight:600;font-size:15px;white-space:normal;text-overflow:ellipsis;overflow:hidden;min-width:0;max-width:100%;line-height:1.55}.problem-open:focus-visible{outline-offset:4px;border-radius:var(--radius-tag)}.row-summary{margin-top:2px;font-size:var(--text-sm);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.6}.table-rating{display:flex;flex-wrap:wrap;flex-direction:row;gap:6px;align-items:center;line-height:1.3;min-width:0}.table-rating>span{font-size:var(--text-sm);font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.table-rating small{max-width:100%;font-size:var(--text-sm);color:var(--muted);line-height:1.5;overflow-wrap:anywhere;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.unrated{color:var(--muted);font-size:var(--text-sm);padding-top:2px}.original-link{width:30px;height:30px;border-radius:var(--radius-control);display:flex;align-items:center;justify-content:center;color:var(--muted);margin-left:-7px}@media(hover:hover){.original-link:hover{background:var(--accent-soft);color:var(--blue-hover)}}.pagination{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:var(--text-sm);color:var(--muted);gap:12px;flex-shrink:0;border-top:1px solid var(--line)}.pagination>div{display:flex;align-items:center;gap:22px}.pagination label{display:flex;flex-direction:row;align-items:center;gap:5px;color:var(--muted);font-size:var(--text-sm)}.pagination select{padding:4px 17px 4px 6px;font-size:var(--text-sm);border-color:var(--line)}.pagination .page-controls{gap:8px;font-variant-numeric:tabular-nums}.page-controls .icon-button{padding:7px}.empty-state{display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center;padding:70px 22px;max-width:600px;margin:0 auto;min-height:280px}.empty-icon{color:var(--accent);background:var(--blue-surface);width:64px;height:64px;border-radius:var(--radius-panel);display:flex;align-items:center;justify-content:center;margin-bottom:22px}.empty-state h3{font-size:17px;color:var(--muted);font-weight:600;margin-bottom:10px}.empty-state p{font-size:var(--text-sm);color:var(--muted);max-width:310px}.empty-state .button{margin-top:22px}.loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:45px 10px;font-size:var(--text-sm);color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-indicator{position:sticky;bottom:12px;left:50%;margin-left:auto;margin-right:auto;width:max-content;padding:7px 12px;font-size:var(--text-sm);color:var(--blue-hover);background:var(--blue-light);border:1px solid var(--blue-border);border-radius:var(--radius-control)}.error-box{display:flex;align-items:flex-start;gap:8px;font-size:var(--text-sm);line-height:1.7;color:var(--danger);padding:11px 13px;background:var(--danger-soft);border:1px solid var(--danger-soft);border-radius:var(--radius-control);margin:7px 0;overflow-wrap:anywhere;flex-shrink:0}.error-box svg{flex-shrink:0;margin-top:2px}.retry-line{margin:3px 0 12px}.detail-page{background:var(--surface);display:flex;flex-direction:column;min-height:0;min-width:0;z-index:15}.detail-toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);font-size:var(--text-sm);color:var(--muted)}.detail-toolbar>span{display:flex;align-items:center;gap:7px}.detail-content{overflow:auto;flex:1;padding:27px 26px 0}.detail-title .problem-code{font-size:var(--text-sm);color:var(--muted)}.detail-title h1{font-size:var(--text-h2);font-weight:700;margin-top:8px;overflow-wrap:anywhere;letter-spacing:.02em}.detail-actions{display:flex;align-items:center;gap:7px;margin:17px 0 4px}.detail-section{padding:22px 0;border-bottom:1px solid var(--line)}.detail-section>h3{font-size:14px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:6px;margin-bottom:13px}.detail-section>p{font-size:14px;color:var(--ink);line-height:1.8;overflow-wrap:anywhere}.detail-section .problem-summary{font-size:14px;color:var(--ink)}.detail-section .tags{margin-top:13px}.detail-section .tag{font-size:var(--text-sm)}.detail-section .section-header h3{margin-bottom:0}.detail-section .section-header{margin-bottom:17px}.identity-link{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--blue-hover);font-size:var(--text-sm);padding:9px 11px;margin-bottom:5px;background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius-control)}.identity-link strong{font-weight:500}.identity-link small{font-size:var(--text-sm);color:var(--muted);margin-left:10px}.identity-link svg{color:var(--muted)}.detail-ratings{padding-top:9px;display:flex;gap:14px;flex-wrap:wrap}.detail-rating{display:flex;align-items:center;gap:8px;padding:5px 0}.rating-value{font-size:var(--text-sm);font-weight:600;color:var(--muted);background:var(--accent-soft);padding:5px 8px;border-radius:var(--radius-control)}.detail-rating a{color:var(--muted);font-size:var(--text-sm);display:flex;align-items:center;gap:4px}.detail-rating small{display:block;color:var(--muted);font-size:var(--text-sm);margin-top:4px;overflow-wrap:anywhere}.relationship-group{margin-top:18px}.relationship-group h4{display:flex;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--muted);font-weight:500;margin-bottom:9px}.relationship-item{position:relative;border-left:2px solid var(--accent-border);padding:2px 24px 3px 11px;margin-bottom:13px}.relationship-open{border:0;background:none;padding:0;text-align:left;color:var(--blue-hover)}@media(hover:hover){.relationship-open:hover strong{text-decoration:underline}}.relationship-open strong{display:block;font-size:var(--text-sm);font-weight:600}.relationship-open small{display:block;font-size:var(--text-sm);margin-top:4px;color:var(--muted)}.relationship-item p{font-size:var(--text-sm);color:var(--muted);margin-top:6px;line-height:1.8}.remove-edge{position:absolute;right:0;top:0;color:var(--muted)}.empty-line{font-size:var(--text-sm)!important;color:var(--muted)!important}.sources-section .count{font-size:var(--text-sm);color:var(--muted);font-weight:400;margin-left:auto}.source-item{border-bottom:1px solid var(--surface-hover);padding:11px 0;color:var(--muted);font-size:var(--text-sm)}.source-item summary{cursor:pointer;line-height:1.7;overflow-wrap:anywhere}.source-item .source-path{font-size:var(--text-sm);color:var(--muted);margin-top:10px;line-height:1.7}.source-item dl{font-size:var(--text-sm);display:grid;grid-template-columns:55px 1fr;gap:8px;line-height:1.5;color:var(--muted)}.source-item dt{color:var(--muted)}.source-item dd{margin:0;overflow-wrap:anywhere}.source-item pre{font-size:var(--text-sm);background:var(--canvas);padding:9px;color:var(--muted)}.detail-meta{font-size:var(--text-sm);color:var(--muted);display:flex;justify-content:space-between;gap:6px;padding:20px 0 25px}.sidebar-scrim,.mobile-menu{display:none}.notice{padding:11px 13px;background:var(--blue-surface);border:1px solid var(--accent-border);border-radius:var(--radius-control);color:var(--muted);font-size:var(--text-sm);line-height:1.7;display:flex;gap:8px;align-items:flex-start;margin:12px 0}.notice svg{flex-shrink:0;margin-top:2px}.notice.success{background:var(--success-soft);border-color:var(--success-soft);color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:28px}.modal{width:min(540px,100%);max-height:calc(100dvh - 56px);display:flex;flex-direction:column;background:var(--surface-float);border-radius:var(--radius-float);box-shadow:var(--shadow-float);outline:0;overflow:hidden}.modal-wide{width:min(870px,100%)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 24px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-heading h2{font-size:17px;font-weight:600}.modal form{display:flex;flex-direction:column;min-height:0}.modal-body{padding:23px 24px;overflow:auto;min-height:0}.modal-body>label{margin-bottom:16px}.modal-body>.hint{margin-top:12px}.modal-footer{padding:16px 24px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:9px;background:var(--surface);flex-shrink:0}.form-section{padding-bottom:23px;margin-bottom:22px;border-bottom:1px solid var(--line)}.form-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.form-section h3{margin-bottom:17px;font-size:14px}.form-section>.section-header h3{margin-bottom:0}.form-section>.section-header{margin-bottom:10px}.form-section>label{margin-bottom:16px}.form-section>.hint{margin:8px 0 14px}.field-label{display:block;font-size:var(--text-sm);margin-bottom:8px;color:var(--ink)}.topic-picker{display:flex;flex-wrap:wrap;gap:7px;max-height:170px;overflow:auto;padding:10px;background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius-control)}.topic-option{display:flex;flex-direction:row;align-items:center;gap:6px;padding:5px 8px;font-size:var(--text-sm);border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-control)}.topic-option.depth-0{font-weight:600;background:var(--blue-surface)}.topic-option input{width:12px;height:12px}.repeat-fields{border:1px solid var(--line);padding:13px;border-radius:var(--radius-control);margin-bottom:11px;background:var(--surface)}.repeat-fields>label{margin-top:11px}.identity-line{display:flex;align-items:flex-end;gap:10px}.identity-line>label:first-child{width:125px}.identity-line .primary-radio{flex-direction:row;align-items:center;gap:5px;padding-bottom:11px;white-space:nowrap;font-size:var(--text-sm)}.identity-line>.icon-button{margin-bottom:6px}.url-field{display:flex;align-items:center;flex-direction:row;gap:7px;color:var(--muted)}.url-field input{flex:1}.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}.rating-editor{grid-template-columns:1.5fr 1fr 1fr 28px;align-items:flex-end}.rating-editor>.icon-button{margin-bottom:7px}.taxonomy-layout{display:grid;grid-template-columns:260px 1fr;min-height:400px;overflow:hidden}.taxonomy-list{border-right:1px solid var(--line);overflow:auto;padding:20px 15px;max-height:65dvh;background:var(--canvas)}.taxonomy-list>.button{width:100%;margin-bottom:13px}.taxonomy-node{display:flex;align-items:center;gap:7px;background:none;border:0;width:100%;text-align:left;padding:8px 10px;font-size:var(--text-sm);color:var(--muted);border-radius:var(--radius-control)}@media(hover:hover){.taxonomy-node:hover{background:var(--blue-light);color:var(--blue-hover)}}.taxonomy-node.selected{background:var(--blue-light);color:var(--blue-hover)}.taxonomy-editor{padding:24px;gap:18px;overflow:auto}.taxonomy-editor h3{font-size:15px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.confirm-body>p{margin-bottom:12px;font-size:var(--text-sm);line-height:1.8}.confirm-body>p:last-child{margin-bottom:0}.relation-form>label{margin-bottom:15px}.relation-search-results{max-height:210px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-control);margin:5px 0 19px}.relation-result{display:block;border:0;background:var(--surface);text-align:left;padding:10px 12px;width:100%;border-bottom:1px solid var(--surface-hover)}@media(hover:hover){.relation-result:hover{background:var(--blue-light)}}.relation-result.selected{background:var(--blue-light)}.relation-result strong{display:block;font-size:var(--text-sm);font-weight:500}.relation-result small{font-size:var(--text-sm);display:block;color:var(--muted);margin-top:4px}.relation-search-results>.hint{padding:15px}.chosen-target{display:flex;align-items:center;gap:9px;border:1px solid var(--blue-border);background:var(--blue-light);padding:10px 12px;margin:12px 0;color:var(--blue-hover);border-radius:var(--radius-control)}.chosen-target>span{flex:1}.chosen-target strong{font-size:var(--text-sm);font-weight:600}.chosen-target small{display:block;font-size:var(--text-sm);color:var(--muted);margin-top:4px}.data-manager{height:100%;display:flex;flex-direction:column;min-height:0}.data-manager .workspace-header{padding-top:0}.back-link{color:var(--muted);margin-bottom:15px;font-size:var(--text-sm)}.data-tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);flex-shrink:0}.data-tabs>button{display:flex;align-items:center;gap:7px;background:none;border:0;border-bottom:2px solid transparent;padding:0 0 14px;color:var(--muted);font-size:var(--text-sm)}.data-tabs>button.active{border-bottom-color:var(--blue);color:var(--blue-hover)}.data-content{overflow:auto;flex:1;padding:25px 0 35px}.data-content>.section-header h2{font-size:16px}.import-batches{padding-top:16px}.import-batch{display:flex;align-items:center;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);margin-bottom:13px;padding:20px;gap:17px}@media(hover:hover){.import-batch:hover{background:var(--canvas);border-color:var(--blue-border)}}.batch-icon{display:flex;align-items:center;justify-content:center;width:42px;height:44px;background:var(--blue-surface);color:var(--muted);border-radius:var(--radius-control);flex-shrink:0}.batch-content{flex:1;min-width:0}.batch-content strong{font-size:14px;font-weight:600;display:block;overflow-wrap:anywhere}.batch-content small{display:block;font-size:var(--text-sm);color:var(--muted);margin-top:7px}.batch-counts{display:flex;flex-wrap:wrap;gap:12px;font-size:var(--text-sm);margin-top:12px}.batch-open{display:flex;align-items:center;gap:6px;color:var(--blue-hover);font-size:var(--text-sm);white-space:nowrap}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.preview-heading h2{font-size:19px;margin:10px 0 5px}.preview-heading .text-button{font-size:var(--text-sm);color:var(--muted)}.classification-tabs{display:flex;flex-wrap:wrap;gap:5px;margin:20px 0 15px}.classification-tabs button{display:flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:var(--radius-control);background:none;padding:6px 10px;color:var(--muted);font-size:var(--text-sm)}.classification-tabs button.active{background:var(--blue-light);color:var(--blue-hover);border-color:var(--blue-border)}.classification-tabs button span{font-size:var(--text-sm);color:var(--muted)}.import-table-wrap{border:1px solid var(--line);border-radius:var(--radius-control);overflow:auto}.import-table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}.import-table th{background:var(--blue-light);font-weight:500;color:var(--muted);font-size:var(--text-sm);padding:11px 12px;border-bottom:1px solid var(--line)}.import-table td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top}.import-table .check-cell{width:40px;text-align:center}.import-table input{width:14px;height:14px}.import-table .classification-cell{width:85px}.import-table .expand-cell{width:45px}.import-table td:last-child{padding-left:4px;padding-right:8px}.import-table .row-selected{background:var(--canvas)}.import-title{display:block;background:none;border:0;padding:0;font-size:var(--text-sm);font-weight:500;text-align:left;line-height:1.65;overflow-wrap:anywhere}@media(hover:hover){.import-title:hover{color:var(--blue-hover)}}.import-row-summary{font-size:var(--text-sm);color:var(--muted);line-height:1.6;margin-top:5px;overflow-wrap:anywhere}.status-badge{display:inline-flex;align-items:center;padding:3px 6px;border-radius:var(--radius-control);font-size:var(--text-sm);white-space:nowrap}.status-new{color:var(--success)}.status-updated,.status-duplicate{color:var(--muted)}.status-pending{color:var(--warning)}.status-excluded{color:var(--muted)}.status-conflict{color:var(--danger)}.status-badge.status-new{background:var(--success-soft)}.status-badge.status-updated{background:var(--accent-soft)}.status-badge.status-duplicate,.status-badge.status-excluded{background:var(--surface-subtle)}.status-badge.status-pending{background:var(--warning-soft)}.status-badge.status-conflict{background:var(--danger-soft)}.import-item-details{padding:7px 13px 12px}.import-reason{font-size:var(--text-sm);color:var(--muted);background:var(--canvas);padding:10px 12px;border-radius:var(--radius-control);margin-bottom:14px}.preview-info strong{font-size:var(--text-sm);color:var(--muted);font-weight:500}.preview-info p{font-size:var(--text-sm);color:var(--muted);line-height:1.9;margin:6px 0 11px}.preview-identities{display:flex;gap:10px;flex-wrap:wrap;font-size:var(--text-sm);margin:12px 0}.preview-provenance{font-size:var(--text-sm);color:var(--muted);margin-top:17px}.preview-provenance summary{cursor:pointer}.preview-provenance pre{font-size:var(--text-sm);background:var(--canvas);padding:13px;margin-top:9px;max-height:420px;overflow:auto}.diff-table{border:1px solid var(--line);margin-top:15px;border-radius:var(--radius-control);overflow:hidden}.diff-heading,.diff-row{display:grid;grid-template-columns:100px 1fr 1fr}.diff-heading{font-size:var(--text-sm);color:var(--muted);background:var(--canvas)}.diff-heading span{padding:9px}.diff-row>*{padding:10px;border-right:1px solid var(--line);border-top:1px solid var(--line);min-width:0;max-height:350px;overflow:auto}.diff-row strong{font-size:var(--text-sm);color:var(--muted);font-weight:500}.diff-row pre{font-size:var(--text-sm);color:var(--muted)}.diff-row pre:last-child{background:var(--success-soft);color:var(--muted);border-right:0}.import-actionbar{display:flex;align-items:center;justify-content:space-between;gap:15px;position:sticky;bottom:-35px;background:var(--surface);padding:18px 0;border-top:1px solid var(--line);margin-top:18px}.import-actionbar strong{font-size:var(--text-sm);font-weight:600}.import-actionbar .hint{font-size:var(--text-sm);display:block;margin-top:5px}.spacious{padding:20px;text-align:center}.data-section{padding:5px 0 27px;margin-bottom:22px;border-bottom:1px solid var(--line)}.data-section h2{font-size:16px}.data-section>p{font-size:var(--text-sm);line-height:1.9;color:var(--muted);max-width:680px;margin-top:12px}.backup-create{display:flex;align-items:center;gap:10px;margin:22px 0}.backup-create input{max-width:330px;flex:1}.backup-row{display:flex;align-items:center;gap:13px;padding:16px 0;border-top:1px solid var(--line)}.backup-row>svg{color:var(--muted);flex-shrink:0}.backup-row>div{flex:1;min-width:0}.backup-row strong{font-size:var(--text-sm);font-weight:500;color:var(--muted);overflow-wrap:anywhere;display:block}.backup-row small{display:block;font-size:var(--text-sm);color:var(--muted);margin-top:7px}.file-picker{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:row;gap:10px;padding:19px;border:1px dashed var(--blue-border);border-radius:var(--radius-control);background:var(--blue-surface);color:var(--blue-hover);cursor:pointer;margin:20px 0}.file-picker input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%}.file-picker:focus-within{outline:3px solid var(--focus-ring);outline-offset:2px}.json-editor{font-family:var(--font-code);font-size:var(--text-sm);background:var(--surface)!important}.form-intro{font-size:var(--text-sm);color:var(--muted);line-height:1.9}.confirm-import-list{padding:0;list-style:none;max-height:260px;overflow:auto;margin:14px 0}.confirm-import-list li{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid var(--surface-hover);font-size:var(--text-sm)}.confirm-import-list li span{font-size:var(--text-sm);white-space:nowrap}.backup-name{font-size:var(--text-sm)!important;overflow-wrap:anywhere;padding:12px;background:var(--blue-surface);border-radius:var(--radius-control);color:var(--muted)}@media(max-width:900px){.app-shell,.app-shell.with-detail{grid-template-columns:190px minmax(0,1fr)}.brand{padding-left:14px;padding-right:14px}.brand strong{font-size:17px}.main-workspace{padding:20px 22px 0}.save-filter{font-size:0;gap:0;padding:8px 10px}.workspace-header h1{font-size:var(--text-h2)}.workspace-header p{max-width:270px}.filter-section .hint{display:none}.rating-clause{gap:5px}.rating-clause select{max-width:150px}.range-input input:not([type=checkbox]){width:65px}.batch-open{font-size:0;gap:0}.import-batch{padding:16px;gap:12px}.batch-content strong{font-size:var(--text-sm)}.import-actionbar .hint{max-width:220px}.taxonomy-layout{grid-template-columns:220px 1fr}}@media(max-width:700px){.app-shell,.app-shell.with-detail{grid-template-columns:minmax(0,1fr)}.sidebar{display:none;position:fixed;left:0;top:0;bottom:0;width:225px;box-shadow:var(--shadow-float);z-index:40}.sidebar-open .sidebar{display:flex}.sidebar-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);border:0;z-index:35}.mobile-menu{display:flex;position:absolute;left:14px;top:15px}.main-workspace{padding:50px 16px 0}.workspace-header{padding-bottom:12px;gap:10px}.workspace-header h1{font-size:var(--text-h2)}.workspace-header p{font-size:var(--text-sm);max-width:220px}.workspace-header>.button{font-size:var(--text-sm);padding:8px 10px}.breadcrumb{font-size:var(--text-sm);margin-bottom:9px}.search-toolbar{gap:7px}.filter-toggle{font-size:var(--text-sm);padding:8px 10px}.oj-filter{gap:4px;padding-bottom:8px}.oj-chip{padding:4px 7px}.oj-filter .filter-label{margin-right:4px}.result-toolbar{padding-top:8px}.pagination>div{gap:10px}.pagination{font-size:var(--text-sm)}.pagination label{gap:3px}.detail-content{padding:25px 23px 0}.modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px);border-radius:var(--radius-panel)}.modal-heading{padding:17px 18px}.modal-body{padding:19px 18px}.modal-footer{padding:14px 18px;gap:7px}.modal-footer .button{font-size:var(--text-sm)}.form-grid{grid-template-columns:1fr 1fr;gap:9px}.rating-editor{grid-template-columns:1fr 80px 85px 23px}.identity-line{flex-wrap:wrap}.identity-line>label:first-child{width:95px}.identity-line .primary-radio{padding-bottom:2px}.identity-line>.icon-button{margin:0}.topic-picker{max-height:180px}.taxonomy-layout{grid-template-columns:150px 1fr;min-height:370px}.taxonomy-list{padding:13px 8px}.taxonomy-list>.button{font-size:var(--text-sm);padding:6px}.taxonomy-editor{padding:8px 13px;gap:14px}.taxonomy-node,.taxonomy-editor label{font-size:var(--text-sm)}.taxonomy-editor .form-actions{flex-wrap:wrap}.preview-heading{align-items:flex-start}.preview-heading h2{font-size:16px}.preview-heading>.button{margin-top:26px;font-size:var(--text-sm)}.notice{font-size:var(--text-sm);padding:10px}.classification-tabs{gap:2px}.classification-tabs button{padding:5px 7px;font-size:var(--text-sm)}.import-table .check-cell{width:32px}.import-table th,.import-table td{padding-left:8px;padding-right:8px}.import-table .classification-cell{width:64px}.import-table .expand-cell{width:30px}.import-title,.import-row-summary{font-size:var(--text-sm)}.import-actionbar{gap:10px}.import-actionbar>.button{font-size:var(--text-sm);padding:8px 10px}.import-actionbar .hint{max-width:160px;font-size:var(--text-sm)}.diff-heading,.diff-row{grid-template-columns:64px 1fr 1fr}.diff-row>*{padding:6px}.import-item-details{padding:3px 3px 10px}.backup-create{flex-wrap:wrap}.backup-create input{width:160px}.backup-row{gap:8px}.backup-row>.button{font-size:var(--text-sm);padding:6px}.backup-row strong,.backup-row small{font-size:var(--text-sm)}.data-section>.section-header{align-items:flex-start}.data-section h2{font-size:14px}.data-section>.section-header>.button{font-size:var(--text-sm);padding:7px 9px}.form-intro{font-size:var(--text-sm)}.toast{bottom:15px;font-size:var(--text-sm);min-width:250px}}.summary-toggle{display:inline-flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);padding:5px 8px;color:var(--muted);font-size:var(--text-sm);white-space:nowrap}@media(hover:hover){.summary-toggle:hover{background:var(--blue-light);border-color:var(--blue-border);color:var(--blue-hover)}}.summary-toggle.pressed{background:var(--blue-light);border-color:var(--blue-border);color:var(--blue-hover)}@media(max-width:700px){.workspace-header p{display:none}.result-toolbar{flex-wrap:wrap;gap:4px}.result-toolbar>.sort-control{margin-left:auto}.sort-control{gap:6px}.sort-control>svg{display:none}.pagination>div{gap:6px}.pagination .icon-button{min-height:32px;min-width:32px}.filter-panel{max-height:min(350px,40dvh)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important;scroll-behavior:auto!important}}.detail-page .detail-toolbar{flex-shrink:0;padding:14px max(24px,calc((100% - 896px)/2));gap:16px}.detail-anchors{display:flex;gap:20px;font-size:14px}.detail-anchors button{color:var(--muted);background:none;border:0;padding:4px 0}@media(hover:hover){.detail-anchors button:hover{color:var(--blue)}}.detail-page .detail-content{padding:32px max(24px,calc((100% - 896px)/2)) 64px;scroll-padding-top:20px}.detail-page .detail-title h1{outline:none;font-size:var(--text-h1);line-height:1.4}.detail-page .detail-section>h2{font-size:20px;margin:0 0 18px}.detail-page .detail-section p{font-size:inherit;line-height:inherit}@media(max-width:700px){.detail-page .detail-toolbar{padding:12px 16px}.detail-page .detail-content{padding:24px 18px 48px}.detail-page .detail-title h1{font-size:var(--text-h2)}.detail-anchors{gap:12px;font-size:var(--text-sm)}}}@layer pages{button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline-width:2px}.workbench-root{height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas)}.workbench-topbar{height:64px;flex:0 0 64px;background:var(--surface);border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.workbench-brand{border:0;background:none;display:flex;align-items:center;gap:10px;padding:0}.workbench-brand strong{font:700 19px/1 var(--font-display);letter-spacing:.1em}.workbench-tools{display:flex;align-items:center;gap:14px}.command-trigger{background:var(--field);border:1px solid var(--line-strong);display:flex;align-items:center;gap:9px;color:var(--ink);border-radius:var(--radius-control);padding:7px 10px;min-width:225px;font-size:var(--text-sm);min-height:38px}.command-trigger kbd{margin-left:auto}@media(hover:hover){.command-trigger:hover{border-color:var(--control-border);color:var(--ink)}}.theme-trigger{width:38px;height:38px}.workbench-root .app-shell{flex:1;min-height:0;height:auto;grid-template-columns:224px minmax(0,1fr);background:transparent}.workbench-root .app-shell.reading-page{grid-template-columns:minmax(0,1fr)}:is(.workbench-root,.nav-drawer) .sidebar{background:var(--surface);border-color:var(--line)}.workspace-label{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:26px 22px 16px;color:var(--muted);font-size:var(--text-sm)}.workspace-label span{font:9px var(--font-code);letter-spacing:1px;opacity:.8}:is(.workbench-root,.nav-drawer) .sidebar-nav{padding:0 16px}:is(.workbench-root,.nav-drawer) .nav-main{border:0;padding-bottom:12px}:is(.workbench-root,.nav-drawer) .nav-item{font-size:var(--text-ui);min-height:44px;padding:10px 12px;color:var(--muted);border-radius:var(--radius-control);gap:9px;font-weight:500}:is(.workbench-root,.nav-drawer) .nav-item.active{color:var(--ink);background:var(--accent-soft);font-weight:600}:is(.workbench-root,.nav-drawer) .nav-count{color:var(--muted);background:none;font-size:var(--text-sm)}:is(.workbench-root,.nav-drawer) .sidebar-bottom{padding:14px 12px 16px}.sidebar-section-label{display:block;color:var(--muted);font-size:var(--text-sm);padding:0 10px 10px}:is(.workbench-root,.nav-drawer) .local-status{padding-top:12px;font-size:var(--text-sm);color:var(--muted)}.nav-section{padding-top:15px}.nav-section-heading{font-size:var(--text-sm)}.workbench-root .learning-workspace{height:100%;background:transparent;color:var(--ink)}.learn-topbar{height:42px;padding:0 36px;border-bottom:0}.learn-topbar-note{font:12px var(--font-code);letter-spacing:1px}.learn-breadcrumbs{font-size:var(--text-sm)}.learn-content{max-width:1400px;padding:20px 36px 56px}.workspace-header h1{font-size:var(--text-h1);font-weight:700;letter-spacing:.02em}.learn-table-filters{gap:14px;flex-wrap:wrap}.course-table-search,.outline-search{display:flex;flex-direction:row;align-items:center;gap:6px}.course-table-search{width:168px}.course-table-search input[type=search],.outline-search input:not([type]){padding:5px 0;border:0;background:transparent;border-radius:0;width:100%;font-size:var(--text-sm)}.course-table-search:focus-within{box-shadow:0 1px var(--accent)}.course-clear{margin-top:12px}.learn-problems-table{font-size:var(--text-sm)}.learn-problems-table thead th{font-size:var(--text-sm);font-weight:500;padding-top:15px;padding-bottom:9px}.learn-group-heading{min-height:38px;font-size:var(--text-sm)}.learn-problem-title{font-size:15px;font-weight:600;line-height:1.55}@media(hover:hover){.learn-problem-row:hover{background:var(--surface-subtle)}}.learn-problem-code{font:12px var(--font-code)}.learn-next-read{background:none;color:var(--accent);font-size:var(--text-sm);border-left:1px solid var(--accent-border);padding:0 0 0 7px;border-radius:0}.learn-rating-value{font-weight:700;font-size:var(--text-sm)}.learn-rating-source{font-size:var(--text-sm);color:var(--muted)}.learn-role-label,.learn-required,.learn-optional{font-size:var(--text-sm)}.learn-required{color:var(--accent)}.learn-optional{color:var(--muted)}.learn-table-bottom{font-size:var(--text-sm)}.course-overall-progress{width:min(100%,460px);margin:0 0 28px}.course-progress-caption{display:flex;justify-content:space-between;gap:16px;margin-bottom:9px;color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.course-progress-caption strong{color:var(--accent);font-weight:600;margin-left:7px}.course-progress-track{height:6px;overflow:hidden;border-radius:var(--radius-control);background:var(--line)}.course-progress-track>span{display:block;height:100%;background:var(--accent);transform-origin:left;transition:transform var(--motion-expand) var(--ease-out)}.learn-recent-row{min-height:46px}.main-workspace{padding:32px 36px 0;background:var(--surface)}.workspace-heading{flex-direction:column;align-items:flex-start;gap:7px}.workspace-header{padding-bottom:22px}.search-toolbar{margin-bottom:12px}.oj-filter{padding-bottom:8px}.oj-chip{border-radius:var(--radius-control)}.result-toolbar{padding:14px 0 10px}.reader-layout{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:0;min-width:0;height:100%;overflow:hidden}.reader-layout.reader-single{grid-template-columns:minmax(0,1fr)}.reader-outline{background:var(--surface);border-right:1px solid var(--line);min-height:0;display:flex;flex-direction:column;padding:15px 12px}.outline-back{background:none;border:0;color:var(--muted);display:flex;align-items:center;gap:7px;padding:6px 9px 17px;font-size:var(--text-sm);text-align:left}.reader-outline details{min-height:0;display:flex;flex-direction:column}.reader-outline summary{display:flex;align-items:center;gap:9px;padding:9px;list-style:none;cursor:pointer}.reader-outline summary::-webkit-details-marker{display:none}.reader-outline summary strong{font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-outline summary span{font:12px var(--font-code);color:var(--muted);margin-left:auto}.outline-panel{display:flex;flex-direction:column;min-height:0}.reader-outline details:not([open]) .outline-panel{display:none}.outline-search{padding:5px 9px;color:var(--muted);border-bottom:1px solid var(--line);margin:0 0 10px}.outline-panel nav{overflow:auto;min-height:0;max-height:calc(100dvh - 244px)}.outline-section{font-size:var(--text-sm);color:var(--muted);padding:16px 9px 8px}.outline-panel nav button{width:100%;border:0;background:none;display:flex;gap:8px;text-align:left;padding:12px 10px;border-radius:var(--radius-control);align-items:baseline;font-size:var(--text-sm);line-height:1.5}@media(hover:hover){.outline-panel nav button:hover{background:var(--surface-hover)}}.outline-panel nav button[aria-current=page]{background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent);color:var(--accent-strong)}.outline-number{width:22px;flex-shrink:0;font:12px var(--font-code);color:var(--muted)}.outline-number.done{color:var(--success)}.outline-panel nav button small{font-size:var(--text-sm);display:block;margin-top:3px;color:var(--muted)}.outline-empty{color:var(--muted);font-size:var(--text-sm);padding:12px 8px}.course-reading-context{max-width:none;width:100%;background:var(--surface-subtle);border-bottom:1px solid var(--line);margin:0;padding:10px 26px}.course-reading-context p{margin-top:4px;font-size:var(--text-sm)}.learn-reading-pager{font-size:var(--text-sm)}.learn-reading-pager .button{border:0;background:none;min-height:28px;font-size:var(--text-sm);padding:5px 8px}.detail-page{position:relative;height:100%}.detail-page .detail-toolbar{padding:13px max(28px,calc((100% - var(--reading-width)) / 2));min-height:58px}.detail-toolbar>.button{background:none;border:0;padding:5px 0;color:var(--muted);min-height:28px;font-size:var(--text-sm)}.detail-anchors{gap:20px;font-size:var(--text-sm)}.detail-anchors button:focus-visible{outline-offset:5px}.detail-page .detail-content{padding:24px max(28px,calc((100% - var(--reading-width)) / 2)) 72px;scroll-behavior:smooth}.detail-title{padding-bottom:18px;border-bottom:1px solid var(--line)}.detail-page .detail-title h1{font-size:var(--text-h1);letter-spacing:.02em;font-weight:700;line-height:1.45}.detail-title .tags{margin-top:14px}.detail-title .tag{background:none;color:var(--muted);border:0;padding:0 8px 0 0}.detail-page .detail-section>h2{font-size:22px;font-weight:600;margin-bottom:18px}.checkins-section{background:none;border-bottom:1px solid var(--line);border-radius:0}.checkin-record{border:0;border-bottom:1px solid var(--line);border-radius:0}.checkin-record summary{background:var(--surface-subtle)}.checkin-primary.button{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}@media(hover:hover){.checkin-primary.button:hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-strong)}}.data-section{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 24px}.import-batch{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 8px;margin:0}.import-batches{border-top:1px solid var(--line);padding:0}.course-fieldset,.course-edit-section{border-radius:0;border-width:0 0 1px;padding:16px 0}.course-edit-item{border-radius:0;background:var(--surface-subtle);border-left:2px solid var(--line)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--overlay);animation:overlay-in var(--motion-normal) ease-out}.dialog-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:71;width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 40px);background:var(--surface-float);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-float);box-shadow:var(--shadow-float);animation:dialog-in var(--motion-normal) var(--ease-out)}.dialog-overlay[data-motion=instant],.dialog-content[data-motion=instant]{animation:none;transition:none}.dialog-content.modal-wide{width:min(960px,calc(100vw - 40px))}.modal-overlay{opacity:1;animation:none;transition:opacity var(--motion-normal) var(--ease-out)}.dialog-content.modal{opacity:1;transform:translate(-50%,-50%);animation:none;transition:opacity var(--motion-normal) var(--ease-out),transform var(--motion-normal) var(--ease-out)}:is(.modal-overlay,.dialog-content.modal)[data-state=closed]{opacity:0;pointer-events:none;transition-duration:var(--motion-fast);animation:surface-exit var(--motion-fast) linear}.dialog-content.modal[data-state=closed]{transform:translate(-50%,calc(-50% + 6px))}.modal-overlay[data-state=closed]{pointer-events:none!important}@starting-style{.modal-overlay[data-state=open]{opacity:0}.dialog-content.modal[data-state=open]{opacity:0;transform:translate(-50%,calc(-50% + 6px))}}:is(.modal-overlay,.dialog-content.modal)[data-motion=instant],:root[data-motion-input=keyboard] :is(.modal-overlay,.dialog-content.modal,.dropdown-content){animation:none;transition:none}:is(.modal-overlay,.dialog-content.modal)[data-motion=instant][data-state=closed],:root[data-motion-input=keyboard] :is(.modal-overlay,.dialog-content.modal,.dropdown-content,.nav-overlay,.nav-drawer)[data-state=closed]{animation:surface-exit 1ms linear!important}.modal-heading{padding:18px 22px}.modal-heading h2{font-size:20px}.modal-body{padding:20px 22px}.modal-footer{padding:14px 22px;background:var(--surface-subtle)}.dropdown-content{min-width:180px;max-width:calc(100vw - 24px);background:var(--surface-float);color:var(--ink);box-shadow:var(--shadow-float);border:1px solid var(--line);padding:6px;border-radius:var(--radius-float);z-index:80;opacity:1;transform:translateY(0);transition:opacity var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.dropdown-content[data-state=closed]{opacity:0;pointer-events:none;animation:surface-exit var(--motion-fast) linear}@starting-style{.dropdown-content[data-state=open]{opacity:0;transform:translateY(-3px)}}.dropdown-content [role=menuitem]{padding:10px;display:flex;gap:9px;align-items:center;font-size:var(--text-ui);cursor:pointer;border-radius:var(--radius-control);outline:none}.dropdown-content [role=menuitem][data-highlighted]{background:var(--accent-soft);color:var(--accent-strong)}.dropdown-content [data-disabled]{opacity:.5;pointer-events:none}.dropdown-content [role=separator]{height:1px;background:var(--line);margin:5px 0}.dropdown-content>div:not([role]){padding:7px 9px;color:var(--muted);font-size:var(--text-sm)}.menu-check{margin-left:auto}.command-dialog{width:min(610px,calc(100vw - 24px))}.command-dialog .modal-heading{padding:12px 16px;border-bottom:0}.command-dialog .modal-heading h2{font-size:var(--text-sm);color:var(--muted);font-weight:500}.command-input{display:flex;align-items:center;padding:0 18px 15px;gap:12px;color:var(--muted);border-bottom:1px solid var(--line)}.command-input [cmdk-input]{border:0!important;background:none!important;padding:5px 0!important;outline:0;font-size:17px;flex:1}[cmdk-list]{height:var(--cmdk-list-height);max-height:min(400px,calc(100dvh - 240px));transition:height var(--motion-fast) var(--ease-out);overflow:auto;padding:8px}[cmdk-group-heading]{color:var(--muted);font-size:var(--text-sm);padding:12px 10px 6px}[cmdk-item]{display:flex;align-items:center;gap:11px;padding:11px 10px;border-radius:var(--radius-control);cursor:pointer;font-size:var(--text-sm)}[cmdk-item]>span{flex:1;min-width:0;overflow-wrap:anywhere}[cmdk-item] small{display:block;font-size:var(--text-sm);color:var(--muted);margin-top:4px}[cmdk-item]>svg{color:var(--muted)}[cmdk-item][data-selected=true]{background:var(--accent-soft);color:var(--accent-strong)}.command-footer{border-top:1px solid var(--line);display:flex;gap:20px;padding:12px 18px;color:var(--muted);font-size:var(--text-sm)}.command-footer kbd{margin-right:3px}.command-empty{padding:40px 20px;text-align:center;font-size:14px}.command-empty p{color:var(--muted);font-size:var(--text-sm);margin-top:8px}.connection-banner{display:flex;gap:12px;align-items:center;background:var(--warning-soft);color:var(--warning);padding:10px 24px;border-bottom:1px solid var(--line);flex-shrink:0;font-size:var(--text-sm)}.connection-banner>span{flex:1;display:flex;align-items:center;gap:12px}.connection-banner strong{font-weight:600}.connection-banner button{color:inherit;display:flex;align-items:center;gap:6px;background:none;border:1px solid currentColor;border-radius:var(--radius-control);padding:5px 9px;white-space:nowrap}.error-box{align-items:center;font-size:var(--text-sm)}.error-box>span{flex:1}.error-box button{color:inherit}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);opacity:1;max-width:calc(100vw - 35px);padding:11px 13px 11px 16px;border-radius:var(--radius-float);display:flex;align-items:center;gap:9px;line-height:1.6;color:var(--ink);background:var(--surface-float);box-shadow:var(--shadow-float);border:1px solid var(--line);font-size:var(--text-sm);z-index:95;transition:transform var(--motion-normal) var(--ease-out),opacity var(--motion-normal) var(--ease-out)}.toast[data-state=closed]{opacity:0;transform:translate(-50%,8px);pointer-events:none;transition-duration:var(--motion-fast)}@starting-style{.toast[data-state=open]{opacity:0;transform:translate(-50%,8px)}}.toast>svg{color:var(--success)}.toast .icon-button{color:var(--muted);padding:3px;margin-left:10px}@media(hover:hover){.toast .icon-button:hover{color:var(--ink);background:var(--state-hover)}}.list-skeleton{padding:6px 0}.list-skeleton>div{height:58px;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.list-skeleton i,.list-skeleton span:not(.sr-only),.list-skeleton b{display:block;background:var(--surface-hover);height:12px;border-radius:var(--radius-tag)}.list-skeleton i{width:20px;height:20px}.list-skeleton span:not(.sr-only){width:42%}.list-skeleton b{width:13%;margin-left:auto}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 6px))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes surface-exit{0%{--surface-exit-progress: 0}to{--surface-exit-progress: 1}}@keyframes skeleton-pulse{50%{opacity:.5}}@media(min-width:1024px){.reader-outline summary>svg:last-child{display:none}}@media(max-width:1190px){.reader-layout{grid-template-columns:230px minmax(0,1fr)}.learn-table-filters{margin-left:auto}}@media(max-width:1023px){.reader-layout{display:flex;flex-direction:column}.reader-outline{flex:0 0 auto;padding:0 16px;border-right:0;border-bottom:1px solid var(--line);max-height:45dvh}.outline-back{display:none}.reader-outline summary{padding:12px 0}.outline-panel{overflow:auto}.outline-panel nav{max-height:28dvh}.reader-layout .detail-page{flex:1;min-height:0}.learn-content{padding:16px 18px 40px}.learn-topbar{padding:0 24px}}@media(max-width:767px){.icon-button,.theme-trigger{min-width:44px;min-height:44px}.detail-anchors button{min-height:44px}.course-reading-context p{display:none}.learn-reading-pager .button{min-height:36px}.workbench-topbar{height:58px;flex-basis:58px;padding:0 16px}.workbench-brand strong{font-size:17px}.workbench-tools{gap:8px}.command-trigger{min-width:0;border:0;background:none;padding:6px}.command-trigger span,.command-trigger kbd{display:none}.command-trigger>svg{width:18px;height:18px}.workbench-root .app-shell{grid-template-columns:minmax(0,1fr);position:relative}:is(.workbench-root,.nav-drawer) .sidebar{top:50px;bottom:0;height:auto;z-index:45}.sidebar-scrim{z-index:40}.workbench-root .learning-menu,.main-workspace>.mobile-menu{top:9px;left:12px}.learn-topbar{padding:0 16px;height:45px}.learn-topbar-note{display:none}.learn-content{padding:16px 18px 40px}.workspace-header h1{font-size:27px}.learn-table-filters{width:100%;margin:0;justify-content:space-between;padding-bottom:8px;gap:8px}.course-table-search{width:100%}.learn-check{font-size:var(--text-sm)}.learn-problem-title{font-size:15px}.learn-table-bottom{font-size:var(--text-sm)}.main-workspace{padding:50px 16px 0}.workspace-header{gap:10px;padding-bottom:16px}.workspace-header p{max-width:none;font-size:var(--text-sm)}.problem-open{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.problem-open strong{white-space:normal;font-size:15px;line-height:1.5}.table-rating-source,.summary-toggle{font-size:var(--text-sm)}.sort-control{gap:5px}.course-reading-context{padding:9px 16px}.learn-reading-back{max-width:115px;font-size:var(--text-sm)}.learn-reading-pager{gap:5px}.detail-page .detail-toolbar{min-height:48px;padding:2px 16px;gap:8px}.detail-anchors{gap:14px}.detail-page .detail-content{padding:20px 18px 52px}.detail-page .detail-title h1{font-size:var(--text-h1)}.dialog-content,.dialog-content.modal-wide{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.modal-heading,.modal-body,.modal-footer{padding-left:16px;padding-right:16px}.command-input [cmdk-input]{font-size:16px}.connection-banner{padding:10px 14px;align-items:flex-start;gap:8px}.connection-banner>span{flex-direction:column;align-items:flex-start;gap:3px;font-size:var(--text-sm)}.connection-banner button{font-size:var(--text-sm)}.data-tabs{gap:18px}.import-batch{padding:14px 0;gap:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.reader-layout .detail-anchors{gap:24px}.reader-layout .detail-anchors button{padding:6px 0}.course-table-search input[type=search]{border:0!important;background:none!important}.outline-search input:not([type=checkbox]):not([type=radio]):not([type=file]){border:0;background:none;padding:5px 0}.nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--overlay);opacity:1;transition:opacity var(--motion-normal) var(--ease-out)}.nav-overlay[data-state=closed]{opacity:0;transition-duration:var(--motion-fast);animation:surface-exit var(--motion-fast) linear}.nav-drawer{position:fixed;inset:0 auto 0 0;width:min(270px,86vw);z-index:71;background:var(--surface-float);color:var(--ink);outline:none;box-shadow:var(--shadow-float);border-right:1px solid var(--line);opacity:1;transform:translate(0);transition:opacity var(--motion-normal) var(--ease-out),transform var(--motion-normal) var(--ease-out)}.nav-drawer[data-state=closed]{opacity:0;transform:translate(-16px);pointer-events:none;transition-duration:var(--motion-fast);animation:surface-exit var(--motion-fast) linear}@starting-style{.nav-overlay[data-state=open]{opacity:0}.nav-drawer[data-state=open]{opacity:0;transform:translate(-16px)}}.nav-drawer .sidebar{position:static;transform:none;visibility:visible;width:100%;height:100%;border:0}.nav-drawer .workspace-label{padding-top:35px;padding-right:45px}.nav-close{position:absolute;top:12px;right:12px;z-index:1}.nav-drawer .sidebar{display:flex}.topic-search{display:flex;align-items:center;gap:8px;margin:10px 0}.topic-search input:not([type=checkbox]):not([type=radio]):not([type=file]){flex:1;font-size:var(--text-sm)}.topic-selected{color:var(--muted);font-size:var(--text-sm);padding:6px 0 0;line-height:1.65}.taxonomy-list>.topic-search{padding:0 8px}:root[data-motion=reduce] *,:root[data-motion=reduce] *:before,:root[data-motion=reduce] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){:is(.dropdown-content,.nav-overlay,.nav-drawer,.modal-overlay,.dialog-content.modal)[data-state=closed]{animation:surface-exit 1ms linear!important}}:root[data-motion=reduce] :is(.dropdown-content,.nav-overlay,.nav-drawer,.modal-overlay,.dialog-content.modal)[data-state=closed]{animation:surface-exit 1ms linear!important}.learning-workspace{container:learning / inline-size}.main-workspace{container:library / inline-size}@container learning (max-width: 720px){.learn-status-col{width:28px}.learn-source-col,.learn-difficulty-col,.learn-role-col,.learn-required-col{width:0}.learn-problems-table thead,.learn-problems-table .learn-desktop-cell,.learn-problem-code{display:none}.learn-problem-row td{height:65px;padding:9px 2px}.learn-problem-row .learn-status-cell{vertical-align:top;padding-top:14px}.learn-mobile-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin-top:4px;font-size:var(--text-sm);color:var(--muted)}.learn-mobile-meta .learn-rating,.learn-mobile-meta .learn-role-label,.learn-mobile-meta .learn-required,.learn-mobile-meta .learn-optional{font-size:var(--text-sm);padding:0}}@container library (max-width: 700px){.problem-open{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.problem-open strong{white-space:normal;font-size:15px;line-height:1.5}}:is(.workbench-root,.nav-drawer) .sidebar{overflow-y:auto;overscroll-behavior:contain}:is(.workbench-root,.nav-drawer) .sidebar-nav{overflow:visible;flex:0 0 auto}:is(.workbench-root,.nav-drawer) .sidebar-bottom{flex-shrink:0;margin-top:auto}:is(.workbench-root,.nav-drawer) .nav-item{position:relative}:is(.workbench-root,.nav-drawer) .nav-item.active{background:var(--state-selected);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.management-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:none;cursor:pointer}.management-toggle svg{transform:rotate(-90deg);transition:transform var(--motion-fast) var(--ease-out)}.management-toggle[aria-expanded=true] svg{transform:rotate(0)}#management-navigation[hidden]{display:none}@media(hover:hover){:is(.workbench-root,.nav-drawer) .nav-item:hover:not(.active){background:var(--state-hover);color:var(--muted)}:is(.workbench-root,.nav-drawer) .nav-item.active:hover{background:var(--state-selected)}}@media(prefers-reduced-motion:no-preference){:root[data-motion-input=pointer]:not([data-motion=reduce]) :is(.button,.icon-button,.nav-item):active:not(:disabled){transform:scale(.97)}:root[data-motion-input=pointer]:not([data-motion=reduce]) .reader-next-card:active:not(:disabled){transform:scale(.99);transition-duration:var(--motion-press)}}.command-trigger{width:auto;min-width:0;padding:6px 10px;flex:0 0 auto;background:transparent}.command-trigger kbd{font-size:11px}.workbench-topbar>.mobile-menu{position:static;margin:0;flex:0 0 auto}.list-skeleton>div{animation:skeleton-show var(--motion-fast) var(--ease-out) var(--motion-normal) both}@keyframes skeleton-show{0%{opacity:0}to{opacity:1}}@starting-style{.course-progress-track>span{transform:scaleX(0)!important}}.reader-layout .detail-page .detail-toolbar{padding:6px 20px;min-height:52px;height:52px;gap:12px;flex-shrink:0;background:var(--surface)}.reader-layout .detail-toolbar>:first-child{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.reader-layout .detail-anchors{position:relative;gap:16px;flex-shrink:0;align-self:stretch;align-items:center}.detail-anchors button[aria-current=location]{color:var(--accent);font-weight:600}.detail-anchor-indicator{position:absolute;height:2px;left:0;bottom:0;background:var(--accent);pointer-events:none;transition:transform var(--motion-normal) var(--ease-out),width var(--motion-normal) var(--ease-out)}.reader-controls{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}.reader-controls .reading-range-trigger{font-size:12px;min-height:30px;padding:4px 7px;max-width:175px;overflow:hidden;white-space:nowrap}.reader-controls .learn-reading-pager{display:flex;align-items:center;gap:4px;white-space:nowrap}.reader-notices:empty{display:none}.reader-notices{padding:8px 20px;background:var(--surface-subtle);border-bottom:1px solid var(--line);font-size:var(--text-sm)}.reader-notices p,.reader-notices .error-box,.reader-notices .reading-position-notice{margin:0}.detail-title-meta{color:var(--muted);font-size:var(--text-sm);margin-top:7px}.detail-page .detail-content{scroll-behavior:auto}.detail-title .learning-mode{margin:12px 0 0;padding:0;border:0}.detail-title .learning-mode p{font-size:12px}.detail-title .learning-mode-buttons{padding:2px}.detail-title .learning-mode-buttons>.button{min-height:28px;padding:3px 9px}.detail-actions .button.secondary,.detail-actions .handout-export-trigger{background:transparent;border-color:transparent;color:var(--muted)}.detail-article{animation:reader-enter var(--motion-normal) var(--ease-out) both}.detail-article[data-direction=next]{animation-name:reader-next}.detail-article[data-direction=previous]{animation-name:reader-previous}.detail-article[data-motion=instant]{animation:none}@keyframes reader-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes reader-next{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes reader-previous{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.reader-next-card{display:grid;grid-template-columns:1fr auto;text-align:left;width:100%;padding:18px 20px;gap:6px 12px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:var(--radius-control);margin-top:24px;color:var(--ink);transition:transform var(--motion-press) var(--ease-out),border-color var(--motion-fast) var(--ease-out)}.reader-next-card span,.reader-next-card small{color:var(--muted);font-size:var(--text-sm)}.reader-next-card svg{grid-column:2;grid-row:1 / 4;align-self:center}.reader-next-card strong{overflow-wrap:anywhere}@media(hover:hover){.reader-next-card:hover:not(:disabled){border-color:var(--accent)}}:root[data-view-transition=active] .workbench-topbar{view-transition-name:workbench-topbar}:root[data-view-transition=active] .app-shell>.sidebar{view-transition-name:workbench-sidebar}.learn-topic-name,.course-title-text,.problem-title-text{display:inline-block;max-width:100%}.problem-code-text{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:top}::view-transition{--motion-view: var(--motion-normal)}:root[data-view-transition-kind=problem]::view-transition{--motion-view: var(--motion-reader)}:root[data-view-transition-kind=course]::view-transition{--motion-view: var(--motion-route)}::view-transition-group(*){animation-duration:var(--motion-view);animation-timing-function:var(--ease-out)}::view-transition-group(root),::view-transition-group(workbench-topbar),::view-transition-group(workbench-sidebar),::view-transition-new(workbench-topbar),::view-transition-new(workbench-sidebar){animation:none}::view-transition-old(root),::view-transition-old(workbench-topbar),::view-transition-old(workbench-sidebar){animation:none;opacity:0}::view-transition-old(course-title),::view-transition-old(problem-title),::view-transition-old(problem-code){animation:view-leave var(--motion-fast) var(--ease-out) both}::view-transition-new(root),::view-transition-new(course-title),::view-transition-new(problem-title),::view-transition-new(problem-code){animation:view-enter var(--motion-view) var(--ease-out) both}@keyframes view-enter{0%{opacity:0}to{opacity:1}}@keyframes view-leave{0%{opacity:1}to{opacity:0}}select:not([multiple]){-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23728385' stroke-width='1.5' d='m2 4 4 4 4-4'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 10px center!important;padding-right:30px!important;border-radius:var(--radius-control);border:1px solid var(--line);min-height:36px}summary{list-style:none}summary::-webkit-details-marker{display:none}details:not(:has(>summary svg))>summary:before{content:"";display:inline-block;width:6px;height:6px;margin-right:10px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);transition:transform var(--motion-fast) var(--ease-out)}details[open]:not(:has(>summary svg))>summary:before{transform:rotate(135deg)}details[open]>:not(summary,.outline-panel){animation:disclosure-reveal var(--motion-fast) var(--ease-out) both}@media(max-width:767px){.workbench-topbar{gap:4px;padding-inline:8px}.workbench-brand{gap:6px;min-width:0}.workbench-tools{gap:2px}.command-trigger{min-width:36px;padding:6px;border:0}.command-trigger span,.command-trigger kbd{display:none}.reader-layout .detail-page .detail-toolbar{height:auto;min-height:48px;padding:4px 12px;flex-wrap:wrap;gap:2px 10px}.reader-layout .detail-toolbar>:first-child{max-width:calc(100% - 8px)}.reader-layout .detail-anchors{order:3;width:100%;justify-content:space-between;gap:6px}.reader-controls{flex-wrap:wrap;justify-content:flex-end;gap:2px}.reader-controls .reading-range-trigger{max-width:155px}.reader-layout .detail-anchors button{min-height:36px;font-size:12px}.reader-notices{padding:8px 12px}}:root[data-motion-input=keyboard] :where(button,a,input,textarea,select,summary,details[open]>*,tr,.learn-problem-row,.topic-row,.topic-arrow,.diagram-guide,.diagram-guide path,.diagram-highlight,.diagram-highlight circle,.solved-mark,.stamp,.outline-number,.management-toggle svg,.course-progress-track>span,.detail-anchor-indicator,[cmdk-list],.toast,.dialog-content,.dialog-overlay,.modal-overlay,.dropdown-content,.nav-drawer,.nav-overlay,.detail-article,.learning-disclosure-fresh,.training-tooltip-positioner,.up-contest,.up-contest-row,.up-task-letter,.advanced-filters-backdrop,.advanced-filters-overlay),:root[data-motion-input=keyboard] summary:before{animation:none!important;transition:none!important}:root[data-motion-input=keyboard]::view-transition-old(*),:root[data-motion-input=keyboard]::view-transition-new(*),:root[data-motion=reduce]::view-transition-old(*),:root[data-motion=reduce]::view-transition-new(*){animation:none!important}:root:is([data-motion=reduce],[data-motion-input=keyboard]) .list-skeleton>div{animation:skeleton-show 1ms var(--ease-out) var(--motion-normal) both!important}@media(prefers-reduced-motion:reduce){::view-transition-old(*),::view-transition-new(*){animation:none!important}.list-skeleton>div{animation:skeleton-show 1ms var(--ease-out) var(--motion-normal) both!important}}}@layer pages{.library-workspace{padding:18px 28px 0}.library-new{min-height:38px;padding:8px 12px;flex-shrink:0}.library-tools{display:flex;flex-shrink:0;gap:12px;justify-content:space-between;align-items:center;min-height:52px;padding:8px 0 10px}.library-filters,.library-display{display:flex;gap:6px;align-items:center;min-width:0}.library-filters{flex-wrap:wrap}.library-display{flex-shrink:0}.library-control{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:4px 9px;border:1px solid transparent;background:none;color:var(--muted);border-radius:var(--radius-control);white-space:nowrap;font-size:13px}@media(hover:hover){.library-control:hover{background:var(--surface-subtle);color:var(--ink)}}.library-control[data-state=open]{background:var(--surface-subtle);color:var(--ink)}.library-control.source-control{border-color:var(--line);background:var(--surface-subtle);color:var(--ink)}.library-filter-count{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.library-control.filter-toggle.has-active-filters{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.library-active-filters{display:flex;align-items:center;flex-shrink:0;gap:12px;min-width:0;margin:-2px 0 8px}.library-filter-chips{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto;padding:3px;overscroll-behavior-x:contain}.library-filter-chip{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;max-width:240px;min-height:30px;padding:4px 8px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);color:var(--ink);font-size:12px}.library-filter-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-filter-chip svg,.library-clear-filters{flex-shrink:0}.library-clear-filters{white-space:nowrap;min-height:36px;margin-left:auto}.filter-validation-message,.advanced-filters-footer .filter-validation-message{flex-basis:100%;color:var(--danger);font-size:13px;line-height:1.5;white-space:normal}:is(.filter-panel,.quick-difficulty) input[aria-invalid=true]{border-color:var(--danger)}.library-filter-warning{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-bottom:8px;flex-shrink:0;color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-control);font-size:13px;line-height:1.5}.library-filter-warning .text-button{flex-shrink:0}.command-status{padding:8px 14px;font-size:var(--text-sm);color:var(--muted);line-height:1.6}.library-tools .quick-difficulty{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;border:0;min-height:32px;align-items:center}.library-tools .quick-difficulty>.filter-label,.library-tools .quick-difficulty>.text-button{display:none}.library-tools .quick-difficulty select{padding:4px 22px 4px 8px;height:32px;max-width:156px;min-width:0;font-size:13px;border-color:var(--line);border-radius:var(--radius-control);background-color:var(--surface)}.library-tools .quick-difficulty .range-input{gap:4px}.library-tools .quick-difficulty .range-input input{width:58px;height:32px;padding:4px;font-size:13px}.library-sort{gap:4px}.library-sort-menu{width:min(300px,calc(100vw - 24px))}.library-sort-note{margin:0;padding:7px 10px;font-size:var(--text-sm);line-height:1.6;color:var(--muted);overflow-wrap:anywhere}.library-reset{width:30px;height:32px;padding:4px;flex-shrink:0}.library-menu{max-height:min(560px,var(--radix-dropdown-menu-content-available-height));overflow-y:auto}.library-menu :is([role=menuitemcheckbox],[role=menuitemradio]){display:flex;align-items:center;gap:9px;padding:10px;font-size:var(--text-ui);border-radius:var(--radius-control);outline:none;cursor:pointer}.library-menu :is([role=menuitemcheckbox],[role=menuitemradio])[data-highlighted]{background:var(--surface-subtle);color:var(--ink)}.library-workspace .problem-table-scroll{min-height:0;border-color:var(--line);overscroll-behavior:contain}.library-workspace .pagination{min-height:38px;padding:3px 0;gap:8px;font-size:12px}.library-workspace .pagination>div{gap:14px}.library-workspace .pagination select{padding:2px 18px 2px 5px;font-size:12px}.library-workspace .page-controls .icon-button{padding:5px}@container library (max-width: 760px){.library-tools{gap:6px}.library-control{padding-inline:6px}.library-tools .quick-difficulty select{max-width:132px}}@media(max-width:767px){.library-workspace{padding:14px 16px 0}.library-new{min-height:36px;font-size:12px;padding:7px 9px}.library-tools{align-items:flex-start;padding-block:8px;min-height:52px}.library-control,.library-tools .quick-difficulty select{min-height:36px;height:36px}.library-filters{flex:1;gap:4px}.library-display{gap:2px}.library-display .library-control span{display:none}.library-display .library-sort{width:32px;min-width:32px;padding-inline:0}.library-tools .filter-toggle>span:not(.library-filter-count){display:none}.library-tools .quick-difficulty{max-width:100%}.library-tools .quick-difficulty select{max-width:117px;font-size:12px}.library-control{font-size:12px}.library-workspace .pagination{min-height:44px}.library-workspace .pagination>div{gap:8px}.library-workspace .pagination label{font-size:0;gap:0}.library-workspace .pagination select{font-size:12px;height:32px}.library-workspace .pagination .page-controls{gap:2px}.library-workspace .page-controls .icon-button{min-width:32px;min-height:36px}}@media(max-width:359px){.library-workspace{padding-inline:12px}.library-new span{display:none}.library-new{width:36px}.library-tools .quick-difficulty select{max-width:105px}.library-tools{gap:0}.library-control{gap:4px;padding-inline:5px}}@media(max-width:767px){.library-workspace .difficulty-badge{max-width:100%;white-space:normal;overflow-wrap:anywhere}.library-tools .filter-toggle,.library-display .library-control{min-width:34px}}@media(max-width:359px){.library-tools .quick-difficulty select{max-width:99px}.library-tools .filter-toggle,.library-display .library-control{min-width:30px}}.library-quick-difficulty{min-width:0}.library-difficulty-summary{display:none;border-color:var(--line);color:var(--ink)}@container library (max-width: 760px){.library-quick-difficulty.has-difficulty{display:none}.library-difficulty-summary{display:inline-flex;max-width:156px}.library-difficulty-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis}.library-difficulty-summary svg{flex-shrink:0}.library-display .library-control span{display:none}.library-display .library-sort{width:32px;min-width:32px;padding-inline:0}}@media(max-width:767px){.library-difficulty-summary{max-width:117px}.library-filter-chip{max-width:min(220px,55vw);min-height:32px}}@media(max-width:359px){.library-difficulty-summary{max-width:99px}}@keyframes returned-row{0%{opacity:.55}to{opacity:1}}}@layer pages{.main-workspace.index-page{padding:var(--space-8) var(--space-8) 0}.index-head .page-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.index-head-end{display:flex;align-items:center;gap:var(--space-4)}.index-page .library-tools{gap:var(--space-3) var(--space-4);min-height:0;padding:var(--space-2) 0}.index-search{flex:0 1 280px}.index-search .icon-button{width:24px;height:24px;padding:0}.index-page .library-filters{flex:1}.library-control.rail-toggle.pressed{color:var(--ink)}.index-page .library-active-filters{margin:var(--space-2) 0 0}.index-layout{display:grid;grid-template-columns:minmax(0,1fr);flex:1;min-height:0}.index-layout[data-rail=open]{grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-8)}.index-layout[data-rail=open]:has(.index-advanced){grid-template-columns:minmax(0,1fr) 380px}.index-results{display:flex;flex-direction:column;min-width:0;min-height:0}.index-page .problem-table-scroll{border-top:0}.index-table{width:100%;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}.index-table th{position:sticky;top:0;z-index:var(--z-raised);padding:var(--space-2);border-bottom:1px solid var(--line-strong);background:var(--canvas);color:var(--muted);font-size:var(--text-xs);font-weight:500;text-align:left;white-space:nowrap}.index-table td{padding:var(--space-2);border-bottom:1px solid var(--line);vertical-align:middle}.index-table.comfortable td{padding-block:var(--space-3)}.index-table tbody tr{cursor:pointer}@media(hover:hover){.index-table tbody tr:hover{background:var(--state-hover)}}.index-table tbody tr:focus-within,.index-table tbody tr.selected{background:var(--state-hover)}.index-table tbody tr[data-returned]{background:var(--state-selected);animation:returned-row var(--motion-expand) var(--ease-out)}.index-table .c-ac{width:32px;padding-inline:var(--space-1);color:var(--success);text-align:center}.index-table .c-code{width:104px;overflow:hidden;color:var(--muted);font-family:var(--font-code);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.index-table .c-topics{width:24%;color:var(--muted);font-size:var(--text-sm)}.index-table td.c-topics{display:table-cell;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.index-table .c-level{width:188px}.index-table td.c-level{font-size:var(--text-sm)}.index-table td.c-level .table-rating+.table-rating{margin-top:var(--space-1)}.index-table .c-link{width:40px;padding-inline:0}.index-table .problem-open{display:block;min-height:0;color:var(--ink);font-size:var(--text-ui);font-weight:600;line-height:1.5;text-wrap:pretty}.index-table td.c-title .markdown-body{margin-top:var(--space-1)}.index-table .table-rating-source{color:var(--muted);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}.index-table .original-link{margin:0}.index-rail{min-height:0;padding:var(--space-2) 0 var(--space-6) var(--space-6);overflow-y:auto;overscroll-behavior:contain;border-left:1px solid var(--line)}.index-rail-body{display:grid;gap:var(--space-8)}.rail-section{display:grid;gap:var(--space-2)}.rail-heading{display:flex;align-items:center;gap:var(--space-1)}.rail-heading h2{flex:1;margin:0;font-family:var(--font-display);font-size:var(--text-h3);font-weight:700;letter-spacing:.04em}.rail-heading h2:focus{outline:0}.rail-heading .icon-button{width:30px;height:30px}.rail-search{width:100%}.rail-topics{display:grid;gap:var(--space-3);padding-top:var(--space-2)}.rail-group-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.rail-group-name{color:var(--muted);font-size:var(--text-xs);letter-spacing:.08em}.rail-group-toggle{display:inline-grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:var(--radius-control);background:none;color:var(--faint)}.rail-group-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}.rail-group ul,.rail-views{display:grid;gap:var(--space-1);margin:var(--space-1) 0 0;padding:0;list-style:none}.rail-check{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;color:var(--ink);font-size:var(--text-ui);cursor:pointer}.rail-check.rail-group-name.has-children{color:var(--ink);font-weight:600}.rail-hint{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.65}.rail-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-xs)}.rail-views li{display:flex;align-items:center;gap:var(--space-1)}.rail-view-open{display:flex;flex:1;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-1) 0;border:0;background:none;color:var(--ink);text-align:left}.rail-view-open span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-views li.active .rail-view-open{font-weight:600}.index-advanced{display:grid;gap:var(--space-4)}.index-advanced .filter-panel{gap:var(--space-4)}.index-rail-sheet{position:fixed;inset:0 0 0 auto;z-index:var(--z-sheet);width:min(360px,calc(100vw - var(--space-12)));padding:var(--space-4) var(--space-6) var(--space-8);overflow-y:auto;background:var(--surface-float);box-shadow:var(--shadow-float)}@media(max-width:767px){.main-workspace.index-page{padding:var(--space-4) var(--space-4) 0}.index-head-end{justify-content:space-between}.index-search{flex-basis:100%}.rail-toggle>span:not(.library-filter-count){display:none}.index-page .library-tools{flex-direction:row;flex-wrap:wrap;align-items:center}.index-table thead{display:none}.index-table,.index-table tbody{display:block}.index-table tr{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:var(--space-1) var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.index-table td{padding:0;border:0}.index-table .c-ac{grid-row:1;grid-column:1;width:auto;padding:0}.index-table .c-code{grid-row:1;grid-column:2;width:auto}.index-table .c-level{grid-row:1;grid-column:3;width:auto;justify-self:end}.index-table .c-title{grid-row:2;grid-column:2 / -1}.index-table td.c-topics{grid-row:3;grid-column:2 / -1;width:auto}.index-table .c-link{display:none}}}@layer pages{.catalog{max-width:1240px;padding:var(--space-8) var(--space-8) var(--space-12)}.catalog .page-head+.catalog-teacher,.catalog .page-head+.toolbar{margin-top:0}.catalog-teacher{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-6);padding:var(--space-3) 0;border-bottom:1px solid var(--line);color:var(--muted)}.catalog-teacher>div{display:flex;flex-wrap:wrap;gap:var(--space-2)}.catalog-filters{display:flex;flex:none;align-items:center;gap:var(--space-4)}.catalog-filters select{padding-block:var(--space-1)}.catalog .catalog-resume{display:flex;align-items:baseline;gap:var(--space-3) var(--space-4);margin:0;padding:var(--space-4) 0;border-bottom:1px solid var(--line)}.catalog-resume .label{color:var(--muted);font-size:var(--text-xs);letter-spacing:.14em}.catalog-resume strong{font-family:var(--font-display);font-size:var(--text-h3);letter-spacing:.03em}.catalog-resume .detail{min-width:0;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.catalog-resume .ink-link{margin-left:auto}.catalog .chapter{margin-top:var(--space-12)}.catalog .chapter-title{display:flex;align-items:baseline;gap:var(--space-3);margin:0;padding-bottom:var(--space-2);border-bottom:1px solid var(--line-strong);font-family:var(--font-display);font-size:var(--text-h2);font-weight:700;line-height:1.3;letter-spacing:.06em}.catalog .chapter-title span{color:var(--muted);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:400;letter-spacing:0}.topic-list{margin:0;padding:0;list-style:none}.topic-list>li{border-bottom:1px solid var(--line)}.topic-row{position:relative;display:grid;grid-template-columns:144px minmax(0,1fr) 300px 104px 16px;align-items:center;gap:var(--space-8);margin:0 calc(var(--space-3) * -1);padding:var(--space-4) var(--space-3);border-radius:var(--radius-tag);transition:background-color var(--motion-hover) var(--ease-out)}@media(hover:hover){.topic-row:hover{background:var(--state-hover)}.topic-row:hover .topic-arrow{color:var(--ink);transform:translate(3px)}.topic-row:hover :is(path.diagram-guide,.diagram-guide path){animation:diagram-guide-flow var(--motion-expand) var(--ease-out) both}}.topic-row:has(.topic-open:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}.catalog .topic-row .course-diagram{grid-column:1;margin:0;padding:0;border:0}.catalog .topic-row .course-diagram svg{width:144px;height:auto}.catalog .topic-row .course-diagram-caption{display:none}.topic-name{grid-column:2;min-width:0}.catalog .topic-name h3{margin:0;font-size:inherit}.topic-open{padding:0;border:0;background:none;color:var(--ink);font-family:var(--font-display);font-size:var(--text-h2);font-weight:700;line-height:1.35;letter-spacing:.03em;text-align:left;text-wrap:balance}.topic-open:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.topic-open:focus-visible{outline:0}.topic-name small{display:block;margin-top:var(--space-1);color:var(--muted);font-size:var(--text-sm)}.topic-cells{display:grid;gap:var(--space-2);min-width:0}.cell-line{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center}.cell-line>span:first-child{color:var(--muted);font-size:var(--text-xs)}.catalog .topic-progress{display:grid;margin:0;color:var(--muted);font:var(--text-sm) / 1.7 var(--font-code);text-align:right}.topic-progress b{color:var(--ink);font-weight:600}.topic-complete{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-1);color:var(--success);font-family:var(--font-ui);font-size:var(--text-xs)}.topic-arrow{color:var(--faint);transition:transform var(--motion-hover) var(--ease-out),color var(--motion-hover) var(--ease-out)}.catalog-empty{padding:var(--space-12) 0;text-align:center}.catalog-empty h2{font-family:var(--font-display);font-size:var(--text-h2)}.catalog .catalog-empty p{margin:var(--space-2) 0 var(--space-4);color:var(--muted)}.catalog .catalog-end{margin-top:var(--space-8);color:var(--muted);font-size:var(--text-sm)}@media(max-width:1100px){.topic-row{grid-template-columns:112px minmax(0,1fr) 220px 16px;gap:var(--space-6)}.catalog .topic-row .course-diagram svg{width:112px}.catalog .topic-progress{grid-column:2 / 4;grid-row:2;display:flex;gap:var(--space-4);text-align:left}.topic-arrow{grid-column:4;grid-row:1}}@media(max-width:767px){.catalog{padding:var(--space-6) var(--space-4) var(--space-12)}.catalog-filters{padding:var(--space-2) 0}.catalog .catalog-resume{flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.catalog-resume .detail{display:none}.topic-row{grid-template-columns:76px minmax(0,1fr) 14px;gap:calc(var(--space-1) * 1.5) var(--space-3);margin:0;padding:var(--space-4) 0}.catalog .topic-row .course-diagram{grid-row:1 / 4;align-self:start}.catalog .topic-row .course-diagram svg{width:76px}.topic-open{font-size:var(--text-h3)}.topic-name,.topic-cells,.catalog .topic-progress{grid-column:2}.topic-cells{grid-row:2}.catalog .topic-progress{grid-row:3;flex-wrap:wrap;line-height:1.5}.topic-arrow{grid-column:3}.catalog .chapter{margin-top:var(--space-8)}}}@layer pages{.detail-page .detail-toolbar{min-height:48px;padding-block:var(--space-2);background:var(--canvas)}.detail-page .detail-toolbar>.button,.detail-page .learn-reading-back{color:var(--ink);font-weight:600}.detail-page .detail-anchors button[aria-current=location]{color:var(--ink);font-weight:600}.detail-page .problem-head{padding-top:var(--space-4);padding-bottom:var(--space-4);border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.detail-page .problem-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);margin:0;color:var(--muted);font-size:var(--text-xs)}.problem-meta .problem-code{color:var(--muted);font-family:var(--font-code);font-size:var(--text-xs)}.problem-meta .difficulty-badge{font-size:var(--text-xs)}.detail-page .problem-head h1{margin-top:var(--space-2);font-size:var(--text-h1);line-height:1.35}.detail-page .problem-topics{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--text-sm)}.detail-page .problem-head .detail-actions{flex-wrap:wrap;justify-content:flex-end;gap:var(--space-1);margin:var(--space-3) 0 0}.problem-head .detail-actions :is(.button,a.button){min-height:30px;padding-inline:var(--space-2);border-color:transparent;background:none;color:var(--muted);font-size:var(--text-sm)}@media(hover:hover){.problem-head .detail-actions :is(.button,a.button):hover:not(:disabled){border-color:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:3px}}.markdown-body .sample-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:var(--space-3) 0 var(--space-4);overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface-subtle)}.markdown-body .sample-side{min-width:0;margin:0}.markdown-body .sample-side+.sample-side{border-left:1px solid var(--line-strong)}.markdown-body .sample-side figcaption{padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);letter-spacing:.08em}.markdown-body .sample-side pre{margin:0;border:0;border-radius:0;background:none}.numbered-code{counter-reset:code-line}.numbered-code .code-line:before{content:counter(code-line);counter-increment:code-line;display:inline-block;width:2ch;margin-right:var(--space-3);color:var(--faint);text-align:right;-webkit-user-select:none;user-select:none}.numbered-code[data-digits="3"] .code-line:before{width:3ch}.numbered-code[data-digits="4"] .code-line:before{width:4ch}.detail-page #problem-solution{border-bottom:0}.detail-page #problem-solution>h2{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);color:var(--ink);font-family:var(--font-display);font-size:var(--text-h3);font-weight:700;letter-spacing:.4em}#problem-solution>h2:before,#problem-solution>h2:after{content:"";flex:1;height:5px;border-block:1px solid var(--line-strong)}@media(min-width:1280px){.detail-page .detail-content:has(.up-hints){padding-right:max(var(--note-width) + var(--space-12),(100% - var(--reading-width)) / 2);padding-left:max(var(--space-8),(100% - var(--reading-width) - var(--note-width) - var(--space-12)) / 2)}.detail-content .up-hints{float:right;clear:right;width:var(--note-width);margin-right:calc((var(--note-width) + var(--space-8)) * -1);padding-top:var(--space-2);border-top:2px solid var(--pen)}.detail-content .up-hints h2,.detail-content .up-hints h3{color:var(--pen-ink);font-size:var(--text-sm)}}@media(max-width:767px){.detail-page .problem-head .detail-actions{justify-content:flex-start}.markdown-body .sample-pair{grid-template-columns:minmax(0,1fr)}.markdown-body .sample-side+.sample-side{border-top:1px solid var(--line-strong);border-left:0}}}@layer pages{.route-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-8);padding-bottom:var(--space-4);border-bottom:2px solid var(--ink)}.route-head-text{display:grid;gap:var(--space-2);min-width:0}.route-head .page-title{overflow-wrap:anywhere}.learn-content .route-subtitle{color:var(--muted);font-size:var(--text-ui)}.route-head .page-meta{display:flex;flex-wrap:wrap;gap:var(--space-4)}.route-complete{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--success)}.route-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.learn-content .route-actions .button{padding:var(--space-2) var(--space-4);border:1px solid var(--line-strong)}.learn-content .route-actions .button.primary{border-color:var(--accent)}.learn-content .route-head .course-diagram{margin:0;padding:0;border:0}.learn-content .route-head .course-diagram svg{width:280px;height:auto}.learn-content .route-head .course-diagram-caption{text-align:right}.learn-content .course-overall-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4) var(--space-8);width:100%;margin:var(--space-4) 0 0}.course-progress-caption strong{color:var(--ink)}.course-progress-cells{padding-top:var(--space-1)}.course-progress-warning{grid-column:1 / -1}.learn-content .route-intro{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4) var(--space-8);margin-top:var(--space-6);padding:var(--space-4) 0;border-block:1px solid var(--line)}.learn-content .route-intro h2{margin-bottom:var(--space-1);color:var(--muted);font-size:var(--text-xs);font-weight:500;letter-spacing:.12em}.learn-content .route-intro p{line-height:1.75}.route-goal{grid-column:1 / -1}.route-facts{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-8);margin:0}.route-facts dt{color:var(--muted);font-size:var(--text-xs);letter-spacing:.12em}.route-facts dd{margin:var(--space-1) 0 0}.route-materials{display:grid;gap:var(--space-1);margin:0;padding:0;list-style:none}.route-materials a{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}.learn-content .route-toolbar{margin-top:var(--space-6)}.route-toolbar .learn-table-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.route-toolbar .course-table-search{width:200px}.route-table{margin-top:var(--space-2)}.course-graph{margin-top:var(--space-4)}.learn-content .course-graph-note{margin-bottom:var(--space-3);color:var(--muted);font-size:var(--text-sm)}.course-graph-scroll{overflow-x:auto;padding:var(--space-4) 0 var(--space-6)}.course-graph-canvas{position:relative}.course-graph-canvas svg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.graph-edge{fill:none;stroke:var(--diagram-ink);stroke-width:1.5}.course-graph .diagram-guide{fill:none;stroke:var(--diagram-guide);stroke-width:1.5}.graph-arrow{fill:var(--diagram-ink)}.learn-content .graph-node{position:absolute;display:grid;align-content:center;gap:0;padding:var(--space-1) var(--space-2);border:1.5px solid var(--rating-ink);border-radius:var(--radius-control);background:var(--canvas);color:var(--ink);text-align:left}.graph-node[data-optional]{border-style:dashed}.graph-node[data-ac]{box-shadow:inset 4px 0 0 var(--rating-color)}.graph-node span,.graph-node small{line-height:1.45}.graph-node span{overflow:hidden;font-size:var(--text-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.graph-node small{color:var(--muted);font-size:var(--text-xs)}@media(hover:hover){.learn-content .graph-node:hover:not(:disabled){background:var(--state-hover)}}@media(max-width:767px){.route-head{grid-template-columns:minmax(0,1fr)}.learn-content .route-head .course-diagram{grid-row:1}.learn-content .route-head .course-diagram svg{width:200px}.learn-content .route-head .course-diagram-caption{text-align:left}.route-toolbar .course-table-search{width:100%}}}@layer pages{.personal-label{margin:0 0 var(--space-3);color:var(--muted);font-size:var(--text-xs);font-weight:500;letter-spacing:.14em}.catalog .personal-next{margin-top:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--line)}.personal-next-main{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--space-4) var(--space-8)}.catalog .personal-next-course{color:var(--muted);font-size:var(--text-sm)}.catalog .personal-next-title{margin:var(--space-1) 0;font-family:var(--font-display);font-size:var(--text-h1);font-weight:700;line-height:1.3;letter-spacing:.02em}.catalog .personal-next-meta{color:var(--muted);font-size:var(--text-sm)}.personal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-8);margin-top:var(--space-8)}.personal-list{display:grid;margin:0;padding:0;list-style:none}.personal-next .personal-list{margin-top:var(--space-4)}.personal-list :is(button,a){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 var(--space-3);width:100%;padding:var(--space-2) 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;color:var(--ink);text-align:left;text-decoration:none}.personal-list :is(button,a)>span{grid-column:1 / -1;color:var(--muted);font-size:var(--text-xs)}.personal-list :is(button,a)>strong{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.personal-list :is(button,a)>small{color:var(--muted);font-family:var(--font-code)}@media(hover:hover){.personal-list :is(button,a):hover:not(:disabled){background:var(--state-hover)}}.catalog .personal-note{margin-top:var(--space-2);color:var(--muted);font-size:var(--text-sm)}.catalog .personal-empty{margin-top:var(--space-8);padding-bottom:var(--space-8);border-bottom:1px solid var(--line)}.catalog .personal-empty p{margin:var(--space-2) 0 var(--space-4);color:var(--muted)}.activity-weeks{display:flex;gap:var(--space-1)}.activity-week{display:grid;gap:var(--space-1)}.activity-week i{width:14px;height:14px;border:1px solid var(--line-strong);border-radius:var(--radius-tag)}.activity-week i[data-level="1"]{border-color:var(--success);background:color-mix(in srgb,var(--success) 35%,transparent)}.activity-week i[data-level="2"]{border-color:var(--success);background:color-mix(in srgb,var(--success) 65%,transparent)}.activity-week i[data-level="3"]{border-color:var(--success);background:var(--success)}.activity-week i[data-level=future]{border-style:dashed;border-color:var(--line)}}
