/* JL Planners — Bachelorette / Panieński Planner ("Wieczór panieński / kawalerski").
 * Mobile-first, romantic/premium Polish-wedding styling, scoped under .jlp-bp and
 * built on top of the foundation's jlp-shell tokens. No external fonts/assets. */

.jlp-bp {
	--bp-ink: var(--jlp-ink);
	--bp-muted: var(--jlp-ink-soft);
	--bp-faint: var(--jlp-ink-mute);
	--bp-gold: var(--jlp-gold);
	--bp-gold-deep: var(--jlp-gold-deep);
	--bp-cream: var(--jlp-bg);
	--bp-cream-2: #FBF6EC;
	--bp-line: var(--jlp-gold-glow);
	--bp-line-soft: var(--jlp-gold-glow);
	--bp-rose: #C98E96;
	--bp-rose-bg: #FBEEF0;
	--bp-ok: #7A8B5C;
	--bp-ok-bg: #F1F4EA;
	--bp-warn: #B47A2E;
	--bp-warn-bg: #FBF1E2;
	--bp-danger: #9A3A2E;
	--bp-danger-bg: #FBEAE7;
	--bp-radius: 14px;
	--bp-radius-sm: 9px;
	color: var(--bp-ink);
	font-family: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
	display: grid;
	gap: 18px;
}

.jlp-bp * { box-sizing: border-box; }

.jlp-bp h2,
.jlp-bp h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; }

.jlp-bp-h2 {
	font-size: 1.55rem;
	margin: 0 0 4px;
	letter-spacing: .01em;
}

.jlp-bp-hint {
	margin: 0;
	color: var(--bp-muted);
	font-size: .86rem;
	line-height: 1.5;
}

.jlp-bp .jlp-muted { color: var(--bp-faint); font-size: .9rem; }

/* ---------- locked banner ---------- */
.jlp-bp-locked {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	background: linear-gradient(135deg, var(--bp-rose-bg), var(--bp-cream-2));
	border: 1px solid var(--bp-line);
	border-radius: var(--bp-radius);
	padding: 14px 16px;
}
.jlp-bp-locked__icon { font-size: 1.2rem; line-height: 1; }
.jlp-bp-locked__icon svg { width: 1em; height: 1em; display: block; }
.jlp-bp-locked__text { flex: 1 1 220px; font-size: .92rem; color: var(--bp-muted); line-height: 1.5; }

/* ---------- generic section card ---------- */
.jlp-bp-onboarding,
.jlp-bp-nextstep,
.jlp-bp-budget,
.jlp-bp-itinerary,
.jlp-bp-section {
	background: var(--jlp-surface);
	border: 1px solid var(--bp-line-soft);
	border-radius: var(--bp-radius);
	padding: 16px;
	box-shadow: 0 18px 40px -34px rgba(42, 31, 26, .35);
}
.jlp-bp-section__head { display: grid; gap: 4px; margin-bottom: 12px; }

/* ---------- fields ---------- */
.jlp-bp .jlp-field { display: grid; gap: 5px; }
.jlp-bp .jlp-field__label { font-size: .8rem; font-weight: 600; color: var(--bp-muted); }
.jlp-bp .jlp-input {
	width: 100%;
	font: inherit;
	font-size: .95rem;
	min-height: 44px;
	padding: 9px 11px;
	border: 1px solid var(--bp-line);
	border-radius: var(--bp-radius-sm);
	background: var(--bp-cream);
	color: var(--bp-ink);
}
.jlp-bp .jlp-input:focus { outline: 2px solid var(--bp-gold); outline-offset: 1px; background: var(--jlp-surface); }
.jlp-bp .jlp-input:disabled { opacity: .7; cursor: default; }
.jlp-bp textarea.jlp-input { resize: vertical; line-height: 1.5; }
.jlp-bp .jlp-bp-num { text-align: right; }

.jlp-bp-onboarding__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

/* ---------- next step / warnings ---------- */
.jlp-bp-nextstep__progress {
	margin: 6px 0 10px;
	font-size: .92rem;
	color: var(--bp-muted);
	font-weight: 600;
}
.jlp-bp-nextstep__warnings { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.jlp-bp .jlp-notice {
	margin: 0;
	font-size: .88rem;
	padding: 9px 12px;
	border-radius: var(--bp-radius-sm);
	border: 1px solid transparent;
	line-height: 1.5;
}
.jlp-bp .jlp-notice--ok { background: var(--bp-ok-bg); border-color: rgba(122, 139, 92, .4); color: #4F5C3C; }
.jlp-bp .jlp-notice--warn { background: var(--bp-warn-bg); border-color: rgba(180, 122, 46, .4); color: #7C5417; }

/* ---------- budget preview ---------- */
.jlp-bp-budget__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin-top: 8px;
}
.jlp-bp-stat {
	background: var(--bp-cream-2);
	border: 1px solid var(--bp-line-soft);
	border-radius: var(--bp-radius-sm);
	padding: 10px 12px;
	display: grid;
	gap: 2px;
}
.jlp-bp-stat__label { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--bp-faint); }
.jlp-bp-stat__value { font-size: 1.12rem; font-weight: 700; color: var(--bp-ink); }
.jlp-bp-stat__hint { font-size: .74rem; color: var(--bp-faint); }
.jlp-bp-stat--accent { background: linear-gradient(135deg, var(--jlp-surface), var(--bp-cream-2)); border-color: var(--bp-gold); }
.jlp-bp-stat--accent .jlp-bp-stat__value { color: var(--bp-gold-deep); }
.jlp-bp-stat--ok .jlp-bp-stat__value { color: var(--bp-ok); }
.jlp-bp-stat--warn .jlp-bp-stat__value { color: var(--bp-warn); }

/* ---------- itinerary preview ---------- */
.jlp-bp-timeline { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; }
.jlp-bp-timeline__empty { color: var(--bp-faint); font-size: .9rem; padding: 6px 0; }
.jlp-bp-timeline__item {
	display: flex;
	gap: 12px;
	padding: 10px 12px;
	border-radius: var(--bp-radius-sm);
	background: var(--bp-cream);
	border-left: 3px solid var(--bp-line);
}
.jlp-bp-timeline__item--zarezerwowane,
.jlp-bp-timeline__item--oplacone { border-left-color: var(--bp-ok); }
.jlp-bp-timeline__item--do_rezerwacji { border-left-color: var(--bp-warn); }
.jlp-bp-timeline__item--odwolane { border-left-color: var(--bp-danger); opacity: .7; }
.jlp-bp-timeline__time { flex: 0 0 auto; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--bp-gold-deep); min-width: 3.2em; }
.jlp-bp-timeline__body { display: grid; gap: 3px; }
.jlp-bp-timeline__title { font-weight: 600; }
.jlp-bp-timeline__place { font-size: .84rem; color: var(--bp-muted); }
.jlp-bp-timeline__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: .8rem; color: var(--bp-faint); }
.jlp-bp-timeline__cost { font-variant-numeric: tabular-nums; }

.jlp-bp-badge {
	display: inline-block;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	padding: 2px 7px;
	border-radius: 999px;
	background: var(--bp-line);
	color: #5b4a3a;
}
.jlp-bp-badge--zarezerwowane,
.jlp-bp-badge--oplacone { background: rgba(122, 139, 92, .22); color: #4F5C3C; }
.jlp-bp-badge--do_rezerwacji { background: rgba(180, 122, 46, .22); color: #7C5417; }
.jlp-bp-badge--pomysl { background: rgba(184, 152, 104, .22); color: #6b5a3a; }
.jlp-bp-badge--odwolane { background: rgba(154, 58, 46, .18); color: var(--bp-danger); }

/* ---------- repeaters ---------- */
.jlp-bp-empty { padding: 4px 0 10px; }
.jlp-bp-repeater { display: grid; gap: 10px; }
.jlp-bp-repeater__rows { display: grid; gap: 10px; }

.jlp-bp-row {
	position: relative;
	background: var(--bp-cream);
	border: 1px solid var(--bp-line-soft);
	border-radius: var(--bp-radius-sm);
	padding: 12px 40px 12px 12px;
	display: grid;
	gap: 10px;
}
.jlp-bp-row__main { display: grid; gap: 8px; }
.jlp-bp-row__more {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	padding-top: 10px;
	border-top: 1px dashed var(--bp-line-soft);
}
.jlp-bp-mini { display: grid; gap: 3px; }
.jlp-bp-mini > span { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--bp-faint); }
.jlp-bp-row__del {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 26px;
	height: 26px;
	border: 1px solid var(--bp-line);
	background: var(--jlp-surface);
	color: var(--bp-muted);
	border-radius: 50%;
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
}
.jlp-bp-row__del:hover { background: var(--bp-danger-bg); color: var(--bp-danger); border-color: rgba(154, 58, 46, .4); }

/* guest row accents by RSVP / payment */
.jlp-bp-guest--rsvp-tak { border-left: 3px solid var(--bp-ok); }
.jlp-bp-guest--rsvp-nie { opacity: .72; }
.jlp-bp-guest--pay-oplacone { box-shadow: inset 3px 0 0 var(--bp-ok); }

.jlp-bp-activity--zarezerwowane,
.jlp-bp-activity--oplacone { border-left: 3px solid var(--bp-ok); }
.jlp-bp-activity--do_rezerwacji { border-left: 3px solid var(--bp-warn); }
.jlp-bp-activity--odwolane { opacity: .7; }

/* ---------- checklist ---------- */
.jlp-bp-progress {
	height: 8px;
	border-radius: 999px;
	background: var(--bp-line-soft);
	overflow: hidden;
	margin: 4px 0 12px;
}
.jlp-bp-progress__bar {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--bp-gold), var(--bp-ok));
	transition: width .25s ease;
}
.jlp-bp-task {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px 10px;
	align-items: center;
	background: var(--bp-cream);
	border: 1px solid var(--bp-line-soft);
	border-radius: var(--bp-radius-sm);
	padding: 10px 40px 10px 12px;
}
.jlp-bp-task.is-done .jlp-bp-task__name { text-decoration: line-through; color: var(--bp-faint); }
.jlp-bp-task.is-done { background: var(--bp-ok-bg); }
.jlp-bp-task--niespodzianka { border-left: 3px solid var(--bp-rose); }
.jlp-bp-task__check { display: inline-flex; align-items: center; cursor: pointer; }
.jlp-bp-task__check input { width: 18px; height: 18px; accent-color: var(--bp-gold-deep); }
.jlp-bp-task__name { grid-column: 2; }
.jlp-bp-task__cat,
.jlp-bp-task__who,
.jlp-bp-task__note { grid-column: 2; }

/* ---------- boundaries ---------- */
.jlp-bp-rule {
	position: relative;
	display: grid;
	gap: 8px;
	background: var(--bp-cream);
	border: 1px solid var(--bp-line-soft);
	border-radius: var(--bp-radius-sm);
	padding: 12px 40px 12px 12px;
}
.jlp-bp-rule--absolutnie_nie { border-left: 3px solid var(--bp-danger); }
.jlp-bp-rule--wolelibysmy_nie { border-left: 3px solid var(--bp-warn); }

/* ---------- buttons (lean on shell .jlp-btn but provide a fallback) ---------- */
.jlp-bp .jlp-btn {
	font: inherit;
	font-size: .9rem;
	font-weight: 600;
	cursor: pointer;
	border-radius: 999px;
	padding: 9px 16px;
	border: 1px solid var(--bp-gold);
	background: var(--jlp-surface);
	color: var(--bp-gold-deep);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.jlp-bp .jlp-btn--primary { background: var(--bp-gold); border-color: var(--bp-gold); color: #fff; }
.jlp-bp .jlp-btn--ghost { background: transparent; }
.jlp-bp .jlp-btn--sm { padding: 7px 13px; font-size: .84rem; }
.jlp-bp .jlp-btn:disabled { opacity: .55; cursor: default; }

/* ---------- breakpoints ---------- */
@media (min-width: 560px) {
	.jlp-bp-onboarding__grid { grid-template-columns: repeat(2, 1fr); }
	.jlp-bp-budget__grid { grid-template-columns: repeat(3, 1fr); }
	.jlp-bp-row__more { grid-template-columns: repeat(2, 1fr); }
	.jlp-bp-mini--full,
	.jlp-bp-mini--wide { grid-column: 1 / -1; }
	.jlp-bp-guest .jlp-bp-row__main { grid-template-columns: 1fr 11rem; }
	.jlp-bp-activity .jlp-bp-row__main { grid-template-columns: 6.5rem 1fr 11rem; }
	.jlp-bp-task { grid-template-columns: auto minmax(0, 1.6fr) 9rem 8rem minmax(0, 1.4fr); }
	.jlp-bp-task__name,
	.jlp-bp-task__cat,
	.jlp-bp-task__who,
	.jlp-bp-task__note { grid-column: auto; }
	.jlp-bp-rule { grid-template-columns: 1fr 12rem; align-items: center; }
}

@media (min-width: 880px) {
	.jlp-bp-onboarding__grid { grid-template-columns: repeat(3, 1fr); }
	.jlp-bp-budget__grid { grid-template-columns: repeat(6, 1fr); }
}

/* ---------- print (the foundation watermarked preview isn't meant for print;
   the real print sheet is the PDF export — but make a sane fallback anyway) ---------- */
@media print {
	.jlp-bp-locked,
	.jlp-bp-row__del,
	.jlp-bp [data-jlp-repeater-add],
	.jlp-bp-history { display: none !important; }
	.jlp-bp-onboarding, .jlp-bp-nextstep, .jlp-bp-budget, .jlp-bp-itinerary, .jlp-bp-section { box-shadow: none; border-color: var(--bp-line); }
}
