/* Constellation explorer: map, navigation and detail are separate layout regions. */
.tree-focus-shell{padding:0;margin:0;max-width:none;width:100%}
.skill-tree{--ink:#29423f;--muted:#63776f;--line:#cfddd4;color:var(--ink);font-family:inherit;box-sizing:border-box}.skill-tree *{box-sizing:border-box}.skill-tree.skill-tree-full{width:100%;max-width:none;margin:0;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);height:100vh;height:100dvh;min-height:420px;display:flex;flex-direction:column;background:#f7f8f1;overflow:hidden}.skill-tree button,.skill-tree input,.skill-tree select{font-family:inherit}.skill-tree button{cursor:pointer;color:var(--ink)}.skill-tree button:focus-visible,.skill-tree summary:focus-visible,.skill-tree input:focus-visible,.skill-tree select:focus-visible,.skill-tree-viewport:focus-visible{outline:3px solid #b42c60;outline-offset:2px}.skill-tree button:active{transform:none}.skill-tree-toolbar{position:relative;height:auto;display:flex;align-items:center;gap:12px;min-height:60px;padding:7px 20px;background:#fffef9;border-bottom:1px solid var(--line);z-index:5;flex-shrink:0}.skill-tree-toolbar h1{font-size:18px;font-weight:650;line-height:1.4;margin:0;flex:1;min-width:0}.skill-tree-toolbar>button,.skill-tree-main-menu>summary{min-height:44px;min-width:44px;display:grid;place-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fffef9;font-size:14px;font-weight:650;line-height:1.5;list-style:none;cursor:pointer}.skill-tree-toolbar>button{font-size:20px}.skill-tree-main-menu>summary::-webkit-details-marker{display:none}.skill-tree-main-menu>.skill-tree-tools{position:absolute;right:12px;top:calc(100% + 6px);width:min(430px,calc(100% - 24px));max-height:calc(100dvh - 86px);overflow:auto;padding:18px;border:1px solid #b9cfc2;border-radius:16px;background:#fffef9;box-shadow:0 16px 50px #263c3629;z-index:10}.skill-tree-main-menu:not([open])>.skill-tree-tools{display:none}.skill-tree-search{margin:0 0 16px}.skill-tree-search label,.skill-tree-path-label{font-size:13px;font-weight:600;display:block}.skill-tree-search>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.skill-tree-search input{width:0;flex:1;min-width:130px;min-height:46px;border:1px solid #a9c3b7;border-radius:9px;padding:10px;background:white;font-size:16px;color:var(--ink)}.skill-tree-search button,.skill-tree-tools>button{min-height:44px;padding:8px 12px;border:1px solid #b9cfc2;background:#edf3ec;border-radius:9px;font-size:14px}.skill-tree-path-label select{display:block;width:100%;min-height:44px;margin-top:7px;border:1px solid #b9cfc2;border-radius:9px;background:white;color:var(--ink);padding:8px;font-size:15px}.skill-tree-list h2{display:flex;justify-content:space-between;font-size:16px;margin:20px 0 8px}.skill-tree-list h2 small{font-size:12px;font-weight:400;color:var(--muted)}.skill-tree-list ul,.skill-tree-results ul{list-style:none;padding:0;margin:0;display:grid;gap:5px}.skill-tree-list button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 12px;border:1px solid #d9e2d8;border-left:3px solid var(--branch-color);background:#fffef9;border-radius:8px;text-align:left;font-size:15px}.skill-tree-list-title{flex:1;line-height:1.5}.skill-tree-list small{font-size:12px;color:var(--muted)}.skill-tree-results{border-bottom:1px solid var(--line);padding-bottom:12px}.skill-tree-results>p{font-size:13px}.skill-tree-results button{display:block;width:100%;min-height:48px;text-align:left;padding:10px;border:1px solid #d5e0d6;border-radius:9px;background:#f2f6ef;color:var(--ink)}.skill-tree-results b{display:block;font-size:15px;line-height:1.5}.skill-tree-results small{font-size:12px;line-height:1.6;color:var(--muted)}.skill-tree-help{margin-top:20px;font-size:13px;line-height:1.7}.skill-tree-help summary{min-height:44px;cursor:pointer;padding:10px 0}.skill-tree-breadcrumb{display:flex;align-items:center;gap:4px;flex-wrap:wrap;flex-shrink:0;padding:6px 18px;margin:0;background:#fffef9;border-bottom:1px solid var(--line);font-size:13px}.skill-tree-breadcrumb button{min-height:36px;padding:5px 8px;border:0;background:transparent;border-radius:7px;text-align:left;font-size:13px;line-height:1.4}.skill-tree-breadcrumb [aria-current]{font-weight:700;background:#e8efe5}.skill-tree-breadcrumb>span{color:#86978c}.skill-tree-workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);gap:0;overflow:hidden}.skill-tree.has-detail .skill-tree-workspace{grid-template-columns:minmax(0,1fr) 340px}.skill-tree-canvas-shell{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative;background:#f3f6ed}.skill-tree-context-caption{flex-shrink:0;margin:0;padding:10px 20px 3px;text-align:center;font-size:12px;line-height:1.6;color:#718174;letter-spacing:.02em;pointer-events:none}.skill-tree-viewport{flex:1;min-height:0;position:relative;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;background-image:radial-gradient(#ccd8c5 1px,transparent 1px);background-size:28px 28px;scrollbar-width:thin;scrollbar-color:#bccdbd transparent}.skill-tree-stage{position:relative;overflow:hidden;z-index:1}.skill-tree-plane{position:absolute;transform-origin:0 0}.skill-tree-edges{position:absolute;inset:0;pointer-events:none;overflow:visible}.skill-tree-context-map{position:absolute;inset:0;width:100%;height:100%;opacity:.17;pointer-events:none;z-index:0}.skill-tree-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;border:1px solid transparent!important;padding:4px 3px;border-radius:13px;background:transparent!important;box-shadow:none!important;color:var(--ink);line-height:1.4;white-space:normal;overflow:visible;--branch-color:#286d69;--branch-soft:#e1eeeb}.skill-tree-node:hover{background:#ffffffa8!important;border-color:#c8d7c4!important}.skill-tree-node.is-selected{background:#fffdf1!important;border-color:#8ba48c!important;box-shadow:0 0 0 2px #d8e1cd!important}.skill-tree-node .skill-tree-gem{flex-shrink:0;color:var(--branch-color);filter:drop-shadow(0 2px 3px #435d4120)}.skill-tree-node-title{font-size:14px;font-weight:650;line-height:1.5;max-width:100%;padding:0 3px;background:#f3f6edf5;border-radius:4px;text-wrap:balance;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:3em;overflow:hidden}.skill-tree-node-progress{font-size:10px;line-height:1.3;color:#6a7e6a;font-variant-numeric:tabular-nums;background:#f3f6edf5;border-radius:4px;padding:0 4px}.skill-tree-node.path-subdued{opacity:.43}.skill-tree-node.path-highlighted .skill-tree-gem{filter:drop-shadow(0 0 5px #b49b5250)}.skill-tree-node.has-completed-exercises .skill-tree-node-progress{color:#18765f;font-weight:700}.skill-tree-map-footer{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:7px 18px;border-top:1px solid #d8e2d1;background:#f8faf3;color:var(--muted);font-size:12px;min-height:54px}.skill-tree-controls{display:flex;gap:5px}.skill-tree-controls button{min-height:38px;min-width:38px;padding:5px 12px;border:1px solid #ccd9c6;border-radius:8px;background:#fffef9;font-size:14px}.skill-tree-detail-pane{min-width:0;min-height:0;overflow:auto;border-left:1px solid var(--line);background:#fffef9}.skill-tree-detail-pane>[data-tree-dismiss]{display:block;margin-left:auto;min-height:42px;min-width:70px;border:0;background:transparent;color:var(--muted);font-size:13px;padding:8px 16px}.skill-tree-panel{padding:0 22px 24px}.skill-tree-panel h2{font-size:22px;line-height:1.5;margin:0 0 10px;text-wrap:balance}.skill-tree-panel .skill-tree-detail-kicker{font-size:12px;line-height:1.5;color:var(--branch-color);margin:0 0 8px}.skill-tree-tags{display:flex;flex-wrap:wrap;gap:5px}.skill-tree-tags>span{display:inline-block;padding:3px 7px;border-radius:6px;font-size:11px;line-height:1.6;background:#edf2ea;color:#53694e}.skill-tree-tags .skill-tree-exam-tag{background:#f9f0d9;color:#79623b}.skill-tree-panel p{font-size:14px;line-height:1.8;margin:12px 0}.skill-tree-panel .skill-tree-progress{font-size:12px;color:#657760}.skill-tree-panel .skill-tree-evidence-note{font-size:11px;color:#75816e;border-top:1px solid #e0e6d9;padding-top:12px}.skill-tree-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0 8px}.skill-tree-actions button{min-height:46px;padding:9px;border:1px solid #acbfa5;border-radius:10px;background:#fffef9;font-size:15px;font-weight:650}.skill-tree-actions .primary{background:#2e6759;color:white;border-color:#2e6759}.skill-tree-explore{width:100%;min-height:44px;padding:8px 0;text-align:left;border:0;background:transparent;color:#2e6759!important;font-size:14px}.skill-tree-assessment-badge,.skill-tree-assessment-count{display:inline-block;font-size:12px;padding:4px 7px;border-radius:6px;background:#fbf1d5;color:#816432;line-height:1.5}.skill-tree-child-disclosure>summary,.skill-tree-checks>summary,.skill-tree-exam-source>summary{min-height:44px;padding:12px 0;cursor:pointer;font-size:13px;line-height:1.5}.skill-tree-child-list h3{font-size:15px;margin:5px 0 10px}.skill-tree-child-list h3 small{display:block;font-size:11px;font-weight:400;color:var(--muted)}.skill-tree-child-list ol{list-style:none;padding:0;margin:0;display:grid;gap:8px}.skill-tree-child-list li{padding:8px;border:1px solid #d6e1ce;border-radius:10px;background:#f7faf3}.skill-tree-child-select{width:100%;display:flex;gap:8px;align-items:baseline;min-height:44px;padding:3px 0;border:0;background:transparent;text-align:left;font-size:14px;line-height:1.6}.skill-tree-child-select small{display:block;font-size:11px;color:var(--muted)}.skill-tree-child-number{font-size:11px;color:var(--branch-color)}.skill-tree-child-actions{display:flex;gap:6px;margin-top:7px}.skill-tree-child-actions button,.skill-tree-checks button{min-height:44px;flex:1;padding:7px;border:1px solid #c9d8c1;border-radius:8px;background:#fffef9;font-size:12px}.skill-tree-checks button{display:block;width:100%;margin-top:6px}.skill-tree-exam-source a{display:block;font-size:12px;line-height:1.7;color:#326657;padding:7px 0}.skill-tree-exam-source p{font-size:12px}.skill-tree-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@keyframes tree-completion-once{0%,100%{filter:brightness(1)}35%{filter:brightness(1.15) drop-shadow(0 0 9px #5ab299)}}.skill-tree .just-completed{animation:tree-completion-once 850ms ease-out 1}
@media(max-width:800px){.skill-tree.has-detail .skill-tree-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(200px,48%) minmax(0,1fr)}.skill-tree-detail-pane{border-left:0;border-top:1px solid #bdcdb6}.skill-tree-detail-pane>[data-tree-dismiss]{min-height:36px}.skill-tree-panel{padding:0 20px 20px}.skill-tree-panel h2{font-size:20px}.skill-tree-panel .skill-tree-benefit{margin:8px 0}.skill-tree-panel .skill-tree-actions{margin:12px 0 6px}.skill-tree.has-detail .skill-tree-context-caption{display:none}}
@media(max-width:600px){.skill-tree-toolbar{padding:6px 10px;gap:8px;min-height:58px}.skill-tree-toolbar h1{font-size:16px}.skill-tree-main-menu>summary{padding:8px 10px;font-size:13px}.skill-tree-breadcrumb{padding:4px 8px;gap:1px}.skill-tree-breadcrumb button{font-size:12px;padding:5px 6px;min-height:34px}.skill-tree-context-caption{padding:8px 12px 0;font-size:11px}.skill-tree-node-title{font-size:13px;line-height:1.5;padding:0 1px}.skill-tree-map-footer{padding:6px 12px}.skill-tree-controls button{min-height:40px;min-width:40px}.skill-tree-main-menu>.skill-tree-tools{padding:14px}.skill-tree.has-detail .skill-tree-workspace{grid-template-rows:minmax(180px,45%) minmax(0,1fr)}}
@media(max-height:500px){.skill-tree.skill-tree-full{min-height:300px}.skill-tree-toolbar{min-height:46px;padding-top:2px;padding-bottom:2px}.skill-tree-toolbar>button,.skill-tree-main-menu>summary{min-height:38px}.skill-tree-breadcrumb{padding-top:1px;padding-bottom:1px}}
@media(prefers-reduced-motion:reduce){.skill-tree *{scroll-behavior:auto!important;transition:none!important}.skill-tree .just-completed{animation:none!important}}

.skill-tree-relations summary{min-height:44px;padding:12px 0;cursor:pointer;font-size:13px}.skill-tree-relations p{font-size:12px;color:var(--muted);margin:8px 0}.skill-tree-relations ul{list-style:none;padding:0;margin:0;display:grid;gap:5px}.skill-tree-relations button{width:100%;min-height:44px;text-align:left;padding:8px 10px;border:1px solid #d6e1ce;border-radius:8px;background:#f7faf3;font-size:13px;line-height:1.6}

@media(max-height:500px) and (min-width:600px) and (max-width:800px){.skill-tree.has-detail .skill-tree-workspace{grid-template-columns:minmax(0,1fr) minmax(250px,40%);grid-template-rows:1fr}.skill-tree-detail-pane{border-top:0;border-left:1px solid var(--line)}}
