.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}.causal-atlas{width:100%;min-width:0;min-height:calc(100vh - 98px)}.atlas-heading{min-width:0;min-height:168px;display:flex;align-items:end;justify-content:space-between;gap:32px;padding:22px clamp(20px,3vw,44px);border-bottom:1px solid var(--line);flex-wrap:wrap}.atlas-heading h1{max-width:620px;margin:0;overflow-wrap:anywhere;font-size:clamp(26px,3vw,42px);line-height:1.18}.atlas-stats{min-width:0;display:flex;gap:28px;align-items:end}.atlas-stats strong{font:700 25px/1 "SFMono-Regular",Consolas,monospace;color:var(--text);white-space:nowrap}.atlas-stats span{display:block;margin-top:7px;color:var(--muted);font:800 9px/1.2 Inter,sans-serif}.atlas-shell{width:100%;min-width:0;display:grid;grid-template-columns:236px minmax(0,1fr) 330px;height:calc(100vh - 274px);min-height:560px;border-bottom:1px solid var(--line)}.atlas-shell.filters-closed{grid-template-columns:minmax(0,1fr) 330px}.atlas-shell.filters-closed .causal-controls{display:none}.atlas-shell.inspector-open{grid-template-columns:236px minmax(0,1fr) 330px}.atlas-shell.filters-closed.inspector-open{grid-template-columns:minmax(0,1fr) 330px}
.causal-controls,.causal-detail{min-width:0;padding:18px;border-right:1px solid var(--line);overflow:auto;background:var(--ink)}.causal-detail{display:block;border-right:0;border-left:1px solid var(--line)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading .eyebrow{margin:0}.causal-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#08111e}.causal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--ink)}.mode-selector,.graph-tools{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.mode-selector button,.tool-button,.icon-button{min-height:32px;padding:7px 10px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--muted);font-size:10px;font-weight:800;cursor:pointer}.mode-selector button.on{color:var(--amber);border-color:var(--amber);background:rgba(232,163,61,.08)}.tool-button:hover,.icon-button:hover,.mode-selector button:hover{color:var(--text);border-color:var(--teal)}.icon-button{width:32px;padding:0;font-size:18px}.depth-control{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px;font-weight:800}.depth-control select{height:32px;border:1px solid var(--line);border-radius:3px;background:var(--ink-soft);color:var(--text);font-size:10px}.mode-note{min-height:34px;padding:8px 14px;border-bottom:1px solid var(--line);color:#aeb7c5;font-size:11px}.mode-note.warning{color:var(--amber)}
.graph-wrap{position:relative;flex:1 1 0;min-height:0;overflow:hidden;background:#08111e;touch-action:none}.causal-graph{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;cursor:grab}.causal-graph:active{cursor:grabbing}.causal-edge,.causal-edge-halo,.causal-edge-highlight{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.causal-edge{stroke:#718096;stroke-width:1.45;opacity:.28;cursor:pointer}.causal-edge.positive{stroke:var(--teal)}.causal-edge.negative{stroke:var(--error);stroke-dasharray:4 3}.causal-edge.loop{stroke:#9babbf;stroke-dasharray:7 4}.causal-edge.active{opacity:.46}.causal-edge.incoming{stroke:var(--teal);opacity:.54}.causal-edge.outgoing{stroke:var(--amber);opacity:.54}.causal-edge.ancestry{stroke:var(--teal);opacity:.54}.causal-edge.direct-output{opacity:.48}.causal-edge.dim{opacity:.11}.causal-edge.filtered,.causal-edge-halo.filtered,.causal-edge-highlight.filtered{display:none}.causal-edge-halo,.causal-edge-highlight{pointer-events:none;opacity:0}.causal-edge-halo.active{stroke:#f4f6fb;stroke-width:9;opacity:.16}.causal-edge-halo.incoming{stroke:var(--teal)}.causal-edge-halo.outgoing{stroke:var(--amber)}.causal-edge-halo.feedback{stroke:#aeb4cf}.causal-edge-highlight.active{stroke:var(--amber);stroke-width:3.8;opacity:1}.causal-edge-highlight.incoming{stroke:var(--teal);stroke-dasharray:none}.causal-edge-highlight.outgoing{stroke:var(--amber);stroke-dasharray:12 5}.causal-edge-highlight.feedback{stroke:#aeb4cf;stroke-dasharray:8 5}.causal-edge-highlight.active{animation:selected-flow 1.4s ease-out 1}@keyframes selected-flow{from{stroke-dashoffset:34;opacity:.45}to{stroke-dashoffset:0;opacity:1}}.causal-node{cursor:pointer}.causal-node rect{fill:#0d1b2c;stroke:#b9c3d0;stroke-width:1.25;vector-effect:non-scaling-stroke}.causal-node text{fill:var(--text);font-size:12.5px;font-weight:700;pointer-events:none}.causal-node .node-status{fill:var(--muted);font-size:8px;font-weight:800}.causal-node.exogenous rect{fill:#0d2828;stroke:var(--teal);stroke-width:2}.causal-node.heuristic rect{stroke-dasharray:2 2}.causal-node.active rect{stroke:var(--amber);stroke-width:3}.causal-node.direct-parent rect{stroke:var(--teal);stroke-width:2.5}.causal-node.direct-child rect{stroke:var(--amber);stroke-width:2.5;stroke-dasharray:7 3}.causal-node.trace-origin rect{stroke:#f2f4f8;stroke-width:3.5;stroke-dasharray:none}.causal-node.dim{opacity:.2}.causal-node.filtered{display:none}.causal-node.population-reference rect{stroke:var(--amber);stroke-width:3;stroke-dasharray:7 4}.graph-ready .causal-edge{animation:edge-reveal .8s ease-out both}@keyframes edge-reveal{from{opacity:0}to{opacity:.28}}
.read-guide{position:absolute;top:16px;left:16px;z-index:4;width:220px;padding:12px;border:1px solid var(--line);background:rgba(7,14,26,.94);box-shadow:0 12px 28px rgba(0,0,0,.28);font-size:10px;transition:opacity .2s}.read-guide.closed{display:none}.read-guide>div{display:flex;justify-content:space-between;align-items:center}.read-guide button{border:0;background:none;color:var(--muted);font-size:18px;cursor:pointer}.read-guide p{display:flex;align-items:center;gap:8px;margin:8px 0;color:var(--muted)}.read-guide span{min-width:48px;color:var(--text);font-weight:800}.read-guide i{width:10px;height:10px;border:2px solid currentColor}.teal-key{color:var(--teal)}.white-key{color:var(--text)}.amber-key{color:var(--amber)}
.field{margin:18px 0}.field label{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;font-weight:800}.field input,.field select{width:100%;padding:9px;border:1px solid var(--line);border-radius:3px;background:var(--ink-soft);color:var(--text);font-size:12px}.loop-heading{margin-top:28px}.loop-list{display:grid;gap:5px;max-height:300px;overflow:auto}.loop-list button{padding:8px;border:1px solid var(--line);border-radius:2px;background:none;color:var(--muted);text-align:left;font-size:10px;cursor:pointer}.loop-list button.on{border-color:var(--teal);color:var(--text)}.detail-list{margin:0}.detail-list div{padding:10px 0;border-bottom:1px solid var(--line)}.detail-list dt{color:var(--muted);font-size:10px;font-weight:800}.detail-list dd{margin:3px 0 0;font-size:13px;overflow-wrap:anywhere}.causal-detail h2{font-size:22px}.connection-section{margin-top:20px}.connection-section h3{margin:0 0 8px;font-size:13px}.connection-chips{display:flex;flex-wrap:wrap;gap:6px}.connection-chip{padding:7px 9px;border:1px solid var(--line);border-radius:3px;background:#0d1b2c;color:var(--text);font-size:11px;cursor:pointer}.connection-chip:hover,.connection-chip:focus-visible{border-color:var(--amber);outline:2px solid rgba(232,163,61,.35);outline-offset:2px}
.target-map{display:none;padding:clamp(24px,5vw,60px);overflow:auto;background:var(--ink)}.target-map.on{display:block}.target-stage{display:grid;grid-template-columns:220px 1fr auto;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.current-map.off{display:none}.legend-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 12px;border-top:1px solid var(--line);background:var(--ink);color:var(--muted);font-size:9px}.legend-line span{display:inline-flex;align-items:center;gap:5px}.legend-line b{margin-left:auto;color:var(--muted);font-weight:500}.legend-node{width:10px;height:10px;border:1px solid var(--text);background:#0d1b2c}.legend-node.exogenous{border:2px solid var(--teal);background:#0d2828}.legend-edge{width:20px;border-top:2px solid var(--teal)}.legend-edge.incoming{border-color:var(--teal);border-top-style:solid}.legend-edge.outgoing{border-color:var(--amber);border-top-style:dashed}.legend-edge.feedback{border-color:#9babbf;border-top-style:dashed}
.focus-mode{position:fixed;inset:0;z-index:100;background:var(--ink);grid-template-columns:minmax(0,1fr)!important;min-height:100vh}.focus-mode .causal-controls,.focus-mode .causal-detail{display:none}.focus-mode .graph-wrap,.focus-mode .causal-graph{min-height:calc(100vh - 86px)}.focus-mode .causal-main{height:100vh}
@media(max-width:1180px){.atlas-shell.inspector-open,.atlas-shell.filters-closed.inspector-open{grid-template-columns:minmax(0,1fr)}.causal-detail{display:none}.detail-active .causal-detail{display:block;position:fixed;right:0;top:64px;bottom:0;z-index:60;width:min(360px,90vw);box-shadow:-16px 0 32px rgba(0,0,0,.36)}}
@media(max-width:900px){.atlas-heading{height:auto;min-height:156px;align-items:start;flex-direction:column;gap:16px}.atlas-stats{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.atlas-stats strong{min-width:0;font-size:21px}.atlas-stats span{white-space:normal}.atlas-shell{height:auto;min-height:590px;grid-template-columns:minmax(0,1fr)}.causal-controls{position:fixed;left:0;top:var(--site-header-height);bottom:0;z-index:80;width:min(300px,88vw);box-shadow:16px 0 32px rgba(0,0,0,.36)}.atlas-shell.filters-closed .causal-controls{display:none}.causal-toolbar{align-items:flex-start;flex-direction:column}.mode-selector,.graph-tools{width:100%}.graph-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.depth-control{grid-column:1/-1}.tool-button,.icon-button{min-width:0;padding-inline:7px}.graph-wrap,.causal-graph{min-height:520px}.legend-line b{flex-basis:100%;margin-left:0;overflow-wrap:anywhere}}
@media(max-width:560px){.boundary-strip{gap:4px;padding-inline:12px}.boundary-strip span:nth-child(n+4){display:none}.atlas-heading{padding:18px 16px}.atlas-heading h1{font-size:27px}.causal-toolbar{padding:8px}.mode-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.mode-selector button{min-width:0;padding-inline:5px}.graph-tools{grid-template-columns:repeat(3,minmax(0,1fr))}.read-guide{top:10px;left:10px;width:min(210px,calc(100% - 20px))}.detail-active .causal-detail{top:var(--site-header-height);width:min(360px,94vw)}}
@media(prefers-reduced-motion:reduce){.graph-ready .causal-edge,.causal-edge-highlight.active{animation:none}}

/* G1 実行可能範囲の帯と活用案（G1-D以降の追加） */
.g1-strip{margin:0 auto 12px;padding:16px 20px;max-width:var(--max);
  border:1px solid var(--teal);border-left-width:4px;border-radius:4px;
  background:rgba(63,184,175,.06)}
.g1-strip-head h2{margin:4px 0 6px;font-size:var(--font-h3)}
.g1-strip .badge-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;padding:0;list-style:none}
.g1-strip .badge{padding:4px 10px;border:1px solid var(--line);border-radius:999px;
  background:var(--panel);color:var(--muted);font-size:13px;max-width:100%;overflow-wrap:anywhere}
.g1-flow{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;counter-reset:g1step}
.g1-flow li{flex:1 1 190px;min-width:0;padding:10px 12px;border:1px solid var(--line);
  border-radius:4px;background:var(--panel)}
.g1-flow li b{display:block;font-size:14px;overflow-wrap:anywhere}
.g1-flow li span{display:block;color:var(--muted);font-size:12px;margin-top:4px;overflow-wrap:anywhere}
.applications-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;margin:16px 0}
.applications-list .target-stage p{margin:6px 0}
.applications-list .target-stage a{display:inline-block;margin-top:8px;padding:5px 10px;
  border:1px solid var(--line);border-radius:4px;text-decoration:none}
.applications-list .target-stage a:hover{border-color:var(--teal)}
@media (max-width:767px){
  .g1-strip{margin-left:12px;margin-right:12px;padding:12px 14px}
  .g1-flow li{flex:1 1 100%}
  .applications-list{grid-template-columns:1fr}
}
