:root{--bg:#13151a;--panel:#1d2129;--panel-2:#252a34;--line:#343b48;--text:#e8eaee;--muted:#9aa2b1;--ally:#4fa3ff;--enemy:#ff6b6b;--gambit:#4cc9e6;--tactics:#a7afbe;--heal:#6ee7a0;--taken:#ff5a5a;--poison:#c08cff;--warn:#f59e0b;--danger:#ff4646;--cell:min(64px, calc((100vw - 32px) / 7));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,Noto Sans JP,sans-serif;font-size:14px;line-height:1.5}button,select,input,.mobile-bar a{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;min-height:36px;padding:6px 10px}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gambit);outline-offset:1px}button.primary{background:#2f6fd0;border-color:#2f6fd0;font-weight:700}button.on{border-color:var(--gambit);background:#1b3a47}button.attention{border-color:var(--warn);box-shadow:0 0 0 1px var(--warn) inset}.hint{color:var(--muted);margin:2px 0 6px;font-size:12px}.layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;max-width:1360px;margin:0 auto;padding:16px;display:grid;overflow-x:clip}section{flex-direction:column;gap:10px;min-width:0;display:flex}h3{margin:10px 0 0;font-size:15px}h4{color:var(--muted);margin:6px 0 4px;font-size:13px}.stage-title{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.stage .enc{background:0 0;border-color:#0000;padding-left:0;font-size:18px;font-weight:700}.roster{color:var(--muted)}.enc-hint{color:#d6c7a1;margin:0;font-size:13px}.toolbar,.controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.seed summary{cursor:pointer;color:var(--muted);padding:6px}.seed[open]{background:var(--panel);border-radius:8px;padding:6px 10px}.seed p{color:var(--muted);margin:4px 0;font-size:12px}.seed input{width:90px;margin-right:6px}.hud{background:var(--panel);border-radius:8px;grid-template-columns:1fr 1fr auto;align-items:center;gap:4px 12px;padding:6px 10px;display:grid}.hud-bar{grid-template-columns:auto 1fr auto;align-items:center;gap:6px;font-size:12px;display:grid}.hud-bar .num{font-variant-numeric:tabular-nums}.gauge{background:#0008;border-radius:4px;height:8px;overflow:hidden}.gauge>div{height:100%;transition:width .15s}.gauge.hp>div{background:linear-gradient(90deg,#e54848,#f87171)}.gauge.mp>div{background:linear-gradient(90deg,#2563eb,#60a5fa)}.clock{color:var(--muted);font-variant-numeric:tabular-nums}.slow{color:#111;background:var(--warn);border-radius:4px;margin-left:6px;padding:0 4px;font-size:11px;font-style:normal}.arena{grid-template-columns:auto minmax(200px,1fr);align-items:start;gap:10px 12px;display:grid}.arena .battle-orders{grid-area:1/2/span 2}.arena .rulestrip{grid-column:1}.board-wrap{padding-top:6px}.board,.board-placeholder{position:relative}.board{width:calc(var(--cell) * var(--w));height:calc(var(--cell) * var(--h))}.board.shake{animation:.14s linear shake}@keyframes shake{25%{transform:translate(-4px,1px)}50%{transform:translate(3px,-2px)}75%{transform:translate(-2px,1px)}}.board-placeholder{width:calc(var(--cell) * 7);height:calc(var(--cell) * 7);color:var(--muted);border:1px dashed var(--line);text-align:center;border-radius:8px;place-content:center;padding:16px;display:grid}.grid{grid-template-columns:repeat(var(--w), var(--cell));grid-template-rows:repeat(var(--h), var(--cell));border:1px solid #2a303a;display:grid}.cell{background:#1a1e25;border:1px solid #2a303a}.cell.alt{background:#1e232b}.cell.obstacle{background:repeating-linear-gradient(45deg,#4a505c,#4a505c 4px,#343944 4px 8px)}.cell.danger-enemy{box-shadow:inset 0 0 0 2px var(--danger);background:repeating-linear-gradient(-45deg,#ff5a5a66 0 3px,#0000 3px 7px),#ff464673;animation:.5s infinite alternate blink}.cell.danger-ally{box-shadow:inset 0 0 0 2px var(--ally);background:#4fa3ff4d}@keyframes blink{0%{box-shadow:inset 0 0 0 2px var(--danger)}to{box-shadow:inset 0 0 0 3px #ffb4b4}}.board.paused .cell{animation-play-state:paused}.overlay{text-align:center;z-index:10;pointer-events:none;place-content:center;font-size:22px;font-weight:700;display:grid;position:absolute;inset:0}.overlay.pause{color:#ffe6b0;background:#00000059}.overlay.outcome{letter-spacing:.2em;background:#00000073;font-size:34px}.overlay.outcome small{letter-spacing:0;font-size:13px}.overlay.win{color:var(--heal)}.overlay.lose{color:var(--taken);background:#50000073}.overlay.retreat,.overlay.timeout{color:var(--warn)}.unit{left:calc(var(--cell) * var(--x));top:calc(var(--cell) * var(--y));width:var(--cell);height:var(--cell);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:left .18s linear,top .18s linear;display:flex;position:absolute}.token{width:62%;height:62%;font-weight:700;font-size:calc(var(--cell) * .28);border-radius:50%;place-items:center;display:grid;position:relative}.unit.ally .token{background:var(--ally);color:#0b1a2e;box-shadow:0 0 0 2px #cfe6ff}.unit.enemy .token{background:var(--enemy);color:#2e0b0b}.unit.shape-diamond .token{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border-radius:0;width:70%;height:70%}.unit.shape-hex .token{clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);border-radius:0;width:68%}.unit.shape-big .token{width:82%;height:82%;font-size:calc(var(--cell) * .36)}.token.casting:before{content:"";background:conic-gradient(var(--warn) calc(var(--p) * 360deg), #0000 0);z-index:-1;border-radius:50%;position:absolute;inset:-4px;-webkit-mask:radial-gradient(circle,#0000 calc(50% - 3px),#000 calc(50% - 2px));mask:radial-gradient(circle,#0000 calc(50% - 3px),#000 calc(50% - 2px))}.token.hit{animation:.12s ease-out flash}@keyframes flash{0%{filter:brightness(2.2)}to{filter:brightness()}}.unit.stunned .token{animation:.12s infinite wobble}@keyframes wobble{50%{transform:translate(2px)}}.suffix{color:#fff;background:#111;border-radius:4px;padding:0 3px;font-size:10px;line-height:1.3;position:absolute;bottom:-4px;right:-6px}.unit.dead .token{color:#8a909c;box-shadow:none;filter:grayscale();opacity:.6;background:#3a3f4a}.badges{z-index:2;flex-wrap:wrap;gap:1px;max-width:100%;display:flex;position:absolute;top:0;left:0}.badge{color:#111;border-radius:3px;padding:0 3px;font-size:10px;font-weight:700;line-height:1.2}.badge.cast{background:var(--warn)}.badge.stun{background:#facc15}.badge.poison{background:var(--poison)}.badge.guard{background:#cbd5e1}.bar{background:#000a;border-radius:2px;width:82%;height:4px;overflow:hidden}.bar>div{height:100%}.busy{background:#0006;border-radius:2px;width:82%;height:4px;display:flex;overflow:hidden}.busy .cast{background:var(--warn)}.busy .delay{background:#9aa2b1}.busy.late{outline:1.5px solid var(--danger);animation:.3s infinite alternate lateblink}.busy.late .cast,.busy.late .delay{background:var(--danger)}@keyframes lateblink{0%{opacity:.5}to{opacity:1}}.bar.hp>div{background:var(--heal)}.bar.mp>div{background:#60a5fa}.bubble{white-space:nowrap;max-width:calc(var(--cell) * 3.4);text-overflow:ellipsis;z-index:4;border-radius:8px;padding:2px 7px;font-size:11px;animation:.15s ease-out pop;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.bubble.v-above{bottom:96%}.bubble.v-below{top:96%}.bubble.h-left{left:0;transform:none}.bubble.h-right{left:auto;right:0;transform:none}.bubble.ally.gambit{border:1.5px solid var(--gambit);color:#e0f7fc;z-index:6;background:#0d3a47;font-weight:700}.bubble.ally.tactics{border:1px dashed var(--tactics);color:#d4d8e0;z-index:5;background:#2a2f38}.bubble.trigger{border:1.5px solid var(--warn);color:#ffe6b0;z-index:7;max-width:calc(var(--cell) * 4.5);background:#4a2a06;font-weight:700}.bubble.enemy{color:#f3d0d0;opacity:.85;background:#3a1d1d;border:1px solid #7a3b3b;font-size:10px}@keyframes pop{0%{opacity:0}to{opacity:1}}.popups{z-index:3;position:absolute;top:-26%;left:50%}.popup{left:calc((var(--i) - 1) * 14px);font-size:clamp(12px, calc(var(--cell) * .28), 16px);text-shadow:0 1px 2px #000,0 0 3px #000;white-space:nowrap;font-weight:700;animation:.8s ease-out forwards float;position:absolute;transform:translate(-50%)}.popup.big{font-size:clamp(16px, calc(var(--cell) * .4), 22px)}.popup.dealt{color:#fff}.popup.taken{color:var(--taken)}.popup.heal{color:var(--heal)}.popup.poison{color:var(--poison)}@keyframes float{0%{opacity:1;transform:translate(-50%,6px)}to{opacity:.7;transform:translate(-50%,-12px)}}.battle-orders{background:var(--panel);border:1px solid #4a4130;border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.pause-big{border-color:var(--warn);color:#ffe6b0;background:#3b2f12;min-height:52px;font-size:16px;font-weight:700}.pause-big.is-paused{border-color:var(--heal);color:#d9ffe8;background:#1f4a2c}.orders-title{color:#ffe6b0;font-weight:700}.orders-title small{color:var(--muted);font-size:11px;font-weight:400;display:block}.tactics-panel{flex-direction:column;gap:3px;display:flex}.trow{text-align:left;background:#23272f;grid-template-columns:6.5em 1fr;grid-template-areas:"k v""d d""n n";gap:0 8px;min-height:44px;padding:6px 10px;display:grid}.trow .k{color:var(--muted);grid-area:k}.trow .v{text-align:right;color:#ffe6b0;grid-area:v;font-weight:700}.trow .d{color:var(--muted);grid-area:d;font-size:11px}.trow .note{color:#fcd9a0;grid-column:1/-1;font-size:11px}.trow.changed{border-color:var(--warn)}.check{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.check input{min-height:0}.rulestrip{background:var(--panel);border-radius:8px;padding:6px 8px}.rulestrip.empty{color:var(--muted);font-size:12px}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.chip b{color:var(--text)}.chip.r-fired{border-color:var(--gambit);color:#e0f7fc;background:#0d3a47;font-weight:700}.chip.tactics.r-fired{border:1px dashed var(--tactics);background:#2f343e}.chip.r-skipped{opacity:.45}.chip.r-out_of_range,.chip.r-no_mp,.chip.r-cooldown,.chip.r-cannot_move,.chip.r-not_equipped,.chip.r-wrong_weapon{border-color:var(--warn);color:#fcd9a0}.rulestrip .now{margin-top:4px;font-size:13px}.rulestrip .t{color:var(--muted);font-variant-numeric:tabular-nums}.seekbar{min-height:0;accent-color:var(--gambit);flex:160px;padding:0}.result,.history,.log,.editor{background:var(--panel);border-radius:10px;padding:10px 12px}.result{border-left:5px solid var(--warn)}.result.win{border-left-color:var(--heal)}.result.lose{border-left-color:var(--taken)}.result h3{margin:0 0 4px;font-size:18px}.result.win h3{color:var(--heal)}.result.lose h3{color:var(--taken)}.result h3 small{color:var(--muted);margin-left:10px;font-size:13px;font-weight:400}.result-cols{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.jump{text-align:left;background:#23272f;grid-template-columns:3.5em 2.5em 1fr;grid-template-areas:"t a s"". .w";gap:0 6px;width:100%;margin-bottom:4px;display:grid}.jump .t{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:t}.jump .amount{color:var(--taken);grid-area:a}.jump small{color:var(--muted);grid-area:w}.dmg-row{font-variant-numeric:tabular-nums;grid-template-columns:7.5em 1fr 3em;align-items:center;gap:6px;display:grid}.dmg-row .n{text-align:right}.meter{background:#0006;border-radius:3px;height:6px;overflow:hidden}.meter>span{background:var(--gambit);height:100%;display:block}.spark{background:#0003;border-radius:6px;width:100%;height:60px}.spark polyline{fill:none;stroke-width:2px;vector-effect:non-scaling-stroke}.spark .hp{stroke:#f87171;fill:#f87171}.spark .mp{stroke:#60a5fa;fill:#60a5fa}.spark polyline.hp,.spark polyline.mp{fill:none}.legend{color:var(--muted);gap:10px;font-size:11px;display:flex}.legend .hp:before,.legend .mp:before{content:"";vertical-align:middle;background:#f87171;width:12px;height:3px;margin-right:4px;display:inline-block}.legend .mp:before{background:#60a5fa}.history .stale{color:var(--warn);font-weight:700}.hrow{border-top:1px solid var(--line);grid-template-columns:3.2em 3em 5.5em 1fr;grid-template-areas:"r m d c"". . .s";align-items:baseline;gap:0 8px;padding:4px 0;display:grid}.hrow.old{opacity:.6}.hrow.current .rate{color:var(--gambit)}.hrow .rate{font-variant-numeric:tabular-nums;grid-area:r;font-size:18px;font-weight:700}.hrow .margin{color:var(--muted);grid-area:m;font-size:12px}.hrow .delta{grid-area:d;font-weight:700}.hrow .delta small{font-size:10px;font-weight:400;display:block}.delta.up{color:var(--heal)}.delta.down{color:var(--taken)}.delta.noise{color:var(--muted)}.hrow .changes{grid-area:c;font-size:12px}.hrow .sub{color:var(--muted);grid-area:s}.log{height:280px;font-size:12.5px;overflow-y:auto}.log .line{text-align:left;color:#cfd3da;background:0 0;border:none;border-left:3px solid #0000;border-radius:0;width:100%;min-height:0;padding:1px 6px;display:block}.log .line:hover{background:#ffffff0d}.log .t{color:var(--muted);font-variant-numeric:tabular-nums}.log .l-gambit.mine{color:#bdeffa;border-left-color:var(--gambit)}.log .l-tactics.mine{color:var(--tactics)}.log .l-enemy{opacity:.65}.log .l-taken{color:#ff9a9a}.log .l-heal{color:var(--heal)}.log .l-death,.log .l-end{font-weight:700}.log .l-why{color:#ffb4b4;font-size:11.5px}.log .l-trigger{color:#ffd27a;font-weight:700}.log .l-intervention{color:#ffe6b0;border-left-color:var(--warn)}.preset{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.preset label{align-items:center;gap:6px;display:flex}.level input{width:64px;margin-left:4px}.stats{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.stats b{color:var(--text);margin-left:2px}.notice{border-left:3px solid var(--warn);background:#2c2617;margin:0;padding:6px 10px;font-size:12px}.slots{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.slot{flex-direction:column;gap:2px;display:flex}.slot small{color:var(--muted);font-size:11px}.slot .used{color:var(--gambit)}.gambits{flex-direction:column;gap:6px;display:flex}.gambit{border:1px solid var(--line);background:#20242c;border-radius:8px;padding:4px 6px;transition:background .2s,border-color .2s}.gambit .row{align-items:center;gap:6px;display:flex}.gambit.off{opacity:.5}.gambit.live-fired{border-color:var(--gambit);background:#0d3a47}.gambit .num{color:var(--gambit);text-align:center;width:1.2em;font-size:18px}.gambit input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--gambit)}.gambit .sentence{text-align:left;background:0 0;border:none;flex:1;min-height:44px;padding:6px 2px}.warn-badge{color:var(--warn);font-size:11px;display:block}.gambit .live{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px}.gambit .live.r-fired{border-color:var(--gambit);color:#e0f7fc}.gambit .ops{gap:4px;display:flex}.gambit .ops button{min-width:40px;min-height:40px;padding:0}.gambit .tally{color:var(--muted);padding:0 4px 4px 2.6em;font-size:12px}.gambit .tally b{color:var(--gambit);margin-right:6px}.gambit .tally .suggest{border-color:var(--gambit);color:#bdeffa;min-height:32px;margin-top:4px;font-size:12px;display:block}.gambit .tally b.zero{color:var(--warn)}.gambit .edit{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;padding:6px 2px 4px 2.6em;display:grid}.gambit .edit label{flex-direction:column;gap:2px;display:flex}.gambit .edit label span{color:var(--muted);font-size:11px}button.danger{color:#ffb4b4;border-color:#7a3b3b;align-self:end}.add{align-self:flex-start}.layer{color:var(--text);margin:6px 0 2px}.layer small{color:var(--muted);margin-left:8px;font-size:11px;font-weight:400}.fallthrough{text-align:center;color:var(--muted);border-top:1px dashed var(--line);margin-top:4px;padding-top:6px;font-size:12px}.routine{background:#1b1a17;border:1px solid #4a4130;border-radius:10px;padding:4px 8px 8px}.playlog{color:var(--muted);align-items:center;gap:8px;margin-top:16px;font-size:12px;display:flex}.mobile-bar{display:none}@media (width<=900px){.layout{grid-template-columns:minmax(0,1fr);padding:12px 12px 76px}.arena{grid-template-columns:minmax(0,1fr)}.arena .battle-orders,.arena .rulestrip{grid-area:auto/1}.board-wrap{justify-self:center}.hud{gap:4px 8px;padding:6px 8px}.hud-bar{gap:4px;font-size:11px}.mobile-bar button.pausing{border-color:var(--warn);color:#ffe6b0;background:#3b2f12}.battle-orders .tactics-panel{grid-template-columns:1fr 1fr;display:grid}.trow .d{display:none}.mobile-bar{z-index:20;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#0f1115ee;grid-template-columns:1.4fr 1.2fr .7fr .7fr;gap:6px;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-bar>*{place-items:center;min-height:48px;text-decoration:none;display:grid}}.attrs{border:1px solid var(--line);background:#20242c;border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.attrs-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attrs .left.rest{color:var(--gambit);font-weight:700}.attrs .left.over{color:var(--taken);font-weight:700}.attrs .weapon{color:var(--muted);font-size:12px}.attr-rows{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 12px;display:grid}.attr{grid-template-columns:2.8em 36px 2.4em 36px 1fr;align-items:center;gap:4px;display:grid}.attr .v{text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.attr button{min-height:32px;padding:0}.attr small{color:var(--muted);font-size:11px}.combat{color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;gap:4px 10px;padding-top:6px;font-size:12px;display:flex}.combat b{color:var(--text);margin-left:2px}.bar.stun>div{background:#facc15}.popup.miss{color:#b8c0cc;font-size:11px}.luck{font-size:12px}.luck small{color:var(--muted);display:block}
