/* 課・室までの階層表示 */
.tree-toolbar{padding:15px 17px;background:#edf1e9;border:1px solid var(--line);border-radius:6px;display:flex;gap:20px;align-items:center;justify-content:space-between}.tree-toolbar p{margin:0}.hierarchy-sample{font-size:12px;font-weight:600}.hierarchy-sample b{font-weight:400;margin:0 7px;color:#94a492}.toolbar-note{display:block;font-size:10px;color:var(--muted);margin-top:2px}.tree-toolbar>div{display:flex;gap:8px;flex-shrink:0}.tree-toolbar button{background:#fff;border:1px solid #cbd7c8;border-radius:4px;color:var(--green);padding:7px 10px;font-size:10px}.tree-toolbar button:hover{border-color:var(--green)}
.chart{display:block;margin-left:8px;padding-left:20px;border-left:1px solid #a7b9ab}.root-wrap{align-items:flex-start;padding-left:8px}.root-stem{height:26px}.group{border-top:0;padding-top:0;margin-bottom:32px}.group:last-child{margin-bottom:0}.group:before{left:-21px;top:26px;height:0;width:20px;border-left:0;border-top:1px solid #a7b9ab}.group-head{margin-bottom:20px;padding:10px 14px}.group-head h3{font-size:13px}.group-head p{font-size:10px}.group-count{font-size:10px}.bureau-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 15px;padding:0;margin:0;align-items:start}.tree-branch{list-style:none;position:relative;min-width:0;margin:0}.node-row{display:flex;gap:3px;align-items:stretch;min-width:0}.node{flex:1;min-width:0;padding:10px;min-height:59px}.node:before{display:none}.node strong{font-size:12px}.node small{font-size:10px;line-height:1.7}.depth-0>.node-row>.node{border-color:#b9cab6;background:#fafff7}.depth-0>.node-row>.node strong{font-size:14px}.depth-0>.node-row>.node small{font-size:10px;color:#66806b}.branch-toggle{border:1px solid #c8d7c3;border-radius:4px;background:#eaf1e6;color:var(--green);padding:0 5px;flex-shrink:0;min-width:27px;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1.5}.branch-toggle>span:first-child{font-size:17px}.toggle-count{font-size:8px;color:var(--muted)}.branch-toggle:hover{background:#dce9d6}.child-list{list-style:none;padding:0 0 0 11px;margin:10px 0 0 8px;border-left:1px solid #b8cbb3}.child-list>.tree-branch{margin:8px 0 0}.child-list>.tree-branch>.node-row:before{content:'';position:absolute;top:29px;left:-12px;width:11px;border-top:1px solid #b8cbb3}.depth-1 .node{padding:8px;min-height:56px}.depth-1 .node strong{font-size:11px}.depth-1 .node small{font-size:9px}.depth-2 .node{background:#fdfefb}.depth-2 .node strong{font-size:10px}.depth-2 .node small{font-size:9px}.depth-3 .node strong{font-size:10px}.depth-3 .node{padding:7px}.node .arrow{font-size:10px}.group[data-group="special"] .node:after{display:none}.breadcrumbs{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:15px;font-size:9px;line-height:1.9;color:var(--muted)}.breadcrumbs button{border:0;border-bottom:1px solid #cad8c5;background:transparent;padding:0;color:var(--muted);font-size:9px;text-align:left}.breadcrumbs button[aria-current]{color:var(--green);border-color:var(--green)}.breadcrumbs button:hover{color:var(--green)}.detail-top h3{margin-top:12px}.detail-children{display:flex;flex-direction:column;gap:5px;margin:0 0 20px}.detail-children button{border:1px solid #dfe5da;border-radius:3px;background:#f8faf5;color:var(--ink);text-align:left;padding:8px;font-size:10px;display:flex;justify-content:space-between;gap:6px}.detail-children button:hover{border-color:#80a281}.source-label{font-size:9px;color:var(--muted);line-height:1.7;margin:8px 0 0}.details-close{display:none}.detail-shade{display:none}.map-caption{letter-spacing:.08em}.details{max-height:calc(100vh - 40px);overflow-y:auto;scrollbar-width:thin}.detail-body{padding-bottom:23px}.group[data-group="special"] .bureau-grid{grid-template-columns:minmax(0,1fr);max-width:400px}.map-note{font-size:10px}.hint{font-size:11px}
@media(max-width:1100px){.bureau-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.tree-toolbar{align-items:flex-start}.hierarchy-sample{font-size:11px}.tree-toolbar>div{flex-direction:column}.tree-toolbar button{padding:5px 8px}.depth-0>.node-row>.node strong{font-size:13px}.chart{padding-left:15px}.group:before{left:-16px;width:15px}.group-count{font-size:9px}}
@media(max-width:720px){.tree-toolbar{flex-direction:column;gap:12px;padding:13px}.tree-toolbar>div{flex-direction:row;width:100%}.tree-toolbar button{flex:1;padding:8px 4px;font-size:10px}.hierarchy-sample{font-size:11px}.hierarchy-sample b{margin:0 4px}.toolbar-note{font-size:9px}.chart{padding-left:12px;margin-left:5px}.root-wrap{padding-left:5px}.group:before{left:-13px;width:12px}.bureau-grid{grid-template-columns:1fr;gap:23px}.group-head h3{font-size:12px}.group-head p{font-size:9px}.group-head{padding:10px}.group-head>div{gap:6px}.group-count{font-size:9px}.node strong,.depth-1 .node strong,.depth-2 .node strong,.depth-3 .node strong{font-size:12px}.node small,.depth-1 .node small,.depth-2 .node small{font-size:10px}.depth-0>.node-row>.node strong{font-size:14px}.depth-0>.node-row>.node small{font-size:10px}.node,.depth-1 .node{padding:10px;min-height:60px}.branch-toggle{min-width:33px}.child-list{padding-left:13px;margin-left:10px}.child-list>.tree-branch>.node-row:before{left:-14px;width:13px}.map-area{padding:15px 12px}.details{display:none;max-height:none}.details.mobile-open{display:block;position:fixed;top:auto;bottom:0;left:0;right:0;max-height:87dvh;border-radius:14px 14px 0 0;z-index:50;overflow-y:auto;box-shadow:0 -8px 40px #173d3530;padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain}.details-close{display:block;position:sticky;top:0;margin-left:auto;margin-bottom:-36px;z-index:2;border:0;background:var(--detail-tint,#edf3ec);padding:9px 14px;color:var(--green);font-size:11px}.detail-overline{padding-right:70px}.detail-status{display:none}.detail-shade:not([hidden]){display:block;position:fixed;inset:0;background:#123b3566;z-index:49;border:0;width:100%;height:100%}body.detail-open{overflow:hidden}.breadcrumbs{font-size:10px}.breadcrumbs button{font-size:10px}.detail-top h3{font-size:24px}.detail-children button{font-size:12px}.details .units{font-size:11px}.details .detail-help,.details .source-label{font-size:10px}.details .official{font-size:12px}}
.work-source{margin:14px 0;padding:0 0 14px;border-bottom:1px solid var(--line,#d9e0d9)}
.work-source:last-child{border-bottom:0;padding-bottom:0}
.work-source a{color:#174e49;text-decoration:underline;overflow-wrap:anywhere}
.work-source p{white-space:pre-line;overflow-wrap:anywhere}
.source-limitation{font-weight:600}
