.baby-common-related {
	margin-top: 28px;
}

.baby-related-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin-top: 16px;
}

.baby-related-card {
	display: block;
	padding: 17px;
	border-radius: 18px;
	border: 1px solid var(--calc-border, #e5e7eb);
	background: #ffffff;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.baby-related-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
	border-color: #f9a8d4;
}

.baby-related-card strong {
	display: block;
	margin-bottom: 7px;
	color: #be185d;
	font-size: 15px;
	line-height: 1.45;
}

.baby-related-card span {
	display: block;
	font-size: 14px;
	line-height: 1.65;
	color: #475569;
}

@media (max-width: 1100px) {
	.baby-related-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.baby-related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.baby-related-grid {
		grid-template-columns: 1fr;
	}
}

/* ===== from 5a2134e9-dcc6-4ea5-979e-d249d10227b5.jsp ===== */
.health-main-grid {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 16px;
			margin-top: 22px;
		}

		.health-tool-card {
			position: relative;
			display: block;
			min-height: 230px;
			padding: 24px;
			border-radius: 24px;
			background: #ffffff;
			border: 1px solid #dbe7e2;
			box-shadow: 0 16px 38px rgba(15, 23, 42, 0.07);
			transition: 0.18s ease;
			overflow: hidden;
		}

		.health-tool-card:before {
			content: "";
			position: absolute;
			right: -34px;
			top: -34px;
			width: 118px;
			height: 118px;
			border-radius: 999px;
			background: rgba(33, 166, 122, 0.10);
		}

		.health-tool-card:hover {
			transform: translateY(-3px);
			border-color: #21a67a;
			box-shadow: 0 22px 48px rgba(15, 23, 42, 0.10);
		}

		.health-tool-card.is-soon {
			background: #f8fafc;
			cursor: default;
			opacity: 0.86;
		}

		.health-tool-card.is-soon:hover {
			transform: none;
			border-color: #dbe7e2;
			box-shadow: 0 16px 38px rgba(15, 23, 42, 0.07);
		}

		.health-tool-icon {
			width: 54px;
			height: 54px;
			border-radius: 19px;
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: 30px;
			background: #eefaf5;
			margin-bottom: 16px;
		}

		.health-tool-card h3 {
			position: relative;
			margin: 0;
			font-size: 21px;
			line-height: 1.35;
			letter-spacing: -0.05em;
			color: #102a22;
			z-index: 1;
		}

		.health-tool-card p {
			position: relative;
			margin: 10px 0 0;
			font-size: 14px;
			color: #64748b;
			letter-spacing: -0.02em;
			z-index: 1;
		}

		.health-tool-tag {
			position: absolute;
			left: 24px;
			bottom: 22px;
			display: inline-flex;
			align-items: center;
			padding: 6px 11px;
			border-radius: 999px;
			background: #eefaf5;
			color: #0f513d;
			font-size: 12px;
			font-weight: 900;
			letter-spacing: -0.02em;
		}

		.health-tool-card.is-soon .health-tool-tag {
			background: #e2e8f0;
			color: #64748b;
		}

		.health-main-row {
			display: grid;
			grid-template-columns: minmax(0, 1fr) minmax(300px, 0.72fr);
			gap: 18px;
			align-items: start;
			margin-top: 18px;
		}

		.health-rank-list {
			display: grid;
			gap: 10px;
			margin-top: 16px;
		}

		.health-rank-item {
			display: flex;
			align-items: flex-start;
			gap: 12px;
			padding: 14px;
			border-radius: 16px;
			background: #f8fafc;
			border: 1px solid #e2e8f0;
		}

		.health-rank-no {
			width: 30px;
			height: 30px;
			border-radius: 12px;
			background: #21a67a;
			color: #fff;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			font-size: 13px;
			font-weight: 900;
			flex: 0 0 auto;
		}

		.health-rank-item strong {
			display: block;
			color: #102a22;
			font-size: 15px;
			letter-spacing: -0.03em;
		}

		.health-rank-item span {
			display: block;
			margin-top: 3px;
			color: #64748b;
			font-size: 13px;
		}

		.health-guide-list {
			display: grid;
			gap: 12px;
			margin-top: 16px;
		}

		.health-guide-item {
			padding: 15px;
			border-radius: 16px;
			border: 1px solid #dbe7e2;
			background: #ffffff;
		}

		.health-guide-item strong {
			display: block;
			color: #102a22;
			font-size: 15px;
			letter-spacing: -0.03em;
		}

		.health-guide-item p {
			margin: 5px 0 0;
			color: #64748b;
			font-size: 14px;
		}

		.health-faq-list {
			display: grid;
			gap: 10px;
			margin-top: 16px;
		}

		.health-faq-list details {
			border: 1px solid #dbe7e2;
			border-radius: 16px;
			padding: 15px;
			background: #fff;
		}

		.health-faq-list summary {
			cursor: pointer;
			font-weight: 900;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.health-faq-list p {
			margin: 10px 0 0;
			color: #64748b;
			font-size: 14px;
		}

		.health-category-box {
			display: flex;
			flex-wrap: wrap;
			gap: 8px;
			margin-top: 16px;
		}

		.health-category-box a,
		.health-category-box span {
			display: inline-flex;
			align-items: center;
			gap: 5px;
			border-radius: 999px;
			padding: 8px 12px;
			font-size: 13px;
			font-weight: 800;
			background: #eefaf5;
			color: #0f513d;
			border: 1px solid #ccefe0;
		}

		@media (max-width: 960px) {
			.health-main-grid {
				grid-template-columns: repeat(2, minmax(0, 1fr));
			}

			.health-main-row {
				grid-template-columns: 1fr;
			}
		}

		@media (max-width: 620px) {
			.health-main-grid {
				grid-template-columns: 1fr;
			}

			.health-tool-card {
				min-height: 210px;
				padding: 21px;
			}

			.health-tool-tag {
				left: 21px;
				bottom: 20px;
			}
		}

/* ===== from 69d9d61e-c337-4648-8a97-ed1b77f746f7.jsp ===== */
.med-grid {
			display: grid;
			grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
			gap: 18px;
			align-items: start;
			margin-top: 24px;
		}

		.med-time-grid {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 12px;
			margin-top: 18px;
		}

		.med-time-card {
			position: relative;
			border: 1px solid #dbe7e2;
			border-radius: 20px;
			background: #fff;
			padding: 18px;
			cursor: pointer;
			transition: 0.18s ease;
		}

		.med-time-card:hover {
			border-color: #21a67a;
			background: #f7fcfa;
			transform: translateY(-1px);
		}

		.med-time-card.is-checked {
			border-color: #21a67a;
			background: #eefaf5;
		}

		.med-time-card input {
			position: absolute;
			opacity: 0;
			pointer-events: none;
		}

		.med-time-top {
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 10px;
		}

		.med-time-icon {
			width: 46px;
			height: 46px;
			border-radius: 16px;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			background: #eefaf5;
			font-size: 25px;
		}

		.med-check-mark {
			width: 30px;
			height: 30px;
			border-radius: 999px;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			background: #e2e8f0;
			color: #64748b;
			font-weight: 900;
		}

		.med-time-card.is-checked .med-check-mark {
			background: #21a67a;
			color: #fff;
		}

		.med-time-card strong {
			display: block;
			margin-top: 14px;
			font-size: 19px;
			letter-spacing: -0.05em;
			color: #102a22;
		}

		.med-time-card span {
			display: block;
			margin-top: 4px;
			font-size: 13px;
			color: #64748b;
		}

		.med-summary {
			position: sticky;
			top: 88px;
			border: 1px solid #dbe7e2;
			border-radius: 22px;
			background: linear-gradient(180deg, #ffffff, #f7fcfa);
			box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
			padding: 22px;
		}

		.med-score {
			display: flex;
			align-items: flex-end;
			gap: 8px;
			margin-top: 16px;
			color: #0f513d;
		}

		.med-score strong {
			font-size: 46px;
			line-height: 1;
			letter-spacing: -0.06em;
		}

		.med-score span {
			font-size: 15px;
			font-weight: 900;
			padding-bottom: 7px;
		}

		.med-status-box {
			margin-top: 16px;
			padding: 16px;
			border-radius: 16px;
			background: #eefaf5;
			border: 1px solid #ccefe0;
			color: #14532d;
			font-size: 15px;
			font-weight: 800;
			letter-spacing: -0.02em;
		}

		.med-status-detail {
			margin-top: 10px;
			color: #64748b;
			font-size: 14px;
		}

		.med-actions {
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 8px;
			margin-top: 16px;
		}

		.med-btn {
			border: 0;
			border-radius: 14px;
			padding: 12px 13px;
			font-weight: 900;
			cursor: pointer;
			letter-spacing: -0.03em;
			font-family: inherit;
		}

		.med-btn.primary {
			background: #21a67a;
			color: #fff;
		}

		.med-btn.light {
			background: #eefaf5;
			color: #0f513d;
			border: 1px solid #ccefe0;
		}

		.med-btn.danger {
			background: #fee2e2;
			color: #991b1b;
		}

		.med-form {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 12px;
			margin-top: 18px;
		}

		.med-field {
			display: flex;
			flex-direction: column;
			gap: 6px;
		}

		.med-field.full {
			grid-column: 1 / -1;
		}

		.med-field label {
			font-size: 13px;
			font-weight: 900;
			color: #334155;
		}

		.med-field input,
		.med-field select,
		.med-field textarea {
			width: 100%;
			border: 1px solid #dbe7e2;
			border-radius: 14px;
			padding: 12px 13px;
			font-size: 14px;
			font-family: inherit;
			color: #1e293b;
			background: #fff;
		}

		.med-field textarea {
			min-height: 90px;
			resize: vertical;
		}

		.med-list {
			display: grid;
			gap: 10px;
			margin-top: 16px;
		}

		.med-item {
			border: 1px solid #dbe7e2;
			border-radius: 17px;
			background: #f8fafc;
			padding: 15px;
		}

		.med-item-top {
			display: flex;
			justify-content: space-between;
			gap: 10px;
			align-items: center;
			margin-bottom: 7px;
		}

		.med-item-title {
			font-weight: 900;
			color: #0f513d;
			letter-spacing: -0.03em;
		}

		.med-item-delete {
			border: 0;
			background: #fee2e2;
			color: #991b1b;
			border-radius: 999px;
			padding: 5px 9px;
			font-size: 12px;
			font-weight: 900;
			cursor: pointer;
		}

		.med-item-meta {
			font-size: 13px;
			color: #64748b;
			margin-bottom: 7px;
		}

		.med-item-content {
			font-size: 14px;
			color: #334155;
			white-space: pre-wrap;
		}

		.med-pill-list {
			display: grid;
			gap: 10px;
			margin-top: 16px;
		}

		.med-pill-row {
			display: grid;
			grid-template-columns: minmax(0, 1fr) 110px 82px;
			gap: 8px;
			align-items: center;
		}

		.med-pill-row input,
		.med-pill-row select {
			width: 100%;
			border: 1px solid #dbe7e2;
			border-radius: 12px;
			padding: 10px 11px;
			font-size: 14px;
			font-family: inherit;
			background: #fff;
		}

		.med-pill-remove {
			border: 0;
			border-radius: 12px;
			padding: 10px 8px;
			font-size: 13px;
			font-weight: 900;
			cursor: pointer;
			background: #fee2e2;
			color: #991b1b;
		}

		.med-guide-list {
			display: grid;
			gap: 12px;
			margin-top: 18px;
		}

		.med-guide-item {
			display: flex;
			gap: 12px;
			padding: 15px;
			border-radius: 16px;
			background: #f8fafc;
			border: 1px solid #e2e8f0;
		}

		.med-guide-icon {
			width: 36px;
			height: 36px;
			border-radius: 13px;
			background: #eefaf5;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			flex: 0 0 auto;
		}

		.med-guide-item strong {
			display: block;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.med-guide-item p {
			margin: 4px 0 0;
			color: #64748b;
			font-size: 14px;
		}

		.med-faq {
			display: grid;
			gap: 10px;
			margin-top: 18px;
		}

		.med-faq details {
			border: 1px solid #dbe7e2;
			border-radius: 16px;
			padding: 15px;
			background: #fff;
		}

		.med-faq summary {
			cursor: pointer;
			font-weight: 900;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.med-faq p {
			margin: 10px 0 0;
			color: #64748b;
			font-size: 14px;
		}

		.med-warning {
			background: #fff7ed;
			border: 1px solid #fed7aa;
			color: #7c2d12;
			border-radius: 18px;
			padding: 16px;
			font-size: 14px;
			margin-top: 18px;
		}

		.med-danger {
			background: #fef2f2;
			border: 1px solid #fecaca;
			color: #7f1d1d;
			border-radius: 18px;
			padding: 16px;
			font-size: 14px;
			margin-top: 12px;
		}

		@media (max-width: 900px) {
			.med-grid {
				grid-template-columns: 1fr;
			}

			.med-summary {
				position: static;
			}
		}

		@media (max-width: 680px) {
			.med-time-grid,
			.med-form {
				grid-template-columns: 1fr;
			}

			.med-actions {
				grid-template-columns: 1fr;
			}

			.med-pill-row {
				grid-template-columns: 1fr;
			}
		}

/* ===== from 9e862956-041d-4867-ac8e-bfb7ad50b0cf.jsp ===== */
.memory-game-grid {
			display: grid;
			grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
			gap: 18px;
			align-items: start;
			margin-top: 24px;
		}

		.memory-game-panel {
			position: relative;
			overflow: hidden;
		}

		.memory-game-panel:before {
			content: "";
			position: absolute;
			right: -70px;
			top: -70px;
			width: 180px;
			height: 180px;
			border-radius: 999px;
			background: rgba(33, 166, 122, 0.08);
			pointer-events: none;
		}

		.memory-game-toolbar {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 10px;
			margin-top: 18px;
		}

		.memory-game-field {
			display: flex;
			flex-direction: column;
			gap: 6px;
		}

		.memory-game-field label {
			font-size: 13px;
			font-weight: 900;
			color: #334155;
			letter-spacing: -0.03em;
		}

		.memory-game-field select {
			width: 100%;
			border: 1px solid #dbe7e2;
			border-radius: 14px;
			padding: 12px 13px;
			font-size: 14px;
			font-family: inherit;
			color: #1e293b;
			background: #fff;
		}

		.memory-game-actions {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 8px;
			margin-top: 14px;
		}

		.memory-game-btn {
			border: 0;
			border-radius: 14px;
			padding: 13px 14px;
			font-weight: 900;
			cursor: pointer;
			letter-spacing: -0.03em;
			font-family: inherit;
			transition: 0.16s ease;
		}

		.memory-game-btn:hover {
			transform: translateY(-1px);
		}

		.memory-game-btn.primary {
			background: #21a67a;
			color: #fff;
		}

		.memory-game-btn.light {
			background: #eefaf5;
			color: #0f513d;
			border: 1px solid #ccefe0;
		}

		.memory-game-btn.danger {
			background: #fee2e2;
			color: #991b1b;
		}

		.memory-game-status {
			display: grid;
			grid-template-columns: repeat(4, minmax(0, 1fr));
			gap: 10px;
			margin-top: 18px;
		}

		.memory-stat-card {
			padding: 14px;
			border-radius: 16px;
			border: 1px solid #dbe7e2;
			background: #f8fafc;
		}

		.memory-stat-card span {
			display: block;
			font-size: 12px;
			font-weight: 900;
			color: #64748b;
			letter-spacing: -0.03em;
		}

		.memory-stat-card strong {
			display: block;
			margin-top: 5px;
			font-size: 23px;
			line-height: 1;
			color: #102a22;
			letter-spacing: -0.06em;
		}

		.memory-board {
			display: grid;
			gap: 10px;
			margin-top: 20px;
		}

		.memory-board[data-size="8"] {
			grid-template-columns: repeat(4, minmax(0, 1fr));
		}

		.memory-board[data-size="12"] {
			grid-template-columns: repeat(4, minmax(0, 1fr));
		}

		.memory-board[data-size="16"] {
			grid-template-columns: repeat(4, minmax(0, 1fr));
		}

		.memory-card-button {
			position: relative;
			aspect-ratio: 1 / 1;
			border: 0;
			border-radius: 18px;
			background: transparent;
			cursor: pointer;
			perspective: 900px;
			font-family: inherit;
			padding: 0;
		}

		.memory-card-button:disabled {
			cursor: default;
		}

		.memory-card-inner {
			position: absolute;
			inset: 0;
			border-radius: 18px;
			transform-style: preserve-3d;
			transition: transform 0.28s ease;
			box-shadow: 0 12px 26px rgba(15, 23, 42, 0.09);
		}

		.memory-card-button.is-open .memory-card-inner,
		.memory-card-button.is-matched .memory-card-inner {
			transform: rotateY(180deg);
		}

		.memory-card-face {
			position: absolute;
			inset: 0;
			display: flex;
			align-items: center;
			justify-content: center;
			border-radius: 18px;
			backface-visibility: hidden;
			-webkit-backface-visibility: hidden;
			border: 1px solid #dbe7e2;
		}

		.memory-card-front {
			background: linear-gradient(145deg, #21a67a, #0f766e);
			color: #fff;
			font-size: 26px;
			font-weight: 900;
		}

		.memory-card-back {
			transform: rotateY(180deg);
			background: #ffffff;
			font-size: 38px;
		}

		.memory-card-button.is-matched .memory-card-back {
			background: #eefaf5;
			border-color: #21a67a;
		}

		.memory-guide-box {
			position: sticky;
			top: 88px;
			border: 1px solid #dbe7e2;
			border-radius: 22px;
			background: linear-gradient(180deg, #ffffff, #f7fcfa);
			box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
			padding: 22px;
		}

		.memory-result-message {
			margin-top: 16px;
			padding: 16px;
			border-radius: 16px;
			background: #eefaf5;
			border: 1px solid #ccefe0;
			color: #14532d;
			font-size: 15px;
			font-weight: 800;
			letter-spacing: -0.02em;
			line-height: 1.65;
		}

		.memory-result-detail {
			margin-top: 10px;
			color: #64748b;
			font-size: 14px;
			line-height: 1.7;
		}

		.memory-record-list {
			display: grid;
			gap: 10px;
			margin-top: 16px;
		}

		.memory-record-item {
			padding: 14px;
			border-radius: 16px;
			border: 1px solid #dbe7e2;
			background: #fff;
		}

		.memory-record-top {
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 10px;
		}

		.memory-record-title {
			font-size: 14px;
			font-weight: 900;
			color: #102a22;
		}

		.memory-record-meta {
			margin-top: 6px;
			font-size: 13px;
			color: #64748b;
			line-height: 1.6;
		}

		.memory-record-delete {
			border: 0;
			border-radius: 999px;
			padding: 6px 10px;
			background: #fee2e2;
			color: #991b1b;
			font-size: 12px;
			font-weight: 900;
			cursor: pointer;
		}

		.memory-info-grid {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 12px;
			margin-top: 18px;
		}

		.memory-info-item {
			padding: 17px;
			border: 1px solid #dbe7e2;
			border-radius: 18px;
			background: #ffffff;
		}

		.memory-info-icon {
			width: 46px;
			height: 46px;
			border-radius: 16px;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			background: #eefaf5;
			font-size: 25px;
			margin-bottom: 10px;
		}

		.memory-info-item strong {
			display: block;
			font-size: 16px;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.memory-info-item p {
			margin: 7px 0 0;
			font-size: 14px;
			line-height: 1.7;
			color: #64748b;
		}

		.memory-related-grid {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 12px;
			margin-top: 18px;
		}

		.memory-related-card {
			display: block;
			padding: 17px;
			border: 1px solid #dbe7e2;
			border-radius: 18px;
			background: #ffffff;
			text-decoration: none;
			transition: 0.16s ease;
		}

		.memory-related-card:hover {
			border-color: #21a67a;
			background: #f7fcfa;
			transform: translateY(-2px);
		}

		.memory-related-card strong {
			display: block;
			font-size: 16px;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.memory-related-card span {
			display: block;
			margin-top: 6px;
			font-size: 14px;
			line-height: 1.65;
			color: #64748b;
		}

		.memory-faq {
			display: grid;
			gap: 10px;
			margin-top: 16px;
		}

		.memory-faq details {
			border: 1px solid #dbe7e2;
			border-radius: 16px;
			padding: 15px;
			background: #fff;
		}

		.memory-faq summary {
			cursor: pointer;
			font-weight: 900;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.memory-faq p {
			margin: 10px 0 0;
			color: #64748b;
			font-size: 14px;
			line-height: 1.7;
		}

		.memory-warning {
			margin-top: 18px;
			padding: 16px;
			border-radius: 16px;
			background: #fffbeb;
			border: 1px solid #fde68a;
			color: #92400e;
			font-size: 14px;
			line-height: 1.7;
		}

		@media (max-width: 980px) {
			.memory-game-grid {
				grid-template-columns: 1fr;
			}

			.memory-guide-box {
				position: static;
			}
		}

		@media (max-width: 720px) {
			.memory-game-toolbar,
			.memory-game-status,
			.memory-info-grid,
			.memory-related-grid {
				grid-template-columns: 1fr;
			}

			.memory-board[data-size="8"],
			.memory-board[data-size="12"],
			.memory-board[data-size="16"] {
				grid-template-columns: repeat(4, minmax(0, 1fr));
				gap: 8px;
			}

			.memory-card-inner,
			.memory-card-face {
				border-radius: 14px;
			}

			.memory-card-back {
				font-size: 30px;
			}
		}

		@media (max-width: 420px) {
			.memory-card-back {
				font-size: 26px;
			}
		}

/* ===== from 6bdb5cd2-d00c-4a52-b57f-88fad0788c45.jsp ===== */
.number-memory-grid {
			display: grid;
			grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
			gap: 18px;
			align-items: start;
			margin-top: 24px;
		}

		.number-memory-panel {
			position: relative;
			overflow: hidden;
		}

		.number-memory-panel:before {
			content: "";
			position: absolute;
			right: -70px;
			top: -70px;
			width: 180px;
			height: 180px;
			border-radius: 999px;
			background: rgba(33, 166, 122, 0.08);
			pointer-events: none;
		}

		.number-memory-toolbar {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 10px;
			margin-top: 18px;
		}

		.number-field {
			display: flex;
			flex-direction: column;
			gap: 6px;
		}

		.number-field label {
			font-size: 13px;
			font-weight: 900;
			color: #334155;
			letter-spacing: -0.03em;
		}

		.number-field select {
			width: 100%;
			border: 1px solid #dbe7e2;
			border-radius: 14px;
			padding: 12px 13px;
			font-size: 14px;
			font-family: inherit;
			color: #1e293b;
			background: #fff;
		}

		.number-memory-actions {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 8px;
			margin-top: 14px;
		}

		.number-btn {
			border: 0;
			border-radius: 14px;
			padding: 13px 14px;
			font-weight: 900;
			cursor: pointer;
			letter-spacing: -0.03em;
			font-family: inherit;
			transition: 0.16s ease;
		}

		.number-btn:hover {
			transform: translateY(-1px);
		}

		.number-btn.primary {
			background: #21a67a;
			color: #fff;
		}

		.number-btn.light {
			background: #eefaf5;
			color: #0f513d;
			border: 1px solid #ccefe0;
		}

		.number-btn.danger {
			background: #fee2e2;
			color: #991b1b;
		}

		.number-memory-status {
			display: grid;
			grid-template-columns: repeat(4, minmax(0, 1fr));
			gap: 10px;
			margin-top: 18px;
		}

		.number-stat-card {
			padding: 14px;
			border-radius: 16px;
			border: 1px solid #dbe7e2;
			background: #f8fafc;
		}

		.number-stat-card span {
			display: block;
			font-size: 12px;
			font-weight: 900;
			color: #64748b;
		}

		.number-stat-card strong {
			display: block;
			margin-top: 5px;
			font-size: 22px;
			color: #0f513d;
			letter-spacing: -0.04em;
		}

		.number-stage-box {
			margin-top: 18px;
			padding: 22px;
			border-radius: 22px;
			border: 1px solid #dbe7e2;
			background: linear-gradient(135deg, #f8fffc 0%, #f8fafc 100%);
			text-align: center;
		}

		.number-guide-text {
			margin: 0 0 16px;
			font-size: 15px;
			font-weight: 800;
			color: #475569;
			line-height: 1.65;
		}

		.number-display {
			display: flex;
			justify-content: center;
			align-items: center;
			min-height: 110px;
			padding: 18px;
			border-radius: 20px;
			background: #ffffff;
			border: 1px solid #dbe7e2;
			box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.7);
			font-size: 44px;
			font-weight: 1000;
			letter-spacing: 0.22em;
			color: #0f513d;
			word-break: break-all;
		}

		.number-display.is-hidden {
			letter-spacing: 0.08em;
			font-size: 24px;
			color: #64748b;
		}

		.number-input-line {
			display: flex;
			justify-content: center;
			gap: 8px;
			margin-top: 16px;
			min-height: 44px;
			flex-wrap: wrap;
		}

		.number-input-pill {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 42px;
			height: 42px;
			border-radius: 14px;
			background: #0f513d;
			color: #fff;
			font-size: 22px;
			font-weight: 1000;
		}

		.number-keypad {
			display: grid;
			grid-template-columns: repeat(5, minmax(0, 1fr));
			gap: 8px;
			margin-top: 16px;
		}

		.number-key {
			min-height: 48px;
			border-radius: 15px;
			border: 1px solid #ccefe0;
			background: #ffffff;
			color: #0f513d;
			font-size: 22px;
			font-weight: 1000;
			font-family: inherit;
			cursor: pointer;
			transition: 0.14s ease;
		}

		.number-key:hover {
			background: #eefaf5;
			transform: translateY(-1px);
		}

		.number-key.util {
			font-size: 14px;
			letter-spacing: -0.03em;
			background: #f8fafc;
			color: #334155;
		}

		.number-key.submit {
			background: #21a67a;
			color: #fff;
			border-color: #21a67a;
			grid-column: span 2;
			font-size: 15px;
			letter-spacing: -0.03em;
		}

		.number-message {
			margin-top: 14px;
			padding: 13px 14px;
			border-radius: 16px;
			background: #f8fafc;
			border: 1px solid #dbe7e2;
			font-weight: 800;
			color: #475569;
			line-height: 1.65;
		}

		.number-message.success {
			background: #ecfdf5;
			border-color: #bbf7d0;
			color: #166534;
		}

		.number-message.fail {
			background: #fff7ed;
			border-color: #fed7aa;
			color: #9a3412;
		}

		.number-result-card {
			margin-top: 18px;
			padding: 18px;
			border-radius: 20px;
			background: #ecfdf5;
			border: 1px solid #bbf7d0;
			display: none;
		}

		.number-result-card.is-show {
			display: block;
		}

		.number-result-card h3 {
			margin: 0 0 8px;
			font-size: 19px;
			color: #14532d;
			letter-spacing: -0.04em;
		}

		.number-result-card p {
			margin: 0;
			color: #166534;
			font-weight: 800;
			line-height: 1.65;
		}

		.number-side-card + .number-side-card {
			margin-top: 14px;
		}

		.number-record-list {
			display: flex;
			flex-direction: column;
			gap: 8px;
			margin-top: 12px;
		}

		.number-record-item {
			padding: 12px 13px;
			border-radius: 16px;
			background: #f8fafc;
			border: 1px solid #dbe7e2;
		}

		.number-record-item strong {
			display: block;
			font-size: 14px;
			color: #0f513d;
		}

		.number-record-item span {
			display: block;
			margin-top: 4px;
			font-size: 13px;
			color: #64748b;
			line-height: 1.55;
		}

		.number-tip-list {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 12px;
			margin-top: 16px;
		}

		.number-tip-item {
			padding: 16px;
			border-radius: 18px;
			background: #f8fafc;
			border: 1px solid #dbe7e2;
		}

		.number-tip-item strong {
			display: block;
			margin-bottom: 7px;
			color: #0f513d;
			font-size: 15px;
		}

		.number-tip-item p {
			margin: 0;
			color: #475569;
			font-size: 14px;
			line-height: 1.65;
		}

		.number-related-grid {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 12px;
			margin-top: 16px;
		}

		.number-related-card {
			display: block;
			padding: 17px;
			border-radius: 18px;
			border: 1px solid #dbe7e2;
			background: #ffffff;
			text-decoration: none;
			transition: transform 0.15s ease, box-shadow 0.15s ease;
		}

		.number-related-card:hover {
			transform: translateY(-2px);
			box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
		}

		.number-related-card strong {
			display: block;
			margin-bottom: 7px;
			color: #0f513d;
			font-size: 15px;
			line-height: 1.45;
		}

		.number-related-card span {
			display: block;
			font-size: 14px;
			line-height: 1.65;
			color: #475569;
		}

		@media (max-width: 980px) {
			.number-memory-grid {
				grid-template-columns: 1fr;
			}

			.number-tip-list,
			.number-related-grid {
				grid-template-columns: 1fr;
			}
		}

		@media (max-width: 720px) {
			.number-memory-toolbar,
			.number-memory-status {
				grid-template-columns: repeat(2, minmax(0, 1fr));
			}

			.number-display {
				min-height: 92px;
				font-size: 34px;
				letter-spacing: 0.14em;
			}

			.number-keypad {
				grid-template-columns: repeat(5, minmax(0, 1fr));
			}
		}

		@media (max-width: 520px) {
			.number-memory-toolbar,
			.number-memory-actions,
			.number-memory-status {
				grid-template-columns: 1fr;
			}

			.number-key {
				min-height: 44px;
				font-size: 19px;
			}
		}

/* ===== from 67aec2fc-5be9-466a-9fed-728c9c259260.jsp ===== */
.memory-grid {
			display: grid;
			grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
			gap: 18px;
			align-items: start;
		}

		.memory-check-list {
			display: grid;
			gap: 10px;
			margin-top: 18px;
		}

		.memory-check-item {
			display: flex;
			gap: 12px;
			align-items: flex-start;
			padding: 15px;
			border: 1px solid #dbe7e2;
			background: #ffffff;
			border-radius: 16px;
			cursor: pointer;
			transition: 0.18s ease;
		}

		.memory-check-item:hover {
			border-color: #21a67a;
			background: #f7fcfa;
			transform: translateY(-1px);
		}

		.memory-check-item input {
			width: 20px;
			height: 20px;
			margin-top: 2px;
			accent-color: #21a67a;
			flex: 0 0 auto;
		}

		.memory-check-text strong {
			display: block;
			font-size: 15px;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.memory-check-text span {
			display: block;
			margin-top: 3px;
			font-size: 13px;
			color: #64748b;
		}

		.memory-result-box {
			position: sticky;
			top: 88px;
			background: linear-gradient(180deg, #ffffff, #f7fcfa);
			border: 1px solid #dbe7e2;
			border-radius: 22px;
			padding: 22px;
			box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
		}

		.memory-score {
			display: flex;
			align-items: flex-end;
			gap: 8px;
			margin-top: 16px;
			color: #0f513d;
		}

		.memory-score strong {
			font-size: 46px;
			line-height: 1;
			letter-spacing: -0.06em;
		}

		.memory-score span {
			font-size: 15px;
			font-weight: 800;
			padding-bottom: 7px;
		}

		.memory-result-message {
			margin-top: 16px;
			padding: 16px;
			border-radius: 16px;
			background: #eefaf5;
			border: 1px solid #ccefe0;
			color: #14532d;
			font-size: 15px;
			font-weight: 700;
			letter-spacing: -0.02em;
		}

		.memory-result-detail {
			margin-top: 10px;
			color: #64748b;
			font-size: 14px;
		}

		.memory-actions {
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 8px;
			margin-top: 16px;
		}

		.memory-btn {
			border: 0;
			border-radius: 14px;
			padding: 12px 13px;
			font-weight: 900;
			cursor: pointer;
			letter-spacing: -0.03em;
		}

		.memory-btn.primary {
			background: #21a67a;
			color: #fff;
		}

		.memory-btn.light {
			background: #eefaf5;
			color: #0f513d;
			border: 1px solid #ccefe0;
		}

		.memory-train-grid {
			display: grid;
			grid-template-columns: repeat(3, minmax(0, 1fr));
			gap: 12px;
			margin-top: 18px;
		}

		.memory-train-card {
			border: 1px solid #dbe7e2;
			border-radius: 18px;
			padding: 17px;
			background: #fff;
		}

		.memory-train-card .emoji {
			font-size: 28px;
			display: block;
			margin-bottom: 8px;
		}

		.memory-train-card strong {
			display: block;
			font-size: 16px;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.memory-train-card p {
			margin: 7px 0 0;
			color: #64748b;
			font-size: 14px;
		}

		.memory-note-form {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 12px;
			margin-top: 18px;
		}

		.memory-field {
			display: flex;
			flex-direction: column;
			gap: 6px;
		}

		.memory-field.full {
			grid-column: 1 / -1;
		}

		.memory-field label {
			font-size: 13px;
			font-weight: 900;
			color: #334155;
		}

		.memory-field input,
		.memory-field select,
		.memory-field textarea {
			width: 100%;
			border: 1px solid #dbe7e2;
			border-radius: 14px;
			padding: 12px 13px;
			font-size: 14px;
			font-family: inherit;
			color: #1e293b;
			background: #fff;
		}

		.memory-field textarea {
			min-height: 92px;
			resize: vertical;
		}

		.memory-note-list {
			display: grid;
			gap: 10px;
			margin-top: 16px;
		}

		.memory-note-item {
			border: 1px solid #dbe7e2;
			border-radius: 16px;
			background: #f8fafc;
			padding: 14px;
		}

		.memory-note-top {
			display: flex;
			justify-content: space-between;
			gap: 10px;
			align-items: center;
			margin-bottom: 6px;
		}

		.memory-note-date {
			font-weight: 900;
			color: #0f513d;
		}

		.memory-note-delete {
			border: 0;
			background: #fee2e2;
			color: #991b1b;
			border-radius: 999px;
			padding: 5px 9px;
			font-size: 12px;
			font-weight: 900;
			cursor: pointer;
		}

		.memory-note-meta {
			font-size: 13px;
			color: #64748b;
			margin-bottom: 6px;
		}

		.memory-note-content {
			font-size: 14px;
			color: #334155;
			white-space: pre-wrap;
		}

		.memory-info-list {
			display: grid;
			gap: 12px;
			margin-top: 18px;
		}

		.memory-info-item {
			display: flex;
			gap: 12px;
			padding: 15px;
			border-radius: 16px;
			background: #f8fafc;
			border: 1px solid #e2e8f0;
		}

		.memory-info-icon {
			width: 36px;
			height: 36px;
			border-radius: 13px;
			background: #eefaf5;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			flex: 0 0 auto;
		}

		.memory-info-item strong {
			display: block;
			letter-spacing: -0.03em;
			color: #102a22;
		}

		.memory-info-item p {
			margin: 3px 0 0;
			color: #64748b;
			font-size: 14px;
		}

		.memory-faq {
			display: grid;
			gap: 10px;
			margin-top: 18px;
		}

		.memory-faq details {
			border: 1px solid #dbe7e2;
			border-radius: 16px;
			padding: 15px;
			background: #fff;
		}

		.memory-faq summary {
			cursor: pointer;
			font-weight: 900;
			color: #102a22;
			letter-spacing: -0.03em;
		}

		.memory-faq p {
			margin: 10px 0 0;
			color: #64748b;
			font-size: 14px;
		}

		.memory-warning {
			background: #fff7ed;
			border: 1px solid #fed7aa;
			color: #7c2d12;
			border-radius: 18px;
			padding: 16px;
			font-size: 14px;
			margin-top: 18px;
		}

		.memory-danger {
			background: #fef2f2;
			border: 1px solid #fecaca;
			color: #7f1d1d;
			border-radius: 18px;
			padding: 16px;
			font-size: 14px;
			margin-top: 12px;
		}

		@media (max-width: 900px) {
			.memory-grid {
				grid-template-columns: 1fr;
			}

			.memory-result-box {
				position: static;
			}

			.memory-train-grid {
				grid-template-columns: 1fr;
			}
		}

		@media (max-width: 620px) {
			.memory-note-form {
				grid-template-columns: 1fr;
			}

			.memory-actions {
				grid-template-columns: 1fr;
			}
		}


/* ===== Senior accessibility common ===== */
:root {
	--senior-font-scale: 1;
	--senior-touch-scale: 1;
}

body.senior-font-large {
	--senior-font-scale: 1.12;
	--senior-touch-scale: 1.06;
}

body.senior-font-xlarge {
	--senior-font-scale: 1.24;
	--senior-touch-scale: 1.12;
}

/* keep common health text readable without breaking layout */
.health-hero h1,
.health-hero-title {
	font-size: clamp(calc(30px * var(--senior-font-scale)), 4.4vw, calc(46px * var(--senior-font-scale)));
	line-height: 1.22;
}

.health-hero p,
.health-section-desc,
.health-desc,
.health-card p,
.health-tool-card p,
.memory-result-detail,
.med-history-meta {
	font-size: calc(15px * var(--senior-font-scale));
	line-height: 1.78;
}

.health-section-title,
.health-card-title {
	font-size: calc(24px * var(--senior-font-scale));
	line-height: 1.35;
}

.health-tool-card h3 {
	font-size: calc(21px * var(--senior-font-scale));
}

.health-quick a,
.health-floating-nav a,
.health-tool-tag,
.health-hero-tags span {
	font-size: calc(13px * var(--senior-font-scale));
}

.health-tool-card,
.health-card {
	overflow-wrap: anywhere;
}

.senior-font-control {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 16px 0 22px;
	padding: 13px 14px;
	border-radius: 18px;
	background: #f8fafc;
	border: 1px solid #dbe7e2;
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.senior-font-control-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-right: 4px;
	font-size: 14px;
	font-weight: 900;
	color: #102a22;
	letter-spacing: -0.03em;
}

.senior-font-btn {
	min-height: 44px;
	padding: 0 15px;
	border-radius: 999px;
	border: 1px solid #cbd5e1;
	background: #ffffff;
	color: #334155;
	font-size: 14px;
	font-weight: 900;
	font-family: inherit;
	cursor: pointer;
	transition: 0.16s ease;
}

.senior-font-btn:hover {
	transform: translateY(-1px);
	border-color: #21a67a;
}

.senior-font-btn.is-active {
	background: #21a67a;
	border-color: #21a67a;
	color: #ffffff;
}

/* Larger tap targets for senior pages */
button,
.health-btn,
.memory-btn,
.memory-game-btn,
.number-btn,
.med-btn {
	min-height: calc(44px * var(--senior-touch-scale));
}

select,
input,
textarea {
	font-size: max(16px, calc(14px * var(--senior-font-scale)));
}

/* Memory card game accessibility */
.memory-game-card {
	min-height: calc(82px * var(--senior-touch-scale));
	font-size: calc(31px * var(--senior-font-scale));
}

.memory-stat-card strong,
.number-stat-card strong {
	font-size: calc(22px * var(--senior-font-scale));
}

.memory-game-message,
.number-message,
.memory-result-message,
.med-summary-message {
	font-size: calc(15px * var(--senior-font-scale));
	line-height: 1.7;
}

/* Number memory game accessibility */
.number-display {
	font-size: clamp(calc(36px * var(--senior-font-scale)), 8vw, calc(62px * var(--senior-font-scale)));
	line-height: 1.25;
}

.number-key {
	min-height: calc(58px * var(--senior-touch-scale));
	font-size: calc(22px * var(--senior-font-scale));
}

/* Checklist and medicine cards */
.memory-check-text strong,
.med-time-card strong {
	font-size: calc(16px * var(--senior-font-scale));
	line-height: 1.55;
}

.memory-check-text span,
.med-time-card span {
	font-size: calc(13px * var(--senior-font-scale));
	line-height: 1.6;
}

.memory-check-item,
.med-time-card {
	gap: 14px;
}

/* Mobile guard rails */
@media (max-width: 720px) {
	.senior-font-control {
		position: relative;
		margin-left: 0;
		margin-right: 0;
	}

	.senior-font-control-label {
		flex: 1 0 100%;
	}

	.senior-font-btn {
		flex: 1 1 calc(33.333% - 8px);
		padding: 0 8px;
		font-size: 14px;
	}

	body.senior-font-xlarge .health-main-grid,
	body.senior-font-xlarge .memory-game-toolbar,
	body.senior-font-xlarge .number-memory-toolbar,
	body.senior-font-xlarge .med-time-grid {
		grid-template-columns: 1fr;
	}

	body.senior-font-xlarge .health-quick {
		grid-template-columns: 1fr;
	}

	.memory-game-card {
		min-height: calc(72px * var(--senior-touch-scale));
		font-size: calc(27px * var(--senior-font-scale));
	}
}

@media (max-width: 420px) {
	body.senior-font-xlarge {
		--senior-font-scale: 1.18;
		--senior-touch-scale: 1.08;
	}

	.senior-font-btn {
		flex: 1 1 100%;
	}
}
