/*
  Servis Mobile components.
  Existing portal class names are extended, new isolated primitives use the ds- prefix.
*/

/* Icons */
.ds-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  color: currentColor;
  stroke-width: 1.8;
}

.ds-icon-sm { width: 16px; height: 16px; }
.ds-icon-lg { width: 22px; height: 22px; }

/* Buttons: extends .btn without renaming existing variants. */
.btn,
.ds-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-height: 36px;
  padding: 0 var(--sp-4);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface-3);
  color: var(--txt);
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  line-height: 1;
  cursor: pointer;
  transition: background var(--dur-2) var(--ease-standard), border-color var(--dur-2) var(--ease-standard), color var(--dur-2) var(--ease-standard), transform var(--dur-1) var(--ease-out);
}

.btn:hover,
.ds-btn:hover {
  background: var(--surface-4);
  border-color: var(--border-strong);
}

.btn:active,
.ds-btn:active {
  transform: translateY(1px);
}

.btn[disabled],
.ds-btn[disabled],
.ds-btn.is-disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
}

.btn-primary,
.ds-btn-primary {
  border-color: var(--accent-600);
  background: var(--accent-600);
  color: white;
}

.btn-primary:hover,
.ds-btn-primary:hover {
  background: var(--accent-700);
  border-color: var(--accent-700);
}

.btn-secondary,
.ds-btn-secondary {
  border-color: var(--accent-line);
  background: var(--accent-soft);
  color: var(--accent-200);
}

.btn-ghost,
.ds-btn-ghost {
  background: transparent;
  border-color: transparent;
  color: var(--muted);
}

.btn-danger,
.ds-btn-danger {
  border-color: rgba(239, 68, 68, .42);
  background: var(--danger-soft);
  color: #fecaca;
}

.btn-ok,
.ds-btn-ok {
  border-color: rgba(34, 197, 94, .42);
  background: var(--success-soft);
  color: #bbf7d0;
}

.ds-btn-xs { min-height: 28px; padding-inline: var(--sp-2); font-size: var(--fs-xs); }
.ds-btn-sm { min-height: 32px; padding-inline: var(--sp-3); font-size: var(--fs-xs); }
.ds-btn-lg { min-height: 44px; padding-inline: var(--sp-5); font-size: var(--fs-md); }
.ds-btn-icon { width: 36px; padding: 0; }
.ds-btn-icon.ds-btn-sm { width: 32px; }
.ds-btn-icon.ds-btn-lg { width: 44px; }

.ds-btn.is-loading {
  color: transparent;
  pointer-events: none;
  position: relative;
}

.ds-btn.is-loading::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, .35);
  border-top-color: currentColor;
  border-radius: 50%;
  animation: ds-spin .8s linear infinite;
  color: white;
}

/* Cards and metrics */
.card,
.ds-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-1);
}

.card-header,
.ds-card-header,
.card-body,
.ds-card-body,
.card-footer,
.ds-card-footer {
  padding: var(--sp-5);
}

.card-header,
.ds-card-header,
.card-footer,
.ds-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
}

.card-header,
.ds-card-header {
  border-bottom: 1px solid var(--border);
}

.card-footer,
.ds-card-footer {
  border-top: 1px solid var(--border);
}

.ds-card-title {
  margin: 0;
  color: var(--txt);
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
}

.ds-card-subtitle {
  margin: var(--sp-1) 0 0;
  color: var(--muted);
  font-size: var(--fs-sm);
}

.metric-grid,
.ds-metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--sp-4);
}

.kpi,
.metric,
.stat-card,
.ds-stat-card {
  padding: var(--sp-5);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, rgba(255, 255, 255, .018), transparent), var(--card);
  box-shadow: var(--shadow-1);
}

.ds-stat-label {
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  text-transform: uppercase;
}

.ds-stat-value {
  margin-top: var(--sp-2);
  color: var(--txt);
  font-family: var(--font-mono);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
}

.ds-delta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: var(--sp-3);
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
}

.ds-delta-up { color: #86efac; }
.ds-delta-down { color: #fca5a5; }
.ds-delta-flat { color: var(--muted); }

/* Badges, statuses and chips */
.pill,
.badge,
.ds-badge,
.ds-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 24px;
  padding: 3px 9px;
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  background: var(--surface-3);
  color: var(--txt);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  line-height: 1.2;
}

.chips,
.ds-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}

.ds-badge-info { border-color: rgba(56, 189, 248, .36); background: var(--info-soft); color: #bae6fd; }
.ds-badge-success,
.s-live,
.s-new { border-color: rgba(34, 197, 94, .34); background: var(--success-soft); color: #bbf7d0; }
.ds-badge-warning,
.s-in_progress,
.s-paused { border-color: rgba(245, 158, 11, .36); background: var(--warning-soft); color: #fde68a; }
.ds-badge-danger { border-color: rgba(239, 68, 68, .36); background: var(--danger-soft); color: #fecaca; }
.prio-1 { color: #bfdbfe; background: var(--accent-soft); border-color: var(--accent-line); }
.prio-2 { color: #fde68a; background: var(--warning-soft); border-color: rgba(245, 158, 11, .34); }
.prio-3 { color: #fecaca; background: var(--danger-soft); border-color: rgba(239, 68, 68, .34); }

.ds-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--muted);
  box-shadow: 0 0 0 3px rgba(154, 163, 178, .12);
}

.ds-dot-success { background: var(--success); box-shadow: 0 0 0 3px var(--success-soft); }
.ds-dot-warning { background: var(--warning); box-shadow: 0 0 0 3px var(--warning-soft); }
.ds-dot-danger { background: var(--danger); box-shadow: 0 0 0 3px var(--danger-soft); }
.ds-dot-info { background: var(--info); box-shadow: 0 0 0 3px var(--info-soft); }

/* Forms */
.field,
.ds-field {
  display: grid;
  gap: var(--sp-2);
}

.ds-label {
  color: var(--txt);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
}

.ds-hint,
.ds-error {
  margin: 0;
  font-size: var(--fs-xs);
}

.ds-hint { color: var(--muted); }
.ds-error { color: #fca5a5; }

.ds-input,
.ds-select,
.ds-textarea,
input[type="text"].ds-input,
input[type="search"].ds-input,
input[type="email"].ds-input,
input[type="number"].ds-input,
textarea.ds-textarea,
select.ds-select {
  width: 100%;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--field-bg);
  color: var(--txt);
  font: inherit;
  font-size: var(--fs-sm);
}

.ds-textarea {
  min-height: 96px;
  resize: vertical;
}

.ds-input::placeholder,
.ds-textarea::placeholder {
  color: var(--text-subtle);
}

.ds-field.is-invalid .ds-input,
.ds-field.is-invalid .ds-select,
.ds-field.is-invalid .ds-textarea {
  border-color: rgba(239, 68, 68, .72);
}

.ds-select {
  padding-right: 34px;
  background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: calc(100% - 18px) 16px, calc(100% - 13px) 16px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.ds-choice,
.ds-switch,
.ds-file {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  color: var(--txt);
  font-size: var(--fs-sm);
}

.ds-choice input {
  width: 16px;
  height: 16px;
  accent-color: var(--accent);
}

.ds-switch input {
  position: absolute;
  opacity: 0;
}

.ds-switch-track {
  width: 38px;
  height: 22px;
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  background: var(--surface-4);
  position: relative;
  transition: background var(--dur-2) var(--ease-standard), border-color var(--dur-2) var(--ease-standard);
}

.ds-switch-track::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--muted);
  transition: transform var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-standard);
}

.ds-switch input:checked + .ds-switch-track {
  border-color: var(--accent-line);
  background: var(--accent-soft);
}

.ds-switch input:checked + .ds-switch-track::after {
  transform: translateX(16px);
  background: var(--accent-300);
}

.ds-file input {
  max-width: 100%;
  color: var(--muted);
}

/* Tables */
.responsive,
.ds-table-wrap {
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--card);
}

.ds-table {
  width: 100%;
  min-width: 720px;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--txt);
  font-size: var(--fs-sm);
}

.ds-table th,
.ds-table td {
  padding: 11px 14px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: middle;
}

.ds-table th {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: var(--surface-3);
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
}

.ds-table tbody tr:nth-child(even) { background: var(--row-alt); }
.ds-table tbody tr:hover { background: var(--row-hover); }
.ds-table tr:last-child td { border-bottom: 0; }
.ds-table-dense th,
.ds-table-dense td { padding: 8px 10px; }
.ds-sortable { cursor: pointer; user-select: none; }
.ds-row-actions { opacity: 0; transition: opacity var(--dur-2) var(--ease-standard); }
.ds-table tr:hover .ds-row-actions,
.ds-table tr:focus-within .ds-row-actions { opacity: 1; }

/* Progress */
.bar,
.ds-progress {
  --val: 0;
  height: 8px;
  overflow: hidden;
  border-radius: var(--r-pill);
  background: var(--surface-4);
}

.bar::before,
.ds-progress::before {
  content: "";
  display: block;
  width: min(100%, calc(var(--val) * 1%));
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent-500), var(--chart-6));
}

.ds-progress-sm { height: 5px; }
.ds-progress-lg { height: 12px; }

.ds-ring {
  --val: 68;
  --ring-color: var(--accent);
  width: 74px;
  height: 74px;
  color: var(--ring-color);
}

.ds-ring-bg {
  stroke: var(--surface-4);
}

.ds-ring-value {
  stroke: currentColor;
  stroke-dasharray: calc(var(--val) * .01 * 251.2) 251.2;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
}

.ds-gauge-label {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  fill: var(--txt);
}

/* Toolbars, tabs and pagination */
.toolbar,
.ds-toolbar,
.ds-filterbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
}

.ds-filterbar {
  padding: var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--surface-2);
}

.tabs,
.ntabs,
.ds-tabs {
  display: flex;
  gap: var(--sp-1);
  border-bottom: 1px solid var(--border);
}

.ds-tab {
  appearance: none;
  padding: 10px 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: var(--fs-sm);
  cursor: pointer;
}

.ds-tab:hover { color: var(--txt); }
.ds-tab.is-active,
.ds-tab[aria-selected="true"] {
  color: var(--accent-300);
  border-bottom-color: var(--accent);
}

.ds-tab-panel[hidden] { display: none; }

.pager,
.ds-pagination {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}

.ds-page {
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface-3);
  color: var(--txt);
}

.ds-page.is-current {
  border-color: var(--accent-line);
  background: var(--accent-soft);
  color: var(--accent-200);
}

/* Feedback, empty, loading */
.empty,
.ds-empty {
  display: grid;
  place-items: center;
  gap: var(--sp-3);
  min-height: 180px;
  padding: var(--sp-7);
  border: 1px dashed var(--border-strong);
  border-radius: var(--r-lg);
  background: var(--surface-1);
  color: var(--muted);
  text-align: center;
}

.ds-skeleton {
  min-height: 14px;
  border-radius: var(--r-sm);
  background: linear-gradient(90deg, var(--skeleton-a), var(--skeleton-b), var(--skeleton-a));
  background-size: 220% 100%;
  animation: ds-shimmer 1.4s var(--ease-standard) infinite;
}

.ds-spinner {
  width: 20px;
  height: 20px;
  border: 2px solid rgba(154, 163, 178, .3);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: ds-spin .8s linear infinite;
}

.ds-banner {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-4);
  border: 1px solid var(--accent-line);
  border-radius: var(--r-lg);
  background: var(--accent-soft);
  color: var(--accent-100);
}

.toast,
.ds-toast {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  width: min(380px, calc(100vw - 24px));
  padding: var(--sp-4);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--surface-raised);
  color: var(--txt);
  box-shadow: var(--shadow-3);
}

.ds-toast-stack {
  position: fixed;
  right: var(--sp-4);
  bottom: var(--sp-4);
  z-index: var(--z-toast);
  display: grid;
  gap: var(--sp-3);
}

/* Modal, drawer, dropdown */
.ds-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-overlay);
  display: none;
  background: var(--overlay);
}

.ds-overlay.is-open {
  display: block;
}

.ds-modal,
.ds-drawer {
  position: fixed;
  z-index: var(--z-modal);
  display: none;
  border: 1px solid var(--border);
  background: var(--surface-raised);
  color: var(--txt);
  box-shadow: var(--shadow-4);
}

.ds-modal.is-open,
.ds-drawer.is-open {
  display: block;
}

.ds-modal {
  top: 50%;
  left: 50%;
  width: min(560px, calc(100vw - 24px));
  max-height: calc(100vh - 48px);
  overflow: auto;
  border-radius: var(--r-xl);
  transform: translate(-50%, -50%);
}

.ds-drawer {
  inset: 0 0 0 auto;
  width: min(420px, calc(100vw - 32px));
  overflow: auto;
}

.ds-dropdown {
  position: relative;
  display: inline-flex;
}

.ds-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: var(--z-dropdown);
  display: none;
  min-width: 190px;
  padding: var(--sp-2);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--surface-raised);
  box-shadow: var(--shadow-2);
}

.ds-menu.is-open {
  display: grid;
}

.ds-menu-item {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: 9px 10px;
  border: 0;
  border-radius: var(--r-md);
  background: transparent;
  color: var(--txt);
  font: inherit;
  font-size: var(--fs-sm);
  text-align: left;
  cursor: pointer;
}

.ds-menu-item:hover {
  background: var(--surface-hover);
}

/* Kanban */
.ds-kanban {
  display: grid;
  grid-template-columns: repeat(4, minmax(220px, 1fr));
  gap: var(--sp-4);
  overflow-x: auto;
}

.ds-kanban-col {
  min-height: 260px;
  padding: var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--surface-1);
}

.ds-kanban-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 var(--sp-3);
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
}

.ds-kanban-card {
  padding: var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--card);
  box-shadow: var(--shadow-1);
}

.ds-kanban-card + .ds-kanban-card { margin-top: var(--sp-3); }
.ds-kanban-card.is-dragging { opacity: .7; outline: 1px dashed var(--accent-line); }
.ds-kanban-col.is-drop-target { border-color: var(--accent-line); background: rgba(59, 130, 246, .06); }

/* App shell */
.ds-app {
  min-height: 100vh;
  background: var(--bg);
}

.ds-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: var(--z-sticky);
  width: 256px;
  padding: var(--sp-4);
  border-right: 1px solid var(--border);
  background: var(--surface-1);
  overflow-y: auto;
  transition: width var(--dur-2) var(--ease-standard), transform var(--dur-2) var(--ease-standard);
}

.ds-sidebar.is-collapsed {
  width: 76px;
}

.ds-main {
  min-width: 0;
  padding-left: 256px;
  transition: padding-left var(--dur-2) var(--ease-standard);
}

.ds-app:has(.ds-sidebar.is-collapsed) .ds-main {
  padding-left: 76px;
}

.ds-topbar {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 60px;
  padding: 0 var(--sp-5);
  border-bottom: 1px solid var(--border);
  background: rgba(15, 17, 21, .94);
}

.ds-nav {
  display: grid;
  gap: var(--sp-1);
}

.ds-nav-link {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  min-height: 38px;
  padding: 0 var(--sp-3);
  border-radius: var(--r-md);
  color: var(--muted);
  font-size: var(--fs-sm);
}

.ds-nav-link:hover,
.ds-nav-link.is-active {
  background: var(--surface-hover);
  color: var(--txt);
}

.ds-sidebar.is-collapsed .ds-nav-text,
.ds-sidebar.is-collapsed .ds-brand-text {
  display: none;
}

.ds-brand {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  min-height: 44px;
  margin-bottom: var(--sp-4);
  color: var(--txt);
  font-weight: var(--fw-semibold);
}

.ds-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2);
  color: var(--muted);
  font-size: var(--fs-sm);
}

.ds-breadcrumbs a { color: var(--muted); }
.ds-breadcrumbs a:hover { color: var(--txt); }

/* Scrollbar */
.ds-scrollbar,
.responsive,
.ds-table-wrap,
.ds-sidebar {
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

.ds-scrollbar::-webkit-scrollbar,
.responsive::-webkit-scrollbar,
.ds-table-wrap::-webkit-scrollbar,
.ds-sidebar::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

.ds-scrollbar::-webkit-scrollbar-track,
.responsive::-webkit-scrollbar-track,
.ds-table-wrap::-webkit-scrollbar-track,
.ds-sidebar::-webkit-scrollbar-track {
  background: var(--scrollbar-track);
}

.ds-scrollbar::-webkit-scrollbar-thumb,
.responsive::-webkit-scrollbar-thumb,
.ds-table-wrap::-webkit-scrollbar-thumb,
.ds-sidebar::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  border-radius: var(--r-pill);
}

@keyframes ds-spin {
  to { transform: rotate(360deg); }
}

@keyframes ds-shimmer {
  to { background-position: -220% 0; }
}

@media (max-width: 900px) {
  .ds-sidebar {
    transform: translateX(-100%);
    width: min(290px, calc(100vw - 48px));
  }
  .ds-sidebar.is-open {
    transform: translateX(0);
  }
  .ds-sidebar.is-collapsed {
    width: min(290px, calc(100vw - 48px));
  }
  .ds-sidebar.is-collapsed .ds-nav-text,
  .ds-sidebar.is-collapsed .ds-brand-text {
    display: inline;
  }
  .ds-main,
  .ds-app:has(.ds-sidebar.is-collapsed) .ds-main {
    padding-left: 0;
  }
  .ds-kanban {
    grid-template-columns: repeat(4, minmax(240px, 80vw));
  }
  .card-header,
  .ds-card-header,
  .card-footer,
  .ds-card-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}

/* ───────────────── TAB09 · вкладка «Готовность к заведению» ───────────────── */
.rdy-tab-radio { position: absolute; opacity: 0; pointer-events: none; }
.rdy-tabs { display: flex; gap: var(--sp-2, 8px); border-bottom: 1px solid var(--border, #2a2f3a);
  margin: var(--sp-3, 12px) 0 var(--sp-4, 16px); }
.rdy-tab { padding: 8px 14px; cursor: pointer; border-radius: 8px 8px 0 0;
  color: var(--text-muted, #9aa3b2); font-weight: 600; border: 1px solid transparent;
  border-bottom: none; margin-bottom: -1px; }
.rdy-tab:hover { color: var(--text, #e6e9ef); }
.rdy-panel { display: none; }
#dash-tab-overview:checked ~ .rdy-panel-overview { display: block; }
#dash-tab-readiness:checked ~ .rdy-panel-readiness { display: block; }
#dash-tab-overview:checked ~ .rdy-tabs label[for="dash-tab-overview"],
#dash-tab-readiness:checked ~ .rdy-tabs label[for="dash-tab-readiness"] {
  color: var(--text, #e6e9ef); background: var(--surface-2, #1b2029);
  border-color: var(--border, #2a2f3a); }
.rdy-grid td.rdy-cell { text-align: center; font-variant-numeric: tabular-nums;
  background: color-mix(in srgb, var(--accent, #34d399) calc(var(--rdy, 0) * 0.18%), transparent); }
.rdy-grid th { white-space: nowrap; }
.rdy-gap-list { columns: 2; margin: 6px 0 0; padding-left: 18px; }
.rdy-gap-list code { font-size: 12px; }
