/*
 * app.css — shared utility classes.
 *
 * These replace static inline style="" attributes across templates so the CSP
 * policy can drop 'unsafe-inline' from style-src. Keep this file limited to
 * generic, reusable rules; page-specific styles belong in that page's own
 * nonce'd <style> block.
 */

/* Oversized glyphs for status/error pages and result icons. */
.icon-4rem {
    font-size: 4rem;
}
.icon-3rem {
    font-size: 3rem;
}

/* Small type sizes used in captions and helper text. */
.fs-0875 {
    font-size: 0.875rem;
}
.fs-070 {
    font-size: 0.7rem;
}

/* Preserve whitespace/newlines while wrapping long, unbroken strings
   (log payloads, prompt output, free-text descriptions). */
.text-prewrap {
    white-space: pre-wrap;
    word-break: break-word;
}
.ws-prewrap {
    white-space: pre-wrap;
}

/* Vertically scrollable box with a fixed max height. */
.scroll-500 {
    max-height: 500px;
    overflow-y: auto;
}

/* Constrain a cell's width so long values truncate/wrap instead of stretching. */
.mw-200 {
    max-width: 200px;
}

/* Layer above sticky headers / over Bootstrap dropdowns. */
.z-1100 {
    z-index: 1100;
}

/* Fixed-height wrapper for a responsive chart canvas. */
.chart-box-200 {
    position: relative;
    height: 200px;
}

/* Circular avatar/initials badge. */
.avatar-48 {
    width: 48px;
    height: 48px;
    font-size: 1.2rem;
}

/* Autocomplete results dropdown anchored under its input. */
.autocomplete-menu {
    z-index: 1050;
    max-height: 300px;
    overflow-y: auto;
    top: 100%;
}
