/* TrivenJobs — TriVen design language (redesign 2.0 tokens), candidate-facing. 10 Oct 2026 */
*{box-sizing:border-box}
:root{
  --ink:#211A3C; --ink-2:#4A4463; --mut:#8A8498; --line:#EDE9F4;
  --bg:#FAF9FC; --card:#ffffff;
  --lav:#7B52C7; --lav-deep:#5B3FA8; --lav-pale:#F3EFFA; --sky:#8C5CD0;
  --hero-a:#241452; --hero-b:#4B2E9E; --hero-c:#7B52C7;
  --ok:#1E9E6A; --ok-bg:#E7F6EF; --warn:#A96A00; --warn-bg:#FFF4E2;
  --bad:#C0362B; --bad-bg:#FBE9E7;
  --r:12px; --r-lg:16px;
  --shadow:0 1px 3px rgba(33,26,60,.05),0 4px 14px rgba(33,26,60,.05);
  --shadow-lg:0 10px 36px rgba(59,38,120,.14);
  --focus:0 0 0 3px rgba(123,82,199,.22);
}
html,body{margin:0;padding:0}
body{font-family:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--ink);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased;
  background:#FAF9FC;
  background-image:radial-gradient(900px 420px at 85% -120px,rgba(140,92,208,.08),transparent 70%),
                   radial-gradient(700px 380px at -10% 30%,rgba(123,82,199,.05),transparent 70%)}
a{color:var(--lav-deep);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1320px;margin:0 auto;padding:0 24px}
.muted{color:var(--mut)}
h1,h2,h3{line-height:1.22;margin:0 0 .4em}
h1{font-size:2rem;font-weight:700;letter-spacing:-.01em}
h2{font-size:1.4rem;font-weight:600;color:var(--ink)}
img{max-width:100%}
.ic{width:15px;height:15px;flex:none;vertical-align:-2px}
.ic-lg{width:18px;height:18px}

/* ---------- header ---------- */
.demo-ribbon{background:var(--warn-bg);color:var(--warn);text-align:center;font-size:.82rem;
  padding:6px 12px;border-bottom:1px solid #F3E0BC}
.site-header{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink)}
.logo:hover{text-decoration:none}
.logo-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;
  background:linear-gradient(135deg,var(--hero-b),var(--hero-c));color:#fff;font-weight:700}
.logo-text{font-size:1.1rem;letter-spacing:-.01em}
.logo-text b{color:var(--lav)}
.nav{display:flex;align-items:center;gap:22px}
.nav a{color:var(--ink-2);font-weight:500;font-size:.94rem}
.nav a:hover{color:var(--lav-deep);text-decoration:none}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:none;border-radius:10px;padding:11px 20px;font-weight:600;font-size:.94rem;
  cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;font-family:inherit}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn:focus-visible{outline:none;box-shadow:var(--focus)}
.btn-primary,.btn-accent{background:linear-gradient(135deg,var(--sky),var(--lav-deep));color:#fff}
.btn-primary:hover,.btn-accent:hover{box-shadow:0 8px 22px rgba(91,63,168,.35)}
.btn-ghost{background:var(--lav-pale);color:var(--lav-deep)}
.btn-ghost:hover{background:#EAE2F7}
.btn-line{background:#fff;color:var(--ink-2);border:1px solid var(--line)}
.btn-line:hover{border-color:var(--lav);color:var(--lav-deep)}
.btn-block{width:100%}
.btn-lg{padding:14px 26px;font-size:1rem}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;color:#fff;padding:66px 0 96px;
  background:linear-gradient(140deg,var(--hero-a) 0%,var(--hero-b) 52%,var(--hero-c) 100%)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(640px 320px at 78% 8%,rgba(255,255,255,.14),transparent 65%),
             radial-gradient(420px 260px at 12% 100%,rgba(140,92,208,.5),transparent 70%)}
.hero .wrap{position:relative}
.eyebrow{color:#CBB7F2;font-size:.86rem;font-weight:500;margin:0 0 10px;
  display:inline-flex;align-items:center;gap:8px}
.eyebrow .ic{color:#B497E8}
.hero h1{font-size:2.7rem;font-weight:700;color:#fff;margin-bottom:.25em;letter-spacing:-.02em;max-width:720px}
.hero .sub{font-size:1.08rem;color:#DCD2F2;max-width:600px;margin-bottom:30px}
.searchbar{background:#fff;border-radius:14px;box-shadow:0 18px 50px rgba(20,10,50,.35);
  padding:9px;display:flex;gap:6px;flex-wrap:wrap;align-items:stretch}
.searchbar .field{flex:1;min-width:190px;display:flex;align-items:center;gap:10px;
  padding:0 14px;border-radius:10px}
.searchbar .field:focus-within{background:var(--lav-pale)}
.searchbar .field+.field{border-left:1px solid var(--line)}
.searchbar input{border:none;outline:none;font-size:.98rem;padding:14px 0;width:100%;
  font-family:inherit;color:var(--ink);background:transparent}
.searchbar .icon{color:var(--lav);display:grid;place-items:center}
.hero-stats{margin-top:24px;display:flex;gap:28px;color:#C9BCEA;font-size:.92rem;flex-wrap:wrap}
.hero-stats b{color:#fff;font-size:1.05rem;margin-right:5px}
.hero-marks{margin-top:26px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#C9BCEA;font-size:.86rem}
.hero-marks img{width:30px;height:30px;border-radius:8px;background:#fff;padding:2px;object-fit:contain}
/* one orchestrated entrance, hero only */
.hero h1,.hero .sub,.hero .searchbar,.hero .hero-stats,.hero .eyebrow,.hero .hero-marks{
  animation:heroUp .6s cubic-bezier(.2,.7,.2,1) both}
.hero .sub{animation-delay:.07s}.hero .searchbar{animation-delay:.14s}
.hero .hero-stats{animation-delay:.22s}.hero .hero-marks{animation-delay:.3s}
@keyframes heroUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---------- sections ---------- */
.section{padding:52px 0}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.section-head h2{margin:0}
.section-head .sub{color:var(--mut);font-size:.92rem;margin:2px 0 0}
.head-rule{width:64px;height:3px;border-radius:3px;margin:8px 0 0;
  background:linear-gradient(90deg,var(--sky),var(--lav-deep))}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 15px;
  font-size:.88rem;color:var(--ink-2);font-weight:500;transition:.15s}
.chip:hover{border-color:var(--lav);color:var(--lav-deep);text-decoration:none;background:var(--lav-pale)}

/* ---------- job cards ---------- */
.job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.job-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:18px 20px;box-shadow:var(--shadow);transition:box-shadow .18s,border-color .18s,transform .18s;
  display:flex;flex-direction:column;gap:9px}
.job-card:hover{border-color:#D8CCF0;box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.job-card h3{font-size:1.05rem;font-weight:600;margin:0;line-height:1.35}
.job-card h3 a{color:var(--ink)}
.job-card h3 a::after{content:"";position:absolute;inset:0}  /* whole card clickable */
.job-card .company{display:flex;align-items:center;gap:7px;color:var(--ink-2);font-weight:500;font-size:.9rem;flex-wrap:wrap}
.verified{display:inline-flex;align-items:center;gap:4px;color:var(--lav-deep);font-size:.78rem;font-weight:600;
  background:var(--lav-pale);border-radius:999px;padding:2px 9px}
.verified .ic{width:12px;height:12px}
.job-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:1px;color:var(--ink-2);font-size:.84rem}
.job-meta .m{display:inline-flex;align-items:center;gap:6px}
.job-meta .m .ic{color:var(--mut)}
.job-meta .m.remote{color:var(--ok)}.job-meta .m.remote .ic{color:var(--ok)}
.salary-line{color:var(--ok);font-weight:600;font-size:.92rem;display:inline-flex;align-items:center;gap:6px}
.job-card .snippet{color:var(--mut);font-size:.88rem;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.job-card .card-foot{display:flex;align-items:center;justify-content:space-between;
  margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.posted{font-size:.8rem;color:var(--mut)}
.card-go{position:relative;z-index:1;font-weight:600;font-size:.88rem;color:var(--lav-deep);
  display:inline-flex;align-items:center;gap:6px}

/* external listing cards: same shape, quieter voice */
.job-card.external{box-shadow:none;background:#FCFBFE}
.job-card.external:hover{transform:none;box-shadow:var(--shadow)}
.src-line{display:inline-flex;align-items:center;gap:6px;color:var(--mut);font-size:.78rem}
.src-line .ic{width:12px;height:12px}
.source-note{display:flex;align-items:center;gap:8px;color:var(--mut);font-size:.8rem;margin-top:14px}
.source-note a{color:var(--mut);text-decoration:underline}

/* the quiet advantage strip above mixed results */
.partner-strip{display:flex;align-items:flex-start;gap:10px;background:var(--lav-pale);
  border:1px solid #E3D8F5;border-radius:var(--r);padding:11px 14px;font-size:.87rem;
  color:var(--ink-2);margin-bottom:16px}
.partner-strip .ic{color:var(--lav-deep);margin-top:2px}
.partner-strip b{color:var(--lav-deep)}

/* segmented source toggle */
.seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}
.seg a{padding:7px 15px;border-radius:999px;font-size:.86rem;font-weight:500;color:var(--ink-2)}
.seg a:hover{text-decoration:none;color:var(--lav-deep)}
.seg a.on{background:linear-gradient(135deg,var(--sky),var(--lav-deep));color:#fff}

/* ---------- jobs page layout ---------- */
.layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px;align-items:start;padding:34px 0}
.filters{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:18px;position:sticky;top:84px}
.filters h4{margin:0 0 12px;font-size:.98rem;font-weight:600;color:var(--ink)}
.filters .fgroup{margin-bottom:16px}
.filters label{display:block;font-size:.85rem;margin-bottom:6px;color:var(--ink-2);font-weight:500}
.filters input,.filters select{width:100%;padding:10px;border:1px solid var(--line);
  border-radius:9px;font-family:inherit;font-size:.9rem;background:#fff;color:var(--ink)}
.filters input:focus,.filters select:focus{outline:none;border-color:var(--lav);box-shadow:var(--focus)}
.results-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.results-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.results-list .job-card h3{font-size:1.06rem}
@media (max-width:1180px){.results-list{grid-template-columns:1fr}.results-list .job-card h3{font-size:1.1rem}}

/* ---------- pagination ---------- */
.pager{display:flex;gap:8px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.pager a,.pager span{padding:9px 14px;border:1px solid var(--line);border-radius:9px;
  background:#fff;color:var(--ink-2);font-weight:500;font-size:.9rem}
.pager .active{background:var(--lav-deep);color:#fff;border-color:var(--lav-deep)}
.pager a:hover{border-color:var(--lav);text-decoration:none;color:var(--lav-deep)}

/* ---------- job detail ---------- */
.detail{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;padding:30px 0;align-items:start;max-width:1200px;margin:0 auto}
.detail-main{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px}
.detail h1{font-size:1.75rem;color:var(--ink)}
.detail .company-line{font-size:1rem;color:var(--ink-2);font-weight:500;margin-bottom:14px;
  display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.jd{white-space:pre-wrap;color:var(--ink-2);margin-top:20px;font-size:.96rem;line-height:1.75}
.jd-html{margin-top:20px;color:var(--ink-2);font-size:.96rem;line-height:1.75}
.jd-html p{margin:0 0 .8em}.jd-html ul,.jd-html ol{padding-left:22px;margin:.3em 0 .9em}.jd-html li{margin:.2em 0}
.jd-html h1,.jd-html h2,.jd-html h3,.jd-html h4{font-size:1.02rem;margin:1.1em 0 .4em;color:var(--ink)}
.apply-box{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px;position:sticky;top:84px;box-shadow:var(--shadow)}
.apply-box h3{font-size:1rem;font-weight:600}
.apply-box .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.apply-box .kv:last-of-type{border-bottom:none}
.apply-box .kv span:first-child{color:var(--mut)}
.apply-box .kv span:last-child{text-align:right}
.breadcrumb{font-size:.84rem;color:var(--mut);padding:16px 0}
.breadcrumb a{color:var(--mut)}
.apply-cta{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.consent-note{font-size:.83rem;color:var(--mut);margin:12px 0 0;max-width:620px}
.recruiter-card{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--lav-pale);margin-bottom:16px}
.recruiter-card img{width:46px;height:46px;object-fit:contain;border-radius:10px;background:#fff;
  border:1px solid var(--line);padding:3px;flex:none}
.recruiter-card b{font-size:.98rem;display:block;color:var(--ink)}
.small{font-size:.82rem}
.trust-list{list-style:none;padding:0;margin:14px 0 0;font-size:.85rem;color:var(--ink-2)}
.trust-list li{padding:4px 0;display:flex;gap:8px;align-items:flex-start}
.trust-list .ic{color:var(--ok);margin-top:3px}

/* ---------- unit band + unit cards ---------- */
.unit-band{background:#fff;border-bottom:1px solid var(--line)}
.unit-band-inner{display:flex;align-items:center;gap:14px;padding:10px 20px;flex-wrap:wrap}
.unit-logo{width:42px;height:42px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid var(--line);padding:3px}
.unit-text{display:flex;flex-direction:column;line-height:1.35}
.unit-text b{font-size:.98rem}
.unit-text .muted{font-size:.84rem}
.unit-verify{margin-left:auto;font-size:.86rem;font-weight:600;border:1px solid var(--line);
  border-radius:999px;padding:6px 14px;background:var(--lav-pale);color:var(--lav-deep)}
.unit-verify:hover{text-decoration:none;border-color:var(--lav)}
.mini-logo{width:20px;height:20px;object-fit:contain;vertical-align:-5px;margin-right:6px;border-radius:5px;background:#fff}
.unit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:10px}
.unit-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:15px;color:var(--ink);box-shadow:var(--shadow);transition:.16s}
.unit-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:#D8CCF0}
.unit-card img{width:52px;height:52px;object-fit:contain;border-radius:12px;border:1px solid var(--line);padding:4px;background:#fff;flex:none}
.unit-card b{display:block;font-size:.98rem}
.unit-card .muted{font-size:.8rem}
.units-section{padding-bottom:10px}
.about-units{margin:22px 0 30px}
ul.plain{padding-left:20px}ul.plain li{margin:6px 0}

/* ---------- forms ---------- */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:32px;box-shadow:var(--shadow);max-width:660px;margin:0 auto}
.form-narrow{max-width:460px}
.field-row{margin-bottom:18px}
.field-row label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem}
.field-row .req{color:var(--bad)}
.field-row input,.field-row select,.field-row textarea{width:100%;padding:12px;
  border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:.95rem;color:var(--ink);background:#fff}
.field-row input:focus,.field-row textarea:focus,.field-row select:focus{
  outline:none;border-color:var(--lav);box-shadow:var(--focus)}
.field-row textarea{min-height:120px;resize:vertical}
.field-err{color:var(--bad);font-size:.84rem;margin-top:5px}
.field-hint{color:var(--mut);font-size:.84rem;margin-top:5px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.filedrop{display:block;border:2px dashed #D8CCF0;border-radius:12px;padding:22px;text-align:center;
  cursor:pointer;transition:.15s;background:#FCFBFE}
.filedrop:hover{border-color:var(--lav);background:var(--lav-pale)}
.filedrop .fname{font-weight:600;color:var(--lav-deep)}
.consent-row{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-size:.88rem;color:var(--ink-2)}
.consent-row input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--lav)}
.trust-strip{display:flex;align-items:center;gap:9px;background:var(--lav-pale);border:1px solid #E3D8F5;
  border-radius:10px;padding:10px 13px;font-size:.84rem;color:var(--ink-2);margin:8px 0 4px}
.trust-strip .ic,.trust-strip .lock{color:var(--lav-deep)}
.trust-strip a{font-weight:500}

/* ---------- callouts / status ---------- */
.notice{border-radius:var(--r);padding:14px 16px;font-size:.9rem;margin-bottom:18px}
.notice.info{background:var(--lav-pale);color:var(--lav-deep)}
.notice.ok{background:var(--ok-bg);color:var(--ok)}
.notice.warn{background:var(--warn-bg);color:var(--warn)}
.big-check{width:76px;height:76px;border-radius:50%;background:var(--ok-bg);color:var(--ok);
  display:grid;place-items:center;margin:0 auto 18px;animation:popIn .45s cubic-bezier(.2,.9,.3,1.4) both}
.big-check svg{width:36px;height:36px}
@keyframes popIn{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.center{text-align:center}
.next-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px;text-align:left;margin:26px auto 0;max-width:780px}
.next-steps>div{display:flex;gap:10px;align-items:flex-start;background:var(--lav-pale);
  border:1px solid #E7DDF6;border-radius:var(--r);padding:13px}
.step-n,.how-n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:linear-gradient(135deg,var(--sky),var(--lav-deep));color:#fff;font-weight:600;font-size:.88rem;flex:none}
.how{background:#fff;border-top:1px solid var(--line)}
.how-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-top:22px}
.how-grid>div{text-align:center}.how-grid .how-n{margin:0 auto 10px}.how-grid b{display:block;margin-bottom:4px}

/* match header on the success page */
.match-note{display:inline-flex;align-items:center;gap:8px;background:var(--ok-bg);color:var(--ok);
  border-radius:999px;padding:5px 14px;font-size:.84rem;font-weight:500}

/* ---------- employer marketing / tables ---------- */
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
.value-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px}
.value-card .vc-icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;
  background:var(--lav-pale);color:var(--lav-deep);font-size:1.3rem;margin-bottom:12px}
.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden}
.table th,.table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem}
.table th{background:#FCFBFE;color:var(--mut);font-weight:600;font-size:.8rem}
.table tr:last-child td{border-bottom:none}
.badge{padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:600}
.badge.pending{background:var(--warn-bg);color:var(--warn)}
.badge.live{background:var(--ok-bg);color:var(--ok)}
.pill-count{background:var(--lav-deep);color:#fff;border-radius:999px;padding:2px 10px;font-weight:600;font-size:.82rem}

/* ---------- questionnaire ---------- */
.progress{height:8px;background:var(--line);border-radius:999px;overflow:hidden;margin:4px 0 22px}
.progress > span{display:block;height:100%;background:linear-gradient(90deg,var(--sky),var(--lav-deep));
  border-radius:999px;transition:width .5s cubic-bezier(.2,.8,.2,1)}
.step-label{font-size:.8rem;color:var(--lav-deep);font-weight:600}
.q-group{margin:0 0 22px}
.q-group > .q-title{font-weight:600;font-size:1rem;margin-bottom:10px;display:block}
.chip-opts{display:flex;flex-wrap:wrap;gap:10px}
.chip-opt{position:relative;cursor:pointer}
.chip-opt input{position:absolute;opacity:0;pointer-events:none}
.chip-opt span{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--line);
  border-radius:999px;padding:10px 16px;font-size:.9rem;color:var(--ink-2);background:#fff;
  transition:.15s;font-weight:500}
.chip-opt:hover span{border-color:#D8CCF0}
.chip-opt input:checked + span{border-color:var(--lav);background:var(--lav-pale);color:var(--lav-deep);box-shadow:var(--focus)}
.chip-opt input:focus-visible + span{outline:2px solid var(--lav);outline-offset:2px}
.profile-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:26px}
.tier-badge{display:inline-block;padding:3px 12px;border-radius:999px;font-size:.78rem;font-weight:600}
.tier-Hot{background:var(--bad-bg);color:var(--bad)}
.tier-Warm{background:var(--warn-bg);color:var(--warn)}
.tier-Exploring{background:var(--lav-pale);color:var(--lav-deep)}
.legal-doc{max-width:800px;margin:0 auto;padding:36px 0}
.legal-doc h2{margin-top:28px;font-size:1.2rem}
.legal-doc p,.legal-doc li{color:var(--ink-2);line-height:1.7}
.legal-doc .updated{color:var(--mut);font-size:.88rem}

/* ---------- v2.3: filters extras, subscribe, saved searches, session, contact ---------- */
.fcheck{display:flex;align-items:center;gap:9px;margin:2px 0 16px;font-size:.9rem;color:var(--ink-2);cursor:pointer}
.fcheck input{width:16px;height:16px;accent-color:var(--lav)}
.results-tools{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.saved-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.chip-saved{display:inline-flex;align-items:center;gap:6px;padding-right:8px}
.chip-saved a{color:var(--lav-deep);font-weight:500}
.chip-saved a:hover{text-decoration:none}
.chip-x{border:none;background:none;color:var(--mut);cursor:pointer;font-size:.72rem;padding:2px;line-height:1}
.chip-x:hover{color:var(--bad)}
.subscribe-box{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--lav-pale),#fff);border:1px solid #E3D8F5;border-radius:var(--r-lg);
  padding:20px 24px;margin-top:22px}
.subscribe-copy b{display:flex;align-items:center;gap:8px;font-size:1.02rem}
.subscribe-copy b .ic{color:var(--lav)}
.subscribe-copy p{margin:4px 0 0;font-size:.88rem}
.subscribe-form{display:flex;gap:8px;flex-wrap:wrap;flex:1;max-width:460px;position:relative}
.subscribe-form input[type=email]{flex:1;min-width:200px;padding:12px 14px;border:1px solid var(--line);
  border-radius:10px;font-family:inherit;font-size:.94rem;color:var(--ink)}
.subscribe-form input[type=email]:focus{outline:none;border-color:var(--lav);box-shadow:var(--focus)}
.resume-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.resume-card{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:14px 16px;color:var(--ink);box-shadow:var(--shadow);transition:.15s}
.resume-card:hover{text-decoration:none;transform:translateY(-2px);border-color:#D8CCF0;box-shadow:var(--shadow-lg)}
.resume-card.search{background:var(--lav-pale);border-color:#E3D8F5}
.resume-card b{font-size:.95rem;line-height:1.4}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);
  padding:10px 24px;margin-top:22px;max-width:520px}
.contact-row{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.contact-row:last-child{border-bottom:none}
.contact-row .ic{color:var(--lav-deep);margin-top:3px}
.contact-row b{font-size:1rem}

/* ---------- footer ---------- */
.site-footer{background:#1B1136;color:#C8C0DC;margin-top:64px;padding:40px 0 20px}
.site-footer .official{border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:24px;margin-bottom:24px}
.official-head{display:flex;gap:14px;align-items:flex-start}
.official-head p{margin:0;font-size:.93rem;line-height:1.6;color:#D9D2EA}
.official-head a{color:#fff;font-weight:600}
.shield{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--sky),var(--lav));color:#fff;flex:none}
.shield .ic{width:16px;height:16px}
.unit-logos{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.unit-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);color:#EDE8F8;border-radius:999px;padding:5px 13px 5px 5px;
  font-size:.84rem;font-weight:500;transition:.15s}
.unit-chip img{width:26px;height:26px;object-fit:contain;border-radius:50%;background:#fff}
.unit-chip:hover{text-decoration:none;background:rgba(255,255,255,.14);transform:translateY(-1px)}
.footer-inner{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.site-footer .logo-text,.site-footer .muted{color:#C8C0DC}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a{color:#B4A9D4}
.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:26px;padding-top:16px;font-size:.84rem;color:#9A8FBE}

/* ---------- scroll reveal (latest grid only) ---------- */
[data-reveal]{opacity:0;transform:translateY(16px);
  transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
[data-reveal].revealed{opacity:1;transform:none}
[data-reveal][data-reveal="2"]{transition-delay:.07s}
[data-reveal][data-reveal="3"]{transition-delay:.14s}
[data-reveal][data-reveal="4"]{transition-delay:.21s}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  [data-reveal]{opacity:1;transform:none}
}

/* ---------- AI assistant ---------- */
.ai-fab{position:fixed;right:22px;bottom:22px;z-index:60;display:inline-flex;
  align-items:center;gap:9px;border:none;cursor:pointer;padding:13px 20px;border-radius:999px;
  background:linear-gradient(135deg,var(--sky),var(--lav-deep));color:#fff;font-weight:600;
  font-family:inherit;font-size:.95rem;box-shadow:0 10px 30px rgba(91,63,168,.42);
  transition:.2s;animation:fabPop .4s ease}
.ai-fab:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 14px 38px rgba(91,63,168,.5)}
.ai-fab.hidden{opacity:0;pointer-events:none;transform:scale(.7)}
@keyframes fabPop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.ai-panel{position:fixed;right:22px;bottom:22px;z-index:61;width:380px;max-width:calc(100vw - 32px);
  height:560px;max-height:calc(100vh - 40px);background:#fff;border-radius:18px;
  box-shadow:0 24px 70px rgba(27,17,54,.35);display:flex;flex-direction:column;overflow:hidden;
  opacity:0;transform:translateY(24px) scale(.96);pointer-events:none;
  transition:opacity .25s ease,transform .25s cubic-bezier(.2,.8,.2,1)}
.ai-panel.open{opacity:1;transform:none;pointer-events:auto}
.ai-head{background:linear-gradient(135deg,var(--hero-b),var(--hero-c));color:#fff;
  padding:16px 18px;display:flex;align-items:center;justify-content:space-between}
.ai-head-title{display:flex;align-items:center;gap:11px}
.ai-head strong{font-size:1rem;display:block}
.ai-sub{font-size:.78rem;color:rgba(255,255,255,.85)}
.ai-dot{width:10px;height:10px;border-radius:50%;background:#42e695;box-shadow:0 0 0 0 rgba(66,230,149,.6);
  animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(66,230,149,.6)}70%{box-shadow:0 0 0 8px rgba(66,230,149,0)}100%{box-shadow:0 0 0 0 rgba(66,230,149,0)}}
.ai-close{background:rgba(255,255,255,.2);border:none;color:#fff;width:30px;height:30px;
  border-radius:8px;cursor:pointer;font-size:.9rem}
.ai-close:hover{background:rgba(255,255,255,.32)}
.ai-body{flex:1;overflow-y:auto;padding:16px;background:var(--bg);display:flex;flex-direction:column;gap:12px}
.ai-msg{max-width:88%;padding:11px 14px;border-radius:14px;font-size:.9rem;line-height:1.55;animation:msgIn .28s ease}
.ai-msg.bot{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
.ai-msg.user{background:var(--lav-deep);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.ai-msg em{color:var(--lav-deep);font-style:normal;font-weight:600}
.ai-msg.user em{color:#fff}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ai-suggests{display:flex;flex-wrap:wrap;gap:8px}
.ai-sg{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 13px;
  font-size:.82rem;cursor:pointer;color:var(--lav-deep);font-family:inherit;transition:.15s}
.ai-sg:hover{background:var(--lav-pale);border-color:var(--lav)}
.ai-typing{display:flex;gap:4px;align-items:center}
.ai-typing span{width:7px;height:7px;border-radius:50%;background:var(--mut);animation:blink 1.2s infinite both}
.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ai-jobs{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.ai-job{display:block;background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px 13px;transition:.15s}
.ai-job:hover{border-color:var(--lav);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}
.ai-job-title{font-weight:600;color:var(--ink);font-size:.9rem}
.ai-job-meta{color:var(--mut);font-size:.8rem;margin:2px 0 6px}
.ai-job-tags{display:flex;flex-wrap:wrap;gap:5px}
.ai-job-tags span{background:var(--lav-pale);color:var(--ink-2);border-radius:6px;padding:2px 7px;font-size:.72rem}
.ai-job-tags .rm{background:var(--ok-bg);color:var(--ok)}
.ai-job-tags .sal{background:var(--ok-bg);color:var(--ok)}
.ai-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.ai-input input{flex:1;border:1px solid var(--line);border-radius:10px;padding:11px 13px;
  font-family:inherit;font-size:.9rem;outline:none;color:var(--ink)}
.ai-input input:focus{border-color:var(--lav);box-shadow:var(--focus)}
.ai-send{background:var(--lav-deep);color:#fff;border:none;width:44px;border-radius:10px;cursor:pointer;font-size:1rem}
.ai-send:hover{background:var(--lav)}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .layout,.detail,.footer-inner{grid-template-columns:1fr}
  .value-grid{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .filters{position:static}
  .apply-box{position:static}
  .hero{padding:48px 0 64px}
  .hero h1{font-size:1.9rem}
  .nav a:not(.btn){display:none}
  .detail-main{padding:22px}
  .form-card{padding:22px}
}
@media (max-width:640px){
  .unit-verify{margin-left:0}
  .header-inner .nav{gap:14px}
  .searchbar .btn{width:100%}
  .seg{width:100%;justify-content:space-between}
}
