/* ============================================================
   VIZAG MAP — Hiring CRM (ATS)
   Recruiter console · kanban pipeline · candidate drawer ·
   public job board · apply modal · candidate tracker.
   Inherits the account tokens (--ink, --teal, radii, shadows).
   ============================================================ */

.vsm-ats,.vsm-ats *,
.vsm-board,.vsm-board *,
.vsm-ats-modal,.vsm-ats-modal *,
.vsm-ats-mine,.vsm-ats-mine *{box-sizing:border-box}

.vsm-ats [hidden],.vsm-ats[hidden],
.vsm-board [hidden]{display:none !important}

.vsm-ats{
  --ats-blue:#2563EB; --ats-blue-d:#1D4ED8;
  --ats-green:#0EA672; --ats-amber:#F4A72B; --ats-purple:#7C5CFF;
  --ats-slate:#64748B; --ats-bg:#F7F8FB; --ats-line:#E7EAF0;
  font-family:'Inter',system-ui,sans-serif;color:var(--ink);
}

/* ---------- Buttons ---------- */
.vsm-ats-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:42px;padding:0 18px;border-radius:var(--r1);border:1.5px solid var(--line);
  background:#fff;color:var(--ink);font-family:inherit;font-weight:700;font-size:14px;
  cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:transform .12s,background .16s,border-color .16s,box-shadow .16s,color .16s}
.vsm-ats-btn:hover{transform:translateY(-1px)}
.vsm-ats-btn--primary{background:var(--ink);border-color:var(--ink);color:#fff}
.vsm-ats-btn--primary:hover{background:#0d2f52;border-color:#0d2f52;box-shadow:var(--shadow-s)}
.vsm-ats-btn--ghost{background:transparent}
.vsm-ats-btn--ghost:hover{border-color:var(--ink);background:#fff}
.vsm-ats-btn--danger{color:var(--coral-d);border-color:#f3d3ca}
.vsm-ats-btn--danger:hover{background:#fff5f2;border-color:var(--coral)}
.vsm-ats-btn--muted{background:var(--sand);color:var(--slate);border-color:var(--line);cursor:default}
.vsm-ats-btn--applied{background:#e8f7f0;color:var(--ats-green);border-color:#bfe9d6;cursor:default}
.vsm-ats-btn--sm{height:34px;padding:0 12px;font-size:12.5px}
.vsm-ats-btn--block{width:100%}

/* ---------- Loading / empty ---------- */
.vsm-ats__loading{display:flex;align-items:center;justify-content:center;gap:12px;
  padding:80px 20px;color:var(--slate);font-weight:600}
.vsm-ats__spin{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);
  border-top-color:var(--ink);animation:vsm-spin .8s linear infinite}
@keyframes vsm-spin{to{transform:rotate(360deg)}}
.vsm-ats__empty{text-align:center;padding:56px 24px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r2);box-shadow:var(--shadow-s)}
.vsm-ats__empty--sm{padding:40px 20px;box-shadow:none;border-style:dashed}
.vsm-ats__empty-art{font-size:38px;margin-bottom:10px}
.vsm-ats__empty h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;margin:0 0 6px}
.vsm-ats__empty p{color:var(--slate);margin:0 0 18px;font-size:14px;max-width:420px;margin-inline:auto}

/* ---------- Header ---------- */
.vsm-ats__head{background:#fff;border:1px solid var(--line);border-radius:var(--r2);
  box-shadow:var(--shadow-s);padding:20px 22px;margin-bottom:16px}
.vsm-ats__headtop{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.vsm-ats__eyebrow{font-family:'Space Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ats-blue);display:block;margin-bottom:8px}
.vsm-ats__coswitch{display:flex;align-items:center;gap:12px}
.vsm-ats__col-logo{width:46px;height:46px;border-radius:12px;flex:0 0 auto;display:grid;place-items:center;
  background:var(--ink);color:#fff;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:16px;
  overflow:hidden;background-size:cover;background-position:center}
.vsm-ats__coselect{border:0;background:none;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:24px;letter-spacing:-.02em;color:var(--ink);cursor:pointer;padding:0;max-width:min(60vw,420px);
  outline:none;appearance:none}
.vsm-ats__cohint{font-size:12.5px;color:var(--slate);font-weight:600;margin-top:1px}

/* Stat strip */
.vsm-ats__stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:20px}
.vsm-ats__stat{background:var(--ats-bg);border:1px solid var(--ats-line);border-radius:var(--r1);
  padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.vsm-ats__stat-n{font-family:'Space Mono',monospace;font-weight:700;font-size:24px;line-height:1;color:var(--ink)}
.vsm-ats__stat-l{font-size:11.5px;font-weight:600;color:var(--slate);text-transform:uppercase;letter-spacing:.03em}
.vsm-ats__stat:first-child .vsm-ats__stat-n{color:var(--ats-blue)}
.vsm-ats__stat:last-child .vsm-ats__stat-n{color:var(--ats-green)}

/* ---------- View bar ---------- */
.vsm-ats__viewbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.vsm-ats__segments{display:inline-flex;background:var(--sand);border:1px solid var(--line);
  border-radius:999px;padding:4px;gap:2px}
.vsm-ats__seg{border:0;background:none;font-family:inherit;font-weight:700;font-size:13px;color:var(--slate);
  padding:7px 18px;border-radius:999px;cursor:pointer;transition:.15s}
.vsm-ats__seg.is-active{background:#fff;color:var(--ink);box-shadow:var(--shadow-s)}
.vsm-ats__seg:disabled{opacity:.4;cursor:not-allowed}
.vsm-ats__viewmeta{font-size:13px;color:var(--slate);font-weight:600}

/* ---------- Roles list ---------- */
.vsm-ats__joblist{display:flex;flex-direction:column;gap:12px}
.vsm-jobrow{background:#fff;border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-s);
  padding:18px 20px;display:flex;align-items:center;gap:18px;cursor:pointer;
  transition:transform .12s,box-shadow .16s,border-color .16s}
.vsm-jobrow:hover{transform:translateY(-2px);box-shadow:var(--shadow-m);border-color:#d5dae4}
.vsm-jobrow__main{flex:1 1 auto;min-width:0}
.vsm-jobrow__title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:18px;
  letter-spacing:-.01em;margin:0 0 4px;display:flex;align-items:center;gap:10px}
.vsm-jobrow__badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.vsm-ats__tag{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;
  padding:3px 10px;border-radius:999px;background:var(--sand);color:var(--slate)}
.vsm-ats__state{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  padding:3px 9px;border-radius:999px}
.vsm-ats__state--open{background:#e8f7f0;color:var(--ats-green)}
.vsm-ats__state--paused{background:#fdf4e3;color:#b7791f}
.vsm-ats__state--closed{background:#f1f2f5;color:var(--slate)}
.vsm-ats__state--draft{background:#eef2ff;color:var(--ats-blue)}
.vsm-jobrow__stats{display:flex;gap:22px;flex:0 0 auto}
.vsm-jobrow__stat{text-align:center}
.vsm-jobrow__stat b{display:block;font-family:'Space Mono',monospace;font-size:20px;color:var(--ink)}
.vsm-jobrow__stat span{font-size:11px;color:var(--slate);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.vsm-jobrow__stat.is-hot b{color:var(--coral-d)}
.vsm-jobrow__go{flex:0 0 auto;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);
  display:grid;place-items:center;color:var(--slate);transition:.15s}
.vsm-jobrow:hover .vsm-jobrow__go{background:var(--ink);border-color:var(--ink);color:#fff}
.vsm-jobrow__menu{position:relative;flex:0 0 auto}
.vsm-jobrow__menubtn{width:34px;height:34px;border-radius:9px;border:1px solid transparent;background:none;
  cursor:pointer;color:var(--slate);font-size:20px;line-height:1;display:grid;place-items:center}
.vsm-jobrow__menubtn:hover{background:var(--sand);border-color:var(--line)}
.vsm-ats__pop{position:absolute;right:0;top:40px;background:#fff;border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--shadow-m);padding:6px;min-width:170px;z-index:40}
.vsm-ats__pop button{width:100%;text-align:left;border:0;background:none;font-family:inherit;font-size:13.5px;
  font-weight:600;color:var(--ink);padding:9px 12px;border-radius:8px;cursor:pointer}
.vsm-ats__pop button:hover{background:var(--sand)}
.vsm-ats__pop button.is-danger{color:var(--coral-d)}
.vsm-ats__pop hr{border:0;border-top:1px solid var(--line);margin:5px 4px}

/* ---------- Pipeline / kanban ---------- */
.vsm-ats__pipehead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.vsm-ats__back{border:0;background:none;font-family:inherit;font-weight:700;font-size:13.5px;color:var(--ats-blue);
  cursor:pointer;padding:6px 4px}
.vsm-ats__pipetitle{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:22px;
  letter-spacing:-.02em;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vsm-ats__pipetools{display:flex;gap:10px;align-items:center}
.vsm-ats__search{position:relative;display:flex}
.vsm-ats__search input{height:38px;border:1.5px solid var(--line);border-radius:10px;padding:0 12px;
  font-family:inherit;font-size:13.5px;width:210px;outline:none;transition:border-color .15s}
.vsm-ats__search input:focus{border-color:var(--ink)}

.vsm-ats__board{display:flex;gap:14px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x proximity}
.vsm-ats__col{flex:0 0 300px;background:var(--ats-bg);border:1px solid var(--ats-line);
  border-radius:var(--r2);display:flex;flex-direction:column;max-height:74vh;scroll-snap-align:start}
.vsm-ats__col.is-drop{outline:2px dashed var(--ats-blue);outline-offset:-4px;background:#eef4ff}
.vsm-ats__col-head{display:flex;align-items:center;gap:8px;padding:14px 16px 10px;position:sticky;top:0}
.vsm-ats__col-dot{width:9px;height:9px;border-radius:50%}
.vsm-ats__col--slate .vsm-ats__col-dot{background:var(--ats-slate)}
.vsm-ats__col--blue  .vsm-ats__col-dot{background:var(--ats-blue)}
.vsm-ats__col--purple .vsm-ats__col-dot{background:var(--ats-purple)}
.vsm-ats__col--amber .vsm-ats__col-dot{background:var(--ats-amber)}
.vsm-ats__col--green .vsm-ats__col-dot{background:var(--ats-green)}
.vsm-ats__col-name{font-weight:800;font-size:13px;letter-spacing:.01em;flex:1 1 auto}
.vsm-ats__col-count{font-family:'Space Mono',monospace;font-weight:700;font-size:12px;color:var(--slate);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 9px}
.vsm-ats__col-body{padding:4px 12px 14px;overflow-y:auto;flex:1 1 auto;display:flex;flex-direction:column;gap:9px}
.vsm-ats__col-empty{text-align:center;color:var(--slate2);font-size:12.5px;padding:22px 8px;
  border:1.5px dashed var(--line);border-radius:12px}

.vsm-cand{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;cursor:grab;
  box-shadow:0 1px 2px rgba(10,37,64,.05);transition:transform .12s,box-shadow .16s,border-color .16s}
.vsm-cand:hover{box-shadow:var(--shadow-s);border-color:#d5dae4;transform:translateY(-1px)}
.vsm-cand.is-dragging{opacity:.5}
.vsm-cand__top{display:flex;align-items:center;gap:10px}
.vsm-cand__av{width:36px;height:36px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  font-weight:800;font-size:13px;color:#fff}
.vsm-cand__name{font-weight:700;font-size:14px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vsm-cand__head{font-size:12px;color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vsm-cand__foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px}
.vsm-cand__stars{color:var(--ats-amber);font-size:12px;letter-spacing:1px}
.vsm-cand__stars .off{color:var(--line)}
.vsm-cand__when{font-size:11px;color:var(--slate2);font-weight:600}
.vsm-cand__rej{margin-top:8px;font-size:11px;font-weight:700;color:var(--coral-d);
  background:#fff5f2;border-radius:6px;padding:2px 8px;display:inline-block}

/* ---------- Drawers ---------- */
.vsm-ats__drawer{position:fixed;inset:0;z-index:100000;display:flex;justify-content:flex-end}
.vsm-ats__drawer-scrim{position:absolute;inset:0;background:rgba(10,37,64,.42);backdrop-filter:blur(2px);
  animation:vsm-fade .2s ease}
@keyframes vsm-fade{from{opacity:0}to{opacity:1}}
.vsm-ats__drawer-panel{position:relative;width:min(540px,100%);height:100%;background:#fff;
  display:flex;flex-direction:column;box-shadow:-30px 0 80px -30px rgba(10,37,64,.5);
  animation:vsm-slide .28s cubic-bezier(.2,.9,.3,1)}
.vsm-ats__drawer--wide .vsm-ats__drawer-panel{width:min(640px,100%)}
@keyframes vsm-slide{from{transform:translateX(40px);opacity:.4}to{transform:translateX(0);opacity:1}}
.vsm-ats__drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:20px 24px;border-bottom:1px solid var(--line);flex:0 0 auto}
.vsm-ats__drawer-head h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:21px;margin:0}
.vsm-ats__x{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#fff;
  cursor:pointer;font-size:15px;color:var(--slate);display:grid;place-items:center}
.vsm-ats__x:hover{background:var(--sand)}
.vsm-ats__drawer-body{flex:1 1 auto;overflow-y:auto;padding:24px}
.vsm-ats__drawer-foot{flex:0 0 auto;display:flex;gap:10px;justify-content:flex-end;
  padding:16px 24px;border-top:1px solid var(--line);background:var(--paper)}

/* ---------- Forms ---------- */
.vsm-ats__form{display:flex;flex-direction:column;gap:16px}
.vsm-ats__f{display:flex;flex-direction:column;gap:6px}
.vsm-ats__f label{font-size:12.5px;font-weight:700;color:var(--ink)}
.vsm-ats__f input,.vsm-ats__f select,.vsm-ats__f textarea{
  height:44px;border:1.5px solid var(--line);border-radius:10px;padding:0 12px;font-family:inherit;
  font-size:14px;color:var(--ink);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
.vsm-ats__f textarea{height:auto;padding:11px 12px;resize:vertical;min-height:88px}
.vsm-ats__f input:focus,.vsm-ats__f select:focus,.vsm-ats__f textarea:focus{
  border-color:var(--ink);box-shadow:0 0 0 3px rgba(10,37,64,.08)}
.vsm-ats__f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vsm-ats__f3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.vsm-ats__f4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px}
.vsm-ats__rte{border:1.5px solid var(--line);border-radius:10px;padding:12px;min-height:140px;
  font-size:14px;line-height:1.6;outline:none;transition:border-color .15s}
.vsm-ats__rte:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(10,37,64,.08)}
.vsm-ats__rte:empty:before{content:attr(data-ph);color:var(--slate2)}
.vsm-ats__rte-hint{font-size:12px;color:var(--slate)}
.vsm-ats__fieldset{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;
  flex-direction:column;gap:12px;background:var(--paper)}
.vsm-ats__fieldset-h{display:flex;align-items:center;justify-content:space-between;font-weight:800;
  font-size:14px;font-family:'Bricolage Grotesque',sans-serif}
.vsm-ats__mini-switch{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;
  color:var(--slate);cursor:pointer}
.vsm-ats__mini-switch input{display:none}
.vsm-ats__mini-switch span{width:36px;height:20px;border-radius:999px;background:var(--line);position:relative;
  transition:.16s;flex:0 0 auto}
.vsm-ats__mini-switch span:before{content:"";position:absolute;width:16px;height:16px;border-radius:50%;
  background:#fff;top:2px;left:2px;transition:.16s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.vsm-ats__mini-switch input:checked+span{background:var(--ats-green)}
.vsm-ats__mini-switch input:checked+span:before{transform:translateX(16px)}
.vsm-ats__radios{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vsm-ats__radio{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;
  padding:12px;cursor:pointer;transition:.15s;background:#fff}
.vsm-ats__radio:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 3px rgba(10,37,64,.07)}
.vsm-ats__radio input{margin-top:3px}
.vsm-ats__radio b{display:block;font-size:13.5px}
.vsm-ats__radio small{display:block;font-size:12px;color:var(--slate);margin-top:2px}
.vsm-ats__qs{display:flex;flex-direction:column;gap:8px}
.vsm-ats__qrow{display:flex;gap:8px;align-items:center}
.vsm-ats__qrow input[type=text]{flex:1 1 auto;height:40px;border:1.5px solid var(--line);border-radius:9px;
  padding:0 11px;font-family:inherit;font-size:13.5px;outline:none}
.vsm-ats__qreq{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--slate);white-space:nowrap}
.vsm-ats__qdel{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--coral-d)}
.vsm-ats__addrow{align-self:flex-start;border:1.5px dashed var(--line);background:none;border-radius:9px;
  padding:8px 14px;font-family:inherit;font-weight:700;font-size:12.5px;color:var(--slate);cursor:pointer}
.vsm-ats__addrow:hover{border-color:var(--ink);color:var(--ink)}

/* ---------- Candidate profile (drawer) ---------- */
.vsm-cd__head{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:flex-start}
.vsm-cd__av{width:52px;height:52px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  font-weight:800;font-size:18px;color:#fff}
.vsm-cd__id{flex:1 1 auto;min-width:0}
.vsm-cd__name{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;margin:0;display:flex;align-items:center;gap:8px}
.vsm-cd__head-sub{font-size:13px;color:var(--slate);margin-top:2px}
.vsm-cd__x{flex:0 0 auto}
.vsm-cd__stagebar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 24px;
  border-bottom:1px solid var(--line);background:var(--paper)}
.vsm-cd__stagebar label{font-size:12px;font-weight:700;color:var(--slate)}
.vsm-cd__stagesel{height:36px;border:1.5px solid var(--line);border-radius:9px;padding:0 10px;
  font-family:inherit;font-weight:700;font-size:13px;background:#fff;cursor:pointer;outline:none}
.vsm-cd__stars{margin-left:auto;display:flex;gap:3px;font-size:18px;cursor:pointer;color:var(--line)}
.vsm-cd__stars .on{color:var(--ats-amber)}
.vsm-cd__body{padding:20px 24px;display:flex;flex-direction:column;gap:18px}
.vsm-cd__sec-t{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);margin-bottom:8px}
.vsm-cd__contact{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vsm-cd__contact a,.vsm-cd__contact span{display:flex;align-items:center;gap:8px;font-size:13.5px;
  color:var(--ink);text-decoration:none;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}
.vsm-cd__contact a:hover{border-color:var(--ink)}
.vsm-cd__links{display:flex;gap:8px;flex-wrap:wrap}
.vsm-cd__linkpill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;
  padding:7px 12px;border-radius:999px;background:var(--sand);color:var(--ink);text-decoration:none}
.vsm-cd__linkpill:hover{background:#ececff;color:var(--ats-purple)}
.vsm-cd__resume{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);
  border-radius:12px;background:#fff}
.vsm-cd__resume a{margin-left:auto;font-weight:700;color:var(--ats-blue);text-decoration:none;font-size:13px}
.vsm-cd__cover{font-size:13.5px;line-height:1.6;color:var(--ink2);white-space:pre-wrap;
  background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px}
.vsm-cd__qa{display:flex;flex-direction:column;gap:10px}
.vsm-cd__q{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.vsm-cd__q b{display:block;font-size:13px;margin-bottom:4px}
.vsm-cd__q p{margin:0;font-size:13.5px;color:var(--ink2);line-height:1.55}

/* Timeline */
.vsm-cd__note{display:flex;gap:8px;margin-bottom:12px}
.vsm-cd__note textarea{flex:1 1 auto;min-height:40px;border:1.5px solid var(--line);border-radius:10px;
  padding:10px 12px;font-family:inherit;font-size:13.5px;resize:vertical;outline:none}
.vsm-tl{display:flex;flex-direction:column;gap:0;position:relative;padding-left:22px}
.vsm-tl:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--line)}
.vsm-tl__item{position:relative;padding:0 0 16px}
.vsm-tl__dot{position:absolute;left:-22px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;
  border:3px solid var(--ats-blue)}
.vsm-tl__item[data-type=note] .vsm-tl__dot{border-color:var(--ats-purple)}
.vsm-tl__item[data-type=status] .vsm-tl__dot{border-color:var(--ats-green)}
.vsm-tl__item[data-type=rating] .vsm-tl__dot{border-color:var(--ats-amber)}
.vsm-tl__body{font-size:13.5px;color:var(--ink);white-space:pre-wrap;line-height:1.5}
.vsm-tl__meta{font-size:11.5px;color:var(--slate2);font-weight:600;margin-top:2px}
.vsm-cd__foot{padding:16px 24px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:space-between;background:var(--paper)}

/* ---------- Toast ---------- */
.vsm-ats__toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#fff;font-weight:700;font-size:13.5px;padding:12px 20px;border-radius:12px;
  box-shadow:var(--shadow-l);z-index:100001;opacity:0;transition:.3s cubic-bezier(.2,.9,.3,1.2)}
.vsm-ats__toast.is-show{opacity:1;transform:translateX(-50%) translateY(0)}
.vsm-ats__toast.is-err{background:var(--coral-d)}

/* ============================================================
   PUBLIC JOB BOARD  [vsm_jobs]
   ============================================================ */
.vsm-board{font-family:'Inter',system-ui,sans-serif;color:var(--ink)}
.vsm-board__bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.vsm-board__search{flex:1 1 280px;position:relative;display:flex;align-items:center}
.vsm-board__search svg{position:absolute;left:14px;width:18px;height:18px;color:var(--slate2);pointer-events:none}
.vsm-board__search input{width:100%;height:48px;border:1.5px solid var(--line);border-radius:12px;
  padding:0 14px 0 42px;font-family:inherit;font-size:15px;outline:none;background:#fff;transition:border-color .15s}
.vsm-board__search input:focus{border-color:var(--ink)}
.vsm-board__filters{display:flex;gap:8px;flex-wrap:wrap}
.vsm-board__sel{height:48px;border:1.5px solid var(--line);border-radius:12px;padding:0 12px;
  font-family:inherit;font-size:13.5px;font-weight:600;background:#fff;cursor:pointer;outline:none}
.vsm-board__count{font-size:13px;font-weight:700;color:var(--slate);margin:4px 0 14px}
.vsm-board__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.vsm-jobcard{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r2);box-shadow:var(--shadow-s);padding:18px;text-decoration:none;color:var(--ink);
  transition:transform .14s,box-shadow .18s,border-color .16s}
.vsm-jobcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-m);border-color:#d5dae4}
.vsm-jobcard__top{display:flex;align-items:center;gap:11px}
.vsm-jobcard__logo{width:44px;height:44px;border-radius:11px;flex:0 0 auto;overflow:hidden;display:grid;
  place-items:center;background:var(--ink);color:#fff;font-family:'Bricolage Grotesque';font-weight:800;font-size:15px}
.vsm-jobcard__logo img{width:100%;height:100%;object-fit:cover}
.vsm-jobcard__co{min-width:0}
.vsm-jobcard__coname{display:block;font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vsm-jobcard__posted{font-size:11.5px;color:var(--slate2);font-weight:600}
.vsm-jobcard__title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:17px;
  letter-spacing:-.01em;margin:0;line-height:1.25}
.vsm-jobcard__meta{display:flex;gap:6px;flex-wrap:wrap}
.vsm-jobcard__pill{font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;
  background:var(--sand);color:var(--slate)}
.vsm-jobcard__foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;
  padding-top:6px;border-top:1px solid var(--line)}
.vsm-jobcard__salary{font-family:'Space Mono',monospace;font-weight:700;font-size:13px;color:var(--ats-green)}
.vsm-jobcard__go{font-size:12.5px;font-weight:700;color:var(--ats-blue)}
.vsm-board__empty,.vsm-board__noresults{grid-column:1/-1;text-align:center;padding:56px 20px;color:var(--slate)}
.vsm-board__empty-art{font-size:38px;margin-bottom:8px}
.vsm-board__empty h3,.vsm-board__noresults h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:20px;color:var(--ink);margin:0 0 6px}

/* ============================================================
   APPLY MODAL
   ============================================================ */
.vsm-ats-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;
  padding:20px;font-family:'Inter',system-ui,sans-serif}
.vsm-ats-modal__scrim{position:absolute;inset:0;background:rgba(10,37,64,.5);backdrop-filter:blur(3px);animation:vsm-fade .2s}
.vsm-ats-modal__card{position:relative;width:min(520px,100%);max-height:92vh;overflow-y:auto;background:#fff;
  border-radius:var(--r3);box-shadow:var(--shadow-l);animation:vsm-pop .28s cubic-bezier(.2,.9,.3,1.1)}
@keyframes vsm-pop{from{transform:translateY(16px) scale(.98);opacity:.5}to{transform:none;opacity:1}}
.vsm-ats-modal__head{padding:24px 26px 0}
.vsm-ats-modal__eyebrow{font-family:'Space Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ats-blue)}
.vsm-ats-modal__title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:23px;margin:6px 0 2px;letter-spacing:-.02em}
.vsm-ats-modal__sub{font-size:13.5px;color:var(--slate)}
.vsm-ats-modal__x{position:absolute;top:18px;right:18px;width:36px;height:36px;border-radius:10px;
  border:1px solid var(--line);background:#fff;cursor:pointer;font-size:15px;color:var(--slate)}
.vsm-ats-modal__body{padding:20px 26px 26px;display:flex;flex-direction:column;gap:14px}
.vsm-ats-modal__body .vsm-ats__f2{gap:12px}
.vsm-ats__drop{border:1.5px dashed var(--line);border-radius:12px;padding:16px;text-align:center;
  cursor:pointer;transition:.15s;background:var(--paper)}
.vsm-ats__drop:hover{border-color:var(--ink);background:#fff}
.vsm-ats__drop.is-set{border-style:solid;border-color:var(--ats-green);background:#f2fbf7}
.vsm-ats__drop b{font-size:13.5px}
.vsm-ats__drop small{display:block;color:var(--slate);font-size:12px;margin-top:3px}
.vsm-ats-modal__foot{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:6px}
.vsm-ats-modal__note{font-size:11.5px;color:var(--slate2);flex:1 1 auto}
.vsm-ats-modal__success{text-align:center;padding:40px 26px}
.vsm-ats-modal__success-art{width:66px;height:66px;border-radius:50%;background:#e8f7f0;color:var(--ats-green);
  display:grid;place-items:center;font-size:32px;margin:0 auto 16px}
.vsm-ats-modal__success h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:22px;margin:0 0 6px}
.vsm-ats-modal__success p{color:var(--slate);font-size:14px;margin:0 0 20px}

/* ============================================================
   CANDIDATE TRACKER  [vsm_my_applications]
   ============================================================ */
.vsm-ats-mine{font-family:'Inter',system-ui,sans-serif;color:var(--ink);display:flex;flex-direction:column;gap:10px}
.vsm-appline{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r2);box-shadow:var(--shadow-s);padding:16px 18px}
.vsm-appline__main{flex:1 1 auto;min-width:0}
.vsm-appline__job{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:16px;margin:0;text-decoration:none;color:var(--ink)}
.vsm-appline__job:hover{color:var(--ats-blue)}
.vsm-appline__co{font-size:13px;color:var(--slate);font-weight:600}
.vsm-appline__right{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.vsm-appline__stage{font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;background:var(--sand);color:var(--ink)}
.vsm-appline__stage[data-s=hired]{background:#e8f7f0;color:var(--ats-green)}
.vsm-appline__stage[data-s=rejected],.vsm-appline__stage[data-s=withdrawn]{background:#f1f2f5;color:var(--slate)}
.vsm-appline__when{font-size:11.5px;color:var(--slate2);font-weight:600}
.vsm-appline__wd{border:0;background:none;color:var(--coral-d);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}
.vsm-ats-mine__empty{text-align:center;padding:48px 20px;background:#fff;border:1px dashed var(--line);border-radius:var(--r2);color:var(--slate)}
.vsm-ats-mine__empty h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:19px;color:var(--ink);margin:0 0 6px}

/* ---------- Dashboard-injected tab ---------- */
.vsm-tab--hiring .vsm-tab__count{background:var(--ats-blue)}
.vsm-tab--apps .vsm-tab__count{background:var(--ats-blue)}
#vsmAtsConsole{margin-top:4px}

/* ---------- Responsive ---------- */
@media(max-width:720px){
  .vsm-ats__stats{grid-template-columns:repeat(2,1fr)}
  .vsm-ats__f3,.vsm-ats__f4,.vsm-ats__radios,.vsm-cd__contact{grid-template-columns:1fr}
  .vsm-jobrow{flex-wrap:wrap}
  .vsm-jobrow__stats{order:3;width:100%;justify-content:flex-start;gap:26px;padding-top:8px;border-top:1px solid var(--line)}
  .vsm-ats__col{flex-basis:82vw}
}

/* ---------- Drag affordances (pipeline) ---------- */
.vsm-ats__draghint{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:10px 14px;
  background:#eef4ff;border:1px solid #d7e2fb;border-radius:12px;font-size:12.5px;font-weight:600;
  color:var(--ats-blue);line-height:1.4}
.vsm-ats__draghint-ic{font-size:14px;letter-spacing:1px;opacity:.7;flex:0 0 auto}
.vsm-cand{position:relative}
.vsm-cand__grip{position:absolute;top:8px;right:9px;font-size:12px;letter-spacing:1px;color:var(--slate2);
  opacity:0;transition:opacity .15s;pointer-events:none}
.vsm-cand:hover .vsm-cand__grip{opacity:.6}
/* While a card is being dragged, outline every column so the drop targets are
   obvious — this is what makes "move to the next stage" read at a glance. */
.vsm-ats__board.is-moving .vsm-ats__col{outline:1.5px dashed var(--line);outline-offset:-4px}
.vsm-ats__board.is-moving .vsm-ats__col.is-drop{outline:2px dashed var(--ats-blue);background:#eef4ff}

/* ============================================================
   FIXES — drawer layout, close controls, responsive
   ============================================================ */

/* Candidate drawer: make the injected content a full-height flex column so the
   header + stage bar stay put, the body scrolls, and the Reject / Mark-hired
   footer is always pinned in view (previously it overflowed off-screen). */
#vsmAtsCand{display:flex;flex-direction:column;height:100%;min-height:0}
#vsmAtsCand .vsm-cd__head,
#vsmAtsCand .vsm-cd__stagebar,
#vsmAtsCand .vsm-cd__foot{flex:0 0 auto}
#vsmAtsCand .vsm-cd__body{flex:1 1 auto;overflow-y:auto;min-height:0}

/* Role status dropdown in the pipeline header */
.vsm-ats__rolestate{height:42px;border:1.5px solid var(--line);border-radius:var(--r1);padding:0 12px;
  font-family:inherit;font-weight:700;font-size:13px;background:#fff;cursor:pointer;color:var(--ink);outline:none}
.vsm-ats__rolestate:focus{border-color:var(--ink)}

/* Inline pause/close/publish actions on each role row */
.vsm-jobrow__actions{display:flex;gap:6px;flex:0 0 auto}
.vsm-jobrow__act{height:32px;padding:0 12px;border-radius:8px;border:1.5px solid var(--line);background:#fff;
  font-family:inherit;font-weight:700;font-size:12px;color:var(--slate);cursor:pointer;white-space:nowrap;
  transition:.15s}
.vsm-jobrow__act:hover{border-color:var(--ink);color:var(--ink)}
.vsm-jobrow__act.is-close{color:var(--coral-d);border-color:#f3d3ca}
.vsm-jobrow__act.is-close:hover{background:#fff5f2;border-color:var(--coral)}
.vsm-jobrow__act.is-pub{color:var(--ats-green);border-color:#bfe9d6}
.vsm-jobrow__act.is-pub:hover{background:#e8f7f0;border-color:var(--ats-green)}

/* ---------- Responsive: drawers & console on small screens ---------- */
@media(max-width:600px){
  .vsm-ats__drawer-panel,
  .vsm-ats__drawer--wide .vsm-ats__drawer-panel{width:100%}
  .vsm-cd__head,.vsm-cd__stagebar,.vsm-cd__body,.vsm-cd__foot{padding-left:16px;padding-right:16px}
  .vsm-ats__drawer-body,.vsm-ats__drawer-head,.vsm-ats__drawer-foot{padding-left:16px;padding-right:16px}
  /* Action footers wrap and each button grows so nothing gets clipped. */
  .vsm-cd__foot,.vsm-ats__drawer-foot{flex-wrap:wrap}
  .vsm-cd__foot .vsm-ats-btn,.vsm-ats__drawer-foot .vsm-ats-btn{flex:1 1 auto;min-width:120px}
  .vsm-cd__stagebar .vsm-cd__stars{margin-left:0}
  /* Pipeline header tools stack neatly */
  .vsm-ats__pipehead{gap:8px}
  .vsm-ats__pipetools{flex-wrap:wrap;width:100%}
  .vsm-ats__search input{width:100%}
  .vsm-ats__search{flex:1 1 100%}
  /* Role rows: actions drop under the stats on their own line */
  .vsm-jobrow__actions{order:4;width:100%;padding-top:8px;border-top:1px solid var(--line)}
  .vsm-jobrow__go,.vsm-jobrow__menu{order:5}
  .vsm-board__search{flex-basis:100%}
}
/* Very short viewports: keep the drawer usable by letting the whole panel
   scroll if the body + fixed regions still don't fit. */
@media(max-height:560px){
  .vsm-ats__drawer-panel{overflow-y:auto}
}

/* ==========================================================================
   Openings editor (replaces the recruiter console / CRM)
   ========================================================================== */
.op{--op-line:var(--line,#e6e9ef);--op-ink:var(--ink,#0a2540);--op-slate:var(--slate,#5a6b7a)}
.op-load{padding:24px 4px;color:var(--op-slate);font-size:14px}
.op-empty{padding:28px 20px;text-align:center;border:1px dashed var(--op-line);border-radius:14px}
.op-empty h3{margin:0 0 6px;font-size:17px;color:var(--op-ink)}
.op-empty p{margin:0 auto 14px;max-width:420px;color:var(--op-slate);font-size:13.5px;line-height:1.55}

.op-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;
  flex-wrap:wrap;margin-bottom:16px}
.op-title{margin:0;font-size:19px;color:var(--op-ink)}
.op-sub{margin:2px 0 0;color:var(--op-slate);font-size:13px}
.op-head__r{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.op-co{height:38px;border:1.5px solid var(--op-line);border-radius:10px;padding:0 10px;
  background:#fff;font-size:14px;color:var(--op-ink)}

.op-list{display:flex;flex-direction:column;gap:10px}
.op-card{display:flex;gap:14px;align-items:center;justify-content:space-between;
  border:1px solid var(--op-line);border-radius:14px;padding:14px 16px;background:#fff;flex-wrap:wrap}
.op-card__main{min-width:0;flex:1 1 260px}
.op-card__title{font-weight:700;font-size:15px;color:var(--op-ink);display:flex;align-items:center;gap:8px}
.op-card__meta{color:var(--op-slate);font-size:12.5px;margin:3px 0 5px}
.op-card__link{font-size:12.5px;font-weight:600;color:var(--teal,#12b5b0);text-decoration:none;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:100%}
.op-card__link--warn{color:#c2410c}
.op-card__act{display:flex;gap:8px;flex:0 0 auto}
.op-badge{font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;
  padding:2px 8px;border-radius:999px}
.op-badge--open{background:rgba(18,181,176,.14);color:#0f766e}
.op-badge--closed{background:rgba(90,107,122,.12);color:var(--op-slate)}
.op-none{padding:22px 4px;color:var(--op-slate);font-size:13.5px}

/* editor overlay */
.op-editor{position:fixed;inset:0;z-index:100000;display:flex;align-items:flex-start;
  justify-content:center;padding:5vh 16px;background:rgba(10,37,64,.42);overflow:auto}
.op-editor__card{width:100%;max-width:560px;background:#fff;border-radius:18px;
  box-shadow:0 24px 60px -12px rgba(10,37,64,.4);padding:20px 22px 22px}
.op-editor__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.op-editor__top h3{margin:0;font-size:18px;color:var(--op-ink)}
.op-x{border:0;background:none;font-size:26px;line-height:1;color:var(--op-slate);cursor:pointer;padding:0 4px}
.op-f{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}
.op-f>span{font-size:12px;font-weight:700;color:var(--op-slate)}
.op-f>span i{color:#dc2626;font-style:normal}
.op-f input,.op-f textarea,.op-f select{width:100%;border:1.5px solid var(--op-line);border-radius:10px;
  padding:10px 12px;font-size:14px;font-family:inherit;color:var(--op-ink);background:#fff;
  outline:none;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.op-f textarea{resize:vertical;min-height:110px}
.op-f input:focus,.op-f textarea:focus,.op-f select:focus{
  border-color:var(--teal,#12b5b0);box-shadow:0 0 0 3px rgba(18,181,176,.16)}
.op-f small{color:var(--op-slate);font-size:11.5px;line-height:1.45}
.op-f__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.op-editor__act{display:flex;align-items:center;gap:10px;margin-top:6px}

.op-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:100001;
  background:var(--op-ink);color:#fff;font-size:13.5px;font-weight:600;padding:11px 18px;
  border-radius:12px;box-shadow:0 12px 30px -8px rgba(10,37,64,.5)}

@media (max-width:560px){
  .op-f__grid{grid-template-columns:1fr}
  .op-card__act{width:100%}
  .op-card__act .vsm-ats-btn{flex:1 1 auto}
}
