/* ============================================================
 * 黄泉戸村ARG：通信記録束「未送信・未達・削除」
 * 状態語と資料の空白を、色だけに依存せず読み分ける表示。
 * ============================================================ */
.communication-intro {
  margin: 20px 0;
  padding: 17px 20px;
  border: 1px solid #829095;
  border-left: 4px solid #6b3640;
  background: #f2f4f1;
  color: #3c4748;
  line-height: 1.9;
}

.communication-intro h2 { margin: 0 0 8px; color: #49343a; font-size: 18px; }
.communication-intro p:last-child { margin-bottom: 0; }

.communication-key {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 24px;
}
.communication-key > div {
  border: 1px solid #b4bab6;
  background: #fffdf8;
  padding: 12px;
  color: #4b4238;
  font-size: 12px;
  line-height: 1.75;
}
.communication-key strong { display: block; color: #4c3035; font-size: 13px; }

.communication-ledger {
  position: relative;
  margin: 22px 0;
  padding-left: 28px;
  border-left: 2px solid #839396;
}
.communication-item {
  position: relative;
  margin: 0 0 18px;
  padding: 17px 19px;
  border: 1px solid #b8c1bd;
  background: #fffefa;
  box-shadow: 1px 2px 6px rgba(42, 44, 42, .08);
}
.communication-item::before {
  content: '';
  position: absolute;
  top: 20px;
  left: -36px;
  width: 12px;
  height: 12px;
  border: 2px solid #fffefa;
  border-radius: 50%;
  background: #607f80;
  box-shadow: 0 0 0 1px #839396;
}
.communication-item h3 { margin: 8px 0; color: #403c36; font-size: 17px; }
.communication-item p { color: #4d4941; font-size: 13px; line-height: 1.9; }
.communication-item .communication-source { margin: 12px 0 0; color: #5d6460; font-size: 12px; }
.communication-item .communication-limit {
  margin: 12px 0 0;
  padding: 9px 11px;
  border-left: 3px solid #9b6653;
  background: #faf2eb;
  color: #623c33;
  font-size: 12px;
  line-height: 1.8;
}

.communication-status {
  display: inline-block;
  padding: 2px 8px;
  border: 1px solid #587473;
  background: #edf3f0;
  color: #2f5354;
  font-size: 11px;
  font-weight: bold;
  letter-spacing: .05em;
}
.communication-status.unfinished { border-color: #9a6252; background: #fbefea; color: #6e352d; }
.communication-status.deleted { border-color: #7a7273; background: #f0eeee; color: #534a4a; }
.communication-status.unreachable { border-color: #8d7352; background: #faf3e5; color: #684d2d; }

.communication-table-wrap { overflow-x: auto; margin: 20px 0; }
.communication-table { min-width: 670px; }
.communication-fragments-page a:focus-visible {
  outline: 3px solid #a73f34;
  outline-offset: 3px;
  text-decoration: underline;
}

@media (max-width: 700px) {
  .communication-key { grid-template-columns: 1fr; }
  .communication-ledger { padding-left: 22px; }
  .communication-item { padding: 15px; }
  .communication-item::before { left: -30px; }
}

@media (prefers-reduced-motion: reduce) {
  .communication-item { scroll-behavior: auto; }
}
