:root{--accent:#1f3a5f;--accent-2:#2f6db0;--bg:#f4f6f8;--card:#fff;--border:#dfe4ea;--muted:#6b7280;--ok:#1a7f4b;--err:#c0392b}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:#1b1f24}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}header.top{background:var(--accent);color:#fff;padding:14px 24px;display:flex;align-items:center;gap:12px}header.top h1{font-size:18px;margin:0;font-weight:600}header.top .sub{color:#c9d6e5;font-size:13px}.container{max-width:1100px;margin:24px auto;padding:0 20px}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:18px;margin-bottom:18px}.row{display:flex;gap:16px;flex-wrap:wrap}.col{flex:1 1;min-width:320px}h2{font-size:16px;margin:0 0 12px}h3{font-size:14px;margin:14px 0 6px;color:var(--accent)}label{display:block;font-size:12px;color:var(--muted);margin:8px 0 3px}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit}textarea{resize:vertical;min-height:70px}button{background:var(--accent-2);color:#fff;border:0;border-radius:6px;padding:9px 14px;font-size:14px;cursor:pointer}button:hover{filter:brightness(1.08)}button.secondary{background:#eaeef3;color:#1b1f24;border:1px solid var(--border)}button.ghost{background:transparent;color:var(--err);padding:4px 8px}button:disabled{opacity:.5;cursor:not-allowed}.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.src{border:1px solid var(--border);border-radius:6px;padding:10px;margin-bottom:8px;background:#fafbfc}.src .meta{display:flex;justify-content:space-between;align-items:center;font-size:13px}.tag{font-size:11px;padding:2px 7px;border-radius:10px;background:#e8eef6;color:var(--accent)}.status-done{color:var(--ok)}.status-error{color:var(--err)}.status-processing{color:var(--accent-2)}.excerpt{font-size:12px;color:var(--muted);margin-top:6px;white-space:pre-wrap;max-height:80px;overflow:auto}.item{border:1px solid var(--border);border-radius:6px;padding:10px;margin-bottom:10px}.muted{color:var(--muted);font-size:13px}.pill{font-size:12px;padding:3px 8px;border-radius:10px;background:#e8eef6;color:var(--accent)}.banner{padding:10px 12px;border-radius:6px;margin-bottom:12px;font-size:13px}.banner.err{background:#fdecea;color:var(--err);border:1px solid #f5c6cb}.banner.info{background:#eaf3fb;color:var(--accent);border:1px solid #cfe2f3}