/* SynthTax · дополнения к ledger.css для реального сайта (общие для всех страниц). */

.skip-link { position: absolute; left: 12px; top: -60px; z-index: 900; padding: 10px 16px; background: var(--ink); color: var(--bg); border-radius: var(--r-btn); transition: top .2s; }
.skip-link:focus { top: 12px; }

.ftr-display { font-size: clamp(38px, 5vw, 68px); }
.hdr-nav a[aria-current="page"] { color: var(--ink); }
.mnav-links a[aria-current="page"] { color: var(--accent-text); }

/* Статус отправки формы: одна строка под кнопкой, с иконкой. */
.form-status { display: flex; align-items: flex-start; gap: 10px; margin-top: 14px; padding: 12px 14px; border: var(--bw) solid var(--line); border-radius: var(--r-2); background: var(--surface); font-size: 14.5px; line-height: 1.45; animation: rise .35s var(--ease-out) both; }
.form-status .i { flex: none; width: 18px; height: 18px; margin-top: 1px; }
.form-status.is-pos { border-color: color-mix(in srgb, var(--pos) 35%, transparent); background: var(--pos-soft); color: var(--ink); }
.form-status.is-pos .i { color: var(--pos); }
.form-status.is-neg { border-color: color-mix(in srgb, var(--neg) 35%, transparent); background: var(--neg-soft); color: var(--ink); }
.form-status.is-neg .i { color: var(--neg); }
.form-status.is-warn { border-color: color-mix(in srgb, var(--warn) 35%, transparent); background: var(--warn-soft); color: var(--ink); }
.form-status.is-warn .i { color: var(--warn); }

/* Поле с ошибкой: короткая тряска и красная рамка. */
.is-invalid { border-color: var(--neg) !important; animation: shake .38s var(--ease-out); }
@keyframes shake { 0%, 100% { transform: none; } 25% { transform: translateX(-5px); } 50% { transform: translateX(4px); } 75% { transform: translateX(-2px); } }
@media (prefers-reduced-motion: reduce) { .is-invalid { animation: none; } }

.nowrap { white-space: nowrap; }

@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes fade-out { from { opacity: 1; } to { opacity: 0; } }

/* Шапка на узких ноутбуках: семь пунктов меню + кнопки должны влезать */
@media (min-width: 1081px) and (max-width: 1280px) {
  .logo-word small, .hdr-login span { display: none; }
  .hdr-ledger .hdr-nav a { padding: 8px 9px; }
}
