/* HisabPlus UI kit - empty state + skeleton (Phase 0). Use with wwwroot/js/ui-kit.js  ->  UI.emptyHtml(icon, title, text) */
.ui-empty { text-align: center; padding: 32px 16px; color: var(--text-secondary-color, #6c757d); }
.ui-empty i { display: block; font-size: 36px; opacity: .45; margin-bottom: 10px; }
.ui-empty .ui-empty-title { font-weight: 600; font-size: 15px; color: var(--text-primary-color, inherit); }
.ui-empty .ui-empty-text { font-size: 12.5px; margin-top: 4px; }

.ui-skeleton { min-height: 16px; border-radius: 8px; background: linear-gradient(90deg, rgba(128,128,128,.12) 25%, rgba(128,128,128,.24) 37%, rgba(128,128,128,.12) 63%); background-size: 400% 100%; animation: ui-skeleton 1.4s ease infinite; }
.ui-skeleton.line { height: 14px; margin: 8px 0; }
.ui-skeleton.block { height: 64px; margin: 8px 0; }
@keyframes ui-skeleton { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) { .ui-skeleton { animation: none; } }

/* Accessibility: visible keyboard focus everywhere (mouse users are not affected: :focus-visible only) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible, .select2-container--focus .select2-selection, .select2-container--open .select2-selection {
    outline: 2px solid var(--primary-color, #6366f1) !important;
    outline-offset: 2px;
}
/* Skip repeated navigation for keyboard / screen-reader users */
.ui-skip-link { position: absolute; left: -9999px; top: 0; z-index: 100000; background: var(--primary-color, #6366f1); color: #fff; padding: 8px 14px; border-radius: 0 0 8px 0; }
.ui-skip-link:focus { left: 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
