/*
 * Ivecon Matching - フロントエンド共通スタイル
 * ダッシュボード・案件検索・登録フォーム・チャット等、全ページに共通適用します。
 * カラー: 姉妹サイト「ココミル」と同じティール系をプライマリカラーに、
 *         職種の系統ごとに色分けしたタグ/バッジを使用。
 *
 * v1.48.0: 会員画面(企業側・イベントコンパニオン側)の見た目をココミルに揃えた。
 * 2サイトを行き来して運用されるため、同じ操作は同じ色・同じ形で出す。
 * 旧イベコンブルーは #389DD1 / #15709F / #E8F4FB / #2F7EC9。
 */

/* ---------- 変数定義 ---------- */
:root {
	--ivc-primary: #3ec9b0;
	--ivc-primary-dark: #2a9d8a;
	--ivc-primary-light: #e6f7f4;
	--ivc-accent-green: #4caf50;

	/* ボタンの色。サイトのヘッダー・検索ボタンと同じブルーにそろえる(v1.58.0) */
	--ivc-btn-primary-bg: #389dd1;
	--ivc-btn-primary-bg-hover: #2c80ad;

	--ivc-text: #2f3a3a;
	--ivc-text-light: #74807e;
	--ivc-bg: #ffffff;
	--ivc-bg-soft: #f4f7f6;
	--ivc-border: #e3e9e8;

	--ivc-radius-lg: 16px;
	--ivc-radius-md: 10px;
	--ivc-radius-sm: 6px;
	--ivc-radius-pill: 999px;

	--ivc-shadow: 0 2px 14px rgba(30, 40, 40, 0.07);
	--ivc-shadow-hover: 0 8px 22px rgba(30, 40, 40, 0.12);

	--ivc-error-bg: #fdecec;
	--ivc-error-text: #d6455a;
	--ivc-success-bg: #e9f8ee;
	--ivc-success-text: #2a9d4f;

	--ivc-tag-pink-bg: #ffe3ea;
	--ivc-tag-pink-text: #d6336c;
	--ivc-tag-blue-bg: #e0f0ff;
	--ivc-tag-blue-text: #1c7ed6;
	--ivc-tag-green-bg: #e2f8e6;
	--ivc-tag-green-text: #2b8a3e;

	--ivc-footer-bg: #20282a;
	--ivc-footer-text: #c7d1d0;
}

/* ---------- 共通レイアウト ---------- */
.ivc-dashboard,
.ivc-shift-search,
.ivc-chat-thread,
.ivc-auth-wrap {
	max-width: 1000px;
	margin: 0 auto;
	font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	line-height: 1.7;
	color: var(--ivc-text);
	font-size: 16px;
}
.ivc-auth-wrap {
	max-width: 460px;
}

/*
 * 案件詳細ページの本文まわり。
 *
 * このテンプレートはテーマのコンテナの外に出力されるため、
 * テーマの body { line-height: 21px } をそのまま受け継いでいた。
 * 単位つきの行間は子要素にもそのままの px で伝わるので、
 * 見出しのように文字が大きい箇所は行が重なってしまう(スマホで顕著)。
 * 文字サイズも14pxのままで、表の項目名が10px台まで縮んでいた。
 * ここで単位なしの行間と基準の文字サイズを与えて、両方まとめて直す。
 */
.ivc-shift-single {
	font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	line-height: 1.7;
	color: var(--ivc-text);
	font-size: 16px;
}
.ivc-shift-single h1,
.ivc-shift-single h2,
.ivc-shift-single h3,
.ivc-shift-single h4 { line-height: 1.45; }
.ivc-dashboard *,
.ivc-shift-search *,
.ivc-chat-thread *,
.ivc-auth-wrap *,
.ivc-card * {
	box-sizing: border-box;
}

.ivc-card {
	background: var(--ivc-bg);
	border: 1px solid var(--ivc-border);
	border-radius: var(--ivc-radius-lg);
	box-shadow: var(--ivc-shadow);
	padding: 26px 28px;
}
.ivc-auth-wrap .ivc-card {
	padding: 34px 30px;
}

.ivc-section-title {
	font-size: 1.2em;
	margin: 40px 0 16px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--ivc-border);
	color: var(--ivc-text);
}
.ivc-section-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 40px 0 16px;
	flex-wrap: wrap;
	gap: 10px;
}
.ivc-section-head .ivc-section-title {
	margin: 0;
	border-bottom: none;
	padding-bottom: 0;
}
.ivc-form-title {
	font-size: 1.3em;
	text-align: center;
	margin: 0 0 22px;
}
.ivc-link {
	color: var(--ivc-primary-dark);
	font-weight: 600;
	text-decoration: none;
}
.ivc-link:hover {
	text-decoration: underline;
}

/* ---------- 通知・トースト ---------- */
.ivc-notice {
	padding: 14px 18px;
	border-radius: var(--ivc-radius-md);
	margin-bottom: 18px;
	font-size: 0.92em;
	font-weight: 600;
}
.ivc-notice-success { background: var(--ivc-success-bg); color: var(--ivc-success-text); }
.ivc-notice-error { background: var(--ivc-error-bg); color: var(--ivc-error-text); }

/* ---------- ボタン ---------- */
.ivc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 12px 24px;
	border-radius: var(--ivc-radius-pill);
	border: none;
	font-size: 0.95em;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
	line-height: 1.4;
	transition: filter 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.ivc-btn-primary {
	background: var(--ivc-btn-primary-bg);
	color: #fff;
	box-shadow: 0 4px 14px rgba(56, 157, 209, 0.32);
}
.ivc-btn-primary:hover { background: var(--ivc-btn-primary-bg-hover); }
.ivc-btn-outline {
	background: #fff;
	color: var(--ivc-primary-dark);
	border: 2px solid var(--ivc-primary);
}
.ivc-btn-outline:hover { background: var(--ivc-primary-light); }
.ivc-btn-ghost {
	background: var(--ivc-bg-soft);
	color: var(--ivc-text);
}
.ivc-btn-ghost:hover { background: var(--ivc-border); }
.ivc-btn-block { width: 100%; }
.ivc-btn-small { padding: 7px 16px; font-size: 0.84em; }

/* ---------- フォーム ---------- */
.ivc-form { margin-bottom: 8px; }
.ivc-field { margin-bottom: 18px; }
.ivc-field-row { display: flex; gap: 16px; flex-wrap: wrap; }
/* hidden 属性は display 指定に負けるので、明示的に消す(v1.64.1) */
.ivc-field-row[hidden], .ivc-field[hidden] { display: none; }
.ivc-field-row .ivc-field { flex: 1 1 200px; margin-bottom: 18px; }
.ivc-field-row-checkbox { align-items: center; gap: 10px 14px; }
.ivc-field label,
.ivc-field-row > label {
	display: block;
	font-weight: 700;
	font-size: 0.88em;
	margin-bottom: 6px;
	color: var(--ivc-text);
}
.ivc-required {
	color: var(--ivc-error-text);
	font-size: 0.72em;
	font-weight: 700;
	margin-left: 6px;
	vertical-align: middle;
}
.ivc-form-hint { font-size: 0.82em; color: var(--ivc-text-light); margin: 6px 0 0; }
.ivc-form-footnote { text-align: center; font-size: 0.88em; margin-top: 20px; color: var(--ivc-text-light); }

.ivc-input {
	width: 100%;
	padding: 12px 14px;
	border-radius: var(--ivc-radius-md);
	border: 1px solid var(--ivc-border);
	background: var(--ivc-bg-soft);
	font-size: 0.95em;
	color: var(--ivc-text);
	transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
	font-family: inherit;
}
.ivc-input:focus {
	outline: none;
	border-color: var(--ivc-primary);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(62, 201, 176, 0.16);
}
textarea.ivc-input { resize: vertical; min-height: 90px; }
.ivc-input-small { max-width: 170px; padding: 8px 12px; }

.ivc-input-wrap { position: relative; }
.ivc-input-wrap-icon .ivc-input { padding-left: 42px; }
.ivc-input-icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--ivc-text-light);
	display: flex;
	align-items: center;
	pointer-events: none;
	font-weight: 700;
}

.ivc-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--ivc-bg-soft);
	border: 1px solid var(--ivc-border);
	padding: 8px 14px;
	border-radius: var(--ivc-radius-pill);
	cursor: pointer;
	font-size: 0.88em;
	font-weight: 600;
}
.ivc-checkbox input { accent-color: var(--ivc-primary); }

.ivc-role-picker { display: flex; gap: 12px; margin-bottom: 22px; flex-wrap: wrap; }
.ivc-role-option {
	flex: 1 1 220px;
	display: flex;
	gap: 10px;
	align-items: flex-start;
	border: 2px solid var(--ivc-border);
	border-radius: var(--ivc-radius-md);
	padding: 14px 16px;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s;
}
.ivc-role-option:has(input:checked) {
	border-color: var(--ivc-primary);
	background: var(--ivc-primary-light);
}
.ivc-role-option input { margin-top: 4px; accent-color: var(--ivc-primary); }
.ivc-role-option-body strong { display: block; font-size: 0.92em; margin-bottom: 2px; }
.ivc-role-option-body small { color: var(--ivc-text-light); font-size: 0.82em; }

/* ---------- テーブル ---------- */
.ivc-table-wrap {
	overflow-x: auto;
	margin-bottom: 32px;
	border-radius: var(--ivc-radius-md);
	border: 1px solid var(--ivc-border);
}
.ivc-table { width: 100%; border-collapse: collapse; background: var(--ivc-bg); }
.ivc-table th,
.ivc-table td {
	padding: 12px 14px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--ivc-border);
	font-size: 0.92em;
}
.ivc-table th { background: var(--ivc-bg-soft); font-weight: 700; color: var(--ivc-text-light); white-space: nowrap; }
.ivc-table tr:last-child td { border-bottom: none; }
.ivc-entry-actions > * { margin-bottom: 6px; }
.ivc-inline-form { display: inline-block; }
/*
 * コンパニオンの欄。氏名の行だけを横並びにし、
 * 「プロフィールを見る」で開く中身は行の下に広がるようにする。
 * (セル全体を flex にすると、開いた中身が細い列に押し込まれて崩れる)
 */
.ivc-worker-cell-head { display: flex; align-items: center; gap: 8px; }
.ivc-worker-cell-head img { border-radius: 6px; }

.ivc-inline-details {
	margin-top: 8px;
	border: 1px dashed var(--ivc-border);
	border-radius: var(--ivc-radius-sm);
	padding: 8px 12px;
	background: var(--ivc-bg-soft);
}
.ivc-inline-details summary { cursor: pointer; font-weight: 700; font-size: 0.85em; color: var(--ivc-primary-dark); }
.ivc-inline-detail-form { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
.ivc-inline-detail-form label { font-size: 0.85em; display: block; font-weight: 700; }

.ivc-billing-summary {
	margin-top: 10px;
	padding: 12px 14px;
	background: var(--ivc-primary-light);
	border-radius: var(--ivc-radius-sm);
	font-size: 0.88em;
}
.ivc-billing-summary p { margin: 3px 0; }

/* ---------- タグ・ステータスバッジ ---------- */
.ivc-tag-group { display: flex; flex-wrap: wrap; gap: 6px; }
.ivc-tag {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 12px;
	border-radius: var(--ivc-radius-pill);
	font-size: 0.78em;
	font-weight: 700;
	white-space: nowrap;
}
.ivc-tag-icon { flex-shrink: 0; }
.ivc-tag-pink { background: var(--ivc-tag-pink-bg); color: var(--ivc-tag-pink-text); }
.ivc-tag-blue { background: var(--ivc-tag-blue-bg); color: var(--ivc-tag-blue-text); }
.ivc-tag-green { background: var(--ivc-tag-green-bg); color: var(--ivc-tag-green-text); }
.ivc-tag-default { background: var(--ivc-bg-soft); color: var(--ivc-text-light); }
.ivc-tag-outline { background: #fff; border: 1px solid var(--ivc-border); color: var(--ivc-text-light); }
.ivc-tag-placeholder { font-size: 0.82em; color: var(--ivc-text-light); }

.ivc-status-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: var(--ivc-radius-pill);
	font-size: 0.8em;
	font-weight: 700;
	white-space: nowrap;
}
.ivc-status-entried { background: #eef2f7; color: #5b6b7a; }
.ivc-status-chatting { background: #fff6e0; color: #a6790b; }
.ivc-status-matched { background: var(--ivc-primary-light); color: var(--ivc-primary-dark); }
.ivc-status-worked { background: #e6f0fb; color: #2464b4; }
.ivc-status-completed { background: var(--ivc-success-bg); color: var(--ivc-success-text); }
.ivc-status-direct_hired { background: #efe6fb; color: #7c4dbd; }
.ivc-status-rejected { background: var(--ivc-error-bg); color: var(--ivc-error-text); }
.ivc-status-withdrawn { background: #f0f0f0; color: #888; }
.ivc-status-no_show { background: var(--ivc-error-bg); color: var(--ivc-error-text); }
.ivc-status-cancelled { background: #fbe9e7; color: #b3411f; }

/* ---------- 運営ダッシュボード(集計カード・お知らせ) ---------- */
.ivc-stat-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-top: 20px;
}
.ivc-stat-card {
	text-align: center;
}
.ivc-stat-label {
	margin: 0 0 10px;
	font-size: 0.88em;
	font-weight: 700;
	color: var(--ivc-primary-dark);
}
.ivc-stat-value {
	margin: 0;
	font-size: 2.2em;
	font-weight: 800;
	color: var(--ivc-text);
}
.ivc-announce-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ivc-announce-item {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--ivc-border);
}
.ivc-announce-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.ivc-announce-date {
	flex-shrink: 0;
	font-size: 0.82em;
	color: var(--ivc-text-light);
}
.ivc-announce-title {
	font-weight: 600;
}
.ivc-operator-note {
	margin-top: 18px;
}

/* ---------- プロフィールカード(コンパニオン) ---------- */
.ivc-profile-card { display: flex; gap: 20px; align-items: center; margin-bottom: 30px; }
.ivc-profile-avatar img { border-radius: 8px; display: block; }
.ivc-profile-info h2 { margin: 0 0 8px; font-size: 1.25em; }
.ivc-star-rating { color: #f5b301; font-size: 1em; margin-bottom: 10px; }
.ivc-star-rating-value { color: var(--ivc-text-light); font-size: 0.85em; margin-left: 4px; }
.ivc-star-rating-empty { color: var(--ivc-text-light); font-size: 0.85em; }

/* ---------- 案件検索・案件カード ---------- */
.ivc-search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 26px;
	align-items: center;
}
.ivc-search-keyword { flex: 2 1 260px; }
.ivc-search-form select.ivc-input { flex: 1 1 160px; width: auto; }

.ivc-shift-list { list-style: none; padding: 0; margin: 0; }
.ivc-shift-card {
	display: flex;
	gap: 22px;
	align-items: stretch;
	margin-bottom: 18px;
	transition: box-shadow 0.15s;
}
.ivc-shift-card:hover { box-shadow: var(--ivc-shadow-hover); }
.ivc-shift-card-main { flex: 1; min-width: 0; }
.ivc-shift-card-head {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}
.ivc-shift-updated { margin-left: auto; font-size: 0.78em; color: var(--ivc-text-light); }
.ivc-shift-title { font-size: 1.25em; font-weight: 800; margin: 0 0 8px; color: var(--ivc-text); }
.ivc-shift-excerpt { color: var(--ivc-text-light); font-size: 0.92em; margin-bottom: 10px; }
.ivc-shift-excerpt p { margin: 0; }

.ivc-info-table { width: 100%; border-collapse: collapse; margin: 12px 0 16px; font-size: 0.9em; }
.ivc-info-table th {
	text-align: left;
	color: var(--ivc-text-light);
	font-weight: 700;
	padding: 5px 12px 5px 0;
	width: 110px;
	white-space: nowrap;
	vertical-align: top;
}
.ivc-info-table td { padding: 5px 0; color: var(--ivc-text); }

.ivc-shift-card-side {
	width: 120px;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-align: center;
	border-left: 1px solid var(--ivc-border);
	padding-left: 20px;
}
.ivc-shift-card-side img { border-radius: 6px; }
.ivc-shift-card-side-name { font-size: 0.82em; color: var(--ivc-text-light); }

.ivc-pagination { margin-top: 26px; display: flex; gap: 6px; flex-wrap: wrap; }
.ivc-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border-radius: var(--ivc-radius-sm);
	background: var(--ivc-bg-soft);
	color: var(--ivc-text);
	text-decoration: none;
	font-size: 0.9em;
}
.ivc-pagination .page-numbers.current { background: var(--ivc-primary); color: #fff; }

/* ---------- チャット(メッセージ) ---------- */
.ivc-chat-header {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-bottom: 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--ivc-border);
}
.ivc-chat-header img { border-radius: 6px; }
.ivc-chat-header h2 { margin: 0; font-size: 1.15em; }

.ivc-messages { margin-bottom: 18px; max-height: 480px; overflow-y: auto; }
.ivc-message {
	padding: 12px 16px;
	border-radius: 14px;
	margin-bottom: 10px;
	max-width: 72%;
}
.ivc-message-me { background: var(--ivc-primary-light); margin-left: auto; border-bottom-right-radius: 4px; }
.ivc-message-other { background: var(--ivc-bg-soft); border-bottom-left-radius: 4px; }
.ivc-message strong { display: block; font-size: 0.78em; color: var(--ivc-text-light); margin-bottom: 3px; font-weight: 700; }
.ivc-message p { margin: 0; white-space: pre-wrap; word-break: break-word; }
.ivc-message time { display: block; font-size: 0.72em; color: var(--ivc-text-light); margin-top: 5px; }

.ivc-message-form { display: flex; gap: 10px; align-items: flex-end; margin-bottom: 10px; }
.ivc-message-form textarea { flex: 1; }
.ivc-review-form { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.ivc-review-form label { font-weight: 700; font-size: 0.88em; }

/* ---------- フッター(任意利用パーツ / [ivc_footer]) ---------- */
.ivc-footer {
	background: var(--ivc-footer-bg);
	color: var(--ivc-footer-text);
	margin-top: 48px;
	padding: 48px 24px 22px;
	font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}
.ivc-footer-inner {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	/* auto-fitで幅に応じて自動的に列数が減る形にしている(ivecon-theme側と同じ理由による対処)。 */
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 32px;
}
.ivc-footer-logo { color: #fff; font-size: 1.2em; font-weight: 800; margin: 0 0 8px; }
.ivc-footer-tagline { font-size: 0.85em; color: #97a3a1; margin: 0; }
.ivc-footer h4 { color: #fff; font-size: 0.92em; margin: 0 0 14px; }
.ivc-footer ul { list-style: none; margin: 0; padding: 0; }
.ivc-footer li { margin-bottom: 9px; }
.ivc-footer a { color: var(--ivc-footer-text); text-decoration: none; font-size: 0.88em; }
.ivc-footer a:hover { color: #fff; }
.ivc-footer .ivc-footer-heading-link {
	color: #fff;
	font-size: inherit;
	font-weight: inherit;
}
.ivc-footer-copyright {
	max-width: 1100px;
	margin: 32px auto 0;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 0.78em;
	color: #97a3a1;
}

/* ---------- 各種設定・退会案内の画面遷移 ---------- */
.ivc-navigation-page {
	max-width: 880px;
	margin: 0 auto;
}
.ivc-navigation-lead {
	color: var(--ivc-text-light);
	margin: 0 0 24px;
}
.ivc-navigation-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 18px;
}
.ivc-navigation-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-height: 112px;
	padding: 24px;
	border: 1px solid var(--ivc-border);
	border-radius: var(--ivc-radius-lg);
	background: #fff;
	box-shadow: var(--ivc-shadow);
	color: var(--ivc-text);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ivc-navigation-card:hover,
.ivc-navigation-card:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--ivc-shadow-hover);
	border-color: var(--ivc-primary);
}
.ivc-navigation-card-title {
	display: block;
	font-size: 1.05em;
	font-weight: 800;
	margin-bottom: 5px;
}
.ivc-navigation-card-description {
	display: block;
	color: var(--ivc-text-light);
	font-size: 0.88em;
	line-height: 1.6;
}
.ivc-navigation-card-arrow {
	color: var(--ivc-primary-dark);
	font-size: 1.4em;
	font-weight: 800;
}

/* ---------- プロフィールフォーム: セクション見出し・資格カテゴリ・写真・職務経歴 ---------- */
.ivc-form-section-title {
	font-size: 1.05em;
	font-weight: 800;
	margin: 36px 0 18px;
	padding-bottom: 9px;
	border-bottom: 1px solid var(--ivc-border);
	color: var(--ivc-primary-dark);
}
.ivc-form-section-title:first-child { margin-top: 0; }

.ivc-qual-group { margin-bottom: 14px; }
.ivc-qual-group-label {
	display: block;
	font-weight: 700;
	font-size: 0.84em;
	margin-bottom: 8px;
	color: var(--ivc-text-light);
}

/* --- 登録写真(複数枚) --- */
.ivc-photo-list { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 10px; }
.ivc-photo-item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.ivc-photo-item .ivc-photo-thumb { display: block; border: 1px solid var(--ivc-border); }
.ivc-photo-badge {
	position: absolute;
	top: 6px;
	left: 6px;
	background: rgba(0, 0, 0, .62);
	color: #fff;
	font-size: 0.66em;
	font-weight: 700;
	padding: 2px 7px;
	border-radius: 999px;
}
.ivc-photo-remove { font-size: 0.78em; }
.ivc-photo-list-view { margin-bottom: 14px; }
/* --- 経歴(担当イベントの一覧) --- */
.ivc-career-text { white-space: normal; line-height: 1.9; margin: 0 0 16px; }
.ivc-career-input { line-height: 1.9; }
.ivc-career-sample { margin: 0 0 10px; }
.ivc-career-sample > summary {
	cursor: pointer;
	display: inline-block;
	font-size: 0.82em;
	color: var(--ivc-primary);
	padding: 3px 0;
}
.ivc-career-sample-body {
	margin: 6px 0 0;
	padding: 12px 14px;
	background: var(--ivc-bg-soft);
	border: 1px solid var(--ivc-border);
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.86em;
	line-height: 1.9;
	white-space: pre-wrap;
	color: var(--ivc-text-light);
}

.ivc-photo-upload { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.ivc-photo-upload-preview img { border-radius: 8px; display: block; object-fit: cover; }
.ivc-photo-empty {
	width: 72px;
	height: 72px;
	border-radius: 8px;
	background: var(--ivc-bg-soft);
	border: 1px dashed var(--ivc-border);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.72em;
	color: var(--ivc-text-light);
	text-align: center;
	flex-shrink: 0;
}

.ivc-pref-checkboxes {
	max-height: 220px;
	overflow-y: auto;
	border: 1px solid var(--ivc-border);
	border-radius: var(--ivc-radius-md);
	padding: 14px;
	background: var(--ivc-bg-soft);
}

.ivc-work-history-card {
	border: 1px solid var(--ivc-border);
	border-radius: var(--ivc-radius-md);
	padding: 18px 18px 4px;
	margin-bottom: 16px;
	background: var(--ivc-bg-soft);
}
.ivc-work-history-card-title { font-weight: 800; font-size: 0.92em; margin: 0 0 14px; color: var(--ivc-text); }

/* ---------- レスポンシブ ---------- */
@media (max-width: 680px) {
	.ivc-shift-card { flex-direction: column; }
	.ivc-shift-card-side {
		border-left: none;
		border-top: 1px solid var(--ivc-border);
		flex-direction: row;
		width: 100%;
		justify-content: flex-start;
		padding-left: 0;
		padding-top: 14px;
	}
	.ivc-message { max-width: 88%; }
	.ivc-stat-grid { grid-template-columns: 1fr; }
	.ivc-announce-item { flex-direction: column; gap: 2px; }
}

/* ------------------------------------------------------------------
   v0.6.0: 運営ダッシュボードのアクセスグラフ / なりすましバー / お問い合わせ
------------------------------------------------------------------- */

.ivc-access-card { padding: 24px; }
.ivc-access-total { font-size: 15px; margin: 0 0 4px; }
.ivc-access-total strong { font-size: 30px; color: var(--ivc-primary, #2a9d8a); }
.ivc-access-period { font-size: 12px; color: var(--ivc-text-light, #74807e); margin: 0 0 16px; }

.ivc-access-legend { list-style: none; display: flex; gap: 20px; padding: 0; margin: 0 0 12px; font-size: 12px; }
.ivc-access-legend li { display: flex; align-items: center; gap: 6px; }
.ivc-legend-swatch { width: 18px; height: 10px; border-radius: 2px; display: inline-block; }
.ivc-legend-in { background: #2a9d8a; }
.ivc-legend-out { background: #a3ddd1; }

.ivc-access-chart { display: flex; align-items: flex-end; gap: 3px; height: 200px; }
.ivc-access-bar { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; }
.ivc-access-stack { flex: 1; width: 100%; display: flex; flex-direction: column; justify-content: flex-end; }
.ivc-access-stack span { display: block; width: 100%; }
.ivc-access-out { background: #a3ddd1; }
.ivc-access-in { background: #2a9d8a; }
.ivc-access-bar small { font-size: 9px; color: var(--ivc-text-light, #74807e); margin-top: 4px; }

/* なりすまし中であることを常に明示するバー */
.ivc-impersonation-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 99999;
	background: #b32d2e; color: #fff; padding: 10px 16px;
	display: flex; align-items: center; justify-content: center; gap: 16px;
	font-size: 13px; flex-wrap: wrap;
}
.ivc-impersonation-bar form { margin: 0; }
.ivc-impersonation-bar button {
	background: #fff; color: #b32d2e; border: none; border-radius: 4px;
	padding: 6px 14px; font-size: 13px; font-weight: bold; cursor: pointer;
}

.ivc-contact { max-width: 680px; margin: 0 auto; }

/* ------------------------------------------------------------------
   v0.8.0: 勤務日カレンダー / 郵便番号 / 審査ステータス
------------------------------------------------------------------- */

.ivc-zip-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

.ivc-calendar {
	border: 1px solid var(--ivc-border, #c9e9e2);
	border-radius: 8px;
	padding: 12px;
	max-width: 380px;
	background: #fff;
}
.ivc-calendar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ivc-calendar-title { font-weight: bold; font-size: 15px; }
.ivc-calendar-nav {
	border: 1px solid var(--ivc-border, #c9e9e2); background: #fff; cursor: pointer;
	width: 32px; height: 32px; border-radius: 6px; font-size: 18px; line-height: 1;
	color: var(--ivc-primary, #2a9d8a);
}
.ivc-calendar-nav:hover { background: var(--ivc-bg-soft, #eef8f6); }

.ivc-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.ivc-calendar-week { text-align: center; font-size: 12px; color: var(--ivc-text-light, #74807e); padding: 4px 0; }
.ivc-calendar-day {
	aspect-ratio: 1 / 1; border: 1px solid transparent; background: var(--ivc-bg-soft, #eef8f6);
	border-radius: 6px; cursor: pointer; font-size: 13px; color: var(--ivc-text, #1b2b33);
	display: flex; align-items: center; justify-content: center; padding: 0;
}
.ivc-calendar-day:hover:not(:disabled) { border-color: var(--ivc-primary, #2a9d8a); }
.ivc-calendar-day.is-selected { background: var(--ivc-primary, #2a9d8a); color: #fff; font-weight: bold; }
.ivc-calendar-day.ivc-calendar-past { background: transparent; color: #c6d6e0; cursor: default; }
.ivc-calendar-blank { background: transparent; border: none; cursor: default; }

/* 案件の審査ステータスバッジ */
.ivc-status-pending { background: #fff4e0; color: #a86a12; }
.ivc-status-approved { background: #e6f2fa; color: #2a9d8a; }
.ivc-status-rejected { background: var(--ivc-error-bg, #fdecea); color: var(--ivc-error-text, #b32d2e); }
.ivc-status-draft { background: #eaefee; color: #5f6b69; }
/* 募集状況(募集中 / 締切) */
.ivc-status-open { background: var(--ivc-primary-light); color: var(--ivc-primary-dark); }
.ivc-status-closed { background: #eaefee; color: #5f6b69; }

/* タブ(マイページ / 募集情報) */
.ivc-tabs { display: flex; gap: 4px; border-bottom: 2px solid var(--ivc-border, #c9e9e2); margin-bottom: 24px; }
.ivc-tab {
	padding: 12px 24px; text-decoration: none; font-weight: bold; font-size: 15px;
	color: var(--ivc-text-light, #74807e); border-bottom: 3px solid transparent;
	margin-bottom: -2px; border-radius: 6px 6px 0 0;
}
.ivc-tab:hover { background: var(--ivc-bg-soft, #eef8f6); }
.ivc-tab.is-active { color: var(--ivc-primary, #2a9d8a); border-bottom-color: var(--ivc-primary, #2a9d8a); }

.ivc-table-plain th { background: transparent; font-weight: bold; color: var(--ivc-text-light, #74807e); text-align: left; }

/* ------------------------------------------------------------------
   v0.9.0: 保有資格・レセコンの分類表示 / ロール別登録ページ
------------------------------------------------------------------- */

.ivc-form-lead { font-size: 14px; line-height: 1.8; color: var(--ivc-text-light, #74807e); margin: -8px 0 20px; }

/* 資格の大分類(開閉式) */
details.ivc-qual-group {
	border: 1px solid var(--ivc-border, #c9e9e2); border-radius: 8px;
	margin-bottom: 10px; background: #fff;
}
details.ivc-qual-group > summary {
	cursor: pointer; padding: 14px 18px; font-weight: bold; font-size: 14px;
	color: var(--ivc-primary, #2a9d8a); list-style: none; position: relative; padding-right: 42px;
}
details.ivc-qual-group > summary::-webkit-details-marker { display: none; }
details.ivc-qual-group > summary::after {
	content: '+'; position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
	font-size: 18px; font-weight: normal;
}
details.ivc-qual-group[open] > summary::after { content: '−'; }
.ivc-qual-count {
	display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 10px;
	background: var(--ivc-primary, #2a9d8a); color: #fff; font-size: 11px; font-weight: normal;
}

/* 資格・レセコンの小分類 */
.ivc-qual-subgroup { padding: 4px 18px 14px; }
.ivc-qual-subgroup-label {
	display: block; font-size: 12px; font-weight: bold;
	color: var(--ivc-text-light, #74807e); margin-bottom: 8px;
}
.ivc-qual-group-other {
	border: 1px solid var(--ivc-border, #c9e9e2); border-radius: 8px;
	padding: 14px 18px; background: #fff;
}
.ivc-qual-group-other .ivc-qual-group-label {
	display: block; font-weight: bold; font-size: 14px;
	color: var(--ivc-primary, #2a9d8a); margin-bottom: 10px;
}

/* ==========================================================
 * 企業基本情報(企業プロフィール)
 * ========================================================== */

.ivc-notice-info { background: var(--ivc-info-bg, #eef8f6); color: var(--ivc-info-text, #2a9d8a); }

.ivc-form-subtitle {
	font-size: 1.02em;
	font-weight: bold;
	margin: 28px 0 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--ivc-border, #dde9f1);
}
.ivc-form-subtitle:first-of-type { margin-top: 4px; }

.ivc-form-static { margin: 0; font-weight: bold; }
.ivc-form-note { font-size: 0.88em; color: var(--ivc-text-light); margin: 0 0 14px; }

/* 選択肢が多い項目は、幅に応じて折り返す */
.ivc-checkbox-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 6px 14px;
}
.ivc-checkbox-group-title {
	font-size: 0.86em;
	font-weight: bold;
	color: var(--ivc-text-light, #74807e);
	margin: 14px 0 6px;
}

.ivc-clinic-profile-form .ivc-input + .ivc-input { margin-top: 8px; }

/* 営業時間の入力表 */
.ivc-hours-table th { width: 52px; white-space: nowrap; }
.ivc-hours-table td { white-space: nowrap; }
.ivc-input-time { display: inline-block; width: auto; min-width: 108px; padding: 6px 8px; }

.ivc-thumb-preview { border-radius: 10px; object-fit: cover; }
.ivc-cover-preview { max-width: 100%; height: auto; border-radius: 12px; }

/* 公開表示 */
.ivc-clinic-profile-view { margin-top: 32px; }
.ivc-clinic-cover img { width: 100%; height: auto; border-radius: 14px; display: block; }
.ivc-clinic-head { display: flex; align-items: center; gap: 14px; margin: 18px 0 10px; }
.ivc-clinic-head .ivc-section-title { margin: 0; }
.ivc-clinic-icon { border-radius: 12px; object-fit: cover; flex: none; }
.ivc-clinic-atmosphere { margin: 0 0 18px; line-height: 1.9; }
.ivc-hours-view th, .ivc-hours-view td { text-align: center; white-space: nowrap; }

@media (max-width: 600px) {
	.ivc-checkbox-grid { grid-template-columns: 1fr; }
	.ivc-input-time { min-width: 0; width: 46%; }
	.ivc-clinic-head { flex-wrap: wrap; gap: 10px; }
}

/* 応募者の経歴を開いて確認するブロック */
.ivc-worker-detail { margin-top: 6px; }
.ivc-worker-detail > summary { cursor: pointer; font-size: 0.85em; color: var(--ivc-primary); }
.ivc-worker-profile-view { margin-top: 10px; }
.ivc-worker-profile-view .ivc-table { font-size: 0.9em; }

/* -----------------------------------------------------------
   案件詳細ページ(検索結果 → 詳細 → エントリー の導線)
   ----------------------------------------------------------- */
.ivc-breadcrumb { font-size: 0.85em; color: var(--ivc-text-light); margin: 0 0 14px; }
.ivc-breadcrumb a { color: var(--ivc-text-light); text-decoration: none; }
.ivc-breadcrumb a:hover { color: var(--ivc-primary); text-decoration: underline; }
.ivc-breadcrumb span[aria-hidden] { margin: 0 6px; }

.ivc-shift-single-head { margin-bottom: 22px; }
.ivc-shift-single-title {
	margin: 10px 0 0;
	/* テーマ側の固定行間(px)を上書きしないと、文字の大きい見出しは行が重なる */
	font-size: clamp(21px, 4.6vw, 32px);
	line-height: 1.45;
	/* 日本語の長いタイトルが1文字ずつ飛び出さないようにする */
	overflow-wrap: anywhere;
	word-break: normal;
	text-wrap: balance;
}

.ivc-shift-single-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 28px;
	align-items: start;
}
.ivc-shift-single-main { min-width: 0; }
.ivc-shift-single-content { line-height: 1.9; }
.ivc-shift-single-back { margin-top: 28px; }

/* エントリー用の追従カード */
.ivc-shift-single-side { position: sticky; top: 90px; display: grid; gap: 14px; }
.ivc-entry-box { padding: 20px; }
.ivc-entry-box-label { font-size: 0.8em; color: var(--ivc-text-light); margin: 0; }
.ivc-entry-box-wage {
	font-size: 2em;
	font-weight: 700;
	color: var(--ivc-primary);
	margin: 2px 0 6px;
	line-height: 1.2;
}
.ivc-entry-box-wage span { font-size: 0.5em; font-weight: 500; margin-left: 2px; }
.ivc-entry-box-meta {
	margin: 14px 0 18px;
	padding-top: 14px;
	border-top: 1px solid var(--ivc-border);
	font-size: 0.88em;
}
.ivc-entry-box-meta dt { color: var(--ivc-text-light); margin-top: 8px; }
.ivc-entry-box-meta dt:first-child { margin-top: 0; }
.ivc-entry-box-meta dd { margin: 2px 0 0; }
.ivc-entry-box-status { display: block; text-align: center; margin: 0 0 10px; }
.ivc-entry-box .ivc-form-hint { margin-top: 10px; }

.ivc-entry-box-clinic { display: flex; align-items: center; gap: 12px; padding: 16px 20px; }
.ivc-entry-box-clinic img { border-radius: 10px; flex: none; }
.ivc-entry-box-clinic-name { margin: 2px 0 0; font-weight: 600; }

/* 検索結果カードの操作エリア */
.ivc-shift-card-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ivc-shift-title a { color: inherit; text-decoration: none; }
.ivc-shift-title a:hover { color: var(--ivc-primary); }

@media (max-width: 860px) {
	.ivc-shift-single-layout { grid-template-columns: 1fr; }
	.ivc-shift-single-side { position: static; }
}

/* ==================================================================
   スマートフォン向けのダッシュボード最適化(v0.16.0)

   ダッシュボードは列数の多い表を使うため、狭い画面では横スクロールが
   発生して読みにくかった。760px以下では表を1件=1カード の縦積みに
   組み替え、各項目に見出し(data-label)を添えて読めるようにする。
   ================================================================== */

@media (max-width: 760px) {

	/* ---- 表をカード表示に組み替える ---- */
	.ivc-table-wrap {
		overflow-x: visible;
		border: none;
		border-radius: 0;
		margin-bottom: 24px;
	}
	.ivc-table,
	.ivc-table tbody,
	.ivc-table tr,
	.ivc-table td {
		display: block;
		width: 100%;
	}
	/* 見出し行はカード表示では不要(各セルに data-label で見出しを出す) */
	.ivc-table thead { display: none; }

	.ivc-table tr {
		background: var(--ivc-bg);
		border: 1px solid var(--ivc-border);
		border-radius: var(--ivc-radius-md);
		padding: 4px 16px;
		margin-bottom: 14px;
		box-shadow: var(--ivc-shadow);
	}
	.ivc-table tr:last-child { margin-bottom: 0; }

	.ivc-table td {
		border-bottom: 1px solid var(--ivc-border);
		padding: 10px 0;
		font-size: 0.95em;
	}
	.ivc-table tr td:last-child { border-bottom: none; }

	/* 項目名(表の見出しの代わり) */
	.ivc-table td[data-label]::before {
		content: attr(data-label);
		display: block;
		font-size: 0.78em;
		font-weight: 700;
		color: var(--ivc-text-light);
		margin-bottom: 4px;
	}
	/* 「該当なし」等の1セル行は見出しを出さず中央に */
	.ivc-table td[colspan] { text-align: center; color: var(--ivc-text-light); }

	/* 案件名など長い値は折り返す */
	.ivc-table td { word-break: break-word; }

	/* 応募者セル(アイコン+名前+経歴)の折り返し */
	.ivc-worker-cell-head { flex-wrap: wrap; }

	/* 操作セルのボタン・フォームは全幅にして押しやすくする */
	.ivc-entry-actions > *,
	.ivc-table .ivc-inline-form {
		display: block;
		width: 100%;
		margin-bottom: 8px;
	}
	.ivc-table .ivc-btn,
	.ivc-table .ivc-input,
	.ivc-table select.ivc-input {
		width: 100%;
		max-width: none;
	}
	/* 淡い色のボタンは白背景のカード上で沈むため、輪郭を足して押せると分かるようにする */
	.ivc-table .ivc-btn-ghost { border: 1px solid var(--ivc-border); }

	/* ---- フォーム ---- */
	/* iOSは16px未満の入力欄にフォーカスすると自動でズームするため16pxを確保 */
	.ivc-input,
	select.ivc-input,
	textarea.ivc-input { font-size: 16px; }
	.ivc-input-small { max-width: none; }

	/* ---- ボタンのタップ領域 ---- */
	.ivc-btn { min-height: 44px; padding: 12px 20px; }
	.ivc-btn-small { min-height: 40px; }

	/* 単独で置かれるボタンは全幅にする(フォーム送信・エントリー等) */
	.ivc-form > .ivc-btn,
	.ivc-inline-detail-form .ivc-btn,
	.ivc-card .ivc-inline-form .ivc-btn { width: 100%; }
	/* カード内の入力欄(振込依頼額など)も横幅いっぱいに */
	.ivc-card .ivc-inline-form { display: block; width: 100%; }
	.ivc-card .ivc-inline-form label { display: block; margin-bottom: 10px; }

	/* ---- タブ(マイページ / 募集情報) ---- */
	.ivc-tabs {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.ivc-tabs::-webkit-scrollbar { display: none; }
	.ivc-tab { padding: 12px 16px; font-size: 14px; white-space: nowrap; }

	/* ---- 見出し・余白を詰める ---- */
	.ivc-section-title { font-size: 1.1em; margin: 28px 0 12px; }
	.ivc-card { padding: 18px 16px; }

	/* 見出しと操作ボタンが横並びのブロック */
	.ivc-section-head { flex-direction: column; align-items: stretch; gap: 10px; }
	.ivc-section-head .ivc-btn { width: 100%; }

	/* ---- 統計値 ---- */
	.ivc-stat-value { font-size: 1.6em; }

	/* ---- 案件投稿フォームのカレンダー ---- */
	.ivc-calendar { width: 100%; }
	.ivc-calendar-grid { font-size: 0.9em; }

	/* ---- プロフィールの資格チェックボックス等 ---- */
	.ivc-field-row .ivc-field { flex: 1 1 100%; }
}

/* 実務経験(職種ごとの年数入力) */
.ivc-exp-grid { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); max-width: 760px; }
.ivc-exp-row[hidden] { display: none; }
.ivc-exp-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 12px;
	background: var(--ivc-bg-soft);
	border-radius: var(--ivc-radius-md);
}
.ivc-exp-label { font-size: 0.92em; }
.ivc-exp-input { display: flex; align-items: center; gap: 6px; flex: none; }
.ivc-exp-input .ivc-input { width: 90px; max-width: 90px; text-align: right; background: #fff; }
.ivc-exp-unit { font-size: 0.9em; color: var(--ivc-text-light); }

@media (max-width: 760px) {
	.ivc-exp-grid { max-width: none; grid-template-columns: 1fr; }
	.ivc-exp-input .ivc-input { width: 100px; max-width: 100px; }
}

/* 未読メッセージ件数のバッジ(ダッシュボードの一覧) */
.ivc-unread-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	margin-left: 4px;
	border-radius: 999px;
	background: #e5484d;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	vertical-align: middle;
}

/* 実働時間の承認(企業側) */
.ivc-hours-review {
	background: #fff8e8;
	border: 1px solid #f0d9a8;
	border-radius: var(--ivc-radius-md);
	padding: 14px 16px;
	margin-bottom: 10px;
}
.ivc-hours-review-title { font-weight: 700; margin: 0 0 8px; color: #8a6516; }
.ivc-hours-review p { margin: 0 0 8px; font-size: 0.92em; }

/* 実働時間の承認待ちステータス */
.ivc-status-hours_pending { background: #fff4e0; color: #a86a12; }

/* マッチング成立(事前お支払い)の確認欄 */
.ivc-match-confirm {
	background: #eef6ff;
	border: 1px solid #c9dffa;
	border-radius: var(--ivc-radius-md);
	padding: 14px 16px;
	margin-bottom: 10px;
}
.ivc-match-confirm p { margin: 0 0 8px; font-size: 0.92em; }
.ivc-match-confirm p:last-child { margin-bottom: 0; }
.ivc-match-confirm strong { color: var(--ivc-primary, #4caf50); }

/* メッセージの定型文ボタン */
.ivc-message-templates { margin: 16px 0 10px; }
.ivc-message-templates-title { font-weight: 700; font-size: 0.86em; margin: 0 0 8px; color: var(--ivc-text-light); }
.ivc-message-template-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.ivc-template-btn {
	background: var(--ivc-primary-light);
	color: var(--ivc-primary-dark);
	border: 1px solid var(--ivc-primary);
	border-radius: var(--ivc-radius-pill);
	padding: 7px 14px;
	font-size: 0.84em;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	line-height: 1.4;
}
.ivc-template-btn:hover { background: var(--ivc-primary); color: #fff; }

/* 当日のご案内(メッセージ画面の折りたたみ) */
.ivc-day-info { margin-top: 18px; }
.ivc-day-info .ivc-info-table { margin-top: 10px; }

/* 振込予定日のご案内 */
.ivc-payout-schedule {
	margin: 10px 0 0;
	padding: 10px 14px;
	background: var(--ivc-primary-light);
	border-radius: var(--ivc-radius-md);
	font-size: 0.9em;
}
.ivc-payout-schedule strong { color: var(--ivc-primary-dark); }


/* ---------- マッチング成立後のキャンセル(利用規約 第5条) ---------- */
.ivc-cancel-box > summary {
	color: #b3411f;
}

.ivc-cancel-box .ivc-cancel-rate {
	margin: 0.6rem 0 0.4rem;
	padding: 0.7rem 0.9rem;
	background: #fbe9e7;
	border-radius: 8px;
	color: #8c2f16;
	line-height: 1.7;
}

.ivc-cancel-box .ivc-cancel-rate strong {
	font-size: 1.1em;
}

.ivc-btn-danger {
	background: #c0392b;
	border: 1px solid #c0392b;
	color: #fff;
}

.ivc-btn-danger:hover,
.ivc-btn-danger:focus {
	background: #a53024;
	border-color: #a53024;
	color: #fff;
}

.ivc-cancel-summary {
	margin-top: 0.4rem;
	color: #8c2f16;
	font-size: 0.9rem;
	line-height: 1.7;
}

/* ---------- メールが届かないときのご案内(登録・ログイン) ---------- */
.ivc-mail-notice {
	margin: 1.2rem 0;
	padding: 0.9rem 1.1rem;
	background: #fffaf0;
	border: 1px solid #f0dfb8;
	border-radius: 10px;
	font-size: 0.86rem;
	line-height: 1.85;
	color: #6b5729;
}

.ivc-mail-notice-title {
	margin: 0 0 0.4rem;
	font-weight: 600;
	color: #8a6d1f;
}

.ivc-mail-notice ul {
	margin: 0;
	padding-left: 1.2rem;
}

.ivc-mail-notice li {
	margin-bottom: 0.25rem;
}

.ivc-mail-notice li:last-child {
	margin-bottom: 0;
}

.ivc-mail-notice strong {
	color: #5a4715;
}

/* ------------------------------------------------------------------
   スマートフォンの追補
   運営ダッシュボードのアクセスグラフは直近30日ぶんの棒が並ぶため、
   390px幅では1本10px以下に潰れて日付ラベルも読めなくなる。
   棒の幅を確保したうえで横スクロールさせ、全日を見られるようにする。
------------------------------------------------------------------- */
@media (max-width: 760px) {
	.ivc-access-card { padding: 16px; }
	.ivc-access-total strong { font-size: 26px; }
	.ivc-access-legend { gap: 12px; flex-wrap: wrap; }
	.ivc-access-chart {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		height: 170px;
		padding-bottom: 6px;
	}
	.ivc-access-bar { flex: 0 0 17px; }
	.ivc-access-bar small { font-size: 8px; white-space: nowrap; }
}

/* ==========================================================
   勤務日の選択（1日だけの勤務にも対応）
   ========================================================== */
.ivc-workday-picker {margin:0 0 18px;padding:16px 16px 10px;border:1px solid #c9e9e2;border-radius:10px;background:#f5fbfe}
.ivc-workday-legend {padding:0 4px;font-size:14px;font-weight:700;color:#2f3a3a;display:flex;align-items:center;gap:8px}
.ivc-workday-required {font-size:11px;font-weight:700;color:#fff;background:#e8420f;border-radius:4px;padding:2px 6px;letter-spacing:.04em}
.ivc-workday-hint {margin:8px 0 12px;font-size:12.5px;color:#74807e}
.ivc-workday-option {display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:8px;background:#fff;border:1px solid #dbeaf5;border-radius:8px;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.ivc-workday-option:hover {border-color:#8fdccd;background:#f8fdfb}
.ivc-workday-option input {width:18px;height:18px;accent-color:#2a9d8a;flex:none;margin:0}
.ivc-workday-option:has(input:checked) {border-color:#8fdccd;background:#eef8f6}
.ivc-workday-date {font-weight:700;color:#2f3a3a;font-variant-numeric:tabular-nums}
.ivc-workday-time {margin-left:auto;font-size:12.5px;color:#74807e}
/* 一覧に出す「勤務日」 */
.ivc-entry-dates {display:block;margin-top:5px;font-size:12px;color:#74807e;font-variant-numeric:tabular-nums}
.ivc-workday-time {margin-left:0;width:100%;padding-left:28px}
.ivc-workday-option {flex-wrap:wrap}
/* ==========================================================
   アバターの初期表示 / 案件詳細へのリンク
   ========================================================== */

/* 未設定プロフィール画像の代替（外部Gravatarを使わず頭文字を表示） */
.ivc-avatar-placeholder {display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:6px;background:linear-gradient(135deg,#8fdccd,#2a9d8a);color:#fff;font-weight:700;letter-spacing:.02em;line-height:1;text-transform:uppercase;overflow:hidden;vertical-align:middle;user-select:none}
/* 案件タイトルから募集詳細ページへ */
.ivc-shift-title-link {color:inherit;text-decoration:none;border-bottom:1px solid rgba(42,157,138,.28);transition:color .18s ease,border-color .18s ease}
.ivc-shift-title-link:hover {color:#2a9d8a;border-bottom-color:#2a9d8a}

/* ==========================================================
   マイページ「対応をお願いします」
   稼働終了の報告・未読メッセージを最上部にまとめて表示する
   ========================================================== */
.ivc-todo {margin:0 0 34px;padding:22px 22px 8px;border:1px solid #ffd9a8;border-radius:14px;background:#fffaf2}
.ivc-todo-title {margin:0 0 16px;font-size:16px;color:#8a5a12;display:flex;align-items:center;gap:8px}
.ivc-todo-title::before {content:"";width:9px;height:9px;border-radius:50%;background:#f0932b;flex:none}
.ivc-todo-item {display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 18px;margin-bottom:14px;background:#fff;border:1px solid #f0e3cf;border-radius:10px}
.ivc-todo-body {flex:1 1 260px;min-width:0}
.ivc-todo-label {margin:0 0 5px;font-size:12px;font-weight:700;letter-spacing:.06em;color:#c2761a}
.ivc-todo-unread .ivc-todo-label {color:#2a9d8a}
.ivc-todo-text {margin:0;font-size:14px;line-height:1.75;color:#2f3a3a}
.ivc-todo-btn {flex:none;white-space:nowrap}
.ivc-todo {padding:18px 16px 6px}
.ivc-todo-item {padding:14px}
.ivc-todo-btn {width:100%;text-align:center}
/* ==========================================================
   レビュー投稿フォーム
   総合評価=3段階の数字ボタン / 詳細項目=Good・Badの二択
   ========================================================== */
.ivc-review-form {max-width:560px}
.ivc-review-lead {margin:0 0 20px;font-size:13.5px;color:#74807e}
.ivc-review-block {margin-bottom:26px}
.ivc-review-block-title {display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:700;color:#2f3a3a}
.ivc-review-badge {font-size:11px;font-weight:700;color:#74807e;background:#eef2f1;border-radius:4px;padding:2px 7px;letter-spacing:.04em}
.ivc-review-badge-required {color:#fff;background:#00a896}
/* 総合評価 1〜3 */
.ivc-rating-choice {display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ivc-rating-option {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:14px 6px;border:1px solid #dfe9e7;border-radius:10px;background:#fff;cursor:pointer;text-align:center;transition:border-color .2s ease,background-color .2s ease,color .2s ease}
.ivc-rating-option input {position:absolute;opacity:0;width:0;height:0}
.ivc-rating-num {font-size:19px;font-weight:700;color:#2f3a3a;line-height:1.2}
.ivc-rating-label {font-size:11.5px;color:#74807e}
.ivc-rating-option:hover {border-color:#8fdccd}
.ivc-rating-option:has(input:checked) {background:#00a896;border-color:#00a896}
.ivc-rating-option:has(input:checked) .ivc-rating-num,
.ivc-rating-option:has(input:checked) .ivc-rating-label {color:#fff}
.ivc-rating-option:has(input:focus-visible) {outline:2px solid #8fdccd;outline-offset:2px}
.ivc-gb-choice {flex:none;display:flex;border:1px solid #dfe9e7;border-radius:8px;overflow:hidden;background:#fff}
.ivc-gb-option {position:relative;padding:7px 16px;font-size:12.5px;color:#74807e;cursor:pointer;transition:background-color .18s ease,color .18s ease}
.ivc-gb-option + .ivc-gb-option {border-left:1px solid #dfe9e7}
.ivc-gb-option input {position:absolute;opacity:0;width:0;height:0}
.ivc-gb-good:hover {background:#f1faf8}
.ivc-gb-bad:hover {background:#fdf5f1}
.ivc-gb-good:has(input:checked) {background:#00a896;color:#fff;font-weight:700}
.ivc-gb-bad:has(input:checked) {background:#f2b56b;color:#fff;font-weight:700}
.ivc-gb-option:has(input:focus-visible) {outline:2px solid #8fdccd;outline-offset:-2px}
.ivc-review-comment {width:100%;box-sizing:border-box}
.ivc-review-submit {width:100%;margin-top:4px;padding:13px}
/* プロフィールの評価表示（3段階） */
.ivc-rating-summary {display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}
.ivc-rating-score {font-size:20px;font-weight:700;color:#2a9d8a}
.ivc-rating-scale {font-size:12.5px;color:#9aa5a3}
.ivc-rating-count {font-size:12.5px;color:#74807e}
.ivc-rating-recommend {margin-left:6px;font-size:12px;font-weight:700;color:#00a896;background:#e8f7f4;border-radius:99px;padding:3px 10px}
.ivc-gb-choice {width:100%}
.ivc-gb-option {flex:1;text-align:center}
/* やることリスト：クリニックへの口コミ（任意） */
.ivc-todo-review {border-left-color:#8fdccd}
.ivc-todo-optional {display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:#eef7f5;border:1px solid #c9e9e2;color:#5b6a68;font-size:11px;font-weight:700;vertical-align:middle}

/* ---------- 確認ダイアログ ---------- */
/*
 * ブラウザ標準の confirm() は「eventkon.com の内容」と表示され
 * サイトの印象を損ねるため、サイト内で完結するダイアログに置き換えます。
 * 実装は assets/js/ivc-ui.js 側。
 */
html.ivc-dialog-open {
	overflow: hidden;
}
.ivc-dialog-overlay {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(24, 34, 40, 0.45);
	animation: ivc-dialog-fade 0.14s ease-out;
}
.ivc-dialog-overlay[hidden] {
	display: none;
}
.ivc-dialog {
	width: 100%;
	max-width: 420px;
	background: var(--ivc-bg);
	border-radius: var(--ivc-radius-lg);
	box-shadow: 0 18px 46px rgba(20, 30, 36, 0.28);
	padding: 26px 24px 20px;
	font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	color: var(--ivc-text);
	animation: ivc-dialog-pop 0.16s ease-out;
}
.ivc-dialog-title {
	margin: 0 0 12px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--ivc-primary-dark);
}
.ivc-dialog-body {
	font-size: 15px;
	line-height: 1.75;
}
.ivc-dialog-body p {
	margin: 0 0 4px;
}
.ivc-dialog-body p:last-child {
	margin-bottom: 0;
}
.ivc-dialog-actions {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 22px;
}
.ivc-dialog-actions button {
	min-width: 108px;
	padding: 10px 18px;
	border-radius: var(--ivc-radius-pill);
	border: 1px solid transparent;
	font-size: 15px;
	font-weight: 700;
	font-family: inherit;
	cursor: pointer;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.ivc-dialog-cancel {
	background: var(--ivc-bg);
	border-color: var(--ivc-border);
	color: var(--ivc-text-light);
}
.ivc-dialog-cancel:hover {
	background: var(--ivc-bg-soft);
	color: var(--ivc-text);
}
.ivc-dialog-ok {
	background: var(--ivc-primary);
	color: #fff;
}
.ivc-dialog-ok:hover {
	background: var(--ivc-primary-dark);
}
.ivc-dialog-actions button:focus-visible {
	outline: 2px solid var(--ivc-primary-dark);
	outline-offset: 2px;
}
@keyframes ivc-dialog-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes ivc-dialog-pop {
	from { opacity: 0; transform: translateY(8px) scale(0.98); }
	to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ivc-dialog-overlay,
	.ivc-dialog {
		animation: none;
	}
}
@media (max-width: 480px) {
	.ivc-dialog-actions {
		flex-direction: column-reverse;
	}
	.ivc-dialog-actions button {
		width: 100%;
	}
}

/* ---------- コンポジット(コンパニオンのプロフィール) ---------- */
/*
 * v1.66.0: カード型に刷新。
 *   上段: お名前 / ローマ字
 *   下段: 左に写真2枚(バストアップ・全身、縦3:4のまま)、右にスペックと経歴
 * 置かれた枠の幅(@container)で組み替える。応募者一覧のセルなど狭い場所にも入るため。
 */
.ivc-comp-wrap { container-type: inline-size; }
.ivc-worker-profile-view { container-type: inline-size; }
.ivc-comp {
	border: 1px solid var(--ivc-border);
	border-radius: var(--ivc-radius-lg);
	background: #fff;
	overflow: hidden;
	box-shadow: var(--ivc-shadow);
	color: var(--ivc-text);
}
.ivc-comp-top {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 14px;
	padding: 16px 20px 14px;
	border-bottom: 1px solid var(--ivc-border);
	background: linear-gradient(90deg, var(--ivc-primary-light), #fff 70%);
}
.ivc-comp-head { margin: 0; }
.ivc-comp-head-name { font-size: 22px; font-weight: 700; line-height: 1.3; letter-spacing: .02em; }
.ivc-comp-head-roman { font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--ivc-text-light); }
.ivc-comp-body {
	display: grid;
	grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
	gap: 20px;
	padding: 20px;
	align-items: start;
}
/* 写真。段の高さに合わせて切らず、縦3:4のまま並べる */
.ivc-comp-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ivc-comp-photos-one { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ivc-comp-photo { margin: 0; min-width: 0; }
.ivc-comp-photo-link {
	display: block;
	aspect-ratio: 3 / 4;
	border-radius: var(--ivc-radius-md);
	overflow: hidden;
	background: var(--ivc-bg-soft);
}
.ivc-comp-photo-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	border-radius: 0;
	max-width: none;
	transition: transform .25s ease;
}
.ivc-comp-photo-link:hover .ivc-comp-photo-img { transform: scale(1.02); }
.ivc-comp-photo-cap { margin: 6px 0 0; font-size: 11px; letter-spacing: .06em; color: var(--ivc-text-light); text-align: center; }
.ivc-comp-photo-empty { grid-column: 1 / -1; margin: 0; padding: 40px 12px; text-align: center; border: 1px dashed var(--ivc-border); border-radius: var(--ivc-radius-md); }
/* スペック。項目名と値を1行ずつ、細い罫線で区切る */
.ivc-comp-info { min-width: 0; }
.ivc-comp-specs { margin: 0; }
.ivc-comp-spec {
	display: grid;
	grid-template-columns: 6.5em minmax(0, 1fr);
	gap: 10px;
	padding: 7px 0;
	border-bottom: 1px solid var(--ivc-border);
	font-size: 14px;
	line-height: 1.5;
}
.ivc-comp-spec:first-child { padding-top: 0; }
.ivc-comp-spec-label { margin: 0; font-size: 12px; font-weight: 600; color: var(--ivc-text-light); padding-top: 2px; }
.ivc-comp-spec-value { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
/* 経歴 */
.ivc-comp-career {
	margin-top: 16px;
	padding: 12px 14px;
	border-radius: var(--ivc-radius-md);
	background: var(--ivc-bg-soft);
	font-size: 13.5px;
	line-height: 1.7;
	overflow-wrap: anywhere;
}
.ivc-comp-career-head { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--ivc-primary-dark); }
.ivc-comp-career-text { margin: 0; }
.ivc-comp-career .ivc-form-hint { margin: 0; }
.ivc-comp-extra { margin-top: 18px; }
/*
 * コンポジットの下の「経験した職種」等の表。
 * 応募者一覧のセルなど狭い場所に入ると、項目名の固定幅(170px)のせいで
 * 値の欄が十数pxまで潰れるため、枠が狭いときは縦積みにする。
 */
@container (max-width: 760px) {
	.ivc-comp-extra,
	.ivc-comp-extra tbody,
	.ivc-comp-extra tr,
	.ivc-comp-extra th,
	.ivc-comp-extra td {
		display: block;
		width: auto !important;
	}
	.ivc-comp-extra tr { padding: 8px 0; border-bottom: 1px solid var(--ivc-border); }
	.ivc-comp-extra tr:last-child { border-bottom: none; }
	.ivc-comp-extra th { padding: 0 0 2px; font-size: 0.82em; border: none; }
	.ivc-comp-extra td { padding: 0; border: none; }
}
/* 枠が狭いときは写真の下にスペックを回す。@container が使えない環境向けに画面幅でも同じ指定を置く */
@container (max-width: 640px) {
	.ivc-comp-body { grid-template-columns: 1fr; gap: 16px; padding: 16px; }
	.ivc-comp-top { padding: 14px 16px 12px; }
	.ivc-comp-head-name { font-size: 19px; }
	.ivc-comp-photos { max-width: 420px; }
}
@media (max-width: 640px) {
	.ivc-comp-body { grid-template-columns: 1fr; gap: 16px; padding: 16px; }
	.ivc-comp-top { padding: 14px 16px 12px; }
	.ivc-comp-head-name { font-size: 19px; }
	.ivc-comp-photos { max-width: 420px; }
}

/* ---------- 募集人数 / 確定人数 ---------- */
.ivc-headcount {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.ivc-headcount strong { color: var(--ivc-primary-dark); }
.ivc-headcount.is-filled strong { color: var(--ivc-success-text); }
.ivc-headcount-sep { margin: 0 3px; color: var(--ivc-text-light); }
.ivc-headcount-note {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	border-radius: var(--ivc-radius-pill);
	background: var(--ivc-bg-soft);
	color: var(--ivc-text-light);
	font-size: 12px;
	white-space: nowrap;
}
.ivc-headcount-note.is-filled {
	background: var(--ivc-success-bg);
	color: var(--ivc-success-text);
}

/* ---------- 事前資料の添付 ---------- */
.ivc-material-list {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ivc-material-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border: 1px solid var(--ivc-border);
	border-radius: var(--ivc-radius-sm);
	background: var(--ivc-bg);
}
.ivc-material-item a {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	text-decoration: none;
	color: var(--ivc-text);
}
.ivc-material-item a:hover .ivc-material-name { text-decoration: underline; }
.ivc-material-ext {
	flex: none;
	padding: 2px 7px;
	border-radius: var(--ivc-radius-sm);
	background: var(--ivc-primary-light);
	color: var(--ivc-primary-dark);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.ivc-material-name { overflow-wrap: anywhere; }
.ivc-material-size {
	margin-left: auto;
	flex: none;
	color: var(--ivc-text-light);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}
.ivc-sublabel {
	display: block;
	margin-top: 12px;
	font-weight: 700;
	font-size: 14px;
}

/* ---------- 募集情報ページのサイドナビ ---------- */
/*
 * 募集情報のタブは案件一覧・応募者一覧と縦に長いため、
 * 主要な見出しへ飛べる目次を左に添える。スクロールに追従する。
 */
.ivc-side-layout {
	display: grid;
	grid-template-columns: 228px minmax(0, 1fr);
	gap: 36px;
	align-items: start;
	margin-top: 24px;
}
.ivc-side-main { min-width: 0; }
/*
 * サイドナビ(v1.48.0で姉妹サイト「ココミル」と同じ見た目に揃えた)。
 *
 * 2サイトを行き来して運用されるため、同じ役割のメニューは同じ色・同じ形で出す。
 * ナビの列そのものを本文と同じ高さまで伸ばしてから sticky にしないと、
 * 少しスクロールしただけでナビが画面外へ流れてしまう。
 */
.ivc-side-nav-col {
	min-width: 0;
	align-self: stretch;
	height: 100%;
}
.ivc-side-nav {
	position: sticky;
	top: 76px;
	/* 項目が画面の高さに収まらないときは、ナビの中だけをスクロールさせる */
	max-height: calc(100vh - 96px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 16px 14px;
	border: 1px solid var(--ivc-border);
	border-radius: var(--ivc-radius-md);
	background: var(--ivc-bg-soft);
	font-size: 14px;
}
.ivc-side-nav-title {
	margin: 0 0 8px;
	padding: 0 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--ivc-text-light);
}
.ivc-side-nav-title + ul + .ivc-side-nav-title,
.ivc-side-nav ul + .ivc-side-nav-title {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--ivc-border);
}
.ivc-side-nav ul {
	list-style: none;
	margin: 0 0 4px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.ivc-side-nav a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 9px 10px;
	border-radius: var(--ivc-radius-sm);
	color: var(--ivc-text);
	text-decoration: none;
	font-size: 13.5px;
	line-height: 1.5;
}
.ivc-side-nav a:hover { background: #fff; color: var(--ivc-primary-dark); }
.ivc-side-nav a:focus-visible {
	outline: 2px solid var(--ivc-primary-dark);
	outline-offset: 2px;
}
.ivc-side-nav-cta {
	justify-content: center;
	background: var(--ivc-btn-primary-bg);
	color: #fff !important;
	font-weight: 700;
	margin-bottom: 6px;
}
.ivc-side-nav-cta:hover { background: var(--ivc-btn-primary-bg-hover); color: #fff !important; }
.ivc-side-nav-count {
	margin-left: auto;
	flex: none;
	min-width: 20px;
	padding: 1px 7px;
	border-radius: var(--ivc-radius-pill);
	background: var(--ivc-border);
	color: var(--ivc-text-light);
	font-size: 11px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	text-align: center;
}
.ivc-side-nav-count.is-alert {
	background: var(--ivc-error-text);
	color: #fff;
}
.ivc-side-nav-note {
	margin: 14px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--ivc-border);
	color: var(--ivc-text-light);
	font-size: 12px;
}
/*
 * スマホのサイドナビ(v1.48.0)
 *
 * ココミルと同じく、画面上部に貼り付く横スクロールのバーにする。
 * どの画面を開いていても、指1本でメニューを切り替えられる。
 */
@media (max-width: 900px) {
	.ivc-side-layout { grid-template-columns: 1fr; gap: 16px; margin-top: 16px; }
	.ivc-side-nav-col { height: auto; }
	.ivc-side-nav {
		position: sticky;
		top: 53px;
		z-index: 30;
		max-height: none;
		overflow-x: auto;
		overflow-y: visible;
		-webkit-overflow-scrolling: touch;
		display: flex;
		align-items: center;
		gap: 6px;
		padding: 10px 12px;
		background: #fff;
		box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
	}
	.ivc-side-nav-title { display: none; }
	.ivc-side-nav ul {
		display: flex;
		flex-direction: row;
		gap: 6px;
		margin: 0;
	}
	.ivc-side-nav ul + .ivc-side-nav-title { border: 0; }
	.ivc-side-nav a {
		white-space: nowrap;
		padding: 7px 12px;
		border-radius: var(--ivc-radius-pill);
		min-height: 0;
	}
	/* 「新規案件を投稿」は横スクロールしても縮ませない(v1.56.0) */
	.ivc-side-nav-cta { flex: none; margin-bottom: 0; }
	.ivc-side-nav-note { display: none; }
}

/* ---------- ダッシュボードの表の列幅 ---------- */
/*
 * 案件名の欄が狭いと1文字ずつ折り返してしまうため、列の配分を決め打ちにする。
 * ステータスはバッジ1つで足りるので、そのぶんを案件名へ回す。
 *
 * 【重要】幅の指定は必ず min-width の中に閉じ込める。
 * スマホでは表をカード表示(display:block)に組み替えるため、
 * 幅指定が残っているとセルが数十pxのまま固定され、1文字ずつ折り返してしまう。
 * 打ち消しのルールを後ろに足す方法は、nth-child のほうが詳細度が高く効かない。
 */
@media (min-width: 761px) {
	.ivc-shift-table,
	.ivc-entry-table { table-layout: fixed; width: 100%; }

	.ivc-shift-table th:nth-child(1), .ivc-shift-table td:nth-child(1) { width: 30%; }
	.ivc-shift-table th:nth-child(2), .ivc-shift-table td:nth-child(2) { width: 15%; }
	.ivc-shift-table th:nth-child(3), .ivc-shift-table td:nth-child(3) { width: 9%; }
	.ivc-shift-table th:nth-child(4), .ivc-shift-table td:nth-child(4) { width: 13%; }
	.ivc-shift-table th:nth-child(5), .ivc-shift-table td:nth-child(5) { width: 18%; }
	.ivc-shift-table th:nth-child(6), .ivc-shift-table td:nth-child(6) { width: 15%; }

	.ivc-entry-table th:nth-child(1), .ivc-entry-table td:nth-child(1) { width: 26%; }
	.ivc-entry-table th:nth-child(2), .ivc-entry-table td:nth-child(2) { width: 27%; }
	.ivc-entry-table th:nth-child(3), .ivc-entry-table td:nth-child(3) { width: 13%; }
	.ivc-entry-table th:nth-child(4), .ivc-entry-table td:nth-child(4) { width: 34%; }
}

/* 状況の欄はバッジを縦に積む */
.ivc-status-cell .ivc-status-badge { display: inline-block; margin: 0 0 4px; }
/* 職種バッジが隣の列にはみ出さないようにする */
.ivc-shift-table .ivc-tag { max-width: 100%; white-space: normal; }
/* 操作欄のボタンが2行に折れないようにする */
.ivc-entry-table .ivc-btn-small { white-space: nowrap; }
/* 人数の欄。エントリー件数は小さく添える */
.ivc-headcount-cell { white-space: normal; }
.ivc-headcount-entries {
	display: block;
	margin-top: 4px;
	color: var(--ivc-text-light);
	font-size: 12px;
}

/* 長い案件名や日付が1文字ずつ折り返さないようにする */
.ivc-shift-table td,
.ivc-entry-table td,
.ivc-entry-dates,
.ivc-form-hint {
	overflow-wrap: anywhere;
	word-break: normal;
}
.ivc-shift-table th { white-space: normal; }

@media (max-width: 760px) {
	/*
	 * カード表示のときは、項目名と値の表(ivc-table-plain)も縦積みにする。
	 * th に付けている固定幅が残ると、値の欄が十数pxまで潰れてしまう。
	 */
	.ivc-table-plain,
	.ivc-table-plain tbody,
	.ivc-table-plain tr,
	.ivc-table-plain th,
	.ivc-table-plain td {
		display: block;
		width: auto !important;
	}
	.ivc-table-plain tr {
		padding: 8px 0;
		border-bottom: 1px solid var(--ivc-border);
	}
	.ivc-table-plain tr:last-child { border-bottom: none; }
	.ivc-table-plain th {
		padding: 0 0 2px;
		font-size: 0.82em;
		border: none;
	}
	.ivc-table-plain td { padding: 0 0 2px; border: none; }
	/* 案件ページの募集内容の表も同じ扱いにする */
	.ivc-info-table,
	.ivc-info-table tbody,
	.ivc-info-table tr,
	.ivc-info-table th,
	.ivc-info-table td {
		display: block;
		width: auto !important;
	}
	.ivc-info-table tr { padding: 8px 0; border-bottom: 1px solid var(--ivc-border); }
	.ivc-info-table tr:last-child { border-bottom: none; }
	.ivc-info-table th { padding: 0 0 2px; font-size: 0.82em; border: none; color: var(--ivc-text-light); }
	.ivc-info-table td { padding: 0; border: none; }
}

/* ---------- 年齢確認・身分証 ---------- */
.ivc-tag-age {
	background: #fff3e0;
	color: #b45309;
	border: 1px solid #f3c88a;
	font-weight: 700;
}
.ivc-identity { margin-bottom: 22px; }
.ivc-identity-state {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
}
.ivc-identity-age {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.ivc-idstatus-none     { background: var(--ivc-bg-soft);      color: var(--ivc-text-light); }
.ivc-idstatus-pending  { background: #fff3e0;                 color: #b45309; }
.ivc-idstatus-verified { background: var(--ivc-success-bg);   color: var(--ivc-success-text); }
.ivc-idstatus-rejected { background: var(--ivc-error-bg);     color: var(--ivc-error-text); }
.ivc-id-doc-list {
	margin: 4px 0 10px;
	padding-left: 1.3em;
	color: var(--ivc-text-light);
	font-size: 13px;
	line-height: 1.8;
}
.ivc-id-privacy {
	padding: 10px 12px;
	border-radius: var(--ivc-radius-sm);
	background: var(--ivc-primary-light);
	color: var(--ivc-text);
}
.ivc-material-remove { margin-left: auto; flex: none; font-size: 12px; }
.ivc-id-cleanup {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ivc-id-cleanup li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 0;
	border-bottom: 1px solid var(--ivc-border);
}
.ivc-id-cleanup li:last-child { border-bottom: none; }
.ivc-id-cleanup form { margin-left: auto; }
.ivc-age-block { margin: 0; }
.ivc-age-block p:last-child { margin-bottom: 0; }
.ivc-verified-badge {
	display: inline-block;
	padding: 1px 8px;
	border-radius: var(--ivc-radius-pill);
	background: var(--ivc-success-bg);
	color: var(--ivc-success-text);
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

/* 案件詳細: 日給表示(選択した勤務日にあわせて金額が変わる) */
.ivc-pay-box { margin: 0 0 4px; }
.ivc-pay-box .ivc-entry-box-wage { transition: opacity .15s ease; }
.ivc-pay-box-unset .ivc-entry-box-wage { opacity: .45; }

/* 企業ダッシュボード: 案件名から、その案件のエントリー一覧へ */
.ivc-shift-title-link {
	color: var(--ivc-text);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}
.ivc-shift-title-link:hover,
.ivc-shift-title-link:focus-visible {
	color: var(--ivc-primary);
	border-bottom-color: currentColor;
}
.ivc-shift-title-link.is-current { color: var(--ivc-primary); }
.ivc-shift-title-note {
	display: inline-block;
	margin-top: 6px;
	font-size: 0.8em;
	color: var(--ivc-text-light);
	text-decoration: none;
	border-bottom: 1px solid rgba(15, 23, 42, 0.18);
}
.ivc-shift-title-note:hover,
.ivc-shift-title-note:focus-visible { color: var(--ivc-primary); border-bottom-color: currentColor; }
.ivc-shift-title-note.is-current { color: var(--ivc-primary); font-weight: 700; }
/* 案件名は別タブで開くので、外部リンクと分かる印を付ける */
.ivc-shift-title-link::after { content: " ↗"; font-size: .85em; opacity: .7; }
.ivc-section-title-sub {
	display: block;
	margin-top: 4px;
	font-size: 0.7em;
	font-weight: 500;
	color: var(--ivc-text-light);
}
.ivc-filter-note {
	margin: 0 0 12px;
	font-size: 0.85em;
	color: var(--ivc-text-light);
}

/* プロフィールを別ウィンドウで開くリンク */
.ivc-worker-profile-link {
	display: inline-block;
	margin-top: 4px;
	font-size: 0.85em;
	color: var(--ivc-primary, #2a9d8a);
	text-decoration: none;
	border-bottom: 1px solid rgba(42, 157, 138, 0.3);
}
.ivc-worker-profile-link:hover,
.ivc-worker-profile-link:focus-visible { border-bottom-color: currentColor; }
.ivc-worker-profile-link::after {
	content: "↗";
	margin-left: 4px;
	font-size: 0.9em;
}

/* プロフィール写真(バストアップ・全身)の入力欄 */
.ivc-photo-slots {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 8px 0 4px;
}
.ivc-photo-slot {
	padding: 12px;
	border: 1px solid var(--ivc-border, #e5e7eb);
	border-radius: 10px;
	background: #fff;
}
.ivc-photo-slot.is-empty { border-style: dashed; }
.ivc-photo-slot-label { margin: 0 0 8px; font-weight: 700; font-size: 0.9em; }
.ivc-photo-slot .ivc-photo-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 4;
	margin: 0 0 8px;
	border-radius: 8px;
	background: rgba(15, 23, 42, 0.04);
	color: var(--ivc-text-light, #6b7280);
	font-size: 0.85em;
}
.ivc-photo-slot .ivc-photo-remove { display: block; margin: 6px 0 8px; font-size: 0.85em; }
/* v1.66.0: 縦3:4で出す。img の width/height 属性が効いて横長に潰れていたため height を auto に戻す */
.ivc-photo-slot .ivc-photo-thumb,
.ivc-photo-slot .ivc-photo-preview { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: top center; border-radius: 8px; }
.ivc-input-file { padding: 6px; }
.ivc-comp-section-label {
	margin: 18px 0 8px;
	font-weight: 700;
	font-size: 0.9em;
	letter-spacing: .04em;
}

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

/* ---------------------------------------------------------------
 * 企業ダッシュボードの一覧(案件投稿一覧・応募者一覧)を縦組にする。
 *
 * 横並びの表では、列数のわりに幅が足りていなかった。応募者一覧は
 * 「コンパニオン」の列が狭くお名前が1文字ずつ折り返し、案件投稿一覧は
 * 案件名が何行にもなって職種や人数と高さが噛み合っていなかった。
 * どちらも操作ボタンが縦に伸びるため、行の背だけが高くなる。
 *
 * 1件を1枚のカードにして、項目名を縦に並べる。上から順に読めばよく、
 * 幅の取り合いが起きない。
 * ------------------------------------------------------------- */
.ivc-entry-table,
.ivc-entry-table tbody,
.ivc-entry-table tr,
.ivc-entry-table td,
.ivc-shift-table,
.ivc-shift-table tbody,
.ivc-shift-table tr,
.ivc-shift-table td {
	display: block;
	width: auto !important;
}
.ivc-entry-table,
.ivc-shift-table { border: none; background: none; }
.ivc-entry-table thead,
.ivc-shift-table thead { display: none; }

.ivc-entry-table tr,
.ivc-shift-table tr {
	margin: 0 0 14px;
	padding: 2px 18px;
	background: #fff;
	border: 1px solid var(--ivc-border);
	border-radius: 10px;
}
.ivc-entry-table tr:last-child,
.ivc-shift-table tr:last-child { margin-bottom: 0; }

.ivc-entry-table td,
.ivc-shift-table td {
	position: relative;
	padding: 12px 0 12px 118px;
	border: none;
	border-bottom: 1px solid rgba(15, 23, 42, 0.07);
	white-space: normal;
	overflow-wrap: anywhere;
}
.ivc-entry-table tr > td:last-child,
.ivc-shift-table tr > td:last-child { border-bottom: none; }

.ivc-entry-table td::before,
.ivc-shift-table td::before {
	content: attr(data-label);
	position: absolute;
	left: 0;
	top: 12px;
	width: 104px;
	font-size: 0.8em;
	font-weight: 700;
	line-height: 1.5;
	color: var(--ivc-text-light);
}

/* 縦組では列幅の制約がないので、お名前を無理に折らない */
.ivc-entry-table .ivc-worker-cell-head { flex-wrap: wrap; }
.ivc-entry-table .ivc-worker-cell-head > span { overflow-wrap: normal; word-break: normal; }

/* 操作の欄はボタンが並ぶので、余白を少し詰めて縦に長くなりすぎないように */
.ivc-entry-table .ivc-entry-actions > * { margin-bottom: 8px; }
.ivc-entry-table .ivc-entry-actions > *:last-child { margin-bottom: 0; }

@media (max-width: 600px) {
	/* 幅がないときは項目名を値の上に置く */
	.ivc-entry-table tr,
	.ivc-shift-table tr { padding: 2px 14px; }
	.ivc-entry-table td,
	.ivc-shift-table td { padding-left: 0; }
	.ivc-entry-table td::before,
	.ivc-shift-table td::before {
		position: static;
		display: block;
		width: auto;
		margin-bottom: 4px;
	}
}

/* 縦組の案件投稿一覧: 案件名を主役として少し大きく見せる */
.ivc-shift-table .ivc-shift-title-link { font-size: 1.02em; line-height: 1.6; }
.ivc-shift-table .ivc-headcount-cell { display: block; }

/* ---------------------------------------------------------------
 * 案件詳細ページの左右の余白。
 *
 * このテンプレートはテーマのコンテナの外に出力されるため、
 * これまで本文が画面の端から端まで広がっていた。テーマの
 * .container-2xl と同じ幅(最大1280px・左右16px)に合わせる。
 * ------------------------------------------------------------- */
.ivc-shift-single {
	max-width: 1280px;
	margin: 0 auto;
	padding: 28px 16px 64px;
}

@media (max-width: 760px) {
	.ivc-shift-single { padding: 18px 20px 44px; }
	/* 表の項目名・本文が小さくなりすぎないようにする */
	.ivc-shift-single .ivc-info-table { font-size: 0.95em; }
	.ivc-shift-single .ivc-info-table th { font-size: 0.85em; }
	.ivc-shift-single .ivc-section-title { font-size: 1.15em; }
}

/* 決定のお知らせ(対応が必要なものとは色で分ける) */
.ivc-todo-decided-section { background: #eef8f6; border-color: #c9e9e2; }
.ivc-todo-title.is-info::before { background: #2a9d8a; }
.ivc-todo-decided .ivc-todo-label { color: #2a9d8a; }

/* 勤務日ごとの採用状況 */
.ivc-headcount-dates {
	list-style: none;
	margin: 8px 0 0;
	padding: 8px 0 0;
	border-top: 1px dashed rgba(15, 23, 42, 0.12);
	display: grid;
	gap: 4px;
	font-size: 0.86em;
}
.ivc-headcount-dates li {
	display: grid;
	grid-template-columns: 84px auto 1fr;
	gap: 10px;
	align-items: baseline;
}
.ivc-headcount-dates .ivc-hd-date { color: var(--ivc-text-light); font-variant-numeric: tabular-nums; }
.ivc-headcount-dates .ivc-hd-count { font-variant-numeric: tabular-nums; }
.ivc-headcount-dates .ivc-hd-count strong { color: var(--ivc-primary); }
.ivc-headcount-dates .ivc-hd-state { font-size: 0.92em; color: #b45309; }
.ivc-headcount-dates li.is-filled .ivc-hd-count strong { color: var(--ivc-success-text, #1c7c54); }
.ivc-headcount-dates li.is-filled .ivc-hd-state { color: var(--ivc-success-text, #1c7c54); }

/* 勤務日ごとに確定した方のお名前(v1.41.0)。
   日付・人数の行の下に、全幅で折り返して並べる。 */
.ivc-headcount-dates .ivc-hd-names {
	grid-column: 1 / -1;
	padding-left: 94px;
	margin-top: 2px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 6px;
}
.ivc-headcount-dates .ivc-hd-names.is-empty {
	display: block;
	color: var(--ivc-text-light);
}
.ivc-hd-name {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	max-width: 100%;
	padding: 2px 9px 2px 3px;
	border: 1px solid var(--ivc-border);
	border-radius: 999px;
	background: #fff;
	color: var(--ivc-text);
	text-decoration: none;
	line-height: 1.7;
}
.ivc-hd-name:hover,
.ivc-hd-name:focus-visible { border-color: var(--ivc-primary); color: var(--ivc-primary); }
.ivc-hd-name img { border-radius: 50%; display: block; flex: none; }
.ivc-hd-name > span { overflow-wrap: anywhere; }

@media (max-width: 767px) {
	.ivc-headcount-dates li { grid-template-columns: 76px auto 1fr; gap: 8px; }
	.ivc-headcount-dates .ivc-hd-names { padding-left: 0; }
}

/* ---------------------------------------------------------------
 * 交通費・日給まわりの表示(v1.29.0)
 * ------------------------------------------------------------- */
.ivc-pay-strong { font-size: 1.15em; color: var(--ivc-primary); }

/* 案件詳細のエントリーカード内、日給のすぐ下に置く交通費 */
.ivc-entry-box-transport {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 4px;
	padding: 8px 10px;
	background: var(--ivc-bg-soft, #f4f7f6);
	border-radius: 8px;
	font-size: 0.9em;
}
.ivc-entry-box-transport-label { color: var(--ivc-text-light); }
.ivc-entry-box-transport-value { font-weight: 600; }

/* 案件登録フォーム: 交通費の金額欄 */
.ivc-transport-amount { margin: 8px 0 6px; }
.ivc-sub-label { display: block; font-size: 0.85em; color: var(--ivc-text-light); margin-bottom: 4px; }
.ivc-input-suffix { display: flex; align-items: center; gap: 6px; }
.ivc-input-suffix .ivc-input { margin: 0; }

/* 稼働報告フォームの「日給・交通費」まとめ */
.ivc-report-terms {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 4px 12px;
	margin: 0 0 12px;
	padding: 10px 12px;
	background: var(--ivc-bg-soft, #f4f7f6);
	border-radius: 8px;
	font-size: 0.92em;
}
.ivc-report-terms dt { color: var(--ivc-text-light); margin: 0; }
.ivc-report-terms dd { margin: 0; }
.ivc-report-terms dd strong { font-size: 1.05em; color: var(--ivc-primary); }
.ivc-report-terms dd .ivc-note { display: block; }
.ivc-report-payout-note { margin-bottom: 14px; }

/* ---------------------------------------------------------------
 * お気に入り / メッセージ一覧 / 勤務日ごとの確定メンバー(v1.29.0)
 * ------------------------------------------------------------- */

/* 現在開いているメニューを分かるようにする */
.ivc-side-nav a.is-active {
	background: #fff;
	color: var(--ivc-primary-dark);
	font-weight: 700;
	box-shadow: inset 3px 0 0 var(--ivc-primary-dark);
}
@media (max-width: 900px) {
	.ivc-side-nav a.is-active {
		box-shadow: none;
		background: var(--ivc-primary-light);
	}
}

/* お気に入りの星 */
.ivc-fav-form { display: inline-flex; margin: 0; }
.ivc-fav-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	border: 1px solid var(--ivc-border);
	background: #fff;
	border-radius: 999px;
	padding: 3px 10px;
	font-size: 0.82em;
	line-height: 1.6;
	color: var(--ivc-text-light);
	cursor: pointer;
	transition: background .15s, color .15s, border-color .15s;
}
.ivc-fav-btn:hover { border-color: #e0a800; color: #a97400; background: #fffbf0; }
.ivc-fav-btn.is-on { border-color: #f0c14b; background: #fff8e6; color: #a97400; }
.ivc-fav-star { font-size: 1.15em; line-height: 1; }
.ivc-fav-btn.is-on .ivc-fav-star { color: #f0a500; }

/* お気に入り・メッセージの一覧 */
.ivc-fav-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.ivc-fav-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid var(--ivc-border);
	border-radius: 12px;
}
.ivc-fav-item.is-unread { border-color: var(--ivc-primary); background: var(--ivc-primary-light, #eef8f6); }
.ivc-fav-body { flex: 1 1 auto; min-width: 0; }
.ivc-fav-name { margin: 0; font-weight: 700; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ivc-fav-meta { margin: 2px 0 6px; font-size: 0.85em; color: var(--ivc-text-light); }
.ivc-fav-meta:empty { display: none; }
.ivc-fav-action { flex: none; }

/* 勤務日ごとの確定メンバー */
.ivc-day-members { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.ivc-day-members-row {
	padding: 12px 14px;
	background: #fff;
	border: 1px solid var(--ivc-border);
	border-radius: 10px;
}
.ivc-day-members-date {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 8px;
	font-weight: 700;
}
.ivc-day-members-count { font-size: 0.85em; font-weight: 600; color: var(--ivc-text-light); }
.ivc-day-members-count.is-short { color: #c0392b; }
.ivc-day-members-names { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ivc-day-member-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px 4px 4px;
	border: 1px solid var(--ivc-border);
	border-radius: 999px;
	text-decoration: none;
	color: var(--ivc-text);
	font-size: 0.88em;
}
.ivc-day-member-link:hover { border-color: var(--ivc-primary); color: var(--ivc-primary-dark); background: var(--ivc-primary-light, #eef8f6); }
.ivc-day-members-empty { margin: 0; font-size: 0.85em; color: var(--ivc-text-light); }

@media (max-width: 600px) {
	.ivc-fav-item { flex-wrap: wrap; }
	.ivc-fav-action { width: 100%; }
	.ivc-fav-action .ivc-btn { width: 100%; }
}

/* ---------------------------------------------------------------
 * 稼働報告の完了 / 到着のお知らせ、差し戻しの案内(v1.30.0)
 * ------------------------------------------------------------- */
.ivc-done-banner {
	margin: 0 0 22px;
	padding: 20px 22px;
	background: linear-gradient(180deg, #eefaf3 0%, #ffffff 100%);
	border: 1px solid #b7e4c9;
	border-left: 5px solid #2e9e5b;
	border-radius: 12px;
}
.ivc-done-banner.is-action {
	background: linear-gradient(180deg, #eef8f6 0%, #ffffff 100%);
	border-color: #b5e3d9;
	border-left-color: #2a9d8a;
}
.ivc-done-badge {
	display: inline-block;
	margin: 0 0 8px;
	padding: 3px 12px;
	border-radius: 999px;
	background: #2e9e5b;
	color: #fff;
	font-size: 0.78em;
	font-weight: 700;
	letter-spacing: .04em;
}
.ivc-done-banner.is-action .ivc-done-badge { background: #2a9d8a; }
.ivc-done-title { margin: 0 0 6px; font-size: 1.18em; font-weight: 700; line-height: 1.45; }
.ivc-done-text { margin: 0; font-size: 0.94em; line-height: 1.8; }
.ivc-done-next {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px dashed #b7e4c9;
}
.ivc-done-banner.is-action .ivc-done-next { border-top-color: #b5e3d9; }
.ivc-done-next-label { margin: 0 0 2px; font-weight: 700; }
.ivc-done-next-text { margin: 0 0 10px; font-size: 0.88em; color: var(--ivc-text-light); }

/* 実働時間の差し戻し */
.ivc-todo-reject-section { background: #fff5f5; border-color: #f2c2c2; }
.ivc-todo-title.is-alert::before { background: #c0392b; }
.ivc-todo-item.ivc-todo-reject .ivc-todo-label { color: #c0392b; }
.ivc-reject-note {
	margin: 10px 0 0;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #f2c2c2;
	border-radius: 8px;
	font-size: 0.9em;
	line-height: 1.75;
}
.ivc-reject-note-label {
	display: block;
	font-size: 0.85em;
	font-weight: 700;
	color: #c0392b;
	margin-bottom: 2px;
}
.ivc-reject-note-empty { color: var(--ivc-text-light); border-style: dashed; }

@media (max-width: 600px) {
	.ivc-done-banner { padding: 16px; }
	.ivc-done-next .ivc-btn { width: 100%; }
}

/* ---------------------------------------------------------------
 * 報酬の受け取り: 内訳と申請前の確認(v1.30.0)
 * ------------------------------------------------------------- */
.ivc-payout-breakdown {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 4px 16px;
	margin: 10px 0 14px;
	padding: 12px 14px;
	background: var(--ivc-bg-soft, #f4f7f6);
	border-radius: 10px;
	font-size: 0.92em;
}
.ivc-payout-breakdown dt { margin: 0; color: var(--ivc-text-light); }
.ivc-payout-breakdown dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
/* 合計行(いちばん下の締め)には区切り線を入れる */
.ivc-payout-breakdown dt.is-total,
.ivc-payout-breakdown dd.is-total {
	margin-top: 2px;
	padding-top: 7px;
	border-top: 1px solid var(--ivc-border);
}
.ivc-payout-breakdown dt.is-total { color: var(--ivc-text); font-weight: 600; }
.ivc-payout-breakdown dd.is-total strong { font-size: 1.05em; }

.ivc-payout-review {
	margin: 16px 0 4px;
	padding: 18px 20px;
	background: #fff;
	border: 2px solid var(--ivc-primary);
	border-radius: 12px;
}
.ivc-payout-review-title { margin: 0 0 14px; font-size: 1.05em; }
.ivc-payout-review-list {
	display: grid;
	grid-template-columns: 130px minmax(0, 1fr);
	gap: 8px 16px;
	margin: 0 0 14px;
}
.ivc-payout-review-list dt { margin: 0; color: var(--ivc-text-light); font-size: 0.9em; }
.ivc-payout-review-list dd { margin: 0; font-variant-numeric: tabular-nums; }
.ivc-payout-review-total strong { font-size: 1.3em; color: var(--ivc-primary); }
.ivc-payout-review-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ivc-payout-review-actions .ivc-inline-form { margin: 0; }

@media (max-width: 600px) {
	.ivc-payout-review-list { grid-template-columns: 1fr; gap: 2px; }
	.ivc-payout-review-list dd { margin-bottom: 8px; }
	.ivc-payout-review-actions { flex-direction: column; align-items: stretch; }
	.ivc-payout-review-actions .ivc-btn { width: 100%; }
}

/* ---------------------------------------------------------------
 * 企業紹介ページの評価・実績、案件の企業名リンク(v1.31.0)
 * ------------------------------------------------------------- */
.ivc-shift-clinic-link { font-weight: 600; }

.ivc-clinic-reputation { margin-top: 28px; }
.ivc-reputation-head { display: grid; gap: 10px; }
.ivc-reputation-score { display: flex; align-items: baseline; gap: 6px; }
.ivc-reputation-recommend { margin: 0; font-size: 0.95em; }
.ivc-reputation-recommend strong { color: var(--ivc-primary); }
.ivc-reputation-criteria {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.ivc-reputation-criteria li {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 4px 12px;
	background: var(--ivc-bg-soft, #f4f7f6);
	border-radius: 999px;
	font-size: 0.85em;
}
.ivc-reputation-criteria-label { color: var(--ivc-text-light); }
.ivc-reputation-criteria-value { font-weight: 700; color: var(--ivc-primary); font-variant-numeric: tabular-nums; }

.ivc-reputation-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.ivc-reputation-item {
	padding: 14px 16px;
	background: #fff;
	border: 1px solid var(--ivc-border);
	border-radius: 10px;
}
.ivc-reputation-item-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 6px;
}
.ivc-reputation-item-rating { font-weight: 700; color: var(--ivc-primary); }
.ivc-reputation-item-date { font-size: 0.82em; color: var(--ivc-text-light); }
.ivc-reputation-item-body { margin: 0; font-size: 0.93em; line-height: 1.8; }

.ivc-reputation-stats {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 6px 16px;
	margin: 0;
}
.ivc-reputation-stats dt { margin: 0; color: var(--ivc-text-light); }
.ivc-reputation-stats dd { margin: 0; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }

.ivc-review-prompt { margin: 0 0 8px; }

/* ---------------------------------------------------------------
 * サイドナビの TODO 入口(v1.32.0)
 *
 * 「いま何をすればよいか」を、どの画面からでも1クリックで
 * 確認できるようにする。0件のときも項目自体は残し、
 * 「なし」と出して確認済みであることが分かるようにする。
 * ------------------------------------------------------------- */
.ivc-side-nav-todo-link {
	font-weight: 700;
}
.ivc-side-nav-todo-link.has-todo {
	background: #fff6ed;
	color: #a1560c;
	border: 1px solid #f0cfa5;
}
.ivc-side-nav-todo-link.has-todo:hover {
	background: #ffefdf;
	color: #8a4a08;
}
.ivc-side-nav-todo-link:not(.has-todo) .ivc-side-nav-count {
	background: transparent;
	color: var(--ivc-text-light);
	font-weight: 500;
}

.ivc-todo-group { scroll-margin-top: 90px; }
.ivc-todo { scroll-margin-top: 90px; }

/* 対応が必要なことが無いときの表示 */
.ivc-todo.is-empty {
	background: var(--ivc-bg-soft, #f4f7f6);
	border-color: var(--ivc-border);
}
.ivc-todo-title.is-done::before { background: #2e9e5b; }
.ivc-todo-empty {
	margin: 0;
	font-size: 0.9em;
	color: var(--ivc-text-light);
}
.ivc-todo-items { display: grid; gap: 10px; }

/* ---------------------------------------------------------------
 * 案件の編集(v1.33.0)
 *
 * 時給・交通費は変更できない項目として、入力欄ではなく
 * 「いまの値＋変更できません」の表示に置き換える。
 * ------------------------------------------------------------- */
.ivc-locked-value {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0 0 4px;
	padding: 10px 12px;
	background: var(--ivc-bg-soft, #f4f7f6);
	border: 1px dashed var(--ivc-border);
	border-radius: 8px;
	font-weight: 700;
}
.ivc-locked-badge {
	flex: none;
	padding: 2px 10px;
	border-radius: 999px;
	background: #e9edf1;
	color: var(--ivc-text-light);
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: .02em;
}
.ivc-form-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 8px;
}
.ivc-shift-edit-link { margin: 0 0 8px; }
.ivc-shift-form { scroll-margin-top: 90px; }

@media (max-width: 600px) {
	.ivc-form-actions { flex-direction: column; align-items: stretch; }
	.ivc-form-actions .ivc-btn { width: 100%; text-align: center; }
}

/* ---------------------------------------------------------------
 * 直接取引の防止表記(v1.34.0)
 * ------------------------------------------------------------- */
.ivc-direct-note {
	margin: 16px 0;
	padding: 14px 16px;
	background: #fffaf2;
	border: 1px solid #f0d9b5;
	border-left: 4px solid #d9962a;
	border-radius: 10px;
}
.ivc-direct-note-title {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 0 0 6px;
	font-weight: 700;
	font-size: 0.95em;
	color: #8a5a08;
}
.ivc-direct-note-title::before {
	content: "!";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 17px;
	height: 17px;
	border-radius: 50%;
	background: #d9962a;
	color: #fff;
	font-size: 0.72em;
	font-weight: 700;
	flex: none;
}
.ivc-direct-note-list {
	margin: 0;
	padding-left: 1.15em;
	font-size: 0.87em;
	line-height: 1.85;
	color: #6b4a12;
}
.ivc-direct-note-list li { margin: 0; }

.ivc-direct-note-short {
	padding: 8px 11px;
	background: #fffaf2;
	border: 1px solid #f0d9b5;
	border-radius: 8px;
	color: #6b4a12;
}

/* 注意(黄色)のお知らせ */
.ivc-notice-warning {
	background: #fffaf2;
	border: 1px solid #f0d9b5;
	color: #6b4a12;
}

/* ---------------------------------------------------------------
 * 勤務日ごとの稼働報告 / メッセージの制限(v1.36.0)
 * ------------------------------------------------------------- */
.ivc-day-reports { margin-top: 10px; }
.ivc-day-reports-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 8px;
	font-weight: 700;
}
.ivc-day-reports-count {
	font-size: 0.82em;
	font-weight: 600;
	color: var(--ivc-text-light);
	font-variant-numeric: tabular-nums;
}
.ivc-day-report-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.ivc-day-report {
	padding: 12px 14px;
	background: #fff;
	border: 1px solid var(--ivc-border);
	border-radius: 10px;
}
.ivc-day-report.is-done { background: #f6fbf8; border-color: #cbe8d7; }
.ivc-day-report-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 6px;
}
.ivc-day-report-date { font-weight: 700; }
.ivc-day-report-state { font-size: 0.78em; color: var(--ivc-text-light); }
.ivc-day-report-state.is-done { color: #2e9e5b; font-weight: 700; }
.ivc-day-report-state.is-todo { color: #c0392b; font-weight: 700; }
.ivc-day-report-summary { margin: 0; font-size: 0.9em; }
.ivc-day-report-fields { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 8px; }
.ivc-day-report-fields label { font-size: 0.88em; }
.ivc-day-report-note { display: block; font-size: 0.88em; margin-bottom: 8px; }
.ivc-day-report-table { margin: 8px 0 12px; font-size: 0.9em; }

/* ---------------------------------------------------------------
 * エントリー状況(縦積みカード) v1.37.0
 *
 * これまで「案件/企業/ステータス/操作」の4カラム表で出していたため、
 * 稼働報告のフォームが右端の狭い列に押し込まれ、とても読みにくかった。
 * 1件=1カードにして、稼働報告はカード本文の幅いっぱいに置く。
 * ------------------------------------------------------------- */
.ivc-entry-cards { display: grid; gap: 14px; }
.ivc-entry-card {
	border: 1px solid var(--ivc-border);
	border-radius: var(--ivc-radius-md);
	background: var(--ivc-bg);
	overflow: hidden;
}
.ivc-entry-card-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px 20px;
	padding: 16px 20px;
	background: var(--ivc-bg-soft);
	border-bottom: 1px solid var(--ivc-border);
}
.ivc-entry-card-title { flex: 1 1 320px; min-width: 0; }
.ivc-entry-card-title .ivc-shift-title-link { font-weight: 700; line-height: 1.6; }
.ivc-entry-clinic {
	display: block;
	margin-top: 5px;
	font-size: 12px;
	color: var(--ivc-text-light);
}
.ivc-entry-card-status { flex: 0 1 260px; text-align: right; }
.ivc-entry-card-status .ivc-form-hint,
.ivc-entry-card-status .ivc-cancel-summary { margin: 6px 0 0; text-align: left; }
.ivc-entry-card-body { padding: 16px 20px; }
.ivc-entry-card-body > p:first-child { margin-top: 0; }
.ivc-entry-empty {
	margin: 0;
	padding: 22px 20px;
	border: 1px dashed var(--ivc-border);
	border-radius: var(--ivc-radius-md);
	background: var(--ivc-bg-soft);
	text-align: center;
	color: var(--ivc-text-light);
}

@media (max-width: 782px) {
	.ivc-entry-card-head { padding: 14px 16px; }
	.ivc-entry-card-status { flex-basis: 100%; text-align: left; }
	.ivc-entry-card-body { padding: 14px 16px; }
}

/* メッセージ画面の警告と、成立前のロック */
.ivc-chat-warning {
	margin: 0 0 16px;
	padding: 11px 14px;
	background: #fdeaea;
	border: 1px solid #f0c2c2;
	border-left: 4px solid #c0392b;
	border-radius: 9px;
	font-size: 0.88em;
	line-height: 1.75;
	color: #8a2020;
}
.ivc-thread-locked {
	margin: 16px 0 0;
	padding: 18px 20px;
	background: var(--ivc-bg-soft, #f4f7f6);
	border: 1px dashed var(--ivc-border);
	border-radius: 10px;
	text-align: center;
}
.ivc-thread-locked-title { margin: 0 0 6px; font-weight: 700; }
.ivc-thread-locked-text { margin: 0; font-size: 0.9em; color: var(--ivc-text-light); line-height: 1.8; }

/* 当日の詳細(常時表示) */
.ivc-day-info-open {
	margin-top: 18px;
	padding: 16px 18px;
	background: var(--ivc-bg-soft, #f4f7f6);
	border-radius: 10px;
}
.ivc-day-info-title { margin: 0 0 8px; font-size: 1em; }

@media (max-width: 600px) {
	.ivc-day-report-fields { flex-direction: column; gap: 10px; }
}

/* 案件登録の下書き案内 */
.ivc-draft-note {
	margin: 10px 0 0;
	padding: 9px 12px;
	background: #eef8f6;
	border: 1px solid #b5e3d9;
	border-radius: 8px;
	font-size: 0.86em;
	color: #14567a;
}


/* ---------------------------------------------------------------
 * スマホでのタップしやすさ(v1.38.0)
 *
 * 指で操作する画面なのに、リンクやボタンの高さが22〜32pxしかなく、
 * 隣の項目を押してしまいやすかった。押せる範囲を広げる。
 * ------------------------------------------------------------- */
@media (max-width: 860px) {
	.ivc-calendar-nav { width: 44px; height: 44px; font-size: 20px; }
	.ivc-fav-btn,
	.ivc-worker-profile-link,
	.ivc-shift-title-note {
		display: inline-flex;
		align-items: center;
		min-height: 40px;
	}
	.ivc-required { font-size: 0.8em; }
}


/* ---------------------------------------------------------------
 * 応募者一覧のエントリー日(v1.43.0)
 * ------------------------------------------------------------- */
.ivc-entry-date-cell { font-variant-numeric: tabular-nums; line-height: 1.7; }

/* ---------------------------------------------------------------
 * サイドナビの「その他」グループ(v1.43.0)。
 * 2つ目のリストが上のリストとくっつかないよう、間に区切りを入れる。
 * ------------------------------------------------------------- */
.ivc-side-nav ul + .ivc-side-nav-title {
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid var(--ivc-border);
}

/* ---------------------------------------------------------------
 * プロフィール写真の選択プレビュー(v1.46.0)
 *
 * 選んだ写真・外す予定の写真が、保存前でも目で見て分かるようにする。
 * ------------------------------------------------------------- */
.ivc-photo-preview {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 8px;
	border: 2px solid var(--ivc-primary);
}
.ivc-photo-preview.is-small {
	width: 120px;
	height: 120px;
	aspect-ratio: auto;
	border-radius: 6px;
}
.ivc-photo-pending {
	margin: 6px 0 0;
	font-size: 0.86em;
	line-height: 1.6;
	color: var(--ivc-primary);
}
.ivc-photo-slot.is-removing .ivc-photo-thumb,
.ivc-photo-item.is-removing .ivc-photo-thumb {
	opacity: 0.35;
	filter: grayscale(1);
}
.ivc-photo-removing-note {
	margin: 6px 0 0;
	font-size: 0.86em;
	line-height: 1.6;
	color: #b45309;
}
.ivc-work-photo-preview { margin-bottom: 10px; }

/* 全日程のみの募集(v1.47.0) */
.ivc-workday-allonly {
	margin: 0 0 10px;
	padding: 12px 14px;
	border: 1px solid var(--ivc-border);
	border-radius: 8px;
	background: var(--ivc-bg-soft, #f7f9fb);
	line-height: 1.7;
}
.ivc-workday-allonly p { margin: 0; }
.ivc-workday-allonly-dates {
	margin-top: 6px !important;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.ivc-workday-allonly-note {
	margin-top: 4px !important;
	font-size: 0.85em;
	color: var(--ivc-text-light);
}

/* 案件登録フォーム: 最寄り駅(複数登録できる / v1.48.0) */
.ivc-stations { display: flex; flex-direction: column; gap: 8px; margin: 0 0 8px; }
.ivc-station-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ivc-station-row .ivc-station-name { flex: 1 1 180px; min-width: 0; margin: 0; }
.ivc-station-sep { color: var(--ivc-text-light); font-size: 0.9em; white-space: nowrap; }
.ivc-station-row .ivc-station-min { width: 5.5em; }
.ivc-station-remove { flex: 0 0 auto; }
@media (max-width: 600px) {
	.ivc-station-row .ivc-station-name { flex: 1 1 100%; }
}

/* 会員限定のご案内(ログイン前に案件一覧などを開いたとき / v1.48.0) */
.ivc-members-gate {
	border: 1px solid var(--ivc-border);
	border-radius: 12px;
	background: #fff;
	padding: 28px 20px;
	text-align: center;
	max-width: 560px;
	margin: 24px auto;
}
.ivc-members-gate h2 { margin: 0 0 8px; font-size: 1.15em; }
.ivc-members-gate p { margin: 0 0 16px; color: var(--ivc-text-light); }
.ivc-members-gate .ivc-members-gate-actions {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}

/* 稼働報告の「勤務した時間」(v1.48.2) */
.ivc-time-range { display: flex; flex-direction: column; gap: 4px; }
.ivc-time-range-label {
	font-size: 0.85em;
	font-weight: 700;
	color: var(--ivc-text-light);
}
.ivc-time-range-inputs { display: flex; align-items: center; gap: 8px; }
.ivc-time-range-inputs .ivc-input { margin: 0; width: auto; min-width: 7.5em; }
.ivc-time-range-sep { color: var(--ivc-text-light); }
.ivc-time-range-calc {
	margin: 0;
	font-size: 0.85em;
	font-weight: 700;
	color: var(--ivc-primary-dark);
	font-variant-numeric: tabular-nums;
}
.ivc-time-range-calc.is-error { color: var(--ivc-error-text); }

/* 差額のご精算(v1.48.5) */
.ivc-settlement-due { margin: 10px 0; }
.ivc-settlement-due p { margin: 0 0 6px; }
.ivc-settlement-due .ivc-inline-form { margin: 0; }
.ivc-settlement-refund { margin: 10px 0; }

/* 募集人数が埋まった案件(v1.49.0) */
.ivc-shift-card.is-filled {
	/* 中身は読めるまま、他の募集中の案件より一段うしろに見せる */
	filter: grayscale(1);
	opacity: 0.72;
	background: var(--ivc-bg-soft);
}
.ivc-shift-card.is-filled:hover,
.ivc-shift-card.is-filled:focus-within { opacity: 0.92; }
.ivc-tag-filled {
	background: var(--ivc-text-light);
	color: #fff;
	font-weight: 700;
}
.ivc-shift-filled-note {
	font-size: 0.85em;
	color: var(--ivc-text-light);
}

/* エントリーがまだ無い案件(v1.49.0) */
.ivc-shift-title-note.is-empty {
	color: var(--ivc-text-light);
	text-decoration: none;
	cursor: default;
}

/* 案件の投稿・編集中に出す「一覧に戻る」(v1.50.1) */
.ivc-form-back { margin: 0 0 12px; font-size: 0.9em; }

/* 決済まわりのお知らせ(v1.51.0) — ココミルと同じ見せ方にそろえる */
.ivc-paid-notice { line-height: 1.9; }
.ivc-paid-notice .ivc-form-hint { display: block; margin-top: 4px; }
.ivc-card-missing { margin: 0 0 16px; }
.ivc-card-missing p { margin: 0 0 8px; }
.ivc-card-missing p:last-child { margin-bottom: 0; }

/* =========================================================================
 * v1.59.0 姉妹サイト「ココミル」に全面的に見た目をそろえる
 *
 * 企業側・イベントコンパニオン側の会員画面は、2サイトを行き来して
 * 運用されるため、同じ役割のものは同じ色・同じ形で出す。
 * ここではココミル側にあってイベコン側に無かった見た目を移植している。
 * ====================================================================== */

/* ---------- 応募者(エントリー)一覧のカード表示 ---------- */
.ivc-applicant-list { display: flex; flex-direction: column; gap: 18px; margin: 6px 0 0; }
.ivc-applicant {
	border: 1px solid var(--ivc-border, #e3e9e8);
	border-radius: var(--ivc-radius-lg, 16px);
	background: #fff;
	box-shadow: var(--ivc-shadow, 0 2px 14px rgba(30,40,40,.07));
	overflow: hidden;
	scroll-margin-top: 90px;
}
.ivc-applicant-head {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
	padding: 16px 20px;
	background: var(--ivc-bg-soft, #f4f7f6);
	border-bottom: 1px solid var(--ivc-border, #e3e9e8);
}
.ivc-applicant-who { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ivc-applicant-who img { border-radius: 50%; }
.ivc-applicant-who-text { min-width: 0; }
.ivc-applicant-name-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.ivc-applicant-name { margin: 0; font-size: 16px; font-weight: 700; color: var(--ivc-text, #2f3a3a); line-height: 1.4; }
.ivc-applicant-meta {
	margin: 2px 0 0; font-size: 12.5px; color: var(--ivc-text-light, #74807e);
	font-variant-numeric: tabular-nums;
}

.ivc-applicant-facts {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 1px; margin: 0; padding: 0;
	background: var(--ivc-border, #e3e9e8);
	border-bottom: 1px solid var(--ivc-border, #e3e9e8);
}
.ivc-applicant-facts > div { background: #fff; padding: 13px 20px; min-width: 0; }
.ivc-applicant-facts dt {
	margin: 0 0 4px; font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
	color: var(--ivc-text-light, #74807e);
}
.ivc-applicant-facts dd {
	margin: 0; font-size: 14px; line-height: 1.6; color: var(--ivc-text, #2f3a3a);
	overflow-wrap: anywhere;
}
.ivc-applicant-facts dd strong { font-size: 16px; }
.ivc-applicant-sub { display: block; font-size: 12px; color: var(--ivc-text-light, #74807e); margin-top: 2px; }
.ivc-applicant-flag {
	display: inline-block; padding: 2px 10px; border-radius: var(--ivc-radius-pill, 999px);
	font-size: 11.5px; font-weight: 700;
	background: #f1f4f3; color: var(--ivc-text-light, #74807e); border: 1px solid var(--ivc-border, #e3e9e8);
}
.ivc-applicant-flag.is-yes {
	background: var(--ivc-primary-light, #e6f7f4); color: var(--ivc-primary-dark, #2a9d8a); border-color: #bfe9e1;
}
.ivc-applicant-profile-link {
	margin: 0; padding: 12px 20px;
	border-bottom: 1px solid var(--ivc-border, #e3e9e8);
	font-size: 13.5px; font-weight: 700;
}
.ivc-applicant-actions { padding: 16px 20px 18px; }
.ivc-applicant-actions > p:first-child { margin-top: 0; }

@media (max-width: 640px) {
	.ivc-applicant-head,
	.ivc-applicant-facts > div,
	.ivc-applicant-profile-link,
	.ivc-applicant-actions { padding-left: 14px; padding-right: 14px; }
	.ivc-applicant-facts { grid-template-columns: 1fr; }
}

/* ---------- 数字カードをリンクとして見せる ---------- */
.ivc-stat-link {
	display: block; text-decoration: none; color: inherit; position: relative;
	transition: transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease, border-color .22s ease;
}
.ivc-stat-link:hover {
	transform: translateY(-3px);
	border-color: var(--ivc-primary, #3ec9b0);
	box-shadow: 0 10px 24px rgba(42, 157, 138, .16);
}
.ivc-stat-link:focus-visible { outline: 2px solid var(--ivc-primary, #3ec9b0); outline-offset: 2px; }
.ivc-stat-more {
	display: block; margin-top: 10px; font-size: 12px; font-weight: 700;
	color: var(--ivc-primary-dark, #2a9d8a); opacity: .75;
	transition: opacity .22s ease, transform .22s ease;
}
.ivc-stat-link:hover .ivc-stat-more { opacity: 1; transform: translateX(3px); }

/* ---------- メッセージボタン(アイコン付き) ---------- */
.ivc-msg-btn { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.ivc-msg-icon { flex: none; display: block; transition: transform .18s ease; }
.ivc-msg-btn:hover .ivc-msg-icon { transform: translateY(-1px); }

/* ---------- 表の中のイベントコンパニオン欄 ---------- */
.ivc-worker-cell { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ivc-worker-cell img { border-radius: 50%; }

/* ---------- 口コミ入力の評価項目 ---------- */
.ivc-criteria-row {
	display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
	padding: 12px 0; border-bottom: 1px dashed #e6efed;
}
.ivc-criteria-row:last-child { border-bottom: none; }
.ivc-criteria-text { flex: 1 1 auto; min-width: 0; }
.ivc-criteria-label { display: block; font-size: 13.5px; font-weight: 700; color: var(--ivc-text, #2f3a3a); }
.ivc-criteria-hint { display: block; margin-top: 2px; font-size: 11.5px; color: #9aa5a3; }
.ivc-criteria-recommend {
	margin-top: 10px; padding: 14px 16px;
	border: 1px solid #dfe9e7; border-radius: var(--ivc-radius-md, 10px); background: #f8fbfa;
}

/* ---------- 見出しまわり ---------- */
.ivc-section-lead { margin: -8px 0 14px; font-size: 13px; color: var(--ivc-text-light, #74807e); }
.ivc-subsection-title { margin: 28px 0 10px; font-size: 15px; color: var(--ivc-text, #2f3a3a); }
.ivc-required-flag {
	display: inline-block; margin-left: 10px; padding: 2px 9px;
	border-radius: var(--ivc-radius-pill, 999px);
	background: var(--ivc-error-bg, #fdecec); color: var(--ivc-error-text, #d6455a);
	border: 1px solid #f6cdd3; font-size: 11px; font-weight: 700; vertical-align: middle;
}

/* ---------- 折りたたみセクション ---------- */
details.ivc-section-fold { margin: 40px 0 16px; }
details.ivc-section-fold > summary.ivc-section-title {
	cursor: pointer; list-style: none; position: relative;
	margin: 0; padding-right: 64px; font-weight: 700;
}
details.ivc-section-fold > summary.ivc-section-title::-webkit-details-marker { display: none; }
details.ivc-section-fold > summary.ivc-section-title::after {
	content: '開く ＋'; position: absolute; right: 0; bottom: 10px;
	font-size: 12px; font-weight: normal; color: var(--ivc-primary-dark, #2a9d8a);
}
details.ivc-section-fold[open] > summary.ivc-section-title::after { content: '閉じる －'; }
details.ivc-section-fold > summary.ivc-section-title:hover { color: var(--ivc-primary-dark, #2a9d8a); }
details.ivc-section-fold > summary.ivc-section-title:focus-visible {
	outline: 2px solid var(--ivc-primary-dark, #2a9d8a); outline-offset: 3px;
}
.ivc-section-fold-body { padding-top: 16px; }
.ivc-inline-details-open > summary {
	font-weight: 700; color: var(--ivc-primary-dark, #2a9d8a);
	cursor: default; list-style: none; margin-bottom: 8px;
}
.ivc-inline-details-open > summary::-webkit-details-marker { display: none; }

/* ---------- アカウント番号(ココミルのワーカー番号と同じ体裁) ---------- */
.ivc-worker-no { margin: 4px 0 10px; font-size: 13px; color: var(--ivc-text-light, #74807e); }
.ivc-worker-no strong {
	display: inline-block; padding: 2px 10px; margin-right: 10px;
	border-radius: var(--ivc-radius-sm, 6px);
	background: var(--ivc-primary-light, #e6f7f4); color: var(--ivc-primary-dark, #2a9d8a);
	font-variant-numeric: tabular-nums; letter-spacing: 0.04em;
}
.ivc-worker-no-hint { font-size: 12px; }

/* 応募者カードの操作欄の行間 */
.ivc-applicant-actions > * { margin-bottom: 8px; }
.ivc-applicant-actions > *:last-child { margin-bottom: 0; }

/* ---------- 稼働報告の休憩欄(v1.60.0 / タスク112) ---------- */
/* v1.68.0 (タスク92): 休憩は「勤務した時間」と同じ並び・同じ大きさで、行を分けて出す */
.ivc-time-break {
	display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px;
	margin: 6px 0 0; font-size: 1em; color: var(--ivc-text);
}
.ivc-time-break-label { flex: 0 0 100%; }
.ivc-time-break-input { width: 7.5em; text-align: right; margin: 0; }
.ivc-time-break-unit { font-size: 1em; }
.ivc-time-range-calc { white-space: pre-line; font-size: 1em; margin-top: 6px; line-height: 1.6; }
.ivc-worker-tiles { margin: 18px 0 8px; }
.ivc-stat-card.is-alert .ivc-stat-value { color: var(--ivc-error-text); }
.ivc-section-actions { margin: -6px 0 22px; }

/* ---------- 募集ページの現場写真(v1.62.0 / タスク128・130) ---------- */
.ivc-shift-photos {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 12px; margin: 0 0 12px;
}
.ivc-shift-photo { min-width: 0; }
.ivc-shift-photo-thumb {
	width: 100%; aspect-ratio: 4/3; object-fit: cover;
	border-radius: var(--ivc-radius-sm, 6px); display: block;
}
.ivc-shift-gallery {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 12px; margin: 0 0 28px;
}
.ivc-shift-gallery-item { margin: 0; min-width: 0; }
.ivc-shift-gallery-item img {
	width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover;
	border-radius: var(--ivc-radius-md, 10px); display: block;
	border: 1px solid var(--ivc-border, #e3e9e8);
}
@media (max-width: 640px) {
	.ivc-shift-gallery { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}

/* ---------- プロフィールの実績写真(v1.62.0 / タスク131) ---------- */
.ivc-work-photo-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 12px; margin: 8px 0 16px;
}
.ivc-work-photo-item { display: block; min-width: 0; }
.ivc-work-photo-item img {
	width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover;
	object-position: top center; display: block;
	border: 1px solid var(--ivc-border, #e3e9e8);
	border-radius: var(--ivc-radius-md, 10px);
}
.ivc-work-photo-item:hover img { opacity: .92; }
@media (max-width: 640px) {
	.ivc-work-photo-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
}

/* ---------- 任意項目のしるし(v1.64.0) ---------- */
.ivc-optional {
	display: inline-block; margin-left: 8px; padding: 1px 8px;
	border-radius: var(--ivc-radius-pill, 999px);
	background: var(--ivc-bg-soft, #f4f7f6); color: var(--ivc-text-light, #74807e);
	border: 1px solid var(--ivc-border, #e3e9e8);
	font-size: 11px; font-weight: 700; vertical-align: middle;
}

/* ============================================================
   はじめての方へ(v1.65.0・タスク124)
   トップページのセクション(IVC_Content::render_guide_section)と、
   案内記事・おすすめ特集・新着情報の一覧/詳細(templates/content-*.php)
   ============================================================ */
.ivc-guide-lead { margin: -12px 0 20px; font-size: 14px; color: var(--ivc-text-light); line-height: 1.7; }
.ivc-guide-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
.ivc-guide-card {
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--ivc-border); border-radius: var(--ivc-radius-lg);
	overflow: hidden; text-decoration: none; color: var(--ivc-text);
	box-shadow: var(--ivc-shadow); transition: box-shadow .2s ease, transform .2s ease;
}
.ivc-guide-card:hover { text-decoration: none; box-shadow: var(--ivc-shadow-hover); transform: translateY(-2px); }
.ivc-guide-thumb { aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; background: var(--ivc-primary-light); color: var(--ivc-primary-dark); }
.ivc-guide-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ivc-guide-thumb .ivc-guide-icon { opacity: .9; }
.ivc-guide-thumb-1 { background: linear-gradient(135deg, #e6f7f4, #d3efe9); color: #2a9d8a; }
.ivc-guide-thumb-2 { background: linear-gradient(135deg, #eaf3fb, #d9e9f7); color: #389dd1; }
.ivc-guide-thumb-3 { background: linear-gradient(135deg, #fff4e0, #fde8c4); color: #d18f1f; }
.ivc-guide-thumb-4 { background: linear-gradient(135deg, #f3eefb, #e6dcf7); color: #7c5cbf; }
.ivc-guide-text { padding: 16px 18px 20px; }
.ivc-guide-title { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 8px; font-size: 15px; font-weight: 700; line-height: 1.5; color: var(--ivc-primary-dark); }
.ivc-guide-title .ivc-guide-icon { flex: 0 0 18px; margin-top: 2px; }
.ivc-guide-body { margin: 0; font-size: 13px; line-height: 1.8; color: var(--ivc-text-light); }
@media (max-width: 900px) { .ivc-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ivc-guide-body { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 600px) { .ivc-guide-grid { grid-template-columns: 1fr; gap: 14px; } .ivc-guide-lead { margin-top: -6px; } }

/* 一覧ページ */
.ivc-content-archive .ivc-guide-lead-left { margin-top: -18px; }
.ivc-content-list { display: grid; gap: 16px; }
.ivc-content-item {
	display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 20px; align-items: start;
	padding: 18px; background: #fff; border: 1px solid var(--ivc-border); border-radius: var(--ivc-radius-lg);
	text-decoration: none; color: var(--ivc-text); box-shadow: var(--ivc-shadow); transition: box-shadow .2s ease;
}
.ivc-content-item:hover { text-decoration: none; box-shadow: var(--ivc-shadow-hover); }
.ivc-content-item:not(:has(.ivc-content-thumb)) { grid-template-columns: minmax(0, 1fr); }
.ivc-content-thumb { aspect-ratio: 16 / 9; border-radius: var(--ivc-radius-md); overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--ivc-bg-soft); }
.ivc-content-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ivc-content-title { margin: 0 0 8px; font-size: 17px; font-weight: 700; line-height: 1.5; color: var(--ivc-primary-dark); }
.ivc-content-excerpt { margin: 0 0 8px; font-size: 14px; line-height: 1.8; color: var(--ivc-text-light); }
.ivc-content-date { font-size: 12px; color: var(--ivc-text-light); }
.ivc-content-readmore { font-size: 13px; font-weight: 700; color: var(--ivc-btn-primary-bg); }
.ivc-content-pagination { margin-top: 24px; }
.ivc-content-pagination .nav-links { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.ivc-content-pagination .page-numbers { display: inline-block; min-width: 36px; padding: 6px 10px; text-align: center; border: 1px solid var(--ivc-border); border-radius: var(--ivc-radius-sm); text-decoration: none; color: var(--ivc-text); font-size: 14px; }
.ivc-content-pagination .page-numbers.current { background: var(--ivc-primary); border-color: var(--ivc-primary); color: #fff; }
@media (max-width: 600px) { .ivc-content-item { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 14px; } }

/* 詳細ページ */
.ivc-content-single { max-width: 860px; }
.ivc-content-head { margin: 0 0 20px; }
.ivc-content-kicker { display: inline-block; margin-bottom: 8px; padding: 3px 10px; border-radius: var(--ivc-radius-pill); background: var(--ivc-primary-light); color: var(--ivc-primary-dark); font-size: 12px; font-weight: 700; }
.ivc-content-h1 { margin: 0 0 8px; font-size: 26px; font-weight: 700; line-height: 1.45; }
.ivc-content-hero { margin: 0 0 24px; border-radius: var(--ivc-radius-lg); overflow: hidden; }
.ivc-content-hero img { width: 100%; height: auto; display: block; }
.ivc-content-body { font-size: 16px; line-height: 1.9; color: var(--ivc-text); }
.ivc-content-body p { margin: 0 0 1.2em; }
.ivc-content-body h2 { margin: 2em 0 .8em; padding-left: 12px; border-left: 4px solid var(--ivc-primary); font-size: 21px; line-height: 1.5; }
.ivc-content-body h3 { margin: 1.8em 0 .6em; padding-bottom: 6px; border-bottom: 2px solid var(--ivc-primary-light); font-size: 18px; line-height: 1.5; color: var(--ivc-primary-dark); }
.ivc-content-body ul, .ivc-content-body ol { margin: 0 0 1.2em; padding-left: 1.6em; }
.ivc-content-body ul { list-style: disc; }
.ivc-content-body ol { list-style: decimal; }
.ivc-content-body li { list-style: inherit; }
.ivc-content-body li { margin-bottom: .4em; }
.ivc-content-body a { color: var(--ivc-btn-primary-bg); }
.ivc-content-body a.ivc-btn { text-decoration: none; } /* 記事内のボタンの文字が背景と同色で消えていたのを修正(v1.69.3) */
.ivc-content-body a.ivc-btn-primary { color: #fff; }
.ivc-content-body a.ivc-btn-outline { color: var(--ivc-primary-dark); }
.ivc-content-body a.ivc-btn-ghost { color: var(--ivc-text); }
.ivc-content-body img { max-width: 100%; height: auto; }
.ivc-content-related { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--ivc-border); }
.ivc-content-related-title { margin: 0 0 16px; font-size: 18px; font-weight: 700; }
.ivc-content-back { margin: 32px 0 0; }
@media (max-width: 600px) { .ivc-content-h1 { font-size: 21px; } .ivc-content-body { font-size: 15px; } }

/* ---------- 写真をまとめて選ぶ欄(v1.66.0) ---------- */
.ivc-picker { margin: 6px 0 4px; }
.ivc-picker-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; }
.ivc-picker-drop {
	display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
	padding: 14px 16px;
	border: 2px dashed var(--ivc-border);
	border-radius: var(--ivc-radius-md);
	background: var(--ivc-bg-soft);
	transition: border-color .15s ease, background .15s ease;
}
.ivc-picker-drop.is-over { border-color: var(--ivc-primary); background: var(--ivc-primary-light); }
.ivc-picker-btn { flex: none; }
.ivc-picker-text { margin: 0; font-size: 13px; line-height: 1.6; color: var(--ivc-text); }
.ivc-picker-sub { font-size: 12px; color: var(--ivc-text-light); }
.ivc-picker-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; margin: 10px 0 0; }
.ivc-picker-item { position: relative; aspect-ratio: 1 / 1; border-radius: 8px; overflow: hidden; border: 2px solid var(--ivc-primary); background: #fff; }
.ivc-picker-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ivc-picker-remove {
	position: absolute; top: 4px; right: 4px;
	width: 26px; height: 26px; padding: 0;
	border: 0; border-radius: 50%;
	background: rgba(15, 23, 42, .7); color: #fff;
	font-size: 16px; line-height: 26px; text-align: center; cursor: pointer;
}
.ivc-picker-remove:hover { background: var(--ivc-error-text); }
.ivc-picker-status { margin: 8px 0 0; font-size: 0.86em; line-height: 1.6; color: var(--ivc-primary-dark); }
.ivc-picker-status.is-warn { color: var(--ivc-error-text); }
.ivc-picker + .ivc-picker-fallback-hint { display: none; }
@media (max-width: 480px) {
	.ivc-picker-drop { padding: 12px; gap: 10px; }
	.ivc-picker-list { grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 8px; }
}

/* ---------- トップの写真スライド(v1.69.0・タスク136) ---------- */
.ivc-photo-slider { display: flex; overflow: hidden; gap: 12px; margin-top: 4px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ivc-photo-slider-track { display: flex; gap: 12px; flex: none; animation: ivc-slide var(--ivc-slider-duration, 40s) linear infinite; }
.ivc-photo-slider:hover .ivc-photo-slider-track { animation-play-state: paused; }
.ivc-photo-slider-item { margin: 0; flex: none; height: 220px; border-radius: var(--ivc-radius-md); overflow: hidden; background: var(--ivc-bg-soft); }
.ivc-photo-slider-item img { height: 100%; width: auto; max-width: none; display: block; object-fit: cover; }
@keyframes ivc-slide { from { transform: translateX(0); } to { transform: translateX(calc(-100% - 12px)); } }
@media (max-width: 600px) { .ivc-photo-slider-item { height: 150px; } }
@media (prefers-reduced-motion: reduce) { .ivc-photo-slider { overflow-x: auto; } .ivc-photo-slider-track { animation: none; } .ivc-photo-slider-track[aria-hidden] { display: none; } }

/* 案件名の【職種】部分は途中で折り返さない(v1.69.4) */
.ivc-title-tag { white-space: nowrap; }

/* ==========================================================
 * 企業向けトップ(v1.69.4)
 * ========================================================== */
.ivc-lp { padding-bottom: 0; }
.ivc-lp .container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.ivc-lp-narrow { max-width: 820px !important; }
.ivc-lp-hero { background: linear-gradient(135deg, #0b2a44 0%, #1f4d7a 100%); color: #fff; padding: 56px 0 48px; text-align: center; }
.ivc-lp-kicker { font-size: 14px; font-weight: 700; color: #cadcfc; margin: 0 0 12px; }
.ivc-lp-h1 { font-size: 32px; line-height: 1.5; font-weight: 800; margin: 0 0 28px; color: #fff; }
.ivc-lp-stats { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin: 0 0 28px; }
.ivc-lp-stat { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.25); border-radius: 14px; padding: 16px 22px; min-width: 200px; }
.ivc-lp-stat strong { display: block; font-size: 28px; font-weight: 800; color: #ffd76a; line-height: 1.2; }
.ivc-lp-stat span { display: block; font-size: 14px; font-weight: 700; margin-top: 4px; }
.ivc-lp-stat small { display: block; font-size: 11px; color: #cadcfc; margin-top: 2px; }
.ivc-lp-cta { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.ivc-lp .ivc-btn-large { padding: 14px 28px; font-size: 16px; }
.ivc-lp-section { padding: 48px 0; }
.ivc-lp-section p { font-size: 15px; line-height: 1.9; color: var(--ivc-text); }
.ivc-lp-soft { background: var(--ivc-bg-soft); }
.ivc-lp-h2 { font-size: 24px; font-weight: 800; text-align: center; margin: 0 0 28px; color: var(--ivc-text); }
.ivc-lp-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ivc-lp-card { background: #fff; border-radius: 14px; padding: 22px; box-shadow: 0 6px 18px rgba(2,32,52,.06); }
.ivc-lp-card h3 { font-size: 16px; margin: 0 0 8px; color: var(--ivc-primary-dark); }
.ivc-lp-card p { margin: 0; font-size: 14px; }
.ivc-lp-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ivc-lp-point { border: 1px solid var(--ivc-border); border-radius: 14px; padding: 22px; }
.ivc-lp-num { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .1em; color: #fff; background: var(--ivc-btn-primary-bg); border-radius: 999px; padding: 3px 10px; margin-bottom: 10px; }
.ivc-lp-point h3 { font-size: 17px; margin: 0 0 8px; }
.ivc-lp-point p { margin: 0; font-size: 14px; }
.ivc-lp-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; counter-reset: none; }
.ivc-lp-steps li { background: #fff; border-radius: 14px; padding: 18px 16px; position: relative; }
.ivc-lp-steps li span { display: block; font-size: 11px; font-weight: 800; color: var(--ivc-btn-primary-bg); letter-spacing: .08em; }
.ivc-lp-steps li strong { display: block; font-size: 15px; margin: 6px 0 8px; }
.ivc-lp-steps li p { margin: 0; font-size: 13px; line-height: 1.7; }
.ivc-lp-price { background: #fff; border: 1px solid var(--ivc-border); border-radius: 14px; overflow: hidden; }
.ivc-lp-price-main { text-align: center; padding: 24px; background: var(--ivc-bg-soft); }
.ivc-lp-price-main span { display: block; font-size: 13px; color: var(--ivc-text-light); }
.ivc-lp-price-main strong { display: block; font-size: 40px; font-weight: 800; color: var(--ivc-btn-primary-bg); line-height: 1.2; }
.ivc-lp-table { width: 100%; border-collapse: collapse; }
.ivc-lp-table th, .ivc-lp-table td { padding: 14px 18px; border-top: 1px solid var(--ivc-border); text-align: left; vertical-align: top; font-size: 14px; }
.ivc-lp-table th { width: 32%; background: #fafcfe; font-weight: 700; }
.ivc-lp-table small { display: block; color: var(--ivc-text-light); margin-top: 4px; font-size: 12px; }
.ivc-lp-faq { background: #fff; border-radius: 12px; padding: 4px 18px; margin: 0 0 10px; border: 1px solid var(--ivc-border); }
.ivc-lp-faq summary { cursor: pointer; font-weight: 700; padding: 12px 0; font-size: 15px; }
.ivc-lp-faq p { margin: 0 0 14px; font-size: 14px; }
.ivc-lp-final { text-align: center; background: linear-gradient(135deg, #0b2a44 0%, #1f4d7a 100%); color: #fff; }
.ivc-lp-final .ivc-lp-h2, .ivc-lp-final p { color: #fff; }
.ivc-lp-final .ivc-btn-outline { background: #fff; }
@media (max-width: 760px) {
	.ivc-lp-hero { padding: 36px 0 32px; }
	.ivc-lp-h1 { font-size: 22px; }
	.ivc-lp-h1 br { display: none; }
	.ivc-lp-stat { min-width: 0; flex: 1 1 100%; padding: 12px 16px; }
	.ivc-lp-stat strong { font-size: 22px; }
	.ivc-lp-section { padding: 32px 0; }
	.ivc-lp-h2 { font-size: 20px; }
	.ivc-lp-grid3, .ivc-lp-points, .ivc-lp-steps { grid-template-columns: 1fr; }
	.ivc-lp-table th, .ivc-lp-table td { display: block; width: auto; }
	.ivc-lp-table td { border-top: 0; padding-top: 0; }
}

/* ==========================================================
 * 日ごとの承認(v1.70.0 / タスク140・141)
 * ========================================================== */
.ivc-hours-review.is-quiet { background: #f6f8fb; border-color: #dfe5ee; }
.ivc-hours-review.is-quiet .ivc-hours-review-title { color: var(--ivc-text-light); }
.ivc-day-review-table th, .ivc-day-review-table td { vertical-align: middle; }
.ivc-day-review-table { font-size: 0.86em; width: 100%; }
.ivc-day-review-table th { white-space: nowrap; }
.ivc-day-review-table th, .ivc-day-review-table td { padding-left: 6px; padding-right: 6px; }
.ivc-day-review-table td[data-label="勤務日"],
.ivc-day-review-table td[data-label="休憩"],
.ivc-day-review-table td[data-label="実働"],
.ivc-day-review-table td[data-label="交通費"],
.ivc-day-review-table td[data-label="差額"] { white-space: nowrap; }
.ivc-day-review-table td[data-label="理由"] { min-width: 6em; color: var(--ivc-text-light); }
.ivc-day-review-table td[data-label="状況"] { min-width: 5em; }
.ivc-day-review-row.is-approved td { background: #f4fbf7; }
.ivc-day-review-row.is-rejected td { background: #fff6f6; }
.ivc-day-review-row.is-none td { color: var(--ivc-text-light); }
.ivc-day-review-empty { color: var(--ivc-text-light); }
.ivc-day-report-state.is-approved { color: #2e9e5b; font-weight: 700; }
.ivc-day-report-state.is-rejected { color: #c0392b; font-weight: 700; }
.ivc-day-report-state.is-reported { color: #b7791f; font-weight: 700; }
.ivc-day-review-note { display: block; font-size: 0.85em; color: var(--ivc-text-light); margin-top: 2px; }
.ivc-day-diff { white-space: nowrap; }
.ivc-day-diff.is-short { color: #b7791f; font-weight: 700; }
.ivc-day-diff.is-refund { color: #2e9e5b; font-weight: 700; }
.ivc-day-review-actions-row td { background: #fffdf5; border-top: 0; padding-top: 4px; }
.ivc-day-review-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 18px; }
.ivc-day-review-actions .ivc-inline-form { margin: 0; }
.ivc-day-review-actions .ivc-inline-details { margin: 0; }
.ivc-day-review-warn { margin: 0 0 8px; color: #8a6516; }
.ivc-day-report.is-rejected { background: #fff6f6; border-color: #f0c9c9; }
.ivc-day-report .ivc-reject-note { margin: 6px 0 8px; font-size: 0.88em; }
@media (max-width: 760px) {
	.ivc-day-review-table thead { display: none; }
	.ivc-day-review-table tr { display: block; border-bottom: 1px solid var(--ivc-border); padding: 6px 0; }
	.ivc-day-review-table td { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; border: 0; white-space: normal !important; min-width: 0 !important; }
	.ivc-day-review-table td[data-label]::before { content: attr(data-label); color: var(--ivc-text-light); font-size: 0.85em; flex: 0 0 auto; }
	.ivc-day-review-actions-row td { display: block; }
	.ivc-day-review-actions { flex-direction: column; align-items: stretch; }
}

/* ---------- 解約(退会)のお手続き v1.73.0 ---------- */
.ivc-card-title { margin: 0 0 10px; font-size: 1.05rem; font-weight: 700; color: var(--ivc-text); }
.ivc-bullet-list { margin: 0 0 16px; padding-left: 1.2em; list-style: disc; }
.ivc-bullet-list li { margin-bottom: 8px; line-height: 1.7; }
.ivc-def-list { display: grid; grid-template-columns: 9em 1fr; gap: 6px 14px; margin: 0 0 14px; }
.ivc-def-list dt { color: var(--ivc-text-light); font-size: 0.9em; }
.ivc-def-list dd { margin: 0; }
.ivc-check-label { display: flex; align-items: flex-start; gap: 8px; line-height: 1.6; cursor: pointer; }
.ivc-check-label input { margin-top: 3px; flex: 0 0 auto; }
#ivc-withdraw-form .ivc-btn-danger { margin-top: 6px; }
@media (max-width: 560px) {
	.ivc-def-list { grid-template-columns: 1fr; gap: 2px; }
	.ivc-def-list dd { margin-bottom: 8px; }
}

/* 未入力の必須項目を目立たせる (v1.74.0) */
.ivc-input.is-ivc-invalid,
select.is-ivc-invalid,
textarea.is-ivc-invalid {
	border-color: #c0392b;
	background: #fff8f7;
}
.ivc-photo-slot.is-ivc-invalid {
	outline: 2px solid #c0392b;
	outline-offset: 4px;
	border-radius: 8px;
}
