html{background:#eef2f7}body{min-height:100vh}a{color:inherit}:root{--bg:#eef2f7;--panel:#fff;--text:#111827;--muted:#667085;--line:#d8dee8;--brand:#1f5fbf;--brand-dark:#164c9a;--green:#087443;--red:#b42318;--soft-blue:#edf5ff;--soft-green:#ecfdf3;--soft-gold:#fff7e6;--shadow:0 10px 28px #10182814;color:var(--text);background:var(--bg);font-family:Microsoft YaHei,PingFang SC,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(180deg, #1f5fbf14, transparent 260px), var(--bg);min-width:320px;margin:0}button,input,select,textarea{font:inherit}button,.file-button{border:1px solid var(--line);color:#1f2937;cursor:pointer;background:#fff;border-radius:7px;min-height:34px;padding:7px 12px;font-weight:700}button:hover,.file-button:hover{background:#f8fbff;border-color:#9bb8e8}button.primary{border-color:var(--brand);color:#fff;background:var(--brand)}button.primary:hover{background:var(--brand-dark)}button.danger{color:var(--red);border-color:#fecdca}input,select,textarea{border:1px solid var(--line);width:100%;min-height:38px;color:var(--text);background:#fff;border-radius:7px;padding:8px 10px}textarea{resize:vertical;min-height:78px}label{color:#344054;gap:6px;font-size:13px;font-weight:700;display:grid}small,.hint{color:var(--muted);font-size:12px;line-height:1.5;display:block}.app-shell{width:min(1440px,100% - 32px);margin:0 auto;padding:22px 0 40px}.topbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;padding:18px 0 14px;display:grid}.eyebrow{color:var(--brand);margin:0 0 4px;font-size:13px;font-weight:900}h1,h2{color:var(--text);margin:0;line-height:1.2}h1{font-size:30px}h2{font-size:18px}.topbar p:not(.eyebrow){color:var(--muted);margin:8px 0 0}.toolbar{flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:min(560px,100%);display:flex}.toolbar select{width:220px}.file-button{place-items:center;display:inline-grid;position:relative}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:10px 0 14px;display:grid}.stat-card,.panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.stat-card{padding:14px}.stat-card span{color:var(--muted);font-size:13px;font-weight:800}.stat-card strong{margin:7px 0 2px;font-size:24px;display:block}.layout{grid-template-columns:minmax(360px,.95fr) minmax(420px,1.05fr);align-items:start;gap:14px;margin-top:14px;display:grid}.panel{padding:14px}.wide-panel{grid-column:span 1}.section-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.form-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.wide{grid-column:1/-1}.paste-box{margin:10px 0}.member-list{flex-wrap:wrap;gap:6px;max-height:190px;margin-top:12px;display:flex;overflow:auto}.member-list span{border:1px solid var(--line);background:#f8fafc;border-radius:7px;padding:6px 8px;font-weight:800}.member-list small{margin-top:1px}.table-wrap{border:1px solid var(--line);border-radius:8px;width:100%;overflow:auto}.table-wrap.mini{max-height:260px;margin-top:10px}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #edf1f6;padding:10px 9px}th{z-index:1;color:#344054;background:#f8fafc;font-size:13px;position:sticky;top:0}tr.active-row td{background:var(--soft-blue)}.row-actions{white-space:nowrap}.row-actions button{margin-right:6px}.empty{color:var(--muted);text-align:center;padding:24px}.candidate-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.candidate-list li{border:1px solid var(--line);background:#fbfdff;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:10px;display:grid}.candidate-list span{font-weight:900}.candidate-list strong{text-align:right}.candidate-list em{width:fit-content;color:var(--green);background:var(--soft-green);border-radius:999px;grid-column:1/-1;padding:2px 7px;font-size:12px;font-style:normal;font-weight:800}@media (width<=1100px){.topbar,.layout,.stat-grid{grid-template-columns:1fr}.toolbar{justify-content:flex-start;min-width:0}.form-grid,.form-grid.compact{grid-template-columns:1fr}}
