:root{--bg:#f6f6f9;--panel:#fff;--ink:#141622;--muted:#6f7486;--line:#e6e7ee;--accent:#6d5bd0;--green:#1f8a70;--amber:#c98a00;--pink:#d6336c;--blue:#0b84ff;--grey:#eceef3;--shadow:0 1px 2px rgba(20,22,34,.05),0 8px 24px rgba(20,22,34,.06)}
@media (prefers-color-scheme:dark){:root{--bg:#0f1117;--panel:#171a23;--ink:#eef0f6;--muted:#9aa0ad;--line:#262a36;--grey:#232734;--shadow:0 1px 2px rgba(0,0,0,.4)}}
*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}
button{font:inherit;border:0;border-radius:9px;padding:8px 14px;background:var(--accent);color:#fff;cursor:pointer}button.ghost{background:transparent;color:var(--muted);padding:6px 8px}button.ghost:hover{color:var(--ink)}
input,select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink)}
.logo{font-weight:700;font-size:18px;letter-spacing:-.01em}.logo span{color:var(--accent)}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;max-width:420px;box-shadow:var(--shadow)}.login-card input{width:100%;margin:12px 0}.login-card button{width:100%}
.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.nav{background:var(--panel);border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.nav .logo{padding:0 10px 18px}
.nav a[data-view]{padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--muted);font-weight:500;cursor:pointer}.nav a[data-view]:hover{background:var(--grey);color:var(--ink)}.nav a.active{background:var(--accent);color:#fff}
.nav-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding:0 10px;font-size:13px}.nav-foot a{color:var(--muted);text-decoration:none}
main{padding:28px 32px;max-width:1500px}h1{font-size:24px;margin:0 0 4px;letter-spacing:-.01em}.sub{color:var(--muted);margin:0 0 22px}h2{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:26px 0 10px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.stat .v{font-size:28px;font-weight:700;letter-spacing:-.02em}.stat .l{color:var(--muted);font-size:12px}.stat .d{font-size:12px;color:var(--muted);margin-top:4px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.badge{display:inline-block;font-size:11px;padding:2px 7px;border-radius:999px;background:var(--grey);color:var(--muted);margin-right:4px;vertical-align:middle;white-space:nowrap}
.badge.ok,.badge.confirmed,.badge.delivered,.badge.forward,.badge.show,.badge.published,.badge.open,.badge.active,.badge.closed{background:#d3eee6;color:var(--green)}.badge.warn,.badge.proposed,.badge.ask,.badge.pending,.badge.requested,.badge.onboarding{background:#fff3d1;color:var(--amber)}.badge.bad,.badge.rejected,.badge.dropped,.badge.drop,.badge.silent,.badge.silenced,.badge.withdrawn,.badge.paused,.badge.declined,.badge.expired{background:#fde2e8;color:var(--pink)}.badge.assumed,.badge.new{background:var(--grey)}
.mod{font-weight:600;color:var(--accent)}
.feed{display:flex;flex-direction:column;gap:6px}.ev{display:grid;grid-template-columns:62px 1fr;gap:12px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.ev .t{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;padding-top:2px}.ev .who{font-weight:600}.ev .txt{margin-top:2px}.ev.decision{border-left:3px solid var(--accent)}.ev.in{border-left:3px solid var(--blue)}.ev.out{border-left:3px solid var(--green)}.ev img{max-height:120px;border-radius:8px;margin-top:6px;display:block}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em}tr.row:hover{background:var(--grey);cursor:pointer}
.journey{display:flex;flex-direction:column;gap:14px}.steps{display:flex;gap:8px;align-items:stretch;overflow-x:auto;padding-bottom:6px}.step{min-width:190px;flex:1;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;position:relative}.step .n{width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-weight:700;font-size:11px;margin-bottom:8px}.step.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(109,91,208,.15)}.step.off{opacity:.45}.step h4{margin:0 0 4px;font-size:13px}.step p{margin:0;font-size:12px;color:var(--muted)}
.recip{display:grid;grid-template-columns:1fr;gap:10px}.recip .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.path{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px;margin-top:6px}.path .arrow{color:var(--muted)}
.chat{display:flex;flex-direction:column;gap:6px;max-height:520px;overflow:auto;padding:10px;background:var(--grey);border-radius:12px}.bubble{max-width:80%;padding:8px 12px;border-radius:16px;font-size:13px;white-space:pre-wrap}.bubble.in{align-self:flex-end;background:var(--blue);color:#fff}.bubble.out{align-self:flex-start;background:var(--panel)}.bubble .k{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;opacity:.6}.bubble img{max-width:100%;border-radius:10px;display:block;margin-top:4px}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.person{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;display:flex;gap:12px}.person:hover{border-color:var(--accent)}.avatar{width:52px;height:52px;border-radius:14px;background:var(--grey);display:grid;place-items:center;font-weight:700;color:var(--accent);flex:none;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}
.bars{display:flex;align-items:flex-end;gap:3px;height:70px}.bar{flex:1;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px;opacity:.85}.bar.m{background:var(--blue)}
pre{font-size:11px;background:var(--grey);padding:8px;border-radius:8px;overflow:auto;max-height:240px;white-space:pre-wrap;margin:6px 0 0}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.empty{color:var(--muted);font-style:italic}
iframe.diagram{width:100%;height:calc(100vh - 140px);border:1px solid var(--line);border-radius:14px;background:#fff}
@media (max-width:900px){.app{grid-template-columns:1fr}.nav{position:static;height:auto;flex-direction:row;flex-wrap:wrap}.nav-foot{margin-top:0;flex-direction:row}main{padding:16px}.grid2{grid-template-columns:1fr}}
