*{box-sizing:border-box}body{margin:0;background:#f4efe6;color:#241f1a;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,select{font:inherit}.app{width:min(100vw,720px);min-height:100vh;margin:0 auto;padding:12px;display:flex;flex-direction:column;gap:10px}.setup{justify-content:center}.setupCard{border:1px solid #d8c7ad;background:#fffaf1;border-radius:8px;padding:18px;display:grid;gap:14px}.setupCard h1{margin:0;font-size:30px}.setupCard p{margin:0;color:#74685b}.levelGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.levelGrid button{min-height:76px;padding:10px;display:grid;gap:4px;text-align:left}.levelGrid button.selected{border-color:#276be8;box-shadow:0 0 0 3px #276be82e}.levelGrid span{color:#74685b;font-size:12px}.startButton{width:100%}.topbar,.panel,.log,.teamPieces,.moves{border:1px solid #d8c7ad;background:#fffaf1;border-radius:8px}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px}.topbar div,.pending{display:flex;flex-direction:column;gap:2px}.topbar span,.pending span,.teamPieces span,.moves span,.log p{color:#74685b;font-size:13px}select,button{min-height:40px;border:1px solid #c8b392;border-radius:8px;background:#fffdf8;color:#241f1a}button:disabled{opacity:.45}.teamPieces{padding:8px 10px;display:grid;grid-template-columns:minmax(92px,1fr) auto;align-items:center;gap:8px}.teamPieces header{display:flex;align-items:center;gap:10px;min-width:0}.teamPieces header strong{min-width:44px}.teamPieces header span{white-space:nowrap}@media (max-width: 380px){.teamPieces{grid-template-columns:1fr auto;gap:6px}.teamPieces header{gap:6px}.teamPieces header strong,.teamPieces header span{font-size:12px}.pieceDots button{width:30px;min-height:30px}.pieceDots i{width:18px;height:18px}}.pieceDots{display:flex;gap:6px;justify-content:flex-end}.pieceDots button{width:34px;min-height:34px;display:grid;justify-items:center;align-content:center}.pieceDots button.selected{border-color:#276be8;box-shadow:0 0 0 3px #276be82e}.pieceDots button.movable{border-color:#276be8;background:#eef5ff;box-shadow:0 0 0 2px #276be824}.pieceDots i{width:20px;height:20px;border-radius:50%;border:1px solid #222}.pieceDots .human i{background:#276be8}.pieceDots .pc i{background:#d34535}.pieceDots button:disabled i{opacity:.45}.pieceDots .finished i{opacity:.25}.board{position:relative;aspect-ratio:1;width:100%;background:#efe2cc;border:2px solid #7c664a;border-radius:8px;overflow:hidden;touch-action:manipulation}.lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.lines line{stroke:#7c664a;stroke-width:1.1}.node{position:absolute;width:9.2%;height:9.2%;min-height:0;padding:0;transform:translate(-50%,-50%);border-radius:50%;background:#fffdf8;border:2px solid #4b3c2d;display:grid;place-items:center}.node.big{width:12%;height:12%;background:#ead5ae}.node.target{border-color:#f0a000;background:#ffe08a;box-shadow:0 0 0 4px #f0a00040}.node.hasMovable{border-color:#276be8;box-shadow:0 0 0 4px #276be82e}.targetLabel{position:absolute;left:50%;bottom:-9px;transform:translate(-50%);padding:1px 4px;border-radius:999px;background:#222;color:#fff;font-size:10px;line-height:1.2;white-space:nowrap;z-index:3}.node small{font-size:clamp(8px,2vw,11px);line-height:1}.stack{position:absolute;inset:auto 0 4px;display:flex;justify-content:center;gap:1px}.stack i{width:18px;height:18px;border-radius:50%;color:#fff;border:1px solid #222}.stack i.human{background:#276be8}.stack i.pc{background:#d34535}.stack i.picked{outline:3px solid white}.stack i.movable{box-shadow:0 0 0 4px #276be847;cursor:pointer}.node.target .stack i{pointer-events:none}.stack em{font-size:10px;font-style:normal;font-weight:800}.panel{display:grid;grid-template-columns:1fr 140px;gap:10px;align-items:center;padding:10px}.primary{background:#222;color:#fff;border-color:#222;font-weight:800}.moves{min-height:52px;padding:8px;display:flex;gap:8px;overflow-x:auto;align-items:center}.moves button{white-space:nowrap;padding-inline:12px;background:#276be8;border-color:#276be8;color:#fff;font-weight:800}.log{padding:10px;display:grid;gap:6px}.logHeader{display:flex;align-items:center;justify-content:space-between}.logHeader button{min-height:32px;padding-inline:10px}.log p{margin:0;line-height:1.35}
