:root{font-family:Avenir Next,Segoe UI,sans-serif;color:#f3f6ff;background:radial-gradient(circle at 20% 10%,#1a2644,#090d1a 55%,#06080f);--touch-piece-gap: .14rem;--touch-piece-min-height: 34px;--touch-piece-padding: .1rem;--touch-mini-cell-size: 4px}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow:hidden}#app{height:100dvh;min-height:100vh;padding:.7rem;overflow:hidden}main{display:grid;gap:.7rem;grid-template-columns:minmax(0,1fr) 300px;height:100%;overflow:hidden}.status-flight{position:fixed;left:0;top:0;transform:translate(-50%,-50%);transition:transform 1s ease-out,opacity 1s ease-out;z-index:2000;pointer-events:none;color:#ff8f97;font-size:.8rem;font-weight:700;border:1px solid rgba(255,122,133,.65);background:#601723eb;border-radius:999px;padding:.12rem .42rem;opacity:.96;white-space:nowrap}.status-flight.active{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)));opacity:0}main.long-rect-mode{grid-template-columns:minmax(0,1fr) 300px}.pane-tabs{grid-column:1 / -1;display:flex;gap:.45rem;padding:.45rem}.tab-btn{flex:0 0 auto;font-size:.82rem;padding:.24rem .5rem}.tab-btn.active{border-color:#8ecae6;box-shadow:inset 0 0 0 1px #8ecae6}.touch-solved-toggle{margin-left:auto}.repo-toggle{position:fixed;top:.75rem;right:.75rem;z-index:40;display:flex;align-items:center;gap:.4rem}.repo-icon-btn{width:40px;height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:#111a32;border:1px solid #3b486d}.repo-icon-btn.active{border-color:#8ecae6}.repo-icon-btn svg{width:20px;height:20px}.repo-popover{max-width:min(72vw,360px);background:#0f1730;border:1px solid #3b486d;border-radius:10px;padding:.45rem .55rem;box-shadow:0 14px 32px #0000006b}.repo-popover a{color:#b8d6ff;text-decoration:none;font-size:.82rem;word-break:break-all}.repo-popover a:hover{text-decoration:underline}.pane{border:1px solid #29334f;border-radius:14px;background:linear-gradient(180deg,#131b31,#0b1020);box-shadow:0 12px 34px #00000059;padding:.65rem}header h2{margin:0;letter-spacing:.03em}.solver-title-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.board-size-select{display:inline-flex;align-items:center;gap:.4rem;color:#c6d0eb;font-size:.78rem}.board-size-select select{border:1px solid #445073;border-radius:7px;background:#151e3a;color:#eef3ff;padding:.18rem .35rem;font-size:.78rem}header p{margin:.28rem 0 .14rem;color:#aeb8d6;font-size:.86rem}header p.error-status{color:#ff6b6b}.status-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.status-action{padding:.2rem .45rem;font-size:.74rem;background:#3f2027;border-color:#94404d}.status-action-hidden{visibility:hidden;pointer-events:none}.solver-pane{display:grid;grid-template-rows:auto auto auto 1fr auto;gap:.5rem}main.long-rect-mode .solver-pane{grid-column:1}main.long-rect-mode .solver-pane .piece-bank{grid-template-columns:repeat(12,minmax(0,1fr));gap:.28rem}main.long-rect-mode .solver-pane .piece-btn{min-height:52px;padding:.18rem}main.long-rect-mode .solver-pane .toolbar{gap:.28rem}main.long-rect-mode .solver-pane .toolbar button{padding:.2rem .45rem;font-size:.78rem}main.long-rect-mode .solver-pane .pose-readout{font-size:.75rem}.triplication-pane{grid-column:1 / -1;display:grid;gap:.7rem}.triplication-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:.8rem}.triplication-meta{border:1px solid #2c3757;border-radius:10px;padding:.55rem;background:#0e1428;display:grid;gap:.45rem;align-content:start}.triplication-line{color:#c3cde7;font-size:.82rem}.triplication-pieces{grid-template-columns:repeat(3,minmax(0,1fr))}.piece-btn.mini-only{min-height:52px;padding:.2rem;pointer-events:none}.piece-bank{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem}.piece-btn{border:1px solid rgba(86,103,150,.35);border-radius:9px;padding:.25rem;background:#0a1124b8;color:#ecf2ff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:62px}.piece-btn .label{font-weight:700;font-size:.75rem}.piece-btn.selected{border-color:#8ecae6;box-shadow:inset 0 0 0 1px #8ecae6}.piece-btn.used{opacity:.4}.mini{display:grid;grid-template-rows:repeat(var(--rows),7px);grid-template-columns:repeat(var(--cols),7px);gap:0;padding:0;border-radius:0;background:transparent}.mini .cell{background:var(--c);border-radius:0}main.touch-mode .piece-bank{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--touch-piece-gap)}main.touch-mode .piece-btn{min-height:var(--touch-piece-min-height);padding:var(--touch-piece-padding);border-radius:6px;touch-action:none}main.left-picker-layout.touch-mode .solver-pane{grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr) auto;column-gap:.35rem}main.left-picker-layout.touch-mode .solver-pane>header{grid-column:1 / -1}main.left-picker-layout.touch-mode .solver-pane>.toolbar{grid-column:1 / -1}main.left-picker-layout.touch-mode .solver-pane>.piece-bank{grid-column:1;grid-row:4;grid-template-columns:1fr;gap:.22rem;align-content:start}main.left-picker-layout.touch-mode .solver-pane>.board-wrap{grid-column:2;grid-row:4;justify-self:start;width:min(100%,calc(48dvh * var(--board-ratio)))}main.left-picker-layout.touch-mode .solver-pane>.slider-row{grid-column:1 / -1}main.left-picker-layout.touch-mode .piece-btn{min-height:32px;padding:.06rem}main.touch-mode .mini{gap:0;padding:0;background:transparent;grid-template-rows:repeat(var(--rows),var(--touch-mini-cell-size));grid-template-columns:repeat(var(--cols),var(--touch-mini-cell-size))}main.touch-mode .mini .cell{border-radius:0}.triplication-solver-pane{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:.5rem;min-height:0;overflow:hidden}.triplication-solver-pane .board-wrap{width:min(100%,760px,calc(54dvh * var(--board-ratio)));max-height:54dvh;align-self:start}.toolbar{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}button{border:1px solid #445073;border-radius:8px;background:#151e3a;color:#eef3ff;padding:.26rem .55rem;font-size:.82rem}button.solve{background:#1c7147;border-color:#23a562}button:disabled{opacity:.45}.pose-readout{color:#b6c0df;font-size:.8rem}.selected-pose-readout{min-width:24ch;white-space:nowrap;font-variant-numeric:tabular-nums}.touch-selected-readout{display:inline-flex;align-items:center;gap:.4rem;flex:0 0 auto;min-width:19ch;padding:.02rem 0;border:0;border-radius:0;background:transparent;color:#dce6ff;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap}.touch-selected-row{display:flex;align-items:center;gap:.4rem;flex:1 0 100%}.touch-selected-shape{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;padding:2px;border:1px solid rgba(110,130,190,.42);border-radius:8px;background:#0e1934b8}.touch-selected-drag-proxy{display:inline-flex;align-items:center;justify-content:center;touch-action:none}.touch-selected-mini{transform:scale(1.25);transform-origin:center}.touch-selected-placeholder{width:48px;height:48px;border:1px dashed #42507a;border-radius:6px}.board-wrap{width:min(100%,840px);aspect-ratio:var(--board-ratio);justify-self:center;border:2px solid #4a577f;border-radius:0;overflow:hidden}main.long-rect-mode .solver-pane .board-wrap{max-height:calc(100dvh - 16rem);width:min(100%,calc((100dvh - 16rem) * var(--board-ratio)))}.board-wrap.solved-transition{transition:transform 2s ease-in-out,opacity 2s ease-in-out,filter 2s ease-in-out;transform:translate(var(--solved-dx, 0px),var(--solved-dy, 0px)) scale(var(--solved-scale, 1));opacity:.18;filter:saturate(.55);z-index:25;pointer-events:none}.touch-board-overlay{position:fixed;z-index:35;border:1px solid rgba(112,136,198,.42);background:#060a14e6;box-shadow:0 12px 28px #00000070;pointer-events:none;overflow:hidden;opacity:.7}.touch-board-overlay-picker{opacity:.7}.slider-row{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;align-items:center}.slider-row label,.slider-row span{font-size:.78rem;color:#c0c8e4}input[type=range]{width:100%}.solved-pane{display:grid;grid-template-rows:auto 1fr;gap:.6rem;height:calc(100vh - 1.4rem);overflow-y:auto}main.long-rect-mode .solved-pane{grid-column:2;height:calc(100vh - 1.4rem);max-height:none}.solved-list{overflow-y:auto;display:flex;flex-direction:column;gap:.6rem;min-height:0}.solved-card{text-align:left;width:100%;padding:.45rem;background:#0e1428}.solved-index{margin-bottom:.35rem;font-size:.84rem;color:#c8d1f0}.mini-board{aspect-ratio:var(--board-ratio);width:100%}.empty{border:1px dashed #3d4867;border-radius:10px;padding:.8rem;color:#aeb8d6}@media (max-width: 980px){main{grid-template-columns:1fr}.repo-toggle{display:none}.solved-pane{max-height:none}.piece-bank{grid-template-columns:repeat(4,minmax(0,1fr))}main.touch-mode .piece-bank{grid-template-columns:repeat(6,minmax(0,1fr))}.triplication-grid{grid-template-columns:1fr}}@media (pointer: coarse){html,body{height:100%;overflow:hidden}#app{height:100dvh;padding:.5rem}main.touch-mode{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:.45rem}main.touch-mode .pane-tabs{grid-column:1;padding:.35rem;gap:.3rem}main.touch-mode .tab-btn{font-size:.76rem;padding:.2rem .35rem}main.touch-mode .pane{min-height:0;overflow:hidden;padding:.45rem}main.touch-mode .solver-pane,main.touch-mode .triplication-solver-pane,main.touch-mode .solved-pane{height:100%}main.touch-mode .solver-pane,main.touch-mode .triplication-solver-pane{grid-template-rows:auto auto auto minmax(0,1fr);gap:.3rem}main.touch-mode .status-row{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:.22rem;align-items:start}main.touch-mode .status-row p{font-size:.78rem;line-height:1.2;margin:0}main.touch-mode .status-row .status-action{justify-self:start;min-height:1.6rem}main.touch-mode .toolbar{gap:.22rem}main.touch-mode .toolbar button{font-size:.72rem;padding:.14rem .32rem}main.touch-mode .pose-readout{font-size:.72rem}main.touch-mode .touch-selected-readout{font-size:.74rem}main.touch-mode .slider-row{display:grid;gap:.3rem}main.touch-mode .slider-row label,main.touch-mode .slider-row span{font-size:.72rem}main.touch-mode .solved-pane{grid-template-rows:auto minmax(0,1fr)}main.touch-mode .solved-list{overflow:hidden}}@media (pointer: coarse) and (max-height: 760px){main.touch-mode .slider-row{display:none}}@media (max-width: 640px){.slider-row{grid-template-columns:1fr;align-items:start;gap:.35rem}.slider-row input[type=range]{width:100%;min-width:0}}@media (pointer: coarse),(max-width: 980px){main.touch-mode .board-wrap{width:min(100%,92vw,calc(48dvh * var(--board-ratio)));max-width:92vw}}canvas.svelte-joen0q{width:100%;height:100%;border-radius:0;display:block;background:#05070f;touch-action:none}.interactive.svelte-joen0q{cursor:crosshair}canvas.svelte-joen0q:not(.interactive){pointer-events:none}
