.bcc-app {
	--bcc-primary: #46757e;
	--bcc-primary-dark: #355c64;
	--bcc-primary-light: #edf4f5;
	--bcc-border: #d9e2e4;
	--bcc-text: #263238;
	--bcc-sub: #6b7280;
	--bcc-white: #fff;
	--bcc-danger: #a94343;
	--bcc-warning-bg: #fff6e8;
	--bcc-warning-border: #f1d3a2;
	width: min(100%, 1360px);
	margin-inline: auto;
	color: var(--bcc-text);
	font-size: 16px;
	line-height: 1.7;
}

.bcc-app *,
.bcc-app *::before,
.bcc-app *::after { box-sizing: border-box; }

.bcc-header { margin-bottom: 22px; }

.bcc-title {
	margin: 0 0 10px;
	font-size: clamp(24px, 4vw, 34px);
	line-height: 1.35;
}

.bcc-description {
	margin: 0;
	color: var(--bcc-sub);
	line-height: 1.85;
}

.bcc-progress-card {
	position: sticky;
	top: 12px;
	z-index: 20;
	padding: 18px 20px;
	margin-bottom: 18px;
	background: rgba(255,255,255,.96);
	border: 1px solid var(--bcc-border);
	border-radius: 16px;
	box-shadow: 0 8px 30px rgba(35,58,64,.08);
	backdrop-filter: blur(10px);
}

.bcc-progress-topline {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
}

.bcc-progress-label {
	display: block;
	margin-bottom: 2px;
	color: var(--bcc-sub);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
}

.bcc-progress-text { display: block; font-size: 18px; }

.bcc-progress-percent {
	color: var(--bcc-primary);
	font-size: 26px;
	line-height: 1;
}

.bcc-progress-track {
	height: 12px;
	margin-top: 13px;
	overflow: hidden;
	background: #edf0f1;
	border-radius: 999px;
}

.bcc-progress-value {
	width: 0;
	height: 100%;
	background: var(--bcc-primary);
	border-radius: inherit;
	transition: width .25s ease;
}

.bcc-progress-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 9px;
	color: var(--bcc-sub);
	font-size: 13px;
	font-weight: 600;
}

.bcc-complete-message {
	padding: 11px 13px;
	margin-top: 12px;
	font-weight: 700;
	text-align: center;
	color: var(--bcc-primary-dark);
	background: var(--bcc-primary-light);
	border-radius: 10px;
}

.bcc-control-panel {
	padding: 16px;
	margin-bottom: 18px;
	background: #fbfcfc;
	border: 1px solid var(--bcc-border);
	border-radius: 14px;
}

.bcc-search { margin-bottom: 12px; }

.bcc-search-input,
.bcc-custom-input {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	color: var(--bcc-text);
	background: var(--bcc-white);
	border: 1px solid var(--bcc-border);
	border-radius: 10px;
}

.bcc-search-input:focus,
.bcc-custom-input:focus,
.bcc-button:focus-visible,
.bcc-filter-button:focus-visible,
.bcc-category-header:focus-visible,
.bcc-na-button:focus-visible,
.bcc-note-toggle:focus-visible,
.bcc-check-label:focus-within {
	outline: 3px solid rgba(70,117,126,.25);
	outline-offset: 2px;
}

.bcc-filter-row,
.bcc-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.bcc-filter-row { margin-bottom: 12px; }

.bcc-filter-button {
	appearance: none;
	padding: 8px 13px;
	color: var(--bcc-primary-dark);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	background: var(--bcc-white);
	border: 1px solid var(--bcc-border);
	border-radius: 999px;
}

.bcc-filter-button.is-active {
	color: #fff;
	background: var(--bcc-primary);
	border-color: var(--bcc-primary);
}

.bcc-button {
	appearance: none;
	padding: 9px 13px;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
	border: 0;
	border-radius: 9px;
	transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}

.bcc-button:active { transform: translateY(1px); }

.bcc-button-primary {
	color: #fff;
	background: var(--bcc-primary);
}

.bcc-button-primary:hover { background: var(--bcc-primary-dark); }

.bcc-button-sub {
	color: var(--bcc-text);
	background: var(--bcc-white);
	border: 1px solid var(--bcc-border);
}

.bcc-button-sub:hover {
	background: var(--bcc-primary-light);
	border-color: var(--bcc-primary);
}

.bcc-category {
	margin-bottom: 12px;
	overflow: hidden;
	background: var(--bcc-white);
	border: 1px solid var(--bcc-border);
	border-left: 4px solid var(--bcc-primary);
	border-radius: 12px;
	transition: opacity .2s ease, border-color .2s ease;
}

.bcc-category.is-complete { opacity: .78; }

.bcc-category-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	width: 100%;
	padding: 15px 17px;
	color: var(--bcc-text);
	font: inherit;
	cursor: pointer;
	background: var(--bcc-primary-light);
	border: 0;
	text-align: left;
}

.bcc-category-title-wrap {
	display: flex;
	align-items: center;
	min-width: 0;
	font-weight: 800;
}

.bcc-category-chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	margin-right: 7px;
	color: var(--bcc-primary);
	font-size: 24px;
	line-height: 1;
	transition: transform .18s ease;
}

.bcc-category.is-open .bcc-category-chevron { transform: rotate(90deg); }

.bcc-category-title { font-size: 16px; line-height: 1.45; }

.bcc-category-progress {
	flex: 0 0 auto;
	padding: 4px 9px;
	color: var(--bcc-primary-dark);
	font-size: 12px;
	font-weight: 800;
	background: #fff;
	border: 1px solid var(--bcc-border);
	border-radius: 999px;
}

.bcc-category-body { display: none; }
.bcc-category.is-open .bcc-category-body { display: block; }

.bcc-list {
	padding: 0;
	margin: 0;
	list-style: none;
}

.bcc-list > .bcc-item {
	display: block !important;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	padding: 0;
	margin: 0;
	overflow: visible;
	border-top: 1px solid #eef1f2;
}

.bcc-list > .bcc-item:first-child { border-top: 0; }

.bcc-list > .bcc-item > .bcc-item-main {
	display: flex !important;
	align-items: stretch;
	width: 100%;
	min-width: 0;
	min-height: 50px;
	box-sizing: border-box;
}

.bcc-check-label {
	display: flex;
	flex: 1 1 auto;
	align-items: flex-start;
	gap: 12px;
	min-width: 0;
	padding: 13px 15px;
	margin: 0;
	cursor: pointer;
	transition: background-color .15s ease;
}

.bcc-check-label:hover { background: #fafcfc; }

.bcc-checkbox {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin: 2px 0 0;
	accent-color: var(--bcc-primary);
}

.bcc-item-content {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px;
	min-width: 0;
}

.bcc-item-text { line-height: 1.6; }

.bcc-item.is-done .bcc-item-text {
	color: var(--bcc-sub);
	text-decoration: line-through;
}

.bcc-item.is-na { background: #fafafa; }

.bcc-item.is-na .bcc-item-text {
	color: #8a9296;
	text-decoration: line-through;
	text-decoration-style: dashed;
}

.bcc-important-badge {
	display: inline-flex;
	align-items: center;
	padding: 2px 7px;
	color: var(--bcc-danger);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.5;
	background: var(--bcc-warning-bg);
	border: 1px solid var(--bcc-warning-border);
	border-radius: 999px;
}

.bcc-na-button {
	flex: 0 0 auto;
	align-self: center;
	margin-right: 0;
	padding: 6px 9px;
	color: var(--bcc-sub);
	font: inherit;
	font-size: 11px;
	font-weight: 700;
	cursor: pointer;
	background: transparent;
	border: 1px solid var(--bcc-border);
	border-radius: 8px;
}

.bcc-na-button:hover,
.bcc-na-button.is-active {
	color: var(--bcc-primary-dark);
	background: var(--bcc-primary-light);
	border-color: var(--bcc-primary);
}

.bcc-custom-card {
	padding: 18px;
	margin-top: 18px;
	margin-bottom: 18px;
	background: var(--bcc-white);
	border: 1px solid var(--bcc-border);
	border-radius: 14px;
}

.bcc-custom-title { margin: 0 0 12px; font-size: 17px; }

.bcc-custom-form {
	display: flex;
	gap: 8px;
}

.bcc-custom-input { flex: 1; min-width: 0; }

.bcc-no-results {
	padding: 18px;
	color: var(--bcc-sub);
	font-size: 13px;
	line-height: 1.7;
	text-align: center;
	background: var(--bcc-white);
	border: 1px dashed var(--bcc-border);
	border-radius: 12px;
}

.bcc-hidden,
.bcc-filter-hidden { display: none !important; }

.bcc-error {
	padding: 12px;
	color: #8a2424;
	background: #fff3f3;
	border: 1px solid #efcaca;
	border-radius: 8px;
}

@media (max-width: 782px) {
	.bcc-progress-card { top: 8px; }
	.bcc-progress-percent { font-size: 22px; }
}

@media (max-width: 600px) {
	.bcc-progress-card { padding: 15px; border-radius: 12px; }
	.bcc-progress-text { font-size: 16px; }
	.bcc-control-panel { padding: 12px; }

	.bcc-custom-form { flex-direction: column; }
	.bcc-custom-form .bcc-button { width: 100%; }

	.bcc-item-main {
		position: relative;
		display: block;
		padding-bottom: 8px;
	}

	.bcc-check-label { padding-bottom: 8px; }
	.bcc-na-button { margin: 0 12px 0 49px; }
}

@media print {
	.bcc-progress-card {
		position: static;
		box-shadow: none;
	}

	.bcc-control-panel,
	.bcc-custom-card,
	.bcc-na-button {
		display: none !important;
	}

	.bcc-category,
	.bcc-category-body {
		display: block !important;
		break-inside: avoid;
	}

	.bcc-category {
		opacity: 1 !important;
		border-color: #bbb;
	}
}


/* ===== 1.1.0 extensions ===== */

.bcc-category-nav {
	padding: 14px;
	margin-bottom: 18px;
	background: #fbfcfc;
	border: 1px solid var(--bcc-border);
	border-radius: 14px;
}

.bcc-category-nav-title {
	margin-bottom: 8px;
	color: var(--bcc-sub);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .04em;
}

.bcc-category-nav-list {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.bcc-category-nav-button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 10px;
	color: var(--bcc-primary-dark);
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	background: var(--bcc-white);
	border: 1px solid var(--bcc-border);
	border-radius: 999px;
}

.bcc-category-nav-button:hover {
	background: var(--bcc-primary-light);
	border-color: var(--bcc-primary);
}

.bcc-category-nav-count {
	color: var(--bcc-sub);
	font-size: 11px;
}

.bcc-priority-badge {
	display: inline-flex;
	align-items: center;
	padding: 2px 7px;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.5;
	border-radius: 999px;
}

.bcc-priority-badge.is-critical {
	color: #a53b3b;
	background: #fff1f1;
	border: 1px solid #efcaca;
}

.bcc-priority-badge.is-recommended {
	color: #7a5a16;
	background: #fff8e6;
	border: 1px solid #eddba6;
}

.bcc-priority-badge.is-optional {
	color: #5f6b70;
	background: #f4f6f7;
	border: 1px solid #dce2e5;
}

.bcc-item-description {
	flex-basis: 100%;
	display: block;
	margin-top: 2px;
	color: var(--bcc-sub);
	font-size: 12px;
	line-height: 1.55;
}

.bcc-note-wrap {
	padding: 0 15px 12px 49px;
}

.bcc-note-input {
	width: 100%;
	min-height: 54px;
	padding: 9px 10px;
	color: var(--bcc-text);
	font: inherit;
	font-size: 13px;
	line-height: 1.5;
	resize: vertical;
	background: #fbfcfc;
	border: 1px solid var(--bcc-border);
	border-radius: 8px;
}

.bcc-note-input:focus {
	outline: 3px solid rgba(70,117,126,.20);
	outline-offset: 1px;
	border-color: var(--bcc-primary);
}

@media (max-width: 600px) {
	.bcc-category-nav-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bcc-category-nav-button {
		justify-content: space-between;
		width: 100%;
	}

	.bcc-note-wrap {
		padding: 0 12px 10px 49px;
	}
}

@media print {
	.bcc-category-nav,
	.bcc-note-wrap {
		display: none !important;
	}
}


/* ===== 1.2.0 share URL ===== */

.bcc-shared-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 16px;
	margin-bottom: 18px;
	background: var(--bcc-primary-light);
	border: 1px solid var(--bcc-primary);
	border-radius: 14px;
}

.bcc-shared-banner-content {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.bcc-shared-title {
	color: var(--bcc-primary-dark);
	font-size: 14px;
	font-weight: 800;
}

.bcc-shared-description {
	color: var(--bcc-sub);
	font-size: 12px;
	line-height: 1.5;
}

.bcc-shared-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	flex: 0 0 auto;
}

.bcc-shared-banner[hidden] {
	display: none !important;
}

.bcc-app:has(.bcc-shared-banner:not([hidden])) .bcc-check-all,
.bcc-app:has(.bcc-shared-banner:not([hidden])) .bcc-reset,
.bcc-app:has(.bcc-shared-banner:not([hidden])) .bcc-add,
.bcc-app:has(.bcc-shared-banner:not([hidden])) .bcc-clear-custom {
	opacity: .45;
	cursor: not-allowed;
}

@media (max-width: 700px) {
	.bcc-shared-banner {
		align-items: stretch;
		flex-direction: column;
	}

	.bcc-shared-actions {
		width: 100%;
	}

	.bcc-shared-actions .bcc-button {
		flex: 1 1 0;
	}
}

@media print {
	.bcc-shared-banner {
		display: none !important;
	}
}


/* ===== 1.2.1 item memo toggle ===== */

.bcc-item-actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 7px;
	padding-right: 12px;
}

.bcc-note-toggle {
	position: relative;
	flex: 0 0 auto;
	padding: 6px 9px;
	color: var(--bcc-sub);
	font: inherit;
	font-size: 11px;
	font-weight: 700;
	cursor: pointer;
	background: transparent;
	border: 1px solid var(--bcc-border);
	border-radius: 8px;
	white-space: nowrap;
}

.bcc-note-toggle:hover,
.bcc-note-toggle[aria-expanded="true"] {
	color: var(--bcc-primary-dark);
	background: var(--bcc-primary-light);
	border-color: var(--bcc-primary);
}

.bcc-note-toggle.has-note::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 5px;
	vertical-align: 1px;
	background: var(--bcc-primary);
	border-radius: 50%;
}

.bcc-note-toggle[hidden] {
	display: none !important;
}

.bcc-note-wrap {
	display: none;
	padding-top: 0;
}

.bcc-note-wrap[hidden] {
	display: none !important;
}

.bcc-list > .bcc-item > .bcc-note-wrap.is-open:not([hidden]) {
	display: block !important;
	position: static !important;
	float: none !important;
	clear: both;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	min-height: 1px;
	box-sizing: border-box;
	visibility: visible !important;
	opacity: 1 !important;
	overflow: visible !important;
}

@media (max-width: 700px) {
	.bcc-item-main {
		align-items: flex-start;
		flex-wrap: wrap;
	}

	.bcc-check-label {
		flex-basis: calc(100% - 1px);
	}

	.bcc-item-actions {
		width: 100%;
		justify-content: flex-end;
		padding: 0 12px 10px 49px;
	}

	.bcc-note-wrap {
		padding-left: 49px;
		padding-right: 12px;
	}
}


/* ===== 1.2.3 memo visibility fix ===== */

/*
 * WordPressテーマや外部CSSが display を上書きしても、
 * 開いているメモ欄を確実に表示する。
 */
.bcc-app .bcc-item > .bcc-note-wrap.is-open {
	width: 100%;
	box-sizing: border-box;
}

.bcc-app .bcc-item > .bcc-note-wrap.is-open .bcc-note-input {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}


/* ===== 1.2.4 WordPress theme isolation ===== */

.bcc-app .bcc-list,
.bcc-app .bcc-list > li {
	box-sizing: border-box;
}

.bcc-app .bcc-list > .bcc-item {
	flex: none !important;
	flex-direction: initial !important;
	flex-wrap: initial !important;
	align-items: initial !important;
	justify-content: initial !important;
}

.bcc-app .bcc-list > .bcc-item > .bcc-note-wrap.is-open {
	display: block !important;
	position: relative !important;
	left: auto !important;
	right: auto !important;
	top: auto !important;
	bottom: auto !important;
	transform: none !important;
	z-index: 1;
}

.bcc-app .bcc-list > .bcc-item > .bcc-note-wrap.is-open > .bcc-note-input {
	display: block !important;
	position: static !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	min-height: 64px !important;
	height: auto;
	box-sizing: border-box !important;
	margin: 0 !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/*
 * テーマ側で ul/li に flex や grid が指定されていても、
 * Checklist内部では縦積みを保証する。
 */
.bcc-app .bcc-list {
	display: block !important;
	width: 100%;
}

@media (max-width: 600px) {
	.bcc-list > .bcc-item > .bcc-item-main {
		display: block !important;
	}
}


/* ===== 1.2.5 memo DOM fix ===== */

/*
 * 1.2.5では textarea が .bcc-note-wrap 内へ正しく挿入される。
 * テーマ側のフォームCSSに左右されない最低限の表示も保証する。
 */
.bcc-app .bcc-note-wrap > .bcc-note-input {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 64px;
	box-sizing: border-box;
}


/* ===== 1.4.0 custom checklist editing ===== */

.bcc-category-add {
	padding: 10px 14px 14px 49px;
	border-top: 1px dashed var(--bcc-border);
}

.bcc-category-add-toggle {
	padding: 6px 0;
	color: var(--bcc-primary-dark);
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
	background: transparent;
	border: 0;
}

.bcc-category-add-toggle:hover { text-decoration: underline; }

.bcc-category-add-form {
	display: flex;
	align-items: center;
	gap: 7px;
}

.bcc-category-add-form[hidden] { display: none !important; }

.bcc-category-add-input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 8px 10px;
	color: var(--bcc-text);
	font: inherit;
	font-size: 13px;
	background: var(--bcc-white);
	border: 1px solid var(--bcc-border);
	border-radius: 8px;
}

.bcc-category-add-input:focus {
	outline: 3px solid rgba(70,117,126,.20);
	outline-offset: 1px;
	border-color: var(--bcc-primary);
}

.bcc-custom-action {
	flex: 0 0 auto;
	padding: 5px 7px;
	color: var(--bcc-sub);
	font: inherit;
	font-size: 10px;
	font-weight: 700;
	cursor: pointer;
	background: transparent;
	border: 1px solid var(--bcc-border);
	border-radius: 7px;
}

.bcc-custom-action:hover {
	color: var(--bcc-primary-dark);
	background: var(--bcc-primary-light);
	border-color: var(--bcc-primary);
}

.bcc-custom-action.bcc-custom-delete:hover {
	color: #a53b3b;
	background: #fff1f1;
	border-color: #efcaca;
}

.bcc-custom-action[hidden] { display: none !important; }

@media (max-width: 760px) {
	.bcc-category-add { padding-left: 14px; }

	.bcc-category-add-form {
		align-items: stretch;
		flex-direction: column;
	}

	.bcc-category-add-form .bcc-button { width: 100%; }
	.bcc-item-actions { flex-wrap: wrap; }
}

@media print {
	.bcc-hidden,
	.bcc-filter-hidden {
		display: block !important;
	}

	.bcc-category-body[hidden] {
		display: block !important;
	}

	.bcc-category-add,
	.bcc-custom-action,
	.bcc-note-toggle {
		display: none !important;
	}
}


/* ===== 1.5.0 compact long-checklist UI ===== */

/* Progress + category navigation are one sticky control surface. */
.bcc-progress-card {
	top: 12px;
	padding: 15px 18px;
}

body.admin-bar .bcc-progress-card {
	top: 44px;
}

.bcc-progress-track {
	height: 9px;
	margin-top: 10px;
}

.bcc-progress-meta {
	margin-top: 7px;
}

.bcc-progress-card .bcc-category-nav {
	padding: 11px 0 0;
	margin: 11px 0 0;
	background: transparent;
	border: 0;
	border-top: 1px solid var(--bcc-border);
	border-radius: 0;
}

.bcc-progress-card .bcc-category-nav-title {
	margin-bottom: 6px;
}

.bcc-progress-card .bcc-category-nav-list {
	flex-wrap: nowrap;
	gap: 6px;
	overflow-x: auto;
	padding-bottom: 2px;
	scrollbar-width: thin;
}

.bcc-progress-card .bcc-category-nav-button {
	flex: 0 0 auto;
	padding: 5px 9px;
	font-size: 11px;
}

/* Compact search / filters / actions. */
.bcc-control-panel {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 14px;
}

.bcc-control-main {
	display: flex;
	flex: 1 1 auto;
	align-items: flex-end;
	gap: 10px;
	min-width: 0;
}

.bcc-search {
	flex: 1 1 360px;
	max-width: 620px;
	margin: 0;
}

.bcc-search-input {
	padding: 9px 12px;
}

.bcc-filter-row {
	flex: 0 0 auto;
	margin: 0;
}

.bcc-filter-button {
	padding: 6px 10px;
	font-size: 12px;
}

.bcc-toolbar {
	position: relative;
	flex: 0 0 auto;
	align-items: center;
	justify-content: flex-end;
}

.bcc-toolbar-primary {
	display: flex;
	align-items: center;
	gap: 7px;
}

.bcc-more-wrap {
	position: relative;
}

.bcc-more-menu {
	position: absolute;
	top: calc(100% + 7px);
	right: 0;
	z-index: 50;
	display: grid;
	min-width: 210px;
	padding: 6px;
	background: var(--bcc-white);
	border: 1px solid var(--bcc-border);
	border-radius: 10px;
	box-shadow: 0 12px 32px rgba(35,58,64,.16);
}

.bcc-more-menu[hidden] {
	display: none !important;
}

.bcc-more-item {
	width: 100%;
	padding: 9px 10px;
	color: var(--bcc-text);
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	background: transparent;
	border: 0;
	border-radius: 7px;
	text-align: left;
}

.bcc-more-item:hover,
.bcc-more-item:focus-visible {
	background: var(--bcc-primary-light);
	outline: none;
}

.bcc-more-item.is-danger {
	color: #a53b3b;
}

.bcc-more-item.is-danger:hover,
.bcc-more-item.is-danger:focus-visible {
	background: #fff1f1;
}

/* Item rows: keep secondary actions visually quiet. */
.bcc-note-toggle,
.bcc-na-button {
	padding: 5px 8px;
	font-size: 10px;
}

.bcc-note-toggle.has-note {
	color: var(--bcc-primary-dark);
	background: var(--bcc-primary-light);
	border-color: var(--bcc-primary);
}

.bcc-description-toggle {
	flex: 0 0 auto;
	padding: 1px 6px;
	color: var(--bcc-primary-dark);
	font: inherit;
	font-size: 10px;
	font-weight: 700;
	cursor: pointer;
	background: transparent;
	border: 0;
	text-decoration: underline;
	text-decoration-color: rgba(70,117,126,.35);
	text-underline-offset: 2px;
}

.bcc-item-description[hidden] {
	display: none !important;
}

.bcc-item-description {
	padding: 7px 9px;
	margin-top: 5px;
	background: #f7f9f9;
	border-radius: 7px;
}

/* The global "uncategorized custom item" box was removed in 1.5.0.
   Custom items are added inside the relevant category. */
.bcc-custom-card {
	display: none !important;
}

@media (max-width: 980px) {
	.bcc-control-panel,
	.bcc-control-main {
		align-items: stretch;
		flex-direction: column;
	}

	.bcc-search {
		width: 100%;
		max-width: none;
	}

	.bcc-toolbar {
		width: 100%;
		justify-content: space-between;
	}
}

@media (max-width: 782px) {
	body.admin-bar .bcc-progress-card {
		top: 58px;
	}

	.bcc-progress-card {
		padding: 12px;
	}

	.bcc-progress-card .bcc-category-nav-list {
		display: flex;
	}

	.bcc-filter-row {
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 2px;
	}

	.bcc-filter-button {
		flex: 0 0 auto;
	}

	.bcc-toolbar-primary {
		flex-wrap: wrap;
	}
}

@media print {
	.bcc-more-wrap,
	.bcc-toolbar,
	.bcc-description-toggle {
		display: none !important;
	}

	.bcc-item-description[hidden] {
		display: block !important;
	}
}


/* ===== 1.5.1 Designer drawer compatibility ===== */

.bcc-app {
	--bcc-section-gap: 14px;
}

.bcc-progress-card {
	margin-bottom: var(--bcc-section-gap);
}

.bcc-control-panel {
	margin-top: 0;
	margin-bottom: var(--bcc-section-gap);
}

.bcc-checklist-area {
	margin-top: 0;
}

/* Designer 1.3.0 opens a fixed editor drawer on desktop. */
@media (min-width: 1180px) {
	.bcc-app.bcc-designer-drawer-open {
		width: min(100%, 900px);
		margin-left: max(24px, calc((100vw - 1360px) / 2));
		margin-right: auto;
		transition: width .2s ease, margin .2s ease;
	}
}

@media (max-width: 1179px) {
	.bcc-app.bcc-designer-drawer-open {
		width: min(100%, 1360px);
		margin-inline: auto;
	}
}


/* ===== 1.5.2 Designer split-view compatibility ===== */

/*
 * Drawer表示時の横幅分割はDesigner側だけが担当する。
 * Core側ではChecklist本体を二重に縮小しない。
 */
.bcc-app.bcc-designer-drawer-open {
	width: min(100%, 1360px);
	max-width: 1360px;
	margin-inline: auto;
}

/* Main blocks use a consistent vertical rhythm. */
.bcc-progress-card {
	margin-bottom: 14px;
}

.bcc-control-panel {
	margin-top: 0;
	margin-bottom: 14px;
}

.bcc-checklist-area {
	margin-top: 0;
}


/* ===== 1.5.3 filter visibility fix ===== */

/*
 * 1.2.4以降のテーマCSS隔離用
 * `.bcc-list > .bcc-item { display:block !important; }`
 * より高い詳細度でフィルター非表示を指定する。
 *
 * これにより「未完了」「必須」フィルターで
 * JavaScriptが付与した .bcc-hidden が確実に反映される。
 */
@media screen {
	.bcc-app .bcc-list > .bcc-item.bcc-hidden {
		display: none !important;
	}

	.bcc-app .bcc-category.bcc-filter-hidden {
		display: none !important;
	}
}

/*
 * 印刷時はフィルター状態にかかわらず全項目を印刷する。
 * screen用の高詳細度ルールを明示的に解除。
 */
@media print {
	.bcc-app .bcc-list > .bcc-item.bcc-hidden {
		display: block !important;
	}

	.bcc-app .bcc-category.bcc-filter-hidden {
		display: block !important;
	}
}
