/* ============================================================
 * Apply form —— 内嵌在 job.html 的 Application 标签页中。
 *
 * 视觉：沿用 Careers 页的卡片/表单设计语言（圆角、--blue 主色、
 * --line 描边、--shadow）。不再包含整页布局或弹层样式。
 * ============================================================ */

/* —— 页头 —— */
.apply-head{margin:0 0 22px}
.apply-eyebrow{
  display:inline-block;
  font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue);
  margin:0 0 8px;
}
.apply-title{
  font-size:clamp(22px,3vw,30px);line-height:1.25;
  letter-spacing:-.01em;
  margin:0 0 10px;color:var(--ink);font-weight:800;
  word-break:break-word;
}
.apply-subtitle{
  margin:0 0 10px;font-size:13px;font-weight:600;
  color:var(--muted);
}
.apply-subtitle .apply-subtitle-loc{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 10px;border-radius:999px;background:var(--blue-50);color:var(--blue-600);
  margin-right:6px;
}
.apply-lead{
  margin:0;font-size:14px;line-height:1.65;color:var(--muted);
}

/* —— 表单卡片 —— */
.apply-form{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 18px 50px rgba(13,27,42,.08);
  padding:30px 30px 32px;
  display:flex;flex-direction:column;gap:18px;
  box-sizing:border-box;
}
.apply-field{display:flex;flex-direction:column;gap:8px}
.apply-label{font-size:14px;font-weight:700;color:var(--ink)}
.apply-required::after{content:" *";color:var(--blue);font-weight:800}

.apply-input,
.apply-textarea,
.apply-select{
  width:100%;
  padding:11px 14px;
  border:1px solid var(--line);border-radius:12px;
  font-size:15px;font-family:inherit;background:#fff;color:var(--ink);
  transition:.2s;box-sizing:border-box;
}
.apply-input:focus,
.apply-textarea:focus,
.apply-select:focus{
  outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-50);
}
.apply-textarea{min-height:88px;resize:vertical;line-height:1.55}
.apply-select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7A8C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}

/* —— 文件拖拽 —— */
.apply-drop{
  position:relative;
  border:1.5px dashed var(--line);
  border-radius:14px;
  padding:20px 18px;
  background:var(--zone-soft);
  transition:.2s;cursor:pointer;
}
.apply-drop:hover{border-color:var(--blue-300);background:var(--blue-50)}
.apply-drop.is-drag{border-color:var(--blue);background:var(--blue-50);transform:scale(1.005)}
.apply-drop input[type=file]{
  position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;
}
.apply-drop input[type=file][disabled]{cursor:not-allowed}
.apply-drop-empty{text-align:center}
.apply-drop-title{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:15px;font-weight:700;color:var(--ink);margin:0 0 4px;
}
.apply-drop-title svg{width:18px;height:18px;color:var(--blue)}
.apply-drop-or{font-size:13px;color:var(--muted);margin:0}
.apply-drop-hint{margin:8px 0 0;font-size:12px;color:var(--muted)}

.apply-drop.is-selected{
  border-style:solid;border-color:var(--blue);background:var(--blue-50);
}
.apply-file{display:flex;align-items:center;gap:12px}
.apply-file-icon{
  width:40px;height:40px;border-radius:10px;
  background:#fff;border:1px solid var(--blue-100);
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--blue);flex:0 0 auto;
}
.apply-file-icon svg{width:20px;height:20px}
.apply-file-meta{flex:1;min-width:0}
.apply-file-name{font-weight:700;font-size:14px;color:var(--ink);word-break:break-all;line-height:1.4}
.apply-file-size{font-size:12px;color:var(--muted);margin-top:2px}
.apply-file-actions{display:flex;gap:6px;flex:0 0 auto}
.apply-file-btn{
  background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:6px 12px;font-size:12px;font-weight:700;color:var(--ink-soft);
  cursor:pointer;font-family:inherit;transition:.15s;
}
.apply-file-btn:hover{border-color:var(--blue);color:var(--blue)}
.apply-file-btn.is-danger:hover{border-color:#B23A3A;color:#B23A3A}

/* —— 同意条款 —— */
.apply-consent{
  display:flex;align-items:flex-start;gap:10px;
  font-size:12px;line-height:1.6;color:var(--muted);
}
.apply-consent input[type=checkbox]{
  width:16px;height:16px;flex:0 0 auto;margin-top:3px;
  accent-color:var(--blue);
}

/* —— 行动按钮 —— */
.apply-actions{display:flex;gap:12px;align-items:center;margin-top:4px}
.apply-submit{
  flex:1;
  padding:13px 20px;
  background:var(--blue);color:#fff;
  border:none;border-radius:12px;
  font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;
  transition:.2s;
}
.apply-submit:hover{background:var(--blue-600)}
.apply-submit:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-50)}
.apply-submit:disabled{opacity:.55;cursor:not-allowed;transform:none}

/* —— 状态条 —— */
.apply-status{
  margin:0;font-size:13px;line-height:1.55;
  padding:10px 14px;border-radius:10px;border:1px solid transparent;
  word-break:break-word;
}
.apply-status.is-sending{background:#F2F6FF;border-color:#C8D8FF;color:var(--blue)}
.apply-status.is-success{background:#E9F8EE;border-color:#B7E5C4;color:#1A7F3A}
.apply-status.is-error{background:#FDECEC;border-color:#F4C0C0;color:#B23A3A}
.apply-status .apply-status-tip{
  display:block;margin-top:6px;font-size:12px;opacity:.85;
}

/* —— 响应式 —— */
@media(max-width:560px){
  .apply-page{padding:24px 0 56px}
  .apply-form{padding:22px 18px 24px;border-radius:14px}
  .apply-title{font-size:20px}
  .apply-actions{flex-direction:column-reverse;align-items:stretch}
  .apply-submit{width:100%}
}

/* —— 键盘可达性 —— */
.apply-submit:focus-visible,
.apply-file-btn:focus-visible{
  outline:none;
}

/* —— HTML hidden 比 .apply-file{display:flex} 优先级低，显式覆盖 —— */
.apply-drop [hidden]{display:none !important}

@media(prefers-reduced-motion:reduce){
  .apply-drop,.apply-drop.is-drag{transition:none;transform:none}
}
