:root{color-scheme:light;--bg: #f4f3ee;--surface: #ffffff;--surface-2: #faf9f5;--lane: #f7f6f1;--ink: #16181c;--ink-2: #4a4f58;--ink-3: #80858e;--line: #e4e2da;--line-2: #d2cfc5;--up: #d1432a;--down: #2867cf;--event: #b06d00;--event-bg: #fff4dc;--radius: 12px;--shadow: 0 1px 2px rgb(20 20 20 / .05), 0 4px 16px rgb(20 20 20 / .04);--font: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", system-ui, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #101113;--surface: #18191c;--surface-2: #1d1e22;--lane: #15161a;--ink: #eceae4;--ink-2: #b1b0aa;--ink-3: #7c7d80;--line: #2a2b30;--line-2: #3a3c42;--up: #ff6a4d;--down: #5c9bff;--event: #f0b350;--event-bg: #2c2414;--shadow: none}}:root[data-theme=dark]{color-scheme:dark;--bg: #101113;--surface: #18191c;--surface-2: #1d1e22;--lane: #15161a;--ink: #eceae4;--ink-2: #b1b0aa;--ink-3: #7c7d80;--line: #2a2b30;--line-2: #3a3c42;--up: #ff6a4d;--down: #5c9bff;--event: #f0b350;--event-bg: #2c2414;--shadow: none}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}button,select,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.app{display:grid;grid-template-rows:auto 1fr auto;height:100%}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.brand h1{margin:0;font-size:17px;font-weight:700;letter-spacing:.02em}.brand p{margin:0;font-size:12px;color:var(--ink-3)}.top-actions{display:flex;gap:8px}.btn{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:6px 14px;font-size:13px;white-space:nowrap}.btn:hover{border-color:var(--ink-3)}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--surface);min-width:118px}.tabs,.lbl-short{display:none}.main{display:grid;grid-template-columns:272px minmax(0,1fr) 352px;min-height:0}.col{min-height:0;overflow-y:auto}.col.left{border-right:1px solid var(--line);background:var(--surface)}.col.right{border-left:1px solid var(--line);background:var(--surface);padding:16px 18px 28px}.col.center{display:flex;flex-direction:column;padding:14px 18px 12px;gap:10px}.panel-inner{padding:8px 16px 32px}.block{padding:14px 0 10px;border-bottom:1px solid var(--line)}.block:last-child{border-bottom:0}.block-title{display:block;margin:0 0 8px;font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:.08em}.preset-select,.lever-foot select{width:100%;appearance:none;border:1px solid var(--line-2);border-radius:10px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2380858e' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center;padding:8px 32px 8px 12px;font-weight:600}.preset-summary{margin:8px 0 0;font-size:12.5px;color:var(--ink-2)}.lever{padding:7px 0 6px}.lever-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.lever-name{border:0;background:none;padding:0;font-size:13px;color:var(--ink);text-align:left}button.lever-name:hover{text-decoration:underline;text-underline-offset:3px}.lever-value{font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-3)}.lever.active .lever-value{color:var(--ink);font-weight:700}.lever-foot{display:flex;align-items:center;gap:10px;margin-top:4px}.lever-foot select{width:auto;flex:1;padding:4px 28px 4px 10px;font-size:12.5px;font-weight:500;border-radius:8px}.link{border:0;background:none;padding:2px 0;font-size:12.5px;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px}.link:hover{color:var(--ink)}.hint{margin:4px 0 2px;font-size:12px;color:var(--ink-3)}.pin-row{display:flex;align-items:baseline;gap:10px;padding:4px 0}.pin-row .lever-name{flex:1}input[type=range]{--lo: min(var(--zero), var(--fill));--hi: max(var(--zero), var(--fill));width:100%;height:22px;margin:2px 0 0;background:transparent;appearance:none;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--line) 0 var(--lo),var(--ink) var(--lo) var(--hi),var(--line) var(--hi) 100%)}input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--line) 0 var(--lo),var(--ink) var(--lo) var(--hi),var(--line) var(--hi) 100%)}input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--surface);border:2px solid var(--ink);transition:transform .12s}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--ink)}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}.toggle{display:flex;align-items:center;gap:8px;margin:2px 0 8px;font-size:12.5px;color:var(--ink-2);cursor:pointer}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-track{position:relative;flex:none;width:30px;height:18px;border-radius:999px;background:var(--line-2);transition:background .15s}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface);transition:transform .15s}.toggle input:checked+.toggle-track{background:var(--ink)}.toggle input:checked+.toggle-track:after{transform:translate(12px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--ink);outline-offset:2px}.center-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;min-height:30px}.status{margin:0;font-size:13px;color:var(--ink-2)}.status.event{padding:4px 12px;border-radius:999px;background:var(--event-bg);color:var(--event);font-weight:600}.legend{display:flex;gap:14px;font-size:12px;color:var(--ink-3)}.legend span{display:inline-flex;align-items:center;gap:5px}.sw{width:10px;height:10px;border-radius:3px}.sw.up{background:var(--up)}.sw.down{background:var(--down)}.ln{width:18px;border-top:2px solid var(--ink-3)}.ln.dash{border-top-style:dashed}.summary{display:grid;gap:6px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.sum-line{margin:0;display:flex;align-items:baseline;gap:12px;font-size:13.5px;line-height:1.55;color:var(--ink)}.sum-key{flex:none;width:6.5em;font-size:11.5px;font-weight:700;color:var(--ink-3);letter-spacing:.04em}.sum-text.muted,.sum-hint{color:var(--ink-2)}.sum-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:baseline;gap:5px;padding:3px 10px;border:1px solid var(--line-2);border-radius:999px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}.chip b{font-variant-numeric:tabular-nums}.chip small{font-size:11px;font-weight:600}.chip:hover{border-color:var(--ink)}.sum-route{display:inline-flex;flex-wrap:wrap;gap:2px 6px;padding:0;border:0;background:none;font:inherit;font-weight:600;color:var(--ink);text-align:left;cursor:pointer}.sum-route i{margin-right:6px;font-style:normal;color:var(--ink-3)}.sum-route:hover span{text-decoration:underline;text-underline-offset:3px}.sum-event{padding:3px 10px;border-radius:8px;background:var(--event-bg);color:var(--event);font-weight:600;font-size:13px}.graph-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.seg{display:inline-flex;padding:2px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface)}.seg button{border:0;background:none;padding:4px 12px;border-radius:999px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer}.seg button.on{background:var(--ink);color:var(--surface);font-weight:600}.graph-area{position:relative;flex:1;min-height:0;display:flex}.focus-chip,.graph-hint{position:absolute;z-index:2;top:10px;left:50%;transform:translate(-50%);margin:0;white-space:nowrap;font-size:12px}.graph-hint{color:var(--ink-3);pointer-events:none;top:12px}.focus-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 6px 4px 12px;border-radius:999px;background:var(--ink);color:var(--surface);box-shadow:var(--shadow)}.focus-chip button{border:0;background:color-mix(in oklab,var(--surface) 18%,transparent);color:inherit;border-radius:999px;min-width:22px;height:22px;padding:0 8px;font:inherit;cursor:pointer}.focus-more{display:none}.graph-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:40px 10px 10px;box-shadow:var(--shadow)}.graph{width:100%;height:100%;max-height:100%;display:block}.lane{fill:var(--lane)}.lane-label{font-size:14px;font-weight:700;fill:var(--ink-2);letter-spacing:.15em}.edge{fill:none;stroke-linecap:round;transition:stroke-width .35s,opacity .35s}.edge.idle{stroke:var(--line-2);stroke-width:1;opacity:.55}.edge.idle.related{stroke:var(--ink-3);opacity:.9}.edge.up{stroke:var(--up);opacity:.78}.edge.down{stroke:var(--down);opacity:.78}.edge.related,.edge.on-path{opacity:1}.graph.focusing .edge.dim{opacity:.06}.edge.dim{opacity:.16}.edge.idle.dim{opacity:.25}.arrowhead.up{fill:var(--up)}.arrowhead.down{fill:var(--down)}.arrowhead.idle{fill:var(--ink-3)}.node{cursor:pointer;transition:opacity .35s}.node.quiet{opacity:.42}.node.faded{opacity:.16}.node.quiet:hover,.node.faded:hover{opacity:.9}.node.focus .node-box{stroke:var(--ink);stroke-width:3}.node-box{stroke:var(--line-2);stroke-width:1;transition:fill .35s}.node.derived .node-box{stroke-dasharray:4 3;stroke:var(--ink-3)}.node.lever .node-box{stroke:var(--ink-3)}.node.shocked .node-box{stroke:var(--ink);stroke-width:2}.node:hover .node-box{stroke:var(--ink)}.node.selected .node-box{stroke:var(--ink);stroke-width:3}.node:focus-visible{outline:none}.node:focus-visible .node-box{stroke:var(--ink);stroke-width:3}.node-label{font-size:12.5px;fill:var(--ink-2);pointer-events:none}.node-value{font-size:16px;font-weight:700;fill:var(--ink);font-variant-numeric:tabular-nums;pointer-events:none}.node-word{font-size:12px;font-weight:600}.node-pin{font-size:9.5px;font-weight:700;fill:var(--ink);pointer-events:none}.timebar{display:grid;grid-template-columns:auto 1fr 92px;align-items:center;gap:14px;padding:10px 14px 6px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.play{width:40px;height:40px;border-radius:50%;border:0;background:var(--ink);display:grid;place-items:center}.play svg{width:16px;height:16px;fill:var(--surface)}.time-track{position:relative;padding-bottom:18px}.time-track input{display:block}.time-ticks{position:absolute;left:8px;right:8px;top:24px;height:18px;pointer-events:none}.tick{position:absolute;transform:translate(-50%);font-size:11.5px;color:var(--ink-3);white-space:nowrap}.tick:before{content:"";position:absolute;left:50%;top:-7px;width:1px;height:4px;background:var(--line-2)}.tick.major:before{height:6px;background:var(--ink-3)}.tick.on{color:var(--ink);font-weight:700}.time-event{position:absolute;top:-40px;transform:translate(-50%);font-size:13px;pointer-events:auto;cursor:help}.time-now{text-align:right;line-height:1.25}.time-now strong{display:block;font-size:17px}.time-now span{font-size:11.5px;color:var(--ink-3)}.right-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.right-head h2{margin:0;font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:.08em}.right-head span{font-size:13px;font-weight:700}.cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.card{position:relative;display:grid;gap:2px;text-align:left;padding:10px 12px 8px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.card:hover{border-color:var(--ink-3)}.card.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.card-swatch{position:absolute;left:0;top:0;bottom:0;width:5px;transition:background .35s}.card-label{font-size:12px;color:var(--ink-2)}.card-value{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.card-value small,.detail-value small{margin-left:4px;font-size:11.5px;font-weight:600;color:var(--ink-2)}.spark{width:100%;margin-top:2px}.spark svg{display:block}.detail{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.detail-head h2{margin:0;font-size:16px}.unit-note{margin:2px 0 0;font-size:12px;color:var(--ink-3)}.detail-value{text-align:right;white-space:nowrap}.detail-value span{display:block;font-size:11.5px;color:var(--ink-3)}.detail-value strong{font-size:24px;font-variant-numeric:tabular-nums;line-height:1.15}.note{margin:6px 0 0;font-size:12px;color:var(--ink-2)}.chart{position:relative;width:100%;margin-top:30px}.chart svg{display:block;cursor:crosshair}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis{font-size:10.5px;fill:var(--ink-3);font-variant-numeric:tabular-nums}.baseline{stroke:var(--ink-3);stroke-width:1}.series{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.series.thin{stroke-width:1.5;stroke:var(--ink-2)}.area-up{fill:var(--up);opacity:.16}.area-dn{fill:var(--down);opacity:.16}.band{fill:var(--ink-3);opacity:.14}.cursor{stroke:var(--ink-3);stroke-dasharray:2 3}.dot{fill:var(--ink);stroke:var(--surface);stroke-width:2}.event-line{stroke:var(--event);stroke-width:1.5;stroke-dasharray:3 3}.event-mark{font-size:11px}.chart-tip{position:absolute;transform:translate(-50%,-100%);margin-top:6px;padding:2px 8px;border-radius:6px;background:var(--ink);color:var(--surface);font-size:11.5px;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}.chart-tip span{opacity:.75}.why,.direct{margin-top:18px}.why h3,.direct h3{margin:0 0 6px;font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:.08em}.why-text{margin:0 0 10px;font-size:13.5px;line-height:1.7}.why-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.why-list li{display:grid;grid-template-columns:minmax(0,1fr) 96px 64px;align-items:center;gap:10px}.why-label{display:grid;line-height:1.3;font-size:12.5px}.why-label small{font-size:11px;color:var(--ink-3)}.why-bar{position:relative;height:10px;background:linear-gradient(var(--line-2),var(--line-2)) center / 1px 100% no-repeat}.why-bar span{position:absolute;top:1px;bottom:1px;border-radius:3px;transition:width .3s}.why-bar .up{background:var(--up)}.why-bar .down{background:var(--down)}.why-value{text-align:right;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.direct{padding-top:14px;border-top:1px solid var(--line)}.foot{padding:8px 20px;border-top:1px solid var(--line);background:var(--surface);font-size:11.5px;color:var(--ink-3)}@media(max-width:1280px){.main{grid-template-columns:248px minmax(0,1fr) 320px}.legend{display:none}}@media(max-width:959px){.top{padding:10px 16px}.brand p{display:none}.btn{padding:6px 10px}.btn.primary{min-width:0}.tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);background:var(--surface)}.tabs button{border:0;background:none;padding:10px 0 9px;font-size:13.5px;color:var(--ink-3);border-bottom:2px solid transparent}.tabs button.on{color:var(--ink);font-weight:700;border-bottom-color:var(--ink)}.app{grid-template-rows:auto auto 1fr auto}.main{display:block;overflow:hidden}.main>.col{display:none;height:100%;border:0}.main.show-levers>.left,.main.show-results>.right{display:block}.main.show-graph>.center{display:flex}.brand h1{font-size:15px}.lbl-long{display:none}.lbl-short{display:inline}.col.center{padding:10px 12px}.col.right{padding:14px 16px 28px}.graph-wrap{overflow-x:auto;justify-content:flex-start;align-items:stretch}.graph{flex:none;width:auto;height:100%;max-height:none;aspect-ratio:904 / 548}.focus-more{display:inline-block}.graph-area{display:block}.graph-wrap{height:100%;padding-top:44px}.sum-desc,.graph-bar .legend{display:none}.summary{padding:10px 12px;gap:4px}.graph-hint{display:none}.focus-chip{top:8px;left:8px;transform:none}.sum-key{width:auto}.sum-line{flex-wrap:wrap;gap:4px 10px}.foot{padding:6px 16px;font-size:10.5px}}
