:root{--bg: #f6f1e9;--bg-accent: #d7e7d0;--ink: #1f241e;--muted: #5c6458;--panel: #ffffff;--board: #2f6b4f;--board-deep: #25523e;--board-grid: #193428;--white: #f5f1e8;--black: #141614;--mask-allowed: #aee6c4;--mask-blocked: #c9c5b8;--accent: #ef7a3d;--accent-2: #3a7ca5;--danger: #b33f40;--shadow: 0 18px 40px rgba(31, 36, 30, .12);--cell: 32px;--board-line: 2px;--board-gap: var(--board-line);--board-pad: 2px;--board-mini-size: 153px;--gap: 10px;--pad: 10px;--font-base: 12px;--panel-title: 26px;--panel-controls: 30px;--panel-gap: 6px;--tile-pad: 8px}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,Segoe UI,Tahoma,sans-serif;color:var(--ink);background:radial-gradient(circle at top,var(--bg-accent),var(--bg));font-size:var(--font-base)}.page{max-width:1200px;margin:0 auto;padding:10px 14px 14px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:16px}header h1{margin:0;font-size:20px;letter-spacing:.5px}header p{margin:6px 0 0;color:var(--muted)}.panel{background:var(--panel);border-radius:18px;padding:var(--pad);box-shadow:var(--shadow);animation:rise .6s ease both}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.grid{display:grid;gap:var(--gap)}.layout{display:grid;gap:var(--gap);--panel-size: clamp(220px, 22vw, 280px);--tile-body-height: calc( var(--panel-size) - var(--panel-title) - (2 * var(--pad)) - var(--panel-gap) );--board-shell: calc( var(--tile-body-height) - var(--panel-controls) - var(--panel-gap) - (2 * var(--tile-pad)) );--step-card-size: calc(var(--panel-size) - 60px);max-width:calc((4 * var(--panel-size)) + (3 * var(--gap)));margin:0 auto}.top-row{display:grid;grid-template-columns:repeat(4,var(--panel-size));gap:var(--gap);align-items:start;justify-content:space-between}.top-row .panel{height:var(--panel-size)}.bottom-row{display:grid;grid-template-columns:repeat(4,var(--panel-size));gap:var(--gap);justify-content:space-between}.panel{align-self:start;width:100%;display:flex;flex-direction:column;gap:var(--panel-gap);overflow:hidden}.board-panel{width:100%;display:grid;grid-template-rows:var(--panel-title) var(--tile-body-height);gap:var(--panel-gap)}.tile-body{display:grid;grid-template-rows:var(--board-shell) var(--panel-controls);gap:var(--panel-gap);background:#fff;border-radius:14px;padding:var(--tile-pad);box-shadow:inset 0 0 0 1px #1f241e0f;overflow:hidden;align-items:stretch;justify-items:stretch;height:var(--tile-body-height);width:100%}.panel-shell{display:grid;place-items:center;width:auto;height:100%;aspect-ratio:1 / 1;flex:0 0 auto;min-height:0;padding:6px;border-radius:14px;background:transparent;justify-self:center;align-self:center}.origin-panel{position:relative}.origin-selector{position:relative;width:100%;height:100%}.origin-overlay{position:absolute;inset:0;pointer-events:none}.origin-hit{position:absolute;pointer-events:auto;border:none;background:transparent;cursor:pointer;display:grid;place-items:center;padding:0;border-radius:0;box-shadow:none;transform:none;transition:none;outline:none;appearance:none}.origin-hit:after{content:none}.origin-hit:hover,.origin-hit:focus-visible{box-shadow:none;transform:none;background:transparent;outline:none}.menu-panel{min-width:0}.step-panel{grid-column:1 / -1;height:var(--panel-size)}.board-panel .panel-shell{width:min(100%,var(--board-shell));height:min(100%,var(--board-shell));margin:0 auto;padding:0;display:flex;align-items:center;justify-content:center}.section-title{min-height:var(--panel-title)}.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.board{--board-gap-current: var(--board-gap, 2px);--board-pad-current: var(--board-pad, 2px);--board-border-current: var(--board-border-width, var(--board-gap-current));display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:1fr;gap:0;justify-content:center;align-content:center;background:var(--board-grid, var(--board-deep));padding:var(--board-pad-current);border-radius:0;box-shadow:inset 0 0 0 2px #ffffff14;border:var(--board-border-current) solid var(--board-grid);box-sizing:border-box;width:100%;height:100%}.cell{width:100%;height:100%;border-radius:0;box-sizing:border-box;background:var(--board);display:grid;place-items:center;cursor:pointer;position:relative;transition:transform .12s ease,background .2s ease;border-right:var(--board-gap-current) solid var(--board-grid);border-bottom:var(--board-gap-current) solid var(--board-grid)}.cell:nth-child(6n){border-right:none}.cell:nth-last-child(-n+6){border-bottom:none}.cell:hover{transform:none;background:#3a7a59;box-shadow:inset 0 0 0 1px #ffffff1f}.disk{width:70%;height:70%;border-radius:50%;background:linear-gradient(135deg,#ffffff14,#00000014);box-shadow:inset 0 0 3px #00000059}.disk.white{background-color:var(--white);background-image:linear-gradient(145deg,#ffffff0d,#0000000d)}.disk.black{background-color:var(--black)}.cell.highlight:after{content:"";position:absolute;inset:0;border:2px solid var(--accent);border-radius:0;pointer-events:none}.mask-cell{width:var(--cell);height:var(--cell);border-radius:10px;display:grid;place-items:center;font-weight:600;cursor:pointer;transition:transform .12s ease,background .2s ease}.mask-cell.allowed{background:var(--mask-allowed);color:var(--ink)}.mask-cell.blocked{background:var(--mask-blocked);color:#6f6a5e}.mask-cell:hover{transform:none;box-shadow:inset 0 0 0 1px #ffffff1f}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.section-title h2{margin:0;font-size:16px}.controls{display:flex;flex-wrap:wrap;gap:6px;margin-top:0}.board-panel .controls button{padding:4px 8px;font-size:11px;line-height:1.1}.board-panel .controls{height:var(--panel-controls);align-items:stretch;flex-wrap:nowrap;gap:4px;width:100%;justify-content:space-between}.board-panel .controls button{flex:1 1 0;min-width:0;white-space:nowrap;font-size:9px;padding:0 6px;height:100%;line-height:1}.controls-spacer{margin-top:6px}.origin-meta{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;font-size:12px;color:var(--muted);min-height:var(--panel-controls);width:100%}.origin-label span{font-weight:600;color:var(--ink)}.origin-note{margin:0;font-size:11px}.menu-panel .controls button{padding:5px 10px}.menu-step-card{margin-top:6px;padding:12px;background:#fff;border-radius:16px;height:var(--tile-body-height);width:100%;display:flex;box-shadow:inset 0 0 0 1px #1f241e14}.menu-step-shell{flex:1;height:100%;border-radius:12px;background:#f8f4ee;padding:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:inset 0 0 0 1px #1f241e0a}.menu-step-list{display:grid;gap:8px;overflow-y:auto;flex:1;min-height:0;padding-right:4px}.menu-step-item{display:flex;align-items:center;gap:8px;border:none;border-radius:10px;padding:8px 10px;background:#fff;color:var(--ink);cursor:pointer;text-align:left;box-shadow:inset 0 0 0 1px #1f241e0f}.menu-step-item.active{background:#f0e3d3;font-weight:600}.menu-step-empty{margin:0;color:var(--muted);font-size:14px;text-align:center;flex:1;display:flex;align-items:center;justify-content:center;padding:0 12px}button{border:none;border-radius:999px;padding:6px 10px;font-weight:600;cursor:pointer;background:var(--ink);color:#fff;transition:transform .12s ease,box-shadow .2s ease}button.secondary{background:#f2e9dc;color:var(--ink)}button.accent{background:var(--accent);color:#fff}button:disabled{opacity:.6;cursor:not-allowed}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 16px #00000026}button.origin-hit,.origin-hit{background:transparent!important;box-shadow:none!important;transform:none!important;border-radius:0;padding:0;min-width:0;min-height:0}button.origin-hit:hover,button.origin-hit:focus-visible,.origin-hit:hover,.origin-hit:focus-visible{background:transparent!important;box-shadow:none!important;transform:none!important;outline:none}.status{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-weight:600}.status.reachable{background:#d5f1df;color:#1f5f36}.status.unreachable{background:#f6d9d9;color:#7d2e2f}.status.unknown{background:#f5e2c8;color:#7a4c1f}.status.error{background:#f6d9d9;color:#7d2e2f}.octal-list{display:grid;gap:8px;font-size:12px;margin-top:12px;color:var(--muted)}.octal-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:12px;background:#f7f2ea}.octal-item code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}.stepper{display:flex;align-items:center;gap:10px;flex-wrap:wrap}input[type=range]{flex:1;min-width:180px}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.result-grid.compact{grid-template-columns:1fr .85fr;gap:10px}.note{color:var(--muted);font-size:14px;margin-top:4px}.move-list{list-style:none;margin:8px 0 0;display:grid;gap:4px;max-height:180px;overflow:auto;border-radius:10px;background:#f7f2ea;padding:8px}.move-list li{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:8px}.move-list li.active{background:#efe1d0;font-weight:600}.move-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:22px;border-radius:999px;background:#e7dccd;color:var(--ink);font-size:11px;font-weight:600}.move-label{flex:1;font-size:12px}.step-strip{display:flex;gap:8px;overflow-x:auto;padding:8px;background:#fff;border-radius:16px;box-shadow:var(--shadow);scrollbar-gutter:stable;height:100%;align-items:center}.step-card{display:inline-flex;flex-direction:column;gap:6px;border:none;border-radius:12px;padding:8px;background:#f7f2ea;color:var(--ink);cursor:pointer;min-width:var(--step-card-size);width:var(--step-card-size);overflow:hidden;align-items:center}.step-card.active{background:#efe1d0;font-weight:600}.step-card-board{width:calc(var(--board-shell) - 12px);height:calc(var(--board-shell) - 12px);display:grid;place-items:center}.board.board-mini{width:min(100%,var(--board-mini-size));height:min(100%,var(--board-mini-size));max-width:100%;max-height:100%;margin:0 auto}.board.board-mini .disk{width:70%;height:70%}.step-card-meta{display:flex;align-items:center;gap:6px;justify-content:flex-start;text-align:left;width:100%}@media(max-width:720px){.layout{grid-template-columns:1fr}}@media(max-width:1100px){.top-row,.bottom-row{grid-template-columns:repeat(2,var(--panel-size))}}@media(max-width:1024px){:root{--cell: 30px;--gap: 8px;--pad: 8px;--font-base: 11px}header h1{font-size:18px}}@media(max-width:820px){.top-row,.bottom-row{grid-template-columns:1fr}}@media(max-height:700px){:root{--cell: 28px;--gap: 7px;--pad: 7px;--font-base: 10.5px}}
