/* Shared layout for Labs pages. Keep Bootstrap and EEPROM colour semantics. */
html { font-size: 110%; }
:root {
  --bs-body-font-family: 'Play', 'Open Sans', Helvetica, sans-serif;
  --bs-font-sans-serif: 'Play', 'Open Sans', Helvetica, sans-serif;
  --labs-purple: #6b4d9d;
  --labs-purple-dark: #4c3279;
  --labs-border: #ded9e8;
  --bs-primary: #6b4d9d;
  --bs-primary-rgb: 107, 77, 157;
  --bs-link-color: #6b4d9d;
  --bs-link-color-rgb: 107, 77, 157;
  --bs-link-hover-color: #4c3279;
  --bs-link-hover-color-rgb: 76, 50, 121;
  --bs-border-color: #ded9e8;
}
body { font-family: var(--bs-body-font-family); font-size: .875rem; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font-family: inherit; }
a { text-decoration: none; text-underline-offset: .15em; }
a:hover { text-decoration: underline; }
.badge-tag, .badge-tag:hover, .nav-link:hover, .dropdown-item:hover, .btn:hover, .navbar-brand:hover { text-decoration: none; }
.btn { --bs-btn-font-size: .875rem; --bs-btn-border-radius: .4rem; --bs-btn-padding-y: .45rem; --bs-btn-padding-x: .8rem; }
.btn-primary { --bs-btn-bg: #6b4d9d; --bs-btn-border-color: #6b4d9d; --bs-btn-hover-bg: #594083; --bs-btn-hover-border-color: #594083; --bs-btn-active-bg: #4c3279; --bs-btn-active-border-color: #4c3279; --bs-btn-disabled-bg: #6b4d9d; --bs-btn-disabled-border-color: #6b4d9d; --bs-btn-focus-shadow-rgb: 107,77,157; }
.btn-outline-primary, .btn-outline-secondary { --bs-btn-color: #6b4d9d; --bs-btn-border-color: #a99abd; --bs-btn-hover-bg: #6b4d9d; --bs-btn-hover-border-color: #6b4d9d; --bs-btn-active-bg: #4c3279; --bs-btn-active-border-color: #4c3279; --bs-btn-disabled-color: #8b7aab; --bs-btn-disabled-border-color: #bdb2cd; --bs-btn-focus-shadow-rgb: 107,77,157; }
.btn-secondary { --bs-btn-bg: #706480; --bs-btn-border-color: #706480; --bs-btn-hover-bg: #5b4b70; --bs-btn-hover-border-color: #5b4b70; --bs-btn-active-bg: #4c3279; --bs-btn-active-border-color: #4c3279; }
.btn-link { --bs-btn-color: #6b4d9d; --bs-btn-hover-color: #4c3279; }
.large-blue-button { background-color: #6b4d9d !important; border-color: #6b4d9d; }
.large-blue-button:hover { background-color: #4c3279 !important; }
.form-control, .form-select { font-size: .875rem; border-color: #d4cddd; border-radius: .4rem; }
.form-control:focus, .form-select:focus { border-color: #9c83bf; box-shadow: 0 0 0 .2rem rgba(107,77,157,.14); }
.nav { --bs-nav-link-color: #6b4d9d; --bs-nav-link-hover-color: #4c3279; }
.dropdown-menu { --bs-dropdown-font-size: 1rem; --bs-dropdown-link-color: #37323f; --bs-dropdown-link-hover-color: #6b4d9d; --bs-dropdown-link-hover-bg: #f1edf7; --bs-dropdown-link-active-color: #4c3279; --bs-dropdown-link-active-bg: #e8e1f2; border-color: #ded9e8; border-radius: .55rem; font-size: var(--bs-dropdown-font-size); box-shadow: 0 .6rem 1.6rem rgba(49,36,67,.12); }
.dropdown-menu { width: max-content; max-width: calc(100vw - 2rem); }
.dropdown-item { padding: .4rem .65rem; line-height: 1.35; }
.dropdown-item > i, .dropdown-item > svg { color: #6b4d9d; }
.dropdown-item:focus-visible { outline: 2px solid #9c83bf; outline-offset: -2px; }
.input-group > .btn { white-space: nowrap; }
.modal-content { border: 1px solid #ded9e8; border-radius: .75rem; box-shadow: 0 1rem 3rem rgba(41,29,60,.2); }
.modal-header, .modal-footer { padding: 1rem 1.25rem; }
.modal-body { padding: 1.25rem; }
.modal-title { color: #443456; font-weight: 600; }
.labs-app { line-height: 1.55; }
.labs-header { padding: .65rem max(1.5rem, calc((100% - 1600px) / 2 + 1.5rem)); }
.labs-header .navbar-brand { align-self: flex-start; padding-top: .4rem; }
.labs-header .navbar-collapse, .labs-header .navbar-nav { min-width: 0; }
.labs-header .navbar-nav { flex-wrap: wrap; }
.labs-header .navbar-brand { order: 0; margin-right: auto; }
.labs-header .navbar-toggler { order: 2; margin-left: .5rem; }
.labs-header .navbar-collapse { order: 3; }
.labs-header .labs-search-toggle { order: 1; flex: 0 0 auto; min-height: 2.375rem; margin-left: auto !important; white-space: nowrap; }
.labs-header #TagSearchCount { color: inherit; border: 1px solid currentColor; background: transparent; font-size: .7rem; }
.labs-header .nav-link { padding: .55rem .65rem; }
.labs-header .navbar-nav .nav-link { color: #e0d6ee; }
.labs-header .navbar-nav .nav-link:hover, .labs-header .navbar-nav .nav-link:focus { color: #fff; }
.labs-header .dropdown-menu { min-width: 14rem; max-width: min(20rem, calc(100vw - 2rem)); max-height: min(75vh, 36rem); overflow-y: auto; padding: .35rem; }
.labs-header .dropdown-item { border-radius: .3rem; }
.labs-header .dropdown-item > i { display: inline-block; width: 1.1rem; margin-right: .35rem; text-align: center; }
.labs-header .dropdown-header { padding: .35rem .65rem; font-size: .875rem; font-weight: 600; color: #83758e; }
.labs-header .labs-menu-email { max-width: min(28rem, calc(100vw - 4rem)); padding-top: 0; font-weight: 400; white-space: normal; overflow-wrap: anywhere; }
#AccountCountryFlag { box-sizing: content-box; border: 1px solid #b7bac2; border-radius: .2rem; background-size: cover; overflow: hidden; vertical-align: -.1em; }
.labs-license-status { max-width: 22rem; padding: .35rem .55rem; border: 1px solid currentColor; border-radius: .35rem; background: transparent; font-size: .875rem; font-weight: 700; line-height: 1.35; white-space: normal; text-align: left; }
.labs-license-status.is-active { color: #23704a; }
.labs-license-status.is-expired, .labs-license-status.is-unavailable { color: #a43443; }
.labs-license-status.is-exhausted { color: #8a5b0a; }
#licenses-table > tbody > tr.is-expired { --bs-table-bg: #fff0f1; --bs-table-hover-bg: #fde4e7; }
#licenses-table > tbody > tr.is-expiring { --bs-table-bg: #fff9e8; --bs-table-hover-bg: #fff2ce; }
.labs-header .dropdown-divider { margin: .3rem .15rem; }
.labs-header .dropdown-item { white-space: normal; overflow-wrap: anywhere; }
.labs-header .dropdown-menu { max-width: calc(100vw - 2rem); }
.labs-header .labs-quick-search { display: flex; flex-wrap: nowrap; width: 100%; gap: .5rem; }
.labs-quick-search .bootstrap-tagsinput {
  position: relative !important;
  inset: auto;
  flex: 1 1 0;
  width: 0;
  min-width: 0;
  max-width: none !important;
  min-height: 38px;
  margin: 0;
  padding: .4rem .5rem;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.labs-quick-search .bootstrap-tagsinput input { max-width: 100%; }
.labs-quick-search .bootstrap-tagsinput .tag { display: inline-block; max-width: 100%; white-space: normal; }
.labs-quick-search > .form-control { flex: 1 1 0; width: 0; min-width: 0; margin: 0 !important; }
.labs-quick-search > .btn { flex: 0 0 auto; margin: 0 !important; align-self: flex-start; }
.labs-quick-search .twitter-typeahead { max-width: 100%; }
.labs-quick-search .tt-menu { min-width: min(220px, calc(100vw - 3rem)); max-width: min(400px, calc(100vw - 2rem)); }
.labs-quick-search .tt-suggestion { padding: .4rem .65rem; white-space: normal; overflow-wrap: anywhere; }
.labs-tag-search .modal-header { position: relative; z-index: 1; }
.labs-search-mode { min-width: 0; max-width: calc(100% - 2rem); }
.labs-search-mode-toggle { padding: .1rem 0; border: 0; text-align: left; white-space: normal; }
.labs-search-mode-toggle:hover, .labs-search-mode-toggle:focus { color: var(--labs-purple); }
.labs-search-mode-toggle:focus-visible { outline: 2px solid #9c83bf; outline-offset: 4px; }
.labs-search-mode .dropdown-menu { min-width: 15rem; max-width: calc(100vw - 3.5rem); }
.labs-search-mode .dropdown-item { white-space: normal; overflow-wrap: anywhere; }
.labs-search-help { padding: 1rem; border: 1px solid var(--labs-border); border-radius: .5rem; background: #f7f5fa; }
.labs-search-help p { margin-bottom: .65rem; }
.labs-search-help li + li { margin-top: .5rem; }
.labs-search-help code { color: var(--labs-purple-dark); overflow-wrap: anywhere; }
.labs-tag-search .bootstrap-tagsinput { position: relative !important; z-index: auto; inset: auto; display: block; width: 100%; min-width: 0; max-width: none !important; min-height: 145px; padding: .6rem; margin: 0; line-height: 1.8; border: 1px solid #d4cddd; border-radius: .5rem; box-shadow: none; }
.labs-tag-search .bootstrap-tagsinput:focus-within { border-color: #9c83bf; box-shadow: 0 0 0 .2rem rgba(107,77,157,.14); }
.labs-tag-search .bootstrap-tagsinput .tag { display: inline-block; max-width: 100%; padding: .4rem .5rem; margin: .15rem; border-radius: .35rem; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
.labs-tag-search .twitter-typeahead { display: block !important; width: 100%; }
.labs-tag-search .twitter-typeahead input { width: 100% !important; min-height: 36px; padding: .3rem; font-size: 1rem; }
.labs-tag-search .tt-menu { position: static !important; width: 100%; min-width: 0; max-height: 12rem; overflow-y: auto; margin-top: .35rem; padding: .25rem; border: 1px solid #ded9e8; border-radius: .4rem; box-shadow: none; }
.labs-tag-search .tt-suggestion { padding: .45rem .65rem; color: #6b4d9d; border-radius: .3rem; white-space: normal; overflow-wrap: anywhere; }
.labs-tag-search .tt-suggestion:hover, .labs-tag-search .tt-cursor { color: #4c3279; background: #f1edf7; }
.labs-app .badge-tag,
.labs-app .bootstrap-tagsinput .tag {
  background: transparent !important;
  border: 1px solid #786ea9;
  color: #65558e !important;
}
.labs-app .badge-tag:hover,
.labs-app .badge-tag:focus-visible,
.labs-app .bootstrap-tagsinput .tag:hover {
  background: transparent !important;
  border-color: #50467d;
  color: #50467d !important;
}
.labs-app .bootstrap-tagsinput .tag [data-role="remove"]:after { color: inherit; }
.labs-page { width: 100%; max-width: 1600px; margin: 0 auto; padding: 1.25rem 1.5rem 2.5rem; }
.labs-account-page { max-width: 1200px; }
.labs-page [class*="col-"] { min-width: 0; }
.labs-app .labs-breadcrumb-nav { width: 100%; margin: 0; background: #f3f3f7; border-bottom: 1px solid #e5e4eb; text-align: left; }
.labs-app .labs-breadcrumb-nav > .breadcrumb { --bs-breadcrumb-divider: '/'; display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: baseline; width: 100%; max-width: 1600px; margin: 0 auto; padding: .55rem 1.5rem; row-gap: .2rem; background: transparent; border-radius: 0; font-size: .875rem; line-height: 1.5; text-align: left; }
.labs-app .labs-breadcrumb-nav .breadcrumb-item { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.labs-app .labs-breadcrumb-nav .breadcrumb-item.active { color: #737180; }
.labs-page h2, .labs-page h3 { line-height: 1.3; overflow-wrap: anywhere; }
.labs-page h3 { font-size: 1.5rem; margin-bottom: .85rem; }
.labs-page .card { border-color: #e1e0e9; border-radius: .5rem; margin-bottom: 1.25rem; }
.labs-page .card-body { padding: 1.5rem; }
.labs-page p { line-height: 1.7; }
.labs-page .btn { white-space: normal; }
.labs-page .nav-tabs { gap: .25rem 0; }
.labs-code-page .nav-tabs, .labs-library-page .nav-tabs { margin-bottom: 1.1rem; border-color: #ded9e8; }
.labs-code-page .nav-tabs .nav-link, .labs-library-page .nav-tabs .nav-link { padding: .65rem .8rem; border-radius: .4rem .4rem 0 0; font-size: .875rem; }
.labs-code-page .nav-tabs .nav-link.active, .labs-library-page .nav-tabs .nav-link.active { color: #5b3d86; font-weight: 600; background: #f7f4fb; border-color: #ded9e8 #ded9e8 #f7f4fb; }
.labs-page .nav-tabs .dropdown-menu { max-width: calc(100vw - 2rem); }
.labs-page .nav-tabs .dropdown-item { white-space: normal; overflow-wrap: anywhere; }
.labs-filter-panel { background: #f3f3f7; border: 1px solid #e1e0e9; border-radius: .5rem; padding: 1rem 1rem 0; margin-bottom: 1rem; }
.labs-list-pagination, .labs-list-sort { flex: 0 0 auto; width: auto; max-width: 100%; }
.labs-list-pagination { flex-grow: 1; }
.labs-list-sort { margin-bottom: 1rem; }
.labs-list-sort .dropdown-menu { right: 0; left: auto; }
.labs-table-scroll { position: relative; max-width: 100%; margin-bottom: 1rem; border-radius: .25rem; }
.labs-table-scroll > .table { margin-bottom: 0; }
.labs-page .table th, .labs-page .table td { padding: .65rem .8rem; vertical-align: middle; }
.labs-page .table { --bs-table-striped-bg: rgba(107,77,157,.025); --bs-table-hover-bg: #f1edf7; color: #37323f; font-size: .875rem; }
.labs-page .codes-list th { font-weight: 600; }
.labs-page .table .table-row > td { transition: background-color .12s ease; }
.labs-page .table tr:first-child > th { background-color: #f3f3f7; color: #49445e; }
.labs-page .codes-list { min-width: 720px; }
.labs-library-page .badge { white-space: normal; overflow-wrap: anywhere; }
.labs-page .codes-list .table-row { cursor: pointer; }
.labs-page .codes-list .table-row:hover > td { background-color: #eeeaf8 !important; }
.labs-account-page .table { overflow-wrap: anywhere; }
.labs-account-page .labs-license-table { min-width: 640px; }
.labs-users-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.labs-users-heading h3 { margin: 0 0 .3rem; }
.labs-users-heading p { margin: 0; color: #737180; }
.labs-users-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.labs-users-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; padding-bottom: 1rem; }
.labs-users-sort { flex: 0 1 auto; min-width: 0; }
.labs-users-search { flex: 1 1 24rem; min-width: 0; }
.labs-users-toolbar .form-label { display: block; margin-bottom: .4rem; font-size: .8rem; color: #655777; }
.labs-users-toolbar .btn, .labs-users-toolbar .form-control { min-height: 40px; }
.labs-users-toolbar .dropdown-toggle { max-width: 100%; }
.labs-users-toolbar .input-group { flex-wrap: nowrap; }
.labs-users-table { min-width: 1050px; }
.labs-users-table th { white-space: nowrap; font-weight: 700; }
.labs-users-table .labs-user-name { min-width: 13rem; max-width: 22rem; overflow-wrap: anywhere; }
.labs-users-table .labs-user-date { white-space: nowrap; font-variant-numeric: tabular-nums; }
.labs-users-table .labs-user-time { display: block; color: #737180; font-size: .8rem; }
.labs-users-table .labs-user-ip { white-space: nowrap; font: .8rem Consolas, monospace; color: #737180; }
.labs-users-table .badge { padding: .4rem .5rem; font-size: .7rem; font-weight: 700; }
.labs-users-table .labs-user-status { white-space: nowrap; font-size: .8rem; }
.labs-users-page .labs-table-scroll { overflow-y: hidden; border: 1px solid #e1e0e9; border-radius: .5rem; }
.labs-user-page { overflow-wrap: anywhere; }
.labs-user-identity { flex: 1 1 20rem; min-width: 0; }
.labs-user-summary { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; }
.labs-user-summary .badge { font-size: .7rem; padding: .4rem .5rem; }
.labs-user-tabs { margin-bottom: 1.5rem; }
.labs-user-tabs .nav-link { padding: .65rem .8rem; border-radius: .4rem .4rem 0 0; }
.labs-user-tabs .nav-link.active { color: #5b3d86; background: #f7f4fb; border-color: #ded9e8 #ded9e8 #f7f4fb; font-weight: 700; }
.labs-user-page .labs-user-card { margin-bottom: 0; }
.labs-user-card + .labs-user-card { margin-top: 1.25rem; }
.labs-user-card .card-header { padding: 1rem 1.25rem; background: #f3f3f7; border-color: #e1e0e9; }
.labs-user-card h4 { margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.4; color: #49445e; }
.labs-user-card .card-body { padding: 1.25rem; }
.labs-user-card .labs-table-scroll { margin: 0; overflow-y: hidden; }
.labs-user-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; }
.labs-user-card-heading > div { flex: 1 1 16rem; min-width: 0; }
.labs-user-card-heading h4 + p { margin-top: .5rem; }
.labs-user-count { display: inline-block; margin-left: .35rem; padding: .15rem .45rem; border: 1px solid #d4cddd; border-radius: .35rem; color: #6b4d9d; font-size: .8rem; }
.labs-user-facts { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: .75rem 1rem; margin: 0; }
.labs-user-facts dt { margin: 0; font-weight: 400; color: #737180; }
.labs-user-facts dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.labs-user-facts .badge { white-space: normal; font-size: .75rem; font-weight: 400; text-align: left; }
.labs-user-page .labs-user-ip { font-family: Consolas, monospace; font-size: .8rem; }
.labs-user-page .labs-user-date { white-space: nowrap; font-variant-numeric: tabular-nums; }
.labs-user-page .labs-user-time { display: block; font-size: .8rem; color: #737180; }
.labs-user-license-table { min-width: 610px; }
.labs-user-controls, .labs-user-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.labs-user-form-actions { margin-top: 1.5rem; }
.labs-user-danger { border-color: #e8d9df !important; }
.labs-user-empty { padding: 1.5rem .5rem; color: #737180; text-align: center; }
.labs-user-empty > i { display: block; margin-bottom: .75rem; font-size: 1.5rem; color: #8b7aab; }
.labs-user-empty p { margin: 0; }
.labs-user-modal { --bs-modal-width: 36rem; }
.labs-license-presets { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .75rem; }
.labs-parser-card .card-header { padding: 1rem 1.25rem; background: #f3f3f7; }
.labs-parser-card h4 { margin: 0; color: #49445e; font-size: 1rem; font-weight: 700; }
.labs-parser-hex { min-height: 6rem; max-height: 18rem; font-family: Consolas, monospace; resize: vertical; }
.labs-parser-hash { display: flex; flex-wrap: wrap; gap: .35rem .75rem; margin-top: .75rem; color: #737180; font-size: .8rem; }
.labs-parser-hash code { color: #655777; overflow-wrap: anywhere; }
.labs-parser-facts { display: grid; grid-template-columns: minmax(0, 12rem) minmax(0, 1fr); gap: .5rem 1rem; margin: 0; }
.labs-parser-facts dt { font-weight: 400; color: #737180; }
.labs-parser-facts dd { min-width: 0; margin: 0; }
.labs-parser-checks { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1rem; }
.labs-parser-checks:empty { display: none; }
.labs-parser-checksum { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; }
.labs-parser-checksum code { color: #655777; }
.labs-cache-table { min-width: 850px; }
.labs-cache-date { white-space: nowrap; }
.labs-cache-detected { min-width: 12rem; overflow-wrap: anywhere; }
.labs-cache-hex { min-width: 15rem; max-width: 28rem; font-family: Consolas, monospace; overflow-wrap: anywhere; }
.labs-passwords-page .table { min-width: 640px; }
.labs-empty-state { padding: 2rem; margin-bottom: 1rem; border: 1px dashed #c7c2d6; border-radius: .5rem; background: #f7f6fb; }
.labs-code-page { overflow-wrap: anywhere; }
.labs-code-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem 1rem; margin-bottom: 1.25rem; padding: .75rem; border: 1px solid #ded9e8; border-radius: .5rem; background: #f3f3f7; }
.labs-code-toolbar-main, .labs-code-toolbar-group { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; min-width: 0; }
.labs-code-view-label { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .6rem; color: #5b3d86; font-size: .875rem; font-weight: 700; white-space: nowrap; }
.labs-code-toolbar .btn { min-height: 2.3rem; }
.labs-code-toolbar-context { padding-left: .75rem; border-left: 1px solid #d4cddd; }
.labs-code-toolbar-count { display: inline-block; padding: 0 .3rem; border: 1px solid currentColor; border-radius: .25rem; font-size: .75rem; }
.labs-code-toolbar .dropdown-menu { min-width: 14rem; max-width: min(24rem, calc(100vw - 3rem)); padding: .35rem; }
.labs-code-toolbar .dropdown-item { border-radius: .3rem; white-space: normal; overflow-wrap: anywhere; }
.labs-code-toolbar .dropdown-item > i { display: inline-block; width: 1.1rem; margin-right: .35rem; text-align: center; }
.labs-code-card { min-width: 0; margin-bottom: 1.25rem; border: 1px solid #ded9e8; border-radius: .5rem; background: #fff; }
.labs-code-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem .75rem; min-height: 3.6rem; padding: .65rem .85rem; border-bottom: 1px solid #ded9e8; border-radius: .5rem .5rem 0 0; background: #f3f3f7; }
.labs-code-card-heading h4 { min-width: 0; margin: 0; color: #37323f; font-size: 1rem; line-height: 1.4; }
.labs-code-card-heading h4 > i { margin-right: .3rem; color: #6b4d9d; }
.labs-code-card .btn { min-height: 2.3rem; white-space: normal; }
.labs-code-card-body { padding: 1rem; }
.labs-code-page .labs-code-facts { width: 100%; margin: 0; table-layout: fixed; }
.labs-code-page .labs-code-facts > tbody > tr > :first-child { width: 32%; background: transparent; color: #70677d; font-weight: 400; }
.labs-code-page .labs-code-facts > tbody > tr > * { padding: .7rem 1rem; border-color: #ebe7f0; vertical-align: top; overflow-wrap: anywhere; }
.labs-code-page .labs-code-facts .labs-code-identity { font-weight: 700; color: #37323f; }
.labs-code-checksum-value { display: inline-block; margin-right: .4rem; font-family: Consolas, monospace; font-weight: 700; }
.labs-code-compatibility { padding: .85rem 1rem 1rem; }
.labs-code-compatibility-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .75rem; }
.labs-code-compatibility-heading > strong { color: #70677d; font-weight: 400; }
.labs-code-compatibility-list { display: flex; flex-wrap: wrap; gap: .5rem .85rem; }
.labs-code-compatible { min-width: 0; color: #23704a; }
.labs-code-compatible > .fa { flex: none; }
.labs-code-compatible > span { min-width: 0; overflow-wrap: anywhere; }
.labs-code-compatible,
.labs-compatibility-badge { display: inline-flex; align-items: center; gap: .35rem; max-width: 100%; padding: .35rem .6rem; border: 1px solid currentColor; border-radius: .35rem; background: transparent; font-size: .8rem; font-weight: 600; line-height: 1.35; white-space: normal; vertical-align: middle; }
.labs-code-empty, .labs-code-tags #tags-list:empty::before, .labs-code-remark:empty::before { margin: 0; color: #777080; }
.labs-code-tags #tags-list { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .5rem; line-height: 1.4; }
.labs-code-tags #tags-list:empty::before, .labs-code-remark:empty::before { content: attr(data-empty); }
.labs-code-page .labs-code-tags #tags-list .badge { display: inline-flex; align-items: center; min-width: 0; min-height: 2.3rem; max-width: 100%; margin: 0; padding: .45rem .65rem; border-radius: .35rem; font-size: .875rem; font-weight: 400; line-height: 1.4; text-align: left; text-decoration: none; white-space: normal; overflow-wrap: anywhere; }
.labs-code-remark { white-space: pre-line; overflow-wrap: anywhere; }
@media (max-width: 575.98px) {
  .labs-code-page .labs-code-facts > tbody > tr { display: grid; grid-template-columns: minmax(0, 1fr); padding: .65rem .85rem; border-bottom: 1px solid #ebe7f0; }
  .labs-code-page .labs-code-facts > tbody > tr > * { display: block; width: 100%; padding: 0; border: 0; }
  .labs-code-page .labs-code-facts > tbody > tr > :first-child { width: 100%; margin-bottom: .2rem; }
  .labs-code-card-heading, .labs-code-compatibility, .labs-code-card-body { padding-left: .85rem; padding-right: .85rem; }
}
.labs-shared-author { display: inline-block; max-width: 100%; overflow-wrap: anywhere; }
.labs-shared-email { color: #655777; }
.labs-code-page #tags-list .badge,
.labs-library-page .badge-tag,
.labs-library-page .labs-search-terms .badge { display: inline-block; max-width: 100%; margin: .25rem .35rem .25rem 0; vertical-align: middle; white-space: normal; overflow-wrap: anywhere; }
.labs-code-page .labs-byte-grid { min-width: 620px; table-layout: fixed; font: .8rem/1.5 Consolas, monospace; }
.labs-code-page .labs-byte-grid th, .labs-code-page .labs-byte-grid td { padding: .4rem .25rem; white-space: nowrap; }
.labs-code-page .labs-byte-grid { --bs-table-bg: transparent; --bs-table-accent-bg: transparent; }
.labs-code-page .labs-byte-grid .labs-grid-label { width: 62px; }
.labs-code-page .labs-byte-grid th { background: #f3f1f7; color: #655777; user-select: none; }
.labs-code-page .labs-byte-grid td.bg-vendorname { --bs-table-bg: #fcf8e3; }
.labs-code-page .labs-byte-grid td.bg-partnumber { --bs-table-bg: #d9edf7; }
.labs-code-page .labs-byte-grid td.bg-serialnumber { --bs-table-bg: #f2dede; }
.labs-code-page .labs-byte-grid td.bg-vendordate { --bs-table-bg: #e6c9c9; }
.labs-code-page .labs-byte-grid td.bg-checksum-ok { --bs-table-bg: #c8efc5; }
.labs-code-page .labs-byte-grid td.bg-vendorspecific { --bs-table-bg: rgba(230,233,236,.25); }
.labs-byte-range { color: #70677d; font: .8rem/1.5 Consolas, monospace; white-space: nowrap; }
.labs-byte-range > span { font-family: Play, sans-serif; }
.labs-byte-card .labs-byte-scroll { margin: 0; border-radius: 0 0 .5rem .5rem; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-color: #aaa0be #f3f3f7; scrollbar-width: thin; }
.labs-byte-card caption.visually-hidden { top: 0; left: 0; }
.labs-byte-card .labs-byte-scroll:focus-visible { outline-offset: -3px; }
.labs-code-page .labs-byte-card .labs-byte-grid { width: 100%; min-width: 34rem; margin: 0; border-collapse: separate; border-spacing: 0; font: .8rem/1.5 Consolas, monospace; }
.labs-code-page .labs-byte-card .labs-byte-grid th, .labs-code-page .labs-byte-card .labs-byte-grid td { padding: .45rem .2rem; border: 0; border-right: 1px solid #e5e1ec; border-bottom: 1px solid #e5e1ec; vertical-align: middle; white-space: nowrap; }
.labs-code-page .labs-byte-card .labs-byte-grid .labs-grid-label { width: 3.5rem; font: .75rem/1.6 Play, sans-serif; }
.labs-code-page .labs-byte-card .labs-byte-grid th { background: #f3f1f7; color: #655777; }
.labs-code-page .labs-byte-card .labs-byte-grid tr > :first-child { position: sticky; left: 0; z-index: 1; box-shadow: 1px 0 0 #ded9e8; }
.labs-code-page .labs-byte-card .labs-byte-grid thead tr > :first-child { z-index: 2; }
.labs-code-page .labs-byte-card .labs-byte-grid tr > :last-child { border-right: 0; }
.labs-code-page .labs-byte-card .labs-byte-grid tbody tr:last-child > * { border-bottom: 0; }
.labs-code-page .labs-byte-card .labs-byte-grid td.bg-danger { --bs-table-bg: #f8d7da; background-color: #f8d7da !important; color: #842029; }
.labs-byte-scroll-hint { display: none; margin: 0; padding: .55rem .85rem; border-top: 1px solid #ded9e8; color: #70677d; font-size: .75rem; line-height: 1.5; }
@media (max-width: 575.98px) {
  .labs-byte-scroll-hint { display: block; }
  .labs-byte-card .labs-byte-scroll { border-radius: 0; }
}
.labs-code-page a.link-dark { color: #6b4d9d !important; }
.labs-code-page #sysMessages { min-width: 0 !important; max-width: calc(100vw - 2rem) !important; left: 1rem !important; margin: 0 !important; overflow-wrap: anywhere; }
.labs-users-table .badge, .labs-user-summary .badge, .labs-user-summary .labs-user-status, .labs-access-status { display: inline-flex; align-items: center; min-height: 1.85rem; padding: .25rem .5rem; border: 1px solid transparent; border-radius: .35rem; font-size: .8rem; font-weight: 600; line-height: 1.35; white-space: nowrap; }
.labs-users-table .labs-access-status, .labs-user-summary .labs-access-status { border-color: currentColor; }
.labs-role-customer { color: #294256; background-color: rgb(187 224 255); }
.labs-access-status { border-color: currentColor; }
.labs-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem 1rem; margin: 1rem 0; }
.card-footer > .labs-pagination { margin: .25rem 0; }
.labs-pagination-summary { color: #737180; font-size: .8rem; font-variant-numeric: tabular-nums; }
.labs-pagination .pagination { --bs-pagination-color: #6b4d9d; --bs-pagination-bg: transparent; --bs-pagination-border-color: #ded9e8; --bs-pagination-hover-color: #51357e; --bs-pagination-hover-bg: #f1edf7; --bs-pagination-hover-border-color: #b8aacd; --bs-pagination-focus-color: #51357e; --bs-pagination-focus-bg: #f1edf7; --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgb(107 77 157 / 20%); --bs-pagination-active-color: #fff; --bs-pagination-active-bg: #6b4d9d; --bs-pagination-active-border-color: #6b4d9d; --bs-pagination-disabled-color: #85818e; --bs-pagination-disabled-bg: transparent; --bs-pagination-disabled-border-color: #e5e1eb; flex-wrap: wrap; gap: .3rem; margin: 0; }
.labs-pagination .page-item .page-link { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-width: 2.25rem; min-height: 2.25rem; margin: 0; padding: .3rem .6rem; border-radius: .35rem; font-size: .875rem; font-variant-numeric: tabular-nums; line-height: 1.4; }
.labs-pagination .page-item.active .page-link { font-weight: 700; }
.labs-pagination .page-item.is-gap .page-link { min-width: 1.3rem; padding-left: .1rem; padding-right: .1rem; border-color: transparent; }
.labs-pagination .page-link:focus-visible { outline: 2px solid #6b4d9d; outline-offset: 2px; }
@media (max-width: 575.98px) { .labs-pagination { flex-direction: column; align-items: flex-start; } .labs-pagination .page-item .page-link { padding-left: .4rem; padding-right: .4rem; } }
.labs-upload-zone { display: block; width: 100%; padding: 2rem 1rem; margin-bottom: 1.25rem; border: 2px dashed #b9b4cf; border-radius: .65rem; background: #f7f6fb; color: #58516e; font: inherit; font-size: 1.15rem; text-align: center; cursor: pointer; }
.labs-upload-zone:hover, .labs-upload-zone:focus-visible { background: #efedf7; border-color: #786ea9; }
.labs-upload-icon { display: block; font-size: 3rem; margin-bottom: .5rem; }
.labs-upload-page .progress { height: .6rem; margin-bottom: 1rem; }
.labs-upload-page #files_arr { min-width: 0; overflow-wrap: anywhere; }
.labs-upload-help { max-width: 900px; margin-top: 1rem; }
.labs-home-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0; }
.labs-home-page #tags-list { display: flex; flex-wrap: wrap; gap: .5rem; }
.labs-home-page #tags-list .badge { padding: .5rem .65rem; white-space: normal; overflow-wrap: anywhere; }
.labs-footer { max-width: 1600px; margin: 0 auto; padding: 1.25rem 1.5rem; border-top: 1px solid #e5e4eb; color: #737180; overflow-wrap: anywhere; }
.labs-docs-page #fixed-sidebar { position: sticky; top: 1rem; margin-bottom: 1.25rem; }
.labs-docs-page #fixed-sidebar .list-group-item { padding: .55rem .8rem; overflow-wrap: anywhere; }
.labs-page a:focus-visible, .labs-page button:focus-visible, .labs-table-scroll:focus-visible, .labs-header a:focus-visible, .labs-header button:focus-visible { outline: 3px solid #9c8dcc; outline-offset: 3px; }
@media (min-width: 1200px) {
  .labs-header .navbar-brand { margin-right: 1rem; }
  .labs-header .navbar-collapse { order: 1; }
  .labs-header .labs-search-toggle { order: 2; }
  .labs-header .navbar-collapse { flex-wrap: wrap; align-items: flex-start; }
  .labs-header .labs-quick-search { margin-top: .5rem !important; }
}
@media (min-width: 1600px) {
  .labs-header .labs-quick-search { flex: 0 0 340px; width: 340px; margin-top: 0 !important; }
}
@media (max-width: 767.98px) {
  .labs-code-toolbar-main, .labs-code-toolbar-group, .labs-code-toolbar-manage { width: 100%; }
  .labs-code-toolbar-group { align-items: stretch; }
  .labs-code-view-label { padding: .15rem 0 .35rem; }
  .labs-code-toolbar-group > .dropdown, .labs-code-toolbar-group > .btn { flex: 1 1 8rem; min-width: 0; }
  .labs-code-toolbar .dropdown > .btn { width: 100%; height: 100%; }
  .labs-code-toolbar-context { padding-left: 0; border-left: 0; }
  .labs-code-toolbar .dropdown-item { min-height: 40px; }
  .labs-header { padding: .65rem 1rem; }
  .labs-auth-page > .container { padding-left: 1.5rem; padding-right: 1.5rem; }
  .labs-auth-page > .container > .row:first-child > [class*="col-"] { padding-top: 3rem !important; }
  .labs-page { padding: 1rem 1rem 2rem; }
  .labs-app .labs-breadcrumb-nav > .breadcrumb { padding: .5rem 1rem; }
  .labs-page .card-body { padding: 1rem; }
  .labs-page h3 { font-size: 1.3rem; }
  .labs-list-sort { width: 100%; text-align: left !important; }
  .labs-list-sort .dropdown-menu { left: 0; right: auto; }
  .labs-users-actions { width: 100%; }
  .labs-users-sort, .labs-users-search { flex-basis: 100%; }
  .labs-users-sort .dropdown-toggle { width: 100%; text-align: left; }
  .labs-footer { padding: 1rem; }
  .labs-header .dropdown-item { min-height: 40px; padding-top: .6rem; padding-bottom: .6rem; }
  .labs-tag-search .modal-body, .labs-tag-search .modal-header, .labs-tag-search .modal-footer { padding: 1rem; }
  .labs-tag-search .bootstrap-tagsinput { min-height: 120px; }
  .labs-page input.form-control, .labs-page select.form-control, .labs-page textarea.form-control, .labs-quick-search input { font-size: 1rem; }
}
@media (max-width: 575.98px) {
  .labs-user-facts { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .labs-user-facts dd:not(:last-child) { margin-bottom: .75rem; }
  .labs-user-card .card-header { padding: 1rem; }
  .labs-parser-card .card-header { padding: 1rem; }
  .labs-parser-facts { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .labs-parser-facts dd:not(:last-child) { margin-bottom: .75rem; }
}
/* Firmware inspection dialogs and attached fragments. */
.labs-tags-modal [hidden] { display: none !important; }
.labs-tags-modal .modal-body { overscroll-behavior: contain; }
.labs-tags-label { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; font-size: .85rem; margin-bottom: .6rem; }
.labs-tags-label [data-tags-count] { color: #778094; font-variant-numeric: tabular-nums; }
.labs-tags-chips { display: flex; flex-wrap: wrap; gap: .5rem; min-height: 2rem; align-items: flex-start; }
.labs-tag-chip, .labs-tag-suggestion { display: inline-flex; align-items: center; gap: .5rem; max-width: 100%; border-radius: .4rem; font-size: .75rem; line-height: 1.5; }
.labs-tag-chip { background: #eef0f7; color: #4e587e; padding: .3rem .35rem .3rem .65rem; }
.labs-tag-chip > span { min-width: 0; overflow-wrap: anywhere; }
.labs-tag-chip button { flex-shrink: 0; border: 0; background: transparent; color: inherit; font-size: 1.1rem; line-height: 1; border-radius: .2rem; padding: .15rem .3rem; }
.labs-tag-chip button:hover { background: #dce0ef; }
.labs-tag-suggestion { border: 1px solid #dde1e9; background: #fff; color: #68738a; padding: .4rem .65rem; text-align: left; overflow-wrap: anywhere; }
.labs-tag-suggestion:hover { background: #f1f4f9; border-color: #aeb8cd; }
.labs-tags-modal .modal-body .form-label { font-size: .85rem; }
.labs-compatibility-modal .modal-dialog { max-width: 48rem; }
.labs-compatibility-modal .modal-body { overscroll-behavior: contain; }
.labs-compatibility-identity { display: grid; grid-template-columns: minmax(0, 1fr); gap: .35rem; margin-bottom: 1rem; overflow-wrap: anywhere; }
.labs-compatibility-identity code { color: #6b7280; font-size: .73rem; white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.labs-compatibility-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; padding: .75rem 1rem; background: #f2f4f8; border-radius: .5rem; font-size: .85rem; }
.labs-compatibility-summary span { color: #6b7280; }
.labs-compatibility-results { padding: 0; margin: .75rem 0 0; list-style: none; }
.labs-compatibility-result { display: flex; justify-content: space-between; align-items: center; gap: .5rem 1rem; padding: .85rem 1rem; border-bottom: 1px solid #e5e7eb; font-size: .85rem; overflow-wrap: anywhere; }
.labs-compatibility-result > div { min-width: 0; }
.labs-compatibility-status { flex-shrink: 0; color: #8a909b; font-size: .78rem; }
.labs-compatibility-result.is-detected { background: #eef8f2; border-radius: .4rem; }
.labs-compatibility-result.is-detected .labs-compatibility-status { color: #23704a; font-weight: 600; }
.labs-code-fragments { margin: 1.5rem 0; scroll-margin-top: 1rem; }
.labs-fragment-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; margin-bottom: .85rem; }
.labs-fragment-heading h4 { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; color: #443456; font-size: 1.1rem; font-weight: 600; }
.labs-fragment-heading h4 > i { color: #6b4d9d; }
.labs-fragment-heading p { margin: .35rem 0 0; color: #62606c; font-size: .8rem; }
.labs-fragment-heading-actions { display: flex; gap: .5rem; }
.labs-fragment-heading-actions [data-fragment-refresh] { min-width: 2.3rem; }
.labs-fragment-count { padding: .1rem .45rem; border-radius: .35rem; background: #eeeaf5; color: #51476f; font-size: .8rem; font-variant-numeric: tabular-nums; }
.labs-fragment-list-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-bottom: .8rem; }
.labs-fragment-search { flex: 1 1 17rem; max-width: 24rem; }
.labs-fragment-search .form-control { min-height: 2.3rem; }
.labs-fragment-bulk { display: flex; flex-wrap: wrap; gap: .4rem; }
.labs-fragment-search-status { margin-left: auto; color: #62606c; font-size: .8rem; }
.labs-fragment-notice:empty { display: none; }
.labs-fragment-notice:not(:empty) { margin-bottom: .75rem; padding: .65rem .8rem; border: 1px solid #bbd8cb; border-radius: .4rem; background: #f0f7f3; color: #24664b; font-size: .85rem; }
.labs-fragment-notice[data-state="loading"] { border-color: #ded9e8; color: #62606c; background: #f7f5fa; }
.labs-fragment-notice[data-state="error"] { border-color: #e4bdc3; color: #a43443; background: #fff0f1; }
.labs-code-fragment { border: 1px solid #ded9e8; border-radius: .65rem; margin: .65rem 0; background: #fff; scroll-margin-top: 1rem; }
.labs-code-fragment > summary { display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; list-style: none; cursor: pointer; border-radius: .65rem; }
.labs-code-fragment > summary:hover { background: #f7f5fa; }
.labs-code-fragment > summary::-webkit-details-marker { display: none; }
.labs-code-fragment > summary::after { content: ''; width: .5rem; height: .5rem; border-right: 2px solid #6b4d9d; border-bottom: 2px solid #6b4d9d; transform: rotate(45deg); flex-shrink: 0; margin: 0 .2rem .25rem .2rem; }
.labs-code-fragment[open] { border-color: #b8aacb; }
.labs-code-fragment[open] > summary { background: #f3f0f8; border-bottom: 1px solid #ded9e8; border-radius: .65rem .65rem 0 0; }
.labs-code-fragment[open] > summary::after { transform: rotate(225deg); margin-bottom: -.25rem; }
.labs-code-fragment > summary:focus-visible { outline: 2px solid #6b4d9d; outline-offset: 3px; }
.labs-fragment-icon { display: grid; place-items: center; flex: 0 0 2.25rem; height: 2.5rem; border-radius: .45rem; background: #eeeaf5; color: #6b4d9d; }
.labs-fragment-summary { flex: 1; min-width: 0; }
.labs-fragment-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; color: #37323f; font-weight: 600; font-size: .9rem; }
.labs-fragment-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .65rem; margin-top: .4rem; color: #62606c; font-size: .75rem; }
.labs-fragment-number { font-variant-numeric: tabular-nums; }
.labs-fragment-kind { padding: .1rem .4rem; border: 1px solid #ded9e8; border-radius: .3rem; background: #f7f5fa; color: #51476f; }
.labs-fragment-cue { color: #6b4d9d; font-size: .8rem; white-space: nowrap; }
.labs-fragment-cue-close, .labs-code-fragment[open] > summary .labs-fragment-cue-open { display: none; }
.labs-code-fragment[open] > summary .labs-fragment-cue-close { display: inline; }
.labs-code-fragment-body { padding: 1rem; }
.labs-fragment-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding-bottom: .9rem; margin-bottom: 1rem; border-bottom: 1px solid #e5e0ec; }
.labs-fragment-actions .btn { min-height: 2.3rem; }
.labs-fragment-actions .dropdown-menu { max-width: min(22rem,calc(100vw - 3rem)); }
.labs-fragment-actions .dropdown-item { white-space: normal; }
.labs-fragment-decoding { margin-top: .75rem; border: 1px solid #ded9e8; border-radius: .45rem; }
.labs-fragment-decoding > summary { padding: .75rem; cursor: pointer; color: #51476f; font-size: .85rem; font-weight: 600; }
.labs-fragment-decoding > div { padding: 0 .75rem .75rem; }
.labs-code-fragments [data-fragment-remove-name] { overflow-wrap: anywhere; color: #37323f; font-weight: 600; }
.labs-fragments-empty { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; padding: 1rem; font-size: .85rem; color: #62606c; border: 1px dashed #c9bfd7; background: #faf9fc; border-radius: .5rem; }
.labs-fragment-drop { position: fixed; inset: 0; z-index: 1080; display: flex; align-items: center; justify-content: center; padding: 2rem; background: rgba(231,235,245,.8); backdrop-filter: blur(4px); }
.labs-fragment-drop[hidden], .labs-code-fragments [hidden] { display: none !important; }
.labs-fragment-drop-area { width: 100%; max-width: 42rem; max-height: calc(100dvh - 4rem); overflow-y: auto; padding: 2.5rem; border: 2px dashed #8994b4; border-radius: 1rem; background: rgba(255,255,255,.76); text-align: center; box-shadow: 0 1rem 4rem #626d8b1a; overflow-wrap: anywhere; }
.labs-fragment-drop-area > .fa { font-size: 2.5rem; color: #69769b; margin-bottom: 1rem; }
.labs-fragment-drop-area h4 { font-size: 1.2rem; }
.labs-fragment-drop-area p, .labs-fragment-drop-area li { font-size: .85rem; }
.labs-fragment-drop-area .progress { height: .55rem; margin: 1.25rem 0; }
.labs-fragment-drop-area .progress-bar { background-color: #727da1; }
.labs-fragment-drop-area ul { list-style: none; padding: 0; text-align: left; }
@media (max-width: 575.98px) {
  .labs-compatibility-modal .modal-dialog { margin: .5rem; }
  .labs-compatibility-result { padding: .75rem .5rem; flex-wrap: wrap; }
  .labs-fragment-cue { display: none; }
  .labs-code-fragment > summary { padding: .75rem; gap: .5rem; align-items: flex-start; }
  .labs-code-fragment > summary::after { margin-top: .7rem; }
  .labs-fragment-icon { flex-basis: 1.8rem; height: 2rem; }
  .labs-fragment-search { max-width: none; }
  .labs-fragment-heading-actions { width: 100%; }
  .labs-fragment-heading-actions [data-fragment-select] { flex: 1; }
  .labs-fragment-bulk { width: 100%; }
  .labs-fragment-bulk > .btn { flex: 1; }
  .labs-code-fragments .btn { min-height: 44px; }
  .labs-fragment-actions > .btn, .labs-fragment-actions > .dropdown { flex: 1 1 9rem; }
  .labs-fragment-actions .dropdown > .btn { width: 100%; }
  .labs-code-fragment-body { padding: .75rem; }
  .labs-fragment-drop { padding: .75rem; }
  .labs-fragment-drop-area { padding: 1.5rem 1rem; max-height: calc(100dvh - 1.5rem); }
}

/* Library lists use the same text, heading and hover palette as activity history. */
.labs-vendor-page, .labs-images-page {
  --labs-list-text: #37323f;
  --labs-list-muted: #62606c;
  --labs-list-heading: #49445e;
  --labs-list-border: #ded9e8;
  --labs-list-header: #f3f3f7;
  --labs-list-hover: #f1edf7;
}
/* Images and Chain share a compact, accessible list layout. */
.labs-images-page { max-width: 1600px; }
.labs-images-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.labs-images-heading h1 { margin: 0 0 .35rem; color: #443456; font-size: 1.5rem; overflow-wrap: anywhere; }
.labs-images-heading p { margin: 0; color: var(--labs-list-muted); }
.labs-images-filter { margin-bottom: 1.25rem; }
.labs-images-filter .card-body { margin: 0; padding: .5rem .5rem 1.25rem; }
.labs-images-filter-actions { display: flex; flex-wrap: wrap; gap: .5rem; padding-bottom: 1.6rem; }
.labs-images-filter .form-label { font-size: .8rem; color: var(--labs-list-heading); font-weight: 600; }
.labs-images-filter .form-text { display: block; font-size: .75rem; color: var(--labs-list-muted); }
.labs-images-page .labs-images-scroll { margin: 0; border: 1px solid #ded9e8; border-radius: .5rem; overflow-y: hidden; }
.labs-images-table { min-width: 48rem; margin: 0; --bs-table-color: var(--labs-list-text); --bs-table-hover-color: var(--labs-list-text); --bs-table-hover-bg: var(--labs-list-hover); }
.labs-images-table > :not(caption) > * > * { padding: .8rem .85rem; border-color: var(--labs-list-border); }
.labs-images-table thead th { background: var(--labs-list-header); font-weight: 700; white-space: nowrap; }
.labs-images-table small { display: block; margin-top: .25rem; color: var(--labs-list-muted); font-size: .765625rem; }
.labs-images-table tbody td.text-secondary { color: var(--labs-list-muted) !important; }
.labs-images-table tbody tr:focus-within > td { --bs-table-accent-bg: var(--labs-list-hover); }
.labs-images-table a:focus-visible { outline: 2px solid var(--labs-purple-dark); outline-offset: 3px; }
.labs-images-date { white-space: nowrap; font-variant-numeric: tabular-nums; }
.labs-images-identity { min-width: 14rem; max-width: 26rem; overflow-wrap: anywhere; }
.labs-images-identity > a { display: block; font-weight: 700; }
.labs-images-identity > a > span { display: block; font-weight: 400; }
.labs-images-comment { max-width: 28rem; white-space: normal; }
.labs-images-chain { white-space: nowrap; font-size: .8rem; }
.labs-images-preview { max-width: 22rem; min-width: 13rem; overflow-wrap: anywhere; }
.labs-images-preview code { font: .8rem/1.6 Consolas, monospace; color: var(--labs-list-text); }
.labs-chain-hash { color: var(--labs-list-muted); font: .95em Consolas, monospace; }
.labs-images-drop-hint { margin-bottom: 1.25rem; color: var(--labs-list-muted); font-size: .85rem; }
.labs-images-notice:empty { display: none; }
.labs-images-notice:not(:empty) { margin-bottom: 1rem; padding: .75rem 1rem; border: 1px solid #b9d8c7; border-radius: .4rem; color: #23704a; }
.labs-images-table .labs-images-empty { padding: 2rem; text-align: center; color: var(--labs-list-muted); }
@media (max-width: 991.98px) { .labs-images-filter-actions { padding-bottom: 0; } }
@media (max-width: 575.98px) { .labs-images-heading { align-items: flex-start; } .labs-images-heading > .btn { width: 100%; } .labs-images-table { min-width: 44rem; } }
.labs-file-navigation { position: fixed; inset: 50% 0 auto; z-index: 1000; pointer-events: none; }
.labs-file-navigation a { position: absolute; top: 0; display: grid; place-items: center; width: 2rem; height: 3.5rem; transform: translateY(-50%); border: 1px solid #c8bbdb; border-radius: .4rem; color: #6b4d9d; background: rgba(255,255,255,.94); box-shadow: 0 2px 8px #44345614; pointer-events: auto; text-decoration: none; }
.labs-file-previous { left: .35rem; }
.labs-file-next { right: .35rem; }
.labs-file-navigation a:hover, .labs-file-navigation a:focus-visible { color: #fff; background: #6b4d9d; border-color: #6b4d9d; }
.labs-file-navigation a:focus-visible { outline: 3px solid #c8bbdb; outline-offset: 2px; }
.labs-code-page.has-file-navigation { padding-inline: 3rem; }
@media(max-width:575.98px){.labs-file-navigation a{width:1.5rem;height:3rem;}.labs-file-previous{left:.15rem;}.labs-file-next{right:.15rem;}.labs-code-page.has-file-navigation{padding-inline:1.85rem;}}
@media(min-width:992px){.labs-images-filter-actions{padding-top:1.65rem;}}
