:root {
  --red: #C2342A;
  --navy: #1A1D2E;
  --cream: #FBF8F2;
  --sand: #EFE8DC;
  --line: #E3DBCC;
  --muted: #5C5F70;
  --head: 'Zen Kaku Gothic New', sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  background: var(--cream);
  color: var(--navy);
  font-family: 'Noto Sans JP', system-ui, sans-serif;
  -webkit-tap-highlight-color: transparent;
}
.app {
  max-width: 480px;
  min-height: 100dvh;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}
.top {
  padding: calc(env(safe-area-inset-top) + 16px) 20px 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--head);
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0.04em;
}
.net {
  padding: 5px 11px;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}
.view {
  flex: 1;
  padding: 8px 20px 120px;
}
h1 {
  font-family: var(--head);
  font-size: 26px;
  font-weight: 900;
  margin: 8px 0 12px;
}
.soon {
  margin-top: 24px;
  padding: 18px;
  border-radius: 20px;
  background: var(--sand);
  line-height: 1.7;
  font-size: 14px;
}
.tabs {
  position: fixed;
  left: 50%;
  bottom: calc(env(safe-area-inset-bottom) + 14px);
  transform: translateX(-50%);
  width: calc(100% - 28px);
  max-width: 452px;
  padding: 6px;
  border-radius: 26px;
  background: var(--navy);
  display: flex;
  gap: 4px;
}
.tabs a {
  flex: 1;
  min-height: 50px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #E4E5EE;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
}
.tabs a[aria-current="page"] {
  background: var(--red);
  color: #fff;
}

/* ログイン */
.lead { font-size: 14px; line-height: 1.8; color: var(--muted); margin: 0 0 20px; }
.lead strong { color: var(--navy); }
.form { display: flex; flex-direction: column; gap: 10px; }
.form label { font-family: var(--head); font-size: 15px; font-weight: 900; }
.form input {
  min-height: 52px;
  padding: 0 16px;
  border-radius: 14px;
  border: 1.5px solid var(--navy);
  background: #fff;
  font: inherit;
  font-size: 17px;
  color: var(--navy);
}
.form input.code { font-size: 24px; letter-spacing: 0.3em; text-align: center; font-weight: 700; }
.btn {
  margin-top: 8px;
  min-height: 56px;
  border: none;
  border-radius: 18px;
  background: var(--red);
  color: #fff;
  font-family: var(--head);
  font-size: 18px;
  font-weight: 900;
}
.btn:disabled { opacity: 0.6; }
.btn-text {
  min-height: 44px;
  border: none;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 14px;
  text-decoration: underline;
}
.btn-outline {
  min-height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1.5px solid var(--navy);
  background: transparent;
  color: var(--navy);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
}
.error {
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: #FBE7E4;
  color: #8E2219;
  font-size: 13px;
  line-height: 1.6;
}
.account {
  margin-top: 24px;
  padding: 16px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.account-label { font-size: 12px; color: var(--muted); }
.account-email { font-weight: 700; margin-bottom: 6px; word-break: break-all; }

/* ---------- 記録画面（ステップ4） ---------- */
.block { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }
.h2 { font-family: var(--head); font-size: 16px; font-weight: 900; }
.hint { margin: 0; font-size: 12px; color: var(--muted); line-height: 1.6; }
.hint.center { text-align: center; margin-top: 8px; }
.hint.lock { font-weight: 700; color: var(--navy); }
.row-between { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }

.seg {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px;
  padding: 4px; border-radius: 999px; background: var(--sand); margin-bottom: 18px;
}
.seg button {
  min-height: 44px; border: none; border-radius: 999px; background: transparent;
  color: var(--navy); font: inherit; font-size: 14px; font-weight: 700;
}
.seg button[aria-selected="true"] { background: var(--navy); color: #fff; }

.photos { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 2px; }
.ph { position: relative; flex: 0 0 auto; }
.ph img { width: 96px; height: 96px; border-radius: 16px; object-fit: cover; display: block; }
.ph-x {
  position: absolute; top: -6px; right: -6px; width: 28px; height: 28px; border-radius: 50%;
  border: 2px solid var(--cream); background: var(--navy); color: #fff; font-size: 14px; line-height: 1;
}
.ph-add {
  flex: 0 0 auto; width: 96px; height: 96px; border-radius: 16px; border: 1.5px dashed var(--navy);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  font-size: 12px; font-weight: 700; cursor: pointer;
}
.ph-add span:first-of-type { font-size: 26px; line-height: 1; }

.big-toggle {
  min-height: 64px; border-radius: 20px; border: 1.5px solid #D8CFBF; background: #fff; color: var(--navy);
  font-family: var(--head); font-size: 19px; font-weight: 900;
}
.big-toggle[data-result="found"][aria-pressed="true"] { background: var(--red); border-color: var(--red); color: #fff; }
.big-toggle[data-result="not_found"][aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }

.chip-btn {
  min-height: 46px; border-radius: 14px; border: 1.5px solid #D8CFBF; background: #fff;
  color: var(--navy); font: inherit; font-size: 14px; font-weight: 700;
}
.chip-btn.small { min-height: 38px; padding: 0 12px; border-radius: 999px; font-size: 13px; }
.chip-btn[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }

input[type="text"], input[type="datetime-local"], select, textarea {
  width: 100%; min-height: 50px; padding: 0 14px; border-radius: 14px; border: 1.5px solid var(--navy);
  background: #fff; font: inherit; font-size: 16px; color: var(--navy);
}
textarea { padding: 12px 14px; min-height: 0; resize: vertical; }
select:disabled { opacity: 0.5; }
.sub-label { display: block; font-size: 12px; color: var(--muted); margin: 6px 0 4px; }

.acc { padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.acc-exact { background: var(--red); color: #fff; }
.acc-rough { background: var(--navy); color: #fff; }
.acc-area { background: var(--sand); color: var(--navy); }

.loc-list { display: flex; flex-direction: column; gap: 8px; }
.loc-opt {
  min-height: 60px; padding: 10px 14px; border-radius: 16px; border: 1.5px solid var(--line); background: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left;
  font: inherit; color: var(--navy);
}
.loc-opt[aria-pressed="true"] { border: 2px solid var(--red); }
.loc-opt:disabled { border-style: dashed; background: transparent; opacity: 0.55; }
.loc-txt { display: flex; flex-direction: column; gap: 2px; }
.loc-label { font-size: 15px; font-weight: 700; }
.loc-sub { font-size: 11px; color: var(--muted); }
.radio { width: 20px; height: 20px; flex-shrink: 0; border-radius: 50%; border: 2px solid #C5C0B5; box-sizing: border-box; }
.loc-opt[aria-pressed="true"] .radio { border: 6px solid var(--red); }
.btn-text.inline { min-height: 0; padding: 0; font-size: 12px; }

.fix {
  display: flex; justify-content: space-between; gap: 10px; margin-top: 8px; padding: 12px 14px;
  border-radius: 14px; background: #fff; border: 1px solid var(--line); font-size: 13px;
}
.fix span:first-child { color: var(--muted); flex-shrink: 0; }
.fix span:last-child { font-weight: 700; text-align: right; }
.warn { color: #8E2219; }
.pulse { animation: pulse 1.4s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: 0.4; } }

.map { height: 260px; margin-top: 8px; border-radius: 18px; overflow: hidden; border: 1px solid var(--line); }
.pin-icon { background: none; border: none; }

.toast {
  position: fixed; left: 50%; bottom: calc(env(safe-area-inset-bottom) + 90px); transform: translate(-50%, 20px);
  max-width: calc(100% - 40px); padding: 12px 16px; border-radius: 14px; background: var(--navy); color: #fff;
  font-size: 14px; line-height: 1.5; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 1000;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ---------- マイ記録 ---------- */
.stats {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 4px 0 14px;
  padding: 14px 6px; border-radius: 20px; background: var(--navy); color: #fff;
}
.stats div { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.stats div + div { border-left: 1px solid #3A3E55; }
.stats span { font-size: 11px; color: #C9CBD6; }
.stats b { font-family: var(--head); font-size: 28px; font-weight: 900; }
.stats b.red { color: #FF8C7E; }
.pending-bar {
  display: flex; justify-content: space-between; gap: 8px; margin-bottom: 12px; padding: 12px 14px;
  border-radius: 14px; border: 1.5px solid var(--red); font-size: 13px; font-weight: 700;
}
.pending-bar span:last-child { color: var(--red); }
.log-list { list-style: none; margin: 0; padding: 0; }
.log-item { display: flex; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.log-thumb { width: 60px; height: 60px; border-radius: 14px; object-fit: cover; flex-shrink: 0; }
.log-thumb.empty { display: flex; align-items: center; justify-content: center; background: var(--sand); font-size: 10px; color: var(--muted); }
.log-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.log-title { font-size: 15px; font-weight: 700; }
.log-meta { font-size: 12px; color: var(--muted); }
.log-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.tag { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--sand); }
.tag-found { background: transparent; color: var(--red); padding-left: 0; }
.tag-miss { background: transparent; color: var(--muted); padding-left: 0; }
.tag-pending { background: #FBE7E4; color: #8E2219; }
.log-del {
  flex-shrink: 0; min-height: 36px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--line);
  background: transparent; color: var(--muted); font: inherit; font-size: 12px;
}

/* hidden 属性を確実に効かせる */
[hidden] { display: none !important; }
.view > .btn, .block .btn, #r-save { width: 100%; }

/* マイ記録の編集 */
.log-actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.log-edit {
  list-style: none; display: flex; flex-direction: column; gap: 4px; margin: 0 0 8px;
  padding: 14px; border-radius: 16px; background: #fff; border: 1.5px solid var(--navy);
}
.log-edit input[type="number"] {
  width: 100%; min-height: 50px; padding: 0 14px; border-radius: 14px; border: 1.5px solid var(--navy);
  background: #fff; font: inherit; font-size: 16px; color: var(--navy);
}
.log-edit .btn { margin-top: 10px; }

/* マイ記録：詳細の開け閉め */
.log-item { padding: 0; }
.log-row {
  width: 100%; display: flex; gap: 12px; align-items: center; padding: 12px 0;
  border: none; background: transparent; text-align: left; font: inherit; color: var(--navy);
}
.log-row .log-body { display: flex; }
.log-row .log-title, .log-row .log-meta, .log-row .log-tags { display: flex; }
.log-row .log-title { align-items: center; gap: 6px; flex-wrap: wrap; }
.memo-mark { font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 999px; border: 1px solid var(--navy); }
.chev { flex-shrink: 0; color: var(--muted); transition: transform .15s; }
.log-row[aria-expanded="true"] .chev { transform: rotate(180deg); }
.log-detail {
  list-style: none; margin: 0 0 10px; padding: 14px; border-radius: 16px; background: #fff;
  border: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px;
}
.d-photos { display: flex; gap: 8px; overflow-x: auto; }
.d-photos img { width: 120px; height: 120px; border-radius: 12px; object-fit: cover; display: block; }
.d-memo { padding: 10px 12px; border-radius: 12px; background: var(--sand); }
.d-memo > span { font-size: 11px; color: var(--muted); }
.d-memo p { margin: 2px 0 0; font-size: 14px; line-height: 1.7; white-space: normal; word-break: break-word; }
.d-table { display: flex; flex-direction: column; }
.d-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.d-row:last-child { border-bottom: none; }
.d-row span:first-child { color: var(--muted); flex-shrink: 0; }
.d-row span:last-child { font-weight: 700; text-align: right; }
.d-actions { display: flex; gap: 8px; }
.d-actions .btn-outline { flex: 1; }
.btn-outline.danger { color: #8E2219; border-color: #E3B5AF; }

/* ---------- 山行ごとの記録（改訂） ---------- */
.add-btn {
  min-height: 48px; border-radius: 14px; border: 1.5px dashed var(--navy); background: transparent;
  display: flex; align-items: center; justify-content: center; font: inherit; font-size: 13px; font-weight: 700;
  color: var(--navy); cursor: pointer; text-align: center; padding: 0 6px;
}
.find { padding: 10px; border-radius: 16px; background: #fff; border: 1.5px solid var(--line); display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.find.merged { border-color: var(--red); }
.find-row { display: flex; gap: 10px; align-items: flex-start; }
.find-photos { display: flex; gap: 4px; flex-wrap: wrap; max-width: 128px; flex-shrink: 0; }
.ph.sm img, .ph-add.sm { width: 60px; height: 60px; border-radius: 12px; }
.ph-add.sm { font-size: 22px; }
.find-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.find-main input { min-height: 44px; font-size: 15px; }
.join-btn {
  align-self: flex-start; min-height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--navy);
  background: transparent; color: var(--navy); font: inherit; font-size: 12px; font-weight: 700;
}
.join-btn.on { background: var(--navy); color: #fff; }
.btn-text.inline.right { align-self: flex-end; color: var(--muted); }
.btn-text.inline.left { align-self: flex-start; }

.check-list { display: flex; flex-direction: column; gap: 6px; }
.check-row { display: flex; gap: 6px; align-items: stretch; }
.star {
  width: 44px; flex-shrink: 0; border-radius: 14px; border: 1px solid var(--line); background: #fff;
  color: #D8CFBF; font-size: 18px;
}
.star.on { color: var(--red); }
.check-main {
  flex: 1; min-height: 52px; padding: 6px 8px 6px 14px; border-radius: 14px; border: 1px solid var(--line); background: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: 10px; font: inherit; color: var(--navy);
}
.check-name { font-size: 15px; font-weight: 700; text-align: left; }
.mark { min-width: 92px; padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; text-align: center; border: 1.5px solid transparent; }
.mark-none { border: 1.5px dashed #C5C0B5; color: var(--muted); }
.mark-absent { background: var(--navy); color: #fff; }
.mark-present { background: var(--red); color: #fff; }
.add-row { display: flex; gap: 8px; margin-top: 4px; }
.add-row input { flex: 1; min-height: 44px; font-size: 15px; }
.add-row .chip-btn { min-height: 44px; }
.none-box { margin-top: 8px; padding: 12px; border-radius: 14px; background: var(--sand); display: flex; flex-direction: column; gap: 6px; }
.none-box .btn-outline { width: 100%; background: #fff; }

.pick-btn {
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 28px 20px; border-radius: 22px;
  border: 2px dashed var(--navy); background: #fff; text-align: center; cursor: pointer; margin-bottom: 12px;
}
.pick-plus { font-size: 34px; line-height: 1; }
.pick-title { font-family: var(--head); font-size: 18px; font-weight: 900; }
.pick-sub { font-size: 12px; color: var(--muted); line-height: 1.6; }
.pick .hint { margin-bottom: 8px; }
.g-card { padding: 14px; border-radius: 20px; background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 10px; }
.g-title { font-family: var(--head); font-size: 17px; font-weight: 900; }
.g-photos { display: flex; gap: 6px; overflow-x: auto; }
.g-photos img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; flex-shrink: 0; }
.g-loc { font-size: 12px; font-weight: 700; }
.g-merge { display: flex; align-items: center; gap: 8px; margin: 10px 0; }
.g-merge span { flex: 1; height: 1px; background: #D8CFBF; }
.g-merge .chip-btn { background: #fff; }
.g-progress { font-size: 12px; font-weight: 700; color: var(--muted); margin-bottom: 4px; }
.g-head { font-family: var(--head); font-size: 22px; font-weight: 900; margin-bottom: 14px; }
#r-groups-next { margin-top: 16px; }
.done { display: flex; flex-direction: column; gap: 12px; align-items: stretch; text-align: center; padding-top: 20px; }
.done-big { font-family: var(--head); font-size: 22px; font-weight: 900; }
a.btn { display: flex; align-items: center; justify-content: center; text-decoration: none; }

/* マイ記録（山行） */
.d-obs-list { display: flex; flex-direction: column; gap: 8px; }
.d-obs { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 6px; }
.d-obs.present { border-color: #E9B7B1; }
.d-obs-name { font-size: 15px; font-weight: 700; }
.e-obs { padding: 10px; border-radius: 12px; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 6px; margin-bottom: 6px; }
.e-obs.removing { opacity: 0.5; }
.e-obs input { min-height: 44px; font-size: 15px; }
.feedback { margin-top: 26px; padding: 16px; border-radius: 20px; background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; }
.feedback textarea { min-height: 96px; }
.btn-outline.wide { width: 100%; min-height: 48px; }
.ok { margin: 0; padding: 10px 12px; border-radius: 12px; background: #E3F2E7; color: #1E5A31; font-size: 13px; }

/* マイ記録：なかったキノコは控えめに */
.d-absent { font-size: 12px; color: var(--muted); }
.d-absent summary { cursor: pointer; min-height: 32px; display: flex; align-items: center; }
.d-absent p { margin: 4px 0 0; line-height: 1.7; }

/* 設定 */
.top-right { display: flex; align-items: center; gap: 8px; }
.gear {
  width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  color: var(--navy); background: var(--sand); text-decoration: none;
}
.set-card { margin-bottom: 16px; padding: 16px; border-radius: 20px; background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 10px; }
.set-card textarea { min-height: 120px; }

/* ---------- 予報（試作版） ---------- */
.fc-badge { padding: 4px 10px; border-radius: 999px; background: var(--navy); color: #fff; font-size: 12px; font-weight: 700; }
.fc-loading { padding: 40px 0; text-align: center; font-size: 14px; color: var(--muted); }
.fc-days { margin: 14px 0 6px; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
.fc-days .chip-btn { flex-shrink: 0; }
.fc-card {
  width: 100%; display: flex; gap: 12px; align-items: center; padding: 12px 14px; margin-bottom: 8px;
  border-radius: 18px; border: 1.5px solid var(--line); background: #fff; text-align: left; font: inherit; color: var(--navy);
}
.fc-card.big { padding: 18px; background: #FFF1EC; border-color: #F2C9BF; }
.fc-card.sel { border: 2px solid var(--red); }
.fc-mark {
  width: 46px; height: 46px; flex-shrink: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 22px; font-weight: 900; color: #fff;
}
.fc-card.big .fc-mark { width: 60px; height: 60px; font-size: 28px; }
.fc-mark.m3 { background: var(--red); }
.fc-mark.m2 { background: #E07462; }
.fc-mark.m1 { background: #F2B5A8; color: var(--navy); }
.fc-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fc-name { font-family: var(--head); font-size: 17px; font-weight: 900; }
.fc-card.big .fc-name { font-size: 24px; }
.fc-meta { font-size: 12px; font-weight: 700; }
.fc-ref { font-size: 11px; color: var(--muted); }
.fc-map { height: 340px; }
.fc-legend { margin-top: 6px; font-size: 12px; font-weight: 700; }
.fc-legend i { display: inline-block; width: 14px; height: 14px; border-radius: 4px; margin: 0 3px -2px 6px; }
.fc-acc { padding: 14px; border-radius: 18px; background: #fff; border: 1px solid var(--line); }

/* 予報：地図が主役のレイアウト（改訂） */
.fc-note { margin-bottom: 4px; }
.fc-mapwrap { margin: 6px -20px 18px; padding: 0 0 4px; }
.fc-mapwrap .fc-map { height: min(58vh, 520px); min-height: 320px; margin: 0; border-radius: 0; border-left: none; border-right: none; }
.fc-legend { display: flex; align-items: center; gap: 10px; padding: 8px 20px 4px; font-size: 12px; font-weight: 700; }
.fc-legend .hint { margin-left: auto; }
.fc-legend i { display: inline-block; width: 14px; height: 14px; border-radius: 4px; margin-right: 4px; vertical-align: -2px; }
.fc-sp { display: flex; gap: 6px; overflow-x: auto; padding: 6px 20px 8px; scroll-snap-type: x proximity; }
.fc-chip {
  flex-shrink: 0; scroll-snap-align: start; display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px 0 6px;
  border-radius: 999px; border: 1.5px solid var(--line); background: #fff; color: var(--navy); font: inherit; font-size: 14px; font-weight: 700;
}
.fc-chip b { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 15px; }
.fc-chip b.m3 { background: var(--red); }
.fc-chip b.m2 { background: #E07462; }
.fc-chip b.m1 { background: #F2B5A8; color: var(--navy); }
.fc-chip.sel { border: 2px solid var(--navy); background: var(--navy); color: #fff; }
.fc-info { display: flex; gap: 12px; align-items: center; margin: 4px 20px 6px; padding: 12px 14px; border-radius: 16px; background: #FFF1EC; }
.fc-mapwrap > .hint, .fc-mapwrap > .soon { margin-left: 20px; margin-right: 20px; }
.fc-table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 6px 0; }
.fc-table th, .fc-table td { padding: 8px 4px; border-bottom: 1px solid var(--line); text-align: right; }
.fc-table th:first-child, .fc-table thead th:first-child { text-align: left; }
.fc-table thead th { font-size: 11px; color: var(--muted); font-weight: 700; }
.fc-table tbody th { font-weight: 700; }
.fc-table td { font-weight: 700; }
.fc-mapwrap .fc-map { height: min(50vh, 460px); min-height: 300px; }
.fc-sp { padding-top: 2px; }
.fc-info { margin: 0 20px 8px; padding: 10px 12px; }
.fc-info .fc-mark { width: 40px; height: 40px; font-size: 20px; }
.fc-info .fc-name { font-size: 18px; }
.fc-sp { padding: 2px 20px 8px; scroll-padding-left: 20px; }
.fc-sp::after { content: ''; flex: 0 0 8px; }
.fc-pop { font-family: 'Noto Sans JP', sans-serif; font-size: 13px; line-height: 1.6; }
.fc-pop b { font-size: 14px; }
.fc-pop span { color: var(--muted); }

/* ---------- 予報 v2（今日のまとめ・天気カード・写真） ---------- */
.fc-sec { margin: 22px 0 0; }
.fc-h2 { margin: 0 0 10px; font-family: var(--head); font-size: 20px; font-weight: 900; }
.fc-h2.small { font-size: 17px; }
.fc-h2row { align-items: baseline; }
.fc-h2row .fc-h2 { margin-bottom: 10px; }

.fc-sum { margin-top: 10px; padding: 18px 16px 14px; border-radius: 26px; background: var(--navy); color: #fff; display: flex; flex-direction: column; gap: 14px; }
.fc-sum-top { font-size: 12px; font-weight: 700; color: #C9CBD6; }
.fc-sum-best { display: flex; align-items: center; gap: 14px; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.fc-sum-photo { position: relative; flex-shrink: 0; }
.fc-sum-img { width: 84px; height: 84px; border-radius: 22px; object-fit: cover; display: block; background: #3A3E55; }
.fc-sum-photo b, .fc-info-photo b { position: absolute; right: -6px; bottom: -6px; width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 16px; color: #fff; border: 2px solid var(--navy); }
.fc-sum-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fc-sum-k { font-size: 12px; color: #C9CBD6; }
.fc-sum-name { font-family: var(--head); font-size: 30px; font-weight: 900; line-height: 1.1; }
.fc-sum-meta { font-size: 12px; font-weight: 700; color: #FFB3A8; }
.fc-sum-none { margin: 0; font-size: 14px; color: #E4E5EE; }
.fc-sum-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding-top: 12px; border-top: 1px solid #3A3E55; text-align: center; }
.fc-sum-grid > div { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.fc-sum-grid span { font-size: 11px; color: #C9CBD6; }
.fc-sum-grid b { font-size: 13px; }
.fc-sum-foot { font-size: 11px; color: #9EA1B3; line-height: 1.5; }

.fc-days2 { display: flex; gap: 10px; overflow-x: auto; margin: 0 -20px; padding: 0 20px 4px; scroll-padding-left: 20px; }
.fc-days2::after { content: ''; flex: 0 0 10px; }
.fc-day { flex: 0 0 104px; padding: 12px 8px; border-radius: 20px; border: 2px solid var(--line); background: #fff; color: var(--navy); font: inherit; display: flex; flex-direction: column; align-items: center; gap: 4px; cursor: pointer; }
.fc-day[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.fc-day-l { font-size: 13px; font-weight: 700; }
.fc-day-t { font-size: 13px; font-weight: 700; }
.fc-day-t .hi { color: #B3261E; }
.fc-day-t .lo { color: #2F6FD0; }
.fc-day[aria-pressed="true"] .hi { color: #FFB3A8; }
.fc-day[aria-pressed="true"] .lo { color: #9FC4FF; }
.fc-day-r { font-size: 11px; color: var(--muted); white-space: nowrap; }
.fc-day[aria-pressed="true"] .fc-day-r { color: #C9CBD6; }
.fc-day-c { margin-top: 2px; padding: 3px 8px; border-radius: 999px; background: var(--red); color: #fff; font-size: 11px; font-weight: 700; }
.fc-day-c.none { background: var(--sand); color: var(--navy); }

.fc-mapwrap > .fc-h2 { margin-left: 20px; }
.fc-chip { gap: 6px !important; padding-left: 4px !important; }
.fc-chip-img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.fc-chip b { width: 24px !important; height: 24px !important; font-size: 13px !important; margin-left: -14px; margin-top: 16px; border: 2px solid #fff; flex-shrink: 0; }
.fc-chip.sel b { border-color: var(--navy); }
.fc-nophoto { display: inline-flex; align-items: center; justify-content: center; background: var(--sand); color: var(--muted); }
.fc-info-photo { position: relative; flex-shrink: 0; }
.fc-info-img { width: 64px; height: 64px; border-radius: 16px; object-fit: cover; display: block; }
.fc-info-photo b { width: 28px; height: 28px; font-size: 14px; border-color: #FFF1EC; }
.fc-info.poison { background: #2B2E40; color: #fff; }
.fc-info.poison .fc-ref, .fc-info.poison .fc-ref a { color: #C9CBD6; }
.fc-info.poison .fc-info-photo b { border-color: #2B2E40; }
.fc-ref a { color: var(--muted); }
.fc-doku { display: inline-block; margin-right: 6px; padding: 1px 6px; border-radius: 6px; background: #F4C542; color: var(--navy); font-size: 12px; font-weight: 900; vertical-align: 2px; }

.fc-recent { display: flex; flex-direction: column; border-radius: 20px; background: #fff; border: 1.5px solid var(--line); padding: 2px 12px; }
.fc-recent.empty { padding: 18px 14px; font-size: 13px; color: var(--muted); line-height: 1.7; text-align: center; }
.fc-rc { display: flex; align-items: center; gap: 12px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--sand); background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.fc-rc:last-child { border-bottom: 0; }
.fc-rc-img { width: 44px; height: 44px; border-radius: 12px; object-fit: cover; flex-shrink: 0; }
.fc-rc-body { flex: 1; display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.fc-rc-name { font-family: var(--head); font-size: 16px; font-weight: 900; }
.fc-rc-meta { font-size: 12px; color: var(--muted); }
.fc-rc-n { padding: 3px 9px; border-radius: 999px; background: #FBE3DE; color: #9E2A22; font-size: 12px; font-weight: 700; white-space: nowrap; }
.fc-rc-n.absent { background: var(--sand); color: var(--navy); }

.fc-poison { display: flex; flex-direction: column; gap: 8px; }
.fc-pz { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 18px; border: 2px solid #2B2E40; background: #2B2E40; color: #fff; font: inherit; text-align: left; cursor: pointer; }
.fc-pz[aria-pressed="true"] { border-color: #F4C542; }
.fc-pz-img { width: 52px; height: 52px; border-radius: 14px; object-fit: cover; flex-shrink: 0; }
.fc-pz-body { display: flex; flex-direction: column; gap: 2px; }
.fc-pz-name { font-size: 15px; font-weight: 700; }
.fc-pz-look { font-size: 12px; color: #C9CBD6; }

.fc-acc2 { padding: 16px; border-radius: 20px; background: var(--sand); }
.fc-acc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; text-align: center; }
.fc-acc-grid > div { padding: 8px 2px; border-radius: 12px; background: #fff; display: flex; flex-direction: column; gap: 2px; }
.fc-acc-grid span { font-size: 11px; color: var(--muted); }
.fc-acc-grid b { font-size: 14px; }
.fc-src { margin-top: 18px; }
.fc-sec.fc-mapwrap { margin: 22px -20px 0; }
.fc-sum-photo b.m3, .fc-info-photo b.m3 { background: var(--red); }
.fc-sum-photo b.m2, .fc-info-photo b.m2 { background: #E07462; }
.fc-sum-photo b.m1, .fc-info-photo b.m1 { background: #F2B5A8; color: var(--navy); }
.fc-legend { flex-wrap: wrap; }
.fc-legend > span:not(.hint) { display: inline-flex; align-items: center; gap: 4px; }
.fc-legend > span:not(.hint) i { margin: 0 !important; }
.fc-legend .hint { margin-left: 0; flex-basis: 100%; }

.fc-day-c.lv2 { background: #E07462; color: var(--navy); }
.fc-day-c.lv1 { background: #F2B5A8; color: var(--navy); }
.fc-day-c.lv0 { background: var(--sand); color: var(--navy); }

/* 予報：地域を選ぶ */
.fc-sum-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fc-area-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 1.5px solid #FFB3A8; border-radius: 999px; background: transparent; color: #fff; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; }
.fc-sheet { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: flex-end; justify-content: center; }
.fc-sheet-bg { position: absolute; inset: 0; background: rgba(26, 29, 46, 0.55); }
.fc-sheet-box { position: relative; width: 100%; max-width: 480px; max-height: 86vh; overflow-y: auto; padding: 16px 20px calc(env(safe-area-inset-bottom) + 24px); border-radius: 28px 28px 0 0; background: var(--cream); display: flex; flex-direction: column; gap: 14px; }
.fc-sheet-box .fc-h2 { margin: 0; }
.fc-x { width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--sand); font: inherit; font-size: 20px; color: var(--navy); cursor: pointer; }
.fc-area-here, .fc-area-all { min-height: 48px; border-radius: 16px; border: 1.5px solid var(--navy); background: #fff; font: inherit; font-size: 15px; font-weight: 700; color: var(--navy); display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.fc-area-all { border-color: var(--line); }
.fc-area-all[aria-pressed="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.fc-area-g { display: flex; flex-direction: column; gap: 8px; }
.fc-area-g b { font-size: 13px; color: var(--muted); }
.fc-area-g > div { display: flex; flex-wrap: wrap; gap: 8px; }
.fc-area-opt { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 0; background: var(--sand); font: inherit; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer; }
.fc-area-opt[aria-pressed="true"] { background: var(--navy); color: #fff; }
.fc-pop-go { display: block; width: 100%; margin-top: 8px; min-height: 36px; border: 0; border-radius: 10px; background: var(--navy); color: #fff; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }

.keep-hint { margin-top: 10px; padding: 10px 12px; border-radius: 12px; background: var(--sand); color: var(--navy); }

.fc-acc-grid > div span.acc-h { font-weight: 700; color: var(--navy); }
.fc-acc-grid > div span.acc-w { margin-top: 2px; padding-top: 3px; border-top: 1px dashed var(--line); }
.fc-acc-grid > div span { font-size: 10.5px; line-height: 1.35; }

.fc-pref-tabs { display: flex; gap: 6px; padding: 4px; border-radius: 14px; background: var(--sand); }
.fc-pref-tabs button { flex: 1; min-height: 40px; border: 0; border-radius: 10px; background: transparent; font: inherit; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer; }
.fc-pref-tabs button[aria-selected="true"] { background: var(--navy); color: #fff; }
.fc-area-opt small { font-size: 11px; font-weight: 500; margin-left: 2px; }

.fc-tome { display: block; margin: 4px 0 2px; padding: 8px 10px; border-radius: 10px; background: #FFF6D6; color: #5A4300; font-size: 12px; font-weight: 700; line-height: 1.6; }

/* このアプリについて */
.ab-list { display: flex; flex-direction: column; padding-bottom: 4px; }
.ab-list a, .ab-list button { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 2px; border: 0; border-top: 1px solid var(--sand); background: none; font: inherit; font-size: 16px; font-weight: 700; color: var(--navy); text-decoration: none; text-align: left; cursor: pointer; }
.ab-list .h2 + a { border-top: 0; }
.ab-chev { color: #8A8C99; font-size: 20px; }
.ab-p { margin: 0; font-size: 14px; line-height: 1.8; }
.ab-back { display: inline-block; margin: 0 0 12px; font-size: 14px; font-weight: 700; color: var(--red); text-decoration: none; }
.ab-sec { margin: 0 0 22px; }
.ab-sec h2, .ab-doc h2 { margin: 18px 0 8px; font-family: var(--head); font-size: 18px; font-weight: 900; }
.ab-sec p, .ab-sec li, .ab-doc p, .ab-doc li { font-size: 15px; line-height: 1.8; }
.ab-sec ul, .ab-doc ul, .ab-doc ol { padding-left: 1.3em; margin: 6px 0; }
.ab-faq { margin: 0 0 10px; padding: 14px 16px; border-radius: 16px; background: #fff; border: 1.5px solid var(--line); }
.ab-faq summary { font-size: 15px; font-weight: 700; cursor: pointer; }
.ab-faq p { margin: 10px 0 0; font-size: 14px; line-height: 1.8; color: #3A3D50; }
.ab-table { overflow-x: auto; margin: 6px 0 10px; }
.ab-table table { border-collapse: collapse; min-width: 100%; font-size: 13px; }
.ab-table th, .ab-table td { padding: 8px 6px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.ab-table th { font-size: 12px; color: var(--muted); }
.fc-about { display: block; margin: 18px 0 8px; font-size: 14px; font-weight: 700; color: var(--red); text-decoration: none; }

/* はじめての説明 */
.ob { position: fixed; inset: 0; z-index: 3000; background: var(--cream); overflow-y: auto; }
.ob-in { max-width: 480px; min-height: 100%; margin: 0 auto; box-sizing: border-box; padding: calc(env(safe-area-inset-top) + 16px) 24px calc(env(safe-area-inset-bottom) + 24px); display: flex; flex-direction: column; gap: 18px; }
.ob-top { display: flex; justify-content: flex-end; min-height: 44px; }
.ob-skip { min-height: 44px; padding: 0 12px; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 700; color: var(--muted); cursor: pointer; }
.ob-art { min-height: 260px; border-radius: 28px; background: #fff; border: 1.5px solid var(--line); padding: 20px; display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.ob-art.dark { background: var(--navy); border-color: var(--navy); color: #fff; justify-content: flex-end; }
.ob-art.dark span { font-size: 12px; color: #C9CBD6; }
.ob-art.dark b { font-family: var(--head); font-size: 34px; font-weight: 900; }
.ob-art.dark em { font-style: normal; font-size: 13px; font-weight: 700; color: #FFB3A8; }
.ob-row { display: flex; justify-content: space-between; padding: 12px 14px; border-radius: 14px; background: var(--sand); font-weight: 700; }
.ob-row.hit { background: #FBE3DE; }
.ob-row.hit span { color: #9E2A22; }
.ob-art small { text-align: center; font-size: 12px; color: var(--muted); }
.ob-title { margin: 0; font-family: var(--head); font-size: 28px; font-weight: 900; line-height: 1.3; }
.ob-text { margin: 0; font-size: 15px; line-height: 1.8; color: #3A3D50; }
.ob-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ob-list li { display: flex; gap: 12px; padding: 14px; border-radius: 18px; background: #fff; border: 1.5px solid var(--line); font-size: 14px; line-height: 1.7; }
.ob-list i { flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--navy); color: #fff; font-style: normal; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.ob-list b { display: block; }
.ob-note { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.7; }
.ob-foot { margin-top: auto; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.ob-foot .btn { width: 100%; }
.ob-dots { display: flex; gap: 8px; }
.ob-dots i { width: 8px; height: 8px; border-radius: 4px; background: #D8D0C0; }
.ob-dots i.on { width: 22px; background: var(--red); }
a.btn-outline { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.ob-note a, .ab-p a { color: var(--red); }

.ob-collage { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 8px; min-height: 0; }
.ob-collage img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 18px; display: block; }
.ob-photo { position: relative; padding: 0; overflow: hidden; min-height: 300px; }
.ob-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ob-photo > div { position: relative; margin-top: auto; padding: 60px 20px 18px; background: linear-gradient(transparent, rgba(26, 29, 46, 0.92) 45%); display: flex; flex-direction: column; gap: 4px; }
.ob-row { align-items: center; gap: 10px; }
.ob-row img { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; }
.ob-row b { flex: 1; }

.fc-reg { margin-top: 12px; padding: 12px 14px; border-radius: 18px; background: #FFF6D6; border: 1.5px solid #E8C65A; color: #5A4300; }
.fc-reg-h { font-size: 15px; font-weight: 900; margin-bottom: 4px; }
.fc-reg p { margin: 4px 0; font-size: 13px; line-height: 1.7; }
.fc-reg a { font-size: 13px; font-weight: 700; color: #8A6400; }
.fc-pop-reg { color: #8A6400 !important; font-weight: 700; }
.ab-src { display: inline-block; margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--red); text-decoration: none; }

/* 山菜（おまけ） */
.ss-entry { display: flex; align-items: center; gap: 12px; margin: 14px 0; padding: 14px 16px; border-radius: 20px; background: #E6F0E2; border: 1.5px solid #B9D3B0; color: var(--navy); text-decoration: none; }
.ss-entry span { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.ss-entry b { font-size: 16px; }
.ss-entry small { font-size: 12px; color: #3A3D50; }
.ss-entry i { font-style: normal; font-size: 22px; color: #2F6B3A; }
.ss-spring { display: block; margin-top: 12px; padding: 12px 14px; border-radius: 16px; background: #E6F0E2; color: #24542D; font-weight: 700; font-size: 14px; text-decoration: none; }
.ss-head { display: flex; align-items: baseline; justify-content: space-between; }
.ss-head h1 { color: #24542D; }
.ss-head span { font-size: 12px; font-weight: 700; color: #2F6B3A; }
.ss-tabs { display: flex; gap: 4px; padding: 4px; margin: 6px 0 14px; border-radius: 14px; background: #E6F0E2; }
.ss-tabs button { flex: 1; min-height: 42px; border: 0; border-radius: 10px; background: transparent; font: inherit; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer; }
.ss-tabs button[aria-selected="true"] { background: #2F6B3A; color: #fff; }
.ss-card { margin: 0 0 12px; padding: 14px; border-radius: 18px; background: #fff; border: 1.5px solid #D5E3CE; display: flex; flex-direction: column; gap: 8px; }
.ss-card p { margin: 0; font-size: 14px; line-height: 1.7; }
.ss-label { font-size: 13px; font-weight: 700; color: var(--muted); }
.ss-label .hint { font-weight: 500; margin-left: 4px; }
.ss-card input[type="datetime-local"], .ss-card input[type="text"], .ss-card textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1.5px solid #D5E3CE; border-radius: 12px; font: inherit; font-size: 15px; background: #fff; }
.ss-seg { display: flex; gap: 6px; }
.ss-seg button { flex: 1; min-height: 44px; border-radius: 12px; border: 1.5px solid #D5E3CE; background: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.ss-seg button[aria-pressed="true"] { background: #2F6B3A; border-color: #2F6B3A; color: #fff; }
.ss-map { height: 240px; border-radius: 14px; }
.ss-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ss-chip { min-height: 42px; padding: 0 14px; border-radius: 999px; border: 1.5px solid #D5E3CE; background: #fff; font: inherit; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer; }
.ss-chip.present { background: #2F6B3A; border-color: #2F6B3A; color: #fff; }
.ss-chip.absent { background: var(--sand); border-color: var(--sand); }
.ss-add { display: flex; gap: 8px; }
.ss-add input { flex: 1; }
.ss-photo { display: flex; align-items: center; justify-content: center; min-height: 64px; border-radius: 14px; border: 1.5px dashed #9DBA92; color: #2F6B3A; font-weight: 700; cursor: pointer; }
.ss-thumbs { display: flex; gap: 6px; flex-wrap: wrap; }
.ss-thumbs img { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; }
.ss-btn { width: 100%; background: #2F6B3A !important; text-align: center; text-decoration: none; display: block; box-sizing: border-box; }
.ss-mine { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ss-mine li { padding: 12px 14px; border-radius: 16px; background: #fff; border: 1.5px solid #D5E3CE; display: flex; flex-direction: column; gap: 2px; }
.ss-mine p { margin: 4px 0 0; font-size: 14px; }
.ss-season { list-style: none; margin: 8px 0 14px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ss-season li { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-radius: 14px; background: #fff; border: 1.5px solid #D5E3CE; }
.ss-season span { font-size: 13px; font-weight: 700; color: var(--muted); }
.ss-season span.now { color: #2F6B3A; }
.ss-warn { margin: 0 0 12px; padding: 14px 16px; border-radius: 18px; background: #FFF6D6; border: 1.5px solid #E8C65A; color: #5A4300; font-size: 13px; line-height: 1.7; }
.ss-warn ul { margin: 6px 0; padding-left: 1.2em; }
.ss-warn p { margin: 4px 0 0; }

.brand { text-decoration: none; color: inherit; }

.leaflet-container path.fc-reg-cell { fill: url(#fc-hatch) !important; fill-opacity: 1 !important; }
.fc-legend i.lg-reg { background: repeating-linear-gradient(45deg, #9A6B00 0 3px, #FFE9A8 3px 7px); border: 1.5px solid #9A6B00; }
.fc-legend i.lg-area { background: transparent; border: 3px solid #1A1D2E; }

/* ほかのキノコはどうでしたか？（小さいボタン） */
.check-head { align-items: baseline; }
.check-head .h2 { margin-bottom: 0; }
.ck-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 4px; }
.ck { display: inline-flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 12px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; font: inherit; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer; }
.ck i { font-style: normal; color: var(--red); }
.ck small { font-size: 11px; font-weight: 700; margin-left: 2px; }
.ck-absent { background: var(--navy); border-color: var(--navy); color: #fff; }
.ck-absent i { color: #FFB3A8; }
.ck-present { background: var(--red); border-color: var(--red); color: #fff; }
.ck-present i { color: #fff; }
.ck.editing { border-style: dashed; background: #fff; color: var(--navy); }
.ck.editing.fav { border-style: solid; border-color: var(--red); background: #FFF1EC; }

.login-tabs { display: flex; gap: 4px; padding: 4px; margin: 6px 0 12px; border-radius: 14px; background: var(--sand); }
.login-tabs button { flex: 1; min-height: 42px; border: 0; border-radius: 10px; background: transparent; font: inherit; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer; }
.login-tabs button[aria-selected="true"] { background: var(--navy); color: #fff; }
.pw-form { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.pw-form label { font-size: 13px; font-weight: 700; }
.pw-form input[type="password"] { padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 12px; font: inherit; font-size: 15px; }
.hint a { color: var(--red); }

.ck.editing { border-style: dashed; border-color: #C5C0B5; background: #fff; color: var(--muted); }
.ck.editing i { color: #C5C0B5; font-size: 16px; }
.ck.editing.fav { border-style: solid; border-color: var(--red); background: var(--red); color: #fff; }
.ck.editing.fav i { color: #fff; }

/* あなたの山の出どき・去年の今ごろ・ふりかえり */
.in-card { margin: 12px 0; padding: 14px 16px; border-radius: 20px; background: #fff; border: 1.5px solid var(--line); display: flex; flex-direction: column; gap: 8px; }
.in-card.dedoki { background: #FFF1EC; border: 2px solid var(--red); }
.in-card.dark { background: var(--navy); border-color: var(--navy); color: #fff; }
.in-k { font-size: 12px; font-weight: 700; color: var(--red); }
.in-card.dark .in-k { color: #FFB3A8; }
.in-k.red { color: var(--red); }
.in-t { font-family: var(--head); font-size: 18px; font-weight: 900; line-height: 1.4; }
.in-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.in-grid span { padding: 6px 8px; border-radius: 10px; background: #fff; font-size: 11px; color: var(--muted); display: flex; flex-direction: column; gap: 2px; }
.in-grid b { font-size: 12px; color: var(--navy); }
.in-grid b.red { color: var(--red); }
.in-ly { display: flex; flex-direction: column; gap: 2px; }
.in-ly span { font-size: 12px; color: #C9CBD6; }
.in-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; text-align: center; }
.in-stats div { padding: 8px 4px; border-radius: 12px; background: var(--sand); display: flex; flex-direction: column; }
.in-stats span { font-size: 11px; color: var(--muted); }
.in-stats b { font-size: 20px; }
.in-card p { margin: 0; font-size: 13px; line-height: 1.7; }

/* ロボット対策の確認ボックス（ふだんは空） */
.captcha:empty{display:none}
.captcha{margin:6px 0}
