.crumb { font-size:0.85rem; color:var(--pt-muted); margin:0 0 0.85rem; padding:0.55rem 0.85rem; background: rgba(8,12,22,0.6); border: 1px solid var(--pt-line); border-radius: 8px; }
.crumb a { color:var(--pt-cyan); text-decoration:none; font-weight: 500; }
.crumb a:hover { color:#fff; }
.crumb span { color: var(--pt-fg, #e6eef9); font-weight: 600; }
.rel-bar { display:flex; flex-wrap:wrap; gap:0.45rem; margin:0 0 0.95rem; padding: 0.55rem 0.75rem; background: rgba(56,189,248,0.04); border: 1px dashed rgba(56,189,248,0.2); border-radius: 8px; }
.filter-row { display:flex; flex-wrap:wrap; gap:0.45rem; align-items:end; margin-bottom:0.75rem; }
.filter-row label { display:block; font-size:0.72rem; color:var(--pt-muted); margin-bottom:0.2rem; }
.fld { width:100%; box-sizing:border-box; min-width:10rem; }
.tbl { width:100%; border-collapse:collapse; font-size:0.84rem; }
.tbl-wrap { overflow-x:auto; }
input[type=file] { max-width:100%; color:var(--pt-muted); font-size:0.78rem; }
.tbl th, .tbl td { border-bottom:1px solid var(--pt-line); padding:0.4rem 0.3rem; text-align:left; vertical-align:top; }
.tbl th { color:var(--pt-muted); font-weight:550; font-size:0.75rem; }
.err { color:#f87171; }
.ok { color:#34d399; }
.pager { display:flex; flex-wrap:wrap; gap:0.35rem; align-items:center; margin-top:0.55rem; }
.camp-row {
  display:flex; flex-wrap:wrap; gap:0.45rem; align-items:center;
  padding:0.55rem 0.75rem; margin: 0 -0.25rem; border-radius: 8px;
  border: 1px solid transparent;
  transition: all 0.15s;
}
.camp-row:hover { background: rgba(56,189,248,0.06); border-color: rgba(56,189,248,0.2); }
.note { font-size:0.78rem; color:var(--pt-muted); margin:0 0 0.75rem; line-height:1.5; }
.gate-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:0.75rem; }
.gate-card {
  border:1px solid var(--pt-line); border-radius:12px; padding:0.85rem;
  background:rgba(7,11,20,.35);
}
.gate-card h3 { margin:0 0 0.35rem; font-size:0.95rem; }
.gate-card .dom { font-family:ui-monospace,Menlo,monospace; font-size:0.78rem; word-break:break-all; color:var(--pt-cyan); }
.gate-card .tok { font-family:ui-monospace,Menlo,monospace; font-size:0.78rem; word-break:break-all; color:var(--pt-muted); }
.gate-card .acts { display:flex; flex-wrap:wrap; gap:0.35rem; margin-top:0.55rem; }
.meta { font-size:0.82rem; color:var(--pt-muted); }
.act-new { color:#34d399; }
.act-update { color:var(--pt-cyan); }
.act-conflict, .act-error { color:#f87171; }
