body { margin: 0; font: 15px/1.4 system-ui, sans-serif; color: #1d1d1f; background: #fafafa; }
header, main, footer { padding: 12px 24px; }
h1 { margin: 0; font-size: 22px; }
.sub { margin: 2px 0 0; color: #666; }
.list { list-style: none; margin: 0; padding: 0; max-width: 960px; }
.row { display: grid; grid-template-columns: 90px 50px 1fr 190px 190px; gap: 12px; align-items: center; min-height: 44px; padding: 0 12px; border-bottom: 1px solid #e5e5e5; background: #fff; }
.row .action { justify-self: end; }
.row .id { font-family: ui-monospace, monospace; }
.row.sev1 .sev { color: #b00020; font-weight: 600; }
.row.sev2 .sev { color: #a15c00; }
.row time { color: #555; font-variant-numeric: tabular-nums; }
footer { color: #777; font-size: 13px; }
.status { font-variant-numeric: tabular-nums; }
.status.stale { color: #b00020; }
.loader { display: flex; align-items: center; gap: 10px; padding: 16px 12px; color: #555; }
.spinner { width: 16px; height: 16px; border: 2px solid #ccc; border-top-color: #555; border-radius: 50%; animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.empty { padding: 16px 12px; color: #555; }
.row.is-new { animation: arrive 1.5s ease-out; }
@keyframes arrive { from { background: #fff4c2; } to { background: #fff; } }
.row.is-acked { background: #f3f7f3; }
.acked { color: #1b6e2a; font-weight: 600; white-space: nowrap; }
footer code { font-family: ui-monospace, monospace; }
.row { cursor: pointer; }
.row:hover { background: #f6f6f6; }
.row:focus-visible { outline: 2px solid #3366cc; outline-offset: -2px; }
.row.is-open { box-shadow: inset 4px 0 0 #3366cc; }
.panel { position: fixed; top: 90px; right: 16px; width: 248px; padding: 16px; background: #fff; border: 1px solid #d0d0d0; border-radius: 10px; box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.panel h2 { margin: 0 0 8px; font-size: 20px; font-family: ui-monospace, monospace; }
.panel .p-sev { font-size: 14px; color: #a15c00; }
.panel p { margin: 6px 0; }
.panel .p-where, .panel time { color: #555; }
.p-close { position: absolute; top: 6px; right: 8px; border: 0; background: none; font-size: 20px; cursor: pointer; color: #666; }
.panel-ack { width: 100%; margin-top: 10px; padding: 10px; font: inherit; font-weight: 600; border: 0; border-radius: 6px; background: #1d1d1f; color: #fff; cursor: pointer; }
.panel-ack:disabled { opacity: 0.6; cursor: progress; }
.p-state { color: #1b6e2a; font-weight: 600; }
@media (max-width: 1240px) { .panel { top: auto; bottom: 16px; left: 16px; right: 16px; width: auto; } main { padding-bottom: 260px; } }
