:root{--bg:#f6f8f9;--card:#fff;--ink:#1c2530;--muted:#66727f;--line:#e3e8ec;--green:#17a673;--teal:#0f9fa6;--blue:#2563c9;--red:#c9363e;--amber:#b7791f;--r:10px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--blue)}
header{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;padding:12px 24px;background:var(--card);border-bottom:1px solid var(--line)}
.brand{font-weight:700;text-decoration:none;color:var(--ink);background:linear-gradient(90deg,var(--green),var(--teal),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:18px}
nav{display:flex;flex-wrap:wrap;gap:4px}
nav a{padding:6px 10px;border-radius:8px;text-decoration:none;color:var(--muted)}
nav a.active,nav a:hover{background:#eaf6f3;color:var(--ink)}
main{max-width:1200px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:24px;margin:4px 0 16px}h2{font-size:17px;margin:0 0 12px}h3{font-size:15px;margin:16px 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:16px;overflow-x:auto}
.card.warn{border-color:#f0d9a8;background:#fffbf2}.card.ok{border-left:4px solid var(--green)}.card.bad{border-left:4px solid var(--red)}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}
.inline{display:inline}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:4px}
.kpi span{display:block;color:var(--muted);font-size:13px}.kpi b{font-size:22px;display:block}.kpi small{color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0 16px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
.clip{max-width:420px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.small{font-size:12px;word-break:break-all}
.muted{color:var(--muted)}.pos{color:var(--green)}.neg{color:var(--red)}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;background:#eef1f4;color:var(--ink);white-space:nowrap}
.badge.green,.s-executed{background:#e3f6ee;color:#0e7a53}.badge.blue{background:#e6eefb;color:var(--blue)}.badge.red,.s-failed{background:#fbe7e8;color:var(--red)}
.s-pending{background:#fdf1dc;color:var(--amber)}.s-rejected,.s-declined,.s-expired{background:#f1f2f4;color:var(--muted)}
.btn{display:inline-block;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:7px 14px;border-radius:8px;font:inherit;cursor:pointer;text-decoration:none}
.btn:hover{border-color:#c5ced6}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.danger{background:var(--red);border-color:var(--red);color:#fff}
.alert{background:#eaf6f3;border:1px solid #c5e8dd;padding:10px 14px;border-radius:8px;word-break:break-word}.alert.bad{background:#fbe7e8;border-color:#f2c5c8}
.pending{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.pending p{margin:4px 0}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0}.facts dt{color:var(--muted)}.facts dd{margin:0}
pre{white-space:pre-wrap;word-break:break-word;background:#f3f5f7;padding:12px;border-radius:8px;font-size:12px;max-height:480px;overflow:auto}
label{display:block;margin:8px 0}input:not([type=radio]):not([type=checkbox]){display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}
.settings label input[type=radio]{margin-right:6px}
.login{display:grid;place-items:center;min-height:100vh}.login form{width:min(360px,100%)}
@media (max-width:640px){header{padding:10px 16px}.facts{grid-template-columns:1fr}.facts dt{margin-top:6px}}
.badge.amber{background:#fdf1dc;color:var(--amber)}.badge.teal{background:#e2f5f5;color:#0b7c82}
ol li{margin-bottom:6px}
.spark{width:100%;height:160px;display:block}
select{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--card)}
.status.ok{border-left:4px solid var(--green)}.status.warn{border-left:4px solid var(--amber)}.status.bad{border-left:4px solid var(--red)}
.statuslist{list-style:none;margin:0;padding:0}.statuslist li{padding:4px 0 4px 22px;position:relative}
.statuslist li::before{content:"";position:absolute;left:4px;top:11px;width:9px;height:9px;border-radius:50%;background:var(--green)}
.statuslist li.warn::before{background:var(--amber)}.statuslist li.bad::before{background:var(--red)}
