:root {
  --green: #2e7d32;
  --green-dark: #1b5e20;
  --green-light: #e8f5e9;
  --amber: #ff8f00;
  --red: #c62828;
  --gray: #757575;
  --bg: #f4f6f4;
  --card: #ffffff;
  --border: #dde3dd;
  --text: #212121;
  --radius: 12px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
  background: var(--bg);
  color: var(--text);
  padding-bottom: calc(70px + env(safe-area-inset-bottom));
  font-size: 16px;
  line-height: 1.5;
}

.app-header {
  position: sticky; top: 0; z-index: 20;
  background: var(--green); color: #fff;
  padding: 12px 16px;
  display: flex; justify-content: space-between; align-items: center;
}
.app-title { font-weight: 700; font-size: 17px; }
.app-crop { font-size: 13px; opacity: .9; }
.app-head-right {
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px; min-width: 0;
}

/* ---- クラウド保存状態（ヘッダー右上・クリックでデータのみ再読み込み） ---- */
.cloud-status {
  background: rgba(255,255,255,.18); border: none; color: #fff;
  font-size: 11px; font-weight: 600; font-family: inherit;
  padding: 3px 9px; border-radius: 999px; cursor: pointer; white-space: nowrap;
}
.cloud-status:active { background: rgba(255,255,255,.32); }
.cloud-status:empty { display: none; }
.cloud-status.saving { opacity: .75; }
.cloud-status.ok { background: rgba(255,255,255,.28); }
.cloud-status.err { background: var(--red); }

/* ---- ホーム上部の再読み込み（アプリ本体ごと） ---- */
.home-top { display: flex; justify-content: flex-end; margin-bottom: 8px; }

/* ---- 並び替えバー ---- */
.sort-bar {
  display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
}
.sort-bar label { font-size: 13px; color: var(--gray); white-space: nowrap; }
.sort-bar select {
  flex: 1; min-width: 0; padding: 11px 10px; font-size: 15px; min-height: 44px;
  border: 1px solid var(--border); border-radius: 8px; background: #fff;
}
.card.pest-hit { border-left: 4px solid var(--green); }

/* この農薬に登録が無い害虫（散布記録の対象害虫で控えめに見せる） */
.chip.unreg { opacity: .5; border-style: dashed; }
.chip.unreg.on { opacity: 1; border-style: solid; }

/* ---- 農薬の閲覧／編集／最終確認 ---- */
.modal-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-bottom: 10px;
}
.modal-eyebrow {
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  color: var(--gray); margin-bottom: 2px;
}

.view-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.view-table th, .view-table td {
  text-align: left; vertical-align: top; padding: 8px 6px;
  border-bottom: 1px solid var(--border);
}
.view-table th {
  width: 38%; font-weight: 600; color: var(--gray); font-size: 13px; white-space: nowrap;
}
.view-table td { word-break: break-word; }

/* 最終確認で変更された行（薄い赤背景・赤文字） */
.view-table tr.changed-row td,
.view-table tr.changed-row th {
  background: #fdecea;
}
.view-table tr.changed-row td { color: var(--red); font-weight: 700; }
.badge.chg {
  background: var(--red); color: #fff; border-color: var(--red); font-size: 11px;
}

/* 「?項目を変更しています / 変更内容を見る」 */
.change-head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  border: 1px solid #ef9a9a; background: #fdecea; color: var(--red);
  border-radius: 8px; padding: 10px 12px; font-size: 14px; font-weight: 600;
  margin-bottom: 12px;
}
.change-head .linklike { color: var(--red); padding: 0; white-space: nowrap; }
.confirm-body {
  background: #f6f7f6; border-radius: 8px; padding: 12px; margin-bottom: 4px;
}

/* 変更内容の一覧（旧 → 新） */
.diff-item {
  border: 1px solid #ef9a9a; background: #fdecea;
  border-radius: 8px; padding: 10px 12px; margin-bottom: 8px;
}
.diff-label { font-size: 13px; font-weight: 700; color: var(--red); margin-bottom: 4px; }
.diff-values {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px;
}
.diff-before { color: var(--gray); text-decoration: line-through; }
.diff-arrow { color: var(--gray); }
.diff-after { color: var(--red); font-weight: 700; }

/* 編集履歴 */
.ver-item {
  border: 1px solid var(--border); border-radius: 8px;
  padding: 10px 12px; margin-bottom: 8px; background: #fff;
}
.ver-item.current { border-color: var(--green); background: var(--green-light); }
.ver-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }

/* ---- 散布の記録（混用対応） ---- */
.field-label {
  display: block; font-size: 13px; color: var(--gray); margin: 12px 0 4px;
}
.spray-item {
  border: 1px solid var(--border); border-radius: 8px;
  padding: 10px; margin-bottom: 6px; background: #fff;
}
.spray-item-head {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 8px;
  padding-right: 44px; position: relative; min-height: 32px;
}
.spray-item-head b { font-size: 15px; }
/* 「この剤を外す」は右上に固定する（剤名が長くて折り返しても位置がぶれない） */
.spray-item-head .chip {
  position: absolute; top: -2px; right: 0;
  min-height: 40px; min-width: 40px;
  display: inline-flex; align-items: center; justify-content: center;
}
.spray-item-dil {
  display: flex; align-items: center; gap: 6px; font-size: 14px;
}
.spray-item-dil label { color: var(--gray); font-size: 13px; }
.spray-item-dil input {
  width: 96px; padding: 10px; font-size: 16px; text-align: right; min-height: 44px;
  border: 1px solid var(--border); border-radius: 8px;
}
.dil-calc { color: var(--green-dark); font-weight: 700; margin-left: 4px; }

/* 混用の注意 */
.mix-caution {
  border: 1px solid #ffcc80; background: #fff8e1; border-radius: 8px;
  padding: 10px 12px; margin-top: 10px; font-size: 13px;
}
.mix-caution.danger { border-color: #ef9a9a; background: #fdecea; }
.mix-caution-head { font-weight: 700; color: #e65100; margin-bottom: 6px; }
.mix-caution.danger .mix-caution-head { color: var(--red); }
.mix-solo {
  color: var(--red); font-weight: 600; margin-bottom: 6px;
  padding-bottom: 6px; border-bottom: 1px solid #ef9a9a;
}
.mix-line { color: #5d4037; margin: 2px 0; }

/* 農薬を選ぶ */
.pick-list { max-height: 46vh; overflow-y: auto; border: 1px solid var(--border); border-radius: 8px; }
.pick-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 11px 12px; border-bottom: 1px solid var(--border); cursor: pointer;
}
.pick-item:last-child { border-bottom: none; }
.pick-item:active { background: var(--green-light); }
.pick-item input { width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; }
.pick-item span { font-size: 14px; }
/* 「リストに無し」の行（一覧の外の上。検索に関係なく出す。点線の枠でリストの剤と見分ける） */
.pick-item.pick-unlisted { border: 1.5px dashed #ffcc80; border-radius: 8px; background: #fffaf0; margin-bottom: 8px; }
.pick-unlisted-used { margin: 0 0 8px; }
/* 散布の入力欄の「リストに無し」の剤 */
.spray-item.spray-item-unlisted { border-style: dashed; border-color: #ffcc80; background: #fffaf0; }
.spray-item-note { margin: -2px 0 8px; }

/* 混用で候補が絞られている説明 */
.rotation-note {
  background: #e3f2fd; border: 1px solid #90caf9; color: #1565c0;
  border-radius: var(--radius); padding: 10px 12px; font-size: 13px; margin-bottom: 10px;
}
/* 判定の前提（設定の日付・系統の分からない散布・読み取れない値。G-06） */
.judge-notes {
  background: #f5f5f5; border: 1px solid var(--border); color: #424242;
  border-radius: var(--radius); padding: 10px 12px; font-size: 13px; margin-bottom: 10px;
}
.judge-notes.warn { background: #fff8e1; border-color: #ffcc80; }
.judge-notes-head { font-weight: 700; margin-bottom: 4px; }
.judge-note { margin: 2px 0; }
.judge-note.warn { color: #e65100; }
.judge-note.bad { color: var(--red); font-weight: 700; }
/* おすすめのカード: 上限に達した成分などの強い注意と、収穫前日数 */
.rec-caution.rec-alert { color: var(--red); font-weight: 700; }
.rec-phi { margin-top: 6px; color: var(--gray); }
.rec-phi.warn { color: #e65100; font-weight: 600; }
/* 散布の入力欄の、剤ごとの注意（G-06e） */
.spray-item-checks { margin: 0 0 8px; font-size: 13px; }
.spray-item-checks .chk { margin: 2px 0; }
.spray-item-checks .chk-info { color: var(--gray); }
.spray-item-checks .chk-warn { color: #e65100; }
.spray-item-checks .chk-danger { color: var(--red); font-weight: 700; }
/* 農薬の編集: 判定に使う値の読み取り結果 */
.field-readout { margin-top: 4px; color: var(--gray); }
.field-readout.bad { color: var(--red); font-weight: 600; }

main { padding: 12px 12px 24px; max-width: 640px; margin: 0 auto; }

h2.section { font-size: 15px; color: var(--green-dark); margin: 18px 0 8px; }
h2.section:first-child { margin-top: 4px; }

.card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 14px; margin-bottom: 10px;
}
.card.rec-top { border: 2px solid var(--green); }

.muted { color: var(--gray); font-size: 13px; }
.small { font-size: 13px; }

/* recent sprays banner */
.recent-banner {
  background: var(--green-light); border: 1px solid #c8e6c9;
  border-radius: var(--radius); padding: 10px 12px; margin-bottom: 12px; font-size: 14px;
}
.recent-banner .line { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* chips & buttons */
.chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.chip {
  border: 1.5px solid var(--border); background: #fff; color: var(--text);
  border-radius: 999px; padding: 10px 16px; font-size: 15px; cursor: pointer;
}
.chip.on { background: var(--green); border-color: var(--green); color: #fff; font-weight: 700; }
.chip.sm { padding: 5px 10px; font-size: 13px; }

.seg { display: flex; gap: 8px; margin: 8px 0; }
.seg button {
  flex: 1; padding: 12px; font-size: 15px; border-radius: var(--radius);
  border: 1.5px solid var(--border); background: #fff; cursor: pointer;
}
.seg button.on { background: var(--green); border-color: var(--green); color: #fff; font-weight: 700; }

.btn {
  display: inline-block; width: 100%; padding: 14px; font-size: 17px; font-weight: 700;
  background: var(--green); color: #fff; border: none; border-radius: var(--radius);
  cursor: pointer; margin-top: 10px;
}
.btn:active { background: var(--green-dark); }
.btn.secondary { background: #fff; color: var(--green-dark); border: 1.5px solid var(--green); font-weight: 600; }
.btn.danger { background: var(--red); }
.btn.sm { width: auto; padding: 8px 14px; font-size: 14px; margin-top: 0; }

.toggle-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; }
.switch { position: relative; width: 52px; height: 30px; flex-shrink: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch .slider {
  position: absolute; inset: 0; background: #ccc; border-radius: 999px; transition: .2s; cursor: pointer;
}
.switch .slider:before {
  content: ""; position: absolute; width: 24px; height: 24px; left: 3px; top: 3px;
  background: #fff; border-radius: 50%; transition: .2s;
}
.switch input:checked + .slider { background: var(--green); }
.switch input:checked + .slider:before { transform: translateX(22px); }

/* badges */
.badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.badge {
  font-size: 12px; padding: 3px 9px; border-radius: 999px; font-weight: 600;
  background: #eee; color: #444; border: 1px solid #ddd;
}
.badge.irac { background: var(--green-dark); color: #fff; border-color: var(--green-dark); }
.badge.warn { background: #fff3e0; color: #e65100; border-color: #ffcc80; }
.badge.info { background: #e3f2fd; color: #1565c0; border-color: #90caf9; }
.badge.bad { background: #ffebee; color: var(--red); border-color: #ef9a9a; }
.badge.form-liquid { background: #e1f5fe; color: #0277bd; border-color: #81d4fa; }
.badge.form-granule { background: #efebe9; color: #5d4037; border-color: #bcaaa4; }
.badge.form-powder { background: #fff8e1; color: #b26a00; border-color: #ffe082; }

/* recommendation card */
.rec-rank { font-size: 13px; color: var(--green-dark); font-weight: 700; }
.rec-name { font-size: 18px; font-weight: 700; margin: 2px 0 4px; }
.rec-reason { font-size: 14px; margin-top: 6px; }
.rec-caution { font-size: 13px; color: #e65100; margin-top: 6px; }
.dilution-box {
  margin-top: 10px; padding: 10px; background: var(--green-light); border-radius: 8px; font-size: 14px;
}
.dilution-box input { width: 70px; padding: 6px; font-size: 15px; border: 1px solid var(--border); border-radius: 6px; text-align: right; }
.excluded-list { font-size: 13px; }
.excluded-list li { margin: 4px 0 4px 18px; color: var(--gray); }
details.more summary { cursor: pointer; color: var(--green-dark); font-weight: 600; padding: 8px 0; }

/* history */
.hist-item { display: flex; gap: 10px; align-items: flex-start; }
.hist-date { font-weight: 700; white-space: nowrap; font-size: 14px; padding-top: 2px; }
.hist-body { flex: 1; min-width: 0; }
.hist-name { font-weight: 700; }
.fb-row { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
/* 編集・削除・戻す（効き目のボタンと離して置く。👎イマイチの隣に削除を置くと押し間違えやすい） */
.hist-actions { display: flex; gap: 6px; margin-top: 8px; justify-content: flex-end; flex-wrap: wrap; }
.chip.chip-danger { color: var(--red); border-color: #ef9a9a; }
/* 押せない理由があるボタン（押すと理由を出す） */
.chip.is-disabled { opacity: .45; cursor: not-allowed; }
.hist-note { margin-top: 4px; }
/* 「🗑 削除した記録も表示」 */
.hist-toggle { padding: 8px 14px; }
.hist-toggle .toggle-row { padding: 4px 0; gap: 10px; }
/* 削除した記録（薄く。「↩️ 戻す」は薄くしない） */
.hist-item.hist-deleted { background: #fafafa; border-style: dashed; }
.hist-deleted .hist-date, .hist-deleted .hist-faded { opacity: .55; }

/* list */
.pest-usage { font-size: 13px; color: var(--gray); }
.list-name { font-size: 16px; font-weight: 700; }
.row-actions { display: flex; gap: 8px; margin: 10px 0; flex-wrap: wrap; }

/* 押せないボタン（確認欄が一致するまでの「削除する」など） */
.btn:disabled { opacity: .45; cursor: not-allowed; }
/* 連携トークンの一覧（設定タブ）・操作の記録（管理タブ） */
.sheet-token, .audit-entry { padding: 8px 0; border-top: 1px solid var(--border); overflow-wrap: anywhere; }
.sheet-token.inactive { opacity: .7; }
.audit-list { max-height: 60vh; overflow-y: auto; }

/* forms & modal */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 50;
  display: flex; align-items: flex-end; justify-content: center;
}
.modal {
  background: #fff; width: 100%; max-width: 640px; max-height: 88vh; overflow-y: auto;
  border-radius: 16px 16px 0 0; padding: 16px 16px 32px;
}
.modal h3 { font-size: 17px; margin-bottom: 12px; color: var(--green-dark); }
.field { margin-bottom: 12px; }
.field label { display: block; font-size: 13px; color: var(--gray); margin-bottom: 4px; }
.field input[type=text], .field input[type=number], .field input[type=date],
.field select, .field textarea {
  width: 100%; padding: 11px; font-size: 16px; border: 1px solid var(--border);
  border-radius: 8px; background: #fff;
}
.pair-row { display: flex; gap: 6px; margin-bottom: 6px; }
.pair-row input { flex: 1; min-width: 0; padding: 9px; font-size: 15px; border: 1px solid var(--border); border-radius: 8px; }
.pair-row button { border: none; background: #eee; border-radius: 8px; padding: 0 12px; cursor: pointer; }
.modal-actions { display: flex; gap: 10px; margin-top: 16px; }
.modal-actions .btn { margin-top: 0; }

/* tabbar */
.tabbar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 30;
  display: flex; background: #fff; border-top: 1px solid var(--border);
  padding-bottom: env(safe-area-inset-bottom);
}
.tabbar .tab {
  flex: 1; padding: 8px 0 10px; border: none; background: none; cursor: pointer;
  font-size: 12px; color: var(--gray); display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.tabbar .tab .tab-icon { font-size: 20px; }
.tabbar .tab.active { color: var(--green-dark); font-weight: 700; }

.disclaimer {
  max-width: 640px; margin: 0 auto; padding: 8px 16px 16px;
  font-size: 11px; color: var(--gray); text-align: center;
}

.empty { text-align: center; color: var(--gray); padding: 30px 10px; font-size: 14px; }
a { color: var(--green-dark); }

/* ---- ログイン ---- */
body.login-mode { padding-bottom: 20px; }
.login-card { max-width: 420px; margin: 24px auto 12px; }
.login-card .btn { margin-top: 6px; }
.login-msg {
  background: #fff3e0; border: 1px solid #ffcc80; color: #e65100;
  border-radius: 8px; padding: 10px; font-size: 13px; margin-bottom: 12px;
}
.login-card input[type=email], .login-card input[type=password] {
  width: 100%; padding: 12px; font-size: 16px; border: 1px solid var(--border); border-radius: 8px;
}
.linklike {
  background: none; border: none; padding: 10px 0; cursor: pointer;
  color: var(--green-dark); font-size: 14px; font-weight: 600;
  text-decoration: underline; font-family: inherit;
}

/* ---- 自動保存の状態表示 ---- */
.save-status {
  font-size: 12px; font-weight: 600; margin-left: 8px;
  transition: opacity .2s;
}
.save-status.saving { color: var(--gray); }
.save-status.saved { color: var(--green); }
.save-status.error { color: var(--red); }

/* ---- 通信中 ---- */
.busy-overlay {
  position: fixed; inset: 0; background: rgba(255,255,255,.6); z-index: 60;
  display: flex; align-items: center; justify-content: center;
}
.busy-box {
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius);
  padding: 14px 20px; font-size: 15px; font-weight: 600; box-shadow: 0 4px 16px rgba(0,0,0,.12);
}

/* ---- トースト ---- */
.toast-area {
  position: fixed; left: 50%; transform: translateX(-50%);
  bottom: calc(80px + env(safe-area-inset-bottom)); z-index: 70;
  display: flex; flex-direction: column; gap: 8px; width: min(92vw, 520px);
}
.toast {
  padding: 12px 14px; border-radius: var(--radius); font-size: 14px; font-weight: 600;
  box-shadow: 0 4px 16px rgba(0,0,0,.18); animation: toast-in .25s ease-out;
  background: var(--green-dark); color: #fff;
}
.toast.warn { background: #ef6c00; }
.toast.err { background: var(--red); }
.toast.out { opacity: 0; transition: opacity .4s; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.app-crop .badge { vertical-align: middle; }
.modal textarea {
  width: 100%; padding: 10px; font-size: 13px; font-family: ui-monospace, monospace;
  border: 1px solid var(--border); border-radius: 8px; word-break: break-all;
}
code { background: #eee; padding: 1px 5px; border-radius: 4px; font-size: 13px; }

/* ---- 作付け（1.14〜） ---- */
.planting-line { margin: 0 0 10px; padding: 8px 10px; border-radius: 8px; background: var(--green-light); font-size: 14px; font-weight: 600; }
.planting-line .muted { font-weight: 400; margin-left: 4px; }
.planting-cards { display: flex; flex-direction: column; gap: 8px; margin: 8px 0; }
.planting-card {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 10px 12px;
  text-align: left; background: #fff; border: 1.5px solid var(--border); border-radius: 10px; cursor: pointer;
  font-family: inherit; font-size: 15px; color: var(--text);
}
.planting-card.on { border-color: var(--green); background: var(--green-light); }
.planting-card .pc-check {
  flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--border);
  display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff;
}
.planting-card.on .pc-check { background: var(--green); border-color: var(--green); }
.planting-card .pc-body { display: flex; flex-direction: column; min-width: 0; }
.planting-card .pc-note { color: #e65100; }
.cf-summary { margin: 0 0 10px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; background: #fafafa; }
.cf-block { margin: 10px 0; }
.cf-block-head { font-weight: 700; font-size: 14px; color: var(--green-dark); margin-bottom: 4px; }
.cf-band { margin: 8px 0; padding: 10px; border-radius: 8px; font-size: 13px; border: 1px solid var(--border); }
.cf-band ul { margin: 4px 0 4px 18px; }
.cf-band-info { background: #e3f2fd; border-color: #90caf9; color: #0d47a1; }
.cf-band-warn { background: #fff8e1; border-color: #ffcc80; color: #e65100; }
.cf-band-danger { background: #fdecea; border-color: #ef9a9a; color: var(--red); }
.cf-amounts .field { margin-bottom: 8px; }
/* 最終確認の［○○に記録する］［← 入力に戻る］は、入力欄の下に固定する（長い注意を読みながら押せるように） */
.modal-actions.sticky-actions {
  position: sticky; bottom: 0; margin: 16px -16px 0; padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: #fff; border-top: 1px solid var(--border); z-index: 1;
}
/* 最終確認の［← 入力に戻る］は小さく1行にして、［○○に記録する］に幅を回す（幅375px で主のボタンの文が2行に収まるように） */
.modal-actions.sticky-actions .btn { min-width: 0; }
.modal-actions.sticky-actions .btn.back-btn { flex: 0 0 auto; width: auto; padding: 12px 10px; font-size: 14px; white-space: nowrap; }
/* 最終確認の［○○に記録する］の文は2行まで（収まらない長いハウス名のときは、app.js の renderSprayConfirmButtonText が下の .btn-dest・.btn-verb の形に描き替える。作付け名の全部は、選んだカードに出ている） */
.btn-clamp { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
/* 行き先の作付け名（.btn-dest）は1行に収まらなければ末尾を…にし、動詞の「に記録する」（.btn-verb）は必ず見せる（作付け名の行と動詞で2行まで） */
.btn-dest-wrap { display: block; }
.btn-dest { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: top; }
.btn-verb { white-space: nowrap; }
.planting-picker { margin: 0 0 10px; }
.planting-picker .chip-row { margin: 4px 0 0; }
.planting-judged { margin: 0 0 8px; color: var(--green-dark); font-weight: 600; }
.planting-manage { padding: 8px 0; border-top: 1px solid var(--border); }
.planting-manage:first-child { border-top: none; }
.planting-endprev { display: flex; gap: 6px; align-items: flex-start; margin: 0 0 10px; }
.planting-crop-note { color: #e65100; margin: -4px 0 8px; }
/* 期間の外になる確定の記録を移すか（作付けの登録・直す・収穫を終える）・移行の前作にもハウス名を入れるか */
.planting-move { margin: 0 0 10px; padding: 8px 10px; border-radius: 8px; background: #fff8e1; border: 1px solid #ffcc80; }
.planting-move-ask, .planting-mig-house { display: flex; gap: 6px; align-items: flex-start; margin: 6px 0 0; }
.planting-new { margin-top: 6px; }
.hist-filter { margin: 4px 0 8px; }

/* ---- 作物別の値（1.14〜） ---- */
.rec-crop { margin-top: 6px; color: var(--green-dark); }
.rec-crop-detail { margin-top: 4px; color: var(--green-dark); }
.rec-crop-detail summary { cursor: pointer; }
.list-crop { margin-top: 4px; color: var(--green-dark); }
.list-crop.warn { color: #e65100; font-weight: 600; }
.usage-view { margin: 10px 0; }
.usage-crop { margin: 6px 0; padding: 6px 10px; border: 1px solid var(--border); border-radius: 8px; background: #fafafa; }
.usage-crop summary { cursor: pointer; font-weight: 600; font-size: 14px; }
.usage-rows { margin: 4px 0 4px 18px; padding: 0; }
.usage-rows li { margin: 2px 0; word-break: break-word; }
.usage-row { margin: 8px 0; padding: 8px; border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.usage-row-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin-bottom: 6px; }
.usage-row-grid label { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.usage-row-grid input { width: 100%; min-width: 0; padding: 7px; font-size: 14px; border: 1px solid var(--border); border-radius: 6px; box-sizing: border-box; }
.usage-row-grid .usage-wide { grid-column: 1 / -1; }
.usage-editor [data-ucrop-add] { margin-top: 6px; }

/* ---- 作付けの見直し（1.14〜。設定タブの作付けの［見直し］・仲間の履歴の作付けの見出し） ---- */
.review-h { margin: 14px 0 6px; font-size: 14px; color: var(--green-dark); }
.review-item { margin: 6px 0; padding: 6px 10px; border: 1px solid var(--border); border-left-width: 4px; border-radius: 8px; background: #fff; word-break: break-word; }
.review-item.review-warn { border-left-color: #ffb300; }
.review-item.review-danger { border-left-color: var(--red); background: #fdecea; }
.review-item .chk { margin: 2px 0; font-size: 13px; }
.review-item .chk-info { color: var(--gray); }
.review-item .chk-warn { color: #e65100; }
.review-item .chk-danger { color: var(--red); font-weight: 700; }
.review-id { word-break: break-all; }
