/* Self-hosted Vazirmatn — no external CDN (must work behind filtering). font-display: swap → text renders immediately in Tahoma, swaps to Vazir when ready. */ @font-face { font-family: "Vazirmatn"; font-style: normal; font-weight: 400; src: url("/fonts/Vazirmatn-Regular.woff2") format("woff2"); font-display: swap; } @font-face { font-family: "Vazirmatn"; font-style: normal; font-weight: 500; src: url("/fonts/Vazirmatn-Medium.woff2") format("woff2"); font-display: swap; } @font-face { font-family: "Vazirmatn"; font-style: normal; font-weight: 600; src: url("/fonts/Vazirmatn-SemiBold.woff2") format("woff2"); font-display: swap; } @font-face { font-family: "Vazirmatn"; font-style: normal; font-weight: 700; src: url("/fonts/Vazirmatn-Bold.woff2") format("woff2"); font-display: swap; } @font-face { font-family: "Vazirmatn"; font-style: normal; font-weight: 800 900; src: url("/fonts/Vazirmatn-Black.woff2") format("woff2"); font-display: swap; } :root { --bg: #f4f7f9; --surface: #ffffff; --ink: #16242e; --muted: #6b7c88; --line: #e4eaee; --primary: #0e8f8a; /* medical teal */ --primary-dark: #0a6f6b; --primary-soft: #e3f4f3; --accent: #f0843e; --danger: #d65745; --night: #3d4f9e; --radius: 14px; --shadow: 0 2px 10px rgba(16, 40, 50, .06); --shadow-lg: 0 8px 28px rgba(16, 40, 50, .10); } * { box-sizing: border-box; } html, body { margin: 0; padding: 0; font-family: "Vazirmatn", Tahoma, "Segoe UI", sans-serif; background: var(--bg); color: var(--ink); line-height: 1.7; font-size: 15px; } a { color: inherit; text-decoration: none; } .container { max-width: 1120px; margin: 0 auto; padding: 0 20px; } .muted { color: var(--muted); } .center { text-align: center; } /* ---------- Header ---------- */ .site-header { background: var(--surface); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; } .header-inner { display: flex; align-items: center; gap: 28px; height: 64px; } .brand { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 19px; flex: 0 0 auto; } .brand-mark { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: var(--primary); color: #fff; font-weight: 900; font-size: 22px; } .brand-mark.sm { width: 24px; height: 24px; font-size: 17px; border-radius: 7px; } /* nav + actions share a flex wrapper so the desktop layout is unchanged and the whole thing can collapse into a dropdown on mobile. */ .nav-collapse { display: flex; align-items: center; gap: 18px; flex: 1; } .main-nav { display: flex; gap: 18px; margin-inline-start: 6px; flex: 1; } .main-nav a { color: var(--muted); font-weight: 600; font-size: 15px; white-space: nowrap; transition: color .15s; } .main-nav a:hover { color: var(--primary); } .header-actions { display: flex; align-items: center; gap: 12px; margin-inline-start: auto; } .nav-action { font-weight: 600; font-size: 15px; color: var(--muted); white-space: nowrap; transition: color .15s; } .nav-action:hover { color: var(--primary); } .btn-sm { padding: 7px 14px; font-size: 13px; } /* Bell: icon-only on desktop (label shows inside the mobile dropdown). */ .bell-inline { display: inline-flex; align-items: center; gap: 6px; position: relative; font-size: 18px; } .bell-inline .bell-label { display: none; } /* Hamburger + mobile-only bell — hidden on desktop */ .nav-burger, .bell-mobile { display: none; } .nav-burger { margin-inline-start: auto; flex-direction: column; justify-content: center; gap: 5px; width: 42px; height: 42px; padding: 9px; border-radius: 10px; cursor: pointer; border: 1px solid var(--line); background: var(--surface); } .nav-burger span { display: block; height: 2px; border-radius: 2px; background: var(--ink); transition: transform .2s, opacity .2s; } .nav-toggle:checked ~ .nav-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); } .nav-toggle:checked ~ .nav-burger span:nth-child(2) { opacity: 0; } .nav-toggle:checked ~ .nav-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } .bell-mobile { position: relative; font-size: 20px; margin-inline-start: auto; line-height: 1; } /* ---------- Profile avatar + dropdown ---------- */ .profile-menu { position: relative; } .avatar-btn { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; } .avatar-img, .avatar-fallback { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; display: block; } .avatar-fallback { background: var(--primary); color: #fff; display: grid; place-items: center; font-weight: 800; } .avatar-caret { color: var(--muted); font-size: 11px; } .profile-dropdown { position: absolute; top: calc(100% + 8px); inset-inline-end: 0; min-width: 230px; z-index: 60; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 38px rgba(0,0,0,.16); padding: 6px; display: none; } .profile-toggle:checked ~ .profile-dropdown { display: block; animation: fadeIn .12s ease; } .profile-dropdown a, .pd-logout { display: flex; align-items: center; gap: 8px; width: 100%; text-align: start; padding: 9px 12px; border-radius: 9px; color: var(--ink); font-weight: 600; font-size: 14px; background: none; border: none; cursor: pointer; font-family: inherit; } .profile-dropdown a:hover, .pd-logout:hover { background: var(--primary-soft); color: var(--primary-dark); } .profile-dropdown form { margin: 0; } .pd-head { padding: 8px 12px; font-weight: 800; color: var(--muted); font-size: 13px; } .pd-sep { height: 1px; background: var(--line); margin: 4px 0; } .pd-logout { color: var(--danger); } /* Applicant rows (employer listings) */ .applicant-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; list-style: none; } .avatar-sm { flex: 0 0 auto; } .avatar-sm img, .avatar-sm .avatar-fallback { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; } .avatar-sm .avatar-fallback { background: var(--primary); color: #fff; font-weight: 800; font-size: 13px; } .applicant-info { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 0; } .resume-link { font-size: 12px; color: var(--primary); font-weight: 600; } .applicant-actions { display: inline-flex; gap: 6px; align-items: center; flex: 0 0 auto; } /* Star rating input (5..1 in DOM; hover/checked fills downward) */ .star-input { display: inline-flex; font-size: 28px; line-height: 1; } .star-input input { display: none; } .star-input label { color: var(--line); cursor: pointer; padding: 0 1px; transition: color .1s; } .star-input label:hover, .star-input label:hover ~ label, .star-input input:checked ~ label { color: #f59e0b; } /* Profile-completeness nudge */ .profile-nudge { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: #fff7ed; border: 1px solid var(--accent); border-radius: 12px; padding: 12px 16px; margin-bottom: 16px; } .profile-nudge .pn-text { font-weight: 600; font-size: 14px; } /* Large avatar on the profile editor page */ .avatar-lg { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; flex: 0 0 auto; background: var(--primary-soft); display: grid; place-items: center; } .avatar-lg img { width: 100%; height: 100%; object-fit: cover; } .avatar-lg span { font-size: 34px; font-weight: 800; color: var(--primary-dark); } /* ---------- Live notification toasts (SSE) ---------- */ .toast-host { position: fixed; inset-block-end: 16px; inset-inline-start: 16px; z-index: 200; display: flex; flex-direction: column; gap: 10px; max-width: min(360px, calc(100vw - 32px)); } .toast { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; background: var(--surface); border: 1px solid var(--line); border-inline-start: 4px solid var(--primary); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,.16); color: var(--ink); opacity: 0; transform: translateY(12px); transition: opacity .25s, transform .25s; } .toast.show { opacity: 1; transform: translateY(0); } .toast-ico { font-size: 18px; line-height: 1.4; } .toast-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .toast-body strong { font-size: 14px; } .toast-body span { font-size: 13px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ---------- Buttons ---------- */ /* Browsers do NOT inherit font-family on