/* ── Bulk Download — минималистичный редизайн (com-x.life Default skin) ── */

/* Триггер в блоке действий главы — без рамки, тонкий accent на hover. */
.bulkdl-trigger {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 10px; background: transparent;
	color: var(--tt-darker, #83848f); border: 0;
	font: 600 13px/1 inherit; cursor: pointer;
	transition: color .15s;
}
.bulkdl-trigger:hover {color: var(--accent, #ffa332);}
.bulkdl-trigger:disabled {opacity: .4; cursor: not-allowed;}
.bulkdl-trigger__icon {font-size: 14px; line-height: 1;}

/* ── Dialog shell ───────────────────────────────────────────────────── */
.bulkdl {
	color: var(--tt, #f2f2f2);
	background: #121212;
	border: 1px solid var(--bdc-lighter, rgba(255,255,255,.06));
	border-radius: 4px;
	padding: 0;
}
.bulkdl[open] {
	position: fixed; inset: 0; margin: auto;
	display: flex; flex-direction: column; gap: 28px;
	width: calc(100% - 32px); max-width: 520px;
	max-height: calc(100dvh - 32px);
	padding: 32px 32px 28px;
	box-shadow: 0 24px 72px rgba(0,0,0,.6);
	overflow: auto; z-index: 9999;
}
.bulkdl::backdrop {
	background: rgba(0,0,0,.72);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
body:has(.bulkdl[open]) {overflow: hidden;}

/* Header — заголовок + бесшумная иконка закрытия. */
.bulkdl__header {
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: 16px; margin: 0;
}
.bulkdl__title {
	margin: 0; padding: 0;
	font-size: 20px; font-weight: 600; line-height: 1.2;
	letter-spacing: -.02em; color: var(--tt, #f2f2f2);
}
.bulkdl__close {
	flex: none; width: 32px; height: 32px;
	border: 0; background: transparent;
	color: var(--tt-darker, #83848f);
	font-size: 22px; line-height: 1; cursor: pointer;
	transition: color .15s;
}
.bulkdl__close:hover {color: var(--tt, #f2f2f2);}

/* Screen wrapper — дышит, без backgrounds. */
.bulkdl__screen {display: flex; flex-direction: column; gap: 24px;}
.bulkdl__screen[hidden] {display: none;}

/* Field — лейбл сверху, контрол снизу. */
.bulkdl__field {display: flex; flex-direction: column; gap: 10px;}
.bulkdl__field-label {
	font-size: 11px; font-weight: 600;
	text-transform: uppercase; letter-spacing: .08em;
	color: var(--tt-darker, #83848f);
}

/* ── Segments (radio как сегментированный переключатель) ───────────── */
.bulkdl__segments {
	display: flex; flex-direction: column; gap: 0;
	border-top: 1px solid var(--bdc-lighter, rgba(255,255,255,.06));
}
.bulkdl__segment {
	display: flex; align-items: center; gap: 12px;
	padding: 10px 0 10px 12px;
	border-bottom: 1px solid var(--bdc-lighter, rgba(255,255,255,.06));
	border-left: 2px solid transparent;
	font-size: 14px; line-height: 1.4; color: var(--tt, #f2f2f2);
	cursor: pointer;
	transition: border-color .15s, color .15s, padding-left .15s;
}
.bulkdl__segment:hover:not(.is-disabled) {color: var(--accent, #ffa332);}
.bulkdl__segment input {
	position: absolute; opacity: 0; pointer-events: none;
	width: 0; height: 0;
}
.bulkdl__segment.is-active {
	border-left-color: var(--accent, #ffa332);
	color: var(--tt, #f2f2f2);
}
.bulkdl__segment.is-disabled {opacity: .35; cursor: not-allowed;}
.bulkdl__segment-label {flex: 1;}
.bulkdl__segment-hint {
	font-size: 12px; color: var(--tt-darker, #83848f); font-weight: 400;
}

/* ── Stats — чистые строки label/value, без рамок ──────────────────── */
.bulkdl__stats {display: flex; flex-direction: column; gap: 6px;}
.bulkdl__stat {
	display: flex; align-items: baseline; gap: 12px;
	font-size: 13px; line-height: 1.5;
}
.bulkdl__stat-label {
	color: var(--tt-darker, #83848f); flex: none;
}
.bulkdl__stat-dots {
	flex: 1; min-width: 0;
	border-bottom: 1px dotted var(--bdc-lighter, rgba(255,255,255,.06));
	transform: translateY(-3px);
}
.bulkdl__stat-value {
	color: var(--tt, #f2f2f2); font-weight: 500; flex: none;
}
.bulkdl__stat-value--ok {color: #6ec46e;}
.bulkdl__stat-value--warn {color: var(--accent, #ffa332);}
.bulkdl__stat-value--err {color: #e07b7b;}

/* ── Notes (info / warn / err / ok) — тонкая полоса слева, без боксов */
.bulkdl__note {
	padding: 4px 0 4px 12px;
	border-left: 2px solid var(--bdc-lighter, rgba(255,255,255,.06));
	font-size: 13px; line-height: 1.5;
	color: var(--tt-darker, #83848f);
}
.bulkdl__note--info {border-left-color: var(--tt-darker, #83848f);}
.bulkdl__note--warn {
	border-left-color: var(--accent, #ffa332);
	color: var(--tt, #f2f2f2);
}
.bulkdl__note--err {
	border-left-color: #e07b7b;
	color: #e88;
}
.bulkdl__note--ok {
	border-left-color: #6ec46e;
	color: #b8d8b8;
}
.bulkdl__note b {color: var(--tt, #f2f2f2); font-weight: 600;}

/* Resume-баннер использует .bulkdl__note--warn выше — отдельных стилей нет. */

/* ── Consent — flat checkbox + text ────────────────────────────────── */
.bulkdl__consent {
	display: flex; align-items: flex-start; gap: 10px;
	font-size: 13px; line-height: 1.5;
	color: var(--tt-darker, #83848f); cursor: pointer;
}
.bulkdl__consent input {
	margin: 2px 0 0; flex: none;
	accent-color: var(--accent, #ffa332);
}
.bulkdl__consent:hover {color: var(--tt, #f2f2f2);}

/* ── Captcha input — underline minimalism ──────────────────────────── */
.bulkdl__input {
	width: 100%; box-sizing: border-box;
	padding: 8px 0; margin: 4px 0 0;
	background: transparent; color: var(--tt, #f2f2f2);
	border: 0; border-bottom: 1px solid var(--bdc-lighter, rgba(255,255,255,.06));
	border-radius: 0;
	font: 16px/1.4 inherit;
	box-shadow: none;
	transition: border-color .15s;
}
.bulkdl__input:focus {
	outline: 0;
	border-bottom-color: var(--accent, #ffa332);
	box-shadow: none;
}
.bulkdl__input::placeholder {color: var(--tt-darker, #83848f); opacity: .7;}

.bulkdl__captcha-question {
	font-size: 15px; line-height: 1.4; font-weight: 500;
	color: var(--tt, #f2f2f2);
	padding: 4px 0 0;
}

/* ── Progress ──────────────────────────────────────────────────────── */
.bulkdl__progress {display: flex; flex-direction: column; gap: 10px;}
.bulkdl__progress-bar {
	height: 3px;
	background: var(--bdc-lighter, rgba(255,255,255,.06));
	border-radius: 2px; overflow: hidden;
}
.bulkdl__progress-fill {
	height: 100%; background: var(--accent, #ffa332);
	transition: width .3s ease;
}
.bulkdl__progress-meta {
	display: flex; justify-content: space-between; gap: 12px;
	font-size: 12px; color: var(--tt-darker, #83848f);
	font-variant-numeric: tabular-nums;
}
.bulkdl__current {
	font-size: 13px; line-height: 1.4;
	color: var(--tt-darker, #83848f);
}
.bulkdl__current-name {color: var(--tt, #f2f2f2); font-weight: 500;}

/* ── Actions / Buttons ─────────────────────────────────────────────── */
.bulkdl__actions {
	display: flex; gap: 8px; justify-content: flex-end;
	margin-top: 4px;
}
.bulkdl__btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 40px; padding: 9px 18px;
	border: 1px solid transparent; border-radius: 4px;
	font: 600 13px/1 inherit; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s, opacity .15s;
}
.bulkdl__btn--primary {
	background: var(--accent, #ffa332); color: #000;
}
.bulkdl__btn--primary:hover:not(:disabled) {
	background: var(--accent-darker, #f39b2e);
}
.bulkdl__btn--ghost {
	background: transparent; color: var(--tt-darker, #83848f);
	border-color: transparent;
}
.bulkdl__btn--ghost:hover:not(:disabled) {color: var(--tt, #f2f2f2);}
.bulkdl__btn:disabled {opacity: .4; cursor: not-allowed;}
.bulkdl__btn:focus-visible {
	outline: 2px solid var(--accent, #ffa332); outline-offset: 2px;
}

/* ── Mobile ────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
	.bulkdl[open] {padding: 24px 20px 20px; gap: 22px;}
	.bulkdl__screen {gap: 20px;}
	.bulkdl__title {font-size: 18px;}
	.bulkdl__actions {flex-direction: column-reverse;}
	.bulkdl__btn {width: 100%;}
}

@media (prefers-reduced-motion: reduce) {
	.bulkdl-trigger, .bulkdl__close, .bulkdl__segment, .bulkdl__btn,
	.bulkdl__progress-fill, .bulkdl__input {transition: none;}
}
/* ── Network status / pack progress / skipped chapters (UX-fix v4.1) ── */
.bulkdl__net-status,
.bulkdl__pack-status,
.bulkdl__progress-errors {
	margin-top: 8px; font-size: 13px; line-height: 1.4;
}
.bulkdl__progress-errors .bulkdl__progress-error-line {
	margin: 2px 0; font-weight: 500;
}
.bulkdl__skipped-list {
	margin: 8px 0 0; padding: 0 0 0 18px; font-size: 12px; color: var(--tt-darker, #83848f);
	max-height: 140px; overflow: auto;
}
.bulkdl__skipped-list li { margin: 2px 0; }

/* ── /Bulk Download ────────────────────────────────────────────────── */
