
:root{
  --bg:#0d1118;
  --panel:#151c27;
  --panel2:#1b2533;
  --line:#334357;
  --text:#eef4fb;
  --muted:#9fb0c4;
  --gold:#e8c66a;
  --blue:#73b7ff;
  --green:#8edb9d;
  --red:#ff8f8f;
  --radius:14px;
  --shadow:0 14px 40px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at 15% 0%,rgba(54,111,181,.18),transparent 32%),
    linear-gradient(135deg,#090c12,#111823 58%,#090c12);
  font-family:"Yu Gothic UI","Meiryo","Segoe UI",sans-serif;
  min-height:100vh;
}
button,input,select{font:inherit}
button{cursor:pointer}
.app-shell{max-width:1240px;margin:0 auto;padding:22px}
.app-header{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:22px 24px;border:1px solid var(--line);border-radius:18px;
  background:linear-gradient(180deg,rgba(27,37,51,.96),rgba(15,21,30,.96));
  box-shadow:var(--shadow);
}
.eyebrow{font-size:11px;letter-spacing:.16em;color:var(--gold);font-weight:900}
h1{margin:4px 0 2px;font-size:30px}
.app-header p{margin:0;color:var(--muted)}
.phase-badge{padding:8px 13px;border:1px solid var(--gold);color:var(--gold);border-radius:999px;font-weight:900;font-size:12px}
.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}
.tab{
  border:1px solid var(--line);background:#111824;color:var(--muted);
  padding:10px 14px;border-radius:10px;font-weight:900
}
.tab.active{background:linear-gradient(#3a4f68,#27374b);border-color:#6d8fb4;color:#fff}
.page{display:none}
.page.active{display:block}
.section-heading{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  margin:19px 3px 10px
}
.section-heading>div{display:flex;align-items:center;gap:10px}
.section-heading h2{margin:0;font-size:21px}
.step{
  display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;
  background:#243347;color:var(--gold);font-weight:900;border:1px solid #425772
}
.hint,.note{color:var(--muted);font-size:12px;line-height:1.7}
.panel{
  background:linear-gradient(180deg,rgba(23,32,44,.97),rgba(15,21,30,.97));
  border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px;
  box-shadow:0 8px 22px rgba(0,0,0,.18)
}
.panel h3{margin:0 0 12px;color:#fff4cf;font-size:16px}
.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.panel-title-row h3{margin:0}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.full{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);font-weight:800}
input,select{
  width:100%;border:1px solid #41536a;background:#0c121a;color:#fff;
  border-radius:9px;padding:9px 10px;outline:none
}
input:focus,select:focus{border-color:#6fa9e6;box-shadow:0 0 0 2px rgba(111,169,230,.13)}
.check-field{flex-direction:row;align-items:center;gap:8px;align-self:end;min-height:38px}
.check-field input{width:auto}
.stat-input-grid,.support-grid,.augment-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.stat-input-grid label,.augment-grid label{min-width:0}
.equipment-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:12px}
.equipment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.equipment-slot{
  min-height:82px;border:1px solid #3b4d62;background:#0f1620;border-radius:10px;padding:9px;
  text-align:left;color:var(--text)
}
.equipment-slot.active{border-color:var(--gold);box-shadow:0 0 0 2px rgba(232,198,106,.10)}
.slot-label{display:block;font-size:10px;color:var(--gold);font-weight:900;margin-bottom:5px}
.slot-name{font-size:13px;font-weight:900;line-height:1.35}
.slot-meta{font-size:10px;color:var(--muted);margin-top:5px}
.gear-picker{display:grid;gap:7px;max-height:390px;overflow:auto;margin-top:10px}
.gear-item{
  display:grid;grid-template-columns:1fr auto;gap:8px;text-align:left;border:1px solid #34475d;
  background:#0d141d;color:var(--text);border-radius:9px;padding:9px
}
.gear-item strong{display:block}
.gear-item small{color:var(--muted);line-height:1.4}
.gear-item .equip-action{color:var(--blue);font-size:11px;font-weight:900;align-self:center}
.selected-info{border:1px solid #34475d;border-radius:9px;padding:10px;background:#0c121a;font-size:12px;line-height:1.6}
.selected-info.empty{color:var(--muted)}
.summary-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.summary-card{padding:9px;border:1px solid #34475d;border-radius:9px;background:#0d141d}
.summary-card span{font-size:10px;color:var(--muted)}
.summary-card b{display:block;font-size:18px;margin-top:3px}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.primary,.secondary,.danger,.file-button{
  border:1px solid #4a607a;border-radius:9px;padding:9px 13px;color:#fff;font-weight:900;
  background:linear-gradient(#31455d,#223246)
}
.primary{background:linear-gradient(#3976b5,#285887);border-color:#5d99d7}
.danger{background:linear-gradient(#774040,#522a2a);border-color:#9b5c5c}
.secondary{font-size:11px;padding:7px 10px}
.large{width:100%;padding:13px;font-size:15px;margin:3px 0 12px}
.button-row{display:flex;gap:8px;flex-wrap:wrap}
.file-button{display:inline-flex;cursor:pointer}
.file-button input{display:none}
.result-hero{
  display:flex;justify-content:space-between;align-items:flex-end;gap:20px;
  border-color:#826f3f;background:
  radial-gradient(circle at 10% 0%,rgba(232,198,106,.14),transparent 36%),
  linear-gradient(180deg,#1d2530,#111821)
}
.result-hero span{display:block;color:var(--muted);font-size:11px}
.result-hero strong{display:block;font-size:46px;color:#fff4cf;line-height:1.1;margin-top:4px}
.result-range{display:flex;gap:20px}
.result-range b{display:block;font-size:20px;margin-top:4px}
.breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.breakdown-row{border:1px solid #34475d;background:#0c121a;border-radius:9px;padding:9px}
.breakdown-row span{font-size:10px;color:var(--muted)}
.breakdown-row b{display:block;margin-top:3px}
.warning{padding:10px 12px;border:1px solid rgba(232,198,106,.45);border-radius:9px;background:rgba(232,198,106,.06);color:#d8cba8;font-size:12px;line-height:1.6}
pre{margin:0;max-height:500px;overflow:auto;background:#090d13;border:1px solid #2f4053;border-radius:10px;padding:12px;color:#b7d5f5;font-size:11px;line-height:1.55}
@media(max-width:920px){
  .form-grid,.stat-input-grid,.support-grid,.augment-grid,.summary-grid{grid-template-columns:repeat(3,1fr)}
  .equipment-layout,.two-column{grid-template-columns:1fr}
}
@media(max-width:600px){
  .app-shell{padding:9px}.app-header{padding:15px}.phase-badge{display:none}
  h1{font-size:23px}.hint{display:none}
  .form-grid,.form-grid.compact,.stat-input-grid,.support-grid,.augment-grid,.summary-grid{grid-template-columns:repeat(2,1fr)}
  .equipment-grid{grid-template-columns:repeat(2,1fr)}
  .result-hero{align-items:flex-start;flex-direction:column}.result-hero strong{font-size:38px}
  .result-range{width:100%;justify-content:space-between;gap:8px}
  .breakdown{grid-template-columns:1fr 1fr}
}


/* Phase 2 / V10.71 optimizer inside Phase 1 UI */
.optimizer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.result{border:1px solid #40505f;border-radius:10px;padding:10px;background:#121820}
.result.mean{border-color:#9b7837}.result.median{border-color:#4e8760}
.result .gear{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px;margin-top:5px}
.result .gear-line{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:5px;padding:3px 5px;border-radius:5px}
.result .gear-line.changed{background:rgba(255,174,45,.18);border:1px solid rgba(255,190,70,.55);color:#ffe08a;font-weight:900}
.slot-gain{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:999px;border:1px solid rgba(255,220,120,.45);font-size:9px}
@media(max-width:900px){.optimizer-grid{grid-template-columns:1fr}}

/* Phase 2 single-WS optimizer — old simulator inspired */
.optimizer-control-panel{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.optimizer-control-main{display:flex;align-items:end;gap:16px;flex-wrap:wrap}
.optimizer-caption{display:block;color:var(--muted);font-size:10px;font-weight:900}
.optimizer-ws-name{display:block;color:#fff4cf;font-size:25px;line-height:1.15;margin-top:2px}
.optimizer-run{min-width:210px;padding:12px 18px}
.optimizer-status{grid-column:1/-1;padding-top:3px}
.single-ws-compare{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:stretch;gap:0;margin-bottom:12px}
.compare-card{border:1px solid #40536a;border-radius:14px;background:linear-gradient(180deg,#172231,#101720);padding:16px;box-shadow:0 10px 25px rgba(0,0,0,.18)}
.optimized-card{border-color:#826f3f;background:radial-gradient(circle at 100% 0%,rgba(232,198,106,.10),transparent 34%),linear-gradient(180deg,#1b2430,#111820)}
.compare-arrow{display:grid;place-items:center;color:var(--gold);font-size:28px;font-weight:900}
.compare-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #34475d;padding-bottom:10px;margin-bottom:12px}
.compare-title h3{margin:2px 0 0;font-size:19px;color:#fff}
.compare-kicker{font-size:9px;letter-spacing:.15em;color:var(--muted);font-weight:900}
.compare-badge{border:1px solid #5b7695;border-radius:999px;padding:4px 9px;color:#bcd8f5;font-size:10px;font-weight:900}
.compare-badge.optimized{border-color:#9c823e;color:#ffe49a}
.damage-summary{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;margin-bottom:14px}
.damage-main,.damage-sub>div{border:1px solid #34475d;border-radius:10px;background:#0c131c;padding:10px}
.damage-main span,.damage-sub span{display:block;color:var(--muted);font-size:10px}
.damage-main strong{display:block;font-size:31px;color:#d9ebff;margin-top:3px}
.damage-summary.optimized .damage-main strong{color:#fff0a9}
.damage-sub{display:grid;grid-template-columns:1fr;gap:8px}
.damage-sub b{display:block;font-size:16px;margin-top:2px}
.compare-section-title{color:#fff4cf;font-size:12px;font-weight:900;margin:8px 0}
.oldsim-gear-list{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}
.oldsim-gear-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:7px;align-items:center;border-bottom:1px solid rgba(75,94,116,.45);padding:5px 2px;min-height:34px}
.oldsim-gear-row.changed{background:rgba(232,198,106,.09);border:1px solid rgba(232,198,106,.38);border-radius:7px;padding:4px 6px}
.oldsim-slot{color:var(--gold);font-size:10px;font-weight:900}
.oldsim-item{font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apply-optimized{width:100%;margin-top:14px}
.apply-optimized:disabled{opacity:.4;cursor:not-allowed}
.change-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.change-row{display:grid;grid-template-columns:45px 1fr 24px 1fr;gap:7px;align-items:center;border:1px solid #34475d;background:#0c131c;border-radius:9px;padding:8px}
.change-row .slot{color:var(--gold);font-size:10px;font-weight:900}
.change-row .from{color:var(--muted)} .change-row .to{color:#fff0a9;font-weight:900}.change-row .arrow{color:var(--gold);text-align:center}
@media(max-width:800px){
 .optimizer-control-panel{grid-template-columns:1fr}.optimizer-run{width:100%}
 .single-ws-compare{grid-template-columns:1fr}.compare-arrow{height:34px;transform:rotate(90deg)}
 .oldsim-gear-list,.change-list{grid-template-columns:1fr}
}


/* WS・敵カード：左右の高さを揃えず、内容量に合わせる */
#page-battle > .two-column{
  align-items:start;
}
#page-battle > .two-column > .panel{
  align-self:start;
}

/* WSカードは入力内容に合わせてコンパクト化 */
#page-battle > .two-column > .panel:first-child{
  height:auto;
  min-height:0;
}
#page-battle > .two-column > .panel:first-child.form-grid.compact{
  align-content:start;
}

/* 正正堂堂もWS/TPのすぐ下へ */
#page-battle > .two-column > .panel:first-child .check-field{
  align-self:start;
  margin-top:2px;
}


/* WSカード内へ支援・弱体を統合 */
#page-battle > .two-column{
  align-items:start;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
}
#page-battle > .two-column > .panel:first-child{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
}
.ws-support-divider{
  height:1px;
  background:#334357;
  margin:4px 0 1px;
}
.ws-support-section{
  display:block;
}
.ws-support-section > h3{
  margin:1px 0 10px;
}
.ws-support-section .support-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.ws-support-section .note{
  margin-bottom:0;
}
@media(max-width:920px){
  #page-battle > .two-column{grid-template-columns:1fr}
}
@media(max-width:600px){
  #page-battle > .two-column > .panel:first-child,
  .ws-support-section .support-grid{
    grid-template-columns:1fr 1fr;
  }
}


/* ===== コンパクト入力UI：キャラクター / WS・敵・支援 ===== */

/* 共通：この2ページだけ入力欄を細く・低くする */
#page-character input,
#page-character select,
#page-battle input,
#page-battle select{
  padding:6px 8px;
  min-height:31px;
  border-radius:7px;
}

/* キャラクター：4列 → 6列。各欄を約2/3幅へ */
#page-character > .form-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:8px 10px;
}
#page-character > .form-grid label{
  font-size:11px;
}
#page-character .stat-input-grid{
  grid-template-columns:repeat(8,minmax(82px,1fr));
  gap:7px;
}
#page-character .stat-input-grid input{
  padding:5px 7px;
}

/* WS・敵・支援：カード内の入力をさらに細分化 */
#page-battle > .two-column{
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:10px;
}

/* 左側：WS / TP は横並びを維持しつつ小さく */
#page-battle > .two-column > .panel:first-child{
  gap:8px 10px;
  padding:13px;
}
#page-battle > .two-column > .panel:first-child > label{
  font-size:11px;
}

/* 支援は3列。従来の約1/2～2/3幅 */
.ws-support-section .support-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px 9px;
}
.ws-support-section .support-grid label{
  font-size:10px;
}

/* 敵設定は3列化。短い数値に対して横長すぎないように */
#page-battle > .two-column > .panel:nth-child(2){
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px 10px;
  padding:13px;
}
#page-battle > .two-column > .panel:nth-child(2) label{
  font-size:10px;
}

/* 敵名だけ少し広く */
#page-battle #enemyName{
  min-width:0;
}

/* セクション全体も少し詰める */
#page-character .panel,
#page-battle .panel{
  padding-top:13px;
  padding-bottom:13px;
}
#page-character .section-heading,
#page-battle .section-heading{
  margin-top:14px;
  margin-bottom:8px;
}

/* 画面幅が狭くなった時だけ段階的に戻す */
@media(max-width:1050px){
  #page-character > .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  #page-character .stat-input-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ws-support-section .support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #page-battle > .two-column > .panel:nth-child(2){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  #page-character > .form-grid,
  #page-character .stat-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #page-battle > .two-column{grid-template-columns:1fr}
}

.engine-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.health-ok{color:#a9e9b5!important}.health-ng{color:#ff9b9b!important}
.health-badge-ng{border-color:#a85a5a!important;color:#ffaaaa!important}
@media(max-width:800px){.engine-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Phase 4: shared gear DB + personal augments */
.gear-db-layout{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(0,1.1fr);gap:12px}
.gear-db-tools{display:grid;grid-template-columns:1fr 130px auto;gap:7px;margin-bottom:10px}
.gear-db-list{display:grid;gap:5px;max-height:620px;overflow:auto}
.gear-db-row{display:grid;grid-template-columns:45px minmax(0,1fr) 38px;gap:8px;align-items:center;text-align:left;border:1px solid #34475d;background:#0d141d;color:var(--text);border-radius:8px;padding:8px}
.gear-db-row.active{border-color:var(--gold);background:#18202a}
.gear-db-row strong{display:block;font-size:12px}.gear-db-row small{display:block;color:var(--muted);font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gear-db-slot{color:var(--gold);font-size:10px;font-weight:900}.gear-db-kind{font-size:9px;color:var(--muted);text-align:right}
.gear-edit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.gear-edit-grid label{font-size:10px}.gear-edit-grid input,.gear-edit-grid select{padding:6px 7px;min-height:31px}
.gear-db-actions{margin-top:12px}
.personal-augment-box{margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}
.personal-augment-box .augment-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:950px){.gear-db-layout{grid-template-columns:1fr}.gear-edit-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.gear-db-tools{grid-template-columns:1fr 1fr}.gear-db-tools .primary{grid-column:1/-1}.gear-edit-grid{grid-template-columns:repeat(2,1fr)}.personal-augment-box .augment-grid{grid-template-columns:repeat(2,1fr)}}

/* Phase 5: Owned gear */
.owned-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.owned-summary>div{border:1px solid #34475d;background:#0d141d;border-radius:9px;padding:10px}
.owned-summary span{display:block;color:var(--muted);font-size:10px}.owned-summary strong{font-size:22px}
.owned-layout{display:grid;grid-template-columns:minmax(390px,.95fr) minmax(0,1.05fr);gap:12px}
.owned-tools{display:grid;grid-template-columns:1fr 120px 120px;gap:7px;margin-bottom:9px}
.owned-gear-list{display:grid;gap:5px;max-height:610px;overflow:auto}
.owned-row{display:grid;grid-template-columns:82px 42px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #34475d;background:#0d141d;border-radius:8px;padding:7px;cursor:pointer}
.owned-row.active{border-color:var(--gold);background:#18202a}
.owned-check{display:flex;flex-direction:row;align-items:center;gap:5px;font-size:10px}.owned-check input{width:auto}
.owned-slot{color:var(--gold);font-size:10px;font-weight:900}
.owned-name strong{display:block;font-size:12px}.owned-name small{display:block;color:#9fd7a8;font-size:9px;margin-top:2px}
#ownedAugmentEditor{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.owned-layout{grid-template-columns:1fr}}
@media(max-width:620px){.owned-summary{grid-template-columns:1fr 1fr}.owned-tools{grid-template-columns:1fr 1fr}.owned-tools input{grid-column:1/-1}#ownedAugmentEditor{grid-template-columns:repeat(2,1fr)}}

/* Phase 6: registered owned list flow */
.owned-row{
  grid-template-columns:42px minmax(0,1fr) 128px;
}
.owned-status-area{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:4px;
}
.owned-mini-status{
  display:inline-block;
  font-size:9px;
  font-weight:900;
  color:#9fd7a8;
  border:1px solid rgba(120,190,130,.35);
  border-radius:999px;
  padding:1px 6px;
}
.owned-mini-status.not-owned{
  color:#b9c0c8;
  border-color:#4b5661;
  background:rgba(90,100,110,.10);
}
.owned-toggle-btn{
  border:1px solid #41536a;
  background:#121a24;
  color:#cbd7e2;
  border-radius:7px;
  padding:4px 7px;
  font-size:9px;
  font-weight:900;
}
.owned-toggle-btn:hover{border-color:#718aa8;color:#fff}
#registerOwnedButton:disabled{
  opacity:.72;
  cursor:default;
}
@media(max-width:620px){
  .owned-row{grid-template-columns:38px minmax(0,1fr)}
  .owned-status-area{grid-column:1/-1;flex-direction:row;justify-content:flex-end;align-items:center}
}

/* Phase 7: final owned-registration action */
.owned-register-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border-color:#756337;
  background:
    radial-gradient(circle at 100% 0%,rgba(232,198,106,.10),transparent 34%),
    linear-gradient(180deg,rgba(28,34,43,.98),rgba(16,22,30,.98));
}
.owned-register-panel h3{margin:2px 0 4px;color:#fff4cf}
.owned-register-step{
  display:inline-block;
  color:var(--gold);
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
}
.owned-register-button{
  min-width:260px;
  padding:12px 16px;
}
.owned-register-button:disabled{
  opacity:.65;
  cursor:default;
}
@media(max-width:700px){
  .owned-register-panel{flex-direction:column;align-items:stretch}
  .owned-register-button{width:100%;min-width:0}
}

/* Phase 8 fixes */
.owned-tools{grid-template-columns:minmax(0,1fr) 112px 152px}
#ownedStateFilter{font-size:10px;padding:5px 22px 5px 6px;min-width:0}
.owned-register-panel{margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#756337}
.owned-register-button{min-width:320px;min-height:76px;padding:10px 22px;font-size:18px;line-height:1.28;letter-spacing:.02em}
.owned-register-panel h3{font-size:17px;margin:2px 0 4px}
@media(max-width:700px){
 .owned-register-panel{flex-direction:column;align-items:stretch}
 .owned-register-button{min-width:0;width:100%;font-size:16px}
 .owned-tools{grid-template-columns:1fr 1fr}
 #ownedStateFilter{font-size:9px}
}

/* Phase 9: owned registration button compact again */
.owned-register-button{
  min-width:260px;
  min-height:0;
  padding:9px 13px;
  font-size:13px;
  line-height:1.25;
}

.gear-owned-mark{
  display:inline-block;
  margin-left:5px;
  padding:1px 5px;
  border:1px solid rgba(125,200,140,.45);
  border-radius:999px;
  color:#9fd7a8;
  font-size:8px;
  font-style:normal;
  font-weight:900;
  vertical-align:1px;
}
.gear-owned-mark.not-owned{
  color:#b7bec6;
  border-color:#4b5661;
  background:rgba(90,100,110,.10);
}

.runtime-debug-toast{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:99999;
  width:min(460px,calc(100vw - 28px));
  padding:12px;
  border:1px solid #a85a5a;
  border-radius:10px;
  background:#271717;
  color:#ffd3d3;
  box-shadow:0 12px 40px rgba(0,0,0,.55);
}
.runtime-debug-toast[hidden]{display:none!important}
.runtime-debug-title{font-weight:900;color:#ffaaaa;margin-bottom:6px}
.runtime-debug-message{white-space:pre-wrap;font-size:11px;line-height:1.55;margin-bottom:8px}
.runtime-debug-toast button{border:1px solid #7d4e4e;background:#3a2020;color:#fff;border-radius:7px;padding:5px 10px}

/* 所持装備：状態フィルタを読みやすく再調整 */
.owned-tools{
  grid-template-columns:minmax(0,1fr) 120px 168px;
}
#ownedStateFilter{
  font-size:12px;
  font-weight:700;
  padding:6px 24px 6px 8px;
  min-height:32px;
}
@media(max-width:700px){
  #ownedStateFilter{
    font-size:11px;
  }
}

/* Phase 11 character auto */
.character-auto-panel{border-color:#465b73}
.character-auto-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.character-auto-summary .summary-card b{font-size:14px}
@media(max-width:700px){.character-auto-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Phase 12: auto DB status */
.character-auto-summary .summary-card:first-child b{font-size:12px}
.attack-auto-box{display:grid;grid-template-columns:minmax(220px,1fr) 210px 130px;gap:10px;align-items:end;margin-top:12px;padding:10px 12px;border:1px solid #465b73;border-radius:10px;background:rgba(25,37,50,.35)}
.attack-auto-box>div{align-self:center}.attack-auto-box>div b{margin-right:8px}.attack-auto-box label{font-size:11px}.attack-auto-box input[type=number]{width:100%}.attack-auto-box .check{display:flex;align-items:center;gap:7px;min-height:32px}
@media(max-width:700px){.attack-auto-box{grid-template-columns:1fr}}

/* Phase 14: merit rank + other skill bonus */
.attack-auto-box{
  grid-template-columns:minmax(220px,1fr) 150px 170px 120px;
}
.attack-auto-box select{
  width:100%;
  min-height:32px;
}
@media(max-width:900px){
  .attack-auto-box{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .attack-auto-box{grid-template-columns:1fr}
}

/* Phase 15: generalized combat skill DB */
.attack-auto-box{
  grid-template-columns:minmax(200px,1fr) 135px 150px 155px 105px;
}
.attack-auto-head{align-self:center}
.combat-skill-summary{
  display:grid;
  grid-template-columns:repeat(6,auto);
  gap:5px 9px;
  align-items:center;
  margin-top:7px;
  padding:6px 9px;
  border:1px solid #34475d;
  border-radius:8px;
  background:#0d141d;
  font-size:10px;
}
.combat-skill-summary span{color:var(--muted)}
.combat-skill-summary b{color:#fff4cf}
@media(max-width:1000px){
 .attack-auto-box{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:700px){
 .attack-auto-box{grid-template-columns:1fr 1fr}
 .combat-skill-summary{grid-template-columns:auto 1fr auto 1fr}
}

/* Phase 15.1: per-job profile memory */
.job-profile-status{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:8px;
  padding:6px 9px;
  border:1px solid #34475d;
  border-radius:8px;
  background:#0d141d;
  font-size:10px;
}
.job-profile-status span{color:var(--muted)}
.job-profile-status b{color:#9fd7a8}

.skill-db-complete{
  margin-left:5px;
  border-color:#47775a;
  color:#a9e9b5;
}

/* Phase 16: complete naked/base-stat DB */
.base-stat-db-complete{
  margin-left:5px;
  border-color:#47775a;
  color:#a9e9b5;
}

/* Phase 16.1: compact character inputs */
#page-character > .form-grid{
  grid-template-columns:180px 120px 150px 82px 82px 150px 82px 110px !important;
  justify-content:start;
  align-items:end;
  gap:8px 10px;
}
#page-character > .form-grid label{
  width:auto;
  min-width:0;
}
#characterName{width:170px}
#race{width:115px}
#mainJob,#subJob{width:145px}
#mainLevel,#masterLevel,#subLevel{width:76px}
#jobMaster{width:auto}

#page-character .stat-input-grid,
#page-character #baseStats{
  display:grid;
  grid-template-columns:repeat(5,96px) !important;
  justify-content:start;
  gap:7px 9px;
}
#page-character #baseStats label{
  min-width:0;
  width:96px;
}
#page-character #baseStats input{
  width:88px;
  min-width:0;
}

.attack-auto-box{
  grid-template-columns:210px 125px 145px 145px 105px !important;
  justify-content:start;
}
#combatWeaponType{width:120px}
#weaponSkillMeritRank{width:140px}
#weaponOtherSkillBonus{width:135px}

#page-battle > .two-column > .panel:first-child{
  grid-template-columns:150px 100px !important;
  justify-content:start;
}
#wsSelect{width:145px}
#tp{width:95px}

.ws-support-section .support-grid{
  grid-template-columns:repeat(3,130px) !important;
  justify-content:start;
}
#page-battle > .two-column > .panel:nth-child(2){
  grid-template-columns:repeat(3,130px) !important;
  justify-content:start;
}
#page-battle input,
#page-battle select{
  width:122px;
  max-width:122px;
}
#page-battle #enemyName{width:200px;max-width:200px}

@media(max-width:1100px){
  #page-character > .form-grid{
    grid-template-columns:repeat(4,minmax(120px,1fr)) !important;
  }
  #page-character .stat-input-grid,
  #page-character #baseStats{
    grid-template-columns:repeat(4,minmax(82px,1fr)) !important;
  }
  .attack-auto-box{
    grid-template-columns:repeat(3,minmax(130px,1fr)) !important;
  }
}
@media(max-width:700px){
  #page-character > .form-grid,
  #page-character .stat-input-grid,
  #page-character #baseStats,
  .attack-auto-box{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-character input,#page-character select,
  #page-battle input,#page-battle select{
    width:100% !important;
    max-width:none !important;
  }
  .ws-support-section .support-grid,
  #page-battle > .two-column > .panel:nth-child(2){
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* ===== Phase 16.2 : character layout ===== */

/* Requested order:
   キャラ名 / 種族 / メインジョブ / Lv / サポ / サポLv / ジョブマスター / ML */
#page-character > .panel.form-grid{
  display:grid;
  grid-template-columns:170px 112px 138px 68px 138px 68px 132px 78px !important;
  justify-content:start;
  align-items:end;
  gap:8px 9px;
}
#page-character > .panel.form-grid > label{
  min-width:0;
  width:auto;
}
#page-character #characterName{width:162px}
#page-character #race{width:104px}
#page-character #mainJob,
#page-character #subJob{width:130px}
#page-character #mainLevel,
#page-character #subLevel{width:60px}
#page-character #masterLevel{width:70px}
#page-character .check-field{width:132px}

/* HP / MP / STR / DEX / VIT / AGI / INT / MND / CHR / 基礎攻撃力 = 1 row */
#page-character #baseStats.stat-input-grid{
  display:grid !important;
  grid-template-columns:repeat(10, 86px) !important;
  justify-content:start;
  align-items:end;
  gap:7px 7px;
}
#page-character #baseStats.stat-input-grid > label{
  width:86px !important;
  min-width:0 !important;
}
#page-character #baseStats.stat-input-grid input{
  width:78px !important;
  min-width:0 !important;
}

/* Desktop: keep the requested single row. */
@media(min-width:1000px){
  #page-character #baseStats.stat-input-grid{
    grid-template-columns:repeat(10, 86px) !important;
  }
}

/* Narrower windows still stay usable. */
@media(max-width:999px){
  #page-character > .panel.form-grid{
    grid-template-columns:repeat(4,minmax(110px,1fr)) !important;
  }
  #page-character #baseStats.stat-input-grid{
    grid-template-columns:repeat(5,minmax(72px,1fr)) !important;
  }
}
@media(max-width:700px){
  #page-character > .panel.form-grid,
  #page-character #baseStats.stat-input-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #page-character > .panel.form-grid input,
  #page-character > .panel.form-grid select,
  #page-character #baseStats.stat-input-grid input{
    width:100% !important;
  }
}

/* Phase 17: WS DB / weapon link */
.ws-auto-info{
  display:grid;
  grid-template-columns:auto auto auto auto auto auto minmax(170px,1fr) auto;
  gap:5px 8px;
  align-items:center;
  padding:7px 9px;
  border:1px solid #34475d;
  border-radius:8px;
  background:#0d141d;
  font-size:10px;
}
.ws-auto-info span{color:var(--muted)}
.ws-auto-info b{color:#fff4cf;white-space:nowrap}
@media(max-width:900px){
  .ws-auto-info{grid-template-columns:auto 1fr auto 1fr}
}

/* Phase 31: WS access classification */
.ws-access-normal{color:#b9e6c1 !important}
.ws-access-restricted{color:#ffd98a !important}

/* Phase 32 */
.ws-status-ready{color:#b9e6c1 !important}
.ws-status-pending{color:#ffb6a8 !important;font-weight:800}

/* Phase 35: merit WS rank */
.ws-merit-rank-field select{
  min-width:96px;
}
.ws-merit-rank-field[hidden]{display:none !important}

/* Phase 38: Utility WS */
.ws-status-utility{
  color:#9ed8ff !important;
  font-weight:800;
}


/* 装備DB 3カード構成：基本 / 特殊 / オーグメント */
.gear-db-editor-panel{min-width:0}
.gear-db-identity{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 150px 120px;
  gap:8px;
  margin-bottom:10px;
}
.gear-db-identity label{min-width:0}
.gear-db-identity input,
.gear-db-identity select{
  min-height:31px;
  padding:6px 7px;
}

.gear-stat-card{
  border:1px solid var(--line);
  border-radius:10px;
  padding:11px;
  margin-top:10px;
  background:#0d141d;
  min-width:0;
}
.gear-stat-card-basic{border-color:#756337}
.gear-stat-card-special{border-color:#355b80}
.gear-stat-card-augment{border-color:#3f6947}

.gear-stat-card-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}
.gear-stat-card-title h3{
  margin:0;
  font-size:13px;
}
.gear-stat-card-basic .gear-stat-card-title h3{color:#e8c66a}
.gear-stat-card-special .gear-stat-card-title h3{color:#73b7ff}
.gear-stat-card-augment .gear-stat-card-title h3{color:#8edb9d}

.gear-stat-fields{
  display:grid;
  gap:6px 10px;
  min-width:0;
}
.gear-stat-fields-basic{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.gear-stat-fields-special{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.gear-stat-fields label,
.gear-augment-grid label{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 74px;
  align-items:center;
  gap:6px;
  font-size:9px;
}
.gear-stat-fields input[type=number],
.gear-augment-grid input[type=number]{
  width:74px;
  min-width:74px;
  max-width:74px;
  min-height:29px;
  padding:5px 6px;
  text-align:right;
}

.personal-augment-box{
  margin-top:10px;
  padding-top:11px;
  border-top-width:1px;
}
.personal-augment-box .augment-grid,
.gear-augment-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.gear-db-actions{margin-top:10px}

@media(max-width:1150px){
  .gear-stat-fields-basic{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gear-stat-fields-special{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:950px){
  .gear-db-identity{grid-template-columns:1fr 150px 120px}
  .gear-stat-fields-basic{grid-template-columns:repeat(4,minmax(0,1fr))}
  .gear-stat-fields-special{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .gear-db-identity{grid-template-columns:1fr 1fr}
  .gear-db-identity label:first-child{grid-column:1/-1}
  .gear-stat-fields-basic,
  .gear-stat-fields-special,
  .personal-augment-box .augment-grid,
  .gear-augment-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:460px){
  .gear-db-identity,
  .gear-stat-fields-basic,
  .gear-stat-fields-special,
  .personal-augment-box .augment-grid,
  .gear-augment-grid{
    grid-template-columns:1fr;
  }
}

/* Phase 53-E 所持装備 Rank選択 */
.owned-rank-panel{margin:10px 0 12px;padding:10px;border:1px solid #756337;border-radius:9px;background:rgba(232,198,106,.05)}
.owned-rank-panel[hidden]{display:none!important}
.owned-rank-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.owned-rank-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}
#ownedRankSelect{width:120px;min-width:120px;padding:6px 8px}
.owned-rank-preview{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.owned-rank-preview>span{display:inline-block;padding:4px 7px;border:1px solid #40546b;border-radius:7px;background:#0c121a;font-size:10px}
.owned-rank-preview b{color:#fff4cf}
.owned-manual-augment-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 7px;padding-top:8px;border-top:1px solid #34475d;font-size:11px}
@media(max-width:620px){.owned-rank-head{align-items:stretch;flex-direction:column}#ownedRankSelect{width:100%}}

/* Phase 56-C: optimizer reason details */
.optimizer-reason-row{flex-wrap:wrap}
.optimizer-reason{flex:0 0 100%;margin:6px 0 2px;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.045);font-size:.84rem;line-height:1.55}
.optimizer-reason > div + div{margin-top:2px}

/* Phase 57-A: compact equipment slots */
.equipment-slot.compact{
  min-height:0;
  height:42px;
  padding:6px 10px;
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  align-items:center;
  gap:8px;
}
.equipment-slot.compact .slot-label{
  margin:0;
  white-space:nowrap;
}
.equipment-slot.compact .slot-name{
  margin:0;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.equipment-slot.compact .slot-meta{display:none!important}

/* Phase 57-B: equipment slot = exactly two rows (slot / item) */
.equipment-slot.compact{
  min-height:0;
  height:54px;
  padding:6px 10px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:2px;
}
.equipment-slot.compact .slot-label{
  display:block;
  margin:0;
  line-height:1.15;
  white-space:nowrap;
}
.equipment-slot.compact .slot-name{
  display:block;
  margin:0;
  line-height:1.2;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}


/* Phase 57-C: FF11 WS Lab V10.71 optimizer result UI */
.v1071-optimizer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin-top:10px;
}
.v1071-result{
  border:1px solid var(--line,#40505f);
  border-radius:10px;
  padding:10px;
  background:rgba(10,18,26,.35);
  min-width:0;
}
.v1071-result.current{
  border-color:#4c5d70;
}
.v1071-result.mean{
  border-color:#9b7837;
}
.v1071-result h3{
  margin:0 0 8px;
  font-size:13px;
}
.v1071-result.current h3{color:#c8d8e8}
.v1071-result.mean h3{color:#ffe08a}

.v1071-metric-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}
.v1071-metric{
  padding:8px;
  border:1px solid rgba(130,150,170,.28);
  border-radius:8px;
  background:rgba(10,18,26,.42);
  min-width:0;
}
.v1071-metric span{
  display:block;
  font-size:10px;
  opacity:.72;
  white-space:nowrap;
}
.v1071-metric strong{
  display:block;
  margin-top:2px;
  font-size:19px;
}
.v1071-note{
  margin-top:7px;
  font-size:10px;
  line-height:1.55;
  opacity:.82;
}
.v1071-sep{padding:0 4px;opacity:.55}

.v1071-gear{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:8px;
  row-gap:3px;
  margin-top:8px;
}
.v1071-gear-line{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  gap:5px;
  align-items:center;
  min-width:0;
  min-height:24px;
  padding:2px 5px;
  border-radius:5px;
}
.v1071-slot-label{
  font-size:10px;
  opacity:.72;
  white-space:nowrap;
}
.v1071-gear-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}
.v1071-gear-line.changed{
  background:rgba(255,174,45,.14);
  border:1px solid rgba(255,190,70,.42);
  font-weight:700;
}
.v1071-gear-line.changed .v1071-slot-label{color:#ffbf4d}
.v1071-slot-gain{
  display:inline-block;
  padding:1px 5px;
  border-radius:999px;
  border:1px solid rgba(255,220,120,.45);
  background:rgba(255,214,90,.10);
  color:#fff0a8;
  font-size:9px;
  font-weight:800;
  white-space:nowrap;
}
.v1071-slot-gain.tiny{
  color:#c5cbd1;
  border-color:#4b5661;
  background:rgba(90,100,110,.12);
}
.v1071-result .apply-optimized{
  margin-top:9px;
}
@media(max-width:1050px){
  .v1071-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .v1071-optimizer-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .v1071-gear{grid-template-columns:1fr}
}


/* Phase 58-A: main workflow navigation */
.tabs{
  align-items:center;
}
.tab-separator{
  width:1px;
  height:26px;
  margin:0 3px;
  background:rgba(140,165,190,.24);
  flex:0 0 auto;
}

.workflow-strip{
  display:flex;
  align-items:center;
  gap:6px;
  margin:9px 0 18px;
  padding:7px 9px;
  border:1px solid rgba(92,119,146,.38);
  border-radius:10px;
  background:rgba(10,20,31,.48);
  overflow-x:auto;
  scrollbar-width:thin;
}
.workflow-label{
  flex:0 0 auto;
  padding:0 7px 0 2px;
  color:#8fa8c1;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  white-space:nowrap;
}
.workflow-step{
  appearance:none;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  padding:4px 9px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:#adc1d5;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}
.workflow-step b{
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  border-radius:5px;
  background:rgba(73,105,136,.36);
  color:#d7e6f5;
  font-size:10px;
}
.workflow-step:hover{
  border-color:#456884;
  background:rgba(38,74,105,.25);
  color:#fff;
}
.workflow-step.active{
  border-color:#4d83b1;
  background:rgba(49,103,151,.34);
  color:#fff;
}
.workflow-step.active b{
  background:#3476ae;
  color:#fff;
}
.workflow-arrow{
  flex:0 0 auto;
  color:#50677d;
  font-size:12px;
}

.workflow-next{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:12px;
  padding:13px 15px;
  border-color:rgba(66,125,172,.58);
  background:linear-gradient(90deg,rgba(19,48,72,.38),rgba(13,25,38,.28));
}
.workflow-next > div{
  min-width:0;
}
.workflow-next-kicker{
  display:block;
  margin-bottom:3px;
  color:#77b7ec;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}
.workflow-next strong{
  display:block;
  font-size:13px;
}
.workflow-next p{
  margin:3px 0 0;
  color:#8fa6bb;
  font-size:10px;
  line-height:1.45;
}
.workflow-next-button{
  flex:0 0 auto;
  min-width:210px;
  min-height:42px;
  font-weight:800;
}
.workflow-calc-action{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:12px;
  padding:12px 14px;
  border:1px solid rgba(66,125,172,.58);
  border-radius:10px;
  background:linear-gradient(90deg,rgba(19,48,72,.38),rgba(13,25,38,.28));
}
.workflow-calc-action strong{
  display:block;
  font-size:13px;
}
.workflow-calc-action #calculateButton{
  width:auto;
  min-width:260px;
  margin:0;
}

@media(max-width:800px){
  .tab-separator{display:none}
  .workflow-strip{margin-bottom:12px}
  .workflow-next,
  .workflow-calc-action{
    align-items:stretch;
    flex-direction:column;
  }
  .workflow-next-button,
  .workflow-calc-action #calculateButton{
    width:100%;
    min-width:0;
  }
}

.owned-register-actions{
  display:flex;
  align-items:stretch;
  gap:7px;
  flex:0 0 auto;
}
.owned-register-actions .workflow-quick-next{
  min-width:150px;
  white-space:nowrap;
}
@media(max-width:720px){
  .owned-register-actions{
    width:100%;
    flex-direction:column;
  }
  .owned-register-actions .workflow-quick-next{
    width:100%;
  }
}


/* Phase 58-B: battle layout surgical fix */
/* 左側WSパネルは、支援グリッドと同じ130px×3列を基準にして
   WS情報カードの横幅不足による文字崩れを防止する。 */
#page-battle > .two-column > .panel:first-child{
  grid-template-columns:repeat(3,130px) !important;
  justify-content:start;
}

/* WS/TPは従来どおり先頭2列を使用。正正堂堂・WS情報・支援は全幅。 */
#page-battle #wsAutoInfo{
  grid-column:1 / -1 !important;
  width:auto !important;
  min-width:0;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:max-content minmax(0,1fr) max-content minmax(0,1fr) !important;
  gap:6px 10px;
  align-items:center;
  padding:8px 10px;
}
#page-battle #wsAutoInfo span{
  min-width:0;
  white-space:nowrap;
}
#page-battle #wsAutoInfo b{
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.35;
}

/* 敵名だけ200px固定になっていた指定を打ち消し、
   他の敵入力欄と同じグリッド幅へ揃える。 */
#page-battle #enemyName{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  box-sizing:border-box;
}


/* Phase 58-C: fluid compact UI + viewport-safe workflow actions */
:root{
  --fluid-shell-pad:clamp(8px,1vw,18px);
  --fluid-panel-pad:clamp(8px,.75vw,14px);
  --fluid-gap:clamp(6px,.65vw,12px);
  --fluid-control-h:clamp(30px,3.9vh,38px);
  --fluid-radius:clamp(7px,.55vw,10px);
}

/* 余白・カード・入力欄をウィンドウサイズに連動させる */
.app-shell{
  padding-left:var(--fluid-shell-pad);
  padding-right:var(--fluid-shell-pad);
}
.panel{
  padding:var(--fluid-panel-pad);
  border-radius:var(--fluid-radius);
}
.page{
  padding-bottom:clamp(8px,1.2vh,18px);
}
.section-heading{
  margin-bottom:clamp(7px,1vh,13px);
}
input,
select,
button{
  min-height:var(--fluid-control-h);
}
.form-grid,
.form-grid.compact,
.support-grid,
.augment-grid,
.summary-grid,
.equipment-layout,
.two-column,
.gear-db-layout{
  gap:var(--fluid-gap);
}

/* 1600x900以下では「縮める余地」を優先し、文字サイズは読みやすさを維持 */
@media (max-width:1600px), (max-height:900px){
  .app-header{
    padding:clamp(10px,1.15vh,16px) clamp(12px,1vw,18px);
  }
  .app-header h1{
    font-size:clamp(21px,1.8vw,28px);
    margin-top:2px;
    margin-bottom:2px;
  }
  .app-header p{
    margin:2px 0 0;
    font-size:clamp(10px,.78vw,13px);
  }
  .tabs{
    gap:5px;
    margin-top:7px;
  }
  .tab{
    min-height:32px;
    padding:5px 10px;
    font-size:clamp(10px,.75vw,13px);
  }
  .workflow-strip{
    margin:7px 0 11px;
    padding:5px 7px;
  }
  .workflow-step{
    min-height:27px;
    padding:3px 8px;
  }
  .panel h3{
    margin-top:0;
    margin-bottom:clamp(6px,.75vh,10px);
  }
  label{
    gap:3px;
  }
}

/* 高さが足りない環境では、上の基本フローを画面上端に残す */
@media (max-height:850px){
  .workflow-strip{
    position:sticky;
    top:4px;
    z-index:90;
    box-shadow:0 7px 18px rgba(0,0,0,.30);
    backdrop-filter:blur(10px);
    background:rgba(10,20,31,.94);
  }

  /* 固定バーにコンテンツが隠れないための余白 */
  .page.active{
    padding-bottom:78px;
  }

  /* 各工程の「次へ」または「計算」ブロックを画面下部へ固定 */
  .page.active > .viewport-action{
    position:fixed;
    left:max(10px,calc((100vw - min(1240px,calc(100vw - 20px)))/2));
    right:max(10px,calc((100vw - min(1240px,calc(100vw - 20px)))/2));
    bottom:8px;
    z-index:100;
    margin:0;
    min-height:54px;
    padding:8px 11px;
    box-shadow:0 -8px 22px rgba(0,0,0,.38);
    backdrop-filter:blur(11px);
    background:rgba(13,26,39,.96);
  }

  .page.active > .viewport-action p{
    display:none;
  }
  .page.active > .viewport-action .workflow-next-kicker{
    margin-bottom:1px;
  }
  .page.active > .viewport-action strong{
    font-size:12px;
  }
  .page.active > .viewport-action .workflow-next-button,
  .page.active > .viewport-action #calculateButton{
    min-height:38px;
  }

  /* 最適化画面だけはカード内の「適用」を下部固定 */
  #page-optimizer.active{
    padding-bottom:82px;
  }
  #page-optimizer.active #applyOptimizedButton.viewport-action-button{
    position:fixed;
    left:50%;
    bottom:8px;
    transform:translateX(-50%);
    z-index:101;
    width:min(560px,calc(100vw - 24px));
    min-height:44px;
    margin:0;
    box-shadow:0 -8px 22px rgba(0,0,0,.38);
  }
}

/* さらに低いウィンドウでは縦方向をもう一段コンパクトに */
@media (max-height:740px){
  :root{
    --fluid-panel-pad:7px;
    --fluid-gap:5px;
    --fluid-control-h:29px;
  }
  .app-header{
    padding-top:8px;
    padding-bottom:8px;
  }
  .app-header p{
    display:none;
  }
  .workflow-strip{
    margin-bottom:7px;
  }
  .section-heading{
    margin-bottom:6px;
  }
  .section-heading .hint{
    font-size:9px;
  }
}

/* 横幅が狭い時は固定アクションを1列化 */
@media (max-width:760px) and (max-height:850px){
  .page.active > .viewport-action{
    left:7px;
    right:7px;
    bottom:7px;
    flex-direction:row;
    align-items:center;
    gap:8px;
  }
  .page.active > .viewport-action > div{
    display:none;
  }
  .page.active > .viewport-action .workflow-next-button,
  .page.active > .viewport-action #calculateButton{
    width:100%;
  }
}


/* Phase 59-A: FF11用語辞典コピペ解析モーダル */
.dictionary-modal[hidden]{display:none!important}
.dictionary-modal{
  position:fixed;
  inset:0;
  z-index:500;
  display:grid;
  place-items:center;
  padding:clamp(8px,2vw,24px);
}
.dictionary-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,7,13,.78);
  backdrop-filter:blur(4px);
}
.dictionary-modal-dialog{
  position:relative;
  z-index:1;
  width:min(960px,calc(100vw - 20px));
  max-height:min(900px,calc(100vh - 20px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #48627b;
  border-radius:13px;
  background:#111c29;
  box-shadow:0 22px 60px rgba(0,0,0,.55);
}
.dictionary-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 16px 10px;
  border-bottom:1px solid rgba(110,140,169,.26);
}
.dictionary-modal-header h2{
  margin:2px 0 0;
  font-size:18px;
}
.dictionary-modal-kicker{
  color:#78b9ef;
  font-size:9px;
  font-weight:900;
  letter-spacing:.09em;
}
.dictionary-modal-close{
  flex:0 0 auto;
  width:34px;
  min-height:34px;
  padding:0;
  border-radius:50%;
  font-size:20px;
}
.dictionary-modal-body{
  overflow:auto;
  padding:12px 16px;
}
.dictionary-help{
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);
  gap:13px;
  align-items:start;
  margin-bottom:12px;
}
.dictionary-help-text{
  padding:10px 11px;
  border:1px solid rgba(94,126,156,.35);
  border-radius:9px;
  background:rgba(7,16,25,.42);
}
.dictionary-help-text strong{
  color:#ffe18d;
}
.dictionary-help-text p{
  margin:6px 0 0;
  line-height:1.6;
  font-size:11px;
}
.dictionary-example-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.dictionary-example-grid figure{
  margin:0;
  min-width:0;
  padding:6px;
  border:1px solid rgba(94,126,156,.35);
  border-radius:9px;
  background:#f8fafc;
}
.dictionary-example-grid img{
  display:block;
  width:100%;
  height:clamp(145px,24vh,250px);
  object-fit:contain;
  background:#fff;
  border-radius:5px;
}
.dictionary-example-grid figcaption{
  margin-top:5px;
  color:#34485b;
  font-size:10px;
  font-weight:800;
  text-align:center;
}
.dictionary-paste-label{
  display:block;
  font-size:11px;
  font-weight:800;
}
#dictionaryPaste{
  width:100%;
  min-height:170px;
  margin-top:5px;
  resize:vertical;
  font-family:inherit;
  line-height:1.5;
}
.dictionary-parse-status{
  min-height:18px;
  margin-top:6px;
  color:#ffb9a9;
  font-size:10px;
}
.dictionary-modal-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 16px 13px;
  border-top:1px solid rgba(110,140,169,.26);
  background:rgba(8,16,24,.64);
}
.dictionary-modal-actions-right{
  display:flex;
  gap:7px;
}
body.dictionary-modal-open{
  overflow:hidden;
}
.dictionary-extra-box{
  margin-top:10px;
  padding-top:9px;
  border-top:1px dashed rgba(103,132,159,.34);
}
.dictionary-extra-box h4{
  margin:0;
  font-size:11px;
}
#gearEditImportedOther{
  width:100%;
  margin-top:6px;
  resize:vertical;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:10px;
}
.gear-db-identity{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.gear-db-identity .gear-jobs-field{
  grid-column:span 2;
}
@media(max-width:760px){
  .dictionary-help{grid-template-columns:1fr}
  .dictionary-example-grid{grid-template-columns:1fr 1fr}
  .dictionary-modal-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .dictionary-modal-actions-right{
    width:100%;
  }
  .dictionary-modal-actions button{
    flex:1 1 auto;
  }
  .gear-db-identity{
    grid-template-columns:1fr 1fr;
  }
  .gear-db-identity .gear-jobs-field{
    grid-column:1/-1;
  }
}
@media(max-height:700px){
  .dictionary-example-grid img{height:120px}
  #dictionaryPaste{min-height:120px}
  .dictionary-modal-header{padding-top:8px;padding-bottom:7px}
  .dictionary-modal-body{padding-top:8px;padding-bottom:8px}
}


/* Phase 59-B: Equipment DB slot + job combined filters */
.gear-db-tools{
  display:grid;
  grid-template-columns:minmax(160px,1.5fr) minmax(110px,.75fr) minmax(130px,.9fr) auto auto;
  gap:7px;
  align-items:center;
}
#gearDbClearFilters{
  white-space:nowrap;
}
@media(max-width:900px){
  .gear-db-tools{
    grid-template-columns:minmax(160px,1fr) 1fr 1fr;
  }
  #gearDbClearFilters,
  #newGearButton{
    width:100%;
  }
}
@media(max-width:620px){
  .gear-db-tools{
    grid-template-columns:1fr 1fr;
  }
  #gearDbSearch{
    grid-column:1/-1;
  }
}


/* Phase 59-C: gear DB filter bar overflow fix */
#page-gear-db .gear-db-tools{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(105px,120px) minmax(115px,130px) !important;
  grid-template-areas:
    "search slot job"
    ". clear new";
  gap:7px !important;
  align-items:center;
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
#page-gear-db .gear-db-tools > *{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
#page-gear-db #gearDbSearch{
  grid-area:search;
  width:100%;
}
#page-gear-db #gearDbSlotFilter{
  grid-area:slot;
  width:100%;
}
#page-gear-db #gearDbJobFilter{
  grid-area:job;
  width:100%;
}
#page-gear-db #gearDbClearFilters{
  grid-area:clear;
  width:100%;
  white-space:nowrap;
}
#page-gear-db #newGearButton{
  grid-area:new;
  width:100%;
  min-width:0;
  white-space:normal;
}

/* 既存の「primaryは全列」指定を装備DB検索バー内だけ解除 */
#page-gear-db .gear-db-tools .primary{
  grid-column:auto !important;
}

/* さらに狭い時は1段目を2列にし、検索欄だけ全幅 */
@media(max-width:820px){
  #page-gear-db .gear-db-tools{
    grid-template-columns:1fr 1fr !important;
    grid-template-areas:
      "search search"
      "slot job"
      "clear new";
  }
}

/* スマホ幅では完全1列 */
@media(max-width:520px){
  #page-gear-db .gear-db-tools{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "search"
      "slot"
      "job"
      "clear"
      "new";
  }
}

/* Phase 59-D: equipment owned-only toggle */
.equipment-picker-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
#ownedOnlyToggle.active,#ownedOnlyToggle[aria-pressed="true"]{border-color:#d5aa32;color:#ffe27a;background:rgba(120,88,12,.28);box-shadow:inset 0 0 0 1px rgba(213,170,50,.18)}
@media(max-width:620px){.equipment-picker-actions{width:100%}.equipment-picker-actions button{flex:1 1 auto}}


/* Phase 61-A: FFXI-inspired unified character + equipment prototype */
#page-character{
  --ffxi-line:rgba(113,142,170,.42);
  --ffxi-gold:#e3b84a;
  --ffxi-blue:#86c8ff;
}
.ffxi-status-shell{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(480px,1.28fr);
  grid-template-areas:
    "left right"
    "combat combat";
  gap:8px;
  padding:8px;
  border:1px solid #4e657c;
  border-radius:10px;
  background:linear-gradient(180deg,rgba(18,29,42,.94),rgba(8,17,27,.96));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
}
.ffxi-status-left{grid-area:left;min-width:0}
.ffxi-status-right{grid-area:right;min-width:0}
.ffxi-pane-title{
  margin:-2px 0 7px;
  padding:3px 7px;
  border-bottom:1px solid var(--ffxi-line);
  color:#dceaf7;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.ffxi-character-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px 8px;
  padding:0 3px 7px;
}
.ffxi-character-form label{
  gap:2px;
  font-size:9px;
}
.ffxi-character-form input,
.ffxi-character-form select{
  min-height:29px;
  padding:3px 7px;
}
.ffxi-character-form .check-field{
  display:flex;
  flex-direction:row;
  align-items:center;
  min-height:29px;
}
.ffxi-primary-title{
  margin:3px 3px 4px;
  padding-top:6px;
  border-top:1px solid rgba(110,139,166,.28);
  color:#91a9bf;
  font-size:9px;
  font-weight:800;
}
.ffxi-primary-stats{
  display:grid;
  grid-template-columns:1fr;
  gap:1px;
  padding:0 4px;
}
.ffxi-primary-row{
  display:grid;
  grid-template-columns:42px 1fr 1fr;
  align-items:baseline;
  min-height:23px;
  padding:1px 5px;
  border-radius:4px;
}
.ffxi-primary-row:nth-child(odd){background:rgba(255,255,255,.025)}
.ffxi-primary-row span{
  color:#d7e0e8;
  font-size:11px;
  font-weight:800;
}
.ffxi-primary-row b{
  color:#f3f6f9;
  font-size:13px;
  font-weight:700;
}
.ffxi-primary-row strong{
  color:#5ee0b1;
  font-size:13px;
  font-weight:800;
}
.ffxi-equipment-panel{
  min-width:0;
  padding:0 3px 4px;
}
.ffxi-equipment-panel h3{
  display:none;
}
#page-character .equipment-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px;
}
#page-character .equipment-slot.compact{
  height:50px;
  min-width:0;
  padding:5px 7px;
  border-radius:7px;
  background:rgba(6,14,22,.72);
}
#page-character .equipment-slot.compact .slot-label{
  font-size:9px;
  color:#9db0c2;
}
#page-character .equipment-slot.compact .slot-name{
  font-size:10px;
  font-weight:800;
}
#page-character .equipment-slot.compact.active{
  border-color:var(--ffxi-gold);
  background:rgba(92,65,8,.27);
}
.ffxi-combat-summary{
  grid-area:combat;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:5px;
  padding-top:7px;
  border-top:1px solid var(--ffxi-line);
}
.ffxi-combat-stat{
  min-width:0;
  padding:6px 7px;
  border:1px solid rgba(102,129,154,.26);
  border-radius:6px;
  background:rgba(5,13,21,.55);
}
.ffxi-combat-stat span,
.ffxi-combat-stat small{
  display:block;
  white-space:nowrap;
}
.ffxi-combat-stat span{font-size:9px;color:#9fb0c0}
.ffxi-combat-stat b{
  display:block;
  margin-top:1px;
  font-size:15px;
  color:#f3f7fb;
}
.ffxi-combat-stat small{
  margin-top:1px;
  font-size:8px;
  color:#6f8497;
}
.ffxi-change-area{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:8px;
  margin-top:8px;
}
.ffxi-gear-change-panel,
.ffxi-augment-panel{
  min-width:0;
  margin:0;
}
/* Main page should scroll, not the gear candidate card. */
#page-character .gear-picker{
  max-height:none !important;
  overflow:visible !important;
}
#page-character .gear-item{
  min-height:44px;
}
#page-character .gear-item small{
  line-height:1.35;
}
.ffxi-details{
  margin-top:8px;
  border:1px solid rgba(92,119,145,.38);
  border-radius:9px;
  background:rgba(10,20,31,.38);
  overflow:hidden;
}
.ffxi-details > summary{
  cursor:pointer;
  padding:9px 12px;
  color:#b9c9d8;
  font-size:11px;
  font-weight:800;
  user-select:none;
}
.ffxi-details[open] > summary{
  border-bottom:1px solid rgba(92,119,145,.28);
}
.ffxi-details-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:8px;
  padding:8px;
}
.ffxi-details .panel{
  margin:0;
}
.ffxi-totals-panel{
  margin:8px;
}
@media(max-width:980px){
  .ffxi-status-shell{
    grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr);
  }
  #page-character .equipment-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .ffxi-combat-summary{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .ffxi-change-area,
  .ffxi-details-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:720px){
  .ffxi-status-shell{
    grid-template-columns:1fr;
    grid-template-areas:"left" "right" "combat";
  }
  #page-character .equipment-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .ffxi-character-form{
    grid-template-columns:1fr 1fr;
  }
}


/* Phase 61-B: status rows + equipment change modal + larger typography */

/* Right pane now owns the 3-line combat summary under equipment slots. */
.ffxi-status-shell{
  grid-template-areas:"left right";
  align-items:start;
}
.ffxi-status-right{
  display:flex;
  flex-direction:column;
  min-width:0;
}
#page-character .ffxi-combat-summary{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:7px;
  padding:7px 5px 1px;
  border-top:1px solid var(--ffxi-line);
}
#page-character .ffxi-combat-row{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(0,1fr);
  gap:7px;
  min-height:29px;
}
#page-character .ffxi-combat-pair{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  padding:4px 8px;
  border-radius:5px;
  background:rgba(5,13,21,.46);
}
#page-character .ffxi-combat-pair span{
  min-width:0;
  color:#b8c8d7;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}
#page-character .ffxi-combat-pair b{
  flex:0 0 auto;
  color:#f3f8fc;
  font-size:14px;
  font-weight:800;
}

/* Equipment change modal. One modal body scroll only; the candidate card itself does not trap wheel scrolling. */
.equipment-change-modal[hidden]{display:none!important}
.equipment-change-modal{
  position:fixed;
  inset:0;
  z-index:520;
  display:grid;
  place-items:center;
  padding:clamp(8px,1.8vw,22px);
}
.equipment-change-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,7,13,.79);
  backdrop-filter:blur(4px);
}
.equipment-change-dialog{
  position:relative;
  z-index:1;
  width:min(1000px,calc(100vw - 20px));
  max-height:calc(100vh - 20px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #536e88;
  border-radius:13px;
  background:#111c29;
  box-shadow:0 24px 70px rgba(0,0,0,.58);
}
.equipment-change-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 15px 10px;
  border-bottom:1px solid rgba(110,140,169,.28);
}
.equipment-change-header h2{
  margin:2px 0 0;
  font-size:19px;
}
.equipment-change-kicker{
  color:#7fc4fa;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.equipment-change-close{
  width:36px;
  min-height:36px;
  padding:0;
  border-radius:50%;
  font-size:21px;
}
.equipment-change-body{
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:10px;
}
.equipment-change-body .panel{
  margin:0 0 9px;
}
.equipment-change-body .gear-picker{
  max-height:none!important;
  overflow:visible!important;
}
.equipment-change-body .gear-item{
  min-height:50px;
  padding:7px 9px;
}
.equipment-change-body .gear-item strong{
  font-size:13px;
}
.equipment-change-body .gear-item small{
  margin-top:3px;
  font-size:11px;
  line-height:1.45;
}
.equipment-change-body .selected-info{
  font-size:12px;
  line-height:1.55;
}
.equipment-change-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 12px;
  border-top:1px solid rgba(110,140,169,.28);
  background:rgba(7,15,23,.7);
}
.equipment-change-footer span{
  color:#93a9bd;
  font-size:11px;
}
.equipment-change-footer button{
  min-width:120px;
}
body.equipment-change-open{overflow:hidden}

/* Typography pass: keep hierarchy, but remove the overly tiny text from the prototype. */
#page-character .ffxi-pane-title{
  font-size:12px;
}
#page-character .ffxi-character-form label{
  font-size:11px;
}
#page-character .ffxi-character-form input,
#page-character .ffxi-character-form select{
  font-size:12px;
}
#page-character .ffxi-primary-title{
  font-size:11px;
}
#page-character .ffxi-primary-row{
  min-height:26px;
}
#page-character .ffxi-primary-row span{
  font-size:12px;
}
#page-character .ffxi-primary-row b,
#page-character .ffxi-primary-row strong{
  font-size:15px;
}
#page-character .equipment-slot.compact{
  height:54px;
  padding:6px 8px;
}
#page-character .equipment-slot.compact .slot-label{
  font-size:10px;
}
#page-character .equipment-slot.compact .slot-name{
  font-size:12px;
}
#page-character .ffxi-details > summary{
  font-size:12px;
}
#page-character .note,
#page-character .hint{
  font-size:10.5px;
}

/* Previous inline change area is no longer used. */
#page-character > .ffxi-change-area{display:none!important}

@media(max-width:980px){
  .ffxi-status-shell{
    grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr);
    grid-template-areas:"left right";
  }
}
@media(max-width:720px){
  .ffxi-status-shell{
    grid-template-columns:1fr;
    grid-template-areas:"left" "right";
  }
  #page-character .ffxi-combat-row{
    grid-auto-flow:row;
    grid-template-columns:1fr 1fr;
  }
  #page-character .ffxi-combat-row:first-child{
    grid-template-columns:1fr;
  }
  .equipment-change-footer{
    align-items:stretch;
    flex-direction:column;
  }
  .equipment-change-footer button{
    width:100%;
  }
}

/* Phase 61-C: clearer combat stat pairs + sticky equipment picker controls */
#page-character .ffxi-combat-pair{
  justify-content:flex-start;
  gap:7px;
  padding:4px 8px;
  border:1px solid rgba(112,145,176,.24);
  background:linear-gradient(180deg,rgba(13,27,40,.70),rgba(5,13,21,.58));
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.025);
}
#page-character .ffxi-combat-pair span{
  flex:0 1 auto;
}
#page-character .ffxi-combat-pair b{
  flex:0 0 auto;
  margin-left:1px;
  padding-left:7px;
  border-left:1px solid rgba(134,200,255,.24);
  color:#fff5cf;
}

/* Keep the equipment picker controls visible while the modal body scrolls. */
.equipment-change-body .ffxi-gear-change-panel > .panel-title-row{
  position:sticky;
  top:-10px;
  z-index:8;
  margin:-10px -10px 8px;
  padding:10px 10px 8px;
  border-bottom:1px solid rgba(110,140,169,.30);
  background:rgba(17,28,41,.97);
  box-shadow:0 7px 12px rgba(0,0,0,.18);
  backdrop-filter:blur(5px);
}


/* Phase 61-D: compact augment summary inside equipment detail */
.equipment-detail-augment{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  margin-top:3px;
  color:#8edb9d;
  font-weight:700;
  line-height:1.35;
}
.equipment-detail-augment-label{
  display:inline-block;
  margin-right:2px;
  padding:1px 5px;
  border:1px solid rgba(142,219,157,.45);
  border-radius:999px;
  background:rgba(62,105,71,.22);
  color:#a8e8b4;
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
}

/* Phase 61-E: move character/base-stat settings into a modal without changing existing input IDs. */
.character-settings-trigger{
  min-height:28px;
  padding:4px 10px;
  border-radius:8px;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.character-settings-modal[hidden]{display:none!important}
.character-settings-modal{
  position:fixed;
  inset:0;
  z-index:530;
  display:grid;
  place-items:center;
  padding:clamp(8px,1.8vw,22px);
}
.character-settings-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,7,13,.79);
  backdrop-filter:blur(4px);
}
.character-settings-dialog{
  position:relative;
  z-index:1;
  width:min(1080px,calc(100vw - 20px));
  max-height:calc(100vh - 20px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #536e88;
  border-radius:13px;
  background:#111c29;
  box-shadow:0 24px 70px rgba(0,0,0,.58);
}
.character-settings-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 15px 10px;
  border-bottom:1px solid rgba(110,140,169,.28);
}
.character-settings-header h2{margin:2px 0 0;font-size:19px}
.character-settings-kicker{
  color:#7fc4fa;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.character-settings-close{
  width:36px;
  min-height:36px;
  padding:0;
  border-radius:50%;
  font-size:21px;
}
.character-settings-body{
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:10px;
}
.character-settings-body .ffxi-details-grid{margin:0}
.character-settings-body .panel{margin:0}
.character-settings-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 12px;
  border-top:1px solid rgba(110,140,169,.28);
  background:rgba(7,15,23,.7);
}
.character-settings-footer span{color:#93a9bd;font-size:11px}
.character-settings-footer button{min-width:120px}
body.character-settings-open{overflow:hidden}

@media(max-width:720px){
  #page-character .section-heading>div{flex-wrap:wrap}
  .character-settings-trigger{margin-left:auto}
  .character-settings-footer span{display:none}
  .character-settings-footer{justify-content:flex-end}
}

/* Phase 61-F: reorganize character detail settings by frequency of use. */
.character-settings-body{
  display:grid;
  gap:10px;
}
.character-settings-section{
  border:1px solid #3b5067;
  border-radius:11px;
  padding:11px 12px;
  background:rgba(15,25,37,.78);
}
.character-settings-primary{border-color:#4c6b87;background:linear-gradient(180deg,rgba(31,48,66,.66),rgba(15,25,37,.78))}
.character-settings-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}
.character-settings-section-head h3{margin:1px 0 0;font-size:14px}
.settings-section-kicker{display:block;color:#7fc4fa;font-size:9px;font-weight:900;letter-spacing:.09em}
.character-weapon-grid{
  display:grid;
  grid-template-columns:minmax(210px,1.4fr) minmax(135px,.8fr) minmax(135px,.8fr) minmax(190px,1fr);
  gap:9px;
  align-items:end;
}
.character-weapon-grid label{font-size:11px}
.character-weapon-grid select,.character-weapon-grid input[type=number]{width:100%;min-height:32px}
.character-auto-check{
  display:flex!important;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:32px;
  margin:0;
  padding:6px 9px;
  border:1px solid #3f566e;
  border-radius:8px;
  background:#0d1722;
}
.current-hp-context{
  display:grid;
  grid-template-columns:minmax(150px,1fr) 130px minmax(240px,2fr);
  gap:10px;
  align-items:center;
  margin-top:9px;
  padding:8px 10px;
  border:1px solid #8a6d3d;
  border-radius:9px;
  background:rgba(116,82,31,.16);
}
.current-hp-context[hidden]{display:none!important}
.current-hp-context>div{display:flex;flex-direction:column}
.current-hp-context b{font-size:13px;color:#ffe1a2}
.current-hp-context input{min-height:32px;width:100%}
.current-hp-context>span:last-child{font-size:10px;color:#c8b78f}
.current-hp-kicker{font-size:9px;color:#d6ad64;font-weight:900}
.character-auto-summary-expanded{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:6px;
}
.character-auto-summary-expanded .summary-card{
  min-width:0;
  padding:7px 8px;
  border:1px solid #34475d;
  border-radius:8px;
  background:#0d141d;
}
.character-auto-summary-expanded .summary-card span{display:block;font-size:9px;color:#8fa3b6}
.character-auto-summary-expanded .summary-card b{display:block;margin-top:1px;font-size:13px;color:#f4f8fb}
.character-auto-summary-expanded .summary-card-method{grid-column:span 2}
.settings-quiet-note{margin:7px 1px 0;color:#8296a8;font-size:10px;line-height:1.45}
.character-advanced-settings{
  border:1px solid #33465a;
  border-radius:10px;
  background:rgba(9,16,24,.62);
  overflow:hidden;
}
.character-advanced-settings>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  list-style:none;
  padding:9px 12px;
  font-size:12px;
  font-weight:800;
  color:#c3d3df;
}
.character-advanced-settings>summary::-webkit-details-marker{display:none}
.character-advanced-settings>summary span::before{content:"›";display:inline-block;margin-right:7px;color:#7fc4fa;transition:transform .15s ease}
.character-advanced-settings[open]>summary span::before{transform:rotate(90deg)}
.character-advanced-settings>summary small{font-size:9px;font-weight:700;color:#74899c}
.character-advanced-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 10px 10px}
.character-advanced-body .panel{border-color:#34485d;background:rgba(16,26,38,.72)}
.advanced-warning{grid-column:1/-1;padding:7px 9px;border-radius:7px;background:rgba(122,88,37,.15);color:#bea878;font-size:10px}
.advanced-db-badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.character-reference-panel .button-row{margin-top:4px}
@media(max-width:900px){
  .character-weapon-grid{grid-template-columns:1fr 1fr}
  .character-auto-summary-expanded{grid-template-columns:repeat(4,minmax(0,1fr))}
  .character-advanced-body{grid-template-columns:1fr}
}
@media(max-width:600px){
  .character-weapon-grid{grid-template-columns:1fr}
  .current-hp-context{grid-template-columns:1fr}
  .character-auto-summary-expanded{grid-template-columns:repeat(3,minmax(0,1fr))}
  .character-auto-summary-expanded .summary-card-method{grid-column:span 1}
}

/* Phase 61-G: 共通装備DB 閲覧優先レイアウト */
#page-gear-db .gear-db-layout{
  grid-template-columns:minmax(340px,.82fr) minmax(0,1.18fr);
  align-items:start;
}
.gear-db-browser-panel{min-width:0;overflow:hidden}
.gear-db-browser-title{align-items:center}
.gear-db-browser-title>div{display:flex;align-items:baseline;gap:8px}
.gear-db-browser-title h3{margin:0}
.gear-db-new-compact{width:auto!important;min-width:110px;white-space:nowrap}
#page-gear-db .gear-db-tools{
  grid-template-columns:minmax(0,1fr) 105px 118px!important;
  grid-template-areas:"search slot job" "owned clear clear";
  margin-bottom:8px;
}
#page-gear-db #gearDbOwnedOnly{grid-area:owned;width:100%}
#page-gear-db #gearDbOwnedOnly[aria-pressed="true"],
#gearDbAllOwned[aria-pressed="true"]{border-color:#d5aa32;color:#ffe27a;background:rgba(120,88,12,.28)}
#page-gear-db #gearDbClearFilters{grid-area:clear}
#page-gear-db #newGearButton{grid-area:auto}
.gear-db-list{display:grid;gap:6px;max-height:none!important;overflow:visible!important}
.gear-db-row{
  grid-template-columns:42px minmax(0,1fr) 40px;
  min-height:58px;
  padding:7px 8px;
}
.gear-db-row-main{min-width:0}
.gear-db-row strong{font-size:12px;line-height:1.25}
.gear-db-row small{margin-top:2px;line-height:1.25}
.gear-db-row-meta{color:#91a5b8!important;font-size:9px!important}
.gear-db-row-stats{color:#c5d2df!important;font-size:9px!important}
.gear-db-more-wrap{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(90,119,147,.24)}
.gear-db-more-button{min-width:150px}
.gear-db-main-empty,.gear-browser-empty{padding:18px 10px;text-align:center;color:var(--muted);border:1px dashed #34475d;border-radius:8px}

.gear-db-detail-heading{align-items:center}
.gear-db-detail-heading>div:first-child{display:flex;align-items:baseline;gap:8px}
.gear-db-detail-heading h3{margin:0}
.gear-db-detail-actions{display:flex;gap:6px}
.gear-db-detail-view{display:grid;gap:10px}
.gear-db-empty-detail{display:grid;place-items:center;min-height:240px;color:var(--muted);border:1px dashed #34475d;border-radius:10px}
.gear-detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border:1px solid #40566c;border-radius:10px;background:linear-gradient(135deg,rgba(22,38,53,.9),rgba(11,20,29,.86))}
.gear-detail-hero h3{margin:2px 0 4px;font-size:19px;color:#f7df9e}
.gear-detail-hero p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}
.gear-detail-slot{display:inline-block;color:#78b9ef;font-size:9px;font-weight:900;letter-spacing:.08em}
.gear-detail-owned{flex:0 0 auto;padding:5px 8px;border:1px solid rgba(88,181,121,.55);border-radius:999px;background:rgba(36,104,61,.22);color:#a8efbf;font-size:10px;font-weight:900}
.gear-detail-owned.not-owned{border-color:rgba(211,154,63,.55);background:rgba(126,80,22,.20);color:#ffd492}
.gear-detail-owned.unregistered{border-color:#40566c;background:rgba(41,57,72,.28);color:#9eb0c2}
.gear-detail-section{padding:10px 11px;border:1px solid rgba(69,91,112,.62);border-radius:9px;background:rgba(8,17,26,.44)}
.gear-detail-section h4{margin:0 0 7px;font-size:10px;color:#91b8d8;letter-spacing:.04em}
.gear-detail-props{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.gear-detail-props>span{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;padding:6px 7px;border:1px solid rgba(62,85,106,.52);border-radius:7px;background:rgba(17,29,40,.7)}
.gear-detail-props b{font-size:9px;color:#aebdca;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gear-detail-props strong{font-size:11px;color:#f3e5ba;white-space:nowrap}
.gear-detail-none{margin:0;color:var(--muted);font-size:10px}
.gear-detail-extra{display:flex;flex-wrap:wrap;gap:5px}
.gear-detail-extra span{padding:4px 7px;border:1px solid rgba(71,96,118,.5);border-radius:6px;font-size:9px;color:#c9d5df}
.gear-detail-augment-section{border-color:rgba(91,153,123,.58);background:rgba(25,73,48,.15)}
.gear-detail-augment-section p{margin:0;color:#8ee0ae;font-size:10px;line-height:1.65}
.gear-detail-owned-box{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px;border:1px solid rgba(194,154,64,.42);border-radius:10px;background:rgba(87,63,14,.12)}
.gear-detail-owned-box>div{min-width:0}
.gear-detail-owned-kicker{display:block;margin-bottom:2px;color:#d9b968;font-size:8px;font-weight:900;letter-spacing:.08em}
.gear-detail-owned-box strong{display:block;font-size:12px}
.gear-detail-owned-box .note{margin:3px 0 0;font-size:9px}
.gear-detail-owned-box .owned-register-button{flex:0 0 auto;min-width:155px}
.gear-db-edit-form[hidden]{display:none!important}
.gear-db-edit-form-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 10px;padding:8px 9px;border:1px solid rgba(214,172,70,.38);border-radius:8px;background:rgba(95,68,10,.13)}
.gear-db-edit-form-head strong{color:#f1d988;font-size:11px}

/* 全装備一覧モーダル */
.gear-browser-modal[hidden]{display:none!important}
.gear-browser-modal{position:fixed;inset:0;z-index:520;display:grid;place-items:center;padding:clamp(8px,2vw,24px)}
.gear-browser-backdrop{position:absolute;inset:0;background:rgba(2,7,13,.82);backdrop-filter:blur(4px)}
.gear-browser-dialog{position:relative;z-index:1;width:min(1050px,calc(100vw - 20px));height:min(860px,calc(100vh - 20px));display:flex;flex-direction:column;overflow:hidden;border:1px solid #48627b;border-radius:13px;background:#101b28;box-shadow:0 22px 60px rgba(0,0,0,.58)}
.gear-browser-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 15px 10px;border-bottom:1px solid rgba(110,140,169,.26)}
.gear-browser-header h2{margin:2px 0 0;font-size:18px}
.gear-browser-kicker{color:#78b9ef;font-size:9px;font-weight:900;letter-spacing:.09em}
.gear-browser-close{width:34px;min-height:34px;padding:0;border-radius:50%;font-size:20px}
.gear-browser-tools{display:grid;grid-template-columns:minmax(220px,1fr) 120px 140px auto auto;gap:7px;padding:10px 15px 7px;background:rgba(7,15,23,.54)}
.gear-browser-count{padding:0 15px 7px;color:var(--muted);font-size:10px}
.gear-browser-list{flex:1 1 auto;min-height:0;overflow:auto;display:grid;align-content:start;gap:6px;padding:0 15px 10px}
.gear-db-row-modal{grid-template-columns:50px minmax(0,1fr) 50px;min-height:64px}
.gear-db-row-modal .gear-db-row-stats{font-size:10px!important;white-space:normal;overflow:visible;text-overflow:clip}
.gear-browser-footer{display:flex;justify-content:flex-end;padding:9px 15px 12px;border-top:1px solid rgba(110,140,169,.24);background:rgba(7,15,23,.62)}
body.gear-browser-open{overflow:hidden}

@media(max-width:950px){
  #page-gear-db .gear-db-layout{grid-template-columns:1fr}
  .gear-detail-props{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  #page-gear-db .gear-db-tools{grid-template-columns:1fr 1fr!important;grid-template-areas:"search search" "slot job" "owned clear"}
  .gear-browser-tools{grid-template-columns:1fr 1fr}
  #gearDbAllSearch{grid-column:1/-1}
  .gear-detail-owned-box{align-items:stretch;flex-direction:column}
  .gear-detail-owned-box .owned-register-button{width:100%}
}
@media(max-width:520px){
  #page-gear-db .gear-db-tools{grid-template-columns:1fr!important;grid-template-areas:"search" "slot" "job" "owned" "clear"}
  .gear-db-browser-title{align-items:flex-start;gap:8px}
  .gear-db-new-compact{min-width:96px}
  .gear-detail-props{grid-template-columns:1fr 1fr}
  .gear-browser-tools{grid-template-columns:1fr}
  #gearDbAllSearch{grid-column:auto}
}

/* Phase 61-H: 所持装備 閲覧優先レイアウト */
#page-owned-gear .owned-layout{grid-template-columns:minmax(390px,.9fr) minmax(0,1.1fr);align-items:start}
.owned-detail-panel{min-width:0}
.owned-detail-panel .panel-title-row>div:first-child{display:flex;align-items:baseline;gap:8px}
.owned-detail-panel h3{margin:0}
.owned-edit-button{width:auto!important;min-width:128px;white-space:nowrap}
.owned-overview{display:grid;gap:10px}
.owned-overview.empty{min-height:260px;place-items:center;color:var(--muted);border:1px dashed #34475d;border-radius:10px}
.owned-overview-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border:1px solid #40566c;border-radius:10px;background:linear-gradient(135deg,rgba(22,38,53,.9),rgba(11,20,29,.86))}
.owned-overview-hero h3{margin:2px 0 4px;font-size:19px;color:#f7df9e}
.owned-overview-hero p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}
.owned-overview-slot{color:#78b9ef;font-size:9px;font-weight:900;letter-spacing:.07em}
.owned-overview-status{flex:0 0 auto;border:1px solid rgba(88,181,121,.55);border-radius:999px;background:rgba(36,104,61,.22);color:#a8efbf;padding:5px 9px;font-size:10px;font-weight:900}
.owned-overview-status.not-owned{border-color:rgba(211,154,63,.55);background:rgba(126,80,22,.20);color:#ffd492}
.owned-overview-section{padding:10px 11px;border:1px solid rgba(69,91,112,.62);border-radius:9px;background:rgba(8,17,26,.44)}
.owned-overview-section h4{margin:0 0 7px;font-size:10px;color:#91b8d8;letter-spacing:.04em}
.owned-overview-props{display:flex;flex-wrap:wrap;gap:5px}
.owned-overview-props>span{padding:5px 7px;border:1px solid rgba(62,85,106,.52);border-radius:7px;background:rgba(17,29,40,.7);font-size:9px;color:#e0e7ed}
.owned-overview-props b{color:#aebdca;margin-right:4px}
.owned-overview-settings{border-color:rgba(194,154,64,.35);background:rgba(87,63,14,.08)}
.owned-overview-setting-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.owned-overview-setting-grid>div{padding:7px 8px;border:1px solid rgba(92,108,123,.48);border-radius:7px;background:rgba(15,25,35,.72)}
.owned-overview-setting-grid span{display:block;color:var(--muted);font-size:8px}.owned-overview-setting-grid strong{display:block;margin-top:2px;font-size:11px;color:#f3e5ba}
.owned-overview-augments{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(194,154,64,.2)}
.owned-overview-chip{padding:4px 7px;border:1px solid rgba(91,153,123,.55);border-radius:6px;background:rgba(25,73,48,.15);color:#8ee0ae;font-size:9px}
.owned-overview-chip b{color:#b6e7c8}.owned-overview-none{color:var(--muted);font-size:9px}

/* 所持装備 個人設定モーダル */
.owned-settings-modal[hidden]{display:none!important}
.owned-settings-modal{position:fixed;inset:0;z-index:540;display:grid;place-items:center;padding:clamp(8px,2vw,24px)}
.owned-settings-backdrop{position:absolute;inset:0;background:rgba(2,7,13,.82);backdrop-filter:blur(4px)}
.owned-settings-dialog{position:relative;z-index:1;width:min(900px,calc(100vw - 20px));max-height:calc(100vh - 20px);display:flex;flex-direction:column;overflow:hidden;border:1px solid #48627b;border-radius:13px;background:#101b28;box-shadow:0 22px 60px rgba(0,0,0,.58)}
.owned-settings-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 15px 10px;border-bottom:1px solid rgba(110,140,169,.26)}
.owned-settings-header h2{margin:2px 0 0;font-size:18px}.owned-settings-kicker{color:#78b9ef;font-size:9px;font-weight:900;letter-spacing:.09em}
.owned-settings-close{width:34px;min-height:34px;padding:0;border-radius:50%;font-size:20px}
.owned-settings-body{flex:1 1 auto;min-height:0;overflow:auto;padding:12px 15px}
.owned-settings-basic{grid-template-columns:1fr 1fr;margin:10px 0}
.owned-settings-actions{margin-top:10px}
.owned-settings-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 15px 12px;border-top:1px solid rgba(110,140,169,.24);background:rgba(7,15,23,.62);font-size:9px;color:var(--muted)}
body.owned-settings-open{overflow:hidden}
@media(max-width:900px){#page-owned-gear .owned-layout{grid-template-columns:1fr}}
@media(max-width:600px){.owned-overview-setting-grid{grid-template-columns:1fr 1fr}.owned-settings-basic{grid-template-columns:1fr}.owned-settings-footer{align-items:stretch;flex-direction:column}.owned-settings-footer .primary{width:100%}}


/* Phase 61-I: My Gear states (candidate / owned) */
#page-owned-gear .section-heading .hint{color:#aebdca}
.owned-mini-status.candidate,
.owned-overview-status.candidate{border-color:rgba(211,154,63,.62);background:rgba(126,80,22,.22);color:#ffd492}
.gear-owned-mark.candidate{border-color:rgba(211,154,63,.55)!important;background:rgba(126,80,22,.18)!important;color:#ffd492!important}
.gear-detail-owned.candidate{border-color:rgba(211,154,63,.55);background:rgba(126,80,22,.20);color:#ffd492}
.gear-detail-register-actions{display:flex;gap:7px;flex:0 0 auto;align-items:stretch}
.gear-detail-register-actions .owned-register-button{min-width:150px;min-height:44px}
.candidate-register-button{border-color:rgba(211,154,63,.55);color:#ffd492;background:rgba(126,80,22,.13)}
.candidate-register-button:hover:not(:disabled){border-color:#e5b654;background:rgba(126,80,22,.25)}
#optimizerGearScope{min-width:170px}
@media(max-width:720px){
  .gear-detail-register-actions{width:100%;display:grid;grid-template-columns:1fr}
  .gear-detail-register-actions .owned-register-button{width:100%;min-width:0}
}
/* Phase 61-J: My Gear slot-panel selector */
#page-owned-gear .owned-tools-slot-mode{grid-template-columns:minmax(0,1fr) 170px}
#page-owned-gear .owned-slot-picker-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0 7px;padding:0 2px;color:var(--muted);font-size:12px}
#page-owned-gear .owned-slot-picker-head b{color:var(--gold);font-size:13px}
#page-owned-gear .owned-slot-grid{margin-bottom:9px}
#page-owned-gear .owned-slot-button .slot-name{font-size:10px;color:var(--muted)}
#page-owned-gear .owned-list-context{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 9px;margin-bottom:6px;border:1px solid rgba(232,198,106,.18);background:rgba(232,198,106,.045);border-radius:8px;font-size:11px}
#page-owned-gear .owned-list-context b{color:var(--text)}
#page-owned-gear .owned-list-context span{color:var(--muted)}
#page-owned-gear .owned-gear-list{max-height:350px}
#page-owned-gear .owned-empty-slot{padding:24px 12px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px}
@media(max-width:650px){#page-owned-gear .owned-tools-slot-mode{grid-template-columns:1fr}#page-owned-gear .owned-list-context{align-items:flex-start;flex-direction:column;gap:2px}}

/* Phase 61-K: WS / Support / Enemy reorganized layout */
#page-battle .section-heading{margin-bottom:10px}
.battle-layout-v2{display:grid;gap:10px}
.battle-ws-panel,.battle-support-panel,.battle-enemy-panel{min-width:0}
.battle-panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;padding-bottom:7px;border-bottom:1px solid rgba(88,116,143,.28)}
.battle-panel-title h3{margin:1px 0 0;font-size:15px}
.battle-panel-kicker{display:block;color:#78b9ef;font-size:8px;font-weight:900;letter-spacing:.10em}
.battle-detail-button{width:auto!important;min-width:86px;padding:6px 10px!important;font-size:10px!important;white-space:nowrap}
.battle-ws-grid{display:grid;grid-template-columns:minmax(230px,1.4fr) 120px minmax(180px,.75fr) 140px;gap:8px;align-items:end}
.battle-ws-grid label{min-width:0}
.battle-overwhelm-field{min-height:38px;margin:0!important;align-self:end}
.battle-ws-info{grid-column:1/-1;margin-top:1px}
.battle-lower-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:stretch}
.battle-support-panel,.battle-enemy-panel{height:100%}
.battle-support-groups{display:grid;gap:9px}
.battle-support-group{padding:8px 9px;border:1px solid rgba(65,88,109,.5);border-radius:8px;background:rgba(8,17,26,.32)}
.battle-support-group h4{margin:0 0 6px;color:#9eb8cf;font-size:9px;letter-spacing:.05em}
.battle-support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.battle-food-group{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:end;gap:8px}
.battle-food-group h4{margin:0 0 9px}
.battle-enemy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.battle-wide-field{grid-column:1/-1}
.battle-helper-note{margin:9px 0 0;padding-top:8px;border-top:1px solid rgba(88,116,143,.22);color:var(--muted);font-size:9px;line-height:1.5}

/* Advanced battle settings modal */
.battle-detail-modal[hidden]{display:none!important}
.battle-detail-modal{position:fixed;inset:0;z-index:560;display:grid;place-items:center;padding:clamp(8px,2vw,24px)}
.battle-detail-backdrop{position:absolute;inset:0;background:rgba(2,7,13,.84);backdrop-filter:blur(4px)}
.battle-detail-dialog{position:relative;z-index:1;width:min(900px,calc(100vw - 20px));max-height:calc(100vh - 20px);display:flex;flex-direction:column;overflow:hidden;border:1px solid #48627b;border-radius:13px;background:#101b28;box-shadow:0 22px 60px rgba(0,0,0,.58)}
.battle-detail-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 15px 10px;border-bottom:1px solid rgba(110,140,169,.26)}
.battle-detail-header h2{margin:2px 0 0;font-size:18px}
.battle-detail-kicker{color:#78b9ef;font-size:9px;font-weight:900;letter-spacing:.09em}
.battle-detail-close{width:34px;min-height:34px;padding:0;border-radius:50%;font-size:20px}
.battle-detail-body{flex:1 1 auto;min-height:0;overflow:auto;display:grid;gap:10px;padding:12px 15px}
.battle-detail-section{padding:11px;border:1px solid rgba(69,91,112,.62);border-radius:10px;background:rgba(8,17,26,.44)}
.battle-detail-section.highlight{border-color:rgba(214,172,70,.58);background:rgba(95,68,10,.10)}
.battle-detail-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:8px}
.battle-detail-section-head span{display:block;color:#78b9ef;font-size:8px;font-weight:900;letter-spacing:.08em}
.battle-detail-section-head h3{margin:2px 0 0;font-size:13px}
.battle-detail-section-head small{color:var(--muted);font-size:9px}
.battle-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.battle-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 15px 12px;border-top:1px solid rgba(110,140,169,.24);background:rgba(7,15,23,.62);font-size:9px;color:var(--muted)}
body.battle-detail-open{overflow:hidden}
@media(max-width:900px){.battle-ws-grid{grid-template-columns:1fr 1fr}.battle-ws-info{grid-column:1/-1}.battle-lower-grid{grid-template-columns:1fr}}
@media(max-width:620px){.battle-ws-grid,.battle-support-grid,.battle-enemy-grid,.battle-detail-grid{grid-template-columns:1fr}.battle-wide-field{grid-column:auto}.battle-food-group{grid-template-columns:1fr}.battle-food-group h4{margin-bottom:0}.battle-detail-footer{align-items:stretch;flex-direction:column}.battle-detail-footer .primary{width:100%}}


/* Phase 61-L: battle layout fine tuning */
@media(min-width:901px){
  .battle-ws-grid{
    grid-template-columns:minmax(220px,300px) 110px minmax(165px,210px) 130px minmax(280px,1fr);
    justify-content:start;
    align-items:end;
  }
  .battle-ws-info{
    grid-column:5;
    grid-row:1;
    align-self:stretch;
    margin-top:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
}
.battle-food-group{
  display:grid;
  grid-template-columns:70px minmax(0,1fr);
  align-items:center;
  gap:8px;
}
.battle-food-group h4{margin:0}
.battle-food-field{margin:0;min-width:0}
.battle-food-field > span{display:block;margin-bottom:4px;color:var(--muted);font-size:9px}
@media(max-width:620px){
  .battle-food-group{grid-template-columns:1fr}
  .battle-food-group h4{margin-bottom:0}
}


/* Phase 61-M: WS row split + food alignment */
.battle-ws-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  align-items:stretch;
}
.battle-ws-controls{
  display:grid;
  grid-template-columns:minmax(210px,1fr) 105px minmax(160px,.8fr) 125px;
  gap:8px;
  align-items:end;
  min-width:0;
}
.battle-ws-controls label{min-width:0}
.battle-ws-info{
  grid-column:2;
  grid-row:1;
  margin:0;
  align-self:stretch;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.battle-food-group{
  display:block;
}
.battle-food-field{
  display:block;
  width:min(100%,360px);
  margin:0;
}
.battle-food-field > span{margin-bottom:4px}
@media(max-width:1100px){
  .battle-ws-grid{grid-template-columns:1fr}
  .battle-ws-controls{grid-template-columns:minmax(200px,1fr) 100px minmax(150px,.8fr) 120px}
  .battle-ws-info{grid-column:1;grid-row:auto}
}
@media(max-width:760px){
  .battle-ws-controls{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .battle-ws-controls{grid-template-columns:1fr}
  .battle-food-field{width:100%}
}

/* Phase 61-N: keep WS info on the right half on normal PC widths */
@media (min-width:701px){
  #page-battle .battle-ws-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:12px;
    align-items:stretch;
  }
  #page-battle .battle-ws-controls{
    grid-column:1;
    grid-row:1;
    display:grid;
    grid-template-columns:minmax(135px,1fr) 105px minmax(125px,.8fr) 112px;
    gap:8px;
    align-items:end;
    min-width:0;
  }
  #page-battle .battle-ws-info{
    grid-column:2 !important;
    grid-row:1 !important;
    width:auto;
    min-width:0;
    margin:0;
    align-self:stretch;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
}
@media (max-width:900px) and (min-width:701px){
  #page-battle .battle-ws-controls{
    grid-template-columns:minmax(120px,1fr) 95px 105px;
  }
  #page-battle .ws-merit-rank-field[hidden]{display:none!important}
}
@media (max-width:700px){
  #page-battle .battle-ws-grid{grid-template-columns:1fr}
  #page-battle .battle-ws-controls{grid-column:1;grid-row:1;grid-template-columns:1fr 1fr}
  #page-battle .battle-ws-info{grid-column:1!important;grid-row:2!important}
}

/* Phase 61-O: robust WS 50/50 row; prevent WS info from pushing controls away */
@media (min-width:701px){
  #page-battle .battle-ws-grid{
    display:flex !important;
    flex-direction:row !important;
    align-items:stretch !important;
    gap:12px !important;
    width:100%;
    min-width:0;
  }
  #page-battle .battle-ws-controls{
    display:grid !important;
    grid-template-columns:minmax(0,1.35fr) minmax(90px,.75fr) minmax(0,1fr) minmax(105px,.8fr) !important;
    gap:8px !important;
    align-items:end !important;
    flex:1 1 0 !important;
    width:0 !important;
    min-width:0 !important;
    grid-column:auto !important;
    grid-row:auto !important;
    overflow:visible;
  }
  #page-battle .battle-ws-controls > label{
    min-width:0 !important;
    width:100%;
  }
  #page-battle .battle-ws-controls input,
  #page-battle .battle-ws-controls select{
    width:100%;
    min-width:0;
  }
  #page-battle .battle-ws-info{
    flex:1 1 0 !important;
    width:0 !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    grid-column:auto !important;
    grid-row:auto !important;
    align-self:stretch !important;
    display:grid !important;
    grid-template-columns:max-content minmax(0,1fr) !important;
    gap:5px 8px !important;
    align-content:center !important;
    align-items:center !important;
    overflow:hidden;
  }
  #page-battle .battle-ws-info span{
    white-space:nowrap;
  }
  #page-battle .battle-ws-info b{
    min-width:0;
    white-space:normal !important;
    overflow-wrap:anywhere;
  }
}
@media (max-width:700px){
  #page-battle .battle-ws-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  #page-battle .battle-ws-controls{
    width:auto !important;
    grid-template-columns:1fr 1fr !important;
  }
  #page-battle .battle-ws-info{
    width:auto !important;
    grid-column:1 !important;
    grid-row:2 !important;
    grid-template-columns:max-content minmax(0,1fr) !important;
  }
}
/* Phase 61-P: result + optimizer unified */
.result-summary-panel{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.5fr) auto;gap:18px;align-items:center}
.result-primary{padding:8px 18px;border-right:1px solid var(--line,#43506b)}
.result-primary span,.result-mini-grid span,.optimizer-before-after span{display:block;color:var(--muted);font-size:12px}
.result-primary strong{display:block;font-size:48px;line-height:1.05;color:#fff4cf;margin-top:5px}
.result-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.result-mini-grid>div{padding:10px 14px;border:1px solid var(--line,#43506b);border-radius:8px}
.result-mini-grid b{display:block;font-size:20px;margin-top:4px}
.result-breakdown-button{white-space:nowrap}
.result-optimizer-divider{display:flex;align-items:center;gap:12px;margin:18px 0 10px;font-weight:700;font-size:16px}.result-optimizer-divider:after{content:"";height:1px;background:var(--line,#43506b);flex:1}
.optimizer-before-after{display:grid;grid-template-columns:1fr auto 1fr 1fr;gap:14px;align-items:center;text-align:center}.optimizer-before-after strong{display:block;font-size:24px;margin-top:3px}.optimizer-arrow{font-size:26px}.optimizer-gain-summary strong{color:#fff4cf}
.result-breakdown-modal[hidden]{display:none}.result-breakdown-modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:24px}.result-breakdown-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72)}.result-breakdown-dialog{position:relative;width:min(900px,96vw);max-height:88vh;display:flex;flex-direction:column;background:var(--panel,#111827);border:1px solid var(--line,#43506b);border-radius:12px;overflow:hidden}.result-breakdown-header,.result-breakdown-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line,#43506b)}.result-breakdown-footer{justify-content:flex-end;border-bottom:0;border-top:1px solid var(--line,#43506b)}.result-breakdown-header h2{margin:0}.result-breakdown-close{border:0;background:transparent;color:inherit;font-size:26px;cursor:pointer}.result-breakdown-body{padding:18px;overflow:auto}
@media(max-width:900px){.result-summary-panel{grid-template-columns:1fr}.result-primary{border-right:0;border-bottom:1px solid var(--line,#43506b);padding-bottom:16px}.optimizer-before-after{grid-template-columns:1fr auto 1fr}.optimizer-gain-summary{grid-column:1/-1}}

/* Phase 62-A: special WS access */
.special-ws-unlock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.special-ws-unlock-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(255,255,255,.025)}
.special-ws-unlock-item input{flex:0 0 auto}.special-ws-unlock-item span{display:flex;min-width:0;flex-direction:column;gap:2px}.special-ws-unlock-item b{font-size:.9rem}.special-ws-unlock-item small{font-size:.72rem;opacity:.7}
@media(max-width:720px){.special-ws-unlock-grid{grid-template-columns:1fr}}

/* Phase 62-B: special WS unlocks moved out of advanced/manual section */
.special-ws-unlock-section{min-width:0}
.special-ws-unlock-section .special-ws-unlock-grid{margin-top:12px}
.special-ws-unlock-note{margin:0 0 2px}
@media (min-width:721px){
  .special-ws-unlock-section .special-ws-unlock-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Phase 62-C: compact special WS unlock card + button modal */
.compact-special-ws-card{padding:10px 12px!important}
.compact-special-ws-main{display:flex;align-items:center;justify-content:space-between;gap:12px}
.compact-special-ws-title{display:flex;align-items:baseline;gap:10px;min-width:0}
.compact-special-ws-title .settings-section-kicker{margin:0;white-space:nowrap}
.compact-special-ws-title h3{margin:0;font-size:1rem;white-space:nowrap}
.compact-special-ws-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.special-ws-count{font-size:.78rem;opacity:.8;white-space:nowrap}
.special-ws-settings-button{min-width:72px;padding:6px 14px!important}
.compact-special-ws-note{margin:5px 0 0;font-size:.75rem;opacity:.66;line-height:1.35}

.special-ws-modal[hidden]{display:none}
.special-ws-modal{position:fixed;inset:0;z-index:2300;display:grid;place-items:center;padding:24px}
.special-ws-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72)}
.special-ws-modal-dialog{position:relative;width:min(820px,94vw);max-height:82vh;display:flex;flex-direction:column;background:var(--panel,#111827);border:1px solid var(--line,#43506b);border-radius:12px;overflow:hidden}
.special-ws-modal-header,.special-ws-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line,#43506b)}
.special-ws-modal-header h2{margin:0;font-size:1.12rem}
.special-ws-modal-close{border:0;background:transparent;color:inherit;font-size:26px;cursor:pointer}
.special-ws-modal-body{padding:14px 16px;overflow:auto}
.special-ws-modal-footer{border-bottom:0;border-top:1px solid var(--line,#43506b)}
.special-ws-modal-footer>span{font-size:.82rem;opacity:.8}
.special-ws-modal .special-ws-unlock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}
.special-ws-modal .special-ws-unlock-item{appearance:none;width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(255,255,255,.025);color:inherit;text-align:left;cursor:pointer}
.special-ws-modal .special-ws-unlock-item span{display:flex;min-width:0;flex-direction:column;gap:1px}
.special-ws-modal .special-ws-unlock-item b{font-size:.84rem}
.special-ws-modal .special-ws-unlock-item small{font-size:.68rem;opacity:.68}
.special-ws-modal .special-ws-unlock-item em{font-style:normal;font-size:.68rem;opacity:.65;white-space:nowrap}
.special-ws-modal .special-ws-unlock-item.active{border-color:rgba(255,211,79,.65);background:rgba(255,211,79,.08)}
.special-ws-modal .special-ws-unlock-item.active em{opacity:1;color:#ffe28a}
@media(max-width:760px){
  .compact-special-ws-main{align-items:flex-start}
  .compact-special-ws-title{flex-direction:column;gap:1px}
  .special-ws-modal .special-ws-unlock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){.special-ws-modal .special-ws-unlock-grid{grid-template-columns:1fr}}

/* Phase 62-D: compact manual/advanced settings card + modal */
.compact-advanced-card{padding:10px 12px!important}
.compact-advanced-main{display:flex;align-items:center;justify-content:space-between;gap:12px}
.compact-advanced-title{display:flex;align-items:baseline;gap:10px;min-width:0}
.compact-advanced-title .settings-section-kicker{margin:0;white-space:nowrap}
.compact-advanced-title h3{margin:0;font-size:1rem;white-space:nowrap}
.compact-advanced-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.advanced-card-note{font-size:.78rem;opacity:.72;white-space:nowrap}
.advanced-settings-button{min-width:72px;padding:6px 14px!important}
.compact-advanced-note{margin:5px 0 0;font-size:.75rem;opacity:.66;line-height:1.35}
.character-advanced-modal{z-index:2310}
.character-advanced-modal-dialog{width:min(980px,94vw);max-height:86vh}
.character-advanced-modal-body{overflow:auto}
.character-advanced-modal-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);gap:10px;margin-top:10px}
.character-advanced-modal-grid .panel{min-width:0;border-color:#34485d;background:rgba(16,26,38,.72)}
.character-advanced-modal-grid .stat-input-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){
  .character-advanced-modal-grid{grid-template-columns:1fr}
  .character-advanced-modal-grid .stat-input-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .compact-advanced-main{align-items:flex-start}
  .compact-advanced-title{flex-direction:column;gap:1px}
}
@media(max-width:520px){
  .compact-advanced-actions{align-items:flex-end;flex-direction:column;gap:4px}
  .character-advanced-modal-grid .stat-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* Phase 66-A: self diagnostics */
.header-tools{display:flex;align-items:center;gap:10px}
.diagnostic-trigger{
  border:1px solid rgba(150,190,230,.42);background:rgba(12,28,48,.76);color:#e8f4ff;
  border-radius:8px;padding:7px 14px;font-weight:700;cursor:pointer
}
.diagnostic-trigger:hover{background:rgba(28,57,88,.9)}
.diagnostics-modal[hidden]{display:none!important}
.diagnostics-modal{position:fixed;inset:0;z-index:99990;display:grid;place-items:center;padding:24px}
.diagnostics-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7)}
.diagnostics-dialog{
  position:relative;width:min(980px,96vw);max-height:90vh;display:flex;flex-direction:column;
  border:1px solid rgba(128,174,215,.45);border-radius:14px;background:#0b1521;color:#eef6ff;
  box-shadow:0 22px 70px rgba(0,0,0,.5);overflow:hidden
}
.diagnostics-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 20px 14px;border-bottom:1px solid rgba(128,174,215,.2)}
.diagnostics-header h2{margin:2px 0 3px}
.diagnostics-header p{margin:0;color:#aebfd0}
.diagnostics-kicker{font-size:11px;letter-spacing:.14em;color:#72b8e8}
.diagnostics-close{border:0;background:transparent;color:#dcecff;font-size:28px;line-height:1;cursor:pointer}
.diagnostics-toolbar{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid rgba(128,174,215,.15)}
.diagnostics-last-run{margin-left:auto;color:#9caec0;font-size:12px}
.diagnostics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 20px}
.diagnostic-summary-card{border:1px solid rgba(128,174,215,.2);border-radius:9px;padding:9px 12px;background:rgba(255,255,255,.025);display:flex;align-items:center;justify-content:space-between}
.diagnostic-summary-card span{color:#9fb3c7;font-size:12px}
.diagnostic-summary-card b{font-size:18px}
.diagnostics-groups{padding:0 20px 18px;overflow:auto;min-height:230px}
.diagnostics-empty{padding:38px 12px;text-align:center;color:#91a5b8}
.diagnostic-group{margin-top:10px;border:1px solid rgba(128,174,215,.18);border-radius:10px;overflow:hidden}
.diagnostic-group-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:rgba(65,105,140,.12)}
.diagnostic-group-head h3{font-size:14px;margin:0}
.diagnostic-group-head span{font-size:12px;color:#a8bacb}
.diagnostic-test{display:grid;grid-template-columns:28px minmax(180px,1fr) minmax(260px,1.35fr);gap:8px;align-items:start;padding:9px 12px;border-top:1px solid rgba(128,174,215,.1)}
.diagnostic-test-status{font-size:16px;font-weight:800;text-align:center}
.diagnostic-test.ok .diagnostic-test-status{color:#72d59a}
.diagnostic-test.warn .diagnostic-test-status{color:#e9c568}
.diagnostic-test.fail .diagnostic-test-status{color:#ff7f86}
.diagnostic-test-name{font-weight:650}
.diagnostic-test-detail{font-size:12px;color:#aebfd0;word-break:break-word}
.diagnostics-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid rgba(128,174,215,.18);color:#9fb1c2;font-size:12px}
body.diagnostics-open{overflow:hidden}
@media(max-width:700px){
  .diagnostics-modal{padding:8px}.diagnostics-dialog{width:100%;max-height:96vh}
  .diagnostics-summary{grid-template-columns:repeat(2,1fr)}
  .diagnostic-test{grid-template-columns:26px 1fr}.diagnostic-test-detail{grid-column:2}
  .diagnostics-toolbar{flex-wrap:wrap}.diagnostics-last-run{width:100%;margin-left:0}
}

/* Phase 68-A: 監査済み20WS 実測調整ページ */
.audit-adjust-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:16px}.audit-side{align-self:start;position:sticky;top:12px}.audit-type-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.audit-type-tab{padding:10px 6px;border:1px solid var(--border-color,#34445c);background:#111b2b;color:#cbd6e7;border-radius:8px;font-weight:700}.audit-type-tab.active{background:#1d4f78;color:#fff;box-shadow:0 0 0 1px #69b7ff inset}.audit-ws-list{display:grid;gap:6px;max-height:66vh;overflow:auto}.audit-ws-button{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:10px;border:1px solid #334158;border-radius:8px;background:#101827;color:#dbe6f7}.audit-ws-button.active{border-color:#78c5ff;background:#183654}.audit-ws-button small{opacity:.75}.audit-main{display:grid;gap:14px}.audit-title-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.audit-title-row h3{margin:0}.audit-type-badge{padding:5px 10px;border-radius:999px;background:#20334d;color:#bfe0ff;font-weight:700}.audit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.audit-grid label,.audit-wide label{display:grid;gap:5px;font-size:.9rem}.audit-wide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.audit-case-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px}.audit-table-wrap{overflow:auto;border:1px solid #344159;border-radius:10px}.audit-table{width:100%;border-collapse:collapse;min-width:1020px}.audit-table th,.audit-table td{padding:7px;border-bottom:1px solid #2f3d53;text-align:center}.audit-table th{position:sticky;top:0;background:#192438;z-index:1}.audit-table input,.audit-table select{min-width:88px;width:100%}.audit-table td:nth-child(8) input{min-width:160px}.audit-row-delete{border:0;background:#622b35;color:white;border-radius:6px;padding:5px 9px}.audit-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.audit-summary>div{padding:12px;border:1px solid #344159;border-radius:9px;background:#111a29}.audit-summary span{display:block;font-size:.78rem;opacity:.75}.audit-summary strong{display:block;margin-top:5px;font-size:1.3rem}.audit-summary .ok{color:#86e6a6}.audit-summary .warn{color:#ffd66b}.audit-summary .bad{color:#ff8e98}.audit-judgement{padding:12px;border-left:4px solid #69b7ff;background:#14243a;border-radius:6px}.audit-actions{display:flex;flex-wrap:wrap;gap:8px}.audit-file-button{position:relative;overflow:hidden}.audit-file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.audit-notice{position:fixed;right:22px;bottom:22px;z-index:9999;padding:12px 18px;background:#173f2f;border:1px solid #69d49a;border-radius:9px;color:#e8fff1;box-shadow:0 8px 30px #0008}.audit-help{font-size:.88rem;line-height:1.7}.audit-help b{color:#bfe0ff}@media(max-width:900px){.audit-adjust-layout{grid-template-columns:1fr}.audit-side{position:static}.audit-ws-list{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr))}.audit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.audit-ws-list,.audit-grid,.audit-wide,.audit-summary{grid-template-columns:1fr}.audit-type-tabs{grid-template-columns:1fr}.audit-title-row{align-items:flex-start;flex-direction:column}}

/* Phase 68-B: WS実測調整 使い方ガイド */
.audit-page-heading{align-items:center}.audit-heading-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.audit-guide-open{white-space:nowrap}.audit-guide-side{width:100%;margin:4px 0 8px}.audit-help-caution{font-size:.78rem;opacity:.75}
.audit-guide-modal[hidden]{display:none!important}.audit-guide-modal{position:fixed;inset:0;z-index:100020;display:grid;place-items:center;padding:20px}.audit-guide-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.76);backdrop-filter:blur(2px)}.audit-guide-dialog{position:relative;width:min(1120px,97vw);max-height:94vh;display:flex;flex-direction:column;background:#0c1725;color:#edf6ff;border:1px solid #45627e;border-radius:16px;box-shadow:0 28px 90px rgba(0,0,0,.65);overflow:hidden}.audit-guide-header{display:flex;justify-content:space-between;gap:18px;padding:20px 24px 16px;border-bottom:1px solid rgba(134,181,221,.2);background:linear-gradient(135deg,rgba(27,75,113,.42),rgba(12,23,37,.2))}.audit-guide-header h2{margin:2px 0 5px}.audit-guide-header p{margin:0;color:#adbed0}.audit-guide-kicker{font-size:.72rem;letter-spacing:.14em;color:#74c5ff;font-weight:800}.audit-guide-close{border:0;background:transparent;color:#eaf5ff;font-size:30px;line-height:1;cursor:pointer}.audit-guide-body{padding:20px 24px;overflow:auto}.audit-guide-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:stretch}.audit-guide-flow article{border:1px solid #304761;border-radius:12px;background:rgba(18,31,48,.88);padding:13px;text-align:center}.audit-guide-flow article strong{display:block;margin:7px 0 4px;color:#dff2ff}.audit-guide-flow article p{margin:0;font-size:.82rem;color:#aebfd0;line-height:1.55}.audit-guide-arrow{align-self:center;color:#6fc1ff;font-size:24px;font-weight:900}.audit-guide-illustration{height:72px;position:relative;margin:auto;max-width:128px;border-radius:10px;background:linear-gradient(145deg,#182c43,#0c1725);border:1px solid #365675;overflow:hidden}.audit-guide-illustration.select span{position:absolute;left:13px;top:14px;width:67px;height:42px;border:2px solid #6dbcf3;border-radius:6px}.audit-guide-illustration.select i{position:absolute;right:13px;top:22px;width:22px;height:22px;border-radius:50%;background:#f3ca63;box-shadow:0 0 0 5px rgba(243,202,99,.12)}.audit-guide-illustration.select b{position:absolute;left:31px;top:27px;color:#dff3ff}.audit-guide-illustration.condition{padding:12px}.audit-guide-illustration.condition span{display:block;height:10px;margin:5px;border-radius:5px;background:#4f7598}.audit-guide-illustration.condition span:nth-child(2){width:72%;background:#6ebded}.audit-guide-illustration.condition span:nth-child(3){width:88%;background:#8ecf9b}.audit-guide-illustration.data i{position:absolute;bottom:13px;width:18px;border-radius:4px 4px 0 0;background:#4c83ae}.audit-guide-illustration.data i:nth-child(1){left:17px;height:24px}.audit-guide-illustration.data i:nth-child(2){left:46px;height:39px;background:#6ebded}.audit-guide-illustration.data i:nth-child(3){left:75px;height:31px;background:#f0c75c}.audit-guide-illustration.data b{position:absolute;right:8px;top:8px;font-size:.72rem;color:#dbefff}.audit-guide-illustration.compare span{position:absolute;left:16px;height:9px;border-radius:6px}.audit-guide-illustration.compare span:nth-child(1){top:23px;width:80px;background:#6fc1ff}.audit-guide-illustration.compare span:nth-child(2){top:43px;width:68px;background:#f0c75c}.audit-guide-illustration.compare em{position:absolute;right:8px;top:26px;color:#ecf7ff;font-style:normal;font-weight:800}.audit-guide-section{margin-top:18px;padding-top:18px;border-top:1px solid rgba(134,181,221,.16)}.audit-guide-section h3{margin:0 0 12px}.audit-guide-two-col{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}.audit-example-card{border:1px solid #344d66;border-radius:12px;padding:15px;text-align:center;background:#101d2d}.audit-example-label{display:inline-block;padding:3px 8px;border-radius:999px;background:#263c55;color:#bdddff;font-size:.72rem}.audit-example-card strong{display:block;margin:7px}.audit-damage-pop{font-size:2rem;font-weight:900;color:#ffd966;text-shadow:0 2px 0 #8e5c00,0 0 10px rgba(255,217,102,.35)}.audit-calc-box{font-size:2rem;font-weight:900;color:#8bd7ff;border:1px solid #3f7799;border-radius:8px;padding:3px;background:#0c1725}.audit-example-card p{margin:8px 0 0;color:#aebfd0;font-size:.83rem}.audit-example-equals{font-size:26px;color:#7bcaff}.audit-guide-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.audit-guide-tabs button{border:1px solid #38536e;background:#122136;color:#c9d9e8;border-radius:8px;padding:8px 14px;cursor:pointer;font-weight:700}.audit-guide-tabs button.active{background:#1e527c;border-color:#78c5ff;color:white}.audit-guide-type-panel{display:none;border:1px solid #334b64;border-radius:10px;padding:14px;background:#101b2a}.audit-guide-type-panel.active{display:block}.audit-guide-type-panel p{color:#b2c2d2}.audit-mini-row{display:flex;gap:7px;flex-wrap:wrap}.audit-mini-row span{padding:6px 9px;border-radius:7px;background:#1b2b3e;border:1px solid #334d68;font-size:.8rem}.audit-guide-warning{border:1px solid rgba(235,190,85,.28);background:rgba(235,190,85,.05);border-radius:12px;padding:16px;margin-top:20px}.audit-guide-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.audit-guide-checks p{margin:0;padding:12px;border-radius:9px;background:#101b29;border:1px solid #34485c;line-height:1.55}.audit-guide-checks b{color:#ffe090}.audit-guide-note{margin:12px 0 0;color:#c9d5df}.audit-guide-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 24px;border-top:1px solid rgba(134,181,221,.2);background:#0a1420;color:#9fb2c3}.audit-guide-footer button{white-space:nowrap}body.audit-guide-opened{overflow:hidden}
@media(max-width:900px){.audit-page-heading{align-items:flex-start}.audit-heading-actions{justify-content:flex-start}.audit-guide-flow{grid-template-columns:1fr 1fr}.audit-guide-arrow{display:none}.audit-guide-checks{grid-template-columns:1fr}.audit-guide-two-col{grid-template-columns:1fr}.audit-example-equals{transform:rotate(90deg);text-align:center}.audit-guide-dialog{max-height:97vh}.audit-guide-modal{padding:7px}}
@media(max-width:560px){.audit-guide-flow{grid-template-columns:1fr}.audit-guide-header,.audit-guide-body{padding-left:14px;padding-right:14px}.audit-guide-footer{align-items:stretch;flex-direction:column;padding:12px 14px}.audit-guide-footer button{width:100%}.audit-heading-actions{width:100%}.audit-guide-open{width:100%}}

/* Phase 68-D: 食事・支援DB連動 */
.battle-effect-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.battle-effect-grid .check{display:flex;align-items:center;gap:.5rem;min-height:42px;}
.battle-effect-summary{margin-top:12px;padding:12px 14px;border:1px solid rgba(98,168,255,.35);border-radius:10px;background:rgba(18,36,60,.72);line-height:1.7;font-size:.92rem;}
.battle-effect-summary strong{color:#ffe49a;}

/* Phase70-A: enemy database */
.enemy-db-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;margin-bottom:10px}.enemy-db-toolbar label{margin:0}.enemy-db-status{margin:0 0 12px;padding:10px 12px;border:1px solid rgba(134,171,205,.35);border-radius:10px;background:rgba(13,33,51,.55);font-size:.88rem;line-height:1.5}.enemy-db-status[data-status="verified"]{border-color:rgba(77,194,125,.55)}.enemy-db-status[data-status="estimated"],.enemy-db-status[data-status="provisional"]{border-color:rgba(228,177,70,.65)}.enemy-db-status[data-status="unknown"]{border-color:rgba(220,100,100,.55)}@media(max-width:700px){.enemy-db-toolbar{grid-template-columns:1fr}.enemy-db-toolbar button{width:100%}}
.enemy-defense-estimator{margin:12px 0 16px;padding:14px;border:1px solid var(--line,#39445a);border-radius:12px;background:rgba(255,255,255,.025)}
.enemy-defense-estimator h4{margin:0}.enemy-estimator-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(220px,.7fr);gap:14px}.enemy-estimator-grid textarea{width:100%;resize:vertical}.enemy-estimator-range{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.enemy-estimator-result{margin-top:12px;padding:12px;border-radius:10px;background:rgba(0,0,0,.18);line-height:1.65}.enemy-estimator-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}.enemy-estimator-summary>div{padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:8px}.enemy-estimator-summary span{display:block;font-size:.78rem;opacity:.72}.enemy-estimator-summary strong{display:block;margin-top:3px;font-size:1.18rem}@media(max-width:760px){.enemy-estimator-grid{grid-template-columns:1fr}.enemy-estimator-range{grid-template-columns:1fr}.enemy-estimator-summary{grid-template-columns:1fr 1fr}}
