/* ==========================================================================
   Vanlyra — Design System v2  ("clean, light, pill-shaped, blue")
   Tokens → shell → components → pages → dark mode → mobile.
   Every colour/size comes from the :root tokens, so Settings → Company
   (accent colour, sidebar colour, density, corners, dark mode) re-skins everything.
   ========================================================================== */
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:100 900; font-display:swap;
  src:url('../vendor/inter/inter-latin-wght-normal.woff2') format('woff2-variations'), url('../vendor/inter/inter-latin-wght-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root{
  --em-navy:#0f1b3d; --em-navy-dark:#0a1330; --em-navy-light:#1c2f66;
  --em-accent:#2a4df5; --em-accent-dark:#1d39d6; --em-accent-soft:#eef1ff;
  --em-bg:#f6f7fa; --em-surface:#ffffff; --em-border:#e7e9ef; --em-border-soft:#f1f3f7;
  --em-text:#161b2b; --em-text-muted:#667085; --em-text-faint:#98a2b3;
  --em-radius-sm:10px; --em-radius:16px; --em-radius-lg:22px; --em-pill:999px;
  --em-shadow-sm:0 1px 2px rgba(16,24,40,.04);
  --em-shadow:0 6px 20px rgba(16,24,40,.07);
  --em-shadow-lg:0 18px 48px rgba(16,24,40,.14);
  --em-transition:.14s cubic-bezier(.4,0,.2,1);
  --em-font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --bs-body-font-family:var(--em-font);
}

/* ---------- Dark mode ([data-theme="dark"] on <html>) ---------- */
[data-theme="dark"]{
  --em-bg:#0d1220; --em-surface:#151b2c; --em-border:#262e44; --em-border-soft:#1e2539;
  --em-text:#e8ecf5; --em-text-muted:#9aa6bd; --em-text-faint:#6b778f; --em-accent-soft:#1a2547;
  --em-shadow-sm:0 1px 2px rgba(0,0,0,.35); --em-shadow:0 6px 20px rgba(0,0,0,.4); --em-shadow-lg:0 18px 48px rgba(0,0,0,.55);
  color-scheme:dark;
}
[data-theme="dark"] .form-control,[data-theme="dark"] .form-select,[data-theme="dark"] .em-search input{background:#10162a; color:var(--em-text); border-color:var(--em-border);}
[data-theme="dark"] .form-control:focus,[data-theme="dark"] .form-select:focus{background:#10162a; color:var(--em-text);}
[data-theme="dark"] .form-control::placeholder{color:var(--em-text-faint);}
[data-theme="dark"] .btn-light{background:#1e2539; color:var(--em-text); border-color:var(--em-border);}
[data-theme="dark"] .btn-outline-secondary{color:var(--em-text); border-color:var(--em-border);}
[data-theme="dark"] .btn-outline-secondary:hover{background:var(--em-border-soft); color:var(--em-text);}
[data-theme="dark"] .list-group-item{background:var(--em-surface); color:var(--em-text); border-color:var(--em-border);}
[data-theme="dark"] table.em-table tbody tr:hover,[data-theme="dark"] .job-row-card:hover{background:#1a2135;}
[data-theme="dark"] .btn-close{filter:invert(1) grayscale(100%) brightness(200%);}
[data-theme="dark"] .accordion-button::after{filter:invert(1);}
[data-theme="dark"] .alert-light{background:var(--em-border-soft); color:var(--em-text); border-color:var(--em-border);}
[data-theme="dark"] .text-bg-light{background:var(--em-border-soft) !important; color:var(--em-text) !important;}
[data-theme="dark"] .form-control-color{background:#10162a; border-color:var(--em-border);}
[data-theme="dark"] .bg-light{background:var(--em-border-soft) !important;}
[data-theme="dark"] .text-muted{color:var(--em-text-muted) !important;}

/* ---------- Accent themes (Settings → Company) ---------- */
[data-accent="emerald"]{ --em-accent:#059669; --em-accent-dark:#047857; --em-accent-soft:#e6f7ef; }
[data-accent="purple"]{ --em-accent:#7c3aed; --em-accent-dark:#6d28d9; --em-accent-soft:#f1eafe; }
[data-accent="rose"]{ --em-accent:#e11d48; --em-accent-dark:#be123c; --em-accent-soft:#ffe9ee; }
[data-accent="amber"]{ --em-accent:#d97706; --em-accent-dark:#b45309; --em-accent-soft:#fff2e1; }
[data-accent="slate"]{ --em-accent:#475569; --em-accent-dark:#334155; --em-accent-soft:#eaeef3; }
[data-theme="dark"][data-accent="slate"]{ --em-accent:#94a3b8; --em-accent-dark:#cbd5e1; --em-accent-soft:#222b3f; }

/* ---------- Density & corner options ---------- */
[data-density="compact"] .em-content{padding:18px 20px;}
[data-density="compact"] .em-card{padding:14px;}
[data-density="compact"] .form-section{padding:14px; margin-bottom:12px;}
[data-density="compact"] table.em-table td{padding:7px 12px;} [data-density="compact"] table.em-table th{padding:7px 12px;}
[data-density="compact"] .stat2{padding:12px; gap:10px;} [data-density="compact"] .stat2 .icon-circle{width:36px; height:36px; font-size:1rem;}
[data-density="compact"] .stat2 .num{font-size:1.15rem;} [data-density="compact"] body{font-size:.87rem;}
[data-density="compact"] .em-topbar{height:56px;} [data-density="compact"] .em-nav a{padding:7px 12px;}
[data-corners="sharp"]{ --em-radius:6px; --em-radius-sm:4px; --em-radius-lg:8px; --em-pill:6px; }
[data-corners="sharp"] .form-control,[data-corners="sharp"] .form-select,[data-corners="sharp"] .btn,[data-corners="sharp"] .badge,
[data-corners="sharp"] .em-nav a,[data-corners="sharp"] .em-search input,[data-corners="sharp"] .dropdown-menu,[data-corners="sharp"] .modal-content{border-radius:6px !important;}
[data-corners="sharp"] .icon-circle{border-radius:8px !important;}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{background:var(--em-bg); color:var(--em-text); font-family:var(--em-font); font-size:.9375rem; line-height:1.55; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; font-feature-settings:'cv11','ss01';}
h1,h2,h3,h4,h5,h6{color:var(--em-text); font-weight:600; letter-spacing:-.015em; line-height:1.25;}
h4{font-size:1.55rem; font-weight:600;} h5{font-size:1.15rem;} h6{font-size:.95rem;}
a{color:var(--em-accent); text-decoration:none;} a:hover{color:var(--em-accent-dark);}
:focus-visible{outline:2px solid var(--em-accent); outline-offset:2px;}
::selection{background:var(--em-accent-soft); color:var(--em-accent-dark);}
.text-muted{color:var(--em-text-muted) !important;}
.small,small{font-size:.84rem;}
hr{border-color:var(--em-border); opacity:1;}

/* ---------- Shell ---------- */
.em-shell{display:flex; min-height:100vh;}
.em-sidebar{
  width:268px; flex-shrink:0; position:sticky; top:0; height:100vh; overflow-y:auto; scrollbar-width:thin;
  background:var(--em-sb-top,var(--em-surface)); color:var(--em-sb-text,var(--em-text));
  border-right:1px solid var(--em-sb-line,var(--em-border)); display:flex; flex-direction:column;
}
.em-sidebar::-webkit-scrollbar{width:6px;} .em-sidebar::-webkit-scrollbar-thumb{background:var(--em-border); border-radius:6px;}
.em-sidebar-brand{padding:22px 24px 14px; font-weight:700; font-size:1.25rem; letter-spacing:-.02em; color:var(--em-sb-brand,var(--em-text)); display:flex; align-items:center; gap:10px; min-height:72px;}
.em-sidebar-brand i{font-size:1.5rem; color:var(--em-accent);}
.em-sidebar-brand span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.em-nav{padding:6px 14px 18px; flex:1;}
.em-nav a{
  display:flex; align-items:center; gap:13px; padding:10px 14px; margin:2px 0; border-radius:12px;
  color:var(--em-sb-link,var(--em-text)); font-size:.93rem; font-weight:500; text-decoration:none;
  transition:background var(--em-transition), color var(--em-transition);
}
.em-nav a i{width:22px; text-align:center; font-size:1.2rem; color:var(--em-sb-group,var(--em-text-muted)); transition:color var(--em-transition);}
.em-nav a:hover{background:var(--em-sb-hover,var(--em-border-soft)); color:var(--em-sb-link-hover,var(--em-text));}
.em-nav a.active{background:var(--em-accent-soft); color:var(--em-accent); font-weight:600;}
.em-nav a.active i{color:var(--em-accent);}
.em-nav-group{padding:18px 14px 6px; font-size:.68rem; text-transform:uppercase; letter-spacing:.09em; color:var(--em-sb-group,var(--em-text-faint)); font-weight:600;}
.em-sidebar-footer{padding:14px 20px 18px; border-top:1px solid var(--em-sb-line,var(--em-border)); font-size:.72rem; color:var(--em-sb-group,var(--em-text-faint)); text-align:center; line-height:1.6;}
.em-sidebar-footer .heart{color:#ef4468;} .em-sidebar-footer strong{color:var(--em-sb-link,var(--em-text-muted)); font-weight:600;}

.em-main{flex:1; min-width:0; display:flex; flex-direction:column;}
.em-topbar{
  display:flex; align-items:center; gap:14px; height:68px; padding:0 28px; background:color-mix(in srgb,var(--em-surface) 92%,transparent);
  backdrop-filter:saturate(1.4) blur(10px); -webkit-backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--em-border); position:sticky; top:0; z-index:100;
}
.em-burger{display:none; background:none; border:none; font-size:1.5rem; color:var(--em-text); cursor:pointer; padding:4px 8px; border-radius:10px;}
.em-burger:hover{background:var(--em-border-soft);}
.em-bottomnav{display:none;}
.em-search{flex:1; max-width:460px; position:relative;}
.em-search i{position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--em-text-faint); font-size:.95rem; pointer-events:none;}
.em-search input{width:100%; height:42px; padding:0 16px 0 42px; border-radius:var(--em-pill); border:1px solid var(--em-border); background:var(--em-bg); font-size:.9rem; color:var(--em-text); transition:border-color var(--em-transition), box-shadow var(--em-transition), background var(--em-transition);}
.em-search input::placeholder{color:var(--em-text-faint);}
.em-search input:focus{outline:none; border-color:var(--em-accent); box-shadow:0 0 0 4px var(--em-accent-soft); background:var(--em-surface);}
.em-topbar-actions{margin-left:auto; display:flex; gap:10px; align-items:center;}
.em-icon-btn{width:42px; height:42px; border-radius:50%; border:0; background:transparent; color:var(--em-text); display:inline-flex; align-items:center; justify-content:center; font-size:1.2rem; transition:background var(--em-transition);}
.em-icon-btn:hover{background:var(--em-border-soft);}
.em-user{display:flex; align-items:center; gap:11px; padding:4px 10px 4px 4px; border-radius:var(--em-pill); border:0; background:transparent; text-align:left; transition:background var(--em-transition);}
.em-user:hover,.em-user.show{background:var(--em-border-soft);}
.em-avatar{width:40px; height:40px; border-radius:50%; background:var(--em-accent-soft); color:var(--em-accent); font-weight:700; font-size:.88rem; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.em-user .nm{font-weight:600; font-size:.88rem; line-height:1.2; color:var(--em-text);} .em-user .rl{font-size:.74rem; color:var(--em-text-muted); line-height:1.2; max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.em-content{padding:28px 32px 40px; flex:1; max-width:1480px; width:100%; margin:0 auto;}
.em-fade{animation:emFadeIn .2s ease;}
@keyframes emFadeIn{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;}}

/* ---------- Cards & stats ---------- */
.em-card{background:var(--em-surface); border:1px solid var(--em-border); border-radius:var(--em-radius); padding:22px; box-shadow:none;}
.em-card h6{font-weight:600;}
.em-stat{background:var(--em-surface); border:1px solid var(--em-border); border-radius:var(--em-radius); padding:18px 20px;}
.em-stat .num{font-size:1.65rem; font-weight:700; color:var(--em-text); letter-spacing:-.02em;}
.em-stat .label{font-size:.8rem; color:var(--em-text-muted);}

/* ---------- Tables ---------- */
.table-responsive{border-radius:var(--em-radius-sm);}
table.em-table{width:100%; background:transparent; font-size:.9rem; margin-bottom:0;}
table.em-table th{background:transparent; font-size:.72rem; text-transform:uppercase; color:var(--em-text-muted); letter-spacing:.06em; font-weight:600; border-bottom:1px solid var(--em-border); padding:11px 14px; white-space:nowrap;}
table.em-table td{padding:14px 14px; border-bottom:1px solid var(--em-border-soft); vertical-align:middle; background:transparent; color:var(--em-text);}
table.em-table tbody tr{transition:background var(--em-transition);}
table.em-table tbody tr:hover{background:var(--em-bg);}
table.em-table tbody tr:last-child td{border-bottom:none;}
.table > :not(caption) > * > *{background-color:transparent; color:inherit;}

/* ---------- Buttons ---------- */
.btn{--bs-btn-border-radius:var(--em-pill); border-radius:var(--em-pill); font-weight:600; font-size:.9rem; padding:.55rem 1.15rem; line-height:1.3; transition:background var(--em-transition), border-color var(--em-transition), color var(--em-transition), box-shadow var(--em-transition), transform var(--em-transition);}
.btn:active{transform:scale(.98);}
.btn-sm{font-size:.82rem; padding:.34rem .85rem;} .btn-lg{font-size:1rem; padding:.7rem 1.5rem;}
.btn-primary{background:var(--em-accent); border-color:var(--em-accent); color:#fff;}
.btn-primary:hover,.btn-primary:focus,.btn-primary:active{background:var(--em-accent-dark) !important; border-color:var(--em-accent-dark) !important; color:#fff !important; box-shadow:0 6px 16px color-mix(in srgb,var(--em-accent) 30%,transparent);}
.btn-outline-primary{color:var(--em-accent); border-color:var(--em-accent);} .btn-outline-primary:hover{background:var(--em-accent); border-color:var(--em-accent); color:#fff;}
.btn-outline-secondary{color:var(--em-text); border-color:var(--em-border); background:var(--em-surface);}
.btn-outline-secondary:hover,.btn-outline-secondary:focus{background:var(--em-border-soft); border-color:var(--em-border); color:var(--em-text);}
.btn-light{background:var(--em-surface); border:1px solid var(--em-border); color:var(--em-text);} .btn-light:hover{background:var(--em-border-soft); border-color:var(--em-border);}
.btn-success{background:#16a34a; border-color:#16a34a;} .btn-outline-success{--bs-btn-hover-color:#fff;}
.btn-link{font-weight:600;}
.btn-close{border-radius:50%;}

/* ---------- Forms ---------- */
.form-control,.form-select{height:auto; min-height:44px; border-radius:12px; border:1px solid var(--em-border); background-color:var(--em-surface); color:var(--em-text); font-size:.92rem; padding:.6rem .95rem; transition:border-color var(--em-transition), box-shadow var(--em-transition);}
textarea.form-control{min-height:88px;}
.form-control-sm,.form-select-sm{min-height:36px; border-radius:10px; font-size:.85rem; padding:.35rem .7rem;}
.form-control:focus,.form-select:focus{border-color:var(--em-accent); box-shadow:0 0 0 4px var(--em-accent-soft); outline:none;}
.form-control::placeholder{color:var(--em-text-faint);}
.form-label{font-weight:500; font-size:.84rem; color:var(--em-text-muted); margin-bottom:6px;}
.form-text{color:var(--em-text-faint); font-size:.78rem;}
.form-check-input{border-color:var(--em-text-faint);} .form-check-input:checked{background-color:var(--em-accent); border-color:var(--em-accent);}
.form-check-input:focus{box-shadow:0 0 0 4px var(--em-accent-soft); border-color:var(--em-accent);}
.input-group-text{border-radius:12px; border-color:var(--em-border); background:var(--em-bg); color:var(--em-text-muted);}
.form-section{border:1px solid var(--em-border); border-radius:var(--em-radius); padding:22px; margin-bottom:16px; background:var(--em-surface);}
.form-section h6{text-transform:uppercase; font-size:.72rem; letter-spacing:.08em; color:var(--em-text-muted); margin-bottom:16px; font-weight:600; display:flex; align-items:center; gap:8px;}
.form-section h6 i{color:var(--em-accent); font-size:1rem;}
.form-actions-bar{position:sticky; bottom:0; background:color-mix(in srgb,var(--em-bg) 92%,transparent); backdrop-filter:blur(8px); padding:14px 0; margin-top:6px; border-top:1px solid var(--em-border); display:flex; gap:10px; z-index:20;}

/* ---------- Badges / chips ---------- */
.badge{font-weight:600; font-size:.74rem; padding:.38em .78em; border-radius:var(--em-pill); letter-spacing:.01em;}
.badge.text-bg-primary{background:var(--em-accent-soft) !important; color:var(--em-accent) !important;}
.badge.text-bg-success{background:#e4f6ec !important; color:#15803d !important;}
.badge.text-bg-warning{background:#fff1dc !important; color:#c2570c !important;}
.badge.text-bg-danger{background:#fde8e8 !important; color:#c81e1e !important;}
.badge.text-bg-info{background:#e0f4fb !important; color:#0e7490 !important;}
.badge.text-bg-secondary{background:#eef0f4 !important; color:#475467 !important;}
.badge.text-bg-light{background:var(--em-bg) !important; color:var(--em-text-muted) !important; border:1px solid var(--em-border);}
.badge.text-bg-dark{background:#1f2937 !important; color:#fff !important;}
[data-theme="dark"] .badge.text-bg-success{background:#12301f !important; color:#6ee7a0 !important;}
[data-theme="dark"] .badge.text-bg-warning{background:#3a2a10 !important; color:#fbbf6a !important;}
[data-theme="dark"] .badge.text-bg-danger{background:#3b1818 !important; color:#fca5a5 !important;}
[data-theme="dark"] .badge.text-bg-info{background:#0f2e3a !important; color:#7dd3e8 !important;}
[data-theme="dark"] .badge.text-bg-secondary{background:#232b40 !important; color:#b6c0d4 !important;}

/* ---------- Tabs / pills ---------- */
.nav-tabs{border-bottom:1px solid var(--em-border); gap:6px;}
.nav-tabs .nav-link{border:0; border-bottom:3px solid transparent; border-radius:0; color:var(--em-text-muted); font-weight:500; padding:.8rem 1.1rem; margin-bottom:-1px; background:none;}
.nav-tabs .nav-link:hover{color:var(--em-text); border-bottom-color:var(--em-border);}
.nav-tabs .nav-link.active{color:var(--em-accent); border-bottom-color:var(--em-accent); background:none; font-weight:600;}
.nav-pills .nav-link{border-radius:var(--em-pill); color:var(--em-text-muted); font-weight:500;}
.nav-pills .nav-link.active{background:var(--em-accent-soft); color:var(--em-accent); font-weight:600;}
.pagination{--bs-pagination-border-radius:10px; gap:4px;}
.page-link{border-radius:10px !important; border-color:var(--em-border); color:var(--em-text); background:var(--em-surface);}
.page-item.active .page-link{background:var(--em-accent); border-color:var(--em-accent); color:#fff;}

/* ---------- Alerts, popups, dropdowns, modals ---------- */
.alert{border:0; border-radius:14px; padding:.9rem 1.1rem; font-size:.9rem;}
.alert-success{background:#e4f6ec; color:#116b36;} .alert-danger{background:#fde8e8; color:#a31919;}
.alert-warning{background:#fff4e0; color:#92510a;} .alert-info{background:var(--em-accent-soft); color:var(--em-accent-dark);}
.alert-light{background:var(--em-bg); color:var(--em-text); border:1px solid var(--em-border);}
[data-theme="dark"] .alert-success{background:#12301f; color:#86efac;} [data-theme="dark"] .alert-danger{background:#3b1818; color:#fca5a5;}
[data-theme="dark"] .alert-warning{background:#3a2a10; color:#fcd38a;} [data-theme="dark"] .alert-info{background:#14224a; color:#a8bcff;}
/* popups are ALWAYS opaque and follow the theme */
.modal-content,.dropdown-menu,.popover,.offcanvas,.toast{background-color:var(--em-surface,#fff); color:var(--em-text,#161b2b); border:1px solid var(--em-border,#e7e9ef);}
.modal-content{border-radius:var(--em-radius-lg); box-shadow:var(--em-shadow-lg);}
.modal-header,.modal-footer,.offcanvas-header{border-color:var(--em-border,#e7e9ef);}
.modal-backdrop{--bs-backdrop-bg:#0b1220; --bs-backdrop-opacity:.5;}
.dropdown-menu{border-radius:14px; padding:6px; box-shadow:var(--em-shadow-lg); min-width:12rem;}
.dropdown-item{border-radius:9px; color:var(--em-text,#161b2b); font-size:.9rem; padding:.5rem .8rem;}
.dropdown-item:hover,.dropdown-item:focus{background:var(--em-border-soft,#f1f3f7); color:var(--em-text,#161b2b);}
.dropdown-divider{border-top-color:var(--em-border,#e7e9ef);} .dropdown-header{color:var(--em-text-muted);}
.accordion{--bs-accordion-bg:var(--em-surface); --bs-accordion-color:var(--em-text); --bs-accordion-border-color:var(--em-border); --bs-accordion-btn-color:var(--em-text); --bs-accordion-btn-bg:var(--em-surface); --bs-accordion-active-bg:var(--em-accent-soft); --bs-accordion-active-color:var(--em-accent); --bs-accordion-border-radius:var(--em-radius); --bs-accordion-inner-border-radius:var(--em-radius); --bs-accordion-btn-focus-box-shadow:0 0 0 4px var(--em-accent-soft);}
.list-group{--bs-list-group-border-color:var(--em-border); --bs-list-group-border-radius:var(--em-radius-sm);}
.progress{border-radius:var(--em-pill); background:var(--em-border-soft);} .progress-bar{background:var(--em-accent);}

/* ---------- Dashboard ---------- */
.dash-header{background:linear-gradient(120deg,var(--em-dash-from,var(--em-accent)),var(--em-dash-to,color-mix(in srgb,var(--em-accent) 70%,#7c9bff))); border-radius:var(--em-radius-lg); padding:28px 30px; color:var(--em-dash-text,#fff); margin-bottom:24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
.dash-header h4{margin:0; font-weight:600; font-size:1.5rem; color:var(--em-dash-text,#fff);}
.dash-header .sub{color:var(--em-dash-sub,rgba(255,255,255,.8)); font-size:.9rem; margin-top:4px;}
.quick-actions{display:flex; gap:10px; flex-wrap:wrap;}
.quick-actions a{background:var(--em-dash-btn,rgba(255,255,255,.16)); color:var(--em-dash-text,#fff); border:1px solid var(--em-dash-btn-line,rgba(255,255,255,.25)); padding:9px 17px; border-radius:var(--em-pill); font-size:.86rem; font-weight:600; text-decoration:none; display:inline-flex; align-items:center; gap:7px; transition:background var(--em-transition), transform var(--em-transition);}
.quick-actions a:hover{background:var(--em-dash-btn-hover,rgba(255,255,255,.28)); color:var(--em-dash-text,#fff); transform:translateY(-1px);}
.section-label{font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:var(--em-text-faint); font-weight:600; margin:26px 0 12px;}
.section-label:first-child{margin-top:0;}
.stat2{background:var(--em-surface); border:1px solid var(--em-border); border-radius:var(--em-radius); padding:18px; display:flex; align-items:center; gap:14px; transition:border-color var(--em-transition), box-shadow var(--em-transition), transform var(--em-transition); height:100%;}
.stat2:hover{border-color:color-mix(in srgb,var(--em-accent) 35%,var(--em-border)); box-shadow:var(--em-shadow); transform:translateY(-2px);}
.stat2 .icon-circle{width:46px; height:46px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0;}
.stat2 .num{font-size:1.4rem; font-weight:700; color:var(--em-text); line-height:1.15; letter-spacing:-.02em;}
.stat2 .label{font-size:.78rem; color:var(--em-text-muted); margin-top:2px;}
.icon-blue{background:#eaefff; color:#2a4df5;} .icon-purple{background:#f1eafe; color:#7c3aed;} .icon-green{background:#e4f6ec; color:#16a34a;}
.icon-teal{background:#e0f5f4; color:#0d9488;} .icon-orange{background:#fff1dc; color:#ea7c1f;} .icon-gray{background:#eef0f4; color:#475467;} .icon-red{background:#fde8e8; color:#dc2626;}
[data-theme="dark"] .icon-blue{background:#1a2547; color:#8da2ff;} [data-theme="dark"] .icon-purple{background:#2a1f4a; color:#b79cff;} [data-theme="dark"] .icon-green{background:#12301f; color:#6ee7a0;}
[data-theme="dark"] .icon-teal{background:#0f2f2e; color:#5eead4;} [data-theme="dark"] .icon-orange{background:#3a2a10; color:#fbbf6a;} [data-theme="dark"] .icon-gray{background:#232b40; color:#b6c0d4;} [data-theme="dark"] .icon-red{background:#3b1818; color:#fca5a5;}
.job-row-card{border:1px solid var(--em-border); border-radius:var(--em-radius-sm); padding:13px 16px; margin-bottom:8px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; background:var(--em-surface); transition:background var(--em-transition), border-color var(--em-transition);}
.job-row-card:hover{background:var(--em-bg); border-color:color-mix(in srgb,var(--em-accent) 25%,var(--em-border));}
.mode-toggle{display:inline-flex; border:1px solid var(--em-border); border-radius:var(--em-pill); overflow:hidden; margin-bottom:14px; background:var(--em-surface); padding:3px; gap:2px;}
.mode-toggle input{position:fixed; opacity:0; pointer-events:none;}
.mode-toggle label{padding:7px 20px; cursor:pointer; font-size:.87rem; font-weight:600; color:var(--em-text-muted); transition:all var(--em-transition); margin:0; user-select:none; display:inline-block; border-radius:var(--em-pill);}
.mode-toggle input:checked + label{background:var(--em-accent); color:#fff;}
.mode-toggle label:hover{background:var(--em-bg);} .mode-toggle input:checked + label:hover{background:var(--em-accent-dark);}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--em-navy),var(--em-navy-dark)); padding:20px;}
.login-card{background:var(--em-surface); border-radius:var(--em-radius-lg); padding:38px; width:400px; max-width:100%; box-shadow:var(--em-shadow-lg);}

/* ---------- Fast-navigation progress bar ---------- */
body.pjax-loading::before{content:''; position:fixed; top:0; left:0; height:3px; width:100%; background:var(--em-accent); z-index:2000; animation:pjaxbar .7s ease-in-out infinite alternate;}
@keyframes pjaxbar{from{opacity:.4; transform:scaleX(.25); transform-origin:left;} to{opacity:1; transform:scaleX(1); transform-origin:left;}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}}

/* ---------- Mobile ---------- */
.em-backdrop{position:fixed; inset:0; background:rgba(10,18,30,.5); z-index:999; opacity:0; pointer-events:none; transition:opacity .22s ease;}
.em-backdrop.show{opacity:1; pointer-events:auto;}
@media (max-width: 900px){
  .em-sidebar{position:fixed; left:-290px; width:276px; z-index:1000; transition:left .22s ease; box-shadow:var(--em-shadow-lg);}
  .em-sidebar.open{left:0;}
  .em-burger{display:block;}
  .em-topbar{padding:0 14px; height:60px; gap:8px;} .em-search{max-width:none;} .em-user .nm,.em-user .rl{display:none;} .em-user{padding:3px;}
  .em-content{padding:18px 16px; padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));}
  .dash-header{padding:22px;}
  .em-bottomnav{display:flex; position:fixed; left:0; right:0; bottom:0; z-index:998; background:var(--em-surface); border-top:1px solid var(--em-border); padding-bottom:env(safe-area-inset-bottom,0px); box-shadow:0 -4px 16px rgba(16,24,40,.06);}
  .em-bottomnav a,.em-bottomnav-more{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:9px 2px 8px; color:var(--em-text-muted); text-decoration:none; font-size:.68rem; font-weight:600; background:none; border:none; min-height:56px;}
  .em-bottomnav a i,.em-bottomnav-more i{font-size:1.3rem; line-height:1;}
  .em-bottomnav a.active{color:var(--em-accent);}
  .em-nav a{padding:12px 14px; font-size:.95rem;}
  .btn{min-height:44px; display:inline-flex; align-items:center; justify-content:center;} .btn-sm{min-height:38px;}
  .form-control,.form-select{min-height:46px;}
  .form-check-input{width:1.3em; height:1.3em; margin-top:.1em;} .form-check-label{padding-left:4px;}
  .form-control,.form-select,.em-search input,input,select,textarea{font-size:16px;}
  table.em-table.em-stack thead{display:none;}
  table.em-table.em-stack,table.em-table.em-stack tbody,table.em-table.em-stack tr,table.em-table.em-stack td{display:block; width:100%;}
  table.em-table.em-stack tr{border:1px solid var(--em-border); border-radius:var(--em-radius); margin-bottom:10px; padding:6px 12px; background:var(--em-surface);}
  table.em-table.em-stack td{border:none; padding:8px 0; display:flex; justify-content:space-between; align-items:center; gap:12px; text-align:right;}
  table.em-table.em-stack td::before{content:attr(data-label); font-weight:600; font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; color:var(--em-text-muted); text-align:left; flex-shrink:0;}
  table.em-table.em-stack td:empty{display:none;}
  .form-actions-bar{flex-direction:column;} .form-actions-bar .btn{width:100%;}
}
@media (max-width: 576px){
  .em-content{padding:14px 12px; padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));}
  .form-section{padding:16px;} .em-card{padding:16px;}
  .dash-header{padding:20px; border-radius:var(--em-radius);} .dash-header h4{font-size:1.2rem;}
  .quick-actions{width:100%;} .quick-actions a{flex:1 1 calc(50% - 5px); justify-content:center;}
  h4{font-size:1.25rem;} .stat2{padding:14px;} .stat2 .num{font-size:1.2rem;}
  .mode-toggle{width:100%;} .mode-toggle label{flex:1; text-align:center;}
  .d-flex.justify-content-between.align-items-center{flex-wrap:wrap;}
}
@media print{ .em-sidebar,.em-topbar,.em-bottomnav,.no-print{display:none !important;} .em-content{padding:0 !important; max-width:none;} body{background:#fff;} }

/* table action cells never wrap onto two lines */
table.em-table td:last-child{white-space:nowrap;}
table.em-table td .btn-sm + .btn-sm,table.em-table td form + .btn,table.em-table td .btn + form{margin-left:4px;}
table.em-table td form{display:inline-block;}
