/* RBAC Pre-load Styles - Prevent Flash of Restricted Content */
/* Elements are hidden by default, then shown by JavaScript based on permissions */

/* Loading indicator while checking role */
body:not(.role-loaded) .navbar-menu {
    opacity: 0.3;
    pointer-events: none;
}

body.role-loaded .navbar-menu {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.3s ease;
}

/* ============================================================ */
/* BEFORE role is loaded: hide everything restricted             */
/* ============================================================ */

/* Hide admin-only elements before role check completes */
body:not(.role-loaded) [data-admin-only] {
    display: none !important;
}

body:not(.role-loaded) #addProjectBtn,
body:not(.role-loaded) #addCustomerBtn,
body:not(.role-loaded) #addProductBtn,
body:not(.role-loaded) #addContactBtn,
body:not(.role-loaded) .btn-add-action,
body:not(.role-loaded) .btn-add-inline-small {
    display: none !important;
}

/* ============================================================ */
/* AFTER role is loaded: ADMIN sees everything                  */
/* ============================================================ */

body.role-admin [data-admin-only] {
    display: block !important;
}

body.role-admin li[data-admin-only] {
    display: list-item !important;
}

body.role-admin a[data-admin-only] {
    display: block !important;
}

body.role-admin .tahsilat-stats-container[data-admin-only] {
    display: grid !important;
}

body.role-admin [data-admin-only]:not(li):not(a):not(.tahsilat-stats-container) {
    display: block !important;
}

body.role-admin #addProjectBtn,
body.role-admin #addCustomerBtn,
body.role-admin #addProductBtn,
body.role-admin #addContactBtn,
body.role-admin .btn-add-action,
body.role-admin .btn-add-inline-small {
    display: inline-block !important;
}

/* ============================================================ */
/* AFTER role is loaded: NON-ADMIN — JavaScript controls this   */
/* data-admin-only elements stay hidden by default              */
/* JS will show elements on pages where user has edit permission */
/* ============================================================ */

body.role-loaded:not(.role-admin) [data-admin-only] {
    display: none;
}

body.role-loaded:not(.role-admin) #addProjectBtn,
body.role-loaded:not(.role-admin) #addCustomerBtn,
body.role-loaded:not(.role-admin) #addProductBtn,
body.role-loaded:not(.role-admin) #addContactBtn,
body.role-loaded:not(.role-admin) .btn-add-action,
body.role-loaded:not(.role-admin) .btn-add-inline-small {
    display: none;
}

/* NOTE: No !important on non-admin rules — this lets JavaScript
   override with element.style.setProperty('display', '...', 'important')
   for users who have edit permissions on specific pages */
