		.header-top {
			display:flex;
			justify-content:center;
			align-items:center;
			gap:.5rem;
			flex-wrap:wrap;
			margin-top: 1rem;
		}

		.header-title {
			font-weight:800;
			font-size:1.1rem;
		}

		.header-filters {
			display:flex;
			justify-content:center;
			align-items:center;
			gap:.8rem;
			margin:.8rem 0 1rem;
			flex-wrap:wrap;
		}

		.header-filters > div{
			display:inline-flex;
			align-items:center;
			gap:.45rem;
			padding:.5rem .75rem;
			height:40px;
			border-radius:999px;
			background:#fff;
			border:2px solid var(--line);
			box-shadow:0 8px 16px rgba(255,102,170,.14);
			box-sizing:border-box;
		}

		.header-filters label {
			font-size:.75rem;
			font-weight:900;
			color:var(--pink);
			white-space:nowrap;
		}

		.header-filters select{
			border:none;
			outline:none;
			background:transparent;
			font-weight:900;
			color:var(--choco);
			cursor:pointer;
			height:100%;
			padding-right:.2rem;
		}

		/* =========================================
			レイアウト：1カラム固定（縦並び）
		========================================= */
		.main-grid {
			display: block;
		}

		@media (max-width: 480px){
			.main-grid {
				grid-template-columns: 1fr;
			}
		}

		/* カード共通 */
		.card {
			background: #fff;
			border-radius: var(--radius-lg);
			border: 2px solid var(--line);
			box-shadow: 0 6px 12px rgba(255,102,170,0.15);
			padding: 1rem;
			margin-top: 1rem;
		}

		/* =======================
			カレンダーカード（プロフ帳とおそろ）
		======================= */
		.calendar-card {
			background:#fff;
			border-radius: var(--radius-lg);
			border:2px solid var(--line);
			box-shadow:0 6px 12px rgba(255,102,170,0.15);
			padding:0.8rem 0.9rem 0.9rem;
			margin-top:1rem;
			margin-bottom:1rem;
			font-size:.8rem;
		}

		/* 上の「← 2025年12月 →」の行 */
		.calendar-header {
			display:flex;
			justify-content:space-between;
			align-items:center;
			gap:.5rem;
			margin-bottom:.4rem;
		}

		.calendar-title {
			font-weight:700;
			color:var(--pink);
			font-size:.9rem;
		}

		/* 前月・次月ボタン */
		.cal-nav {
			border:none;
			background:#fff7fb;
			color:var(--pink);
			border-radius:999px;
			padding:.2rem .5rem;
			font-size:.75rem;
			font-weight:700;
			box-shadow:0 3px 6px rgba(0,0,0,.08);
			cursor:pointer;
		}

		/* ▼ここが一番大事：7列グリッドにする */
		.calendar-grid {
			display:grid;
			grid-template-columns: repeat(7, 1fr);
			gap:.25rem;
		}

		/* 曜日 */
		.cal-weekday {
			text-align:center;
			font-size:.7rem;
			font-weight:700;
			color:#a07799;
		}

		/* 日付マス */
		.calendar-day {
			min-height:2.4rem;
			border-radius:10px;
			background:#fffafc;
			border:1px solid #ffe3f2;
			padding:.2rem .2rem .3rem;
			display:flex;
			flex-direction:column;
			align-items:flex-end;
			justify-content:space-between;
			box-sizing:border-box;
		}

		/* 月外のマス */
		.calendar-day.empty {
			background:transparent;
			border:none;
		}

		/* 日付数字 */
		.calendar-day-num {
			font-size:.75rem;
			font-weight:700;
			color:var(--choco);
		}

		/* バッジ（◯件） */
		.calendar-day-badge {
			align-self:flex-start;
			margin-top:.2rem;
			font-size:.65rem;
			font-weight:700;
			padding:.05rem .35rem;
			border-radius:999px;
			background:var(--blue);
			color:#fff;
			box-shadow:0 2px 4px rgba(102,204,255,.3);
		}

		/* 今日ちょい強調 */
		.calendar-day.today {
			border-color: var(--pink);
			box-shadow:0 0 0 1px rgba(255,102,170,0.3);
		}

		/* 選択中の日付ハイライト（JSで .selected つける用） */
		.calendar-day.selected {
			box-shadow:0 0 0 2px rgba(102,204,255,.7);
		}

		/* ★日付をタップしたときのキラッと選択状態 */
		.calendar-day.is-selected {
			position: relative;
			border-color: var(--blue);
			box-shadow:
				0 0 0 1px rgba(102,204,255,0.7),
				0 0 12px rgba(102,204,255,0.5);
			animation: cal-glow .25s ease-out;
		}

		/* ふわっと光るアニメーション */
		@keyframes cal-glow {
			0% {
				transform: scale(0.96);
				box-shadow: 0 0 0 0 rgba(102,204,255,0);
			}
			60% {
				transform: scale(1.03);
				box-shadow: 0 0 0 8px rgba(102,204,255,0);
			}
			100% {
				transform: scale(1);
				box-shadow:
					0 0 0 1px rgba(102,204,255,0.7),
					0 0 12px rgba(102,204,255,0.5);
				}
		}

		/* 左上でキラッと☆するやつ */
		.calendar-day.is-selected::after {
			content: "✦";
			position: absolute;
			top: 4px;
			left: 6px;
			font-size: 0.7rem;
			color: var(--blue);
			pointer-events: none;
			animation: cal-sparkle .4s ease-out;
		}

		@keyframes cal-sparkle {
			0%   { opacity: 0; transform: scale(0.3) rotate(-20deg); }
			40%  { opacity: 1; transform: scale(1.1) rotate(10deg); }
			100% { opacity: 0; transform: scale(0.5) rotate(0deg); }
		}

		/* =========================================
			日記管理カード
		========================================= */
		.day-title {
			font-size:.9rem;
			font-weight:800;
			color:var(--pink);
			margin-bottom:.3rem;
		}

	.entry-empty {
	  font-size:.8rem;
	  color:#a07799;
	  padding:.4rem 0;
	  text-align:center;
	}

	.entry-list {
	  max-height:480px;
	  overflow-y:auto;
	}

	.entry-item {
	  border-radius:var(--radius-md);
	  border:1px solid var(--line);
	  padding:.6rem .7rem;
	  margin-bottom:.5rem;
	  background:#fffdfd;
	  box-shadow:0 3px 6px rgba(0,0,0,.06);
	  font-size:.8rem;
	}

	.entry-header-row {
	  display:flex;
	  justify-content:space-between;
	  align-items:center;
	  gap:.5rem;
	  margin-bottom:.2rem;
	}

	.entry-cast {
	  font-weight:800;
	  font-size:.8rem;
	  color:var(--choco);
	}

	.entry-date {
	  font-size:.7rem;
	  color:#a07799;
	}

	.entry-mood {
	  font-size:.7rem;
	  padding:.1rem .4rem;
	  border-radius:999px;
	  background:#fff0f7;
	  color:var(--pink);
	  font-weight:700;
	}

	.entry-status {
	  font-size:.7rem;
	  color:#888;
	  margin-top:.2rem;
	}

	.entry-status.replied {
	  color:#22aa66;
	  font-weight:700;
	}

	.entry-actions {
	  display:flex;
	  flex-wrap:wrap;
	  gap:.3rem;
	  margin-top:.3rem;
	}

	.btn-sm {
	  font-size:.7rem;
	  border-radius:999px;
	  border:none;
	  padding:.25rem .6rem;
	  cursor:pointer;
	  font-weight:700;
	  box-shadow:0 2px 4px rgba(0,0,0,.15);
	  background:#fff;
	  color:var(--choco);
	}

	.btn-sm.reply {
	  background:var(--blue);
	  color:#fff;
	}

	.btn-sm.delete {
	  background:#ffdddd;
	  color:#cc0033;
	}

	.btn-sm:active {
	  transform:translateY(1px);
	}

	/* 本文ふきだし */
	.entry-text {
	  position: relative;
	  display: inline-block;
	  max-width: 100%;
	  background: #ffffff;
	  border-radius: 16px 16px 16px 4px;
	  padding: 0.55rem 0.7rem;
	  border: 1px solid #ffe3f5;
	  font-size: 0.85rem;
	  line-height: 1.5;
	  margin-top: 0.25rem;
	  white-space: pre-wrap;
	}
	.entry-text::before {
	  content: "";
	  position: absolute;
	  left: 10px;
	  bottom: -6px;
	  border-width: 6px 6px 0 0;
	  border-style: solid;
	  border-color: #ffe3f5 transparent transparent transparent;
	}
	.entry-text::after {
	  content: "";
	  position: absolute;
	  left: 11px;
	  bottom: -4px;
	  border-width: 5px 5px 0 0;
	  border-style: solid;
	  border-color: #ffffff transparent transparent transparent;
	}

	/* 店長返信の表示用ブロック */
	.entry-reply-block {
	  margin-top:.35rem;
	  padding-left:.3rem;
	}

	.entry-reply-label {
	  font-size:.7rem;
	  color:#a07799;
	  margin-bottom:.15rem;
	  display:flex;
	  align-items:center;
	  gap:.25rem;
	}

	.entry-reply-label-badge {
	  font-size:.65rem;
	  padding:.05rem .4rem;
	  border-radius:999px;
	 	background:#ffeafa;
	  color:var(--pink);
	  font-weight:700;
	}

	.entry-reply-bubble {
	  position:relative;
	  background:#e9f7ff;
	  border-radius:12px;
	  padding:.45rem .6rem .45rem .75rem;
	  font-size:.75rem;
	  color:#225577;
	  line-height:1.5;
	  white-space: pre-wrap;
	}

	.entry-reply-bubble::before {
	  content:"";
	  position:absolute;
	  left:14px;
	  top:-6px;
	  border-width:0 6px 6px 6px;
	  border-style:solid;
	  border-color:transparent transparent #e9f7ff transparent;
	}

	/* 店長リプライパネル（フッタースライドイン） */
	.reply-panel {
	  position: fixed;
	  left: 0;
	  right: 0;
	  bottom: 0;
	  z-index: 50;
	  padding: 0.75rem 0.75rem 1.1rem;
	  pointer-events: none;
	  transform: translateY(100%);
	  opacity: 0;
	  transition: transform 0.28s ease-out, opacity 0.28s ease-out;
	}
	.reply-panel.is-open {
	  transform: translateY(0);
	  opacity: 1;
	  pointer-events: auto;
	}

	.reply-inner {
	  max-width: 520px;
	  margin: 0 auto;
	  background: rgba(255, 255, 255, 0.96);
	  border-radius: 18px;
	  border: 2px solid var(--line);
	  box-shadow: 0 12px 28px rgba(255, 102, 170, 0.35);
	  padding: 0.75rem 0.9rem 0.85rem;
	}

	.reply-header {
	  display: flex;
	  align-items: center;
	  justify-content: space-between;
	  gap: 0.5rem;
	  margin-bottom: 0.35rem;
	}

	.reply-title {
	  font-size: 0.9rem;
	  font-weight: 800;
	  color: var(--pink);
	  display: inline-flex;
	  align-items: center;
	  gap: 0.25rem;
	}
	.reply-title::before {
	  content: "✨";
	  font-size: 0.9rem;
	}

	.reply-close {
	  border: none;
	  background: transparent;
	  width: 1.8rem;
	  height: 1.8rem;
	  border-radius: 999px;
	  font-weight: 800;
	  font-size: 1rem;
	  color: #aa7799;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	  cursor: pointer;
	}
	.reply-close:hover {
	  background: #ffe6f5;
	}

	.reply-target {
	  font-size: 0.75rem;
	  font-weight: 600;
	  color: #aa7799;
	  margin-bottom: 0.4rem;
	}

	.reply-bubble {
	  display: flex;
	  align-items: flex-end;
	  gap: 0.4rem;
	  margin-bottom: 0.55rem;
	}

	.reply-avatar {
	  flex: 0 0 2.1rem;
	  height: 2.1rem;
	  border-radius: 999px;
	  background: linear-gradient(135deg, #ff8ac5, #ff66aa);
	  color: #fff;
	  font-size: 0.8rem;
	  font-weight: 800;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	  box-shadow: 0 3px 8px rgba(255, 102, 170, 0.4);
	}

	.reply-bubble-body {
	  position: relative;
	  flex: 1;
	  background: #fff7fd;
	  border-radius: 16px 16px 16px 4px;
	  border: 2px solid #ffd6f0;
	  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
	}

	.reply-bubble-body::before {
	  content: "";
	  position: absolute;
	  left: -6px;
	  bottom: 8px;
	  border-width: 6px 6px 6px 0;
	  border-style: solid;
	  border-color: transparent #ffd6f0 transparent transparent;
	}

	.reply-bubble-body::after {
	  content: "";
	  position: absolute;
	  left: -4px;
	  bottom: 9px;
	  border-width: 5px 5px 5px 0;
	  border-style: solid;
	  border-color: transparent #fff7fd transparent transparent;
	}

	.reply-bubble-body textarea {
	  width: 100%;
	  border: none;
	  outline: none;
	  background: transparent;
	  padding: 0.55rem 0.65rem 0.5rem;
	  resize: none;
	  font-size: 0.8rem;
	  font-weight: 500;
	  color: var(--choco);
	  font-family: "Rounded Mplus 1c","Yu Gothic","Hiragino Sans",sans-serif;
	  box-sizing: border-box;
	}

	.reply-bubble-body textarea::placeholder {
	  color: #c295b5;
	}

	.btn-reply-send {
	  width: 100%;
	  border-radius: 999px;
	  border: none;
	  padding: 0.55rem 0.5rem;
	  background: linear-gradient(135deg, #66ccff, #3399ff);
	  color: #fff;
	  font-size: 0.85rem;
	  font-weight: 800;
	  letter-spacing: 0.04em;
	  box-shadow: 0 4px 10px rgba(51, 153, 255, 0.35);
	  cursor: pointer;
	}

	.btn-reply-send:active {
	  transform: translateY(1px);
	  box-shadow: 0 2px 6px rgba(51, 153, 255, 0.35);
	}

	/* フッター */
	.footer-nav{
	  margin-top:2rem;
	  text-align:center;
	  font-size:.75rem;
	  font-weight:500;
	  color:#a07799;
	  line-height:1.4;
	}

	.back-link{
	  display:inline-block;
	  text-decoration:none;
	  background:#ff66aa;
	  color:#fff;
	  font-weight:700;
	  font-size:.8rem;
	  padding:.5rem .8rem;
	  border-radius:12px;
	  box-shadow:0 4px 10px rgba(255,102,170,.4);
	  margin-bottom:.5rem;
	}