@import url("https://fonts.googleapis.com/css2?family=Geologica:wght@400..700&family=Golos+Text:wght@400..700&family=JetBrains+Mono:wght@400;600&display=swap");

/* Движение — не токены: наведение 120 мс, нажатие 160, появление 200, раскрытие 240, бегунок 260; ease-out — отклик и появление, ease-in-out — перемещение. */
:root { --ease-out: cubic-bezier(.23, 1, .32, 1); --ease-in-out: cubic-bezier(.65, 0, .35, 1); --dur-hover: 120ms; --dur-press: 160ms; --dur-pop: 200ms; --dur-open: 240ms; --dur-slide: 260ms; }

body { margin: 0; font-family: var(--font-text); font-size: 15px; line-height: 22px; background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--link); text-underline-offset: 3px; transition: color var(--dur-hover) var(--ease-out), text-decoration-color var(--dur-hover) var(--ease-out); }
a:hover { color: var(--ink-2); }

/* Фокус — только обводка focus, у всех одинаковая; повторяет скругление элемента и не обрезается рамкой списка. */
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; animation: nl-focus var(--dur-pop) var(--ease-out); }
@keyframes nl-focus { from { outline-offset: 6px; outline-color: transparent; } }
.nl-crow:focus-visible, .nl-frow__summary:focus-visible, .nl-disc__summary:focus-visible, .nl-menu__item:focus-visible, .nl-matrix__cell:focus-visible, .nl-table-wrap:focus-visible { outline-offset: -2px; }

.nl-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nl-mono { font-family: var(--font-mono); font-size: 13px; line-height: 20px; font-variant-numeric: tabular-nums; }
.nl-row { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }
.nl-demo { padding: var(--space-6); display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.nl-demo--col { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
.nl-demo--sunken { background: var(--surface); }

/* тона текста и значков */
.nl-tone-bad { color: var(--bad); } .nl-tone-warn { color: var(--warn); } .nl-tone-good { color: var(--good); }
.nl-tone-gap { color: var(--gap); } .nl-tone-ink2 { color: var(--ink-2); } .nl-tone-ink3 { color: var(--ink-3); }
.nl-icon { flex-shrink: 0; display: block; }
.nl-status { flex-shrink: 0; display: block; }
.nl-fill-bad { fill: var(--bad); } .nl-fill-on-bad { fill: var(--on-bad); } .nl-stroke-on-bad { stroke: var(--on-bad); }
.nl-fill-warn { fill: var(--warn); stroke: var(--warn); } .nl-fill-on-warn { fill: var(--on-warn); } .nl-stroke-on-warn { stroke: var(--on-warn); }
.nl-fill-good { fill: var(--good); } .nl-stroke-on-good { stroke: var(--on-good); }
.nl-stroke-gap { stroke: var(--gap); } .nl-stroke-ink2 { stroke: var(--ink-2); } .nl-fill-ink2 { fill: var(--ink-2); }
.nl-stroke-ink3 { stroke: var(--ink-3); } .nl-stroke-line { stroke: var(--line); } .nl-stroke-ink { stroke: var(--ink); }
.nl-spin { transform-origin: 10px 10px; animation: nl-spin 900ms linear infinite; }
@keyframes nl-spin { to { transform: rotate(360deg); } }
.nl-spinner { display: block; flex-shrink: 0; }

/* знак */
/* знак: «три тона» в светлой теме, контур в тёмной и на night; слово — ink, зелёный — в знаке */
.nl-logo { display: inline-flex; align-items: center; gap: .22em; font-family: var(--font-display); font-size: 22px; line-height: 28px; font-weight: 700; letter-spacing: -0.045em; color: var(--ink); text-decoration: none; }
.nl-logo__mark { display: block; flex-shrink: 0; width: .9em; height: .9em; }
.nl-logo__r { fill: var(--ink); } .nl-logo__c { fill: var(--brand-700); } .nl-logo__l { fill: var(--paper); stroke: var(--paper); }
.nl-logo--auto .nl-logo__mark--line { display: none; }
[data-theme="dark"] .nl-logo--auto .nl-logo__mark--color { display: none; }
[data-theme="dark"] .nl-logo--auto .nl-logo__mark--line { display: block; }
.nl-logo--dark, a.nl-logo--dark:hover { color: var(--on-night); }
.nl-logo--lg { font-size: 40px; line-height: 44px; }
a.nl-logo:hover { color: var(--ink); }

/* кнопки: высоты 32/40/48, одно скругление; наведение — слой state-hover поверх своего фона, нажатие — state-press и .97 */
.nl-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); height: var(--control-md); padding: 0 var(--space-4); border-radius: var(--radius-md); border: 1px solid transparent; font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: none; white-space: nowrap; cursor: pointer; isolation: isolate; transition: transform var(--dur-press) var(--ease-out), background-color var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), color var(--dur-hover) var(--ease-out); }
/* наведение — слой проявляется за 120 мс, а не вспыхивает; стрелка справа уходит на 2 px */
.nl-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: var(--state-hover); opacity: 0; pointer-events: none; transition: opacity var(--dur-hover) var(--ease-out); }
.nl-btn > .nl-btn__end { transition: transform var(--dur-hover) var(--ease-out); }
.nl-btn:hover:not(:disabled) > .nl-btn__end { transform: translateX(2px); }
.nl-btn:active:not(:disabled) { transform: scale(.97); }
.nl-btn:disabled { cursor: not-allowed; }
.nl-btn--sm { height: var(--control-sm); padding: 0 var(--space-3); font-size: 13px; gap: 6px; }
.nl-btn--lg { height: var(--control-lg); padding: 0 var(--space-5); font-size: 15px; }
.nl-btn--icon { width: var(--control-md); padding: 0; }
.nl-btn--sm.nl-btn--icon { width: var(--control-sm); }
.nl-btn--lg.nl-btn--icon { width: var(--control-lg); }
.nl-btn--block { display: flex; width: 100%; }
.nl-btn--primary { background: var(--ink); color: var(--on-ink); }
.nl-btn--primary:hover:not(:disabled) { background: var(--ink-2); color: var(--on-ink); }
.nl-btn--primary:disabled { background: var(--surface-strong); color: var(--ink-4); }
.nl-btn--secondary { background: var(--paper); color: var(--ink); border-color: var(--line-2); }
.nl-btn--secondary:hover:not(:disabled), .nl-btn--ghost:hover:not(:disabled) { color: var(--ink); }
.nl-btn--secondary:hover:not(:disabled) { border-color: var(--line-control); }
.nl-btn--secondary:hover:not(:disabled)::before, .nl-btn--danger:hover:not(:disabled)::before, .nl-btn--ghost:hover:not(:disabled)::before { opacity: 1; }
.nl-btn--secondary:active:not(:disabled)::before, .nl-btn--danger:active:not(:disabled)::before, .nl-btn--ghost:active:not(:disabled)::before { background: var(--state-press); opacity: 1; }
.nl-btn--ghost { background: transparent; color: var(--ink-2); }
.nl-btn--secondary:disabled, .nl-btn--ghost:disabled, .nl-btn--danger:disabled { color: var(--ink-4); background: transparent; }
.nl-btn--danger { background: var(--paper); color: var(--bad); border-color: var(--line-2); }
.nl-btn--danger:hover:not(:disabled) { color: var(--bad); }
@media (pointer: coarse) {
  .nl-btn--md { height: var(--touch); } .nl-btn--md.nl-btn--icon { width: var(--touch); }
  .nl-btn--sm::after, .nl-chip::after, .nl-seg__item::after { content: ""; position: absolute; inset: -6px; }
}

/* поля: наведение — рамка ink-3; фокус — рамка focus в 2 px вместо внешнего кольца */
.nl-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.nl-field__label { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--ink); padding: 0; }
.nl-field__opt { font-weight: 400; color: var(--ink-3); }
.nl-field__hint { font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-field__error { display: flex; gap: 6px; align-items: center; font-size: 13px; line-height: 18px; color: var(--bad); }
.nl-input { width: 100%; height: var(--control-md); padding: 0 var(--space-3); border: 1px solid var(--line-control); border-radius: var(--radius-md); background: var(--paper); color: var(--ink); font-size: 15px; transition: border-color var(--dur-press) var(--ease-out); }
.nl-input::placeholder { color: var(--ink-3); }
.nl-input:hover:not(:disabled) { border-color: var(--ink-3); }
.nl-input:focus, .nl-input:focus-visible { outline: none; border-color: var(--focus); box-shadow: inset 0 0 0 1px var(--focus); }
.nl-input:disabled { color: var(--ink-4); border-color: var(--line-2); border-style: dashed; }
.nl-field--error .nl-input, .nl-field--error .nl-input:hover { border-color: var(--bad); }
.nl-field--error .nl-input:focus { border-color: var(--bad); box-shadow: inset 0 0 0 1px var(--bad); }
.nl-input--mono { font-family: var(--font-mono); font-size: 14px; letter-spacing: .02em; }
.nl-textarea { height: auto; min-height: 96px; padding: 10px var(--space-3); line-height: 22px; resize: vertical; }
.nl-input-wrap { position: relative; }
.nl-input--with-icon { padding-left: 38px; }
.nl-input-wrap__icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--ink-3); pointer-events: none; }
/* свой выпадающий список: поле-кнопка, список под ним или над ним; выбранное — галочка, активное — слой наведения */
.nl-select { position: relative; }
.nl-select__control { display: flex; align-items: center; gap: var(--space-2); width: 100%; text-align: left; cursor: pointer; }
.nl-select__control:disabled { cursor: not-allowed; color: var(--ink-4); }
.nl-select__value { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nl-select__control.is-empty .nl-select__value { color: var(--ink-3); }
.nl-select__chev { flex-shrink: 0; color: var(--ink-3); transition: transform var(--dur-open) var(--ease-out), color var(--dur-hover) var(--ease-out); }
.nl-select__control:hover .nl-select__chev, .nl-select.is-open .nl-select__chev { color: var(--ink); }
.nl-select.is-open .nl-select__chev { transform: rotate(180deg); }
.nl-select--sm { flex-shrink: 0; }
.nl-select--sm .nl-select__control { height: var(--control-sm); padding: 0 8px 0 10px; border: 1px solid var(--line-2); border-radius: var(--radius-sm); background: var(--paper); font-size: 13px; color: var(--ink); transition: border-color var(--dur-hover) var(--ease-out); }
.nl-select--sm .nl-select__control:hover { border-color: var(--ink-3); }
.nl-select__list { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; min-width: 100%; max-height: 288px; overflow-y: auto; margin: 0; padding: 6px; list-style: none; box-sizing: border-box; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); box-shadow: var(--shadow-pop); transform-origin: top center; animation: nl-pop var(--dur-pop) var(--ease-out); }
.nl-select--sm .nl-select__list { left: auto; right: 0; min-width: 220px; }
.nl-select.is-up .nl-select__list { top: auto; bottom: calc(100% + 6px); transform-origin: bottom center; animation-name: nl-pop-up; }
.nl-select__opt { display: flex; align-items: center; gap: 10px; min-height: 38px; padding: 7px 10px; border-radius: var(--radius-sm); font-size: 15px; line-height: 21px; color: var(--ink); cursor: pointer; transition: background-color var(--dur-hover) var(--ease-out); }
.nl-select--sm .nl-select__opt { min-height: 34px; font-size: 14px; }
.nl-select__opt.is-active { background: var(--state-hover); }
.nl-select__opt.is-on { font-weight: 600; }
.nl-select__opt.is-disabled { color: var(--ink-4); cursor: not-allowed; }
.nl-select__label { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.nl-select__hint { font-size: 13px; line-height: 18px; font-weight: 400; color: var(--ink-3); }
.nl-select__check { flex-shrink: 0; color: var(--ink); }
@keyframes nl-pop { from { opacity: 0; transform: translateY(-4px) scale(.98); } }
@keyframes nl-pop-up { from { opacity: 0; transform: translateY(4px) scale(.98); } }
@media (pointer: coarse) { .nl-input { height: var(--touch); } }

/* чекбокс, радио, переключатель: выбран — заливка ink */
.nl-check, .nl-radio { position: relative; display: flex; gap: var(--space-3); align-items: flex-start; cursor: pointer; min-height: 24px; }
.nl-check__input, .nl-radio__input { position: absolute; opacity: 0; width: 20px; height: 20px; margin: 0; }
.nl-check__box { flex-shrink: 0; width: 20px; height: 20px; margin-top: 1px; border: 1.5px solid var(--line-control); border-radius: var(--radius-sm); background: var(--paper); color: var(--on-ink); display: inline-flex; align-items: center; justify-content: center; transition: background-color var(--dur-press) var(--ease-out); }
.nl-check:hover .nl-check__box, .nl-radio:hover .nl-radio__dot { border-color: var(--ink-3); }
.nl-check__box .nl-icon { opacity: 0; transform: scale(.5); transition: opacity var(--dur-hover) var(--ease-out), transform var(--dur-press) var(--ease-out); }
.nl-check__input:checked + .nl-check__box { background: var(--ink); border-color: var(--ink); }
.nl-check__input:checked + .nl-check__box .nl-icon { opacity: 1; transform: none; }
.nl-check__input:focus-visible + .nl-check__box, .nl-radio__input:focus-visible + .nl-radio__dot { outline: 2px solid var(--focus); outline-offset: 2px; }
.nl-check--disabled { cursor: not-allowed; color: var(--ink-4); }
.nl-check--disabled .nl-check__box { border-color: var(--line-2); }
.nl-check__text { display: flex; flex-direction: column; gap: 2px; font-size: 15px; line-height: 22px; }
.nl-check__hint { font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-radio-group { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }
.nl-radio-group > legend { margin-bottom: var(--space-2); }
.nl-radio__dot { flex-shrink: 0; width: 20px; height: 20px; margin-top: 1px; border: 1.5px solid var(--line-control); border-radius: 50%; background: var(--paper); }
.nl-radio__input:checked + .nl-radio__dot { border: 6px solid var(--ink); }
.nl-radio--card { padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.nl-radio--card:hover { background: var(--state-hover); }
.nl-radio--card.is-checked .nl-check__text > span:first-child { font-weight: 600; }
.nl-switch { display: flex; gap: var(--space-3); align-items: flex-start; }
.nl-switch__track { flex-shrink: 0; width: 40px; height: 24px; padding: 2px; border: 0; border-radius: var(--radius-full); background: var(--line-control); cursor: pointer; transition: background-color var(--dur-pop) var(--ease-out); }
.nl-switch__thumb { display: block; width: 20px; height: 20px; border-radius: 50%; background: var(--paper); transition: transform var(--dur-pop) var(--ease-out); }
.nl-switch__track[aria-checked="true"] { background: var(--ink); }
.nl-switch__track[aria-checked="true"] .nl-switch__thumb { transform: translateX(16px); background: var(--on-ink); }

/* переключатель вида: дорожка с рамкой, выбранный — заливка ink, как у фильтра */
.nl-seg { position: relative; display: inline-flex; gap: 2px; padding: 3px; border-radius: var(--radius-md); border: 1px solid var(--line-2); background: var(--paper); }
.nl-seg__item { position: relative; display: inline-flex; align-items: center; gap: 6px; height: var(--control-sm); padding: 0 var(--space-3); border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--ink-2); font-size: 14px; font-weight: 500; cursor: pointer; }
.nl-seg__item:hover:not(.is-on) { background: var(--state-hover); color: var(--ink); }
.nl-seg__item.is-on { background: var(--ink); color: var(--on-ink); font-weight: 600; }
/* выбор переезжает бегунком: одна плашка ink двигается за 260 мс */
.nl-seg__item { z-index: 1; transition: background-color var(--dur-hover) var(--ease-out), color var(--dur-slide) var(--ease-in-out); }
.nl-seg__thumb { position: absolute; top: 0; left: 0; border-radius: var(--radius-sm); background: var(--ink); pointer-events: none; }
.nl-seg.is-ready .nl-seg__thumb { transition: transform var(--dur-slide) var(--ease-in-out), width var(--dur-slide) var(--ease-in-out); }
.nl-seg.has-thumb .nl-seg__item.is-on { background: transparent; }
.nl-seg__count { color: inherit; opacity: .75; font-weight: 500; font-variant-numeric: tabular-nums; }
.nl-seg--sm .nl-seg__item { height: 26px; font-size: 13px; padding: 0 10px; }

/* файлы: зона загрузки без заливки, при перетаскивании — сплошная рамка ink */
.nl-drop-wrap { display: flex; flex-direction: column; gap: var(--space-3); }
.nl-drop { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-8) var(--space-6); border: 1.5px dashed var(--line-control); border-radius: var(--radius-lg); background: var(--paper); color: var(--ink-2); text-align: center; cursor: pointer; transition: border-color var(--dur-press) var(--ease-out); }
.nl-drop:hover { border-color: var(--ink-3); }
.nl-drop.is-dragover { border-style: solid; border-color: var(--ink); }
.nl-drop:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
.nl-drop__title { font-weight: 600; color: var(--ink); }
.nl-drop__hint { font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-drop__files { display: flex; flex-direction: column; gap: var(--space-2); }
.nl-file { display: flex; align-items: center; gap: var(--space-3); min-height: 56px; padding: var(--space-2) var(--space-2) var(--space-2) var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.nl-file__icon { color: var(--ink-3); }
.nl-file--error .nl-file__icon { color: var(--bad); }
.nl-file__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.nl-file__name { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nl-file__meta { font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-file--error .nl-file__meta { color: var(--bad); }

/* глубина проверки: полоса из четырёх отрезков, выбран — всё до него залито ink; без рамок у карточек */
.nl-layers { display: flex; flex-direction: column; gap: var(--space-3); }
.nl-layers__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); }
.nl-layer { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 0 var(--space-2) var(--space-2) 0; border: 0; border-radius: var(--radius-sm); background: transparent; text-align: left; cursor: pointer; color: var(--ink-3); }
.nl-layer:hover:not(:disabled) .nl-layer__label { text-decoration: underline; text-underline-offset: 3px; }
.nl-layer:disabled { cursor: default; }
.nl-layer__bar { width: 100%; height: 4px; border-radius: var(--radius-xs); background: var(--line); margin-bottom: var(--space-3); }
.nl-layer.is-in { color: var(--ink); }
.nl-layer.is-in .nl-layer__bar { background: var(--ink); }
.nl-layer__n { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--ink-3); }
.nl-layer__label { font-weight: 600; font-size: 14px; line-height: 20px; }
.nl-layer:not(.is-in) .nl-layer__label { font-weight: 500; }
.nl-layer__hint { font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-layer__result { display: flex; gap: 6px; align-items: flex-start; font-size: 13px; line-height: 18px; color: var(--ink-2); }
.nl-layers__note { margin: 0; font-size: 13px; line-height: 18px; color: var(--ink-3); }
@media (max-width: 600px) { .nl-layers__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* верхняя полоса */
.nl-topbar { background: var(--paper); border-bottom: 1px solid var(--line); }
.nl-topbar__in { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--gutter); min-height: var(--topbar); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-6); }
.nl-topbar__nav { display: flex; gap: var(--space-1); align-self: stretch; }
.nl-topbar__link { display: flex; align-items: center; padding: 0 var(--space-3); color: var(--ink-3); text-decoration: none; font-weight: 500; border-bottom: 2px solid transparent; }
.nl-topbar__link:hover { color: var(--ink); }
.nl-topbar__link.is-current { color: var(--ink); font-weight: 600; border-bottom-color: var(--ink); }
.nl-topbar__grow { flex: 1 1 auto; }
.nl-topbar__account { display: inline-flex; align-items: center; gap: 6px; min-height: var(--touch); padding: 0 4px; border: 0; border-radius: var(--radius-md); background: transparent; color: var(--ink-3); cursor: pointer; }
.nl-topbar__account:hover { color: var(--ink); }
@media (max-width: 600px) { .nl-topbar__in { padding: 0 var(--gutter-phone); } }

/* вкладки */
.nl-tabs { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); border-bottom: 1px solid var(--line); }
.nl-tab { display: inline-flex; align-items: center; gap: var(--space-2); height: 44px; padding: 0 var(--space-3); margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--ink-3); font-size: 15px; font-weight: 500; cursor: pointer; }
.nl-tab:hover { color: var(--ink); }
.nl-tab.is-on { color: var(--ink); font-weight: 600; border-bottom-color: var(--ink); }
/* подчёркивание выбранной вкладки переезжает к новой за 260 мс */
.nl-tab { transition: color var(--dur-hover) var(--ease-out); }
.nl-tabs__bar { position: absolute; top: 0; left: 0; height: 2px; background: var(--ink); pointer-events: none; }
.nl-tabs.is-ready .nl-tabs__bar { transition: transform var(--dur-slide) var(--ease-in-out), width var(--dur-slide) var(--ease-in-out); }
.nl-tabs.has-bar .nl-tab.is-on { border-bottom-color: transparent; }
.nl-tab__count { font-size: 12px; line-height: 16px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.nl-tabs__end { margin-left: auto; font-size: 13px; color: var(--ink-3); }

/* путь */
.nl-crumbs { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-crumbs a { color: var(--ink-3); }
.nl-crumbs a:hover { color: var(--ink); }
.nl-crumbs__sep { color: var(--line-control); }

/* шаги */
.nl-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); }
.nl-step { display: flex; align-items: flex-start; gap: var(--space-2); color: var(--ink-3); }
.nl-step__mark { flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--line-control); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.nl-step.is-done .nl-step__mark { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
.nl-step.is-current .nl-step__mark { border-color: var(--ink); color: var(--ink); }
.nl-step.is-running .nl-step__mark { border: 0; color: var(--ink); }
.nl-step.is-done, .nl-step.is-current, .nl-step.is-running { color: var(--ink); }
.nl-step__text { display: flex; flex-direction: column; padding-top: 1px; }
.nl-step__label { font-size: 14px; line-height: 22px; font-weight: 600; }
.nl-step.is-todo .nl-step__label { font-weight: 500; }
.nl-step__hint { font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-steps--vertical { flex-direction: column; flex-wrap: nowrap; gap: var(--space-4); }

/* меню */
.nl-menu { display: inline-flex; flex-direction: column; min-width: 240px; padding: 6px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); box-shadow: var(--shadow-pop); transform-origin: top left; animation: nl-pop var(--dur-pop) var(--ease-out); }
.nl-menu__header { padding: var(--space-2) 10px var(--space-3); border-bottom: 1px solid var(--line); margin-bottom: 6px; font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-menu__header b { display: block; color: var(--ink); font-size: 15px; line-height: 22px; }
.nl-menu__item { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--ink); text-align: left; font-size: 14px; cursor: pointer; }
.nl-menu__item:hover { background: var(--state-hover); }
.nl-menu__item:active { background: var(--state-press); }
.nl-menu__item .nl-icon { color: var(--ink-3); }
.nl-menu__item.is-danger, .nl-menu__item.is-danger .nl-icon { color: var(--bad); }
.nl-menu__label { flex: 1 1 auto; }
.nl-menu__hint { font-size: 12px; color: var(--ink-3); }
.nl-menu__divider { height: 1px; margin: 6px 4px; background: var(--line); }

/* вид пункта: слово в смысловом цвете, без подложки */
.nl-kind { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; line-height: 18px; font-weight: 600; }

/* ответ на цель: без серой панели — акцент делают размер и положение */
.nl-verdict { display: flex; flex-direction: column; gap: var(--space-4); padding: 0 0 var(--space-6); border-bottom: 1px solid var(--line); }
.nl-verdict__status { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.nl-verdict__answer { margin: 0; font-family: var(--font-display); font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: -0.01em; text-wrap: balance; color: var(--ink); max-width: 760px; }
.nl-verdict__more { color: var(--ink-2); max-width: 680px; }
.nl-verdict__more p { margin: 0; }
.nl-verdict__filters { display: flex; flex-wrap: wrap; gap: var(--space-2); padding-top: var(--space-1); }
@media (max-width: 600px) { .nl-verdict__answer { font-size: 20px; line-height: 28px; } }

/* фильтр-чип: значок вида вместо точки; выбранный — заливка ink */
.nl-chip { position: relative; display: inline-flex; align-items: center; gap: var(--space-2); height: var(--control-sm); padding: 0 12px 0 10px; border: 1px solid var(--line-2); border-radius: var(--radius-full); background: var(--paper); color: var(--ink); font-size: 14px; cursor: pointer; }
.nl-chip { isolation: isolate; transition: background-color var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), color var(--dur-hover) var(--ease-out), transform var(--dur-press) var(--ease-out); }
.nl-chip::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: var(--state-hover); opacity: 0; pointer-events: none; transition: opacity var(--dur-hover) var(--ease-out); }
.nl-chip:hover:not(.is-on)::before { opacity: 1; }
.nl-chip:active { transform: scale(.97); }
.nl-chip.is-on { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
/* в выбранном фильтре значок — белый силуэт той же формы, знак внутри — цвета заливки; без подложки */
.nl-chip.is-on .nl-fill-bad, .nl-chip.is-on .nl-fill-good, .nl-chip.is-on .nl-fill-ink2 { fill: var(--on-ink); }
.nl-chip.is-on .nl-fill-warn { fill: var(--on-ink); stroke: var(--on-ink); }
.nl-chip.is-on .nl-stroke-on-bad, .nl-chip.is-on .nl-stroke-on-warn, .nl-chip.is-on .nl-stroke-on-good { stroke: var(--ink); }
.nl-chip.is-on .nl-stroke-ink2, .nl-chip.is-on .nl-stroke-gap, .nl-chip.is-on .nl-stroke-ink3 { stroke: var(--on-ink); }
.nl-chip__count { font-weight: 600; font-variant-numeric: tabular-nums; }

/* цитата: белая с рамкой (решение 14.10), без серой подложки */
.nl-quote { margin: 0; display: flex; flex-direction: column; gap: 6px; padding: 12px var(--space-4) 14px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); min-width: 0; }
.nl-quote__place { display: flex; align-items: center; gap: var(--space-1); font-size: 12px; line-height: 16px; font-weight: 500; color: var(--ink-3); }
.nl-quote__text { margin: 0; font-size: 14px; line-height: 21px; color: var(--ink-2); }
.nl-mark { color: var(--ink); padding: 1px 2px; border-radius: var(--radius-xs); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.nl-mark--bad { background: var(--bad-mark); } .nl-mark--warn { background: var(--warn-mark); } .nl-mark--gap { background: var(--gap-soft); } .nl-mark--good { background: var(--good-soft); }
/* текущая пометка — черта цвета вида снизу, не обводка */
.nl-mark.is-current { border-radius: var(--radius-xs) var(--radius-xs) 0 0; }
.nl-mark--bad.is-current { box-shadow: inset 0 -2px 0 var(--bad); } .nl-mark--warn.is-current { box-shadow: inset 0 -2px 0 var(--warn); }
.nl-mark--gap.is-current { box-shadow: inset 0 -2px 0 var(--gap); } .nl-mark--good.is-current { box-shadow: inset 0 -2px 0 var(--good); }

/* пересчёт: шапка строкой с чертой, без плашки */
.nl-recount { display: flex; flex-direction: column; gap: var(--space-2); }
.nl-recount__table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 20px; }
.nl-recount__table th, .nl-recount__table td { padding: 8px 12px 8px 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 400; }
.nl-recount__table th:last-child, .nl-recount__table td:last-child { padding-right: 0; }
.nl-recount__table thead th { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--ink-3); border-bottom-color: var(--line-2); }
.nl-recount__table tbody th { color: var(--ink-2); }
.is-num { text-align: right !important; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 13px; }
.nl-recount__table td.nl-tone-bad { font-weight: 600; }
.nl-recount__note { margin: 0; font-size: 13px; line-height: 18px; color: var(--ink-3); }

/* источник у утверждения (приём A): место плашкой с контуром, без заливки; на night — светлый зелёный */
.nl-source { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 7px; border: 1px solid var(--line-2); border-radius: var(--radius-sm); background: var(--paper); font-family: var(--font-mono); font-size: 12px; line-height: 16px; color: var(--ink-2); white-space: nowrap; text-decoration: none; }
a.nl-source:hover { background-image: linear-gradient(var(--state-hover), var(--state-hover)); color: var(--ink); }
.nl-source--night { background: transparent; border-color: var(--night-dim); color: var(--night-accent); }
a.nl-source--night:hover { background-image: none; border-color: var(--night-accent); color: var(--on-night); }

/* под лампой (приём C): свет — только контраст текста; без свечения, градиентов и рамок */
.nl-lamp { margin: 0; display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.nl-lamp--night { padding: var(--space-6); border-radius: var(--radius-lg); background: var(--night); }
.nl-lamp__place { font-family: var(--font-mono); font-size: 12px; line-height: 16px; color: var(--ink-3); }
.nl-lamp--night .nl-lamp__place { color: var(--night-accent); }
.nl-lamp__doc { display: flex; flex-direction: column; gap: var(--space-2); max-width: var(--read-max); }
.nl-lamp__doc p { margin: 0; font-size: 15px; line-height: 23px; color: var(--ink-3); }
.nl-lamp--night .nl-lamp__doc p { color: var(--night-dim); }
.nl-lamp__doc p.is-lit { color: var(--ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.nl-lamp--bad .nl-lamp__doc p.is-lit { text-decoration-color: var(--bad); } .nl-lamp--warn .nl-lamp__doc p.is-lit { text-decoration-color: var(--warn); }
.nl-lamp--good .nl-lamp__doc p.is-lit { text-decoration-color: var(--good); } .nl-lamp--gap .nl-lamp__doc p.is-lit { text-decoration-color: var(--gap); text-decoration-style: dashed; }
.nl-lamp--night .nl-lamp__doc p.is-lit { color: var(--on-night); text-decoration-color: var(--night-accent); text-decoration-style: solid; }
.nl-lamp__note { margin: 0; font-size: 13px; line-height: 18px; font-weight: 600; }
.nl-lamp--bad .nl-lamp__note { color: var(--bad); } .nl-lamp--warn .nl-lamp__note { color: var(--warn); } .nl-lamp--good .nl-lamp__note { color: var(--good); } .nl-lamp--gap .nl-lamp__note { color: var(--ink-3); }
.nl-lamp--night .nl-lamp__note { color: var(--night-accent); }
/* на night фокус белый: чернильная обводка там не видна */
.nl-lamp--night :focus-visible, .nl-source--night:focus-visible { outline-color: var(--on-night); }
/* лампа «включается» один раз — только на лендинге (animate) */
.nl-lamp--animate .nl-lamp__doc p.is-lit { animation: nl-lamp-on 700ms var(--ease-out) 250ms both; }
.nl-lamp--night.nl-lamp--animate .nl-lamp__doc p.is-lit { animation-name: nl-lamp-on-night; }
@keyframes nl-lamp-on { from { color: var(--ink-3); text-decoration-color: transparent; } }
@keyframes nl-lamp-on-night { from { color: var(--night-dim); text-decoration-color: transparent; } }

/* происхождение: строка со значком источника; уровень — по значку, C приглушён */
.nl-prov { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 16px; font-weight: 500; white-space: nowrap; color: var(--ink-2); }
.nl-prov--A .nl-icon { color: var(--ink); }
.nl-prov--C { color: var(--ink-3); }
.nl-prov__link { display: inline-flex; color: inherit; }

/* пункт: выбранный — только тень, без чёрной рамки */
.nl-finding { display: flex; flex-direction: column; gap: 14px; padding: var(--space-6); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.nl-finding.is-selected { box-shadow: var(--shadow-pop); }
.nl-finding__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); }
.nl-finding__title { margin: 0; font-size: 18px; line-height: 26px; font-weight: 600; text-wrap: pretty; }
.nl-finding__why { margin: 0; color: var(--ink-2); }
.nl-finding__evidence { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.nl-finding__evidence > .nl-recount { grid-column: 1 / -1; }
.nl-finding__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-4); }
.nl-finding__action { margin: 0; }
.nl-finding__action b { font-weight: 600; }

/* строки, которые раскрываются: без заливки строки — отклик на стрелке */
.nl-frow { border-bottom: 1px solid var(--line); background: var(--paper); }
.nl-frow:last-child { border-bottom: 0; }
.nl-frow__summary { list-style: none; display: flex; align-items: center; gap: var(--space-3); min-height: 56px; padding: var(--space-3) var(--space-5); cursor: pointer; }
.nl-frow__summary::-webkit-details-marker { display: none; }
.nl-frow__title { flex: 1 1 auto; min-width: 0; }
.nl-frow__meta { font-size: 13px; color: var(--ink-3); white-space: nowrap; }
.nl-chev { color: var(--ink-3); border-radius: 50%; box-sizing: content-box; padding: 5px; margin: -5px; transition: transform var(--dur-open) var(--ease-out), background-color var(--dur-press) var(--ease-out); }
summary:hover .nl-chev { color: var(--ink); background: var(--state-hover); }
details[open] > summary .nl-chev { transform: rotate(180deg); }
details[open] > .nl-disc__body, details[open] > .nl-frow__body { animation: nl-reveal var(--dur-open) var(--ease-out); }
@keyframes nl-reveal { from { opacity: 0; transform: translateY(-4px); } }
.nl-frow__body { padding: 0 var(--space-5) var(--space-5) 50px; display: flex; flex-direction: column; gap: var(--space-3); color: var(--ink-2); }
.nl-list { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }

/* правило: выбранное — галочка и жирное слово, без заливки */
.nl-rule { width: 100%; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px var(--space-2); border: 0; border-radius: var(--radius-md); background: transparent; color: var(--ink); text-align: left; font-size: 14px; line-height: 20px; cursor: pointer; }
.nl-rule:hover { background: var(--state-hover); }
.nl-rule:active { background: var(--state-press); }
.nl-rule.is-on { font-weight: 600; }
.nl-rule__title { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.nl-rule__status { font-size: 12px; line-height: 16px; font-weight: 500; }
.nl-rule__count { font-size: 13px; color: var(--ink-3); font-variant-numeric: tabular-nums; font-weight: 400; }
.nl-rule__check { color: var(--ink); }

/* номер пометки: текущий — номер на ink, без колец */
.nl-docmark { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.nl-docmark--bad { background: var(--bad); color: var(--on-bad); }
.nl-docmark--warn { background: var(--warn); color: var(--on-warn); }
.nl-docmark--gap, .nl-docmark--ask, .nl-docmark--none { border: 1.5px dashed var(--gap); color: var(--ink-2); }
.nl-docmark--good { background: var(--good); color: var(--on-good); }
.nl-docmark.is-current { width: 28px; height: 28px; margin: -2px; background: var(--ink); border: 0; color: var(--on-ink); font-size: 13px; }

/* ключ — значение */
.nl-kv { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.nl-kv--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-6); }
.nl-kv__row { display: grid; grid-template-columns: minmax(96px, 38%) minmax(0, 1fr); gap: var(--space-3); padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 20px; }
.nl-kv__row:last-child { border-bottom: 0; }
.nl-kv dt { color: var(--ink-3); }
.nl-kv dd { margin: 0; display: flex; gap: 6px; align-items: flex-start; min-width: 0; overflow-wrap: anywhere; }

/* компания: значок без плашки */
.nl-company { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.nl-company__head { display: flex; align-items: flex-start; gap: var(--space-3); }
.nl-company__icon { width: 24px; height: 26px; color: var(--ink-3); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.nl-company__name { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.nl-company__name h3 { margin: 0; font-size: 18px; line-height: 26px; font-weight: 600; }
.nl-company__name span { font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-company__marks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.nl-company__marks li { display: flex; gap: var(--space-2); align-items: flex-start; font-size: 14px; line-height: 20px; }
.nl-company__foot { font-size: 12px; line-height: 16px; color: var(--ink-3); }

/* таблицы: шапка без заливки, строки без наведения (они не нажимаются); тон ячейки — только у находок */
.nl-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.nl-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; line-height: 20px; }
.nl-table caption { text-align: left; padding: var(--space-3) var(--space-4); font-weight: 600; }
.nl-table th, .nl-table td { padding: 10px var(--space-4); border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.nl-table thead th { position: sticky; top: 0; background: var(--paper); border-bottom-color: var(--line-2); font-size: 12px; line-height: 16px; font-weight: 500; color: var(--ink-3); white-space: nowrap; }
.nl-table tbody tr:last-child > * { border-bottom: 0; }
.nl-table tr.is-dim > * { color: var(--ink-3); }
.nl-cell--bad { background: var(--bad-soft); color: var(--bad); }
.nl-cell--warn { background: var(--warn-soft); color: var(--warn); }
.nl-cell--good { color: var(--good); }
.nl-cell--gap { color: var(--ink-3); }
.nl-matrix tbody th { position: sticky; left: 0; z-index: var(--z-sticky); background: var(--paper); font-weight: 500; min-width: 220px; max-width: 320px; }
.nl-matrix thead th { text-align: center; }
.nl-matrix__corner { position: sticky; left: 0; z-index: calc(var(--z-sticky) + 1); text-align: left !important; }
.nl-matrix td { text-align: center; padding: 6px; }
.nl-matrix__cell { display: inline-flex; align-items: center; gap: 6px; min-height: var(--control-sm); padding: 0 10px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--ink-2); font-size: 13px; cursor: pointer; }
.nl-matrix__cell:hover { background: var(--state-hover); }
.nl-matrix__cell:active { background: var(--state-press); }

/* хронология */
.nl-timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.nl-timeline__item { display: grid; grid-template-columns: 92px 24px minmax(0, 1fr); gap: var(--space-3); padding-bottom: var(--space-5); position: relative; }
.nl-timeline__item::before { content: ""; position: absolute; left: calc(92px + 12px + 11px); top: 22px; bottom: 2px; width: 1.5px; background: var(--line); }
.nl-timeline__item:last-child::before { display: none; }
.nl-timeline__date { color: var(--ink-3); padding-top: 1px; }
.nl-timeline__dot { display: flex; justify-content: center; padding-top: 2px; }
.nl-timeline__body { display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 20px; color: var(--ink-2); }
.nl-timeline__body b { color: var(--ink); font-weight: 600; font-size: 15px; line-height: 22px; }
.nl-timeline__src { font-size: 12px; line-height: 16px; color: var(--ink-3); }

/* наблюдение: «было — стало» строками, без плашек */
.nl-watch { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.nl-watch__head { display: flex; align-items: center; gap: var(--space-2); }
.nl-watch__date { margin-left: auto; font-size: 13px; color: var(--ink-3); }
.nl-watch__title { margin: 0; }
.nl-watch__diff { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px var(--space-3); font-size: 14px; line-height: 20px; color: var(--ink); }
.nl-watch__was { display: contents; color: var(--ink-3); }
.nl-watch__was s { color: var(--ink-3); text-decoration-color: var(--line-control); }
.nl-watch__now { display: contents; }
.nl-watch__diff > .nl-icon { display: none; }
.nl-watch__lab { font-size: 13px; line-height: 20px; color: var(--ink-3); }
.nl-watch__src { font-size: 12px; line-height: 16px; color: var(--ink-3); }

/* число с подписью */
.nl-stat { display: flex; flex-direction: column; gap: 6px; }
.nl-stat__value { font-family: var(--font-display); font-size: 48px; line-height: 52px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.nl-stat.is-muted .nl-stat__value { color: var(--ink-3); }
.nl-stat__label { color: var(--ink-2); max-width: 300px; }

/* уведомления: белые с рамкой, тон — у значка */
.nl-notice { display: flex; gap: var(--space-3); align-items: flex-start; padding: 14px var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); font-size: 14px; line-height: 20px; }
.nl-notice__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; color: var(--ink-2); }
.nl-notice__body b { font-weight: 600; color: var(--ink); }
.nl-notice--info .nl-notice__icon { color: var(--info); }
.nl-notice--warn .nl-notice__icon { color: var(--warn); }
.nl-notice--bad .nl-notice__icon { color: var(--bad); }
.nl-notice--good .nl-notice__icon { color: var(--good); }
.nl-toast { display: inline-flex; align-items: center; gap: var(--space-3); min-height: 48px; padding: 0 var(--space-2) 0 var(--space-4); border-radius: var(--radius-md); background: var(--ink); color: var(--on-ink); font-size: 14px; box-shadow: var(--shadow-pop); animation: nl-toast var(--dur-pop) var(--ease-out); }
@keyframes nl-toast { from { opacity: 0; transform: translateY(8px); } }
.nl-toast__action { height: var(--control-sm); padding: 0 12px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--on-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* диалог */
.nl-dialog { width: min(520px, 100%); display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border-radius: var(--radius-xl); background: var(--paper); box-shadow: var(--shadow-dialog); }
.nl-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); margin: -6px -10px -6px 0; }
.nl-dialog__head h2 { margin: 6px 0 0; font-family: var(--font-display); font-size: 20px; line-height: 28px; font-weight: 600; }
.nl-dialog__desc { margin: 0; color: var(--ink-2); }
.nl-dialog__body { display: flex; flex-direction: column; gap: var(--space-4); }
.nl-dialog__foot { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); padding-top: var(--space-2); }

/* пусто: пунктир — место, которое заполнится; значок без плашки */
.nl-empty { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-12) var(--space-6); border: 1.5px dashed var(--line-2); border-radius: var(--radius-lg); text-align: center; }
.nl-empty__icon { color: var(--ink-3); display: inline-flex; margin-bottom: var(--space-1); }
.nl-empty__title { font-size: 18px; line-height: 26px; font-weight: 600; }
.nl-empty__text { margin: 0 0 var(--space-2); max-width: 420px; color: var(--ink-2); }

/* подсказка */
.nl-tip { position: relative; display: inline-flex; }
.nl-tip__bubble { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); width: max-content; max-width: 260px; padding: 6px 10px; border-radius: var(--radius-sm); background: var(--ink); color: var(--on-ink); font-size: 13px; line-height: 18px; z-index: var(--z-menu); opacity: 0; pointer-events: none; transition: opacity var(--dur-pop) var(--ease-out); transition-delay: 0ms; }
.nl-tip:hover .nl-tip__bubble { opacity: 1; transition-delay: 400ms; }
.nl-tip:focus-within .nl-tip__bubble { opacity: 1; }

/* оболочка */
.nl-card { padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.nl-card--lg { padding: var(--space-8); border-radius: var(--radius-xl); }
.nl-card--sunken { border-style: dashed; border-color: var(--line-2); }
.nl-disc { border-bottom: 1px solid var(--line); }
.nl-disc__summary { list-style: none; display: flex; align-items: center; gap: var(--space-3); min-height: 64px; padding: 10px 0; cursor: pointer; }
.nl-disc__summary::-webkit-details-marker { display: none; }
.nl-disc__text { flex: 1 1 auto; display: flex; flex-direction: column; }
.nl-disc__text b { font-weight: 600; }
.nl-disc__text span { font-size: 14px; line-height: 20px; color: var(--ink-3); }
.nl-disc__body { padding: 0 0 var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); }
/* строка-ссылка: подчёркнутое название при наведении, как у ссылки */
.nl-crow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--space-4); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; background: var(--paper); }
.nl-crow:last-child { border-bottom: 0; }
.nl-crow:hover { color: var(--ink); }
.nl-crow:hover .nl-crow__main b { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.nl-crow__main { flex: 999 1 360px; min-width: 0; display: flex; flex-direction: column; }
.nl-crow__main b { font-weight: 600; }
.nl-crow__main span { font-size: 14px; line-height: 20px; color: var(--ink-3); }
.nl-crow__result { flex: 1 1 180px; font-size: 14px; line-height: 20px; color: var(--ink-2); font-weight: 600; }
.nl-crow__date { flex: 0 0 88px; text-align: right; font-size: 13px; color: var(--ink-3); }
.nl-tag { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: var(--radius-sm); font-size: 12px; line-height: 16px; font-weight: 500; white-space: nowrap; }
.nl-tag--neutral, .nl-tag--outline { border: 1px solid var(--line-2); color: var(--ink-2); }
.nl-tag--ink { background: var(--ink); color: var(--on-ink); }
.nl-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--paper); border: 1px solid var(--line-2); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; color: var(--ink); flex-shrink: 0; }
.nl-avatar--sm { width: 28px; height: 28px; font-size: 11px; }

/* письмо */
.nl-letter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--space-8); }
.nl-letter__pick, .nl-letter__form { display: flex; flex-direction: column; gap: var(--space-3); }
@media (max-width: 900px) { .nl-letter { grid-template-columns: minmax(0, 1fr); } }

/* критерий клиента: уровни строками через черту */
.nl-criterion { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.nl-criterion__head { display: flex; flex-direction: column; }
.nl-criterion__head span { font-size: 13px; color: var(--ink-3); }
.nl-criterion__levels { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.nl-criterion__level { display: grid; grid-template-columns: 18px 150px minmax(0, 1fr); gap: var(--space-3); align-items: start; padding: 10px 0; border-top: 1px solid var(--line); font-size: 14px; line-height: 20px; }
.nl-criterion__level span { color: var(--ink-2); }
@media (max-width: 600px) { .nl-criterion__level { grid-template-columns: 18px minmax(0, 1fr); } .nl-criterion__level span { grid-column: 2; } }

/* тариф и расход: текущий — словом «Ваш тариф», без чёрной рамки */
.nl-plan { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.nl-plan header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.nl-plan__name { font-size: 18px; line-height: 26px; font-weight: 600; }
.nl-plan__price { margin: 0; color: var(--ink-3); }
.nl-plan__sum { font-family: var(--font-display); font-size: 30px; line-height: 36px; font-weight: 600; color: var(--ink); }
.nl-plan__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); font-size: 14px; line-height: 20px; color: var(--ink-2); flex: 1 1 auto; }
.nl-plan__list li { display: flex; gap: var(--space-2); }
.nl-plan__list .nl-icon { color: var(--ink-3); margin-top: 2px; }
.nl-usage { display: flex; flex-direction: column; gap: var(--space-2); }
.nl-usage__top { display: flex; justify-content: space-between; gap: var(--space-3); font-size: 14px; }
.nl-usage__bar { height: 8px; border-radius: var(--radius-xs); background: var(--surface-strong); overflow: hidden; }
.nl-usage__bar > span { display: block; height: 100%; border-radius: var(--radius-xs); background: var(--ink); }
.nl-usage__bar.is-high > span { background: var(--warn); }
.nl-usage__hint { font-size: 13px; color: var(--ink-3); }

/* команда и подключения: значки без плашек */
.nl-team { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }
.nl-team__who { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.nl-team__who span { font-size: 13px; color: var(--ink-3); }
.nl-integ { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.nl-integ__icon { width: 24px; color: var(--ink-3); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; padding-top: 1px; }
.nl-integ__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 20px; }
.nl-integ__body b { font-size: 15px; }
.nl-integ__body > span:not(.nl-integ__state) { color: var(--ink-2); }
.nl-integ__state { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; }

/* отклик строк и пунктов: слой проявляется, а не вспыхивает */
.nl-menu__item, .nl-rule, .nl-radio--card, .nl-matrix__cell, .nl-crow { transition: background-color var(--dur-hover) var(--ease-out), color var(--dur-hover) var(--ease-out); }

/* оболочка кабинета (26.10, как в Linear): меню и полоса — один фон surface, без черты между ними; содержимое — панель paper со
   скруглённым углом, прокручивается сама. Меню 232, свёрнутое 52 — сужается за 240 мс, значки на месте, подписи гаснут */
.nl-shell { height: 100vh; display: grid; grid-template-columns: var(--side) minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); grid-template-areas: "side bar" "side panel"; background: var(--surface); transition: grid-template-columns var(--dur-open) var(--ease-out); }
.nl-shell.is-rail { grid-template-columns: var(--side-rail) minmax(0, 1fr); }
.nl-shell > .nl-side { grid-area: side; width: auto; }
.nl-shell > .nl-bar { grid-area: bar; }
.nl-shell__panel { grid-area: panel; min-width: 0; overflow-y: auto; overflow-x: hidden; background: var(--paper); border: 1px solid var(--line); border-width: 1px 0 0 1px; border-top-left-radius: var(--radius-lg); scrollbar-width: none; container: nl-panel / inline-size; }
.nl-shell__panel::-webkit-scrollbar { display: none; }
@media (max-width: 767px) {
  .nl-shell, .nl-shell.is-rail { grid-template-columns: minmax(0, 1fr); grid-template-areas: "bar" "panel"; }
  .nl-shell__panel { border-width: 1px 0 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
}

/* меню: сверху знак и «свернуть»; поиск; «Новая проверка»; разделы; недавние; внизу — пример и профиль. Все строки и кнопки 32 px,
   в свёрнутом меню — квадраты 32×32, середина значков — 26 px от края в обоих состояниях */
.nl-side { width: var(--side); min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 10px 10px var(--space-3); background: var(--surface); overflow: hidden auto; scrollbar-width: none; }
.nl-side::-webkit-scrollbar { display: none; }
.nl-side.is-rail { width: var(--side-rail); }
.nl-side__head { position: relative; display: flex; align-items: center; justify-content: flex-end; height: 36px; margin-bottom: var(--space-2); }
.nl-side__logo { position: absolute; left: 0; top: 6px; padding-left: 7px; transition: opacity var(--dur-hover) var(--ease-out); }
.nl-side__logo .nl-logo { font-size: 20px; line-height: 24px; white-space: nowrap; }
.nl-side__toggle { flex-shrink: 0; color: var(--ink-3); }
.nl-side__search { display: flex; align-items: center; gap: var(--space-2); height: var(--control-sm); padding: 0 var(--space-2) 0 7px; border: 1px solid var(--line-2); border-radius: var(--radius-sm); background: var(--paper); color: var(--ink-3); font: inherit; font-size: 14px; text-align: left; white-space: nowrap; overflow: hidden; cursor: pointer; transition: border-color var(--dur-hover) var(--ease-out); }
.nl-side__search:hover { border-color: var(--line-control); color: var(--ink-2); }
.nl-side__search kbd { margin-left: auto; padding: 0 4px; border: 1px solid var(--line-2); border-radius: var(--radius-xs); font: 500 11px/16px var(--font-mono); color: var(--ink-3); }
.nl-side__new.nl-btn { justify-content: flex-start; gap: 10px; margin: var(--space-2) 0 var(--space-3); padding: 0 var(--space-3) 0 6px; font-size: 14px; overflow: hidden; white-space: nowrap; }
.nl-side__nav { display: flex; flex-direction: column; gap: 2px; }
.nl-side__item { display: flex; align-items: center; gap: 10px; height: var(--control-sm); padding: 0 var(--space-2) 0 7px; border-radius: var(--radius-sm); color: var(--ink-2); text-decoration: none; font-size: 14px; line-height: 20px; font-weight: 500; white-space: nowrap; overflow: hidden; transition: background-color var(--dur-hover) var(--ease-out), color var(--dur-hover) var(--ease-out); }
.nl-side__item:hover { background: var(--state-hover); color: var(--ink); }
.nl-side__item.is-current { background: var(--state-press); color: var(--ink); font-weight: 600; }
.nl-side__item > .nl-icon, .nl-side__item > .nl-status { flex-shrink: 0; }
.nl-side__item > .nl-icon { color: var(--ink-3); }
.nl-side__item.is-current > .nl-icon { color: var(--ink); }
.nl-side__item > .nl-status { margin: 0 1px; }
.nl-side__label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.nl-side__count { flex-shrink: 0; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.nl-side__sec { display: flex; flex-direction: column; gap: 2px; margin-top: var(--space-4); }
.nl-side__sec > h2 { margin: 0; padding: 0 var(--space-2) var(--space-1) 7px; font-size: 12px; line-height: 16px; font-weight: 500; color: var(--ink-3); white-space: nowrap; }
.nl-side__sec .nl-side__item { font-weight: 400; }
.nl-side__grow { flex: 1 1 auto; }
.nl-side__acc { display: flex; min-width: 0; margin-top: var(--space-2); }
.nl-side__account { display: flex; align-items: center; gap: var(--space-2); width: 100%; min-width: 0; height: var(--control-sm); padding: 0 var(--space-2) 0 2px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--ink); font: inherit; font-size: 14px; font-weight: 600; text-align: left; white-space: nowrap; overflow: hidden; cursor: pointer; transition: background-color var(--dur-hover) var(--ease-out); }
.nl-side__account:hover { background: var(--state-hover); }
.nl-side__account .nl-avatar { flex-shrink: 0; }
.nl-side__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.nl-side__account > .nl-icon { color: var(--ink-3); }
.nl-side__name, .nl-side__account > .nl-icon, .nl-side__search span, .nl-side__search kbd, .nl-side__new span, .nl-side__label, .nl-side__count, .nl-side__sec > h2, .nl-side__logo .nl-logo__word { transition: opacity var(--dur-hover) var(--ease-out); }
.is-rail .nl-side__name, .is-rail .nl-side__account > .nl-icon, .is-rail .nl-side__search span, .is-rail .nl-side__search kbd, .is-rail .nl-side__new span, .is-rail .nl-side__label, .is-rail .nl-side__count, .is-rail .nl-side__sec > h2, .is-rail .nl-side__logo { opacity: 0; }
.is-rail .nl-side__logo { pointer-events: none; }

/* полоса страницы: «Назад» или название раздела, вкладки (черта выбранной — по низу полосы), действия справа; от края до края */
.nl-bar { min-width: 0; background: var(--surface); container: nl-bar / inline-size; }
.nl-bar__in { display: flex; align-items: center; gap: var(--space-2); min-height: var(--bar); padding: 0 var(--space-3) 0 var(--space-4); }
.nl-bar__menu { display: none; color: var(--ink-3); }
.nl-bar__back { color: var(--ink-2); }
.nl-bar__in > .nl-logo { margin-right: var(--space-3); }
.nl-bar__title { margin: 0 0 0 var(--space-1); font-family: var(--font-text); font-size: 15px; line-height: 22px; font-weight: 600; white-space: nowrap; }
.nl-bar__tabs { align-self: stretch; display: flex; align-items: flex-end; min-width: 0; margin-left: var(--space-4); }
.nl-bar__tabs:empty { display: none; }
.nl-bar__tabs .nl-tabs { flex-wrap: nowrap; border-bottom: 0; }
.nl-bar__tabs .nl-tab { height: var(--bar); font-size: 14px; white-space: nowrap; }
.nl-bar__grow { flex: 1 1 auto; }
.nl-bar__acts { display: flex; align-items: center; gap: var(--space-2); }
.nl-bar__acts .nl-btn { height: var(--control-sm); padding: 0 var(--space-3); font-size: 13px; }
.nl-bar__acts .nl-btn--icon { width: var(--control-sm); padding: 0; }
.nl-bar__acts .nl-btn--secondary { background: var(--paper); }
@media (max-width: 767px) { .nl-bar__menu { display: inline-flex; } .nl-bar__in { padding: 0 var(--space-3) 0 var(--space-2); } }
@container nl-bar (max-width: 760px) {
  .nl-bar__in { flex-wrap: wrap; row-gap: 0; }
  .nl-bar__title { flex: 1 1 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .nl-bar__tabs { order: 5; flex-basis: 100%; margin: 0 calc(-1 * var(--space-2)); padding: 0 var(--space-2); overflow-x: auto; scrollbar-width: none; }
  .nl-bar__tabs .nl-tab { height: 44px; }
  .nl-bar__acts .nl-btn:not(.nl-btn--icon) { width: var(--control-sm); padding: 0; }
  .nl-bar__acts .nl-btn:not(.nl-btn--icon) > span { display: none; }
}

/* без меню — страница по ссылке, пример отчёта: полоса со знаком во всю ширину, панель скруглена сверху */
.nl-shell--solo, .nl-shell--solo.is-rail { grid-template-columns: minmax(0, 1fr); grid-template-areas: "bar" "panel"; }
.nl-shell--solo > .nl-shell__panel { border-width: 1px 0 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.nl-shell--solo .nl-bar__in { padding: 0 var(--space-4); }

/* телефон: меню выезжает слева поверх по ☰ из полосы (класс is-open у оболочки), под ним — scrim; свёрнутого меню на телефоне нет */
.nl-shell__scrim { display: none; }
@keyframes nl-fade { from { opacity: 0; } }
@media (max-width: 767px) {
  .nl-shell > .nl-side { position: fixed; left: 0; top: 0; bottom: 0; width: 280px; z-index: var(--z-dialog); transform: translateX(-100%); transition: transform var(--dur-open) var(--ease-out); }
  .nl-shell.is-open > .nl-side { transform: none; box-shadow: var(--shadow-dialog); }
  .nl-shell.is-open > .nl-shell__scrim { display: block; position: fixed; inset: 0; z-index: calc(var(--z-dialog) - 1); background: var(--scrim); animation: nl-fade var(--dur-pop) var(--ease-out); }
}

/* поиск: окно сверху по центру над scrim — поле и список проверок */
.nl-palette { width: min(640px, 100%); max-height: min(560px, calc(100vh - 32px)); display: flex; flex-direction: column; border-radius: var(--radius-xl); background: var(--paper); box-shadow: var(--shadow-dialog); overflow: hidden; animation: nl-pop var(--dur-pop) var(--ease-out); }
.nl-palette__in { display: flex; align-items: center; gap: var(--space-3); padding: 0 var(--space-5); border-bottom: 1px solid var(--line); color: var(--ink-3); }
.nl-palette__in input { flex: 1 1 auto; min-width: 0; height: 56px; border: 0; outline: none; background: transparent; font-size: 16px; color: var(--ink); }
.nl-palette__in input::placeholder { color: var(--ink-3); }
.nl-palette__list { overflow-y: auto; padding: var(--space-2); display: flex; flex-direction: column; gap: 2px; }
.nl-palette__opt { display: flex; align-items: center; gap: var(--space-3); min-height: 48px; padding: var(--space-2) var(--space-3); border-radius: var(--radius-md); color: var(--ink); text-decoration: none; }
.nl-palette__opt:hover { color: var(--ink); }
.nl-palette__opt.is-active { background: var(--state-hover); }
.nl-palette__opt > .nl-icon { color: var(--ink-3); }
.nl-palette__t { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.nl-palette__t b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nl-palette__t span { font-size: 13px; line-height: 18px; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nl-palette__d { flex-shrink: 0; font-size: 13px; color: var(--ink-3); }
.nl-palette__none { margin: 0; padding: var(--space-4) var(--space-3); color: var(--ink-3); font-size: 14px; }

/* «Пометка 2 из 8» и стрелки */
.nl-pager { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); font-size: 14px; line-height: 20px; color: var(--ink-3); }
.nl-pager b { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.nl-pager__nav { display: flex; gap: var(--space-1); }

/* сводка по правилам: отрезки по статусам; пунктир — не подтверждено, как у значка */
.nl-rulesum { display: flex; flex-direction: column; gap: var(--space-2); }
.nl-rulesum__bar { display: flex; gap: 3px; height: 8px; }
.nl-rulesum__s { border-radius: var(--radius-xs); background: var(--line-2); }
.nl-rulesum__s.is-bad { background: var(--bad); }
.nl-rulesum__s.is-warn { background: var(--warn); }
.nl-rulesum__s.is-good { background: var(--good); }
.nl-rulesum__s.is-gap { background: transparent; border: 1.5px dashed var(--gap); }
.nl-rulesum__t { margin: 0; font-size: 13px; line-height: 18px; font-weight: 500; }

/* карточка-ссылка: значок без плашки, название подчёркивается при наведении, как у ссылки; row — строкой со стрелкой */
.nl-linkcard { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-6); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color var(--dur-hover) var(--ease-out); }
.nl-linkcard:hover { color: var(--ink); border-color: var(--line-control); }
.nl-linkcard:hover .nl-linkcard__t { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.nl-linkcard > .nl-icon { color: var(--ink-3); margin-bottom: var(--space-2); }
.nl-linkcard__t { font-size: 18px; line-height: 26px; font-weight: 600; }
.nl-linkcard__d { color: var(--ink-2); }
.nl-linkcard__x { margin-top: auto; padding-top: var(--space-2); font-size: 13px; line-height: 18px; color: var(--ink-3); }
.nl-linkcard--row { flex-direction: row; align-items: center; gap: var(--space-4); padding: var(--space-4) var(--space-5); }
.nl-linkcard--row > .nl-icon { margin: 0; }
.nl-linkcard__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.nl-linkcard--row .nl-linkcard__t { font-size: 15px; line-height: 22px; }
.nl-linkcard--row .nl-linkcard__d { font-size: 14px; line-height: 20px; color: var(--ink-3); }
.nl-linkcard__go { color: var(--ink-3); transition: transform var(--dur-hover) var(--ease-out), color var(--dur-hover) var(--ease-out); }
.nl-linkcard--row:hover .nl-linkcard__go { color: var(--ink); transform: translateX(2px); }
@media (max-width: 600px) { .nl-linkcard { padding: var(--space-5); } .nl-linkcard--row { padding: var(--space-4); } }

/* боковая панель справа над scrim */
.nl-drawer { width: min(560px, 100%); height: 100%; display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); overflow-y: auto; background: var(--paper); box-shadow: var(--shadow-dialog); outline: none; }
.nl-drawer__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); margin: -6px -10px 0 0; }
.nl-drawer__head h2 { margin: 6px 0 0; font-family: var(--font-display); font-size: 20px; line-height: 28px; font-weight: 600; }
.nl-drawer__body { display: flex; flex-direction: column; gap: var(--space-4); }

/* ответ на цель на «ночи» (26.10): единственная тёмная плашка в кабинете — главный акцент отчёта. Токены переопределены внутри,
   значок статуса и фильтры светлеют сами */
.nl-verdict--night { padding: var(--space-8); border-bottom: 0; border-radius: var(--radius-xl); background: var(--night);
  --ink: #FFFFFF; --ink-2: #C9D6D0; --ink-3: var(--night-dim); --paper: transparent; --line-2: rgba(255, 255, 255, .24); --on-ink: var(--night);
  --bad: #FF8A7A; --warn: #FFB070; --good: var(--night-accent); --gap: var(--night-dim); --on-bad: #1C0A07; --on-warn: #1F1205; --on-good: var(--night);
  --state-hover: rgba(255, 255, 255, .08); --state-press: rgba(255, 255, 255, .14); --line-control: rgba(255, 255, 255, .4); --focus: #FFFFFF; --link: #FFFFFF; color: var(--ink); }
.nl-verdict--night .nl-verdict__more { color: var(--ink-2); }
@media (max-width: 600px) { .nl-verdict--night { padding: var(--space-5); border-radius: var(--radius-lg); } }

/* карточка «Главного» с акцентом (26.10): шапка в мягком тоне вида, внизу — полоса «Что сделать» на surface. Сбоку полос нет */
.nl-finding--accent { gap: 0; padding: 0 0 var(--space-6); overflow: hidden; }
.nl-finding--accent:has(> .nl-finding__foot) { padding-bottom: 0; }
.nl-finding--accent > * { margin-left: var(--space-6); margin-right: var(--space-6); }
.nl-finding--accent > .nl-finding__head { margin: 0; padding: var(--space-3) var(--space-6); background: var(--gap-soft); border-bottom: 1px solid var(--line); }
.nl-finding--accent.nl-finding--bad { border-color: var(--bad-mark); }
.nl-finding--accent.nl-finding--bad > .nl-finding__head { background: var(--bad-soft); border-bottom-color: var(--bad-mark); }
.nl-finding--accent.nl-finding--warn { border-color: var(--warn-mark); }
.nl-finding--accent.nl-finding--warn > .nl-finding__head { background: var(--warn-soft); border-bottom-color: var(--warn-mark); }
.nl-finding--accent.nl-finding--good > .nl-finding__head { background: var(--good-soft); }
.nl-finding--accent > .nl-finding__title { margin-top: var(--space-5); }
.nl-finding--accent > .nl-finding__why { margin-top: 10px; }
.nl-finding--accent > .nl-finding__evidence { margin-top: var(--space-4); }
.nl-finding--accent > .nl-finding__foot { margin: var(--space-5) 0 0; padding: var(--space-4) var(--space-6); background: var(--surface); border-top: 1px solid var(--line); }
.nl-finding--accent > .nl-finding__foot .nl-btn { margin-left: auto; }
.nl-finding--accent > .nl-finding__foot .nl-btn--ghost:hover:not(:disabled)::before { background: var(--state-press); }
@media (max-width: 600px) {
  .nl-finding--accent > * { margin-left: var(--space-4); margin-right: var(--space-4); }
  .nl-finding--accent > .nl-finding__head, .nl-finding--accent > .nl-finding__foot { padding-left: var(--space-4); padding-right: var(--space-4); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; }
  .nl-spin { animation: none; }
}
