@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500;600;700&display=swap');
:root{
 --paper:#ebe6d8;--paper-light:#f7f3e8;--paper-deep:#dfd7c6;
 --ink:#263b35;--muted:#718078;--line:#c8c4b4;--leaf:#355a4a;
 --clay:#ac644b;--gold:#bf9462;--danger:#a34c53;--white:#fffaf0;
}
*{box-sizing:border-box}
html{background:var(--paper);touch-action:manipulation}
body{margin:0;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased}
button,select{font:inherit}
button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #bd9761;outline-offset:2px}
button:disabled{opacity:.48;cursor:default}
button:active:not(:disabled){transform:translateY(1px)}
.shell{max-width:1570px;margin:0 auto;padding:0 26px 28px}
.masthead{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #bbb6a7}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.brand-emblem{width:44px;height:44px;border:2px solid #355347;border-radius:50%;font-size:30px;line-height:38px;text-align:center;color:#355347}
.brand-copy b{display:block;font-size:18px;font-family:Georgia,serif;letter-spacing:.11em;line-height:1.3}
.brand-copy span{display:block;font-size:11px;letter-spacing:.18em;color:#75827c;margin-top:3px}
.metrics{display:flex;align-items:center;gap:0}
.metric{min-width:91px;padding:0 19px;border-left:1px solid #c3bdaf;display:flex;flex-direction:column;gap:5px}
.metric:first-child{border-left:0}
.metric small{font-size:11px;color:#77827a;font-weight:650;letter-spacing:.03em}
.metric b{font-size:17px;color:#2e493f;font-weight:780;line-height:1.15;font-variant-numeric:tabular-nums}
.metric .meter{height:5px;width:116px;background:#d4c8b9;margin-top:1px;border-radius:0;overflow:hidden}
.metric .meter i{display:block;height:100%;width:100%;background:#537b66;transition:width .16s}
.core-metric b{color:#a8614d}.metric.small-metric{min-width:82px}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 342px;gap:32px;padding-top:26px;align-items:start}
.arena-column{min-width:0}
.battle-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 14px}
.eyebrow{color:#9a765e;font-size:11px;font-weight:700;letter-spacing:.22em;margin:0 0 7px}
.battle-heading h1{font-family:"Shippori Mincho","Hiragino Mincho ProN",Georgia,serif;font-size:28px;font-weight:700;letter-spacing:.08em;line-height:1.38;margin:0}
.controls{display:flex;align-items:center;gap:8px;white-space:nowrap}
.state-label{font-size:12px;color:#6b8071;margin-right:9px;font-weight:700}
.primary-button{background:#ac684e;color:#fff9ee;border:1px solid #a05b41;border-bottom:3px solid #8c4d37;box-shadow:0 2px 0 #eee2d2;font-weight:700;font-size:13px;letter-spacing:.04em;padding:10px 16px;min-height:43px;border-radius:4px;transition:background .15s}
.primary-button:hover:not(:disabled){background:#96573e}
.primary-button span{margin-left:10px}
.subtle-button{background:transparent;color:#4e6b5c;border:1px solid #aab5a6;border-radius:4px;min-height:42px;padding:10px 12px;font-weight:760;font-size:13px}
.battle-board{position:relative;background:#607961;border:7px solid #ded4bc;outline:1px solid #b8b09d;border-radius:7px;box-shadow:0 10px 26px #687a6b23,0 2px 2px #93776112;overflow:hidden;isolation:isolate}
#battlefield{display:block;width:100%;height:auto;aspect-ratio:8/5;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:crosshair}
.board-label{position:absolute;top:13px;padding:6px 10px;background:#26493ebc;color:#f6e4c6;font-size:12px;font-weight:800;letter-spacing:.03em;pointer-events:none}
.board-label span{font-weight:450;opacity:.8;font-size:9px;margin-left:5px}
.board-label.left{left:12px;border-left:3px solid #dfaa73}
.board-label.right{right:12px;border-right:3px solid #dfaa73}
.roster{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);display:flex;gap:5px;padding:5px;background:#f7f1e3ed;border:1px solid #f4e6cc;box-shadow:0 6px 18px #24392760;border-radius:5px;max-width:calc(100% - 22px)}
.roster-unit{display:flex;align-items:center;gap:9px;text-align:left;background:transparent;color:#30493d;border:1px solid transparent;border-radius:3px;padding:6px 10px;min-width:130px}
.roster-unit:hover{background:#e6dfcf}
.roster-unit.selected{border-color:#9a9d79;background:#e4e7d8}
.roster-symbol{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:3px;font-size:17px;color:#f9f1df}
.scout-symbol{background:#4b8e7c}.guard-symbol{background:#a97952}.medic-symbol{background:#8277a3}
.roster-name{font-weight:800;font-size:12px;line-height:1.22;white-space:nowrap}
.roster-name small{display:block;font-size:10px;color:#74857a;font-weight:500;margin-top:2px}
.placement-hint{position:absolute;left:50%;top:48px;transform:translateX(-50%);background:#f1eacfe8;color:#284336;font-size:13px;font-weight:700;padding:9px 13px;border:1px solid #aeb297;z-index:3;white-space:nowrap}
.placement-hint button{background:transparent;color:#a35b45;text-decoration:underline;border:0;padding:2px 8px}
.bottom-bar{display:flex;gap:18px;align-items:center;border-bottom:1px solid #c5bead;min-height:69px;padding:10px 3px}
.phase-strip{display:flex;align-items:center;gap:10px;flex:none;min-width:185px}
.phase-dot{height:9px;width:9px;background:#b77e5d;transform:rotate(45deg);margin:3px}
.phase-strip div{display:flex;flex-direction:column;gap:4px}
.phase-strip b{font-size:14px;color:#344e42}
.phase-strip small{font-size:10px;color:#819188}
.feed{font-size:12px;color:#52665a;line-height:1.65;max-height:50px;overflow:hidden}
.hint-line{font-size:11px;color:#879487;padding:10px 3px 0;margin:0}
.sidebar{background:var(--paper-light);border:1px solid #c8c0af;box-shadow:3px 5px 0 #d6cdba,0 7px 25px #746a5620;max-height:calc(100vh - 125px);min-height:540px;overflow-y:auto;overscroll-behavior:contain}
.sidebar-heading{padding:18px 19px 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #dbd1bd}
.sidebar-heading>div{display:flex;flex-direction:column;gap:4px}
.sidebar-heading span{font-size:10px;letter-spacing:.15em;color:#a58c70;font-weight:700}
.sidebar-heading strong{font-size:18px;font-family:"Shippori Mincho",serif;color:#263d33}
.close-editor{display:none;background:transparent;border:0;font-size:26px;color:#617667}
.inspector{padding:16px 19px 22px}
.empty-inspector{padding:25px 0;line-height:1.8;color:#667b6d;font-size:13px}
.empty-inspector h3{font-size:20px;color:#2e4d40;margin:4px 0}
.empty-icon{font-size:33px;color:#9bb09d}
.unit-header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.unit-header small{display:block;color:#9a826a;font-size:11px;letter-spacing:.1em;margin-bottom:3px;font-weight:700}
.unit-header h3{font-size:24px;font-family:"Shippori Mincho",serif;font-weight:700;letter-spacing:.04em;margin:0}
.unit-icon{width:44px;height:44px;display:grid;place-items:center;font-size:24px;background:#d7e1d2;color:#466451;border-radius:50%;border:1px solid #b2c3ad}
.unit-desc{font-size:12px;color:#7e8b7d;line-height:1.75;margin:8px 0 14px}
.unit-stats{display:flex;gap:17px;margin:0 0 15px;padding:11px 0;border-top:1px solid #ded7c9;border-bottom:1px solid #ded7c9}
.unit-stat{min-width:0;display:flex;align-items:baseline;gap:5px}
.unit-stat small{font-size:10px;color:#899589}
.unit-stat b{font-size:13px;color:#4d6957;font-variant-numeric:tabular-nums}
.small-button{border:1px solid #b3bca8;border-radius:3px;color:#425d4d;background:#eef0e4;min-height:33px;padding:6px 10px;font-size:11px;font-weight:750}
.small-button:hover{background:#e1ead7}
.button-row{display:flex;flex-wrap:wrap;gap:9px;margin:8px 0 11px}
.button-row button{flex:1}
.rule-hint{font-size:11px;color:#8b978a;line-height:1.65;margin:8px 0 0}
.module-label{display:flex;align-items:center;justify-content:space-between;margin-top:11px;padding-top:13px;border-top:1px solid #ded6c7;font-size:13px;color:#405949;font-weight:800}
.module-label small{font-size:11px;color:#8c968a;font-weight:500;text-align:right}
.module-tabs{display:flex;gap:3px;border-bottom:1px solid #c6c3b0;margin-top:16px}
.module-tab{flex:1;background:none;color:#788a78;border:0;border-bottom:3px solid transparent;padding:9px 3px 10px;font-weight:800;font-size:13px}
.module-tab.active{color:#365b46;border-bottom-color:#b47e57}
.module-tab:hover{background:#f0eadc}
.rules{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.rule{display:grid;grid-template-columns:minmax(0,1fr) 13px minmax(0,1fr) 20px 20px;gap:4px;align-items:center}
.rule select{min-width:0;width:100%;min-height:40px;padding:7px 6px;background:#fffdf6;border:1px solid #c9c5b7;border-radius:3px;color:#364f40;font-size:11px;text-overflow:ellipsis}
.rule .arrow{color:#be8a67;text-align:center;font-size:14px}
.rule-tool{background:transparent;border:0;color:#8e9c8d;font-size:14px;height:35px;padding:0}
.rule-tool:disabled{opacity:.22}
.rule-add{background:transparent;border:0;color:#9d7755;font-size:12px;font-weight:700;padding:3px 0}
.research{border-top:1px solid #cfc6b3;background:#e7e4d8}
.research summary{list-style:none;display:flex;align-items:center;padding:15px 18px;gap:11px;cursor:pointer;user-select:none}
.research summary::-webkit-details-marker{display:none}
.research-glyph{font-size:21px;color:#b17855;width:25px;text-align:center}
.research summary span:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1}
.research summary small{font-size:10px;color:#8e947e}
.research summary b{font-size:14px;color:#365443}
.research-arrow{font-size:22px;color:#8d9a88;transition:transform .2s}
.research[open] .research-arrow{transform:rotate(180deg)}
#research-content{padding:0 18px 17px}
.upgrade{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid #cbc8b9}
.upgrade:first-child{border-top:0}
.upgrade b{font-size:12px;font-weight:800;color:#3d5142}
.upgrade small{display:block;font-size:10px;color:#829083;line-height:1.6;margin-top:3px}
.upgrade button{border:1px solid #b8b8a6;background:#fbf9ef;color:#49654e;padding:7px;font-size:11px;font-weight:750;border-radius:3px;white-space:nowrap}
.research-note{color:#909989;font-size:10px;line-height:1.65;margin:7px 0 0}
.end-overlay{position:fixed;inset:0;background:#192f25cd;display:grid;place-items:center;z-index:20;padding:18px}
.end-overlay[hidden],.placement-hint[hidden]{display:none!important}
.end-dialog{background:var(--paper-light);border:5px solid #e3d9c2;outline:1px solid #cbb998;box-shadow:0 24px 60px #07190c66;max-width:440px;width:100%;padding:28px;text-align:center}
.end-dialog .overline{font-size:12px;color:#a77f5f;letter-spacing:.1em}
.end-dialog h2{font-family:"Shippori Mincho",serif;font-size:29px;letter-spacing:.06em;margin:11px 0}
.end-dialog p{font-size:13px;color:#6c7c6c;line-height:1.8}
.end-reward{background:#ebe7d7;padding:12px;margin:18px 0;font-size:12px;color:#5b6d56}
.wide{width:100%}
@media(max-width:1130px){.shell{padding:0 17px 22px}.workspace{gap:16px;grid-template-columns:minmax(0,1fr) 310px}.metric{padding:0 12px}.sidebar{max-height:calc(100vh - 110px)}}
@media(max-width:880px){.masthead{padding:12px 0;min-height:0;gap:12px;flex-wrap:wrap}.metrics{width:100%;justify-content:space-between;padding-top:10px;border-top:1px solid #cec4b3}.metric{padding:0 8px}.metric:first-child{padding-left:0}.workspace{grid-template-columns:1fr;gap:0;padding-top:20px}.sidebar{max-height:none;min-height:0;margin-top:20px}.battle-heading{align-items:center}.close-editor{display:none}}
@media(max-width:600px){
 .shell{padding:0 9px 15px}.masthead{padding:10px 2px 9px}
 .brand-emblem{height:34px;width:34px;font-size:24px;line-height:29px}.brand-copy b{font-size:15px;letter-spacing:.06em}.brand-copy span{font-size:9px}
 .metrics{padding-top:9px;gap:0}.metric{padding:0 7px;min-width:0}.metric small{font-size:9px}.metric b{font-size:12px}.metric.core-metric{min-width:87px}.metric .meter{width:80px;height:3px}
 .workspace{padding-top:15px}
 .battle-heading{gap:4px;align-items:end;margin-bottom:11px}
 .eyebrow{font-size:9px;margin-bottom:5px;letter-spacing:.08em}
 .battle-heading h1{font-size:19px;white-space:nowrap}
 .controls{gap:5px}.state-label{display:none}.primary-button{min-height:37px;padding:8px;font-size:11px}.primary-button span{margin-left:2px}.subtle-button{min-height:37px;padding:8px;font-size:12px}
 .battle-board{border-width:4px;border-radius:4px}
 .board-label{font-size:9px;padding:4px;top:4px}.board-label span{display:none}.board-label.left{left:4px}.board-label.right{right:4px}
 .roster{bottom:4px;gap:1px;padding:2px;max-width:calc(100% - 6px);width:fit-content}
 .roster-unit{min-width:0;gap:4px;padding:5px 5px}
 .roster-symbol{height:22px;width:22px;font-size:14px}
 .roster-name{font-size:9px}.roster-name small{font-size:8px;margin:0}
 .bottom-bar{padding:9px 2px;min-height:60px;gap:6px}.phase-strip{gap:6px;min-width:117px}.phase-strip b{font-size:11px}.phase-strip small{font-size:8px}.feed{font-size:10px;max-height:45px}.hint-line{font-size:10px;line-height:1.5}
 .sidebar{display:none;position:fixed;left:7px;right:7px;bottom:7px;max-height:60dvh;height:auto;min-height:0;margin:0;z-index:12;box-shadow:0 -12px 55px #1d2d1c66,0 2px 0 #a9ac99;border:1px solid #b9b4a5;overscroll-behavior:contain}
 .sidebar.open{display:block}
 body.editor-open:before{content:"";position:fixed;inset:0;background:#162b2070;z-index:11}
 .sidebar-heading{padding:11px 14px}.sidebar-heading strong{font-size:16px}.sidebar-heading span{font-size:9px}.close-editor{display:block}
 .inspector{padding:11px 14px 15px}.unit-header h3{font-size:20px}.unit-desc{margin:5px 0 9px;font-size:11px}
 .unit-stats{padding:7px 0;margin:0 0 8px}
 .module-label{margin-top:7px;padding-top:9px}.module-tab{font-size:12px}
 .rule select{min-height:38px}
 .placement-hint{top:34px;font-size:10px;max-width:96%;white-space:normal}
 .research summary{padding:12px 14px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}

.research-entry{background:transparent;border:0;border-left:1px solid #c3bdaf;text-align:left;align-self:stretch;justify-content:center;min-height:44px}.research-entry:hover small{text-decoration:underline}.research-entry:focus-visible{outline-offset:-3px}
@media(max-width:600px){.metric b{white-space:nowrap}.rule select{font-size:16px}.rule{gap:2px}}
@media(max-width:600px){
 .metrics{display:grid;grid-template-columns:24% 38% 38%;grid-template-rows:auto auto;row-gap:8px;align-items:start}
 .metrics .metric{border-left:0;padding:0 5px;min-width:0}
 .metrics .date-metric{grid-column:1;grid-row:1;padding-left:0}
 .metrics .clock-metric{grid-column:2;grid-row:1;border-left:1px solid #c4beaf;padding-left:8px}
 .metrics .core-metric{grid-column:3;grid-row:1;border-left:1px solid #c4beaf;padding-left:8px}
 .metrics .small-metric:not(.research-entry){grid-column:2;grid-row:2;border-top:1px solid #d3cbbd;padding:5px 8px 0}
 .metrics .research-entry{grid-column:3;grid-row:2;border-top:1px solid #d3cbbd;padding:5px 8px 0;text-align:left;min-height:34px}
 .metric b{white-space:nowrap;font-size:12px}
}

/* Play screen: no decorative title or editorial copy, only active controls. */
.masthead{min-height:64px;justify-content:flex-end}
.battle-heading{min-height:45px;justify-content:flex-end;margin-bottom:10px}
.end-dialog{padding-top:28px}
@media(max-width:880px){
 .masthead{justify-content:flex-end}
 .metrics{border-top:0;padding-top:0}
}
@media(max-width:600px){
 .masthead{padding:8px 2px;min-height:0}
 .battle-heading{min-height:37px;justify-content:flex-end;margin:3px 0 10px}
 .workspace{padding-top:5px}
}

/* Battle-readable controls. Stage labels and enemy summaries are game data, not decoration. */
.stage-nav{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 border-bottom:1px solid #bcb7a7;gap:0;
}
.stage-choice{
 min-width:0;min-height:46px;display:flex;align-items:center;justify-content:center;gap:9px;
 border:0;border-bottom:3px solid transparent;background:transparent;
 color:#677467;font-size:13px;padding:9px 8px 7px;
}
.stage-choice strong{font-weight:750;font-size:13px}
.stage-index{font-size:11px;font-variant-numeric:tabular-nums;color:#978a77;font-weight:700}
.stage-choice.active{color:#365547;border-bottom-color:#b16f51;background:#f1eddf}
.stage-choice:hover:not(:disabled){background:#f1eddf}
.stage-choice:disabled{opacity:1;cursor:default}
.stage-done{font-weight:800;color:#4a8965;font-size:12px}
.stage-details{
 display:flex;align-items:center;gap:16px;flex-wrap:wrap;
 padding:12px 0 13px;min-height:64px;
}
.stage-route{font-size:12px;color:#5a6458;font-weight:800;white-space:nowrap}
.stage-enemies{display:flex;flex:1;flex-wrap:wrap;gap:6px}
.enemy-spec{
 background:#f8f5eb;border:1px solid #c8c1b0;border-radius:3px;
 min-height:42px;min-width:111px;padding:5px 7px;
 display:flex;align-items:center;gap:7px;text-align:left;color:#3c4a41;
}
.enemy-spec:hover,.enemy-spec:focus-visible{background:#e8ecdd;border-color:#8c9b89}
.enemy-spec-symbol{height:25px;width:25px;flex:none;display:grid;place-items:center;background:#3a4545;color:var(--monster);font-size:18px;font-weight:900;border-radius:2px}
.enemy-spec-copy{display:flex;flex-direction:column;gap:1px}
.enemy-spec-copy strong{font-size:12px}
.enemy-spec-copy small{font-size:10px;color:#81877b}
.enemy-spec-arrow{color:#8e9988;font-weight:900;margin-left:auto}
.range-guide{
 display:flex;align-items:center;gap:18px;padding:9px 1px 10px;
 border-bottom:1px solid #c8c2b3;color:#526455;font-size:11px;
}
.range-guide span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.range-guide i{display:inline-block;width:26px;height:0;vertical-align:middle}
.guide-vision{border-top:2px dashed #287c9a}
.guide-attack{border-top:3px solid #bb7943}
.range-guide .guide-note{margin-left:auto;color:#84877c;font-size:10px;white-space:normal}
.range-toggle[aria-pressed="true"]{color:#f7ebd5;background:#476957;border-color:#476957}
.board-label.inactive{
 background:#354a42a6;border-color:#859389;color:#e3e4d8;opacity:.8;
}
.board-label.sky{top:8px;left:50%;right:auto;transform:translateX(-50%);background:#5d5968c8;border-top:2px solid #ebbd7e;font-size:10px}
.board-label.sky[hidden]{display:none!important}
.unit-bubbles{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.robot-speech{
 position:absolute;left:var(--bx);top:var(--by);
 transform:translate(-50%,-132%);
 padding:6px 9px;border:1px solid #937b64;border-left:4px solid var(--speaker);
 background:#fff8e8;color:#2c3e35;
 box-shadow:0 2px 6px #243d3570;
 border-radius:3px;font-size:12px;font-weight:800;letter-spacing:.01em;
 white-space:nowrap;max-width:52%;overflow:hidden;text-overflow:ellipsis;
}
.robot-speech:after{content:"";position:absolute;left:calc(50% - 5px);bottom:-5px;height:8px;width:8px;background:#fff8e8;border-right:1px solid #937b64;border-bottom:1px solid #937b64;transform:rotate(45deg)}
.enemy-inspector-icon{
 display:grid;place-items:center;flex:none;width:48px;height:48px;
 background:#45464d;color:var(--monster);border:2px solid var(--monster);
 font-weight:900;font-size:26px;border-radius:3px;
}
.enemy-stats{
 display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:14px 0;
 border-block:1px solid #d6cfbf;padding:12px 0;font-size:11px;color:#778173;
}
.enemy-stats strong{color:#445b4b;font-size:14px}
.enemy-current{background:#e8e8db;border-left:3px solid #9e8364;padding:10px;display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:12px}
.enemy-current b{font-variant-numeric:tabular-nums}
.enemy-traits{font-size:12px;margin:12px 0 0}
.enemy-traits dt{font-weight:850;margin:12px 0 3px;color:#5d725f}
.enemy-traits dd{margin:0;line-height:1.75;color:#4a5c50}
.enemy-explain{color:#818e7f;font-size:11px;line-height:1.6;margin:17px 0 0}
@media(max-width:880px){
 .stage-details{min-height:0;gap:9px}
 .stage-enemies{gap:6px}
 .range-guide{gap:12px}
}
@media(max-width:600px){
 .stage-nav{margin-top:1px}
 .stage-choice{min-height:40px;padding:7px 2px;gap:4px}
 .stage-choice strong{font-size:12px}
 .stage-index{font-size:10px}
 .stage-details{padding:9px 0 10px;gap:8px}
 .stage-route{font-size:11px;flex-basis:100%}
 .stage-enemies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:100%}
 .enemy-spec{min-height:37px;min-width:0;padding:5px}
 .enemy-spec-symbol{height:25px;width:25px;font-size:16px}
 .enemy-spec-copy strong{font-size:11px}
 .enemy-spec-copy small{font-size:10px}
 .battle-heading{margin:4px 0 8px}
 .range-toggle{padding:7px 8px;font-size:11px}
 .range-guide{font-size:10px;gap:12px;flex-wrap:wrap;line-height:1.3;padding:8px 1px}
 .range-guide i{width:21px}
 .range-guide .guide-note{flex-basis:100%;font-size:10px}
 .robot-speech{padding:5px 6px;font-size:11px;max-width:64%}
 .board-label.sky{top:4px;font-size:8px}
}

.battle-board,.roster,.roster-unit,.stage-nav,.stage-choice,.enemy-spec{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
/* Execution feedback: highlight only the line currently used by the selected unit. */
.rule.is-executing{background:#e2e8d9;outline:1px solid #9eb297;outline-offset:3px;border-radius:2px}
.execution-reason{font-size:12px;color:#375e48;font-weight:750;line-height:1.5;min-height:20px;margin:13px 0 6px}
.battle-board.zoomed .board-label{display:none}
.end-dialog{max-height:calc(100dvh - 24px);overflow-y:auto;text-align:left}
.end-dialog h2{text-align:center}
.end-analysis{margin:14px 0;font-size:12px;color:#3f5547}
.result-section{border-top:1px solid #d6cfbd;padding:12px 0 8px}
.result-section>strong{display:block;margin-bottom:8px;font-size:13px}
.result-row{display:flex;justify-content:space-between;gap:14px;line-height:1.8;font-size:12px;color:#59695c}
.result-row b{font-variant-numeric:tabular-nums;font-weight:700;color:#344f42;text-align:right}
.result-detail{font-size:11px;margin:7px 0 0;color:#7a8677}
#end-focus{margin-top:10px}
@media(max-width:600px){.end-dialog{padding:18px;max-height:calc(100dvh - 18px)}.execution-reason{font-size:12px}}
