.lb-list { list-style: none; margin: 0; padding: 0; }
.lb-row { padding: 10px 12px; border-bottom: 1px solid var(--border-row); cursor: pointer; }
.lb-row:hover { background: var(--row-hover); }
.lb-head { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.lb-date { color: var(--fg-muted); font-variant-numeric: tabular-nums; }
.lb-src, .lb-role { color: var(--fg-muted); font-size: 12px; }
.lb-role { border: 1px solid var(--border-row); border-radius: var(--radius-sm); padding: 0 4px; }
.lb-title { font-weight: 600; }
.lb-people { color: var(--fg-muted); font-size: 12px; }
.lb-snip { margin-top: 4px; color: var(--fg); }
.lb-snip mark { background: var(--warn-bg); color: inherit; }
.lb-around { margin-top: 8px; padding-left: 10px; border-left: 2px solid var(--border-row);
             white-space: pre-wrap; color: var(--fg-muted); }
.lb-open { color: var(--fg-muted); font-size: 12px; }
.lb-note, .lb-empty { color: var(--fg-muted); }
.lb-dim { opacity: .7; }          /* попадание второго прохода: дальняя форма */

/* страницы людей и проектов (срез 2) */
.lp-head { margin-bottom: 18px; }
.lp-name { font-size: 20px; font-weight: 600; display: flex; gap: 10px; align-items: baseline; }
.lp-meta { display: flex; gap: 12px; flex-wrap: wrap; color: var(--fg-muted); margin-top: 4px; }
.lp-note { margin: 10px 0 0; }
.lp-line { margin: 6px 0 0; }
.lp-k { color: var(--fg-muted); margin-right: 6px; }
.lp-tag { font-size: 12px; color: var(--fg-muted); border: 1px solid var(--border-row);
          border-radius: var(--radius-sm); padding: 0 6px; }
.lp-due { font-size: 12px; color: var(--warn); }
.lp-due.over { color: var(--err); font-weight: 600; }
.lp-list { list-style: none; margin: 0; padding: 0; }
.lp-row { padding: 10px 12px; border-bottom: 1px solid var(--border-row); }
.lp-row:last-child { border-bottom: none; }
.lp-row-head { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.lp-date { color: var(--fg-muted); font-variant-numeric: tabular-nums; }
.lp-people { color: var(--fg-muted); font-size: 12px; }
.lp-take { margin-top: 4px; color: var(--fg-muted); }
.lp-more { padding: 10px 12px; color: var(--fg-muted); }
.lp-link { color: inherit; text-decoration: underline dotted; }
.lp-tags { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.lp-tbl .num { text-align: right; }
.lp-off { opacity: .6; }

/* обещания (срез 4) */
.lp-filters { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 0 0 12px; }
.lp-act { display: flex; gap: 6px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.lp-note-in { width: 160px; }
.lp-closed { color: var(--fg-muted); }

/* реестр проектов: направление из строки и перетаскиванием (макет 27.09.2026) */
.lp-dnd .ls-row { position: relative; }
.lp-dnd .grip { position: absolute; left: 3px; top: 50%; transform: translateY(-50%); width: 14px; height: 22px;
  display: grid; place-items: center; color: var(--fg-faint); cursor: grab; opacity: 0; transition: opacity .12s; border-radius: 4px; }
.lp-dnd .grip:hover { color: var(--fg-muted); background: var(--paper-mute); }
.lp-dnd .ls-row:hover .grip { opacity: 1; }
.lp-dnd .ls-row.dragging { opacity: .35; }
body.lp-dragging, body.lp-dragging * { cursor: grabbing !important; }
.dchip { font-family: inherit; cursor: pointer; }
.dchip .car { opacity: .55; margin-left: -2px; }
.lp-dnd .dchip.set { opacity: 0; transition: opacity .12s; }
.lp-dnd .ls-row:hover .dchip.set, .dchip.set:focus-visible, .dchip[aria-expanded="true"] { opacity: 1; }
.lp-dnd .band { transition: background .12s; }
.lp-dnd .band.drop-ok { background: var(--accent-bg); box-shadow: inset 3px 0 0 var(--accent); }
.lp-dnd .band.drop-ok .ls-group { background: var(--accent-bg); color: var(--accent); }
.lp-dnd .band.drop-ok .ls-row:hover { background: transparent; }
.band-empty { padding: 12px 18px; font-size: var(--fs-xs); color: var(--fg-faint); border-bottom: 1px solid var(--border-row); }
.band-empty[hidden] { display: none; }
body.lp-dragging .band-empty { color: var(--fg-muted); }
.lp-dnd .band.drop-ok .band-empty { color: var(--accent); }
body.lp-dragging .band.off, body.lp-dragging .band.gone { opacity: .45; }
.lp-dnd .ls-row.flash { animation: lp-flash 1.2s var(--ease-out); }
@keyframes lp-flash { 0% { background: var(--accent-bg); } 100% { background: transparent; } }
.lp-dnd .ls-row.saving { opacity: .6; }

.dpop { position: fixed; z-index: 60; width: 240px; top: 0; left: 0; }
.dpop .pop-presets button { align-items: center; }
.dpop .pop-presets button .nm { display: inline-flex; gap: 8px; align-items: center; }
.dpop kbd { font-family: var(--font-mono); font-size: 10.5px; color: var(--fg-label); border: 1px solid var(--border-strong);
  border-radius: 4px; padding: 0 5px; line-height: 16px; background: var(--paper-card); }
.dpop .pop-presets button.active kbd { color: var(--fg-on-ink); border-color: rgba(255,255,255,.35); background: transparent; }
.dpop .pop-note a { color: var(--info); }

.lp-toast { position: fixed; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%) translateY(10px);
  opacity: 0; pointer-events: none; transition: opacity .16s, transform .16s var(--ease-out);
  display: flex; gap: 14px; align-items: center; background: var(--fg); color: var(--paper-card);
  padding: 9px 10px 9px 16px; border-radius: var(--radius-lg); font-size: var(--fs-sm); box-shadow: var(--shadow-modal);
  z-index: 70; max-width: calc(100vw - 32px); }
.lp-toast.show { opacity: 1; transform: translateX(-50%); pointer-events: auto; }
.lp-toast.err { background: var(--err); }
.lp-toast button { background: transparent; border: 1px solid rgba(255,255,255,.35); color: inherit; border-radius: var(--radius-sm);
  padding: 3px 10px; font: inherit; font-size: var(--fs-xs); cursor: pointer; }
.lp-toast button:hover { background: rgba(255,255,255,.12); }
.lp-toast button[hidden] { display: none; }

@media (max-width: 720px) {
  .lp-dnd .grip { display: none; }
  .lp-dnd .dchip.set { opacity: 1; }
  .lp-dnd .ls-row > .dcell { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) { .lp-dnd .ls-row.flash { animation: none; } .lp-toast { transition: none; } }
