/* JL Planners — Name Change / Documents Planner ("Dokumenty ślubne i zmiana nazwiska").
 * Mobile-first, romantic / premium Polish-wedding styling. Task rows render as cards on
 * small screens and a compact grid on wider ones. Reminder colours: green = done,
 * amber = soon, burgundy = overdue, neutral = upcoming, slate = none. Priority badges:
 * burgundy outline = wysoki, gold = średni, muted = niski. Reuses .jlp-btn / .jlp-field /
 * .jlp-input / .jlp-muted / .jlp-eyebrow from planner-shell.css. */

.jlp-ncd {
	--ncd-gold:       var( --jlp-gold );
	--ncd-gold-soft:  var( --jlp-gold-glow );
	--ncd-line:       var( --jlp-line );
	--ncd-ink:        var( --jlp-ink );
	--ncd-muted:      var( --jlp-gold-deep );
	--ncd-cream:      var( --jlp-bg );
	--ncd-done:       var( --jlp-ok );
	--ncd-done-bg:    var( --jlp-ok-bg );
	--ncd-soon:       var( --jlp-warn );
	--ncd-soon-bg:    var( --jlp-warn-bg );
	--ncd-overdue:    var( --jlp-error );
	--ncd-overdue-bg: var( --jlp-error-bg );
	--ncd-upcoming:   var( --jlp-ink-soft );
	--ncd-none:       #34607A;
	--ncd-none-bg:    #EAF1F5;
	font-family: "Manrope", system-ui, sans-serif;
	color: var( --ncd-ink );
}

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

.jlp-ncd-h2 {
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: clamp( 1.5rem, 4vw, 2rem );
	font-weight: 500;
	margin: 0 0 .55rem;
}

.jlp-ncd section { margin: 0 0 1.8rem; }

.jlp-ncd-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .6rem 1rem;
	justify-content: space-between;
	margin-bottom: .3rem;
}
.jlp-ncd-lastsave { font-size: .82rem; }

/* ---------- locked preview banner ---------- */
.jlp-ncd-locked {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem;
	padding: .9rem 1.1rem;
	margin: 0 0 1.2rem;
	background: linear-gradient( 135deg, var( --jlp-surface ), var( --ncd-cream ) );
	border: 1px solid var( --ncd-line );
	border-radius: 12px;
	box-shadow: 0 12px 30px -22px rgba( 42, 31, 26, .35 );
}
.jlp-ncd-locked__icon { display: inline-flex; flex: 0 0 auto; color: var( --jlp-gold-deep ); line-height: 1; }
.jlp-ncd-locked__text { flex: 1 1 240px; font-size: .94rem; line-height: 1.5; color: var( --jlp-ink-soft ); }
.jlp-ncd-locked__actions { display: flex; flex-wrap: wrap; gap: .4rem; }

/* ---------- disclaimer ---------- */
.jlp-ncd-disclaimer {
	font-size: .85rem;
	line-height: 1.5;
	color: var( --jlp-ink-soft );
	background: var( --ncd-gold-soft );
	border: 1px solid var( --ncd-line );
	border-left: 4px solid var( --ncd-gold );
	border-radius: 8px;
	padding: .7rem .9rem;
	margin: 0 0 1.4rem;
}

/* ---------- onboarding ---------- */
.jlp-ncd-onboarding__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: .85rem;
}
@media ( min-width: 640px ) {
	.jlp-ncd-onboarding__grid { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
	.jlp-ncd-onboarding__wide { grid-column: 1 / -1; }
}
@media ( min-width: 900px ) {
	.jlp-ncd-onboarding__grid { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); }
}
.jlp-ncd-onboarding__notes { display: block; margin-top: .85rem; }

/* ---------- summary cards / progress ---------- */
.jlp-ncd-cards {
	display: grid;
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	gap: .6rem;
	margin: 0 0 .9rem;
}
@media ( min-width: 640px ) { .jlp-ncd-cards { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); } }
@media ( min-width: 900px ) { .jlp-ncd-cards { grid-template-columns: repeat( 6, minmax( 0, 1fr ) ); } }
.jlp-ncd-card {
	border: 1px solid var( --ncd-line );
	border-radius: 10px;
	padding: .6rem .7rem;
	background: var( --jlp-surface );
}
.jlp-ncd-card__label {
	display: block;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var( --ncd-muted );
	margin-bottom: .25rem;
}
.jlp-ncd-card__value { font-size: 1.15rem; color: var( --ncd-ink ); }
.jlp-ncd-card--alertable.is-alert {
	border-color: var( --ncd-overdue );
	background: var( --ncd-overdue-bg );
}
.jlp-ncd-card--alertable.is-alert .jlp-ncd-card__value { color: var( --ncd-overdue ); }

.jlp-ncd-progress {
	height: 10px;
	border-radius: 6px;
	background: var( --jlp-gold-glow );
	overflow: hidden;
	margin: .35rem 0;
}
.jlp-ncd-progress__fill {
	height: 100%;
	background: var( --ncd-done );
	transition: width .25s ease;
}
.jlp-ncd-progress__label { font-size: .85rem; color: var( --jlp-ink-soft ); margin: 0 0 .9rem; }

.jlp-ncd-nextstep {
	border: 1px dashed var( --ncd-line );
	border-radius: 10px;
	padding: .7rem .9rem;
	background: var( --ncd-cream );
}
.jlp-ncd-nextstep .jlp-eyebrow { margin: 0 0 .2rem; }
.jlp-ncd-nextstep__text { margin: 0; font-size: .95rem; line-height: 1.5; }

/* ---------- per-category overview ---------- */
.jlp-ncd-bycat__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: .7rem;
}
@media ( min-width: 640px ) { .jlp-ncd-bycat__grid { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); } }
@media ( min-width: 980px ) { .jlp-ncd-bycat__grid { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); } }
.jlp-ncd-catcard {
	border: 1px solid var( --ncd-line );
	border-radius: 10px;
	padding: .65rem .8rem;
	background: var( --jlp-surface );
}
.jlp-ncd-catcard.is-empty { opacity: .6; }
.jlp-ncd-catcard__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .6rem;
}
.jlp-ncd-catcard__name { font-weight: 600; font-size: .95rem; }
.jlp-ncd-catcard__count { font-size: .78rem; color: var( --ncd-muted ); white-space: nowrap; }
.jlp-ncd-catcard__hint { font-size: .78rem; color: var( --jlp-ink-mute ); margin: .25rem 0 .45rem; line-height: 1.4; }
.jlp-ncd-catcard__bar { height: 7px; border-radius: 5px; background: var( --jlp-gold-glow ); overflow: hidden; }
.jlp-ncd-catcard__fill { display: block; height: 100%; background: var( --ncd-gold ); transition: width .25s ease; }

/* ---------- task list ---------- */
.jlp-ncd-tasks__tools { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem; }
.jlp-ncd-filter { min-width: 12rem; }
.jlp-ncd-tasks__hint { font-size: .85rem; margin: .2rem 0 .9rem; }

.jlp-ncd-empty {
	border: 1px dashed var( --ncd-line );
	border-radius: 10px;
	padding: 1.1rem;
	text-align: center;
	background: var( --ncd-cream );
	margin-bottom: .9rem;
}

.jlp-ncd-rows { display: flex; flex-direction: column; gap: .8rem; }

.jlp-ncd-row {
	border: 1px solid var( --ncd-line );
	border-left: 4px solid var( --ncd-upcoming );
	border-radius: 12px;
	padding: .7rem .85rem .85rem;
	background: var( --jlp-surface );
}
.jlp-ncd-row[data-reminder="overdue"] { border-left-color: var( --ncd-overdue ); background: var( --ncd-overdue-bg ); }
.jlp-ncd-row[data-reminder="soon"]    { border-left-color: var( --ncd-soon ); }
.jlp-ncd-row[data-reminder="done"]    { border-left-color: var( --ncd-done ); background: var( --ncd-done-bg ); }
.jlp-ncd-row[data-reminder="none"]    { border-left-color: var( --ncd-none ); }
.jlp-ncd-row[data-status="zrobione"] .jlp-ncd-cell--task .jlp-input { text-decoration: line-through; color: var( --jlp-ink-soft ); }
.jlp-ncd-row[data-status="nie_dotyczy"] { opacity: .7; }
.jlp-ncd-row.is-filtered-out { display: none; }

.jlp-ncd-row__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .45rem;
	margin-bottom: .55rem;
}
.jlp-ncd-row__head-actions { margin-left: auto; display: flex; align-items: center; gap: .4rem; }

.jlp-ncd-pill {
	display: inline-block;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	padding: .18rem .5rem;
	border-radius: 999px;
	border: 1px solid currentColor;
}
.jlp-ncd-pill--done     { color: var( --ncd-done ); background: var( --ncd-done-bg ); }
.jlp-ncd-pill--overdue  { color: var( --ncd-overdue ); background: var( --ncd-overdue-bg ); }
.jlp-ncd-pill--soon     { color: var( --ncd-soon ); background: var( --ncd-soon-bg ); }
.jlp-ncd-pill--upcoming { color: var( --ncd-upcoming ); background: var( --jlp-surface ); }
.jlp-ncd-pill--none     { color: var( --ncd-none ); background: var( --ncd-none-bg ); }

.jlp-ncd-prio {
	display: inline-block;
	font-size: .66rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	padding: .15rem .45rem;
	border-radius: 4px;
}
.jlp-ncd-prio--wysoki { color: var( --ncd-overdue ); border: 1px solid var( --ncd-overdue ); }
.jlp-ncd-prio--sredni { color: #fff; background: var( --ncd-gold ); }
.jlp-ncd-prio--niski  { color: var( --jlp-ink-mute ); border: 1px solid var( --ncd-line ); }

.jlp-ncd-del {
	border: 0;
	background: transparent;
	color: #B57F76;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	padding: 0 .25rem;
	border-radius: 4px;
}
.jlp-ncd-del:hover { color: var( --ncd-overdue ); background: var( --ncd-overdue-bg ); }

.jlp-ncd-row__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: .6rem;
}
@media ( min-width: 720px ) {
	.jlp-ncd-row__grid {
		grid-template-columns: minmax( 0, 1.6fr ) minmax( 0, 2.2fr ) minmax( 0, 1.6fr ) minmax( 0, 1fr );
	}
	.jlp-ncd-cell--task     { grid-column: span 1; }
	.jlp-ncd-cell--notes,
	.jlp-ncd-cell--link     { grid-column: 1 / -1; }
}
@media ( min-width: 1040px ) {
	.jlp-ncd-row__grid {
		grid-template-columns: minmax( 0, 1.4fr ) minmax( 0, 2fr ) minmax( 0, 1.5fr ) minmax( 0, .9fr ) minmax( 0, 1fr ) minmax( 0, .9fr );
	}
	.jlp-ncd-cell--link  { grid-column: span 3; }
	.jlp-ncd-cell--notes { grid-column: span 3; }
}

.jlp-ncd-linkrow { display: flex; align-items: center; gap: .4rem; }
.jlp-ncd-linkrow .jlp-input { flex: 1 1 auto; min-width: 0; }
.jlp-ncd-linkopen {
	flex: 0 0 auto;
	font-size: .8rem;
	color: var( --ncd-muted );
	text-decoration: underline;
	white-space: nowrap;
}
.jlp-ncd-linkopen[hidden] { display: none; }

.jlp-ncd-cell--notes textarea { resize: vertical; min-height: 2.4rem; }
.jlp-ncd-cell--task input { font-weight: 600; }

.jlp-ncd-foot {
	margin-top: .8rem;
	padding-top: .6rem;
	border-top: 1px solid var( --ncd-line );
	font-size: .9rem;
	color: var( --jlp-ink-soft );
}

/* ---------- read-only (preview / archived plan) ---------- */
.jlp-ncd[data-readonly="1"] .jlp-input { background: var( --ncd-cream ); }
.jlp-ncd[data-readonly="1"] .jlp-ncd-del,
.jlp-ncd[data-readonly="1"] [data-ncd-mark-done],
.jlp-ncd[data-readonly="1"] [data-ncd-add] { display: none; }
