:root{--bg: #f4f6fb;--panel: #ffffff;--text: #1c2530;--muted: #6b7785;--accent: #2f6df6;--ok: #1aa260;--warn: #b8860b;--err: #d64545;--border: #e2e8f0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}.app{max-width:1180px;margin:0 auto;padding:20px 16px 64px}.app__header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.app__header h1{margin:0;font-size:20px;font-weight:700}.app__badge{font-size:12px;color:var(--muted);background:#eef2ff;padding:2px 8px;border-radius:999px}.spacer{flex:1}.app__main,.stack{display:grid;gap:16px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tab{background:none;border:none;border-bottom:2px solid transparent;padding:10px 14px;font-size:14px;cursor:pointer;color:var(--muted)}.tab:hover{color:var(--text)}.tab--active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.card h2{margin:0 0 10px;font-size:15px;font-weight:600}.card__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.source-settings{margin-top:4px}.source-settings__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.source-settings__head h3{margin:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 16px}.span2{grid-column:1 / -1}label{display:flex;flex-direction:column;gap:4px;font-size:13px}label>span,.label{font-weight:600;color:var(--text);font-size:13px}label.inline{flex-direction:row;align-items:center;gap:8px}label.inline>span{font-weight:400}input,select,textarea{font:inherit;padding:7px 9px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid rgba(47,109,246,.25);border-color:var(--accent)}label.inline input[type=checkbox]{width:auto}small{color:var(--muted);font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.chip{flex-direction:row;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;padding:4px 10px;background:#fff;font-size:12px}.chip input{width:auto}.actions{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}button,.button{font:inherit;padding:7px 14px;border-radius:6px;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;text-decoration:none;display:inline-block}button:disabled{opacity:.55;cursor:not-allowed}button.secondary,.button.secondary{background:#fff;color:var(--text);border-color:var(--border)}button.link{background:none;border:none;color:var(--accent);padding:2px 6px;text-decoration:underline}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}.table th{font-size:12px;color:var(--muted);font-weight:600}.table code{font-size:12px}.nowrap{white-space:nowrap}.ellipsis{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#eef2f7;color:var(--muted)}.badge--created{background:#e6f6ee;color:var(--ok)}.badge--failed{background:#fdecec;color:var(--err)}.badge--duplicate{background:#fff5e0;color:var(--warn)}.badge--processing,.badge--received{background:#eef2ff;color:var(--accent)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.modal__body{background:#fff;border-radius:10px;padding:18px;max-width:760px;width:100%;max-height:80vh;overflow:auto}.modal__body pre{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:8px;overflow:auto;font-size:12px;max-height:55vh}.ok{color:var(--ok)}.err{color:var(--err)}.small{font-size:11px}.muted{color:var(--muted);font-size:12px}@media(max-width:780px){.grid2,.grid4{grid-template-columns:1fr}}
