:root{--paper:#f5f6f3;--white:#fff;--ink:#253a37;--muted:#74817b;--line:#e0e6df;--green:#245b4e;--light:#eaf1ea;--gold:#a27c42}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:0;border-radius:7px;padding:10px 16px;transition:background .15s}button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:wait}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:-.5px;font-weight:600;margin-bottom:4px}h2{font-size:21px;font-weight:600}h3{font-size:16px}small,.hint{font-size:12px;color:var(--muted)}.hidden{display:none!important}.primary{background:var(--green);color:white}.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.text-button{background:transparent;color:var(--green);padding:6px 0}.danger{color:#a44a3d}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);margin-bottom:9px}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--green);color:#f8f7ee;font-family:serif;font-size:22px;border-radius:11px}.brand{display:flex;gap:12px;align-items:center;font-size:19px;font-weight:600}.brand small{display:block;font-size:11px;font-weight:400;letter-spacing:2px}aside{position:fixed;width:224px;height:100vh;background:#fafbf8;border-right:1px solid var(--line);padding:30px 23px;display:flex;flex-direction:column}nav{margin-top:47px;display:grid;gap:9px}.nav{display:flex;gap:16px;text-align:left;background:transparent;color:#708079;padding:12px 15px;font-size:16px}.nav span{font-size:14px}.nav.active{background:#e4ede5;color:var(--green);font-weight:600}.sidebar-bottom{margin-top:auto;color:var(--muted);font-size:12px}.sidebar-bottom small{display:block;font-size:9px;letter-spacing:2px;margin:8px 0}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#68956d;margin-right:7px}main{margin-left:224px;padding:36px 42px 70px;max-width:1600px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}header button{white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stat{background:white;border:1px solid var(--line);border-radius:10px;padding:22px;text-align:left;color:var(--ink)}.stat strong{display:block;font-size:34px;font-weight:500;margin:6px 0}.stat small{display:block}.welcome{background:var(--green);color:white;border-radius:12px;padding:30px 34px;margin-bottom:26px;position:relative;overflow:hidden}.welcome p{max-width:620px;color:#c8dbcd;margin:7px 0 0}.welcome .eyebrow{color:#b2ccb7}.welcome h2{font-size:24px;margin:0}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-top h2{margin:0}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:24px;overflow:hidden}.panel-pad{padding:24px}.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 22px}.chip{background:transparent;border:1px solid var(--line);padding:7px 13px;color:var(--muted);font-size:13px}.chip.active{background:var(--green);border-color:var(--green);color:white}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.toolbar input{min-width:170px;flex:2}.toolbar select{max-width:175px}.toolbar .year{min-width:85px;max-width:110px;flex:0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{background:#f9faf7;color:var(--muted);font-size:11px;font-weight:500;padding:13px 16px;white-space:nowrap}td{border-top:1px solid #eef0eb;padding:17px 16px;vertical-align:middle}td.title-cell{min-width:220px;max-width:420px}td small{display:block;margin-top:4px}td .title{font-weight:600;color:var(--ink);background:none;padding:0;text-align:left}td:last-child{white-space:nowrap}.badge{display:inline-block;font-size:11px;border-radius:4px;padding:3px 8px;background:var(--light);color:var(--green);white-space:nowrap}.badge.amber{background:#f7efde;color:#8d6b32}.badge.gray{background:#eff0ed;color:#74817b}.empty{text-align:center;padding:65px 22px;color:var(--muted)}.empty h3{color:var(--ink);font-size:18px}.empty .empty-icon{font-family:serif;font-size:38px;color:#a0b4a3;margin-bottom:10px}.type-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf0e9}.type-row:last-child{border-bottom:0}.selection-bar{position:sticky;bottom:18px;background:#253f35;color:white;border-radius:10px;padding:14px 20px;display:flex;align-items:center;gap:15px;box-shadow:0 8px 24px #1d362523;margin-top:18px}.selection-bar button{margin-left:auto;background:#eff5ec;color:var(--green)}label{display:block;font-size:12px;color:#5d6e66}input,select,textarea{display:block;width:100%;border:1px solid #dbe3d9;border-radius:6px;background:white;color:var(--ink);padding:9px 11px;outline:none;margin-top:5px}input:focus,select:focus,textarea:focus{border-color:#658d76;box-shadow:0 0 0 3px #e8f1e8}input[type=checkbox]{display:inline-block;width:16px;margin:0 7px 0 0;vertical-align:middle;accent-color:var(--green)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-bottom:20px}.span2{grid-column:span 2}.checks{display:flex;gap:20px;flex-wrap:wrap}.checks label{display:flex;align-items:center}.multi-tags{display:flex;flex-wrap:wrap;gap:9px;padding-top:10px}.multi-tags label{background:#f3f6f0;border-radius:4px;padding:6px;font-size:11px}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;width:760px;max-width:95vw;max-height:91vh;color:var(--ink);box-shadow:0 30px 100px #18332630}dialog::backdrop{background:#1a302e70;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-head h2{margin:0}.icon-button{background:transparent;font-size:26px;color:var(--muted);padding:0 8px}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:18px;border-top:1px solid var(--line)}details{margin:18px 0}summary{font-weight:600;cursor:pointer;margin-bottom:16px}.upload-zone{border:1px dashed #b7caba;background:#f8faf5;border-radius:8px;padding:18px;margin:20px 0}.upload-zone input{border:none;background:transparent;padding-left:0}.upload-zone p{margin-bottom:0}#form-error,#login-error{color:#a54736}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:80vw;padding:13px 24px;border-radius:9px;background:#243d35;color:white;z-index:20;box-shadow:0 4px 20px #203b3020}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 75% 20%,#e2ebdf,transparent 50%),#f4f5ef}.login-card{width:470px;max-width:92vw;padding:46px;background:#ffffffd9;border:1px solid #e2e7dd;border-radius:16px;box-shadow:0 20px 100px #2746330c}.login-card .eyebrow{margin-top:27px}.login-card h1{font-size:27px}.login-card form{margin:28px 0}.login-card button{width:100%;margin-top:18px}.login-card small{display:block;text-align:center}.job{border-top:1px solid var(--line);padding:20px 24px}.job:first-child{border:0}.job-head{display:flex;justify-content:space-between;gap:10px}.job h3{margin-bottom:5px}.downloads{display:flex;gap:15px;flex-wrap:wrap;font-size:12px;margin-top:12px}progress{width:100%;height:6px;accent-color:var(--green)}.item-list{list-style:none;padding:0;margin:0}.item-list li{padding:15px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.item-list li>div{flex:1}.item-list input{width:140px;font-size:12px}.item-list button{padding:5px 10px}.notice{padding:13px 18px;border-left:3px solid #b59b61;background:#f8f3e7;color:#806a3c;font-size:12px;margin-bottom:20px}#preview{width:1100px;height:90vh}#pdf-frame{width:100%;height:calc(100% - 70px);border:1px solid var(--line)}.profile{max-width:900px}.mini-actions{display:flex;gap:14px}.muted{color:var(--muted)}@media(max-width:1000px){aside{width:185px;padding:25px 15px}main{margin-left:185px;padding:28px 24px}.two-col{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:28px}}@media(max-width:700px){aside{position:static;width:100%;height:auto;padding:15px}.brand{font-size:16px}nav{display:flex;overflow:auto;margin-top:15px;gap:3px}.nav{gap:5px;white-space:nowrap;padding:8px}.nav span{font-size:12px}.sidebar-bottom{display:none}main{margin-left:0;padding:24px 15px}h1{font-size:23px}header{gap:14px;align-items:flex-start}.stats{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.welcome{padding:24px}dialog{padding:20px}.item-list li{flex-wrap:wrap}}

.preview-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.preview-toolbar label{display:flex;align-items:center;gap:6px}.preview-toolbar input{width:70px;margin:0}.preview-toolbar a{margin-left:auto}.pdf-canvas{background:#dfe5df;overflow:auto;padding:12px}.pdf-canvas img{display:block;width:100%;height:auto;background:white}#preview-error{font-size:12px;color:var(--muted)}

.attachment-cell{min-width:170px;max-width:280px}.attachment-cell select{max-width:270px;font-size:12px}.import-warning{color:#8d6b32}#batch-picker{max-width:55%}#parse-cv{margin-top:14px}#upload-status{overflow-wrap:anywhere}#content td details p{white-space:pre-wrap;overflow-wrap:anywhere}#content td details{max-width:450px}
.download-link{display:inline-block;background:var(--light);border:1px solid #ceddce;border-radius:7px;padding:8px 14px;font-weight:600}.import-match{color:var(--green);font-weight:600}
.material-candidate-list{max-height:360px;overflow:auto;margin-top:12px}.material-candidate-list label{padding:10px 0;border-bottom:1px solid var(--line)}.material-candidate-list small{color:var(--muted)}
.toolbar #record-sort{width:220px;max-width:100%;flex-shrink:0;}

.record-filters{align-items:flex-end}.record-filters label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.record-filters select{width:180px;max-width:100%;color:var(--ink)}.record-filters #level-filter{width:200px}.record-filters .year{width:105px;color:var(--ink)}.record-filters .text-button{margin-bottom:7px}

.overview-table{table-layout:fixed;min-width:920px}.overview-table th:nth-child(2){width:90px}.overview-table th:nth-child(3){width:65px}.overview-table th:nth-child(4){width:145px}.overview-table th:nth-child(5){width:90px}.overview-table th:nth-child(6){width:140px}.overview-table th:nth-child(7){width:100px}.overview-table th:nth-child(4),.overview-table td:nth-child(4){padding-right:8px}.overview-table th:nth-child(5),.overview-table td:nth-child(5){padding-left:8px}.overview-table td:nth-child(4) .badge{white-space:normal;overflow-wrap:anywhere}.overview-table td.title-cell{min-width:0;max-width:none}
