/* Share My Color Days 固有スタイル */

.cd-header {
  text-align: center;
  margin-bottom: 16px;
}
.cd-header h1 {
  margin: 0 0 4px;
  font-size: 1.5rem;
}
.cd-sub {
  margin: 0;
  color: var(--color-muted);
  font-size: 0.9rem;
}
.cd-sub-ja {
  margin: 2px 0 0;
  color: var(--color-muted);
  font-size: 0.82rem;
}

/* 日本語併記の共通トーン（英語より少し小さめ・控えめ） */
.cd-ja {
  font-size: 0.82rem;
  color: var(--color-muted);
}
.cd-warn-ja {
  font-size: 0.82rem !important;
}

/* 編集画面の注意書き */
.cd-warn {
  background: #fff3cd;
  border: 1px solid #ffe08a;
  border-radius: var(--radius);
  padding: 12px 16px;
  margin: 0 auto 20px;
  max-width: 620px;
}
.cd-warn p {
  margin: 0;
  font-size: 0.9rem;
  color: #7a5c00;
}
.cd-warn-sub {
  margin-top: 6px !important;
  font-size: 0.82rem !important;
  opacity: 0.85;
}

/* 注意書きブロック内に統合した「編集用URLの保管」パーツ */
.cd-warn-sep {
  border: none;
  border-top: 1px dashed #ffe08a;
  margin: 12px 0;
}
.cd-keep-title {
  margin: 0 0 6px;
  font-weight: 700;
  color: #7a5c00;
  font-size: 0.95rem;
}
.cd-keep-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.cd-url-input {
  flex: 1 1 220px;
  min-width: 0;
  font-family: inherit;
  font-size: 0.85rem;
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: #fff;
  color: var(--color-text);
}
.cd-copy-edit {
  background: #b8860b;
  color: #fff;
  border-color: #b8860b;
  font-weight: 600;
  white-space: nowrap;
}
.cd-copy-edit:hover { background: #9c7209; }

/* 凡例 */
.cd-legend {
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 20px;
  font-size: 0.9rem;
  color: var(--color-muted);
}
.cd-legend span {
  white-space: nowrap; /* 各項目（記号+英語/日本語）を途中で折り返さない */
}
.cd-legend b {
  font-size: 1.1rem;
}

/* スマホ幅: 凡例を縦積み・左寄せにして整然と並べる（各行1項目） */
@media (max-width: 600px) {
  .cd-legend {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    width: fit-content;   /* 左寄せの塊にする */
    margin-left: auto;
    margin-right: auto;   /* 塊自体は中央に置く */
  }
}

/* hidden 属性を確実に効かせる（display 指定に上書きされないように） */
[hidden] {
  display: none !important;
}

/* 3 カラム: スマホでも常に横並び（Sat / Sun / Holiday の3等分） */
.cd-board {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap);
  align-items: start;
}
.cd-col {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 12px;
  min-width: 0; /* グリッド内で内容がはみ出さないように */
}

/* スマホ幅: 3列を保ったまま、余白と文字を詰める */
@media (max-width: 600px) {
  .cd-board { gap: 8px; }
  .cd-col { padding: 8px 6px; }
}
.cd-colhead {
  margin: 0 0 12px;
  font-size: 1rem;
  text-align: center;
  padding-bottom: 8px;
  border-bottom: 2px solid currentColor;
}
.theme-sat { color: #2a5d80; }      /* 土: 青 */
.theme-sun { color: #c0392b; }      /* 日: 赤 */
.theme-holiday { color: #c0392b; }  /* 祝: 赤 */

.cd-days {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* 日付 1 行（閲覧: div / 編集: button） */
.cd-day {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: transparent;
  width: 100%;
  text-align: left;
  font-family: inherit;
}
.cd-day-btn {
  border: 1px solid var(--color-border);
  cursor: pointer;
  transition: background 0.12s ease, transform 0.06s ease;
}
.cd-day-btn:hover { background: #f0f0ec; }
.cd-day-btn:active { transform: scale(0.98); }

.cd-daynum {
  font-weight: 700;
  font-size: 1.05rem;
  min-width: 44px;
}
.cd-mark {
  font-size: 1.1rem;
}
.cd-holiname {
  font-size: 0.75rem;
  color: var(--color-muted);
  margin-left: auto;
  text-align: right;
  /* CJK を単語の途中で割らない（「敬老の日」を「敬老の/日」にしない）。
     折り返しは英単語の切れ目や " / " の前後で起きる。 */
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* スマホ幅: 3列を保つため、日付行を縦積みにして横幅を節約 */
@media (max-width: 600px) {
  .cd-day {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 8px 6px;
  }
  .cd-daynum { min-width: 0; font-size: 1rem; }
  .cd-holiname { margin-left: 0; text-align: left; font-size: 0.68rem; }
  .cd-colhead { font-size: 0.9rem; }
}

/* アクション */
.cd-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 28px;
}
.cd-copy {
  background: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent);
  font-weight: 600;
}
.cd-copy:hover { background: #336e8c; }
.cd-reset {
  color: #a85623;
  border-color: #e6b48f;
}
.cd-reset:hover { background: #fce3d4; }

/* 状態表示 */
.cd-loading, .cd-error {
  text-align: center;
  color: var(--color-muted);
}
.cd-error { color: #c0392b; }

.cd-notfound {
  text-align: center;
  color: var(--color-muted);
  margin: 24px 0;
}

.cd-viral {
  text-align: center;
  margin-top: 32px;
}
/* バイラルボタン: 英語と日本語を2行に分け、狭い画面でも崩れないようにする */
.cd-viral-cta {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  line-height: 1.35;
  max-width: 100%;
}
.cd-viral-en {
  word-break: keep-all;      /* 単語の途中で割らない */
  overflow-wrap: anywhere;   /* どうしても収まらないときだけ折る */
}
.cd-viral-ja {
  font-size: 0.82rem;
  opacity: 0.9;
  word-break: keep-all;      /* 「自分のカレンダーを作る」を途中で割らない */
}

/* ランディング（ID 指定なしで開いたとき） */
.cd-intro {
  max-width: 560px;
  margin: 8px auto 0;
  text-align: center;
}
.cd-intro-lead {
  margin: 0 0 4px;
  font-size: 1rem;
}
.cd-intro-lead.cd-ja {
  color: var(--color-muted);
  margin-bottom: 16px;
}
.cd-steps {
  display: inline-block;
  text-align: left;
  margin: 0 auto 24px;
  padding-left: 20px;
  color: var(--color-text);
  font-size: 0.92rem;
  line-height: 1.9;
}
.cd-intro-cta {
  background: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent);
  font-weight: 600;
  font-size: 1.05rem;
  padding: 12px 24px;
  display: inline-block;   /* ボタンを内容幅にして中央の親で中央寄せ */
  white-space: nowrap;     /* ラベルを折り返さない */
}
.cd-intro-cta:hover { background: #336e8c; text-decoration: none; }

/* ランディング: このブラウザで発行済みのカレンダー一覧 */
.cd-mylist {
  max-width: 480px;
  margin: 0 auto 24px;
  padding: 14px 16px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  text-align: left;
}
.cd-mylist-title {
  margin: 0 0 4px;
  font-size: 1rem;
}
.cd-mylist-note {
  margin: 0 0 12px;
}
.cd-mylist-items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cd-mylist-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: #fff;
}
.cd-mylist-name {
  font-weight: 600;
  word-break: break-word;
  min-width: 0;
}
.cd-mylist-open {
  white-space: nowrap;
  background: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent);
  font-size: 0.85rem;
  padding: 6px 14px;
}
.cd-mylist-open:hover { background: #336e8c; text-decoration: none; }

/* 新規作成のガードメッセージ（名前が空／重複） */
.cd-create-error {
  margin: 12px auto 0;
  max-width: 400px;
  color: #c0392b;
  font-size: 0.88rem;
  font-weight: 600;
}

.cd-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  background: var(--color-footer-bg);
  color: #fff;
  padding: 10px 18px;
  border-radius: 999px;
  font-size: 0.88rem;
  box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}
