.battle-builder{display:grid;grid-template-columns:minmax(0, 1fr) 344px;gap:20px;align-items:start}.battle-main-column{display:grid;gap:20px;min-width:0}.battle-tools{padding:20px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:20px}.battle-tools .battle-buttons,.battle-tools>p{grid-column:1/-1;margin:0}.battle-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.battle-tool-button{min-height:44px;padding:10px 14px;border:1px solid #34536b;border-radius:9px;background:#12364b;color:var(--text);cursor:pointer;font-size:14px}.battle-tool-button:hover{border-color:var(--teal);background:#1a465b}.battle-tool-button:focus-visible,.slot-clear:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.battle-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.battle-filter-grid select{min-width:0;width:100%;padding:10px 6px;font-size:13px}.battle-extra{margin-top:18px}.battle-extra label,.battle-tools .field{min-width:0}#party-buff-list .field{margin:12px 0}#party-buff-list input{width:120px;max-width:100%}#battle-hit-results td{white-space:nowrap}#battle-validation{color:var(--gold);font-weight:700}#battle-coverage,#battle-trace{overflow-wrap:anywhere}#battle-team-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.battle-result details{margin:18px 0}.battle-result summary{cursor:pointer;color:var(--teal)}.battle-result-jump{display:none}.battle-result .breakdown dd{overflow-wrap:anywhere}@media(max-width:760px){.battle-tools,#battle-team-actions{grid-template-columns:1fr}.battle-filter-grid{grid-template-columns:1fr}.battle-result-jump{display:block;position:fixed;bottom:14px;right:14px;z-index:25;box-shadow:0 4px 20px #0006}#battle{padding-bottom:65px}.battle-result{scroll-margin-top:155px}.battle-tool-button{flex-grow:1}.battle-result .damage-range strong{font-size:32px}}.formation-panel,.enemy-panel{padding:22px}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:24px;margin-bottom:18px}.panel-heading h2,.roster-panel h2{margin:3px 0 0;font:600 24px/1.25 Georgia,"Yu Mincho",serif}.panel-heading > p{max-width:420px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}.party-layout{display:grid;grid-template-columns:minmax(0, 1fr) 150px;gap:18px;align-items:end;padding:18px;border:1px solid #28485f;border-radius:14px;background:linear-gradient(180deg,#071522,#0a1d2e)}.formation-row{display:grid;grid-template-columns:repeat(3, 1fr);gap:10px}.formation-row + .formation-row-label{margin-top:14px}.formation-row-label{margin:0 0 7px;color:#7892a5;font-size:12px;font-weight:800;letter-spacing:.1em}.formation-slot{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 9px;align-items:center;min-height:74px;padding:8px;border:1px solid #36566e;border-radius:11px;background:#0d263a;color:var(--text);text-align:left;cursor:pointer;overflow:hidden}.formation-slot:hover,.formation-slot.is-target{border-color:var(--teal);box-shadow:0 0 0 2px #42d4c424}.formation-slot.is-attacker{background:linear-gradient(135deg,#164b55,#10283d);border-color:var(--gold)}.formation-slot.is-attacker::after{content:"攻撃キャラ";position:absolute;right:5px;bottom:4px;color:var(--gold);font-size:10px;font-weight:800}.formation-slot img,.formation-slot .hero-placeholder{grid-row:1/3;width:54px;height:54px;object-fit:cover;object-position:50% 18%;border-radius:8px;background:#071522}.hero-placeholder{display:grid;place-items:center;color:var(--gold);font:700 20px Georgia,serif}.formation-slot strong{align-self:end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.formation-slot small{align-self:start;color:var(--muted);font-size:11px}.formation-slot.is-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--muted);text-align:center}.slot-add{color:var(--teal);font-size:24px;line-height:1}.slot-clear{position:absolute;right:4px;top:2px;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#071522dd;color:#a9bdcb;font-size:16px}.support-area{align-self:center}.support-slot{grid-template-columns:1fr;grid-template-rows:58px auto auto;min-height:112px;text-align:center}.support-slot img,.support-slot .hero-placeholder{grid-row:auto;justify-self:center}.support-slot strong{max-width:100%}.party-summary{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;margin-top:16px}.party-summary h3{margin:0 0 8px;font-size:14px;color:var(--gold)}.current-party-list{display:flex;flex-wrap:wrap;gap:7px;color:var(--muted);font-size:13px}.party-chip{padding:6px 9px;border:1px solid #2e4d63;border-radius:999px;background:#071522;color:#b9cbd8;font-size:12px;cursor:pointer}.party-chip.active{border-color:var(--gold);color:var(--gold)}.leader-field{align-self:end}.party-buff-list{display:grid;gap:7px;margin-top:16px;padding:13px;border-left:3px solid var(--teal);background:#071522;border-radius:4px 10px 10px 4px}.party-buff-list > strong{color:var(--teal)}.party-buff-list div{display:grid;gap:2px;padding-top:6px;border-top:1px solid #233d50}.party-buff-list small{color:var(--muted);line-height:1.5}.party-buff-list .conditional-title{margin-top:7px;color:var(--gold);font-size:13px}.buff-toggle{display:grid;grid-template-columns:20px 1fr;gap:9px;align-items:start;padding:8px 0;border-top:1px solid #233d50;cursor:pointer}.buff-toggle input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--teal)}.buff-toggle span{display:grid;gap:2px}.buff-toggle b{font-size:13px}.support-skill-note{margin-top:5px}.enemy-selector-layout{display:grid;grid-template-columns:minmax(280px,.8fr) 1.2fr;gap:18px;align-items:end}.enemy-picker select{min-height:170px}.enemy-row{min-height:68px}.enemy-slot{display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;gap:2px 8px;align-items:center;min-height:68px;padding:8px;border:1px solid #36566e;border-radius:10px;background:#0b2134;color:var(--text);text-align:left;cursor:pointer}.enemy-slot:hover,.enemy-slot.selected{border-color:var(--danger);box-shadow:0 0 0 2px #ff8f9124}.enemy-slot:disabled{opacity:.38;cursor:default}.enemy-mark{position:relative;grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:#3a1b25;color:#ffb6b7;font-size:10px;font-weight:900}.enemy-mark img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.enemy-boss-badge{position:absolute;right:-4px;bottom:-4px;padding:2px 3px;border-radius:4px;background:#7d2634;color:#fff1f1;font:800 7px/1 sans-serif}.enemy-slot strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enemy-slot small{font-size:11px;color:var(--muted)}.enemy-empty{grid-column:1/-1;text-align:center;color:#587185}.selected-enemy-card{display:flex;justify-content:space-between;gap:16px;margin-top:14px;padding:11px 13px;border:1px solid #4d3c48;border-radius:10px;background:#24141e}.selected-enemy-card strong{color:#ffb6b7}.selected-enemy-card span{color:var(--muted);font-size:13px}.battle-calculator{margin-top:0}.battle-result{min-width:0}.battle-result .damage-range{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:3px;line-height:1.05;margin:20px 0}.battle-result .damage-range strong{max-width:100%;font-size:clamp(30px,3.4vw,52px);overflow-wrap:anywhere;text-align:center;font-variant-numeric:tabular-nums}.battle-result .damage-range>span{font-size:24px;line-height:1;transform:rotate(90deg);margin:5px 0}.enemy-mark:has(img){background:transparent}.roster-card[draggable=true]{cursor:grab}.roster-card.is-dragging{opacity:.45}.formation-slot.is-drop-target{border-color:var(--teal);outline:3px solid #42d4c480;background:#154956}#battle-drag-hint{color:var(--muted);font-size:12px;line-height:1.6;margin:4px 0 12px}.roster-panel{position:sticky;top:94px;padding:18px;max-height:calc(100vh - 114px);overflow:hidden}.roster-sticky{display:flex;flex-direction:column;height:100%;max-height:calc(100vh - 150px)}.roster-panel h2{margin-bottom:4px}.roster-panel #roster-slot-hint{margin:0 0 12px;color:var(--gold);font-size:13px}.roster-panel input{margin-bottom:12px}.hero-roster{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow-y:auto;padding-right:5px}.roster-card{display:grid;grid-template-columns:54px 1fr;grid-template-rows:auto auto;gap:2px 8px;align-items:center;min-width:0;padding:7px;border:1px solid #29465d;border-radius:10px;background:#091a29;color:var(--text);text-align:left;cursor:pointer}.roster-card:hover{border-color:var(--teal)}.roster-card.in-party{border-color:var(--gold);background:#2a251b}.roster-card img,.roster-card .hero-placeholder{grid-row:1/3;width:54px;height:54px;object-fit:cover;object-position:50% 18%;border-radius:8px;background:#071522}.hero-strip img{object-fit:cover;object-position:50% 18%}.roster-card strong{align-self:end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.roster-card small{align-self:start;color:var(--muted);font-size:10px}@media (max-width:1080px){.battle-builder{grid-template-columns:1fr}.roster-panel{position:static;max-height:none}.roster-sticky{max-height:none}.hero-roster{grid-template-columns:repeat(4,1fr);max-height:440px}}@media (max-width:900px){.party-layout{grid-template-columns:1fr}.support-area{width:150px}.party-summary,.enemy-selector-layout{grid-template-columns:1fr}.selected-enemy-card{display:grid}}@media (max-width:560px){.brand{width:100%;justify-content:center}.formation-panel,.enemy-panel{padding:14px}.panel-heading{display:block}.panel-heading > p{margin-top:8px}.formation-row{gap:6px}.formation-slot{grid-template-columns:1fr;grid-template-rows:46px auto;min-height:94px;padding:6px;text-align:center}.formation-slot img,.formation-slot .hero-placeholder{grid-row:auto;width:46px;height:46px;justify-self:center}.formation-slot strong{font-size:11px}.formation-slot small{display:none}.formation-slot.is-attacker::after{font-size:9px}.support-slot{width:120px}.hero-roster{grid-template-columns:repeat(2,1fr)}.roster-card{grid-template-columns:46px 1fr}.roster-card img,.roster-card .hero-placeholder{width:46px;height:46px}.enemy-slot{grid-template-columns:34px 1fr}.enemy-mark{width:34px;height:34px}}.battle-growth-dialog{width:min(900px,calc(100vw - 32px));max-height:calc(100dvh - 40px);box-sizing:border-box;overflow:auto;padding:24px;border:1px solid #41677b;border-radius:18px;background:#0b2030;color:#ecf6fc}.battle-growth-dialog::backdrop{background:rgba(0,9,18,.75)}.growth-heading{display:flex;justify-content:space-between;align-items:start;gap:14px;position:sticky;top:-24px;background:#0b2030;z-index:1;padding:12px 0}.growth-heading h2{font-size:20px;margin:0}.growth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.growth-grid .field{min-width:0}.growth-grid select{width:100%;min-width:0}.growth-summary{color:#45ddd5;font-weight:700;margin-top:22px}.growth-trigger{display:flex;gap:10px;align-items:center;margin:14px 0}.growth-trigger input,.growth-panels input{width:20px;height:20px;flex:none;accent-color:#20bdb4}.growth-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.growth-panels label{display:flex;gap:10px;align-items:center;padding:10px;background:#071923;border-radius:8px;font-size:13px}.growth-stats{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0;padding:16px;border:1px solid #315466;border-radius:10px}.growth-stats span{white-space:nowrap}.growth-actions{position:sticky;bottom:-24px;background:#0b2030;padding:14px 0;margin-bottom:0;border-top:1px solid #315466;z-index:1}.growth-effect-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #274859}.growth-effect-line span{font-size:13px}.growth-party-stats{overflow-x:auto;margin-top:18px}.growth-party-stats table{width:100%;font-size:13px}.growth-party-stats th,.growth-party-stats td{white-space:nowrap;padding:8px;text-align:right}.growth-party-stats th:first-child,.growth-party-stats td:first-child{text-align:left}@media(max-width:600px){.battle-growth-dialog{padding:16px}.growth-heading{top:-16px}.growth-actions{bottom:-16px}.growth-grid,.growth-panels{grid-template-columns:1fr}.growth-heading h2{font-size:17px}}/* Keep the roster alongside formation, with storage controls in the left column. */.battle-main-column>.battle-tools{margin:0;padding:16px;grid-template-columns:repeat(2,minmax(0,280px));gap:10px}.battle-tools .battle-buttons{gap:6px}.battle-tools .battle-tool-button{padding:8px 10px}.roster-drag-grip{display:none}.roster-search-details>summary{display:none}.roster-search-details{flex:none}.formation-slot.is-attacker{border-color:#36566e;background:#0d263a}.party-chip.active{border-color:var(--teal);color:var(--teal)}.party-slot-shell{min-width:0}.party-slot-shell>.formation-slot{width:100%;touch-action:none;user-select:none}.party-hp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px;margin:8px 0 0;font-size:12px;color:var(--muted)}.party-hp output{text-align:right;overflow-wrap:anywhere}.party-hp input{grid-column:1/-1;width:100%;padding:0;height:28px;accent-color:var(--teal);touch-action:auto}#party-edit-selected{width:100%;margin-top:12px;white-space:normal}.growth-tabs{display:flex;gap:8px;margin:16px 0}.growth-tabs [aria-selected=true]{color:var(--teal);border-color:var(--teal);background:#154956}.growth-tabs button{flex:1;min-width:0;padding:10px 6px}.battle-growth-dialog [role=tabpanel][hidden]{display:none}.battle-touch-ghost{position:fixed!important;z-index:100;pointer-events:none;width:100px;opacity:.9;box-shadow:0 8px 24px #0008}@media(min-width:761px) and (max-width:1080px){.battle-builder{grid-template-columns:minmax(0,1fr) 280px;gap:14px}.roster-panel{position:sticky;top:140px;max-height:calc(100dvh - 156px)}.roster-sticky{max-height:calc(100dvh - 195px)}.hero-roster{grid-template-columns:1fr;max-height:none}.party-layout{grid-template-columns:1fr}.party-summary{grid-template-columns:1fr}.formation-slot{grid-template-columns:1fr;justify-items:center;text-align:center}.formation-slot img{grid-row:auto}.formation-slot small{display:none}}@media(max-width:760px){.battle-builder{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:10px}.battle-main-column{display:contents}.battle-main-column>.battle-tools{grid-column:1/-1;grid-row:1;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.formation-panel[aria-labelledby]{grid-column:1;grid-row:2;min-width:0;padding:10px}.roster-panel{grid-column:2;grid-row:2;position:sticky;top:126px;min-width:0;padding:10px;max-height:calc(100dvh - 138px)}.roster-sticky{max-height:calc(100dvh - 188px);min-height:0}.battle-main-column>.enemy-panel,.battle-main-column>.battle-calculator,.battle-main-column>.battle-team-panel{grid-column:1/-1;min-width:0}.battle-main-column>section:not(.formation-panel[aria-labelledby]):not(.battle-tools){grid-column:1/-1}.formation-panel[aria-labelledby] .panel-heading{display:block;margin-bottom:12px}.formation-panel[aria-labelledby] .panel-heading>p{display:none}.formation-panel[aria-labelledby] h2,.roster-panel h2{font-size:18px}.roster-panel .eyebrow{display:none}.party-layout{padding:6px;gap:10px;grid-template-columns:1fr}.formation-row{gap:4px;grid-template-columns:repeat(3,minmax(0,1fr))}.formation-slot{grid-template-columns:1fr;grid-template-rows:36px auto;gap:3px;min-width:0;min-height:86px;padding:5px 2px 16px;text-align:center}.formation-slot img,.formation-slot .hero-placeholder{grid-row:auto;width:36px;height:36px;justify-self:center}.formation-slot strong{font-size:12px;max-width:100%}.formation-slot small{display:none}.formation-slot.is-attacker::after{font-size:9px}.support-area{width:auto}.support-slot{width:100%;min-height:64px;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto;padding:8px;text-align:left}.support-slot img{grid-row:1/3}.party-summary{grid-template-columns:1fr;gap:10px}.party-summary select{min-width:0;width:100%;font-size:12px;padding:10px 5px}.current-party-list{gap:4px}.party-chip{font-size:12px;white-space:normal}.growth-party-stats table{font-size:12px}.growth-party-stats th,.growth-party-stats td{padding:6px}.growth-effect-line{flex-wrap:wrap;gap:5px}.growth-effect-line span{font-size:12px}.growth-effect-line button{min-height:40px}.roster-panel #roster-slot-hint{font-size:12px;margin-bottom:6px}#battle-drag-hint{font-size:12px;line-height:1.4;margin:4px 0 8px}.roster-panel input{padding:10px 6px;font-size:12px;margin-bottom:6px;min-width:0}.roster-search-details>summary{display:block;cursor:pointer;font-size:12px;padding:8px 4px;border:1px solid #36566e;border-radius:8px;margin:5px 0}.roster-search-details[open]>summary{color:var(--teal)}.roster-panel .battle-filter-grid{grid-template-columns:1fr;gap:5px;margin:5px 0}.roster-panel .battle-filter-grid select{font-size:12px;padding:7px 4px;min-height:36px}#battle-roster-count{margin:5px 0;font-size:12px}.hero-roster{grid-template-columns:1fr;gap:6px;max-height:none;min-height:120px;flex:1;overscroll-behavior:contain;padding-right:0}.roster-card{position:relative;grid-template-columns:1fr;grid-template-rows:36px auto auto;gap:3px;justify-items:center;min-height:98px;padding:5px 25px 5px 4px;text-align:center}.roster-card img,.roster-card .hero-placeholder{grid-row:auto;width:36px;height:36px}.roster-card strong{font-size:12px;white-space:normal;overflow-wrap:anywhere}.roster-card small{display:none}.roster-drag-grip{display:flex;align-items:center;justify-content:center;position:absolute;right:0;top:0;bottom:0;width:25px;color:var(--teal);border-left:1px solid #29465d;font-size:24px;touch-action:none;user-select:none;-webkit-user-select:none}.roster-panel>.battle-tool-button{font-size:12px;width:100%;padding:6px;margin-top:6px}}.formation-slot.is-attacker{border-color:#71c9ff;box-shadow:inset 0 0 0 1px #71c9ff;background:#15364b}.formation-slot.is-attacker::after{color:#71c9ff}.battle-touch-ghost{display:grid!important;grid-template-columns:48px minmax(0,1fr) !important;grid-template-rows:auto auto!important;justify-items:start!important;text-align:left!important;height:76px!important;min-height:76px!important;padding:10px!important;gap:4px 10px!important;box-sizing:border-box}.battle-touch-ghost img{grid-row:1/3!important;width:48px!important;height:48px!important}.battle-touch-ghost strong{align-self:end}.battle-touch-ghost small{display:block!important}.growth-actions{justify-content:flex-end}.support-area .leader-field{margin-bottom:12px;max-width:180px}.support-area .leader-field select{width:100%;min-width:0;font-size:12px;padding:8px 4px}.party-effect-card{padding:12px 0;border-bottom:1px solid #315466}.effect-description{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.effect-toggle{display:flex;gap:10px;align-items:center;font-size:13px}#party-buff-list .effect-toggle input{width:20px;height:20px;accent-color:var(--teal)}.chain-tools{display:flex;gap:12px;align-items:end;margin-bottom:16px}.chain-tools .field{width:130px}.chain-palette{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.chain-character{display:flex;align-items:center;gap:8px;background:#102a3c;border:1px solid #36566e;border-radius:10px;color:#ecf6fc;min-width:0;padding:8px;touch-action:none;user-select:none}.chain-character img{width:44px;height:44px;object-fit:contain}.chain-character strong{font-size:12px;overflow-wrap:anywhere}.chain-scroll{overflow-x:auto;padding-bottom:12px;max-width:100%}.chain-track{display:flex;flex-direction:row-reverse;gap:10px;width:max-content;min-width:100%}.chain-cell{flex:0 0 180px;width:180px;border:1px solid #36566e;border-radius:12px;padding:10px;box-sizing:border-box;background:#0b2030}.chain-cell.selected{border-color:var(--teal)}.chain-cell.is-drop-target{outline:2px solid var(--teal)}.chain-cell .chain-character{width:100%}.chain-cell select{width:100%;min-width:0;font-size:12px;margin:10px 0;padding:8px 4px}.chain-order{font-size:12px;color:var(--muted);margin:0 0 8px}.chain-entry-damage{font-size:14px;white-space:pre-line;color:#ecf6fc}.chain-clear{font-size:12px}.chain-ghost{position:fixed;z-index:110;pointer-events:none;width:180px;opacity:.9;box-shadow:0 8px 24px #0008}.battle-chain-panel{min-width:0}#chain-results{font-size:13px;line-height:1.6}/* Uniform character cards with complete names and native status icons. */#hero-roster .roster-card{position:relative;box-sizing:border-box;display:grid;grid-template-columns:54px minmax(0,1fr);grid-template-rows:44px 64px;height:132px;min-height:132px;padding:16px 7px 8px;gap:0 6px;text-align:left;align-items:center}#hero-roster .roster-card strong{grid-column:1/-1;grid-row:1;align-self:center;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;font-size:12px;line-height:1.3}#hero-roster .roster-card .roster-portrait{grid-column:1;grid-row:2;width:54px;height:64px;object-fit:contain;background:transparent;border-radius:0}#hero-roster .roster-card .roster-icons{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:4px;align-self:center}#hero-roster .roster-attributes,#hero-roster .roster-tags{display:flex;flex-wrap:wrap;gap:3px}#hero-roster .roster-card .attribute-icon img,#hero-roster .roster-card .roster-tags img{grid-row:auto;width:24px;height:24px;object-fit:contain;background:transparent;border-radius:0}#hero-roster .roster-card .roster-rarity{position:absolute;left:6px;top:3px;width:32px;height:18px;object-fit:contain;background:transparent;border-radius:0}.formation-slot.is-attacker::after{color:var(--gold)}@media(max-width:760px){#hero-roster .roster-card{grid-template-columns:42px minmax(0,1fr);height:146px;min-height:146px;padding-right:27px;grid-template-rows:54px 64px}#hero-roster .roster-card .roster-portrait{width:42px;height:58px}#hero-roster .roster-card .attribute-icon img,#hero-roster .roster-card .roster-tags img{width:22px;height:22px}}/* Three compact icon rows stay within every card. */#hero-roster .roster-card{height:108px;min-height:108px;padding:6px;grid-template-columns:50px minmax(0,1fr);grid-template-rows:24px 70px;gap:0 5px}#hero-roster .roster-card strong{margin-left:34px;line-height:1.2}#hero-roster .roster-card .roster-icons{gap:2px;min-width:0;align-self:center}#hero-roster .roster-attributes,#hero-roster .roster-tags,#hero-roster .roster-role{display:flex;flex-wrap:nowrap;align-items:center;gap:2px;height:20px;min-width:0}#hero-roster .roster-card .roster-portrait{width:50px;height:64px}#hero-roster .roster-card .attribute-icon{display:flex;min-width:0;flex:0 1 22px}#hero-roster .roster-card .attribute-icon img,#hero-roster .roster-card .roster-tags img,#hero-roster .roster-card .roster-role img{width:22px;height:20px;min-width:0;max-width:100%;flex-shrink:1;object-fit:contain;background:transparent;border-radius:0;grid-row:auto}#hero-roster .roster-card .roster-rarity{top:4px;height:22px}#hero-roster .roster-rarity[src$="rarity-r.webp"],#hero-roster .roster-rarity[src$="rarity-sr.webp"]{clip-path:inset(36% 0 0);top:0}@media(max-width:760px){#hero-roster .roster-card{height:118px;min-height:118px;padding:6px 27px 6px 4px;grid-template-columns:32px minmax(0,1fr);grid-template-rows:34px 70px;gap:0 3px}#hero-roster .roster-card .roster-portrait{width:32px;height:58px}#hero-roster .roster-card strong{margin-left:28px;font-size:11px}}.roster-filter-panel{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:8px;margin:10px 0}.roster-filter-fields{min-width:0;display:flex;flex-direction:column;gap:8px}.roster-filter-panel #roster-search{box-sizing:border-box;width:100%;min-width:0;margin:0;font-size:12px;padding:10px 6px}.roster-filter-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.roster-filter-selects select{box-sizing:border-box;width:100%;min-width:0;font-size:11px;padding:8px 2px}.roster-attribute-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.roster-attribute-panel button{display:flex;justify-content:center;align-items:center;min-width:0;height:31px;padding:2px;border:1px solid #36566e;background:#102a3c;color:#ecf6fc;font-size:10px;border-radius:4px}.roster-attribute-panel button[data-roster-attribute=all]{grid-column:1/-1;height:28px;font-size:12px}.roster-attribute-panel button[aria-pressed=true]{border-color:var(--teal);background:#205253;box-shadow:inset 0 0 0 1px var(--teal)}.roster-attribute-panel .attribute-icon img{width:25px;height:25px;min-height:0}@media(max-width:760px){.roster-filter-panel{grid-template-columns:1fr}.roster-attribute-panel{width:100%}.roster-filter-selects select{font-size:11px}}#hero-roster .roster-card .roster-portrait{object-fit:contain;object-position:center}.formation-slot>img{object-fit:contain;object-position:center}.roster-tag-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(24px,1fr));gap:3px}.roster-tag-panel button{display:flex;align-items:center;justify-content:center;height:25px;min-width:0;padding:2px;border:1px solid #36566e;border-radius:4px;background:#102a3c;color:#ecf6fc;cursor:pointer}.roster-tag-panel img{width:20px;height:20px;object-fit:contain}.roster-tag-panel button[aria-pressed=true]{border-color:var(--teal);background:#205253;box-shadow:inset 0 0 0 1px var(--teal)}.roster-tag-panel .roster-tags-clear{grid-column:1/-1;font-size:11px}.roster-attribute-panel{align-self:start;align-content:start;grid-template-rows:28px repeat(3,31px);row-gap:3px}.battle-builder .roster-panel{position:static;top:auto}.battle-right-column{min-width:0;align-self:stretch}.battle-main-column .battle-calculator{grid-template-columns:minmax(0,1fr)}.battle-right-column>.roster-panel{margin-bottom:20px;max-height:640px}.battle-builder .battle-right-column>.roster-panel{max-height:none;overflow:visible}.battle-right-column .roster-sticky{height:auto;max-height:none}.battle-right-column #hero-roster{height:clamp(240px,50dvh,440px);min-height:240px;max-height:none;flex:none;align-content:start;overflow-y:auto}.battle-right-column #hero-roster{grid-template-columns:repeat(2,minmax(0,132px));gap:8px;justify-content:start;padding-right:3px}.battle-right-column #hero-roster .roster-card{width:100%;height:118px;min-height:118px;grid-template-columns:44px minmax(0,1fr);grid-template-rows:34px 70px;padding:5px;gap:0 3px;justify-items:stretch;text-align:left}.battle-right-column #hero-roster .roster-card strong{margin-left:28px;font-size:12px;line-height:1.2}.battle-right-column #hero-roster .roster-card .roster-portrait{width:44px;height:64px}@media(min-width:761px) and (max-width:1190px){.battle-builder{grid-template-columns:minmax(0,1fr) 304px}}@media(max-width:760px){.battle-right-column #hero-roster .roster-drag-grip{top:auto;bottom:2px;left:2px;right:auto;width:14px;height:18px;border:0;font-size:18px}.battle-right-column #hero-roster .roster-card strong{font-size:12px}}.battle-right-column>.battle-result{position:sticky;top:104px;max-height:calc(100dvh - 120px);overflow:auto;padding:18px}.battle-recovery-panel,.growth-support-skill{border-top:1px solid #34536b;padding-top:16px;margin-top:16px}.battle-recovery-panel h3{font-size:16px;margin:14px 0 10px}.battle-recovery-panel label{display:grid;gap:6px;margin-bottom:10px}.battle-recovery-panel select{width:100%;min-width:0}.battle-recovery-panel .recovery-hp{grid-template-columns:1fr auto}.recovery-hp input{grid-column:1;min-width:0;width:100%}.recovery-hp output{grid-column:2;grid-row:2}.skill-prediction-row{font-size:14px;line-height:1.7}.growth-support-skill .party-effect-skill-name,.battle-recovery-panel .party-effect-skill-name{color:#65DDE0}.battle-recovery-panel .party-effect-stage img{width:28px;height:28px;object-fit:contain}.battle-recovery-panel .party-effect-summary{display:flex;gap:10px}@media(max-width:760px){.battle-right-column{grid-column:1/-1}.battle-right-column>.battle-result{position:static;max-height:none;overflow:visible}.battle-right-column>.roster-panel{max-height:640px}}.attacker-name-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px 16px!important;width:100%}.hero-strip>div{flex:1;min-width:0}.attacker-hp{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;white-space:nowrap}#battle-current-hp{width:110px;height:20px;padding:0;margin:0;accent-color:var(--teal)}.attacker-hp output{min-width:34px;text-align:right}.growth-guide-heading{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}.growth-guide-heading label{flex-shrink:0;margin:0}.growth-guide-description{flex:1;min-width:150px;font-size:12px;line-height:1.5;color:var(--muted)}.growth-panel-section h3{font-size:14px;margin:12px 0}#party-buff-list .party-effect-card{padding:8px 0}#party-buff-list .party-effect-heading{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;padding:0;border:0}#party-buff-list .party-effect-heading strong{margin:0}#party-buff-list .party-effect-skill-name{color:#65DDE0}#party-buff-list .party-effect-heading .effect-toggle{display:inline-flex;margin:0;gap:6px;white-space:nowrap;line-height:1.4}#party-buff-list .party-effect-heading .effect-toggle input{margin:0;flex:0 0 18px;width:18px;height:18px}#party-buff-list .party-effect-summary{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:0;border:0}#party-buff-list .party-effect-percent{color:#ffb34b;font-weight:700;white-space:nowrap}#party-buff-list .party-effect-stage{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}#party-buff-list .party-effect-stage img{width:28px;height:28px;object-fit:contain}#party-buff-list .party-effect-card .effect-description{margin:5px 0 0;line-height:1.5}.enemy-search-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:8px;align-items:center;margin-bottom:12px}.enemy-search-toolbar #enemy-search,.enemy-search-toolbar #battle-enemy-type{box-sizing:border-box;width:100%;height:40px;min-height:40px;margin:0;padding:8px;font-size:13px}.enemy-mark{width:46px;height:52px;background:transparent;overflow:visible}.enemy-mark img{width:46px;height:52px;max-width:100%;object-fit:contain;image-rendering:pixelated}.enemy-slot{grid-template-columns:46px minmax(0,1fr);min-height:76px}.enemy-slot small{display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-size:11px}.enemy-slot small .attribute-icon img{width:20px;height:20px;min-height:0}@media(max-width:600px){.enemy-search-toolbar{grid-template-columns:minmax(0,1fr) 105px}.enemy-search-toolbar #battle-enemy-type{font-size:11px}.enemy-slot{grid-template-columns:34px minmax(0,1fr);padding:5px;gap:2px 4px}.enemy-mark,.enemy-mark img{width:34px;height:46px}}/* Battle controls derive growth, level and attack kind from the selected hero/art. */.battle-internal-field[hidden]{display:none!important}@media(min-width:761px){.battle-right-column>.battle-result{top:calc(var(--site-header-height,188px) + 12px);max-height:calc(100dvh - var(--site-header-height,188px) - 24px);box-sizing:border-box}}.battle-chain-panel{container-type:inline-size}#battle-team-actions{display:block}.chain-scroll{overflow:visible;padding-bottom:0}.chain-track{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));direction:rtl;gap:5px;width:100%;min-width:0}.chain-cell{direction:ltr;width:auto;min-width:0;padding:5px;border-radius:8px;overflow-wrap:anywhere}.chain-cell .chain-character{display:flex;flex-direction:column;padding:4px 1px;gap:3px;box-sizing:border-box;min-height:68px}.chain-cell .chain-character img{width:32px;height:32px}.chain-cell .chain-character strong,.chain-order{font-size:10px}.chain-cell select{font-size:10px;padding:5px 1px;margin:6px 0}.chain-cell .formula-note,.chain-entry-damage,.chain-clear{font-size:10px;line-height:1.4}@container(max-width:750px){.chain-track{grid-template-columns:repeat(5,minmax(0,1fr))}}input[type="range"]{padding:0;border:0;background:transparent;box-sizing:border-box;margin-inline:0}.battle-healing-amount{display:block;text-align:center;color:#65DDE0;font-size:clamp(30px,3.4vw,52px);line-height:1.05;font-variant-numeric:tabular-nums;margin:12px 0}@media(max-width:760px){.battle-healing-amount{font-size:32px}}.roster-icon-field{min-width:0;border:1px solid #36566e;border-radius:8px;margin:8px 0;padding:5px}.roster-icon-field legend,.roster-tag-select{font-size:12px;color:var(--muted)}.roster-icon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.roster-icon-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;padding:5px 2px;background:#0b2030;border:1px solid #36566e;border-radius:6px;color:var(--text);font-size:11px}.roster-icon-grid button[aria-pressed=true]{border-color:var(--teal);background:#164454}.roster-icon-grid img{width:24px;height:24px;object-fit:contain}.roster-icon-grid [data-roster-filter=rarity] img{width:54px;height:26px;max-width:100%}.roster-tag-select{display:grid;gap:5px;margin:8px 0}.roster-tag-select select{width:100%;min-width:0;font-size:12px;padding:8px 4px}.roster-filter-fields>.roster-tags-clear{width:100%}#hero-roster .roster-card.battle-character-card,.formation-slot.battle-character-card{position:relative;display:block;width:100%;height:170px;min-height:170px;padding:0;gap:0;overflow:hidden;border:1px solid #34566c;border-radius:9px;background:linear-gradient(145deg,#153b50,#081b2b);box-sizing:border-box;text-align:center}.battle-character-card>img.battle-card-portrait{position:absolute;left:0;top:0;width:100%;height:124px;object-fit:contain;object-position:center bottom;margin:0}.battle-character-card>img.battle-card-rarity{position:absolute;left:3px;top:2px;width:58px;height:30px;object-fit:contain;z-index:2}.battle-character-card>.battle-card-attributes{position:absolute;right:3px;top:32px;display:flex;flex-direction:column;gap:2px;z-index:1}.battle-character-card .battle-card-attributes img{width:25px;height:25px;object-fit:contain}.battle-character-card>.battle-card-footer{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:46px;padding:4px 2px;background:#061724ed;border-top:1px solid #355c74;z-index:2;box-sizing:border-box}#hero-roster .battle-card-footer strong,.formation-slot .battle-card-footer strong{font-size:13px;line-height:1.3;margin:0;white-space:normal;overflow-wrap:anywhere}.battle-card-role-level{display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;line-height:18px}.battle-character-card .battle-card-role-level img{width:18px;height:18px;object-fit:contain}.battle-character-card.in-party,.battle-character-card.is-attacker{border-color:#65dde0;box-shadow:inset 0 0 0 1px #65dde0}.battle-character-card.in-party .battle-card-footer,.battle-character-card.is-attacker .battle-card-footer{background:#17444bed}.battle-character-card>.roster-drag-grip{position:absolute;right:2px;top:100px;bottom:auto;width:20px;height:23px;z-index:3;background:#061724aa;border-radius:4px;font-size:18px;padding:0}.battle-character-card>.slot-clear{position:absolute;right:3px;top:3px;z-index:3}.formation-slot.is-empty{height:170px;min-height:170px}.support-slot.battle-character-card{width:100%}@media(max-width:760px){#hero-roster .roster-card.battle-character-card,.formation-slot.battle-character-card,.formation-slot.is-empty{height:150px;min-height:150px}.battle-character-card>img.battle-card-portrait{height:104px}.battle-character-card>.roster-drag-grip{top:81px}.battle-character-card>img.battle-card-rarity{width:48px;height:26px}.battle-character-card .battle-card-attributes img{width:21px;height:21px}.battle-character-card>.battle-card-attributes{right:1px;top:29px}#hero-roster .battle-card-footer strong,.formation-slot .battle-card-footer strong{font-size:11px}}.attacker-target-notice{font-size:12px;font-weight:400;margin-left:6px;display:inline-block}.battle-fold-panel .battle-settings-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;width:100%;grid-column:1/-1}.battle-settings-heading>div:first-child{min-width:0;flex:1}.battle-settings-heading .battle-heading-note{display:inline;margin:0 0 0 16px;color:var(--muted);font:400 12px/1.65 sans-serif}.battle-settings-heading h2{display:inline}.simple-info-button.roster-info-button{display:inline-flex;vertical-align:middle;margin-left:8px}.roster-title-row{display:flex;align-items:center;gap:0}.roster-title-row #roster-heading{flex:none;margin:0}#roster-placement-help #battle-drag-hint{margin:0;color:inherit;font-family:"Home Noto Sans JP",sans-serif;font-size:14px;line-height:1.8}.roster-filter-toolbar{display:flex;justify-content:flex-end;margin:8px 0 4px}#roster-filter-toggle{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding:0;background:transparent;border:0;color:var(--muted);font-size:10px;cursor:pointer}.roster-filter-toggle-symbol{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border:1px solid #52788d;border-radius:50%;font-size:13px;line-height:1;color:#65dde0}#roster-filter-content{margin-top:0}#roster-filter-content[hidden]{display:none}.formation-save-help,.formation-save-help small,.formation-confirmation{font-family:"Home Noto Sans JP",sans-serif}.formation-save-help small{display:block;margin-top:10px;color:#b6cbd9;font-size:12px}#formation-save-info{align-self:center;flex-shrink:0}.formation-confirmation{width:min(440px,calc(100vw - 32px));padding:24px;border:1px solid #52788d;border-radius:12px;background:#0b2435;color:#eef6fb;box-shadow:0 10px 35px #0008}.formation-confirmation::backdrop{background:#0008}.formation-confirmation p{margin:0 0 20px;line-height:1.8}.formation-confirmation>div{display:flex;justify-content:flex-end;gap:10px}.formation-confirmation button{padding:9px 16px;border:1px solid #52788d;border-radius:8px;background:#153649;color:#eef6fb;cursor:pointer}.battle-settings-heading .eyebrow{display:block}.battle-fold-actions{display:flex;gap:6px;flex:none}.battle-fold-actions button{padding:0;width:32px;height:32px;min-height:32px;font-size:22px;line-height:1;background:#153c4b;border:1px solid #3b7e91;color:#64dedd;border-radius:6px}.battle-fold-actions button{border-radius:50%}.battle-fold-actions button:disabled{display:none}.battle-settings-heading{cursor:pointer}.roster-fold-heading.battle-settings-heading,.roster-fold-heading.battle-settings-heading>div,.roster-fold-heading.battle-settings-heading h2,.roster-fold-heading.battle-settings-heading .eyebrow,.battle-fold-actions button:not(:disabled){cursor:pointer}.battle-settings-heading:focus-visible{outline:2px solid #64dedd;outline-offset:6px;border-radius:4px}.result-top-tools{display:flex;justify-content:flex-end;margin:-4px 0 12px}.result-link-copy{font-size:12px;padding:8px 10px;min-height:34px}.db-detail-actions{flex-wrap:wrap;gap:8px}.db-battle-transfer{border:1px solid #60dbd4;color:#d6fff6;background:#164955;border-radius:7px;padding:10px 12px}.db-battle-transfer-status{color:#68dfcb;font-size:12px;line-height:1.6}.db-battle-transfer-status:empty{display:none}.db-bulk-actions{display:flex;gap:8px;flex-wrap:wrap;margin-right:auto}.db-bulk-actions button{padding:8px 10px;font-size:12px;border:1px solid #4bb8bd;border-radius:6px;background:#164955;color:#d6fff6}.db-bulk-status{font-size:12px;color:#68dfcb;margin:6px 0}.db-bulk-status:empty{display:none}.db-battle-transfer,.db-bulk-actions button{cursor:pointer}.roster-panel button:not(:disabled),.roster-panel select,.roster-panel button:not(:disabled) img,.roster-panel button:not(:disabled) span{cursor:pointer}.db-list-toolbar:has(.db-bulk-actions){flex-wrap:wrap}.settings-file-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.battle-tools>.settings-file-actions{justify-content:flex-end;margin-top:8px}#battle-tools-buttons{flex-wrap:nowrap;align-items:stretch;gap:6px;overflow:visible;padding-bottom:0}#battle-tools-buttons>.battle-tool-button{flex:0 1 auto;min-width:0;font-size:12px;padding:8px;white-space:normal;overflow-wrap:anywhere}#battle-tools-buttons>.settings-file-actions{flex:0 1 auto;min-width:0;flex-wrap:nowrap;align-items:stretch;justify-content:flex-end;margin-left:auto;gap:6px}#battle-tools-buttons>.settings-file-actions button{flex:0 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere;padding:8px}.settings-file-actions button{cursor:pointer;font-size:12px;padding:8px 10px;border-color:#48b8ba}.db-settings-files{margin-left:auto;order:6}.settings-file-status{font-size:12px;color:#68dfcb;line-height:1.6;margin:6px 0}.settings-file-status:empty{display:none}#db-filter-toggle[hidden]{display:none!important}.settings-filter-heading{cursor:pointer;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:12px}.settings-filter-heading>div:first-child{flex:1;min-width:0}.settings-filter-heading>.db-settings-files{width:100%;margin:0;order:2}.settings-filter-heading .settings-file-actions{justify-content:flex-end}.settings-filter-toggle{width:32px;height:32px;min-height:32px;flex:none;padding:0;border-radius:50%;font-size:22px;color:#64dedd;cursor:pointer}.settings-filters-folded>:not(.settings-filter-heading){display:none!important}#db-characters-panel.db-filters-collapsed .db-filter-sidebar{display:block}@media(max-width:760px){.settings-filter-heading{display:flex}.db-settings-files{width:100%;margin-left:0}.settings-file-actions{gap:6px}}.roster-fold-heading.battle-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex:none}.roster-fold-heading.battle-settings-heading h2{display:block}.roster-panel:has(#roster-fold-content[hidden]){align-self:start}.battle-fold-panel.is-folded>:not(.battle-settings-heading){display:none!important}.battle-fold-panel.is-folded .battle-settings-heading{margin-bottom:0}#battle-form.is-folded{align-self:start}@media(max-width:760px){.battle-settings-heading .battle-heading-note{display:block;margin:6px 0 0}.battle-settings-heading .attacker-target-notice{display:block;margin:6px 0 0;line-height:1.5}}#battle-form>.recipient-state-control{grid-column:1/-1}.prediction-sprite-scene{display:grid;grid-template-columns:minmax(0,64px) minmax(0,1fr) minmax(0,64px);gap:4px;align-items:center;margin:20px 0}.prediction-sprite-scene>img{width:100%;height:100px;object-fit:contain;image-rendering:pixelated;min-width:0}.prediction-sprite-scene>img,.battle-damage-scene>img{transform:scale(var(--battle-sprite-scale,1));transform-origin:center}.prediction-sprite-scene>.damage-range,.prediction-sprite-scene>.battle-healing-amount,.prediction-sprite-scene>.friendly-damage-amount{margin:0;min-width:0;text-align:center}.prediction-sprite-scene .damage-range strong{font-size:clamp(28px,3vw,46px)}.prediction-sprite-scene>.is-blocked{font-size:20px;overflow-wrap:anywhere}#incoming-note,#battle-coverage,.battle-result>p.formula-note,.battle-result details:has(#battle-hit-results){display:none}.battle-damage-scene{display:grid;grid-template-columns:minmax(0,64px) minmax(0,1fr) minmax(0,64px);gap:4px;align-items:center;margin:20px 0}.battle-damage-scene>img{width:100%;height:100px;object-fit:contain;image-rendering:pixelated;min-width:0}.battle-damage-scene>.damage-range{margin:0;min-width:0}.battle-damage-scene .damage-range strong{font-size:clamp(30px,3.4vw,52px)}@media(max-width:760px){.battle-damage-scene .damage-range strong{font-size:32px}}/* Match the database card dimensions and internal presentation exactly. */.formation-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.party-slot-shell{width:132px;min-width:132px;flex:0 0 132px}#hero-roster{grid-template-columns:repeat(auto-fit,132px) !important;justify-content:start}#hero-roster .roster-card.battle-character-card,.formation-slot.battle-character-card,.formation-slot.is-empty{width:132px!important;height:170px!important;min-height:170px!important;max-width:132px}.battle-character-card>img.battle-card-portrait{height:124px!important;width:100%;transform:none}.battle-character-card>img.battle-card-rarity{top:3px!important;left:4px;width:44px!important;height:28px!important;z-index:3}.battle-character-card>img.battle-card-rarity[src$="rarity-sr.webp"],.battle-character-card>img.battle-card-rarity[src$="rarity-r.webp"]{top:-5px!important;height:32px!important;clip-path:inset(36% 0 0)}.roster-icon-grid [data-roster-filter=rarity] img[src$="rarity-sr.webp"],.roster-icon-grid [data-roster-filter=rarity] img[src$="rarity-r.webp"]{clip-path:inset(36% 0 0)}.battle-character-card>.battle-card-attributes{right:3px!important;top:30px!important;align-items:center;gap:2px}.battle-character-card .battle-card-attributes .attribute-icon{width:28px;height:28px}.battle-character-card .battle-card-attributes .attribute-icon>img{width:25px!important;height:25px!important}.battle-character-card>.battle-card-footer{padding:5px 3px 4px;min-height:46px}#hero-roster .battle-card-footer strong,.formation-slot .battle-card-footer strong{font-size:14px!important;line-height:1.3;text-align:center;align-self:center!important;max-width:100%;margin:0}.battle-card-role-level{font-size:13px}.battle-character-card .battle-card-role-level img{width:18px;height:18px;position:static;grid-row:auto}.formation-slot.battle-character-card.is-attacker::after{content:none}.battle-character-card>.roster-drag-grip{top:100px!important}.roster-filter-panel{grid-template-columns:minmax(0,1fr) 104px;align-items:start;gap:8px;margin:10px 0}.roster-filter-fields{display:grid;grid-template-rows:38px 92px;gap:0;min-width:0}.roster-filter-fields #roster-search{height:38px;min-height:0;margin:0;width:100%;box-sizing:border-box;padding:7px 8px}.roster-rarity-field{height:92px;box-sizing:border-box;margin:0;padding:4px 5px 5px}.roster-rarity-field legend{font-size:12px;padding:0 3px}.roster-rarity-field .roster-icon-grid{grid-template-rows:repeat(2,32px);gap:4px}.roster-rarity-field .roster-icon-grid button{height:32px;min-height:0;padding:2px}.roster-rarity-field .roster-icon-grid img{width:50px;height:26px}.roster-filter-panel>.roster-attribute-panel{height:130px;box-sizing:border-box;grid-template-rows:28px repeat(3,31px);align-self:start;row-gap:3px}.roster-role-field{grid-column:1/-1;margin:0;padding:5px}.roster-role-field .roster-icon-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.roster-role-field .roster-icon-grid button{height:48px;min-height:0;padding:3px}.roster-role-field .roster-icon-grid img{width:22px;height:22px}.roster-affiliation-row{grid-column:1/-1;display:flex;align-items:end;gap:8px}.roster-affiliation-row .roster-tag-select{flex:1;min-width:0;margin:0}.roster-affiliation-row .roster-tags-clear{width:auto;min-height:38px;margin:0;padding:8px 10px;background:#143648;color:#eef6fb;border:1px solid #36566e;border-radius:8px;font-size:12px;cursor:pointer}.roster-affiliation-row .roster-tags-clear:hover{border-color:#65dde0;background:#194852}@media(max-width:760px){.roster-filter-panel{grid-template-columns:minmax(0,1fr) 104px}.roster-attribute-panel{width:104px}}.party-slot-shell{position:relative;padding-top:20px}.party-slot-shell.is-attack-slot::before{content:"攻撃キャラ";position:absolute;top:0;left:0;right:0;text-align:center;color:#65dde0;font-size:12px;font-weight:700;line-height:18px}.formation-panel .party-layout>div:first-child>.formation-row-label:first-child{position:relative;top:8px}.formation-panel .formation-row+.formation-row-label+.formation-row .party-slot-shell{padding-top:12px}.formation-panel .formation-row+.formation-row-label+.formation-row .party-slot-shell.is-attack-slot::before{top:-8px}.formation-panel .party-layout>div:first-child>.formation-row-label:first-child{top:17.5px}.formation-panel .formation-row+.formation-row-label+.formation-row .party-slot-shell{padding-top:2.5px}.formation-panel .formation-row+.formation-row-label+.formation-row .party-slot-shell.is-attack-slot::before{top:-17.5px}.roster-affiliation-row{gap:24px}.battle-character-card>img.battle-card-rarity[src$="rarity-ssr.webp"]{width:54px!important;height:34px!important}#hero-roster .battle-character-card img,.formation-slot.battle-character-card img{background:transparent;border-radius:0}.battle-character-card>img.battle-card-rarity{object-position:center}.battle-character-card>img.battle-card-rarity[src$="rarity-r.webp"],.battle-character-card>img.battle-card-rarity[src$="rarity-sr.webp"]{left:-4px}.battle-character-card>img.battle-card-rarity[src$="rarity-ssr.webp"]{left:0;top:0!important}/* Keep the seven cards together, centered, with twice the normal card gap. */.formation-panel .party-layout{grid-template-columns:412px 132px;justify-content:center;gap:16px;align-items:center}.formation-panel .party-layout>.support-area{width:132px;min-width:0}.formation-panel .support-area .leader-field{width:132px;max-width:132px}.party-summary h3{font-size:19px;color:var(--gold);margin:14px 0 12px}.party-skills-fold{margin-top:16px;border:1px solid #315466;border-radius:10px;background:#071522}.party-skills-fold>summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:14px;color:#d5e8f3;font-weight:700;list-style:none}.party-skills-fold>summary::-webkit-details-marker{display:none}.skills-fold-label{color:#65dde0;white-space:nowrap;font-size:14px}.party-skills-fold #party-buff-list{margin-top:0;border-left:0;background:transparent}.skills-fold-bottom{display:block;margin:0 13px 13px auto}.simple-buffs{padding:14px;margin-top:16px;border:1px solid #315466;border-radius:10px;background:#0a2030}.simple-buffs-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.simple-buffs-heading h3{font-size:18px;margin:0}.simple-buffs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.simple-buffs-grid .field{min-width:0;margin:0}.simple-buffs-grid label{font-size:14px}.simple-percent-row{display:flex;gap:8px;align-items:center}.simple-percent-row select{width:90px;flex:none}.simple-percent-row input{min-width:0;width:100%}.simple-buffs-grid.is-inactive{opacity:.65}.simple-switch-label{display:flex;align-items:center;gap:10px;cursor:pointer;position:relative;font-size:14px}.simple-switch-label input{position:absolute;right:0;width:52px;height:30px;opacity:0;margin:0;cursor:pointer}.simple-switch-track{display:block;width:52px;height:30px;border-radius:20px;background:#536a7a;position:relative;pointer-events:none}.simple-switch-track::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:white;box-shadow:0 1px 3px #0005;transition:transform .15s}.simple-switch-label input:checked+.simple-switch-track{background:#45cd61}.simple-switch-label input:checked+.simple-switch-track::after{transform:translateX(22px)}.simple-switch-label input:focus-visible+.simple-switch-track{outline:2px solid #65dde0;outline-offset:3px}.simple-switch-controls{display:flex;align-items:center;gap:10px}.simple-info-button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;min-height:0;padding:0;border:1px solid #8caabb;border-radius:50%;background:transparent;color:#d5e8f3;font-size:16px;font-family:Georgia,serif;font-weight:700;cursor:pointer}.simple-info-button:hover,.simple-info-button[aria-expanded="true"]{border-color:#65dde0;color:#65dde0}.simple-buffs-popover{position:fixed;inset:auto;left:12px;top:12px;margin:0;width:min(360px,calc(100vw - 24px));box-sizing:border-box;max-height:calc(100dvh - 24px);overflow:auto;padding:16px;border:1px solid #52788d;border-radius:12px;background:#0b2435;color:#eaf5fc;font-size:14px;line-height:1.8;box-shadow:0 8px 28px #0007}.simple-percent-limit{font-size:12px;color:#a7bdcd;font-weight:400;margin-left:6px;display:inline-block}.growth-heading{flex-wrap:wrap}.growth-heading h2{flex:1;min-width:200px}.growth-heading #battle-growth-max{border-color:#65dde0;color:#65dde0}@media(max-width:1000px){.formation-panel .party-layout{grid-template-columns:minmax(0,412px);gap:16px}.formation-panel .formation-row{justify-content:center}.formation-panel .support-area{justify-self:center}}@media(max-width:520px){.simple-buffs-grid{grid-template-columns:1fr}.party-skills-fold>summary{font-size:14px;padding:12px}.party-summary h3{font-size:18px}}/* Shared unboxed fold controls and supplied information icon. */.fold-text-control,.skills-fold-bottom.fold-text-control{border:0;border-radius:0;background:transparent;box-shadow:none;color:#65dde0;font-size:13px;font-weight:600;min-height:0;padding:8px 0;cursor:pointer}.fold-text-control:hover{background:transparent;color:#9cf5f5;text-decoration:underline}.fold-text-control:focus-visible{outline:2px solid #65dde0;outline-offset:3px}.roster-fold-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.roster-fold-heading h2{flex:1}.roster-fold-heading .fold-text-control{white-space:nowrap}.roster-fold-content{display:flex;flex-direction:column;min-height:0}.roster-fold-content[hidden]{display:none}#roster-fold-bottom{align-self:flex-end;margin-top:6px}.simple-info-button{border:0;background:transparent;padding:0;width:26px;height:26px}.simple-info-button img{display:block;width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(.8)}.simple-info-button:hover img,.simple-info-button[aria-expanded="true"] img{filter:brightness(0) saturate(100%) invert(87%) sepia(25%) saturate(1200%) hue-rotate(125deg)}.battle-healing-amount,.incoming-damage .damage-range strong{font-family:Georgia,serif;font-weight:700}.incoming-damage .damage-range strong{color:#ff777f}.enemy-hp-label{text-align:right;margin:8px 0;font-size:14px;color:#d5e8f3}.incoming-damage{padding-top:20px;margin-top:16px;border-top:1px solid #34536b}.simple-buff-tabs{display:flex;gap:8px;margin:12px 0}.simple-buff-tabs button{padding:8px 16px;border:1px solid #34536b;border-radius:6px;background:#10283d;color:#b8cad7;cursor:pointer}.simple-buff-tabs button.active{color:#65dde0;border-color:#65dde0;background:#143f49}.enemy-combat-controls{margin-top:16px;display:grid;gap:8px}#enemy-effects-fold{margin-top:10px;border:1px solid #34536b;border-radius:8px;padding:12px}#enemy-effects-fold summary{cursor:pointer;display:flex;justify-content:space-between;gap:8px;font-weight:700}#enemy-effects-fold summary span{color:#65dde0;font-size:13px;white-space:nowrap}.party-skills-fold,#enemy-effects-fold{border-color:#3a929b}.party-skills-fold>summary,#enemy-effects-fold>summary{background:linear-gradient(110deg,#17534f,#194961);color:#efffff;border-radius:8px;transition:background .15s,box-shadow .15s}#enemy-effects-fold>summary{margin:-12px;padding:12px}.party-skills-fold[open]>summary,#enemy-effects-fold[open]>summary{border-radius:8px 8px 0 0;border-bottom:1px solid #3a929b}#enemy-effects-fold[open]>summary{margin-bottom:12px}.party-skills-fold>summary:hover,#enemy-effects-fold>summary:hover{background:linear-gradient(110deg,#20645e,#235974)}.party-skills-fold>summary:focus-visible,#enemy-effects-fold>summary:focus-visible{outline:2px solid #66e4db;outline-offset:-3px}.party-skills-fold .skills-fold-label,#enemy-effects-fold>summary span{color:#90fff0}.skill-fold-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;min-width:0}.skill-fold-notice{font-size:11px;font-weight:400;line-height:1.6;color:#c1e2e6}.attacker-detail-image{padding:0;border:0;background:transparent;flex:none;border-radius:8px;cursor:pointer}.attacker-detail-image:hover{box-shadow:0 0 0 2px #65ddd3}.attacker-detail-image:focus-visible{outline:2px solid #65ddd3;outline-offset:3px}.battle-values-toolbar{display:flex;justify-content:flex-end;margin-top:4px;margin-bottom:-4px}#battle-values-reset{font-size:12px;padding:8px 12px}.party-skills-fold .skills-fold-label{white-space:nowrap;flex-shrink:0}.enemy-effect-option{display:flex;align-items:flex-start;gap:10px;margin:14px 0;font-size:14px;line-height:1.7}.enemy-effect-option input{width:18px;height:18px;flex:none;margin-top:4px;accent-color:#42d4c4}.enemy-effect-name,.enemy-effect-description,.enemy-effect-calculation-note{display:block}.enemy-effect-name{color:#e5f3fb}.enemy-effect-description{white-space:pre-line;font-size:13px;line-height:1.65;margin-top:3px}.enemy-effect-calculation-note{color:#8ba8b9;font-size:12px;margin-top:4px}.enemy-effect-option>div{min-width:0;flex:1}.enemy-effect-attached{margin-left:28px;border-left:2px solid #345369;padding-left:14px}.enemy-effect-count{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:13px}.enemy-effect-count select{width:100px;padding:6px 10px}.damage-range strong.barrier-blocked{font-family:inherit;font-size:clamp(16px,1.7vw,23px);line-height:1.5}.simple-info-button img,.simple-info-button:hover img,.simple-info-button[aria-expanded="true"] img{filter:none}.simple-info-button:hover{opacity:.8}.breakdown>div[hidden]{display:none}.damage-summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:16px 0 10px}.damage-summary-row .average,.damage-summary-row .enemy-hp-label{margin:0;font-size:16px;line-height:1.5;font-weight:700;color:var(--text)}.damage-summary-row+.meter{margin-top:0}.recipient-state-control{display:flex;flex-wrap:wrap;gap:10px 14px;border:1px solid #34536b;border-radius:8px;padding:10px 12px;margin:16px 0;min-width:0}.recipient-state-control legend{font-size:14px;color:#b8cad7;padding:0 5px;font-weight:700}.recipient-state-control label{display:flex;align-items:center;gap:5px;font-size:13px;cursor:pointer}.recipient-state-control input{width:16px;height:16px;margin:0;accent-color:#42d4c4;flex:none}.recipient-state-control small{display:block;flex-basis:100%;font-size:12px;line-height:1.7;color:#91a8b9}/* Equal compact enemy slots, including vacant positions. */.formation-row.enemy-row{display:grid;grid-template-columns:repeat(3,minmax(0,156px));gap:8px;justify-content:start}.enemy-row .enemy-slot{width:100%;min-width:0;height:76px;min-height:76px;grid-template-columns:38px minmax(0,1fr);gap:2px 5px;padding:6px}.enemy-row .enemy-mark,.enemy-row .enemy-mark img{width:38px;height:52px}.enemy-card-heading{display:flex;align-items:baseline;gap:4px;min-width:0}.enemy-card-heading strong{flex:1;min-width:0}.enemy-card-level{font-size:10px;color:var(--muted);white-space:nowrap;flex:none}.enemy-row .enemy-slot small{gap:1px;flex-wrap:nowrap;min-width:0;font-size:10px}.enemy-row .enemy-slot small .attribute-icon img{width:18px;height:18px}.enemy-row .enemy-empty{grid-column:1/-1;grid-row:1/-1;text-align:center}@media(max-width:600px){.enemy-row .enemy-slot{grid-template-columns:26px minmax(0,1fr);gap:2px 3px;padding:4px;height:76px}.enemy-row .enemy-mark,.enemy-row .enemy-mark img{width:26px;height:46px}.enemy-row .enemy-card-heading{gap:2px}.enemy-row .enemy-card-heading strong{font-size:10px}.enemy-row .enemy-card-level,.enemy-row .enemy-slot small{font-size:9px}.enemy-row .enemy-slot small .attribute-icon img{width:15px;height:15px}}@media(max-width:600px){.enemy-row .enemy-slot small .attribute-icon{width:20px;height:23px;margin:0}.enemy-row .enemy-slot small .attribute-icon>img{width:18px!important;height:18px!important}}.technique-native{display:none!important}.friendly-damage{margin:14px 0;padding:12px;border:1px solid #446575;border-radius:9px;background:#081c29}.chain-cell-shell{direction:ltr;min-width:0;display:flex;flex-direction:column}.chain-cell-shell>.chain-cell{flex:1}.chain-cell-shell>.chain-entry-damage{font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.25;min-height:44px;text-align:center;color:#f5c56c;margin:5px 0 7px;white-space:normal;overflow-wrap:anywhere}.chain-next-message{color:#f5d56c;font-size:15px;font-weight:700;margin:12px 0}.chain-enemy-field{display:flex;flex-direction:column;gap:6px;min-width:180px;max-width:320px;font-size:13px}.chain-enemy-field select{width:100%}.chain-enemy-sprite{width:64px;height:72px;object-fit:contain;image-rendering:pixelated}.chain-tools{align-items:center}.friendly-damage-amount{display:block;text-align:center;font-family:Georgia,'Times New Roman',serif;font-size:48px;line-height:1.25;color:#fa7379;margin:10px 0}.friendly-damage-amount.is-blocked{font-family:inherit;font-size:22px}.friendly-protection-controls{border-top:1px solid #315568;padding-top:8px;margin-top:10px}.friendly-protection-controls>p{font-size:13px;font-weight:700}.friendly-protection-controls label{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:10px;align-items:center;font-size:12px;margin:8px 0}.friendly-protection-controls select{width:100%;padding:7px}.technique-picker{width:100%;min-width:0;border:1px solid #315568;border-radius:9px;background:#061723;color:#deedf5}.technique-options{max-height:255px;overflow:auto;padding:4px}.technique-options>button{display:block;width:100%;text-align:left;border:1px solid transparent;border-radius:5px;background:transparent;padding:10px 8px;color:inherit;cursor:pointer;line-height:1.7}.technique-options>button:hover,.technique-options>button:focus-visible{background:#173b4c;border-color:#438da0;outline:none}.technique-options>button[aria-selected=true]{background:#174650;border-color:#46c8c9}.technique-content{display:inline;overflow-wrap:anywhere;font-size:14px}.technique-name{font-weight:700}.technique-kind{color:#f5d56c;margin-left:3px}.technique-effect{display:inline-flex;align-items:center;vertical-align:middle;gap:2px;margin:0 3px;white-space:nowrap;font-weight:600}.technique-effect img{width:25px;height:25px;object-fit:contain}.technique-dropdown>summary{padding:10px 13px;cursor:pointer;list-style:none;position:relative;padding-right:32px}.technique-dropdown>summary:after{content:'⌄';position:absolute;right:12px;top:10px}.technique-dropdown[open]>summary:after{content:'⌃'}.technique-dropdown[open]>summary{border-bottom:1px solid #315568}.technique-dropdown .technique-options{max-height:330px}@media(max-width:600px){.technique-content{font-size:12px}.technique-effect img{width:22px;height:22px}.technique-options>button{padding:8px 5px}}@media(max-width:560px){#battle-tools-buttons>.battle-tool-button{flex:1 1 0;padding:8px 4px;font-size:11px}#battle-tools-buttons>.settings-file-actions{flex:3 1 0}#battle-tools-buttons>.settings-file-actions button{flex:1 1 0;padding:8px 4px;font-size:11px}}.battle-main-column>.battle-tools{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}.battle-tools>.field:nth-child(1){grid-column:1;grid-row:1}.battle-tools>.field:nth-child(2){grid-column:2;grid-row:1}.battle-tools>#battle-tools-buttons{grid-column:1/3;grid-row:2;justify-content:flex-start}.battle-tools>#battle-save-status{grid-column:1/3;grid-row:3}.battle-tools>.battle-settings-file-actions{grid-column:3/5;grid-row:1/4;align-self:end;justify-self:end;flex-wrap:nowrap;align-items:stretch;justify-content:flex-end;gap:6px;margin:0;max-width:100%;min-width:0}.battle-settings-file-actions>button{flex:0 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere;padding:8px}@media(max-width:560px){.battle-tools>.field:nth-child(1){grid-column:1/3}.battle-tools>.field:nth-child(2){grid-column:3/5}.battle-tools>#battle-tools-buttons,.battle-tools>#battle-save-status{grid-column:1/5}.battle-tools>.battle-settings-file-actions{grid-column:1/5;grid-row:4}.battle-tools>#battle-tools-buttons>.battle-tool-button{flex:0 1 auto;padding:8px;font-size:12px}.battle-settings-file-actions>button{font-size:11px;padding:8px 6px}}.battle-result .damage-range{container-type:inline-size;min-width:0}.battle-result .damage-range strong{white-space:nowrap;word-break:normal;overflow-wrap:normal;font-size:clamp(18px,22cqw,52px)}/* Heading-leading expand controls, using the native accessible summary action. */:is(#party-skills-fold,#enemy-effects-fold)>summary{justify-content:flex-start;align-items:center;gap:8px}:is(#party-skills-fold,#enemy-effects-fold)>summary>span{display:none}:is(#party-skills-fold,#enemy-effects-fold)>summary::before{content:'＋';display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border:1px solid #65dde0;border-radius:50%;color:#90fff0;font:14px/1 sans-serif}:is(#party-skills-fold,#enemy-effects-fold)[open]>summary::before{content:'−'}/* Keep the character settings header and actions on the dialog surface. */#battle-growth-dialog .growth-heading,#battle-growth-dialog .growth-actions{background:transparent}#battle-growth-dialog{position:fixed;inset:0;margin:auto}
