:root{font-family:Arial,sans-serif;color:#e2e9e4;background:#101d24;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,select,textarea,input{font:inherit}button{cursor:pointer;background:#20333b;border:1px solid #3b5158;color:#e2e9e4;padding:10px 12px;text-align:left;border-radius:6px;transition:background .15s}button:hover{background:#36504e}button:disabled{opacity:.45}button:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #f5cb76;outline-offset:3px}main{min-height:100dvh}header{padding:30px 36px;display:flex;align-items:center;gap:40px;border-bottom:1px solid #32434a}.brand{display:flex;gap:18px;align-items:center}.mark{font-size:76px;color:#f5cb76}small{font-size:10px;letter-spacing:2px;color:#9aaea9}h1{font-size:25px;margin:6px 0;font-weight:400;line-height:1.12}h1 em{color:#f5cb76;font-family:Georgia,serif;font-size:33px}.intro{margin-left:auto;color:#9aafa9;font-family:Georgia,serif;font-size:22px;line-height:1.3}.workspace{display:grid;grid-template-columns:260px minmax(300px,1fr) 295px;min-height:720px}aside{padding:24px;border-right:1px solid #32434a;overflow-wrap:anywhere}aside button{width:100%;margin-top:8px;font-size:12px}p{font-size:12px;line-height:1.6;color:#a9b9b5}label{display:block;font-size:12px;margin-top:12px}select{width:100%;margin-top:6px;background:#213840;color:#dcdfd7;padding:8px;border:1px solid #52686a}textarea{width:100%;height:220px;resize:vertical;margin-top:8px;background:#0b171d;color:#bbd9cf;border:1px solid #41585c;border-radius:6px;font-family:monospace;font-size:11px;padding:10px}.row{display:flex;gap:6px}.file input{display:block;width:100%;font-size:10px;margin-top:8px}.rule{height:1px;background:#32434a;margin:24px 0}.canvas{display:flex;flex-direction:column;min-width:0;background:radial-gradient(ellipse at center,#20353a,#101d24)}.canvas-title{display:flex;justify-content:space-between;gap:20px;padding:25px;font-size:10px;letter-spacing:1px}.canvas-title b{color:#e7c885;text-align:right}.canvas svg{width:100%;min-height:300px;max-height:680px;flex:1}.cord{fill:none;stroke:#f5cb76;stroke-width:5;stroke-linecap:round;transition:stroke .2s,stroke-width .2s}.cord.selected{stroke:#71e6c0;stroke-width:12;stroke-dasharray:13 8;animation:flow 1s linear infinite}@keyframes flow{to{stroke-dashoffset:-42}}svg text{fill:#acc6bc;font-size:16px}.junction{fill:#72d7b1;stroke:#14262a;stroke-width:3}.pass{fill:#172930;stroke:#72d7b1;stroke-width:3}.legend{display:flex;justify-content:center;gap:24px;font-size:10px;color:#b4c3b7}.route-play{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:24px;font-size:12px}.result{border-left:1px solid #32434a;border-right:0}h2{font-family:Georgia,serif;font-size:35px;font-weight:400;color:#f5cb76;line-height:1.15;margin:24px 0}.metrics{display:flex;gap:16px;margin:24px 0;font-size:10px;color:#9bb6a9}.metrics b{display:block;font-size:29px;color:#dcece1;font-weight:400;margin-bottom:6px}.note{padding:12px;border-left:2px solid #73b59e;background:#18332f}details{font-size:12px;line-height:1.7}summary{cursor:pointer;color:#cfdbc9}ol{padding-left:18px;font-size:10px}footer{padding:20px 36px;border-top:1px solid #32434a}footer [role=status]{color:#f5cb76}footer button{margin-right:8px}footer details{max-width:700px}@media(max-width:1050px){.workspace{grid-template-columns:230px 1fr}.result{grid-column:1/-1;border-top:1px solid #32434a}.result button{width:auto;margin-right:8px}.result .metrics{max-width:360px}}@media(max-width:650px){header{padding:18px;gap:16px}.intro{display:none}.workspace{display:flex;flex-direction:column}.canvas{order:-1}.canvas svg{height:420px}.canvas-title{font-size:9px}.result h2{font-size:30px}aside{border-right:0}header button{margin-left:auto;font-size:11px}.brand{gap:8px}.mark{font-size:45px}h1{font-size:18px}h1 em{font-size:25px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.node-key{padding:0 25px;font-size:10px;overflow-wrap:anywhere;max-height:80px;overflow:auto}.focused .workspace{grid-template-columns:1fr}.focused aside,.focused footer{display:none}.focused .canvas svg{max-height:calc(100dvh - 270px)}
