/* ==========================================================================
   Careers App — Job listings, detail, and application flow
   Scoped under #careers-app so it never collides with the site's own
   .field / .tag / .stat / .card / etc. classes. Uses the same design
   tokens (fonts, colors, radius, shadows) defined in style.css.
   ========================================================================== */

#careers-app{position:relative;}

/* ---------- Toolbar (search / saved / admin) ---------- */
#careers-app .ca-toolbar{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:28px;
}
#careers-app .ca-search{
  display:flex;align-items:center;gap:8px;
  background:var(--fog);border:1px solid var(--line);
  border-radius:999px;padding:10px 18px;flex:1;min-width:220px;max-width:340px;
  transition:all .25s ease;
}
#careers-app .ca-search:focus-within{border-color:var(--blue-600);background:#fff;box-shadow:0 0 0 3px var(--blue-100);}
#careers-app .ca-search input{background:transparent;border:none;outline:none;color:var(--ink);font-size:14px;font-family:var(--sans);width:100%;}
#careers-app .ca-search input::placeholder{color:var(--slate-light);}
#careers-app .ca-search-icon{font-size:15px;flex-shrink:0;}
#careers-app .ca-saved-btn{
  display:flex;align-items:center;gap:7px;
  background:transparent;border:1px solid var(--line);color:var(--ink);
  font-size:14px;font-weight:600;font-family:var(--sans);
  padding:10px 18px;border-radius:999px;cursor:pointer;transition:all .25s ease;position:relative;
}
#careers-app .ca-saved-btn:hover{border-color:var(--blue-600);color:var(--blue-600);background:var(--blue-100);}
#careers-app .ca-badge{
  position:absolute;top:-6px;right:-6px;width:17px;height:17px;border-radius:50%;
  background:var(--blue-600);color:#fff;font-size:11px;font-weight:800;
  display:none;align-items:center;justify-content:center;
}
#careers-app .ca-badge.show{display:flex;}
#careers-app .ca-logout{font-size:12px;color:var(--slate);background:transparent;border:1px solid var(--line);padding:8px 16px;border-radius:999px;cursor:pointer;font-family:var(--sans);display:none;font-weight:600;transition:all .25s ease;margin-left:auto;}
#careers-app .ca-logout.on{display:inline-block;}
#careers-app .ca-logout:hover{border-color:var(--blue-600);color:var(--blue-600);}
#careers-app .ca-post-btn{background:var(--blue-600);color:#fff;border:none;padding:10px 20px;border-radius:999px;font-size:13.5px;font-weight:700;cursor:pointer;display:none;font-family:var(--sans);transition:all .25s ease;}
#careers-app .ca-post-btn.on{display:inline-block;}
#careers-app .ca-post-btn:hover{background:#0f3fb3;transform:translateY(-2px);box-shadow:var(--shadow-md);}
#careers-app .ca-admin-pill{font-size:11px;background:var(--blue-100);color:var(--blue-600);border:1px solid rgba(20,80,214,0.3);padding:3px 10px;border-radius:999px;display:none;font-weight:600;letter-spacing:.06em;}
#careers-app .ca-admin-pill.on{display:inline-flex;align-items:center;gap:4px;}

/* ---------- Pages (view switching) ---------- */
#careers-app .ca-page{display:none;animation:ca-fadein .4s ease;}
#careers-app .ca-page.ca-active{display:block;}
@keyframes ca-fadein{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

/* ---------- Mini stats row ---------- */
#careers-app .ca-stats{display:flex;gap:1px;margin-bottom:28px;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);}
#careers-app .ca-stat{flex:1;padding:18px 20px;background:var(--fog);text-align:center;}
#careers-app .ca-stat+.ca-stat{border-left:1px solid var(--line);}
#careers-app .ca-stat-n{font-family:var(--serif);font-size:26px;font-weight:700;line-height:1;color:var(--blue-600);}
#careers-app .ca-stat-l{font-size:12px;color:var(--slate);text-transform:uppercase;letter-spacing:.1em;margin-top:6px;font-weight:600;}

/* ---------- Search results banner ---------- */
#careers-app .ca-search-banner{
  background:var(--blue-100);border:1px solid rgba(20,80,214,0.2);
  border-radius:10px;padding:12px 16px;margin-bottom:16px;
  font-size:14px;color:var(--ink);font-weight:500;
  display:none;align-items:center;gap:8px;
}
#careers-app .ca-search-banner.show{display:flex;}
#careers-app .ca-clear-search{background:transparent;border:none;color:var(--blue-600);font-size:13px;cursor:pointer;font-family:var(--sans);margin-left:auto;text-decoration:underline;}

/* ---------- Section heading ---------- */
#careers-app .ca-sh{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--slate);font-weight:600;}
#careers-app .ca-sh::after{content:'';flex:1;height:1px;background:var(--line);}

/* ---------- Job cards ---------- */
#careers-app .jcard{
  position:relative;border-radius:var(--radius);margin-bottom:12px;cursor:pointer;
  background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:var(--shadow-sm);
  transition:all .3s cubic-bezier(.22,.68,0,1.2);
}
#careers-app .jcard:hover{border-color:rgba(20,80,214,0.3);transform:translateY(-3px);box-shadow:var(--shadow-md);}
#careers-app .jcard:hover .jbar{opacity:1;transform:scaleY(1);}
#careers-app .jcard:hover .jarrow{background:var(--blue-100);border-color:rgba(20,80,214,0.4);color:var(--blue-600);}
#careers-app .jbar{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--blue-600);opacity:0;transform:scaleY(0);transform-origin:center;transition:all .4s cubic-bezier(.34,1.56,.64,1);}
#careers-app .jinner{padding:18px 22px 18px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px;}
#careers-app .jt{font-family:var(--sans);font-size:17px;font-weight:700;color:var(--ink);margin-bottom:8px;line-height:1.25;}
#careers-app .jtags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px;}
#careers-app .ca-tag{padding:4px 11px;border-radius:6px;background:var(--blue-100);border:1px solid rgba(20,80,214,0.16);font-size:12.5px;color:var(--blue-600);font-weight:600;}
#careers-app .jmeta{font-size:12.5px;color:var(--slate-light);}
#careers-app .jright{display:flex;align-items:center;gap:8px;flex-shrink:0;}
#careers-app .save-job-btn{
  width:34px;height:34px;border-radius:9px;background:transparent;border:1px solid var(--line);
  color:var(--slate);font-size:17px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .25s ease;flex-shrink:0;font-family:inherit;
}
#careers-app .save-job-btn:hover{background:var(--blue-100);border-color:rgba(20,80,214,0.35);}
#careers-app .save-job-btn.saved{background:var(--blue-100);border-color:rgba(20,80,214,0.4);box-shadow:0 0 0 3px var(--blue-100);}
#careers-app .jarrow{width:36px;height:36px;border-radius:10px;background:var(--fog);border:1px solid var(--line);color:var(--slate);font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;}
#careers-app .ca-empty-state{text-align:center;padding:60px 0;color:var(--slate);font-size:15.5px;}

/* No results */
#careers-app .ca-no-results{text-align:center;padding:50px 0;}
#careers-app .ca-no-results-icon{font-size:38px;margin-bottom:12px;}
#careers-app .ca-no-results-text{font-size:17px;color:var(--ink);font-weight:600;margin-bottom:6px;}
#careers-app .ca-no-results-sub{font-size:14.5px;color:var(--slate);}
#careers-app .ca-no-results-sub span{color:var(--blue-600);cursor:pointer;text-decoration:underline;}

/* Saved jobs empty state */
#careers-app .ca-saved-empty{text-align:center;padding:60px 0;}
#careers-app .ca-saved-empty-icon{font-size:42px;margin-bottom:14px;}
#careers-app .ca-saved-empty-title{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:6px;}
#careers-app .ca-saved-empty-sub{font-size:14.5px;color:var(--slate);max-width:300px;margin:0 auto;}

/* Back button */
#careers-app .ca-back{background:transparent;border:1px solid var(--line);color:var(--ink);font-size:14px;padding:9px 16px;border-radius:999px;cursor:pointer;margin-bottom:22px;display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);transition:all .3s ease;font-weight:600;}
#careers-app .ca-back:hover{border-color:var(--blue-600);color:var(--blue-600);transform:translateX(-2px);}

/* Steps */
#careers-app .ca-steps{display:flex;align-items:center;margin-bottom:22px;}
#careers-app .ca-step{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--slate);font-weight:600;}
#careers-app .ca-step.on{color:var(--ink);}
#careers-app .ca-step.done{color:#2e9b4f;}
#careers-app .ca-sdot{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;transition:all .35s ease;color:var(--slate);}
#careers-app .ca-step.on .ca-sdot{background:var(--blue-600);border-color:transparent;color:#fff;}
#careers-app .ca-step.done .ca-sdot{background:rgba(60,180,80,0.14);border-color:rgba(60,180,80,0.35);color:#2e9b4f;}
#careers-app .ca-step-line{flex:1;height:1px;background:var(--line);min-width:24px;margin:0 8px;}

/* Detail card */
#careers-app .dcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:24px;box-shadow:var(--shadow-sm);}
#careers-app .dcard-top{padding:12px 22px;border-bottom:1px solid var(--line);background:var(--fog);font-family:var(--mono);font-size:12.5px;color:var(--slate);font-weight:500;letter-spacing:.04em;}
#careers-app .drow{display:flex;align-items:flex-start;padding:17px 22px;border-bottom:1px solid var(--line);gap:16px;}
#careers-app .drow:last-child{border-bottom:none;}
#careers-app .dico{width:40px;height:40px;border-radius:11px;flex-shrink:0;background:var(--blue-100);border:1px solid rgba(20,80,214,0.16);display:flex;align-items:center;justify-content:center;font-size:18px;}
#careers-app .dlbl{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--slate-light);margin-bottom:5px;font-weight:600;}
#careers-app .dval{font-size:17px;font-weight:700;color:var(--ink);}
#careers-app .ca-desc{font-size:15.5px;line-height:1.85;color:var(--slate);white-space:pre-wrap;}
#careers-app .nbadge{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:8px;font-size:13.5px;font-weight:700;}
#careers-app .bwfo{background:var(--fog);border:1px solid var(--line);color:var(--ink);}
#careers-app .bwfh{background:rgba(60,180,80,0.1);border:1px solid rgba(60,180,80,0.24);color:#2e9b4f;}
#careers-app .bhyb{background:rgba(255,152,0,0.12);border:1px solid rgba(255,152,0,0.28);color:#b96a00;}

/* Apply button */
#careers-app .ca-apply-btn{width:100%;padding:16px;border-radius:12px;border:none;cursor:pointer;font-family:var(--sans);font-size:16px;font-weight:700;background:var(--blue-600);color:#fff;transition:all .25s ease;}
#careers-app .ca-apply-btn:hover{background:#0f3fb3;transform:translateY(-2px);box-shadow:var(--shadow-md);}

/* Form */
#careers-app .ca-fcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-md);}
#careers-app .ca-fsec{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--blue-600);margin:22px 0 13px;padding-bottom:10px;border-bottom:1px solid var(--line);font-weight:600;display:flex;align-items:center;gap:8px;}
#careers-app .ca-fsec-gem{width:3px;height:13px;background:var(--blue-600);border-radius:3px;flex-shrink:0;}
#careers-app .ca-fsec:first-of-type{margin-top:0;}
#careers-app .ca-frow2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:560px){#careers-app .ca-frow2{grid-template-columns:1fr;}}
.ca-field{margin-bottom:14px;}
.ca-flbl{display:block;font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);margin-bottom:7px;font-weight:700;}
.finput{width:100%;background:var(--fog);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font-size:15px;padding:12px 14px;font-family:var(--sans);outline:none;transition:all .25s ease;}
.finput::placeholder{color:var(--slate-light);}
.finput:focus{border-color:var(--blue-600);background:#fff;box-shadow:0 0 0 3px var(--blue-100);}
.ca-ftextarea{min-height:90px;resize:vertical;line-height:1.7;}
#careers-app .ca-yn-row{display:flex;gap:9px;}
#careers-app .yn{flex:1;padding:10px;border-radius:var(--radius-sm);border:1px solid var(--line);background:transparent;color:var(--ink);font-size:14px;cursor:pointer;font-family:var(--sans);font-weight:600;transition:all .25s ease;text-align:center;}
#careers-app .yn:hover{border-color:var(--blue-600);color:var(--blue-600);}
#careers-app .yn.on{background:var(--blue-100);border-color:var(--blue-600);color:var(--blue-600);}
#careers-app .ca-upload-box{border:1.5px dashed rgba(20,80,214,0.3);border-radius:var(--radius-sm);padding:26px;text-align:center;cursor:pointer;background:var(--blue-100);transition:all .25s ease;display:block;}
#careers-app .ca-upload-box:hover{border-color:var(--blue-600);}
#careers-app .ca-uico{font-size:30px;margin-bottom:8px;}
#careers-app .ca-utxt{font-size:14.5px;color:var(--ink);font-weight:600;}
#careers-app .ca-uhnt{font-size:12.5px;color:var(--slate-light);margin-top:4px;}
#careers-app .ca-ufn{font-size:13px;color:var(--blue-600);margin-top:8px;text-align:center;font-weight:600;}
#careers-app .ca-ferr{background:rgba(220,53,50,0.06);border:1px solid rgba(220,53,50,0.24);color:#c62828;padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px;display:none;}
#careers-app .ca-sub-btn{width:100%;background:var(--blue-600);color:#fff;border:none;padding:16px;border-radius:12px;font-family:var(--sans);font-size:16px;font-weight:700;cursor:pointer;margin-top:10px;transition:all .25s ease;}
#careers-app .ca-sub-btn:hover{background:#0f3fb3;transform:translateY(-2px);box-shadow:var(--shadow-md);}
#careers-app .ca-sub-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}

/* Success */
#careers-app .ca-success{text-align:center;padding:72px 24px;}
#careers-app .ca-s-stage{position:relative;width:100px;height:100px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;}
#careers-app .ca-s-r1{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(20,80,214,0.15);animation:ca-ring 2.5s ease-out infinite;}
#careers-app .ca-s-r2{position:absolute;inset:16px;border-radius:50%;border:1px solid rgba(20,80,214,0.2);}
#careers-app .ca-s-core{position:absolute;inset:26px;border-radius:50%;background:var(--blue-100);border:1px solid rgba(20,80,214,0.3);display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--blue-600);}
@keyframes ca-ring{0%{transform:scale(1);opacity:.8;}100%{transform:scale(1.8);opacity:0;}}
#careers-app .ca-s-title{font-family:var(--serif);font-size:28px;font-weight:700;margin-bottom:12px;color:var(--ink);}
#careers-app .ca-s-sub{font-size:16px;color:var(--slate);line-height:1.75;max-width:360px;margin:0 auto 30px;}
#careers-app .ca-s-back{background:transparent;border:1px solid var(--line);color:var(--ink);padding:12px 24px;border-radius:999px;font-size:14.5px;cursor:pointer;font-family:var(--sans);font-weight:600;transition:all .25s ease;}
#careers-app .ca-s-back:hover{border-color:var(--blue-600);color:var(--blue-600);}

/* Overlays / modals */
.ca-overlay{display:none;position:fixed;inset:0;background:rgba(6,14,34,0.5);backdrop-filter:blur(6px);z-index:500;justify-content:center;padding:24px;align-items:flex-start;overflow-y:auto;}
.ca-overlay.open{display:flex;}
.ca-mbox{width:100%;padding:34px;margin-top:70px;position:relative;border-radius:20px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-lg);animation:ca-mdrop .35s cubic-bezier(.34,1.56,.64,1);}
@keyframes ca-mdrop{from{transform:translateY(-20px) scale(.96);opacity:0;}to{transform:translateY(0) scale(1);opacity:1;}}
.ca-ambox{max-width:400px;}
.ca-pmbox{max-width:560px;}
.ca-xbtn{position:absolute;top:16px;right:18px;background:var(--fog);border:1px solid var(--line);color:var(--slate);font-size:15px;cursor:pointer;padding:5px 10px;border-radius:8px;transition:all .2s ease;line-height:1;font-family:inherit;}
.ca-xbtn:hover{background:var(--blue-100);color:var(--blue-600);}
.ca-mico{width:52px;height:52px;border-radius:14px;margin-bottom:18px;background:var(--blue-100);border:1px solid rgba(20,80,214,0.2);display:flex;align-items:center;justify-content:center;font-size:24px;}
.ca-mod-title{font-family:var(--serif);font-size:20px;font-weight:700;color:var(--ink);margin-bottom:6px;padding-right:36px;}
.ca-mod-sub{font-size:14.5px;color:var(--slate);margin-bottom:22px;line-height:1.6;}
.ca-aerr{font-size:13px;color:#c62828;margin-top:8px;display:none;font-weight:500;}
.ca-mod-btn{width:100%;background:var(--blue-600);color:#fff;border:none;padding:13px;border-radius:var(--radius-sm);font-family:var(--sans);font-size:15px;font-weight:700;cursor:pointer;margin-top:14px;transition:all .25s ease;}
.ca-mod-btn:hover{background:#0f3fb3;}
.ca-togrow{display:flex;gap:7px;flex-wrap:wrap;}
.ca-tog{padding:8px 15px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--slate);font-size:13px;cursor:pointer;font-family:var(--sans);transition:all .25s ease;font-weight:600;}
.ca-tog:hover{border-color:var(--blue-600);color:var(--blue-600);}
.ca-tog.on{background:var(--blue-100);border-color:var(--blue-600);color:var(--blue-600);}
.ca-mdivd{height:1px;background:var(--line);margin:18px 0;}
.ca-pub-btn{width:100%;background:var(--blue-600);color:#fff;border:none;padding:14px;border-radius:var(--radius-sm);font-family:var(--sans);font-size:15px;font-weight:700;cursor:pointer;margin-top:20px;transition:all .25s ease;}
.ca-pub-btn:hover{background:#0f3fb3;}

/* Employer / admin discreet trigger inside the page-hero breadcrumb */
.ca-admin-trigger{cursor:default;user-select:none;}
