:root{--bg:#f4f5f7;--panel:#ffffff;--ink:#14181f;--muted:#626b78;--line:#e3e6eb;--soft:#f0f2f5;--side:#12161d;--side-ink:#c9d0da;--accent:#e8711c;--accent-ink:#fff;--ok:#0f9d58;--warn:#c27c0e;--bad:#d93025;--info:#2563eb;--r:10px;--shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06)}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1{font-size:22px;margin:0;letter-spacing:-.01em}h2{font-size:15px;margin:0 0 10px}h3{font-size:13px;margin:0 0 6px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.layout{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.side{background:var(--side);color:var(--side-ink);padding:18px 12px;position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;color:#fff;font-weight:700;letter-spacing:-.01em}.brand .mark{width:30px;height:30px;border-radius:8px;background:var(--accent);display:grid;place-items:center;font-size:15px}.brand small{display:block;font-weight:500;color:#8a94a3;font-size:11px}.nav a{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;color:var(--side-ink)}.nav a:hover{background:#1c222c;color:#fff}.nav a.on{background:#232a35;color:#fff}.nav .count{background:var(--accent);color:#fff;border-radius:999px;font-size:11px;padding:0 7px;font-weight:600}.nav .count.grey{background:#3a4351}.side .sep{height:1px;background:#232a35;margin:10px 4px}.side .who{margin-top:auto;padding:10px;font-size:12px;color:#8a94a3}.main{padding:24px 28px 60px;min-width:0}.head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.head p{margin:4px 0 0;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px}.grid{display:grid;grid-gap:14px;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}.split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.stat .n{font-size:26px;font-weight:700;letter-spacing:-.02em}.stat .l{color:var(--muted);font-size:12px}.btn{border:1px solid var(--line);background:#fff;padding:7px 12px;border-radius:8px;cursor:pointer;font-weight:500;display:inline-flex;gap:6px;align-items:center;white-space:nowrap}.btn:hover{background:var(--soft)}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#2a313c}.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.ok{background:var(--ok);color:#fff;border-color:var(--ok)}.btn.bad{color:var(--bad)}.btn.sm{padding:4px 9px;font-size:12px}.btn:disabled{opacity:.5;cursor:default}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:12px}.pill{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--soft);color:var(--muted);white-space:nowrap}.pill.ok{background:#e6f4ea;color:#137333}.pill.warn{background:#fef3e0;color:#9a5b00}.pill.bad{background:#fce8e6;color:#b3261e}.pill.info{background:#e8f0fe;color:#1a56c4}.pill.dark{background:var(--ink);color:#fff}.buddy{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:12.5px}.buddy .dot{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:#fff;font-size:11px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;padding:8px 10px}td,th{border-bottom:1px solid var(--line)}td{padding:10px;vertical-align:top}tr.click:hover td{background:#fafbfc;cursor:pointer}.list>*+*{border-top:1px solid var(--line)}.item{padding:12px 0}.feed .item{display:grid;grid-template-columns:22px 1fr auto;grid-gap:8px;gap:8px;padding:8px 0;font-size:13px}.action{border:1px solid var(--line);border-radius:var(--r);padding:14px;background:#fff}.action.pending{border-left:4px solid var(--accent)}.action.done{border-left:4px solid var(--ok)}.action.failed{border-left:4px solid var(--bad)}.action.rejected,.action.skipped{border-left:4px solid #c3c8cf;opacity:.85}.action pre,.mail{white-space:pre-wrap;background:var(--soft);border-radius:8px;padding:10px 12px;margin:8px 0 0;font:13px/1.5 inherit;font-family:inherit}input.f,select.f,textarea.f{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff}textarea.f{min-height:140px;resize:vertical}label.l{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:10px 0 4px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;flex-wrap:wrap}.tabs button{border:0;background:none;padding:8px 12px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;font-weight:500}.tabs button.on{color:var(--ink);border-color:var(--accent)}.empty{text-align:center;padding:36px 10px;color:var(--muted)}.flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px}.flow .arrow{color:#a0a7b1}.reason{font-size:12px;color:var(--warn)}.concern{background:#fff8eb;border:1px solid #f6d9a8;padding:8px 10px;font-size:13px;margin-top:6px}.concern,.toast{border-radius:8px}.toast{position:fixed;bottom:20px;right:20px;background:var(--ink);color:#fff;padding:10px 14px;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:50;max-width:420px}.login{min-height:100vh;display:grid;place-items:center;background:var(--side)}.login .card{width:360px}.kv{display:grid;grid-template-columns:130px 1fr;grid-gap:4px 10px;gap:4px 10px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0}.ext{color:var(--info);font-weight:500}.ext:hover{text-decoration:underline}@media (max-width:1100px){.g4,.g5{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media (max-width:760px){.layout{grid-template-columns:1fr}.side{position:static;height:auto}.g2,.g3{grid-template-columns:1fr}.main{padding:16px}}