/* Custom Cursor Implementation */

/* Default cursor for everything - shiny cursor */
* {
    cursor: url('../cursor_shiny.png'), auto !important;
}

/* Clickable elements get the final cursor */
a,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.clickable,
.browse-link,
.category-link,
.admin-link,
.logo,
.remove-btn,
.config-btn,
.generate-btn,
.clear-btn,
.gallery-item,
.current-photo-item {
    cursor: url('../cursor_final.png'), pointer !important;
}

/* Navigation specific */
.main-nav a,
.category-nav a {
    cursor: url('../cursor_final.png'), pointer !important;
}

/* Form elements that are clickable */
select,
option {
    cursor: url('../cursor_final.png'), pointer !important;
}

/* Drop zone and upload areas */
.drop-zone,
#dropZone {
    cursor: url('../cursor_final.png'), copy !important;
}

/* Gallery images with special interaction */
.gallery img {
    cursor: url('../cursor_final.png'), zoom-in !important;
}

/* Admin interface specific elements */
.current-photos-list .current-photo-item {
    cursor: url('../cursor_final.png'), pointer !important;
}

/* File input hidden but area should be clickable */
input[type="file"] {
    cursor: url('../cursor_final.png'), pointer !important;
}

/* Text inputs keep default text cursor */
input[type="text"],
input[type="email"],
input[type="password"],
textarea {
    cursor: text !important;
}

/* Disabled elements use shiny (default) cursor */
button:disabled,
input:disabled,
select:disabled {
    cursor: url('../cursor_shiny.png'), not-allowed !important;
}

/* Progress and status elements (non-clickable) use default shiny */
.progress-bar,
.upload-progress {
    cursor: url('../cursor_shiny.png'), progress !important;
}

/* Special states for admin workflow (non-clickable) */
.publishing,
.optimizing,
.loading {
    cursor: url('../cursor_shiny.png'), wait !important;
}