/* French Directory - Search Interface */

.frdir-search-container { max-width:100%; }

.frdir-search-box {
	background:#fff; border:1px solid #e2e8f0; border-radius:10px;
	padding:20px 24px; margin-bottom:20px;
	box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.frdir-search-row {
	display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap;
}
.frdir-field { display:flex; flex-direction:column; gap:4px; }
.frdir-field label {
	font-size:.78em; font-weight:600; text-transform:uppercase;
	letter-spacing:.04em; color:#64748b;
}
.frdir-field input {
	padding:9px 14px !important; border:1px solid #cbd5e1 !important;
	border-radius:6px !important; font-size:.9em !important;
}
.frdir-field input:focus {
	border-color:#6366f1 !important;
	box-shadow:0 0 0 3px rgba(99,102,241,.12) !important;
}
.frdir-field-main { flex:1; min-width:200px; }
.frdir-field-main input { width:100%; }
.frdir-field-btn { padding-top:4px; }

/* Results */
.frdir-results { min-height:100px; }
.frdir-loading, .frdir-empty {
	padding:40px; text-align:center; color:#94a3b8; font-size:.95em;
}
.frdir-loading i { margin-right:8px; }
.frdir-error { color:#ef4444; }
.frdir-count {
	font-size:.85em; color:#64748b; margin-bottom:12px; font-weight:500;
}

/* Card grid */
.frdir-grid {
	display:grid; grid-template-columns:repeat(auto-fill, minmax(420px, 1fr));
	gap:16px;
}

/* Company card */
.frdir-card {
	background:#fff; border:1px solid #e2e8f0; border-radius:10px;
	overflow:hidden; transition:all .2s ease;
	box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.frdir-card:hover {
	box-shadow:0 4px 12px rgba(0,0,0,.08);
	border-color:#cbd5e1;
}
.frdir-card-head {
	display:flex; align-items:flex-start; justify-content:space-between;
	padding:16px 18px 8px; gap:12px;
}
.frdir-card-title h3 {
	margin:0; font-size:1em; font-weight:600; color:#1e293b; line-height:1.3;
}
.frdir-sigle {
	display:inline-block; font-size:.75em; color:#94a3b8;
	background:#f1f5f9; padding:1px 6px; border-radius:4px; margin-top:2px;
}
.frdir-badge {
	font-size:.72em; font-weight:600; padding:3px 10px;
	border-radius:20px; white-space:nowrap; flex-shrink:0;
}
.frdir-status-active { background:#dcfce7; color:#166534; }
.frdir-status-closed { background:#fef2f2; color:#991b1b; }

.frdir-card-body { padding:8px 18px 14px; }
.frdir-info {
	display:flex; gap:8px; padding:3px 0; font-size:.84em;
	border-bottom:1px solid #f8fafc;
}
.frdir-info:last-child { border-bottom:none; }
.frdir-label {
	width:70px; min-width:70px; font-weight:600;
	color:#94a3b8; font-size:.78em; text-transform:uppercase;
	letter-spacing:.03em; padding-top:1px;
}
.frdir-val { color:#334155; flex:1; word-break:break-word; }
.frdir-info-dirs .frdir-val { font-size:.85em; line-height:1.5; }

/* Sections inside cards */
.frdir-section {
	font-size:.7em; font-weight:700; text-transform:uppercase;
	letter-spacing:.05em; color:#6366f1; padding:10px 0 3px;
	border-bottom:1px solid #f1f5f9; margin-bottom:2px;
}
.frdir-val-mono { font-family:monospace; letter-spacing:.03em; }
.frdir-val-money { font-weight:600; color:#1e293b; }
.frdir-tag {
	display:inline-block; font-size:.75em; font-weight:600;
	padding:1px 6px; border-radius:4px; background:#eef2ff; color:#4338ca;
}
/* Section header with inline button */
.frdir-section-with-btn {
	display:flex; align-items:center; justify-content:space-between; gap:8px;
}
.frdir-create-inline {
	font-size:.72em !important; padding:3px 10px !important; white-space:nowrap;
	border-radius:5px !important;
}
.frdir-exists-inline {
	font-size:.72em; font-weight:600; color:#22c55e !important;
	text-decoration:none !important; white-space:nowrap;
	display:inline-flex; align-items:center; gap:4px;
}
.frdir-exists-inline:hover { color:#16a34a !important; text-decoration:underline !important; }

.frdir-directors {
	font-size:.82em; color:#475569; padding:4px 0 6px; line-height:1.6;
}

.frdir-certs {
	display:flex; gap:6px; padding:8px 0 4px; flex-wrap:wrap;
}
.frdir-cert {
	font-size:.7em; font-weight:600; padding:2px 8px;
	border-radius:10px; background:#eef2ff; color:#4338ca;
}

/* Establishments table */
.frdir-etab-table {
	width:100%; border-collapse:collapse; font-size:.82em; margin:6px 0;
}
.frdir-etab-table th {
	text-align:left; font-weight:600; color:#94a3b8; font-size:.78em;
	text-transform:uppercase; letter-spacing:.03em; padding:4px 6px;
	border-bottom:1px solid #e2e8f0;
}
.frdir-etab-table td {
	padding:6px; border-bottom:1px solid #f1f5f9; vertical-align:middle;
}
.frdir-etab-table code {
	font-size:.9em; color:#1e293b; background:#f1f5f9; padding:1px 4px; border-radius:3px;
}
.frdir-etab-table .frdir-etab-adr {
	max-width:180px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
	color:#64748b;
}
.frdir-etab-btn {
	font-size:.75em !important; padding:4px 8px !important;
	white-space:nowrap;
}

/* Establishments toggle button */
.frdir-etab-bar {
	padding:8px 0 4px;
}
.frdir-etab-toggle {
	display:inline-flex; align-items:center; gap:6px;
	background:#f1f5f9; border:1px solid #e2e8f0; border-radius:6px;
	padding:6px 14px; font-size:.82em; font-weight:500; color:#475569;
	cursor:pointer; transition:all .2s ease;
}
.frdir-etab-toggle:hover { background:#e2e8f0; color:#1e293b; }
.frdir-etab-toggle-open { background:#eef2ff; border-color:#c7d2fe; color:#4338ca; }
.frdir-etab-toggle i { font-size:.9em; }

/* Establishments panel */
.frdir-etab-panel {
	margin:6px 0; padding:0;
	border:1px solid #e2e8f0; border-radius:8px;
	background:#fafbfc; overflow:hidden;
}
.frdir-etab-footer {
	display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
	padding:8px 12px; font-size:.78em; border-top:1px solid #e2e8f0; background:#f8fafc;
	border-radius:0 0 8px 8px;
}
.frdir-etab-count { color:#94a3b8; font-weight:500; }
.frdir-etab-extlink {
	color:#6366f1 !important; text-decoration:none !important; font-weight:500;
	display:inline-flex; align-items:center; gap:4px;
}
.frdir-etab-extlink:hover { text-decoration:underline !important; }

/* Small exists icon in establishment table */
.frdir-exists-small {
	color:#22c55e !important; font-size:1.1em; text-decoration:none !important;
}
.frdir-exists-small:hover { color:#16a34a !important; }

/* Closed label */
.frdir-closed-label {
	display:block; text-align:center; color:#94a3b8; font-size:.85em; padding:4px;
}

/* Card footer with create button - always at bottom */
.frdir-card-foot {
	padding:12px 18px; border-top:1px solid #e2e8f0;
	background:#f8fafc; border-radius:0 0 10px 10px;
}
.frdir-card-foot .frdir-create-btn {
	width:100%; text-align:center;
}

/* Already exists link */
.frdir-exists-link {
	display:flex; align-items:center; gap:6px;
	padding:8px 12px; background:#f0fdf4; color:#166534 !important;
	border-radius:6px; font-size:.84em; text-decoration:none !important;
	transition:all .2s ease;
}
.frdir-exists-link:hover { background:#dcfce7; text-decoration:none !important; }
.frdir-exists-link i { color:#22c55e; }

.frdir-card-actions {
	padding:10px 18px 14px;
	border-top:1px solid #f1f5f9;
}
.frdir-create-btn {
	width:100%; text-align:center; padding:8px !important;
	font-size:.85em !important;
}
.frdir-create-btn i { margin-right:6px; }

/* Pagination */
.frdir-pager { margin:20px 0; text-align:center; }
.frdir-pager-inner {
	display:inline-flex; align-items:center; gap:12px;
}
.frdir-page-btn { padding:6px 16px !important; font-size:.85em !important; }
.frdir-page-info { font-size:.85em; color:#64748b; }

/* ═══ Creation Modal ═══ */
.frdir-modal {
	position:fixed; top:0; left:0; right:0; bottom:0;
	z-index:1000; display:flex; align-items:center; justify-content:center;
}
.frdir-modal-overlay {
	position:absolute; top:0; left:0; right:0; bottom:0;
	background:rgba(15,23,42,.5); backdrop-filter:blur(4px);
}
.frdir-modal-box {
	position:relative; background:#fff; border-radius:12px;
	box-shadow:0 20px 60px rgba(0,0,0,.2); width:480px; max-width:90vw;
	max-height:90vh; overflow-y:auto; z-index:1;
	animation:frdirModalIn .2s ease;
}
@keyframes frdirModalIn {
	from { opacity:0; transform:translateY(-20px) scale(.97); }
	to { opacity:1; transform:translateY(0) scale(1); }
}
.frdir-modal-head {
	display:flex; align-items:center; justify-content:space-between;
	padding:18px 24px; border-bottom:1px solid #e2e8f0;
}
.frdir-modal-head h3 {
	margin:0; font-size:1.05em; font-weight:600; color:#1e293b;
}
.frdir-modal-head h3 i { color:#6366f1; margin-right:8px; }
.frdir-modal-close {
	background:none; border:none; font-size:1.5em; color:#94a3b8;
	cursor:pointer; padding:0 4px; line-height:1;
}
.frdir-modal-close:hover { color:#1e293b; }

.frdir-modal-body { padding:20px 24px; }
.frdir-modal-field {
	margin-bottom:14px;
}
.frdir-modal-field label {
	display:block; font-size:.8em; font-weight:600; color:#475569;
	margin-bottom:4px; text-transform:uppercase; letter-spacing:.03em;
}
.frdir-modal-field input,
.frdir-modal-field select {
	width:100%; padding:9px 12px !important; border:1px solid #cbd5e1 !important;
	border-radius:6px !important; font-size:.9em !important;
}
.frdir-modal-field input:focus,
.frdir-modal-field select:focus {
	border-color:#6366f1 !important;
	box-shadow:0 0 0 3px rgba(99,102,241,.12) !important;
}
.frdir-modal-wide { width:850px; max-width:95vw; }

.frdir-modal-readonly {
	background:#f8fafc !important; color:#64748b !important;
	cursor:default;
}
.frdir-modal-field .fieldrequired { color:#ef4444; }

.frdir-modal-foot {
	display:flex; justify-content:flex-end; gap:10px;
	padding:16px 24px; border-top:1px solid #e2e8f0;
	background:#f8fafc; border-radius:0 0 12px 12px;
}
.frdir-modal-foot .butAction,
.frdir-modal-foot .butActionRefused {
	padding:9px 20px !important; font-size:.88em !important;
}

/* Responsive */
@media (max-width:768px) {
	.frdir-search-row { flex-direction:column; }
	.frdir-grid { grid-template-columns:1fr; }
	.frdir-field-main { min-width:100%; }
}
