/* ============================================================
   expCalculator.css
   ポケモンスリープ 経験値・育成日数計算ツール

   ・すべて .ec-tool 配下の一意なクラス名(ec-*)にスコープ済み
     （既存サイトのCSSと衝突しません。図鑑ページの.row/.val/input[type=range]等と
     クラス名・裸のタグセレクタが被らないよう、値もタグセレクタも.ec-*で囲っている）
   ・配色は :root ではなく .ec-tool の変数で定義。
     既存サイトのテーマに合わせる場合はこの変数だけ上書きしてください（pokedex.html参照）。
   ============================================================ */

.ec-tool{
  --ec-result-cost-border:#d6ad40;
  --ec-result-date-border:#9b87c4;
  /* --- テーマ変数（ここだけ差し替えればOK） --- */
  --ec-navy:#182849;
  --ec-active-fill:color-mix(in srgb, var(--ec-navy) 70%, #fff 30%);
  --ec-active-border:var(--ec-navy);
  --ec-navy-deep:#0f1b33;
  --ec-navy-soft:#5b6a8c;
  --ec-moon:#f5c65f;
  --ec-moon-soft:#fde9b8;
  --ec-slate:#6f92b3;
  --ec-slate-soft:#dbe6f0;
  --ec-paper:#f6f8fc;
  --ec-card:#ffffff;
  --ec-line:#e2e6ee;
  --ec-text-sub:#5b6478;
  --ec-type-candy:#2f79c6;
  /* --ec-navy/--ec-moonを塗り背景(セグメント選択中・サマリーカード等)に使う箇所は、
     その上に乗せる文字色をこの2つ経由にする。サイト側の再スキン(simulator.html)では
     --ec-navy/--ec-moon自体がダークモードで役割ごと明るさが変わる(反転する)ため、
     地の色と文字色を素朴に決め打ちで組み合わせると暗所で文字が沈む。
     この2つは常に地の色とセットで反転するよう、サイト側でも専用のペア変数に
     割り当ててもらう想定(既定値はスタンドアロン時の見た目=元の配色のまま)。 */
  --ec-on-navy-fill:#f5c65f;
  --ec-on-moon-fill:#182849;
  --ec-active-text:var(--ec-on-navy-fill);
  --ec-summary-fill:var(--ec-navy);
  --ec-summary-text:var(--ec-on-navy-fill);
  --ec-summary-emphasis:var(--ec-on-navy-fill);
  --ec-summary-border:transparent;
  /* 性格ボタン(▲▲/▼▼)の色分け用。ダークモードでは暗い地に沈まないよう明転させる
     (下の:root[data-theme]側で上書き。berryEfficiency.cssの--be-pure等と同じやり方)。 */
  --ec-up:#c53030;
  --ec-up-border:rgba(224,60,60,0.35);
  --ec-down:#2b6cb0;
  --ec-down-border:rgba(59,120,224,0.35);

  box-sizing:border-box;
  max-width:480px;
  margin:0 auto;
  padding:16px 2px 80px;
  background:var(--ec-paper);
  color:var(--ec-navy);
  -webkit-font-smoothing:antialiased;
}
.ec-tool *,
.ec-tool *::before,
.ec-tool *::after{ box-sizing:inherit; }
:root[data-theme="dark"] .ec-tool,
:root[data-theme="dark-blue"] .ec-tool{
  --ec-result-cost-border:#e8c362;
  --ec-result-date-border:#b9a0ea;
  --ec-up:#f0907a;
  --ec-up-border:rgba(240,144,122,0.4);
  --ec-down:#8fa9f0;
  --ec-down-border:rgba(143,169,240,0.4);
  /* ダークテーマでは、本文用の明るい水色をボタンの塗り面やサマリーに
     使わない。選択中は薄い面+太い枠、集計は暗いカード+金色の数値に分離する。 */
  --ec-active-fill:var(--selected-soft-bg);
  --ec-active-border:var(--selected-strong-border);
  --ec-active-text:var(--selected-soft-ink);
  --ec-summary-fill:var(--paper-dim);
  --ec-summary-text:var(--ink);
  --ec-summary-emphasis:var(--accent);
  --ec-summary-border:var(--line);
}
.ec-saved-nav-dock{
  position:fixed;
  bottom:88px;
  left:12px;
  width:calc(100% - 24px);
  z-index:99;
  background:transparent;
}
.ec-saved-nav-dock[hidden]{display:none;}
.ec-saved-nav-bar{
  position:relative;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:8px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--paper);
  color:var(--ink);
  box-shadow:0 2px 8px color-mix(in srgb, var(--ink) 12%, transparent);
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  touch-action:manipulation;
}
.ec-saved-nav-bar[hidden]{ display:none; }
.ec-saved-nav-bar:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.ec-saved-nav-count{ min-width:20px; padding:2px 6px; border-radius:10px; background:var(--paper-dim); }
.ec-saved-nav-count{ background:color-mix(in srgb, currentColor 12%, transparent); }
.ec-saved-tabs{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:12px 0; }
.ec-saved-tabs button{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:44px;
  padding:7px 3px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--paper);
  color:var(--ink-soft);
  font:inherit;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}
.ec-saved-tabs button[aria-pressed="true"]{
  border:3px solid var(--selected-strong-border);
  background:var(--selected-soft-bg);
  color:var(--selected-soft-ink);
}
.ec-saved-tabs [data-saved-count]{ padding:1px 5px; border-radius:8px; background:color-mix(in srgb, currentColor 10%, transparent); }
.ec-saved-tabs button:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.ec-saved-actions[hidden]{ display:none; }

.ec-card{
  background:var(--ec-card);
  border-radius:16px;
  padding:16px 14px 18px;
  margin-bottom:14px;
  box-shadow:0 2px 14px rgba(24,40,73,0.06);
  border:1px solid var(--ec-line);
}
.ec-card h2{
  font-size:15px;
  font-weight:700;
  margin:0 0 10px;
  display:flex;
  align-items:center;
  gap:6px;
}
.ec-card h2::before{
  content:"";
  display:inline-block;
  width:6px;height:6px;border-radius:50%;
  background:var(--ec-moon);
}

.ec-tool button{touch-action:manipulation;}

.ec-result-switch{ display:flex; gap:8px; margin:0 0 10px; }
.ec-result-switch button{
  flex:1;
  min-width:0;
  min-height:42px;
  padding:6px 8px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--paper);
  color:var(--ink-soft);
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.ec-result-switch button[aria-pressed="true"]{
  border:3px solid var(--selected-strong-border);
  background:var(--selected-soft-bg);
  color:var(--selected-soft-ink);
}
.ec-result-switch button:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.ec-result-pager{
  display:flex;
  align-items:flex-start;
  gap:12px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  margin-bottom:16px;
}
.ec-result-pager::-webkit-scrollbar{ display:none; }
.ec-result-pager > .ec-result-page{
  flex:0 0 100%;
  min-width:0;
  margin:0;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  border:2px solid var(--ec-result-cost-border);
  box-shadow:none;
}
.ec-result-pager > [data-page="date"]{ border-color:var(--ec-result-date-border); }

.ec-tool canvas{width:100%;display:block;}
.ec-chart2-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; margin-top:10px;}
.ec-chart2-main{display:flex;align-items:stretch;gap:10px;margin-top:10px;}
.ec-chart2-level-summary{
  flex:0 0 35%;
  min-width:0;
  padding:9px 8px;
  border:1px solid var(--ec-line);
  border-radius:10px;
  background:var(--ec-paper);
}
.ec-chart2-level-summary-title{
  margin-bottom:7px;
  color:var(--ec-navy);
  font-size:11px;
  font-weight:700;
  line-height:1.25;
}
.ec-chart2-level-row{
  display:grid;
  grid-template-columns:9px minmax(0,1fr);
  column-gap:5px;
  align-items:center;
  margin-top:7px;
  color:var(--ec-text-sub);
  font-size:10px;
  line-height:1.2;
}
.ec-chart2-level-row:first-of-type{margin-top:0;}
.ec-chart2-level-row .ec-dot{grid-row:1;align-self:start;margin-top:2px;}
.ec-chart2-level-row span{grid-column:2;white-space:normal;}
.ec-chart2-level-row b{
  grid-column:2;
  margin-top:2px;
  color:var(--ec-navy);
  font-size:15px;
  line-height:1;
}
.ec-main-chart2-scroll{flex:1 1 auto;width:auto;min-width:0;margin:0;}
#chart2{touch-action:auto;cursor:default;}
.ec-chart-hint{font-size:10.5px;color:var(--ec-text-sub);margin-top:2px;}

/* 「睡眠+アメ」グラフの縦棒を、日数または日付で直接指定するUI。
   .ec-numinputのwidth:100%より詳細度を上げて、flexでの幅配分(60px固定/残り全部)を効かせる。 */
.ec-daypick-row{display:flex; align-items:center; gap:6px; margin-top:10px;}
.ec-daypick-row .ec-daypick-days{ width:60px; flex:none; padding:8px 4px; }
.ec-daypick-label{font-size:12.5px;font-weight:700;color:var(--ec-navy);}
.ec-daypick-sep{font-size:12.5px;color:var(--ec-text-sub);}
.ec-daypick-row .ec-daypick-date{ width:auto; flex:1; min-width:0; text-align:left; }
.ec-chart2-range-row{display:flex;align-items:center;margin-top:10px;}
.ec-chart2-range{width:100%;}
.ec-daypick-quick-row{display:flex;justify-content:flex-start;margin-top:8px;}
.ec-daypick-quick{
  flex:none;
  padding:7px 14px;
  border:1px solid var(--ec-navy-soft);
  border-radius:999px;
  background:var(--ec-paper);
  color:var(--ec-text-sub);
  font-family:inherit;
  font-size:10.5px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  cursor:pointer;
}
.ec-daypick-quick:hover,
.ec-daypick-quick:focus-visible{ border-color:var(--ec-navy); color:var(--ec-navy); }
.ec-daypick-quick:active{ background:var(--ec-active-fill); }
/* 日数グラフ下の「指定日からの不足分をアメで計算」と、
   アメ+睡眠カードの「不足分を計算」に共通する見た目。 */
.ec-daypick-shortfall-btn{
  display:block;
  width:100%;
  border:none;
  font-family:inherit;
  cursor:pointer;
}
.ec-daypick-shortfall-btn:active{ filter:brightness(0.93); }
.ec-daypick-shortfall-btn:disabled{ opacity:.5; cursor:default; }

.ec-legend{display:flex;gap:14px;font-size:11.5px;color:var(--ec-text-sub);margin-top:8px;flex-wrap:wrap;}
.ec-legend span{display:inline-flex;align-items:center;gap:5px;}
.ec-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.ec-conv-data-labels{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px 8px;
  margin-top:8px;
}
.ec-conv-data-label{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  padding:5px 7px;
  border:1px solid var(--ec-line);
  border-left:3px solid var(--segment-color);
  border-radius:8px;
  background:var(--ec-paper);
  color:var(--ec-navy);
  font-size:10.5px;
  line-height:1.25;
}
.ec-conv-data-label .ui-icon{width:16px;height:16px;flex:none;}
.ec-conv-data-label-copy{display:flex;align-items:baseline;justify-content:space-between;gap:5px;min-width:0;width:100%;}
.ec-conv-data-label-name{color:var(--ec-text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ec-conv-data-label-value{font-size:11.5px;color:var(--ec-navy);white-space:nowrap;}
.ec-conv-data-label[data-kind="owned"] .ui-icon,
.ec-conv-data-label[data-kind^="type"] .ui-icon{color:var(--ec-type-candy);}
.ec-conv-data-label[data-kind="owned"] .ui-icon{color:var(--ec-navy);}

/* 経験値タイプ セグメント */
.ec-seg{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  margin-bottom:16px;
}
.ec-seg button{
  position:relative;
  overflow:hidden;
  border:1px solid var(--ec-line);
  background:var(--ec-paper);
  color:var(--ec-navy-soft);
  font-family:inherit;
  font-size:12px;
  font-weight:700;
  padding:9px 2px;
  border-radius:999px;
  cursor:pointer;
  transition:all .15s ease;
}
.ec-seg button small{display:block;font-size:9.5px;font-weight:400;margin-top:1px;}
/* 性格ボタン(▲▲/▼▼)は選択前から極性が分かるよう薄く色を付ける。
   ec-activeと同じ詳細度(button+クラス2つ)のため、このブロックをec-activeより前に
   置くことでカスケード順により選択中は必ずec-active側の色が勝つようにしている。 */
.ec-seg button.ec-pers-up{ border-color:var(--ec-up-border); color:var(--ec-up); }
.ec-seg button.ec-pers-down{ border-color:var(--ec-down-border); color:var(--ec-down); }
.ec-seg-text{position:relative;z-index:1;}
.ec-seg-icon{
  position:absolute;
  top:50%;
  width:30px;
  height:30px;
  object-fit:contain;
  opacity:.27;
  pointer-events:none;
  transform:translateY(-50%);
  z-index:0;
}
.ec-seg-icon-l{left:4px;}
.ec-seg-icon-r{right:4px;}
.ec-seg button.ec-active{
  background:var(--ec-active-fill);
  border:3px solid var(--ec-active-border);
  color:var(--ec-active-text);
}
/* 選択中のボタンは文字とアイコンを完全表示にして、選択状態を明確にする。 */
.ec-seg button.ec-active .ec-seg-text,
.ec-seg button.ec-active .ec-seg-icon{ opacity:1; }
/* 性格補正の選択中も、▲▲/▼▼の極性を赤・青の枠色で維持する。 */
.ec-seg button.ec-active.ec-pers-up{ border-color:var(--ec-up); }
.ec-seg button.ec-active.ec-pers-down{ border-color:var(--ec-down); }
.ec-seg3{grid-template-columns:repeat(3,1fr);margin-bottom:16px;}
/* 睡眠EXPボーナスの数(0〜5)は1桁の数字なので、条件ボタンよりコンパクトにする */
.ec-seg6{grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:0;}
.ec-seg6 button{padding:9px 3px;font-size:14px;font-weight:800;}

.ec-incense-toggle{
  display:flex; align-items:center; gap:8px;
  font-size:12px; font-weight:700; color:var(--ec-navy);
  margin-top:12px; cursor:pointer;
}
.ec-incense-toggle input{width:16px; height:16px; accent-color:var(--ec-navy);}
.ec-boost-toggle input{
  position:absolute;
  width:1px;
  height:1px;
  margin:0;
  opacity:0;
  pointer-events:none;
}
.ec-boost-toggle .ec-boost-toggle-label{ order:1; }
.ec-boost-toggle .toggle-switch{ order:2; }
.ec-boost-toggle .toggle-switch{cursor:inherit;}
.ec-boost-toggle input:focus-visible ~ .toggle-switch{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.ec-boost-mode-toggle{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  margin-top:8px;
  margin-bottom:0;
}
.ec-boost-mode-title{
  color:var(--ec-text-sub);
  font-size:10px;
  font-weight:700;
}
.ec-boost-mode-seg{
  width:100%;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  margin-bottom:0;
}
.ec-boost-mode-seg button{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:10px 8px;
  font-size:13px;
  font-weight:800;
}
.ec-boost-mode-seg button small{
  margin-top:2px;
  font-size:9px;
  font-weight:400;
}
.ec-boost-cap-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
  row-gap:10px;
  margin-top:10px;
}
.ec-boost-cap-grid .ec-field{ margin-bottom:0; }
.ec-boost-cap-grid .ec-field-row{ justify-content:center; }
.ec-boost-cap-grid .ec-field-row label{ text-align:center; }
.ec-boost-cap-grid .ec-stepper{ justify-content:center; gap:8px; }
.ec-boost-cap-grid .ec-stepper .ec-numinput{
  flex:none;
  width:52px;
  padding-left:4px;
  padding-right:4px;
}
/* 上限の基準になっている入力を、共通の選択状態として目立たせる。
   非選択側も操作できるため、disabledにはせず見た目だけを弱める。 */
.ec-cap-option{
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px 6px;
  background:var(--paper);
  color:var(--ink-soft);
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease, opacity .15s ease;
}
.ec-cap-option:hover{ border-color:var(--selected-strong-border); }
.ec-cap-option.is-cap-active{
  border:3px solid var(--selected-strong-border);
  background:var(--selected-soft-bg);
  color:var(--selected-soft-ink);
}
.ec-cap-option.is-cap-inactive{ opacity:.48; }
.ec-cap-option.is-cap-active .ec-field-row label{ color:var(--selected-soft-ink); }
.ec-cap-option.is-cap-inactive .ec-field-row label{ color:var(--ink-soft); }
.ec-boost-cap-note{
  grid-column:1 / -1;
  margin-top:2px;
  color:var(--ec-text-sub);
  font-size:10px;
  font-weight:600;
  text-align:right;
}
.ec-boost-settings{margin-top:8px;padding-top:8px;border-top:1px solid var(--ec-summary-border);}
.ec-boost-settings [disabled]{cursor:default;}
.ec-incense-mode-seg{margin-top:8px; margin-bottom:0;}
#incenseModeSeg,
#shortfallIncenseModeSeg,
#incenseModeSeg2{grid-template-columns:repeat(5,1fr);}
.ec-incense-mode-seg [disabled]{cursor:default;}
#incenseModeSeg button,
#shortfallIncenseModeSeg button,
#incenseModeSeg2 button{box-sizing:border-box; display:flex; flex-direction:column; align-items:center; justify-content:center;}
.ec-seg-sm button{padding:6px 2px; font-size:11px; border-radius:999px;}
.ec-seg-sm button small{font-size:8.5px;}

.ec-field{margin-bottom:14px;}
.ec-field-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:6px;
}
.ec-field-row label{font-size:12.5px;font-weight:700;color:var(--ec-navy);}
.ec-field-row .ec-val{
  font-size:16px;
  color:var(--ec-navy);
  font-weight:700;
}
/* 折りたたみ可能なフィールド(現在は「1日の平均睡眠時間」のみ)。既定で閉じておき、
   見出し(summary)には現在値と開閉シェブロンだけ常に見える状態にする
   (box.cssの.box-filter-toggleと同じ考え方)。 */
.ec-field-toggle > summary{ cursor:pointer; list-style:none; }
.ec-field-toggle > summary::-webkit-details-marker{ display:none; }
.ec-field-toggle-right{ display:flex; align-items:center; gap:4px; }
.ec-field-toggle-chevron{
  font-size:1.15em;
  line-height:1;
  color:var(--ec-text-sub);
  display:inline-block;
  transition:transform .15s ease;
}
.ec-field-toggle[open] .ec-field-toggle-chevron{ transform:rotate(90deg); }
/* 開始/目標レベル：左右2カラムで入力ボックス+クイックボタンを並べる。
   間隔は広めに取り、開始/目標が別の入力であることを視覚的に分ける */
.ec-lvrow{display:flex;gap:22px;margin-bottom:14px;}
.ec-lvcol{flex:1;min-width:0;}
/* 開始/目標レベルの数値ボックスは幅を固定して小さくし、−/+ボタンごと中央寄せにする */
#startInput, #targetInput{flex:none; width:52px;}
.ec-lvcol .ec-stepper{justify-content:center;}
/* 目標レベルは開始と区別できるよう枠線を青系(性格▼▼と同じ--ec-down)にする */
#targetInput{border:2px solid var(--ec-down);}
.ec-lvcol-label{display:block;font-size:12.5px;font-weight:700;color:var(--ec-navy);margin-bottom:6px;}

/* スライダーの代わりに直接数値を入力できるボックス(開始/目標レベル・ブースト上限で共用) */
.ec-numinput{
  width:100%;
  box-sizing:border-box;
  border:1.5px solid var(--ec-line);
  background:var(--ec-paper);
  border-radius:9px;
  padding:8px 10px;
  font-family:inherit;
  font-size:16px;
  font-weight:700;
  color:var(--ec-navy);
  text-align:center;
}
.ec-numinput:focus{
  outline:none;
  border-color:var(--ec-moon);
  box-shadow:0 0 0 2px rgba(245,198,95,0.35);
}
/* ステッパー(−/+ボタン)の間に挟むときだけ幅を可変にする */
.ec-stepper .ec-numinput{flex:1;}
.ec-tool input[type=number]{ -moz-appearance:textfield; }
.ec-tool input[type=number]::-webkit-outer-spin-button,
.ec-tool input[type=number]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

.ec-stepper{display:flex;align-items:center;gap:10px;}
.ec-stepper button{
  width:32px;height:32px;
  border-radius:50%;
  border:1px solid var(--ec-line);
  background:var(--ec-paper);
  color:var(--ec-navy);
  font-size:16px;
  line-height:1;
  cursor:pointer;
}
.ec-stepper button:active{background:var(--ec-moon-soft);color:var(--ec-on-moon-fill);}

/* 開始レベルの数値ボックス下にだけ置く目盛りつきスライダー。
   目盛りはネイティブのdatalistだとカスタムスタイルのトラックでは表示されないため自前で描く */
.ec-lv-slider-wrap{position:relative; margin:10px 0 2px;}
#startRange{width:100%; display:block; margin:0; position:relative; z-index:1;}
.ec-lv-ticks{position:absolute; left:9px; right:9px; top:50%; height:6px; transform:translateY(-50%); pointer-events:none;}
.ec-lv-ticks span{position:absolute; top:0; width:2px; height:6px; background:var(--ec-navy); opacity:.32; border-radius:1px; transform:translateX(-1px);}

/* レベルクイックボタン。他ページ(シミュ「個体比較」のレベル早見ボタン等)と同じく
   小さな丸ボタンに統一し、+/-のステッパーを誤タップしにくくする */
.ec-quicklv{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin-top:8px;}
.ec-quicklv button{
  flex:none;
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ec-line);
  background:var(--ec-paper);
  color:var(--ec-navy-soft);
  font-family:inherit;
  font-size:12px;
  font-weight:700;
  padding:0;
  border-radius:50%;
  cursor:pointer;
}
.ec-quicklv button:active, .ec-quicklv button.ec-hit{
  background:var(--ec-navy);
  border-color:var(--ec-navy);
  color:var(--ec-on-navy-fill);
}
/* 開始レベルのクイックボタンは、真上のスライダーの目盛り位置(#startRangeの13.24/35.29/72.06%と
   同じ算出式)に横位置を合わせて縦に並ぶよう配置する。スライダーとの間隔も少し広めに取る */
.ec-quicklv-aligned{position:relative; height:32px; margin-top:22px;}
.ec-lv-align-inset{position:absolute; left:9px; right:9px; top:0; height:100%;}
.ec-lv-align-inset button{position:absolute; top:0; transform:translateX(-50%);}
/* 目標レベルのクイックボタンは開始と区別できるよう青系(--ec-down)にし、
   3個ずつ2段で並べる(コンテナ幅によって1段にまとまってしまわないようgridで固定) */
.ec-quicklv-target{display:grid; grid-template-columns:repeat(3, 32px); justify-content:center; gap:5px;}
.ec-quicklv-target button{border-color:var(--ec-down); color:var(--ec-down);}
.ec-quicklv-target button:active, .ec-quicklv-target button.ec-hit{
  background:var(--ec-down);
  border-color:var(--ec-down);
  color:var(--ec-card);
}
.ec-tool input[type=range]{
  flex:1;
  margin:0 8px;
  -webkit-appearance:none;
  height:5px;
  border-radius:3px;
  background:var(--ec-line);
  outline:none;
}
.ec-tool input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:18px;height:18px;
  border-radius:50%;
  background:var(--ec-moon);
  border:2px solid var(--ec-navy);
  cursor:pointer;
}
.ec-tool input[type=range]::-moz-range-thumb{
  width:18px;height:18px;
  border-radius:50%;
  background:var(--ec-moon);
  border:2px solid var(--ec-navy);
  cursor:pointer;
}
/* 開催回数(1〜10)は選べる幅が狭いので、他のスライダーより短くして中央に寄せる */
#occRange{
  max-width:160px;
  margin-left:auto;
  margin-right:auto;
}

.ec-summary{
  background:var(--ec-summary-fill);
  border:1px solid var(--ec-summary-border);
  color:var(--ec-summary-text);
  border-radius:12px;
  padding:12px 14px;
  font-size:12.5px;
  line-height:1.9;
  cursor:default;
  transition:background .15s ease;
}
.ec-summary[role="button"]{ cursor:pointer; }
.ec-summary[role="button"]:active{background:var(--ec-navy-deep);}
.ec-summary b{color:var(--ec-summary-emphasis);font-size:15px;}
.ec-summary .ec-row{display:flex;justify-content:space-between;}
.ec-summary .ec-row.ec-summary-minor{
  font-size:11.5px;
  font-weight:400;
  line-height:1.7;
  opacity:.78;
}
.ec-summary .ec-row.ec-summary-minor b{
  font-size:13px;
  font-weight:600;
}
.ec-summary-level{
  align-items:center;
  margin-bottom:1px;
}
.ec-summary-level .ec-row-icon-label{ gap:6px; }
.ec-summary-level .ec-icon-inline{ color:var(--ec-summary-text); }
.ec-cost-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin-top:0;
}
.ec-cost-choice{
  position:relative;
  min-width:0;
  height:166px;
}
.ec-cost-tab-column{
  box-sizing:border-box;
  min-width:0;
  height:166px;
  width:100%;
  display:flex;
  flex-direction:column;
  padding:0;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--paper);
  color:var(--ink-soft);
  font:inherit;
  text-align:center;
  cursor:pointer;
  overflow:hidden;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.ec-cost-tab-column[data-cost-method][aria-pressed="true"],
#napTicketSeg button[aria-pressed="true"]{
  border:3px solid var(--selected-strong-border);
  background:var(--selected-soft-bg);
  color:var(--selected-soft-ink);
}
.ec-cost-tab-column:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.ec-nap-title,
.ec-nap-choice{
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  cursor:pointer;
}
.ec-nap-title{ font-size:10.5px; font-weight:700; }
.ec-nap-choice{ border:3px solid transparent; }
.ec-cost-column-cell.ec-nap-choice[aria-pressed="true"]{
  border:3px solid var(--selected-strong-border);
  border-radius:8px;
  background:var(--selected-soft-bg);
  color:var(--selected-soft-ink);
}
.ec-nap-choice:focus-visible,
.ec-nap-title:focus-visible{ outline:2px solid var(--accent); outline-offset:-2px; }
.ec-cost-settings-panel{ margin-top:12px; }
.ec-cost-settings-panel[hidden],
.ec-saved-summary-values > [hidden]{ display:none; }
.ec-save-result{ display:flex; align-items:center; justify-content:center; gap:6px; margin-top:12px; }
.ec-cost-save-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin-top:6px;
}
.ec-cost-save-grid[data-cost-method="sleep"] .ec-save-result{ grid-column:2; }
.ec-cost-save-grid[data-cost-method="nap"] .ec-save-result{ grid-column:3; }
.ec-cost-save-grid .ec-save-result{
  grid-column:1;
  margin:0;
  padding:8px 2px;
  font-size:10px;
  gap:3px;
}
@media(max-width:480px){
  .ec-cost-save-grid .ec-save-result{ font-size:9px; gap:2px; }
}
.ec-summary-tap.ec-save-result{
  border-radius:4px;
  background:var(--ec-moon);
  color:var(--ec-on-moon-fill);
}
.ec-summary-tap.ec-save-result:hover{ filter:brightness(.97); }
.ec-summary-tap.ec-save-result:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.ec-candy-sleep-action{ display:flex; align-items:center; justify-content:center; gap:6px; }
.ec-summary-tap.ec-candy-sleep-action{
  border:1px solid var(--info);
  background:var(--info-bg);
  color:var(--info);
}
.ec-summary-tap.ec-candy-sleep-action:hover{ background:color-mix(in srgb, var(--info) 18%, var(--paper)); }
.ec-cost-tab-column.ec-boost-active,
.ec-saved-list-sheet .ec-saved-row.ec-boost-active{
  position:relative;
  border:3px solid transparent;
  background-clip:padding-box;
}
.ec-cost-tab-column.ec-boost-active::before,
.ec-saved-list-sheet .ec-saved-row.ec-boost-active::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  padding:3px;
  border-radius:inherit;
  background:linear-gradient(120deg,#ef6f91 0%,#f2c85b 24%,#69c98a 48%,#6d9fe5 72%,#bd83d6 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  pointer-events:none;
}
.ec-cost-tab-column.ec-incense-active{
  box-shadow:
    inset 0 0 16px rgba(224,64,64,.38),
    inset 0 0 3px rgba(255,105,105,.75);
}
.ec-cost-tab-title{
  gap:4px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:none;
  padding:0 3px;
  font-size:10.5px;
  font-weight:700;
  line-height:1.3;
  white-space:nowrap;
}
.ec-cost-tab-title > [data-icon]{
  display:inline-flex;
  flex:none;
}
.ec-cost-tab-values{
  height:132px;
  min-height:132px;
  display:flex;
  flex:none;
  flex-direction:column;
}
.ec-cost-column-cell{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  padding:8px 3px;
  text-align:center;
  line-height:1.25;
}
.ec-cost-column-cell + .ec-cost-column-cell{
  border-top:1px solid color-mix(in srgb, var(--ec-summary-text) 16%, transparent);
}
.ec-cost-column-cell .ec-row-icon-label{ gap:4px; }
.ec-cost-column-cell .ec-icon-inline{ flex:none; }
.ec-cost-column-cell > b,
.ec-cost-column-cell .ec-row-icon-label b{
  color:var(--ec-summary-emphasis);
  font-size:14px;
  white-space:nowrap;
}
.ec-cost-column-cell .ec-cost-subnote,
.ec-cost-column-cell .ec-cost-boost-note,
.ec-cost-column-cell .ec-cost-note{
  color:var(--ec-summary-text);
  font-size:9.5px;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
}
.ec-cost-subnote{ opacity:.72; }
.ec-cost-daily-exp b{ font-size:inherit; }
.ec-cost-column-cell .ec-cost-sleep-hours,
.ec-cost-sleep-hours b{ font-size:8px; }
.ec-cost-ticket-icon{
  position:relative;
  display:inline-flex;
  width:20px;
  height:20px;
  flex:none;
}
.ec-cost-ticket-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.ec-cost-ticket-icon.is-off img{
  filter:grayscale(1);
  opacity:.35;
}
.ec-cost-ticket-icon > [data-icon],
.ec-cost-ticket-icon > .ui-icon{
  position:absolute;
  inset:0;
  display:inline-flex;
  color:var(--danger);
}
.ec-cost-boost-note{ opacity:.82; }
.ec-cost-boost-note b{ font-size:10px; }
.ec-cost-note{ opacity:.72; }
.ec-cost-sleep-settings{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
}
.ec-cost-sleep-settings b{ font-size:10px; }
.ec-cost-sleep-settings.ec-cost-note{ opacity:1; }
.ec-cost-sleep-settings{ max-width:100%; }
.ec-cost-exp-bonus-row{ display:inline-flex; align-items:center; gap:4px; }
.ec-cost-exp-bonus{
  border:3px solid var(--warning);
  background:color-mix(in srgb, var(--warning) 10%, var(--paper));
  color:var(--warning);
  border-radius:8px;
  padding:2px 5px;
}
.ec-cost-incense{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:2px;
  max-width:100%;
  white-space:normal;
}
.ec-cost-incense img{
  flex:none;
  object-fit:contain;
}
.ec-cost-summary{
  margin-top:10px;
  background:var(--ec-paper);
  border-color:var(--ec-line);
  color:var(--ec-navy);
  --ec-summary-fill:var(--ec-paper);
  --ec-summary-text:var(--ec-text-sub);
  --ec-summary-emphasis:var(--ec-navy);
  --ec-summary-border:var(--ec-line);
}
.ec-candy-settings{
  margin-top:8px;
  padding-top:2px;
  border-top:1px solid var(--ec-line);
}
.ec-candy-settings .ec-field-row label,
.ec-candy-settings .ec-incense-toggle{ color:var(--ec-summary-text); }
.ec-candy-settings .ec-field-row .ec-val{ color:var(--ec-summary-emphasis); }
.ec-candy-settings .ec-field-toggle-chevron{ color:var(--ec-summary-text); }
.ec-candy-settings .ec-incense-toggle input{ accent-color:var(--ec-summary-emphasis); }
.ec-cost-summary > .ec-boost-toggle{ color:var(--ec-summary-text); }
.ec-candy-settings .ec-seg{ margin-bottom:0; }
.ec-candy-settings .ec-field{ margin-bottom:12px; }
.ec-candy-settings .ec-summary-tap{ margin-top:0; }
.ec-cost-summary > .ec-summary-tap{ margin-top:10px; }

/* 睡眠の入力は必要コストの比較カードから分離し、カード単位で開閉する。 */
.ec-settings-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--paper);
  padding:0;
  overflow:hidden;
}
.ec-settings-card > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:15px 14px;
  color:var(--ec-navy);
  cursor:pointer;
  list-style:none;
}
.ec-settings-card > summary::-webkit-details-marker{ display:none; }
.ec-settings-card-title{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:15px;
  font-weight:700;
}
.ec-settings-card-title::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--ec-moon);
}
.ec-settings-card-chevron{
  display:inline-block;
  color:var(--ec-text-sub);
  font-size:1.35em;
  line-height:1;
  transition:transform .15s ease;
}
.ec-settings-card[open] .ec-settings-card-chevron{ transform:rotate(90deg); }
.ec-settings-card-body{
  padding:0 14px 18px;
}
.ec-settings-card-body .ec-field-row label,
.ec-settings-card-body .ec-incense-toggle{ color:var(--ec-navy); }
.ec-settings-card-body .ec-field-toggle-chevron{ color:var(--ec-text-sub); }
.ec-settings-card-body .ec-incense-toggle input{ accent-color:var(--ec-navy); }
.ec-settings-card-body > .ec-field:last-child{ margin-bottom:0; }
.ec-row-icon-label{display:inline-flex;align-items:center;gap:4px;}
.ec-icon-inline{display:inline-flex;}
.ec-icon-inline svg{display:block;}
.ec-candy-label-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;}
.ec-candy-label-icon svg{display:block;width:1em;height:1em;}
.ec-candy-icon--owned{color:var(--ec-summary-text);}
.ec-candy-icon--type{color:var(--ec-type-candy);}
.ec-candy-icon--univ{color:var(--ec-type-candy);}
/* 「┗加算される睡眠時間」等、直前の行に添える参考情報。本行より小さく控えめにする */
.ec-summary .ec-subrow{font-size:10.5px;opacity:.72;margin-top:-2px;}
.ec-summary .ec-subrow b{font-size:11.5px;font-weight:700;}
.ec-summary-tap{
  display:block;
  width:100%;
  margin-top:10px;
  padding:10px 12px;
  border-radius:999px;
  border:0;
  background:var(--ec-moon);
  color:var(--ec-on-moon-fill);
  font-family:inherit;
  font-size:12.5px;
  font-weight:700;
  text-align:center;
  cursor:pointer;
}
.ec-summary-tap:active{ filter:brightness(0.93); }
.ec-summary-tap small{ display:inline; font-size:10px; font-weight:600; }

/* 手持ちアメを使った場合の到達レベルと、変換計算への入口 */
.ec-candy-sleep-summary{
  background:var(--ec-summary-fill);
  border:1px solid var(--ec-summary-border);
  color:var(--ec-summary-text);
  border-radius:12px;
  padding:10px 12px 11px;
}
.ec-modal-owned-input{
  gap:10px;
  margin-bottom:10px;
  padding:8px 10px;
  border:1px solid var(--ec-line);
  border-radius:10px;
  background:var(--ec-paper);
}
.ec-modal-owned-input .ec-numval{
  min-width:96px;
  padding:7px 10px;
}
.ec-modal-owned-input .ec-candy-icon--owned{ color:var(--ec-navy); }
.ec-candy-sleep-result{
  padding-top:0;
}
.ec-candy-sleep-result .ec-row{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.ec-candy-sleep-result b{ color:var(--ec-summary-emphasis); font-size:15px; }
.ec-candy-sleep-result .ec-summary-minor{
  justify-content:flex-end;
  margin-top:1px;
  font-size:10.5px;
  opacity:.78;
}
.ec-candy-sleep-result .ec-summary-minor b{ font-size:13px; }
.ec-candy-sleep-action{ margin-top:10px; }

/* ===== アメ変換モーダル ===== */
.ec-modal-owned-sleep{
  margin-bottom:14px;
}
.ec-modal-owned-sleep h4{
  margin:0 0 6px;
  color:var(--ec-navy);
  font-size:13px;
  line-height:1.4;
}
.ec-modal-backdrop{
  position:fixed; inset:0;
  background:rgba(15,27,51,0.5);
  opacity:0; pointer-events:none;
  transition:opacity .2s ease;
  /* 下部メニューバー(z-index:100)より前面。以前は40で、ナビがモーダルの上に被っていた */
  z-index:139;
}
.ec-modal-backdrop.ec-open{opacity:1; pointer-events:auto;}
.ec-modal-sheet{
  /* テンキーと同じく、下部メニューバーの上に浮かせて重ならないようにする */
  position:fixed; left:0; right:0; bottom:var(--app-nav-inset-bottom, 88px);
  /* 画面幅に応じて連続的に広がる(下限480pxは狭い画面ではleft/rightで頭打ちになる) */
  max-width:clamp(480px, 70vw, 900px); margin:0 auto;
  background:var(--ec-card);
  border-radius:18px;
  box-shadow:0 -6px 24px rgba(24,40,73,0.2);
  /* 閉じている間は浮かせた分も含めて完全に画面外へ下げる */
  transform:translateY(calc(100% + 100px));
  transition:transform .25s ease;
  z-index:var(--app-popup-z, 140);
  max-height:78vh;
  overflow-y:auto;
  padding:8px 18px 24px;
}
.ec-modal-sheet.ec-open{transform:translateY(0);}
.ec-modal-handle{
  width:40px; height:4px; border-radius:3px;
  background:var(--ec-line);
  margin:8px auto 12px;
}
.ec-modal-header{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:10px;
}
.ec-modal-header h3{
  font-size:16px; margin:0;
}
.ec-modal-header h3 small{
  font-size:10.5px;
  font-weight:600;
  color:var(--ec-text-sub);
}
.ec-modal-close{
  width:28px; height:28px; border-radius:50%;
  border:none; background:var(--ec-paper); color:var(--ec-navy);
  font-size:16px; cursor:pointer;
}
/* 「指定日からの不足分」モードのときだけ表示する、過去の進み方(睡眠方法)の選択UI */
.ec-modal-shortfall-picker{
  border:1px solid var(--ec-line);
  border-radius:12px;
  padding:12px 12px 2px;
  margin-bottom:14px;
}
.ec-modal-shortfall-level{
  margin:12px 0 10px;
  padding:9px 12px 11px;
  border-radius:10px;
  background:var(--ec-summary-fill);
  color:var(--ec-summary-text);
  text-align:center;
}
.ec-modal-shortfall-level span{
  display:block;
  font-size:11.5px;
  font-weight:700;
  opacity:.82;
}
.ec-modal-shortfall-level strong{
  display:block;
  margin-top:1px;
  color:var(--ec-summary-emphasis);
  font-size:28px;
  line-height:1.15;
}
.ec-modal-required{
  background:var(--ec-moon-soft);
  border-radius:10px;
  padding:10px 12px;
  font-size:13px;
  font-weight:700;
  color:var(--ec-on-moon-fill);
  margin-bottom:14px;
}
.ec-modal-required b{font-size:18px;}
.ec-modal-cost-summary{
  margin-bottom:14px;
}
.ec-modal-cost-summary .ec-row:first-child b{
  font-size:15px;
}
.ec-modal-cost-summary .ec-row-icon-label{
  gap:4px;
}
.ec-conv-accordion{
  border:1px solid var(--ec-line);
  border-radius:12px;
  margin-bottom:12px;
  overflow:hidden;
}
.ec-conv-accordion > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:11px 12px;
  color:var(--ec-navy);
  font-size:12.5px;
  font-weight:700;
  cursor:pointer;
  list-style:none;
}
.ec-conv-accordion > summary::-webkit-details-marker{display:none;}
.ec-conv-accordion > summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.ec-conv-accordion-chevron{font-size:18px;line-height:1;color:var(--ec-text-sub);transition:transform .15s ease;}
.ec-conv-accordion[open] .ec-conv-accordion-chevron{transform:rotate(90deg);}
.ec-conv-accordion-body{padding:10px 12px 4px;border-top:1px solid var(--ec-line);}
.ec-conv-group{
  border:1px solid var(--ec-line);
  border-radius:12px;
  padding:10px 12px 4px;
  margin-bottom:12px;
}
.ec-conv-group-title{font-size:12px; font-weight:700; color:var(--ec-navy-soft); margin-bottom:8px;}
.ec-conv-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.ec-conv-fields .ec-numfield{
  min-width:0;
  min-height:92px;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:5px;
  margin-bottom:0;
  padding:8px 5px 6px;
  border:1px solid var(--ec-line);
  border-radius:9px;
  background:var(--ec-paper);
}
.ec-conv-fields .ec-numfield label{
  min-height:30px;
  align-content:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:3px 4px;
  font-size:11px;
  line-height:1.2;
}
.ec-conv-fields .ec-numfield label small{width:100%;text-align:center;font-size:9px;}
.ec-conv-fields .ec-numval{
  width:100%;
  min-width:0;
  min-height:36px;
  box-sizing:border-box;
  padding:7px 3px;
  border-radius:8px;
  font-size:14px;
  font-variant-numeric:tabular-nums;
}
.ec-conv-fields .ec-numval:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.ec-conv-numfield--disabled{opacity:.58;}
.ec-numval--disabled{display:flex;align-items:center;justify-content:center;cursor:default;}

/* テンキー不要・共有キーパッド方式の入力欄 */
.ec-numfield{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:10px;
}
.ec-numfield label{
  font-size:12.5px; font-weight:700; color:var(--ec-navy);
  display:flex; align-items:center; gap:6px;
}
.ec-numfield label small{color:var(--ec-text-sub); font-weight:400;}
.ec-numval{
  min-width:84px;
  border:1.5px solid var(--ec-line);
  background:var(--ec-paper);
  border-radius:9px;
  padding:8px 10px;
  font-size:16px;
  font-weight:700;
  color:var(--ec-navy);
  text-align:center;
  cursor:pointer;
}
.ec-numval.ec-active{
  border-color:var(--ec-moon);
  background:var(--ec-moon-soft);
  color:var(--ec-on-moon-fill);
  box-shadow:0 0 0 2px rgba(245,198,95,0.35);
}
.ec-keypad{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  margin:6px 0 14px;
}
.ec-keypad button{
  height:40px;
  border:1px solid var(--ec-line);
  background:#fff;
  border-radius:9px;
  font-size:15px;
  font-weight:700;
  color:var(--ec-navy);
}
.ec-keypad button:active{background:var(--ec-moon-soft); border-color:var(--ec-moon); color:var(--ec-on-moon-fill);}
.ec-keypad button.ec-keypad-sub{color:var(--ec-navy-soft); font-size:13px;}

/* ===== テンキー（ポップアップ） ===== */
.ec-keypad-backdrop{
  position:fixed; inset:0;
  background:rgba(15,27,51,0.25);
  opacity:0; pointer-events:none;
  transition:opacity .2s ease;
  z-index:149;
}
.ec-keypad-backdrop.ec-open{opacity:1; pointer-events:auto;}
.ec-keypad-popup{
  /* 下部メニューバーと被らないよう、その上に浮かせて表示する
     (避ける量は css/bottomNav.css の --app-nav-inset-bottom で一元管理) */
  position:fixed; left:0; right:0; bottom:var(--app-nav-inset-bottom, 88px);
  /* テンキーは横に広げすぎるとボタンが押しにくくなるので上限は低め */
  max-width:clamp(480px, 55vw, 720px); margin:0 auto;
  background:var(--ec-card);
  border-radius:16px;
  box-shadow:0 6px 24px rgba(24,40,73,0.3);
  /* 閉じている間は下部メニューバーの高さぶんも含めて完全に画面外へ下げる
     (bottomが84px浮いている分、100%だけでは足りず被って見えてしまうため) */
  transform:translateY(calc(100% + 100px));
  transition:transform .22s ease;
  z-index:150;
  padding:12px 16px 16px;
}
.ec-keypad-popup.ec-open{transform:translateY(0);}
.ec-keypad-popup-header{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:10px;
}
.ec-keypad-popup-header span{
  font-size:12.5px; font-weight:700; color:var(--ec-navy);
}
.ec-keypad-popup-header button{
  border:none; background:var(--ec-summary-fill); color:var(--ec-summary-emphasis);
  font-size:12px; font-weight:700;
  padding:7px 14px; border-radius:20px;
  cursor:pointer;
}
.ec-conv-result{
  background:var(--ec-summary-fill);
  border:1px solid var(--ec-summary-border);
  color:var(--ec-summary-text);
  border-radius:12px;
  padding:12px 14px;
  font-size:13px;
  line-height:1.8;
  margin-top:6px;
}
.ec-conv-result.ec-ok b{color:#8fe3a3;}
.ec-conv-result.ec-ng b{color:#ffb199;}
.ec-conv-result b{color:var(--ec-summary-emphasis);font-size:16px;}
.ec-conv-result-row{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:0 3px;
}
.ec-conv-result-row + .ec-conv-result-row{
  margin-top:4px;
  padding-top:4px;
  border-top:1px solid color-mix(in srgb, var(--ec-summary-text) 18%, transparent);
}
.ec-conv-result-row small{
  font-size:10.5px;
  font-weight:600;
}
.ec-conv-result-shortfall b{font-size:17px;}

.ec-conv-alt{
  margin-top:10px;
  background:var(--ec-paper);
  border:1px solid var(--ec-line);
  border-radius:12px;
  padding:10px 12px;
}
.ec-conv-alt-title{font-size:11.5px; font-weight:700; color:var(--ec-navy-soft); margin-bottom:6px;}
.ec-conv-alt-row{font-size:12.5px; color:var(--ec-navy); line-height:1.9;}
.ec-conv-alt-row b{font-size:14px; color:var(--ec-navy);}
.ec-conv-alt-row small{font-size:10.5px; color:var(--ec-text-sub);}
.ec-conv-alt-sleep-title{
  margin:12px 0 6px;
  font-size:11.5px;
  font-weight:700;
  color:var(--ec-navy-soft);
}
.ec-modal-sleep-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.ec-modal-sleep-cell{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  min-height:92px;
  padding:8px 3px;
  border:1px solid var(--ec-line);
  border-radius:10px;
  background:var(--ec-paper);
  color:var(--ec-text-sub);
  text-align:center;
  font-size:10px;
  line-height:1.25;
}
.ec-modal-sleep-cell > span{font-weight:700;}
.ec-modal-sleep-cell > b{color:var(--ec-navy);font-size:14px;white-space:nowrap;}
.ec-modal-sleep-cell > small{font-size:9px;color:var(--ec-text-sub);white-space:nowrap;}
.ec-modal-sleep-cell > small b{font-size:9.5px;color:var(--ec-navy);}
.ec-modal-sleep-cell .ec-candy-label-icon{margin-right:2px;vertical-align:-2px;color:var(--ec-navy-soft);}
.ec-modal-sleep-cell--boost > small{display:inline-flex;align-items:center;justify-content:center;gap:1px;}
.ec-modal-sleep-cell--boost{
  border:2px solid transparent;
  background:
    linear-gradient(var(--ec-paper),var(--ec-paper)) padding-box,
    linear-gradient(120deg,#ff6b8a 0%,#ffb347 20%,#ffe66d 38%,#73d393 56%,#64b5f6 76%,#9b8cff 100%) border-box;
}

.ec-toggle{
  display:flex;gap:8px;margin-bottom:12px;
}
.ec-toggle button{
  flex:1;
  border:1px solid var(--ec-line);
  background:var(--ec-paper);
  color:var(--ec-navy-soft);
  font-size:11.5px;
  font-weight:700;
  padding:8px 4px;
  border-radius:999px;
}
.ec-toggle button.ec-active{
  background:var(--ec-moon-soft);
  border-color:var(--ec-moon);
  color:var(--ec-on-moon-fill);
}

.ec-note{
  font-size:10.5px;
  color:var(--ec-text-sub);
  line-height:1.7;
  margin-top:10px;
  padding-top:10px;
  padding-left:1.1em;
  border-top:1px dashed var(--ec-line);
}
.ec-note li{ margin-bottom:3px; }
.ec-note li:last-child{ margin-bottom:0; }
.ec-footer{
  text-align:center;
  font-size:10px;
  color:var(--ec-text-sub);
  margin-top:6px;
  line-height:1.8;
}

/* ===== 保存済み個体・合算 ===== */
.ec-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.ec-section-head h2{ margin-bottom:0; }
.ec-summary-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:5px;
}
.ec-summary-head-actions .ec-outline-btn{
  min-height:30px;
  padding:5px 8px;
  font-size:10.5px;
}
.ec-summary-head-actions .ec-outline-btn span:last-child{
  font-variant-numeric:tabular-nums;
}
.ec-outline-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:32px;
  padding:6px 10px;
  border:1px solid var(--ec-line);
  border-radius:999px;
  background:var(--ec-paper);
  color:var(--ec-navy);
  font-size:11.5px;
  font-weight:700;
  cursor:pointer;
}
.ec-outline-btn:hover,
.ec-outline-btn:focus-visible{ border-color:var(--ec-navy); }
.ec-outline-btn:active{ background:var(--ec-moon-soft); }
.ec-outline-btn .ui-icon{ width:14px; height:14px; }
.ec-saved-intro{ margin:8px 0 10px; }
.ec-saved-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.ec-saved-empty{
  border:1px dashed var(--ec-line);
  border-radius:10px;
  padding:14px 10px;
  text-align:center;
  color:var(--ec-text-sub);
  font-size:12px;
}
.ec-saved-row{
  display:grid;
  grid-template-columns:26px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:9px 10px;
  border:1px solid var(--ec-line);
  border-radius:11px;
  background:var(--ec-paper);
}
.ec-saved-row.is-selected{
  border:3px solid var(--selected-strong-border);
  padding:7px 8px;
  background:var(--selected-soft-bg);
  color:var(--selected-soft-ink);
}
.ec-saved-row.is-selected .ec-saved-title,
.ec-saved-row.is-selected .ec-saved-title small,
.ec-saved-row.is-selected .ec-saved-meta,
.ec-saved-row.is-selected .ec-saved-values,
.ec-saved-row.is-selected .ec-saved-values b{ color:var(--selected-soft-ink); }
.ec-saved-check{
  width:18px;
  height:18px;
  margin:0 auto;
  accent-color:var(--ec-navy);
}
.ec-saved-copy{ min-width:0; }
.ec-saved-title{
  display:flex;
  align-items:baseline;
  gap:6px;
  min-width:0;
  color:var(--ec-navy);
  font-size:13px;
  font-weight:800;
}
.ec-saved-title strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ec-saved-title small{
  flex:none;
  color:var(--ec-text-sub);
  font-size:10.5px;
  font-weight:600;
}
.ec-saved-meta{
  margin-top:2px;
  color:var(--ec-text-sub);
  font-size:10.5px;
  line-height:1.45;
}
.ec-saved-values{
  display:flex;
  flex-wrap:wrap;
  gap:4px 10px;
  margin-top:3px;
  color:var(--ec-navy);
  font-size:11px;
  font-weight:700;
}
.ec-saved-values b{ color:var(--ec-summary-emphasis); }
.ec-saved-row-actions{
  display:flex;
  align-items:center;
  gap:4px;
}
.ec-saved-row-actions button{
  border:1px solid var(--ec-line);
  border-radius:7px;
  padding:5px 7px;
  background:var(--ec-card);
  color:var(--ec-navy-soft);
  font-size:10px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.ec-saved-row-actions button:hover,
.ec-saved-row-actions button:focus-visible{ border-color:var(--ec-navy); color:var(--ec-navy); }
.ec-saved-row-actions .ec-saved-delete:hover,
.ec-saved-row-actions .ec-saved-delete:focus-visible{ border-color:var(--ec-up); color:var(--ec-up); }
.ec-saved-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
  color:var(--ec-text-sub);
  font-size:11.5px;
  font-weight:700;
}
.ec-saved-actions .ec-summary-tap{
  flex:none;
  margin-top:0;
}
.ec-saved-actions button:disabled{ opacity:.45; cursor:default; }
.ec-saved-aggregate{
  margin-top:12px;
  border:1px solid var(--ec-line);
  border-radius:12px;
  padding:11px 12px 8px;
  background:var(--ec-summary-fill);
  color:var(--ec-summary-text);
}
.ec-saved-aggregate h3{
  margin:0 0 8px;
  color:var(--ec-summary-text);
  font-size:13px;
}
.ec-saved-aggregate-note{
  margin:0 0 8px;
  color:var(--ec-summary-text);
  font-size:10.5px;
  opacity:.75;
}
.ec-saved-aggregate-table{
  width:100%;
  border-collapse:collapse;
  font-size:11.5px;
}
.ec-saved-aggregate-table th,
.ec-saved-aggregate-table td{
  padding:5px 2px;
  border-bottom:1px solid color-mix(in srgb, var(--ec-summary-text) 18%, transparent);
  text-align:left;
}
.ec-saved-aggregate-table th:last-child,
.ec-saved-aggregate-table td:last-child{ text-align:right; }
.ec-saved-aggregate-table th{ font-size:10.5px; opacity:.72; }
.ec-saved-aggregate-total{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:8px;
  font-size:12.5px;
  font-weight:800;
}
.ec-saved-aggregate-total b{ color:var(--ec-summary-emphasis); font-size:16px; }
.ec-saved-aggregate-total.is-shard{ margin-top:3px; }

/* 保存個体モーダル */
.ec-saved-backdrop,
.ec-saved-list-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,27,51,.3);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
  z-index:calc(var(--app-popup-z, 140) + 1);
}
.ec-saved-backdrop.ec-open,
.ec-saved-list-backdrop.ec-open{ opacity:1; pointer-events:auto; }
.ec-saved-sheet,
.ec-saved-list-sheet{
  position:fixed;
  left:0;
  right:0;
  bottom:var(--app-nav-inset-bottom, 88px);
  max-width:clamp(420px, 60vw, 680px);
  max-height:78vh;
  margin:0 auto;
  padding:8px 18px 20px;
  overflow-y:auto;
  border-radius:18px;
  background:var(--ec-card);
  box-shadow:0 -6px 24px rgba(24,40,73,.2);
  transform:translateY(calc(100% + 100px));
  transition:transform .25s ease;
  z-index:calc(var(--app-popup-z, 140) + 2);
}
.ec-saved-sheet.ec-open,
.ec-saved-list-sheet.ec-open{ transform:translateY(0); }
.ec-saved-list-sheet{
  height:min(72dvh, calc(100dvh - var(--app-nav-inset-bottom, 88px) - 24px));
  max-height:none;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.ec-saved-list-sheet > :not(.ec-saved-list){ flex:none; }
.ec-saved-list-sheet .ec-saved-list{
  flex:1;
  min-height:0;
  max-height:none;
  overflow-y:auto;
  padding:1px 2px 2px;
}
.ec-saved-list-sheet .ec-saved-aggregate{ max-height:24dvh; overflow-y:auto; }
.ec-saved-list-sheet .ec-saved-list > *{ flex:none; }
.ec-saved-list-sheet .ec-modal-header{ border-bottom:1px solid var(--line); padding-bottom:10px; }
.ec-saved-list-sheet .ec-saved-row{ grid-template-columns:24px minmax(0,1fr); padding:12px; border-radius:12px; gap:8px; }
.ec-saved-list-sheet .ec-saved-row.is-selected{ padding:10px; }
.ec-saved-list-sheet .ec-saved-row-no-check{ grid-template-columns:minmax(0,1fr); }
.ec-saved-list-sheet .ec-saved-row-actions{ grid-column:1 / -1; justify-content:flex-end; padding-top:7px; border-top:1px solid var(--line); }
.ec-saved-list-sheet .ec-saved-row-actions button{ min-height:32px; padding:6px 10px; }
.ec-saved-list-sheet .ec-saved-load{ background:var(--selected-soft-bg); color:var(--selected-soft-ink); border-color:var(--selected-strong-border); }
.ec-saved-list-sheet .ec-saved-title{ flex-wrap:wrap; }
.ec-saved-list-sheet .ec-saved-title small{ flex:1 1 100%; overflow-wrap:anywhere; }
.ec-saved-list-sheet .ec-saved-values{ padding:7px 9px; border-radius:8px; background:var(--paper-dim); margin-top:7px; }
.ec-saved-list-sheet .ec-saved-values b{ color:var(--ink); }
.ec-saved-list-sheet .ec-saved-empty{ padding:26px 16px; line-height:1.7; background:var(--paper-dim); }
.ec-saved-list-sheet .ec-saved-actions .ec-summary-tap{ flex:1; width:auto; min-width:0; }
#ecSavedSelectionInfo{ flex:none; white-space:nowrap; }
.ec-saved-summary{
  margin:4px 0 14px;
  padding:11px 12px 10px;
  border:1px solid var(--ec-summary-border);
  border-radius:12px;
  background:var(--ec-summary-fill);
  color:var(--ec-summary-text);
}
.ec-saved-summary h4{
  margin:0 0 5px;
  color:var(--ec-summary-text);
  font-size:13px;
}
.ec-saved-summary-context{
  margin:0 0 8px;
  color:var(--ec-summary-text);
  font-size:10.5px;
  opacity:.78;
}
.ec-saved-summary-values{
  display:grid;
  gap:4px;
}
.ec-saved-summary-values > div{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
}
.ec-saved-summary-values b{
  color:var(--ec-summary-emphasis);
  font-size:12.5px;
  white-space:nowrap;
}
.ec-saved-form{ display:grid; gap:12px; }
.ec-saved-field{ display:grid; gap:5px; }
.ec-saved-form label{
  display:grid;
  gap:5px;
  color:var(--ec-navy);
  font-size:12px;
  font-weight:700;
}
.ec-saved-field-hint{
  margin:0;
  color:var(--ec-text-sub);
  font-size:10.5px;
  line-height:1.4;
}
.ec-required{ color:var(--ec-up); font-size:10px; }
.ec-textinput{
  width:100%;
  min-height:38px;
  border:1.5px solid var(--ec-line);
  border-radius:9px;
  padding:8px 10px;
  background:var(--ec-paper);
  color:var(--ec-navy);
  font:inherit;
  font-size:13px;
}
.ec-textinput:focus{ border-color:var(--ec-moon); outline:none; box-shadow:0 0 0 2px rgba(245,198,95,.3); }
.ec-saved-form-error{
  min-height:1.2em;
  margin:0;
  color:var(--ec-up);
  font-size:11px;
  font-weight:700;
}
.ec-saved-form-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:14px;
}
.ec-saved-form-actions .ec-outline-btn{ white-space:nowrap; }
.ec-saved-form-actions .ec-summary-tap{ margin-top:0; }

@media (max-width:600px){
  .ec-saved-row{ grid-template-columns:24px minmax(0,1fr); }
  .ec-saved-row-actions{ grid-column:2; justify-content:flex-end; }
  .ec-saved-actions{ align-items:stretch; flex-direction:column; }
  .ec-saved-actions .ec-summary-tap{ width:100%; }
  .ec-saved-sheet,
  .ec-saved-list-sheet{ max-width:none; }
}

/* 曲線の開始・終了を1本のトラックで指定する */
.ec-curve-levels{display:flex;justify-content:space-between;font-size:12px;color:var(--ec-text-sub);margin-top:10px;}
.ec-curve-levels b{color:var(--ec-navy);margin-left:3px;}
.ec-curve-range{padding:20px 12px;touch-action:pan-y;cursor:pointer;}
.ec-curve-track{position:relative;height:5px;border-radius:3px;background:var(--ec-line);}
.ec-curve-selection{position:absolute;height:100%;background:var(--ec-navy-soft);border-radius:3px;pointer-events:none;}
.ec-tool .ec-curve-thumb{position:absolute;top:50%;width:24px;height:24px;transform:translate(-50%,-50%);padding:0;border:2px solid var(--ec-navy);border-radius:50%;background:var(--ec-moon);touch-action:none;cursor:ew-resize;}
.ec-tool .ec-curve-thumb-end{border-color:var(--ec-down);background:var(--ec-paper);}
.ec-curve-thumb:focus-visible{outline:2px solid var(--ec-navy);outline-offset:3px;z-index:1;}

.ec-saved-cost-preview{margin:4px 0 16px;}
.ec-saved-cost-preview .ec-summary{margin-bottom:10px;}
.ec-saved-sheet .ec-saved-form{padding:14px;border:1px solid var(--ec-line);border-radius:12px;background:var(--ec-paper);}
.ec-saved-form label{display:flex;align-items:center;gap:6px;}
.ec-saved-field{position:relative;}
.ec-saved-form textarea{resize:vertical;min-height:62px;}
.ec-pokemon-options{max-height:180px;overflow-y:auto;border:1px solid var(--ec-line);border-radius:9px;background:var(--ec-paper);}
.ec-pokemon-options[hidden],.ec-pokemon-selected[hidden]{display:none;}
.ec-pokemon-options button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-bottom:1px solid var(--ec-line);padding:5px 10px;background:var(--ec-paper);color:var(--ec-navy);text-align:left;font:inherit;font-size:13px;cursor:pointer;}
.ec-pokemon-options button:hover,.ec-pokemon-options button:focus-visible{background:var(--selected-soft-bg);color:var(--selected-soft-ink);}
.ec-pokemon-options img,.ec-pokemon-selected img{width:36px;height:36px;object-fit:contain;}
.ec-pokemon-selected{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--ec-line);border-radius:9px;background:var(--ec-card);font-size:13px;}
.ec-saved-form-actions{position:sticky;bottom:-20px;padding:12px 0;background:var(--ec-card);z-index:1;}
.ec-saved-form-actions #ecSavedConfirm{width:auto;min-width:130px;border-radius:6px;background:var(--ec-moon);color:var(--ec-on-moon-fill);}
.ec-save-drop{position:fixed;display:flex;align-items:center;gap:8px;max-width:240px;padding:8px 14px;border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 4px 16px #0003;border:1px solid var(--line);z-index:1000;pointer-events:none;font-size:13px;font-weight:700;}
.ec-save-drop img{width:36px;height:36px;object-fit:contain;}

.ec-saved-cost-preview .ec-cost-tab-column.ec-preview-selected{border:3px solid var(--selected-strong-border);background:var(--selected-soft-bg);color:var(--selected-soft-ink);}

/* ミニは虹色の枠、ガチは背景にも虹色を付ける。 */
.ec-tool .ec-cost-tab-column.ec-boost-gachi,
.ec-saved-list-sheet .ec-saved-row.ec-boost-gachi{
  background:linear-gradient(120deg,
    color-mix(in srgb,#ef6f91 24%,var(--ec-paper)) 0%,
    color-mix(in srgb,#f2c85b 24%,var(--ec-paper)) 24%,
    color-mix(in srgb,#69c98a 24%,var(--ec-paper)) 48%,
    color-mix(in srgb,#6d9fe5 24%,var(--ec-paper)) 72%,
    color-mix(in srgb,#bd83d6 24%,var(--ec-paper)) 100%);
  background-clip:padding-box;
}

.ec-saved-list-sheet .ec-saved-title{align-items:center;}
.ec-saved-pokemon-icon{width:36px;height:36px;object-fit:contain;flex:none;}
.ec-saved-value-item{display:inline-flex;align-items:center;gap:4px;}
.ec-saved-list-sheet .ec-saved-values{align-items:center;}

.ec-saved-draft-settings{padding:12px;border:1px solid var(--ec-line);border-radius:10px;margin-top:12px;}

.ec-start-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 6px;margin:10px auto 0;max-width:180px;}
.ec-start-progress label{grid-column:1 / -1;font-size:10px;font-weight:700;color:var(--ec-text-sub);}
.ec-tool .ec-start-progress input{width:100%;min-width:0;min-height:0;height:30px;padding:3px 6px;font-size:12px;border-width:1px;}
.ec-start-progress small{grid-column:1 / -1;grid-row:3;font-size:8px;color:var(--ec-text-sub);line-height:1.4;}

.ec-progress-clear{grid-column:2;grid-row:2;align-self:center;justify-self:end;border:0;background:none;color:var(--ec-text-sub);font:inherit;font-size:10px;padding:2px 4px;text-decoration:underline;cursor:pointer;}

.ec-tool .ec-pokemon-choose{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:4px 8px;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:8px;background:color-mix(in srgb,var(--ec-paper) 12%,transparent);color:var(--ec-summary-text);font:inherit;font-size:11px;cursor:pointer;}
.ec-pokemon-choose img{width:26px;height:26px;object-fit:contain;}
.ec-summary-level .ec-row-icon-label{flex-wrap:wrap;}

.ec-pokemon-box{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:8px;background:color-mix(in srgb,var(--ec-paper) 12%,transparent);overflow:hidden;}
.ec-tool .ec-pokemon-box .ec-pokemon-choose{border:0;background:none;}
.ec-pokemon-clear{border:0;background:none;color:inherit;font:inherit;font-size:18px;padding:4px 8px;cursor:pointer;}
.ec-pokemon-clear[hidden]{display:none;}

.ec-nap-ticket-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;font-size:12px;font-weight:700;}

/* 保存個体の絞込みとコンパクトな情報行 */
.ec-saved-boost-filter{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap;}
.ec-saved-boost-filter[hidden]{display:none;}
.ec-saved-boost-filter button{box-sizing:border-box;min-height:34px;padding:5px 12px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink-soft);font:inherit;font-size:12px;font-weight:700;}
.ec-saved-boost-filter button[aria-pressed="true"]{border:3px solid var(--selected-strong-border);padding:3px 10px;background:var(--selected-soft-bg);color:var(--selected-soft-ink);}
.ec-saved-list-sheet .ec-saved-title{gap:6px;}
.ec-saved-list-sheet .ec-saved-meta{flex:1 1 180px;margin:0;line-height:1.5;}
.ec-saved-cost-line{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px;}
.ec-saved-list-sheet .ec-saved-values{margin:0;padding:0;background:none;gap:8px;}
.ec-saved-list-sheet .ec-saved-row-actions{padding:0;border:0;margin-left:auto;gap:5px;}
.ec-saved-list-sheet .ec-saved-row-actions button{padding:5px 8px;font-size:11px;}
.ec-saved-inline-memo,.ec-saved-memo-editor{box-sizing:border-box;width:100%;padding:8px;text-align:left;font:inherit;font-size:12px;line-height:1.5;color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow-wrap:anywhere;white-space:pre-wrap;}
.ec-saved-memo-editor{min-height:64px;resize:vertical;color:var(--ink);}

.ec-saved-cost-line{flex-wrap:nowrap;}
.ec-saved-list-sheet .ec-saved-values{flex:1;min-width:0;flex-wrap:wrap;font-size:11px;gap:3px 8px;}
.ec-saved-list-sheet .ec-saved-row-actions{flex:none;}
