:root{--stage-accent:#14aa9c}
body[data-stage="2"]{--stage-accent:#dd7549}body[data-stage="3"]{--stage-accent:#8b66c8}body[data-stage="4"]{--stage-accent:#c39924}
.game-shell{background:linear-gradient(145deg,#fffdf4 65%,#eef7ed);border-top:5px solid var(--stage-accent)}
.topbar{padding-bottom:12px;border-bottom:1px solid #102a3b14}.brand-mark{box-shadow:4px 4px 0 #102a3b;transform:rotate(-8deg)}.brand-dot{color:var(--stage-accent)}
.battle-frame{border-color:#173148;box-shadow:0 6px 0 #173148,0 13px 24px #102a3b16}.battle-hud{align-items:start}.base-status{background:#fffdf1e8;padding:9px 11px;border:2px solid #102a3b;border-radius:10px;box-shadow:2px 3px 0 #102a3b22}.base-status>div:first-child{text-shadow:none}.mission-clock{background:#102a3bc9;color:#fffdf2;border-radius:10px;padding:5px 15px;border:1px solid #ffffff66}.health-track{height:10px}.battle-switches{display:flex;gap:6px;pointer-events:auto;flex:none}#quality-btn{font-size:12px;padding-inline:8px}.battle-caption>span{max-width:calc(100% - 140px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.boss-meter{position:absolute;z-index:2;top:92px;left:50%;transform:translateX(-50%);width:230px;background:#281e3bec;color:#fff2d4;border:2px solid #f1c356;border-radius:9px;padding:7px 10px;box-shadow:0 3px 0 #102a3b55;pointer-events:none}.boss-meter>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}.boss-meter strong{font-size:14px}.boss-meter span{font-variant-numeric:tabular-nums;font-size:11px}.boss-track{height:7px;margin-top:6px;border-radius:4px;background:#ffffff26;overflow:hidden}.boss-track i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#e96195,#ffc761);transform-origin:left;transition:transform .15s linear}
.mission-card{border-top:7px solid var(--stage-accent);box-shadow:7px 7px 0 #102a3b,0 18px 45px #14243933}.mission-card .eyebrow{color:var(--stage-accent)}.mission-card h2{font-weight:900}.primary-button{background:linear-gradient(#ffdf6f,#ffcc36)}.preflight-deck{border-color:#c4dacf;background:linear-gradient(100deg,#e5f6eb,#f5fae9)}.unit-card{background:linear-gradient(#fff,#f3f8ec)}.unit-card:not(:disabled){border-bottom:5px solid var(--stage-accent)}.unit-role{background:#e2f3e8;border-radius:4px;padding:1px 4px}.unit-card .unit-name{letter-spacing:-.5px}.support-button.upgrade{background:linear-gradient(120deg,#d7f6e7,#bceacb)}.cannon.ready{background:linear-gradient(120deg,#ffe67d,#ffcd44)}.economy-row{padding:5px 0}.income{border:1px solid #abe1c6}.deck-dialog{background:linear-gradient(135deg,#fffdf4,#edf7ed)}.collection-card{box-shadow:0 3px 0 #c5d5cd;transition:transform .15s,border-color .15s}.collection-card.equipped{box-shadow:0 3px 0 #269e8d}.collection-card .collection-role{display:inline-block;align-self:start;padding:2px 6px;border-radius:4px;background:#e4f1e9}.collection-card.locked .collection-role{background:#ece8d9}.deck-slots{background:#173148;padding:10px;border-radius:13px}.deck-slot{border-color:transparent}.deck-slot.selected{border-color:#fff7bb;box-shadow:0 0 0 2px #f2ca54}.token-pill{box-shadow:2px 3px 0 #102a3b}.reward-panel{background:#e6f4df;border:1px solid #abd7a3;padding:8px;border-radius:8px}
@media(hover:hover){.collection-card:hover{transform:translateY(-3px)}.primary-button:hover{background:#ffe889}}
@media(max-width:700px){.topbar{padding-bottom:8px;margin-bottom:14px}.game-shell{border-top-width:4px}.base-status{padding:6px;border-width:1px;border-radius:7px}.base-status>div:first-child,.base-status b{font-size:10px}.battle-hud{left:9px;right:9px;gap:6px}.mission-clock{padding:4px 8px;border-radius:7px}.mission-clock strong{font-size:18px}.boss-meter{top:76px;width:205px;padding:5px 8px}.boss-meter strong{font-size:12px}.boss-meter span{font-size:10px}.battle-caption>span{max-width:calc(100% - 130px);font-size:10px}.deck-slots{padding:7px;gap:6px}.unit-card:not(:disabled){border-bottom-width:3px}.unit-role{padding:0 2px}.economy-row{padding:0}.mission-card{border-top-width:5px}.reward-panel{font-size:12px;padding:6px}}
@media(max-height:600px) and (orientation:landscape){.game-shell{border-top:0}.topbar{border:0;padding:0;margin:0}.base-status{padding:4px 8px;border-width:1px;border-radius:6px;max-width:195px}.base-status>div:first-child,.base-status b{font-size:11px}.mission-clock{padding:2px 10px;border-radius:6px}.mission-clock strong{font-size:16px}.battle-hud{top:5px}.boss-meter{top:7px;left:72%;width:190px;padding:4px 7px}.boss-meter strong{font-size:12px}.boss-meter span{font-size:9px}.boss-track{margin-top:3px;height:5px}.battle-hud .hostile{max-width:145px}.unit-card:not(:disabled){border-bottom-width:3px}.economy-row{padding:0}.deck-slots{padding:7px}.mission-card{border-top-width:4px}.battle-frame{box-shadow:0 3px 0 #173148}.boss-meter{top:58px;left:50%}.reward-panel{padding:5px;margin-bottom:5px}.battle-caption>span{font-size:11px}}

/* Operation board */
.stage-path{display:block;padding:0;margin:8px 0 12px}.map-open-button{width:100%;display:flex;align-items:center;gap:14px;padding:10px 16px;background:#173f50;color:#fff7df;border:2px solid #102a3b;border-radius:10px;text-align:left;font-size:14px}.map-open-button>span{color:#ffd44a;font-weight:900}.map-open-button strong{flex:1}.map-open-button small{font-size:12px;white-space:nowrap}.map-open-button:disabled{opacity:.55}.map-dialog{width:min(1100px,calc(100vw - 24px));max-height:94dvh;padding:24px;overflow:auto;background:#edf3e9;border:3px solid #102a3b;border-radius:16px}.map-progress{font-size:14px;color:#52636b;margin:8px 0 20px}.map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.map-card{position:relative;overflow:hidden;text-align:left;background:#fff;border:2px solid #b7c7c5;border-radius:12px;padding:0;color:#102a3b;transition:transform .15s,border-color .15s}.map-card:hover{transform:translateY(-3px);border-color:#102a3b}.map-card.selected{border-color:#d59000;box-shadow:0 0 0 2px #ffd44a}.map-card.cleared .map-state{background:#126f5c}.map-card>img{width:100%;height:125px;object-fit:cover;display:block}.map-number{position:absolute;top:10px;left:10px;background:#102a3b;color:#ffd44a;padding:5px 8px;border-radius:5px;font-size:18px;font-weight:900}.map-state{position:absolute;top:12px;right:10px;border-radius:5px;background:#102a3bcc;color:white;padding:4px 7px;font-size:12px}.map-card-body{padding:13px;display:flex;flex-direction:column;gap:5px}.map-card-body small{font-size:12px;color:#6a767b}.map-card-body strong{font-size:19px}.map-card-body p{font-size:14px;line-height:1.5;min-height:42px;margin:2px 0 6px}.map-card-body>span{font-size:12px;font-weight:700;color:#8a6012}.collection-card .collection-role{font-size:12px}.collection-desc{font-size:14px}.collection-action{font-size:14px}.collection-cost{font-size:12px}
@media(max-width:650px){.map-dialog{padding:16px 12px}.map-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.map-card>img{height:98px}.map-card-body{padding:10px}.map-card-body strong{font-size:16px}.map-card-body p{font-size:14px;min-height:63px}.map-state{top:8px;right:5px;font-size:12px}.map-number{top:8px;left:6px;font-size:14px}.map-open-button{gap:8px;padding:8px 10px}.map-open-button small{display:none}}
@media(max-height:600px) and (orientation:landscape){.stage-path{position:absolute;left:32%;right:31%;top:8px;margin:0}.map-open-button{padding:4px 8px;font-size:12px;gap:7px;min-height:30px}.map-open-button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-open-button small{display:none}.map-dialog{max-height:96dvh;padding:16px 20px}.map-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.map-card>img{height:105px}}

.enemy-preview{display:flex;flex-wrap:wrap;gap:5px;border-top:1px solid #dce5df;padding:8px 0}.enemy-preview>span{display:flex;align-items:center;gap:3px;background:#f2eaf4;border-radius:5px;padding:3px 5px;font-size:12px}.enemy-preview img{width:28px;height:28px;object-fit:contain}.enemy-preview b{font-size:12px;font-weight:600}.enemy-manual{border:1px solid #cebcd6;padding:12px;border-radius:8px;background:#f4edf6;margin-top:16px}.enemy-manual p{font-size:14px;line-height:1.6;margin:7px 0}.enemy-manual>strong{font-size:16px}
