/* =========================================================
   HRBP 工作台 · Joy Media 风格
   深色海军蓝侧边栏 + 浅灰主区 + 蓝色胶囊选中态
   ========================================================= */
:root{
  --bg:#f4f6fa;
  --panel:#ffffff;
  --panel-2:#f7f9fc;
  --line:#e4e8ef;
  --line-2:#eef1f6;
  --text:#1b2333;
  --text-2:#5b667a;
  --text-3:#8b95a7;
  --brand:#2f5bd7;
  --brand-soft:#eaf0ff;
  --magenta:#e11d8f;
  --teal:#0d9488;
  --teal-soft:#e3f6f3;
  --amber:#c2760a;
  --amber-soft:#fdf2dd;
  --rose:#d92d4b;
  --rose-soft:#fdeaee;
  --violet:#7c3aed;
  --violet-soft:#f1e9fe;
  --green:#16794a;
  --green-soft:#e4f5ec;
  --radius:12px;
  --shadow:0 1px 2px rgba(18,28,52,.05), 0 8px 24px rgba(18,28,52,.05);
  /* 侧边栏深色 */
  --side-1:#0f1c3a;
  --side-2:#0b1530;
  --side-text:#b9c3da;
  --side-text-2:#8a97b5;
  --side-line:rgba(255,255,255,.08);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro SC","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;
  font-size:13.5px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}

.app{display:flex;min-height:100vh;}

/* ===== Sidebar（深色海军蓝） ===== */
.sidebar{
  width:230px;flex:0 0 230px;
  background:linear-gradient(180deg,var(--side-1) 0%,var(--side-2) 100%);
  border-right:1px solid var(--side-line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;
  color:var(--side-text);
}
.brand{display:flex;gap:11px;align-items:center;padding:18px 16px 16px;border-bottom:1px solid var(--side-line);}
.brand-mark{
  width:36px;height:36px;border-radius:10px;
  background:linear-gradient(135deg,#2f5bd7 0%,#e11d8f 100%);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:17px;letter-spacing:.5px;
  box-shadow:0 6px 16px rgba(47,91,215,.35);
}
.brand-text{min-width:0;}
.brand-title{font-weight:700;font-size:15px;letter-spacing:.2px;color:#fff;}
.brand-sub{font-size:11px;color:var(--side-text-2);margin-top:1px;}

.nav{padding:12px 10px;flex:1;overflow-y:auto;}
.nav-item{
  display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:9px;
  color:var(--side-text);cursor:pointer;font-size:13px;margin-bottom:3px;user-select:none;
  transition:background .15s,color .15s;
}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff;}
.nav-item.active{
  background:var(--brand);color:#fff;font-weight:600;
  box-shadow:0 6px 16px rgba(47,91,215,.38);
}
.ni-ico{width:18px;text-align:center;font-size:13px;opacity:.9;flex:0 0 18px;}
.nav-group{margin:2px 0;}
.nav-group-title{
  display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:9px;
  color:var(--side-text-2);font-size:12px;font-weight:600;letter-spacing:.4px;cursor:pointer;user-select:none;
  text-transform:uppercase;
}
.nav-group-title:hover{background:rgba(255,255,255,.05);color:var(--side-text);}
.caret{margin-left:auto;transition:transform .18s;font-size:14px;color:var(--side-text-2);}
.nav-group.open .caret{transform:rotate(90deg);}
.nav-sub{display:none;padding-left:16px;border-left:1px solid var(--side-line);margin-left:17px;margin-top:2px;}
.nav-group.open .nav-sub{display:block;}
.nav-item.sub{font-size:12.5px;padding:7px 12px;font-weight:400;color:var(--side-text);}
.nav-item.sub.active{color:#fff;}
.badge-dot{width:7px;height:7px;border-radius:50%;background:var(--magenta);margin-left:auto;box-shadow:0 0 0 3px rgba(225,29,143,.18);}

.side-foot{padding:14px 14px;border-top:1px solid var(--side-line);}
.role-tag{
  font-size:11.5px;color:var(--side-text-2);margin-bottom:10px;
  background:rgba(255,255,255,.05);border:1px solid var(--side-line);
  padding:8px 11px;border-radius:9px;line-height:1.4;
}
.role-tag b{color:#fff;font-weight:600;}
.side-foot .btn{
  width:100%;background:transparent;border-color:rgba(255,255,255,.16);color:var(--side-text);
}
.side-foot .btn:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:#fff;}
.side-note{font-size:10.5px;color:var(--side-text-2);margin-top:10px;line-height:1.5;}

/* ===== Main ===== */
.main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg);}
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 26px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;
}
.crumb{font-size:11.5px;color:var(--text-3);letter-spacing:.3px;}
.page-title{margin:1px 0 0;font-size:19px;font-weight:650;letter-spacing:-.2px;}
.topbar-right{display:flex;align-items:center;gap:14px;}
.today{font-size:12px;color:var(--text-2);}
.avatar{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,#2f5bd7,#e11d8f);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;letter-spacing:.3px;
  box-shadow:0 4px 12px rgba(47,91,215,.28);
}
.view{padding:20px 26px 10px;flex:1;}
.foot{padding:14px 26px 26px;font-size:11px;color:var(--text-3);}

/* 角色切换（顶栏） */
.role-switch{
  display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-2);
  background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:6px 11px;
}
.role-switch select{
  border:none;background:transparent;font:inherit;font-size:12.5px;color:var(--text);
  font-weight:600;cursor:pointer;padding-right:2px;
}
.role-switch select:focus{outline:none;}

/* ===== Layout helpers ===== */
.grid{display:grid;gap:14px;}
.g4{grid-template-columns:repeat(4,1fr);}
.g3{grid-template-columns:repeat(3,1fr);}
.g2{grid-template-columns:repeat(2,1fr);}
.g-2-1{grid-template-columns:2fr 1fr;}
.g-1-2{grid-template-columns:1fr 2fr;}
@media(max-width:1180px){.g4{grid-template-columns:repeat(2,1fr);}.g3,.g2,.g-2-1,.g-1-2{grid-template-columns:1fr;}}

.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line-2);}
.card-t{font-size:13.5px;font-weight:650;letter-spacing:-.1px;}
.card-sub{font-size:11px;color:var(--text-3);font-weight:400;margin-top:1px;}
.card-b{padding:14px 16px;}
.card-b.tight{padding:6px 0 0;}

/* KPI */
.kpi{padding:14px 16px;}
.kpi-label{font-size:11.5px;color:var(--text-3);display:flex;align-items:center;gap:6px;}
.kpi-val{font-size:26px;font-weight:700;letter-spacing:-.8px;margin-top:4px;line-height:1.15;font-variant-numeric:tabular-nums;}
.kpi-val small{font-size:13px;font-weight:600;color:var(--text-3);margin-left:2px;}
.kpi-foot{font-size:11px;color:var(--text-2);margin-top:5px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.trend{font-weight:650;}
.up{color:var(--green);} .down{color:var(--rose);} .flat{color:var(--text-3);}

/* pills / tags */
.pill{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.7;white-space:nowrap;}
.p-blue{background:var(--brand-soft);color:var(--brand);}
.p-teal{background:var(--teal-soft);color:var(--teal);}
.p-amber{background:var(--amber-soft);color:var(--amber);}
.p-rose{background:var(--rose-soft);color:var(--rose);}
.p-violet{background:var(--violet-soft);color:var(--violet);}
.p-green{background:var(--green-soft);color:var(--green);}
.p-gray{background:#eef1f6;color:var(--text-2);}

/* 招聘进度总览 8 宫格 */
.ov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
@media(max-width:1180px){.ov-grid{grid-template-columns:repeat(2,1fr);}}
.ov{background:var(--panel-2);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;}
.ov-l{font-size:11px;color:var(--text-3);}
.ov-v{font-size:23px;font-weight:700;letter-spacing:-.5px;margin-top:3px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text);}
.ov-v small{font-size:11px;font-weight:600;color:var(--text-3);margin-left:3px;}
/* 当 .ov-v 继承 pill 配色类（如 p-rose）时，仅取颜色、保持块级布局 */
.ov-v.p-rose{display:block;background:transparent;padding:0;border-radius:0;font-weight:700;line-height:1.1;white-space:normal;color:var(--rose);}

/* 快捷操作 */
.quickops{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.quickops-t{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;margin-right:2px;}
.qa{
  border:1px solid var(--line);background:#fff;color:var(--text);border-radius:9px;
  padding:8px 14px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
  transition:transform .12s,box-shadow .15s,border-color .15s;box-shadow:var(--shadow);
}
.qa:hover{transform:translateY(-1px);border-color:#d3dae6;box-shadow:0 6px 16px rgba(18,28,52,.08);}
.qa-blue{background:var(--brand);border-color:var(--brand);color:#fff;}
.qa-blue:hover{background:#2749b5;border-color:#2749b5;}
.qa-ghost{background:#fff;}

/* Tables */
table{width:100%;border-collapse:collapse;font-size:12.5px;}
thead th{
  text-align:left;font-weight:600;color:var(--text-3);font-size:11px;letter-spacing:.4px;
  padding:9px 12px;border-bottom:1px solid var(--line);background:var(--panel-2);white-space:nowrap;
}
tbody td{padding:9px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#fafcff;}
.t-scroll{overflow-x:auto;}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;}
.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;}
.muted{color:var(--text-3);}
.strong{font-weight:650;}

/* 只读单元格（owner 对招聘专员只读） */
.ro{background:#f6f8fb;color:var(--text-2);cursor:not-allowed;}

/* Editable table */
.etable input,.etable select,.etable textarea{
  width:100%;border:1px solid transparent;background:transparent;border-radius:6px;
  padding:5px 6px;font:inherit;font-size:12.5px;color:var(--text);
}
.etable input:hover,.etable select:hover{border-color:var(--line);background:#fff;}
.etable input:focus,.etable select:focus,.etable textarea:focus{
  outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px rgba(47,91,215,.10);
}
.etable td{padding:4px 6px;}
.row-del{
  border:none;background:transparent;color:var(--text-3);cursor:pointer;font-size:15px;
  padding:2px 7px;border-radius:6px;line-height:1;
}
.row-del:hover{background:var(--rose-soft);color:var(--rose);}

/* Buttons */
.btn{
  border:1px solid var(--line);background:#fff;color:var(--text);border-radius:8px;
  padding:6px 13px;font:inherit;font-size:12.5px;cursor:pointer;font-weight:550;
}
.btn:hover{background:var(--panel-2);border-color:#d3dae6;}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;}
.btn-primary:hover{background:#2749b5;border-color:#2749b5;}
.btn-ghost{background:transparent;}
.btn-sm{padding:4px 10px;font-size:12px;}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}

/* toolbar */
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;}
.toolbar .spacer{flex:1;}
.input,.select{
  border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px;background:#fff;color:var(--text);
}
.input:focus,.select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(47,91,215,.10);}

/* JD 工具栏 / 操作 */
.jd-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.jd-toolbar .saved-tip{margin-left:auto;}
.jd-actions{display:flex;gap:8px;}
.link-btn{border:none;background:transparent;color:var(--brand);cursor:pointer;font:inherit;font-size:12px;font-weight:600;padding:2px 4px;border-radius:5px;}
.link-btn:hover{background:var(--brand-soft);}
.link-btn.danger{color:var(--rose);}
.link-btn.danger:hover{background:var(--rose-soft);}

/* list rows */
.lrow{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line-2);}
.lrow:last-child{border-bottom:none;}
.lrow:hover{background:#fafcff;}
.ava{
  width:30px;height:30px;border-radius:50%;flex:0 0 30px;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:650;background:var(--brand-soft);color:var(--brand);
}
.ava.t{background:var(--violet-soft);color:var(--violet);}
.ava.r{background:var(--rose-soft);color:var(--rose);}
.lrow-main{flex:1;min-width:0;}
.lrow-title{font-size:12.8px;font-weight:600;}
.lrow-sub{font-size:11px;color:var(--text-3);}
.lrow-right{text-align:right;font-size:11.5px;color:var(--text-2);white-space:nowrap;}

/* progress bar */
.pbar{height:6px;border-radius:99px;background:#edf0f6;overflow:hidden;}
.pbar > i{display:block;height:100%;border-radius:99px;}

/* todo */
.todo{display:flex;gap:10px;align-items:flex-start;padding:9px 16px;border-bottom:1px solid var(--line-2);}
.todo:last-child{border-bottom:none;}
.todo input[type=checkbox]{margin-top:3px;width:15px;height:15px;accent-color:var(--brand);cursor:pointer;}
.todo.done .todo-t{text-decoration:line-through;color:var(--text-3);}
.todo-t{font-size:12.8px;font-weight:550;}
.todo-m{font-size:11px;color:var(--text-3);display:flex;gap:8px;flex-wrap:wrap;margin-top:1px;}

/* section title */
.sec{margin:22px 0 10px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.sec h2{font-size:15px;margin:0;font-weight:650;letter-spacing:-.2px;}
.sec p{margin:0;font-size:11.5px;color:var(--text-3);}
.sec:first-child{margin-top:0;}

/* callout */
.callout{border-radius:10px;padding:11px 14px;font-size:12.3px;line-height:1.65;border:1px solid;}
.co-warn{background:var(--amber-soft);border-color:#f0dcae;color:#6b4708;}
.co-risk{background:var(--rose-soft);border-color:#f6c9d2;color:#8a1b31;}
.co-info{background:var(--brand-soft);border-color:#cfdcfb;color:#1f3d94;}
.co-ok{background:var(--green-soft);border-color:#bfe6d0;color:#0f5333;}
.callout b{font-weight:700;}

/* JD card */
.jd{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;}
.jd-h{padding:12px 14px;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;gap:10px;align-items:flex-start;cursor:pointer;}
.jd-h:hover{background:var(--panel-2);}
.jd-title{font-size:13.5px;font-weight:650;}
.jd-meta{font-size:11px;color:var(--text-3);margin-top:2px;}
.jd-body{display:none;padding:14px;font-size:12.4px;line-height:1.75;background:var(--panel-2);}
.jd.open .jd-body{display:block;}
.jd-body h5{margin:12px 0 4px;font-size:12px;color:var(--text-2);letter-spacing:.3px;text-transform:uppercase;}
.jd-body h5:first-child{margin-top:0;}
.jd-body ul{margin:0;padding-left:18px;}
.jd-body li{margin:2px 0;}

/* 9 box */
.ninebox{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.nb{border:1px solid var(--line);border-radius:9px;padding:9px;min-height:104px;background:#fff;}
.nb-h{font-size:10.5px;font-weight:700;letter-spacing:.3px;margin-bottom:6px;}
.nb-n{display:block;font-size:11.5px;padding:3px 6px;border-radius:6px;background:var(--panel-2);margin-bottom:3px;border:1px solid var(--line-2);}
.nb.s1{background:#fdf6f7;} .nb.s2{background:#fdfaf2;} .nb.s3{background:#f4faf6;}

/* comp band bar */
.band{display:flex;align-items:center;gap:10px;}
.band-track{flex:1;height:26px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:7px;position:relative;overflow:hidden;}
.band-fill{position:absolute;top:0;bottom:0;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;color:#fff;}
.axis{display:flex;justify-content:space-between;font-size:10px;color:var(--text-3);margin-top:4px;}

/* misc */
.kv{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--line-2);font-size:12.3px;gap:12px;}
.kv:last-child{border-bottom:none;}
.kv span:first-child{color:var(--text-2);}
.kv span:last-child{font-weight:600;font-variant-numeric:tabular-nums;flex:0 0 auto;}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--text-2);margin-top:8px;}
.legend i{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:5px;}
.empty{padding:28px;text-align:center;color:var(--text-3);font-size:12.5px;}
.hint{font-size:11px;color:var(--text-3);margin-top:8px;}
svg{display:block;max-width:100%;}
.saved-tip{font-size:11.5px;color:var(--green);opacity:0;transition:opacity .25s;}
.saved-tip.on{opacity:1;}

/* ===== JD 录入 / 编辑弹窗 ===== */
.modal-mask{
  position:fixed;inset:0;background:rgba(15,23,42,.5);
  display:none;align-items:center;justify-content:center;z-index:1000;padding:20px;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
}
.modal-mask.open{display:flex;}
.modal{
  background:#fff;width:660px;max-width:100%;max-height:90vh;overflow:auto;
  border-radius:14px;box-shadow:0 24px 70px rgba(15,23,42,.38);
  animation:modalIn .18s ease-out;
}
@keyframes modalIn{from{opacity:0;transform:translateY(8px) scale(.985);}to{opacity:1;transform:none;}}
.modal-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1;}
.modal-h span{font-size:15px;font-weight:700;letter-spacing:-.1px;}
.modal-x{border:none;background:transparent;font-size:22px;line-height:1;color:var(--text-3);cursor:pointer;padding:0 4px;border-radius:6px;}
.modal-x:hover{background:var(--panel-2);color:var(--text);}
.modal-b{padding:18px 20px;}
.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line-2);}

/* 弹窗表单 */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;}
.f-label{display:block;font-size:11.5px;color:var(--text-2);font-weight:600;margin:12px 0 5px;letter-spacing:.2px;}
.form-grid .f-label{margin:0 0 5px;}
.input.ta{width:100%;min-height:auto;resize:vertical;line-height:1.6;padding:8px 10px;font-family:inherit;}

/* 可编辑表格内 textarea（沟通记录 / 备注） */
.etable textarea.et-input.ta{min-height:46px;line-height:1.5;resize:vertical;background:#fff;border-color:var(--line-2);}

/* 简历附件单元格 */
.file-cell{vertical-align:top;}
.file-in{display:block;width:100%;font-size:11px;color:var(--text-2);margin-bottom:4px;}
.file-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:11px;}
.file-link{
  display:inline-flex;align-items:center;gap:3px;max-width:150px;
  color:var(--brand);text-decoration:none;background:var(--brand-soft);
  padding:2px 7px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.file-link:hover{text-decoration:underline;}
.file-x{
  border:none;background:var(--rose-soft);color:var(--rose);cursor:pointer;
  font-size:13px;line-height:1;padding:1px 6px;border-radius:6px;
}
.file-x:hover{background:var(--rose);color:#fff;}

/* ===== 每日简历推荐 · 卡片式台账 ===== */
.resume-cards{display:flex;flex-direction:column;gap:12px;margin-top:4px;}
.rcard{
  border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;
  transition:box-shadow .15s ease,border-color .15s ease;
}
.rcard:hover{box-shadow:0 6px 18px rgba(20,30,60,.08);border-color:#d4dbe7;}
.rcard-h{
  display:flex;align-items:center;gap:12px;padding:12px 14px;
  border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fafbff,#fff);
}
.rcard-id{flex:1;min-width:0;}
.r-name{
  display:block;width:100%;border:none;background:transparent;
  font-size:15px;font-weight:650;color:var(--text);padding:1px 0;
}
.r-name:focus{outline:none;}
.r-name::placeholder{color:var(--text-3);font-weight:500;}
.r-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap;}
.r-meta input{
  border:1px solid transparent;background:transparent;border-radius:6px;
  font-size:12.5px;color:var(--text-2);padding:3px 7px;width:auto;min-width:64px;
}
.r-meta input:hover,.r-meta input:focus{border-color:var(--line);background:#fff;outline:none;}
.r-meta input::placeholder{color:var(--text-3);}
.r-meta .dot{color:var(--text-3);}
.stage-pill{
  -webkit-appearance:none;appearance:none;border:1px solid transparent;border-radius:999px;
  padding:5px 14px;font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;
  box-shadow:0 1px 2px rgba(0,0,0,.04);flex:0 0 auto;
}
.stage-pill:focus{outline:none;box-shadow:0 0 0 3px rgba(47,91,215,.18);}
.r-del{
  border:none;background:transparent;color:var(--text-3);cursor:pointer;font-size:17px;
  padding:2px 8px;border-radius:8px;line-height:1;flex:0 0 auto;
}
.r-del:hover{background:var(--rose-soft);color:var(--rose);}
.rcard-b{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;padding:13px 14px;}
.rfield{display:flex;flex-direction:column;gap:5px;min-width:0;}
.rfield > label{font-size:11.5px;font-weight:600;color:var(--text-3);letter-spacing:.02em;}
.rfield textarea{
  border:1px solid var(--line);border-radius:8px;padding:7px 9px;
  font:inherit;font-size:12.5px;line-height:1.55;resize:vertical;width:100%;background:#fff;color:var(--text);
}
.rfield textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(47,91,215,.10);}
.rfield textarea::placeholder{color:var(--text-3);}
.rfile{grid-column:1 / -1;}
.rfile-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.rfile-row input[type=file]{font-size:11.5px;color:var(--text-2);}
.rcard-add{
  display:block;width:100%;margin-top:12px;padding:11px;border:1px dashed #c5cee0;border-radius:10px;
  background:#fbfcfe;color:var(--brand);font:inherit;font-size:13px;font-weight:600;cursor:pointer;
  transition:background .15s,border-color .15s;
}
.rcard-add:hover{background:var(--brand-soft);border-color:var(--brand);}

/* 窄屏：卡片内字段单列 */
@media (max-width:680px){
  .rcard-b{grid-template-columns:1fr;}
}

/* 台账卡片头部：招聘负责人下拉 */
.owner-pill{
  -webkit-appearance:none;appearance:none;border:1px solid var(--line);border-radius:999px;
  padding:4px 12px;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;color:var(--text-2);
  background:#f4f6fa;flex:0 0 auto;margin-right:6px;
}
.owner-pill:focus{outline:none;box-shadow:0 0 0 3px rgba(47,91,215,.12);border-color:var(--brand);}

/* ===== 简历视图：台账 / 看板 切换 ===== */
.resume-tabs{display:inline-flex;gap:0;margin:16px 0 0;padding:3px;background:#eef1f7;border-radius:10px;}
.resume-tab{
  border:none;background:transparent;cursor:pointer;font:inherit;font-size:13px;font-weight:600;
  color:var(--text-2);padding:7px 18px;border-radius:8px;transition:all .15s;
}
.resume-tab.active{background:#fff;color:var(--brand);box-shadow:0 1px 3px rgba(20,30,60,.10);}

/* ===== 看板 ===== */
.kan-group-toggle{display:inline-flex;gap:0;margin:14px 0 14px;padding:3px;background:#eef1f7;border-radius:10px;}
.kg-btn{
  border:none;background:transparent;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;
  color:var(--text-2);padding:6px 16px;border-radius:8px;transition:all .15s;
}
.kg-btn.active{background:#fff;color:var(--brand);box-shadow:0 1px 3px rgba(20,30,60,.10);}

.kanban{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding:4px 2px 16px;scrollbar-width:thin;}
.kan-col{
  flex:0 0 240px;width:240px;background:#f5f7fb;border:1px solid var(--line);border-radius:14px;
  display:flex;flex-direction:column;max-height:calc(100vh - 230px);
}
.kan-col-h{
  display:flex;align-items:center;gap:8px;padding:11px 14px;font-size:13px;font-weight:700;color:var(--text);
  border-bottom:1px solid var(--line);position:sticky;top:0;
}
.kan-col-dot{width:9px;height:9px;border-radius:50%;background:var(--accent,#5b6b8c);flex:0 0 auto;}
.kan-col-n{margin-left:auto;background:#e3e8f2;color:var(--text-2);font-size:11.5px;font-weight:700;padding:1px 9px;border-radius:999px;}
.kan-col-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:60px;transition:background .15s;}
.kan-col-body.drag-over{background:rgba(47,91,215,.08);outline:2px dashed var(--brand);outline-offset:-6px;border-radius:10px;}
.kan-empty{font-size:12px;color:var(--text-3);text-align:center;padding:18px 8px;border:1px dashed var(--line);border-radius:10px;}

.kan-card{
  background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px 12px;cursor:grab;
  box-shadow:0 1px 2px rgba(20,30,60,.05);transition:box-shadow .15s,border-color .15s,opacity .15s;
}
.kan-card:hover{box-shadow:0 6px 16px rgba(20,30,60,.10);border-color:#d4dbe7;}
.kan-card.dragging{opacity:.45;}
.kan-card .kc-top{display:flex;align-items:center;gap:6px;}
.kan-card .kc-name{font-size:13.5px;font-weight:680;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kan-card .kc-file{font-size:12px;flex:0 0 auto;}
.kan-card .kc-meta{font-size:11.5px;color:var(--text-2);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kan-card .kc-foot{margin-top:8px;display:flex;align-items:center;}
.kc-pill{border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:650;}
.kc-owner{font-size:11px;font-weight:600;color:var(--text-2);background:#eef1f7;border-radius:999px;padding:2px 9px;}

.kan-col-add{
  display:block;width:calc(100% - 24px);margin:0 12px 12px;padding:9px;border:1px dashed #c5cee0;
  border-radius:10px;background:#fbfcfe;color:var(--brand);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;
}
.kan-col-add:hover{background:var(--brand-soft);border-color:var(--brand);}

@media (max-width:680px){
  .kan-col{flex:0 0 200px;width:200px;}
}

/* ===== 登录覆盖层 ===== */
.login-overlay{
  position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#0f1b3d 0%,#1b2c5e 55%,#26377a 100%);
}
.login-card{
  width:360px;max-width:92vw;background:#fff;border-radius:18px;padding:34px 30px 30px;
  box-shadow:0 24px 70px rgba(8,16,40,.45);text-align:center;
}
.login-brand{
  width:54px;height:54px;border-radius:14px;margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:26px;color:#fff;
  background:linear-gradient(135deg,var(--brand) 0%,var(--magenta) 100%);
}
.login-title{font-size:19px;font-weight:800;color:var(--text);margin:0 0 22px;}
.login-form{display:flex;flex-direction:column;gap:13px;text-align:left;}
.login-form .lf{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text-2);}
.login-form .lf input{
  border:1.5px solid var(--line);border-radius:9px;padding:11px 13px;font:inherit;font-weight:500;color:var(--text);
  background:#fafbfd;outline:none;transition:border-color .15s,box-shadow .15s;
}
.login-form .lf input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(47,91,215,.12);background:#fff;}
.login-btn{margin-top:6px;width:100%;justify-content:center;padding:12px;}
.login-err{color:#d23b3b;font-size:12.5px;font-weight:600;min-height:16px;}
.login-hint{font-size:12px;color:var(--text-3);text-align:center;line-height:1.5;}
.login-sub{font-size:14px;font-weight:700;color:var(--text);text-align:center;margin-bottom:2px;}

/* 顶栏用户框 */
.user-box{display:flex;align-items:center;gap:10px;}
.user-label{font-size:13px;font-weight:600;color:var(--text-2);}
