/* application-level overrides on top of tokens.css */

body {
  background: var(--tc-bg);
  color: var(--tc-text);
  font-family: var(--tc-font);
  font-size: var(--tc-fs);
  line-height: 1.5;
}

* { box-sizing: border-box; }

a { color: inherit; text-decoration: none; }

/* tabular numbers for tables and metric cards (already in tokens.css as .tc-num) */
table { font-variant-numeric: tabular-nums; }

/* highlight animation for realtime new items */
@keyframes tc-highlight {
  0%   { background: rgba(79, 70, 229, .12); }
  100% { background: transparent; }
}
.tc-highlight { animation: tc-highlight var(--tc-slow) ease-out; }

/* rose-pulse 1.6s — для optimistic rollback (WEB_SPEC §7.6) */
@keyframes tc-rose-pulse {
  0%, 60% { background: rgba(244, 63, 94, .12); }
  100%    { background: transparent; }
}
.tc-rose-pulse { animation: tc-rose-pulse var(--tc-slow) ease-out; }

/* action-кнопки в drawer'е */
.action-btn {
  font-size: var(--tc-fs-md);
  padding: 6px 12px;
  border-radius: var(--tc-r);
  border: 1px solid var(--tc-border);
  background: white;
  color: var(--tc-text);
  cursor: pointer;
  transition: all var(--tc-fast);
  font-family: inherit;
  line-height: 1.3;
}
.action-btn:hover {
  border-color: var(--tc-primary);
  color: var(--tc-primary);
  background: var(--tc-primary-bg);
}
.action-btn:active { transform: translateY(1px); }
.action-btn-rose {
  border-color: rgba(244, 63, 94, .3);
  color: var(--tc-lost);
}
.action-btn-rose:hover {
  background: rgba(244, 63, 94, .06);
  border-color: var(--tc-lost);
  color: var(--tc-bad-money);
}

/* HTMX-индикатор «занят» — на кнопке во время запроса */
.htmx-request .action-btn,
.action-btn.htmx-request {
  opacity: .65;
  pointer-events: none;
}
