.ihm-public-shell {
	--ihm-blue: #082b4c;
	--ihm-red: #b92332;
	--ihm-border: #d9e2ea;
	--ihm-bg: #f4f7fa;
	max-width: 1160px;
	margin: 24px auto;
	color: #172b3a;
}

.ihm-public-grid,
.ihm-profile-grid,
.ihm-public-columns,
.ihm-public-fields {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 14px;
}

.ihm-public-card {
	background: #fff;
	border: 1px solid var(--ihm-border, #d9e2ea);
	border-radius: 14px;
	box-shadow: 0 5px 20px rgba(8, 43, 76, 0.07);
	margin: 16px 0;
	padding: 22px;
}

.ihm-public-link {
	color: var(--ihm-blue);
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}

.ihm-public-notice {
	background: #f4f7fa;
	border-left: 4px solid #082b4c;
	margin: 18px 0;
	padding: 16px;
}

.ihm-public-form label,
.ihm-attendance-form > label {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-weight: 600;
}

.ihm-public-form input,
.ihm-public-form select,
.ihm-attendance-form input,
.ihm-attendance-form select {
	border: 1px solid #b9c8d4;
	border-radius: 7px;
	padding: 9px;
	width: 100%;
}

.ihm-public-button {
	background: var(--ihm-blue);
	border: 0;
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	display: inline-block;
	margin-top: 16px;
	padding: 11px 18px;
}

.ihm-profile-grid {
	background: var(--ihm-bg);
	border-radius: 9px;
	margin: 12px 0;
	padding: 14px;
}

.ihm-public-columns ul {
	margin-left: 18px;
}

.ihm-attendance-list {
	display: grid;
	gap: 8px;
	margin-top: 14px;
}

.ihm-attendance-row {
	align-items: center;
	background: var(--ihm-bg);
	border-radius: 8px;
	display: grid;
	gap: 8px;
	grid-template-columns: minmax(180px, 1fr) 150px minmax(160px, 1fr);
	padding: 10px;
}

.ihm-attendance-row small {
	display: block;
	margin-top: 3px;
}

.ihm-notice-item {
	border-top: 1px solid var(--ihm-border);
	padding: 12px 0;
}

@media (max-width: 700px) {
	.ihm-public-shell {
		margin: 12px;
	}

	.ihm-attendance-row {
		grid-template-columns: 1fr;
	}
}
