/* Urbanism Online - stiluri publice (neutre, se adaptează temei) */
.urb-app {
	--urb-accent: #1d4f91;
	--urb-accent-ink: #fff;
	--urb-line: rgba(0, 0, 0, .18);
	--urb-soft: rgba(0, 0, 0, .04);
	--urb-muted: rgba(0, 0, 0, .62);
	--urb-bad: #b3261e;
	--urb-ok: #1e7b3a;
	max-width: 920px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.5;
	scroll-margin-top: 90px;
}
.urb-app *, .urb-app *::before, .urb-app *::after { box-sizing: border-box; }
.urb-loading, .urb-note, .urb-meta, .urb-hint { color: var(--urb-muted); }
.urb-note, .urb-hint, .urb-meta { font-size: .875em; }
.urb-hint { display: block; margin-top: 2px; }
.urb-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* pași */
.urb-steps { display: flex; flex-wrap: wrap; gap: 6px 18px; list-style: none; margin: 0 0 20px; padding: 0; font-size: .875em; }
.urb-steps li { display: flex; align-items: center; gap: 8px; color: var(--urb-muted); margin: 0; }
.urb-steps__n { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--urb-line); font-weight: 600; }
.urb-steps .is-active { color: inherit; font-weight: 600; }
.urb-steps .is-active .urb-steps__n { background: var(--urb-accent); border-color: var(--urb-accent); color: var(--urb-accent-ink); }
.urb-steps .is-done .urb-steps__n { border-color: var(--urb-ok); color: var(--urb-ok); }

/* carduri */
.urb-group { margin: 26px 0 10px; font-size: 1.15em; }
.urb-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.urb-card { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; text-align: left; padding: 16px; border: 1px solid var(--urb-line); border-radius: 10px; background: transparent; color: inherit; font: inherit; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.urb-card:hover, .urb-card:focus-visible { border-color: var(--urb-accent); box-shadow: 0 0 0 3px rgba(29, 79, 145, .15); outline: none; }
.urb-card__code { font-size: .75em; font-weight: 700; letter-spacing: .04em; color: var(--urb-accent); }
.urb-card__title { font-weight: 600; line-height: 1.3; }
.urb-card__desc { font-size: .85em; color: var(--urb-muted); line-height: 1.35; }

/* formular */
.urb-head h3 { margin: 6px 0 2px; }
.urb-head p { margin: 0 0 6px; }
.urb-link { background: none; border: 0; padding: 0; color: var(--urb-accent); font: inherit; cursor: pointer; text-decoration: underline; }
.urb-section { border: 1px solid var(--urb-line); border-radius: 10px; padding: 16px 18px 12px; margin: 16px 0; }
.urb-section--plain { border-style: dashed; background: var(--urb-soft); }
.urb-section h4 { margin: -16px -18px 14px; padding: 10px 18px; background: var(--urb-soft); border-bottom: 1px solid var(--urb-line); border-radius: 10px 10px 0 0; font-size: 1em; letter-spacing: .02em; }
.urb-sub { margin: 14px 0 6px; font-size: .95em; }
.urb-row { display: grid; grid-template-columns: repeat(12, 1fr); gap: 10px 12px; margin-bottom: 10px; }
.urb-field { display: flex; flex-direction: column; min-width: 0; }
.urb-w1 { grid-column: span 1; } .urb-w2 { grid-column: span 2; } .urb-w3 { grid-column: span 3; }
.urb-w4 { grid-column: span 4; } .urb-w5 { grid-column: span 5; } .urb-w6 { grid-column: span 6; }
.urb-w7 { grid-column: span 7; } .urb-w8 { grid-column: span 8; } .urb-w9 { grid-column: span 9; }
.urb-w10 { grid-column: span 10; } .urb-w11 { grid-column: span 11; } .urb-w12 { grid-column: span 12; }
.urb-field label { font-size: .85em; font-weight: 600; margin-bottom: 3px; }
.urb-app input[type=text], .urb-app input[type=email], .urb-app input[type=tel], .urb-app input[type=number],
.urb-app input[type=date], .urb-app input[type=time], .urb-app select, .urb-app textarea {
	width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid var(--urb-line); border-radius: 6px; font: inherit; background: #fff; color: #111;
}
.urb-app textarea { min-height: 84px; resize: vertical; }
.urb-app input:focus, .urb-app select:focus, .urb-app textarea:focus { outline: 2px solid var(--urb-accent); outline-offset: 0; border-color: var(--urb-accent); }
.urb-app input.is-fixed { background: var(--urb-soft); color: inherit; }
.urb-req { color: var(--urb-bad); }
.urb-checks { border: 0; margin: 6px 0 10px; padding: 0; min-width: 0; }
.urb-checks legend { font-weight: 600; font-size: .9em; margin-bottom: 4px; padding: 0; }
.urb-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.urb-cols legend, .urb-cols .urb-err { grid-column: 1 / -1; }
.urb-check { display: flex; align-items: flex-start; gap: 8px; padding: 5px 0; cursor: pointer; line-height: 1.35; }
.urb-check input { margin-top: 2px; width: 18px; height: 18px; flex: none; accent-color: var(--urb-accent); }
.urb-check.is-sub { padding-left: 28px; }
.urb-text { margin: 6px 0 10px; }
.urb-text--legal { text-align: center; margin: 4px 0; }
.urb-text--big { text-align: center; font-weight: 700; font-size: 1.1em; margin: 4px 0 10px; }
.urb-text--note { font-size: .85em; color: var(--urb-muted); }
.urb-text--para { font-size: .92em; text-align: justify; }
.urb-err { display: block; color: var(--urb-bad); font-size: .85em; min-height: 0; }
.urb-err:empty { display: none; }
.has-error input, .has-error select, .has-error textarea { border-color: var(--urb-bad) !important; }
.has-error > legend, .has-error > label { color: var(--urb-bad); }
.urb-summary { margin: 14px 0; padding: 10px 14px; border-left: 4px solid var(--urb-bad); background: rgba(179, 38, 30, .07); }
.urb-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 4px; }
.urb-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 1px solid var(--urb-line); border-radius: 8px; background: transparent; color: inherit; font: inherit; font-weight: 600; cursor: pointer; }
.urb-btn:hover { border-color: var(--urb-accent); }
.urb-btn--primary { background: var(--urb-accent); border-color: var(--urb-accent); color: var(--urb-accent-ink); }
.urb-btn--primary:hover { filter: brightness(1.1); }
.urb-btn--small { min-height: 36px; padding: 6px 12px; font-size: .9em; }
.urb-btn[disabled] { opacity: .55; cursor: wait; }
.urb-howto { margin: 0 0 10px 1.2em; padding: 0; }
.urb-howto li { margin: 4px 0; }
.is-bad { color: var(--urb-bad); }

/* încărcare */
.urb-file { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 10px 12px; margin: 8px 0; border: 1px dashed var(--urb-line); border-radius: 8px; }
.urb-file label { font-weight: 600; font-size: .9em; }
.urb-file input[type=file] { max-width: 100%; font: inherit; font-size: .9em; }
.urb-file__info { font-size: .85em; color: var(--urb-muted); }
.urb-gdpr-wrap { margin: 16px 0 6px; padding: 10px 12px; background: var(--urb-soft); border-radius: 8px; font-size: .9em; }
.urb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.urb-progress { width: 100%; height: 10px; margin: 8px 0; }
.urb-done { border-color: var(--urb-ok); }
.urb-done h4 { background: rgba(30, 123, 58, .1); }
.urb-ref { font-size: 1.15em; }

@media (max-width: 640px) {
	.urb-row { grid-template-columns: repeat(6, 1fr); }
	.urb-row > .urb-field { grid-column: span 6; }
	.urb-row > .urb-w1, .urb-row > .urb-w2, .urb-row > .urb-w3 { grid-column: span 3; }
	.urb-cols { grid-template-columns: 1fr; }
	.urb-section { padding: 14px 12px 10px; }
	.urb-section h4 { margin: -14px -12px 12px; padding: 10px 12px; }
	.urb-actions .urb-btn { width: 100%; }
	.urb-steps li span:last-child { display: none; }
	.urb-steps li.is-active span:last-child { display: inline; }
}

/* ---- Protecție față de stilurile temei / Elementor (v1.0.1) ---- */
.urb-app button, .urb-app .urb-card, .urb-app .urb-btn, .urb-app .urb-link {
	height: auto !important;
	max-height: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	white-space: normal !important;
	text-shadow: none !important;
	box-shadow: none;
	text-decoration: none;
}
.urb-app .urb-card {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	min-height: 0 !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 16px !important;
	line-height: 1.35 !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	background: #fff !important;
	color: #1d2327 !important;
	border: 1px solid rgba(0, 0, 0, .18) !important;
	border-radius: 10px !important;
	overflow: visible !important;
}
.urb-app .urb-card:hover, .urb-app .urb-card:focus-visible { border-color: var(--urb-accent) !important; background: #f7f9fc !important; color: #1d2327 !important; }
.urb-app .urb-card span { display: block !important; width: 100%; line-height: 1.35 !important; text-transform: none !important; }
.urb-app .urb-card__code { font-size: 12px !important; font-weight: 700 !important; color: var(--urb-accent) !important; margin-bottom: 2px; }
.urb-app .urb-card__title { font-size: 16px !important; font-weight: 600 !important; color: #1d2327 !important; }
.urb-app .urb-card__desc { font-size: 13.5px !important; color: #5f6368 !important; margin-top: 4px; }
.urb-app .urb-cards { align-items: stretch; margin: 0 0 8px; }

.urb-app .urb-steps, .urb-app .urb-steps li { list-style: none !important; margin-left: 0 !important; padding-left: 0 !important; }
.urb-app .urb-steps li::before, .urb-app .urb-steps li::marker { content: none !important; display: none !important; }
.urb-app .urb-steps { counter-reset: none !important; align-items: center; }
.urb-app .urb-steps__n { display: inline-flex !important; align-items: center; justify-content: center; line-height: 1 !important; font-size: 13px !important; padding: 0 !important; box-sizing: border-box; }

.urb-app .urb-btn { line-height: 1.3 !important; padding: 10px 18px !important; border-radius: 8px !important; font-size: 15px !important; }
.urb-app .urb-btn:not(.urb-btn--primary) { background: #fff !important; color: #1d2327 !important; border: 1px solid rgba(0, 0, 0, .25) !important; }
.urb-app .urb-btn--primary { background: var(--urb-accent) !important; color: #fff !important; border: 1px solid var(--urb-accent) !important; }
.urb-app .urb-link { background: none !important; border: 0 !important; padding: 0 !important; color: var(--urb-accent) !important; text-decoration: underline !important; font-size: 15px !important; }
.urb-app .urb-group { text-transform: none !important; }
.urb-app .urb-howto { list-style: decimal !important; }

/* semnătură (v1.3) */
.urb-app .urb-sig-choice { margin: 4px 0 6px; padding: 10px 12px !important; border: 1px solid var(--urb-line) !important; border-radius: 8px; }
.urb-app .urb-sig-only { margin: 4px 0; }
.urb-app .urb-sig-badge { display: block; font-size: .88em; font-weight: 600; }
.urb-app .urb-sig-badge.is-ok { color: var(--urb-ok); }
.urb-app .urb-sig-badge.is-bad { color: var(--urb-bad); }

/* Taxa datorată */
.urb-taxa { border-left: 4px solid #1d4f91; background: #f5f8fc; padding: 12px 16px; margin: 16px 0; border-radius: 0 4px 4px 0; }
.urb-taxa h4 { margin: 0 0 6px; font-size: 1rem; color: #1d4f91; }
.urb-taxa__sum { margin: 0 0 6px; font-weight: 600; }
.urb-taxa__note { margin: 4px 0; font-size: .9rem; color: #4a4f57; }
.urb-taxa__cont { list-style: none; margin: 8px 0; padding: 0; font-size: .95rem; }
.urb-taxa__cont li { margin: 3px 0; }
.urb-taxa__cont code { background: #fff; border: 1px solid #d5d8dc; padding: 1px 5px; border-radius: 3px; letter-spacing: .5px; }
.urb-taxa__link { display: inline-block; margin-top: 4px; font-weight: 600; }
.urb-card__taxa { display: inline-block; margin-top: 6px; font-size: .8rem; color: #1d4f91; background: #eef4fb; border-radius: 10px; padding: 1px 9px; }
.urb-taxa__expl { margin-top: 10px; padding: 8px 10px; background: #fff; border: 1px dashed #b26200; border-radius: 4px; }
.urb-taxa__expl strong { display: block; font-size: .92rem; color: #8a4b00; }
.urb-taxa__explcod { display: block; margin: 5px 0; padding: 5px 8px; background: #fcf9e8; border-radius: 3px; font-size: .95rem; word-break: break-word; }
.urb-taxa__expl .urb-taxa__note { display: block; margin: 0; }

/* ---------- actele necesare (nu intră niciodată în PDF-ul formularului) ---------- */
.urb-acte { border-left: 4px solid #1a7f37; background: #f3faf5; padding: 12px 16px; margin: 16px 0; border-radius: 0 4px 4px 0; }
.urb-acte h4 { margin: 0 0 6px; font-size: 1rem; color: #14622b; }
.urb-acte__pentru { font-weight: 400; color: #4a4f57; }
.urb-acte__intro { margin: 0 0 8px; font-size: .95rem; color: #3c4149; }
.urb-acte__list { list-style: none; margin: 8px 0 6px; padding: 0; }
.urb-acte__act { position: relative; padding: 3px 0 3px 26px; line-height: 1.4; }
.urb-acte__act::before { content: ""; position: absolute; left: 2px; top: 6px; width: 13px; height: 13px; border: 1.5px solid #1a7f37; border-radius: 2px; background: #fff; }
.urb-acte__act.is-optional::before { border-style: dashed; border-color: #8a9099; }
.urb-acte__text { font-weight: 500; }
.urb-acte__daca { font-style: normal; font-weight: 400; font-size: .85em; color: #6b7280; }
.urb-acte__hint { display: block; font-size: .86rem; color: #5f6368; line-height: 1.35; }
.urb-acte__nota { padding: 6px 0 3px 26px; font-size: .9rem; color: #4a4f57; }
.urb-acte__atentie { padding: 7px 10px 7px 26px; margin: 6px 0; background: #fcf9e8; border: 1px dashed #b26200; border-radius: 4px; font-size: .93rem; color: #7a4300; }
.urb-acte__obs { margin: 8px 0 0; font-size: .92rem; color: #3c4149; }
.urb-acte__temei { margin: 8px 0 0; font-size: .82rem; color: #6b7280; line-height: 1.4; }
.urb-acte--compact { margin: 6px 0 14px; padding: 10px 14px; background: #f7faf8; }
.urb-acte--compact h4 { font-size: .95rem; }
.urb-card__tags { display: block; margin-top: 6px; }
/* tema forțează „display:block” pe orice span din card; etichetele rămân pastile */
.urb-app .urb-card__tags { display: flex !important; flex-wrap: wrap; align-items: flex-start; gap: 4px 6px; margin-top: 6px; }
.urb-app .urb-card__tags > span { display: inline-block !important; width: auto; margin-top: 0; flex: 0 0 auto; }
.urb-card__acte { display: inline-block; margin-right: 6px; font-size: .8rem; color: #14622b; background: #e8f5ec; border-radius: 10px; padding: 1px 9px; }
.urb-acte-pagina .urb-acte--lista { margin-bottom: 22px; }
.urb-acte__coduri { margin: -16px 0 22px; font-size: .82rem; color: #6b7280; }

/* La tipărire, caseta din formular dispare: pe hârtie rămâne doar formularul oficial.
   Pagina separată cu actele necesare ([urbanism_acte]) se tipărește normal. */
@media print {
	.urb-acte { display: none !important; }
	.urb-acte--lista { display: block !important; break-inside: avoid; border-left-color: #666; background: none; }
}
