- ✓ تمایل شما ثبت شد. برای پیگیری استخدام با مرکز تماس بگیرید:
-
@(f.Phone ?? "شماره ثبت نشده")
- @if (!string.IsNullOrEmpty(f.BaleId)) {
— بله: @f.BaleId }
+
}
@if (Model.Saved)
diff --git a/src/JobsMedical.Web/Pages/Shifts/Details.cshtml b/src/JobsMedical.Web/Pages/Shifts/Details.cshtml
index 0c80eca..ab4d5ac 100644
--- a/src/JobsMedical.Web/Pages/Shifts/Details.cshtml
+++ b/src/JobsMedical.Web/Pages/Shifts/Details.cshtml
@@ -36,12 +36,25 @@
@if (Model.ShowContact)
{
-
- ✓ تمایل شما ثبت شد. برای هماهنگی شیفت با مرکز درمانی تماس بگیرید:
-
@(f.Phone ?? "شماره ثبت نشده")
+
}
diff --git a/src/JobsMedical.Web/Pages/Talent/Details.cshtml b/src/JobsMedical.Web/Pages/Talent/Details.cshtml
index 6cbe139..03b486f 100644
--- a/src/JobsMedical.Web/Pages/Talent/Details.cshtml
+++ b/src/JobsMedical.Web/Pages/Talent/Details.cshtml
@@ -70,23 +70,22 @@
@{ var contacts = (t.Contacts ?? new List
()).OrderBy(c => c.SortOrder).ToList(); }
@if (contacts.Count > 0)
{
- foreach (var c in contacts)
- {
- var href = JobsMedical.Web.Services.ContactInfo.Href(c.Type, c.Value);
- var label = JobsMedical.Web.Services.ContactInfo.Label(c.Type);
- var icon = JobsMedical.Web.Services.ContactInfo.Icon(c.Type);
- var cls = c.Type is JobsMedical.Web.Models.ContactType.Mobile or JobsMedical.Web.Models.ContactType.Phone ? "btn-accent" : "btn-outline";
- if (href is not null)
+
}
else if (telHref is not null)
{
diff --git a/src/JobsMedical.Web/wwwroot/css/site.css b/src/JobsMedical.Web/wwwroot/css/site.css
index a942b08..3957cff 100644
--- a/src/JobsMedical.Web/wwwroot/css/site.css
+++ b/src/JobsMedical.Web/wwwroot/css/site.css
@@ -272,6 +272,22 @@ label { font-size: 13px; }
.tag-chip { font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 999px;
background: var(--primary-soft); color: var(--primary-dark); }
mark { background: #fff3bf; color: inherit; padding: 0 2px; border-radius: 3px; }
+
+/* Animated contact reveal box (shift/job/talent details) */
+.contact-reveal { border: 1px solid var(--primary); border-radius: 14px; padding: 14px;
+ background: var(--primary-soft); animation: revealIn .35s cubic-bezier(.2,.7,.3,1); }
+@keyframes revealIn { from { opacity: 0; transform: translateY(-10px) scale(.97); } to { opacity: 1; transform: none; } }
+.contact-reveal h4 { margin: 0 0 10px; font-size: 15px; }
+.contact-row { display: flex; align-items: center; justify-content: space-between; gap: 10px;
+ background: var(--surface); border: 1px solid var(--line); border-radius: 10px;
+ padding: 9px 12px; margin-bottom: 8px; animation: revealIn .4s ease backwards; }
+.contact-row:nth-child(2) { animation-delay: .04s; } .contact-row:nth-child(3) { animation-delay: .08s; }
+.contact-row:nth-child(4) { animation-delay: .12s; } .contact-row:nth-child(5) { animation-delay: .16s; }
+.contact-row:last-child { margin-bottom: 0; }
+.contact-row .c-meta { display: flex; flex-direction: column; min-width: 0; }
+.contact-row .c-type { font-size: 12px; color: var(--muted); }
+.contact-row .c-val { font-weight: 700; overflow: hidden; text-overflow: ellipsis; }
+.contact-row .btn { flex: 0 0 auto; padding: 6px 14px; }
.badge-gender { background: #f3eefb; color: #6b3fa0; }
/* ---------- Filters layout ---------- */