/* Interactive utilities - Cursor, focus, hover, responsive, and accessibility helpers */

/* Cursor utilities */
.cursor-pointer { cursor: pointer !important; }
.cursor-not-allowed { cursor: not-allowed !important; }
.cursor-default { cursor: default !important; }

/* Focus utilities */
.focus\:outline-none:focus { outline: none !important; }
.focus\:ring:focus {
    box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.15) !important;
}

/* Hover utilities */
.hover\:bg-surface:hover { background-color: var(--surface-hover) !important; }
.hover\:text-primary:hover { color: var(--primary) !important; }
.hover\:scale-105:hover { transform: scale(1.05) !important; }
.hover\:-translate-y-1:hover { transform: translateY(-0.25rem) !important; }

/* Screen reader utilities */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.not-sr-only {
    position: static !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
}

/* User select utilities */
.select-none { user-select: none !important; }
.select-text { user-select: text !important; }
.select-all { user-select: all !important; }
.select-auto { user-select: auto !important; }

/* Aspect ratio utilities */
.aspect-square { aspect-ratio: 1 / 1 !important; }
.aspect-video { aspect-ratio: 16 / 9 !important; }

/* Clearfix utility */
.clearfix::after {
    content: "" !important;
    display: table !important;
    clear: both !important;
}

/* Responsive design utilities */
@media (min-width: 768px) {
    .md\:flex { display: flex !important; }
    .md\:hidden { display: none !important; }
    .md\:block { display: block !important; }
    .md\:text-left { text-align: left !important; }
    .md\:text-center { text-align: center !important; }
    .md\:text-right { text-align: right !important; }
}

@media (min-width: 1024px) {
    .lg\:flex { display: flex !important; }
    .lg\:hidden { display: none !important; }
    .lg\:block { display: block !important; }
    .lg\:text-left { text-align: left !important; }
    .lg\:text-center { text-align: center !important; }
    .lg\:text-right { text-align: right !important; }
}

@media (max-width: 767px) {
    .sm\:hidden { display: none !important; }
    .sm\:block { display: block !important; }
    .sm\:flex { display: flex !important; }
    .sm\:text-center { text-align: center !important; }
    .sm\:text-left { text-align: left !important; }
}
