:root{--bg: #f6f7f4;--surface: #ffffff;--text: #1f2933;--muted: #667085;--line: #d7dcca;--primary: #18715e;--primary-dark: #115747;--accent: #b45f38;--danger: #b42318;--shadow: 0 16px 40px rgba(31, 41, 51, .08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{min-height:44px;border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;background:var(--primary);color:#fff;cursor:pointer;transition:background .16s ease,transform .16s ease}button:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.55}button.secondary{background:#eff3ea;color:var(--text);border:1px solid var(--line)}button.secondary:hover:not(:disabled){background:#e4eadc}svg{width:20px;height:20px;flex:0 0 auto}.shell{width:min(1120px,calc(100vw - 32px));margin:0 auto;padding:32px 0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.brand{display:flex;align-items:center;gap:14px}.brand>svg{width:40px;height:40px;color:var(--primary)}h1,h2,p{margin:0}h1{font-size:24px;line-height:1.25}h2{font-size:17px}.brand p,.muted{color:var(--muted);line-height:1.6}.limit{border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--accent);background:#fffaf3;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.auth-panel{width:min(420px,100%);margin-top:64px;padding:24px;display:grid;gap:14px}.auth-panel label{font-weight:700}.password-row{min-height:48px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:0 12px}.password-row svg{color:var(--muted)}.password-row input{width:100%;min-width:0;border:0;outline:0}.upload-panel,.progress-panel{padding:20px}.drop-zone{min-height:220px;border:1px dashed #9aa87f;border-radius:8px;display:grid;place-items:center;gap:12px;padding:24px;text-align:center;cursor:pointer;background:#fbfcf8}.drop-zone svg{width:48px;height:48px;color:var(--primary)}.drop-zone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;margin-bottom:12px}.progress-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.progress-header span{color:var(--muted);font-size:14px}.page-list{display:grid;gap:8px}.page-row{display:grid;grid-template-columns:24px 76px 86px 58px 1fr;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid #edf0e6;border-radius:8px;color:var(--muted);font-size:14px}.page-row.status-done svg{color:var(--primary)}.page-row.status-failed svg{color:var(--danger)}.page-row.status-running svg,.page-row.status-pending svg{color:var(--accent)}.empty{min-height:160px;display:grid;place-items:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px}.error{color:var(--danger);line-height:1.6}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 820px){.shell{width:min(100vw - 20px,680px);padding:20px 0}.topbar,.workspace{display:grid}.workspace{grid-template-columns:1fr}.page-row{grid-template-columns:24px 72px 1fr}.page-row span:nth-of-type(3),.page-row span:nth-of-type(4){grid-column:2 / -1}}
