@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --ecf-navy-950: #061333;
  --ecf-navy-900: #0a1d49;
  --ecf-navy-800: #102a62;
  --ecf-blue-600: #1748e8;
  --ecf-blue-500: #2563eb;
  --ecf-green-600: #16833d;
  --ecf-green-500: #25a64f;
  --ecf-orange-500: #ff4b16;
  --ecf-ink: #101b35;
  --ecf-muted: #66728c;
  --ecf-line: #dce4f1;
  --ecf-surface: rgba(255, 255, 255, .94);
  --ecf-soft: #f3f6fb;
  --ecf-focus: rgba(37, 99, 235, .22);
  --ecf-shadow-sm: 0 4px 6px -1px rgba(10, 29, 73, .08), 0 2px 4px -1px rgba(10, 29, 73, .05);
  --ecf-shadow-md: 0 14px 32px -14px rgba(10, 29, 73, .22), 0 4px 12px -6px rgba(10, 29, 73, .08);
  --ecf-radius-sm: 10px;
  --ecf-radius: 16px;
  --ecf-radius-lg: 22px;
}

html { scroll-behavior: smooth; }

body {
  color: var(--ecf-ink);
  background:
    radial-gradient(circle at 8% 4%, rgba(37, 99, 235, .06), transparent 25rem),
    radial-gradient(circle at 94% 28%, rgba(37, 166, 79, .055), transparent 24rem),
    #f7f9fc;
  font-family: 'Plus Jakarta Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body, button, input, select, textarea { font-family: 'Plus Jakarta Sans', sans-serif; }

button, a, input, select, textarea, .job-card, .card {
  -webkit-tap-highlight-color: transparent;
}

button, a, input, select, textarea {
  transition: border-color .22s ease, background-color .22s ease, color .22s ease, box-shadow .22s ease, transform .22s ease;
}

button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--ecf-focus);
  outline-offset: 2px;
}

input, select, textarea {
  min-height: 48px;
  border: 1px solid var(--ecf-line) !important;
  border-radius: var(--ecf-radius-sm) !important;
  color: var(--ecf-ink);
  background: rgba(255, 255, 255, .96);
  box-shadow: inset 0 1px 2px rgba(10, 29, 73, .025);
}

textarea { min-height: 118px; }

input:hover, select:hover, textarea:hover { border-color: #b9c7dd !important; }
input:focus, select:focus, textarea:focus { border-color: var(--ecf-blue-500) !important; box-shadow: 0 0 0 4px var(--ecf-focus) !important; }

button, [role='button'], .btn, [class*='button'] {
  min-height: 44px;
  border-radius: var(--ecf-radius-sm);
  font-weight: 700;
}

button:not(:disabled):active, [role='button']:not([aria-disabled='true']):active { transform: translateY(1px) scale(.99); }

.job-card, .card, .panel, .dashboard-card, .summary-card, .filter-card,
#jobDetail, #applyForm, [class*='-card']:not(.premium-campaign-visual) {
  border-color: var(--ecf-line) !important;
  box-shadow: var(--ecf-shadow-sm);
}

.job-card, [class*='job-card'] {
  background: var(--ecf-surface);
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

@media (hover: hover) {
  .job-card:hover, [class*='job-card']:hover {
    border-color: rgba(37, 99, 235, .35) !important;
    box-shadow: var(--ecf-shadow-md);
    transform: translateY(-2px);
  }
}

.verified, .verified-badge, [class*='verified'], [class*='security-badge'] {
  border: 1px solid rgba(22, 131, 61, .18);
  color: #116b32;
  background: #eaf8ee;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .55);
}

.ecf-site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  border-bottom: 1px solid rgba(10, 29, 73, .1);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 7px 24px -18px rgba(10, 29, 73, .5);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
}

.ecf-menu-toggle {
  display: none;
  width: 48px;
  height: 48px;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ecf-line);
  border-radius: 13px;
  color: var(--ecf-navy-900);
  background: #fff;
  box-shadow: var(--ecf-shadow-sm);
  font-size: 0;
}

.ecf-menu-toggle::before {
  width: 21px;
  height: 14px;
  content: '';
  border-top: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat;
}

.ecf-mobile-overlay {
  position: fixed;
  z-index: 1090;
  inset: 0;
  visibility: hidden;
  background: rgba(6, 19, 51, .48);
  opacity: 0;
  backdrop-filter: blur(3px);
  transition: opacity .25s ease, visibility .25s ease;
}

.ecf-mobile-nav {
  position: fixed;
  z-index: 1100;
  right: 12px;
  bottom: max(10px, env(safe-area-inset-bottom));
  left: 12px;
  display: none;
  min-height: 64px;
  padding: 7px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 19px;
  background: rgba(6, 19, 51, .94);
  box-shadow: 0 18px 45px rgba(6, 19, 51, .28);
  backdrop-filter: blur(18px);
}

.ecf-mobile-nav button {
  min-width: 0;
  min-height: 50px;
  flex: 1;
  border: 0;
  color: rgba(255, 255, 255, .76);
  background: transparent;
  font-size: 10px;
  font-weight: 700;
}

.ecf-mobile-nav button::before {
  display: block;
  margin-bottom: 3px;
  color: #9fb7ff;
  content: attr(data-icon);
  font-size: 17px;
}

.ecf-mobile-nav button.active { color: #fff; background: rgba(37, 99, 235, .62); }

.ecf-company-mobile-nav, .ecf-company-tools-sheet { display: none; }

.ecf-trust-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 14px 18px;
  border-top: 1px solid rgba(255, 255, 255, .12);
  color: rgba(255, 255, 255, .84);
  background: var(--ecf-navy-950);
  font-size: 11px;
  font-weight: 700;
}

.ecf-trust-strip span::before { margin-right: 6px; color: #6ee79a; content: '\2713'; }

.dash-nav > img { display: none !important; }
.ecf-negative-logo { background: transparent !important; box-shadow: none !important; }
footer .ecf-negative-logo { width: min(180px, 100%); height: auto; object-fit: contain; }

.credibility-points {
  position: relative;
  isolation: isolate;
  border-top: 1px solid rgba(255, 255, 255, .1);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  background:
    radial-gradient(circle at 15% 50%, rgba(37, 99, 235, .34), transparent 28%),
    linear-gradient(110deg, var(--ecf-navy-950), var(--ecf-navy-800));
  box-shadow: inset 0 1px rgba(255, 255, 255, .06), 0 18px 42px -30px rgba(6, 19, 51, .8);
}

.credibility-points > div {
  position: relative;
  display: grid;
  min-width: 0;
  padding: 25px 18px;
  grid-template-columns: 38px 1fr;
  column-gap: 11px;
  align-items: center;
  text-align: left;
}

.credibility-points > div + div::before {
  position: absolute;
  top: 22%;
  bottom: 22%;
  left: 0;
  width: 1px;
  content: '';
  background: rgba(255, 255, 255, .12);
}

.credibility-points i {
  display: grid;
  width: 38px;
  height: 38px;
  grid-row: 1 / 3;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 12px;
  color: #c8f641;
  background: rgba(255, 255, 255, .08);
  box-shadow: inset 0 1px rgba(255, 255, 255, .08);
  font-style: normal;
  font-weight: 800;
}

.credibility-points b {
  color: #fff;
  font-size: 15px;
  line-height: 1.2;
}

.credibility-points span {
  color: rgba(255, 255, 255, .68);
  font-size: 11px;
}

.ecf-responsive-table { width: 100%; border-collapse: separate; border-spacing: 0; }
.ecf-responsive-table th { color: var(--ecf-muted); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.ecf-responsive-table th, .ecf-responsive-table td { padding: 14px 12px; border-bottom: 1px solid var(--ecf-line); }

@media (max-width: 760px) {
  body { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
  .ecf-site-header { min-height: 68px; }
  .ecf-menu-toggle { display: inline-flex; margin-left: auto; }
  .ecf-primary-nav {
    position: fixed !important;
    z-index: 1101;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex !important;
    width: min(86vw, 340px);
    padding: 88px 22px 24px !important;
    flex-direction: column;
    align-items: stretch !important;
    gap: 7px !important;
    background: #fff;
    box-shadow: -20px 0 50px rgba(6, 19, 51, .22);
    transform: translateX(105%);
    transition: transform .28s cubic-bezier(.2, .8, .2, 1);
  }
  .ecf-primary-nav button, .ecf-primary-nav a { min-height: 50px; padding: 13px 15px !important; border-radius: 12px; text-align: left; }
  body.ecf-menu-open .ecf-primary-nav { transform: translateX(0); }
  body.ecf-menu-open .ecf-mobile-overlay { visibility: visible; opacity: 1; }
  body.ecf-menu-open { overflow: hidden; }
  .ecf-mobile-nav { display: flex; }
  body.ecf-company-context .ecf-mobile-nav { display: none; }
  .ecf-company-mobile-nav {
    position: fixed;
    z-index: 1120;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    left: 8px;
    display: none;
    min-height: 68px;
    padding: 7px;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 19px;
    background: rgba(6, 19, 51, .96);
    box-shadow: 0 18px 45px rgba(6, 19, 51, .3);
    backdrop-filter: blur(18px);
  }
  body.ecf-company-context .ecf-company-mobile-nav { display: flex; }
  .ecf-company-mobile-nav button { min-width: 0; min-height: 52px; flex: 1; border: 0; border-radius: 12px; color: #b7c4e2; background: transparent; font-size: 9px; font-weight: 800; }
  .ecf-company-mobile-nav button::before { display: block; margin-bottom: 3px; color: #91adff; content: attr(data-icon); font-size: 17px; line-height: 1; }
  .ecf-company-mobile-nav button.active { color: #fff; background: rgba(37, 99, 235, .55); }
  .ecf-company-mobile-nav button.publish { margin: -19px 3px 0; min-height: 60px; color: #fff; background: linear-gradient(145deg, #ff5a1f, #ef3d0b); box-shadow: 0 10px 24px rgba(255, 75, 22, .3); }
  .ecf-company-mobile-nav button.publish::before { color: #fff; }
  .ecf-company-tools-sheet {
    position: fixed;
    z-index: 1130;
    right: 10px;
    bottom: calc(84px + env(safe-area-inset-bottom));
    left: 10px;
    display: block;
    overflow: hidden;
    border: 1px solid var(--ecf-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 28px 70px rgba(6, 19, 51, .3);
    opacity: 0;
    pointer-events: none;
    transform: translateY(18px) scale(.98);
    transition: opacity .22s ease, transform .22s ease;
  }
  body.ecf-company-tools-open .ecf-company-tools-sheet { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
  .ecf-company-tools-sheet header { display: flex; padding: 16px 17px; align-items: center; justify-content: space-between; color: #fff; background: linear-gradient(115deg, var(--ecf-navy-900), var(--ecf-blue-600)); }
  .ecf-company-tools-sheet header div { display: grid; gap: 2px; }
  .ecf-company-tools-sheet header small { color: #c9ef4e; font-size: 8px; font-weight: 900; letter-spacing: .12em; }
  .ecf-company-tools-sheet header strong { font-size: 16px; }
  .ecf-company-tools-sheet header button { width: 42px; min-height: 42px; border: 1px solid rgba(255,255,255,.18); color: #fff; background: rgba(255,255,255,.1); font-size: 23px; }
  .ecf-company-tools-sheet > div { display: grid; gap: 1px; background: var(--ecf-line); }
  .ecf-company-tools-sheet [data-company-tool] { display: flex; min-height: 66px; padding: 11px 15px; align-items: center; gap: 12px; border: 0; border-radius: 0; color: var(--ecf-ink); background: #fff; text-align: left; }
  .ecf-company-tools-sheet [data-company-tool] i { display: grid; width: 40px; height: 40px; flex: 0 0 auto; place-items: center; border-radius: 12px; color: var(--ecf-blue-600); background: #edf2ff; font-style: normal; }
  .ecf-company-tools-sheet [data-company-tool] span { display: grid; gap: 2px; }
  .ecf-company-tools-sheet [data-company-tool] b { font-size: 12px; }
  .ecf-company-tools-sheet [data-company-tool] small { color: var(--ecf-muted); font-size: 9px; }
  .dashboard.on[data-page='empresa'] .dash-main { width: 100%; min-width: 0; padding-right: 10px; padding-left: 10px; overflow: hidden; }
  .dashboard.on[data-page='empresa'] .dash-head { align-items: flex-start; gap: 14px; }
  .dashboard.on[data-page='empresa'] .dash-head > button { width: 100%; min-height: 50px; }
  .dashboard.on[data-page='empresa'] .company-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .dashboard.on[data-page='empresa'] .company-metrics .plan { grid-column: 1 / -1; }
  .dashboard.on[data-page='empresa'] .company-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .dashboard.on[data-page='empresa'] .dash-card, .dashboard.on[data-page='empresa'] .company-metrics article { min-width: 0; }
  #companyApplicationsMount { width: 100%; min-width: 0; overflow: hidden; }
  #companyApplicationsMount input, #companyApplicationsMount select, #companyApplicationsMount button { max-width: 100%; }
  #companyApplicationsMount h1, #companyApplicationsMount h2, #companyApplicationsMount h3 { overflow-wrap: anywhere; }
  .one-click-button, button[type='submit'], input[type='submit'] { min-height: 52px !important; }
  #applyForm .one-click-button { position: sticky; z-index: 20; bottom: calc(82px + env(safe-area-inset-bottom)); box-shadow: 0 10px 28px rgba(22, 131, 61, .2); }
  .job-card, [class*='job-card'] { border-radius: 15px !important; }
  main, [role='main'] { max-width: 100%; overflow-x: clip; }
  .ecf-responsive-table thead { display: none; }
  .ecf-responsive-table, .ecf-responsive-table tbody, .ecf-responsive-table tr, .ecf-responsive-table td { display: block; width: 100%; }
  .ecf-responsive-table tbody { display: grid; gap: 12px; }
  .ecf-responsive-table tr { overflow: hidden; border: 1px solid var(--ecf-line); border-radius: 15px; background: #fff; box-shadow: var(--ecf-shadow-sm); }
  .ecf-responsive-table td { display: grid; min-height: 44px; padding: 11px 14px; grid-template-columns: minmax(110px, 42%) 1fr; gap: 10px; border-bottom: 1px solid #edf1f7; text-align: right; overflow-wrap: anywhere; }
  .ecf-responsive-table td::before { color: var(--ecf-muted); content: attr(data-label); font-size: 10px; font-weight: 800; letter-spacing: .03em; text-align: left; text-transform: uppercase; }
  .ecf-responsive-table td:last-child { border-bottom: 0; }
  .ecf-trust-strip { gap: 8px 16px; padding: 15px 14px; flex-wrap: wrap; text-align: center; }
  .credibility-points { display: grid; padding: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .credibility-points > div { padding: 15px 11px; grid-template-columns: 32px 1fr; column-gap: 9px; border: 1px solid rgba(255, 255, 255, .1); border-radius: 13px; background: rgba(255, 255, 255, .055); }
  .credibility-points > div + div::before { display: none; }
  .credibility-points i { width: 32px; height: 32px; border-radius: 10px; }
  .credibility-points b { font-size: 12px; }
  .credibility-points span { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
