:root{--fb-bg:#f0f2f5;--fb-card:#fff;--fb-text:#111418;--fb-hint:#5f6873;--fb-link:#2f6db0;--fb-accent:#3e77b5;--fb-accent-text:#fff;--fb-separator:#e6e9ed;--fb-destructive:#c93a3a}@media (prefers-color-scheme:dark){:root{--fb-bg:#18222d;--fb-card:#212d3b;--fb-text:#f5f6f7;--fb-hint:#8b9aab;--fb-link:#6aa6e6;--fb-accent:#3e77b5;--fb-accent-text:#fff;--fb-separator:#2c3a4a;--fb-destructive:#ff8a80}}:root{--bg:var(--tg-theme-secondary-bg-color,var(--fb-bg));--card:var(--tg-theme-section-bg-color,var(--tg-theme-bg-color,var(--fb-card)));--text:var(--tg-theme-text-color,var(--fb-text));--hint:var(--tg-theme-hint-color,var(--fb-hint));--link:var(--tg-theme-link-color,var(--fb-link));--accent:var(--tg-theme-button-color,var(--fb-accent));--accent-text:var(--tg-theme-button-text-color,var(--fb-accent-text));--separator:var(--tg-theme-section-separator-color,var(--fb-separator));--destructive:var(--tg-theme-destructive-text-color,var(--fb-destructive));--muted:color-mix(in srgb, var(--text) 14%, var(--card));--soft:color-mix(in srgb, var(--text) 7%, var(--card));--radius:14px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}h1{margin:8px 0 4px;font-size:22px}p{margin:0}.screen{flex-direction:column;gap:12px;min-height:100dvh;padding:16px;display:flex}.card{background:var(--card);border-radius:var(--radius);padding:16px}.hint{color:var(--hint);font-size:14px;line-height:1.4}.error{color:var(--destructive)}h2.section-title{text-transform:uppercase;letter-spacing:.03em;color:var(--hint);margin:8px 4px 6px;font-size:13px;font-weight:600}.center{text-align:center}.score{margin-bottom:8px}.score-num{font-size:28px;font-weight:700}.bar{background:var(--muted);border-radius:3px;height:6px;margin:4px 0;overflow:hidden}.bar-fill{background:var(--accent);border-radius:3px;height:100%}.phase-line{text-align:left;color:var(--link);margin-top:10px;font-size:15px;display:block}.search{border-radius:var(--radius);background:var(--card);border:none;outline:none;width:100%;padding:12px 14px}.chips{scrollbar-width:none;gap:8px;margin:0 -16px;padding:0 16px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--card);white-space:nowrap;border-radius:999px;flex:none;padding:7px 12px;font-size:14px}.chip-on{background:var(--accent);color:var(--accent-text)}.list{padding:4px 0}.row{text-align:left;align-items:center;gap:12px;width:100%;padding:10px 16px;display:flex}.row+.row{border-top:.5px solid var(--separator)}.row-icon{text-align:center;flex:none;width:26px;font-size:20px}.row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.row-title{font-size:16px;line-height:1.3}.row-meta{color:var(--hint);font-size:13px}.row-need{color:var(--destructive)}.row-locked .row-title{color:var(--hint)}.summary{margin-top:10px;line-height:1.45}.tabs{scrollbar-width:none;z-index:1;background:var(--bg);padding:0 16px;gap:6px;margin:0 -16px;padding-block:6px;display:flex;position:sticky;top:0;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--hint);white-space:nowrap;border-radius:10px;flex:none;padding:7px 12px;font-size:14px}.tab-on{background:var(--card);color:var(--text);font-weight:600}.md{overflow-wrap:anywhere;font-size:16px;line-height:1.5}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md h3{margin:18px 0 6px;font-size:17px}.md h4{margin:14px 0 4px;font-size:15px}.md p,.md ul,.md ol{margin:8px 0}.md ul,.md ol{padding-left:22px}.md li{margin:3px 0}.md a{color:var(--link);text-decoration:none}.md code{background:var(--soft);border-radius:4px;padding:1px 4px;font-family:ui-monospace,Menlo,monospace;font-size:.9em}.md pre{background:var(--soft);border-radius:8px;padding:10px;overflow-x:auto}.md pre code{background:0 0;padding:0}.md blockquote{border-left:3px solid var(--muted);color:var(--hint);margin:8px 0;padding-left:12px}.md table{border-collapse:collapse;margin:10px 0;font-size:14px;display:block;overflow-x:auto}.md th,.md td{border:.5px solid var(--separator);vertical-align:top;overflow-wrap:normal;-webkit-hyphens:auto;hyphens:auto;min-width:120px;padding:6px 8px}.md th{background:var(--soft);text-align:left}.tiers p{font-size:15px;line-height:1.45}.tiers p+p{margin-top:8px}.sources{flex-direction:column;display:flex}.source{text-align:left;flex-direction:column;gap:2px;padding:10px 0;display:flex}.source+.source{border-top:.5px solid var(--separator)}.why{padding:4px 0}.why-row{text-align:left;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:15px;display:flex}.why-title{flex:1}.why-met .why-title{color:var(--hint)}.why-need{flex:none;font-size:14px}.button{border-radius:var(--radius);background:var(--accent);width:100%;color:var(--accent-text);padding:14px;font-weight:600}.tabbar{height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:.5px solid var(--separator);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--hint);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;display:flex}.tabbar button span{font-size:20px}.tabbar .tab-active{color:var(--accent)}.screen{padding-bottom:72px}.quest{inset:0 0 calc(56px + env(safe-area-inset-bottom)) 0;background:var(--bg);flex-direction:column;display:flex;position:fixed}.quest-top{z-index:2;flex-direction:column;gap:6px;padding:8px 12px 6px;display:flex}.quest-top .chips{margin:0 -12px;padding:0 12px}.goal-bar{text-align:left;background:var(--card);border-radius:12px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.goal-line{color:var(--hint);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.goal-step{color:var(--link);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.quest-canvas{touch-action:none;-webkit-user-select:none;user-select:none;--inv:1;flex:1;position:relative;overflow:hidden}.quest-canvas svg{display:block}.chapter-band{fill:color-mix(in srgb, var(--card) 55%, transparent)}.chapter-title,.chapter-sub{text-anchor:middle;fill:var(--text)}.chapter-title{font-weight:700;font-size:max(40px, calc(var(--inv) * 17px))}.chapter-sub{fill:var(--hint);font-size:max(26px, calc(var(--inv) * 12px))}.lod-far .chapter-sub{display:none}.edge{fill:none;stroke:var(--muted);stroke-width:2.5px}.edge-main{stroke:color-mix(in srgb, var(--text) 35%, var(--card));stroke-width:4px}.edge-met{stroke:#c9a227}.edge-soft{stroke-dasharray:10 8}.edge-back{stroke:var(--destructive);stroke-dasharray:4 8;opacity:.7}.edge-path{stroke:var(--accent);stroke-width:5px}.goal-mode .edge:not(.edge-path){opacity:.15}.edge-cross:not(.edge-path):not(.edge-sel){display:none}.edge-sel{stroke:var(--link);stroke-width:5px;display:inline;opacity:1!important}.qn{cursor:pointer}.qn-disc{fill:var(--card);stroke:var(--muted);stroke-width:3px}.qn-icon,.qn-medal,.qn-crown{text-anchor:middle;dominant-baseline:central}.qn-medal{font-size:20px}.qn-crown{font-size:30px}.qn-label{text-anchor:middle;fill:var(--text);paint-order:stroke;stroke:var(--bg);stroke-width:5px;stroke-linejoin:round;font-size:16px}.main-only .qn-side:not(.in-path):not(.qn-selected),.main-only .edge-side:not(.edge-path):not(.edge-sel){display:none}.chip-current{box-shadow:inset 0 0 0 2px var(--accent)}.qn-boss .qn-label{font-size:20px;font-weight:700}.qn-side .qn-disc{stroke-width:2px}.qn-side{opacity:.8}.qn-ring{fill:none;stroke:var(--destructive);stroke-width:4px;stroke-dasharray:6 6}.st-locked .qn-disc{fill:var(--soft)}.st-locked .qn-icon{opacity:.45}.st-locked .qn-label{fill:var(--hint)}.st-open .qn-disc{stroke:var(--accent);stroke-width:5px}.st-understand .qn-disc{stroke:#cd7f32;stroke-width:5px}.st-can .qn-disc{stroke:#b8c4cf;stroke-width:6px;fill:color-mix(in srgb, #b8c4cf 18%, var(--card))}.st-master .qn-disc{stroke:#e6b422;stroke-width:6px;fill:color-mix(in srgb, #e6b422 20%, var(--card))}.qn-glow{fill:var(--accent);opacity:.55}.qn-selected .qn-disc{stroke:var(--link);stroke-width:7px}.goal-mode .qn:not(.in-path){opacity:.2}.zoom-buttons{z-index:2;flex-direction:column;gap:8px;display:flex;position:absolute;bottom:12px;right:12px}.zoom-buttons button{background:var(--card);border-radius:20px;width:40px;height:40px;font-size:20px;box-shadow:0 1px 4px #00000040}.sheet{background:var(--card);z-index:3;border-radius:18px;flex-direction:column;gap:8px;padding:14px 16px;display:flex;position:absolute;bottom:8px;left:8px;right:8px;box-shadow:0 4px 24px #00000059}.sheet-head{align-items:center;gap:10px;display:flex}.sheet-icon{font-size:30px}.sheet-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sheet-close{color:var(--hint);padding:4px 6px;font-size:18px}.sheet-summary{max-height:5.6em;font-size:14px;line-height:1.4;overflow:hidden}.sheet-actions{gap:8px;display:flex}.sheet-actions .button{flex:1;padding:11px}.button-soft{background:var(--soft);color:var(--text)}.today-head{flex-direction:column;gap:2px;padding:0 4px;display:flex}.today-chapter{font-size:15px;font-weight:600}.today-quest{flex-direction:column;gap:8px;display:flex}.today-title{margin:0;font-size:21px;line-height:1.25}.today-note{padding:0 4px}.today-sub{text-transform:uppercase;letter-spacing:.03em;padding:6px 16px 2px;font-size:13px}.today-points{text-align:center;font-size:13px}.steps{background:var(--soft);border-radius:10px;flex-direction:column;margin:6px 0;display:flex}.step+.step{border-top:.5px solid var(--separator)}.step-row{align-items:center;display:flex}.step-check{flex:none;padding:10px 6px 10px 12px;font-size:20px}.step-title{text-align:left;flex:1;justify-content:space-between;gap:8px;padding:10px 12px 10px 4px;font-size:15px;line-height:1.35;display:flex}.step-arrow{color:var(--hint);flex:none}.step-done .step-title span:first-child{color:var(--hint);text-decoration:line-through}.step-body{padding:0 12px 12px 44px}.step-body .md{font-size:15px}.button:disabled{opacity:.6}
