:root{--ink:#17202a;--muted:#667085;--line:#d8dde5;--surface:#fff;--soft:#f4f6f8;--primary:#126b5c;--primary-dark:#0b5146;--danger:#b42318;--warning:#9a6700;--blue:#175cd3}*{box-sizing:border-box}body{margin:0;background:#f7f8fa;color:var(--ink);font-family:"Segoe UI","Microsoft YaHei",Arial,sans-serif;font-size:14px;letter-spacing:0}a{color:var(--primary);text-decoration:none}button,input,select{font:inherit}.topbar{height:60px;background:#16252a;color:#fff;display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1180px)/2));gap:30px}.brand{color:#fff;font-size:18px;font-weight:700}.topbar nav{display:flex;gap:6px;flex:1}.topbar nav a{color:#cbd5d8;padding:9px 12px;border-radius:4px}.topbar nav a:hover{background:#24383e;color:#fff}.account{display:flex;align-items:center;gap:14px;color:#d9e1e3}.account form{margin:0}.icon-link{border:0;background:none;color:#fff;cursor:pointer;padding:6px}.page{max-width:1180px;margin:0 auto;padding:32px 24px 70px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{font-size:28px;line-height:1.2;margin:3px 0 6px}.page-heading p{color:var(--muted);margin:0}.back-link{display:block;margin-bottom:10px}.alert{padding:12px 14px;border:1px solid #b8d6cf;background:#edf8f5;border-radius:6px;margin-bottom:18px;white-space:pre-line;line-height:1.65}.alert.error{border-color:#f0b4ae;background:#fff0ee;color:#8a1c13}.alert.warning{border-color:#ead28b;background:#fff9e8;color:#684c00}.alert.success{border-color:#9fd6c8;background:#ecf9f5;color:#125b4d}.upload-band,.form-section,.job-progress,.inline-form{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:22px}.upload-form{display:grid;grid-template-columns:minmax(260px,1fr) minmax(220px,1fr) auto;gap:18px;align-items:center}.file-picker{display:flex;align-items:center;gap:14px;cursor:pointer}.file-picker input{position:absolute;opacity:0;width:1px;height:1px}.file-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid #90b6ad;background:#eef7f5;color:var(--primary);font-size:11px;font-weight:700;border-radius:5px}.file-picker span:last-child{display:flex;flex-direction:column;gap:3px}.file-picker small,.file-row small,label small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.selected-files{color:var(--muted);overflow-wrap:anywhere}.button,button{border-radius:5px;border:1px solid transparent;padding:9px 15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.primary:hover{background:var(--primary-dark)}.secondary{background:#fff;color:var(--ink);border-color:#aeb7c2}.danger{background:#fff;color:var(--danger);border-color:#e4aaa5}button:disabled{opacity:.5;cursor:not-allowed}.section-block{margin-top:30px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.section-title h2,.form-section h2{font-size:18px;margin:0}.section-title span{color:var(--muted)}.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:7px}table{width:100%;border-collapse:collapse;min-width:720px}th{text-align:left;color:#4b5563;font-weight:600;background:#f4f6f8}th,td{padding:12px 14px;border-bottom:1px solid #e5e8ec;vertical-align:middle}tbody tr:last-child td{border-bottom:0}.strong-link{font-weight:700}.empty{text-align:center;color:var(--muted);padding:36px}.status{display:inline-flex;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;background:#eef0f2;color:#4b5563}.status.running{background:#eaf2ff;color:var(--blue)}.status.completed{background:#e9f7f2;color:#08705b}.status.failed{background:#feeceb;color:#a51c13}.status.disabled{background:#f1f1f1;color:#777}.job-progress{margin-bottom:26px}.progress-meta{display:flex;align-items:center;justify-content:space-between}.progress-track{height:8px;background:#e7ebee;border-radius:4px;overflow:hidden;margin:14px 0}.progress-fill{height:100%;background:var(--primary);transition:width .3s}.job-progress p{margin:0;color:var(--muted)}.error-detail{white-space:pre-wrap;background:#fff0ee;border:1px solid #f0b4ae;color:#8a1c13;padding:12px;margin:15px 0 0;border-radius:4px}.file-rows{background:#fff;border:1px solid var(--line);border-radius:7px}.file-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;border-bottom:1px solid #e5e8ec}.file-row:last-child{border-bottom:0}.file-row>div:first-child{display:flex;flex-direction:column;min-width:0}.file-row strong{overflow-wrap:anywhere}.file-actions{display:flex;align-items:center;gap:10px}.danger-zone{margin-top:30px}.settings-form{display:flex;flex-direction:column;gap:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.form-grid .wide{grid-column:1/-1}label{font-weight:600;color:#344054}input,select{width:100%;margin-top:7px;padding:10px 11px;border:1px solid #b9c1cb;border-radius:5px;background:#fff;color:var(--ink)}input:focus,select:focus{outline:2px solid #a5d5ca;border-color:var(--primary)}.form-actions{display:flex;justify-content:flex-end;gap:10px}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end;margin-bottom:20px}.user-form{grid-template-columns:1fr 1fr 180px auto}.actions{display:flex;gap:8px;align-items:center}.actions form{margin:0}.text-button{border:0;background:none;color:var(--primary);padding:3px}.danger-text{color:var(--danger)}.reset-form{display:flex;gap:5px}.reset-form input{width:130px;margin:0;padding:6px 8px}.login-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:#eef2f2}.login-panel{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:34px}.login-mark{display:grid;place-items:center;width:58px;height:58px;background:var(--primary);color:#fff;border-radius:6px;font-weight:700}.login-panel h1{font-size:24px;margin:20px 0 8px}.login-panel>p{color:var(--muted);margin:0 0 24px}.stack-form{display:flex;flex-direction:column;gap:16px}.stack-form button{margin-top:4px}@media(max-width:760px){.topbar{height:auto;min-height:60px;flex-wrap:wrap;padding:12px 18px;gap:10px 20px}.topbar nav{order:3;width:100%;overflow-x:auto}.account{margin-left:auto}.page{padding:24px 16px 50px}.page-heading{align-items:flex-start;flex-direction:column}.upload-form,.inline-form,.user-form,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.file-row{align-items:flex-start;flex-direction:column}.file-actions{width:100%;justify-content:space-between}.form-actions{justify-content:stretch}.form-actions>*{flex:1}.actions{min-width:260px}}
.glossary-toolbar,.pagination{align-items:center;gap:14px}.glossary-toolbar{display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);min-height:50px;margin-bottom:12px;padding:8px 12px;background:#fff;border:1px solid var(--line);border-radius:7px;color:var(--muted);white-space:nowrap;overflow-x:auto}.glossary-toolbar-actions{display:flex;align-items:center;gap:10px;justify-self:start}.glossary-toolbar-summary{justify-self:center;text-align:center}.glossary-toolbar-page-size{justify-self:end}.glossary-toolbar label{display:flex;align-items:center;gap:8px;white-space:nowrap}.glossary-toolbar select{width:92px;margin:0;padding:7px 9px}.glossary-add-form{grid-template-columns:minmax(200px,1fr) minmax(260px,1.25fr) minmax(100px,.4fr) minmax(135px,.5fr) auto}.checkbox-cell{width:48px;text-align:center}.checkbox-cell input[type="checkbox"]{width:17px;height:17px;margin:0;padding:0;accent-color:var(--primary);cursor:pointer}.term-input{min-width:210px;margin:0;padding:7px 9px}.abbreviation-input{min-width:95px;max-width:140px;margin:0;padding:7px 9px}.abbreviation-type-select{min-width:120px;margin:0;padding:7px 9px}.glossary-table .actions,.glossary-table .actions form{display:flex;align-items:center;gap:8px;white-space:nowrap}.pagination{display:flex;justify-content:center;margin-top:20px}.pagination-jump,.pagination-jump label{display:flex;align-items:center;gap:8px}.pagination-jump{margin-left:4px}.pagination-jump label{color:var(--muted);font-weight:400;white-space:nowrap}.pagination-jump input{width:76px;margin:0;padding:8px 9px;text-align:center}.pagination-jump .button{padding:8px 13px}.disabled-link{pointer-events:none;opacity:.5}@media(max-width:760px){.glossary-toolbar{position:sticky;left:0;grid-template-columns:max-content max-content max-content}.glossary-add-form{grid-template-columns:1fr}.pagination{gap:8px;flex-wrap:wrap}.pagination-jump{margin-left:0}}
