/* ============================================================
   CruxGlobal.css
   Shared styles used across all pages in the application.
   Link this file in every View's <head>.

   NOTE: Custom dropdown styles have been moved to
         Components/CruxDropdown.css for better modularity.
   ============================================================ */


/* ── Universal Reset ──────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

/* Prevent body scroll when a modal is open */
body.dt-modal-open,
body.crux-modal-open { overflow: hidden; }


/* ── Shared Scrollbar Theme ───────────────────────────────────── */
.crux-scrollbar::-webkit-scrollbar              { width: 5px; }
.crux-scrollbar::-webkit-scrollbar-track        { background: transparent; }
.crux-scrollbar::-webkit-scrollbar-thumb        { background: rgba(var(--accent-rgb, 61,139,255), 0.30); border-radius: 4px; }
.crux-scrollbar::-webkit-scrollbar-thumb:hover  { background: rgba(var(--accent-rgb, 61,139,255), 0.55); }


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


/* ── Utility: Truncate text ───────────────────────────────────── */
.crux-truncate {
    overflow:      hidden;
    text-overflow: ellipsis;
    white-space:   nowrap;
}
