.board-app{background:var(--mask);grid-template-rows:auto minmax(0,1fr) auto auto;height:100dvh;display:grid}.board-toolbar{grid-row:1}.board-workspace{grid-row:2}.board-bottom{grid-row:3}.board-footer{grid-row:4}.board-app button{color:var(--silk);background:0 0;border:0;font-weight:600}.board-app button:disabled{opacity:.45;cursor:default}.board-icon{isolation:isolate;cursor:pointer;min-width:44px;min-height:44px;transition:color var(--dur-fast) var(--ease-out);place-items:center;padding:0;list-style:none;display:inline-grid;position:relative;color:var(--silk-muted)!important}.board-icon::-webkit-details-marker{display:none}.board-icon:before{content:"";z-index:-1;border-radius:var(--radius-s,8px);transition:background-color var(--dur-fast) var(--ease-out);position:absolute;inset:4px}@media (hover:hover) and (pointer:fine){.board-icon:not(:disabled):hover{color:var(--silk)!important}.board-icon:not(:disabled):hover:before{background:color-mix(in srgb, var(--silk) 8%, transparent)}}.board-icon[aria-expanded=true],details[open]>.board-icon{color:var(--silk)!important}.board-icon[aria-expanded=true]:before,details[open]>.board-icon:before{background:color-mix(in srgb, var(--silk) 12%, transparent)}.board-toolbar{padding:4px max(12px, env(safe-area-inset-right)) 4px max(12px, env(safe-area-inset-left));align-items:center;gap:2px;display:flex}.board-toolbar-gap{background:color-mix(in srgb, var(--silk) 14%, transparent);width:1px;height:20px;margin-inline:6px}.board-toolbar-end{align-items:center;gap:4px;margin-inline-start:auto;display:flex}.board-toolbar-end a{color:var(--silk);align-items:center;min-height:44px;padding:0 8px;font-weight:600;text-decoration:none;display:inline-flex}.board-menu{position:relative}.board-menu-list{z-index:30;background:var(--glass-strong,var(--mask-raised));-webkit-backdrop-filter:blur(16px)saturate(140%);border:1px solid var(--glass-border);min-width:220px;box-shadow:var(--shadow-2);border-radius:var(--radius-m,12px);animation:board-pop var(--dur-base) var(--ease-out) both;padding:6px;display:grid;position:absolute;top:calc(100% + 4px);right:0}.board-menu-list button{border-radius:var(--radius-s,8px);text-align:start;align-items:center;gap:10px;min-height:44px;padding:0 12px;font-weight:500;display:flex}@media (hover:hover) and (pointer:fine){.board-menu-list button:not(:disabled):hover{background:color-mix(in srgb, var(--silk) 8%, transparent)}}@keyframes board-pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.board-workspace{min-height:0;position:relative;overflow:hidden}.board-surface{touch-action:none;user-select:none;-webkit-touch-callout:none;outline-offset:-4px;position:absolute;inset:0}.board-surface:focus-visible{outline:2px solid var(--ring)}.board-surface canvas{display:block}.board-zoom{right:calc(var(--board-occluded-right,0px) + max(12px, env(safe-area-inset-right,0px)));font-variant-numeric:tabular-nums;color:var(--silk-muted);align-items:center;display:flex;position:absolute;bottom:12px}.board-zoom:before{content:"";z-index:-1;background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(140%);border:1px solid var(--glass-border);box-shadow:var(--shadow-1);border-radius:var(--radius-m,12px);position:absolute;inset:4px 0}.board-zoom{isolation:isolate}.board-zoom output{text-align:center;min-width:44px;font-size:var(--micro)}.board-panel{z-index:20;inset:8px max(8px, env(safe-area-inset-right,0px)) 8px auto;overscroll-behavior:contain;background:var(--glass-strong,var(--mask-raised));-webkit-backdrop-filter:blur(16px)saturate(140%);border:1px solid var(--glass-border);width:340px;box-shadow:var(--shadow-3);border-radius:var(--radius-l,18px);animation:board-panel-in var(--dur-slow) var(--ease-out) both;padding:16px 16px 20px;position:absolute;overflow-y:auto}@keyframes board-panel-in{0%{opacity:0;transform:translate(12px)}}.board-panel-heading{align-items:center;gap:8px;margin-bottom:8px;display:flex}.board-panel-heading h2{margin:0 auto 0 0;font-size:1.25rem}.board-panel label{font-size:var(--small);color:var(--silk-muted);gap:6px;margin-block:12px;display:grid}.board-panel input,.board-panel select{background:var(--mask-sunken);width:100%;min-width:0;min-height:44px;color:var(--silk);border:1px solid var(--border);border-radius:var(--radius-s,8px);transition:border-color var(--dur-fast) var(--ease-out);padding:8px 12px;font-size:1rem}@media (hover:hover) and (pointer:fine){.board-panel input:hover,.board-panel select:hover{border-color:var(--border-strong)}}.board-panel input:focus-visible,.board-panel select:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.board-panel>button,.board-panel .queue-route-inspector>button{min-height:44px;padding:0 12px}.part-list{margin:0;padding:0;list-style:none}.part-list button{text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:8px 10px;font-weight:500;display:flex}@media (hover:hover) and (pointer:fine){.part-list button:not(:disabled):hover{background:color-mix(in srgb, var(--silk) 7%, transparent)}}.part-list button{border-radius:var(--radius-s,8px)}.part-list button[aria-pressed=true]{background:color-mix(in srgb, var(--silk) 10%, transparent);box-shadow:inset 0 0 0 1px var(--border-strong)}.part-list span{color:var(--silk-muted);font-size:var(--small);font-weight:400}.part-list .part-list-name{color:var(--silk);font-size:1rem;font-weight:600}.part-list .part-list-help{flex-basis:100%;line-height:1.35}.board-part-help{color:var(--silk-muted);font-size:var(--small);margin:0 0 8px}.board-bottom{padding:6px max(12px, env(safe-area-inset-right)) 6px max(12px, env(safe-area-inset-left));flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;display:flex}.board-bottom .btn[aria-pressed=true]{--btn-bg:color-mix(in srgb, var(--silk) 12%, transparent)}.board-placing{color:var(--silk-muted);font-size:var(--small)}.board-status{text-align:center;max-width:none;color:var(--silk-muted);font-size:var(--small);margin:0;padding:0 16px}.board-status:not(:empty){padding-block:2px 8px}.board-loading{padding:32px}.key-list{margin:0}.key-list div{border-bottom:1px solid color-mix(in srgb, var(--silk) 8%, transparent);justify-content:space-between;align-items:baseline;gap:16px;padding-block:8px;display:flex}.key-list dd{color:var(--silk-muted);font-size:var(--small);text-align:end;margin:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.connection-lock{color:var(--silk-muted);font-size:var(--small);margin:0}.board-panel .boolean-field{min-height:44px;color:var(--silk);align-items:center;gap:12px;display:flex}.board-panel .boolean-field input{width:20px;min-height:20px;accent-color:var(--primary);clip-path:none}@media (width<=639px){.board-toolbar{padding-inline:4px}.board-panel{width:auto;max-height:72%;padding:16px max(16px, env(safe-area-inset-right,0px)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left,0px));border-radius:var(--radius-l,18px) var(--radius-l,18px) 0 0;animation-name:board-sheet-in;inset:auto 0 0}@keyframes board-sheet-in{0%{opacity:0;transform:translateY(16px)}}.board-bottom{gap:0;padding-inline:4px}.board-bottom .btn{padding-inline:10px}}@media (prefers-reduced-motion:reduce){.board-panel,.board-menu-list{animation:none}}:root[data-reduced-motion=true] .board-panel,:root[data-reduced-motion=true] .board-menu-list{animation:none}.board-game{grid-template-rows:minmax(0,1fr)}.board-game .board-workspace{grid-row:1}.board-game-tools{z-index:15;top:10px;right:max(10px, env(safe-area-inset-right,0px));align-items:center;gap:4px;display:flex;position:absolute}.board-game-tools>a,.board-game-tools .btn{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(140%);border:1px solid var(--glass-border);border-radius:var(--radius-m,12px)}@media (pointer:coarse){.board-game .board-zoom-step,.board-game .board-zoom .board-toolbar-gap{display:none}}.board-game .board-footer{z-index:14;left:max(12px, env(safe-area-inset-left,0px));pointer-events:none;background:0 0;border:0;flex-wrap:wrap;gap:6px;max-width:calc(100% - 240px);padding:0;display:flex;position:absolute;bottom:12px}.board-game .board-footer>*{margin:0}.board-game .board-status:not(:empty),.board-game .board-footer .sandbox-sync{background:var(--glass-strong,var(--mask-raised));-webkit-backdrop-filter:blur(16px)saturate(140%);border:1px solid var(--glass-border);box-shadow:var(--shadow-1);color:var(--silk);font-size:var(--small);border-radius:999px;padding:6px 12px}.board-game .board-panel{bottom:72px}
