/* KAM-Letters — дополнения к app.css и srv.css */
.tbl.letters td { vertical-align: top; }
.tbl.letters .num-cell { font-size: 15px; color: var(--strong); white-space: nowrap; }
.tbl.letters .org { color: var(--strong); font-weight: 600; }
.tbl.letters .subj { min-width: 280px; max-width: 520px; }
.ai { margin-top: 4px; padding-left: 8px; border-left: 2px solid var(--accent); font-size: 12px; color: var(--text-soft); }
.grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 20px; }
.issued { border: 1px solid var(--hair); border-left: 3px solid var(--accent); padding: 18px 22px; margin-bottom: 26px; }
.issued-num { font-size: 30px; font-weight: 300; color: var(--strong); letter-spacing: -.5px; }
.issued-num span { font-size: 16px; color: var(--muted); }
.copyline { display: flex; gap: 8px; }
.copyline input { flex: 1; font-family: Consolas, monospace; font-size: 12.5px; }
/* цепочки */
.chain { border: 1px solid var(--hair); margin-top: 18px; }
.chain-head { display: flex; justify-content: space-between; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--hair); background: var(--surface); }
.chain-meta { text-align: right; }
.lanes { list-style: none; margin: 0; padding: 14px 18px 18px; position: relative; }
.lanes::before { content: ""; position: absolute; left: 50%; top: 14px; bottom: 18px; border-left: 1px dashed var(--line-art); }
.lanes li { display: flex; margin-top: 10px; position: relative; }
.lanes li::after { content: ""; position: absolute; left: calc(50% - 5px); top: 16px; width: 9px; height: 9px; border-radius: 50%; background: var(--ground); border: 2px solid var(--accent); }
.lanes li.lane-in::after { border-color: var(--text-soft); }
.lanes li.lane-out { justify-content: flex-end; }
.bubble { width: calc(50% - 22px); border: 1px solid var(--hair); padding: 10px 12px; background: var(--ground); font-size: 12.5px; }
.lane-in .bubble { border-left: 2px solid var(--text-soft); }
.lane-out .bubble { border-right: 2px solid var(--accent); }
.bubble-head { color: var(--text); margin-bottom: 4px; }
.bubble-head .dir { font-size: 9.5px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--dim); margin-right: 4px; }
.lane-out .bubble-head .dir { color: var(--accent-text); }
.bubble-text { color: var(--strong); }
.bubble-foot { margin-top: 5px; font-size: 11.5px; }
@media (max-width: 760px) {
  .grid3 { grid-template-columns: 1fr; }
  .lanes::before, .lanes li::after { display: none; }
  .bubble { width: 88%; }
}
form.filter-row { margin-bottom: 18px; }
