/*!
 * css/portal.css — stylesheet-ul GLOBAL al portalului RodBun
 * ---------------------------------------------------------------------------
 * Fost <style> inline din index.php (shell + componente comune). Incarcat O DATA
 * in <head> cu ?v=<mtime> (assetVer), inaintea fragmentelor. NU inlocuieste inca
 * CSS-ul per-pagina din fragmente (aia vine in Faza 2). doLogin ramane separat.
 *
 * Sectiuni: GLOBAL/SHELL · COMPONENTE COMUNE (tabele/filtre/empty-state/chip SPV)
 *           · Company switch (modal shell).
 * (css/clCss.css e MORT/divergent - nu se foloseste.)
 * ---------------------------------------------------------------------------
 */

/* ===================== GLOBAL / SHELL (fost index.php) ===================== */
		*:not(ul, ol, li) {
			font-family: ui-sans-serif, system-ui, sans-serif, 'Segoe UI', sans-serif ;
			margin:0;
			padding:0;
			box-sizing: border-box;
		}

		::-webkit-scrollbar { width:10px; height: 10px; }
		::-webkit-scrollbar-thumb {  background: #b3c0b4; border-radius: 8px; border: 2px solid transparent; background-clip: padding-box; }
		::-webkit-scrollbar-thumb:hover { background: #8ea391; background-clip: padding-box; }
		* { scrollbar-width: thin; scrollbar-color: #b3c0b4 transparent; }

		html, body { width: 100%; height: 100%; overflow: hidden; -webkit-font-smoothing: antialiased; font-family: arial; }
		html { background: black; padding: 5px; }
		body { background: white; border-radius: 10px; }

		label { display: block; color: #aaa; }

		.uiTextarea { border: 1px solid #ddd;  border-radius: 10px;  transition: box-shadow 0.3s ease; padding: 5px; }
		.uiTextarea:focus { box-shadow: 0 0px 4px rgba(240,10,20,0.4); outline: none; }

		.btn-blue {
		  background: linear-gradient(135deg, #1e90ff, #0066ff);
		  color: white;
		  padding: 6px 24px 8px;
		  border: none;
		  border-radius: 8px;
		  font-size: 16px;
		  font-weight: 600;
		  cursor: pointer;
		  transition: all 0.1s ease;
		  box-shadow: 0 4px 12px rgba(0, 102, 255, 0.25);
		}

		.btn-blue:hover { background: linear-gradient(135deg, #4ea8ff, #1e7eff); box-shadow: 0 0px 8px rgba(0, 102, 255, 0.35); }
		.btn-blue:active { transform: scale(0.99); box-shadow: 0 3px 10px rgba(0, 102, 255, 0.2); }


		.padTop20 { padding-top: 20px; }
		.padBottom20 { padding-bottom: 20px; }
		.padLeft20 { padding-left: 20px; }
		.padRight20 { padding-right: 20px; }


		#menu { position: fixed; top:5px; left:  5px; height: calc(100% - 10px); width: 46px; border-right: 1px solid #ccc; background: #f5f5f5; z-index: 100; }
			#logo { width: 46px; height: 46px; display: block; background: #f0f0f0; border:1px solid #ccc; text-align: center; color: red; font-size: 30px; }
				#logo a, #logo a:visited, #logo a:hover { color: red; }
			
			#menu ul {   list-style-type: none; padding-left: 0; margin-left: 0; }
			#menu ul li { width: 46px; display: block; text-align: center; }
			#menu ul li i { line-height: 46px; font-size: 20px; transition: font-size 0.25s ease, color 0.2s ease;}
			#menu ul li i:hover { cursor: pointer; color: #FF5252; font-size: 28px; }
			#menu ul li i:active { font-size: 24px !important; }
			#menu ul li#logout { position: absolute; bottom: 0px; border-top: 1px solid #ccc; }
			#menu ul li#impBtn { position: absolute; bottom: 47px; }   /* fix deasupra logout */

			#menu ul li.selectedItem { background: #CFD8DC; border-radius: 5px; }

			/* indicator mesaje noi (punct rosu) pe iconita din meniu */
			#menu ul li.menuHasDot { position: relative; }
			.menuDot { display: none; position: absolute; top: 7px; right: 9px; width: 9px; height: 9px; border-radius: 50%; background: #FF3B30; box-shadow: 0 0 0 2px #f5f5f5; pointer-events: none; }
			.menuDot.on { display: block; animation: menuDotPulse 1.8s ease-out infinite; }
			@keyframes menuDotPulse { 0% { box-shadow: 0 0 0 2px #f5f5f5, 0 0 0 0 rgba(255,59,48,.45); } 70% { box-shadow: 0 0 0 2px #f5f5f5, 0 0 0 7px rgba(255,59,48,0); } 100% { box-shadow: 0 0 0 2px #f5f5f5, 0 0 0 0 rgba(255,59,48,0); } }
			@media (prefers-reduced-motion: reduce) { .menuDot.on { animation: none; } }


		.pageContainer { width: calc(100% - 51px); height: 100%; overflow: auto; position: relative; top: 0; left: 51px; }
		.page {display: none; width: 100%; margin:0 auto; padding: 40px; font-family: ui-sans-serif, system-ui, sans-serif, 'Segoe UI', sans-serif !important;  }
			.page.slim { width: 78%; min-width: 1000px; left: 11% !important; }
			.page .control { font-family: 'Segoe UI', sans-serif; font-size: 14px; color: #666; cursor:pointer; margin-top: 10px; user-select: none; }
			.page .control .titlu { position:relative; top:3px; font-size: 24px; font-weight: bold; }

			/* --- breadcrumb unificat (toate paginile) --- */
			.page .control.breadcrumb {
				display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
				margin-top: 4px; padding-bottom: 16px; margin-bottom: 4px;
				border-bottom: 1px solid #e7ece8;
				font-family: ui-sans-serif, system-ui, 'Segoe UI', sans-serif;
				color: rgb(108,147,122); font-size: 14px; cursor: default;
			}
			.page .control.breadcrumb .crHome {
				display: inline-flex; align-items: center; gap: 7px;
				color: rgb(108,147,122); cursor: pointer; font-size: 16px;
				padding: 5px 10px; border-radius: 8px; margin-left: -4px;
				transition: background .15s, color .15s;
			}
			.page .control.breadcrumb .crHome:hover { background: rgb(240,245,242); color: rgb(22,163,74); }
			.page .control.breadcrumb .crHome i { font-size: 15px; }
			.page .control.breadcrumb .crSep { font-size: 11px; color: #cfd8d2; }
			.page .control.breadcrumb .titlu {
				position: relative; top: -2px; font-size: 20px; font-weight: 600;
				color: rgb(48,80,60); letter-spacing: -0.01em;
			}

		.page .main { margin: 40px auto; width: 100%; overflow-y: auto; border: 1px solid #ddd; border-radius: 10px; box-shadow: 0 0 3px rgba( 200,200,200,0.4); }
			.page .main:not(:first-child) { margin-top:20px; margin-bottom: 20px; }
			.page .main .mainTitle { color: rgb(48, 80, 60); font-size: 22px; font-weight: 600; display:inline-block; float: left; }
			.page .main .mainControls { text-align: right; float: right; }

			.page .main.noVertiPadding { padding: 0 0 20px 0 !important; }
			.page .main.noHorizPadding { padding: 20px 0px !important; }
			.page .main.noHorizPadding .mainTitle { padding: 0 20px; }
			

	

		.s33 { width: calc(33% - 10px ); }

		.itemContainer { display: flex; flex-wrap: wrap; gap: 10px; margin: 30px auto 0; }
		.itemContainer.noMargin { margin: 0 auto !important; }
			.itemContainer .item { flex: 1 1 calc(33.333% - 10px); /* 3 pe linie */ ; background: #fff; padding: 10px 20px; border-radius: 10px; box-shadow: 0 0px 0px rgba(0,0,0,0.1); }
			.itemContainer .item.item4 { flex: 1 1 calc(25% - 10px); padding: 0 20px; }

			.itemContainer .item .dataLabel { }
			.itemContainer .item .dataContent { margin-top: 10px; }

			.itemContainer .item .dataLabelMini { margin-top: 15px;}
			.itemContainer .item .dataContentMini { margin-top: 3px; }
			
			.itemContainer .item h4 { color: rgba(48, 80, 60, 0.9); }

		.tabularContainer { display: grid; flex-wrap: wrap; gap: 10px; margin: 0px auto 0; padding:1px 10px;  border:1px solid #ddd; border-radius: 10px; margin-top: 20px;grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(200px, 2fr); }
		.tabularContainer.invisible { display: none; }
		.tabularContainer:hover { background: #E8F5E9 !important; }
			.tabularContainer .item { flex: 1 1 calc(33.333% - 20px);  padding: 10px 20px 10px; border-radius: 10px; box-shadow: 0 0px 0px rgba(0,0,0,0.1); }
			.tabularContainer .item.grid2 { flex: 1 1 calc(50% - 20px); }
			.tabularContainer .item.grid3 { flex: 1 1 calc(33.333% - 20px); }
			.tabularContainer .item.grid4 { flex: 1 1 calc(25% - 20px); }
			.tabularContainer .item.grid5 { flex: 1 1 calc(20% - 20px); }

			.tabularContainer .item .dataLabel {letter-spacing: 1px;  margin-top: 0px; }
			.tabularContainer .item .dataContent { margin-top: 3px; }

			.tabularContainer .item h4 { color: rgba(48, 80, 60, 0.9); }

		.dataLabel, .dataLabelMini {  font-size: 12px; font-weigh: bold; color: rgb(108, 147, 122); letter-spacing: 1px; user-select: none; }
		.dataContent, .dataContentMini {  font-size: 14px; color: rgba(48, 80, 60, 0.8); font-weight:bold; display:block; }


		.card { display:inline-block; padding:20px 15px; border: 1px solid #ddd; border-radius: 10px; float: left; box-shadow: 0 0 6px rgba( 200,200,200,0.4); transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; }
			.card:not(:first-child) { margin-left: 10px; }
			.card .cardTitle { color: rgb(108, 147, 122); display: block; }
			.card .clickHere { color: rgb(22, 163, 74); margin-top: 20px; font-size: 12px; position: relative; cursor: pointer; display: inline-block; }
			.card .clickHere:hover { text-decoration: underline; }
			.card .cardData { margin-top: 20px; margin-left:0; font-weight: bolder; font-size: 24px; display: block; }
			.card .green { color: rgb(22, 163, 74); }
			.card .red { color: rgb(220 38 38 ); }

			.card.onhover:hover { box-shadow: 0 0 1px 2px rgb(22, 163, 74); }
			.card.selectedCard { box-shadow: 0 0 2px 1px rgb(22, 163, 74); }


		.tabList {  width: 100%; }
		.tabList.leftMargin { margin-left: 30px !important; width: calc(100% - 30px ); }
		.tabList.tabBorder { border: 1px solid #ddd !important; border-radius: 10px; padding: 5px 5px; box-shadow: 0 0 6px rgba( 200,200,200,0.4) }
		.tabList tr:nth-child(even) { background: #f5f5f5; }
		.tabList tr:first-child td { border-top: 1px solid #ddd;  }
		.tabList tr td { padding: 6px 10px; border-bottom: 1px solid #ddd; font-family: ui-sans-serif, system-ui, sans-serif, 'Segoe UI', sans-serif !important; font-size: 14px;  }
		.tabList tr:hover td { background: #E8F5E9 !important; }
		.tabList tr th { text-align: left; font-size:12px; border-bottom: 1px solid #aaa; padding: 10px 10px 10px; background: #ECEFF1; user-select: none; }

		/* ===== tabel scrollabil cu antet lipit — componenta reutilizabila =====
		   Utilizare:
		     <div class="tblFrame"><div class="tblScroll"><table class="tabList stickyHead">…</table></div></div>
		   .tblFrame  = rama fixa (border + padding 6px), NU se scroleaza.
		   .tblScroll = scroller invizibil interior; pune-i max-height per pagina (spatiul de deasupra difera).
		   Antetul (th) se lipeste de marginea de sus a scroller-ului = la 6px sub border (padding-ul ramei)
		   => inset simetric peste tot SI header fara alunecare (fara offset intre rama si header).
		   Empty-state-urile raman in AFARA .tblFrame (nu se incadreaza). */
		.tblFrame  { border:1px solid #ddd; border-radius:10px; box-shadow:0 0 6px rgba(200,200,200,0.4); padding:6px; overflow:hidden; }
		.tblScroll { overflow:auto; }
		.tabList.stickyHead { border-collapse:separate; border-spacing:0; }
		.tabList.stickyHead th { position:sticky; top:0; z-index:10; background:#ECEFF1; box-shadow:inset 0 -1px 0 #aaa; }

		/* ===== bara de filtre (cautare + datepickere/dropdown + buton, pe o linie) — reutilizabila =====
		   Utilizare: <div class="filterBar"> .searchWrap (search) · .dates · .ddown/.dropdown · .xlsBtn </div>
		   Per pagina raman doar diferentele (ex. min-width la dropdown). */
		.filterBar { display:flex; align-items:center; gap:10px; margin-top:15px; }
		.filterBar .searchWrap { flex:1 1 auto; }
		.filterBar input.typeSearch { position:relative; top:0; width:100%; }   /* override global (absolute) */
		.filterBar .dates { flex:none; display:flex; gap:10px; }
		.filterBar .ddown, .filterBar .dropdown { flex:none; position:relative; z-index:50; }   /* peste header-ul sticky */
		/* buton patrat de export (Excel) */
		.xlsBtn { flex:none; display:inline-flex; align-items:center; justify-content:center;
			width:42px; height:42px; padding:0; border:none; border-radius:6px; cursor:pointer;
			background:rgb(48,80,60); color:#fff; }
		.xlsBtn:hover { background:rgb(38,64,48); }
		.xlsBtn:disabled { opacity:.55; cursor:default; }
		.xlsBtn i { font-size:17px; }
		/* buton "confirmare de sold" (PDF) — aceeasi INALTIME ca .xlsBtn (42px), cu eticheta; fundal fad (verde-pal) */
		.docBtn { flex:none; display:inline-flex; align-items:center; justify-content:center; gap:8px;
			height:42px; padding:0 16px; border:1px solid #d6e0d9; border-radius:6px; cursor:pointer;
			background:#eef3ef; color:rgb(48,80,60); font-size:13px; font-weight:600; letter-spacing:.02em; white-space:nowrap; }
		.docBtn:hover { background:#e2ebe4; border-color:#bfd0c5; }
		.docBtn:disabled { opacity:.55; cursor:default; }
		.docBtn i { font-size:17px; }

		/* ===== empty-state (SVG animat, centrat) — scaffold reutilizabil =====
		   <div class="emptyState"><svg class="emptyArt">…<g class="emFloat">…<g class="emPulse">…</svg><h3>…</h3><p>…</p></div>
		   SVG-ul propriu-zis ramane per pagina; aici doar containerul + animatiile comune (float/pulse/fadeUp). */
		.emptyState { text-align:center; padding:44px 24px; animation: emptyFadeUp .5s cubic-bezier(.2,.7,.2,1) both; }
		.emptyState .emptyArt { width:220px; max-width:60%; height:auto; display:inline-block; overflow:visible; }
		.emptyState h3 { margin:20px 0 8px; font-size:20px; font-weight:700; color:rgb(48,80,60); letter-spacing:.2px; }
		.emptyState p  { margin:0 auto; max-width:430px; font-size:14px; line-height:1.55; color:rgb(108,147,122); }
		.emFloat { transform-box:fill-box; transform-origin:center; animation: emptyFloat 4.6s ease-in-out infinite; }
		.emPulse { transform-box:fill-box; transform-origin:center; animation: emptyPulse 2.8s ease-in-out infinite; }
		@keyframes emptyFadeUp { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
		@keyframes emptyFloat  { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
		@keyframes emptyPulse  { 0%,100% { transform:scale(1); } 50% { transform:scale(1.07); } }
		@media (prefers-reduced-motion: reduce) { .emptyState, .emptyState .emFloat, .emptyState .emPulse { animation:none; } }

		/* ===== chip "Index SPV" (e-Factura ANAF) — reutilizabil (Facturi + Fișă partener) ===== */
		.spvIdx { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600;
			font-variant-numeric:tabular-nums; letter-spacing:.2px; white-space:nowrap; cursor:default; }
		.spvIdx .dot { width:6px; height:6px; border-radius:50%; flex:none; }
		.spvIdx.ok   { color:#15703a; }  .spvIdx.ok   .dot { background:#16a34a; }
		.spvIdx.warn { color:#b0791a; }  .spvIdx.warn .dot { background:#e09915; }
		.spvNone { color:rgba(48,80,60,0.35); font-weight:600; }

		/* ===== .center + carduri de sold (Dashboard + Facturi) — reutilizabile (dedup) ===== */
		.center { text-align: center; }
		.solds { display:flex; gap:16px; margin-top:20px; }
		.solds .invCard { flex:1; min-width:0; position:relative; overflow:hidden; background:#fff;
			border:1px solid #e4ede8; border-radius:16px; padding:18px 18px 16px; cursor:pointer;
			box-shadow:0 10px 26px rgba(20,45,30,.08), 0 1px 3px rgba(20,45,30,.05);
			transition:box-shadow .2s, border-color .2s; }
		.solds .invCard:hover { border-color:#d4e5db; }
		.solds .invCard:focus-visible { outline:2px solid rgb(22,163,74); outline-offset:2px; }
		/* o singura bara de accent, cu un puls de energie care o traverseaza o data la hover */
		.solds .invCard::before { content:""; position:absolute; left:0; top:0; height:2.5px; width:100%;
			background:linear-gradient(90deg, transparent 41%, rgba(255,255,255,.95) 50%, transparent 59%), var(--ic-accent,#4a7a5c);
			background-size:230% 100%, 100% 100%; background-repeat:no-repeat; background-position:-130% 0, 0 0; }
		.solds .invCard:hover::before { animation:invPulse .9s cubic-bezier(.4,0,.2,1) 1; box-shadow:0 0 10px var(--ic-spark,#8fdcac); }
		@keyframes invPulse { from { background-position:-130% 0, 0 0; } to { background-position:130% 0, 0 0; } }
		.solds .invCard .ic-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
		.solds .invCard .ic-lbl { font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#6b8676; }
		.solds .invCard .ic-tile { flex:none; width:34px; height:34px; border-radius:10px; display:grid; place-items:center;
			font-size:15px; color:var(--ic-accent,#30503c); background:var(--ic-bg,#e6f5ec); transition:background .2s, color .2s; }
		.solds .invCard .ic-num { font-size:25px; font-weight:800; letter-spacing:-.01em; margin-top:12px; color:#1d2a22;
			font-variant-numeric:tabular-nums; line-height:1.15; }
		.solds .invCard .ic-num .cur { font-size:13px; font-weight:700; color:#6b8676; margin-left:5px; }        /* Dashboard */
		.solds .invCard .ic-num.good { color:#15703a; } .solds .invCard .ic-num.bad { color:#b02a24; }
		.solds .invCard .ic-cap { margin-top:5px; font-size:12px; color:#6b8676; }                              /* Dashboard */
		.solds .invCard .ic-link { margin-top:13px; display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:#3a5e46; }  /* Dashboard */
		.solds .invCard .ic-link i { transition:transform .18s; }
		.solds .invCard:hover .ic-link i { transform:translateX(3px); }
		.solds .invCard.a-neutral { --ic-accent:#4a7a5c; --ic-bg:#e6f5ec; --ic-spark:#8fdcac; }
		.solds .invCard.a-good    { --ic-accent:#16a34a; --ic-bg:#e6f5ec; --ic-spark:#5df08f; }
		.solds .invCard.a-bad     { --ic-accent:#dc2626; --ic-bg:#fbe4e4; --ic-spark:#ff7b7b; }
		/* filtru activ (stare selectata) — Facturi */
		.solds .invCard.selectedCard { border-color:var(--ic-accent); box-shadow:inset 0 0 0 1px var(--ic-accent), 0 10px 26px rgba(20,45,30,.10); }
		.solds .invCard.selectedCard .ic-tile { color:#fff; background:var(--ic-accent); }
		.solds .invCard.selectedCard .ic-lbl { color:var(--ic-accent); }
		@media (prefers-reduced-motion: reduce) { .solds .invCard { transition:none; } .solds .invCard .ic-link i { transition:none; } .solds .invCard:hover::before { animation:none; box-shadow:none; } }
		@media (max-width:820px) { .solds { flex-wrap:wrap; } .solds .invCard { flex:1 1 100%; } }



		input { outline: none; padding: 14px 16px 12px 40px; border: 1px solid #ddd; border-radius: 10px; }
		input::placeholder { color: rgba(48, 80, 60, 0.7); }
		input:focus, textarea:focus { box-shadow: 0 0px 2px 1px rgba(22, 163, 74, 0.8); outline: none; }

		.inputBlock { position: relative; }
		.inputBlock i { position: absolute; left: 10px; top: 15px; z-index: 2; color: rgba( 30,30,30,0.4); }

		input.typeSearch { position: absolute; top: 0; width: 100%; }
		input.typeDate { cursor: pointer; width: 150px;  text-align: right; padding-right: 30px }
			input.typeDate:hover { }
		
		
		.btnControls { min-width: 270px; text-align:right; padding-top: 12px !important; }
	
	.xButton { padding: 5px 1rem 6px; background: #f3f4f6; border: 1px solid #d1d5db; border-radius: 0.375rem; cursor: pointer; color: #374151; font-size: 13px; transition: background 0.15s, border-color 0.15s, box-shadow: 0.15s; user-select: none; }
	.xButton:not(:first-child) { margin-left: 10px; }
	.xButton:hover { background: #e5e7eb; border-color: #9ca3af; box-shadow: 0 0 3px rgba( 100,100,100,0.5); }
	.xButton:active { position: relative; top: 1px; box-shadow: none; }
	.xButton.signContract { background:rgb(22, 163, 74); color: white; }
	
	.invisible { display: none; }	
		
		
		#txtMesaj { width: 100%; height: 140px; position:relative; top: 5px; resize: none; }
		
		
		
		
		
		
		
	/* container dropdown */
	.dropdown { position: relative; display: inline-block; }

	/* buton */
	.dropdown-btn {
		padding: 0.35rem 1rem 0.35rem;
		background: #f3f4f6;
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
		cursor: pointer;
		color: #374151;
		font-size: 0.875rem;
		transition: background 0.15s, border-color 0.15s;
		user-select: none;
	}

	.dropdown-btn:hover { background: #e5e7eb; border-color: #9ca3af; }

	/* meniu */
	.dropdown-menu {
		display: none;
		position: absolute;
		top: 105%;
		left: 0;
		min-width: 130px;
		background: #ffffff;
		border: 1px solid #e5e7eb;
		border-radius: 0.375rem;
		box-shadow: 0 4px 10px rgba(0,0,0,0.06);
		padding: 0.25rem 0;
		animation: fade 0.15s ease-out; z-index: 11; 
	}

	@keyframes fade {
		from { opacity: 0; transform: translateY(-4px); }
		to   { opacity: 1; transform: translateY(0); }
	}

	/* item */
	.dropdown-item { padding: 0.35rem 1rem 0.35rem 0.5rem; font-size: 0.875rem; color: #374151; cursor: pointer; text-align: left; }
	.dropdown-item:hover { background: #CFD8DC; }


	.ddown { min-width: 220px; position: relative; display: inline-block; user-select: none; }
	.ddown:not(:first-child) { margin-left: 10px; }
	.ddown-label { background: #f3f4f6; color: #333; padding: 10px 12px; border: 1px solid #aaa; border-radius: 10px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: box-shadow 0.2s ease; }
	.ddown-label:hover { box-shadow: 0 2px 6px rgba(0,0,0,0.25); }
	.arrow { transition: transform 0.3s ease; font-size: 12px; color: #888; }
	.ddown-list { display: none; position: absolute; width: 100%; background: #CFD8DC; border: 1px solid #999; border-radius: 5px; margin-top: 1px; z-index: 10; overflow: hidden; box-shadow: 0 4px 10px rgba(0,0,0,0.25); }
	.ddown-item { padding: 10px; cursor: pointer; transition: background 0.2s; font-size: 14px; }
	.ddown-item:hover { background: #a6a6a6; }


	/* Toast - notificare non-blocanta premium (inlocuieste alert()) */
	#toast { position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%);
		display: inline-flex; align-items: center; gap: 12px;
		padding: 12px 20px 12px 14px;
		background: linear-gradient(180deg, rgb(56,90,68), rgb(44,74,56));
		color: #fff; font-size: 14px; font-weight: 500; line-height: 1.35; letter-spacing: .1px;
		border: 1px solid rgba(255,255,255,0.14); border-radius: 13px;
		box-shadow: 0 16px 44px rgba(20,35,25,0.30), 0 3px 10px rgba(20,35,25,0.16);
		z-index: 2000; max-width: min(90%, 460px); text-align: left;
		animation: toastIn .32s cubic-bezier(.2,.8,.25,1); }
	#toast .toastIco { flex: none; display: inline-flex; align-items: center; justify-content: center;
		width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,0.16); font-size: 13px; }
	#toast .toastMsg { flex: 1 1 auto; }
	/* stari semantice: info (verde) · warning (portocaliu) · alert (rosu) */
	#toast.info, #toast.success { background: linear-gradient(180deg, rgb(32,172,88), rgb(20,140,68)); }
	#toast.warning { background: linear-gradient(180deg, rgb(233,152,32), rgb(201,120,14)); }
	#toast.alert, #toast.error { background: linear-gradient(180deg, rgb(198,46,54), rgb(168,32,40)); }
	@keyframes toastIn { from { opacity: 0; transform: translate(-50%, 14px) scale(.98); } to { opacity: 1; transform: translate(-50%, 0) scale(1); } }

	/* Stari de focus vizibile pentru navigare la tastatura (#19) */
	button:focus-visible, .xButton:focus-visible, .btn-blue:focus-visible,
	.dropdown-btn:focus-visible, .dropdown-item:focus-visible,
	.ddown-label:focus-visible, .ddown-item:focus-visible,
	.clickCard:focus-visible, #menu ul li i:focus-visible, .clickHere:focus-visible {
		outline: 2px solid rgb(22, 163, 74);
		outline-offset: 2px;
		border-radius: 6px;
	}
	@media (prefers-reduced-motion: reduce) {
		#toast { animation: none; }
	}

	/* ---- modul asistat (impersonare) ---- */
	/* omuletul de impersonare din meniu: cand impersonezi activ, doar o culoare distincta */
	.imp-mode #impBtn i { color:#f59e0b !important; }
	/* controalele de actiune marcate: dezactivate vizual + neclicabile (prinde si butoanele randate dinamic) */
	.imp-mode [data-imp-block], .imp-disabled { opacity:.45 !important; cursor:not-allowed !important; filter:grayscale(.3); }
	.imp-mode [data-imp-block] { pointer-events:none; }

	/* ============================================================================
	   TOOLTIP CUSTOM PREMIUM (global) — inlocuieste tooltip-ul nativ `title` peste
	   tot in aplicatie. Un singur nod #uiTip, pozitionat din JS (vezi engine-ul de
	   la finalul scriptului). Varianta `.menu` = tooltip lateral pt meniul din stanga.
	   ============================================================================ */
	#uiTip { position:fixed; z-index:5000; left:0; top:0; pointer-events:none; max-width:280px;
		padding:7px 11px; font-size:12px; font-weight:600; line-height:1.35; letter-spacing:.2px;
		color:#eaf3ec; white-space:normal;
		background:linear-gradient(158deg, rgba(31,44,36,.97), rgba(18,28,22,.97));
		border:1px solid rgba(120,175,142,.28); border-radius:9px;
		box-shadow:0 10px 30px rgba(8,18,12,.38), 0 2px 8px rgba(8,18,12,.28), inset 0 1px 0 rgba(255,255,255,.06);
		-webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
		opacity:0; transform:translateY(4px) scale(.97); transform-origin:center;
		transition:opacity .15s ease, transform .18s cubic-bezier(.2,.85,.25,1); }
	#uiTip.show { opacity:1; transform:none; }

	/* sageata (patrat rotit, cu bordura pe 2 laturi ca sa se imbine cu marginea) */
	#uiTip::before { content:""; position:absolute; width:9px; height:9px; background:#141e18; transform:rotate(45deg); }
	#uiTip.pos-top::before   { left:50%; margin-left:-4px; bottom:-5px;
		border-right:1px solid rgba(120,175,142,.28); border-bottom:1px solid rgba(120,175,142,.28); }
	#uiTip.pos-bottom::before{ left:50%; margin-left:-4px; top:-5px;
		border-left:1px solid rgba(120,175,142,.28); border-top:1px solid rgba(120,175,142,.28); }
	#uiTip.pos-right::before { top:50%; margin-top:-4px; left:-5px;
		border-left:1px solid rgba(120,175,142,.28); border-bottom:1px solid rgba(120,175,142,.28); }

	/* ---- varianta MENIU (lateral dreapta, verde brand, high-tech) ---- */
	#uiTip.menu { color:#eafaf0; font-weight:700; letter-spacing:.35px; padding:9px 14px;
		background:linear-gradient(150deg, rgba(52,86,64,.98), rgba(28,52,38,.98));
		border-color:rgba(150,214,172,.38);
		box-shadow:0 14px 34px rgba(14,38,24,.44), inset 3px 0 0 rgba(150,230,180,.95), inset 0 1px 0 rgba(255,255,255,.08);
		transform:translateX(-7px) scale(.96); }
	#uiTip.menu.show { transform:none; animation:uiTipMenuGlow 2.6s ease-in-out infinite; }
	#uiTip.menu::before { background:#1c3426; border-color:rgba(150,214,172,.38); }
	/* punct-accent luminos care intra dinspre bara meniului */
	#uiTip.menu .uiTipTxt { position:relative; }
	#uiTip.menu .uiTipTxt::before { content:""; position:absolute; left:-8px; top:50%; width:4px; height:4px;
		margin-top:-2px; border-radius:50%; background:#a6f0c2;
		box-shadow:0 0 7px 1px rgba(150,230,180,.85); animation:uiTipDot 1.4s ease-in-out infinite; }
	@keyframes uiTipMenuGlow { 0%,100% { box-shadow:0 14px 34px rgba(14,38,24,.44), inset 3px 0 0 rgba(150,230,180,.95), inset 0 1px 0 rgba(255,255,255,.08), 0 0 0 0 rgba(120,210,150,0); }
		50% { box-shadow:0 14px 34px rgba(14,38,24,.44), inset 3px 0 0 rgba(150,230,180,.95), inset 0 1px 0 rgba(255,255,255,.08), 0 0 16px 2px rgba(120,210,150,.22); } }
	@keyframes uiTipDot { 0%,100% { opacity:.55; transform:scale(.85); } 50% { opacity:1; transform:scale(1.15); } }
	@media (prefers-reduced-motion: reduce) {
		#uiTip { transition:opacity .1s ease; }
		#uiTip.menu.show { animation:none; } #uiTip.menu .uiTipTxt::before { animation:none; }
	}


/* ===================== Firma curentă — pill dreapta-sus (shell) ===================== */
		/* easing premium comun pt colaps/expandare */
		#firmPill { --fpEase:cubic-bezier(.22,.8,.28,1);
			position:fixed; top:12px; right:18px; z-index:300; display:flex; align-items:center; gap:11px;
			padding:8px 12px; background:rgba(255,255,255,.86); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px);
			border:1px solid #e3ebe5; border-radius:13px; overflow:hidden;
			/* umbra stratificata: contact scurt + difuza larga -> vizibila dar moale */
			box-shadow:0 2px 6px rgba(48,80,60,.12), 0 12px 30px rgba(48,80,60,.18);
			max-width:min(340px,42vw); user-select:none;
			transition:max-width .34s var(--fpEase), padding .34s var(--fpEase), gap .34s var(--fpEase),
				border-radius .3s ease, box-shadow .22s ease, transform .18s ease, border-color .2s ease; }
		#firmPill .fpIco { flex:none; width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center;
			font-size:15px; color:rgb(48,80,60); background:linear-gradient(140deg, rgba(48,80,60,.16), rgba(48,80,60,.05)); }
		#firmPill .fpBody { display:flex; flex-direction:column; min-width:0; max-width:240px; overflow:hidden; line-height:1.18;
			transition:max-width .34s var(--fpEase), opacity .2s ease; }
		#firmPill .fpLabel { font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; font-weight:700; color:rgb(150,173,158); white-space:nowrap; }
		#firmPill .fpName { font-size:13.5px; font-weight:750; color:rgb(38,64,48); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
		#firmPill .fpSwitch { flex:none; width:26px; max-width:26px; height:26px; border-radius:8px; overflow:hidden;
			display:flex; align-items:center; justify-content:center; font-size:11.5px; color:rgb(48,80,60); background:rgba(48,80,60,.09);
			transition:max-width .3s var(--fpEase), opacity .18s ease, transform .2s ease, background .2s ease, color .2s ease; }

		/* ---- colaps in patratel la scroll in jos ---- */
		#firmPill.fpMini { max-width:48px; padding:7px; gap:0; }
		#firmPill.fpMini .fpBody { max-width:0; opacity:0; }
		#firmPill.fpMini .fpSwitch { max-width:0; opacity:0; }
		/* ...dar la hover (sau in capul paginii) revine la marimea intreaga */
		#firmPill.fpMini:hover { max-width:min(340px,42vw); padding:8px 12px; gap:11px; }
		#firmPill.fpMini:hover .fpBody { max-width:240px; opacity:1; }
		#firmPill.fpMini:hover .fpSwitch { max-width:26px; opacity:1; }

		#firmPill.switchable { cursor:pointer; }
		#firmPill.switchable:hover { transform:translateY(-1px); border-color:rgb(48,80,60);
			box-shadow:0 4px 10px rgba(48,80,60,.14), 0 16px 38px rgba(48,80,60,.24); }
		#firmPill.switchable:hover .fpSwitch { background:rgb(48,80,60); color:#fff; transform:rotate(180deg); }
		#firmPill.switchable:active { transform:translateY(0); }
		@media (max-width: 720px) { #firmPill .fpLabel { display:none; } #firmPill { max-width:60vw; } }

/* ===================== Company switch — modal alegere firmă (shell) ===================== */
		#csOv { position:fixed; inset:0; background:rgba(20,28,22,.52); display:none; z-index:4000; }
		#csOv.on { display:flex; align-items:center; justify-content:center; }
		#csModal { background:#fff; border-radius:16px; width:min(440px,92vw); max-height:86vh; overflow:auto; padding:22px 22px 24px; box-shadow:0 24px 70px rgba(0,0,0,.3); }
		#csModal h3 { margin:0 0 4px; font-size:19px; color:rgb(38,64,48); font-weight:750; }
		#csModal .csSub { font-size:13px; color:rgb(108,147,122); margin-bottom:16px; }
		#csClose { float:right; border:none; background:transparent; font-size:24px; line-height:1; color:#9db4a3; cursor:pointer; }
		.csItem { display:flex; align-items:center; gap:12px; padding:13px 14px; border:1px solid #e3ebe5; border-radius:12px; cursor:pointer; margin-bottom:9px; transition:.15s; }
		.csItem:hover { border-color:rgb(48,80,60); background:#f4f8f5; }
		.csItem.cur { border-color:rgb(48,80,60); background:#eef5f0; cursor:default; }
		.csIco { flex:none; width:38px; height:38px; border-radius:10px; background:rgba(48,80,60,.1); color:rgb(48,80,60); display:flex; align-items:center; justify-content:center; font-size:16px; }
		.csInfo { flex:1; min-width:0; }
		.csName { font-weight:650; color:rgb(38,64,48); font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
		.csRol { font-size:11.5px; color:rgb(108,147,122); text-transform:capitalize; margin-top:1px; }
		.csStar { color:#d99b1f; font-size:11px; margin-left:5px; }
		.csCur { flex:none; font-size:11px; font-weight:700; color:#15703a; text-transform:uppercase; }

/* ===================== doDashboard - CSS dashboard ===================== */
	/* ===== tabel Persoane (asociati/administratori din termene + portal) ===== */
	#pDivPers { overflow-x:auto; }
	#tPI { min-width: 940px; }
	#tPI td { vertical-align: middle; }
	#tPI .pName { font-weight:700; letter-spacing:.2px; }
	#tPI .pSub  { font-size:11.5px; color:rgb(120,146,128); margin-top:2px; }

	/* badge-uri rol/functie */
	.pRole { display:inline-block; font-size:10.5px; font-weight:800; line-height:1; padding:4px 8px;
		border-radius:999px; letter-spacing:.3px; white-space:nowrap; vertical-align:middle; }
	.pRole + .pRole { margin-left:5px; }
	.pRole-adm { background:#e3f5eb; color:#15703a; }
	.pRole-aso { background:#e7f0fb; color:#2f568f; }
	.pRole-imp { background:#fbf1dd; color:#8a6412; }   /* imputernicit */
	.pRole-fid { background:#efe9fb; color:#5b3f9e; }   /* fidejusor */
	.pRoleWrap { cursor:help; }   /* are tooltip cu functia detaliata */

	/* sectiune semnatari (conturi portal cu semnatura CertME), sub persoanele termene */
	.pSigSec { margin-top:26px; }
	.pSigTitle { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800; letter-spacing:.05em;
		text-transform:uppercase; color:rgb(48,80,60); margin-bottom:12px; }
	.pSigTitle i { color:rgb(74,122,92); }
	.pSigTitle .pSigHint { font-weight:600; letter-spacing:0; text-transform:none; color:rgb(120,146,128); font-size:12px; }
	#pDivSig { overflow-x:auto; }
	#tSig { min-width:720px; }
	#tSig td { vertical-align:middle; }
	#tSig .sName { font-weight:700; letter-spacing:.2px; }
	#tSig .sInrol { font-size:11.5px; color:rgb(120,146,128); margin-top:2px; }

	/* cota + aport */
	.pCota { display:flex; align-items:baseline; gap:8px; font-variant-numeric:tabular-nums; }
	.pCota .pct { font-size:15px; font-weight:800; color:rgb(48,80,60); }
	.pCota .apo { font-size:11.5px; color:rgb(120,146,128); }
	.pDash { color:rgb(120,146,128); opacity:.6; }

	.pBorn { font-variant-numeric:tabular-nums; white-space:nowrap; }
	.pBorn .age { display:inline-block; margin-left:6px; font-size:11px; font-weight:700; color:rgb(90,110,98);
		background:#eef4f0; border-radius:999px; padding:1px 7px; }

	.pMand .lim { display:inline-block; font-size:10px; font-weight:800; letter-spacing:.4px; padding:2px 7px;
		border-radius:6px; background:#fbf1dd; color:#8a6412; }
	.pMand .until { font-size:12px; margin-top:3px; font-variant-numeric:tabular-nums; white-space:nowrap; }
	.pMand .until b { color:rgb(48,80,60); }

	/* coloane portal (contact + semnatura) - fundal usor diferentiat */
	#tPI th.pPortal, #tPI td.pPortal { background:linear-gradient(180deg, rgba(122,108,255,.07), transparent); }
	#tPI th.pPortal { color:#6a5cf0; }
	.pContact { font-size:12.5px; font-variant-numeric:tabular-nums; }
	.pContact .row { display:flex; align-items:center; gap:6px; }
	.pContact .row + .row { margin-top:2px; }
	.pContact i { width:13px; color:rgb(120,146,128); font-style:normal; text-align:center; }
	.pNoMatch { font-size:11.5px; color:rgb(120,146,128); font-style:italic; }
	.pSig { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; white-space:nowrap; }
	.pSig .dt { width:8px; height:8px; border-radius:50%; flex:none; }
	.pSig.ok   { color:#15703a; } .pSig.ok   .dt { background:#16a34a; }
	.pSig.no   { color:#b02a24; } .pSig.no   .dt { background:#dc2626; }
	.pSig.warn { color:#b0791a; } .pSig.warn .dt { background:#e09915; }
	.pSigExp { font-size:11px; color:rgb(120,146,128); margin-top:2px; font-variant-numeric:tabular-nums; }
	.pSigExp.exp { color:#b02a24; }

	.pEmptyBox { text-align:center; padding:26px 20px; color:rgb(108,147,122); font-size:13.5px; }
	.pCount { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700;
		color:rgb(48,80,60); background:#eaf3ee; border:1px solid #d6e6dc; border-radius:999px; padding:5px 12px; }
	/* ===== card Identificare Client — corporate ID premium (antet verde + corp alb) ===== */
	.idCard2 { background:#fff; border:1px solid #e4ede8; border-radius:18px; overflow:hidden;
		box-shadow:0 12px 30px rgba(20,45,30,.10), 0 1px 3px rgba(20,45,30,.05); margin:6px 0 4px; }
	.idHead { position:relative; overflow:hidden; display:flex; align-items:center; gap:18px; padding:20px 24px; color:#eafaf0;
		background:radial-gradient(560px 200px at 90% -40%, rgba(150,230,180,.20), transparent 65%),
			linear-gradient(135deg, rgb(58,94,72) 0%, rgb(40,66,50) 100%); }
	.idHead::after { content:""; position:absolute; right:-56px; top:-84px; width:230px; height:230px; border-radius:50%;
		background:radial-gradient(circle, rgba(255,255,255,.10), rgba(255,255,255,0) 70%); pointer-events:none; }
	/* firma in insolventa (inregistrari BPI in ultimele 24 luni) -> antetul verde devine ROSU */
	.idHead.insolv { color:#ffecec;
		background:radial-gradient(560px 200px at 90% -40%, rgba(255,160,160,.22), transparent 65%),
			linear-gradient(135deg, #b3352b 0%, #8f231b 100%); }
	.idHead.insolv .mono { animation:none; border-color:rgba(255,255,255,.28); }
	.idInsolvWarn { position:relative; z-index:2; margin-left:auto; align-self:center; white-space:nowrap;
		display:inline-flex; align-items:center; gap:9px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.36);
		color:#fff; font-weight:800; font-size:11px; letter-spacing:.02em; padding:9px 13px; border-radius:12px; }
	.idInsolvWarn i { font-size:16px; flex:none; color:#ffdede; }
	@media (max-width:900px){ .idInsolvWarn { font-size:10px; padding:8px 11px; } }
	@media (max-width:640px){ .idInsolvWarn { margin:12px 0 0; white-space:normal; } }
	/* icon SVG "companie" in monograma (inlocuieste initialele) */
	.idHead .mono .monoIco { position:relative; z-index:2; width:30px; height:30px; color:#eafaf0;
		filter:drop-shadow(0 1px 3px rgba(0,0,0,.25)); }
	/* pill stare de insolventa (reorganizare/faliment...) - vizibil si pe antet verde, si pe rosu */
	.idHead .chip.ins { background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.46); color:#fff; }
	.idHead .chip.ins i { color:#ffd7d2; opacity:1; }
	.idHead .mono { position:relative; z-index:1; width:62px; height:62px; border-radius:50%; flex:none;
		display:grid; place-items:center; background:rgba(255,255,255,.12);
		border:1px solid rgba(255,255,255,.22); box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
		animation:monoGlow 3.6s ease-in-out infinite; }
	.idHead .mono .monoTxt { position:relative; z-index:2; font-size:21px; font-weight:800; letter-spacing:.5px;
		color:#eafaf0; text-shadow:0 1px 4px rgba(0,0,0,.28); }
	.idHead .mono .monoRing { position:absolute; inset:-4px; width:calc(100% + 8px); height:calc(100% + 8px);
		z-index:1; overflow:visible; pointer-events:none; }
	.idHead .mono .rTrack { fill:none; stroke:rgba(255,255,255,.15); stroke-width:2; }
	.idHead .mono .rArc, .idHead .mono .rArc2, .idHead .mono .rDot { transform-box:view-box; transform-origin:32px 32px; }
	.idHead .mono .rArc { fill:none; stroke:#bff7d3; stroke-width:2.4; stroke-linecap:round; stroke-dasharray:34 250;
		filter:drop-shadow(0 0 3px rgba(160,240,190,.75)); animation:monoSpin 3.4s linear infinite; }
	.idHead .mono .rArc2 { fill:none; stroke:rgba(255,255,255,.5); stroke-width:1.4; stroke-linecap:round; stroke-dasharray:10 320;
		animation:monoSpin 5.6s linear infinite reverse; }
	.idHead .mono .rDot { fill:#eafff2; filter:drop-shadow(0 0 4px rgba(180,255,205,.95)); animation:monoSpin 3.4s linear infinite; }
	@keyframes monoSpin { to { transform:rotate(360deg); } }
	@keyframes monoGlow { 0%,100%{ box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 0 0 0 rgba(150,240,180,0); } 50%{ box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 0 15px 1px rgba(150,240,180,.30); } }
	@media (prefers-reduced-motion:reduce){ .idHead .mono, .idHead .mono .rArc, .idHead .mono .rArc2, .idHead .mono .rDot { animation:none; } }
	.idHead .htxt { position:relative; z-index:1; min-width:0; }
	.idHead .kick { font-size:10.5px; text-transform:uppercase; letter-spacing:.13em; font-weight:800; opacity:.82; }
	.idHead .nm { font-size:20px; font-weight:800; letter-spacing:-.01em; margin-top:2px; line-height:1.2; }
	.idHead .chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
	.idHead .chip { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; padding:4px 11px;
		border-radius:999px; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.22); font-variant-numeric:tabular-nums; }
	.idHead .chip.ok { background:rgba(120,230,160,.16); border-color:rgba(150,230,180,.34); color:#d7ffe6; }
	.idHead .chip .dot { width:6px; height:6px; border-radius:50%; background:#7bf0a0; box-shadow:0 0 7px #7bf0a0; }
	.idHead .chip i { opacity:.8; }

	.idBody { padding:18px 24px 20px; }
	.idBody .grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:17px 26px; }
	.idB { display:flex; align-items:center; gap:12px; min-width:0; }
	.idB .tile { width:38px; height:38px; border-radius:11px; flex:none; display:grid; place-items:center; font-size:14px;
		color:rgb(48,80,60); background:#e9f3ed; }
	.idB .tx { min-width:0; }
	.idB .l { font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:rgb(120,146,128); font-weight:800; }
	.idB .v { font-size:14px; font-weight:700; color:#1d2a22; margin-top:1px; word-break:break-word; }
	.idB .v.tab { font-variant-numeric:tabular-nums; }
	.idB .v a { color:rgb(48,80,60); text-decoration:none; }
	.idB .v a:hover { text-decoration:underline; }
	.idAddr { margin-top:16px; }
	@media (max-width:560px){ .idHead { flex-direction:column; align-items:flex-start; } }
	/* firme legate: relatia (asociat / administrator) prin care firma e legata */
	.flRel { display:inline-block; font-size:10.5px; font-weight:700; line-height:1; padding:3px 7px;
		border-radius:999px; margin-left:6px; vertical-align:middle; letter-spacing:.2px; white-space:nowrap; }
	.flRel-aso { background:#e7f0fb; color:#2f568f; }   /* asociat */
	.flRel-adm { background:#e3f5eb; color:#15703a; }   /* administrator */
	.flRel-proc { background:#fbf1dd; color:#8a6412; }  /* procentaj detinut */
	.flHasTip { cursor:help; }                           /* are tooltip cu functia */
	.flJud { color:rgb(120,146,128); font-weight:600; }  /* codul de judet */
	.flCount { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700;
		color:rgb(48,80,60); background:#eaf3ee; border:1px solid #d6e6dc; border-radius:999px; padding:5px 12px; }
	.flCount i { font-size:12px; opacity:.75; }
	.flEmpty { text-align:center; padding:26px 20px; color:rgb(108,147,122); font-size:13.5px; }
	.flCui { font-variant-numeric:tabular-nums; }

/* ===================== doInvoice - CSS facturi ===================== */

	.ffTD { text-align: right; }

	/* bara de filtre + buton export: clase globale .filterBar / .xlsBtn (vezi index.php) */

	/* chip status plata - premium simplu */
	.payChip { display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 8px; border-radius:999px;
		font-size:11.5px; font-weight:600; background:var(--st-bg); color:var(--st-fg); white-space:nowrap; user-select:none; }
	.payChip .dot { width:6px; height:6px; border-radius:50%; background:var(--st-dot); flex:none; }
	.pay-ok   { --st-bg:#d9f0e2; --st-fg:#15703a; --st-dot:#16a34a; }  /* Achitat  */
	.pay-term { --st-bg:#e3edf9; --st-fg:#37568f; --st-dot:#4b73c0; }  /* In termen*/
	.pay-late { --st-bg:#fbdcdc; --st-fg:#b02a24; --st-dot:#dc2626; }  /* Restant  */

	/* chip "Index SPV": clase globale .spvIdx/.spvNone (vezi index.php) */


	/* lista foloseste componenta globala .tblFrame/.tblScroll/.stickyHead (vezi index.php);
	   aici doar inaltimea scroller-ului (spatiul de deasupra e specific paginii). */
	#divFacturiList { margin-top: 20px; }
	#divFacturiList .tblScroll { max-height: calc( 100vh - 447px ); }
	#divSearchFacturi { padding:0 20px !important; }
	/* empty-state: scaffold global .emptyState/.emptyArt/.emFloat/.emPulse (vezi index.php) */

/* ===================== doComenzi - CSS comenzi ===================== */
	.comTD { text-align: right; }

	/* bara de filtre + buton export: clase globale .filterBar / .xlsBtn (vezi index.php) */
	#comFilterBar .ddown { min-width:230px; }

	/* chip stare comanda */
	.comChip { display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 8px; border-radius:999px;
		font-size:11.5px; font-weight:600; background:var(--st-bg); color:var(--st-fg); white-space:nowrap; user-select:none; }
	.comChip .dot { width:6px; height:6px; border-radius:50%; background:var(--st-dot); flex:none; }
	.com-ok     { --st-bg:#d9f0e2; --st-fg:#15703a; --st-dot:#16a34a; }  /* Finalizata */
	.com-wait   { --st-bg:#fbeed3; --st-fg:#8a5a12; --st-dot:#e0a021; }  /* De livrat  */
	.com-storno { --st-bg:#fbdcdc; --st-fg:#b02a24; --st-dot:#dc2626; }  /* Stornata   */

	/* lista foloseste componenta globala .tblFrame/.tblScroll/.stickyHead (vezi index.php);
	   empty-state-ul e in afara ramei (in #divComenziList direct), deci nu mai e nevoie de override. */
	#divComenziList .tblScroll { max-height: calc( 100vh - 334px ); }
	#divSearchComenzi { padding:0 20px !important; }

	/* empty-state: scaffold global .emptyState/.emptyArt/.emFloat/.emPulse (vezi index.php) */

/* ===================== doPartnerData - CSS fisa partener ===================== */
	.pdaTD { text-align: right; white-space: nowrap; width: 117px; font-variant-numeric: tabular-nums; }  /* +50% (78 -> 117) */
	#tabPda th.pdaTD { width: 117px; }
	#tabPda .pdaData { width: 140px; }         /* Data */
	#tabPda .pdaTip  { width: 100px; }         /* Tip - fix */
	#tabPda .pdaSpv  { width: 160px; text-align: center; }   /* Index SPV */
	#tabPda .pdaSt   { width: 120px; text-align: center; white-space: nowrap; }   /* Stare Plata - chip achitat/in termen/restant */
	#tabPda .pdaAct  { width: 104px; text-align: left; white-space: nowrap; }   /* Detalii / Descarca - stanga, ca butonul OPC sa pice sub "Detalii factura" */
	#tabPda .pdaDoc  { min-width: 200px; }     /* Document - coloana variabila */

	/* chip "Index SPV": clase globale .spvIdx/.spvNone (vezi index.php) */

	/* legenda coduri document (VFV, OPC, ...) - denumiri din RodBun..DocumentType.
	   Fiecare tip e un "pill" clickabil: aprins = afisat, gri (off) = ascuns.
	   Filtrarea e 100% in DOM (fara request nou la server) - vezi _fn_pdaApplyDocFilter. */
	.pdaLegend { margin-top:14px; padding:11px 14px; background:#f7faf8; border:1px solid #e6efe9;
		border-radius:12px; display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
	.pdaLegend .pdaLegTitle { font-weight:700; color:rgb(48,80,60); text-transform:uppercase;
		letter-spacing:.5px; font-size:10.5px; margin-right:2px; display:inline-flex; align-items:center; gap:6px; }
	.pdaLegend .pdaLegTitle i { font-size:12px; opacity:.75; }

	/* APRINS: toate pill-urile active au aceeasi culoare (verde brand) - clar "on".
	   OFF: gri, stins. */
	.pdaPill { display:inline-flex; align-items:center; gap:7px; padding:5px 11px 5px 9px;
		border-radius:999px; cursor:pointer; user-select:none; font-size:12.5px; line-height:1;
		border:1px solid rgb(40,66,50); color:#fff;
		background:linear-gradient(180deg, rgb(58,94,72) 0%, rgb(44,74,56) 100%);
		box-shadow:0 2px 8px rgba(48,80,60,.28), inset 0 1px 0 rgba(255,255,255,.10);
		transition:transform .18s cubic-bezier(.2,.7,.2,1), box-shadow .18s, background .18s, color .18s, border-color .18s, opacity .18s; }
	.pdaPill:focus-visible { outline:2px solid rgb(48,80,60); outline-offset:2px; }
	.pdaPill:hover { transform:translateY(-1px); box-shadow:0 5px 14px rgba(48,80,60,.34), inset 0 1px 0 rgba(255,255,255,.12); }
	.pdaPill b { font-weight:800; letter-spacing:.3px; }
	.pdaPill .pdaPLbl { font-weight:600; opacity:.82; }
	.pdaPill .pdaDot { width:8px; height:8px; border-radius:50%; flex:none; background:#eafff1;
		box-shadow:0 0 0 3px rgba(255,255,255,.22), 0 0 7px rgba(180,255,205,.75); }
	.pdaPill .pdaCnt { font-size:11px; font-weight:700; padding:1px 6px; border-radius:999px;
		background:rgba(255,255,255,.22); color:#fff; font-variant-numeric:tabular-nums; }

	.pdaPill.off { border-color:#dedede; color:#9a9a9a; background:#f3f4f3; box-shadow:none; opacity:.9; }
	.pdaPill.off:hover { transform:none; box-shadow:none; background:#eceeed; }
	.pdaPill.off .pdaDot { background:#c2c2c2; box-shadow:none; }
	.pdaPill.off .pdaCnt { background:#e6e7e6; color:#9a9a9a; }
	.pdaPill.off b, .pdaPill.off .pdaPLbl { opacity:.9; }

	.pdaLegReset { margin-left:auto; font-size:11.5px; font-weight:600; color:rgb(48,80,60);
		cursor:pointer; user-select:none; display:inline-flex; align-items:center; gap:5px;
		padding:4px 10px; border-radius:999px; border:1px solid transparent; transition:background .15s, border-color .15s; }
	.pdaLegReset:hover { background:#eaf3ee; border-color:#d6e6dc; }
	.pdaLegReset:focus-visible { outline:2px solid rgb(48,80,60); outline-offset:2px; }



	/* bara de filtre + buton export: clase globale .filterBar / .xlsBtn (vezi index.php) */
	#pdaFilterBar .ddown { min-width:200px; }

	/* lista foloseste componenta globala .tblFrame/.tblScroll/.stickyHead (vezi index.php);
	   empty-state-ul e in afara ramei (in #divPdaList direct), deci nu mai e nevoie de override. */
	#divPdaList { margin-top:15px; }
	#divPdaList .tblScroll { max-height: calc( 100vh - 365px ); }
	tr.pdaSoldRow td { background:#eef5f0 !important; font-weight:700; color:rgb(48,80,60); }

	.pdaEmptyBox { text-align:center; padding:38px 24px 46px; color:rgb(108,147,122); animation: pdaFade .5s cubic-bezier(.2,.7,.2,1) both; }
	.pdaEmptyBox h3 { margin:16px 0 6px; font-size:20px; font-weight:700; color:rgb(48,80,60); letter-spacing:.2px; }
	.pdaEmptyBox p { margin:0 auto; max-width:420px; font-size:13.5px; line-height:1.55; color:rgb(108,147,122); }
	.pdaArt { width:190px; max-width:58%; height:auto; display:inline-block; overflow:visible; }
	.pdaArt .pdaHalo  { transform-box:fill-box; transform-origin:center; animation: pdaHalo 3.6s ease-in-out infinite; }
	.pdaArt .pdaFloat { transform-box:fill-box; transform-origin:center; animation: pdaFloat 4.8s ease-in-out infinite; }
	.pdaArt .pdaCoin  { transform-box:fill-box; transform-origin:center; animation: pdaCoin 3s ease-in-out infinite; }
	.pdaArt .pdaScan  { transform-box:fill-box; transform-origin:center; animation: pdaScan 2.8s ease-in-out infinite; }
	@keyframes pdaFade  { from { opacity:0; transform:translateY(10px);} to { opacity:1; transform:none; } }
	@keyframes pdaHalo  { 0%,100%{ transform:scale(1); opacity:.5; } 50%{ transform:scale(1.09); opacity:.85; } }
	@keyframes pdaFloat { 0%,100%{ transform:translateY(0) rotate(-1.4deg);} 50%{ transform:translateY(-7px) rotate(1.4deg);} }
	@keyframes pdaCoin  { 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-9px);} }
	@keyframes pdaScan  { 0%,100%{ transform:translate(0,0);} 50%{ transform:translate(7px,7px);} }
	@media (prefers-reduced-motion: reduce) { .pdaEmptyBox, .pdaArt * { animation:none !important; } }

/* ===================== doContract - CSS contracte ===================== */
	/* chip Semnatura - ton deschis + punct colorat, codat semantic */
	.semnatChip { display:inline-flex; align-items:center; gap:7px; padding:5px 12px 5px 10px; border-radius:999px;
		font-size:12px; font-weight:600; background:var(--st-bg); color:var(--st-fg); white-space:nowrap; user-select:none; }
	.semnatChip .dot { width:7px; height:7px; border-radius:50%; background:var(--st-dot); flex:none;
		box-shadow:0 0 0 3px color-mix(in srgb, var(--st-dot) 22%, transparent); }
	.st-el { --st-bg:#d6efdf; --st-fg:#136c37; --st-dot:#16a34a; }  /* Electronic */
	.st-ic { --st-bg:#fbe8ca; --st-fg:#94600f; --st-dot:#e0870f; }  /* In curs   */
	.st-ol { --st-bg:#dfe7ed; --st-fg:#495662; --st-dot:#7a8896; }  /* Olograf   */
	.st-rf { --st-bg:#fbd9d9; --st-fg:#b02a24; --st-dot:#dc2626; }  /* Refuzat   */

	/* butoane din dreapta - centrate vertical in rand (padding sus/jos egal) */
	#divDocList .btnControls { display:flex; align-items:center; justify-content:flex-end; padding-top:0 !important; padding-bottom:0 !important; gap:6px; }

	/* modal vizualizare contract - bara de titlu: DEZACTIVATA (decomenteaza pt reactivare)
	#ctrModalBox { display:flex; flex-direction:column; }
	.ctrModalHead { display:flex; align-items:center; justify-content:space-between; gap:12px; flex:none;
		padding:11px 12px 11px 18px; border-bottom:1px solid #e6efe9; background:#f6f9f7; }
	.ctrModalTitle { font-size:14px; font-weight:700; color:rgb(48,80,60); letter-spacing:.2px; display:flex; align-items:center; gap:9px; }
	.ctrModalTitle i { color:rgb(22,163,74); font-size:15px; }
	#ctrModalClose { width:32px; height:32px; border:none; background:#eef2ef; border-radius:8px; cursor:pointer;
		font-size:20px; line-height:1; color:#374151; flex:none; transition:background .15s; }
	#ctrModalClose:hover { background:#e2ece6; }
	#ctrModalFrame { flex:1; width:100%; border:none; }
	*/

	/* ---- empty-state: scaffold global .emptyState/.emptyArt/.emFloat/.emPulse (vezi index.php);
	   aici doar animatia specifica de "desenare" a semnaturii (ctrDraw) ---- */
	.emptyState .ctrDraw { stroke-dasharray: 170; stroke-dashoffset: 170; animation: ctrDraw 1.7s ease .35s forwards; }
	@keyframes ctrDraw { to { stroke-dashoffset: 0; } }
	@media (prefers-reduced-motion: reduce) { .emptyState .ctrDraw { animation: none; stroke-dashoffset: 0; } }
	/* ===== Documentele mele (eSign + olograf + pending) ===== */
	/* lista foloseste componenta globala .tblFrame/.tblScroll/.stickyHead (vezi index.php) */
	/* toolbar pe o linie (.filterBar): dropdown-urile deja trec peste header-ul sticky (z-index:50) */
	#docFilterBar { margin-top:10px; }
	#docFilterBar .ddown { min-width:180px; }        /* cautarea umple (flex:1 din .filterBar) -> filtrele se grupeaza in dreapta */
	#divDocList { margin-top:10px; }
	#divDocList .tblScroll { max-height: calc(100vh - 340px); }
	#tDocs { min-width:640px; }
	#tDocs td { vertical-align:middle; }
	#tDocs .dsName { font-weight:700; color:#1d2a22; word-break:break-word; }
	#tDocs .dsDate { font-variant-numeric:tabular-nums; white-space:nowrap; }
	.dsBadge { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; padding:4px 10px;
		border-radius:999px; letter-spacing:.2px; white-space:nowrap; }
	.dsBadge .dt { width:7px; height:7px; border-radius:50%; flex:none; }
	.dsOk   { background:#e3f5eb; color:#15703a; } .dsOk   .dt { background:#16a34a; }
	.dsWarn { background:#fbf1dd; color:#8a6412; } .dsWarn .dt { background:#e09915; }
	.dsBad  { background:#fce0e0; color:#b02a24; } .dsBad  .dt { background:#dc2626; }
	.dsProg { background:#e7f0fb; color:#2f568f; } .dsProg .dt { background:#4b73c0; }
	.dsOl   { background:#dfe7ed; color:#495662; } .dsOl   .dt { background:#7a8896; }  /* olograf */
	.dsPend { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:800; color:#8a5a12;
		background:#fff4e0; border:1px solid #f0dcb0; border-radius:999px; padding:5px 12px; }
	#tDocs .dsAct { width:auto; text-align:right; white-space:nowrap; }
	#tDocs .dsAct .xButton { display:inline-flex; align-items:center; vertical-align:middle; margin-left:4px; }
	.dsMuted { padding:16px; color:#78909c; font-size:13px; }
	.dsMuted i { color:#4a7a5c; }
	.dsErr { padding:16px; color:#c62828; font-size:13px; }
	/* link de semnare (accent verde, apare la fluxurile in curs unde e randul userului) */
	a.dsSign { text-decoration:none; font-size:12px; font-weight:700; color:#fff !important;
		background:linear-gradient(180deg, rgb(58,94,72), rgb(44,74,56)); border:1px solid rgb(40,66,50);
		padding:5px 12px; border-radius:8px; margin-right:6px; transition:transform .15s, box-shadow .15s; }
	a.dsSign:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(48,80,60,.28); }
	.dsSecTitle { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:800; letter-spacing:.03em;
		color:rgb(48,80,60); margin-bottom:14px; }
	.dsSecTitle i { color:rgb(74,122,92); }
	/* bara de filtre a documentelor (perioada + Ultimele N) */
	#dsControls { margin:6px 0 14px; }
	#dsControls .inputBlock { display:inline-block; margin-right:10px; }
	#dsControls .ddown { min-width:170px; }

/* ===================== doFirma - CSS profil economic (firma) ===================== */
	#firmaWrap { --br:rgb(48,80,60); --br2:#3c6b50; --ink:#2a3c31; --mut:rgb(108,147,122); --ln:#e4ece6;
		--soft:#f4f7f4; --gold:#d99b1f; --up:#16a34a; --down:#dc2626; margin-top:16px; animation: fFade .5s cubic-bezier(.2,.7,.2,1) both; }
	@keyframes fFade { from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }
	#firmaWrap * { box-sizing:border-box; }

	/* HERO */
	.fHero { position:relative; overflow:hidden; border-radius:16px; padding:22px 26px 22px 30px;
		background:#fff; border:1px solid var(--ln); color:var(--ink); box-shadow:0 10px 30px rgba(30,50,38,.07); }
	.fHero::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(180deg,#3f6d52,#6a9c7c); }
	.fHero::after { content:""; position:absolute; right:-50px; top:-60px; width:230px; height:230px; border-radius:50%;
		background:radial-gradient(circle,rgba(63,109,82,.07),transparent 70%); }
	.fHero .fEyebrow { font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:var(--br2); font-weight:700; }
	.fHero h2 { margin:6px 0 4px; font-size:clamp(22px,3.4vw,30px); font-weight:750; letter-spacing:-.01em; color:var(--br); }
	.fHero .fAct { font-size:13.5px; color:var(--mut); max-width:640px; }
	.fHeroBadges { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; position:relative; z-index:2; }
	.fBadge { display:inline-flex; align-items:center; gap:8px; background:var(--soft); border:1px solid var(--ln);
		border-radius:999px; padding:7px 14px; font-size:12.5px; font-weight:600; color:var(--ink); }
	.fBadge i { color:var(--br2); }
	.fBadge b { font-weight:750; color:var(--br); }
	.fBadge.score { background:var(--br); color:#fff; border-color:var(--br); }
	.fBadge.score b { color:#fff; }
	.fBadge.score .fDot { width:9px; height:9px; border-radius:50%; box-shadow:0 0 0 2px rgba(255,255,255,.35); }

	/* GRID sectiuni */
	.fGrid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; margin-top:16px; }
	.fCard { grid-column:span 12; background:#fff; border:1px solid var(--ln); border-radius:15px; padding:18px 20px;
		box-shadow:0 8px 26px rgba(30,50,38,.06); }
	.fCard .fTitle { display:flex; align-items:center; gap:9px; font-size:12px; text-transform:uppercase; letter-spacing:.1em;
		font-weight:700; color:var(--mut); margin-bottom:14px; }
	.fCard .fTitle i { color:var(--br); font-size:14px; }
	@media(min-width:900px){ .col6{grid-column:span 6;} .col4{grid-column:span 4;} .col8{grid-column:span 8;} .col3{grid-column:span 3;} }

	/* KPI tiles */
	.fKpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px; }
	.fKpi { background:#fff; border:1px solid var(--ln); border-radius:15px; padding:16px 18px; box-shadow:0 8px 26px rgba(30,50,38,.06); position:relative; overflow:hidden; }
	.fKpi .fKlab { font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--mut); font-weight:700; }
	.fKpi .fKval { font-size:26px; font-weight:750; color:var(--ink); margin-top:5px; font-variant-numeric:tabular-nums; line-height:1.1; }
	.fKpi .fKunit { font-size:12px; color:var(--mut); font-weight:600; margin-left:3px; }
	.fKpi .fTrend { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:700; margin-top:6px; }
	.fTrend.up{color:var(--up);} .fTrend.down{color:var(--down);} .fTrend.flat{color:var(--mut);}
	.fKpi .fSpark { position:absolute; right:12px; bottom:10px; opacity:.9; }

	/* identitate */
	.fIdGrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px 22px; }
	.fId .l { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--mut); font-weight:700; }
	.fId .v { font-size:14.5px; color:var(--ink); font-weight:600; margin-top:2px; word-break:break-word; }

	/* liste persoane */
	.fPeople { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
	.fPerson { display:flex; gap:12px; align-items:center; background:var(--soft); border-radius:12px; padding:11px 13px; }
	.fAvatar { flex:none; width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,#3f6d52,#5a8c6d); color:#fff;
		display:flex; align-items:center; justify-content:center; font-weight:750; font-size:15px; }
	.fAvatar.fAvComp { border-radius:10px; background:linear-gradient(135deg,#c58a20,#e0a92e); font-size:13px; }
	.fPerson .pInfo { min-width:0; flex:1; }
	.fPerson .n { font-weight:650; color:var(--ink); font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
	.fPerson .s { font-size:11.5px; color:var(--mut); margin-top:1px; }
	.fPct { margin-left:auto; font-weight:750; color:var(--br); font-variant-numeric:tabular-nums; padding-left:8px; }
	.pType { display:inline-block; margin-left:6px; padding:1px 6px; border-radius:5px; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; vertical-align:middle; }
	.pType.pf { background:#e6efe9; color:#3f6d52; }
	.pType.pj { background:#f6e6c4; color:#a5761a; }

	/* ratii mini */
	.fRatios { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
	.fRatio { border:1px solid var(--ln); border-radius:12px; padding:13px 15px; }
	.fRatio .rl { font-size:11.5px; color:var(--mut); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
	.fRatio .rv { font-size:20px; font-weight:750; color:var(--ink); margin-top:3px; font-variant-numeric:tabular-nums; }
	.fRatio .rv .ru { font-size:12px; font-weight:600; color:var(--mut); margin-left:2px; }

	/* linia secundara in card identitate (ex. TVA la incasare) */
	.fId .fIdSub { display:block; font-size:11px; font-weight:500; color:var(--mut); margin-top:2px; line-height:1.3; }

	/* contor in titlu card (ex. puncte de lucru) */
	.fCard .fTitle .fTcount { display:inline-flex; align-items:center; justify-content:center; min-width:19px; height:19px; padding:0 6px;
		background:var(--soft); color:var(--br2); border-radius:999px; font-size:11px; font-weight:800; letter-spacing:0; }

	/* puncte de lucru */
	.fPlList { display:flex; flex-direction:column; gap:11px; }
	.fPl { display:flex; gap:11px; align-items:flex-start; }
	.fPlIco { flex:none; width:30px; height:30px; border-radius:9px; background:var(--soft); color:var(--br); display:flex; align-items:center; justify-content:center; font-size:13px; }
	.fPlInfo { flex:1; min-width:0; }
	.fPlAdr { font-size:12.5px; color:var(--ink); line-height:1.42; }
	.fPlChip { display:inline-block; margin-top:5px; font-size:10.5px; font-weight:700; padding:2px 10px; border-radius:999px; letter-spacing:.02em; }
	.fPlChip.perm { background:rgba(22,163,74,.12); color:#15803d; }
	.fPlChip.temp { background:rgba(217,155,31,.14); color:#b57d10; }
	.fPlChip.exp  { background:rgba(220,38,38,.12); color:#dc2626; }

	/* bonitate — grid compact 2x2 premium */
	.fScoreGrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
	.fScoreTile { background:var(--soft); border:1px solid var(--ln); border-radius:12px; padding:12px 13px; }
	.fScoreHead { display:flex; align-items:center; gap:8px; min-height:24px; margin-bottom:0; }
	.fScoreIco { flex:none; width:24px; height:24px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:11px; }
	.fScoreLab { font-size:10.5px; color:var(--mut); font-weight:700; text-transform:uppercase; letter-spacing:.03em; line-height:1.2; }
	.fScoreVal { font-size:15px; font-weight:750; color:var(--ink); margin-top:5px; font-variant-numeric:tabular-nums; line-height:1.1; white-space:nowrap; }
	.fScoreVal .u { font-size:11px; color:var(--mut); font-weight:600; margin-left:2px; }
	.fScoreVal .fChip { font-size:12px; }
	.fScoreLab .fHelp { width:14px; height:14px; font-size:9px; }
	.fHelp { display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; border-radius:50%;
		background:var(--ln); color:var(--br2); font-size:10px; font-weight:800; cursor:pointer; margin-left:6px; vertical-align:middle; transition:.15s; }
	.fHelp:hover { background:var(--br); color:#fff; transform:scale(1.12); }

	/* BPI - proceduri de insolventa */
	.fCard .fTitle .fTcount.warn { background:#dc2626; color:#fff; }
	.fBpiClean { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:12px;
		background:rgba(22,163,74,.06); border:1px solid rgba(22,163,74,.18); }
	.fBpiClean .ic { flex:none; width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
		background:rgba(22,163,74,.12); color:#16a34a; font-size:18px; }
	.fBpiClean .h { font-weight:700; color:#15703a; font-size:14px; margin-bottom:2px; }
	.fBpiList { display:flex; flex-direction:column; gap:8px; max-height:360px; overflow:auto; padding-right:4px; }
	.fBpiRow { display:flex; align-items:flex-start; gap:14px; padding:11px 14px; border-radius:12px;
		background:var(--soft); border:1px solid var(--ln); border-left:3px solid #dc2626; }
	.fBpiRow .d { flex:none; width:82px; font-size:12px; font-weight:700; color:#b02a24; font-variant-numeric:tabular-nums; padding-top:1px; }
	.fBpiRow .t { font-size:13.5px; font-weight:650; color:var(--ink); line-height:1.35; }
	.fBpiRow .m { font-size:11.5px; color:var(--mut); margin-top:3px; }

	/* HERO in stare de insolventa (ultimele 24 luni) -> verde devine ROSU + banner avertizare */
	.fHero.fInsolv::before { background:linear-gradient(180deg,#dc2626,#f87171); }
	.fHero.fInsolv::after  { background:radial-gradient(circle,rgba(220,38,38,.09),transparent 70%); }
	.fInsolvWarn { position:absolute; top:16px; right:18px; z-index:3; max-width:44%; display:inline-flex; align-items:center; gap:9px;
		background:#fdecec; border:1px solid #eaa8a1; color:#a5261c; font-weight:800; font-size:11.5px; letter-spacing:.02em;
		padding:9px 13px; border-radius:12px; line-height:1.28; box-shadow:0 4px 14px rgba(220,38,38,.14); }
	.fInsolvWarn i { font-size:17px; flex:none; color:#dc2626; }
	@media (max-width:760px){ .fInsolvWarn { position:static; max-width:none; margin:0 0 12px; } }
	/* badge de stare rosu cand firma e in insolventa */
	.fBadge.bad { background:#fdecec; border-color:#f3b4ae; color:#a5261c; }
	.fBadge.bad i { color:#dc2626; }

	/* BPI: antet stare curenta + mini-timeline */
	.fBpiStatus { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:12px; margin-bottom:12px;
		background:var(--soft); border:1px solid var(--ln); }
	.fBpiStatus.ins { background:#fdecec; border-color:#f3b4ae; }
	.fBpiStatus .ic { flex:none; width:40px; height:40px; border-radius:11px; display:grid; place-items:center; font-size:18px;
		background:rgba(22,163,74,.12); color:#16a34a; }
	.fBpiStatus.ins .ic { background:rgba(220,38,38,.12); color:#dc2626; }
	.fBpiStatus .l { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--mut); font-weight:700; }
	.fBpiStatus .v { font-size:16px; font-weight:750; color:var(--ink); margin-top:2px; text-transform:capitalize; }
	.fBpiStatus.ins .v { color:#a5261c; }
	.fBpiStatus .v .cl { font-size:12px; font-weight:600; color:var(--mut); text-transform:none; }
	.fBpiStatus .d { font-size:11.5px; color:var(--mut); margin-top:2px; }
	.fBpiTimeline { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:14px; padding:0 2px; }
	.fBpiTimeline .st { font-size:11.5px; color:var(--mut); background:var(--soft); border:1px solid var(--ln); border-radius:999px; padding:5px 11px; text-transform:capitalize; }
	.fBpiTimeline .st b { color:var(--ink); font-weight:750; margin-right:5px; }
	.fBpiTimeline .st.ins { color:#a5261c; background:#fdecec; border-color:#f3b4ae; }
	.fBpiTimeline .st.ins b { color:#a5261c; }
	.fBpiTimeline .sep { color:#c7d2cb; font-size:10px; }

	/* modala help */
	#fModalOv { position:fixed; inset:0; background:rgba(20,28,22,.52); display:none; z-index:3000; }
	#fModalOv.on { display:grid; place-items:center; animation:fFadeOv .2s ease; padding:18px; }
	@keyframes fFadeOv { from{opacity:0} to{opacity:1} }
	#fModal { position:relative; width:100%; max-width:560px; max-height:86vh; overflow:auto; background:#fff; border-radius:18px;
		padding:26px 28px 24px; box-shadow:0 26px 64px rgba(0,0,0,.34); animation:fModIn .26s cubic-bezier(.2,.8,.25,1); }
	@keyframes fModIn { from{opacity:0; transform:translateY(14px) scale(.98)} to{opacity:1; transform:none} }
	#fModal .fmClose { position:absolute; top:14px; right:14px; width:34px; height:34px; border:none; background:#f3f4f6; border-radius:10px; cursor:pointer; font-size:20px; line-height:1; color:#374151; z-index:2; }
	#fModal .fmClose:hover { background:#e6ebe8; }
	#fModal .fmIco { width:44px; height:44px; border-radius:13px; background:#eef5f0; color:var(--br); display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:800; margin-bottom:12px; }
	#fModal h3 { margin:0 0 3px; color:var(--br); font-size:22px; font-weight:750; letter-spacing:-.01em; padding-right:36px; }
	#fModal .fmSub { color:var(--mut); font-size:13px; margin-bottom:16px; }
	#fModal p { color:var(--ink); font-size:14px; line-height:1.62; margin:0 0 12px; }
	#fModal .fmFactors { margin:12px 0; padding:0; list-style:none; }
	#fModal .fmFactors li { display:flex; gap:11px; align-items:flex-start; padding:9px 0; border-top:1px solid var(--ln); font-size:13.5px; color:var(--ink); line-height:1.45; }
	#fModal .fmFactors li:first-child { border-top:none; }
	#fModal .fmFactors .num { flex:none; width:22px; height:22px; border-radius:7px; background:#eef5f0; color:var(--br); font-weight:800; font-size:11px; display:flex; align-items:center; justify-content:center; margin-top:1px; }
	#fModal .fmFactors b { color:var(--br); }
	#fModal .fmBands { display:flex; flex-direction:column; gap:9px; margin:14px 0; }
	#fModal .fmBand { display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ink); }
	#fModal .fmBand .d { width:13px; height:13px; border-radius:4px; flex:none; }
	#fModal .fmNote { background:var(--soft); border-left:3px solid var(--br2); border-radius:8px; padding:12px 14px; font-size:12.5px; color:var(--mut); line-height:1.55; margin-top:10px; }
	/* modala istoric acționariat — comutator vizualizări */
	#fModal .fmTabsWrap { text-align:center; margin:4px 0 2px; }
	#fModal .fmTabs { display:inline-flex; background:var(--soft); border-radius:10px; padding:3px; gap:2px; }
	#fModal .fmTab { border:none; background:transparent; font:inherit; font-size:12.5px; font-weight:650; color:var(--mut); padding:6px 18px; border-radius:8px; cursor:pointer; transition:.15s; }
	#fModal .fmTab.on { background:#fff; color:var(--br); box-shadow:0 1px 3px rgba(0,0,0,.12); }
	/* Cronologie (timeline / Gantt) */
	#fModal .fmTl { margin-top:14px; }
	#fModal .fmTlHead { display:flex; align-items:flex-end; height:20px; margin-bottom:8px; }
	#fModal .fmTlSp { flex:0 0 33%; }
	#fModal .fmTlAxis { position:relative; flex:1; height:20px; }
	#fModal .fmTlYr { position:absolute; transform:translateX(-50%); font-size:10.5px; color:var(--mut); font-variant-numeric:tabular-nums; }
	#fModal .fmTlBody { display:flex; flex-direction:column; gap:8px; }
	#fModal .fmTlLane { display:flex; align-items:center; }
	#fModal .fmTlName { flex:0 0 33%; font-size:12.5px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding-right:10px; }
	#fModal .fmTlTrack { position:relative; flex:1; height:26px; background:#f4f7f5; border-radius:7px; }
	#fModal .fmTlGrid { position:absolute; top:0; bottom:0; width:1px; background:rgba(0,0,0,.06); }
	#fModal .fmTlBar { position:absolute; top:3px; bottom:3px; border-radius:6px; display:flex; align-items:center; justify-content:flex-end; gap:5px; padding:0 8px; box-shadow:0 1px 3px rgba(0,0,0,.16); min-width:6px; }
	#fModal .fmTlBar b { font-weight:750; color:#fff; font-size:11px; white-space:nowrap; font-variant-numeric:tabular-nums; }
	#fModal .fmTlNow { width:7px; height:7px; border-radius:50%; background:#fff; flex:none; box-shadow:0 0 0 2px rgba(255,255,255,.4); }
	#fModal .fmTlOut { position:absolute; top:50%; transform:translateY(-50%); margin-left:7px; font-size:11px; font-weight:750; color:var(--br2); white-space:nowrap; font-variant-numeric:tabular-nums; }
	#fModal .fmTlLegend { display:flex; align-items:center; gap:7px; margin-top:14px; font-size:11.5px; color:var(--mut); }
	/* modala istoric — Pe ani : compoziție 100% stacked, compact */
	#fModal .fmYc { margin-top:14px; }
	#fModal .fmYcLegend { display:flex; flex-wrap:wrap; gap:7px 15px; margin-bottom:15px; padding-bottom:13px; border-bottom:1px solid var(--ln); }
	#fModal .fmYcLeg { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; color:var(--ink); }
	#fModal .fmYcLeg i { width:9px; height:9px; border-radius:3px; flex:none; }
	#fModal .fmYcRows { display:flex; flex-direction:column; gap:7px; }
	#fModal .fmYcRow { display:flex; align-items:center; gap:12px; }
	#fModal .fmYcYr { flex:none; width:38px; font-size:12px; font-weight:750; color:var(--mut); font-variant-numeric:tabular-nums; }
	#fModal .fmYcBar { flex:1; display:flex; height:24px; border-radius:7px; overflow:hidden; background:#eef3f0; box-shadow:inset 0 0 0 1px rgba(0,0,0,.03); }
	#fModal .fmYcSeg { display:flex; align-items:center; justify-content:center; min-width:2px; transition:filter .15s; }
	#fModal .fmYcSeg:hover { filter:brightness(1.08); }
	#fModal .fmYcSeg + .fmYcSeg { box-shadow:inset 1px 0 0 rgba(255,255,255,.55); }
	#fModal .fmYcSeg b { color:#fff; font-size:10.5px; font-weight:750; font-variant-numeric:tabular-nums; text-shadow:0 1px 1px rgba(0,0,0,.18); }
	/* buton acțiune în colțul cardului (Istoric) */
	.fCard .fTitle .fCardAction { margin-left:auto; display:inline-flex; align-items:center; gap:5px; cursor:pointer; color:var(--br2);
		background:var(--soft); border:1px solid var(--ln); border-radius:8px; padding:4px 10px; font-size:11px; font-weight:700; text-transform:none; letter-spacing:0; transition:.15s; }
	.fCard .fTitle .fCardAction i { color:inherit; font-size:11px; }
	.fCard .fTitle .fCardAction:hover { background:var(--br); color:#fff; border-color:var(--br); }

	/* compunere bilant */
	.fCompRow { display:flex; align-items:center; gap:12px; margin-bottom:11px; }
	.fCompRow .cl { width:130px; flex:none; font-size:12.5px; color:var(--ink); font-weight:600; }
	.fCompBar { flex:1; height:12px; border-radius:6px; background:#eef3f0; overflow:hidden; }
	.fCompBar > span { display:block; height:100%; border-radius:6px; }
	.fCompRow .cv { width:110px; text-align:right; font-size:12.5px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }

	.fEmpty { text-align:center; padding:60px 24px; color:var(--mut); }
	.fEmpty i { font-size:46px; color:#cfe0d6; display:block; margin-bottom:16px; }
	.fEmpty h3 { color:var(--br); font-size:20px; margin:0 0 6px; }
	.fChip { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:11.5px; font-weight:700; }
	.fSub { font-size:12px; color:var(--mut); }

	/* empty-state PREMIUM pt persoana fizica (fara profil de firma) */
	.fPfEmpty { text-align:center; padding:48px 24px 54px; animation:fPfFade .55s cubic-bezier(.2,.7,.2,1) both; }
	.fPfArt { width:230px; max-width:62%; height:auto; display:inline-block; overflow:visible; }
	.fPfEmpty h3 { color:var(--br); font-size:21px; font-weight:800; margin:22px 0 8px; letter-spacing:.2px; }
	.fPfEmpty p { max-width:440px; margin:0 auto; font-size:14px; line-height:1.55; color:var(--mut); }
	.fPfArt .fPfFloat { transform-box:fill-box; transform-origin:center; animation:fPfFloat 5s ease-in-out infinite; }
	.fPfArt .fPfHalo  { transform-box:fill-box; transform-origin:center; animation:fPfHalo 3.8s ease-in-out infinite; }
	.fPfArt .fPfBadge { transform-box:fill-box; transform-origin:center; animation:fPfBob 3.2s ease-in-out infinite; }
	@keyframes fPfFade  { from{opacity:0; transform:translateY(12px);} to{opacity:1; transform:none;} }
	@keyframes fPfFloat { 0%,100%{transform:translateY(0) rotate(-1deg);} 50%{transform:translateY(-8px) rotate(1deg);} }
	@keyframes fPfHalo  { 0%,100%{transform:scale(1); opacity:.5;} 50%{transform:scale(1.09); opacity:.85;} }
	@keyframes fPfBob   { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-5px);} }
	@media (prefers-reduced-motion: reduce){ .fPfEmpty, .fPfArt * { animation:none !important; } }

/* ===================== doMessage - CSS mesaje / solicitari ===================== */

	.ui-label { font-size: 13px; font-weight: bold; color: #888; margin-bottom: 5px; }
	.ui-label i { margin-right: 10px; }
	.ui-input-text { width: 100%; display: block; padding: 8px 10px; border: 1px solid #ccc; border-radius: 10px; }
	.ui-input-text:focus { box-shadow: 0 0px 4px rgba(22,163,74,0.35); outline: none; border-color: rgb(22,163,74); }
	.ui-textarea { width: 100%; min-height: 90px; display:block; border:1px solid #ccc; border-radius: 10px; padding: 10px; resize: vertical; }
	.ui-textarea:focus { box-shadow: 0 0px 4px rgba(22,163,74,0.35); outline: none; border-color: rgb(22,163,74); }

	.msgNote { background: rgb(240, 245, 242); color: rgb(108, 147, 122); margin-top: 30px; display: block; width: 100%; border-radius: 10px; padding: 10px; }

	/* antet lista: search + buton "Solicitare noua", la nivelul titlului, in dreapta.
	   fortam position:static (peste regula globala absolute) ca inputul sa curga in container si sa nu iasa din card */
	/* bara de sus: search (stanga) + filtru & buton (dreapta), pe acelasi rand */
	.thHeaderRow { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
	.thHeaderRow .thSearch { position: relative; width: 320px; max-width: 100%; }
	.thHeaderRow .thNewBtn { margin-left: auto; }
	.thSearch input { position: static; width: 100%; height: 46px; padding: 0 16px 0 40px; }
	.thSearch i { top: 15px; }
	.thNewBtn { vertical-align: middle; margin-left: 12px; height: 46px; padding: 0 18px; display: inline-flex; align-items: center; }
	.thNewBtn i { margin-right: 2px; }
	/* dropdownul de filtru (componenta .ddown) - aliniere pe rand cu search + buton */
	.thFilterDd .ddown-label { height: 46px; padding: 0 12px; border-radius: 10px; }
	.thFilterDd .ddown-list, .thFilterDd .ddown-item { text-align: left; }

	/* cardul nu trebuie sa decupeze lista dropdownului de filtru cand exista putine conversatii:
	   .page .main are overflow-y:auto (index.php) -> ar taia .ddown-list la marginea cardului.
	   lista de conversatii are deja propriul scroll in #divThreadInbox, deci cardul poate fi vizibil. */
	#thCard { overflow: visible; }

	/* lista conversatii - stil inbox */
	#divThreadInbox { overflow-y: auto; max-height: calc(100vh - 500px); min-height: 60px; margin-top: 18px; }

	/* separator de sectiune (filtrul "Toate": Active sus, Terminate dedesubt) */
	.thGroupSep { display: flex; align-items: center; gap: 12px; margin: 4px 2px 12px; }
	.thGroupSep:not(:first-child) { margin-top: 22px; }
	.thGroupLbl { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: rgb(108,147,122); white-space: nowrap; }
	.thGroupLbl i { font-size: 12px; opacity: .8; }
	.thGroupCount { font-size: 10px; font-weight: 700; color: rgb(108,147,122); background: rgb(240,245,242); border: 1px solid #dce7e0; padding: 1px 7px; border-radius: 999px; }
	.thGroupLine { flex: 1 1 auto; height: 1px; background: #eceeec; }

	.thRow {
		display: flex; align-items: center; gap: 14px;
		padding: 12px 14px;
		border: 1px solid #e5e7eb; border-radius: 12px;
		margin-bottom: 10px; cursor: pointer;
		transition: box-shadow .15s, border-color .15s, background .15s;
	}
	.thRow:hover { border-color: rgb(22,163,74); box-shadow: 0 0 4px rgba(22,163,74,0.25); background: rgb(247, 251, 248); }

	.thIcon { position: relative; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; background: rgb(240, 245, 242); color: rgb(22,163,74); display: grid; place-items: center; font-size: 17px; }
	.thMain { flex: 1 1 auto; min-width: 0; }
	.thTitle { font-weight: 600; color: rgb(48, 80, 60); font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.thSub { color: rgb(108, 147, 122); font-size: 12px; margin-top: 3px; }
	.thSub i { margin-right: 4px; }
	.thSub .thDot { margin: 0 7px; opacity: .5; }
	.thRight { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; }
	.thChev { color: #c7d2cb; font-size: 14px; }

	/* indicator conversatie cu mesaj nou de la RodBun */
	.thRow.thUnread { border-color: #f6d6d3; background: #fff9f9; }
	.thRow.thUnread:hover { border-color: rgb(22,163,74); background: rgb(247, 251, 248); }
	.thRow.thUnread .thTitle { font-weight: 700; }
	.thIconDot { position: absolute; top: -1px; right: -1px; width: 12px; height: 12px; border-radius: 50%; background: #FF3B30; border: 2px solid #fff; }
	.thNewPill { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; color: #c62828; background: #fdecec; padding: 3px 10px 4px; border-radius: 999px; }
	.thNewPillDot { width: 6px; height: 6px; border-radius: 50%; background: #FF3B30; }

	/* conversatie inchisa - rand estompat */
	.thRow.thClosed { opacity: .68; }
	.thRow.thClosed:hover { opacity: 1; }
	.thRow.thClosed .thIcon { background: #eef0ef; color: #9aa8a0; }

	/* buton inchide/redeschide din antetul conversatiei (pill outline rafinat) */
	.thHeadAction {
		display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto;
		height: 38px; padding: 0 15px; border-radius: 10px; white-space: nowrap;
		border: 1px solid #e3e8e4; background: #fff; color: rgb(108,147,122);
		font-size: 13px; font-weight: 600; cursor: pointer;
		transition: background .15s, border-color .15s, color .15s;
	}
	.thHeadAction:hover { border-color: #cdd8d0; background: #f5f9f6; color: rgb(48,80,60); }
	/* stare "inchide" (conversatie activa) - accent rosu subtil, doar pe hover */
	.thHeadAction.thHeadDanger { color: #b23b30; border-color: #eed3cf; }
	.thHeadAction.thHeadDanger:hover { background: #fdf0ee; border-color: #e2a69e; color: #a5342a; }

	/* nota "conversatie inchisa" in locul casetei de raspuns */
	.threadClosedNote { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding: 14px 16px; border-radius: 10px; background: #f3f4f6; color: #6b7280; font-size: 13px; border: 1px solid #e5e7eb; }
	.threadClosedNote i { color: #9ca3af; }

	/* buton periculos in modalul de confirmare */
	.xButton.cfDanger { background: #dc2626; color: #fff; border-color: #dc2626; }
	.xButton.cfDanger:hover { background: #b91c1c; border-color: #b91c1c; }

	/* modal premium de avertizare limita (accent amber - limita, nu eroare) */
	.quotaModal { width: 90%; max-width: 460px; background: #fff; border-radius: 16px; box-shadow: 0 18px 55px rgba(0,0,0,.42); padding: 32px 28px 26px; text-align: center; }
	.quotaIcon {
		width: 68px; height: 68px; margin: 0 auto 18px; border-radius: 50%;
		background: radial-gradient(circle at 30% 30%, #fff5e3, #ffe6bf); color: #d97706;
		display: grid; place-items: center; font-size: 28px;
		box-shadow: 0 6px 18px rgba(217,119,6,.18), inset 0 0 0 1px rgba(217,119,6,.10);
	}
	.quotaTitle { font-size: 19px; font-weight: 700; color: rgb(48,80,60); margin-bottom: 10px; }
	.quotaText { font-size: 13.5px; line-height: 1.55; color: rgb(108,147,122); max-width: 370px; margin: 0 auto; }
	.quotaText b { color: #b45309; font-weight: 700; }
	.quotaPill { display: inline-flex; align-items: center; gap: 7px; margin-top: 16px; font-size: 12px; font-weight: 700; color: #b45309; background: #fff4e0; border: 1px solid #fde3b8; padding: 5px 12px; border-radius: 999px; }
	.quotaOk { margin-top: 24px; padding: 9px 30px; }

	/* empty-state premium */
	/* stare goala: cardul "dispare" ca sa lase animatia sa pluteasca pe pagina */
	.page .main.bare { border: none; box-shadow: none; }

	.thEmpty { text-align: center; padding: 40px 20px 40px; }
	.thEmpty .thEmptyIcon { width: 168px; height: 168px; margin: 0 auto 14px; }
	.thEmpty .thEmptyIcon svg { width: 100%; height: 100%; display: block; }

	/* --- SVG animat premium (empty-state) --- */
	.emAnim .em-glow   { animation: emGlow 3.2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
	.emAnim .em-ring   { transform-box: fill-box; transform-origin: center; animation: emPulse 3.2s ease-out infinite; }
	.emAnim .em-ring2  { animation-delay: 1.06s; }
	.emAnim .em-ring3  { animation-delay: 2.13s; }
	.emAnim .em-radar  { transform-box: fill-box; transform-origin: center; animation: emSpin 9s linear infinite; }
	.emAnim .em-orbit  { transform-box: fill-box; transform-origin: center; animation: emSpin 6s linear infinite reverse; }
	.emAnim .em-scan   { animation: emDash 2.4s linear infinite; }
	.emAnim .em-bubble { transform-box: fill-box; transform-origin: center; animation: emFloat 4.2s ease-in-out infinite; }
	.emAnim .em-dot    { transform-box: fill-box; transform-origin: center; animation: emDot 1.5s ease-in-out infinite; }
	.emAnim .em-dot.d2 { animation-delay: .2s; }
	.emAnim .em-dot.d3 { animation-delay: .4s; }

	@keyframes emPulse { 0% { transform: scale(.7); opacity: .5; } 70% { opacity: 0; } 100% { transform: scale(1.5); opacity: 0; } }
	@keyframes emSpin  { to { transform: rotate(360deg); } }
	@keyframes emDash  { to { stroke-dashoffset: -100; } }
	@keyframes emFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
	@keyframes emDot   { 0%,60%,100% { transform: translateY(0); opacity: .45; } 30% { transform: translateY(-4px); opacity: 1; } }
	@keyframes emGlow  { 0%,100% { opacity: .45; } 50% { opacity: .9; } }

	@media (prefers-reduced-motion: reduce) {
		.emAnim .em-glow, .emAnim .em-ring, .emAnim .em-radar, .emAnim .em-orbit,
		.emAnim .em-scan, .emAnim .em-bubble, .emAnim .em-dot { animation: none; }
		.emAnim .em-ring { opacity: 0; }
	}

	/* --- stare "filtru gol": mai mica, in card (secundara fata de empty-state-ul principal) --- */
	.thEmpty.feEmpty { padding: 30px 20px 28px; }
	.thEmpty.feEmpty .thEmptyIcon { width: 128px; height: 128px; margin-bottom: 10px; }

	.feAnim .fe-glow   { animation: emGlow 3.2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
	.feAnim .fe-ring   { transform-box: fill-box; transform-origin: center; animation: emPulse 3.4s ease-out infinite; }
	.feAnim .fe-ring2  { animation-delay: 1.4s; }
	.feAnim .fe-funnel { transform-box: fill-box; transform-origin: center; animation: emFloat 4.4s ease-in-out infinite; }
	.feAnim .fe-drop   { transform-box: fill-box; transform-origin: center; animation: feDrop 2.4s ease-in-out infinite; }
	.feAnim .fe-drop.d2 { animation-delay: .6s; }
	.feAnim .fe-drop.d3 { animation-delay: 1.2s; }

	@keyframes feDrop { 0% { transform: translateY(-16px); opacity: 0; } 25% { opacity: 1; } 62% { opacity: 1; } 100% { transform: translateY(12px); opacity: 0; } }

	@media (prefers-reduced-motion: reduce) {
		.feAnim .fe-glow, .feAnim .fe-ring, .feAnim .fe-funnel, .feAnim .fe-drop { animation: none; }
		.feAnim .fe-ring { opacity: 0; }
		.feAnim .fe-drop { opacity: .5; }
	}

	.thEmpty .thEmptyTitle { color: rgb(48, 80, 60); font-size: 18px; font-weight: 700; margin-bottom: 8px; }
	.thEmpty .thEmptySub { color: rgb(108, 147, 122); font-size: 13px; line-height: 1.5; max-width: 380px; margin: 0 auto; }
	.thEmpty .thEmptySub b { color: rgb(22,163,74); font-weight: 600; }

	.stBadge { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600; padding: 2px 10px 3px; border-radius: 999px; }
	.stBadge i { font-size: 9px; }
	/* stari ciclu de viata conversatie */
	.stBadge.asteptare { background: #fef3e2; color: #b45309; }   /* nou = in asteptare la RodBun */
	.stBadge.in_lucru  { background: #e0eaff; color: #1e40af; }   /* RodBun lucreaza la solicitare */
	.stBadge.rezolvat  { background: #dcfce7; color: rgb(22, 163, 74); }  /* RodBun a rezolvat */
	.stBadge.inchis    { background: #f3f4f6; color: #6b7280; }   /* terminata de client */
	/* aliasuri vechi (compat) */
	.stBadge.nou    { background: #fef3e2; color: #b45309; }
	.stBadge.activa { background: #dcfce7; color: rgb(22, 163, 74); }
	.stBadge.citit  { background: #e0eaff; color: #1e40af; }

	.msgEmpty { color: rgba(48, 80, 60, 0.7); }

	/* antet premium conversatie */
	.thHead { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid #eef1ef; }
	.thHeadIcon {
		width: 46px; height: 46px; flex: 0 0 auto; border-radius: 13px;
		background: linear-gradient(135deg, #eafaf0, #d7efdf); color: rgb(22,163,74);
		display: grid; place-items: center; font-size: 19px;
		box-shadow: inset 0 0 0 1px rgba(22,163,74,0.10), 0 4px 12px rgba(22,163,74,0.10);
	}
	.thHeadText { flex: 1 1 auto; min-width: 0; }
	.thHeadTitle { font-size: 21px; font-weight: 700; color: rgb(48,80,60); letter-spacing: -0.01em; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.thHeadSub { margin-top: 6px; display: flex; align-items: center; gap: 8px; font-size: 12px; color: rgb(108,147,122); }
	.thHeadSub .thHeadDot { opacity: .5; }
	.thHeadSub .stBadge { text-transform: capitalize; }

	/* cluster de actiuni din dreapta antetului */
	.thHeadActions { margin-left: auto; flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
	.thHeadSep { width: 1px; height: 26px; background: #e7ece8; flex: 0 0 auto; }
	.thHeadClose {
		width: 38px; height: 38px; flex: 0 0 auto; border-radius: 10px;
		border: 1px solid #ebefec; background: #f6f8f6; color: #7a8a80;
		font-size: 20px; line-height: 1; cursor: pointer; display: grid; place-items: center;
		transition: background .15s, color .15s, border-color .15s;
	}
	.thHeadClose:hover { background: #eceeec; color: #374151; border-color: #dbe0dc; }

	/* firul conversatiei (in modal) */
	#threadBody { overflow-y: auto; max-height: calc(80vh - 190px); min-height: 200px; padding: 4px 2px; }
	.msgRow { display: flex; margin-bottom: 14px; }
	.msgRow.client { justify-content: flex-end; }
	.msgRow.rodbun { justify-content: flex-start; }
	.msgBubble {
		max-width: 72%;
		padding: 9px 14px 10px;
		border-radius: 14px;
		white-space: pre-wrap;
		word-break: break-word;
		line-height: 1.4;
		font-size: 14px;
		box-shadow: 0 0 3px rgba(200,200,200,0.4);
	}
	.msgRow.client .msgBubble { background: rgb(240, 245, 242); color: rgb(48, 80, 60); border: 1px solid #d7e3da; border-bottom-right-radius: 4px; }
	.msgRow.rodbun .msgBubble { background: #f3f4f6; color: #374151; border: 1px solid #e5e7eb; border-bottom-left-radius: 4px; }
	.msgMeta { display: block; margin-top: 6px; font-size: 11px; color: rgb(108, 147, 122); }
	.msgRow.client .msgMeta { text-align: right; }

	/* atasamente in bula de mesaj */
	.msgFiles { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; }
	.msgRow.client .msgFiles { justify-content: flex-end; }
	.msgThumb { display: block; border-radius: 8px; overflow: hidden; border: 1px solid rgba(0,0,0,0.08); line-height: 0; cursor: pointer; }
	.msgThumb img { width: 120px; height: 120px; object-fit: cover; cursor: pointer; transition: opacity .15s; }
	.msgThumb:hover img { opacity: .85; }
	/* chip fisier premium (card cu tile colorat pe tip) */
	.msgFileChip {
		display: inline-flex; align-items: center; gap: 11px; max-width: 300px;
		padding: 9px 10px 9px 9px; border-radius: 13px; text-decoration: none; cursor: pointer;
		background: #fff; border: 1px solid #e6ebe7; color: rgb(48,80,60);
		box-shadow: 0 1px 2px rgba(48,80,60,0.05);
		transition: border-color .15s, box-shadow .15s, transform .1s;
	}
	.msgFileChip:hover { border-color: rgb(22,163,74); box-shadow: 0 5px 16px rgba(22,163,74,0.15); transform: translateY(-1px); }
	.msgFileChip:active { transform: translateY(0); }

	.fcTile { width: 40px; height: 40px; flex: 0 0 auto; border-radius: 10px; display: grid; place-items: center; font-size: 18px; }
	.fcTile.pdf { background: #fdecec; color: #dc2626; }
	.fcTile.txt { background: #eaf0ff; color: #2563eb; }
	.fcTile.xls { background: #e6f4ec; color: #217346; }
	.fcTile.doc { background: #e9eefb; color: #2b579a; }
	.fcTile.gen { background: #eef2ef; color: rgb(108,147,122); }

	.msgFileChip .fcMeta { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
	.msgFileChip .fcName { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.msgFileChip .fcSub { display: flex; align-items: center; gap: 7px; font-size: 11px; color: rgb(108,147,122); }
	.fcExt { text-transform: uppercase; font-weight: 700; letter-spacing: .04em; font-size: 9px; padding: 2px 5px; border-radius: 4px; background: rgba(108,147,122,0.14); color: rgb(108,147,122); line-height: 1; }
	.fcOpen { margin: 0 4px 0 2px; color: #c7d2cb; flex: 0 0 auto; font-size: 13px; transition: color .15s; }
	.msgFileChip:hover .fcOpen { color: rgb(22,163,74); }

	/* iconita simpla folosita in modalul de preview (header + panou office) */
	.fcIcon { flex: 0 0 auto; }
	.fcIcon.pdf { color: #dc2626; }
	.fcIcon.txt { color: #2563eb; }
	.fcIcon.xls { color: #217346; }
	.fcIcon.doc { color: #2b579a; }

	/* zona de atasare fisiere in formulare (compunere + raspuns) */
	.attachBar { margin-top: 10px; }
	.attachBtn {
		display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
		padding: 8px 14px; border: 1px dashed #c3cdc6; border-radius: 10px;
		color: rgb(108,147,122); font-size: 13px; user-select: none; transition: border-color .15s, color .15s;
	}
	.attachBtn:hover { border-color: rgb(22,163,74); color: rgb(22,163,74); }
	.attachHint { font-size: 11px; color: rgb(108,147,122); margin-left: 10px; }
	.attachList { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
	.attachItem {
		display: inline-flex; align-items: center; gap: 8px; max-width: 240px;
		padding: 6px 8px 6px 10px; border-radius: 10px; background: rgb(240,245,242); border: 1px solid #dbe6de;
	}
	.attachItem .aiName { font-size: 12px; color: rgb(48,80,60); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 150px; }
	.attachItem .aiSize { font-size: 11px; color: rgb(108,147,122); flex: 0 0 auto; }
	.attachItem .aiDel { cursor: pointer; color: #b91c1c; flex: 0 0 auto; padding: 0 2px; }
	.attachItem .aiDel:hover { color: #7f1d1d; }


/* ===================== doImpersonate - CSS impersonare ===================== */
	#impBanner { display:flex; align-items:center; gap:12px; margin-top:15px; padding:12px 18px; border-radius:12px;
		background:linear-gradient(180deg,#fff4d6,#ffe9b0); border:1px solid #e6c766; color:#7a5a12; font-size:14px; }
	#impBanner i { font-size:18px; }
	#impBanner .impRevert { margin-left:auto; border:none; background:rgb(48,80,60); color:#fff; font-weight:600;
		padding:9px 16px; border-radius:8px; cursor:pointer; font-size:13px; white-space:nowrap; }
	#impBanner .impRevert:hover { background:rgb(38,64,48); }

	/* bara de filtre: clasa globala .filterBar (vezi index.php); aici doar specificul paginii */
	#impFilterBar .searchWrap { position:relative; }
	#impFilterBar .searchWrap i { position:absolute; left:12px; top:13px; color:rgba(30,30,30,.4); }
	#impFilterBar input.typeSearch { padding-left:34px; }   /* loc pt iconita de cautare din stanga */
	#impCount { flex:none; font-size:12px; color:rgb(108,147,122); }

	/* lista foloseste componenta globala .tblFrame/.tblScroll/.stickyHead (vezi index.php) */
	#divImpList { margin-top:14px; }
	#divImpList .tblScroll { max-height: calc(100vh - 314px); }
	#tabImp td { vertical-align:middle; }
	.impName { font-weight:600; color:rgb(48,80,60); }
	.impSub { font-size:12px; color:rgb(108,147,122); }
	tr.impCurrent td { background:#eef5f0 !important; }
	.impGo { border:none; background:rgb(48,80,60); color:#fff; font-weight:600; padding:8px 14px; border-radius:8px;
		cursor:pointer; font-size:12.5px; display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
	.impGo:hover { background:rgb(38,64,48); }
	.impGo:disabled { opacity:.5; cursor:default; }
	.impBadgeCurrent { font-size:11px; font-weight:700; color:#15703a; text-transform:uppercase; letter-spacing:.4px; }

/* ===================== doProfile - CSS profil ===================== */

.ui-label { font-size: 13px; font-weight: bold; color: #888; margin-bottom: 5px; }
.ui-input-text { width: 100%; display: block; padding-left: 10px; padding-right: 10px; }
.ui-textarea { width: 100%; height: 100px; display:block; border:1px solid #ccc; border-radius: 10px; padding: 10px; }

	.ui-label i { margin-right: 10px; }

/* ===================== _invoiceViewer - CSS vizualizator factura (.pm*, partajat invoice+fisa) ===================== */
	/* ============ modal premium REUTILIZABIL (.pm*) — detalii factura + decontari (OPC/SCCN) ============ */
	.pmOv { background:rgba(18,26,20,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); animation:pmFade .22s ease both; }
	@keyframes pmFade { from{opacity:0} to{opacity:1} }

	.pmCard { display:flex; flex-direction:column; width:92%; max-width:920px; max-height:88vh; background:#fff;
		border-radius:18px; overflow:hidden; box-shadow:0 24px 70px rgba(16,32,22,.38); animation:pmPop .28s cubic-bezier(.2,.8,.2,1) both; }
	@keyframes pmPop { from{opacity:0; transform:translateY(14px) scale(.985)} to{opacity:1; transform:none} }

	/* flex:none pe head/hero/foot => NU se micsoreaza cand continutul din .pmScroll depaseste inaltimea */
	.pmHead { flex:none; position:relative; padding:20px 22px 18px; color:#fff; overflow:hidden;
		background:linear-gradient(135deg, rgb(54,88,66) 0%, rgb(38,64,48) 100%); }
	.pmHead::after { content:""; position:absolute; right:-46px; top:-64px; width:190px; height:190px; border-radius:50%;
		background:radial-gradient(circle, rgba(255,255,255,.12), rgba(255,255,255,0) 70%); pointer-events:none; }
	.pmHeadRow { display:flex; align-items:center; gap:14px; position:relative; z-index:1; padding-right:40px; }
	.pmIco { flex:none; width:46px; height:46px; border-radius:13px; display:grid; place-items:center;
		background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); font-size:20px; }
	.pmHTxt { min-width:0; }
	.pmKick { font-size:11px; text-transform:uppercase; letter-spacing:.9px; opacity:.72; font-weight:700; }
	.pmTtl { font-size:18px; font-weight:800; letter-spacing:.2px; margin-top:2px; line-height:1.2; }
	.pmSub { font-size:12.5px; opacity:.85; margin-top:4px; font-variant-numeric:tabular-nums; }
	.pmX { position:absolute; top:14px; right:14px; width:34px; height:34px; border:none; border-radius:10px; cursor:pointer;
		background:rgba(255,255,255,.14); color:#fff; font-size:20px; line-height:1; z-index:2; transition:background .15s; }
	.pmX:hover { background:rgba(255,255,255,.27); }

	.pmBody { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }

	.pmHero { flex:none; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap;
		padding:16px 22px; background:#f2f7f4; border-bottom:1px solid #e4efe8; }
	.pmVal { display:flex; flex-direction:column; gap:3px; }
	.pmVal .l { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:rgb(120,146,128); font-weight:700; }
	.pmVal .v { font-size:26px; font-weight:800; color:rgb(40,70,52); font-variant-numeric:tabular-nums; line-height:1; }
	.pmChips { display:flex; gap:10px; flex-wrap:wrap; }
	.pmChip { display:flex; flex-direction:column; gap:2px; padding:8px 12px; background:#fff; border:1px solid #e4efe8; border-radius:12px; min-width:72px; }
	.pmChip .l { font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:rgb(120,146,128); font-weight:700; }
	.pmChip .v { font-size:14px; font-weight:700; color:rgb(48,80,60); font-variant-numeric:tabular-nums; }

	.pmScroll { flex:1 1 auto; min-height:0; overflow:auto; padding:16px 22px 10px; }
	.pmSecTtl { font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:rgb(120,146,128); font-weight:800; margin:2px 0 10px; }

	/* meta antet factura (emitent / adresa / cont) */
	.pmMeta { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px 24px; margin-bottom:16px;
		padding-bottom:14px; border-bottom:1px solid #eef4f0; }
	.pmMetaItem { display:flex; flex-direction:column; gap:2px; min-width:0; }
	.pmMetaItem.wide { grid-column:1 / -1; }
	.pmMetaItem .l { font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:rgb(120,146,128); font-weight:700; }
	.pmMetaItem .v { font-size:13.5px; color:#38443c; font-weight:600; word-break:break-word; }

	/* rand-card (facturi decontate in modalul OPC/SCCN) */
	.pmInv { display:flex; align-items:center; gap:12px; padding:11px 12px; border:1px solid #e8efe9; border-radius:13px;
		margin-bottom:9px; background:#fff; transition:border-color .15s, box-shadow .15s; }
	.pmInv:hover { border-color:#cfe3d6; box-shadow:0 4px 14px rgba(20,60,36,.07); }
	.pmBadge { flex:none; font-size:11px; font-weight:800; letter-spacing:.4px; padding:4px 9px; border-radius:8px;
		background:rgba(22,163,74,.11); color:#15703a; }
	.pmBadge.stor { background:rgba(220,38,38,.10); color:#c02626; }
	.pmInvMain { flex:1 1 auto; min-width:0; }
	.pmInvNo { font-size:14px; font-weight:700; color:rgb(40,60,48); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
	.pmInvMeta { font-size:12px; color:rgb(120,146,128); margin-top:1px; font-variant-numeric:tabular-nums; }
	.pmInvAmt { flex:none; text-align:right; min-width:96px; }
	.pmInvAmt .a { font-size:15px; font-weight:800; font-variant-numeric:tabular-nums; color:#15703a; }
	.pmInvAmt .a.neg { color:#c02626; }
	.pmInvAmt .t { font-size:11px; color:rgb(150,168,156); margin-top:1px; text-transform:uppercase; letter-spacing:.4px; }
	.pmInvActs { flex:none; display:flex; gap:6px; }

	/* tabel linii produse (detalii factura) */
	.pmTableWrap { overflow-x:auto; }
	.pmTable { width:100%; border-collapse:collapse; font-size:13px; }
	.pmTable th { text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.4px; color:rgb(120,146,128);
		font-weight:700; padding:8px 10px; border-bottom:1.5px solid #e4efe8; white-space:nowrap; }
	.pmTable td { padding:9px 10px; border-bottom:1px solid #eef4f0; color:#38443c; vertical-align:top; }
	.pmTable tbody tr:last-child td { border-bottom:none; }
	.pmTable .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
	.pmTable tbody tr:hover td { background:#f6faf7; }

	/* footer totaluri */
	.pmFoot { flex:none; display:flex; align-items:flex-end; justify-content:flex-end; gap:26px; flex-wrap:wrap;
		padding:14px 22px; border-top:1px solid #e4efe8; background:#fafcfb; }
	.pmFoot.spread { justify-content:space-between; align-items:center; }
	.pmFootItem { display:flex; flex-direction:column; align-items:flex-end; gap:3px; }
	.pmFootItem .l { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:rgb(120,146,128); font-weight:700; }
	.pmFootItem .v { font-size:15px; font-weight:700; color:#38443c; font-variant-numeric:tabular-nums; }
	.pmFootItem.grand .v { font-size:20px; font-weight:800; color:rgb(40,70,52); }
	.pmFootLbl { font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:rgb(120,146,128); font-weight:700; }
	.pmFootGrand { font-size:20px; font-weight:800; color:rgb(40,70,52); font-variant-numeric:tabular-nums; }

	/* chip stare plata (achitat / in termen / restant) - acelasi limbaj vizual ca la Facturi */
	.pmPay { display:inline-flex; align-items:center; gap:7px; padding:5px 12px 5px 9px; border-radius:999px;
		font-size:12px; font-weight:700; letter-spacing:.2px; white-space:nowrap; user-select:none; margin-top:9px;
		background:var(--st-bg); color:var(--st-fg); border:1px solid var(--st-bd); }
	.pmPay .dot { width:8px; height:8px; border-radius:50%; background:var(--st-dot); flex:none;
		box-shadow:0 0 0 3px var(--st-glow); }
	.pmPay.pay-ok   { --st-bg:#e3f5eb; --st-fg:#15703a; --st-dot:#16a34a; --st-bd:#bfe6cd; --st-glow:rgba(22,163,74,.16); }
	.pmPay.pay-term { --st-bg:#e7f0fb; --st-fg:#2f568f; --st-dot:#4b73c0; --st-bd:#c6d9f0; --st-glow:rgba(75,115,192,.16); }
	.pmPay.pay-late { --st-bg:#fce0e0; --st-fg:#b02a24; --st-dot:#dc2626; --st-bd:#f2c2c2; --st-glow:rgba(220,38,38,.16); }

	.pmEmpty { text-align:center; padding:34px 20px; color:rgb(120,146,128); font-size:13.5px; }
	@media (prefers-reduced-motion: reduce) { .pmOv, .pmCard { animation:none !important; } }
