:root {
  --hover-bg: var(--line-2);
  --hover-ease: cubic-bezier(.22,1,.36,1);
  --hover-dur: .13s;
  --focus-ring: 0 0 0 3px var(--accent-tint);
}
button:focus-visible,
a:focus-visible,
[role="button"]:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: 7px;
}
@keyframes pageIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.main > .wrap,
.main > .rd-page,
.main > [class*="-page"] {
  animation: pageIn .26s var(--hover-ease);
}
@media (prefers-reduced-motion: reduce) {
  .main > .wrap, .main > .rd-page, .main > [class*="-page"] { animation: none; }
}
.crow, .urow, .sess-row, .plat-row, .vital, .hd-row,
.nav-item, .side-link, .tab, .list-row {
  transition: background var(--hover-dur) var(--hover-ease),
              color var(--hover-dur) var(--hover-ease);
}
button, [role="button"], a, .sel-trigger, summary { cursor: pointer; }
button:disabled, [aria-disabled="true"] { cursor: default; }
.sk-box { display: block; background: linear-gradient(90deg, var(--line-2) 25%, var(--line) 37%, var(--line-2) 63%); background-size: 400% 100%; animation: skShimmer 1.3s ease infinite; }
@keyframes skShimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
@media (prefers-reduced-motion: reduce) { .sk-box { animation: none; } }
.sk-page { padding: 4px 0; }
.sk-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin-bottom: 26px; }
.sk-stat { padding: 4px 2px; }
.sk-chart { width: 100%; }
.sk-table { display: flex; flex-direction: column; }
.sk-tr { display: grid; grid-template-columns: 30px 1fr 20% 16% 64px; align-items: center; gap: 16px; padding: 15px 4px; border-top: 1px solid var(--line-2); }
.sk-tr:first-child { border-top: none; }
.sk-list { display: flex; flex-direction: column; }
.sk-li { display: flex; align-items: center; gap: 13px; padding: 15px 2px; border-top: 1px solid var(--line-2); }
.sk-li:first-child { border-top: none; }
