:root {
 color-scheme:light;
 --bg:#f7f8fa;--surface:#fff;--surface-soft:#eef3f6;--ink:#172d3b;--muted:#596b78;--border:#dce3e9;--primary:#245c83;--primary-soft:#e5eff6;--done:#225b9c;--partial:#b66a12;--partial-soft:#fff0d3;--construct:#397aac;--uncollected:#dce2e8;--mastered:#08796f;--none:#e2e8ed;--shadow:#162d3b1a;--backdrop:#12263766;--focus:#b36a09;--cross:#735ca6;--candidate:#967044;--measure:#08796f;--upgrade:#9aa8b2;--on-color:#fff;
 font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Noto Sans CJK SC","Noto Sans CJK",sans-serif;
}
@media(prefers-color-scheme:dark) {
 :root:not([data-theme="light"]) {color-scheme:dark;--bg:#101a22;--surface:#192630;--surface-soft:#20333f;--ink:#e4edf3;--muted:#a6b8c6;--border:#344958;--primary:#94c8ec;--primary-soft:#253f53;--done:#8abbf3;--partial:#efb85b;--partial-soft:#51402c;--construct:#89b9e2;--uncollected:#3e5262;--mastered:#69d2bf;--none:#334754;--shadow:#00000040;--backdrop:#00000099;--focus:#ffd285;--cross:#bcacf0;--candidate:#e0b37c;--measure:#69d2bf;--upgrade:#78909f;--on-color:#101a22;}
}
:root[data-theme="dark"] {color-scheme:dark;--bg:#101a22;--surface:#192630;--surface-soft:#20333f;--ink:#e4edf3;--muted:#a6b8c6;--border:#344958;--primary:#94c8ec;--primary-soft:#253f53;--done:#8abbf3;--partial:#efb85b;--partial-soft:#51402c;--construct:#89b9e2;--uncollected:#3e5262;--mastered:#69d2bf;--none:#334754;--shadow:#00000040;--backdrop:#00000099;--focus:#ffd285;--cross:#bcacf0;--candidate:#e0b37c;--measure:#69d2bf;--upgrade:#78909f;--on-color:#101a22;}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.65}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,select,input{background:var(--surface);border:1px solid var(--border);border-radius:8px}button{padding:8px 12px}button:hover{border-color:var(--primary);background:var(--primary-soft)}a{color:var(--primary)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}h1,h2,h3,h4,p{margin:0}h1{font-size:clamp(30px,4.2vw,48px);line-height:1.3;letter-spacing:-1.5px;font-weight:650}h2{font-size:23px;font-weight:650;line-height:1.4}h3{font-size:17px}h4{font-size:14px}small{font-size:12px}small[lang]{display:block;color:var(--muted);font-weight:400;margin-top:5px;line-height:1.6}p+p{margin-top:10px}#header,main,footer{max-width:1248px;margin:auto;padding-left:40px;padding-right:40px;min-width:0}#header{padding-top:27px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:27px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:19px;font-weight:650;line-height:1.4}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:1.4px;margin-top:5px}.brand-icon{display:grid;place-items:center;background:var(--primary);color:var(--surface);width:40px;height:40px;border-radius:11px;font-size:29px}.tools{display:flex;gap:9px;align-items:center}.tools button,.tools select{height:36px;font-size:12px}.tools select{padding:0 9px}nav{display:flex;align-items:center;border-bottom:1px solid var(--border);gap:35px}nav a{display:flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;padding:15px 1px;white-space:nowrap;border-bottom:3px solid transparent}nav a[aria-current]{color:var(--primary);border-bottom-color:var(--primary);font-weight:650}.nav-number{font-size:10px;font-weight:500;opacity:.7}.nav-note{font-size:10px;color:var(--muted);letter-spacing:1px;margin-left:auto}main{padding-bottom:70px;min-height:60vh}.hero{padding:47px 0 30px}.eyebrow{font-size:10px;font-weight:650;color:var(--primary);letter-spacing:1.6px;margin-bottom:13px}.intro{color:var(--muted);margin-top:18px;font-size:15px;max-width:800px}.summary{display:flex;align-items:center;gap:18px;border:1px solid var(--border);background:var(--primary-soft);padding:22px;border-radius:13px}.summary p{flex:1;line-height:1.9}.summary-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--primary);color:var(--primary);border-radius:50%;font-size:22px;flex-shrink:0}.tag{display:inline-block;white-space:nowrap;font-size:10px;letter-spacing:.3px;line-height:1.5;background:var(--surface-soft);border:1px solid var(--border);border-radius:5px;padding:3px 7px;color:var(--muted)}.summary>.tag{background:var(--surface)}.section-title{display:flex;justify-content:space-between;align-items:end;margin:40px 0 19px}.section-title .eyebrow{margin-bottom:7px}.section-title .muted{margin-top:8px}.muted{color:var(--muted);font-size:13px}.map-scroll{max-width:100%;overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px}.ability-grid{min-width:650px}.map-row{display:grid;grid-template-columns:145px repeat(7,minmax(0,1fr));min-height:68px}.map-row+.map-row{border-top:1px solid var(--border)}.map-row>div{min-width:0;border-right:1px solid var(--border)}.map-row>div:last-child{border-right:0}.map-head{min-height:40px;background:var(--surface-soft);font-size:11px;font-weight:600;color:var(--muted)}.map-head>div{display:flex;align-items:center;justify-content:center}.map-head>div:first-child{justify-content:start;padding-left:19px}.line-cell{display:flex;align-items:stretch}.line-cell button{display:flex;align-items:center;gap:8px;width:100%;border:0;border-radius:0;font-weight:600;text-align:left;padding:16px 18px}.line-cell button>span:last-child{margin-left:auto;color:var(--muted)}.unleveled{color:var(--construct);font-size:22px}.map-cell{width:100%;height:100%;min-height:67px;border:0;border-radius:0;display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:5px;padding:12px}.square{display:inline-block;width:13px;height:13px;border:1px solid var(--border);border-radius:2px;flex-shrink:0;vertical-align:middle;background:var(--uncollected)}.square.evidence_done{background:var(--done);border-color:var(--done)}.square.evidence_partial{background:linear-gradient(90deg,var(--partial) 50%,var(--partial-soft) 50%);border-color:var(--partial)}.square.construct_evidence{background:var(--surface);border:2px solid var(--construct);transform:rotate(45deg);width:11px;height:11px;margin:1px}.square.mastered{background:var(--mastered);border-color:var(--mastered);border-radius:50%}.no_target{background:repeating-linear-gradient(135deg,var(--surface),var(--surface) 5px,var(--none) 5px,var(--none) 6px)}.no-target-text{color:var(--muted);font-size:12px}.vocab-cell{grid-column:span 7;display:flex;align-items:center;background:var(--surface-soft)}.vocab-cell button{background:none;border:0;padding:12px 20px;font-size:12px;color:var(--muted);text-align:left}.vocab-cell span{margin-left:12px}.legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 24px;margin:22px 0}.legend>div{display:flex;gap:10px;align-items:start}.legend i{margin-top:4px}.legend strong{font-size:11px;font-weight:600;display:block}.legend small{color:var(--muted);display:block;font-size:11px;line-height:1.65;margin-top:4px}.goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.group-heading{color:var(--muted);font-size:12px;font-weight:500;margin:17px 0 11px}.goal-card,.glossary-card,.stat-card{padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0}.goal-card h4{min-height:55px;font-size:14px}.band-label{display:inline-block;color:var(--primary);font-weight:600;font-size:12px;margin:10px 0}.band-scale{display:flex;gap:4px;padding-bottom:20px}.band-scale>div{height:9px;flex:1;background:var(--surface-soft);position:relative;border-radius:3px}.band-scale>div.active{background:var(--primary)}.band-scale>div>span{display:none}.band-scale small{position:absolute;top:13px;font-size:10px;color:var(--muted)}.band-scale>div.active small{color:var(--primary);font-weight:700}.tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.mini-tile{display:flex;align-items:start;gap:10px;text-align:left;padding:13px;min-width:0;border-radius:9px;font-size:12px}.mini-tile i{margin-top:4px}.mini-tile small{display:block;color:var(--muted);font-size:10px;margin-bottom:3px}.kp-groups{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.kp-group{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:14px}.kp-group summary{font-size:12px}.kp-group .tag{margin-left:8px}.kp-group .tile-grid{grid-template-columns:1fr 1fr;margin-top:13px}summary{cursor:pointer}footer{border-top:1px solid var(--border);padding-top:32px;padding-bottom:26px;color:var(--muted);font-size:11px}footer p{max-width:950px}.footer-brand{font-size:17px;color:var(--ink);font-weight:600;margin-bottom:16px}.footer-end{display:flex;justify-content:space-between;gap:16px;margin-top:25px;padding-top:19px;border-top:1px solid var(--border);font-size:10px}dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(720px,93vw);max-width:none;height:100dvh;max-height:100dvh;padding:0;background:var(--bg);color:var(--ink);border:0;border-left:1px solid var(--border);box-shadow:-10px 0 60px var(--shadow)}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:var(--backdrop)}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 25px;border-bottom:1px solid var(--border);background:var(--surface)}.drawer-head h2{font-size:19px}.drawer-head button{font-size:24px;line-height:1;flex-shrink:0}#drawer-content{padding:24px;overflow-y:auto;overscroll-behavior:contain}.record{padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:11px;margin-bottom:15px;overflow-wrap:anywhere}.record-meta{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:11px;margin-bottom:10px}.record h3{margin-bottom:13px;line-height:1.7}.record h4{margin:22px 0 9px}.badge{display:inline-flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);line-height:1.5}.record details{border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:10px}.record details summary{font-size:12px}.record details .record{margin:14px 0 0;border:0;padding:6px}.criteria-note{font-size:11px;color:var(--primary);margin-bottom:9px}.criteria>span{line-height:1.9}.parent-prompt{border-left:3px solid var(--primary);background:var(--primary-soft);padding:1px 15px 15px;margin-top:17px}.parent-prompt h4{margin-top:13px}.evidence{background:var(--surface-soft);border:1px solid var(--border);padding:15px;border-radius:8px;margin-top:10px;font-size:12px}.evidence strong{font-size:11px;color:var(--primary)}dl{margin:10px 0 0}dl>div{display:grid;grid-template-columns:85px 1fr;gap:10px;padding:4px 0}dt{color:var(--muted)}dd{margin:0}.related{display:inline-block;border:0;background:var(--primary-soft);color:var(--primary);font-size:11px;text-align:left;margin:3px 5px 3px 0;overflow-wrap:anywhere}.belongs{font-size:11px;margin-top:12px}.callout{padding:14px;background:var(--primary-soft);border-radius:8px;font-size:12px;margin:15px 0}.empty{padding:23px;color:var(--muted);background:var(--surface-soft);border-radius:9px;font-size:13px}.codes{font-size:11px;color:var(--muted)}.subtabs{display:flex;gap:7px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:15px}.subtabs button{font-size:13px;border-color:transparent;background:none}.subtabs button[aria-selected="true"]{background:var(--primary);color:var(--surface)}.subtabs button span{font-size:11px;margin-left:8px;opacity:.8}.filters{display:flex;gap:15px;margin:22px 0;align-items:end}.filters label,.search-label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:7px}.filters label:first-child{flex:1}.filters select,.filters input,.search-label input{padding:11px 13px;width:100%;min-width:0;font-size:13px}.filters label:not(:first-child){min-width:150px}#result-count,#glossary-count{font-size:11px;color:var(--muted);margin:19px 0}.standard-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:10px}.standard-row>summary{display:flex;align-items:center;gap:18px;padding:18px;list-style:none}.standard-row>summary::-webkit-details-marker{display:none}.standard-row[open]>summary{border-bottom:1px solid var(--border)}.record-id{color:var(--muted);font-size:10px;letter-spacing:.3px}.standard-row .record-id{width:105px;flex-shrink:0}.row-name{flex:1;min-width:0;font-size:13px}.row-name small{font-size:11px}.row-tail{display:flex;gap:12px;align-items:center}.standard-row>.record{border:0;margin:0}.glossary-search{max-width:600px}.glossary-group{margin-top:32px}.glossary-group h2{font-size:18px;margin-bottom:15px}.glossary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.glossary-card h3{font-size:15px;margin:8px 0 16px}.glossary-card>p:last-child{font-size:13px;line-height:1.85}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:15px 0 24px}.stat-number{font-size:35px;line-height:1.2;color:var(--primary);font-weight:600}.stat-card h3{font-size:13px;margin:12px 0 8px}.stat-card p{font-size:12px;color:var(--muted)}.total-edges{font-size:12px;color:var(--muted)}.total-edges strong{font-size:20px;color:var(--ink);padding:0 8px}.edge-legend{padding:16px 20px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:12px}.edge-legend p{margin-top:10px;color:var(--muted)}.legend-lines{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0}.line-sample{display:inline-block;width:30px;border-top:2px solid var(--upgrade)}.line-sample.cross{border-color:var(--cross)}.line-sample.candidate{border-color:var(--candidate);border-top-style:dotted}.line-sample.measure{border:0;height:2px;background:repeating-linear-gradient(to right,var(--measure) 0 12px,transparent 12px 16px,var(--measure) 16px 18px,transparent 18px 22px)}.graph-controls{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.graph-controls button{font-size:11px}.graph-controls .muted{font-size:11px}.graph-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:16px}.graph-scroll,.graph-list{max-width:100%;max-height:650px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);background:var(--surface);border-radius:10px}.chain-svg{display:block;max-width:none;touch-action:pan-x pan-y}.chain-svg text{fill:var(--ink);font-family:inherit;font-size:11px}.chain-svg .node-id{fill:var(--muted);font-size:9px}.chain-svg .column-title{fill:var(--primary);font-size:13px;font-weight:650}.chain-svg .graph-group{fill:var(--primary);font-weight:650;font-size:11px}.chain-svg .row-label{fill:var(--muted);font-size:10px}.guide{stroke:var(--border);stroke-width:1;stroke-dasharray:3 6}.edge{fill:none;stroke:var(--upgrade);stroke-width:1.2;opacity:.7}.edge.cross{stroke:var(--cross)}.edge.measure{stroke:var(--measure)}.edge.candidate{stroke:var(--candidate);stroke-dasharray:2 5}.edge.strong{stroke-width:3}.edge.moderate{stroke-width:2}.edge.weak{stroke-width:1.2;stroke-dasharray:7 5}.edge.candidate.weak,.edge.candidate.moderate,.edge.candidate.strong{stroke-dasharray:2 5}.edge.measure.weak,.edge.measure.moderate,.edge.measure.strong,.edge.measure{stroke-dasharray:12 4 2 4}.edge.upgrade{stroke-width:1;stroke:var(--upgrade)}.arrowhead{fill:var(--muted)}.graph-node{cursor:pointer}.graph-node circle,.graph-node rect,.graph-node path{fill:var(--surface);stroke:var(--primary);stroke-width:2}.graph-node.selected circle,.graph-node.selected rect,.graph-node.selected path{fill:var(--primary);stroke-width:4}.graph-node:focus{outline:none}.graph-node:focus-visible circle,.graph-node:focus-visible rect,.graph-node:focus-visible path{stroke:var(--focus);stroke-width:5}.graph-node:hover text{fill:var(--primary);font-weight:600}.graph-node.dim{opacity:.18}.edge.dim{opacity:.08}.edge.highlight{opacity:1}.graph-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:19px;max-height:650px;overflow:auto;overflow-wrap:anywhere}.graph-panel h3{font-size:15px;margin-bottom:13px}.graph-panel h4{margin:20px 0 9px}.graph-panel p{font-size:12px}.graph-panel ul{padding-left:18px;margin:8px 0}.graph-panel li{margin:5px 0}.graph-panel li button,.graph-list li button{font-size:11px;border:0;background:var(--primary-soft);text-align:left;padding:5px 7px}.edge-reason{border-top:1px solid var(--border);padding:13px 0;font-size:11px}.edge-reason p{font-size:11px;color:var(--muted);margin-top:7px}.graph-list{padding:15px}.graph-list details{border-bottom:1px solid var(--border);padding:13px 0;font-size:12px}.graph-list p{font-size:11px;color:var(--muted)}.graph-list h4{margin:15px 0}.graph-list button{margin:8px 0}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;top:10px;left:10px;padding:10px;background:var(--surface);z-index:10}[hidden]{display:none!important}body:has(dialog[open]){overflow:hidden}
@media(min-width:1500px){#header,main,footer{max-width:1380px}}
@media(max-width:900px){#header,main,footer{padding-left:24px;padding-right:24px}.nav-note{display:none}.summary>.tag{display:none}.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.legend{grid-template-columns:1fr 1fr}.stat-grid{grid-template-columns:1fr 1fr}.graph-layout{grid-template-columns:minmax(0,1fr)}.graph-panel{max-height:400px}.glossary-grid{grid-template-columns:1fr 1fr}.row-tail .badge{display:none}nav{justify-content:space-between;gap:10px}}
@media(max-width:600px){#header,main,footer{padding-left:16px;padding-right:16px}#header{padding-top:18px}.topbar{gap:8px;padding-bottom:16px}.brand{font-size:14px;gap:8px}.brand-icon{width:31px;height:33px;font-size:24px;flex-shrink:0}.brand small{font-size:6px;letter-spacing:.7px}.tools{gap:5px}.tools button,.tools select{font-size:10px;padding-left:6px;padding-right:6px;height:32px}.nav-number{display:none}nav a{font-size:12px;padding:13px 0}h1{font-size:30px;letter-spacing:-.8px}h2{font-size:20px}.hero{padding-top:30px;padding-bottom:23px}.intro{font-size:13px;margin-top:14px}.eyebrow{font-size:9px;letter-spacing:1px}.summary{padding:16px;gap:11px;align-items:start}.summary p{font-size:12px}.summary-mark{width:25px;height:25px;font-size:16px}.ability-grid{min-width:0}.map-row{grid-template-columns:64px repeat(7,minmax(0,1fr));min-height:78px}.map-head{min-height:35px}.map-head>div:first-child{padding-left:9px}.line-cell button{padding:10px 6px;font-size:11px;gap:2px;flex-wrap:wrap;align-content:center}.line-cell button>span:last-child{display:none}.map-cell{min-height:77px;padding:10px 3px;gap:3px}.map-cell .square{width:9px;height:9px}.vocab-cell button{font-size:11px;padding:12px}.legend{gap:16px 13px}.legend strong,.legend small{font-size:10px}.legend>div{gap:8px}.goal-grid{grid-template-columns:1fr}.goal-card{padding:17px}.goal-card h4{min-height:0}.goal-card .band-scale{margin-top:5px}.tile-grid{grid-template-columns:1fr 1fr}.mini-tile{padding:10px;font-size:11px;gap:8px}.kp-groups{grid-template-columns:1fr}.section-title{margin-top:32px}.footer-end{font-size:9px}.filters{flex-wrap:wrap;gap:10px}.filters label:first-child{flex-basis:100%}.filters label:not(:first-child){min-width:0;flex:1}.subtabs{gap:3px}.subtabs button{font-size:11px;padding:7px}.subtabs button span{margin-left:4px}.standard-row>summary{gap:9px;padding:14px;flex-wrap:wrap}.standard-row .record-id{width:auto;flex-basis:100%}.row-name{font-size:12px}.row-tail{gap:5px}.glossary-grid{grid-template-columns:1fr}.stat-card{padding:17px}.stat-number{font-size:30px}.stat-card h3{font-size:12px}.stat-card p{font-size:11px}.graph-scroll{max-height:520px}.graph-controls .muted{flex-basis:100%}dialog{inset:auto 0 0;margin:0;width:100%;height:88dvh;max-height:88dvh;border-radius:18px 18px 0 0;border-left:0;border-top:1px solid var(--border)}.drawer-head{padding:17px 16px}.drawer-head h2{font-size:16px}#drawer-content{padding:16px}.record{padding:16px}.record h3{font-size:15px}.record small[lang]{font-size:11px}.record .criteria{font-size:12px}dl>div{grid-template-columns:65px 1fr}.evidence{padding:12px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .15s,border-color .15s}.graph-node,.edge{transition:opacity .15s}}
