@font-face{font-family:NotoSansJP;src:url(/fonts/NotoSansJP-VariableFont_wght.ttf) format("truetype");font-weight:100 900}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:NotoSansJP,sans-serif;background:#111;color:#eee}header{padding:1.2rem 2rem;border-bottom:1px solid #333;display:flex;align-items:center;gap:1rem}header a{color:#888;text-decoration:none;font-size:.9rem}header a:hover{color:#eee}h1{margin:0;font-size:1.2rem;font-weight:700}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;padding:.6rem 2rem;border-bottom:1px solid #333;background:#161616;font-size:.82rem}.tb-group{display:flex;align-items:center;gap:.45rem}.tb-group+.tb-group{padding-left:1.2rem;border-left:1px solid #333}.toolbar button{font-family:inherit;font-size:.82rem;color:#ccc;background:#222;border:1px solid #444;border-radius:6px;padding:.35rem .8rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.toolbar button:hover{border-color:#777;color:#fff}.toolbar button.active{background:#2b4a6f;border-color:#4da3ff;color:#fff}.toolbar label{display:flex;align-items:center;gap:.3rem;color:#aaa;white-space:nowrap;cursor:pointer}.toolbar select{font-family:inherit;font-size:.82rem;color:#eee;background:#222;border:1px solid #444;border-radius:6px;padding:.3rem .4rem}.toolbar input[type=range]{width:80px}main{display:flex;gap:1rem;padding:1.2rem 2rem;align-items:flex-start}.rail-stack{display:flex;flex-direction:column;gap:.6rem;flex-shrink:0}.toolrail{display:flex;flex-direction:column;gap:.35rem;padding:.4rem;background:#1a1a1a;border:1px solid #333;border-radius:8px;flex-shrink:0}.hidden{display:none!important}.toolrail button{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:6px;color:#999;cursor:pointer;transition:color .15s,background .15s,border-color .15s}.toolrail button:hover{color:#fff;background:#262626}.toolrail button.active{background:#2b4a6f;border-color:#4da3ff;color:#fff}.toolrail svg{width:21px;height:21px}.canvas-wrap{flex:1;display:flex;justify-content:center;min-width:0;user-select:none}#map-svg{width:min(100%,calc(100vh - 230px));height:auto;display:block;border:1px solid #333;border-radius:8px;touch-action:none}#map-svg[data-mode=pan]{cursor:grab}#map-svg[data-mode=text]{cursor:text}#map-svg[data-mode=node]{cursor:crosshair}#map-svg[data-mode=edge]{cursor:pointer}#map-svg[data-mode=area],#map-svg[data-mode=draw]{cursor:crosshair}#map-svg[data-mode=delete]{cursor:not-allowed}#map-svg [data-node],#map-svg [data-edge],#map-svg [data-ctrl],#map-svg [data-area],#map-svg [data-avert]{cursor:pointer}#map-svg[data-mode=select] [data-ctrl],#map-svg[data-mode=select] [data-avert]{cursor:grab}.panel{width:270px;flex-shrink:0;background:#1a1a1a;border:1px solid #333;border-radius:8px;padding:1rem 1.2rem;font-size:.85rem}.panel h2{margin:0 0 .8rem;font-size:1rem;font-weight:700}.panel .pid{font-size:.75rem;font-weight:400;color:#777}.panel .field{display:block;color:#aaa;margin-bottom:.8rem}.panel .field input{display:block;width:100%;margin-top:.3rem;font-family:inherit;font-size:.9rem;color:#eee;background:#222;border:1px solid #444;border-radius:6px;padding:.4rem .6rem;outline:none}.panel .field input:focus{border-color:#888}.panel fieldset{border:1px solid #333;border-radius:6px;margin:0 0 .8rem;padding:.5rem .8rem .7rem}.panel legend{color:#888;font-size:.78rem;padding:0 .3rem}.panel .radio{display:flex;align-items:center;gap:.4rem;padding:.15rem 0;cursor:pointer;color:#ccc}.panel .stat{color:#888;margin-bottom:.5rem}.panel .hint{color:#666;font-size:.78rem;line-height:1.7;margin:.8rem 0 0}.panel .btnrow{display:flex;gap:.4rem;margin-bottom:.8rem}.panel .btnrow button{flex:1;font-family:inherit;font-size:.78rem;color:#ccc;background:#222;border:1px solid #444;border-radius:6px;padding:.35rem .4rem;cursor:pointer;transition:border-color .15s,color .15s}.panel .btnrow button:hover{border-color:#777;color:#fff}.panel input[type=color]{display:block;width:100%;height:2.2rem;margin-top:.3rem;padding:.15rem;background:#222;border:1px solid #444;border-radius:6px;cursor:pointer}@media(max-width:760px){main{flex-direction:column}.toolrail{flex-direction:row;align-self:stretch;justify-content:center}.panel{width:100%}.toolbar,main,header{padding-left:1rem;padding-right:1rem}}
