/* ============================================================
   ImaraHR: Design System
   Same architecture as the Simba HRIS (class names, layout
   conventions), distinct brand identity: deep teal + amber,
   instead of Simba's navy/maroon.
   ============================================================ */

:root {
  --navy: #104b4b;        /* primary, ImaraHR brand teal */
  --navy-light: #17706d;
  /* Full shade ramp derived from --navy, recomputed live by applyBrandColour()
     in core.js whenever a company sets its own brand colour. Tiles, gradients
     and hover states should reference these instead of a fixed hex so they
     always track the current brand colour, not just our default teal. */
  --navy-950: #041515;
  --navy-900: #072020;
  --navy-800: #092c2c;
  --navy-700: #0c3838;
  --navy-600: #0e4242;
  --navy-500: #104b4b;
  --navy-400: #316464;
  --navy-300: #588181;
  --navy-contrast: #ffffff; /* black or white, whichever reads clearly on --navy */
  --black: #000000;       /* brand black, used for high-contrast surfaces/text */
  --maroon: #f49f1c;      /* brand accent, amber */
  --accent: #f49f1c;
  --green: #3B6D11;
  --border: #e4e7ec;
  --grey-bg: #f7f8fa;
  --text-dark: #1a1a2e;
  --text-mid: #555;
  --text-light: #888;
  --font-display: Arial, Helvetica, sans-serif;
  --font-ui: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--font-ui);
  background: var(--grey-bg);
  color: var(--text-dark);
  font-size: 14px;
}

.app-shell { display: flex; height: 100vh; overflow: hidden; }
.impersonation-banner { display:flex; align-items:center; justify-content:center; gap:14px; padding:8px 16px; background:var(--accent); color:#1a1206; font-size:12.5px; font-weight:600; position:relative; z-index:600; }
.impersonation-banner button { display:inline-flex; align-items:center; gap:6px; border:1px solid rgba(26,18,6,.3); background:rgba(255,255,255,.35); color:#1a1206; border-radius:100px; padding:5px 12px; font-size:11.5px; font-weight:700; cursor:pointer; transition:background .15s ease; }
.impersonation-banner button:hover { background:rgba(255,255,255,.6); }
body:has(.impersonation-banner) .app-shell { height:calc(100vh - 37px); }

/* ── Sidebar ── */
.sidebar {
  width: 220px; height: 100vh; background: #fff; border-right: 1px solid var(--border);
  display: flex; flex-direction: column; flex-shrink: 0; overflow-y: auto;
  transition: margin-left .2s;
}
.sidebar.collapsed { margin-left: -220px; }
.setup-return-banner { background: #fdf3e0; color: #7a4b06; padding: 8px 24px; font-size: 12px; font-weight: 600; border-bottom: 1px solid #f0dcae; }
.setup-return-banner a { color: var(--navy); text-decoration: underline; margin-left: 6px; }

.sb-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 18px 16px; border-bottom: 1px solid var(--border); }
.sb-logo-img { height: 32px; width: auto; max-width: 100%; object-fit: contain; display: block; }
.sb-logo {
  width: 36px; height: 36px; border-radius: 8px; background: var(--navy); color: #fff;
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; font-family: var(--font-display);
}
.sb-name { font-family: var(--font-display); font-weight: 700; font-size: 14px; color: var(--navy); }
.sb-sub { font-size: 10px; color: var(--text-light); }
/* Keep each page's legacy placeholder menu out of view until core.js has
   replaced it with the role-aware shell. This prevents a brief flash of
   links that do not belong to the signed-in user. */
.sb-nav { flex: 1; padding: 10px 8px; overflow-y: auto; visibility: hidden; }
.sb-nav.imara-nav-ready { visibility: visible; }
#payroll-toggle { display: none !important; }
.sb-section { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--text-light); padding: 12px 12px 4px; }
.sb-item {
  display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 6px; text-decoration: none;
  color: var(--text-mid); font-size: 12.5px; font-weight: 500; margin-bottom: 3px;
}
.sb-item svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; flex-shrink: 0; }
.sb-item:hover { background: var(--grey-bg); }
.sb-item.active { background: var(--navy); color: var(--navy-contrast); font-weight: 600; }
.sb-badge { margin-left: auto; font-size: 9px; padding: 1px 7px; border-radius: 8px; background: var(--grey-bg); color: var(--text-light); }
.sb-badge.green { background: #eaf3de; color: var(--green); }
.sb-footer { padding: 12px; border-top: 1px solid var(--border); }
.sb-user { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 6px; margin: -6px; border-radius: 8px; transition: background .15s ease; }
.sb-user:hover { background: var(--grey-bg); }
.sb-avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--navy); color: var(--navy-contrast); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.sb-user-name { font-size: 12px; font-weight: 600; }
.sb-user-role { font-size: 10px; color: var(--text-light); }

/* ── Topbar & main ── */
.main-wrap { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.topbar { height: 56px; background: #fff; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; padding: 0 20px; gap: 14px; }
.topbar-right { display: flex; align-items: center; gap: 10px; }
.topbar-clock { display: flex; align-items: center; gap: 8px; color: var(--text-mid); font-size: 12.5px; font-weight: 600; }
.topbar-clock i { color: var(--text-light); font-size: 12px; }
.sidebar-toggle { background: none; border: none; font-size: 18px; cursor: pointer; color: var(--navy); }
.page-content { padding: 20px 24px; flex: 1; overflow-y: auto; }

/* ── Cards & metrics ── */
.metrics-row { display: grid; gap: 14px; }
#admin-dashboard .metrics-row, #finance-dashboard .metrics-row, #personal-dashboard .metrics-row { margin-bottom: 20px; }
.leave-section-label { color: var(--text-light); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 8px; }
.payroll-register{width:100%;border-collapse:collapse;background:#fff}.payroll-register th{white-space:nowrap;background:#f6f8f8;color:var(--text-light);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.payroll-register th,.payroll-register td{padding:10px 9px;border-bottom:1px solid var(--border);text-align:right;font-size:11px}.payroll-register th:first-child,.payroll-register td:first-child,.payroll-register th:nth-child(10),.payroll-register td:nth-child(10),.payroll-register th:last-child,.payroll-register td:last-child{text-align:left}.payroll-department-row td{padding:10px 9px;background:#eaf3f1;color:var(--navy);font-weight:700;text-align:left!important}.payroll-subtotal-row td{background:#f7faf9;color:var(--navy);font-weight:700}.payroll-grand-total td{padding:13px 9px;background:var(--navy);color:#fff;font-weight:700}.payroll-mini{margin-top:2px;color:var(--text-light);font-size:9px;font-weight:400}
.payroll-row-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start}
.payroll-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.payroll-summary>div,.payroll-subtotals{padding:11px 12px;border:1px solid var(--border);border-radius:9px;background:#f8fbfa}.payroll-summary span,.payroll-subtotals small{display:block;color:var(--text-light);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.payroll-summary strong{display:block;margin-top:4px;color:var(--navy);font:700 16px var(--font-display)}.payroll-subtotals{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px;font-size:11px}.payroll-subtotals>strong{color:var(--navy)}.payroll-subtotals>span{color:var(--text-mid)}.payroll-subtotals small{margin-left:auto;color:#a14d0b;text-transform:none;letter-spacing:0}@media(max-width:800px){.payroll-summary{grid-template-columns:repeat(2,minmax(0,1fr));}}
.employee-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
.recruitment-page { width:100%; max-width:none; margin:0; }
.recruitment-head { display:flex; align-items:flex-end; justify-content:space-between; gap:22px; padding:6px 0 18px; }
.recruitment-head > div { max-width:680px; }
.recruitment-head span { display:block; font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--teal); margin-bottom:8px; }
.recruitment-head h1 { margin:0; font-size:31px; line-height:1.16; letter-spacing:-.025em; }
.recruitment-head p { margin:8px 0 0; color:var(--text-mid); font-size:14px; }
.recruitment-content { padding-top:18px; }
.recruitment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.recruitment-card{width:100%;text-align:left;padding:18px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text-dark)}.recruitment-card-link{cursor:pointer;font-family:var(--font-ui);transition:transform .15s,box-shadow .15s}.recruitment-card-link:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(15,61,62,.08)}.recruitment-card h2,.recruitment-detail h2{margin:13px 0 6px;color:var(--navy);font:700 19px var(--font-display)}.recruitment-card p,.recruitment-detail p{margin:0;color:var(--text-mid);font-size:12px}.recruitment-card footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid #edf1f0;color:var(--text-mid);font-size:11px}.recruitment-card footer b{color:var(--navy)}.recruitment-detail{max-width:none}.recruitment-detail-head{margin:14px 0 20px;padding:18px 0;border-bottom:1px solid var(--border)}.recruitment-detail section{margin-top:16px;padding:17px;background:#fff;border:1px solid var(--border);border-radius:11px}.recruitment-detail h3{margin:0 0 9px;color:var(--navy);font:700 14px var(--font-display)}#job-candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.job-stage{padding:10px;background:#f6faf9;border-radius:8px}.job-stage>strong{display:block;color:var(--navy);font-size:11px;text-transform:capitalize}.job-stage small{float:right;color:var(--text-light)}.job-stage>div{padding:8px 0;border-bottom:1px solid #dfe9e7}.job-stage>div:last-child{border-bottom:0}.job-stage b,.job-stage span{display:block;font-size:11px}.job-stage span{margin-top:2px;color:var(--text-light)}
@media (max-width:900px){.employee-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}.recruitment-head{align-items:flex-start;flex-direction:column}.recruitment-head h1{font-size:27px;}}
@media (max-width:520px){.employee-metrics{grid-template-columns:1fr;}.recruitment-head h1{font-size:24px;}}
.metric-card {
  background: #fff; border: 1.5px solid var(--border); border-radius: 10px; padding: 16px;
  text-decoration:none; display:block; cursor:pointer; box-shadow:0 2px 8px rgba(15,61,62,.06);
  transition: transform .16s ease, box-shadow .16s ease;
}
.metric-card:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(15,61,62,.14); }
/* Every tile is white with a coloured border, not a coloured fill - mc-red
   and mc-amber keep fixed semantic meaning (danger / warning), the rest
   (including mc-green/mc-blue, which never carried distinct meaning) use
   the brand colour like everything else. */
.metric-card.mc-red { border-color: #a33a2e; }
.metric-card.mc-amber { border-color: var(--accent); }
#admin-dashboard .metric-card, #finance-dashboard .metric-card, #personal-dashboard .metric-card { box-shadow: 0 2px 8px rgba(15,61,62,.06); }
.metric-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-light); margin-bottom: 6px; }
.metric-value { font-family: var(--font-display); font-size: 24px; font-weight: 700; color: var(--navy); }
.metric-card.mc-red .metric-value { color: #a33a2e; }
.metric-card.mc-amber .metric-value { color: #8a5a06; }
.metric-sub { font-size: 11px; color: var(--text-light); margin-top: 2px; }

/* ── Buttons ── */
.btn { padding: 8px 16px; border-radius: 6px; font-size: 12.5px; font-weight: 600; cursor: pointer; border: 1px solid transparent; font-family: var(--font-ui); }
.btn-primary { background: var(--navy); color: #fff; }
.btn-primary:hover { background: var(--navy-light); }
.btn-secondary { background: #fff; color: var(--navy); border-color: var(--border); }
.btn-secondary:hover { background: var(--grey-bg); }
.btn-danger { background: #fff; color: #b23a3a; border-color: #f0d3d3; }
.btn-danger:hover { background: #fdf1f1; border-color: #e4b6b6; }
.pr-toolbar-divider { width: 1px; align-self: stretch; background: var(--border); margin: 0 4px; }
.pr-export-links { display: flex; align-items: center; gap: 14px; }
.pr-export-links a { color: var(--text-mid); font-size: 12.5px; font-weight: 600; text-decoration: none; border-bottom: 1px solid transparent; cursor: pointer; }
.pr-export-links a:hover { color: var(--navy); border-bottom-color: var(--navy); }
.btn-sm { padding: 5px 10px; font-size: 11px; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* ── Forms ── */
.form-group { margin-bottom: 14px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
label { display: block; font-size: 11px; font-weight: 600; color: var(--text-mid); margin-bottom: 5px; }
input[type=text], input[type=email], input[type=password], input[type=date], input[type=number], input[type=tel], select, textarea {
  width: 100%; padding: 8px 10px; border: 1px solid var(--border); border-radius: 5px; font-size: 12.5px; font-family: var(--font-ui); box-sizing: border-box;
}
textarea { min-height: 70px; resize: vertical; }
.filter-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filter-select { border: 1px solid var(--border); border-radius: 6px; padding: 7px 10px; font-size: 12px; background: #fff; }

/* ── Modals ── */
.modal-overlay { position: fixed; inset: 0; background: rgba(15,61,62,.4); display: flex; align-items: center; justify-content: center; z-index: 500; }
/* Generic utility - .hidden must work on ANY element the JS toggles it on
   (tab panels, sections, etc.), not just modal overlays. */
.hidden { display: none !important; }

.modal-overlay.hidden { display: none; }
.modal { background: #fff; border-radius: 10px; width: 560px; max-width: 92vw; box-shadow: 0 16px 48px rgba(0,0,0,.2); max-height: 90vh; display: flex; flex-direction: column; }
.modal-header { padding: 16px 20px; border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; background: var(--navy); border-radius: 10px 10px 0 0; }
.modal-header h3 { margin: 0; font-family: var(--font-display); font-size: 15px; color: #fff; }
.modal-close { background: none; border: none; font-size: 20px; cursor: pointer; color: #fff; }
.modal-body { padding: 20px; overflow-y: auto; }
.modal-footer { padding: 14px 20px; border-top: 1px solid var(--border); display: flex; justify-content: flex-end; gap: 8px; }
.imara-dialog-overlay { z-index: 800; animation: imaraDialogFade .12s ease; }
.imara-dialog { width: 380px; }
.imara-dialog-message { margin: 0; color: var(--text-mid); font-size: 13px; line-height: 1.5; }
.imara-dialog .form-group { margin-top: 4px; }
.imara-dialog .form-group:first-child { margin-top: 0; }
@keyframes imaraDialogFade { from { opacity: 0; } to { opacity: 1; } }
.imara-crop-overlay { z-index: 800; animation: imaraDialogFade .12s ease; }
.imara-crop-modal { width: 380px; }
.imara-crop-frame { width: 100%; aspect-ratio: 1/1; border-radius: 10px; overflow: hidden; background: #1a2727; position: relative; cursor: grab; touch-action: none; user-select: none; }
.imara-crop-frame:active { cursor: grabbing; }
.imara-crop-img { position: absolute; top: 0; left: 0; max-width: none; max-height: none; pointer-events: none; }
.imara-crop-zoom { display: flex; align-items: center; gap: 10px; margin-top: 14px; color: var(--text-light); font-size: 12px; }
.imara-crop-zoom input[type=range] { flex: 1; }
.imara-crop-hint { margin: 10px 0 0; color: var(--text-light); font-size: 11px; text-align: center; }

/* ── Tables ── */
table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
th { text-align: left; padding: 9px 12px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-light); background: var(--grey-bg); border-bottom: 2px solid var(--border); }
td { padding: 9px 12px; border-bottom: 1px solid var(--border); }

/* ── Toast ── */
.toast { position: fixed; bottom: 24px; right: 24px; background: var(--text-dark); color: #fff; padding: 12px 18px; border-radius: 8px; font-size: 12.5px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; transform: translateY(8px); z-index: 900; }
.toast.show { opacity: 1; transform: translateY(0); }
.toast.error { background: var(--maroon); }
.toast.success { background: var(--green); }

/* ── Administration Centre ── */
.admin-page { display:flex; flex-direction:column; overflow:hidden; min-height:0; padding-bottom:18px; }
.admin-intro { display:flex; justify-content:space-between; gap:22px; align-items:flex-end; padding:4px 0 18px; }
.admin-eyebrow { color:var(--maroon); text-transform:uppercase; letter-spacing:.09em; font-size:10px; font-weight:700; margin-bottom:5px; }
.admin-intro h1 { margin:0; color:var(--navy); font-family:var(--font-display); font-size:22px; line-height:1.2; }
.admin-intro p { margin:6px 0 0; color:var(--text-mid); font-size:12.5px; }
.admin-search-wrap { display:flex; flex-direction:column; gap:6px; flex-shrink:0; }
.admin-search-label { color:var(--text-light); text-transform:uppercase; letter-spacing:.06em; font-size:10px; font-weight:700; }
.admin-search { display:flex; align-items:center; background:#fff; border:1px solid var(--border); border-radius:999px; padding:4px 4px 4px 18px; width:270px; height:44px; box-sizing:border-box; transition:border-color .15s ease, box-shadow .15s ease; }
.admin-search:focus-within { border-color:#5d938e; box-shadow:0 0 0 3px rgba(59,125,118,.11); }
.admin-search input { border:0; padding:0; outline:0; min-width:0; height:auto; flex:1; font-size:13.5px; background:transparent; color:var(--text-dark); appearance:none; -webkit-appearance:none; }
.admin-search input::-webkit-search-decoration,
.admin-search input::-webkit-search-cancel-button,
.admin-search input::-webkit-search-results-button,
.admin-search input::-webkit-search-results-decoration { -webkit-appearance:none; appearance:none; display:none; }
.admin-search-btn { flex-shrink:0; width:34px; height:34px; border-radius:50%; border:0; background:none; color:var(--navy); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:13px; transition:background .15s ease; }
.admin-search-btn:hover { background:var(--grey-bg); }
.admin-workspace { background:#fff; border:1px solid var(--border); border-radius:12px; flex:1; min-height:570px; overflow:hidden; display:grid; grid-template-columns:234px minmax(0,1fr); box-shadow:0 4px 18px rgba(15,61,62,.04); }
.admin-nav { padding:12px 9px; overflow-y:auto; background:#fbfcfc; border-right:1px solid var(--border); }
.admin-nav-group { margin:0 0 13px; }
.admin-nav-label { width:100%; border:0; background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:space-between; padding:6px 10px; color:var(--text-light); font:700 9px var(--font-ui); text-align:left; text-transform:uppercase; letter-spacing:.09em; }
.admin-nav-label:hover { color:var(--navy); }
.admin-group-caret { font-size:14px; font-weight:500; line-height:9px; transition:transform .18s ease; }
.admin-nav-group.collapsed .admin-group-caret { transform:rotate(-90deg); }
.admin-nav-group.collapsed .admin-nav-links { display:none; }
.admin-nav-item { border:0; width:100%; display:flex; align-items:center; justify-content:space-between; text-align:left; padding:8px 10px; border-radius:6px; background:transparent; color:var(--text-mid); cursor:pointer; font:500 12px var(--font-ui); }
.admin-nav-item:hover { background:#f0f5f4; color:var(--navy); }
.admin-nav-item.active { background:var(--navy); color:#fff; font-weight:600; box-shadow:0 2px 6px rgba(15,61,62,.18); }
.admin-nav-item .admin-nav-dot { width:5px; height:5px; border-radius:50%; background:currentColor; opacity:.55; }
.admin-content { padding:23px 25px; overflow-y:auto; min-width:0; }
.admin-loading { height:100%; min-height:250px; display:flex; justify-content:center; align-items:center; color:var(--text-light); font-size:12px; }
.admin-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; margin-bottom:19px; }
.admin-panel-head h2 { font-family:var(--font-display); color:var(--navy); font-size:21px; margin:0 0 4px; }
.admin-panel-head p { margin:0; font-size:12px; color:var(--text-mid); max-width:610px; }
.admin-panel-actions { display:flex; gap:8px; flex-shrink:0; }
.admin-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; margin-bottom:18px; }
.admin-summary-card { border:1px solid var(--border); border-radius:8px; padding:12px 13px; background:linear-gradient(135deg,#fff,#fbfcfc); }
.admin-summary-card strong { color:var(--navy); font-family:var(--font-display); font-size:18px; display:block; }
.admin-summary-card span { color:var(--text-light); font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.admin-table-wrap { border:1px solid var(--border); border-radius:8px; overflow:auto; }
.admin-table-wrap table { min-width:570px; }
.admin-empty { padding:50px 20px; text-align:center; color:var(--text-light); font-size:12px; }
.admin-empty strong { display:block; color:var(--navy); font-family:var(--font-display); font-size:16px; margin-bottom:5px; }
.admin-status { display:inline-block; border-radius:10px; padding:3px 8px; font-size:10px; font-weight:600; background:#eaf3de; color:var(--green); }
.admin-status.inactive { background:#f3f4f6; color:#777; }
.admin-row-actions { display:flex; gap:5px; justify-content:flex-end; }
.admin-profile-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:15px; width:100%; }
.admin-detail-card { border:1px solid var(--border); border-radius:9px; padding:17px; width:100%; box-sizing:border-box; }
.admin-detail-card h3 { margin:0 0 14px; color:var(--navy); font-family:var(--font-display); font-size:15px; }
.admin-th-center { text-align:center !important; }
.approval-steps { display:flex; flex-direction:column; gap:10px; }
.approval-step { display:flex; align-items:flex-start; gap:11px; font-size:12.5px; color:var(--text-mid); line-height:1.5; }
.approval-step-num { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#eef7f5; color:var(--navy); font:700 11px var(--font-display); display:flex; align-items:center; justify-content:center; }
.security-row { display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--border); }
.security-row:last-child { border-bottom:0; padding-bottom:0; }
.security-row:first-child { padding-top:0; }
.security-row-icon { flex-shrink:0; width:34px; height:34px; border-radius:9px; background:#eef7f5; color:var(--navy); display:flex; align-items:center; justify-content:center; font-size:14px; }
.security-row strong { display:block; color:var(--navy); font-size:13px; margin-bottom:3px; }
.security-row p { margin:0; color:var(--text-mid); font-size:12.5px; line-height:1.55; }
.admin-note { border-left:3px solid var(--maroon); padding:10px 12px; background:#fffaf2; color:#74551f; font-size:11.5px; line-height:1.55; border-radius:0 6px 6px 0; }
.admin-modal { width:500px; }
.admin-modal .form-group:last-child { margin-bottom:0; }

/* Settings: a single progressive workspace, not a second permanent sidebar. */
.admin-page { max-width:1320px; width:100%; margin:0 auto; }
.admin-intro { align-items:center; padding:18px 0 22px; }.admin-eyebrow { display:none; }.admin-intro h1 { font-size:22px; }.admin-intro p { margin-top:4px; }
.admin-workspace { display:block; min-height:0; border-radius:12px; overflow:hidden; }
.admin-nav { padding:0; overflow:visible; border-right:0; background:#fff; }
.settings-group-tabs { display:flex; gap:4px; overflow-x:auto; padding:8px 10px 0; border-bottom:1px solid var(--border); background:#fff; position:sticky; top:0; z-index:6; }
.settings-group-tab { flex:0 0 auto; appearance:none; border:0; background:transparent; color:var(--text-light); cursor:pointer; padding:9px 12px; border-bottom:2px solid transparent; font:600 11px var(--font-ui); }.settings-group-tab:hover { color:var(--navy); background:#f4f8f7; border-radius:6px 6px 0 0; }.settings-group-tab.active { color:var(--navy); border-bottom-color:var(--navy); }
.settings-module-tabs { display:flex; gap:6px; overflow-x:auto; padding:10px 14px; background:#fbfcfc; border-bottom:1px solid var(--border); position:sticky; top:37px; z-index:5; }.settings-module-tab { flex:0 0 auto; appearance:none; border:1px solid transparent; background:transparent; color:var(--text-mid); border-radius:7px; cursor:pointer; padding:6px 10px; font:500 11px var(--font-ui); }.settings-module-tab:hover { color:var(--navy); background:#eef5f3; }.settings-module-tab.active { background:#e9f3f1; border-color:#d4e5e1; color:var(--navy); font-weight:600; }.settings-no-match { padding:6px 3px; color:var(--text-light); font-size:11px; }
.admin-content { padding:22px 25px 26px; overflow:visible; }.admin-panel-head { margin-bottom:13px; }.admin-panel-head h2 { font-size:20px; }.admin-list-meta { margin:0 0 13px; color:var(--text-light); font-size:11px; }.admin-list-meta span { padding:0 5px; color:#c2cfcc; }.admin-summary { display:none; }
@media(max-width:640px){.admin-nav{display:block;max-height:none}.admin-content{padding:18px 15px}.admin-intro{align-items:flex-start}.settings-group-tabs{padding-left:6px}.settings-module-tabs{padding-left:10px}.admin-workspace{overflow:visible;}}

/* ── Reports & Analytics Centre ── */
.analytics-page { overflow:auto; }
.analytics-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:4px 0 18px; }
.analytics-hero h1 { margin:0; color:var(--navy); font:700 22px var(--font-display); }
.analytics-hero p { margin:6px 0 0; color:var(--text-mid); font-size:12.5px; }
.analytics-hero-actions,.analytics-export-actions { display:flex; gap:7px; flex-wrap:wrap; }
.analytics-workspace { display:grid; grid-template-columns:230px minmax(0,1fr); min-height:650px; border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:0 4px 18px rgba(15,61,62,.04); }
.analytics-nav { padding:12px 9px; background:#fbfcfc; border-right:1px solid var(--border); overflow-y:auto; }
.analytics-nav-title { padding:7px 10px 5px; color:var(--text-light); font-size:9px; letter-spacing:.08em; font-weight:700; }
.analytics-nav-item { width:100%; text-align:left; padding:9px 10px; border:0; border-radius:7px; color:var(--text-mid); background:transparent; cursor:pointer; font-family:var(--font-ui); }
.analytics-nav-item:hover { background:#eff5f4; }.analytics-nav-item.active { background:var(--navy); color:#fff; box-shadow:0 2px 6px rgba(15,61,62,.16); }
.analytics-nav-item strong,.analytics-nav-item span { display:block; }.analytics-nav-item strong { font-size:12px; }.analytics-nav-item span { font-size:10px; margin-top:3px; opacity:.72; line-height:1.35; }
.analytics-main { padding:23px 25px; min-width:0; overflow:hidden; }.analytics-loading { min-height:240px; display:flex; align-items:center; justify-content:center; color:var(--text-light); font-size:12px; }
.analytics-builder-head { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; margin-bottom:15px; }.analytics-builder-head h2 { margin:0 0 4px; color:var(--navy); font:700 19px var(--font-display); }.analytics-builder-head p { margin:0; color:var(--text-mid); font-size:12px; }
.analytics-filter-panel { border:1px solid var(--border); border-radius:9px; padding:14px; background:#fcfdfd; }.analytics-section-label { color:var(--text-light); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:10px; }.analytics-link { float:right; padding:0; border:0; background:transparent; color:var(--maroon); font:600 10px var(--font-ui); cursor:pointer; }
.analytics-filter-grid { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:10px 12px; }.analytics-filter-grid .form-group,.analytics-config-card .form-group { margin:0; }.analytics-filter-grid input,.analytics-filter-grid select { padding:7px 8px; }
.analytics-config-grid { display:grid; grid-template-columns:1.4fr .6fr; gap:12px; margin:12px 0 18px; }.analytics-config-card { border:1px solid var(--border); border-radius:9px; padding:13px; }.analytics-column-list { display:flex; flex-wrap:wrap; gap:7px 14px; }.analytics-column-list label { margin:0; font-size:11px; font-weight:500; white-space:nowrap; }.analytics-column-list input { width:auto; vertical-align:middle; }
.analytics-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 14px; }.analytics-kpi { border:1px solid var(--border); border-bottom:3px solid var(--navy); border-radius:8px; padding:11px 12px; }.analytics-kpi span,.analytics-results-head span { display:block; color:var(--text-light); font-size:10px; text-transform:uppercase; letter-spacing:.04em; }.analytics-kpi strong { display:block; margin-top:4px; color:var(--navy); font:700 15px var(--font-display); }
.analytics-results-head { display:flex; justify-content:space-between; align-items:center; margin:4px 0 10px; }.analytics-results-head h3 { margin:0 0 2px; color:var(--navy); font:700 15px var(--font-display); }.analytics-results-head span { text-transform:none; letter-spacing:0; }
.analytics-table-wrap { max-height:460px; overflow:auto; border:1px solid var(--border); border-radius:8px; }.analytics-table-wrap table { min-width:680px; }.analytics-table-wrap th { position:sticky; top:0; z-index:2; }.analytics-group-row td { background:#edf4f3; color:var(--navy); font-size:11px; font-weight:700; }.analytics-no-results { padding:35px; text-align:center; color:var(--text-light); }.analytics-pagination { display:flex; justify-content:flex-end; align-items:center; gap:10px; padding:12px 0 0; color:var(--text-light); font-size:11px; }
.analytics-chart { border:1px solid var(--border); border-radius:8px; padding:12px; margin:0 0 12px; }.analytics-chart-row { display:flex; gap:8px; align-items:center; margin:6px 0; font-size:11px; }.analytics-chart-row span { width:125px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--text-mid); }.analytics-chart-row i { height:12px; background:var(--grey-bg); border-radius:4px; flex:1; overflow:hidden; }.analytics-chart-row b { display:block; height:100%; border-radius:4px; background:var(--navy); }.analytics-chart-row strong { width:25px; text-align:right; color:var(--navy); }
.analytics-donut-chart { display:flex; align-items:center; gap:26px; }.analytics-donut { width:150px; height:150px; border-radius:50%; display:flex; align-items:center; justify-content:center; }.analytics-donut i { width:82px; height:82px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; color:var(--navy); font:700 20px var(--font-display); font-style:normal; }.analytics-donut-legend { display:grid; gap:7px; font-size:11px; color:var(--text-mid); }.analytics-donut-legend span { display:flex; align-items:center; gap:6px; }.analytics-donut-legend b { width:10px; height:10px; border-radius:3px; }.analytics-donut-legend strong { color:var(--navy); }
.analytics-columns { height:230px; display:flex; align-items:flex-end; gap:16px; padding:12px 8px 0; overflow-x:auto; }.analytics-columns>div { min-width:72px; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:5px; }.analytics-columns i { height:175px; width:34px; display:flex; align-items:flex-end; background:var(--grey-bg); border-radius:6px 6px 2px 2px; overflow:hidden; }.analytics-columns b { display:block; width:100%; min-height:4px; border-radius:6px 6px 0 0; }.analytics-columns strong { color:var(--navy); font-size:10px; }.analytics-columns span { max-width:76px; color:var(--text-mid); font-size:10px; text-align:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Minimal analytics workspace: the builder stays out of the user's way. */
.analytics-type-tabs { display:flex; gap:3px; overflow-x:auto; padding:0 0 12px; border-bottom:1px solid var(--border); margin-bottom:14px; }.analytics-type-tab { flex:0 0 auto; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--text-light); padding:8px 11px; cursor:pointer; font:600 11px var(--font-ui); }.analytics-type-tab:hover { color:var(--navy); }.analytics-type-tab.active { color:var(--navy); border-bottom-color:var(--navy); }
.analytics-workspace { display:block; min-height:0; border-radius:10px; }.analytics-main { padding:22px 24px; overflow:visible; }.analytics-builder-head { margin-bottom:12px; }.analytics-builder-head h2 { font-size:20px; }.analytics-control-tabs { display:flex; gap:4px; border-bottom:1px solid var(--border); position:sticky; top:0; z-index:5; background:var(--grey-bg); }.analytics-control-tabs button { border:0; background:transparent; color:var(--text-light); padding:8px 11px; cursor:pointer; font:600 11px var(--font-ui); border-bottom:2px solid transparent; }.analytics-control-tabs button.active { color:var(--navy); border-bottom-color:var(--navy); }.analytics-control-panel { padding:14px 0 16px; }.analytics-panel-tools { display:flex; justify-content:space-between; color:var(--text-light); font-size:11px; margin-bottom:10px; }.analytics-filter-grid { grid-template-columns:repeat(4,minmax(120px,1fr)); gap:9px 12px; }.analytics-filter-grid select[multiple] { height:35px; min-height:35px; }.analytics-visual-grid { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:10px 12px; }.analytics-config-grid,.analytics-config-card { display:block; }.analytics-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }.analytics-kpi { border-bottom-width:2px; padding:10px 12px; }
.analytics-filter-grid { display:flex !important; flex-wrap:nowrap; gap:10px 12px; overflow-x:auto; padding-bottom:2px; }
.analytics-visual-grid { grid-template-columns:repeat(auto-fill,minmax(170px,1fr)) !important; }
.analytics-filter-grid .form-group { min-width:0; flex:1 1 130px; }
.analytics-visual-grid .form-group { min-width:0; }
.analytics-filter-grid .form-group label,.analytics-visual-grid .form-group label { display:block; margin:0 0 6px; font:700 11px var(--font-ui); color:var(--text-mid); text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.analytics-filter-grid input,.analytics-filter-grid select,.analytics-visual-grid select { font-size:13px !important; padding:9px 10px !important; height:auto; }
.analytics-panel-tools { justify-content:flex-start !important; align-items:center; gap:10px; }
.analytics-panel-tools .analytics-link { float:none; padding:5px 12px; border:1px solid var(--border); border-radius:100px; font:700 11px var(--font-ui) !important; color:var(--navy); background:#fff; transition:background .15s ease,border-color .15s ease; }
.analytics-panel-tools .analytics-link:hover { background:var(--grey-bg); border-color:#bcd0ce; }
.analytics-filter-tools { display:flex; align-items:center; gap:10px; flex:0 0 auto; margin-left:auto; align-self:flex-end; height:37px; }
.analytics-filter-tools span { color:var(--text-light); font-size:11px; white-space:nowrap; }
.analytics-filter-tools .analytics-link { float:none; padding:5px 12px; border:1px solid var(--border); border-radius:100px; font:700 11px var(--font-ui) !important; color:var(--navy); background:#fff; white-space:nowrap; transition:background .15s ease,border-color .15s ease; }
.analytics-filter-tools .analytics-link:hover { background:var(--grey-bg); border-color:#bcd0ce; }
.analytics-search-row { margin-bottom:12px; }
.analytics-search-row label { display:block; margin:0 0 6px; font:700 11px var(--font-ui); color:var(--text-mid); text-transform:uppercase; letter-spacing:.03em; }
.analytics-search-box { position:relative; max-width:360px; }
.analytics-search-box i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--text-light); font-size:12px; }
.analytics-search-box input { width:100%; box-sizing:border-box; padding:9px 12px 9px 32px !important; }
.analytics-source-note { margin-top:16px; padding:13px 14px; border-left:3px solid var(--maroon); border-radius:0 6px 6px 0; background:#fffaf2; color:#74551f; font-size:12px; }
@media(max-width:900px){.analytics-filter-grid,.analytics-visual-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.analytics-main{padding:18px}}@media(max-width:620px){.analytics-type-tabs{margin-left:-3px}.analytics-main{padding:15px}.analytics-filter-grid,.analytics-visual-grid{grid-template-columns:1fr}.analytics-donut-chart{align-items:flex-start;flex-direction:column}}
.analytics-template { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--border); }.analytics-template strong,.analytics-template span { display:block; }.analytics-template strong { color:var(--navy); font-size:12px; }.analytics-template span { color:var(--text-light); font-size:11px; margin-top:3px; }
@media (max-width:900px){.analytics-workspace{grid-template-columns:185px minmax(0,1fr)}.analytics-main{padding:18px}.analytics-filter-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.analytics-config-grid{grid-template-columns:1fr}.analytics-kpis{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.analytics-page{padding:14px}.analytics-hero{align-items:flex-start;flex-direction:column}.analytics-workspace{display:block;overflow:visible}.analytics-nav{border-right:0;border-bottom:1px solid var(--border);max-height:250px}.analytics-main{padding:15px;overflow:visible}.analytics-filter-grid{grid-template-columns:1fr}.analytics-kpis{grid-template-columns:1fr}.analytics-builder-head,.analytics-results-head{align-items:flex-start;flex-direction:column}}

@media (max-width:850px) { .admin-intro{align-items:flex-start;flex-direction:column}.admin-search{width:100%}.admin-workspace{grid-template-columns:190px minmax(0,1fr)}.admin-content{padding:19px}.admin-profile-grid{grid-template-columns:1fr}.admin-summary{grid-template-columns:1fr 1fr;} }
@media (max-width:640px) { .admin-page{padding:14px}.admin-workspace{display:block;min-height:0;overflow:visible}.admin-nav{max-height:210px;border-right:0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:0 6px}.admin-nav-group{margin:0}.admin-nav-label{grid-column:1/-1}.admin-content{overflow:visible}.admin-panel-head{flex-direction:column}.admin-summary{grid-template-columns:1fr}.admin-intro h1{font-size:19px;} }

@media print {
  .sidebar, .topbar, .no-print, .filter-bar, .metrics-row, .page-header, .page-actions, button, .btn, select, input, textarea, .modal-overlay { display: none !important; }
  .page-content { padding: 0; }
  .analytics-hero-actions, .analytics-type-tabs, #analytics-builder,
  .analytics-export-actions, .analytics-pagination { display: none !important; }
  .analytics-page { padding: 0 !important; background: #fff; }
  .analytics-workspace, .analytics-main { border: 0 !important; box-shadow: none !important; padding: 0 !important; }
  .analytics-table-wrap { max-height: none !important; overflow: visible !important; border: 0 !important; }
  .analytics-table-wrap th { position: static !important; }

  /* Printing a payslip: the blanket ".modal-overlay { display:none }" rule
     above would otherwise hide the payslip along with every other modal,
     leaving only the page behind it (e.g. the payslip history list)
     visible in the printout. This scoped override, triggered only while
     body.printing-payslip is set, shows just the payslip and hides
     everything else on the page, including that history list. */
  body.printing-payslip .app-shell > *:not(#modal-payslip) { display: none !important; }
  body.printing-payslip .app-shell { min-height: 0 !important; }
  body.printing-payslip #modal-payslip { display: block !important; position: static !important; background: none !important; }
  body.printing-payslip #modal-payslip .modal { box-shadow: none !important; border: none !important; max-width: 100% !important; max-height: none !important; margin: 0 !important; }
  body.printing-payslip #modal-payslip .modal-body { overflow: visible !important; max-height: none !important; }
  body.printing-payslip #modal-payslip .modal-header,
  body.printing-payslip #modal-payslip .modal-footer { display: none !important; }
}

/* Read-only record view: records open as concise summaries, never greyed-out forms. */
.lnd-record-view { padding:2px 0 6px; }
.lnd-record-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:2px 0 18px; border-bottom:1px solid var(--border); }
.lnd-record-heading h4 { margin:4px 0 4px; color:var(--navy); font-size:20px; }
.lnd-record-heading p { margin:0; color:var(--text-mid); font-size:13px; }
.lnd-record-heading i { font-style:normal; color:var(--text-light); }
.lnd-status-pill { border-radius:999px; padding:5px 10px; font-size:11px; font-weight:700; white-space:nowrap; }
.lnd-record-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; padding:20px 0 4px; }
.lnd-record-grid > div { min-width:0; }
.lnd-record-grid span { display:block; margin-bottom:5px; color:var(--text-light); font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.lnd-record-grid strong { color:var(--text); font-size:13px; font-weight:500; line-height:1.5; }
.lnd-record-wide { grid-column:1 / -1; }
@media (max-width:640px) { .lnd-record-grid { grid-template-columns:1fr; } .lnd-record-heading { flex-direction:column; } }

.emp-tab {
  padding: 8px 12px; font-size: 11px; font-weight: 600; color: var(--text-light);
  cursor: pointer; border-bottom: 2px solid transparent; white-space: nowrap;
}
.emp-tab.active { color: var(--navy); border-bottom-color: var(--navy); }
.emp-tab.done::after { content: " \2713"; color: var(--green); }

.pr-tab {
  appearance:none; -webkit-appearance:none; border:0; background:transparent; font-family:var(--font-ui);
  padding:9px 12px; font-size:12px; font-weight:600; color:var(--text-light);
  cursor:pointer; border-bottom:2px solid transparent; transition:color .16s ease,background .16s ease;
}
.pr-tab:hover { color:var(--navy); background:#f4f8f7; }
.pr-tab.active { color:var(--navy); border-bottom-color:var(--navy); }

/* Employee management: compact, calm controls instead of browser-default boxes. */
.employee-workspace-tabs { display:flex; align-items:center; gap:3px; border-bottom:1px solid var(--border); margin-bottom:16px; position:sticky; top:0; z-index:5; background:var(--grey-bg); }
.employee-workspace-tabs .pr-tab { padding:10px 14px; border-radius:7px 7px 0 0; }
.employee-workspace-tabs .pr-tab.active { background:#eef6f4; }
#employee-directory-toolbar { background:#fff; border:1px solid var(--border); border-radius:10px; padding:10px; gap:8px; box-shadow:0 2px 8px rgba(15,61,62,.025); }
#employee-directory-toolbar .filter-select { width:178px; min-height:36px; border-color:#e1e7e6; background:#fcfdfd; }
#employee-directory-toolbar #emp-filter-search { width:235px !important; min-height:36px; border-color:#e1e7e6; background:#fcfdfd; }
#employee-directory-toolbar .btn { min-height:34px; }
.emp-exit-btn { color:#9b4a2e; border-color:#f1d6cb; background:#fffaf8; }
.emp-exit-btn:hover { background:#fff3ef; border-color:#e7bcac; }
.emp-reactivate-btn { color:#357019; border-color:#d3e7c5; background:#fbfdf8; }
.emp-reactivate-btn:hover { background:#f1f8ea; border-color:#bddba8; }
.employee-profile-link { border:0; background:transparent; padding:0; color:var(--navy); font:600 13px var(--font-ui); cursor:pointer; text-align:left; }
.employee-profile-link:hover { color:var(--navy-light); text-decoration:underline; }

/* Dedicated employee record: a calm, readable home for the complete employee story. */
.profile-page { max-width:1280px; margin:0 auto; width:100%; }
.profile-back { display:inline-flex; color:var(--text-mid); font-size:12px; text-decoration:none; margin:1px 0 14px; }
.profile-back:hover { color:var(--navy); }
.employee-profile-hero { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:21px 23px; background:#fff; border:1px solid var(--border); border-radius:12px; margin-bottom:14px; }
.employee-profile-identity { display:flex; align-items:center; gap:15px; min-width:0; }.employee-profile-identity img,.employee-profile-avatar { width:58px; height:58px; flex:0 0 58px; border-radius:14px; object-fit:cover; }.employee-profile-avatar { display:flex; align-items:center; justify-content:center; background:#e7f1ef; color:var(--navy); font:700 18px var(--font-display); }
.employee-profile-identity h1 { margin:0; color:var(--navy); font:700 23px var(--font-display); }.employee-profile-identity p { margin:4px 0; color:var(--text-mid); font-size:13px; }.employee-profile-identity p i { font-style:normal; color:var(--text-light); padding:0 3px; }.employee-profile-identity span,.employee-profile-status span+span { color:var(--text-light); font-size:11px; }.employee-profile-status { display:flex; align-items:flex-end; gap:7px; flex-direction:column; white-space:nowrap; }
.employee-profile-tabs { display:flex; overflow-x:auto; gap:3px; padding:4px 4px 0; background:#fff; border:1px solid var(--border); border-radius:10px 10px 0 0; position:sticky; top:0; z-index:5; }.employee-profile-tab { appearance:none; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--text-light); cursor:pointer; padding:10px 13px; white-space:nowrap; font:600 12px var(--font-ui); }.employee-profile-tab:hover { color:var(--navy); background:#f5f9f8; border-radius:6px 6px 0 0; }.employee-profile-tab.active { color:var(--navy); border-bottom-color:var(--navy); }
.employee-profile-content { min-height:360px; padding:21px 23px; background:#fff; border:1px solid var(--border); border-top:0; border-radius:0 0 12px 12px; }.profile-section { margin-bottom:26px; }.profile-section:last-child { margin-bottom:0; }.profile-section h2 { margin:0 0 13px; color:var(--navy); font:700 16px var(--font-display); }.profile-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 24px; }.profile-field span { display:block; margin-bottom:4px; color:var(--text-light); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.055em; }.profile-field strong { color:var(--text-dark); font-size:12.5px; font-weight:500; word-break:break-word; }.profile-list { border:1px solid var(--border); border-radius:9px; overflow:hidden; }.profile-list-row { padding:12px 14px; border-bottom:1px solid var(--border); }.profile-list-row:last-child { border-bottom:0; }.profile-list-row strong,.profile-list-row span { display:block; }.profile-list-row strong { color:var(--navy); font-size:12.5px; }.profile-list-row strong a { color:inherit; }.profile-list-row span { color:var(--text-mid); font-size:11px; margin-top:3px; }.profile-list-row p { color:var(--text-light); font-size:11px; margin:6px 0 0; }.profile-empty { margin:0; padding:19px; color:var(--text-light); font-size:12px; border:1px dashed #dce5e3; border-radius:9px; }.profile-chip-list { display:flex; flex-wrap:wrap; gap:9px; }.profile-chip-list>div { min-width:145px; padding:10px 12px; background:#f4f8f7; border:1px solid #dce9e6; border-radius:8px; }.profile-chip-list strong,.profile-chip-list span { display:block; }.profile-chip-list strong { color:var(--navy); font-size:12px; }.profile-chip-list span { color:var(--text-mid); font-size:11px; margin-top:2px; }
@media(max-width:720px){.employee-profile-hero{align-items:flex-start;flex-direction:column}.employee-profile-status{align-items:flex-start}.profile-fields{grid-template-columns:1fr 1fr}.employee-profile-content{padding:18px}.employee-profile-identity h1{font-size:20px}}@media(max-width:460px){.profile-fields{grid-template-columns:1fr}.employee-profile-hero{padding:17px}.employee-profile-identity{align-items:flex-start}.employee-profile-identity img,.employee-profile-avatar{width:48px;height:48px;flex-basis:48px;}}

@media(max-width:640px){.admin-nav{display:block;max-height:none}.admin-workspace{display:block;overflow:visible;}}

/* Full employee edit workspace: spacious enough for HR work without modal scrolling. */
.employee-edit-page { max-width:1280px; margin:0 auto; width:100%; padding-bottom:90px; }.employee-edit-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:15px; }.employee-edit-head h1 { margin:0 0 4px; color:var(--navy); font:700 22px var(--font-display); }.employee-edit-head p { margin:0; color:var(--text-mid); font-size:12px; }.employee-edit-tabs { display:flex; gap:3px; overflow-x:auto; padding:5px 6px 0; background:#fff; border:1px solid var(--border); border-radius:11px 11px 0 0; position:sticky; top:0; z-index:5; }.employee-edit-tabs .employee-profile-tab { flex:0 0 auto; }.employee-edit-content { min-height:390px; padding:24px; background:#fff; border:1px solid var(--border); border-top:0; border-radius:0 0 11px 11px; }.employee-edit-footer { position:sticky; bottom:12px; z-index:4; display:grid; grid-template-columns:auto 1fr auto auto auto; align-items:center; gap:9px; margin-top:16px; padding:12px; background:rgba(255,255,255,.95); border:1px solid var(--border); border-radius:10px; box-shadow:0 5px 18px rgba(15,61,62,.08); }.edit-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 15px; max-width:860px; }.edit-form-grid .full { grid-column:1/-1; }.edit-related { max-width:860px; padding-bottom:18px; margin-bottom:16px; border-bottom:1px solid var(--border); }.edit-related h2 { margin:0 0 13px; color:var(--navy); font:700 16px var(--font-display); }.edit-help { max-width:720px; margin:0 0 16px; color:var(--text-mid); font-size:12px; line-height:1.5; }.edit-record-list { max-width:860px; border:1px solid var(--border); border-radius:9px; overflow:hidden; }.edit-record-list>div { display:flex; align-items:center; gap:12px; padding:11px 13px; border-bottom:1px solid var(--border); }.edit-record-list>div:last-child { border-bottom:0; }.edit-record-list strong,.edit-record-list span { display:block; }.edit-record-list strong { color:var(--navy); font-size:12px; }.edit-record-list span { color:var(--text-light); font-size:11px; margin-top:2px; }.edit-record-list .btn { margin-left:auto; }.edit-leave-grid { display:grid; grid-template-columns:repeat(3,minmax(150px,1fr)); gap:10px; max-width:900px; }.edit-leave-grid label { display:block; padding:11px 12px; margin:0; background:#f6faf9; border:1px solid #dbe9e6; border-radius:9px; }.edit-leave-grid label span,.edit-leave-grid label small { display:block; }.edit-leave-grid label span { color:var(--navy); font-size:12px; }.edit-leave-grid input { width:80px; margin:8px 0 4px; padding:6px 7px; }.edit-leave-grid small { color:var(--text-light); font-size:10px; }.edit-upload { display:flex; align-items:center; gap:9px; flex-wrap:wrap; max-width:900px; padding:13px; margin-bottom:14px; background:#f6faf9; border:1px solid #dbe9e6; border-radius:9px; }.edit-upload>div { flex:1; min-width:190px; }.edit-upload strong,.edit-upload span { display:block; }.edit-upload strong { color:var(--navy); font-size:12px; }.edit-upload span { margin-top:2px; color:var(--text-light); font-size:10px; }.edit-upload input,.edit-upload select { width:auto; max-width:175px; padding:7px; }
@media(max-width:700px){.employee-edit-content{padding:18px 15px}.edit-form-grid{grid-template-columns:1fr}.edit-form-grid .full{grid-column:auto}.edit-leave-grid{grid-template-columns:1fr 1fr}.employee-edit-footer{grid-template-columns:auto 1fr auto auto}.employee-edit-footer .btn-primary:last-child{grid-column:1/-1;justify-self:stretch}.employee-edit-head{align-items:flex-start;flex-direction:column}}@media(max-width:460px){.edit-leave-grid{grid-template-columns:1fr}.employee-edit-footer{grid-template-columns:1fr 1fr}.employee-edit-footer span{display:none}.employee-edit-footer .btn{width:100%;}}

/* Refined shared controls. Deliberately low-contrast: colour is reserved for the primary action. */
.btn { border-radius:8px; padding:8px 14px; letter-spacing:0; transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.btn-primary { background:var(--navy); color:var(--navy-contrast); box-shadow:0 2px 5px rgba(15,61,62,.12); }
.btn-primary:hover { background:var(--navy-700); box-shadow:0 4px 10px rgba(15,61,62,.16); transform:translateY(-1px); }
.btn-secondary { background:#fff; border-color:#dfe7e5; color:var(--navy); }
.btn-secondary:hover { background:#f2f8f6; border-color:#c8dcda; }
.btn-sm { border-radius:7px; padding:5px 10px; }
.filter-select { width:auto; border-radius:8px; border-color:#dfe7e5; color:var(--text-dark); }
input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=date]:focus,input[type=number]:focus,input[type=tel]:focus,select:focus,textarea:focus { outline:none; border-color:#7eaaa5; box-shadow:0 0 0 3px rgba(69,130,122,.10); }

/* Shared control finish. Some administration forms are generated dynamically
   and some legacy forms use bare inputs, so this deliberately styles the
   control itself rather than relying on a page-specific class. */
input:not([type]):not([type=checkbox]):not([type=radio]),
input[type=text], input[type=email], input[type=password], input[type=date],
input[type=number], input[type=tel], input[type=search], input[type=url],
input[type=time], input[type=datetime-local], select, textarea {
  border:1px solid #dbe5e4 !important;
  border-radius:9px !important;
  background:#fff;
  box-shadow:0 1px 2px rgba(15,61,62,.035);
  transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
input:not([type]):not([type=checkbox]):not([type=radio]):hover,
input[type=text]:hover, input[type=email]:hover, input[type=password]:hover,
input[type=date]:hover, input[type=number]:hover, input[type=tel]:hover,
input[type=search]:hover, input[type=url]:hover, input[type=time]:hover,
input[type=datetime-local]:hover, select:hover, textarea:hover {
  border-color:#bfd4d1 !important;
  background:#fdfefe;
}
input:not([type]):not([type=checkbox]):not([type=radio]):focus,
input[type=text]:focus, input[type=email]:focus, input[type=password]:focus,
input[type=date]:focus, input[type=number]:focus, input[type=tel]:focus,
input[type=search]:focus, input[type=url]:focus, input[type=time]:focus,
input[type=datetime-local]:focus, select:focus, textarea:focus {
  outline:0;
  border-color:#74a59f !important;
  background:#fff;
  box-shadow:0 0 0 3px rgba(72,140,132,.11), 0 1px 2px rgba(15,61,62,.03) !important;
}
input[type=file] { border:1px dashed #c8d9d6; border-radius:9px; padding:8px; background:#f9fcfb; }
input[type=file]::file-selector-button { margin-right:9px; padding:6px 9px; border:0; border-radius:6px; background:#e7f1ef; color:var(--navy); font:600 11px var(--font-ui); cursor:pointer; }

/* Employee workspace: defaults are intentionally soft and fully styled, even
   for legacy inputs that do not explicitly declare type="text". */
.employee-edit-content .form-group { margin-bottom:18px; }
.employee-edit-content .form-group label { margin:0 0 7px; color:#536768; font-size:12px; font-weight:600; }
.employee-edit-content .form-group input:not([type=checkbox]):not([type=radio]),
.employee-edit-content .form-group select,
.employee-edit-content .form-group textarea {
  width:100%; min-height:43px; padding:10px 12px; box-sizing:border-box;
  border:1px solid #dce6e5; border-radius:9px; background:#fff; color:#173d3e;
  font:400 14px var(--font-ui); line-height:1.35;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.employee-edit-content .form-group textarea { min-height:94px; }
.employee-edit-content .form-group input:not([type=checkbox]):not([type=radio]):hover,
.employee-edit-content .form-group select:hover,
.employee-edit-content .form-group textarea:hover { border-color:#bdd1ce; background:#fdfefe; }
.employee-edit-content .form-group input:not([type=checkbox]):not([type=radio]):focus,
.employee-edit-content .form-group select:focus,
.employee-edit-content .form-group textarea:focus { outline:0; border-color:#5d938e; box-shadow:0 0 0 3px rgba(59,125,118,.11); background:#fff; }
.employee-edit-content .edit-form-grid { max-width:1160px; gap:2px 20px; }

/* Guided implementation workspace */
.setup-page{max-width:820px;margin:0 auto;padding-bottom:64px}
.setup-shell{display:flex;flex-direction:column;width:100%;height:calc(100vh - 100px);margin-top:12px;border-radius:18px;overflow:hidden;box-shadow:0 20px 50px rgba(15,61,62,.14);background:#fff}
.setup-main{background:#fff;padding:30px 40px 34px;overflow-y:auto;overflow-x:hidden;min-width:0;flex:1;min-height:0}
.setup-topline{display:flex;justify-content:flex-end;margin-bottom:12px}
.setup-badge{display:inline-flex;align-items:center;gap:6px;color:#1c6b64;font-size:11.5px;font-weight:600;background:#eef7f5;padding:6px 12px;border-radius:20px}
.setup-main h1{margin:0 0 6px;color:var(--navy);font:700 26px var(--font-display);letter-spacing:-.01em}
.setup-main h1 em{color:var(--accent);font-style:normal}
.setup-main>p.setup-sub{margin:0 0 20px;color:var(--text-mid);font-size:13px}
.setup-stepper{display:flex;align-items:center;margin-bottom:20px}
.setup-stepper-item{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;width:120px}
.setup-stepper-num{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 13px var(--font-display);background:#eef2f2;color:#9aabaa;border:2px solid #eef2f2}
.setup-slide{animation:setupSlideIn .35s cubic-bezier(.16,1,.3,1)}
@keyframes setupSlideIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
.setup-stepper-item.on .setup-stepper-num{background:var(--navy);color:#fff;border-color:var(--navy)}
.setup-stepper-item.done .setup-stepper-num{background:#1c6b64;color:#fff;border-color:#1c6b64}
.setup-stepper-item span{font-size:11.5px;font-weight:600;color:var(--text-mid)}
.setup-stepper-item.on span{color:var(--navy)}
.setup-stepper-line{flex:1;height:2px;background:#e7edec;margin:0 -4px 20px}
.setup-stepper-line.on{background:var(--navy)}
.setup-card{position:relative;padding:24px 28px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 2px 10px rgba(15,61,62,.03);margin-bottom:0}
.setup-card.active{border-color:#e3cfa4;box-shadow:0 10px 28px rgba(217,119,6,.08)}
.setup-card-head{display:flex;align-items:flex-start;gap:14px;justify-content:space-between}
.setup-card-title{display:flex;gap:12px;align-items:flex-start}
.setup-card-icon{flex:none;width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:17px;background:#eef7f5;color:var(--navy)}
.setup-card.active .setup-card-icon{background:#fdf1e2;color:var(--accent)}
.setup-card-title h2{margin:0 0 4px;color:var(--navy);font:700 20px var(--font-display)}
.setup-card-title p{margin:0;color:var(--text-mid);font-size:12.5px;line-height:1.5;max-width:440px}
.setup-pill{align-self:flex-start;padding:6px 13px;border-radius:20px;background:#f4f6f6;color:#718180;font-size:11px;font-weight:600;white-space:nowrap}
.setup-pill.done{background:#e9f3df;color:#5a7c11}
.setup-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin-top:22px}
.setup-form-grid .full{grid-column:1/-1}
.setup-form-grid .form-group{margin-bottom:16px}
.setup-form-grid label{display:block;margin-bottom:6px;font-size:12px;font-weight:600;color:var(--navy)}
.setup-form-grid input,.setup-form-grid select,.setup-form-grid textarea{border-color:#dce6e5;border-radius:10px;padding:11px 13px;font-size:14px}
.setup-step-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.setup-step-actions .btn{padding:11px 22px;font-size:13px;border-radius:10px}
.setup-note{margin-top:22px;padding:16px 18px;border-radius:12px;background:#f5faf9;border:1px solid #e5f0ee}
.setup-note strong{display:block;margin-bottom:2px;color:var(--navy);font:700 14px var(--font-display)}
.setup-confirm{display:flex;gap:12px;align-items:flex-start;margin-top:22px;padding:16px 18px;border-radius:12px;background:#f0f8ec;border:1px solid #dcecd0}
.setup-confirm .tick{flex:none;width:22px;height:22px;border-radius:50%;background:#5a7c11;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px}
.setup-confirm strong{display:block;color:#3f5c0c;font-size:13px}
.setup-confirm p{margin:2px 0 0;color:#5a6e42;font-size:12px}
.setup-inform{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:14px 16px;border-radius:12px;background:#fdf3e6;border:1px solid #f3ddb8}
.setup-inform .info{flex:none;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px}
.setup-inform p{margin:0;color:#7a5a24;font-size:12px;line-height:1.5}
.setup-preview-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.setup-preview-card{display:flex;gap:12px;align-items:flex-start;padding:18px 20px;border:1px dashed #dbe4e2;border-radius:14px;background:#fbfcfc}
.setup-preview-num{flex:none;width:30px;height:30px;border-radius:50%;background:#eef2f2;color:#9aabaa;display:flex;align-items:center;justify-content:center;font:700 12px var(--font-display)}
.setup-preview-card strong{display:block;color:#7a8c8a;font-size:13px}
.setup-preview-card span{color:#a4b0ae;font-size:11.5px}
.setup-locked{max-width:560px;margin:80px auto;padding:48px 44px;border:none;border-radius:20px;background:#fff;box-shadow:0 24px 60px rgba(15,61,62,.14)}
.setup-locked .admin-eyebrow{color:var(--accent)}
.setup-locked h1{margin:10px 0 12px;color:var(--navy);font:700 32px var(--font-display)}
.setup-locked p{max-width:100%;color:var(--text-mid);line-height:1.65;font-size:14px}
.setup-locked .setup-form-grid{margin-top:28px}
.setup-locked .btn{width:100%;padding:13px;font-size:14px;border-radius:10px;margin-top:8px}
/* A single, generous column - the paired-field .setup-form-grid reads as
   cramped for a first-impression form with only a few substantial fields. */
.setup-bootstrap-fields{margin-top:28px}
.setup-bootstrap-fields .form-group{margin-bottom:20px}
.setup-bootstrap-fields label{display:block;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--navy)}
.setup-bootstrap-fields input{width:100%;box-sizing:border-box;padding:14px 16px;border:1.5px solid #dce6e5;border-radius:11px;font-size:15px;font-family:var(--font-ui);transition:border-color .16s ease,box-shadow .16s ease}
.setup-bootstrap-fields input:hover{border-color:#bfcbc9}
.setup-bootstrap-fields input:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px rgba(16,75,75,.12)}
@media(max-width:900px){.setup-stepper-item{width:auto}.setup-stepper-item span{display:none}}
@media(max-width:640px){.setup-main{padding:24px}.setup-main h1{font-size:26px}.setup-card{padding:22px}.setup-card-head{flex-direction:column}.setup-form-grid{grid-template-columns:1fr}.setup-preview-row{grid-template-columns:1fr}.setup-locked{margin:40px 16px;padding:32px 26px}}

/* ============================================================
   Dashboard: hero band, module grid, mini analytics, activity
   ============================================================ */
.dashboard-summary{width:100%;min-height:150px;box-sizing:border-box;padding:20px 28px;margin-bottom:18px;color:var(--navy-contrast);border-radius:14px;background:linear-gradient(135deg,var(--navy-700),var(--navy-500));display:flex;flex-direction:column;justify-content:center}.dashboard-summary #dash-greeting{font:700 21px var(--font-display);margin-bottom:3px}.dashboard-summary #dash-sub{font-size:12.5px;opacity:.82}.dashboard-summary-body{display:flex;justify-content:space-between;align-items:end;gap:24px}.dashboard-summary-stats{display:flex;gap:31px;margin-top:16px}.dashboard-summary-stats>div{min-width:54px}.dashboard-summary-stats>div>div{font:700 25px var(--font-display);line-height:1}.dashboard-summary-stats span,.dashboard-summary-insight span{display:block;margin-top:4px;font-size:9.5px;font-weight:600;opacity:.78;text-transform:uppercase;letter-spacing:.055em}.dashboard-summary-insight{min-width:270px;padding:13px 15px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.08)}.dashboard-summary-insight strong{display:block;margin-top:5px;font-size:12px;font-weight:500;line-height:1.45}@media(max-width:620px){.dashboard-summary{padding:18px 20px}.dashboard-summary-body{align-items:flex-start;flex-direction:column}.dashboard-summary-stats{gap:20px}.dashboard-summary-insight{min-width:0;width:100%;box-sizing:border-box}}
.dash-priorities{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}
.dash-priority-item{
  flex:1 1 180px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px;
  padding:20px 16px; border-radius:12px; background:#fff; border:1.5px solid var(--border); text-decoration:none; color:var(--navy);
  box-shadow:0 2px 8px rgba(15,61,62,.06); cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease;
}
.dash-priority-item:hover{transform:translateY(-3px); box-shadow:0 8px 18px rgba(15,61,62,.12)}
.dash-priority-item i.dp-icon{font-size:15px; opacity:.8; margin-bottom:4px}
.dash-priority-item strong{display:block;font:700 27px var(--font-display);line-height:1;color:var(--navy)}
.dash-priority-item p{margin:4px 0 0;font-size:11.5px;line-height:1.35;font-weight:600;opacity:.75;color:var(--text-mid)}

/* Every tile is white with a faint grey border - dp-amber is the sole
   exception, reserved for something awaiting action (kept in the brand
   accent colour, not the brand primary colour, so it still reads as
   "needs attention" regardless of what primary colour a company picks). */
.dp-teal,.dp-maroon,.dp-blue,.dp-green{border-color:var(--border)}
.dp-amber{border-color:var(--accent)}
.dp-amber strong{color:#8a5a06}
.dash-payroll-panel{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px 24px}
.dash-payroll-panel .label{font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--navy);margin-bottom:14px}
.dash-payroll-cost{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.dash-payroll-cost .value{font:700 20px var(--font-display);color:var(--navy);letter-spacing:.08em}
.dash-payroll-note{color:var(--text-light);font-size:11px;margin-bottom:16px}
.dash-payroll-row{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid var(--border);font-size:12.5px}
.dash-payroll-row span:first-child{color:var(--text-mid)}
.dash-payroll-row span:last-child{color:var(--navy);font-weight:600}
.dash-list-row{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--border)}
.dash-list-row:last-child{border-bottom:none}
.dash-avatar{flex:none;width:32px;height:32px;border-radius:50%;background:#eef7f5;color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.dash-list-row strong{display:block;color:var(--navy);font-size:12.5px}
.dash-list-row span{color:var(--text-light);font-size:11px}
.dash-list-row .meta{margin-left:auto;text-align:right;flex:none}
.dash-list-row .meta strong{color:var(--maroon);font-size:12px}
@media(max-width:800px){.dash-priorities{flex-wrap:wrap;gap:18px}.dash-priority-item{flex:1 1 45%;border-right:none;padding:0}}
.hero-band {
  background: #fff; border: 1px solid var(--border); border-left: 5px solid var(--maroon);
  border-radius: 10px; padding: 24px 28px; margin-bottom: 20px;
  display: flex; align-items: center; justify-content: space-between;
  box-shadow: 0 2px 12px rgba(0,0,0,.05); flex-wrap: wrap; gap: 16px;
}
.hero-title { font-family: var(--font-display); font-size: 22px; font-weight: 700; color: var(--navy); margin-bottom: 4px; }
.hero-sub-text { font-size: 12px; color: var(--text-light); }
.hero-right { display: flex; gap: 20px; flex-shrink: 0; flex-wrap: wrap; align-items: center; }
.hero-stat { text-align: center; }
.hero-stat-val { font-family: var(--font-display); font-size: 24px; font-weight: 700; color: var(--navy); line-height: 1; }
.hero-stat-label { font-size: 10px; color: var(--text-light); text-transform: uppercase; letter-spacing: .07em; margin-top: 4px; }
.hero-divider { width: 1px; align-self: stretch; background: var(--border); }

.metric-card { position: relative; overflow: hidden; }
.metric-icon { position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
.metric-icon svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; }
.mi-navy { background: #e7f0f0; color: var(--navy); }
.mi-maroon { background: #fdf0e2; color: var(--maroon); }
.mi-green { background: #eaf3de; color: var(--green); }
.mi-blue { background: #e3f0fb; color: #0369a1; }

.section-title { font-family: var(--font-display); font-size: 13px; font-weight: 600; color: var(--navy); margin-bottom: 12px; }

.module-grid-dash { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 20px; }
.module-card-dash {
  background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 16px; cursor: pointer;
  transition: all .18s; display: flex; flex-direction: column; gap: 6px; position: relative; overflow: hidden;
}
.module-card-dash:hover { box-shadow: 0 4px 20px rgba(15,61,62,.12); border-color: #c9d6d6; transform: translateY(-1px); }
.module-icon-dash { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-bottom: 4px; background: #eef7f5; color: var(--navy); }
.module-icon-dash i { font-size: 16px; }
.module-name-dash { font-size: 13px; font-weight: 700; color: var(--navy); }
.module-desc-dash { font-size: 11px; color: var(--text-light); line-height: 1.4; }
.module-stat-dash { font-size: 11px; font-weight: 600; color: var(--maroon); margin-top: 2px; }
.mc-arrow-dash { position: absolute; bottom: 14px; right: 14px; color: var(--border); opacity: 0; transform: translateX(-4px); transition: all .2s; font-size: 12px; }
.module-card-dash:hover .mc-arrow-dash { opacity: 1; transform: translateX(0); }

.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.card { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 18px; }
.card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.card-title { font-family: var(--font-display); font-size: 13px; font-weight: 600; color: var(--navy); }
#admin-dashboard .card-title, #finance-dashboard .card-title, #personal-dashboard .card-title { font-size: 16px; font-weight: 700; }
#admin-dashboard .module-name-dash { font-size: 15px; }
#admin-dashboard .leave-section-label { font-size: 11px; }
.card-action { font-size: 11px; color: var(--maroon); cursor: pointer; font-weight: 600; text-decoration: none; }

.bar-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 12px; }
.bar-label { width: 130px; flex-shrink: 0; color: var(--text-mid); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar-track { flex: 1; background: var(--grey-bg); border-radius: 4px; height: 9px; overflow: hidden; }
.bar-fill { height: 9px; border-radius: 4px; background: var(--navy); transition: width .6s; }
.bar-count { width: 26px; text-align: right; font-weight: 600; color: var(--navy); flex-shrink: 0; }

.activity-row { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 12px; }
.activity-row:last-child { border-bottom: none; }
.activity-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 4px; flex-shrink: 0; background: var(--navy); }

@media (max-width: 900px) {
  .module-grid-dash { grid-template-columns: repeat(2,1fr); }
  .grid-2 { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .module-grid-dash { grid-template-columns: 1fr; }
}

/* Reports: view toggle buttons */
.vt-btn { padding: 6px 12px; border: none; background: none; cursor: pointer; font-size: 11px; font-weight: 600; color: var(--text-mid); border-radius: 5px; transition: all .15s; }
.vt-btn:hover { background: #fff; color: var(--navy); }
.vt-btn.active { background: #fff; color: var(--navy); box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.rp-table { width: 100%; font-size: 12px; border-collapse: collapse; }
.rp-table th { padding: 8px 10px; text-align: left; font-size: 10px; color: var(--text-light); text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--border); }
.rp-table td { padding: 8px 10px; border-top: 1px solid var(--grey-bg); }

/* Dashboard command centre: make the hero useful, not decorative. */
.dashboard-command{min-width:450px;padding:13px 15px;border:1px solid rgba(255,255,255,.16);border-radius:11px;background:rgba(3,37,38,.16)}
.dashboard-command-head{display:flex;justify-content:space-between;gap:18px;align-items:center}.dashboard-command-head span,.dashboard-command-items span{display:block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.055em;opacity:.7}.dashboard-command-head strong{font-size:11px;font-weight:500;text-align:right}.dashboard-command-items{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.dashboard-command-items>div{padding:8px 9px;border-radius:7px;background:rgba(255,255,255,.07)}.dashboard-command-items strong{display:block;margin-top:3px;font:700 18px var(--font-display)}
@media(max-width:760px){.dashboard-command{min-width:0;width:100%}.dashboard-summary-body{align-items:flex-start;flex-direction:column}.dashboard-command-head{align-items:flex-start;flex-direction:column;gap:4px}.dashboard-command-head strong{text-align:left}}

/* Public careers: a focused, client-shareable application experience. */
.careers-page{min-height:100vh;background:linear-gradient(180deg,#f1f7f6 0,#f7f8fa 360px);color:var(--text-dark)}
.careers-shell{max-width:1120px;margin:0 auto;padding:26px 32px 72px}
.careers-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 22px;border-bottom:1px solid rgba(15,61,62,.12)}
.careers-brand{display:flex;align-items:center;gap:10px;padding:0;border:0;background:transparent;text-align:left;cursor:pointer;font-family:var(--font-ui)}.careers-brand>span:last-child{display:grid;gap:1px}.careers-brand strong{font:700 17px var(--font-display);color:var(--navy)}.careers-brand small{color:var(--text-light);font-size:10px}.careers-header-note{color:var(--text-light);font-size:11px}
.careers-intro{max-width:760px;padding:62px 0 42px}.careers-intro>span,.careers-list-head span,.career-apply-heading span{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--maroon)}
.careers-intro h1{max-width:680px;margin:10px 0;font:700 48px/1.06 var(--font-display);letter-spacing:-.02em;color:var(--navy)}
.careers-intro p{margin:0;font-size:17px;line-height:1.6;color:var(--text-mid)}
.careers-list-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:16px}.careers-list-head h2{margin:6px 0 0;color:var(--navy);font:700 25px var(--font-display)}.careers-list-head p{max-width:290px;margin:0;color:var(--text-mid);font-size:12px;line-height:1.5;text-align:right}
.careers-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.career-card,.career-detail-public{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 28px rgba(15,61,62,.04)}
.career-card{min-height:214px;padding:25px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .18s ease,box-shadow .18s ease}.career-card:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(15,61,62,.08)}.career-pill{display:inline-block;padding:5px 10px;border-radius:99px;background:#eaf3de;color:#3b6d11;font-size:10px;font-weight:700}
.career-card h2,.career-detail-public h1,.career-detail-public h2{font-family:var(--font-display);color:var(--navy)}
.career-card h2{font-size:25px;line-height:1.2;margin:15px 0 9px}.career-card-meta,.career-meta{color:var(--text-mid);line-height:1.55}.career-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.career-card-footer span{color:var(--text-light);font-size:10px}
.careers-back{margin:4px 0 14px;padding:0;border:0;background:transparent;color:var(--navy);font:600 12px var(--font-ui);cursor:pointer}.career-detail-public{overflow:hidden}.career-role-hero{padding:34px 38px 28px;background:linear-gradient(135deg,#f2f8f7,#fff)}.career-detail-public h1{font-size:39px;line-height:1.12;margin:14px 0 8px}.career-deadline{margin:13px 0 0;color:#8a5d13;font-size:11px;font-weight:700}.career-detail-body{padding:0 38px 38px}.career-detail-public section{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}
.career-detail-public section h2{font-size:22px;margin:7px 0 10px}.career-role-copy{max-width:800px}.career-detail-public section p{line-height:1.7;color:var(--text-mid)}
.career-apply-cta{margin-top:21px}.career-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:20px 0 5px}.career-facts>div{padding:13px 15px;border:1px solid #dce9e7;border-radius:10px;background:#f7fbfa}.career-facts span,.career-facts strong{display:block}.career-facts span{color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.08em}.career-facts strong{margin-top:6px;color:var(--navy);font-size:12px}.career-role-copy p{margin:0 0 11px}.career-role-copy p:last-child{margin-bottom:0}
.career-apply{max-width:760px}.career-apply-heading p{margin:0;font-size:12px}.career-apply form{display:grid;gap:16px;margin-top:18px}.career-apply label{display:grid;gap:7px;font-size:12px;font-weight:700;color:var(--text-mid)}
.career-apply label small{font-weight:400;color:var(--text-light)}.career-apply input,.career-apply textarea{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:0 1px 3px rgba(15,61,62,.03);font:inherit;color:var(--text)}
.career-apply input:focus{outline:none;border-color:#90b2b2;box-shadow:0 0 0 3px rgba(15,61,62,.08)}.career-apply .btn{justify-self:start}
.career-success{color:#397311;font-weight:600}.career-error{color:#a53c13;font-weight:600}
@media(max-width:640px){.careers-shell{padding:20px}.careers-header-note{display:none}.careers-intro{padding:42px 0 30px}.careers-intro h1{font-size:35px}.careers-list-head{align-items:flex-start;flex-direction:column}.careers-list-head p{text-align:left}.careers-role-grid{grid-template-columns:1fr}.career-card{min-height:0}.career-role-hero,.career-detail-body{padding-left:21px;padding-right:21px}.career-detail-public h1{font-size:31px}.career-facts{grid-template-columns:1fr}}

.contract-actions{display:flex;justify-content:flex-end;gap:6px;white-space:nowrap}.contract-actions .btn{padding-left:9px;padding-right:9px}
@media(max-width:900px){.contract-actions{flex-wrap:wrap}.contract-actions .btn{flex:1}}

/* A job's candidate register is a single full-width table, not a pipeline grid. */
.job-applications #job-candidates{display:block;width:100%;grid-template-columns:none}
.job-applications #job-candidates .job-candidate-table{width:100%;min-width:0}

/* Recruitment pipeline: readable hiring stages rather than a raw form list. */
.pipeline-summary{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:4px 0 16px;padding:18px 20px;background:#fff;border:1px solid var(--border);border-radius:12px}
.pipeline-summary span{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-light)}.pipeline-summary strong{display:block;margin-top:4px;font:700 20px var(--font-display);color:var(--navy)}.pipeline-summary p{margin:0;max-width:370px;font-size:12px;line-height:1.5;color:var(--text-mid)}
.recruitment-pipeline-board{display:grid;grid-template-columns:repeat(6,minmax(210px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:10px}
.pipeline-stage{min-height:250px;background:#edf3f2;border:1px solid #dce7e4;border-radius:12px;overflow:hidden}.pipeline-stage>header{padding:13px 14px 12px;border-bottom:1px solid #dce7e4;background:rgba(255,255,255,.42)}
.pipeline-stage h3{margin:0;color:var(--navy);font-size:13px;font-weight:700}.pipeline-stage header span{display:block;margin-top:3px;font-size:10px;color:var(--text-light)}.pipeline-stage-list{display:grid;gap:9px;padding:10px}
.pipeline-candidate{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:10px;background:#fff;border:1px solid rgba(15,61,62,.08);border-radius:9px;box-shadow:0 2px 7px rgba(15,61,62,.04)}
.candidate-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#dfeceb;color:var(--navy);font-size:9px;font-weight:700}.candidate-copy{min-width:0}.candidate-copy strong,.candidate-copy span,.candidate-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-copy strong{font-size:11px;color:var(--navy)}.candidate-copy span{margin-top:3px;font-size:10px;color:var(--text-mid)}.candidate-copy small{margin-top:4px;font-size:9px;color:var(--text-light)}
.candidate-move{grid-column:1/-1;width:100%;padding:7px 8px;border:1px solid var(--border);border-radius:6px;background:#fbfdfd;color:var(--navy);font:600 10px var(--font-ui);cursor:pointer}.candidate-move:focus{outline:none;border-color:#8fb3b1;box-shadow:0 0 0 3px rgba(15,61,62,.08)}.pipeline-empty{padding:20px 8px;text-align:center;font-size:10px;color:var(--text-light)}
.pipeline-hired{background:#edf7e9;border-color:#dbead3}.pipeline-hired>header{border-color:#dbead3}.pipeline-rejected{background:#f7f4f1;border-color:#e9dfd8}.pipeline-rejected>header{border-color:#e9dfd8}
@media(max-width:760px){.pipeline-summary{align-items:flex-start;flex-direction:column}.recruitment-pipeline-board{grid-template-columns:repeat(6,minmax(230px,1fr))}}

.payroll-edit-note{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:12px 14px;border:1px solid #d7e7e4;border-radius:9px;background:#f5faf8;color:var(--text-mid);font-size:12px}.payroll-edit-note strong{color:var(--navy)}.payroll-edit-note span{line-height:1.45}.payroll-remove-employee{color:#9d3c22!important;border-color:#efcfc4!important}@media(max-width:700px){.payroll-edit-note{align-items:flex-start;flex-direction:column;gap:4px}}

/* Refined recruitment board. */
.pipeline-summary{position:relative;overflow:hidden;align-items:center;padding:20px 22px;border-radius:14px;border-color:#dce7e5;background:linear-gradient(135deg,#fff 0%,#f6faf9 100%);box-shadow:0 8px 24px rgba(15,61,62,.035)}
.pipeline-summary:after{content:'';position:absolute;right:-40px;top:-55px;width:190px;height:190px;border-radius:50%;background:rgba(15,76,76,.045)}.pipeline-summary>div,.pipeline-summary p{position:relative;z-index:1}.pipeline-summary span{color:#5d7775;letter-spacing:.12em}.pipeline-summary strong{margin-top:6px;font-size:24px;letter-spacing:-.02em}.pipeline-summary p{max-width:400px;font-size:12px;color:#5c6d6d}
.recruitment-pipeline-board{gap:14px;padding:2px 0 14px;align-items:stretch}.pipeline-stage{min-height:0;background:#f8fbfb;border:1px solid #dce8e6;border-radius:14px;box-shadow:0 3px 12px rgba(15,61,62,.025)}.pipeline-stage>header{padding:14px 15px 12px;border-bottom:1px solid #e0ebea;background:transparent}.pipeline-stage>header>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.pipeline-stage h3{font-size:13px;letter-spacing:.01em}.pipeline-stage header span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin:0;padding:0 7px;border-radius:999px;background:#e7f0ef;color:#355c5a;font-size:10px;font-weight:700}
.pipeline-stage-list{gap:10px;padding:11px}.pipeline-candidate{grid-template-columns:30px minmax(0,1fr);gap:9px;padding:11px;border-color:#e7eeee;border-radius:10px;box-shadow:0 5px 14px rgba(15,61,62,.055);transition:transform .16s ease,box-shadow .16s ease}.pipeline-candidate:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(15,61,62,.09)}.candidate-avatar{width:30px;height:30px;background:#e6f1f0;color:#235553;font-size:9px}.candidate-copy strong{font-size:11.5px;letter-spacing:.005em}.candidate-copy span{margin-top:4px;font-size:10px}.candidate-copy small{margin-top:5px;color:#82908f;font-size:9px}.candidate-move{margin-top:1px;padding:8px 9px;border-color:#d7e5e2;border-radius:7px;background:#f9fcfc;font-size:10px;color:#285856}.candidate-move:hover{border-color:#a9c4c0;background:#f2f8f7}.pipeline-empty{padding:24px 7px 28px;color:#9aa8a7}
.pipeline-applied{border-top:3px solid #90aaa7}.pipeline-shortlisted{border-top:3px solid #4c8b86}.pipeline-interview{border-top:3px solid #417ca4}.pipeline-offer{border-top:3px solid #b58239}.pipeline-hired{border-top:3px solid #5e923d;background:#f6fbf3;border-color:#dcebd5}.pipeline-rejected{border-top:3px solid #b58875;background:#fbf8f6;border-color:#ece0da}.pipeline-hired header span{background:#e0f0d6;color:#4f7b34}.pipeline-rejected header span{background:#f2e6e0;color:#925b44}

/* One calm visual language for the pipeline. Stage state lives in the count,
   not in six competing backgrounds and accent colours. */
.pipeline-summary{margin:0 0 12px;padding:4px 2px;background:transparent;border:0;border-radius:0;box-shadow:none}.pipeline-summary:after{display:none}.pipeline-summary strong{font-size:23px}.pipeline-summary p{font-size:11.5px;color:var(--text-mid)}
.recruitment-pipeline-board{gap:0;padding:0;overflow-x:auto;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(15,61,62,.035)}
.pipeline-stage,.pipeline-applied,.pipeline-shortlisted,.pipeline-interview,.pipeline-offer,.pipeline-hired,.pipeline-rejected{min-height:0;border:0!important;border-top:0!important;border-radius:0!important;background:#f8faf9!important;box-shadow:none}.pipeline-stage:not(:last-child){border-right:1px solid #e2eae8!important}.pipeline-stage:first-child{border-radius:13px 0 0 13px!important}.pipeline-stage:last-child{border-radius:0 13px 13px 0!important}
.pipeline-stage>header{padding:15px 16px 13px;border-bottom:1px solid #e2eae8;background:rgba(255,255,255,.6)}.pipeline-stage h3{font-size:12px;letter-spacing:.015em}.pipeline-stage header span,.pipeline-hired header span,.pipeline-rejected header span{min-width:auto;height:auto;padding:4px 7px;background:#eaf1f0;color:#4d6f6c;font-size:9.5px;font-weight:600}.pipeline-stage-list{padding:10px;gap:10px}.pipeline-candidate{padding:11px 10px;border:1px solid #e6edeb;border-radius:9px;box-shadow:none}.pipeline-candidate:hover{transform:none;border-color:#cbdcda;box-shadow:0 4px 12px rgba(15,61,62,.05)}.candidate-avatar{background:#edf4f3;color:#376965}.candidate-move{background:#fff;border-color:#dde8e6}.pipeline-empty{padding-top:36px}

/* Finance dashboard: focused on payment work, not HR operations. */
.finance-dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 28px;margin-bottom:15px;border-radius:14px;background:linear-gradient(115deg,var(--navy),#1e6663);color:#fff}.finance-dashboard-hero span{display:block;font-size:9px;font-weight:700;letter-spacing:.1em;color:#d7ebea}.finance-dashboard-hero h1{margin:6px 0 3px;font:700 24px var(--font-display)}.finance-dashboard-hero p{margin:0;color:#d7ebea;font-size:12px}.finance-dashboard-hero .btn-primary{background:#fff;color:var(--navy)}.finance-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.finance-period{font-size:20px}.finance-dashboard-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px;padding:21px 23px;border:1px solid var(--border);border-radius:12px;background:#fff}.finance-dashboard-panel span{display:block;color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.08em}.finance-dashboard-panel h2{margin:6px 0 2px;color:var(--navy);font:700 26px var(--font-display)}.finance-dashboard-panel p{margin:0;color:var(--text-mid);font-size:12px}.finance-panel-actions{display:flex;gap:9px}@media(max-width:700px){.finance-dashboard-hero,.finance-dashboard-panel{align-items:flex-start;flex-direction:column}.finance-metrics{grid-template-columns:1fr}.finance-panel-actions{flex-wrap:wrap}}

/* Recruitment workspace: hierarchy first, decoration second. */
.recruitment-role-summary,.pipeline-overview{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:22px 24px;margin-bottom:14px;border:1px solid #dce8e5;border-radius:14px;background:#fff}.recruitment-role-summary>div>span,.pipeline-overview>div>span,.job-section-heading span{display:block;color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.1em}.recruitment-role-summary strong,.pipeline-overview h2{display:block;margin:5px 0 2px;color:var(--navy);font:700 28px var(--font-display)}.recruitment-role-summary small{color:var(--text-mid);font-size:11px}.recruitment-role-summary p,.pipeline-overview p{max-width:430px;margin:0;color:var(--text-mid);font-size:12px;line-height:1.5}.pipeline-overview{align-items:center;background:linear-gradient(100deg,#fff,#f4f9f8)}.pipeline-overview h2{font-size:25px}.pipeline-stats{display:grid;grid-template-columns:repeat(3,76px);gap:8px}.pipeline-stats>div{padding:9px 10px;border-radius:9px;background:#fff;border:1px solid #deebe8}.pipeline-stats span,.pipeline-stats strong{display:block}.pipeline-stats span{color:var(--text-light);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pipeline-stats strong{margin-top:4px;color:var(--navy);font:700 18px var(--font-display)}.pipeline-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 10px;padding:0 3px}.pipeline-toolbar strong,.pipeline-toolbar span{display:block}.pipeline-toolbar strong{color:var(--navy);font-size:12px}.pipeline-toolbar span{margin-top:3px;color:var(--text-light);font-size:10px}.pipeline-filter{display:flex;align-items:center;gap:7px;margin:0}.pipeline-filter span{color:var(--text-light);font-size:10px;font-weight:700;text-transform:uppercase}.pipeline-filter select{min-width:205px;padding:7px 9px;font-size:11px}.recruitment-pipeline-board{box-shadow:0 6px 20px rgba(15,61,62,.04)}.pipeline-stage{background:#fff!important}.pipeline-stage>header{padding:15px 15px 12px;background:#fbfcfc}.pipeline-stage>header>div{display:flex;align-items:center;justify-content:space-between}.pipeline-stage header small{display:block;margin-top:5px;color:var(--text-light);font-size:10px}.pipeline-stage header span{min-width:23px;text-align:center}.pipeline-candidate{padding:12px 11px;background:#fff}.candidate-copy small{margin-top:5px}.candidate-move{margin-top:3px}.job-workspace{max-width:1180px;margin:0 auto}.job-workspace-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:14px;padding:24px 2px 21px;border-bottom:1px solid var(--border)}.job-workspace-hero h2{margin:12px 0 6px;color:var(--navy);font:700 28px var(--font-display)}.job-workspace-hero p{margin:0;color:var(--text-mid);font-size:13px}.job-workspace-count{min-width:100px;padding:13px 16px;border-radius:10px;background:#f1f7f6;text-align:center}.job-workspace-count span,.job-workspace-count strong{display:block}.job-workspace-count span{font-size:9px;color:var(--text-light);font-weight:700;text-transform:uppercase}.job-workspace-count strong{margin-top:3px;color:var(--navy);font:700 25px var(--font-display)}.job-workspace-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;margin-top:16px}.job-workspace-grid>section,.job-applications{padding:17px;border:1px solid var(--border);border-radius:11px;background:#fff}.job-workspace-grid h3,.job-applications h3{margin:0;color:var(--navy);font:700 15px var(--font-display)}.job-workspace-grid p{margin:8px 0 0;color:var(--text-mid);font-size:12px;line-height:1.55}.job-applications{margin-top:15px}.job-section-heading{margin-bottom:13px}.job-section-heading h3{margin-top:4px}#job-candidates{grid-template-columns:repeat(3,minmax(0,1fr))}.job-stage{background:#f8fbfa;border:1px solid #e0ebe8}.job-stage header{display:flex;align-items:center;justify-content:space-between}.job-stage header span{font-size:10px;color:var(--text-light)}.job-stage p{margin:10px 0 0;color:var(--text-light);font-size:10px}.job-candidate-row{padding:10px 0!important}.job-candidate-row b{color:var(--navy)}
@media(max-width:850px){.recruitment-role-summary,.pipeline-overview{align-items:flex-start;flex-direction:column}.pipeline-stats{width:100%;grid-template-columns:repeat(3,1fr)}.pipeline-toolbar{align-items:flex-start;flex-direction:column}.pipeline-filter{width:100%}.pipeline-filter select{flex:1}.job-workspace-grid{grid-template-columns:1fr}}@media(max-width:560px){.pipeline-stats{grid-template-columns:1fr 1fr 1fr}.job-workspace-hero{align-items:flex-start;flex-direction:column}}

/* Employee self-service: calm, useful workspace details. */
.recruitment-overview{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 30px;margin-bottom:18px;border:1px solid #dce8e5;border-radius:15px;background:linear-gradient(110deg,#fff 0%,#f0f8f7 100%)}
.recruitment-overview-copy{max-width:610px}.recruitment-overview-copy>span,.recruitment-list-head h2+ p{color:var(--text-light);font-size:10px;font-weight:700;letter-spacing:.1em}.recruitment-overview h2{margin:7px 0 8px;color:var(--navy);font:700 26px/1.2 var(--font-display)}.recruitment-overview p{margin:0;color:var(--text-mid);font-size:13px;line-height:1.6}.recruitment-overview-metrics{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px;min-width:310px}.recruitment-overview-metrics div{padding:12px 14px;background:rgba(255,255,255,.78);border:1px solid #dfeae8;border-radius:10px}.recruitment-overview-metrics span,.recruitment-overview-metrics strong{display:block}.recruitment-overview-metrics span{color:var(--text-light);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.recruitment-overview-metrics strong{margin-top:5px;color:var(--navy);font:700 23px var(--font-display)}
.recruitment-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:4px 0 14px}.recruitment-list-head h2{margin:0;color:var(--navy);font:700 20px var(--font-display)}.recruitment-list-head p{margin:5px 0 0;color:var(--text-mid);font-size:12px}.recruitment-list-filter label{display:flex;flex-direction:column;gap:5px;color:var(--text-light);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.recruitment-list-filter select{min-width:200px;padding:8px 10px;font-size:12px}
.job-workspace-actions{display:flex;gap:8px;flex-wrap:wrap}.job-candidate-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.job-stage{padding:13px!important;border-radius:10px!important}.job-stage header{margin-bottom:7px}.job-candidate-row{width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:8px;padding:9px!important;border:1px solid #e0eae8!important;border-radius:8px;background:#fff;color:var(--text);text-align:left;cursor:pointer;font-family:var(--font-ui)}.job-candidate-row:hover{border-color:#bfd6d1!important;background:#f9fcfb}.job-candidate-row b,.job-candidate-row small{display:block}.job-candidate-row b{font-size:11px}.job-candidate-row small{margin-top:3px;color:var(--text-mid);font-size:10px}.job-candidate-row i{color:var(--navy);font-size:10px;font-style:normal;font-weight:700;white-space:nowrap}
.candidate-workspace,.recruitment-editor{max-width:1180px;margin:0 auto}.candidate-workspace-hero{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:16px;align-items:center;margin-top:14px;padding:24px 2px 22px;border-bottom:1px solid var(--border)}.candidate-avatar-lg{width:58px;height:58px;font-size:15px;border-radius:14px}.candidate-workspace-hero>div>span,.candidate-detail-grid span,.candidate-history>span,.candidate-summary-grid span,.recruitment-editor header span{display:block;color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.1em}.candidate-workspace-hero h2,.recruitment-editor h2{margin:5px 0;color:var(--navy);font:700 28px var(--font-display)}.candidate-workspace-hero p,.recruitment-editor header p{margin:0;color:var(--text-mid);font-size:13px}.candidate-workspace-status{display:grid;justify-items:end;gap:7px}.candidate-workspace-status>span:last-child{font-size:11px;color:var(--text-light);letter-spacing:0}.candidate-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:17px}.candidate-summary-grid section,.candidate-detail-grid section,.candidate-history,.recruitment-editor-card{padding:18px;border:1px solid var(--border);border-radius:12px;background:#fff}.candidate-summary-grid strong,.candidate-summary-grid small{display:block}.candidate-summary-grid strong{margin-top:7px;color:var(--navy);font-size:13px}.candidate-summary-grid small{margin-top:4px;color:var(--text-mid);font-size:11px}.candidate-summary-grid .btn{margin-top:8px}.candidate-detail-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin-top:12px}.candidate-detail-grid h3,.candidate-history h3{margin:6px 0 8px;color:var(--navy);font:700 17px var(--font-display)}.candidate-detail-grid p{margin:0 0 12px;color:var(--text-mid);font-size:12px;line-height:1.6}.candidate-history{margin-top:12px}.recruitment-editor header{margin:18px 0 16px}.recruitment-editor-card{max-width:920px}.recruitment-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
@media(max-width:850px){.recruitment-overview,.recruitment-list-head{align-items:flex-start;flex-direction:column}.recruitment-overview-metrics{width:100%;min-width:0}.job-candidate-list{grid-template-columns:1fr 1fr}.candidate-summary-grid{grid-template-columns:1fr}.candidate-detail-grid{grid-template-columns:1fr}}@media(max-width:560px){.recruitment-overview{padding:20px}.recruitment-overview-metrics{grid-template-columns:1fr 1fr 1fr}.job-candidate-list{grid-template-columns:1fr}.candidate-workspace-hero{grid-template-columns:48px minmax(0,1fr)}.candidate-avatar-lg{width:46px;height:46px}.candidate-workspace-status{grid-column:1/-1;justify-items:start}.recruitment-list-filter{width:100%}.recruitment-list-filter select{width:100%}}
.profile-chip-list small{display:block;margin-top:4px;color:var(--text-light);font-size:10px}.profile-eyebrow{display:block;margin-bottom:4px;color:var(--text-light)!important;font-size:9px!important;font-weight:700;letter-spacing:.08em}.profile-section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.profile-section-heading p{margin:3px 0 0;color:var(--text-light);font-size:12px}.profile-action-row{display:flex;gap:9px;justify-content:flex-end;margin-top:18px}.self-profile-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.self-profile-intro h2{margin:0;color:var(--navy);font:700 18px var(--font-display)}.self-profile-intro p{margin:5px 0 0;max-width:620px;color:var(--text-mid);font-size:12px;line-height:1.5}.self-profile-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:24px}.self-profile-card{appearance:none;width:100%;min-height:112px;padding:15px;text-align:left;border:1px solid #dce8e5;border-radius:10px;background:#f8fbfa;cursor:pointer;font-family:var(--font-ui);transition:background .16s,transform .16s,box-shadow .16s}.self-profile-card:hover{background:#fff;transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,61,62,.07)}.self-profile-card span,.self-profile-card strong,.self-profile-card small{display:block}.self-profile-card span{color:var(--text-light);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.self-profile-card strong{margin-top:9px;color:var(--navy);font:700 17px var(--font-display)}.self-profile-card small{margin-top:4px;color:var(--text-mid);font-size:11px}.self-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;max-width:820px}.self-edit-divider{grid-column:1/-1;margin:4px 0 12px;padding-top:18px;border-top:1px solid var(--border);color:var(--navy);font:700 15px var(--font-display)}.leave-type-help{margin:7px 0 2px;color:var(--text-light);font-size:11px;line-height:1.4}.personal-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.personal-dashboard-lower{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-top:16px}.personal-dashboard-panel{padding:17px;border:1px solid var(--border);border-radius:11px;background:#fff}.personal-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}.personal-panel-heading span{display:block;color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.07em}.personal-panel-heading h2{margin:4px 0 0;color:var(--navy);font:700 16px var(--font-display)}.personal-panel-heading a{color:var(--navy);font-size:11px;font-weight:600;text-decoration:none}.personal-summary-content{color:var(--text-mid);font-size:12px}.personal-summary-content p{margin:0 0 13px;line-height:1.5}.personal-balance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #edf1f0}.personal-balance-row:first-child{border-top:0;padding-top:0}.personal-balance-row strong{color:var(--navy);font-size:12px}.personal-balance-row span{color:var(--text-mid);font-size:11px}@media(max-width:760px){.self-profile-cards,.personal-metrics,.personal-dashboard-lower{grid-template-columns:1fr}.self-profile-intro,.profile-section-heading{flex-direction:column}.self-edit-grid{grid-template-columns:1fr}.profile-action-row{justify-content:flex-start}}

/* Full payroll-entry workspace. */

/* Shared form finish: all workspaces use the same full-width, soft controls.
   Compact checkboxes, radios and file pickers intentionally keep their native size. */
.form-group input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-group select,.form-group textarea,.form-row input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-row select,.form-row textarea,.setup-form-grid input:not([type=checkbox]):not([type=radio]):not([type=file]),.setup-form-grid select,.setup-form-grid textarea{width:100%;min-width:0;box-sizing:border-box;padding:10px 12px;border:1px solid #d8e5e3;border-radius:9px;background:#fff;box-shadow:0 1px 2px rgba(15,61,62,.025);color:var(--text-dark);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.form-group input:not([type=checkbox]):not([type=radio]):not([type=file]):hover,.form-group select:hover,.form-group textarea:hover,.form-row input:not([type=checkbox]):not([type=radio]):not([type=file]):hover,.form-row select:hover,.form-row textarea:hover{border-color:#bbd3d0}.form-group input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,.form-group select:focus,.form-group textarea:focus,.form-row input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,.form-row select:focus,.form-row textarea:focus{outline:0;border-color:#5d938e;background:#fff;box-shadow:0 0 0 3px rgba(59,125,118,.11)}.form-group textarea,.form-row textarea{min-height:96px;line-height:1.5}.recruitment-editor-card{max-width:1080px;padding:24px}.recruitment-editor-card .form-row{gap:18px}.recruitment-editor-card .form-group{min-width:0}
.hod-team-panel{display:flex;align-items:center;gap:22px;margin-bottom:16px;padding:16px 18px;border:1px solid #dce8e5;border-radius:11px;background:#fbfdfc}.hod-team-panel>div:first-child span{display:block;color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.08em}.hod-team-panel h2{margin:4px 0 0;color:var(--navy);font:700 17px var(--font-display)}.hod-team-metrics{display:flex;flex:1;gap:10px}.hod-team-metrics a{flex:1;padding-left:13px;border-left:1px solid #e2ece9;text-decoration:none}.hod-team-metrics strong,.hod-team-metrics small{display:block}.hod-team-metrics strong{color:var(--navy);font:700 18px var(--font-display)}.hod-team-metrics small{margin-top:2px;color:var(--text-mid);font-size:10px}.hod-team-actions{display:flex;gap:7px;white-space:nowrap}@media(max-width:760px){.hod-team-panel,.hod-team-metrics{align-items:stretch;flex-direction:column}.hod-team-metrics a{padding:7px 0 0;border-left:0;border-top:1px solid #e2ece9}.hod-team-actions{flex-wrap:wrap}}
.payroll-entry-topbar{padding:0 28px}.payroll-entry-topbar>a{position:absolute;left:22px}.payroll-entry-page{max-width:1180px;margin:0 auto;padding:28px 28px 52px}.payroll-entry-hero{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:18px;padding:28px 30px;border-radius:15px;background:linear-gradient(135deg,var(--navy-800),var(--navy-600));color:var(--navy-contrast)}.payroll-entry-hero .back-link{display:inline-block;margin-bottom:18px;color:#d9eeec;font-size:12px;text-decoration:none}.payroll-entry-hero>div>span{display:block;font-size:10px;font-weight:700;letter-spacing:.1em}.payroll-entry-hero h1{margin:5px 0;font:700 31px var(--font-display)}.payroll-entry-hero p{margin:0;color:#d4e5e3;font-size:13px}.payroll-entry-net{min-width:185px;padding:14px 16px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(0,0,0,.1)}.payroll-entry-net strong{display:block;margin:3px 0;font:700 25px var(--font-display)}.payroll-entry-net small{color:#d4e5e3;font-size:10px}.payroll-entry-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.payroll-entry-card{padding:22px;background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:0 6px 18px rgba(15,61,62,.035)}.payroll-entry-heading{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.payroll-entry-heading span{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-light)}.payroll-entry-heading h2{margin:4px 0 0;font:700 20px var(--font-display);color:var(--navy)}.payroll-entry-heading p{max-width:185px;margin:2px 0 0;color:var(--text-light);font-size:11px;line-height:1.45;text-align:right}.payroll-entry-fixed-list{margin-bottom:18px}.payroll-entry-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f0;font-size:12px}.payroll-entry-item:last-child{border-bottom:0}.payroll-entry-item strong,.payroll-entry-item small{display:block}.payroll-entry-item strong{color:var(--navy)}.payroll-entry-item small{margin-top:3px;color:var(--text-light);font-size:10px}.payroll-entry-item>div:last-child{display:flex;align-items:center;gap:10px}.payroll-entry-remove{padding:0;border:0;background:none;color:#a95134;font:600 10px var(--font-ui);cursor:pointer}.payroll-entry-subhead{margin:14px 0 5px;font-size:11px;font-weight:700;color:var(--navy)}.payroll-entry-empty{margin:8px 0 14px;color:var(--text-light);font-size:11px}.payroll-entry-add-row{display:grid;grid-template-columns:minmax(0,1fr) 110px auto auto;gap:8px;align-items:center;margin-top:10px}.payroll-entry-add-row input{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:7px;font:12px var(--font-ui)}.payroll-entry-add-row label{white-space:nowrap;font-size:10px;color:var(--text-mid)}.payroll-entry-shortcuts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.payroll-entry-shortcuts button{padding:5px 8px;border:0;border-radius:5px;background:#f0f6f5;color:var(--navy);font:600 10px var(--font-ui);cursor:pointer}.payroll-entry-payment>div{display:grid;gap:4px;padding:14px;border-radius:8px;background:#f7faf9}.payroll-entry-payment strong{color:var(--navy);font-size:13px}.payroll-entry-payment span{color:var(--text-mid);font-size:12px}.payroll-entry-actions{position:sticky;bottom:0;display:flex;gap:10px;margin-top:18px;padding:14px 0 2px;background:var(--grey-bg)}.payroll-entry-actions>span{flex:1}@media(max-width:760px){.payroll-entry-topbar>a{position:static}.payroll-entry-page{padding:16px}.payroll-entry-hero{align-items:flex-start;flex-direction:column;padding:23px}.payroll-entry-layout{grid-template-columns:1fr}.payroll-entry-heading{align-items:flex-start;flex-direction:column}.payroll-entry-heading p{text-align:left}.payroll-entry-add-row{grid-template-columns:1fr 100px}.payroll-entry-add-row label,.payroll-entry-add-row button{grid-column:auto}.payroll-entry-actions{flex-wrap:wrap}.payroll-entry-actions>span{display:none}.payroll-entry-actions .btn-primary{margin-left:auto}}

/* Contracts, leave and recruitment workspaces. */
.contract-board-head,.leave-coverage-intro,.leave-history-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:2px 0 16px}.contract-board-head span,.leave-coverage-intro span,.leave-history-head span,.leave-section-head span{display:block;color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.09em}.contract-board-head h2,.leave-coverage-intro h2,.leave-history-head h2{margin:5px 0;color:var(--navy);font:700 22px var(--font-display)}.contract-board-head p,.leave-coverage-intro p,.leave-history-head p{margin:0;color:var(--text-mid);font-size:12px;line-height:1.5}.contract-board-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.contract-board-metrics button{padding:14px 15px;border:1px solid var(--border);border-radius:10px;background:#fff;text-align:left;cursor:pointer;font-family:var(--font-ui)}.contract-board-metrics button:hover,.contract-board-metrics button.active{border-color:#9ebfba;background:#f4faf8}.contract-board-metrics strong,.contract-board-metrics span{display:block}.contract-board-metrics strong{color:var(--navy);font:700 22px var(--font-display)}.contract-board-metrics span{margin-top:4px;color:var(--text-mid);font-size:10px}.contract-board-table,.leave-workspace-card,.leave-history-table,.recruitment-job-table,.job-candidate-table{border:1px solid var(--border);border-radius:11px;background:#fff;overflow:hidden}.contract-board-table-head{display:flex;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--border);color:var(--navy);font-size:12px;font-weight:700}.contract-board-table-head small{color:var(--text-light);font-size:10px}.contract-board-table td strong,.contract-board-table td small,.leave-history-table td strong,.leave-history-table td small,.recruitment-job-table td strong,.recruitment-job-table td small,.job-candidate-table td strong,.job-candidate-table td small{display:block}.contract-board-table td small,.leave-history-table td small,.recruitment-job-table td small,.job-candidate-table td small{margin-top:4px;color:var(--text-light);font-size:10px}.contract-period{font-size:11px}.contract-timing{display:block;margin-top:4px;color:var(--text-light);font-size:10px}.contract-timing.due{color:#8a5d13}.contract-timing.expired{color:#a1442d}.contract-timing.ongoing{color:#427168}.contract-status{font-size:10px;font-weight:700}.contract-empty,.workspace-empty,.leave-empty-state{padding:42px 18px;color:var(--text-light);font-size:12px;text-align:center}.leave-workspace-tabs{display:flex;gap:18px;margin:0 0 14px;padding:0 3px;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5;background:var(--grey-bg)}.leave-workspace-tabs button{padding:10px 0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-mid);font:600 12px var(--font-ui);cursor:pointer}.leave-workspace-tabs button.active{border-color:var(--navy);color:var(--navy)}.leave-coverage-count{min-width:150px;padding:13px 16px;border:1px solid #d7e7e4;border-radius:10px;background:#f5faf8;text-align:center}.leave-coverage-count strong,.leave-coverage-count span{display:block}.leave-coverage-count strong{color:var(--navy);font:700 24px var(--font-display)}.leave-coverage-count span{margin-top:3px;color:var(--text-mid);font-size:10px;letter-spacing:0}.leave-coverage-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.leave-workspace-card{padding:16px;margin-bottom:13px}.leave-section-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:12px}.leave-section-head h3{margin:4px 0;color:var(--navy);font:700 16px var(--font-display)}.leave-section-head>strong{color:var(--navy);font:700 21px var(--font-display)}.leave-people-list>div{padding:10px 0;border-top:1px solid #edf1f0}.leave-people-list>div:first-child{padding-top:0;border-top:0}.leave-people-list strong,.leave-people-list span,.leave-people-list small{display:block}.leave-people-list strong{color:var(--navy);font-size:12px}.leave-people-list span{margin-top:3px;color:var(--text-mid);font-size:10px}.leave-people-list small{margin-top:4px;color:var(--text-light);font-size:10px}.leave-empty-copy{margin:0;padding:14px 0;color:var(--text-light);font-size:11px}.leave-status-badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:9px;font-weight:700}.leave-explainer{max-width:280px;color:var(--text-light);font-size:10px;line-height:1.4;text-align:right}.leave-burden-list{display:grid;gap:10px}.leave-burden-row{display:grid;grid-template-columns:190px minmax(120px,1fr) 70px;align-items:center;gap:12px}.leave-burden-row strong{font-size:11px;color:var(--navy)}.leave-burden-row>div{height:8px;border-radius:99px;background:#edf3f2;overflow:hidden}.leave-burden-row i{display:block;height:100%;border-radius:99px;background:#356e6a}.leave-burden-row span{color:var(--text-mid);font-size:10px;text-align:right}.leave-history-head>strong{padding:9px 12px;border-radius:8px;background:#f2f7f6;color:var(--navy);font:700 13px var(--font-display)}
.recruitment-page-actions,.recruitment-workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.recruitment-page-actions .employee-profile-tabs{margin:0}.recruitment-summary-actions{display:flex;gap:10px}.recruitment-stat{min-width:116px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;text-align:left;cursor:pointer;font-family:var(--font-ui)}.recruitment-stat:hover,.recruitment-stat.active{border-color:#a7c7c2;background:#f5faf8}.recruitment-stat span,.recruitment-stat strong{display:block}.recruitment-stat span{color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.recruitment-stat strong{margin-top:6px;color:var(--navy);font:700 22px var(--font-display)}.recruitment-filter{display:flex;align-items:center;gap:8px;color:var(--text-light);font-size:10px;font-weight:700;text-transform:uppercase}.recruitment-filter select,.candidate-directory-filters select{padding:8px 10px;font-size:11px}.recruitment-job-table,.job-candidate-table,#job-candidates{width:100%}.recruitment-job-table table,.job-candidate-table table{width:100%;margin:0;table-layout:fixed}.job-candidate-table th:nth-child(1){width:33%}.job-candidate-table th:nth-child(2){width:24%}.job-candidate-table th:nth-child(3){width:17%}.job-candidate-table th:nth-child(4){width:16%}.job-candidate-table th:last-child{width:10%}.recruitment-job-row,.candidate-table-row{cursor:pointer}.recruitment-job-row:hover,.candidate-table-row:hover{background:#f8fbfa}.candidate-stage{display:inline-block;padding:4px 8px;border-radius:999px;background:#edf3f2;color:#38635f;font-size:9px;font-weight:700}.candidate-stage-interview{background:#eaf2f8;color:#35688c}.candidate-stage-offer{background:#fbf2df;color:#8a5d13}.candidate-stage-hired{background:#eaf3de;color:#3b6d11}.candidate-stage-rejected{background:#f7ece8;color:#a1442d}.job-workspace{width:100%;max-width:none;margin:0}.job-workspace-hero{margin-top:16px}.job-detail-copy{margin-top:16px;padding:18px;border:1px solid var(--border);border-radius:11px;background:#fff}.job-detail-copy h3{margin:0 0 8px;color:var(--navy);font:700 16px var(--font-display)}.job-detail-copy p{margin:0;color:var(--text-mid);font-size:12px;line-height:1.65;white-space:pre-wrap}.job-applications{width:100%;margin-top:22px}.job-section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.job-section-heading h3{margin:0;color:var(--navy);font:700 18px var(--font-display)}.job-section-heading>span{color:var(--text-light);font-size:10px}.candidate-stage-label{display:grid;gap:7px;color:var(--text-mid);font-size:11px;font-weight:600}.candidate-detail-grid .btn{margin-top:10px}.interview-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:9px;margin:0 0 14px;padding:12px;border-radius:9px;background:#f6faf9}.interview-form label{display:grid;gap:5px;color:var(--text-mid);font-size:10px;font-weight:700}.interview-form input{padding:8px 9px;font-size:11px}.recruitment-directory-count strong,.recruitment-directory-count span{display:block}.recruitment-directory-count strong{color:var(--navy);font:700 22px var(--font-display)}.recruitment-directory-count span{margin-top:3px;color:var(--text-light);font-size:10px}.candidate-directory-filters{display:flex;gap:8px}@media(max-width:760px){.contract-board-head,.leave-coverage-intro,.leave-history-head,.recruitment-page-actions,.recruitment-workspace-toolbar{align-items:flex-start;flex-direction:column}.contract-board-metrics{grid-template-columns:1fr 1fr}.leave-coverage-grid{grid-template-columns:1fr}.leave-burden-row{grid-template-columns:1fr;gap:5px}.leave-burden-row span{text-align:left}.leave-explainer{text-align:left}.recruitment-summary-actions{width:100%}.recruitment-stat{flex:1;min-width:0}.recruitment-filter,.candidate-directory-filters{width:100%;flex-wrap:wrap}.recruitment-filter select,.candidate-directory-filters select{flex:1;min-width:130px}.interview-form{grid-template-columns:1fr}.recruitment-page-actions .employee-profile-tabs{width:100%}}
.payroll-entry-addition-row{grid-template-columns:minmax(0,1fr) minmax(110px,.7fr) minmax(0,1fr);gap:10px;align-items:end}.payroll-entry-addition-row .payroll-addition-field{display:block;min-width:0;white-space:normal}.payroll-entry-addition-row .payroll-addition-field span{display:block;margin:0 0 5px;font-size:10px;font-weight:700;color:var(--text-mid)}.payroll-entry-addition-row select{width:100%;height:40px;padding:8px 30px 8px 10px;border:1px solid #d8e5e3;border-radius:8px;background:#fff;color:var(--text-dark);font:12px var(--font-ui)}.payroll-entry-addition-row .payroll-repeat-option{grid-column:1/3;display:flex;align-items:center;gap:7px;min-height:40px;white-space:normal;line-height:1.3}.payroll-entry-addition-row .payroll-repeat-option input{width:auto;margin:0;flex:0 0 auto}.payroll-entry-addition-row .btn{grid-column:3;height:40px;white-space:nowrap}@media(max-width:760px){.payroll-entry-addition-row{grid-template-columns:1fr}.payroll-entry-addition-row .payroll-repeat-option,.payroll-entry-addition-row .btn{grid-column:auto}}
.payroll-entry-addition-row{display:block!important;margin-top:12px}.payroll-entry-add-main{display:grid;grid-template-columns:minmax(0,1fr) 112px minmax(190px,.95fr);gap:10px}.payroll-entry-add-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.payroll-entry-add-actions .payroll-repeat-option{display:flex;align-items:center;gap:7px;color:var(--text-mid);font-size:11px}.payroll-entry-add-actions .payroll-repeat-option input{width:auto;margin:0}.payroll-entry-add-actions .btn{height:38px;padding:0 13px}@media(max-width:760px){.payroll-entry-add-main{grid-template-columns:1fr}.payroll-entry-add-actions{align-items:flex-start;flex-direction:column}.payroll-entry-add-actions .btn{width:100%}}
.payroll-entry-deduction-row{grid-template-columns:minmax(180px,1.35fr) minmax(110px,.65fr) minmax(155px,.8fr) auto;gap:10px;align-items:end}.payroll-entry-deduction-row .payroll-addition-field{display:block;min-width:0;white-space:normal}.payroll-entry-deduction-row .payroll-addition-field span{display:block;margin:0 0 5px;font-size:10px;font-weight:700;color:var(--text-mid)}.payroll-entry-deduction-row select{width:100%;height:38px;padding:8px 28px 8px 10px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text-dark);font:12px var(--font-ui)}.payroll-entry-deduction-row .btn{height:38px;white-space:nowrap}@media(max-width:760px){.payroll-entry-deduction-row{grid-template-columns:1fr}.payroll-entry-deduction-row .btn{grid-column:auto}}

/* End-of-cycle performance report: management-readable on screen and in print. */
.eoc-modal{width:1040px;max-width:94vw}.eoc-modal-body{max-height:76vh;padding:18px 20px}.eoc-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid var(--border)}.eoc-report-head span,.eoc-section-head span{display:block;color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.eoc-report-head h2{margin:5px 0;color:var(--navy);font:700 24px var(--font-display)}.eoc-report-head p{margin:0;color:var(--text-mid);font-size:12px}.eoc-report-head>div:last-child{text-align:right}.eoc-report-head>div:last-child strong{display:block;margin-top:5px;color:var(--navy);font-size:12px}.eoc-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:15px 0}.eoc-metric{padding:12px;border:1px solid #dce8e5;border-radius:9px;background:#fbfdfc}.eoc-metric span,.eoc-metric strong{display:block}.eoc-metric span{color:var(--text-light);font-size:9px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}.eoc-metric strong{margin-top:6px;color:var(--navy);font:700 22px var(--font-display)}.eoc-section{margin:14px 0;padding:15px;border:1px solid var(--border);border-radius:10px;background:#fff}.eoc-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:11px}.eoc-section-head h3{margin:0;color:var(--navy);font:700 16px var(--font-display)}.eoc-band-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.eoc-band>div{display:flex;justify-content:space-between;gap:12px;font-size:11px}.eoc-band strong{color:var(--navy)}.eoc-band span{color:var(--text-light)}.eoc-band i{display:block;height:8px;margin-top:6px;border-radius:99px;background:#edf3f2;overflow:hidden}.eoc-band b{display:block;height:100%;border-radius:99px;background:#26645f}.eoc-table-wrap{overflow:auto}.eoc-table{width:100%;border-collapse:collapse;font-size:11px}.eoc-table th{padding:8px;background:#f0f6f5;color:var(--text-mid);font-size:9px;letter-spacing:.05em;text-align:left;text-transform:uppercase}.eoc-table td{padding:8px;border-top:1px solid #e5edeb}.eoc-split{display:grid;grid-template-columns:1fr 1fr;gap:14px}.eoc-mini-table{width:100%;border-collapse:collapse;font-size:11px}.eoc-mini-table td{padding:8px 0;border-top:1px solid #e5edeb}.eoc-mini-table td:last-child{text-align:right}.eoc-mini-table strong,.eoc-mini-table small{display:block}.eoc-mini-table strong{color:var(--navy)}.eoc-mini-table small{margin-top:3px;color:var(--text-light);font-size:9px}.eoc-outstanding{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin:0;padding:0;list-style:none}.eoc-outstanding li{padding:7px 0;border-top:1px solid #e5edeb;font-size:11px}.eoc-outstanding strong,.eoc-outstanding span{display:block}.eoc-outstanding strong{color:var(--navy)}.eoc-outstanding span{margin-top:2px;color:var(--text-light);font-size:9px}.eoc-empty{margin:0;color:var(--text-light);font-size:11px;text-align:center}.eoc-report-footer{display:flex;justify-content:space-between;margin-top:14px;color:var(--text-light);font-size:9px}@media(max-width:760px){.eoc-metrics{grid-template-columns:repeat(2,1fr)}.eoc-band-grid,.eoc-split,.eoc-outstanding{grid-template-columns:1fr}.eoc-report-head{flex-direction:column}.eoc-report-head>div:last-child{text-align:left}}

/* Appraisal behavioural questions: clear, compact scoring beside KPI results. */
.appraisal-behaviour-panel{margin:0 0 16px;padding:14px;border:1px solid #dce8e5;border-radius:10px;background:#f8fbfa}.appraisal-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--navy);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.appraisal-section-heading span:last-child{color:var(--text-light);font-size:10px;font-weight:500;text-transform:none;letter-spacing:0}.appr-behaviour-row{display:grid;grid-template-columns:minmax(0,1fr) 112px 112px;gap:10px;align-items:end;padding:11px 0;border-top:1px solid #e4edeb}.appr-behaviour-question{padding-bottom:8px;color:var(--text-dark);font-size:12px;line-height:1.45}.appr-behaviour-rating label{display:block;margin-bottom:4px;color:var(--text-light);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.appr-behaviour-rating select{width:100%;padding:7px 8px;border:1px solid #d8e5e3;border-radius:7px;background:#fff;color:var(--text-dark);font:11px var(--font-ui)}@media(max-width:620px){.appraisal-section-heading{align-items:flex-start;flex-direction:column}.appr-behaviour-row{grid-template-columns:1fr 1fr}.appr-behaviour-question{grid-column:1/-1;padding-bottom:0}}
