/*
 * netorkestra-utils.css - project-specific utility classes
 *
 * Introduced by Sub-Sprint 7.1 to eliminate inline style="..." attributes
 * from the templates so that the CSP style-src directive can eventually
 * drop 'unsafe-inline' (Sub-Sprint 7.4).
 *
 * The classes below cover the highest-frequency inline patterns as
 * measured by grep across dashboard/templates/. Bootstrap 5.3 utilities
 * (d-none, w-100, d-inline, text-center, overflow-hidden, etc.) are used
 * directly wherever they fit; only patterns without a Bootstrap
 * equivalent land here.
 *
 * When adding new utilities, keep names short and descriptive; match
 * Bootstrap's naming style (kebab-case with a compact convention).
 */

/* --- Cursor --- */
.cursor-pointer { cursor: pointer; }

/* --- Min-height (Bootstrap has no min-h-0) --- */
.min-h-0 { min-height: 0; }

/* --- Font-sizes (relative, snapping to the four most common values) --- */
.fs-60 { font-size: 0.60rem; }    /* was: font-size: 0.6rem */
.fs-tiny { font-size: 0.6em; }    /* was: font-size: 0.6em */
.fs-mini { font-size: 0.65rem; }  /* was: font-size: 0.65rem */
.fs-70 { font-size: 0.7em; }      /* was: font-size: 0.7em */
.fs-80 { font-size: 0.80rem; }    /* was: font-size: 0.80rem */

/* --- Letter-spacing composite (used together with fs-mini) --- */
.ls-05 { letter-spacing: 0.5px; }

/* --- z-index (Bootstrap only has z-0/1/2/3 in 5.3+; we need arbitrary values) --- */
.z-5 { z-index: 5; }
.z-10 { z-index: 10; }
.z-15 { z-index: 15; }

/* --- Fixed heights (only the most repeated values) --- */
.h-10 { height: 10px; }
.h-25 { height: 25px; }
.h-28 { height: 28px; }
.h-50 { height: 50px; }
.h-60 { height: 60px; }

/* --- Height calc: viewport minus header --- */
.h-viewport-minus-80 { height: calc(100vh - 80px); }

/* --- Fixed widths (repeated) --- */
.w-40 { width: 40px; }
.w-120 { width: 120px; }
.w-150 { width: 150px; }
.w-180 { width: 180px; }

/* --- Max-widths --- */
.mw-120 { max-width: 120px; }
.mw-150 { max-width: 150px; }
.mw-160 { max-width: 160px; }
.mw-200 { max-width: 200px; }
.mw-250 { max-width: 250px; }

/* --- Composite square (icon buttons, avatars) --- */
.wh-3rem { width: 3rem; height: 3rem; }
.wh-28 { width: 28px; height: 28px; }
.wh-32 { width: 32px; height: 32px; }

/* --- Table layout --- */
.table-fixed { table-layout: fixed; }

/* --- Line-height --- */
.lh-1-2 { line-height: 1.2; }

/* --- Text handling --- */
.ws-pre-wrap-wb-break-all { white-space: pre-wrap; word-break: break-all; }


/* ============================================================================
 * Sub-Sprint 7.2 additions - long-tail utility + component classes
 * ============================================================================
 */

/* --- Overflow --- */
.overflow-y-auto { overflow-y: auto; }

/* --- Font-sizes (additional) --- */
.fs-75 { font-size: 0.75em; }
.fs-75r { font-size: 0.75rem; }
.fs-32 { font-size: 32px; }

/* --- Table column widths (percent, table-layout: fixed context) --- */
.tw-10 { width: 10%; }
.tw-15 { width: 15%; }
.tw-35 { width: 35%; }

/* --- Heights (additional) --- */
.h-viewport-minus-100 { height: calc(100vh - 100px); }

/* --- Positioning helpers (arbitrary numeric offsets we couldn't hit with BS) --- */
.top-40 { top: 40px; }

/* --- z-index high (dropdown/menu contexts) --- */
.z-100 { z-index: 100; }
.pos-rel-z-100 { position: relative; z-index: 100; }

/* --- Max-heights (scrollable panels) --- */
.mh-400-scroll { max-height: 400px; overflow-y: auto; }
.mh-500-scroll { max-height: 500px; overflow-y: auto; }

/* --- Rotations (icon decorations) --- */
.rotate-5 { transform: rotate(5deg); }
.rotate--5 { transform: rotate(-5deg); }
.fs-32-rot-5 { font-size: 32px; transform: rotate(5deg); }

/* --- Cursor composite (table rows with hover transition) --- */
.cursor-pointer-transition {
    cursor: pointer;
    transition: background 0.1s;
}

/* --- Brand headings (NetOrkestra wordmark used in console pages) --- */
.brand-heading-dark { font-weight: 800; color: #2c3e50; }
.brand-heading-darker { font-weight: 800; color: #1a1a2e; }

/* --- Console hero icon (used in browser_console / console / rdp_console) --- */
.brand-icon-hero-blue {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, #0d6efd 0%, #0dcaf0 100%);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 20px rgba(13, 110, 253, 0.3);
    transform: rotate(-5deg);
}

/* --- Console hero icon - orange variant (serial_console) --- */
.brand-icon-hero-orange {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, #fd7e14 0%, #ffc107 100%);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 20px rgba(253, 126, 20, 0.3);
    transform: rotate(-5deg);
}

/* --- Gradient buttons (blue / orange) --- */
.btn-gradient-blue {
    background: linear-gradient(135deg, #0d6efd, #0dcaf0);
    border: none;
    color: white;
}
.btn-gradient-orange {
    background: linear-gradient(135deg, #fd7e14, #ffc107);
    border: none;
    color: white;
}

/* --- Text handling (add-on to Sub-Sprint 7.1) --- */
.ws-nowrap-of-hidden { white-space: nowrap; overflow: hidden; }
