/* Ghostlight additions on top of NobleUI demo1. Roboto is self-hosted (Apache-2.0, from @fontsource/roboto 5.1.0). */
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url(roboto-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url(roboto-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url(roboto-latin-700-normal.woff2) format('woff2'); }
[data-bs-theme=light] { --bs-app-bg: #f9fafb; }
[data-bs-theme=dark] { --bs-app-bg: #070d19; }
#gl-theme-toggle { border: 0; padding: 0 .5rem; color: inherit; }
.draft-body { white-space: pre-wrap; overflow-wrap: anywhere; }
.card-link { color: inherit; text-decoration: none; }
.sidebar-brand span, .nobleui-logo span { color: var(--bs-primary); font-weight: 300; }
.nobleui-logo { font-weight: 900; font-size: 25px; color: var(--bs-body-color); }
.gl-logo-mini { font-weight: 900; font-size: 22px; color: var(--bs-primary); }
.gl-avatar { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(101,113,255,.15); color: #6571ff; font-weight: 700; font-size: 13px; }
.gl-avatar-lg { width: 80px; height: 80px; font-size: 32px; }
.auth-side-wrapper.gl-auth-side { background: #120a3d url(signin-stage.jpg) center / cover no-repeat; height: 100%; min-height: 260px; }
.badge.bg-green-lt { background: rgba(5,163,74,.15); color: #05a34a; }
.badge.bg-red-lt { background: rgba(255,51,102,.15); color: #ff3366; }
.badge.bg-orange-lt { background: rgba(253,126,20,.15); color: #d0650c; }
.badge.bg-yellow-lt { background: rgba(251,188,6,.18); color: #9a7400; }
.badge.bg-blue-lt { background: rgba(101,113,255,.15); color: #6571ff; }
.badge.bg-secondary-lt { background: rgba(121,135,161,.15); color: #7987a1; }
.card-header .card-title { margin-bottom: 0; }
.sign-in { max-width: 100%; border: 0; box-shadow: none; }
.sign-in .card-body { padding: 0; }
/* Lists: Script rows, Prompter and Findings cards. 16px row padding, nothing overlaps at any width. */
.gl-filters { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: 1rem; }
.gl-filters .form-select, .gl-filters .form-control { width: auto; min-width: 9rem; max-width: 100%; }
.gl-filters .gl-search { flex: 1 1 16rem; max-width: 28rem; }
.gl-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; padding: .5rem 0; }
.gl-bulk { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.gl-bulk-note { width: 14rem; max-width: 100%; }
.gl-pager { display: flex; gap: .75rem; align-items: center; margin-left: auto; }
.gl-list { border-top: 1px solid var(--bs-border-color); }
.gl-row { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 16px; border-bottom: 1px solid var(--bs-border-color); }
.gl-row--open { background: rgba(101, 113, 255, .04); }
.gl-row-check { margin-top: 4px; }
.gl-row-icon { color: var(--bs-secondary); margin-top: 2px; }
.gl-row-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; color: inherit; text-decoration: none; }
.gl-row-title { font-weight: 500; color: var(--bs-body-color); overflow-wrap: anywhere; }
.gl-row-sub { color: var(--bs-secondary-color, #7987a1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gl-row-meta { font-size: 12px; color: var(--bs-secondary-color, #7987a1); overflow-wrap: anywhere; }
.gl-row-pill { justify-self: end; white-space: nowrap; }
@media (max-width: 575px) { .gl-row { grid-template-columns: auto minmax(0, 1fr) auto; } .gl-row-icon { display: none; } }
.gl-note-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.gl-note-q { font-weight: 700; margin: .25rem 0 .5rem; overflow-wrap: anywhere; }
.gl-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.gl-note-a summary { list-style: none; cursor: pointer; }
.gl-note-a summary::-webkit-details-marker { display: none; }
.gl-clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-wrap; overflow-wrap: anywhere; }
.gl-clamp-2 { -webkit-line-clamp: 2; }
.gl-more { display: inline-block; margin-top: .25rem; color: var(--bs-primary); font-size: 13px; }
.gl-note-a[open] .gl-clamp, .gl-note-a[open] .gl-more { display: none; }
.gl-full { white-space: pre-wrap; overflow-wrap: anywhere; }
.gl-panel { margin-top: .75rem; }
.gl-panel-form { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; }
.gl-panel-form .form-control { flex: 1 1 14rem; max-width: 26rem; }
.gl-company { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Every page: tables scroll inside their card, long words wrap. */
.page-content .table td, .page-content .table th { white-space: normal; overflow-wrap: anywhere; }
.page-content .table-responsive { overflow-x: auto; }
.page-content .card { min-width: 0; }
.page-content .alert { padding: .5rem .75rem; margin-bottom: .75rem; font-size: 13px; }
/* Long badges wrap instead of pushing the page wider (Integrations inventory at 390px). */
.page-content .badge { white-space: normal; text-align: left; max-width: 100%; overflow-wrap: anywhere; }
