/* ==== ダークモード用カラートークン ====
   サイト全体で使う「地の色・文字色・境界線色」をCSS変数化し、ここでライト/ダークの
   2セットを定義する。タイプ色・HPバー色・天候/フィールドの淡色バッジなど、色そのものに
   意味がある部分(タイプ相性など)はあえてトークン化せず、ライト/ダークどちらでも同じ色の
   ままにしている(実際のバッジ配色は変更していない)。
   既定はOSの配色設定(prefers-color-scheme)に追従し、ハンバーガーメニューの切り替えボタンで
   手動上書きできる(<html data-theme="light"|"dark">をJS側で付け外しする)。 */
:root{
  --dameke-page-bg:#f5f7fb;
  --dameke-surface:#fff;
  --dameke-surface-alt:#f9fafb;
  --dameke-surface-alt2:#f3f4f6;
  --dameke-surface-subtle:#f1f5f9;
  --dameke-surface-faint:#f8fafc;
  --dameke-surface-faint2:#fafafa;
  --dameke-border:#e5e7eb;
  --dameke-border-strong:#d1d5db;
  --dameke-border-subtle:#cbd5e1;
  --dameke-border-slate:#e2e8f0;
  --dameke-text:#111827;
  --dameke-text-secondary:#374151;
  --dameke-text-heading:#1f2937;
  --dameke-text-slate:#334155;
  --dameke-text-muted:#6b7280;
  --dameke-text-mid:#4b5563;
  --dameke-attacker-tint:#fff8f8;
  --dameke-attacker-tint-border:#f1d8d8;
  --dameke-defender-tint:#f7faff;
  --dameke-defender-tint-border:#d7e3f4;
  --dameke-text-faint:#9ca3af;
  --dameke-tint-red-bg:#fef2f2;
  --dameke-tint-red-border:#fecaca;
  --dameke-tint-red-text:#b91c1c;
  --dameke-tint-green-bg:#f0fdf4;
  --dameke-tint-green-border:#bbf7d0;
  --dameke-tint-blue-bg:#eff6ff;
  --dameke-tint-blue-border:#bfdbfe;
  --dameke-learncmp-b-bg:#eff6ff;
  --dameke-learncmp-b-border:#bfdbfe;
  --dameke-tint-emerald-bg:#ecfdf5;
  --dameke-tint-emerald-text:#059669;
  --dameke-tint-yellow-bg:#fef9c3;
  --dameke-tint-yellow-text:#713f12;
  --dameke-btn-bg:#eef2ff;
  --dameke-btn-border:#c7d2fe;
  --dameke-btn-text:#1e3a8a;
  --dameke-hover-tint:#eef2ff;
  --dameke-text-label:#475569;
  --dameke-text-label2:#64748b;
  --dameke-ok-text:#166534;
  --dameke-good-text:#15803d;
  --dameke-bad-text:#b91c1c;
  --dameke-up-text:#dc2626;
  --dameke-down-text:#2563eb;
  --dameke-link-text:#2563eb;
  --dameke-emerald-border:#a7f3d0;
  --dameke-emerald-strong-text:#065f46;
  --dameke-active-bg:#1f2937;
  --dameke-active-text:#fff;
  --dameke-accent-soft-bg:#e0e7ff;
  --dameke-accent-soft-bg-hover:#c7d2fe;
  --dameke-accent-soft-text:#3730a3;
  --dameke-tint-amber-bg:#fffbeb;
  --dameke-tint-amber-border:#fde68a;
  --dameke-tint-amber-text:#b45309;
  --dameke-hl-correct-bg:#eef7ec;
  --dameke-hl-incorrect-bg:#fdecec;
  --dameke-hl-high-bg:#fef2f2;
  --dameke-hl-high-text:#b91c1c;
  --dameke-hl-same-bg:#fffbeb;
  --dameke-hl-same-text:#b45309;
  --dameke-hl-low-bg:#eff6ff;
  --dameke-hl-low-text:#1d4ed8;
  --dameke-judge-hit-bg:#2f9e58;
  --dameke-judge-near-bg:#d4a017;
  --dameke-judge-miss-bg:#9ca3af;
  --dameke-judge-text:#fff;
  --dameke-chart-grid-outer:#c7ccd4;
  --dameke-chart-tick:#b0b6c0;
  --dameke-chart-frame:#d8dce3;
  --dameke-hover-filter:brightness(.95);
  --dameke-header-edge:0 1px 3px rgba(15,23,42,.18);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --dameke-page-bg:#0f172a;
    --dameke-surface:#1e293b;
    --dameke-surface-alt:#1a2436;
    --dameke-surface-alt2:#26324a;
    --dameke-surface-subtle:#1e293b;
    --dameke-surface-faint:#1a2436;
    --dameke-surface-faint2:#1a2436;
    --dameke-border:#334155;
    --dameke-border-strong:#475569;
    --dameke-border-subtle:#3b4a5e;
    --dameke-border-slate:#334155;
    --dameke-text:#f1f5f9;
    --dameke-text-secondary:#cbd5e1;
    --dameke-text-heading:#e2e8f0;
    --dameke-text-slate:#cbd5e1;
    --dameke-text-muted:#94a3b8;
    --dameke-text-mid:#a8b3c2;
    --dameke-text-faint:#7c8797;
    --dameke-attacker-tint:#3a2229;
    --dameke-attacker-tint-border:#6b3946;
    --dameke-defender-tint:#1a3866;
    --dameke-defender-tint-border:#2f5c9e;
    --dameke-tint-red-bg:#3a2124;
    --dameke-tint-red-border:#6b3538;
    --dameke-tint-red-text:#fca5a5;
    --dameke-tint-green-bg:#16291f;
    --dameke-tint-green-border:#2f5942;
    --dameke-tint-blue-bg:#182a3f;
    --dameke-tint-blue-border:#2f4a6b;
    --dameke-learncmp-b-bg:#1a3866;
    --dameke-learncmp-b-border:#2f5c9e;
    --dameke-tint-emerald-bg:#122a20;
    --dameke-tint-emerald-text:#34d399;
    --dameke-tint-yellow-bg:#4a3f10;
    --dameke-tint-yellow-text:#fde68a;
    --dameke-btn-bg:#24345a;
    --dameke-btn-border:#3b4f82;
    --dameke-btn-text:#c7d2fe;
    --dameke-hover-tint:#2a3a5c;
    --dameke-text-label:#b4c0cf;
    --dameke-text-label2:#94a3b8;
    --dameke-ok-text:#4ade80;
    --dameke-good-text:#4ade80;
    --dameke-bad-text:#f87171;
    --dameke-up-text:#f87171;
    --dameke-down-text:#60a5fa;
    --dameke-link-text:#60a5fa;
    --dameke-emerald-border:#2f5942;
    --dameke-emerald-strong-text:#6ee7b7;
    --dameke-active-bg:#cbd5e1;
    --dameke-active-text:#0f172a;
    --dameke-accent-soft-bg:#312e81;
    --dameke-accent-soft-bg-hover:#3730a3;
    --dameke-accent-soft-text:#c7d2fe;
    --dameke-tint-amber-bg:#3a2f10;
    --dameke-tint-amber-border:#6b5416;
    --dameke-tint-amber-text:#fcd34d;
    --dameke-hl-correct-bg:#1c3520;
    --dameke-hl-incorrect-bg:#401e1f;
    --dameke-hl-high-bg:#3a2124;
    --dameke-hl-high-text:#fca5a5;
    --dameke-hl-same-bg:#3a2f10;
    --dameke-hl-same-text:#fcd34d;
    --dameke-hl-low-bg:#182a3f;
    --dameke-hl-low-text:#93c5fd;
    --dameke-judge-hit-bg:#2b8a50;
    --dameke-judge-near-bg:#b8860b;
    --dameke-judge-miss-bg:#56627a;
    --dameke-judge-text:#fff;
    --dameke-chart-grid-outer:#526277;
    --dameke-chart-tick:#6b7a8f;
    --dameke-chart-frame:#3b4a5e;
    --dameke-hover-filter:brightness(1.18);
    --dameke-header-edge:0 1px 0 rgba(148,163,184,.28), 0 6px 16px rgba(0,0,0,.45);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --dameke-page-bg:#0f172a;
  --dameke-surface:#1e293b;
  --dameke-surface-alt:#1a2436;
  --dameke-surface-alt2:#26324a;
  --dameke-surface-subtle:#1e293b;
  --dameke-surface-faint:#1a2436;
  --dameke-surface-faint2:#1a2436;
  --dameke-border:#334155;
  --dameke-border-strong:#475569;
  --dameke-border-subtle:#3b4a5e;
  --dameke-border-slate:#334155;
  --dameke-text:#f1f5f9;
  --dameke-text-secondary:#cbd5e1;
  --dameke-text-heading:#e2e8f0;
  --dameke-text-slate:#cbd5e1;
  --dameke-text-muted:#94a3b8;
  --dameke-text-mid:#a8b3c2;
  --dameke-text-faint:#7c8797;
  --dameke-attacker-tint:#3a2229;
  --dameke-attacker-tint-border:#6b3946;
  --dameke-defender-tint:#1a3866;
  --dameke-defender-tint-border:#2f5c9e;
  --dameke-tint-red-bg:#3a2124;
  --dameke-tint-red-border:#6b3538;
  --dameke-tint-red-text:#fca5a5;
  --dameke-tint-green-bg:#16291f;
  --dameke-tint-green-border:#2f5942;
  --dameke-tint-blue-bg:#182a3f;
  --dameke-tint-blue-border:#2f4a6b;
  --dameke-learncmp-b-bg:#1a3866;
  --dameke-learncmp-b-border:#2f5c9e;
  --dameke-tint-emerald-bg:#122a20;
  --dameke-tint-emerald-text:#34d399;
  --dameke-tint-yellow-bg:#4a3f10;
  --dameke-tint-yellow-text:#fde68a;
  --dameke-btn-bg:#24345a;
  --dameke-btn-border:#3b4f82;
  --dameke-btn-text:#c7d2fe;
  --dameke-hover-tint:#2a3a5c;
  --dameke-text-label:#b4c0cf;
  --dameke-text-label2:#94a3b8;
  --dameke-ok-text:#4ade80;
  --dameke-good-text:#4ade80;
  --dameke-bad-text:#f87171;
  --dameke-up-text:#f87171;
  --dameke-down-text:#60a5fa;
  --dameke-link-text:#60a5fa;
  --dameke-emerald-border:#2f5942;
  --dameke-emerald-strong-text:#6ee7b7;
  --dameke-active-bg:#cbd5e1;
  --dameke-active-text:#0f172a;
  --dameke-accent-soft-bg:#312e81;
  --dameke-accent-soft-bg-hover:#3730a3;
  --dameke-accent-soft-text:#c7d2fe;
  --dameke-tint-amber-bg:#3a2f10;
  --dameke-tint-amber-border:#6b5416;
  --dameke-tint-amber-text:#fcd34d;
  --dameke-hl-correct-bg:#1c3520;
  --dameke-hl-incorrect-bg:#401e1f;
  --dameke-hl-high-bg:#3a2124;
  --dameke-hl-high-text:#fca5a5;
  --dameke-hl-same-bg:#3a2f10;
  --dameke-hl-same-text:#fcd34d;
  --dameke-hl-low-bg:#182a3f;
  --dameke-hl-low-text:#93c5fd;
  --dameke-judge-hit-bg:#2b8a50;
  --dameke-judge-near-bg:#b8860b;
  --dameke-judge-miss-bg:#56627a;
  --dameke-judge-text:#fff;
  --dameke-chart-grid-outer:#526277;
  --dameke-chart-tick:#6b7a8f;
  --dameke-chart-frame:#3b4a5e;
  --dameke-hover-filter:brightness(1.18);
  --dameke-header-edge:0 1px 0 rgba(148,163,184,.28), 0 6px 16px rgba(0,0,0,.45);
  color-scheme:dark;
}
/* ==== base layout ==== */
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--dameke-page-bg); color: var(--dameke-text-heading); }
.app-header { padding: 18px 24px; background: #111827; color: #fff; box-shadow: var(--dameke-header-edge); }
/* ヘッダーは常に暗色背景のため、ダークモードでは本文の背景と色が近く境目がわかりにくい。
   ダークモードのみ、下端に細い明るめの線と影を付けて境目を示す(--dameke-header-edge)。 */
.app-header h1 { margin: 0 0 4px; font-size: 22px; }
.app-header p { margin: 0; color: #d1d5db; } /* ヘッダーは常に暗色背景固定のため、文字色もテーマに連動させない */
.layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 16px; padding: 16px; align-items: start; }
/* 画面幅の切り替え(@media)はem指定: 標準の文字サイズ(16px)では1250px・760pxなどの従来の幅で切り替わり、
   ブラウザの文字サイズ設定を大きくしている場合は、その分広い画面幅から狭い画面用の配置になる。 */
/* ダメージ計算: 入力欄の列は、攻撃側・防御側の枠(各320px)が横に並ぶ幅(710px)を下回らないようにする。
   (710px=44.375rem、320px=20rem。文字サイズ設定に合わせて伸びる)
   画面幅が約1468px以上なら従来どおり左右半々、それより狭い(1251〜1467px)ときは結果欄の列が狭くなる。 */
.layout.layout-calc { grid-template-columns: minmax(44.375rem,1fr) minmax(0,1fr); }
body:not(.v082h-ready) .layout { visibility: hidden; }
.card,.sub-card { background:var(--dameke-surface); border: 1px solid var(--dameke-border); border-radius: 14px; box-shadow: 0 1px 3px rgba(15,23,42,.08); }
.card { padding: 16px; }
.sub-card { padding: 12px; margin: 12px 0; }
h2,h3 { margin: 0 0 10px; }
h2 { font-size: 20px; }
h3 { font-size: 15px; color: var(--dameke-text-secondary); }
.grid { display: grid; gap: 10px; margin-bottom: 10px; }
.grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.grid.four { grid-template-columns: repeat(4,minmax(0,1fr)); }
label { display: grid; gap: 4px; font-size: 12px; color: var(--dameke-text-mid); }
label.check { display: flex; gap: 6px; align-items: center; min-height: 34px; }
input,select,button { font: inherit; border: 1px solid var(--dameke-border-strong); border-radius: 8px; padding: 7px 8px; background:var(--dameke-surface); min-width: 0; }
button { cursor: pointer; background: var(--dameke-btn-bg); border-color: var(--dameke-btn-border); color: var(--dameke-btn-text); font-weight: 600; }
/* ホバー時は背景色を差し替えず、明るさだけを変える(個別に背景色・文字色を指定しているボタンの
   配色を上書きして文字が読めなくなるのを防ぐため。ダークモードでは明るく、ライトでは暗くする)。 */
button:hover:not(:disabled) { filter: var(--dameke-hover-filter); }
.actions { display: flex; gap: 10px; margin-top: 14px; }
.actions button:first-child { background: #2563eb; border-color: #2563eb; color: #fff; }
.operation-panel{border:1px dashed var(--dameke-border-subtle);border-radius:10px;padding:10px;background:var(--dameke-surface-faint)}
.operation-title{font-size:12px;font-weight:700;color:var(--dameke-text-label);margin-bottom:8px}
.operation-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.operation-display{font-size:12px;color:var(--dameke-text-slate);background:var(--dameke-surface);border:1px solid var(--dameke-border-slate);border-radius:8px;padding:8px;min-height:34px}
.v082h-calc-table{width:100%;border-collapse:collapse;margin:0 0 10px;font-size:12px;table-layout:fixed;}
.v082h-calc-table th{text-align:left;padding:5px 8px;background:var(--dameke-surface-subtle);color:var(--dameke-text-slate);font-weight:700;border:1px solid var(--dameke-border-slate);white-space:nowrap;}
.v082h-calc-table th:first-child{width:132px;}
.v082h-calc-table td{padding:5px 8px;border:1px solid var(--dameke-border-slate);color:var(--dameke-text-heading);overflow-wrap:break-word;}

/* ==== v082h main UI ==== */
.v082h-hide{display:none!important;}
.v082h-side-tabs{display:none;gap:6px;margin-bottom:8px;box-sizing:border-box;width:100%;max-width:320px;min-width:0;}
.v082h-side-tabs button{box-sizing:border-box;flex:1 1 0;width:0;min-width:0;padding:6px;border-radius:8px;font-weight:700;font-size:.82rem;background:var(--dameke-surface-subtle);border:1px solid var(--dameke-border-subtle);color:var(--dameke-text-secondary);}
.v082h-side-tabs button.active{background:#2563eb;border-color:#2563eb;color:#fff;}
.v082h-root-basic{width:100%;box-sizing:border-box;}
.v082h-basic-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;box-sizing:border-box;gap:10px;margin-top:10px;}
/* 2列表示時は幅320px(20rem。ブラウザの文字サイズ設定に合わせて伸びる)を基本とし、列幅がそれより狭いとき(1251〜1400px前後の画面)だけ列幅に収める */
.v082h-box{margin:0;width:20rem;max-width:100%;}
.v082h-box-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.v082h-box-head h3{margin:0;}
.v082h-attacker,.v082h-section-details.v082h-attacker{background:var(--dameke-attacker-tint);border-color:var(--dameke-attacker-tint-border);}
.v082h-defender,.v082h-section-details.v082h-defender{background:var(--dameke-defender-tint);border-color:var(--dameke-defender-tint-border);}
.v082h-attacker .v082h-ability-panel,.v082h-attacker .v082h-stats-panel,.v082h-attacker .v082h-double-fold{background:var(--dameke-attacker-tint);border-color:var(--dameke-attacker-tint-border);}
.v082h-defender .v082h-ability-panel,.v082h-defender .v082h-stats-panel,.v082h-defender .v082h-double-fold{background:var(--dameke-defender-tint);border-color:var(--dameke-defender-tint-border);}
.v082h-box input,.v082h-box select{min-width:0;}
.v082h-pokemon-field{margin-bottom:6px;}
.v082h-search-combo{position:relative;}
.v082h-search-input{width:100%;}
.v082h-search-list{position:absolute;top:100%;left:0;right:0;z-index:1000;margin:2px 0 0;padding:2px;list-style:none;background:var(--dameke-surface);border:1px solid var(--dameke-border-subtle);border-radius:8px;box-shadow:0 4px 12px rgba(15,23,42,.14);max-height:220px;overflow-y:auto;overscroll-behavior:contain;}
.v082h-search-list-up{top:auto;bottom:100%;margin:0 0 2px;}
.v082h-search-item{padding:5px 8px;font-size:12px;font-weight:400;border-radius:5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v082h-search-item:hover,.v082h-search-item.active{background:var(--dameke-hover-tint);}
.v082h-type-grid{margin-top:4px;}
.v082h-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px;}
.v082h-details,.v082h-section-details{border:1px solid var(--dameke-border-slate);border-radius:12px;padding:8px 10px;margin:8px 0;background:var(--dameke-surface-faint);}
/* 基本(攻撃側・防御側)の枠と「場」の折り畳みの間隔 */
.v082h-root-basic + .v082h-section-details{margin-top:20px;}
.v082h-details>summary,.v082h-section-details>summary{cursor:pointer;font-weight:700;color:var(--dameke-text-slate);}
.v082h-type-effects{font-size:.86rem;opacity:.82;padding:6px 8px;background:var(--dameke-surface-faint);}
.v082h-type-effects>summary{font-weight:600;color:var(--dameke-text-muted);}
.v082h-zone label{margin-top:8px;}
.v082h-toolbar{display:flex;gap:10px;align-items:stretch;justify-content:space-between;flex-wrap:wrap;width:100%;box-sizing:border-box;margin:8px 0 12px;}

/* 攻防交代 button: pill shape, gradient, subtle depth */
.dameke-toolbar-btn{border-radius:999px;padding:0 20px;font-size:.88rem;font-weight:700;color:#fff;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:38px;}
.dameke-toolbar-btn-swap{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 2px 6px rgba(37,99,235,.35);transition:transform .12s,box-shadow .12s;}
.dameke-toolbar-btn-swap::before{content:'⇄';font-size:1rem;}
.dameke-toolbar-btn-swap:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 10px rgba(37,99,235,.45);}
.dameke-toolbar-btn-swap:active{transform:translateY(0);box-shadow:0 1px 3px rgba(37,99,235,.35);}

.dameke-toolbar-btn-new{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 2px 6px rgba(5,150,105,.35);transition:transform .12s,box-shadow .12s;margin-bottom:12px;}
.dameke-toolbar-btn-new::before{content:'+';font-size:1.1rem;font-weight:800;}
.dameke-toolbar-btn-new:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 10px rgba(5,150,105,.45);}
.dameke-toolbar-btn-new:active{transform:translateY(0);box-shadow:0 1px 3px rgba(5,150,105,.35);}

/* Grouped 2-button frames (履歴 / ポケ管理): small label + segmented-control pair */
.dameke-btn-group{display:inline-flex;flex-direction:column;gap:3px;align-items:flex-start;}
.dameke-btn-group-label{font-size:.62rem;font-weight:700;color:var(--dameke-text-faint);letter-spacing:.04em;padding-left:2px;}
.dameke-btn-group-buttons{display:flex;box-shadow:0 1px 4px rgba(15,23,42,.18);border:1px solid rgba(15,23,42,.06);border-radius:999px;}
.dameke-btn-group-btn{border:none;padding:7px 8px;font-size:.8rem;font-weight:700;cursor:pointer;color:#fff;width:auto;min-width:76px;/* 幅76px(文字が大きく入り切らないときだけ広がる) */text-align:center;transition:transform .12s,box-shadow .12s;position:relative;box-sizing:border-box;white-space:nowrap;}
.dameke-btn-group-btn:first-child{border-radius:999px 0 0 999px;}
.dameke-btn-group-btn:last-child{border-radius:0 999px 999px 0;}
.dameke-btn-group-save{background:#059669;}
.dameke-btn-group-load{background:#0891b2;}
.dameke-btn-group-save:hover{background:#059669;}
.dameke-btn-group-load:hover{background:#0891b2;}
.dameke-btn-group-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(15,23,42,.28);z-index:1;}
.dameke-btn-group-btn:active{transform:translateY(0);box-shadow:none;}
.v082h-muted{font-size:.86rem;opacity:.72;}
.v082h-ability-panel{border:1px solid var(--dameke-border);border-radius:12px;padding:8px 10px;margin:8px 0;background:var(--dameke-surface);}
.v082h-minititle{font-weight:700;color:var(--dameke-text-slate);margin-bottom:6px;}
.v082h-minititle-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.v082h-minititle-row .v082h-minititle{margin-bottom:0;}
.v082h-stats-adjust-btn{border:none;border-radius:6px;padding:6px 12px;font-size:.72rem;font-weight:700;color:#fff;cursor:pointer;white-space:nowrap;box-sizing:border-box;height:30px;transition:transform .12s,box-shadow .12s;}
.v082h-stats-adjust-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(15,23,42,.28);}
.v082h-stats-adjust-btn-attacker{background:#dc2626;}
.v082h-stats-adjust-btn-attacker:hover{background:#dc2626;}
.v082h-stats-adjust-btn-defender{background:#2563eb;}
.v082h-stats-adjust-btn-defender:hover{background:#2563eb;}
.v082h-ability-buttons{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;align-items:center;}
.v082h-ability-chip,.operation-buttons button{font-size:.86rem;padding:3px 8px;border-radius:999px;background:var(--dameke-surface-faint);border:1px solid var(--dameke-border-subtle);color:var(--dameke-text-slate);font-weight:500;box-shadow:none;}
.v082h-ability-chip:hover,.operation-buttons button:hover{background:var(--dameke-hover-tint);filter:none;}
.v082h-inline-check{display:flex;align-items:center;gap:6px;margin-top:6px;}
/* ---- 採用率上位の提案 ---- */
/* 特性ボタン・性格ボタン・候補一覧の右に添える採用率。 */
.dameke-usage-rate{font-size:10px;font-weight:400;color:var(--dameke-text-muted);margin-left:4px;white-space:nowrap;}
/* 性格の採用率上位(性格欄のすぐ下)。1行に入る分だけ見せる: 折り返した分は高さの外に出て隠れる。 */
.dameke-usage-natures{display:flex;flex-wrap:wrap;gap:3px;height:22px;overflow:hidden;margin:-4px 0 8px;}
.dameke-usage-natures[hidden]{display:none;}
.dameke-usage-natures .dameke-usage-rate{margin-left:3px;}
.dameke-usage-natures .v082h-ability-chip{flex:0 0 auto;box-sizing:border-box;height:22px;padding:0 6px;font-size:11px;line-height:20px;white-space:nowrap;}
/* 技・持ち物の候補一覧の先頭に出す採用率上位。背景色は変えない(下の区切り線で従来の候補と分かれるため)。押したとき・選択中の色も通常の候補と同じ。 */
.v082h-search-item.dameke-usage-top{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.dameke-usage-top-name{min-width:0;overflow:hidden;text-overflow:ellipsis;}
.dameke-usage-sep{height:0;border-top:1px solid var(--dameke-border-subtle);margin:3px 2px;list-style:none;}
/* ポケモン管理の編集欄: 採用率の表示(シングル/ダブルの切り替え) */
.dameke-pokeedit-usage-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;margin:.5rem 0 .65rem;font-size:.76rem;color:var(--dameke-text-muted);}
.dameke-pokeedit-usage-bar[hidden]{display:none;}
.dameke-pokeedit-usage-bar-label{font-weight:600;}
.dameke-pokemon-edit-nature-row .v082h-search-combo{max-width:calc(50% - 8px);}
.dameke-pokemon-edit-nature-row .v082h-search-combo select{max-width:none;}
/* シングル/ダブルの切り替え(「入力」見出しと同じ行の右寄せ)。 */
.dameke-format-switch{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dameke-text-muted);}
.dameke-format-switch span,.dameke-format-switch label{display:inline;cursor:pointer;font-size:12px;color:inherit;width:auto;}
.dameke-format-switch input{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 auto;width:38px;height:21px;min-height:0;margin:0;padding:0;border-radius:999px;background:var(--dameke-border-slate);border:1px solid var(--dameke-border-slate);cursor:pointer;transition:background-color .15s;}
.dameke-format-switch input::before{content:"";position:absolute;top:1px;left:1px;width:17px;height:17px;border-radius:50%;background:#fff;transition:left .15s ease;}
.dameke-format-switch input:checked{background:#2563eb;border-color:#2563eb;}
.dameke-format-switch input:checked::before{left:18px;}
.dameke-format-switch input:not(:checked) ~ .dameke-format-double,.dameke-format-switch:has(input:checked) .dameke-format-single{font-weight:400;}
.dameke-format-switch:has(input:not(:checked)) .dameke-format-single,.dameke-format-switch input:checked ~ .dameke-format-double{font-weight:700;color:var(--dameke-text-slate);}
/* 持ち物簡易入力(持ち物欄と「持ち物なし」の間の折り畳み)。2列に並べ、文字サイズを大きくして
   入りきらない幅では1列に折り返す。 */
/* 見出しは「持ち物」の項目名(14px)より一段小さくし、中の項目名(12px)と同じ文字サイズにする。 */
.dameke-item-quick>summary{font-size:12px;}
.dameke-item-quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));gap:8px;margin-top:8px;}
.dameke-item-quick-grid > label{min-width:0;}
.dameke-item-quick-grid select{width:100%;min-width:0;}
.v082h-stats-panel{border:1px solid var(--dameke-border);border-radius:12px;padding:8px 10px;margin:8px 0;background:var(--dameke-surface);}
.v082h-stats-panel>label{margin:0 0 8px;grid-template-columns:1fr;}
.v082h-nature-field{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:12px;color:inherit;}
.v082h-nature-field select{width:190px;max-width:190px;padding:2px 5px;font-size:12px;}
.v082h-ev-remaining{font-size:.8rem;font-weight:700;color:var(--dameke-ok-text);margin-top:6px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.v082h-ev-remaining-over{color:var(--dameke-up-text);}
.v082h-ev-preset{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0;}
.v082h-ev-select{max-width:78px;font-size:.8rem;padding:5px 4px;}
/* 幅が足りないときは現HP欄(130px)の方を縮めて、簡易入力ボタンがはみ出さないようにする */
.v082h-hp-row{margin:8px 0;align-items:start;grid-template-columns:minmax(0,130px) 1fr;}
.v082h-hp-row input{font-size:.68rem;}
.v082h-hp-buttons{display:flex;gap:4px;flex-wrap:nowrap;}
.v082h-hp-buttons button{padding:3px 5px;font-size:.72rem;}
/* 文字サイズを大きく設定した端末で表が枠に入り切らないときは、表だけを横にスクロールさせる
   (各行の最小幅をrem指定。標準の文字サイズでは最も狭い画面でも最小幅に達しないので見た目は変わらない)。
   左右・下のpadding/margin 2pxは、入力欄のフォーカス枠がスクロール枠で切れないための余白(全体の位置・大きさは不変)。 */
.v082h-stat-table{display:grid;gap:4px;margin:0 -2px 6px;padding:0 2px 2px;overflow-x:auto;}
.v082h-stat-table > .v082h-stat-row{min-width:10.875rem;}
/* 左端のラベル列(種族値・努力値など)はラベルの文字(.66rem)と一緒に伸びるようrem指定(標準の文字サイズでは34px) */
.v082h-stat-row{display:grid;grid-template-columns:2.125rem repeat(6,minmax(0,1fr));gap:2px;align-items:center;}
.v082h-stat-boost{color:var(--dameke-up-text) !important;font-weight:800;}
.v082h-stat-drop{color:var(--dameke-down-text) !important;font-weight:800;}
.v082h-stat-head span{font-size:.72rem;font-weight:700;color:var(--dameke-text-label2);text-align:center;}
.v082h-stat-label{font-size:.66rem;font-weight:700;color:var(--dameke-text-label);white-space:nowrap;margin-right:4px;}
.v082h-stat-cell{min-width:0;}
.v082h-stat-readonly{display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--dameke-text-muted);background:var(--dameke-surface-alt2);border-radius:3px;min-height:1.6em;}
.v082h-stat-cell input,.v082h-stat-cell select{width:100%;min-width:0;padding:2px 1px;font-size:.7rem;text-align:center;}
.v082h-num-picker{display:none;}
.v082h-cond-wrap-outer{margin:0;}
.v082h-cond-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}



.v082h-cond-grid{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;align-content:start;}
.v082h-cond-grid.v082h-cond-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.v082h-cond-grid label{min-width:0;font-size:.68rem;}
.v082h-cond-grid label.check{align-items:center;gap:3px;padding-top:0;min-height:26px;}
.v082h-cond-grid input[type=checkbox]{margin:0;flex:none;}
.v082h-cond-grid label select{width:auto;max-width:100%;min-width:0;padding:3px 4px;font-size:.68rem;}
.v082h-cond-grid label input[type=number]{width:52px;min-width:0;padding:3px 4px;font-size:.68rem;}
.v082h-double-fold{margin-top:6px;}
.v082h-double-fold>summary{font-size:.85rem;font-weight:600;}
.v082h-result-panel{background:var(--dameke-surface-alt);border:1px solid var(--dameke-border);border-radius:14px;padding:12px;margin-bottom:12px;}
/* 技①・技②をそれぞれ独立したカードとして表示するときの入れ物。カード自体の見た目
   (背景・枠線・角丸)は.v082h-result-panelが担うので、ここはレイアウト用の素通し要素。 */
.v082h-move-cards-holder{display:flex;flex-direction:column;gap:0;}
/* 結果枠内の技①/技②切り替えタブ。.v082h-side-tabs(攻撃側/防御側の狭画面切り替え)と同じ
   2ボタンの見た目だが、常時表示かつ配色は識別上の意味を持たない中間グレーにしている。 */
.v082h-move-tabs{display:flex;gap:6px;margin-bottom:10px;}
.v082h-move-tabs button{flex:1 1 0;padding:6px;border-radius:8px;font-weight:700;font-size:.82rem;background:var(--dameke-surface-subtle);border:1px solid var(--dameke-border-subtle);color:var(--dameke-text-secondary);cursor:pointer;}
.v082h-move-tabs button.active{background:#6b7280;border-color:#6b7280;color:#fff;}
.v082h-move-tab-panel.v082h-hide{display:none;}
.v082h-move-card-label{font-weight:800;font-size:.78rem;color:var(--dameke-accent, #2563eb);letter-spacing:.02em;margin-bottom:6px;}
/* 下部固定枠(v082hResultPanel)専用: 左下から右上への対角線で背景を二分し、
   左側(左上寄りの三角形)を天候、右側(右下寄りの三角形)をフィールドの状態に応じた
   淡い色で塗り分ける。JS側(updateResultPanelFieldTint)が --dameke-weather-tint /
   --dameke-field-tint の2つのCSS変数に色を設定し、実際の三角形分割はここのclip-pathで
   行う(サイズ・余白・レイアウトには一切影響しない)。 */
#v082hResultPanel{
  --dameke-weather-tint:var(--dameke-surface-alt);
  --dameke-field-tint:var(--dameke-surface-alt);
  position:relative;
  isolation:isolate;
  background-color:var(--dameke-weather-tint);
  transition:background-color .2s ease;
}
#v082hResultPanel::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  clip-path:polygon(0 100%, 100% 0, 100% 100%);
  background-color:var(--dameke-field-tint);
  transition:background-color .2s ease;
}
.v082h-hp-infoline{font-weight:800;font-size:.92rem;color:var(--dameke-text-heading);margin-bottom:6px;}
.v082h-result-sidegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:center;gap:0 10px;margin-top:8px;}
.v082h-result-col{display:flex;flex-direction:column;}
.v082h-hpbar-wrap{margin:8px 0 10px;}
.v082h-subbar-outer{display:flex;justify-content:flex-end;margin-bottom:3px;}
.v082h-hpbar-track.v082h-subbar-track{width:25%;height:7px;border-radius:4px;}
.v082h-hpbar-track{position:relative;height:14px;border-radius:7px;background:#3f3f46;overflow:hidden;display:flex;}
.v082h-hpbar-seg{height:100%;}
.v082h-hpbar-solid{opacity:1;}
.v082h-hpbar-uncertain{opacity:.45;}
.v082h-hp-green{background:#22c55e;}
.v082h-hp-yellow{background:#eab308;}
.v082h-hp-red{background:#ef4444;}
.v082h-hp-faint{background:transparent;}
.v082h-hpbar-numsrow{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:3px;}
.v082h-hpbar-nums{font-size:.78rem;color:var(--dameke-text-slate);font-weight:600;}
.v082h-hpbar-recovery{font-size:.74rem;color:#16a34a;font-weight:600;text-align:right;white-space:nowrap;}
.v082h-result-title{font-weight:800;font-size:1.02rem;margin-bottom:8px;line-height:1.45;}
.v082h-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;}
.v082h-result-item{display:grid;grid-template-columns:104px minmax(0,1fr);gap:8px;align-items:start;padding:3px 0;border-bottom:1px dashed var(--dameke-border);}
.v082h-result-key{font-size:.78rem;color:var(--dameke-text-label2);}
.v082h-result-value{font-weight:700;word-break:break-word;}

/* ==== pokemon form-change UI (sex field / form chips) ==== */
.v091-sex-field{margin-top:6px;display:flex;align-items:center;gap:6px;font-size:12px;color:inherit}
.v091-sex-select{width:98px;max-width:98px;padding:2px 5px;border-radius:8px;border:1px solid rgba(125,125,125,.25);background:var(--dameke-surface);color:var(--dameke-text);font-size:12px;line-height:1.6;}
#damekePokeEdit_gender{line-height:1.6;}
.v091-form-panel{position:relative;z-index:5;display:block;margin:6px 0 10px;padding:5px 7px;border:1px solid rgba(125,125,125,.22);border-radius:10px;background:rgba(127,127,127,.045)}
.v091-form-panel-empty{display:none!important}
.v091-form-panel-title{font-size:11px;color:var(--dameke-text-muted);font-weight:600;cursor:pointer;list-style:none}
.v091-form-panel-title::-webkit-details-marker{display:none}
.v091-form-panel-title::before{content:'▾';display:inline-block;width:1.1em;color:var(--dameke-text-faint)}
.v091-form-panel:not([open]) .v091-form-panel-title::before{content:'▸'}
.v091-form-body{margin-top:5px;display:flex;flex-direction:column;gap:5px}
.v091-form-buttons{display:flex;flex-wrap:wrap;gap:4px}
.v091-form-chip{position:relative;z-index:6;pointer-events:auto;border:1px solid rgba(89,113,164,.28);background:rgba(96,125,180,.08);border-radius:999px;padding:3px 8px;font-size:12px;line-height:1.2;cursor:pointer;color:inherit;user-select:none}
.v091-form-chip:hover{background:rgba(96,125,180,.16)}
.v091-form-chip.active{background:#285ea8;color:#fff;border-color:#285ea8;font-weight:600}

/* ==== item/move label styling (v101j2) ==== */
.dameke-main-control-label{font-size:14px;font-weight:700;color:var(--dameke-text-slate);line-height:1.25;}
.dameke-main-control-label > select,.dameke-main-control-label .v082h-search-input{font-size:12px;font-weight:400;color:var(--dameke-text);padding:6px 8px;min-height:32px;width:100%;margin-top:4px;}

@media(max-width:78.125em){
  .layout,.layout.layout-calc{grid-template-columns:minmax(0,1fr)}
  .layout{padding-bottom:calc(var(--v082h-fixed-panel-h, 180px) + 24px);}
  .result-card{padding-bottom:calc(var(--v082h-fixed-panel-h, 180px) + 30px);}
  /* 下部固定の結果欄は画面の高さの60%までにし、それを超える(文字サイズが大きい・画面の高さが低い)ときは欄の中をスクロールさせる */
  #v082hResultPanel{position:fixed;bottom:0;left:0;right:0;z-index:50;margin:0;border-radius:0;box-shadow:0 -6px 16px rgba(15,23,42,.22);padding:6px 10px;max-height:60vh;overflow-y:auto;overscroll-behavior:contain;}
  #v082hResultPanel .v082h-result-title{font-size:.8rem;margin-bottom:2px;}
  #v082hResultPanel .v082h-result-move-line{font-size:.76rem;margin-bottom:3px;}
  #v082hResultPanel .v082h-hp-infoline{font-size:.82rem;margin-bottom:2px;}
  #v082hResultPanel .v082h-hp-infoline2{font-size:.78rem;color:var(--dameke-text-slate);margin-bottom:4px;}
  #v082hResultPanel .v082h-result-sidegrid{gap:0 6px;margin-top:4px;}
  #v082hResultPanel .v082h-result-item{padding:1px 0;}
  #v082hResultPanel .v082h-result-key{font-size:.68rem;}
  #v082hResultPanel .v082h-result-value{font-size:.72rem;}
  #v082hResultPanel .v082h-pokemon-thumb,#v082hResultPanel .v082h-pokemon-thumb-missing{width:60px;height:60px;}
  #v082hResultPanel .v082h-item-thumb{width:20px;height:20px;}

  /* ポケモン管理・パーティ管理: below 1250px (this app's existing "narrow layout" breakpoint,
     matching where .layout itself drops to a single column) the fixed-width button columns
     beside the card's main content squeeze it into a column too narrow for the detail rows/stat
     table to wrap sensibly (text was breaking every 1-2 characters, or the button columns
     themselves ended up stacking into 4 separate rows instead of a 2x2 grid). Stack the buttons
     below the content instead, so the text gets the full card width to work with -- same
     information, just rearranged rather than shown side-by-side. */
  .dameke-pokemon-card{flex-wrap:wrap;}
  .dameke-pokemon-card-main{order:2;width:100%;flex:1 1 100% !important;}
  .dameke-pokemon-card-loadbtns{order:3;display:grid !important;grid-template-columns:1fr 1fr;gap:6px;width:100%;}
  .dameke-pokemon-card-actions{order:4;display:grid !important;grid-template-columns:1fr 1fr;gap:6px;width:100%;margin-top:-6px;}

  /* Party member grid: kept at 2 columns even on narrow screens -- the member card itself has
     been made compact enough (chips instead of full labeled rows, a 2x2 move grid) that 2
     columns x 3 rows fits, which matters since the goal here is a whole party visible on one
     screen without scrolling. */
}
@media(max-width:47.5em){
  body{font-size:15px;}
  .app-header{padding:12px 14px 26px;} /* ハンバーガーメニュー下のテーマ切り替えスイッチが
    ヘッダー下端にぎりぎりはみ出さないよう、スマホ幅では下側の余白を広めに取る */
  .layout{padding:10px;gap:10px;}
  .v082h-side-tabs{display:flex;}
  .v082h-basic-grid{grid-template-columns:minmax(0,1fr);width:auto;}
  .v082h-box{width:auto;}
  .v082h-cond-wrap{grid-template-columns:1fr;}
  body.v082h-tab-attacker .v082h-basic-grid .v082h-defender,
  body.v082h-tab-attacker .v082h-cond-wrap .v082h-defender{display:none;}
  body.v082h-tab-defender .v082h-basic-grid .v082h-attacker,
  body.v082h-tab-defender .v082h-cond-wrap .v082h-attacker{display:none;}
  input[data-v082h-picker]{display:none;}
  .v082h-num-picker{display:block;width:100%;font-size:.72rem;padding:3px 4px;}
  .grid.four{grid-template-columns:repeat(2,minmax(0,1fr));}
  .v082h-cond-grid.v082h-cond-grid-cols-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .v082h-result-grid{grid-template-columns:1fr;}
  .v082h-result-item{grid-template-columns:88px minmax(0,1fr);}

  .dameke-pokemon-combined-stat-table{font-size:.72rem !important;gap:3px 4px !important;}
  .dameke-party-card{padding:8px !important;}
  .dameke-party-list{gap:12px !important;}
}
label:has(> #critical){margin-top:10px;}
/* Checkbox labels were stretching to fill their grid cell / flex container width (the default
   for a grid/flex item), making the whole empty space to the right of the visible text
   clickable too -- not just the checkbox and its label text. Constraining these to their own
   content width fixes that, on both the calculator's condition checkboxes (a grid) and
   standalone ones elsewhere (a flex container), without needing to special-case each context. */
label:has(input[type="checkbox"]){justify-self:start;width:fit-content;}
.dameke-move-filter-toggle{font-size:.7rem;color:#94a3b8;min-height:auto;margin-top:2px;gap:4px;opacity:.75;}
.dameke-move-filter-toggle input{width:12px;height:12px;}
select.dameke-type-select{transition:background-color .15s,color .15s;}
.dameke-type-none{background:linear-gradient(90deg,#eef0f3,#d1d5db);color:#111827 !important;}
.dameke-type-normal{background:linear-gradient(90deg,#e2e2cf,#c8c8a8);color:#111827 !important;}
.dameke-type-fire{background:linear-gradient(90deg,#fac7a5,#f29a5c);color:#111827 !important;}
.dameke-type-water{background:linear-gradient(90deg,#bcd3fa,#7ea3ee);color:#111827 !important;}
.dameke-type-electric{background:linear-gradient(90deg,#fdeba8,#f7d34e);color:#111827 !important;}
.dameke-type-grass{background:linear-gradient(90deg,#c3e8b3,#8ecf6b);color:#111827 !important;}
.dameke-type-ice{background:linear-gradient(90deg,#d6f2f2,#96dede);color:#111827 !important;}
.dameke-type-fighting{background:linear-gradient(90deg,#e8a9a5,#cc6f69);color:#111827 !important;}
.dameke-type-poison{background:linear-gradient(90deg,#ddb4dd,#b876b8);color:#111827 !important;}
.dameke-type-ground{background:linear-gradient(90deg,#f2e4bd,#dfc274);color:#111827 !important;}
.dameke-type-flying{background:linear-gradient(90deg,#ddd3fa,#b3a0ee);color:#111827 !important;}
.dameke-type-psychic{background:linear-gradient(90deg,#fcc0d3,#f77fa1);color:#111827 !important;}
.dameke-type-bug{background:linear-gradient(90deg,#dbe3a3,#b8c95a);color:#111827 !important;}
.dameke-type-rock{background:linear-gradient(90deg,#e6d6a5,#c9ac5e);color:#111827 !important;}
.dameke-type-ghost{background:linear-gradient(90deg,#8d7ea6,#5f5178);color:#ffffff !important;}
.dameke-type-dragon{background:linear-gradient(90deg,#9880ee,#6647d4);color:#ffffff !important;}
.dameke-type-dark{background:linear-gradient(90deg,#8c7c70,#5c4f45);color:#ffffff !important;}
.dameke-type-steel{background:linear-gradient(90deg,#e6e6f0,#c2c2d8);color:#111827 !important;}
.dameke-type-fairy{background:linear-gradient(90deg,#fce3ee,#f2accf);color:#111827 !important;}
/* select本体はタイプごとのグラデーション背景(.dameke-type-*)で塗るが、候補欄(option)まで
   同じグラデーションを引きずると表示が崩れるため、他の通常のselect(Z・ダイマ等、input,select
   {background:var(--dameke-surface)}に任せているもの)と同じ「テーマに追従する単色」に
   固定する。背景・文字色ともテーマ変数にすることで、ライト/ダークどちらでも読める。 */
select.dameke-type-select option{background-color:var(--dameke-surface);color:var(--dameke-text);}
.dameke-type-stellar{background:linear-gradient(90deg,#fbd9e6,#c4ecec,#fbe28f);color:#111827 !important;}
.dameke-image-credit{margin-top:16px;font-size:.68rem;line-height:1.5;color:var(--dameke-text-faint);}
.v082h-result-header-row{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:2px;}
.v082h-result-text-col{flex:0 1 auto;min-width:0;max-width:60%;text-align:center;}
.v082h-result-move-line{font-weight:700;font-size:.88rem;color:var(--dameke-text-secondary);margin-bottom:6px;}
.v082h-pokemon-thumb{flex:0 0 auto;width:68px;height:68px;display:flex;align-items:center;justify-content:center;}
.v082h-pokemon-thumb img{max-width:100%;max-height:100%;image-rendering:pixelated;}
.v082h-pokemon-thumb-missing{width:68px;height:68px;border-radius:50%;background:var(--dameke-border);}
.v082h-pokemon-thumb-group{display:flex;align-items:flex-end;gap:2px;flex:0 0 auto;position:relative;}
.v082h-item-thumb{width:22px;height:22px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;position:absolute;right:-4px;bottom:-2px;}
.v082h-item-thumb img{max-width:100%;max-height:100%;filter:drop-shadow(0 0 1.2px var(--dameke-surface)) drop-shadow(0 0 1.2px var(--dameke-surface)) drop-shadow(0 0 1.2px var(--dameke-surface));}
.v082h-item-thumb-missing{border-radius:50%;background:var(--dameke-border);}
.app-header{position:relative;}
.dameke-menu-btn{position:absolute;top:12px;right:16px;width:44px;height:40px;background:transparent;border:none;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;padding:0;}
.dameke-menu-btn span{display:block;width:26px;height:3px;background:#fff;border-radius:2px;flex-shrink:0;transition:width .15s ease;}
/* ハンバーガーメニューのホバー: 汎用ボタンの明るさ変化ではなく、ヘッダー(暗色固定)に馴染む
   うっすらした白の背景と、3本線の長さをずらす小さな動きで反応を示す。 */
.dameke-menu-btn{transition:background-color .15s ease;}
.dameke-menu-btn:hover:not(:disabled){filter:none;background:rgba(255,255,255,.12);}
.dameke-menu-btn:hover span:nth-child(2){width:20px;}
.dameke-menu-btn:active{background:rgba(255,255,255,.2);}
.dameke-menu-btn:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:1px;}
/* ハンバーガーメニューの直下に置くライト/ダーク切り替えスイッチ。ヘッダーは常に暗色背景固定
   (テーマに連動しない)なので、アイコン・スイッチの配色も固定値でよい。 */
.dameke-theme-switch-wrap{position:absolute;top:56px;right:16px;display:flex;align-items:center;gap:6px;}
.dameke-theme-icon{width:15px;height:15px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.75);}
.dameke-theme-icon svg{width:100%;height:100%;display:block;}
.dameke-theme-switch{position:relative;width:38px;height:21px;flex:0 0 auto;border-radius:999px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.32);cursor:pointer;padding:0;}
.dameke-theme-switch-knob{position:absolute;top:1px;left:1px;width:17px;height:17px;border-radius:50%;background:#fff;transition:left .15s ease;}
.dameke-theme-switch[aria-checked="true"]{background:#2563eb;border-color:#2563eb;}
.dameke-theme-switch[aria-checked="true"] .dameke-theme-switch-knob{left:18px;}
.dameke-menu-nav{position:absolute;top:88px;right:16px;background:#1f2937;border:1px solid rgba(255,255,255,.15);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:100;display:flex;flex-direction:column;min-width:160px;overflow:hidden;}
.dameke-menu-nav[hidden]{display:none;}
.dameke-menu-item{background:transparent;border:none;color:#fff;text-align:left;padding:10px 14px;font-size:.92rem;cursor:pointer;}
.dameke-menu-item:hover{background:rgba(255,255,255,.1);}
.dameke-menu-item.dameke-menu-item-active{background:rgba(255,255,255,.16);font-weight:700;}
.dameke-tool-panel[hidden]{display:none;}
.dameke-history-list{display:flex;flex-direction:column;gap:12px;}
.dameke-history-card{border:1px solid var(--dameke-border);border-radius:10px;padding:10px 12px;background:var(--dameke-surface-faint2);}
.dameke-history-card-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;}
.dameke-history-card-sub{font-size:.8rem;color:var(--dameke-text-muted);}
.dameke-history-card-actions{display:flex;gap:6px;flex:0 0 auto;}
.dameke-history-card-actions button{border:1px solid var(--dameke-border-strong);background:var(--dameke-surface);border-radius:6px;padding:6px 10px;font-size:.8rem;cursor:pointer;transition:transform .12s,box-shadow .12s;}
.dameke-history-card-actions button:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(15,23,42,.22);}
.dameke-history-card-actions button.dameke-history-load{background:var(--dameke-active-bg);color:var(--dameke-active-text);border-color:var(--dameke-active-bg);}
.dameke-history-empty{color:var(--dameke-text-faint);font-size:.88rem;}
.dameke-history-preview{
  --dameke-weather-tint:var(--dameke-surface);
  --dameke-field-tint:var(--dameke-surface);
  position:relative;
  isolation:isolate;
  background-color:var(--dameke-weather-tint);
  border:1px solid var(--dameke-border);border-radius:10px;padding:10px 12px;
}
/* 計算履歴のプレビューカードも、下部固定枠と同じ左下→右上の対角線分割で、左側(左上寄り)を
   天候、右側(右下寄り)をフィールドの色分けとして再現する(サイズ・レイアウトには影響しない)。 */
.dameke-history-preview::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  clip-path:polygon(0 100%, 100% 0, 100% 100%);
  background-color:var(--dameke-field-tint);
}
.dameke-history-preview-unavailable{color:var(--dameke-text-faint);font-size:.85rem;text-align:center;padding:16px 8px;}
.dameke-history-header-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:2px;}
.dameke-history-text-col{flex:0 1 auto;min-width:0;max-width:60%;text-align:center;}
.dameke-history-title{font-weight:800;font-size:.92rem;color:var(--dameke-text);line-height:1.4;}
.dameke-history-move-line{font-weight:700;font-size:.8rem;color:var(--dameke-text-secondary);margin-bottom:4px;}
.dameke-history-infoline{font-weight:800;font-size:.84rem;color:var(--dameke-text-heading);margin-bottom:2px;}
.dameke-history-infoline2{font-size:.76rem;color:var(--dameke-text-slate);}
.dameke-history-thumb{flex:0 0 auto;width:48px;height:48px;display:flex;align-items:center;justify-content:center;}
.dameke-history-thumb img{max-width:100%;max-height:100%;image-rendering:pixelated;}
.dameke-history-thumb-missing{width:48px;height:48px;border-radius:50%;background:var(--dameke-border);}
.dameke-history-thumb-group{display:flex;align-items:flex-end;gap:2px;flex:0 0 auto;}
.dameke-history-item-thumb{width:16px;height:16px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.dameke-history-item-thumb img{max-width:100%;max-height:100%;}
.dameke-history-item-thumb-missing{border-radius:50%;background:var(--dameke-border);}
.dameke-history-hpbar-wrap{margin-top:8px;}
.dameke-history-hpbar-track{position:relative;height:12px;border-radius:6px;background:#3f3f46;overflow:hidden;display:flex;}
.dameke-history-hpbar-seg{height:100%;}
.dameke-history-hpbar-uncertain{opacity:.45;}
.dameke-history-hpbar-nums{font-size:.72rem;color:var(--dameke-text-muted);margin-top:3px;text-align:right;}
.dameke-history-stat-focus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:center;gap:0 10px;margin-top:8px;}
.dameke-history-focus-row{display:grid;grid-template-columns:74px minmax(0,1fr);gap:8px;padding:3px 0;font-size:.74rem;color:var(--dameke-text-mid);border-bottom:1px dashed var(--dameke-border);}
.dameke-history-focus-label{color:var(--dameke-text-muted);}
.dameke-history-detail{margin-top:8px;border-top:1px dashed var(--dameke-border);padding-top:6px;}
.dameke-history-detail summary{cursor:pointer;font-size:.8rem;color:var(--dameke-link-text);font-weight:700;}
.dameke-history-detail-list{margin-top:6px;display:flex;flex-direction:column;gap:3px;}
.dameke-history-detail-item{font-size:.76rem;color:var(--dameke-text-secondary);}
.dameke-history-detail-empty{color:var(--dameke-text-faint);}
.dameke-history-detail-section{border-top:1px dashed var(--dameke-border);padding-top:6px;margin-top:6px;}
.dameke-history-detail-section:first-of-type{border-top:none;padding-top:0;margin-top:0;}
.dameke-history-detail-section-title{font-size:.74rem;font-weight:700;color:var(--dameke-text-muted);}
.dameke-pokemon-list{display:flex;flex-direction:column;gap:10px;margin-top:8px;}
.dameke-pokemon-card{border:1px solid var(--dameke-border);border-radius:10px;padding:10px 12px;display:flex;align-items:flex-start;gap:12px;background:var(--dameke-surface-faint2);position:relative;}
.dameke-pokemon-detail-label{color:var(--dameke-text-faint);font-weight:600;}
.dameke-pokemon-card-thumb{flex:0 0 auto;width:52px;height:52px;display:flex;align-items:center;justify-content:center;}
.dameke-pokemon-card-thumb img{max-width:100%;max-height:100%;image-rendering:pixelated;}
.dameke-pokemon-card-thumb-missing{width:52px;height:52px;border-radius:50%;background:var(--dameke-border);}
.dameke-pokemon-card-thumb-group{display:flex;align-items:flex-end;gap:3px;flex:0 0 auto;}
.dameke-pokemon-card-item-thumb{flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.dameke-pokemon-card-item-thumb img{max-width:100%;max-height:100%;}
.dameke-pokemon-card-item-thumb-missing{border-radius:50%;background:var(--dameke-border);}
.dameke-pokemon-card-main{flex:1;min-width:0;}
.dameke-pokemon-card-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.dameke-pokemon-card-head-large{gap:14px;margin-bottom:10px;}
.dameke-pokemon-mega-toggle-row{display:flex;justify-content:flex-end;margin-bottom:4px;min-height:19px;}
.dameke-pokemon-mega-toggle-row-compact{margin-bottom:2px;min-height:15px;}
.dameke-pokemon-mega-toggle{display:inline-block;padding:0;border:none;background:transparent;cursor:pointer;line-height:0;}
.dameke-pokemon-mega-toggle-switch{display:inline-block;width:34px;height:19px;border-radius:999px;background:var(--dameke-border-subtle);position:relative;transition:background-color .15s;vertical-align:middle;}
.dameke-pokemon-mega-toggle-thumb{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.35);transition:transform .15s;}
.dameke-pokemon-mega-toggle-active .dameke-pokemon-mega-toggle-switch{background:#7c3aed;}
.dameke-pokemon-mega-toggle-active .dameke-pokemon-mega-toggle-thumb{transform:translateX(15px);}
.dameke-pokemon-mega-toggle-locked{font-size:.68rem;color:var(--dameke-text-faint);font-weight:700;}
.dameke-pokemon-card-head-large .dameke-pokemon-card-thumb{width:80px;height:80px;}
.dameke-pokemon-card-head-large .dameke-pokemon-card-thumb-missing{width:80px;height:80px;}
.dameke-pokemon-card-head-large .dameke-pokemon-card-item-thumb{width:40px;height:40px;}
.dameke-pokemon-card-head-large .dameke-pokemon-card-title{font-size:1.05rem;}
.dameke-pokemon-card-head-large .dameke-pokemon-card-sub{font-size:.8rem;gap:6px;}
.dameke-pokemon-card-titlewrap{flex:1 1 auto;min-width:0;}
.dameke-pokemon-card-title{font-weight:800;font-size:.94rem;color:var(--dameke-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dameke-pokemon-card-sub{font-size:.78rem;color:var(--dameke-text-muted);margin-top:2px;line-height:1.5;}
.dameke-pokemon-card-notes{font-size:.76rem;color:var(--dameke-text-faint);margin-top:2px;font-style:italic;}
.dameke-pokemon-card-actions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;}
.dameke-pokemon-card-actions button{border:1px solid var(--dameke-border-strong);background:var(--dameke-surface);border-radius:6px;padding:6px 10px;font-size:.8rem;cursor:pointer;box-sizing:border-box;height:30px;transition:transform .12s,box-shadow .12s;}
.dameke-pokemon-card-actions button:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(15,23,42,.22);}
.dameke-pokemon-card-actions button.dameke-pokemon-edit{background:var(--dameke-active-bg);color:var(--dameke-active-text);border-color:var(--dameke-active-bg);}
.dameke-pokemon-empty{color:var(--dameke-text-faint);font-size:.88rem;margin-top:8px;}

.dameke-pokemon-edit-host[hidden]{display:none;}
.dameke-pokemon-edit-form{border:1px solid var(--dameke-border);border-radius:12px;padding:14px;margin-top:12px;background:var(--dameke-surface);}
.dameke-pokemon-edit-heading-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.dameke-pokemon-edit-heading-row h3{margin:0;}
.dameke-pokemon-edit-copy-btn{background:linear-gradient(135deg,#0891b2,#0e7490);color:#fff;border:none;border-radius:999px;padding:6px 14px;font-size:.78rem;font-weight:700;cursor:pointer;box-shadow:0 2px 6px rgba(8,145,178,.35);transition:transform .12s,box-shadow .12s;}
.dameke-pokemon-edit-copy-btn:hover{background:linear-gradient(135deg,#0891b2,#0e7490);transform:translateY(-1px);box-shadow:0 4px 10px rgba(8,145,178,.45);}
.dameke-pokemon-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;}
.dameke-pokemon-edit-grid label{display:flex;flex-direction:column;gap:3px;font-size:.82rem;color:var(--dameke-text-secondary);}
.dameke-pokemon-edit-grid label span{font-weight:600;}
.dameke-pokemon-edit-grid select,.dameke-pokemon-edit-grid input,.dameke-pokemon-edit-grid textarea{font:inherit;border:1px solid var(--dameke-border-strong);border-radius:8px;padding:6px 8px;}
.dameke-pokemon-edit-fullwidth{grid-column:1/-1;}
.dameke-pokemon-edit-mega-ability-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;}
.dameke-pokemon-edit-nature-row select{max-width:calc(50% - 8px);}
.dameke-pokemon-edit-mega-ability-pair select:disabled{background:var(--dameke-surface-alt2);color:var(--dameke-text-muted);}

/* Combined 努力値/実数値 table: corner cell + 6 stat-name headers, then a 努力値 row and a 実数値 row */
.dameke-pokemon-combined-stat-table{display:grid;grid-template-columns:3.4em repeat(6,minmax(0,4.4em));justify-content:center;gap:4px 6px;font-size:.76rem;align-items:center;margin-top:12px;}
.dameke-pokemon-combined-stat-table input{width:100%;box-sizing:border-box;text-align:center;padding:5px 2px;}
.dameke-pokemon-actual-stat-cell{text-align:center;font-weight:700;color:var(--dameke-ok-text);}
/* 実数値入力欄は努力値入力欄と同じ .dameke-pokemon-combined-stat-table input ルールに任せ、
   見た目を統一する（個別の枠線・背景色は付けない）。 */
.dameke-pokemon-base-stat-cell{text-align:center;color:var(--dameke-text-muted);}
.dameke-pokemon-combined-stat-table-readonly{font-size:.74rem;}
.dameke-pokemon-combined-stat-table-readonly span{text-align:center;}
.dameke-pokemon-stat-wrapper{width:fit-content;margin:0 auto;}
.dameke-pokemon-ev-remaining{font-size:.8rem;font-weight:700;color:var(--dameke-ok-text);margin-top:6px;text-align:left;}
.dameke-pokemon-ev-remaining-over{color:var(--dameke-up-text);}
.dameke-pokemon-ev-preset{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px;}
.dameke-pokemon-ev-preset select{font:inherit;border:1px solid var(--dameke-border-strong);border-radius:8px;padding:5px 8px;}
.dameke-pokemon-ev-reset{border:1px solid var(--dameke-border-strong);background:var(--dameke-surface);border-radius:6px;padding:5px 10px;font-size:.78rem;cursor:pointer;}

.v082h-move1-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;}
.v082h-move1-row > label.dameke-main-control-label{flex:1 1 auto;min-width:0;}
.v082h-move1-row > label.check{flex:0 0 auto;white-space:nowrap;padding-bottom:6px;}
/* 「技①」というラベルのテキストと「全技」チェックボックスを同じ行に並べ、検索ボックスは
   その下の行に全幅で表示するためのヘッダー行。select本体を暗黙ラベル付けする<label>
   (dameke-main-control-label)の"外"(直前の兄弟)に置く-- 中に入れてしまうと、暗黙ラベルの
   結びつけ先が「DOM順で最初のlabelable要素」であるチェックボックス側になってしまい、行の
   どこを押しても(本来のselect本体ではなく)チェックボックスがトグルされてしまうため。 */
.v082h-move1-row > .dameke-move-label-header{flex:1 1 100%;}
.dameke-move-label-header{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.dameke-move-label-header label.check{flex:0 0 auto;white-space:nowrap;min-height:0;margin-left:auto;}
/* 「技①」の見出し文字を、技②の折り畳み見出し(.dameke-move2-fold summary)と同じ太さ・
   サイズ・色に揃える(全技チェックボックス側の見た目には影響させない)。 */
.dameke-move-label-text{color:var(--dameke-text-slate);font-weight:700;font-size:14px;}
.dameke-move2-fold{margin-top:10px;border:1px solid var(--dameke-border);border-radius:10px;padding:8px 10px;background:var(--dameke-surface-alt);}
/* 「場」などの折り畳み見出し(.v082h-details>summary/.v082h-section-details>summary)と
   同じ、通常の黒系の色・太さに揃える。文字サイズは「技①」ラベル(.dameke-main-control-label)
   と揃える。 */
.dameke-move2-fold summary{cursor:pointer;color:var(--dameke-text-slate);font-weight:700;font-size:14px;}
.dameke-move2-fold .v082h-move1-row{margin-top:8px;}
/* 技①のまとまり全体を、技②(.dameke-move2-fold)と同じ枠線・角丸・背景で囲む。 */
.dameke-move1-fold{margin-top:10px;border:1px solid var(--dameke-border);border-radius:10px;padding:8px 10px;background:var(--dameke-surface-alt);}
/* Z・ダイマ/テラスタル(技①・技②それぞれの急所ランクの下に配置する2列グリッド)。 */
.dameke-move-special-grid{margin-top:8px;margin-bottom:0;}
.dameke-move-order-actions{margin-top:8px;}
/* 技順序入替ボタン: 攻防交代ボタン(dameke-toolbar-btn-swap)と同系統だが、少し薄い色・
   ひとまわり小さいサイズにする。ホバー・押下時の挙動は同じ形式を踏襲する。 */
.dameke-move-order-actions button.dameke-toolbar-btn-move-order{border-radius:999px;padding:0 16px;font-size:.8rem;font-weight:700;color:#fff!important;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:32px;background:linear-gradient(135deg,#93c5fd,#60a5fa)!important;box-shadow:0 2px 5px rgba(96,165,250,.3);transition:transform .12s,box-shadow .12s;}
.dameke-move-order-actions button.dameke-toolbar-btn-move-order::before{content:'⇄';font-size:.9rem;}
.dameke-move-order-actions button.dameke-toolbar-btn-move-order:hover{background:linear-gradient(135deg,#93c5fd,#60a5fa)!important;transform:translateY(-1px);box-shadow:0 3px 8px rgba(96,165,250,.4);}
.dameke-move-order-actions button.dameke-toolbar-btn-move-order:active{transform:translateY(0);box-shadow:0 1px 3px rgba(96,165,250,.3);}
.dameke-move-order-actions button.dameke-toolbar-btn-move-order:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none;}

.dameke-pokemon-edit-levelfold{margin-top:12px;border:1px solid var(--dameke-border);border-radius:10px;padding:6px 10px;background:var(--dameke-surface-alt);}
.dameke-search-regulation-fold{margin-top:6px;}
.dameke-search-generation-fold .dameke-speed-cond-row{row-gap:2px;}
.dameke-pokemon-edit-levelfold summary{cursor:pointer;font-size:.82rem;color:var(--dameke-text-muted);font-weight:600;}
.dameke-pokemon-edit-levelfold .dameke-pokemon-edit-grid{margin-top:8px;}
.dameke-pokemon-level-input{max-width:70px;}
.dameke-pokemon-edit-iv-table{margin-bottom:4px;}
.dameke-pokemon-move-grid{margin-top:14px;}
.dameke-pokemon-showall-label{font-size:.76rem;color:var(--dameke-text-muted);display:flex;gap:4px;align-items:center;margin-top:6px;}
.dameke-pokemon-notes-wrap{margin-top:18px;}
.dameke-pokemon-stat-head{font-weight:700;text-align:center;}
.dameke-pokemon-edit-actions{display:flex;gap:10px;margin-top:16px;}
.dameke-pokemon-edit-actions button{border-radius:8px;padding:10px 18px;font-size:.9rem;font-weight:700;cursor:pointer;border:none;}
.dameke-pokemon-edit-save{background:#059669;color:#fff;}
.dameke-pokemon-edit-cancel{background:var(--dameke-border);color:var(--dameke-text);}

/* 320px-wide side box headers need a more compact button group */
.dameke-btn-group-poke .dameke-btn-group-btn{padding:5px 9px;font-size:.7rem;}
.dameke-btn-group-poke .dameke-btn-group-label{font-size:.58rem;}

/* Pokemon management card: load-into-side buttons, placed left of edit/delete */
.dameke-pokemon-card-loadbtns{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;}
.dameke-pokemon-card-loadbtns button{border:none;border-radius:6px;padding:6px 9px;font-size:.72rem;font-weight:700;color:#fff;cursor:pointer;white-space:nowrap;box-sizing:border-box;height:30px;transition:transform .12s,box-shadow .12s;}
.dameke-pokemon-load-attacker{background:#dc2626;}
.dameke-pokemon-load-defender{background:#2563eb;}
.dameke-pokemon-card-loadbtns button:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(15,23,42,.28);}
.dameke-pokemon-load-attacker:hover{background:#dc2626;}
.dameke-pokemon-load-defender:hover{background:#2563eb;}

/* ==================== パーティ管理 ==================== */
.dameke-pokemon-panel-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.dameke-pokemon-filter-row{margin-bottom:10px;}
.dameke-pokemon-filter-input{width:100%;box-sizing:border-box;font-size:.86rem;padding:8px 10px;}
.dameke-toolbar-btn-new,.dameke-toolbar-btn-party{height:38px;box-sizing:border-box;}
.dameke-toolbar-btn-party{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 2px 6px rgba(124,58,237,.35);transition:transform .12s,box-shadow .12s;}
.dameke-toolbar-btn-party::before{content:'⛨';font-size:1rem;}
.dameke-toolbar-btn-party:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);transform:translateY(-1px);box-shadow:0 4px 10px rgba(124,58,237,.45);}
.dameke-toolbar-btn-party:active{transform:translateY(0);box-shadow:0 1px 3px rgba(124,58,237,.35);}

.dameke-party-list{display:flex;flex-direction:column;gap:16px;margin-top:8px;}
.dameke-party-card{border:1px solid var(--dameke-border);border-radius:10px;padding:12px;background:var(--dameke-surface-faint2);}
.dameke-party-card-pickable{cursor:pointer;border:1px dashed #059669;transition:border-color .12s,box-shadow .12s,background .12s;}
.dameke-party-card-pickable:hover{background:var(--dameke-tint-green-bg);box-shadow:0 0 0 2px rgba(5,150,105,.15);}
.dameke-party-card-title{font-weight:800;font-size:1rem;color:var(--dameke-text);margin-bottom:6px;}
.dameke-party-name-field{display:flex;flex-direction:column;gap:3px;font-size:.82rem;color:var(--dameke-text-secondary);margin:8px 0;max-width:320px;}
.dameke-party-name-field input{font:inherit;border:1px solid var(--dameke-border-strong);border-radius:8px;padding:6px 8px;}
.dameke-party-member-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin-top:8px;}
.dameke-party-member-card{border:1px solid var(--dameke-border);border-radius:8px;padding:6px;background:var(--dameke-surface);font-size:.72rem;position:relative;min-width:0;}
.dameke-party-member-empty{display:flex;align-items:center;justify-content:center;color:var(--dameke-border-strong);min-height:120px;font-size:.78rem;}
.dameke-party-member-head{display:flex;align-items:center;gap:5px;margin-bottom:3px;}
.dameke-pokemon-mega-toggle-compact .dameke-pokemon-mega-toggle-switch{width:26px;height:15px;}
.dameke-pokemon-mega-toggle-compact .dameke-pokemon-mega-toggle-thumb{width:11px;height:11px;top:2px;left:2px;}
.dameke-pokemon-mega-toggle-compact.dameke-pokemon-mega-toggle-active .dameke-pokemon-mega-toggle-thumb{transform:translateX(11px);}
.dameke-party-member-head .dameke-pokemon-card-thumb{width:52px;height:52px;}
.dameke-party-member-head .dameke-pokemon-card-thumb-missing{width:52px;height:52px;}
/* 持ち物画像をポケモン画像の右下に重ねて表示し、サムネイル全体の横幅を圧縮する(サイズは維持
   したまま、タイプバッジ等に使える幅を確保するため)。 */
.dameke-party-member-head .dameke-pokemon-card-thumb-group{position:relative;}
.dameke-party-member-head .dameke-pokemon-card-item-thumb{position:absolute;right:-3px;bottom:-2px;width:24px;height:24px;}
.dameke-party-member-head .dameke-pokemon-card-item-thumb img{filter:drop-shadow(0 0 1.2px var(--dameke-surface)) drop-shadow(0 0 1.2px var(--dameke-surface)) drop-shadow(0 0 1.2px var(--dameke-surface));}
.dameke-party-member-head .dameke-pokemon-card-title{font-size:.74rem;line-height:1.2;}
.dameke-party-member-head .dameke-pokemon-card-sub{font-size:.62rem;line-height:1.2;}
.dameke-stat-boost{color:var(--dameke-up-text) !important;}
.dameke-stat-drop{color:var(--dameke-down-text) !important;}

/* 特性/持ち物/テラスタイプ as small bordered chips (no full label -- a single boldface prefix
   character stands in for it) instead of three separate labeled rows. This, together with the
   2x2 move grid below, is what makes a compact 2-column x 3-row party layout possible. */
.dameke-party-chip-row{display:flex;flex-direction:column;gap:2px;margin:3px 0;}
.dameke-party-chip{display:block;border:1px solid var(--dameke-border);border-radius:5px;padding:1px 4px;font-size:.6rem;color:var(--dameke-text-secondary);background:var(--dameke-surface-alt);overflow-wrap:break-word;}
.dameke-party-tera-row{display:flex;align-items:center;gap:4px;padding:1px 0;font-size:.6rem;color:var(--dameke-text-secondary);}
.dameke-party-tera-row b{color:var(--dameke-text-faint);font-weight:700;}
.dameke-party-chip b{color:var(--dameke-text-faint);font-weight:700;}
.dameke-party-type-badge{display:inline-block;border-radius:4px;padding:0 5px;font-size:.58rem;font-weight:700;margin-right:3px;}
.dameke-party-member-card .dameke-party-type-badge{padding:0 4px;margin-right:2px;}

/* Moves as a 2x2 grid rather than a single wrapped line -- each cell can still wrap to two
   lines on its own for an unusually long move name, without pushing the whole card to a taller
   4-row layout the way stacking every move on its own line would. */
.dameke-party-move-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 4px;margin:3px 0;}
.dameke-party-move-cell{font-size:.62rem;line-height:1.25;border:1px solid var(--dameke-surface-subtle);border-radius:4px;padding:1px 3px;overflow-wrap:break-word;}
/* ポケモン管理画面(一覧を縦一列で表示する、より余裕のあるコンテキスト)では、特性・持ち物・
   テラスタイプ・技のフォントを、統合表の「種族値」等ラベルと同じ.76remまで拡大する。パーティ
   管理側(.dameke-party-member-card、複数カードを詰めて並べる必要がある)は元のサイズのまま。 */
.dameke-pokemon-card .dameke-party-chip{font-size:.76rem;padding:3px 6px;}
.dameke-pokemon-card .dameke-party-tera-row{font-size:.76rem;}
.dameke-pokemon-card .dameke-party-move-cell{font-size:.76rem;padding:3px 6px;}
.dameke-pokemon-card .dameke-pokemon-combined-stat-table{border:1px solid var(--dameke-border);border-radius:6px;padding:6px;}
.dameke-pokemon-card .dameke-party-type-badge{font-size:.72rem;padding:1px 7px;}
.dameke-party-member-card .dameke-pokemon-combined-stat-table{grid-template-columns:3.4em repeat(6,minmax(0,3.2em)) !important;font-size:.6rem !important;gap:2px 2px !important;margin-top:4px;}

.dameke-party-selector-host[hidden]{display:none;}
.dameke-party-selector-form{border:1px solid var(--dameke-border);border-radius:12px;padding:14px;margin-top:12px;background:var(--dameke-surface);}
.dameke-party-selector-count{font-size:.82rem;font-weight:700;color:var(--dameke-ok-text);margin:6px 0 10px;}
.dameke-party-selector-list{display:flex;flex-direction:column;gap:10px;max-height:70vh;overflow-y:auto;border:1px solid var(--dameke-border);border-radius:8px;padding:10px;}
.dameke-pokemon-card-selectable{cursor:pointer;position:relative;transition:border-color .12s,box-shadow .12s;}
.dameke-pokemon-card-selectable:hover{border-color:var(--dameke-text-faint);}
.dameke-pokemon-card-selected{border:2px solid #059669;box-shadow:0 0 0 2px rgba(5,150,105,.15);background:var(--dameke-tint-green-bg);}
.dameke-pokemon-card-select-badge{position:absolute;top:8px;right:8px;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--dameke-border);color:var(--dameke-text-mid);}
.dameke-pokemon-card-selected .dameke-pokemon-card-select-badge{background:#059669;color:#fff;}

/* "新規作成" now leads into a copy-or-blank choice: a banner above the list plus the existing
   cards themselves becoming clickable copy sources, rather than opening a separate screen that
   just shows the same cards again. */
.dameke-pokemon-create-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--dameke-emerald-border);background:var(--dameke-tint-emerald-bg);border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:.86rem;color:var(--dameke-emerald-strong-text);}
.dameke-pokemon-card-copyable{cursor:pointer;border:1px dashed #059669;transition:border-color .12s,box-shadow .12s,background .12s;}
.dameke-pokemon-card-copyable:hover{background:var(--dameke-tint-green-bg);box-shadow:0 0 0 2px rgba(5,150,105,.15);}

/* ==================== 攻撃・防御調整ツール ==================== */
.dameke-adjust-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;}
.dameke-adjust-mode-tabs{display:flex;gap:6px;}
.dameke-adjust-mode-btn{border:1px solid var(--dameke-border-strong);background:var(--dameke-surface-alt);color:var(--dameke-text-mid);border-radius:8px;padding:7px 16px;font-size:.86rem;font-weight:700;cursor:pointer;}
.dameke-adjust-mode-active{background:var(--dameke-active-bg);color:var(--dameke-active-text);border-color:var(--dameke-active-bg);}
.dameke-adjust-summary{border:1px solid var(--dameke-border);background:var(--dameke-surface-alt);border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:.86rem;}
.dameke-adjust-summary-note{font-size:.74rem;color:var(--dameke-text-muted);}
.dameke-adjust-nature-title{font-size:.8rem;font-weight:700;color:var(--dameke-text-secondary);margin-bottom:6px;}
.dameke-adjust-nature-select{margin-bottom:14px;}
.dameke-adjust-nature-details{border:1px solid var(--dameke-border);border-radius:10px;padding:8px 12px;background:var(--dameke-surface-alt);}
.dameke-adjust-nature-summary{font-size:.82rem;font-weight:700;color:var(--dameke-text-secondary);cursor:pointer;}
.dameke-adjust-nature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:4px 8px;margin-top:10px;}
.dameke-adjust-nature-check{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--dameke-text-secondary);cursor:pointer;}
.dameke-adjust-graph-host{margin-bottom:14px;}
.dameke-adjust-graph-group{margin-bottom:18px;}
.dameke-adjust-graph-group:last-child{margin-bottom:0;}
.dameke-adjust-svg{width:100%;height:auto;background:var(--dameke-surface);border:1px solid var(--dameke-border);border-radius:10px;}
.dameke-adjust-grid{stroke:var(--dameke-surface-subtle);stroke-width:1;}
.dameke-adjust-axis-label{font-size:10px;fill:var(--dameke-text-muted);}
.dameke-adjust-axis-title{font-size:11px;fill:var(--dameke-text-mid);}
.dameke-adjust-hp-line{stroke:#f59e0b;stroke-width:1;stroke-dasharray:3 3;}
.dameke-adjust-hp-band{fill:#f59e0b;fill-opacity:0.12;stroke:#f59e0b;stroke-width:1;stroke-dasharray:3 3;}
.dameke-adjust-band-note{margin-top:8px;font-size:.7rem;color:var(--dameke-tint-amber-text);background:var(--dameke-tint-amber-bg);border:1px solid var(--dameke-tint-amber-border);border-radius:8px;padding:6px 10px;}
.dameke-adjust-hp-label{font-size:9px;fill:var(--dameke-tint-amber-text);}
.dameke-adjust-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:.74rem;color:var(--dameke-text-secondary);}
.dameke-adjust-legend-item{display:flex;align-items:center;gap:5px;}
.dameke-adjust-legend-swatch{width:12px;height:12px;border-radius:3px;display:inline-block;}
.dameke-adjust-threshold-table{width:100%;border-collapse:collapse;font-size:.78rem;}
.dameke-adjust-threshold-table th,.dameke-adjust-threshold-table td{border:1px solid var(--dameke-border);padding:5px 8px;text-align:center;}
.dameke-adjust-threshold-table th{background:var(--dameke-surface-alt);font-weight:700;color:var(--dameke-text-secondary);}
.dameke-adjust-coming-soon{border:1px dashed var(--dameke-border-strong);border-radius:10px;padding:24px;text-align:center;color:var(--dameke-text-faint);font-size:.86rem;}
#damekeAdjustGoCalcBtn{background:linear-gradient(135deg,#334155,#1e293b);box-shadow:0 2px 6px rgba(30,41,59,.35);transition:transform .12s,box-shadow .12s;}
#damekeAdjustGoCalcBtn:hover{background:linear-gradient(135deg,#334155,#1e293b);transform:translateY(-1px);box-shadow:0 4px 10px rgba(30,41,59,.45);}

/* 努力値指定・防御側ステータス（計算機の詳細ステータス表と同じ見た目のグリッド表） */
.dameke-adjust-evspec{margin-bottom:14px;}
.dameke-adjust-evspec-wrapper{width:fit-content;max-width:100%;margin:0 auto;}
.dameke-adjust-evspec-remaining{margin-top:6px;font-size:.8rem;font-weight:700;color:var(--dameke-ok-text);text-align:left;}
.dameke-adjust-evspec-remaining-over{color:var(--dameke-up-text);}
.dameke-adjust-evspec-table{display:grid;justify-content:center;gap:5px 8px;align-items:center;margin-top:6px;}
/* 文字サイズを大きく設定していて表が入り切らないときは、表だけを横にスクロールさせる(標準の文字サイズでは入り切るので見た目は不変)。
   左右・下のpadding/margin 2pxは入力欄のフォーカス枠が切れないための余白で、全体の位置・大きさは変わらない。 */
.dameke-adjust-evspec-table:not(.dameke-search-combined-stat-table){justify-content:safe center;overflow-x:auto;padding:0 2px 2px;margin:6px -2px -2px;}
.dameke-adjust-evspec-head{font-size:.72rem;font-weight:700;color:var(--dameke-text-muted);text-align:center;}
.dameke-adjust-evspec-rowlabel{font-size:.74rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-adjust-evspec-cell{font-size:.78rem;color:var(--dameke-text-secondary);text-align:center;}
.dameke-adjust-evspec-input{width:100%;max-width:2.25rem;font-size:.76rem;padding:2px 3px;border:1px solid var(--dameke-border-strong);border-radius:5px;text-align:center;}

/* サマリーの詳細トグル */
.dameke-adjust-detail-toggle{margin-top:8px;background:none;border:none;color:var(--dameke-link-text);font-size:.76rem;font-weight:700;cursor:pointer;padding:0;}
.dameke-adjust-detail-body{margin-top:6px;border-top:1px dashed var(--dameke-border);padding-top:6px;}
.dameke-adjust-detail-subtitle{font-size:.78rem;font-weight:700;color:var(--dameke-text-secondary);margin:8px 0 4px;}
.dameke-adjust-defender-stats{margin-top:4px;}
.dameke-adjust-detail-line{font-size:.76rem;color:var(--dameke-text-mid);line-height:1.6;}

/* しきい値見出し・保存ボタン */
.dameke-adjust-threshold-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.dameke-adjust-threshold-header h3{margin:0;font-size:.9rem;}
.dameke-adjust-save-btn{background:linear-gradient(135deg,#059669,#047857);color:#fff;border:none;border-radius:999px;padding:7px 18px;font-size:.82rem;font-weight:700;cursor:pointer;box-shadow:0 2px 6px rgba(5,150,105,.35);}
.dameke-adjust-save-btn:hover:not(:disabled){filter:brightness(1.08);}
.dameke-adjust-save-btn:disabled{background:var(--dameke-border-strong);color:var(--dameke-text-faint);box-shadow:none;cursor:not-allowed;}
.dameke-adjust-threshold-table td:first-child{width:28px;}

/* ==================== 素早さ調整ツール ==================== */
.dameke-speed-input{margin-bottom:12px;}
.dameke-speed-activate-wrap{margin-top:6px;}
.dameke-speed-ability-col{display:flex;flex-direction:column;min-width:0;align-self:start;}
.dameke-speed-input .grid.three > label{align-self:start;}
.dameke-speed-cond-row{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap;align-items:center;}
.dameke-speed-rank-label{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--dameke-text-secondary);}
.dameke-speed-rank-label select{padding:3px 6px;}
.dameke-speed-summary{border:1px solid var(--dameke-border);background:var(--dameke-surface-alt);border-radius:10px;padding:10px 14px;margin-bottom:14px;}
.dameke-speed-base-line{font-size:.74rem;color:var(--dameke-text-mid);margin-top:2px;}
.dameke-speed-summary .dameke-history-text-col{max-width:none;}
.dameke-speed-roster-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;}
.dameke-speed-roster-header h3{margin:0;font-size:.9rem;}
.dameke-speed-roster-host{max-height:65vh;overflow-y:auto;border:1px solid var(--dameke-border);border-radius:10px;}
/* ポケモン名の列は最低6文字分を確保し、文字が大きくて入り切らないときは右2列(必要努力値)の方を縮める */
.dameke-speed-roster-row{display:grid;grid-template-columns:3.6em minmax(6em,1fr) minmax(0,6.4em) minmax(0,6.4em);gap:6px;align-items:start;padding:6px 8px;border-bottom:2px solid var(--dameke-border-subtle);font-size:.76rem;}
.dameke-speed-roster-row:last-child{border-bottom:none;}
.dameke-speed-roster-headerrow{position:sticky;top:0;background:var(--dameke-surface-alt);font-weight:700;color:var(--dameke-text-secondary);font-size:.68rem;text-align:center;z-index:1;align-items:center;}
.dameke-speed-roster-row-outsped{background:var(--dameke-tint-emerald-bg);}
.dameke-speed-roster-col{min-width:0;}
.dameke-speed-roster-col-names{display:flex;flex-direction:column;}
.dameke-speed-roster-subgroup{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:3px 0;min-width:0;}
.dameke-speed-roster-subgroup:not(:first-child){border-top:1px dashed var(--dameke-border-strong);margin-top:2px;}
.dameke-speed-roster-col-value{text-align:center;font-weight:800;color:var(--dameke-text);align-self:center;}
.dameke-speed-roster-col-ev{text-align:center;font-weight:700;color:var(--dameke-text);align-self:center;}
.dameke-speed-roster-row-outsped .dameke-speed-roster-col-ev{color:var(--dameke-tint-emerald-text);}
.dameke-speed-roster-name-chip{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;}
.dameke-speed-roster-thumb{flex:0 0 auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;}
.dameke-speed-roster-thumb img{max-width:100%;max-height:100%;}
.dameke-speed-roster-thumb-missing{border-radius:50%;background:var(--dameke-border);}
.dameke-speed-roster-name-text{font-weight:700;color:var(--dameke-text);font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:9em;}
.dameke-speed-roster-labels{flex-basis:100%;font-size:.7rem;font-weight:700;color:var(--dameke-text-mid);}
@media(max-width:40em){
  .dameke-speed-roster-row{grid-template-columns:3em minmax(6em,1fr) minmax(0,6.6em) minmax(0,6.6em);font-size:.66rem;padding:5px 5px;}
}

/* ==================== 努力値最適化ツール ==================== */
.dameke-evopt-pokemon-row{display:flex;align-items:flex-start;gap:14px;margin-bottom:10px;flex-wrap:wrap;}
.dameke-evopt-pokemon-select-col{flex:1 1 200px;display:flex;flex-direction:column;gap:8px;min-width:160px;}
#damekeBulkNature{max-width:160px;}
.dameke-evopt-pokemon-select-col .dameke-toolbar-btn{align-self:flex-start;}
.dameke-evopt-image-host{flex:0 0 auto;width:96px;height:96px;display:flex;align-items:center;justify-content:center;}
.dameke-evopt-image-host img{max-width:100%;max-height:100%;}
.dameke-evopt-picker-host{margin-bottom:14px;border:1px solid var(--dameke-border);border-radius:10px;padding:10px;background:var(--dameke-surface-alt);}
.dameke-evopt-nature-row{margin-top:14px;margin-bottom:10px;max-width:220px;}
.dameke-evopt-table-host{margin-bottom:16px;}
.dameke-evopt-table-host .dameke-adjust-evspec-input{max-width:2.875rem;}
.dameke-evopt-levelfold{max-width:360px;}
.dameke-evopt-input-box{margin-bottom:14px;border:1px solid var(--dameke-border);background:var(--dameke-surface-alt);border-radius:10px;padding:12px 14px;}
.dameke-evopt-input-box h3{margin:0 0 10px;font-size:.9rem;color:var(--dameke-text-secondary);}
.dameke-evopt-result-box{margin-bottom:8px;border:1px solid var(--dameke-tint-green-border);background:var(--dameke-tint-green-bg);border-radius:10px;padding:12px 14px;}
.dameke-evopt-result-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.dameke-evopt-result-header h3{margin:0;font-size:.9rem;}
.dameke-evopt-result-host{}
.dameke-evopt-result-host .dameke-adjust-evspec-input{max-width:2.875rem;}
.dameke-evopt-already-optimal{text-align:center;font-weight:700;color:var(--dameke-tint-emerald-text);font-size:.92rem;padding:8px 0;}
.dameke-evopt-stat-up{color:var(--dameke-up-text) !important;}
.dameke-evopt-stat-down{color:var(--dameke-down-text) !important;}

/* ==================== ポケモン検索ツール ==================== */
.dameke-search-filter-host label{display:block;margin-bottom:10px;font-size:.82rem;color:var(--dameke-text-secondary);}
.dameke-search-filter-host label input[type="text"]{width:100%;margin-top:4px;}
.dameke-search-compact-select{font-size:.82rem;padding:6px 8px;border:1px solid var(--dameke-border-strong);border-radius:6px;background:var(--dameke-surface);max-width:220px;}
.dameke-search-move-name-select{font-size:.78rem;padding:5px 7px;border:1px solid var(--dameke-border-strong);border-radius:5px;background:var(--dameke-surface);}
/* attachSearchCombo() replaces the visible control with its own .v082h-search-input (hiding the
   underlying select), which otherwise renders at the browser's default input size -- scoped here
   so 特性/覚える技 match every other compact field in this panel. */
#damekeSearchFilterHost .v082h-search-combo{max-width:220px;}
/* 技名欄(row1)内の検索コンボだけは、上の汎用ルール(max-width:220px)より優先して33%幅にする。
   構造セレクタでの詳細度を上のルールより高くすることで、JS側での後付けのインラインstyle
   指定に頼らず、宣言的なCSSだけで確実に反映されるようにする。 */
#damekeSearchFilterHost .dameke-search-move-filter-row1 .v082h-search-combo{width:100% !important;max-width:100% !important;flex:1 1 100% !important;box-sizing:border-box;}
#damekeSearchFilterHost .v082h-search-input{font-size:.82rem;padding:6px 8px;min-height:0;}
.dameke-search-inline-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;align-items:center;}
.dameke-search-text-input{width:100%;padding:6px 8px;border:1px solid var(--dameke-border-strong);border-radius:6px;font-size:.82rem;margin-bottom:10px;box-sizing:border-box;}
.dameke-search-move-slot-host{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;}
.dameke-search-move-slot-host .dameke-search-inline-row{margin-bottom:0;}
.dameke-search-sort-select{font-size:.78rem;padding:4px 6px;border:1px solid var(--dameke-border-strong);border-radius:5px;max-width:140px;}
.dameke-search-sort-label.dameke-search-sort-label{flex:0 0 5em;}
.dameke-search-move-filter-fold{margin-bottom:12px;}
.dameke-search-add-btn{border:1px dashed var(--dameke-text-faint);background:var(--dameke-surface-alt);color:var(--dameke-text-mid);border-radius:6px;padding:5px 12px;font-size:.76rem;font-weight:700;cursor:pointer;margin-bottom:10px;}
.dameke-search-section-gap{margin-top:20px;}
.dameke-search-move-title{margin-bottom:2px;}
.dameke-search-range-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:.8rem;}
.dameke-search-range-label{flex:0 0 3.4em;color:var(--dameke-text-secondary);font-weight:700;font-size:.76rem;}
.dameke-search-range-input{width:100%;max-width:5rem;padding:4px 6px;border:1px solid var(--dameke-border-strong);border-radius:5px;}

.dameke-search-result-header{font-size:.8rem;color:var(--dameke-text-muted);margin-bottom:4px;font-weight:700;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.dameke-search-usage-date-host{font-size:.68rem;color:var(--dameke-text-faint);font-weight:400;white-space:nowrap;}
.dameke-search-sort-row{display:flex;justify-content:flex-end;margin-bottom:8px;}
.dameke-search-sort-host{display:flex;gap:6px;align-items:center;}
.dameke-search-clear-btn{display:block;border:1px solid var(--dameke-border-strong);background:var(--dameke-surface-alt2);color:var(--dameke-text-muted);border-radius:6px;padding:7px 14px;font-size:.78rem;font-weight:700;cursor:pointer;}
.dameke-search-move-filter-slot{border:1px solid var(--dameke-border-slate);border-radius:6px;padding:6px;background:var(--dameke-surface-alt);}
.dameke-search-result-host{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;max-height:75vh;overflow-y:auto;padding:4px;}
.dameke-search-result-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid var(--dameke-border);border-radius:8px;cursor:pointer;transition:box-shadow .12s,border-color .12s;}
.dameke-search-result-item-nodata{background:var(--dameke-surface-alt2);opacity:.55;}
.dameke-search-result-item:hover{border-color:#2563eb;box-shadow:0 2px 6px rgba(37,99,235,.2);}
.dameke-search-thumb{width:56px;height:56px;display:flex;align-items:center;justify-content:center;}
.dameke-search-thumb img{max-width:100%;max-height:100%;}
.dameke-search-thumb-missing{border-radius:50%;background:var(--dameke-border);}
.dameke-search-result-name{font-size:.68rem;text-align:center;color:var(--dameke-text);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}

.dameke-search-detail-head{display:flex;gap:14px;align-items:center;margin:10px 0 16px;flex-wrap:wrap;}
.dameke-search-detail-image{width:120px;height:120px;object-fit:contain;}
.dameke-search-detail-info{flex:1 1 145px;min-width:145px;}
.dameke-search-detail-name{font-size:1.1rem;overflow-wrap:break-word;word-break:normal;}
.dameke-search-detail-flags{margin-top:2px;}
.dameke-search-detail-radar-host{width:120px;height:120px;flex:0 0 auto;}
.dameke-search-detail-radar-host svg{width:100%;height:100%;display:block;}
.dameke-search-detail-types{display:flex;gap:6px;margin:4px 0;}
.dameke-partytype-slot-image-col .dameke-search-detail-types{flex-direction:column;align-items:center;}
.dameke-search-combined-stat-table{border:1px solid var(--dameke-border);border-radius:8px;padding:8px;overflow-x:auto;max-width:100%;}
.dameke-search-ability-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.dameke-search-ability-chip{border:1px solid var(--dameke-border-strong);background:var(--dameke-surface-alt);color:var(--dameke-text-secondary);border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:700;cursor:pointer;}
/* 使用率(性格/努力値/特性)の一覧行 */
.dameke-search-usage-rate-list{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;}
.dameke-search-usage-rate-row{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--dameke-text-secondary);padding:2px 4px;border-bottom:1px dashed var(--dameke-surface-subtle);}
.dameke-search-usage-rate-value{color:var(--dameke-text-muted);font-weight:700;white-space:nowrap;}
/* 技の採用率TOP10強調 */
.dameke-search-move-name-top10{background:var(--dameke-tint-yellow-bg);color:var(--dameke-tint-yellow-text);border-radius:4px;padding:1px 4px;display:inline-block;}
.dameke-search-move-rate{display:block;font-size:.66rem;color:var(--dameke-text-faint);font-weight:400;}
/* 持ち物採用率 */
.dameke-search-usage-item-list{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;}
.dameke-search-usage-item-row{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--dameke-text-secondary);padding:2px 4px;border-bottom:1px dashed var(--dameke-surface-subtle);}
.dameke-search-usage-item-row span:nth-child(2){flex:1 1 auto;}
.dameke-search-usage-item-thumb{width:20px;height:20px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.dameke-search-usage-item-thumb-fallback{background:var(--dameke-border);border-radius:4px;}
.dameke-search-usage-item-thumb img{max-width:100%;max-height:100%;}
/* 同じチームのポケモン */
.dameke-search-teammate-host{margin-bottom:8px;}
.dameke-search-usage-source-host{font-size:.62rem;color:var(--dameke-text-faint);margin-top:4px;padding:0 2px;}
.dameke-search-ability-chip-active{background:var(--dameke-active-bg);color:var(--dameke-active-text);border-color:var(--dameke-active-bg);}

.dameke-search-matchup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:5px;margin-bottom:14px;}
/* Shared by ポケモン検索's タイプ相性 grid and パーティタイプ評価's 一貫度 grid: the outer cell's
   background is the attacking/evaluated type's own color (via .dameke-type-XXX), and the value
   sits in a small circular badge shaded by its own magnitude -- two independent color signals
   layered together rather than one cell tinted a single way. */
.dameke-typecell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:6px 3px;border-radius:8px;}
.dameke-typecell-name{font-size:.7rem;font-weight:800;text-shadow:0 1px 2px rgba(255,255,255,.35);}
.dameke-typecell-value{display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;white-space:nowrap;border-radius:999px;font-size:.78rem;font-weight:800;line-height:1.2;text-align:center;padding:3px 10px;box-shadow:0 0 0 2px rgba(255,255,255,.7);}
/* Shaded by exact multiplier, not just weak/resist/neutral -- darker red = bigger weakness,
   darker blue = bigger resistance. */
.dameke-search-matchup-weak4{background:#fca5a5;color:#7f1d1d;}
.dameke-search-matchup-weak2{background:#fee2e2;color:#dc2626;}
.dameke-search-matchup-neutral{background:var(--dameke-surface-alt);color:var(--dameke-text-muted);}
.dameke-search-matchup-resist2{background:#dbeafe;color:#2563eb;}
.dameke-search-matchup-resist4{background:#93c5fd;color:#1e3a8a;}
.dameke-search-matchup-immune{background:var(--dameke-border);color:var(--dameke-text-secondary);}

.dameke-search-move-filter-grid{display:flex;flex-direction:column;gap:5px;margin-top:8px;}
.dameke-search-move-filter-row1{display:flex;width:100%;box-sizing:border-box;}
.dameke-search-move-filter-row1 input{padding:5px 7px;border:1px solid var(--dameke-border-strong);border-radius:5px;font-size:.78rem;flex:1 1 100%;max-width:100%;min-width:0;}
.dameke-search-move-filter-row1 > .dameke-search-move-name-select{flex:1 1 100%;max-width:100%;min-width:0;box-sizing:border-box;}
/* row2は薄い枠で囲んだ箱とし、中に2段のサブ行を並べる
   (1段目: タイプ/分類/威力下限/命中下限、2段目: PP/接触技/範囲)。 */
.dameke-search-move-filter-row2-box{display:flex;flex-direction:column;gap:5px;border:1px solid var(--dameke-border);border-radius:6px;padding:6px;}
.dameke-search-move-filter-row2-sub{display:flex;gap:5px;flex-wrap:nowrap;}
.dameke-search-move-filter-row2-sub > *{flex:1 1 0;min-width:0;}
/* 1段目(タイプ/分類/威力/命中): タイプ・分類は従来通りの幅(flex:1)を維持し、
   威力・命中の2つはその分だけ幅を詰める。
   2段目(PP/接触/範囲): 範囲は従来通りの幅(flex:1)を維持し、PP・接触技の2つは
   その分だけ幅を詰める。 */
.dameke-search-move-filter-row2-sub:first-child > :nth-child(3),
.dameke-search-move-filter-row2-sub:first-child > :nth-child(4){flex:.75 1 0;}
.dameke-search-move-filter-row2-sub:last-child > :nth-child(1),
.dameke-search-move-filter-row2-sub:last-child > :nth-child(2){flex:.75 1 0;}
.dameke-search-move-filter-row2-sub input{padding:5px 7px;border:1px solid var(--dameke-border-strong);border-radius:5px;font-size:.78rem;width:100%;}
.dameke-search-move-filter-grid select:disabled,.dameke-search-move-filter-grid input:disabled{background:var(--dameke-surface-alt2);color:var(--dameke-text-faint);}
.dameke-search-move-list{max-height:320px;overflow-y:auto;border:1px solid var(--dameke-border);border-top:none;border-radius:0 0 8px 8px;margin-bottom:14px;}
.dameke-search-move-row{display:grid;grid-template-columns:1.15fr .85fr .55fr .5fr .5fr .4fr .4fr .75fr;gap:6px;padding:5px 8px;border-bottom:1px solid var(--dameke-surface-subtle);font-size:.74rem;align-items:center;}
.dameke-search-move-row > *{min-width:0;overflow:hidden;}
.dameke-search-move-name{font-weight:700;color:var(--dameke-text);text-overflow:ellipsis;white-space:nowrap;}
.dameke-search-move-row:last-child{border-bottom:none;}
.dameke-search-move-header{background:var(--dameke-surface-alt);font-weight:700;color:var(--dameke-text-secondary);border:1px solid var(--dameke-border);border-radius:8px 8px 0 0;font-size:.7rem;}
@media(max-width:40em){
  .dameke-search-result-host{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));}
  .dameke-search-thumb{width:44px;height:44px;}
  .dameke-search-move-row{grid-template-columns:.85fr .7fr .4fr .35fr .35fr .3fr .3fr .55fr;font-size:.56rem;gap:2px;padding:3px 3px;}
  .dameke-search-detail-image{width:84px;height:84px;}
  .dameke-search-detail-radar-host{width:84px;height:84px;}
  .dameke-search-combined-stat-table{grid-template-columns:1.5fr repeat(6,minmax(3.9em,1fr)) minmax(4.1em,1.1fr) !important;justify-content:stretch !important;width:100%;gap:2px !important;font-size:.64rem;padding:3px;}
  .dameke-search-combined-stat-table .dameke-adjust-evspec-rowlabel{white-space:nowrap;font-size:.6rem;overflow:visible;}
  .dameke-search-combined-stat-table .dameke-adjust-evspec-cell{white-space:normal;overflow-wrap:anywhere;line-height:1.15;padding:1px 0;}
  .dameke-search-matchup-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:3px;}
  .dameke-typecell{font-size:.62rem;padding:4px 1px;}
  .dameke-typecell-value{font-size:.68rem;padding:2px 7px;}
  .dameke-search-move-filter-grid{gap:3px;}
  .dameke-search-move-filter-row1 input,.dameke-search-move-filter-row1 .dameke-search-move-name-select{font-size:.66rem;}
  .dameke-search-move-filter-row2-box{gap:2px;padding:3px;}
  .dameke-search-move-filter-row2-sub{gap:2px;}
  .dameke-search-move-filter-row2-sub select,.dameke-search-move-filter-row2-sub input{font-size:.6rem;padding:3px 2px;}
}

/* ==================== 補完ポケモン出力ツール ==================== */
.dameke-complement-result-host{display:flex;flex-direction:column;gap:4px;max-height:80vh;overflow-y:auto;}
.dameke-complement-result-row{display:grid;grid-template-columns:2.4em 44px 1fr 4.4em;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--dameke-border);border-radius:8px;}
.dameke-complement-rank{text-align:center;font-weight:800;color:var(--dameke-text-secondary);}
.dameke-complement-thumb{width:44px;height:44px;display:flex;align-items:center;justify-content:center;}
.dameke-complement-thumb img{max-width:100%;max-height:100%;}
.dameke-complement-info{min-width:0;display:flex;flex-direction:column;gap:2px;}
.dameke-complement-name{font-weight:700;color:var(--dameke-text);font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dameke-complement-types{display:flex;gap:4px;flex-wrap:wrap;}
.dameke-complement-ability-note{font-size:.68rem;color:var(--dameke-text-muted);}
.dameke-complement-score{text-align:right;font-weight:800;color:var(--dameke-tint-emerald-text);font-size:.9rem;}
.dameke-complement-image-col{display:flex;flex-direction:column;align-items:center;gap:6px;}
#damekeComplementResultSection .dameke-adjust-band-note{margin-bottom:14px;}

/* ==================== パーティタイプ評価ツール ==================== */
.dameke-partytype-slots-host{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.dameke-partytype-slot{display:flex;gap:12px;align-items:flex-start;padding:8px;border:1px solid var(--dameke-border);border-radius:10px;}
.dameke-partytype-slot-fields{flex:1 1 auto;display:flex;flex-direction:column;gap:6px;min-width:0;}
.dameke-partytype-slot-fields label{display:block;font-size:.78rem;color:var(--dameke-text-secondary);}
.dameke-partytype-slot-fields select{width:100%;margin-top:2px;}
.dameke-partytype-slot-image-col{flex:0 0 64px;width:64px;display:flex;flex-direction:column;align-items:center;gap:4px;}
.dameke-partytype-slot-image-col .dameke-party-type-badge{white-space:nowrap;}
.dameke-partytype-slot-image{width:56px;height:56px;display:flex;align-items:center;justify-content:center;}
.dameke-partytype-slot-image img{max-width:100%;max-height:100%;}
#damekePartyTypeResultSection .dameke-adjust-band-note{margin-bottom:14px;}
.dameke-partytype-result-host{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:5px;}
.dameke-partytype-left-col{display:flex;flex-direction:column;gap:16px;min-width:0;}
.dameke-partytype-swap-host{display:flex;flex-direction:column;gap:12px;}
.dameke-partytype-swap-card{border:1px solid var(--dameke-border);border-radius:10px;padding:10px;}
.dameke-partytype-swap-rank-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.dameke-partytype-swap-rank{font-weight:800;color:var(--dameke-text-secondary);font-size:.94rem;}
.dameke-partytype-swap-rank-row .dameke-search-detail-types{margin:0;}
.dameke-partytype-swap-rank-ability{font-size:.76rem;color:var(--dameke-text-muted);}
.dameke-partytype-swap-inout-row{display:flex;gap:10px;flex-wrap:wrap;}
.dameke-partytype-swap-inout-box{flex:1 1 160px;min-width:0;border-radius:8px;padding:8px;}
.dameke-partytype-swap-in{background:var(--dameke-tint-green-bg);border:1px solid var(--dameke-tint-green-border);}
.dameke-partytype-swap-out{background:var(--dameke-tint-red-bg);border:1px solid var(--dameke-tint-red-border);}
.dameke-partytype-swap-inout-title{font-size:.72rem;font-weight:800;color:var(--dameke-text-secondary);margin-bottom:6px;}
.dameke-partytype-swap-inout-list{display:flex;flex-wrap:wrap;gap:8px;}
.dameke-partytype-swap-portrait{display:flex;flex-direction:column;align-items:center;width:84px;}
.dameke-partytype-swap-portrait-img{width:48px;height:48px;display:flex;align-items:center;justify-content:center;}
.dameke-partytype-swap-portrait-img img{max-width:100%;max-height:100%;}
.dameke-partytype-swap-portrait-name{font-size:.74rem;font-weight:700;text-align:center;color:var(--dameke-text);line-height:1.2;margin-top:3px;}
.dameke-partytype-swap-details{margin-top:8px;}
.dameke-partytype-swap-details summary{cursor:pointer;font-size:.78rem;font-weight:700;color:var(--dameke-link-text);}
.dameke-partytype-swap-body{padding-top:10px;display:flex;flex-direction:column;gap:12px;}
.dameke-partytype-swap-replacement-row{display:flex;align-items:center;gap:10px;}
.dameke-partytype-swap-replacement-row label{font-size:.78rem;color:var(--dameke-text-secondary);flex:0 0 auto;}
.dameke-partytype-swap-replacement-row select{width:auto;max-width:160px;font-size:.78rem;padding:4px 6px;}
.dameke-partytype-swap-party-list{display:flex;flex-wrap:wrap;gap:6px;}
.dameke-partytype-swap-member-chip{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:var(--dameke-surface-alt2);font-size:.72rem;}
.dameke-partytype-swap-member-chip.dameke-partytype-swap-member-new{background:#dcfce7;color:#166534;font-weight:700;}
/* Per-type ±% delta badges: positive = the type got safer, negative = it got riskier. */
.dameke-partytype-delta-improve{background:#dcfce7;color:#166534;}
.dameke-partytype-delta-worsen{background:#fee2e2;color:#b91c1c;}
.dameke-partytype-delta-neutral{background:var(--dameke-surface-alt2);color:var(--dameke-text-mid);}

.dameke-partytype-tier-unrated{background:var(--dameke-surface-alt2);color:var(--dameke-text-muted);}
.dameke-partytype-tier-veryhigh{background:#fecaca;color:#7f1d1d;}
.dameke-partytype-tier-high{background:#fee2e2;color:#b91c1c;}
.dameke-partytype-tier-mid{background:var(--dameke-surface-alt2);color:var(--dameke-text-mid);}
.dameke-partytype-tier-low{background:#dbeafe;color:#1d4ed8;}
.dameke-partytype-tier-verylow{background:#bfdbfe;color:#1e3a8a;}
@media(max-width:40em){
  .dameke-partytype-slots-host{grid-template-columns:1fr;}
  .dameke-partytype-slot{flex-direction:row-reverse;}
  .dameke-partytype-slot-image{width:44px;height:44px;}
}

/* ==================== 技範囲調整ツール ==================== */
.dameke-coverage-move-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.dameke-coverage-move-slot{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px;border:1px solid var(--dameke-border);border-radius:8px;background:var(--dameke-surface);min-width:0;}
.dameke-coverage-move-slot-label{width:100%;font-size:.82rem;color:var(--dameke-text-secondary);}
.dameke-coverage-move-slot-label select{width:100%;margin-top:2px;}
.dameke-coverage-condition-fold{margin-top:10px;border:1px solid var(--dameke-border);border-radius:8px;padding:6px 10px;background:var(--dameke-surface-alt);}
.dameke-coverage-condition-fold summary{cursor:pointer;font-size:.76rem;color:var(--dameke-text-muted);font-weight:600;}
.dameke-coverage-condition-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;}
.dameke-coverage-condition-grid label{font-size:.78rem;color:var(--dameke-text-secondary);}
.dameke-coverage-condition-grid select{width:100%;margin-top:2px;}
@media(max-width:30em){
  .dameke-coverage-condition-grid{grid-template-columns:1fr;}
}
.dameke-coverage-category-row{margin-top:14px;}
.dameke-coverage-moves-host{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-bottom:12px;}
.dameke-coverage-moves-host .dameke-typecell{padding:12px 6px;min-width:0;}
.dameke-coverage-moves-host .dameke-typecell-name{font-size:.92rem;}
.dameke-coverage-stats-host{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.dameke-coverage-stat-row{display:flex;flex-direction:column;gap:0;padding:8px 12px;border-radius:8px;background:var(--dameke-surface-alt);border:1px solid var(--dameke-border);}
.dameke-coverage-stat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.dameke-coverage-stat-label{font-size:.82rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-coverage-stat-value{font-size:.86rem;font-weight:800;color:var(--dameke-text);}
.dameke-coverage-stat-weak{border-color:var(--dameke-tint-red-border);background:var(--dameke-tint-red-bg);}
.dameke-coverage-stat-neutral{border-color:var(--dameke-tint-green-border);background:var(--dameke-tint-green-bg);}
.dameke-coverage-stat-half{border-color:var(--dameke-tint-blue-border);background:var(--dameke-tint-blue-bg);}
.dameke-coverage-stat-immune{border-color:var(--dameke-border);background:var(--dameke-surface-alt2);}
.dameke-coverage-breakdown-fold{margin-top:6px;padding-top:6px;border-top:1px dashed var(--dameke-border-strong);}
.dameke-coverage-breakdown-fold summary{cursor:pointer;font-size:.76rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-coverage-breakdown-list{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;}
.dameke-coverage-breakdown-chip{display:flex;flex-direction:column;align-items:center;width:92px;}
.dameke-coverage-breakdown-img{width:48px;height:48px;display:flex;align-items:center;justify-content:center;}
.dameke-coverage-breakdown-img img{max-width:100%;max-height:100%;}
.dameke-coverage-breakdown-name{font-size:.66rem;text-align:center;color:var(--dameke-text-secondary);line-height:1.2;margin-top:2px;}
.dameke-coverage-breakdown-chip .dameke-search-detail-types{flex-direction:column;align-items:center;margin-top:3px;}
.dameke-coverage-breakdown-chip .dameke-party-type-badge{white-space:nowrap;}
@media(max-width:40em){
  .dameke-coverage-moves-host{grid-template-columns:1fr 1fr;}
}

/* ==================== 覚える技比較ツール ==================== */
/* 出力は「1体目のみ / 共通 / 2体目のみ」の3列で、入力欄の左右の並びと対応させる。
   横幅を広く使うため、このツールだけ入力と出力を縦に並べる(横2列にしない)。 */
.layout.dameke-learncmp-layout{grid-template-columns:minmax(0,1fr);}
#damekeLearnCmpInputSection .dameke-evopt-input-box{margin-bottom:0;}
.dameke-learncmp-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.dameke-learncmp-slot{display:flex;align-items:flex-start;gap:12px;min-width:0;padding:10px;border:1px solid var(--dameke-border);border-radius:10px;background:var(--dameke-surface);}
.dameke-learncmp-slot-a{border-color:var(--dameke-tint-red-border);}
.dameke-learncmp-slot-b{border-color:var(--dameke-learncmp-b-border);}
.dameke-learncmp-slot label{flex:1 1 auto;min-width:0;display:block;font-size:.78rem;color:var(--dameke-text-secondary);}
.dameke-learncmp-slot label select{width:100%;margin-top:2px;}
.dameke-learncmp-slot-visual{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:4.5rem;}
.dameke-learncmp-image{width:72px;height:72px;display:flex;align-items:center;justify-content:center;}
.dameke-learncmp-image img{max-width:100%;max-height:100%;}
.dameke-learncmp-slot-visual .dameke-search-detail-types{margin:0;min-height:1.1rem;flex-wrap:wrap;justify-content:center;gap:3px;}
.dameke-learncmp-slot-visual .dameke-party-type-badge{display:inline-flex;align-items:center;justify-content:center;margin-right:0;padding:3px 6px;line-height:1;white-space:nowrap;}
/* 技名の列幅は「いちばん長い技名の文字数」から決める(--dameke-learncmp-chars は app_learncompare.js が
   覚える技データから求めて設定する)。配置は、上段に「1体目のみ」「2体目のみ」を左右半分ずつ並べ、下段に
   「共通」を全幅で置く。どの枠も横幅いっぱいを使い、技名は入るぶんだけ列を作って各列の先頭を揃える
   (右側だけに余白を作らない)。列数には上限がある(下の --dameke-learncmp-half を参照)。 */
#damekeLearnCmpResultSection{
  --dameke-learncmp-fs:.74rem;
  --dameke-learncmp-chip-pad:6px;   /* 技名チップの左右の余白 */
  --dameke-learncmp-group-pad:8px;  /* 枠の左右の余白 */
  --dameke-learncmp-gap:8px;        /* 枠どうしの間隔 */
  /* 文字幅はフォントによって1文字ぶんよりわずかに広くなることがあるので、2%+2pxの余裕を持たせる。 */
  --dameke-learncmp-col:calc(var(--dameke-learncmp-chars,8) * var(--dameke-learncmp-fs) * 1.02 + var(--dameke-learncmp-chip-pad) * 2 + 2px);
  /* 列数の上限: 片方のみ4列・共通8列。左右の1枠 = 技名4列ぶん、全体 = その2枠ぶんの幅までとし、
     それより画面が広いときは全体を中央に寄せる。上限を変えるときは下の 4 と 3(=列数-1) を変える。 */
  --dameke-learncmp-half:calc(var(--dameke-learncmp-col) * 4 + 4px * 3 + var(--dameke-learncmp-group-pad) * 2 + 3px);
  --dameke-learncmp-block:calc(var(--dameke-learncmp-half) * 2 + var(--dameke-learncmp-gap));
}
/* スマホ幅では技名の文字と余白を少し詰める(左右2枠を並べたまま、各枠は技名1列になる幅を確保する)。 */
@media(max-width:40em){
  #damekeLearnCmpResultSection{
    --dameke-learncmp-fs:.7rem;
    --dameke-learncmp-chip-pad:5px;
    --dameke-learncmp-group-pad:6px;
    --dameke-learncmp-gap:6px;
  }
}
#damekeLearnCmpResultSection > h3{margin:0 0 10px;font-size:.9rem;}
/* 件数は1段3列(1体目のみ / 2体目のみ / 共通)。 */
.dameke-learncmp-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dameke-learncmp-gap);margin:0 auto 14px;max-width:var(--dameke-learncmp-block);}
.dameke-learncmp-summary:empty{display:none;}
.dameke-learncmp-summary-item{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:6px 12px;border:1px solid var(--dameke-border);border-radius:8px;min-width:0;}
.dameke-learncmp-summary-label{font-size:.8rem;font-weight:700;color:var(--dameke-text-secondary);min-width:0;overflow-wrap:anywhere;}
.dameke-learncmp-summary-count{font-size:.9rem;font-weight:800;color:var(--dameke-text);white-space:nowrap;}
.dameke-learncmp-same-note{margin-bottom:10px;}
.dameke-learncmp-result-host{display:flex;flex-direction:column;gap:16px;max-width:var(--dameke-learncmp-block);margin:0 auto;}
.dameke-learncmp-category-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;padding-bottom:4px;border-bottom:2px solid var(--dameke-border-strong);}
.dameke-learncmp-category-title{margin:0;font-size:.95rem;color:var(--dameke-text-heading);}
.dameke-learncmp-category-count{font-size:.72rem;color:var(--dameke-text-muted);}
/* 左右2枠は同じ幅・同じ高さで並べる。技名1列ぶんの幅も取れないほど狭いとき(文字サイズを大きくしたスマホなど)だけ、
   技名を欠けさせないよう1枠ずつ縦に並べる。 */
.dameke-learncmp-groups{display:grid;gap:var(--dameke-learncmp-gap);align-items:stretch;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,max(calc(var(--dameke-learncmp-col) + var(--dameke-learncmp-group-pad) * 2 + 2px),calc((100% - var(--dameke-learncmp-gap)) / 2))),1fr));}
.dameke-learncmp-group{box-sizing:border-box;min-width:0;border:1px solid var(--dameke-border);border-radius:8px;padding:8px var(--dameke-learncmp-group-pad);}
.dameke-learncmp-groups > .dameke-learncmp-group-common{grid-column:1 / -1;}
.dameke-learncmp-group-a{background:var(--dameke-tint-red-bg);border-color:var(--dameke-tint-red-border);}
.dameke-learncmp-group-common{background:var(--dameke-tint-green-bg);border-color:var(--dameke-tint-green-border);}
.dameke-learncmp-group-b{background:var(--dameke-learncmp-b-bg);border-color:var(--dameke-learncmp-b-border);}
.dameke-learncmp-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.dameke-learncmp-group-label{font-size:.76rem;font-weight:700;color:var(--dameke-text-secondary);min-width:0;overflow-wrap:anywhere;}
.dameke-learncmp-group-count{font-size:.72rem;font-weight:700;color:var(--dameke-text-muted);white-space:nowrap;}
/* 列数は枠の幅に入るぶんだけ(幅が広ければ増え、狭ければ減る)。列は枠の幅いっぱいに均等に広げる。 */
.dameke-learncmp-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--dameke-learncmp-col)),1fr));gap:5px 4px;align-items:start;}
.dameke-learncmp-chip{justify-self:start;display:inline-block;max-width:100%;box-sizing:border-box;border-radius:6px;padding:3px var(--dameke-learncmp-chip-pad);font-size:var(--dameke-learncmp-fs);font-weight:700;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dameke-learncmp-empty{font-size:.74rem;color:var(--dameke-text-faint);}
@media(max-width:40em){
  .dameke-learncmp-summary-item{flex-direction:column;align-items:flex-start;gap:0;padding:5px 8px;}
  .dameke-learncmp-summary-label{font-size:.7rem;}
  .dameke-learncmp-slots{gap:6px;}
  .dameke-learncmp-slot{flex-direction:column;align-items:stretch;gap:6px;padding:8px;}
  .dameke-learncmp-slot-visual{align-self:center;}
  .dameke-learncmp-image{width:56px;height:56px;}
}

/* ==================== ミニゲーム ==================== */
.dameke-minigame-tab-host{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.dameke-minigame-switch-btn{border:1px solid var(--dameke-border-strong);background:var(--dameke-surface-alt);color:var(--dameke-text-mid);border-radius:8px;padding:7px 14px;font-size:.85rem;font-weight:700;cursor:pointer;}
.dameke-minigame-switch-btn-active{background:#2563eb;border-color:#2563eb;color:#fff;}
.dameke-minigame-game-host{display:flex;flex-direction:column;gap:4px;}

/* ---- ミニゲーム共通(タイトル・ルール・ボタン等)/ポケモン名推理 ---- */
.dameke-nameguess-wrap{display:flex;flex-direction:column;gap:2px;}
.dameke-minigame-title{margin:0 0 4px;font-size:1.05rem;}
.dameke-minigame-rules-fold{margin-top:0;margin-bottom:12px;}
.dameke-minigame-rules-fold summary{cursor:pointer;font-weight:700;font-size:.85rem;color:var(--dameke-text-secondary);}
.dameke-minigame-rules-body{margin-top:8px;font-size:.78rem;color:var(--dameke-text-mid);line-height:1.6;}
.dameke-minigame-rules-body p{margin:0 0 8px;}
.dameke-minigame-rules-body p:last-child{margin-bottom:0;}
.dameke-nameguess-actions{margin-bottom:4px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.dameke-nameguess-actions .dameke-minigame-giveup-btn{margin-bottom:0;}
.dameke-nameguess-actions .dameke-minigame-giveup-btn[hidden]{display:none;}
.dameke-nameguess-count-toggle{font-size:.8rem;}
.dameke-nameguess-random-row{display:flex;}
.dameke-nameguess-random-btn{margin-bottom:0;}
.dameke-nameguess-count{font-size:.78rem;font-weight:700;color:var(--dameke-text-muted);white-space:nowrap;flex:0 0 auto;}
.dameke-minigame-giveup-btn{border-color:var(--dameke-tint-red-border);color:var(--dameke-tint-red-text);background:var(--dameke-tint-red-bg);}
.dameke-minigame-message{min-height:0;}
.dameke-nameguess-correct-label{height:38px;box-sizing:border-box;display:inline-flex;align-items:center;padding:0 14px;margin:0;background:var(--dameke-judge-hit-bg);border-color:var(--dameke-judge-hit-bg);color:var(--dameke-judge-text);font-weight:800;border-radius:8px;cursor:default;}
.dameke-nameguess-lose-banner{background:var(--dameke-surface-alt);border:1px solid var(--dameke-border-strong);color:var(--dameke-text-secondary);border-radius:8px;padding:10px 14px;font-weight:700;margin:6px 0;}
.dameke-minigame-retry-btn{background:#2563eb;border-color:#2563eb;color:#fff;margin-bottom:10px;}

/* 入力欄(左)と使った文字表(右)を横並びにする */
.dameke-nameguess-board-row{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;}
.dameke-nameguess-rows{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px;flex:1 1 320px;min-width:260px;}
.dameke-nameguess-hint-section{flex:0 0 auto;}

.dameke-nameguess-row{display:flex;align-items:center;gap:10px;}
.dameke-nameguess-row-thumb{width:88px;height:88px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.dameke-nameguess-row-thumb img{max-width:100%;max-height:100%;}
.dameke-nameguess-row-thumb-missing{background:var(--dameke-border);border-radius:6px;}
.dameke-nameguess-letters{display:flex;gap:5px;}
.dameke-nameguess-letter-box{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;border-radius:6px;color:var(--dameke-judge-text);background:var(--dameke-judge-miss-bg);}

/* 自由入力欄+決定ボタン: 高さを揃える(同じheight/box-sizingを指定) */
/* 横に収まらないときだけ候補数などを次の行へ折り返す */
.dameke-nameguess-row-input,.dameke-nameguess-row-result{flex-wrap:wrap;}
.dameke-nameguess-text-input,.dameke-nameguess-submit-btn{height:38px;box-sizing:border-box;font-size:.85rem;}
.dameke-nameguess-text-input{flex:1 1 220px;max-width:260px;padding:0 10px;border:1px solid var(--dameke-border-strong);border-radius:8px;}
.dameke-nameguess-submit-btn{margin-bottom:0;padding:0 16px;}
.dameke-nameguess-row-input-inactive .dameke-nameguess-text-input,.dameke-nameguess-row-input-inactive .dameke-nameguess-submit-btn{opacity:.5;}
.dameke-nameguess-input-error{color:var(--dameke-bad-text);font-size:.76rem;font-weight:700;flex:1 1 100%;}

.dameke-nameguess-hint-table{display:flex;flex-direction:column;gap:3px;margin-bottom:6px;}
.dameke-nameguess-hint-row{display:grid;grid-template-columns:repeat(5,32px);gap:3px;}
.dameke-nameguess-hint-cell{display:flex;align-items:center;justify-content:center;height:28px;border-radius:5px;background:var(--dameke-surface-alt2);color:var(--dameke-text-secondary);font-size:.78rem;font-weight:700;}
.dameke-nameguess-hint-cell-empty{background:transparent;}
.dameke-nameguess-cell-green{background:var(--dameke-judge-hit-bg);color:var(--dameke-judge-text);}
.dameke-nameguess-cell-yellow{background:var(--dameke-judge-near-bg);color:var(--dameke-judge-text);}
.dameke-nameguess-cell-gray{background:var(--dameke-judge-miss-bg);color:var(--dameke-judge-text);}
/* ---- 種族値High&Low ---- */
.dameke-stathl-wrap{display:flex;flex-direction:column;gap:2px;}
.dameke-stathl-mode-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:10px;}
.dameke-stathl-mode-label{margin:0;}
.dameke-stathl-mode-option{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;color:var(--dameke-text-secondary);cursor:pointer;}
.dameke-stathl-score{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px;font-size:.82rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-stathl-panels{display:flex;align-items:flex-start;justify-content:center;gap:18px;flex-wrap:wrap;margin-bottom:12px;}
/* 基準/予想対象の各列(パネル本体+ヒントボタン)。ヒントボタンはパネルの外・直下に
   置くので、パネル自体の大きさはヒントボタンの有無に左右されない。 */
.dameke-stathl-side{display:flex;flex-direction:column;align-items:center;gap:6px;}
/* 両パネルをまったく同じ大きさにするため、幅・高さを固定しoverflowはhiddenで
   吸収する(名前の最大幅は、括弧が入れ子になった最長の名前が1行で収まる想定)。 */
.dameke-stathl-panel{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;width:290px;height:200px;box-sizing:border-box;padding:10px;border:1px solid var(--dameke-border-strong);border-radius:10px;background:var(--dameke-surface-alt);text-align:center;overflow:hidden;}
.dameke-stathl-panel-correct{border-color:var(--dameke-judge-hit-bg);background:var(--dameke-hl-correct-bg);}
.dameke-stathl-panel-incorrect{border-color:#dc2626;background:var(--dameke-hl-incorrect-bg);}
.dameke-stathl-role{font-size:.72rem;font-weight:700;color:var(--dameke-text-muted);}
.dameke-stathl-thumb{width:80px;height:80px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.dameke-stathl-thumb img{max-width:100%;max-height:100%;}
.dameke-stathl-thumb-missing{background:var(--dameke-border);border-radius:6px;}
/* 名前が1行/2行のどちらでも、常に2行分の高さを確保しその中で縦中央に揃える
   (heightをこの要素自身のfont-sizeに対するem指定にしているので、フォント
   サイズを変えても「2行分」の高さが自動的に追随する)。 */
.dameke-stathl-name{width:100%;font-size:.72rem;font-weight:700;color:var(--dameke-text-heading);line-height:1.3;height:2.6em;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 0 auto;}
.dameke-stathl-name-line{width:100%;word-break:break-word;white-space:normal;}
.dameke-stathl-statvalue{font-size:.8rem;font-weight:700;color:var(--dameke-text);}
.dameke-stathl-statvalue-hidden{color:var(--dameke-text-faint);}
.dameke-stathl-hint-btn{margin:0;}
.dameke-stathl-vs{font-weight:800;color:var(--dameke-text-muted);font-size:.9rem;align-self:center;}
.dameke-stathl-guess-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.dameke-stathl-guess-btn{margin-bottom:0;display:inline-flex;align-items:center;gap:6px;}
.dameke-stathl-guess-btn-high{border-color:#ef4444;color:var(--dameke-hl-high-text);background:var(--dameke-hl-high-bg);}
.dameke-stathl-guess-btn-same{border-color:#d97706;color:var(--dameke-hl-same-text);background:var(--dameke-hl-same-bg);}
.dameke-stathl-guess-btn-low{border-color:#3b82f6;color:var(--dameke-hl-low-text);background:var(--dameke-hl-low-bg);}
.dameke-stathl-guess-btn-correct{background:var(--dameke-judge-hit-bg)!important;border-color:var(--dameke-judge-hit-bg)!important;color:var(--dameke-judge-text)!important;}
.dameke-stathl-guess-btn-incorrect{background:#dc2626!important;border-color:#dc2626!important;color:#fff!important;}
.dameke-stathl-guess-mark{font-weight:900;}
.dameke-stathl-message{text-align:center;}
.dameke-stathl-gameover-message{font-weight:700;color:var(--dameke-text-secondary);margin:6px 0;}
@media(max-width:30em){
  /* スマホ幅では、パネル幅を「最長のポケモン名が1行で収まる幅」で固定するのをやめ、
     左右の枠(側)をflexで画面幅いっぱいに均等配分することで、常に横並びを維持する。
     ポケモン名は(括弧書きの区切り以外でも)複数行に折り返してよいことにする代わりに、
     文字サイズはこれまでより大きめにする。 */
  .dameke-stathl-panels{gap:6px;flex-wrap:nowrap;}
  .dameke-stathl-side{flex:1 1 0;min-width:0;}
  .dameke-stathl-panel{width:100%;height:auto;min-height:150px;padding:6px;box-sizing:border-box;}
  .dameke-stathl-thumb{width:48px;height:48px;}
  .dameke-stathl-name{font-size:.72rem;height:auto;min-height:2.6em;}
  .dameke-stathl-statvalue{font-size:.74rem;}
  .dameke-stathl-vs{flex:0 0 auto;}
  .dameke-stathl-guess-row{gap:6px;}
  .dameke-stathl-guess-btn{font-size:.72rem;padding:0 10px;}
}
@media(max-width:30em){
  /* 解答欄は「画像＋5文字」の幅より狭くしない。それと「使った文字」が横に並ばない幅では、
     「使った文字」を解答欄の下へ回す(重なり防止)。 */
  .dameke-nameguess-board-row{gap:14px;flex-wrap:wrap;}
  .dameke-nameguess-rows{min-width:var(--dameke-nameguess-rows-min,186px);flex:1 1 0;gap:4px;}
  .dameke-nameguess-letter-box{width:24px;height:24px;font-size:.72rem;border-radius:4px;}
  .dameke-nameguess-row{gap:4px;}
  .dameke-nameguess-row-thumb{width:50px;height:50px;}
  .dameke-nameguess-letters{gap:3px;}
  .dameke-nameguess-text-input{flex:0 1 130px;max-width:130px;min-width:0;padding:0 6px;font-size:.72rem;}
  .dameke-nameguess-submit-btn{padding:0 8px;font-size:.72rem;flex:0 0 auto;}
  .dameke-nameguess-correct-label{height:24px;padding:0 10px;font-size:.72rem;}
  .dameke-nameguess-count{font-size:.66rem;}
  .dameke-nameguess-hint-section{flex:0 0 auto;}
  .dameke-nameguess-hint-row{grid-template-columns:repeat(5,22px);gap:2px;}
  .dameke-nameguess-hint-cell{height:20px;font-size:.6rem;}
}

@media(max-width:23.75em){
  /* さらに狭いスマホ: 画像・文字マスを少し小さくして、解答欄と「使った文字」を横に並べたままにする。 */
  .dameke-nameguess-board-row{gap:10px;}
  .dameke-nameguess-rows{--dameke-nameguess-rows-min:154px;}
  .dameke-nameguess-row-thumb{width:40px;height:40px;}
  .dameke-nameguess-letter-box{width:20px;height:22px;font-size:.66rem;}
  .dameke-nameguess-letters{gap:2px;}
  .dameke-nameguess-text-input{flex-basis:100px;max-width:100px;}
  .dameke-nameguess-hint-row{grid-template-columns:repeat(5,20px);}
}
/* ---- 種族値チャートクイズ ---- */
.dameke-statchart-wrap{display:flex;flex-direction:column;gap:2px;}
.dameke-statchart-chart-host{display:flex;justify-content:center;margin-bottom:8px;}
.dameke-statchart-svg{width:100%;max-width:400px;height:auto;}
.dameke-statchart-grid{fill:none;stroke:var(--dameke-border);stroke-width:1;}
.dameke-statchart-grid-outer{stroke:var(--dameke-chart-grid-outer);}
.dameke-statchart-axis{stroke:var(--dameke-border-strong);stroke-width:1;}
.dameke-statchart-tick-label{font-size:8px;fill:var(--dameke-chart-tick);}
.dameke-statchart-data{fill:rgba(37,99,235,.28);stroke:#2563eb;stroke-width:2;}
.dameke-statchart-data-dot{fill:#2563eb;}
.dameke-statchart-label-name{font-size:18px;font-weight:700;fill:var(--dameke-text-secondary);}
.dameke-statchart-label-value{font-size:19px;font-weight:800;fill:var(--dameke-text);}
.dameke-statchart-total{font-size:18px;font-weight:800;fill:var(--dameke-text-mid);}
.dameke-statchart-hints-frame{border:1px solid var(--dameke-chart-frame);border-radius:8px;padding:14px 10px 10px;margin:6px 0 10px;position:relative;}
.dameke-statchart-hints-legend{position:absolute;top:-9px;left:10px;background:var(--dameke-surface);padding:0 6px;font-size:.75rem;font-weight:700;color:var(--dameke-text-muted);}
.dameke-statchart-hints{display:flex;flex-direction:column;gap:8px;}
.dameke-statchart-hint-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.dameke-statchart-hint-btn{margin-bottom:0;flex:0 0 auto;width:64px;box-sizing:border-box;text-align:center;}
.dameke-statchart-hint-btn-exhausted,.dameke-statchart-hint-btn-exhausted:disabled{background:var(--dameke-surface-alt2);border-color:var(--dameke-border);color:var(--dameke-text-faint);}
.dameke-statchart-hint-values{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:.82rem;color:var(--dameke-text-secondary);font-weight:700;}
.dameke-statchart-type-badge{font-size:.72rem;padding:1px 8px;}
.dameke-statchart-answer-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.dameke-statchart-answer-row .v082h-search-combo{flex:1 1 240px;max-width:320px;}
.dameke-statchart-answer-row .v082h-search-input{height:38px;box-sizing:border-box;font-size:.85rem;padding:0 10px;}
.dameke-statchart-answer-btn{height:38px;box-sizing:border-box;margin-bottom:0;flex:0 0 auto;}
.dameke-statchart-result-correct{font-weight:800;color:var(--dameke-good-text);margin-bottom:4px;}
.dameke-statchart-result-incorrect{font-weight:800;color:var(--dameke-bad-text);margin-bottom:4px;}
.dameke-statchart-guess-line{font-size:.8rem;color:var(--dameke-text-mid);margin-bottom:6px;}
.dameke-statchart-answer-reveal{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.dameke-statchart-answer-thumb{width:64px;height:64px;}
.dameke-statchart-answer-name{font-weight:700;color:var(--dameke-text-heading);}
@media(max-width:30em){
  .dameke-statchart-label-name{font-size:15px;}
  .dameke-statchart-label-value{font-size:16px;}
  .dameke-statchart-tick-label{font-size:7px;}
  .dameke-statchart-total{font-size:15px;}
  .dameke-statchart-answer-row .v082h-search-combo{flex:1 1 auto;max-width:none;}
}

/* ---- ランダムポケモン出力 ---- */
.dameke-randomgen-wrap{display:flex;flex-direction:column;gap:2px;}
.dameke-randomgen-count-label{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--dameke-text-secondary);font-weight:700;}
.dameke-randomgen-count-select{height:32px;box-sizing:border-box;border-radius:6px;border:1px solid var(--dameke-border-strong);font-size:.82rem;padding:0 6px;}
.dameke-randomgen-actions-row{display:flex;justify-content:flex-end;margin:4px 0 10px;}
.dameke-randomgen-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.dameke-randomgen-card{border:1px solid var(--dameke-border);border-radius:10px;padding:10px;display:flex;flex-direction:column;justify-content:space-between;background:var(--dameke-surface);}
.dameke-randomgen-card-body{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-height:150px;justify-content:center;}
.dameke-randomgen-thumb{width:88px;height:88px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.dameke-randomgen-thumb img{max-width:100%;max-height:100%;}
.dameke-randomgen-thumb-missing{background:var(--dameke-border);border-radius:6px;}
.dameke-randomgen-name{font-weight:700;color:var(--dameke-text-heading);font-size:.88rem;}
.dameke-randomgen-types{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;}
.dameke-randomgen-card-empty{color:var(--dameke-text-faint);font-weight:700;font-size:.85rem;}
.dameke-randomgen-redraw-row{display:flex;justify-content:flex-end;margin-top:8px;}
.dameke-randomgen-redraw-btn{margin-bottom:0;}
.dameke-randomgen-empty{color:var(--dameke-text-muted);font-size:.85rem;padding:10px 0;}
@media(max-width:30em){
  .dameke-randomgen-grid{gap:8px;}
  .dameke-randomgen-card{padding:8px;}
  .dameke-randomgen-thumb{width:64px;height:64px;}
  .dameke-randomgen-card-body{min-height:120px;}
}

/* ==================== エクスポート / インポート(計算履歴・ポケモン管理・パーティ管理) ==================== */
/* 画面タイトルと同じ行の右寄せにボタンを置く。幅が足りない(狭い画面・文字サイズが大きい)ときは
   重ならないよう、ボタンだけ次の行へ折り返す(右寄せのまま)。 */
.dameke-panel-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 10px;margin:0 0 10px;}
.dameke-panel-title-row h2{margin:0;}
.dameke-transfer-buttons{flex:0 0 auto;margin-left:auto;}
.dameke-transfer-buttons[hidden]{display:none;}
/* 選択モードのあいだ、新規作成などの他の操作を隠す */
.dameke-transfer-hide{display:none !important;}
/* ポケモン・パーティの編集中は「新規作成」を隠す(JS側のhidden指定を効かせる。ボタン自体のdisplay指定がhidden属性より優先されてしまうため) */
#damekePokemonNewBtn[hidden],#damekePartyNewBtn[hidden]{display:none;}
/* ファイル選択用の入力欄は画面に出さない(ボタンから開く) */
.dameke-transfer-file-input{position:fixed;left:-9999px;top:0;width:1px;height:1px;opacity:0;}
/* エクスポートするものを選ぶあいだ、一覧の上に出す案内枠。一覧が長くても操作できるよう上端に留める。 */
.dameke-transfer-banner{position:sticky;top:8px;z-index:20;margin-bottom:0;box-shadow:0 2px 8px rgba(15,23,42,.18);}
.dameke-transfer-banner-actions{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto;}
.dameke-transfer-banner-actions button{border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:700;white-space:nowrap;}
.dameke-transfer-banner-export{background:#059669;border-color:#059669;color:#fff;}
.dameke-transfer-banner-export:disabled,.dameke-transfer-banner-all:disabled{background:var(--dameke-border-strong);border-color:var(--dameke-border-strong);color:var(--dameke-text-faint);cursor:not-allowed;}
.dameke-transfer-banner-cancel{background:var(--dameke-border);border-color:var(--dameke-border);color:var(--dameke-text);}
/* 選択できるカード(押すと選択/解除)。選択中は枠の太さを変えず(中身がずれないよう)、影で縁取る。 */
.dameke-transfer-selectable{cursor:pointer;transition:border-color .12s,box-shadow .12s;}
.dameke-transfer-selectable:hover{border-color:var(--dameke-text-faint);}
.dameke-transfer-selected,.dameke-transfer-selected:hover{border-color:#059669;box-shadow:0 0 0 1px #059669,0 0 0 3px rgba(5,150,105,.15);background:var(--dameke-tint-green-bg);}
.dameke-transfer-badge{flex:0 0 auto;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--dameke-border);color:var(--dameke-text-mid);white-space:nowrap;}
.dameke-transfer-selected .dameke-transfer-badge{background:#059669;color:#fff;}
/* ポケモンのカードは、選択状態を右上の独立した行に出す(メガシンカの切り替えと重ならないように)。 */
.dameke-pokemon-card.dameke-transfer-selectable{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:6px;}
.dameke-pokemon-card.dameke-transfer-selectable > .dameke-transfer-badge{align-self:flex-end;}
.dameke-pokemon-card.dameke-transfer-selectable > .dameke-pokemon-card-main{flex:0 0 auto !important;width:auto;}

/* ---- ミニゲーム共通: 「範囲」の折り畳み(見た目は「ルール」の折り畳みと同じ) ---- */
.dameke-minigame-range-body{margin-top:8px;}
.dameke-minigame-range-body > :last-child{margin-bottom:0;}
.dameke-minigame-range-btn{margin-bottom:0;padding:3px 10px;}
.dameke-minigame-range-subfold{margin-top:0;background:var(--dameke-surface);}
.dameke-minigame-range-subfold .dameke-stathl-mode-row{margin:8px 0 0;}
.dameke-minigame-empty{color:var(--dameke-text-muted);font-size:.85rem;padding:10px 0;}

/* ---- ポケモン図鑑埋め ---- */
.dameke-dexfill-wrap{display:flex;flex-direction:column;gap:2px;}
/* 入力欄+決定ボタン+結果メッセージ。横に収まらないときはメッセージだけ次の行へ折り返す */
.dameke-dexfill-input-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.dameke-dexfill-text-input,.dameke-dexfill-submit-btn{height:38px;box-sizing:border-box;font-size:.85rem;}
.dameke-dexfill-text-input{flex:1 1 180px;max-width:280px;min-width:0;padding:0 10px;border:1px solid var(--dameke-border-strong);border-radius:8px;}
.dameke-dexfill-submit-btn{margin-bottom:0;padding:0 16px;flex:0 0 auto;}
.dameke-dexfill-text-input:disabled,.dameke-dexfill-submit-btn:disabled{opacity:.5;}
.dameke-dexfill-message{flex:1 1 180px;min-width:0;font-size:.8rem;font-weight:700;color:var(--dameke-text-muted);overflow-wrap:anywhere;}
.dameke-dexfill-message:empty{display:none;}
.dameke-dexfill-message-ok{color:var(--dameke-good-text);}
.dameke-dexfill-message-bad{color:var(--dameke-bad-text);}
.dameke-dexfill-status-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.dameke-dexfill-status-row .dameke-search-add-btn{margin-bottom:0;}
.dameke-dexfill-status-row [hidden]{display:none;}
.dameke-dexfill-progress{font-size:.85rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-dexfill-complete{display:inline-flex;align-items:center;padding:4px 12px;border-radius:8px;background:var(--dameke-judge-hit-bg);color:var(--dameke-judge-text);font-size:.8rem;font-weight:800;}
/* 枠の一覧はこの中だけでスクロールする(上の入力欄を見えたままにするため)。 */
.dameke-dexfill-board{max-height:min(60vh,540px);overflow-y:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--dameke-border);border-radius:10px;padding:8px;}
.dameke-dexfill-empty{color:var(--dameke-text-muted);font-size:.85rem;padding:10px 0;}
.dameke-dexfill-gen{margin-bottom:14px;}
.dameke-dexfill-gen:last-child{margin-bottom:0;}
.dameke-dexfill-gen-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:5px;font-size:.82rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-dexfill-gen-count{font-size:.74rem;color:var(--dameke-text-muted);}
/* 枠は幅に合わせて1行の数が変わる。高さは画像の大きさで固定し、名前表示(画像なし)の枠だけ
   文字が収まるよう2枠ぶんの幅にして、必要なら行の高さが伸びる。 */
.dameke-dexfill-grid{--dameke-dexfill-cell:52px;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--dameke-dexfill-cell),1fr));gap:4px;}
.dameke-dexfill-cell{min-width:0;min-height:var(--dameke-dexfill-cell);box-sizing:border-box;display:flex;align-items:center;justify-content:center;border:1px solid var(--dameke-border);border-radius:6px;background:var(--dameke-surface-alt2);}
.dameke-dexfill-cell img{display:block;width:100%;height:calc(var(--dameke-dexfill-cell) - 2px);object-fit:contain;}
.dameke-dexfill-cell-open{background:var(--dameke-surface);}
.dameke-dexfill-cell-missed{background:var(--dameke-tint-red-bg);border-color:var(--dameke-tint-red-border);}
.dameke-dexfill-cell-new{outline:2px solid #2563eb;outline-offset:-2px;}
.dameke-dexfill-cell-name{grid-column:span 2;padding:2px 3px;font-size:.58rem;font-weight:700;line-height:1.2;text-align:center;color:var(--dameke-text-secondary);overflow-wrap:anywhere;word-break:break-all;}
@media(max-width:30em){
  .dameke-dexfill-grid{--dameke-dexfill-cell:40px;gap:3px;}
  .dameke-dexfill-board{max-height:50vh;padding:6px;}
  .dameke-dexfill-text-input{flex-basis:140px;}
  .dameke-dexfill-submit-btn{padding:0 12px;}
}

/* ===== ミニゲーム: 相性カードバトル ===== */
.dameke-tcb-wrap{display:flex;flex-direction:column;gap:10px;}
.dameke-tcb-wrap .dameke-minigame-rules-fold{margin-bottom:0;}
.dameke-tcb-setting-row{margin-bottom:0;}
.dameke-tcb-new-btn{margin:0 0 0 auto;padding:4px 12px;}
.dameke-tcb-board{display:flex;flex-direction:column;gap:10px;border:1px solid var(--dameke-border);border-radius:10px;background:var(--dameke-surface-alt);padding:10px;}
.dameke-tcb-scores{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.dameke-tcb-score{border:2px solid var(--dameke-border);border-radius:8px;background:var(--dameke-surface);padding:6px 8px;min-width:0;}
.dameke-tcb-score-me.dameke-tcb-score-turn{border-color:#2563eb;}
.dameke-tcb-score-cpu.dameke-tcb-score-turn{border-color:#dc2626;}
.dameke-tcb-score-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px;flex-wrap:wrap;}
.dameke-tcb-score-name{font-size:.8rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-tcb-score-pts{font-size:1.25rem;font-weight:800;color:var(--dameke-text-heading);font-variant-numeric:tabular-nums;}
.dameke-tcb-score-sub{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;margin-top:3px;}
.dameke-tcb-boost-chip{font-size:.7rem;font-weight:700;border-radius:999px;padding:1px 8px;border:1px solid var(--dameke-tint-green-border);background:var(--dameke-tint-green-bg);color:var(--dameke-good-text);}
.dameke-tcb-boost-chip-used{border-color:var(--dameke-border);background:var(--dameke-surface-alt2);color:var(--dameke-text-muted);}
.dameke-tcb-score-count{font-size:.72rem;color:var(--dameke-text-muted);}
.dameke-tcb-row{display:flex;flex-direction:column;gap:4px;}
.dameke-tcb-row-label{font-size:.75rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-tcb-backs{display:flex;flex-wrap:wrap;gap:4px;min-height:2.6em;align-items:center;}
.dameke-tcb-back{width:2.2em;height:3em;display:flex;align-items:center;justify-content:center;border-radius:6px;border:2px solid var(--dameke-border-strong);background:repeating-linear-gradient(45deg,var(--dameke-surface-alt2) 0 4px,var(--dameke-surface) 4px 8px);color:var(--dameke-text-muted);font-weight:800;font-size:1rem;}
.dameke-tcb-empty{font-size:.78rem;color:var(--dameke-text-muted);}
.dameke-tcb-mid{display:grid;grid-template-columns:minmax(9.5em,12em) 1fr;gap:10px;align-items:start;}
.dameke-tcb-field{display:flex;flex-direction:column;gap:4px;}
.dameke-tcb-side{display:flex;flex-direction:column;gap:8px;min-width:0;}
.dameke-tcb-deck{display:flex;flex-direction:column;gap:4px;}
.dameke-tcb-lastplay{font-size:.76rem;color:var(--dameke-text-mid);line-height:1.5;}
.dameke-tcb-lastplay-head{font-weight:700;color:var(--dameke-text-secondary);}
.dameke-tcb-lastplay-detail{overflow-wrap:anywhere;}
.dameke-tcb-lastplay-shudder,.dameke-tcb-fx-shudder{font-weight:700;color:var(--dameke-tint-amber-text);}
.dameke-tcb-message{font-size:.88rem;font-weight:700;color:var(--dameke-text-heading);border-radius:8px;padding:6px 10px;background:var(--dameke-surface);border:1px solid var(--dameke-border);}
.dameke-tcb-message-win{background:var(--dameke-tint-blue-bg);border-color:var(--dameke-tint-blue-border);}
.dameke-tcb-message-lose{background:var(--dameke-tint-red-bg);border-color:var(--dameke-tint-red-border);color:var(--dameke-tint-red-text);}
.dameke-tcb-message-draw{background:var(--dameke-tint-amber-bg);border-color:var(--dameke-tint-amber-border);}
.dameke-tcb-message-sub{font-size:.76rem;font-weight:400;color:var(--dameke-text-mid);margin-top:2px;}
.dameke-tcb-again{align-self:flex-start;margin-bottom:0;}
.dameke-tcb-hand{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.2em,1fr));gap:6px;}
.dameke-tcb-pool{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.4em,1fr));gap:5px;}
/* カード表面 */
.dameke-tcb-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;border:2px solid var(--dameke-border);border-radius:8px;background:var(--dameke-surface);color:var(--dameke-text);padding:4px 4px 5px;font:inherit;text-align:center;line-height:1.25;}
button.dameke-tcb-card{cursor:pointer;}
button.dameke-tcb-card:hover{border-color:#60a5fa;}
.dameke-tcb-card-selected,button.dameke-tcb-card-selected:hover{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.35);}
.dameke-tcb-card-wait{cursor:default;opacity:.85;}
button.dameke-tcb-card-wait:hover{border-color:var(--dameke-border);}
.dameke-tcb-card-dyn{border-color:#dc2626;box-shadow:0 0 0 2px rgba(220,38,38,.25);}
.dameke-tcb-card-label{position:absolute;top:2px;left:2px;font-size:.62rem;font-weight:700;border-radius:4px;padding:0 4px;background:var(--dameke-active-bg);color:var(--dameke-active-text);z-index:1;}
.dameke-tcb-label-dyn{background:#dc2626;color:#fff;}
.dameke-tcb-card-img{display:flex;align-items:center;justify-content:center;width:3.2em;height:3.2em;}
.dameke-tcb-card-img img{max-width:100%;max-height:100%;object-fit:contain;}
.dameke-tcb-card-img-missing::after{content:'？';color:var(--dameke-text-faint);font-weight:700;}
.dameke-tcb-card-name{font-size:.74rem;font-weight:700;overflow-wrap:anywhere;}
.dameke-tcb-card-types{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;}
.dameke-tcb-type-badge{margin-right:0;font-size:.62rem;white-space:nowrap;}
.dameke-tcb-card-ability{font-size:.64rem;color:var(--dameke-text-muted);overflow-wrap:anywhere;}
.dameke-tcb-card-ability-key{color:var(--dameke-tint-amber-text);font-weight:700;}
.dameke-tcb-card-alt{position:absolute;top:2px;right:2px;font-size:.6rem;font-weight:700;border-radius:4px;padding:0 3px;background:var(--dameke-accent-soft-bg);color:var(--dameke-accent-soft-text);}
.dameke-tcb-card-s .dameke-tcb-card-img{width:2.6em;height:2.6em;}
.dameke-tcb-card-s .dameke-tcb-card-name{font-size:.68rem;}
.dameke-tcb-card-s .dameke-tcb-type-badge{font-size:.56rem;padding:0 3px;}
.dameke-tcb-card-s .dameke-tcb-card-ability{font-size:.58rem;}
.dameke-tcb-card-l{padding:6px 6px 8px;}
.dameke-tcb-card-l .dameke-tcb-card-img{width:4.6em;height:4.6em;}
.dameke-tcb-card-l .dameke-tcb-card-name{font-size:.88rem;}
.dameke-tcb-card-l .dameke-tcb-type-badge{font-size:.7rem;padding:0 6px;}
.dameke-tcb-card-l .dameke-tcb-card-ability{font-size:.72rem;}
/* 操作 */
.dameke-tcb-actions{display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--dameke-border-strong);padding-top:8px;}
.dameke-tcb-actions:empty{display:none;}
.dameke-tcb-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.dameke-tcb-action-label{font-size:.78rem;font-weight:700;color:var(--dameke-text-secondary);min-width:3.5em;}
.dameke-tcb-choice{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;border:1px solid var(--dameke-border-strong);background:var(--dameke-surface);color:var(--dameke-text-mid);border-radius:8px;padding:5px 10px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;text-align:left;}
.dameke-tcb-choice:disabled{opacity:.45;cursor:not-allowed;}
.dameke-tcb-choice-active{background:#2563eb;border-color:#2563eb;color:#fff;}
.dameke-tcb-note{margin:6px 0 0;font-size:.72rem;color:var(--dameke-text-muted);line-height:1.5;}
.dameke-tcb-note-inline{font-size:.72rem;color:var(--dameke-text-muted);}
/* 今回のカード */
.dameke-tcb-section{display:flex;flex-direction:column;gap:6px;}
.dameke-tcb-section-head{font-size:.85rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-tcb-legend{display:flex;flex-wrap:wrap;gap:4px;}
.dameke-tcb-legend-item{font-size:.68rem;border-radius:4px;padding:1px 6px;border:2px solid var(--dameke-border);background:var(--dameke-surface);color:var(--dameke-text-mid);}
.dameke-tcb-pool .dameke-tcb-card{padding-top:12px;}
.dameke-tcb-st-mine{border-color:#2563eb;background:var(--dameke-tint-blue-bg);}
.dameke-tcb-st-field{border-color:#16a34a;background:var(--dameke-tint-green-bg);}
.dameke-tcb-st-used{border-style:dashed;background:var(--dameke-surface-alt2);}
.dameke-tcb-pool .dameke-tcb-st-used{opacity:.55;}
.dameke-tcb-st-used-me .dameke-tcb-card-label{background:#2563eb;color:#fff;}
.dameke-tcb-st-used-cpu .dameke-tcb-card-label{background:#dc2626;color:#fff;}
.dameke-tcb-st-deck{border-color:#d97706;background:var(--dameke-tint-amber-bg);}
.dameke-tcb-st-mine .dameke-tcb-card-label{background:#2563eb;color:#fff;}
.dameke-tcb-st-field .dameke-tcb-card-label{background:#16a34a;color:#fff;}
.dameke-tcb-st-deck .dameke-tcb-card-label{background:#d97706;color:#fff;}
/* 相性表・特性 */
.dameke-tcb-chart-wrap{overflow-x:auto;}
.dameke-tcb-chart-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0 0 6px;font-size:.72rem;color:var(--dameke-text-mid);}
.dameke-tcb-chart-legend-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;}
.dameke-tcb-chart-legend-mark{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;border:1px solid var(--dameke-border);background:var(--dameke-surface);font-weight:800;}
.dameke-tcb-chart-legend-mark.dameke-tcb-chart-2{background:var(--dameke-tint-red-bg);color:var(--dameke-tint-red-text);}
.dameke-tcb-chart-legend-mark.dameke-tcb-chart-h{background:var(--dameke-tint-blue-bg);color:var(--dameke-link-text);}
.dameke-tcb-chart-legend-mark.dameke-tcb-chart-0{background:var(--dameke-surface-alt2);color:var(--dameke-text);}
.dameke-tcb-chart td.dameke-tcb-chart-0,.dameke-tcb-chart-legend-mark.dameke-tcb-chart-0{font-size:1.15em;line-height:1;}
.dameke-tcb-chart{border-collapse:collapse;font-size:.66rem;line-height:1.2;}
.dameke-tcb-chart th,.dameke-tcb-chart td{border:1px solid var(--dameke-border);padding:2px 3px;text-align:center;min-width:1.5em;}
.dameke-tcb-chart th{font-weight:700;}
.dameke-tcb-chart-corner{background:var(--dameke-surface-alt2);color:var(--dameke-text-muted);white-space:nowrap;}
.dameke-tcb-chart-rowhead{white-space:nowrap;text-align:left;}
.dameke-tcb-chart td{background:var(--dameke-surface);color:var(--dameke-text-faint);}
.dameke-tcb-chart td.dameke-tcb-chart-2{background:var(--dameke-tint-red-bg);color:var(--dameke-tint-red-text);font-weight:800;}
.dameke-tcb-chart td.dameke-tcb-chart-h{background:var(--dameke-tint-blue-bg);color:var(--dameke-link-text);font-weight:700;}
.dameke-tcb-chart td.dameke-tcb-chart-0{background:var(--dameke-surface-alt2);color:var(--dameke-text);font-weight:800;}
.dameke-tcb-abil-head{font-size:.76rem;font-weight:700;color:var(--dameke-text-secondary);margin:6px 0 3px;}
.dameke-tcb-abil-head:first-child{margin-top:0;}
.dameke-tcb-abil-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(15em,1fr));gap:2px 10px;}
.dameke-tcb-abil-row{display:flex;gap:6px;font-size:.72rem;padding:1px 4px;border-radius:4px;color:var(--dameke-text-mid);}
.dameke-tcb-abil-present{background:var(--dameke-tint-amber-bg);color:var(--dameke-tint-amber-text);font-weight:700;}
.dameke-tcb-abil-name{flex:0 0 auto;min-width:7em;font-weight:700;}
.dameke-tcb-abil-desc{min-width:0;}
.dameke-tcb-log{margin:0;padding-left:1.8em;font-size:.74rem;line-height:1.6;color:var(--dameke-text-mid);}
.dameke-tcb-log-me::marker{color:#2563eb;font-weight:700;}
.dameke-tcb-log-cpu::marker{color:#dc2626;font-weight:700;}
.dameke-tcb-start{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 8px;text-align:center;}
.dameke-tcb-start-text{margin:0;font-size:.85rem;color:var(--dameke-text-mid);line-height:1.6;}
.dameke-tcb-start-btn{margin-bottom:0;font-size:1rem;padding:10px 28px;}
.dameke-tcb-new-btn[hidden]{display:none;}
.dameke-tcb-handitem{display:flex;flex-direction:column;gap:3px;min-width:0;}
.dameke-tcb-handitem > .dameke-tcb-card{flex:1 1 auto;}
.dameke-tcb-face-select{flex:1 1 auto;width:auto;min-width:0;font-size:.72rem;padding:2px 2px;border:1px solid var(--dameke-border-strong);border-radius:6px;background:var(--dameke-surface);color:var(--dameke-text);}
.dameke-tcb-card-label.dameke-tcb-label-play{position:static;align-self:stretch;background:#2563eb;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;margin:-1px -1px 2px;}
/* 演出: 出した札・交換・カットイン(押すと早送り) */
.dameke-tcb-fx-layer{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.45);cursor:pointer;animation:dameke-tcb-fade .18s ease-out;}
.dameke-tcb-fx-panel{width:min(26em,100%);max-height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:8px;border-radius:12px;border:3px solid var(--dameke-border-strong);background:var(--dameke-surface);color:var(--dameke-text);padding:12px 12px 10px;box-shadow:0 10px 30px rgba(0,0,0,.35);animation:dameke-tcb-pop .22s ease-out;}
.dameke-tcb-fx-panel-me{border-color:#2563eb;}
.dameke-tcb-fx-panel-cpu{border-color:#dc2626;}
.dameke-tcb-fx-head{font-size:1rem;font-weight:800;}
.dameke-tcb-fx-head-me{color:var(--dameke-link-text);}
.dameke-tcb-fx-head-cpu{color:var(--dameke-tint-red-text);}
.dameke-tcb-fx-boost{font-size:.95rem;font-weight:800;border-radius:999px;padding:2px 14px;color:#fff;background:#d97706;}
.dameke-tcb-fx-boost-D{background:#dc2626;}
.dameke-tcb-fx-cards{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;width:100%;}
.dameke-tcb-fx-arrow{font-size:1.6rem;font-weight:800;color:var(--dameke-text-muted);}
.dameke-tcb-fx-attacker{animation:dameke-tcb-slide .35s ease-out;}
.dameke-tcb-fx-parts{font-size:.78rem;color:var(--dameke-text-mid);line-height:1.6;text-align:center;overflow-wrap:anywhere;}
.dameke-tcb-fx-pts{font-size:1.6rem;font-weight:800;color:var(--dameke-text-heading);font-variant-numeric:tabular-nums;animation:dameke-tcb-pop .3s ease-out .25s both;}
.dameke-tcb-fx-shudder{font-size:.9rem;animation:dameke-tcb-shake .4s ease-in-out .5s 2;}
.dameke-tcb-fx-hint{font-size:.66rem;color:var(--dameke-text-faint);}
.dameke-tcb-cutin{width:100%;display:flex;justify-content:center;padding:14px 8px;background:var(--dameke-active-bg);color:var(--dameke-active-text);box-shadow:0 6px 20px rgba(0,0,0,.3);animation:dameke-tcb-band .3s ease-out;}
.dameke-tcb-cutin-me{background:#2563eb;color:#fff;}
.dameke-tcb-cutin-cpu{background:#dc2626;color:#fff;}
.dameke-tcb-cutin-text{font-size:1.3rem;font-weight:800;letter-spacing:.08em;text-align:center;}
@keyframes dameke-tcb-fade{from{opacity:0;}to{opacity:1;}}
@keyframes dameke-tcb-pop{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:scale(1);}}
@keyframes dameke-tcb-slide{from{opacity:0;transform:translateX(-40%);}to{opacity:1;transform:none;}}
@keyframes dameke-tcb-band{from{transform:translateX(100%);}to{transform:none;}}
@keyframes dameke-tcb-shake{0%,100%{transform:none;}25%{transform:translateX(-4px);}75%{transform:translateX(4px);}}
.dameke-tcb-face-ctl{display:flex;flex-wrap:wrap;gap:3px;min-width:0;}
.dameke-tcb-face-btn{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:0;border:1px solid var(--dameke-border-strong);border-radius:6px;background:var(--dameke-surface);color:var(--dameke-text-mid);font:inherit;font-size:.7rem;font-weight:700;padding:3px 6px;cursor:pointer;white-space:nowrap;}
.dameke-tcb-face-btn:hover{border-color:#60a5fa;}
.dameke-tcb-face-cycle{flex:1 1 auto;color:var(--dameke-accent-soft-text);background:var(--dameke-accent-soft-bg);}
.dameke-tcb-cycle-icon{flex:0 0 auto;width:1.15em;height:1.15em;}
.dameke-tcb-face-count{font-variant-numeric:tabular-nums;}
.dameke-tcb-face-info{flex:1 0 auto;}
.dameke-tcb-fx-leaving{animation:dameke-tcb-fadeout .26s ease-in forwards;}
.dameke-tcb-fx-leaving .dameke-tcb-cutin{animation:dameke-tcb-band-out .26s ease-in forwards;}
.dameke-tcb-fx-leaving .dameke-tcb-fx-panel{animation:dameke-tcb-shrink .26s ease-in forwards;}
@keyframes dameke-tcb-fadeout{from{opacity:1;}to{opacity:0;}}
@keyframes dameke-tcb-band-out{from{transform:none;}to{transform:translateX(-100%);}}
@keyframes dameke-tcb-shrink{from{opacity:1;transform:none;}to{opacity:0;transform:scale(.92);}}
.dameke-tcb-modal-layer{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.45);}
.dameke-tcb-modal{width:min(34em,100%);max-height:100%;overflow:auto;display:flex;flex-direction:column;gap:8px;border-radius:12px;border:1px solid var(--dameke-border-strong);background:var(--dameke-surface);color:var(--dameke-text);padding:12px;box-shadow:0 10px 30px rgba(0,0,0,.35);}
.dameke-tcb-modal .dameke-tcb-note{margin:0;}
.dameke-tcb-modal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.dameke-tcb-modal-title{font-size:.92rem;font-weight:800;color:var(--dameke-text-heading);}
.dameke-tcb-modal-close{margin:0;padding:4px 12px;}
.dameke-tcb-modal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7em,1fr));gap:6px;}
.dameke-tcb-modal-item{display:flex;flex-direction:column;gap:3px;min-width:0;}
.dameke-tcb-modal-item > .dameke-tcb-card{flex:1 1 auto;}
.dameke-tcb-modal-desc{font-size:.64rem;color:var(--dameke-text-mid);line-height:1.4;overflow-wrap:anywhere;}
/* 強化: 選んだとき・使ったときを目立たせる(Zワザ=金、ダイマックス=赤) */
.dameke-tcb-choice-active.dameke-tcb-choice-boost-Z{background:#d97706;border-color:#d97706;color:#fff;box-shadow:0 0 0 3px rgba(217,119,6,.3);}
.dameke-tcb-choice-active.dameke-tcb-choice-boost-D{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:0 0 0 3px rgba(220,38,38,.3);}
.dameke-tcb-card-boost-Z,button.dameke-tcb-card-boost-Z:hover{border-color:#d97706;box-shadow:0 0 0 3px rgba(217,119,6,.45),0 0 14px rgba(245,158,11,.6);}
.dameke-tcb-card-boost-D,button.dameke-tcb-card-boost-D:hover{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.4),0 0 14px rgba(239,68,68,.55);}
.dameke-tcb-card-label.dameke-tcb-label-boost-Z{background:#d97706;}
.dameke-tcb-card-label.dameke-tcb-label-boost-D{background:#dc2626;}
.dameke-tcb-boost-chip-used.dameke-tcb-boost-chip-Z{border-color:#d97706;background:var(--dameke-tint-amber-bg);color:var(--dameke-tint-amber-text);}
.dameke-tcb-boost-chip-used.dameke-tcb-boost-chip-D{border-color:#dc2626;background:var(--dameke-tint-red-bg);color:var(--dameke-tint-red-text);}
.dameke-tcb-card-dyn{border-width:3px;box-shadow:0 0 0 3px rgba(220,38,38,.3),0 0 16px rgba(239,68,68,.5);}
.dameke-tcb-cutin-boost-Z{background:linear-gradient(90deg,#b45309,#f59e0b 50%,#b45309);color:#fff;}
.dameke-tcb-cutin-boost-D{background:linear-gradient(90deg,#991b1b,#ef4444 50%,#991b1b);color:#fff;}
.dameke-tcb-cutin-boost-Z .dameke-tcb-cutin-text,.dameke-tcb-cutin-boost-D .dameke-tcb-cutin-text{font-size:1.6rem;text-shadow:0 2px 6px rgba(0,0,0,.35);}
.dameke-tcb-fx-panel-boost-Z{border-color:#d97706;box-shadow:0 0 0 4px rgba(217,119,6,.35),0 0 30px rgba(245,158,11,.55);}
.dameke-tcb-fx-panel-boost-D{border-color:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.3),0 0 30px rgba(239,68,68,.5);}
.dameke-tcb-fx-panel-boost .dameke-tcb-fx-boost{font-size:1.15rem;padding:4px 20px;}
.dameke-tcb-fx-panel-boost-Z .dameke-tcb-fx-attacker{border-color:#d97706;box-shadow:0 0 16px rgba(245,158,11,.7);}
.dameke-tcb-fx-panel-boost-D .dameke-tcb-fx-attacker{border-color:#dc2626;box-shadow:0 0 16px rgba(239,68,68,.65);}
.dameke-tcb-fx-panel-boost-Z .dameke-tcb-fx-pts{color:var(--dameke-tint-amber-text);font-size:2rem;}
.dameke-tcb-fx-panel-boost-D .dameke-tcb-fx-pts{color:var(--dameke-tint-red-text);font-size:2rem;}
/* テラスタル(水色) */
.dameke-tcb-card-teraline{display:inline-flex;align-items:center;gap:3px;font-size:.6rem;color:var(--dameke-text-muted);white-space:nowrap;}
.dameke-tcb-tera-badge{font-size:.56rem;padding:0 4px;}
.dameke-tcb-card-teraline-on{font-weight:800;color:#0e7490;}
.dameke-tcb-card-teraline-no{color:var(--dameke-text-faint);}
.dameke-tcb-hand-gas .dameke-tcb-card-ability{text-decoration:line-through;text-decoration-thickness:2px;color:var(--dameke-text-faint);}
.dameke-tcb-card-tera{border-color:#06b6d4;background:linear-gradient(160deg,rgba(103,232,249,.22),transparent 45%,rgba(167,139,250,.18)),var(--dameke-surface);box-shadow:0 0 0 2px rgba(6,182,212,.3),0 0 12px rgba(34,211,238,.45);}
.dameke-tcb-card-label.dameke-tcb-label-tera{background:#0891b2;color:#fff;}
.dameke-tcb-choice-active.dameke-tcb-choice-boost-T{background:#0891b2;border-color:#0891b2;color:#fff;box-shadow:0 0 0 3px rgba(8,145,178,.3);}
.dameke-tcb-card-boost-T,button.dameke-tcb-card-boost-T:hover{border-color:#06b6d4;box-shadow:0 0 0 3px rgba(6,182,212,.4),0 0 14px rgba(34,211,238,.6);}
.dameke-tcb-card-label.dameke-tcb-label-boost-T{background:#0891b2;}
.dameke-tcb-boost-chip-used.dameke-tcb-boost-chip-T{border-color:#0891b2;background:rgba(6,182,212,.12);color:#0e7490;}
.dameke-tcb-cutin-boost-T{background:linear-gradient(90deg,#0e7490,#22d3ee 35%,#a78bfa 65%,#0e7490);color:#fff;}
.dameke-tcb-cutin-boost-T .dameke-tcb-cutin-text{font-size:1.6rem;text-shadow:0 2px 6px rgba(0,0,0,.35);}
.dameke-tcb-fx-boost-T{background:linear-gradient(90deg,#0891b2,#7c3aed);}
.dameke-tcb-fx-panel-boost-T{border-color:#06b6d4;box-shadow:0 0 0 4px rgba(6,182,212,.3),0 0 30px rgba(34,211,238,.5);}
.dameke-tcb-fx-panel-boost-T .dameke-tcb-fx-pts{color:#0e7490;font-size:2rem;}
:root[data-theme="dark"] .dameke-tcb-card-teraline-on,:root[data-theme="dark"] .dameke-tcb-boost-chip-used.dameke-tcb-boost-chip-T,:root[data-theme="dark"] .dameke-tcb-fx-panel-boost-T .dameke-tcb-fx-pts{color:#67e8f9;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .dameke-tcb-card-teraline-on,:root:not([data-theme="light"]) .dameke-tcb-boost-chip-used.dameke-tcb-boost-chip-T,:root:not([data-theme="light"]) .dameke-tcb-fx-panel-boost-T .dameke-tcb-fx-pts{color:#67e8f9;}
}
/* マリガン */
.dameke-tcb-mull-row{border:2px solid #7c3aed;border-radius:10px;background:var(--dameke-accent-soft-bg);padding:8px 10px;}
.dameke-tcb-mull-row .dameke-tcb-note-inline{color:var(--dameke-accent-soft-text);}
.dameke-tcb-mull-skip{margin-bottom:0;}
.dameke-tcb-card-mull,button.dameke-tcb-card-mull:hover{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.35);}
.dameke-tcb-card-label.dameke-tcb-label-mull{background:#7c3aed;}
.dameke-tcb-backs .dameke-tcb-opp-open{width:5.2em;padding-top:12px;}
.dameke-tcb-card-label.dameke-tcb-label-open,.dameke-tcb-st-opp .dameke-tcb-card-label{background:#dc2626;color:#fff;}
.dameke-tcb-st-opp{border-color:#dc2626;background:var(--dameke-tint-red-bg);}
.dameke-tcb-log-mull{font-size:.74rem;color:var(--dameke-text-mid);margin-bottom:2px;}
@media (prefers-reduced-motion: reduce){
  .dameke-tcb-fx-layer,.dameke-tcb-fx-panel,.dameke-tcb-fx-attacker,.dameke-tcb-fx-pts,.dameke-tcb-fx-shudder,.dameke-tcb-cutin,.dameke-tcb-fx-leaving,.dameke-tcb-fx-leaving .dameke-tcb-cutin,.dameke-tcb-fx-leaving .dameke-tcb-fx-panel{animation:none;}
}
@media(max-width:30em){
  .dameke-tcb-board{padding:8px;}
  .dameke-tcb-mid{grid-template-columns:minmax(8em,9.5em) 1fr;gap:8px;}
  .dameke-tcb-card-l .dameke-tcb-card-img{width:3.8em;height:3.8em;}
  .dameke-tcb-hand{grid-template-columns:repeat(3,minmax(0,1fr));}
  .dameke-tcb-pool{grid-template-columns:repeat(4,minmax(0,1fr));}
  .dameke-tcb-score-pts{font-size:1.1rem;}
  .dameke-tcb-back{width:1.9em;height:2.6em;}
}
@media(max-width:23.75em){
  .dameke-tcb-pool{grid-template-columns:repeat(3,minmax(0,1fr));}
  .dameke-tcb-abil-name{min-width:6em;}
}

/* ==================== 詳細ステータス: 表示用の表と編集シート(v2.6.2) ==================== */
/* 元の入力欄(努力値・実数値・ランク)は画面に出さない。値の保存・計算・履歴はこの欄をそのまま使う。
   display:none にすると「表示されていた欄」の判定(計算履歴の詳細)が変わるため、見えない形で残す。 */
.dameke-stat-src{visibility:hidden;position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
.v082h-stats-panel{position:relative;container-type:inline-size;}
/* 表: ふつうの表の見た目(枠やボタンの影は付けない)。能力ごとの列(見出し〜ランク)全体が押せる範囲で、
   見出しの横の ▾ が「押すと下に開く」ことを示す。行の高さは rem で決め、左の行名とそろえる。 */
.dameke-statgrid,.dameke-statgrid-sub{--dameke-sg-r0:1.3rem;--dameke-sg-rb:1.3rem;--dameke-sg-r1:1.3rem;--dameke-sg-r2:1.3rem;--dameke-sg-r3:1.3rem;--dameke-sg-label:2.125rem;display:grid;grid-template-columns:var(--dameke-sg-label) repeat(6,minmax(0,1fr));column-gap:2px;margin:0 0 4px;}
.dameke-statgrid-sub{margin:0 0 6px;}
.dameke-statgrid-labels{display:grid;grid-template-rows:var(--dameke-sg-r0) var(--dameke-sg-rb) var(--dameke-sg-r1) var(--dameke-sg-r2) var(--dameke-sg-r3);align-items:center;}
.dameke-statgrid-sub .dameke-statgrid-labels{grid-template-rows:var(--dameke-sg-r0) var(--dameke-sg-r3);}
.dameke-statgrid-label{font-size:.66rem;font-weight:700;color:var(--dameke-text-label);white-space:nowrap;}
.dameke-statgrid-col{display:grid;grid-template-rows:var(--dameke-sg-r0) var(--dameke-sg-rb) var(--dameke-sg-r1) var(--dameke-sg-r2) var(--dameke-sg-r3);align-items:center;min-width:0;padding:0;margin:0;border:0;border-radius:6px;background:transparent;color:var(--dameke-text);font-weight:400;box-shadow:none;cursor:pointer;transition:background-color .12s;}
.dameke-statgrid-sub .dameke-statgrid-col{grid-template-rows:var(--dameke-sg-r0) var(--dameke-sg-r3);}
.dameke-statgrid-col:hover:not(:disabled){filter:none;background:var(--dameke-hover-tint);}
.dameke-statgrid-col:focus-visible{outline:2px solid #2563eb;outline-offset:-2px;}
.dameke-statgrid-col > span{display:block;min-width:0;text-align:center;line-height:1.15;white-space:nowrap;}
.dameke-statgrid-head{display:flex !important;align-items:center;justify-content:center;gap:1px;font-size:.72rem;font-weight:700;color:var(--dameke-text-label2);}
.dameke-statgrid-mark{font-size:.6rem;font-weight:400;color:var(--dameke-text-faint);}
/* 値の行(種族値・努力値・実数値・ランク)はすべて同じ書式。ランクの＋/−だけ色を付ける。 */
.dameke-statgrid-base,.dameke-statgrid-ev,.dameke-statgrid-actual,.dameke-statgrid-rank{font-size:.82rem;font-weight:700;color:var(--dameke-text-heading);font-variant-numeric:tabular-nums;}
.dameke-statgrid-rank-up{color:var(--dameke-up-text) !important;font-weight:700;}
.dameke-statgrid-rank-down{color:var(--dameke-down-text) !important;font-weight:700;}
/* 開いている列(攻撃側=赤、防御側=青)。淡い色と ▴ で示す。 */
.v082h-attacker .dameke-statgrid-open,.v082h-attacker .dameke-statgrid-open:hover:not(:disabled){background:var(--dameke-tint-red-bg);}
.v082h-defender .dameke-statgrid-open,.v082h-defender .dameke-statgrid-open:hover:not(:disabled){background:var(--dameke-tint-blue-bg);}
.v082h-attacker .dameke-statgrid-open .dameke-statgrid-mark{color:#dc2626;}
.v082h-defender .dameke-statgrid-open .dameke-statgrid-mark{color:#2563eb;}
/* 編集シート(表の下に開く)。 */
.dameke-stateditor{margin:2px 0 8px;padding:4px 8px 8px;border-radius:10px;background:var(--dameke-surface);border:2px solid var(--dameke-border-subtle);scroll-margin-bottom:calc(var(--v082h-fixed-panel-h,0px) + 12px);scroll-margin-top:12px;}
.v082h-attacker .dameke-stateditor{border-color:#dc2626;}
.v082h-defender .dameke-stateditor{border-color:#2563eb;}
.dameke-stateditor[hidden]{display:none;}
/* 見出し: 左に「‹ 項目名 ›」(前後の項目へ)、右上の角に閉じる「✕」(枠なし)。 */
.dameke-stateditor-head{display:flex;align-items:center;gap:4px;margin-bottom:4px;}
.dameke-stateditor-navgroup{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:2px;}
.dameke-stateditor-title{flex:0 1 auto;min-width:0;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.86rem;font-weight:800;color:var(--dameke-text-heading);}
.dameke-stateditor-nav{flex:0 0 auto;min-width:1.9rem;min-height:2rem;padding:0;margin:0;border:0;border-radius:6px;font-size:1.25rem;line-height:1;font-weight:700;background:transparent;box-shadow:none;color:var(--dameke-text-slate);}
.dameke-stateditor-nav:hover:not(:disabled){filter:none;background:var(--dameke-surface-alt2);}
.dameke-stateditor-close{flex:0 0 auto;width:2.25rem;height:2.25rem;margin:-2px -6px 0 auto;padding:0;border:0;border-radius:999px;background:transparent;color:var(--dameke-text-muted);font-size:1.15rem;line-height:1;font-weight:700;box-shadow:none;}
.dameke-stateditor-close:hover:not(:disabled){filter:none;background:var(--dameke-surface-alt2);color:var(--dameke-text-heading);}
.dameke-stateditor{--dameke-se-lab:3em;--dameke-se-step:2.25rem;--dameke-se-extra:2.4rem;}
.dameke-stateditor-row{display:grid;grid-template-columns:var(--dameke-se-lab) var(--dameke-se-step) minmax(0,1fr) var(--dameke-se-step) var(--dameke-se-extra);align-items:center;column-gap:6px;margin-top:6px;}
.dameke-stateditor-controls{display:contents;}
.dameke-stateditor-label{white-space:nowrap;font-size:.74rem;font-weight:700;color:var(--dameke-text-label);}
.dameke-stateditor-btn{margin:0;padding:0 4px;min-width:0;min-height:2.25rem;border-radius:8px;font-size:.86rem;font-weight:700;background:var(--dameke-surface-faint);border:1px solid var(--dameke-border-subtle);color:var(--dameke-text-slate);}
.dameke-stateditor-btn:disabled{opacity:.4;cursor:default;}
.dameke-stateditor-step{font-size:1.05rem;}
/* 値の欄(努力値・実数値・ランク)は同じ幅・同じ高さ。 */
.dameke-stateditor-cell{box-sizing:border-box;width:100%;min-width:0;height:2.25rem;display:flex;align-items:center;justify-content:center;padding:0 4px;margin:0;border:1px solid var(--dameke-border-strong);border-radius:8px;background:var(--dameke-surface);text-align:center;font-size:1rem;font-weight:800;color:var(--dameke-text-heading);font-variant-numeric:tabular-nums;}
.dameke-stateditor-rankval{background:var(--dameke-surface-faint);border-color:var(--dameke-border-subtle);}
/* スライダーの行: 「0」は − の列、スライダーは値の欄から ＋ の列まで、「32」は右端の列(ランクの±0と同じ列)。入力の補助なので小さめ。 */
.dameke-stateditor-slider-row{margin-top:4px;}
.dameke-stateditor-slider-row > .dameke-stateditor-slider{grid-column:3 / 5;}
.dameke-stateditor-slider-row > .dameke-stateditor-quick:last-child{grid-column:5;}
.dameke-stateditor-quick{min-height:1.5rem;padding:0 3px;font-size:.68rem;font-weight:700;border-radius:6px;}
.dameke-stateditor-slider{-webkit-appearance:none;appearance:none;width:100%;min-width:0;height:1.5rem;margin:0;padding:0;border:0;background:transparent;cursor:pointer;--dameke-se-accent:#2563eb;}
.v082h-attacker .dameke-stateditor-slider{--dameke-se-accent:#dc2626;}
.dameke-stateditor-slider::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:var(--dameke-border-strong);}
.dameke-stateditor-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6.5px;border-radius:50%;border:0;background:var(--dameke-se-accent);box-shadow:0 0 0 2px var(--dameke-surface);}
.dameke-stateditor-slider::-moz-range-track{height:3px;border-radius:2px;background:var(--dameke-border-strong);}
.dameke-stateditor-slider::-moz-range-progress{height:3px;border-radius:2px;background:var(--dameke-se-accent);}
.dameke-stateditor-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;border:0;background:var(--dameke-se-accent);}
.dameke-stateditor-rank-reset{min-height:2.25rem;font-size:.74rem;}
/* 範囲の表示: 値の欄の下、中央。 */
.dameke-stateditor-guide-row{margin-top:2px;}
.dameke-stateditor-guide-text{grid-column:2 / 5;text-align:center;font-size:.7rem;color:var(--dameke-text-muted);white-space:nowrap;}
.dameke-stateditor-guide{font-weight:700;color:var(--dameke-text-secondary);}
.dameke-stateditor-active,.dameke-stateditor-active:hover:not(:disabled){background:#2563eb;border-color:#2563eb;color:#fff;}
.v082h-attacker .dameke-stateditor-active,.v082h-attacker .dameke-stateditor-active:hover:not(:disabled){background:#dc2626;border-color:#dc2626;}
/* 欄が狭いとき(スマホ幅・文字サイズが大きいとき)は、表の文字を小さくして3桁の実数値が欠けないようにする。 */
@container (max-width:17rem){
  .dameke-statgrid,.dameke-statgrid-sub{column-gap:1px;--dameke-sg-rb:1.2rem;--dameke-sg-r1:1.2rem;--dameke-sg-r2:1.2rem;--dameke-sg-r3:1.2rem;}
  .dameke-statgrid-base,.dameke-statgrid-ev,.dameke-statgrid-actual,.dameke-statgrid-rank{font-size:.72rem;letter-spacing:-.02em;}
  .dameke-statgrid-head{font-size:.66rem;}
  .dameke-statgrid-sub .dameke-statgrid-head{font-size:.6rem;}
}
@container (max-width:15rem){
  .dameke-stateditor{--dameke-se-lab:2.6em;--dameke-se-step:1.8rem;--dameke-se-extra:1.9rem;}
  .dameke-stateditor-row{column-gap:4px;}
  .dameke-stateditor-cell{padding:0 2px;font-size:.9rem;}
  .dameke-stateditor-rank-reset{font-size:.68rem;}
}
/* さらに狭いとき(文字サイズを大きくした狭い画面): 表の行名・文字をもう一段小さくし、編集シートは項目名を上の行に置く。 */
@container (max-width:11rem){
  .dameke-statgrid,.dameke-statgrid-sub{--dameke-sg-label:1.7rem;}
  .dameke-statgrid-label{font-size:.52rem;}
  .dameke-statgrid-base,.dameke-statgrid-ev,.dameke-statgrid-actual,.dameke-statgrid-rank{font-size:.58rem;letter-spacing:-.03em;}
  .dameke-statgrid-head{font-size:.54rem;}
  .dameke-statgrid-sub .dameke-statgrid-head{font-size:.5rem;}
  .dameke-statgrid-mark{font-size:.45rem;}
  .dameke-statgrid-sub .dameke-statgrid-mark{display:none;}
  .dameke-stateditor{padding:4px 5px 6px;--dameke-se-step:1.6rem;--dameke-se-extra:1.7rem;}
  .dameke-stateditor-cell{font-size:.85rem;}
  .dameke-stateditor-slider-row > .dameke-stateditor-slider{grid-column:2 / 4;}
  .dameke-stateditor-slider-row > .dameke-stateditor-quick:last-child{grid-column:4;}
  .dameke-stateditor-row{grid-template-columns:var(--dameke-se-step) minmax(0,1fr) var(--dameke-se-step) var(--dameke-se-extra);column-gap:3px;}
  .dameke-stateditor-label{grid-column:1 / -1;}
  .dameke-stateditor-slider-row > .dameke-stateditor-label,.dameke-stateditor-guide-row > .dameke-stateditor-label{display:none;}
  .dameke-stateditor-guide-text{grid-column:1 / 4;}
  .dameke-stateditor-nav{min-width:1.6rem;min-height:1.7rem;font-size:1rem;}
  .dameke-stateditor-title{font-size:.72rem;}
}
  .dameke-stateditor-step{min-width:1.8rem;}
}

/* ==================== 下部固定枠: 性格・努力値・特性・持ち物の折り畳み(v2.6.2) ==================== */
.dameke-result-side-toggle{display:none;}
@media(max-width:78.125em){
  #v082hResultPanel .dameke-result-side-toggle{display:flex;align-items:center;justify-content:flex-start;gap:4px;width:100%;margin:2px 0 0;padding:3px 0 3px .7em;border:0;border-top:1px dashed var(--dameke-border-strong);border-radius:0;background:transparent;color:var(--dameke-text-muted);font-size:.7rem;font-weight:700;cursor:pointer;}
  #v082hResultPanel .dameke-result-side-toggle:hover:not(:disabled){filter:none;color:var(--dameke-text-slate);}
  #v082hResultPanel .dameke-result-side-toggle-mark{font-size:.7rem;line-height:1;}
  #v082hResultPanel .v082h-result-sidegrid{margin-top:2px;}
  #v082hResultPanel .v082h-result-sidegrid.dameke-result-side-collapsed{display:none;}
  #v082hResultPanel .v082h-hpbar-wrap{margin-bottom:4px;}
}

/* 性格: 欄が狭いとき、「性格」の文字を折り返さず選択欄の方を縮める。 */
.v082h-nature-field{white-space:nowrap;}
.v082h-nature-field select{flex:0 1 190px;min-width:0;}

/* ==================== スマホ幅: よく使う部品は大きく、あまり使わない部品は小さく(v2.6.2) ==================== */
@media(max-width:47.5em){
  /* よく使う: ポケモン名・特性・持ち物・技①②の入力欄。文字16px(iPhoneで入力時に画面が拡大されないサイズ)。 */
  .v082h-box .v082h-search-input{font-size:16px;min-height:2.5rem;padding:6px 10px;}
  .v082h-box .v082h-search-item{padding:9px 10px;font-size:14px;}
  /* よく使う: 特性ボタン・現HP簡易入力・努力値簡易入力のリセット */
  .v082h-ability-buttons .v082h-ability-chip,.v082h-hp-buttons button,.v082h-ev-preset .v082h-ability-chip{min-height:2rem;}
  /* あまり使わない(ポケモンを選ぶと自動で入る・特定の場面だけ): タイプ1/2、Z・ダイマ、テラスタル、防御側のダイマ・テラスタル */
  .v082h-type-grid select,.dameke-move-special-grid select,.v082h-defender .v082h-mini-grid:not(.v082h-hp-row) select{padding:3px 6px;min-height:0;height:1.75rem;font-size:12px;}
  .v082h-type-grid,.dameke-move-special-grid{gap:6px;}
  .v082h-type-grid label,.dameke-move-special-grid label,.v082h-defender .v082h-mini-grid:not(.v082h-hp-row) label{gap:2px;font-size:11px;}
}

/* ==================== 長押しで文字が選択されないように(v2.6.2) ==================== */
/* 表・編集シートは押して操作する部品なので、長押しで文字選択やメニューが出ないようにする(スライダーを
   動かそうとしたときに選択が優先されるのを防ぐ)。入力欄の中だけは文字を選べるままにする。 */
.dameke-statgrid,.dameke-statgrid-sub,.dameke-stateditor{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;}
.dameke-stateditor input[type="text"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;}
/* スライダーの上で指を動かしたときは、ページのスクロールより値の変更を優先する。 */
.dameke-stateditor-slider{touch-action:none;}
/* レベル・個体値の表(値の行は詳細ステータスの表と同じ書式)。 */
.dameke-statgrid-val{font-size:.82rem;font-weight:700;color:var(--dameke-text-heading);font-variant-numeric:tabular-nums;}
.dameke-lvgrid,.dameke-ivgrid{margin-top:6px;}
.dameke-lvgrid + .dameke-ivgrid{margin-top:2px;}
@container (max-width:17rem){ .dameke-statgrid-val{font-size:.72rem;letter-spacing:-.02em;} }
@container (max-width:11rem){ .dameke-statgrid-val{font-size:.58rem;} }
/* レベル・個体値の折り畳みは閉じているときだけ控えめ(開いたら中の表・編集シートを通常の濃さで)。 */
.v082h-stats-panel .v082h-type-effects[open]{opacity:1;}

/* ---- ミニゲーム: ダメージ予想 ---- */
.dameke-dmgq-wrap{display:flex;flex-direction:column;gap:2px;max-width:46em;}
.dameke-dmgq-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin-bottom:10px;}
.dameke-dmgq-life{display:flex;align-items:center;gap:8px;flex:1 1 14em;min-width:0;}
.dameke-dmgq-life-label{font-size:.78rem;font-weight:700;color:var(--dameke-text-secondary);white-space:nowrap;}
.dameke-dmgq-life-track{position:relative;flex:1 1 auto;min-width:4em;height:10px;border-radius:5px;background:var(--dameke-border);overflow:hidden;}
.dameke-dmgq-life-delta{position:absolute;top:0;bottom:0;}
.dameke-dmgq-life-delta-loss{background:repeating-linear-gradient(45deg,rgba(220,38,38,.85) 0 3px,rgba(220,38,38,.45) 3px 6px);animation:dameke-dmgq-blink 1.2s ease-in-out 2;}
.dameke-dmgq-life-delta-gain{background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px rgba(22,163,74,.9);animation:dameke-dmgq-blink 1.2s ease-in-out 2;}
@keyframes dameke-dmgq-blink{50%{opacity:.35;}}
.dameke-dmgq-life-diff{margin-left:5px;font-weight:800;}
.dameke-dmgq-life-diff-loss{color:var(--dameke-bad-text);}
.dameke-dmgq-life-diff-gain{color:var(--dameke-good-text);}
.dameke-dmgq-life-fill{height:100%;background:#2563eb;border-radius:5px;transition:width .35s ease;}
.dameke-dmgq-life-mid{background:#d97706;}
.dameke-dmgq-life-low{background:#dc2626;}
.dameke-dmgq-life-num{font-size:.78rem;font-weight:700;color:var(--dameke-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;}
.dameke-dmgq-score{display:flex;gap:14px;font-size:.78rem;color:var(--dameke-text-muted);font-weight:700;white-space:nowrap;}
.dameke-dmgq-score b{font-size:.95rem;color:var(--dameke-text);font-variant-numeric:tabular-nums;}
.dameke-dmgq-board{border:1px solid var(--dameke-border-strong);border-radius:10px;background:var(--dameke-surface);padding:10px;margin-bottom:12px;}
.dameke-dmgq-wait{padding:30px 0;text-align:center;font-size:.85rem;color:var(--dameke-text-muted);}
.dameke-dmgq-sides{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:6px;}
.dameke-dmgq-arrow{align-self:center;font-size:1.1rem;font-weight:700;color:var(--dameke-text-faint);}
.dameke-dmgq-side{border:1px solid var(--dameke-attacker-tint-border);background:var(--dameke-attacker-tint);border-radius:8px;padding:8px;min-width:0;}
.dameke-dmgq-side-def{border-color:var(--dameke-defender-tint-border);background:var(--dameke-defender-tint);}
.dameke-dmgq-side-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;min-width:0;}
.dameke-dmgq-thumb{width:52px;height:52px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.dameke-dmgq-thumb img{max-width:100%;max-height:100%;}
.dameke-dmgq-thumb-missing{background:var(--dameke-border);border-radius:6px;}
.dameke-dmgq-names{min-width:0;display:flex;flex-direction:column;gap:2px;}
.dameke-dmgq-role{font-size:.66rem;font-weight:700;color:var(--dameke-text-muted);}
.dameke-dmgq-name{font-size:.88rem;font-weight:800;color:var(--dameke-text);line-height:1.25;overflow-wrap:anywhere;}
.dameke-dmgq-gender{margin-left:4px;font-size:.8rem;}
.dameke-dmgq-gender-male{color:#2563eb;}
.dameke-dmgq-gender-female{color:#db2777;}
.dameke-dmgq-types{line-height:1;}
.dameke-dmgq-types .dameke-party-type-badge{font-size:.62rem;padding:1px 5px;}
.dameke-dmgq-props{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;margin:0 0 6px;font-size:.74rem;}
.dameke-dmgq-props dt{color:var(--dameke-text-muted);font-weight:700;white-space:nowrap;}
.dameke-dmgq-props dd{margin:0;color:var(--dameke-text);font-weight:700;overflow-wrap:anywhere;}
.dameke-dmgq-props dd.dameke-dmgq-muted{color:var(--dameke-text-faint);font-weight:400;}
.dameke-dmgq-stats{display:flex;flex-direction:column;gap:3px;border-top:1px dashed var(--dameke-border-strong);padding-top:5px;}
.dameke-dmgq-stat{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;font-size:.74rem;}
.dameke-dmgq-stat-key{font-weight:800;color:var(--dameke-text-secondary);min-width:1em;}
.dameke-dmgq-stat-base{font-variant-numeric:tabular-nums;color:var(--dameke-text-muted);}
.dameke-dmgq-stat-ev{color:var(--dameke-text-faint);white-space:nowrap;}
.dameke-dmgq-stat-ev-on{color:var(--dameke-text);font-weight:700;}
.dameke-dmgq-stat-up{color:var(--dameke-up-text);font-weight:700;white-space:nowrap;}
.dameke-dmgq-stat-rank{font-weight:800;white-space:nowrap;}
.dameke-dmgq-stat-rank-up{color:var(--dameke-up-text);}
.dameke-dmgq-stat-rank-down{color:var(--dameke-down-text);}
.dameke-dmgq-move{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 10px;margin:10px 0 6px;}
.dameke-dmgq-move .dameke-dmgq-move-name{font-size:.95rem;padding:3px 12px;border-radius:6px;margin:0;}
.dameke-dmgq-move-meta{font-size:.76rem;color:var(--dameke-text-mid);font-weight:700;}
.dameke-dmgq-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 6px;}
.dameke-dmgq-chip{font-size:.72rem;font-weight:700;border-radius:999px;padding:2px 10px;border:1px solid var(--dameke-border-strong);color:var(--dameke-text-mid);background:var(--dameke-surface-alt);}
.dameke-dmgq-chip-field{border-color:var(--dameke-tint-amber-border);background:var(--dameke-tint-amber-bg);color:var(--dameke-tint-amber-text);}
.dameke-dmgq-chip-note{border-color:var(--dameke-btn-border);background:var(--dameke-btn-bg);color:var(--dameke-btn-text);}
.dameke-dmgq-chip-none{border-style:dashed;color:var(--dameke-text-faint);background:transparent;font-weight:400;}
.dameke-dmgq-answer{display:flex;flex-direction:column;gap:8px;}
.dameke-dmgq-hp-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:3px;font-size:.76rem;font-weight:700;color:var(--dameke-text-secondary);}
.dameke-dmgq-hp-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dameke-dmgq-hp-hint{white-space:nowrap;font-size:.7rem;font-weight:400;color:var(--dameke-text-muted);}
.dameke-dmgq-hp-track{position:relative;height:24px;border-radius:12px;margin:6px 0;background:#3f3f46;overflow:visible;display:flex;}
.dameke-dmgq-hp-track-input{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;}
.dameke-dmgq-hp-track-input:focus-visible{outline:2px solid #2563eb;outline-offset:3px;}
.dameke-dmgq-hp-handle{position:absolute;top:-5px;bottom:-5px;width:8px;margin-left:-4px;border-radius:4px;background:#fff;border:1px solid #6b7280;box-shadow:0 1px 3px rgba(0,0,0,.35);pointer-events:none;}
.dameke-dmgq-hp-remain{height:100%;background:#22c55e;border-radius:12px 0 0 12px;}
.dameke-dmgq-hp-yellow{background:#eab308;}
.dameke-dmgq-hp-red{background:#ef4444;}
.dameke-dmgq-hp-lost{height:100%;}
.dameke-dmgq-hp-band{position:absolute;top:-3px;bottom:-3px;box-sizing:border-box;border:2px solid #f59e0b;border-radius:4px;background:repeating-linear-gradient(45deg,rgba(245,158,11,.55) 0 4px,rgba(245,158,11,.2) 4px 8px);}
.dameke-dmgq-hp-mark{position:absolute;top:-6px;bottom:-6px;width:3px;margin-left:-1.5px;border-radius:2px;}
.dameke-dmgq-hp-mark-ok{background:var(--dameke-judge-hit-bg);}
.dameke-dmgq-hp-mark-ng{background:#dc2626;}
.dameke-dmgq-ctrl{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 10px;}
.dameke-dmgq-ctrl .dameke-dmgq-step{margin:0;min-width:3em;padding:7px 10px;font-size:.85rem;border-style:solid;}
.dameke-dmgq-num{min-width:6.2em;display:flex;flex-direction:column;align-items:center;line-height:1.2;font-variant-numeric:tabular-nums;}
.dameke-dmgq-num-main{font-size:1.2rem;font-weight:800;color:var(--dameke-text);white-space:nowrap;}
.dameke-dmgq-num-sub{font-size:.72rem;font-weight:700;color:var(--dameke-text-muted);white-space:nowrap;}
.dameke-dmgq-ctrl .dameke-dmgq-go{margin:0 0 0 6px;padding:8px 18px;border-radius:8px;font-size:.88rem;font-weight:800;cursor:pointer;border:1px solid #2563eb;}
.dameke-dmgq-step:disabled{opacity:.45;cursor:default;}
.dameke-dmgq-result{border-radius:8px;padding:8px 12px;border:1px solid var(--dameke-border-strong);}
.dameke-dmgq-result-ok{border-color:var(--dameke-judge-hit-bg);background:var(--dameke-hl-correct-bg);}
.dameke-dmgq-result-ng{border-color:#dc2626;background:var(--dameke-hl-incorrect-bg);}
.dameke-dmgq-result-head{font-size:.92rem;font-weight:800;color:var(--dameke-text);}
.dameke-dmgq-result-body{font-size:.76rem;color:var(--dameke-text-mid);margin-top:2px;line-height:1.5;}
.dameke-dmgq-over{text-align:center;border:1px solid var(--dameke-border-strong);background:var(--dameke-surface-alt);border-radius:8px;padding:10px;}
.dameke-dmgq-over-title{font-size:1rem;font-weight:800;color:var(--dameke-text);}
.dameke-dmgq-over-score{font-size:.85rem;color:var(--dameke-text-mid);margin-top:2px;}
.dameke-dmgq-over-score b{font-size:1.15rem;color:var(--dameke-text);}
.dameke-dmgq-retry{align-self:center;padding:8px 18px;border-radius:8px;font-weight:800;border:1px solid #2563eb;cursor:pointer;}
@media (max-width:30em){
  .dameke-dmgq-board{padding:6px;}
  .dameke-dmgq-sides{gap:3px;}
  .dameke-dmgq-arrow{font-size:.85rem;}
  .dameke-dmgq-side{padding:5px;}
  .dameke-dmgq-side-head{flex-direction:column;align-items:flex-start;gap:3px;}
  .dameke-dmgq-thumb{width:40px;height:40px;}
  .dameke-dmgq-name{font-size:.8rem;}
  .dameke-dmgq-props{grid-template-columns:minmax(0,1fr);gap:0;font-size:.7rem;}
  .dameke-dmgq-props dt{font-size:.62rem;}
  .dameke-dmgq-stat{font-size:.7rem;gap:0 4px;}
}
@media (max-width:23.75em){
  .dameke-dmgq-nowrap{white-space:normal;max-width:100%;}
}
.dameke-dmgq-nowrap{display:inline-block;white-space:nowrap;margin-right:6px;}
.dameke-dmgq-calc-fold{margin:2px 0 0;}
.dameke-dmgq-calc-fold .v082h-calc-table{margin:8px 0 0;}
.dameke-dmgq-qno{color:var(--dameke-text);}
.dameke-dmgq-over-sub{margin-left:6px;font-size:.8rem;}
