/* ==========================================================================
   EDOMP · 通用组件库
   ========================================================================== */

/* ---------- 卡片 ---------- */
.card {
  background: var(--grad-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-2);
  overflow: hidden;
  transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition);
}
.card:hover { box-shadow: var(--sh-3); border-color: #d3dfec; }
}
.card--flat { box-shadow: none; }
.card__head {
  display: flex; align-items: center; gap: 10px;
  padding: 13px 18px;
  border-bottom: 1px solid var(--c-border);
  min-height: 50px;
}
.card__title { font-size: 14.5px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.card__title::before {
  content: ""; width: 3px; height: 14px; border-radius: 2px;
  background: linear-gradient(180deg, var(--c-primary-500), var(--c-primary-700));
}
.card__sub { font-size: 12px; color: var(--c-text-3); }
.card__extra { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.card__body { padding: 18px; }
.card__body--tight { padding: 0; }
.card__foot {
  padding: 12px 18px; border-top: 1px solid var(--c-border);
  background: var(--c-surface-2);
  display: flex; align-items: center; gap: 10px;
}

/* ---------- 按钮 ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 34px; padding: 0 14px;
  border-radius: var(--r-sm);
  font-size: 13.5px; font-weight: 500;
  border: 1px solid var(--c-border-strong);
  background: #fff; color: var(--c-text);
  transition: all var(--transition);
  white-space: nowrap;
  user-select: none;
}
.btn:hover { border-color: var(--c-primary-500); color: var(--c-primary-700); background: var(--c-primary-50); }
.btn:active { transform: translateY(1px); }
.btn[disabled], .btn.is-disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }
.btn svg { width: 14px; height: 14px; }

.btn--primary {
  background: var(--grad-brand);
  border-color: transparent; color: #fff;
  box-shadow: 0 4px 12px rgba(8, 145, 178, .30);
}
.btn--primary:hover {
  background: var(--grad-brand); color: #fff;
  border-color: transparent;
  box-shadow: 0 6px 18px rgba(8, 145, 178, .38);
  transform: translateY(-1px);
}

.btn--success { background: var(--c-success); border-color: var(--c-success); color: #fff; }
.btn--success:hover { background: #15803d; color: #fff; border-color: #15803d; }
.btn--danger { background: #fff; border-color: #fca5a5; color: var(--c-danger); }
.btn--danger:hover { background: var(--c-danger); border-color: var(--c-danger); color: #fff; }
.btn--warning { background: #fff; border-color: #fcd34d; color: var(--c-warning); }
.btn--warning:hover { background: var(--c-warning); border-color: var(--c-warning); color: #fff; }
.btn--text { border-color: transparent; background: transparent; padding: 0 8px; color: var(--c-primary); }
.btn--text:hover { background: var(--c-primary-50); border-color: transparent; }
.btn--ghost { border-color: transparent; background: var(--c-neutral-bg); }
.btn--ghost:hover { background: #e2e8f0; border-color: transparent; }

.btn--sm { height: 28px; padding: 0 10px; font-size: 12.5px; border-radius: var(--r-xs); }
.btn--xs { height: 22px; padding: 0 7px; font-size: 11.5px; border-radius: var(--r-xs); gap: 3px; }
.btn--lg { height: 42px; padding: 0 22px; font-size: 15px; }
.btn--icon { width: 34px; padding: 0; }
.btn--sm.btn--icon { width: 28px; }

.btn-group { display: inline-flex; }
.btn-group .btn { border-radius: 0; margin-left: -1px; }
.btn-group .btn:first-child { border-radius: var(--r-sm) 0 0 var(--r-sm); margin-left: 0; }
.btn-group .btn:last-child { border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.btn-group .btn.is-active { background: var(--c-primary-50); color: var(--c-primary-700); border-color: var(--c-primary-500); z-index: 1; }

/* ---------- 表单 ---------- */
.field { display: flex; flex-direction: column; gap: 5px; }
.field__label { font-size: 12.5px; color: var(--c-text-2); font-weight: 500; display: flex; align-items: center; gap: 4px; }
.field__label .req { color: var(--c-danger); }
.field__hint { font-size: 11.5px; color: var(--c-text-3); }
.field__error { font-size: 11.5px; color: var(--c-danger); }

.input, .select, .textarea {
  width: 100%; height: 34px;
  padding: 0 11px;
  border: 1px solid var(--c-border-strong);
  border-radius: var(--r-sm);
  background: #fff;
  font-size: 13.5px;
  outline: none;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.input:hover, .select:hover, .textarea:hover { border-color: #a9b7cc; }
.input:focus, .select:focus, .textarea:focus {
  border-color: var(--c-primary-500);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .13);
}
.input[disabled], .select[disabled], .textarea[disabled] { background: #f6f8fb; color: var(--c-text-3); cursor: not-allowed; }
.textarea { height: auto; min-height: 78px; padding: 8px 11px; resize: vertical; line-height: 1.65; }
.select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364748b'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 16px;
  padding-right: 28px;
}
.input--sm, .select--sm { height: 30px; font-size: 12.5px; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.form-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid--1 { grid-template-columns: 1fr; }
.form-grid .span-2 { grid-column: 1 / -1; }
.form-grid .span-3 { grid-column: 1 / -1; }

.checkbox, .radio { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; font-size: 13px; user-select: none; }
.checkbox input, .radio input { width: 15px; height: 15px; accent-color: var(--c-primary); cursor: pointer; margin: 0; }
.checkbox-group, .radio-group { display: flex; flex-wrap: wrap; gap: 8px 18px; }

.switch {
  position: relative; width: 40px; height: 22px; border-radius: var(--r-full);
  background: #cbd5e1; cursor: pointer; transition: background var(--transition); flex-shrink: 0;
}
.switch::after {
  content: ""; position: absolute; top: 2px; left: 2px;
  width: 18px; height: 18px; border-radius: 50%; background: #fff;
  box-shadow: var(--sh-2); transition: transform var(--transition);
}
.switch.is-on { background: var(--c-primary); }
.switch.is-on::after { transform: translateX(18px); }

/* 多选下拉（模拟 TagInput） */
.tag-input {
  min-height: 34px; border: 1px solid var(--c-border-strong); border-radius: var(--r-sm);
  padding: 4px 8px; display: flex; flex-wrap: wrap; gap: 5px; align-items: center; background: #fff;
}
.tag-input:focus-within { border-color: var(--c-primary-500); box-shadow: 0 0 0 3px rgba(59, 130, 246, .13); }
.tag-input input { border: none; outline: none; flex: 1 1 80px; min-width: 80px; height: 24px; font-size: 13px; }

/* ---------- 工具栏 ---------- */
.toolbar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.toolbar__spacer { flex: 1 1 auto; }
.toolbar .field { flex-direction: row; align-items: center; gap: 6px; }
.toolbar .field__label { white-space: nowrap; font-size: 12.5px; }
.toolbar .input, .toolbar .select { width: auto; min-width: 128px; }

/* ---------- 表格 ---------- */
.table-wrap { overflow-x: auto; }
.table { font-size: 13px; }
.table th {
  background: var(--c-surface-2);
  color: var(--c-text-2);
  font-weight: 600;
  font-size: 12.5px;
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--c-border);
  white-space: nowrap;
  position: sticky; top: 0; z-index: 2;
}
.table td {
  padding: 9px 12px;
  border-bottom: 1px solid #eef2f7;
  vertical-align: middle;
  color: var(--c-text);
}
.table tbody tr { transition: background var(--transition), box-shadow var(--transition); }
.table tbody tr:hover { background: var(--c-primary-50); box-shadow: inset 3px 0 0 var(--c-primary-400); }
.table tbody tr.is-selected { background: var(--c-primary-50); }
.table--zebra tbody tr:nth-child(even) { background: #f7fafd; }
.table--zebra tbody tr:nth-child(even):hover { background: var(--c-primary-50); }
.table--compact th { padding: 7px 10px; }
.table--compact td { padding: 6px 10px; }
.table--bordered th, .table--bordered td { border-right: 1px solid #eef2f7; }
.table td.t-right, .table th.t-right { text-align: right; }
.table td.t-center, .table th.t-center { text-align: center; }
.table__num { font-family: var(--font-mono); font-size: 12.5px; }
.table .col-actions { white-space: nowrap; }
.table .link {
  color: var(--c-primary); cursor: pointer; font-size: 12.5px;
  padding: 0 3px;
}
.table .link:hover { text-decoration: underline; }
.table .link + .link { border-left: 1px solid var(--c-border); margin-left: 4px; padding-left: 7px; }

.table__empty { padding: 54px 20px; text-align: center; color: var(--c-text-3); }
.table__empty svg { width: 56px; height: 56px; margin: 0 auto 10px; opacity: .35; }

/* ---------- 徽标 / 状态 ---------- */
.badge {
  display: inline-flex; align-items: center; gap: 4px;
  height: 22px; padding: 0 10px;
  border-radius: var(--r-full);
  font-size: 11.5px; font-weight: 600; letter-spacing: .2px;
  background: var(--c-neutral-bg); color: var(--c-neutral);
  box-shadow: inset 0 0 0 1px rgba(100, 116, 139, .14);
  white-space: nowrap;
}
.badge--primary { background: var(--c-primary-100); color: #1d4ed8; }
.badge--success { background: var(--c-success-bg); color: #15803d; }
.badge--warning { background: var(--c-warning-bg); color: #b45309; }
.badge--danger  { background: var(--c-danger-bg); color: #b91c1c; }
.badge--info    { background: var(--c-info-bg); color: #0e7490; }
.badge--purple  { background: var(--c-purple-bg); color: #6d28d9; }
.badge--dot::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%;
  background: currentColor; flex-shrink: 0;
}

.tag {
  display: inline-flex; align-items: center; gap: 5px;
  height: 22px; padding: 0 8px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-xs);
  background: var(--c-surface-2);
  font-size: 11.5px; color: var(--c-text-2);
}
.tag__del { cursor: pointer; opacity: .5; font-size: 13px; line-height: 1; }
.tag__del:hover { opacity: 1; color: var(--c-danger); }

/* ---------- 分页 ---------- */
.pager {
  display: flex; align-items: center; gap: 6px;
  padding: 12px 18px;
  border-top: 1px solid var(--c-border);
  background: var(--c-surface-2);
  font-size: 12.5px; color: var(--c-text-2);
  flex-wrap: wrap;
}
.pager__info { margin-right: auto; }
.pager__btn {
  min-width: 28px; height: 28px; padding: 0 7px;
  border: 1px solid var(--c-border-strong); border-radius: var(--r-xs);
  background: #fff; display: grid; place-items: center; font-size: 12.5px;
  transition: all var(--transition);
}
.pager__btn:hover:not([disabled]) { border-color: var(--c-primary-500); color: var(--c-primary-700); }
.pager__btn.is-active { background: var(--c-primary); border-color: var(--c-primary); color: #fff; font-weight: 600; }
.pager__btn[disabled] { opacity: .4; cursor: not-allowed; }
.pager__size { height: 28px; border: 1px solid var(--c-border-strong); border-radius: var(--r-xs); padding: 0 6px; font-size: 12.5px; background: #fff; }

/* ---------- 模态框 ---------- */
.modal-mask {
  position: fixed; inset: 0; background: rgba(15, 23, 42, .5);
  backdrop-filter: blur(2px);
  z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  animation: fade-in 140ms ease;
  overflow-y: auto;
}
.modal {
  background: #fff; border-radius: var(--r-lg);
  box-shadow: var(--sh-5);
  width: 560px; max-width: 100%;
  max-height: calc(100vh - 60px);
  display: flex; flex-direction: column;
  animation: pop-in 180ms cubic-bezier(.2, .9, .3, 1);
  margin: auto;
}
.modal--sm { width: 420px; }
.modal--lg { width: 780px; }
.modal--xl { width: 1040px; }
.modal--full { width: 1240px; }
.modal__head {
  display: flex; align-items: center; gap: 10px;
  padding: 15px 20px; border-bottom: 1px solid var(--c-border);
  flex-shrink: 0;
}
.modal__title { font-size: 15.5px; font-weight: 600; }
.modal__close {
  margin-left: auto; width: 28px; height: 28px; border-radius: var(--r-sm);
  display: grid; place-items: center; color: var(--c-text-3); font-size: 18px;
}
.modal__close:hover { background: var(--c-neutral-bg); color: var(--c-text); }
.modal__body { padding: 20px; overflow-y: auto; flex: 1 1 auto; }
.modal__foot {
  padding: 12px 20px; border-top: 1px solid var(--c-border);
  display: flex; justify-content: flex-end; gap: 10px; flex-shrink: 0;
  background: var(--c-surface-2); border-radius: 0 0 var(--r-lg) var(--r-lg);
}

/* ---------- 抽屉 ---------- */
.drawer-mask { position: fixed; inset: 0; background: rgba(15, 23, 42, .42); z-index: 1000; animation: fade-in 140ms ease; }
.drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: 620px; max-width: 92vw; background: #fff;
  box-shadow: var(--sh-5); z-index: 1001;
  display: flex; flex-direction: column;
  animation: drawer-in 200ms cubic-bezier(.2, .9, .3, 1);
}
@keyframes drawer-in { from { transform: translateX(100%); } to { transform: translateX(0); } }

/* ---------- 提示 Toast ---------- */
.toast-root {
  position: fixed; top: 18px; left: 50%; transform: translateX(-50%);
  z-index: 3000; display: flex; flex-direction: column; gap: 8px; align-items: center;
  pointer-events: none;
}
.toast {
  display: flex; align-items: center; gap: 9px;
  padding: 10px 16px; border-radius: var(--r-md);
  background: #1e293b; color: #fff;
  font-size: 13.5px; box-shadow: var(--sh-4);
  animation: pop-in 180ms ease;
  max-width: 520px;
}
.toast--success { background: #15803d; }
.toast--error { background: #b91c1c; }
.toast--warning { background: #b45309; }
.toast--info { background: #1d4ed8; }
.toast__icon { font-size: 15px; flex-shrink: 0; }

/* ---------- 标签页 ---------- */
.tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--c-border); }
.tabs__item {
  padding: 9px 15px; font-size: 13.5px; color: var(--c-text-2);
  cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: color var(--transition), border-color var(--transition);
  white-space: nowrap;
}
.tabs__item:hover { color: var(--c-primary); }
.tabs__item.is-active { color: var(--c-primary-700); border-bottom-color: var(--c-primary); font-weight: 600; }
.tabs--pill { border: none; gap: 6px; }
.tabs--pill .tabs__item {
  border: none; border-radius: var(--r-full); padding: 6px 14px;
  background: var(--c-neutral-bg); margin: 0;
}
.tabs--pill .tabs__item.is-active { background: var(--c-primary); color: #fff; }

/* ---------- 步骤条 ---------- */
.steps { display: flex; align-items: flex-start; }
.step { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; position: relative; text-align: center; }
.step__dot {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center;
  background: #fff; border: 2px solid var(--c-border-strong);
  color: var(--c-text-3); font-size: 12px; font-weight: 600;
  z-index: 1;
}
.step__label { font-size: 12.5px; color: var(--c-text-3); margin-top: 7px; line-height: 1.4; }
.step__desc { font-size: 11px; color: #b6c1d0; }
.step::before {
  content: ""; position: absolute; top: 13px; left: -50%; width: 100%; height: 2px;
  background: var(--c-border); z-index: 0;
}
.step:first-child::before { display: none; }
.step.is-done .step__dot { background: var(--c-success); border-color: var(--c-success); color: #fff; }
.step.is-done::before { background: var(--c-success); }
.step.is-done .step__label { color: var(--c-text-2); }
.step.is-active .step__dot { background: var(--c-primary); border-color: var(--c-primary); color: #fff; box-shadow: 0 0 0 4px rgba(37, 99, 235, .16); }
.step.is-active::before { background: var(--c-success); }
.step.is-active .step__label { color: var(--c-primary-700); font-weight: 600; }

/* ---------- 进度条 ---------- */
.progress { height: 7px; border-radius: var(--r-full); background: #e8edf5; overflow: hidden; }
.progress__bar { height: 100%; border-radius: var(--r-full); background: linear-gradient(90deg, var(--c-primary-500), var(--c-primary-700)); transition: width 400ms ease; }
.progress__bar--success { background: linear-gradient(90deg, #22c55e, #15803d); }
.progress__bar--warning { background: linear-gradient(90deg, #fbbf24, #d97706); }
.progress__bar--danger { background: linear-gradient(90deg, #f87171, #b91c1c); }
.progress-row { display: flex; align-items: center; gap: 10px; }
.progress-row .progress { flex: 1 1 auto; }

/* ---------- 描述列表 ---------- */
.desc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.desc--1 { grid-template-columns: 1fr; }
.desc--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.desc__item {
  display: flex; gap: 10px; padding: 9px 0;
  border-bottom: 1px dashed #e8edf5; font-size: 13px; min-width: 0;
}
.desc__label { flex: 0 0 96px; color: var(--c-text-3); }
.desc__value { flex: 1 1 auto; min-width: 0; word-break: break-word; }

/* ---------- 时间线 ---------- */
.timeline { position: relative; padding-left: 22px; }
.timeline::before { content: ""; position: absolute; left: 6px; top: 6px; bottom: 6px; width: 2px; background: var(--c-border); }
.timeline__item { position: relative; padding-bottom: 18px; }
.timeline__item:last-child { padding-bottom: 0; }
.timeline__item::before {
  content: ""; position: absolute; left: -20px; top: 5px;
  width: 10px; height: 10px; border-radius: 50%;
  background: #fff; border: 2px solid var(--c-primary); z-index: 1;
}
.timeline__item.is-done::before { background: var(--c-success); border-color: var(--c-success); }
.timeline__item.is-danger::before { background: var(--c-danger); border-color: var(--c-danger); }
.timeline__head { display: flex; align-items: baseline; gap: 8px; }
.timeline__title { font-size: 13.5px; font-weight: 600; }
.timeline__time { font-size: 11.5px; color: var(--c-text-3); margin-left: auto; }
.timeline__body { font-size: 12.5px; color: var(--c-text-2); margin-top: 3px; line-height: 1.75; }

/* ---------- 树 ---------- */
.tree { font-size: 13px; }
.tree__node { user-select: none; }
.tree__row {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 8px; border-radius: var(--r-xs); cursor: pointer;
}
.tree__row:hover { background: var(--c-primary-50); }
.tree__row.is-active { background: var(--c-primary-100); color: var(--c-primary-700); font-weight: 600; }
.tree__arrow { width: 14px; height: 14px; display: grid; place-items: center; font-size: 10px; color: var(--c-text-3); transition: transform var(--transition); }
.tree__arrow.is-open { transform: rotate(90deg); }
.tree__arrow.is-leaf { visibility: hidden; }
.tree__children { padding-left: 16px; }

/* ---------- 空状态 / 骨架 ---------- */
.empty { padding: 50px 20px; text-align: center; color: var(--c-text-3); }
.empty svg { width: 62px; height: 62px; margin: 0 auto 12px; opacity: .3; }
.empty__title { font-size: 14px; color: var(--c-text-2); margin-bottom: 4px; }

.skeleton {
  background: linear-gradient(90deg, #eef2f7 25%, #e2e8f0 37%, #eef2f7 63%);
  background-size: 400% 100%;
  animation: skeleton 1.4s ease infinite;
  border-radius: var(--r-xs);
}
@keyframes skeleton { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

.spinner {
  width: 22px; height: 22px; border-radius: 50%;
  border: 2.5px solid var(--c-border);
  border-top-color: var(--c-primary);
  animation: spin .75s linear infinite;
}
.loading-mask {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; padding: 60px; color: var(--c-text-3); font-size: 13px;
}

/* ---------- 下拉菜单 ---------- */
.dropdown { position: relative; }
.dropdown__menu {
  position: absolute; right: 0; top: calc(100% + 6px);
  min-width: 168px; background: #fff;
  border: 1px solid var(--c-border); border-radius: var(--r-md);
  box-shadow: var(--sh-4); padding: 5px; z-index: 300;
  animation: rise-in 130ms ease;
  max-height: 420px; overflow-y: auto;
}
.dropdown__item {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 10px; border-radius: var(--r-sm);
  font-size: 13px; cursor: pointer; color: var(--c-text);
}
.dropdown__item:hover { background: var(--c-primary-50); color: var(--c-primary-700); }
.dropdown__item.is-danger { color: var(--c-danger); }
.dropdown__item.is-danger:hover { background: var(--c-danger-bg); }
.dropdown__divider { height: 1px; background: var(--c-border); margin: 5px 2px; }

/* ---------- 提示气泡 ---------- */
.popover {
  position: absolute; background: #fff;
  border: 1px solid var(--c-border); border-radius: var(--r-md);
  box-shadow: var(--sh-4); z-index: 400; animation: rise-in 140ms ease;
}
.popover--notify { width: 372px; right: 0; top: calc(100% + 8px); padding: 0; }
.notify__head { display: flex; align-items: center; padding: 12px 15px; border-bottom: 1px solid var(--c-border); font-weight: 600; font-size: 13.5px; }
.notify__list { max-height: 380px; overflow-y: auto; }
.notify__item { display: flex; gap: 10px; padding: 11px 15px; border-bottom: 1px solid #f2f5fa; cursor: pointer; }
.notify__item:hover { background: var(--c-primary-50); }
.notify__item.is-unread { background: #f8fbff; }
.notify__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--c-primary); margin-top: 7px; flex-shrink: 0; }
.notify__dot.is-read { background: transparent; }
.notify__title { font-size: 13px; font-weight: 500; }
.notify__meta { font-size: 11.5px; color: var(--c-text-3); margin-top: 2px; }

/* ---------- 分隔 ---------- */
.divider { height: 1px; background: var(--c-border); margin: 16px 0; }
.divider--v { width: 1px; height: 18px; background: var(--c-border); margin: 0 4px; }

/* ---------- 代码块 ---------- */
.code-block {
  background: #0f172a; color: #cbd5e1;
  border-radius: var(--r-md); padding: 14px 16px;
  font-family: var(--font-mono); font-size: 12.5px; line-height: 1.75;
  overflow-x: auto; white-space: pre;
}
.code-block .k { color: #7dd3fc; }
.code-block .s { color: #a5f3b0; }
.code-block .n { color: #fbbf24; }
.code-block .c { color: #64748b; font-style: italic; }

/* ---------- Key/Value 键值对 ---------- */
.kv { display: flex; gap: 8px; font-size: 13px; }
.kv__k { color: var(--c-text-3); }
.kv__v { font-weight: 500; }
