:root{--ink:#18312b;--muted:#62756f;--line:#dce6e1;--bg:#f3f7f5;--brand:#19765d;--brand-dark:#105744;--danger:#c84c42;--warn:#b86c18;--card:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:15px/1.55 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink)}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;padding:28px 16px;background:#103d34;color:#d8ebe5;display:flex;flex-direction:column}.brand{font-size:21px;font-weight:700;letter-spacing:.4px;padding:0 12px 30px}.brand small{display:block;font-size:12px;font-weight:400;letter-spacing:0;color:#9fc4b8;margin-top:2px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{color:#c7ddd6;padding:11px 12px;border-radius:8px}.sidebar nav a:hover,.sidebar nav a.active{background:#1c5a4b;color:#fff;text-decoration:none}.user{margin-top:auto;border-top:1px solid #31665b;padding:16px 12px 4px}.user strong,.user span{display:block}.user span{font-size:12px;color:#9fc4b8;margin-bottom:8px}.user a{font-size:13px;color:#c7ddd6}.page{margin-left:232px;max-width:1420px;padding:36px 42px 60px}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:24px}.page-title h1{font-size:28px;line-height:1.25;margin:2px 0}.page-title p{margin:0;color:var(--muted)}.eyebrow{font-size:13px;color:var(--brand)!important;font-weight:600;letter-spacing:.6px}.button,button{display:inline-flex;justify-content:center;align-items:center;background:var(--brand);border:1px solid var(--brand);color:#fff;padding:9px 15px;border-radius:7px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none}.button:hover,button:hover{background:var(--brand-dark);text-decoration:none}.secondary{background:#fff!important;color:var(--brand)!important;border-color:#a9c5bb!important}.compact{padding:5px 9px;font-size:13px}
.filter-row td{padding:6px 8px;background:#f7faf8;border-bottom:1px solid var(--line)}
.filter-row input,.filter-row select{height:32px;padding:4px 8px;font-size:13px;box-sizing:border-box}
.filter-row .filter-date{display:flex;gap:6px}
.filter-row .filter-date input{min-width:0;flex:0 0 auto;width:128px}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;margin-bottom:24px}.metrics article,.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 5px rgba(15,52,44,.03)}.metrics article{padding:18px}.metrics span{color:var(--muted);font-size:13px}.metrics strong{display:block;font-size:30px;margin:4px 0 1px}.metrics small{color:#899791;font-size:12px}.metrics .warn strong{color:var(--warn)}.metrics .danger strong{color:var(--danger)}.panel{padding:16px;margin-bottom:16px}.panel h2{font-size:18px;margin:0}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:13px;color:#698078;background:#f7faf8;font-weight:600}th,td{padding:12px;border-bottom:1px solid #edf1ef;white-space:nowrap}td:last-child{text-align:left}.empty{color:#71847d;text-align:center;padding:28px!important}.overdue{color:var(--danger);font-weight:600}.badge{display:inline-block;padding:2px 8px;border-radius:12px;background:#eaf1ed;color:#456458;font-size:12px}.s-已就业{background:#d8f0e6;color:#167250}.s-失联,.s-暂不求职{background:#eceff0;color:#596565}.s-已面试,.s-已推荐{background:#e4eff8;color:#28688b}.s-待联系{background:#fbedd8;color:#9d5d13}.filters,.inline-form{display:flex;gap:10px;margin-bottom:18px;align-items:center}.filters{flex-wrap:wrap}.filters>input:not([type=hidden]){flex:1 1 280px;width:auto;min-width:220px}.filters>select{flex:0 1 170px;width:auto;min-width:150px}.filters>button{flex:0 0 auto}
.filters input:not([type=hidden]),.filters select,.filters button,.filters .button{height:36px;box-sizing:border-box}.filters input[type=hidden]{display:none}.filters select{min-width:140px}input,select,textarea{width:100%;border:1px solid #cbdad4;border-radius:6px;background:#fff;padding:6px 10px;font:inherit;color:var(--ink)}textarea{min-height:60px;resize:vertical}label{display:grid;gap:4px;font-size:13px;font-weight:600;color:#466056}label small{font-weight:400;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.form-grid h2,.wide{grid-column:1/-1}.form-grid h2{border-top:1px solid var(--line);padding-top:12px;margin:2px 0 0}.form-grid h2:first-of-type{border-top:none;padding-top:0}.check{display:flex;align-items:center;gap:8px;padding-top:27px}.check input{width:auto}.actions{display:flex;gap:10px;justify-content:flex-end}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px}.details dl{display:grid;grid-template-columns:104px 1fr;gap:12px 15px;margin:16px 0 0}.details dt{color:var(--muted)}.details dd{margin:0;white-space:pre-wrap}.timeline{border-left:2px solid #d9e6e0;margin:4px 0 0 7px;padding-left:22px}.timeline article{position:relative;padding:4px 0 20px}.timeline article:before{position:absolute;content:"";left:-29px;top:10px;width:11px;height:11px;border-radius:50%;background:var(--brand);border:3px solid #eef5f2}.timeline time,.timeline small{color:var(--muted);font-size:13px}.timeline h3{margin:4px 0;font-size:15px}.timeline p{margin:4px 0 7px}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs a{padding:9px 2px;color:var(--muted)}.tabs a.active{color:var(--brand);border-bottom:2px solid var(--brand);font-weight:700}.notice{background:#e6f2ed;color:#215744;border:1px solid #c3dfd4;padding:11px 14px;border-radius:7px;margin-bottom:18px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#e5f1eb,#f6f8f7)}.auth-card{width:min(410px,100%);background:#fff;border:1px solid var(--line);padding:34px;border-radius:12px;box-shadow:0 16px 45px rgba(14,70,53,.11)}.auth-card h1{font-size:23px;margin:0 0 4px}.auth-card p{color:var(--muted);margin:0 0 22px}.auth-card form{display:grid;gap:16px}.auth-card button{margin-top:5px}.auth-card label{font-size:14px}.auth-card input{margin-top:3px}code{padding:2px 5px;background:#f0f3f2;border-radius:4px;color:#335e51;font-size:13px}@media(max-width:950px){.metrics{grid-template-columns:repeat(3,1fr)}.page{padding:27px 25px}.two-col{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{position:static;width:auto;height:auto;padding:15px 16px}.brand{padding:0 0 12px}.sidebar nav{display:flex;overflow:auto;gap:5px}.sidebar nav a{white-space:nowrap;padding:7px 9px;font-size:13px}.user{display:none}.page{margin:0;padding:22px 15px}.page-title{align-items:flex-start}.page-title h1{font-size:23px}.metrics{grid-template-columns:repeat(2,1fr);gap:10px}.metrics article{padding:14px}.metrics strong{font-size:25px}.form-grid,.two-col{grid-template-columns:1fr}.filters{flex-wrap:wrap}.filters input,.filters select{min-width:0}.filters>*{flex:1}.page-title .actions{flex-wrap:wrap;justify-content:flex-end}.panel{padding:15px}th,td{padding:10px}.tabs{gap:15px;overflow:auto}.inline-form{width:100%}.inline-form input{max-width:150px}}
.check-grid,.filter-checks{display:flex;flex-wrap:wrap;gap:8px 14px}.check-grid .check,.filter-checks .check{padding-top:0}.filter-checks{flex:1 1 400px;min-width:340px;align-items:center}.filter-checks .check{font-size:12px;white-space:nowrap}.warning-text{display:block;color:var(--danger);font-size:12px}.row-warning td{background:#fff8f7}.followup-image{display:inline-block;margin:4px 7px 4px 0}.followup-image img{width:110px;height:82px;object-fit:cover;border:1px solid var(--line);border-radius:5px}.actions form{margin:0}@media print{.sidebar,.actions,.notice{display:none!important}.page{margin:0;padding:12mm;max-width:none}.panel{box-shadow:none;break-inside:avoid}.timeline{break-inside:avoid}body{background:#fff}}.status-toggle{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid transparent;background:#eaf1ed;color:#456458}.status-toggle.s-招聘中{background:#d8f0e6;color:#167250;border-color:#b8e0cc}.status-toggle.s-已暂停{background:#eceff0;color:#596565;border-color:#d5d9db}.status-toggle:hover{opacity:.85}
