:root{--ink:#20231f;--muted:#687166;--paper:#f4f3ed;--line:#dedfd5;--green:#466456;--amber:#956122}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 "PingFang SC","Microsoft YaHei",sans-serif}header{padding:26px 4%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}h1{font:600 27px "Songti SC",serif;margin:5px 0}h2{font-size:19px;margin:0 0 8px}h3{font-size:16px;margin:0 0 12px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--green)}.tag,small{font-size:11px;color:var(--muted)}main{max-width:1500px;margin:auto;padding:25px 4%}.intro{display:flex;align-items:center;justify-content:space-between;padding:0 0 24px}.intro h2{font:27px "Songti SC",serif}.intro p{color:var(--muted);margin-bottom:0}button{background:var(--green);color:white;border:1px solid var(--green);border-radius:6px;padding:10px 15px;font:inherit;cursor:pointer}button:hover{filter:brightness(.92)}button:disabled{opacity:.5;cursor:wait}.secondary{background:white;color:var(--green);border-color:var(--line)}input,textarea,select{font:inherit;color:inherit;border:1px solid var(--line);padding:10px;background:#fff;border-radius:5px;width:100%}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.import{display:grid;grid-template-columns:1.5fr 1fr auto;gap:22px;background:#e8ece3;padding:22px;border-radius:8px}.row{display:flex;gap:8px}.row input{min-width:0}.row button{white-space:nowrap}.presets{display:grid;gap:7px}#status{font-size:12px;min-height:22px;color:var(--green)}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px;align-items:start}aside,article{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden}.listhead{padding:20px;border-bottom:1px solid var(--line)}#count{font-size:12px;color:var(--muted)}#list{max-height:900px;overflow:auto}.item{display:block;text-align:left;border:0;border-bottom:1px solid var(--line);background:white;color:var(--ink);width:100%;border-radius:0;padding:16px 20px}.item.active{background:#e9eee7;box-shadow:inset 3px 0 var(--green)}.item strong{display:block;line-height:1.5;font-size:13px}.item small{display:block;margin-top:5px}article{padding:26px}article h2{font-size:22px;line-height:1.45}.source{font-size:12px;overflow-wrap:anywhere;color:var(--muted)}a{color:var(--green)}.section{padding:24px 0;border-top:1px solid var(--line);margin-top:22px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}pre{white-space:pre-wrap;font:12px/1.8 inherit;background:#f7f8f4;padding:14px;min-height:80px;overflow-wrap:anywhere}textarea{min-height:90px;resize:vertical}.warning{background:#f8efdd;color:#805820;padding:12px 16px;border-radius:5px;font-size:12px}.images{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.image{border:1px solid var(--line);padding:10px;border-radius:6px;min-width:0}.image img{width:100%;height:200px;object-fit:contain;background:#f6f6f2}.image a{font-size:11px;display:block}.image select{font-size:11px;padding:6px;margin-top:8px}.checks label{display:flex;gap:10px;align-items:start;color:var(--ink);margin:12px 0}.checks input{width:16px;margin-top:4px;accent-color:var(--green)}table{border-collapse:collapse;width:100%;font-size:12px}td{border:1px solid var(--line);padding:8px}#candidates{max-height:320px;overflow:auto;background:white;padding:20px;margin-bottom:20px}#candidates button{display:block;text-align:left;margin:8px 0;background:white;color:var(--green)}footer{padding:28px 4%;color:var(--muted);font-size:12px;text-align:center}@media(max-width:1000px){.import{grid-template-columns:1fr}.presets{display:flex}.workspace{grid-template-columns:240px minmax(0,1fr)}.images{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}}@media(max-width:700px){header .tag{display:none}.intro{display:block}.intro button{margin-top:18px}.workspace{grid-template-columns:1fr}#list{max-height:230px}.images{grid-template-columns:1fr 1fr}article{padding:18px}h1{font-size:24px}}

.image-batch{position:sticky;top:0;z-index:2;background:#f2f5ee;border:1px solid var(--line);border-radius:6px;padding:14px;margin:14px 0}.batch-selection,.batch-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.batch-actions label{margin:0}.batch-actions select{width:auto;max-width:100%}.batch-selection span{font-size:12px;color:var(--green)}.image-select{display:flex;align-items:center;gap:8px;cursor:pointer}.image-select input{width:17px;height:17px;accent-color:var(--green)}.image.selected{border-color:var(--green);background:#eff4ed;box-shadow:0 0 0 1px var(--green)}@media(max-width:700px){.image-batch{position:static}.batch-selection button,.batch-actions button{padding:8px;font-size:12px}}
.main-pickers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.main-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.main-option{border:1px solid var(--line);border-radius:6px;padding:12px}.main-option h4{font-size:13px}.main-option fieldset{border:0;padding:10px 0;margin:0}.main-option legend{font-size:12px;margin-top:12px}.main-option textarea{min-height:65px}.main-option .image-select{font-size:11px}.main-option .image-select input{flex-shrink:0}.main-collage span{display:grid;place-items:center;height:100%;font-size:12px;color:var(--muted)}@media(max-width:1100px){.main-options{grid-template-columns:1fr}.main-collage{max-width:600px}.main-pickers{grid-template-columns:1fr}}
#candidates{max-height:none}.candidate-rows{max-height:380px;overflow:auto;border-top:1px solid var(--line)}.candidate-row{display:flex;align-items:flex-start;gap:12px;padding:12px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px;color:var(--ink)}.candidate-row input{width:18px;height:18px;flex-shrink:0;accent-color:var(--green)}.candidate-row span{overflow-wrap:anywhere}.candidate-row small{display:block;margin-top:4px}#candidates .batch-selection button{display:inline-block;margin:0}#candidate-load{background:var(--green)!important;color:white!important}

.table-first{display:grid;grid-template-columns:1fr 300px;gap:22px;padding:24px;background:white;border:1px solid var(--line);border-radius:8px;margin:22px 0}.table-first button{margin-top:12px;width:100%}@media(max-width:700px){.table-first{grid-template-columns:1fr}}
