:root{
    --bg:#0b0e14;
    --fg:#e6edf3;
    --muted:#8aa1b1;
    --card:#121826;
    --grid:#1b2233;
    --accent:#4cc2ff;
}
body{
    margin:0;
    background:var(--bg);
    color:var(--fg);
    font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
}
.wrap{
    max-width:1100px;
    margin:24px auto;
    padding:0 14px;
}
h1{font-size:20px;margin:0 0 12px}
.topbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}
.topbar a{color:var(--accent);text-decoration:none}
.topbar a:hover{text-decoration:underline}
.hint{color:var(--muted);font-size:12px}

table{
    width:100%;
    border-collapse:collapse;
    background:var(--card);
    border:1px solid var(--grid);
    border-radius:12px;
    overflow:hidden;
}
th, td{
    border-bottom:1px solid var(--grid);
    padding:10px;
    vertical-align:top;
    font-size:13px;
}
th{
    text-align:left;
    background:#0f1420;
    color:var(--muted);
    font-weight:600;
    font-size:12px;
    letter-spacing:.02em;
}
tr:last-child td{border-bottom:none}

.col-ts{white-space:nowrap;width:190px}
.col-topic{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}
.col-payload{width:52%}

/* Payload UI (JS steuert open/close) */
.payload-wrap{display:flex;gap:10px;align-items:flex-start}
.toggle{
    border:1px solid var(--grid);
    background:#0f1420;
    color:var(--fg);
    border-radius:8px;
    width:34px;
    height:28px;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
}
.toggle:hover{border-color:var(--accent)}
.payload-short{
    margin:0;
    white-space:pre-wrap;
    word-break:break-word;
    color:var(--fg);
}
.payload-pretty{
    margin:8px 0 0 0;
    padding:10px;
    border:1px solid var(--grid);
    border-radius:10px;
    background:#0f1420;
    overflow:auto;
    max-height:360px;
    display:none;
    white-space:pre;
    font-size:12px;
    color:var(--fg);
}
tr.is-open .payload-pretty{display:block}
tr.is-open .payload-short{opacity:.75}