/*
 * app-utilities.css
 *
 * Classes extracted from inline style="..." attributes to support a strict
 * Content Security Policy without 'unsafe-inline' in style-src. Bootstrap JS
 * components (tooltip, modal, dropdown, offcanvas, collapse) still inject
 * inline styles at runtime and are not addressed here.
 */

/* -- Bootstrap spinner, enlarged for loading/auth views --------------------- */
.spinner-border-lg {
    width: 3rem;
    height: 3rem;
}

/* -- Thin progress bar track used with Bootstrap .progress ------------------ */
.progress-thin {
    height: 4px;
}

/* -- Progress bar fill at 100% (indeterminate/complete state) --------------- */
.progress-bar-full {
    width: 100%;
}

/* -- Large status icon (bi-* icons sized at 3rem) --------------------------- */
.icon-xl {
    font-size: 3rem;
}

/* -- Interactive cursor hint for clickable non-button elements -------------- */
.cursor-pointer {
    cursor: pointer;
}

/* -- Preserve newlines and wrapping for long-form narrative text ------------ */
.text-pre-wrap {
    white-space: pre-wrap;
}

/* -- Fixed-width table columns ---------------------------------------------- */
.col-w-90  { width:  90px; }
.col-w-100 { width: 100px; }
.col-w-120 { width: 120px; }
.col-w-130 { width: 130px; }
.col-w-140 { width: 140px; }
.col-w-150 { width: 150px; }

/* -- Authorization Data viewer: collapsed preview (click to expand) --------- */
.auth-data-collapsed {
    max-height: 150px;
    overflow: hidden;
    white-space: pre-wrap;
    word-wrap: break-word;
    cursor: pointer;
}

/* -- Authorization Data viewer: expanded scrollable view -------------------- */
.auth-data-expanded {
    max-height: 600px;
    overflow-y: auto;
    white-space: pre-wrap;
    word-wrap: break-word;
}
