:root { color-scheme: light; --blue:#1e69cf; --deep:#133961; --muted:#687e96; --line:#dce6f2; --mist:#f3f7fc; }
* { box-sizing:border-box; }
html { font-size:16px; }
body { margin:0; color:var(--deep); font-family:"Microsoft YaHei","PingFang SC",sans-serif; background:#f5f8fc; }
.apply-shell { min-height:100vh; display:flex; flex-direction:column; }
.apply-header { height:70px; display:flex; align-items:center; padding:0 max(24px,calc((100vw - 760px)/2)); background:#fff; border-bottom:1px solid var(--line); }
.apply-brand { display:flex; align-items:center; gap:10px; min-width:0; font-size:14px; font-weight:700; letter-spacing:.01em; }
.apply-brand-logo { display:block; flex:0 0 48px; width:48px; height:46px; object-fit:contain; }
.apply-brand > span:last-child { min-width:0; line-height:1.5; }
.apply-main { width:min(100% - 32px,680px); margin:0 auto; padding:38px 0 54px; flex:1; }
.apply-intro { margin:0 0 26px; }
.apply-intro p { margin:0; color:var(--muted); font-size:14px; line-height:1.7; }
.apply-card { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:0 16px 40px rgba(23,66,112,.06); }
.apply-card-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; padding:25px 30px 20px; border-bottom:1px solid var(--line); }
.apply-card-heading h2 { margin:0; font-size:21px; }
.apply-required-note { color:var(--muted); font-size:12px; white-space:nowrap; }
#apply-form { padding:24px 30px 30px; }
.apply-fields { display:grid; grid-template-columns:1fr 1fr; gap:20px 18px; }
.apply-full { grid-column:1 / -1; }
.apply-field { display:block; min-width:0; font-size:13px; font-weight:600; }
.apply-field > span { display:block; margin-bottom:8px; }
.apply-field b,.apply-upload-heading b { color:#db5c55; }
.apply-field input,.apply-field select { display:block; width:100%; height:46px; padding:0 13px; border:1px solid #ccdaea; border-radius:7px; background:#fff; color:var(--deep); font:inherit; font-weight:400; outline:none; }
.apply-field input:focus,.apply-field select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(30,105,207,.12); }
.apply-field input::placeholder { color:#97a8ba; }
.apply-field small { display:block; margin-top:6px; color:var(--muted); font-size:11px; font-weight:400; }
.apply-upload-block { margin-top:26px; padding-top:24px; border-top:1px solid var(--line); }
.apply-upload-heading { display:flex; justify-content:space-between; gap:8px; margin-bottom:11px; font-size:13px; font-weight:600; }
.apply-upload-heading > span:last-child { color:var(--muted); font-size:12px; font-weight:400; }
.apply-upload { display:flex; flex-direction:column; align-items:center; gap:5px; position:relative; padding:20px 12px; border:1px dashed #a9c6e9; border-radius:8px; background:#f7faff; text-align:center; cursor:pointer; }
.apply-upload:focus-within,.apply-upload:hover { border-color:var(--blue); background:#f1f7ff; }
.apply-upload-icon { display:flex; align-items:center; justify-content:center; width:35px; height:35px; margin-bottom:3px; border-radius:50%; background:#e4efff; color:var(--blue); font-size:22px; line-height:1; }
.apply-upload strong { color:var(--blue); font-size:14px; }
.apply-upload > span:not(.apply-upload-icon) { color:var(--muted); font-size:12px; }
.apply-upload input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.apply-file-name { margin-top:8px; overflow-wrap:anywhere; color:var(--muted); font-size:12px; }
.apply-consent { display:flex; align-items:flex-start; gap:8px; margin:24px 0 0; color:#5d7087; font-size:12px; line-height:1.6; cursor:pointer; }
.apply-consent input { flex:none; margin:2px 0 0; accent-color:var(--blue); width:16px; height:16px; }
.apply-feedback { min-height:20px; margin:17px 0 5px; color:var(--blue); font-size:12px; }
.apply-feedback.is-error { color:#c64a49; }
.apply-progress { height:4px; margin:0 0 12px; overflow:hidden; border-radius:3px; background:#e3edf9; }
.apply-progress[hidden] { display:none; }
.apply-progress > div { height:100%; width:0; background:var(--blue); transition:width .2s ease; }
.apply-submit { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:48px; border:0; border-radius:7px; background:var(--blue); color:#fff; font-family:inherit; font-size:15px; font-weight:700; line-height:1.2; cursor:pointer; }
.apply-submit:hover { background:#1459b6; }
.apply-submit:disabled { opacity:.65; cursor:wait; }
.apply-submit span { font-size:21px; line-height:0; }
.apply-after-note { margin:20px 0 0; color:var(--muted); font-size:12px; text-align:center; }
.apply-after-note span { margin-right:5px; color:var(--blue); }
.apply-footer { padding:22px 16px max(22px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); color:#8293a7; font-size:11px; text-align:center; }
.apply-success { padding:32px 6px 42px; text-align:center; }
.apply-shell.is-complete .apply-intro,.apply-shell.is-complete .apply-card-heading,.apply-shell.is-complete .apply-after-note { display:none; }
.apply-shell.is-complete #apply-form { padding:0; }
.apply-shell.is-complete .apply-success { padding:50px 20px 54px; }
.apply-success > span { display:inline-flex; align-items:center; justify-content:center; width:55px; height:55px; border-radius:50%; background:#e4f3e9; color:#267448; font-size:31px; }
.apply-success h2 { margin:17px 0 8px; font-size:22px; }
.apply-success p { margin:0; color:var(--muted); font-size:13px; }
.apply-unavailable { width:min(100% - 36px,380px); margin:18vh auto 0; text-align:center; }
.apply-unavailable h1 { margin:20px 0 8px; font-size:23px; }
.apply-unavailable p { color:var(--muted); font-size:14px; line-height:1.8; }
.apply-noscript { color:#c64a49; font-size:12px; }
@media (max-width:600px) {
    .apply-header { height:60px; padding:0 19px; }
    .apply-main { width:min(100% - 28px,680px); padding:27px 0 42px; }
    .apply-intro { margin-bottom:21px; }
    .apply-intro p { font-size:13px; }
    .apply-card-heading { padding:21px 19px 17px; }
    #apply-form { padding:21px 19px 23px; }
    .apply-fields { grid-template-columns:1fr; gap:18px; }
    .apply-full { grid-column:auto; }
}
