@charset "UTF-8";
/**
 * Clay 3.112.0
 *
 * SPDX-FileCopyrightText: © 2020 Liferay, Inc. <https://liferay.com>
 * SPDX-FileCopyrightText: © 2020 Contributors to the project Clay <https://github.com/liferay/clay/graphs/contributors>
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */
/**
 * Bootstrap v4.4.1
 *
 * SPDX-FileCopyrightText: © 2019 Twitter, Inc. <https://twitter.com>
 * SPDX-FileCopyrightText: © 2019 The Bootstrap Authors <https://getbootstrap.com/>
 *
 * SPDX-License-Identifier: LicenseRef-MIT-Bootstrap
 */
/**
 * Clay 3.112.0
 *
 * SPDX-FileCopyrightText: © 2020 Liferay, Inc. <https://liferay.com>
 * SPDX-FileCopyrightText: © 2020 Contributors to the project Clay <https://github.com/liferay/clay/graphs/contributors>
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */
/**
 * Bootstrap v4.4.1
 *
 * SPDX-FileCopyrightText: © 2019 Twitter, Inc. <https://twitter.com>
 * SPDX-FileCopyrightText: © 2019 The Bootstrap Authors <https://getbootstrap.com/>
 *
 * SPDX-License-Identifier: LicenseRef-MIT-Bootstrap
 */
.quick-access-nav {
  position: fixed;
  z-index: 999;
}

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.sr-only-focusable:active, .sr-only-focusable:focus {
  clip: auto;
  height: auto;
  overflow: visible;
  position: static;
  white-space: normal;
  width: auto;
}

.lfr-asset-column-details .lfr-asset-categories {
  color: #7d7d7d;
}
.lfr-asset-column-details .lfr-asset-categories .lfr-asset-category {
  color: #555;
}
.lfr-asset-column-details .lfr-asset-description {
  color: #444;
  font-style: italic;
  margin: 0.5em auto 2em;
  -ms-hyphens: none;
  -webkit-hyphens: none;
  hyphens: none;
}
.lfr-asset-column-details .lfr-asset-icon {
  border-right: 1px solid transparent;
  color: #999;
  float: left;
  line-height: 1em;
  margin-right: 10px;
  padding-right: 10px;
}
.lfr-asset-column-details .lfr-asset-icon.last {
  border-width: 0;
}
.lfr-asset-column-details .lfr-asset-tags {
  color: #7d7d7d;
}
.lfr-asset-column-details .lfr-asset-tags .tag {
  color: #555;
}
.lfr-asset-column-details .lfr-asset-metadata {
  clear: both;
  margin-bottom: 1.5em;
  padding-bottom: 1.5em;
}
.lfr-asset-column-details .lfr-panel {
  clear: both;
  margin-bottom: 0.2em;
}
.lfr-asset-column-details .lfr-panel.lfr-extended {
  border: 1px solid #ccc;
  margin-bottom: 0;
}
.lfr-asset-column-details .taglib-custom-attributes-list label,
.lfr-asset-column-details .lfr-asset-field label {
  display: block;
}
.lfr-asset-column-details .taglib-custom-attributes-list {
  margin-bottom: 1em;
}

.overlay {
  position: absolute;
}

.overlay-hidden,
.overlaymask-hidden {
  display: none;
}

.lfr-form-row {
  border-bottom: 1px solid #ccc;
  margin-bottom: 10px;
  margin-top: 10px;
  padding: 1px 5px 25px;
  position: relative;
}
.lfr-form-row:after {
  clear: both;
  content: "";
  display: block;
  height: 0;
}
.lfr-form-row:hover {
  border: solid #ccc;
  border-width: 1px 0;
  padding-top: 0;
}
.lfr-form-row.lfr-form-row-inline .form-group {
  margin-right: 5px;
}
.lfr-form-row legend .field-label {
  float: left;
  margin-right: 10px;
}
.lfr-form-row .handle-sort-vertical {
  background: url(../images/application/handle_sort_vertical.png) no-repeat 0 50%;
  cursor: move;
  padding-left: 20px;
}
.lfr-form-row fieldset {
  border-width: 0;
  margin: 0;
  padding: 0;
}

.lfr-autorow-controls {
  bottom: 5px;
  position: absolute;
  right: 5px;
}

.datepicker-popover-content .popover-content {
  padding: 0.75rem 1rem;
}

.dropdown.open > .dropdown-menu, .overlay-content .open > .dropdown-menu {
  display: block;
}

.form-control-inline {
  background-color: transparent;
  font-size: 1.125rem;
  font-weight: 700;
}
.form-control-inline:not(:hover) {
  border-color: transparent;
}
.form-control-inline::placeholder {
  color: #a7a9bc;
  font-style: italic;
}

.form-search .input-group {
  position: relative;
}
.form-search .input-group.advanced-search .search-query {
  padding-left: 40px;
  z-index: 0;
}
.form-search .input-group.advanced-search .toggle-advanced {
  cursor: pointer;
  left: 0;
  line-height: 1;
  padding: 8px 10px;
  position: absolute;
  top: 0;
}
.form-search .input-group.advanced-search .toggle-advanced .caret {
  margin-top: 7px;
}
.form-search .input-group.advanced-search .toggle-advanced .icon-search {
  font-size: 14px;
}
@media (max-width: 991.98px) {
  .form-search .input-group {
    width: 100%;
  }
  .form-search .input-group .btn {
    clip: rect(0, 0, 0, 0);
    left: -9999px;
    position: absolute;
  }
  .form-search .input-group input.search-query {
    width: 100%;
  }
}

.lfr-table {
  border-collapse: collapse;
  clear: both;
}
.lfr-table > tbody > tr > td,
.lfr-table > tbody > tr > th,
.lfr-table > thead > tr > td,
.lfr-table > thead > tr > th,
.lfr-table > tfoot > tr > td,
.lfr-table > tfoot > tr > th {
  padding: 0 5px;
  overflow-wrap: break-all;
  word-wrap: break-all;
}
.lfr-table > tbody > tr > td:first-child, .lfr-table > tbody > tr > td.first-child,
.lfr-table > tbody > tr > th:first-child,
.lfr-table > tbody > tr > th.first-child,
.lfr-table > thead > tr > td:first-child,
.lfr-table > thead > tr > td.first-child,
.lfr-table > thead > tr > th:first-child,
.lfr-table > thead > tr > th.first-child,
.lfr-table > tfoot > tr > td:first-child,
.lfr-table > tfoot > tr > td.first-child,
.lfr-table > tfoot > tr > th:first-child,
.lfr-table > tfoot > tr > th.first-child {
  padding-left: 0;
}
.lfr-table > tbody > tr > td:last-child, .lfr-table > tbody > tr > td.last-child,
.lfr-table > tbody > tr > th:last-child,
.lfr-table > tbody > tr > th.last-child,
.lfr-table > thead > tr > td:last-child,
.lfr-table > thead > tr > td.last-child,
.lfr-table > thead > tr > th:last-child,
.lfr-table > thead > tr > th.last-child,
.lfr-table > tfoot > tr > td:last-child,
.lfr-table > tfoot > tr > td.last-child,
.lfr-table > tfoot > tr > th:last-child,
.lfr-table > tfoot > tr > th.last-child {
  padding-right: 0;
}
.lfr-table > tbody > tr > th,
.lfr-table > thead > tr > th,
.lfr-table > tfoot > tr > th {
  font-weight: bold;
}

.lfr-pagination:after {
  clear: both;
  content: "";
  display: block;
  height: 0;
  visibility: hidden;
}
.lfr-pagination .dropdown-menu {
  display: none;
}
.lfr-pagination .dropdown-toggle .icon-caret-down {
  margin-left: 5px;
}
.lfr-pagination .lfr-pagination-controls {
  float: left;
}
.lfr-pagination .lfr-pagination-controls .search-results {
  display: inline-block;
  margin-left: 10px;
  margin-top: 5px;
  top: 10px;
}
.lfr-pagination .lfr-pagination-controls li .lfr-pagination-link {
  border-width: 0;
  clear: both;
  color: #333;
  display: block;
  font-weight: normal;
  line-height: 20px;
  padding: 3px 20px;
  text-align: left;
  white-space: nowrap;
  width: 100%;
}
.lfr-pagination .lfr-pagination-delta-selector {
  float: left;
}
@media (max-width: 991.98px) {
  .lfr-pagination .lfr-pagination-delta-selector .lfr-icon-menu-text {
    display: none;
  }
}
.lfr-pagination .pagination-content {
  float: right;
}

.lfr-panel.lfr-extended {
  border: 1px solid transparent;
  border-color: #dedede #bfbfbf #bfbfbf #dedede;
}
.lfr-panel.lfr-extended.lfr-collapsible .lfr-panel-button {
  display: block;
}
.lfr-panel.lfr-extended.lfr-collapsed .lfr-panel-titlebar {
  border-bottom-width: 0;
}
.lfr-panel.panel-default .panel-heading {
  border-bottom-width: 0;
}
.lfr-panel .toggler-header {
  cursor: pointer;
}

.sidebar-sm .sheet-subtitle {
  font-size: 0.75rem;
  margin-bottom: 1rem;
}
.sidebar-sm .form-control[type=file] {
  padding: 0;
}
.sidebar-sm .article-content-description .input-localized.input-localized-editor .input-group-item .wrapper .form-control {
  min-height: auto;
  padding: 0.285rem 0.75rem;
}
.sidebar-sm .list-group-item-flex {
  padding: 0.5rem 0.25rem;
}
.sidebar-sm .list-group-item-flex .autofit-col {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.lfr-translation-manager {
  border-radius: 4px;
  display: inline-block;
  margin-top: 0.5em;
  min-height: 1.8em;
}
.lfr-translation-manager .lfr-translation-manager-content .lfr-translation-manager-default-locale {
  display: inline-block;
  width: auto;
}
.lfr-translation-manager .lfr-translation-manager-content .lfr-translation-manager-icon-menu {
  float: none;
  padding: 0.4em 0;
}
.lfr-translation-manager .lfr-translation-manager-content .lfr-translation-manager-icon-menu li,
.lfr-translation-manager .lfr-translation-manager-content .lfr-translation-manager-icon-menu li strong {
  display: inline;
}
.lfr-translation-manager .lfr-translation-manager-content .lfr-translation-manager-translations-message {
  margin: 10px 0;
}
.lfr-translation-manager .lfr-translation-manager-available-translations {
  white-space: normal;
}
.lfr-translation-manager .lfr-translation-manager-available-translations .lfr-translation-manager-available-translations-links {
  line-height: 1;
}
.lfr-translation-manager .lfr-translation-manager-translation {
  border: 1px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  display: inline-block;
  margin: 0.2em;
  padding: 0.4em 0.3em 0.4em 0.5em;
  text-decoration: none;
}
.lfr-translation-manager .lfr-translation-manager-translation * {
  vertical-align: middle;
}
.lfr-translation-manager .lfr-translation-manager-translation img {
  margin-right: 0.3em;
}
.lfr-translation-manager .lfr-translation-manager-translation:hover {
  background-color: #d1e5ef;
}
.lfr-translation-manager .lfr-translation-manager-translation.lfr-translation-manager-translation-editing {
  background-color: #598bec;
  border-color: #224fa8;
  color: #fff;
}
.lfr-translation-manager .lfr-translation-manager-change-default-locale {
  margin: 0 0.4em;
}
.lfr-translation-manager .lfr-translation-manager-delete-translation {
  display: inline-block;
  padding: 0 2px;
}
.lfr-translation-manager .lfr-translation-manager-delete-translation svg {
  pointer-events: none;
}

.lfr-tree a {
  text-decoration: none;
}
.lfr-tree li {
  margin-bottom: 2px;
  padding-left: 0;
}
.lfr-tree li ul li, .lfr-tree li.tree-item {
  padding-left: 0;
}
.lfr-tree li.tree-item {
  padding-left: 5px;
}
.lfr-tree li.tree-item li {
  padding-left: 20px;
}
.lfr-tree li.tree-item ul {
  margin-left: 0;
  margin-top: 5px;
}

.lfr-upload-container {
  margin-bottom: 1rem;
}
.lfr-upload-container .upload-target {
  border: 3px dashed #e7e7ed;
  margin-bottom: 1rem;
  min-height: 2rem;
  padding: 2rem 0;
  position: relative;
  text-align: center;
}
.upload-drop-intent .lfr-upload-container .upload-target {
  z-index: 100;
}
.upload-drop-active .lfr-upload-container .upload-target {
  background-color: #edf9f0;
  border-color: #5aca75;
}
.lfr-upload-container .upload-target .drop-file-text {
  font-weight: normal;
}
.mobile .lfr-upload-container .upload-target .drop-file-text {
  display: none;
}
.lfr-upload-container .upload-target .small {
  display: block;
  margin: 5px 0;
  text-transform: lowercase;
}
.lfr-upload-container .manage-upload-target {
  padding-top: 5px;
  position: relative;
}
.lfr-upload-container .manage-upload-target .select-files {
  float: left;
  line-height: 0;
  margin: 0 1.125rem 1.125rem;
  padding: 0 0 0 5px;
}
.lfr-upload-container .cancel-uploads,
.lfr-upload-container .clear-uploads {
  background-repeat: no-repeat;
  float: right;
}
.lfr-upload-container .cancel-uploads {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAnFBMVEX////4YWP/dXjyS07/dXj9bXD6a234YWP4XWD2WVv2VFfsOTzoLzHmKSvkISP2VFf0TE/vREftPT/iHB72WVvvREf0TE//hon/gYX/fYD/e33/dXj/cXP9bXD/a236a23/Zmb4YWP4XWD/Wl32WVv/VVj2VFf3VFb0TE/yS072SUvvREfuQELtPT/sOTzrMzXoLzHnLC/mKSvkISPh2jkWAAAAF3RSTlMAESIiMzMzMzMzMzMzMzNERERERHd3qtw8lzkAAACOSURBVHjaZcjZDsIgEIXhcd+tu5YBKUixttS6vP+7OQKJTfxvTr4D7Tpxu/2w410SjDjwVvLQ805TPiRryfQeKM6OTI68K/BJPHGlJZJjSqSMofEOGXbJecsTgzkds58V5+J8refBU7Jx9yIrmkW0sA6gqbLyuaRjZZWtgXq58rEFan0jf3uTfRuIkf/7AO8DDcVPSSG3AAAAAElFTkSuQmCC);
  margin-right: 0;
}
.lfr-upload-container .clear-uploads {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAdVBMVEX///+6QwTEVx65RQPEVx3EWB64RQPDVxq5RAO5RAO5RQPATQ65RQO5RQO5RQPRczjJZCW9TQTLay28QgTdZAHhaAPmdyHqeQXrikDudgDvfxj0nWP1qHL2tY33tY34dgD+za7+1rj/dxH/fxj/hiH/kk3///9TM3sUAAAAFHRSTlMAbXd4eHh6gN3e3+Hi4+T5+/z8/mIsq5IAAABHSURBVBjTY2CgGWDlFuZhRuIz8cspyggxIgQ4ZFWVVCQ4EQLCCmpqalLCCAFeaWV5SVE+hAC7gJi4iCAbkqksXMK8bNRzNADCOQN++eLhCQAAAABJRU5ErkJggg==);
  padding-left: 16px;
}
.lfr-upload-container .upload-file.upload-complete.file-saved {
  padding-left: 25px;
}
.lfr-upload-container .upload-file .file-title {
  display: inline-block;
  max-width: 95%;
  overflow: hidden;
  padding-right: 16px;
  text-overflow: ellipsis;
  vertical-align: middle;
  white-space: nowrap;
}
.lfr-upload-container .upload-file .icon-file {
  font-size: 40px;
}
.lfr-upload-container .upload-list-info {
  margin: 1em 0 0.5em;
}
.lfr-upload-container .upload-list-info h4 {
  font-size: 1.3em;
}
.lfr-upload-container .cancel-button {
  color: #6b6c7e;
  margin-top: 1px;
  position: absolute;
  right: 5px;
  top: 50%;
  white-space: nowrap;
}
.lfr-upload-container .cancel-button .cancel-button-text {
  display: none;
  margin-left: 5px;
}
.lfr-upload-container .cancel-button:hover .cancel-button-text {
  display: inline;
}
.lfr-upload-container .cancel-button .lexicon-icon {
  height: 12px;
}
.lfr-upload-container .delete-button {
  color: #6b6c7e;
}
.lfr-upload-container .delete-button-col {
  padding-right: 10px;
}
.lfr-upload-container .file-added .success-message {
  float: right;
  font-weight: normal;
}
.lfr-upload-container .upload-error {
  opacity: 1;
  padding-left: 25px;
}
.lfr-upload-container .upload-complete .cancel-button,
.lfr-upload-container .delete-button,
.lfr-upload-container .upload-complete.file-saved .delete-button,
.lfr-upload-container .upload-complete.upload-error .delete-button {
  display: none;
}
.lfr-upload-container .multiple-files .upload-error {
  background: #feefef url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJPSURBVDjLpZPLS5RhFMYfv9QJlelTQZwRb2OKlKuINuHGLlBEBEOLxAu46oL0F0QQFdWizUCrWnjBaDHgThCMoiKkhUONTqmjmDp2GZ0UnWbmfc/ztrC+GbM2dXbv4ZzfeQ7vefKMMfifyP89IbevNNCYdkN2kawkCZKfSPZTOGTf6Y/m1uflKlC3LvsNTWArr9BT2LAf+W73dn5jHclIBFZyfYWU3or7T4K7AJmbl/yG7EtX1BQXNTVCYgtgbAEAYHlqYHlrsTEVQWr63RZFuqsfDAcdQPrGRR/JF5nKGm9xUxMyr0YBAEXXHgIANq/3ADQobD2J9fAkNiMTMSFb9z8ambMAQER3JC1XttkYGGZXoyZEGyTHRuBuPgBTUu7VSnUAgAUAWutOV2MjZGkehgYUA6O5A0AlkAyRnotiX3MLlFKduYCqAtuGXpyH0XQmOj+TIURt51OzURTYZdBKV2UBSsOIcRp/TVTT4ewK6idECAihtUKOArWcjq/B8tQ6UkUR31+OYXP4sTOdisivrkMyHodWejlXwcC38Fvs8dY5xaIId89VlJy7ACpCNCFCuOp8+BJ6A631gANQSg1mVmOxxGQYRW2nHMha4B5WA3chsv22T5/B13AIicWZmNZ6cMchTXUe81Okzz54pLi0uQWp+TmkZqMwxsBV74Or3od4OISPr0e3SHa3PX0f3HXKofNH/UIG9pZ5PeUth+CyS2EMkEqs4fPEOBJLsyske48/+xD8oxcAYPzs4QaS7RR2kbLTTOTQieczfzfTv8QPldGvTGoF6/8AAAAASUVORK5CYII=) no-repeat 5px 5px;
  border-color: #ab1010;
  color: #ab1010;
  font-weight: normal;
  margin-bottom: 16px;
  padding: 8px 8px 8px 24px;
}
.lfr-upload-container .multiple-files .upload-error .error-message {
  display: block;
}
.lfr-upload-container .multiple-files .upload-complete.file-saved .form-check-middle-left .card-body,
.lfr-upload-container .multiple-files .upload-complete.upload-error .form-check-middle-left .card-body {
  padding-left: 1rem;
}
.lfr-upload-container .multiple-files .upload-complete.file-saved .form-check-middle-left .custom-control-label,
.lfr-upload-container .multiple-files .upload-complete.upload-error .form-check-middle-left .custom-control-label {
  display: none;
}
.lfr-upload-container .single-file .upload-error {
  list-style: none;
  margin-top: 1em;
}
.lfr-upload-container .single-file .upload-error .upload-error-message {
  margin-bottom: 0.5em;
}
.lfr-upload-container .upload-complete {
  padding-left: 5px;
}
.lfr-upload-container .upload-complete .error-message,
.lfr-upload-container .upload-complete .success-message {
  font-weight: bold;
  margin-left: 1em;
}
.lfr-upload-container .upload-complete .delete-button {
  display: inline-block;
}
.lfr-upload-container .upload-complete .select-file:disabled + .custom-control-label {
  display: none;
}
.lfr-upload-container .progress {
  display: none;
  margin-top: 0.5rem;
}
.lfr-upload-container .file-uploading .progress {
  display: flex;
}

.lfr-alert-container {
  left: 0;
  position: absolute;
  right: auto;
  top: auto;
  width: 100%;
  z-index: 430;
}
.lfr-alert-container.inline-alert-container {
  position: relative;
}
.lfr-alert-container.inline-alert-container .lfr-alert-wrapper {
  padding: 0;
}
.lfr-alert-container .lfr-alert-wrapper {
  margin-bottom: 5px;
  overflow: hidden;
}

.lfr-search-container td .overlay.entry-action {
  position: static;
}
.lfr-search-container td .overlay.entry-action .btn a {
  display: block;
  padding: 4px 12px;
}

.contextual-sidebar {
  height: calc(
		100vh - var(--control-menu-container-height) - 49px
	);
  pointer-events: none;
  position: fixed;
  right: 0;
  top: calc(var(--control-menu-container-height) + 49px);
  transform: translateX(100%);
  transition: transform ease 0.5s;
  visibility: hidden;
  width: 320px;
  will-change: transform;
}
.contextual-sidebar.contextual-sidebar-visible {
  pointer-events: auto;
  transform: translateX(0);
  visibility: visible;
}

@media (min-width: 768px) {
  .contextual-sidebar {
    height: calc(
			100vh - var(--control-menu-container-height) - 64px
		);
    top: calc(
			var(--control-menu-container-height) + 64px
		);
  }
  .contextual-sidebar-content {
    transition: padding ease 0.5s;
    will-change: padding;
  }
  .contextual-sidebar-visible .contextual-sidebar-content,
  .contextual-sidebar-visible + .contextual-sidebar-content {
    padding-right: 320px;
  }
}
.taglib-diff-html div.diff-removed-image {
  background: #fdc6c6 url(../images/diff/minus.png);
}
.taglib-diff-html div.diff-added-image {
  background: #cfc url(../images/diff/plus.png) no-repeat;
}
.taglib-diff-html div.diff-removed-image, .taglib-diff-html div.diff-added-image {
  height: 300px;
  margin: 2px;
  opacity: 0.55;
  position: absolute;
  width: 200px;
}
.taglib-diff-html span.diff-html-added {
  background-color: #cfc;
  font-size: 1em;
}
.taglib-diff-html span.diff-html-added img {
  border: 2px solid #cfc;
}
.taglib-diff-html span.diff-html-changed {
  background: url(../images/diff/underline.png) bottom repeat-x;
}
.taglib-diff-html span.diff-html-changed img {
  border: 2px dotted #009;
}
.taglib-diff-html span.diff-html-removed {
  background-color: #fdc6c6;
  font-size: 1em;
  text-decoration: line-through;
}
.taglib-diff-html span.diff-html-removed img {
  border: 2px solid #fdc6c6;
}

.taglib-discussion {
  font-size: 0.875rem;
  margin-top: 1rem;
}
.taglib-discussion .actions-menu .component-action {
  display: inline-flex;
}
.taglib-discussion .button-holder {
  margin: 1rem 0;
}
.taglib-discussion .comment-container {
  margin-bottom: 1.5rem;
}
.taglib-discussion .lfr-discussion .lfr-discussion-form-edit .alloy-editor-placeholder {
  border-left-color: #dbdde1;
}
.taglib-discussion .lfr-discussion-body {
  font-size: 1rem;
}
@media (min-width: 576px) {
  .taglib-discussion .lfr-discussion-body {
    padding-left: 3.5rem;
  }
}
@media (min-width: 576px) {
  .taglib-discussion .lfr-discussion-details .taglib-user-display {
    word-wrap: break-word;
  }
}
.taglib-discussion .lfr-discussion-details .taglib-user-display .user-details .user-name {
  font-weight: bold;
  text-decoration: none;
}
.taglib-discussion .lfr-discussion-details .taglib-user-display .user-details .user-name:hover {
  text-decoration: underline;
}
.taglib-discussion .lfr-discussion-details .taglib-user-display .user-profile-image .avatar {
  background-size: 50px;
}
.taglib-discussion .lfr-discussion-container {
  border-bottom: 1px solid #e7e7ed;
  margin-bottom: 1.5rem;
}
.taglib-discussion .lfr-discussion-container:first-of-type {
  border-top: 1px solid #e7e7ed;
  padding-top: 1.5rem;
}
.taglib-discussion .lfr-discussion-container:last-of-type {
  border-bottom: 0;
}
.taglib-discussion .lfr-discussion-container .lfr-discussion {
  padding-left: 1rem;
}
.taglib-discussion .lfr-discussion-container .lfr-discussion .lfr-discussion .lfr-discussion .lfr-discussion {
  padding-left: 0;
}
@media (min-width: 576px) {
  .taglib-discussion .lfr-discussion-container .lfr-discussion {
    padding-left: 3.5rem;
  }
}
.taglib-discussion .lfr-discussion-parent-link {
  color: #67678c;
  font-weight: 600;
  margin-left: 1em;
}
@media (max-width: 767.98px) {
  .taglib-discussion .lfr-discussion-parent-link {
    display: block;
    margin-left: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
.taglib-discussion .lfr-discussion-controls .autofit-col:first-of-type > .btn-outline-borderless {
  margin-left: -0.75rem;
}
.taglib-discussion .lfr-discussion-more-comments {
  border-top: 1px solid #e7e7ed;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  text-align: center;
}
.taglib-discussion .username {
  color: #272833;
  font-weight: 600;
}
.taglib-discussion .taglib-workflow-status {
  margin-left: 0.5rem;
}
.taglib-discussion .workflow-value {
  text-transform: uppercase;
}
@media (min-width: 576px) {
  .taglib-discussion .actions-menu {
    display: none;
  }
  .taglib-discussion .comment-container:hover .actions-menu,
  .taglib-discussion .actions-menu:focus,
  .taglib-discussion .actions-menu.open {
    display: inline-block;
  }
}

.drop-zone {
  min-height: 80px;
  padding: 20px;
  text-align: center;
}
.drop-zone.drop-enabled {
  outline: 2px dashed transparent;
}
.drop-zone.drop-enabled:not(.no-border) {
  outline-color: rgba(176, 180, 187, 0.5);
}
.drop-zone p {
  margin: 10px auto 0;
  max-width: 75%;
}

.drop-here-info {
  font-size: 25px;
  height: 100%;
  left: 0;
  min-height: 100px;
  opacity: 0;
  position: absolute;
  text-align: center;
  top: 0;
  visibility: hidden;
  width: 100%;
  transition: all 0.2s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .drop-here-info {
    transition: none;
  }
}
.drop-here-info {
  transition: none;
}

.drop-here-info .drop-here-indicator {
  height: 115px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(0, -50%);
}
.drop-here-info .drop-icons {
  display: inline-block;
  position: relative;
  width: 160px;
  transition: all 0.2s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .drop-here-info .drop-icons {
    transition: none;
  }
}
.drop-here-info .drop-icons {
  transition: none;
}

.drop-here-info .drop-icons span {
  border-radius: 3px;
  position: absolute;
  text-align: center;
  transition: all 0.3s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .drop-here-info .drop-icons span {
    transition: none;
  }
}
.drop-here-info .drop-icons span {
  transition: none;
}

.drop-here-info .drop-icons span:nth-of-type(1) {
  box-shadow: 5px 4px 0 0 rgba(0, 0, 0, 0.08);
  height: 60px;
  left: 0;
  line-height: 60px;
  opacity: 0;
  top: 10px;
  transform: rotate(25deg);
  width: 60px;
}
.drop-here-info .drop-icons span:nth-of-type(2) {
  background: #00c2ff;
  color: #fff;
  height: 80px;
  left: 40px;
  line-height: 80px;
  width: 80px;
  z-index: 2;
}
.drop-here-info .drop-icons span:nth-of-type(3) {
  box-shadow: -5px 4px 0 0 rgba(0, 0, 0, 0.08);
  display: block;
  font-size: 45px;
  height: 70px;
  left: 90px;
  line-height: 70px;
  opacity: 0;
  position: relative;
  top: 8px;
  transform: rotate(-25deg);
  width: 70px;
  z-index: 1;
}
.drop-here-info .drop-icons span:nth-of-type(1), .drop-here-info .drop-icons span:nth-of-type(3) {
  background: #e8e6e8;
  color: #a5a6ac;
}
.drop-here-info .drop-text {
  color: #fff;
  display: block;
  font-size: 20px;
  margin-left: 0;
  margin-top: 20px;
}
.drop-active .drop-here-info {
  background-color: rgba(0, 0, 0, 0.6);
  opacity: 1;
  visibility: visible;
  z-index: 100;
}
.drop-active .drop-here-info .drop-icons span:nth-of-type(1), .drop-active .drop-here-info .drop-icons span:nth-of-type(3) {
  opacity: 1;
}
.drop-active .drop-here-info span:nth-of-type(1) {
  transform: rotate(-20deg);
}
.drop-active .drop-here-info span:nth-of-type(2) {
  transform: scale(1);
}
.drop-active .drop-here-info span:nth-of-type(3) {
  transform: rotate(15deg);
}

.taglib-empty-result-message.sheet {
  margin-bottom: 24px;
}
.taglib-empty-result-message .taglib-empty-result-message-description {
  color: #6b6c7e;
  margin-top: 8px;
}
.taglib-empty-result-message .taglib-empty-result-message-header,
.taglib-empty-result-message .taglib-empty-result-message-header-has-plus-btn,
.taglib-empty-result-message .taglib-empty-search-result-message-header {
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100%;
  margin-left: auto;
  margin-right: auto;
}
.taglib-empty-result-message .taglib-empty-result-message-header,
.taglib-empty-result-message .taglib-empty-result-message-header-has-plus-btn {
  max-width: 200px;
  padding-top: 250px;
}
.taglib-empty-result-message .taglib-empty-result-message-header,
.taglib-empty-result-message .taglib-empty-result-message-header-has-plus-btn {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/empty_state.gif);
}
@media (prefers-reduced-motion: reduce) {
  .taglib-empty-result-message .taglib-empty-result-message-header,
  .taglib-empty-result-message .taglib-empty-result-message-header-has-plus-btn {
    background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/empty_state_reduced_motion.gif);
  }
}
.c-prefers-reduced-motion .taglib-empty-result-message .taglib-empty-result-message-header,
.c-prefers-reduced-motion .taglib-empty-result-message .taglib-empty-result-message-header-has-plus-btn {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/empty_state_reduced_motion.gif);
}
.taglib-empty-result-message .taglib-empty-search-result-message-header {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/search_state.gif);
  max-width: 210px;
  padding-top: 232px;
}
@media (prefers-reduced-motion: reduce) {
  .taglib-empty-result-message .taglib-empty-search-result-message-header {
    background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/search_state_reduced_motion.gif);
  }
}
.c-prefers-reduced-motion .taglib-empty-result-message .taglib-empty-search-result-message-header {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/search_state_reduced_motion.gif);
}
.taglib-empty-result-message .taglib-empty-state {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/empty_state.gif);
  margin: auto;
  max-width: 250px;
  padding-top: 250px;
}
@media (prefers-reduced-motion: reduce) {
  .taglib-empty-result-message .taglib-empty-state {
    background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/empty_state_reduced_motion.gif);
  }
}
.c-prefers-reduced-motion .taglib-empty-result-message .taglib-empty-state {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/empty_state_reduced_motion.gif);
}
.taglib-empty-result-message .taglib-success-state {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/success_state.gif);
  margin: auto;
  max-width: 250px;
  padding-top: 250px;
}
@media (prefers-reduced-motion: reduce) {
  .taglib-empty-result-message .taglib-success-state {
    background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/success_state_reduced_motion.gif);
  }
}
.c-prefers-reduced-motion .taglib-empty-result-message .taglib-success-state {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/success_state_reduced_motion.gif);
}
.taglib-empty-result-message .taglib-search-state {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/search_state.gif);
  margin: auto;
  max-width: 250px;
  padding-top: 250px;
}
@media (prefers-reduced-motion: reduce) {
  .taglib-empty-result-message .taglib-search-state {
    background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/search_state_reduced_motion.gif);
  }
}
.c-prefers-reduced-motion .taglib-empty-result-message .taglib-search-state {
  background-image: url(/o/unidades-moveis-lf7_4-ce-theme/images/states/search_state_reduced_motion.gif);
}
.taglib-empty-result-message .taglib-empty-result-message-title {
  font-size: 1rem;
  margin-top: 48px;
}
.taglib-empty-result-message .taglib-empty-result-message-description {
  font-size: 0.875rem;
}
.taglib-empty-result-message .taglib-empty-result-message-header + .taglib-empty-result-message-title,
.taglib-empty-result-message .taglib-empty-search-result-message-header + .taglib-empty-result-message-title,
.taglib-empty-result-message .taglib-empty-state + .taglib-empty-result-message-title,
.taglib-empty-result-message .taglib-success-state + .taglib-empty-result-message-title,
.taglib-empty-result-message .taglib-search-state + .taglib-empty-result-message-title {
  font-size: 1.25rem;
  font-weight: bold;
  text-align: center;
}
.taglib-empty-result-message .taglib-empty-result-message-header ~ .taglib-empty-result-message-description, .taglib-empty-result-message .taglib-empty-result-message-header ~ .taglib-empty-result-message-actions,
.taglib-empty-result-message .taglib-empty-search-result-message-header ~ .taglib-empty-result-message-description,
.taglib-empty-result-message .taglib-empty-search-result-message-header ~ .taglib-empty-result-message-actions,
.taglib-empty-result-message .taglib-empty-state ~ .taglib-empty-result-message-description,
.taglib-empty-result-message .taglib-empty-state ~ .taglib-empty-result-message-actions,
.taglib-empty-result-message .taglib-success-state ~ .taglib-empty-result-message-description,
.taglib-empty-result-message .taglib-success-state ~ .taglib-empty-result-message-actions,
.taglib-empty-result-message .taglib-search-state ~ .taglib-empty-result-message-description,
.taglib-empty-result-message .taglib-search-state ~ .taglib-empty-result-message-actions {
  font-size: 1rem;
  text-align: center;
}

.field-wrapper.form-inline .control-label {
  display: inline-block;
}

.field-wrapper-html .input-localized .input-group-item {
  flex-wrap: nowrap;
}

.taglib-header {
  border-bottom: 1px solid #c8c9ca;
  color: #555;
  margin-bottom: 1em;
  padding-bottom: 10px;
}
.taglib-header .header-title {
  display: inline-block;
  margin: 0.1em;
  max-width: 100%;
  text-overflow: ellipsis;
  vertical-align: middle;
  white-space: nowrap;
  word-wrap: normal;
}
.taglib-header .header-back-to {
  display: inline-block;
  vertical-align: middle;
}
.taglib-header .header-back-to a {
  display: block;
  font-weight: bold;
  padding: 0 0.3em 0 0;
  text-decoration: none;
}

.taglib-icon {
  text-decoration: none;
}
.taglib-icon:not(.btn):hover .taglib-text, .taglib-icon:not(.btn):focus .taglib-text {
  text-decoration: underline;
}
.taglib-icon[lang] > img {
  vertical-align: baseline;
  width: 16px;
}

.taglib-icon-help {
  color: #6b6c7e !important;
}
.taglib-icon-help:hover, .taglib-icon-help:active {
  color: #272833 !important;
}

.icon-monospaced {
  color: inherit;
  display: inline-block;
  height: 2rem;
  line-height: 34px;
  text-align: center;
  width: 2rem;
}
.icon-monospaced.lexicon-icon {
  padding: 8px;
}

.taglib-icon-list li {
  float: left;
  margin-right: 1em;
}
.taglib-icon-list:after {
  clear: both;
  content: "";
  display: block;
  height: 0;
  visibility: hidden;
}

.lfr-icon-menu .lfr-icon-menu-icon {
  max-width: none;
}
@media (max-width: 767.98px) {
  .table-cell.last .lfr-icon-menu .dropdown-toggle {
    text-align: center;
  }
  .table-cell.last .lfr-icon-menu .dropdown-toggle > img,
  .table-cell.last .lfr-icon-menu .dropdown-toggle .lfr-icon-menu-text {
    display: none;
  }
}

.lfr-menu-list {
  float: none;
  overflow-y: auto;
  position: relative;
}
.lfr-menu-list.direction-right {
  margin: 0 2px;
}
.lfr-menu-list.dropdown-menu {
  float: none;
  position: relative;
}
@media (max-width: 991.98px) {
  .lfr-menu-list.dropdown-menu > li > a {
    font-size: 22px;
    line-height: 40px;
    white-space: normal;
  }
  .lfr-menu-list.dropdown-menu > li > a img {
    margin-bottom: 3px;
  }
}
.lfr-menu-list.dropdown-menu .search-panel {
  margin-bottom: 0;
}
.lfr-menu-list.dropdown-menu .search-panel .form-group {
  margin: 0 16px;
}
.lfr-menu-list.dropdown-menu .search-panel .menu-item-filter {
  width: auto;
}
body > .lfr-menu-list ul {
  border-radius: 4px;
}

.lfr-icon-menu-open:after {
  clear: both;
  content: "";
  display: table;
}
.lfr-icon-menu-open .dropdown-menu {
  position: static;
}

.input-localized.input-localized-editor .form-control {
  border-width: 0;
  height: 100%;
  padding: 0;
}
.input-localized .input-group-item {
  flex-direction: column;
}
.input-localized .input-localized-content {
  margin-left: 6px;
}
.input-group .input-localized .input-localized-content {
  margin-top: 3px;
}
.input-localized .lfr-input-localized .lfr-input-localized-state {
  background-color: #ddd;
}
.input-localized .lfr-input-localized .lfr-input-localized-state.lfr-input-localized-state-error {
  background-color: #ff0047;
}
.input-localized .lfr-input-localized-default a {
  margin-right: 14px;
}
.input-localized .lfr-input-localized-state {
  height: 4px;
  margin: 3px 5px;
  width: 4px;
}
.input-localized .palette-item-inner .lfr-input-localized-flag {
  font-size: 16px;
  opacity: 0.5;
}
.input-localized .palette-item,
.input-localized .palette-item-hover,
.input-localized .palette-item-hover .palette-item-inner {
  border-color: transparent;
}
.input-localized .palette-item-inner {
  border-color: #666;
  display: block;
  height: 16px;
  width: 16px;
}
.input-localized .palette-item-selected .lfr-input-localized-state {
  background: #27c1f2;
}

.input-localized-palette-container .palette-items-container {
  font-size: 0;
  margin: 0;
  white-space: normal;
}
.input-localized-palette-container .palette-item {
  border-width: 0;
  padding: 0.5rem 1.25rem;
}
.input-localized-palette-container .palette-item-inner {
  border: 1px solid;
  margin-right: 4px;
  width: 16px;
}
.input-localized-palette-container .palette-item-inner img {
  display: block;
}

.taglib-move-boxes {
  margin-bottom: 1em;
}
.taglib-move-boxes label {
  border-bottom: 1px solid transparent;
  display: block;
  margin-bottom: 5px;
  padding: 5px;
}
.taglib-move-boxes .toolbar {
  text-align: center;
}
.taglib-move-boxes .arrow-button img {
  border-width: 0;
  height: 16px;
  width: 16px;
}
.taglib-move-boxes .choice-selector {
  width: 100%;
}
.taglib-move-boxes .choice-selector label {
  background: #ebf1f9;
  border-bottom-color: #8db2f3;
}
.taglib-move-boxes .field-content {
  margin-bottom: 0;
}
.taglib-move-boxes .move-arrow-buttons {
  margin-top: 5em;
}
.taglib-move-boxes .move-arrow-buttons .arrow-button {
  display: block;
}
.taglib-move-boxes .sortable-container {
  margin-top: 10px;
}
.taglib-move-boxes .sortable-container .btn.edit-selection {
  margin-bottom: 10px;
}
.taglib-move-boxes .sortable-container .move-option {
  background-color: transparent;
  border-top: 1px solid #ddd;
  display: none;
  margin: 2px 0;
  padding: 2px;
  position: relative;
}
.taglib-move-boxes .sortable-container .move-option.selected {
  display: block;
}
.taglib-move-boxes .sortable-container .move-option.move-option-dragging {
  background-color: #fafafa;
}
.taglib-move-boxes .sortable-container .move-option .checkbox,
.taglib-move-boxes .sortable-container .move-option .handle {
  position: absolute;
}
.taglib-move-boxes .sortable-container .move-option .checkbox {
  display: none;
  margin: 7px 0 0 5px;
}
.taglib-move-boxes .sortable-container .move-option .handle {
  color: #999;
  cursor: pointer;
  font-size: 1.5em;
  padding: 6px;
}
.taglib-move-boxes .sortable-container .move-option .title {
  font-size: 1.2em;
  margin: 1px 0 1px 30px;
}
.taglib-move-boxes .sortable-container.edit-list-active .move-option {
  display: block;
}
.taglib-move-boxes .sortable-container.edit-list-active .move-option .checkbox {
  display: inline-block;
}
.taglib-move-boxes .sortable-container.edit-list-active .move-option .handle {
  display: none;
}
.mobile .taglib-move-boxes .selector-container {
  display: none;
}

.item-selector .card-row > .autofit-col-expand {
  padding-top: 4px;
}
.item-selector .drop-zone {
  background-color: #f1f2f5;
  margin-top: 1rem;
}
.item-selector .input-file {
  height: 0.1px;
  opacity: 0;
  overflow: hidden;
  position: absolute;
  width: 0.1px;
  z-index: -1;
}
.item-selector .input-file + label {
  position: relative;
}
.item-selector .input-file + label::before {
  border-radius: 4px;
  bottom: -2px;
  content: "";
  display: block;
  left: -2px;
  position: absolute;
  right: -2px;
  top: -2px;
  transition: box-shadow 0.15s ease-in-out;
}
.item-selector .input-file:focus + label::before {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #80acff;
}
.item-selector .item-selector-list-row:hover {
  background-color: #f0f5ff;
  cursor: pointer;
}

.lfr-map {
  border: 1px solid #ccc;
  min-height: 400px;
  width: 100%;
}
.lfr-map .home-button {
  margin: 5px;
}
@media (max-width: 575.98px) {
  .lfr-map .home-button {
    height: 35px;
    width: 45px;
  }
}
.lfr-map .search-controls {
  font-size: 15px;
  margin-top: 5px;
  width: 100%;
}
@media (min-width: 576px) {
  .lfr-map .search-controls {
    width: 50%;
  }
}
.lfr-map .search-controls .search-input {
  width: 100%;
}

.navbar .navbar-collapse {
  max-height: none;
}
.navbar .navbar-collapse:after, .navbar .navbar-collapse:before {
  display: inline;
}
@media (max-width: 767.98px) {
  .navbar .navbar-search {
    background-color: #f3f3f3;
    border-top-width: 0;
    width: 100%;
  }
}
.navbar .navbar-search .form-search {
  margin: 8px 0;
}
@media (min-width: 768px) {
  .navbar .navbar-search .form-search {
    float: right;
    max-width: 275px;
  }
}
@media (max-width: 767.98px) {
  .navbar .navbar-search .form-search .input-group {
    width: 100%;
  }
}
@media (max-width: 991.98px) {
  .navbar .container .navbar-btn,
  .navbar .container-fluid .navbar-btn {
    margin-bottom: 5px;
    width: 45px;
  }
  .navbar .container .navbar-collapse.open,
  .navbar .container-fluid .navbar-collapse.open {
    border-width: 0;
    display: block;
    height: auto;
    overflow: visible;
  }
}

.taglib-portlet-preview.show-borders {
  border: 1px solid #828f95;
  margin-bottom: 1em;
  padding: 3px 3px 1em;
}
.taglib-portlet-preview.show-borders .title {
  background-color: #d3dadd;
  font-size: 1.4em;
  font-weight: bold;
  padding: 0.5em;
}
.taglib-portlet-preview .preview {
  margin: 1em;
  min-height: 90px;
}

.lfr-search-container .entry-action {
  width: 1px;
}
.lfr-search-container .entry-action .taglib-icon {
  white-space: nowrap;
}

.lfr-search-container-wrapper.lfr-search-container-fixed-first-column {
  position: relative;
}
@media (min-width: 576px) {
  .lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive {
    margin-left: 375px;
    width: auto;
  }
}
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table {
  position: static;
}
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table .lfr-search-iterator-fixed-header {
  left: 12px;
  position: fixed;
  right: 12px;
  top: -1px;
  z-index: 1020;
}
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table .lfr-search-iterator-fixed-header > th {
  display: block;
  padding: 0;
}
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table .lfr-search-iterator-fixed-header > th .lfr-search-iterator-fixed-header-inner-wrapper {
  overflow-x: hidden;
}
@media (min-width: 576px) {
  .lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table .lfr-search-iterator-fixed-header > th .lfr-search-iterator-fixed-header-inner-wrapper {
    margin-left: 375px;
  }
}
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table .lfr-search-iterator-fixed-header > th .lfr-search-iterator-fixed-header-inner-wrapper table {
  border-collapse: collapse;
  width: 100%;
}
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table .lfr-search-iterator-fixed-header > th .lfr-search-iterator-fixed-header-inner-wrapper table th {
  border-radius: 0;
}
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table td,
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table th {
  width: auto;
}
@media (min-width: 576px) {
  .lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table td:first-child,
  .lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table th:first-child {
    left: 0;
    position: absolute;
    right: 15px;
  }
}
.lfr-search-container-wrapper.lfr-search-container-fixed-first-column .table-responsive .table th {
  height: auto;
}
.lfr-search-container-wrapper a:not(.btn):not(.component-action):not(.page-link) {
  color: #495057;
  font-weight: 500;
  text-decoration: underline;
}
.lfr-search-container-wrapper a:not(.btn):not(.component-action):not(.page-link):focus, .lfr-search-container-wrapper a:not(.btn):not(.component-action):not(.page-link):hover {
  color: #000;
}
.lfr-search-container-wrapper .dropdown-action .dropdown-toggle {
  color: #6b6c7e;
}
.lfr-search-container-wrapper .dropdown-action .dropdown-toggle:hover {
  color: #272833;
}
.lfr-search-container-wrapper .lfr-icon-menu > .dropdown-toggle {
  color: #6b6c7e;
}
.lfr-search-container-wrapper .lfr-icon-menu > .dropdown-toggle:active, .lfr-search-container-wrapper .lfr-icon-menu > .dropdown-toggle:focus, .lfr-search-container-wrapper .lfr-icon-menu > .dropdown-toggle:hover {
  background-color: #f7f8f9;
  border-radius: 4px;
  color: #272833;
}
.lfr-search-container-wrapper .lfr-search-container-list .list-group:last-child .list-group-item:nth-last-child(2) {
  border-bottom-left-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.lfr-search-container-wrapper .lfr-search-container-list + .taglib-search-iterator-page-iterator-bottom {
  margin-top: 20px;
}
.lfr-search-container-wrapper .list-group {
  margin-bottom: 0;
}
.lfr-search-container-wrapper .list-group + .list-group .list-group-header:first-child,
.lfr-search-container-wrapper .list-group + .list-group .list-group-item:first-child {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.lfr-search-container-wrapper .list-group .list-group-item h4 {
  font-size: 0.875rem;
  line-height: 1.5;
  margin-bottom: 0;
}
.lfr-search-container-wrapper .list-group .list-group-item h5,
.lfr-search-container-wrapper .list-group .list-group-item h6,
.lfr-search-container-wrapper .list-group .list-group-item .h5,
.lfr-search-container-wrapper .list-group .list-group-item .h6 {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  margin-bottom: 0;
}
.lfr-search-container-wrapper .list-group .list-group-item span + h2.h5 {
  font-weight: 600;
}
.lfr-search-container-wrapper .list-group .list-group-item h6 + h5 {
  font-weight: 600;
}
.lfr-search-container-wrapper .table-list tbody tr:nth-last-child(2) td:first-child,
.lfr-search-container-wrapper .table-list tbody tr:nth-last-child(2) th:first-child {
  border-bottom-left-radius: 0.25rem;
}
.lfr-search-container-wrapper .table-list tbody tr:nth-last-child(2) td:last-child,
.lfr-search-container-wrapper .table-list tbody tr:nth-last-child(2) th:last-child {
  border-bottom-right-radius: 0.25rem;
}

.user-info {
  display: flex;
}
.user-info .sticker {
  align-self: center;
}
.user-info .user-details {
  margin-left: 1rem;
}
.user-info .user-name {
  color: #272833;
  font-weight: 600;
}
.user-info .date-info {
  color: #6b6c7e;
}

.user-status-tooltip .user-status-avatar {
  float: left;
  margin-right: 5px;
}
.user-status-tooltip .user-status-avatar .user-status-avatar-image {
  width: 27px;
}
.user-status-tooltip .user-status-info {
  display: inline-block;
  overflow: hidden;
}
.user-status-tooltip .user-status-info .user-status-date {
  font-size: 11px;
}

.lfr-search-container {
  margin-top: 1.5em;
  overflow: auto;
}
@media (max-width: 767.98px) {
  .lfr-search-container .selector-button {
    width: auto;
  }
}
.touch .lfr-search-container {
  -webkit-overflow-scrolling: touch;
}
.touch .lfr-search-container .searchcontainer-content .table {
  max-width: none;
}

.taglib-page-iterator {
  clear: both;
  height: auto;
  width: auto;
}
.taglib-page-iterator .lfr-pagination-buttons {
  float: right;
  margin: 0;
}
@media (max-width: 991.98px) {
  .taglib-page-iterator .lfr-pagination-buttons {
    width: 100%;
  }
}
@media (max-width: 991.98px) and (max-width: 767.98px) {
  .taglib-page-iterator .lfr-pagination-buttons {
    float: none;
    margin-top: 20px;
  }
}
@media (max-width: 991.98px) {
  .taglib-page-iterator .lfr-pagination-buttons > li {
    display: inline-block;
    width: 50%;
  }
  .taglib-page-iterator .lfr-pagination-buttons > li.first, .taglib-page-iterator .lfr-pagination-buttons > li.last {
    display: none;
  }
  .taglib-page-iterator .lfr-pagination-buttons > li > a {
    line-height: 20px;
    padding: 11px 19px;
  }
}
.taglib-page-iterator .lfr-pagination-config {
  float: left;
  line-height: 46px;
}
@media (max-width: 767.98px) {
  .taglib-page-iterator .lfr-pagination-config {
    float: none;
  }
  .taglib-page-iterator .lfr-pagination-config .current-page-menu {
    display: block;
  }
  .taglib-page-iterator .lfr-pagination-config .current-page-menu .btn {
    display: block;
  }
}
.taglib-page-iterator .lfr-pagination-config .lfr-pagination-delta-selector,
.taglib-page-iterator .lfr-pagination-config .lfr-pagination-page-selector {
  display: inline;
}
.taglib-page-iterator .lfr-pagination-config .lfr-pagination-delta-selector {
  float: none;
}
@media (max-width: 991.98px) {
  .taglib-page-iterator .lfr-pagination-config .lfr-pagination-delta-selector {
    display: none;
  }
}
.taglib-page-iterator .search-results {
  float: left;
  line-height: 46px;
  margin-left: 10px;
}
@media (max-width: 991.98px) {
  .taglib-page-iterator .search-results {
    display: none;
  }
}

.taglib-search-toggle .form-search {
  position: relative;
}
.taglib-search-toggle .form-search .input-group-btn {
  position: absolute;
}
@media (min-width: 992px) {
  .taglib-search-toggle .form-search .input-group-btn {
    position: static;
  }
}
.taglib-search-toggle .toggle-advanced {
  color: inherit;
  margin-left: 10px;
  position: absolute;
  top: 8px;
}
.taglib-search-toggle .toggle-advanced, .taglib-search-toggle .toggle-advanced:hover, .taglib-search-toggle .toggle-advanced:focus {
  text-decoration: none;
}

.taglib-search-toggle-advanced-wrapper .taglib-search-toggle-advanced {
  background-color: #fcfcfc;
  border: solid #ddd;
  border-width: 0 1px 1px;
  margin-top: 0;
  padding: 15px 15px 0;
}
.navbar-search .taglib-search-toggle-advanced-wrapper .taglib-search-toggle-advanced {
  border-width: 1px 0 0;
}
.taglib-search-toggle-advanced-wrapper .taglib-search-toggle-advanced .taglib-search-toggle-advanced-content {
  position: relative;
}
.taglib-search-toggle-advanced-wrapper .taglib-search-toggle-advanced .taglib-search-toggle-advanced-content .match-fields {
  margin-bottom: 0;
}
.taglib-search-toggle-advanced-wrapper .taglib-search-toggle-advanced .taglib-search-toggle-advanced-content .match-fields-legend {
  color: #999;
  font-size: 13px;
}
.taglib-search-toggle-advanced-wrapper .btn.close {
  margin-right: 5px;
  position: relative;
  z-index: 1;
}

.taglib-user-display {
  padding: 0.5em;
}
.taglib-user-display .avatar {
  background: no-repeat center;
  background-size: 60px;
  display: block;
  height: 60px;
  margin: 0 auto;
  width: 60px;
}
.taglib-user-display .avatar.author:after {
  background: rgba(50, 168, 230, 0.5);
  border-radius: 50%;
  content: "";
  display: block;
  height: 100%;
  width: 100%;
}
.taglib-user-display .user-details {
  margin-top: 1em;
}
.taglib-user-display .user-name {
  font-size: 1.1em;
  font-weight: bold;
}
.taglib-user-display a .user-name {
  text-decoration: underline;
}
.taglib-user-display.display-style-1 .user-profile-image {
  float: left;
  margin-right: 24px;
}
.taglib-user-display.display-style-1 .user-name {
  display: inline-block;
  margin-top: 10px;
}
.taglib-user-display.display-style-1 .user-details {
  margin-top: 0;
}
.taglib-user-display.display-style-2 .user-profile-image,
.taglib-user-display.display-style-2 .user-name {
  clear: both;
  display: block;
  min-height: 20px;
  text-align: center;
}
.taglib-user-display.display-style-3 {
  padding: 0;
}
.taglib-user-display.display-style-3 .user-profile-image {
  display: inline-block;
  vertical-align: middle;
}

.taglib-workflow-status .workflow-id,
.taglib-workflow-status .workflow-version,
.taglib-workflow-status .workflow-status {
  color: #999;
}
.table-cell .taglib-workflow-status {
  margin: 0;
}
.table-cell .taglib-workflow-status .workflow-status {
  padding-left: 0;
}

.lfr-autocomplete-input-list .yui3-aclist-list {
  margin: 0;
}

.portal-popup .sheet > .lfr-nav {
  margin-top: -24px;
}
.portal-popup .contacts-portlet .portlet-configuration-container .form {
  position: static;
}
.portal-popup .lfr-form-content {
  padding: 24px 12px;
}
.portal-popup .portlet-body,
.portal-popup .portlet-boundary,
.portal-popup .portlet-column,
.portal-popup .portlet-layout {
  height: 100%;
}
.portal-popup .portlet-column {
  position: static;
}
.portal-popup .dialog-body > .container-fluid-max-xl,
.portal-popup .dialog-body .container-view,
.portal-popup .export-dialog-tree > .container-fluid-max-xl,
.portal-popup .export-dialog-tree .container-view,
.portal-popup .lfr-dynamic-uploader > .container-fluid-max-xl,
.portal-popup .lfr-dynamic-uploader .container-view,
.portal-popup .lfr-form-content > .container-fluid-max-xl,
.portal-popup .lfr-form-content .container-view,
.portal-popup .portlet-configuration-body-content > .container-fluid-max-xl,
.portal-popup .portlet-configuration-body-content .container-view,
.portal-popup .process-list > .container-fluid-max-xl,
.portal-popup .process-list .container-view,
.portal-popup .roles-selector-body > .container-fluid-max-xl,
.portal-popup .roles-selector-body .container-view {
  padding-top: 20px;
}
.portal-popup .dialog-body > .container-fluid-max-xl .nav-tabs-underline,
.portal-popup .dialog-body .container-view .nav-tabs-underline,
.portal-popup .export-dialog-tree > .container-fluid-max-xl .nav-tabs-underline,
.portal-popup .export-dialog-tree .container-view .nav-tabs-underline,
.portal-popup .lfr-dynamic-uploader > .container-fluid-max-xl .nav-tabs-underline,
.portal-popup .lfr-dynamic-uploader .container-view .nav-tabs-underline,
.portal-popup .lfr-form-content > .container-fluid-max-xl .nav-tabs-underline,
.portal-popup .lfr-form-content .container-view .nav-tabs-underline,
.portal-popup .portlet-configuration-body-content > .container-fluid-max-xl .nav-tabs-underline,
.portal-popup .portlet-configuration-body-content .container-view .nav-tabs-underline,
.portal-popup .process-list > .container-fluid-max-xl .nav-tabs-underline,
.portal-popup .process-list .container-view .nav-tabs-underline,
.portal-popup .roles-selector-body > .container-fluid-max-xl .nav-tabs-underline,
.portal-popup .roles-selector-body .container-view .nav-tabs-underline {
  margin-left: -12px;
  margin-right: -12px;
  margin-top: -20px;
}
.portal-popup .dialog-body > .lfr-nav + .container-fluid-max-xl,
.portal-popup .export-dialog-tree > .lfr-nav + .container-fluid-max-xl,
.portal-popup .lfr-dynamic-uploader > .lfr-nav + .container-fluid-max-xl,
.portal-popup .lfr-form-content > .lfr-nav + .container-fluid-max-xl,
.portal-popup .portlet-configuration-body-content > .lfr-nav + .container-fluid-max-xl,
.portal-popup .process-list > .lfr-nav + .container-fluid-max-xl,
.portal-popup .roles-selector-body > .lfr-nav + .container-fluid-max-xl {
  padding-top: 0;
}
.portal-popup .login-container {
  padding: 1.5rem;
}
.portal-popup .navbar ~ .portlet-configuration-setup,
.portal-popup .portlet-export-import-container {
  height: calc(100% - 48px);
  position: relative;
}
@media (min-width: 576px) {
  .portal-popup .navbar ~ .portlet-configuration-setup,
  .portal-popup .portlet-export-import-container {
    height: calc(100% - 48px);
  }
}
.portal-popup .panel-group .panel {
  border-left-width: 0;
  border-radius: 0;
  border-right-width: 0;
}
.portal-popup .panel-group .panel + .panel {
  border-top-width: 0;
  margin-top: 0;
}
.portal-popup .panel-heading {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.portal-popup .portlet-configuration-setup .lfr-nav {
  margin-left: auto;
  margin-right: auto;
  max-width: 1280px;
  padding-left: 3px;
  padding-right: 3px;
}
@media (min-width: 576px) {
  .portal-popup .portlet-configuration-setup .lfr-nav {
    padding-left: 8px;
    padding-right: 8px;
  }
}
.portal-popup .lfr-dynamic-uploader,
.portal-popup .process-list {
  bottom: 0;
  display: block;
  left: 0;
  overflow: auto;
  position: absolute;
  right: 0;
  top: 48px;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 576px) {
  .portal-popup .lfr-dynamic-uploader,
  .portal-popup .process-list {
    top: 48px;
  }
}
.portal-popup .portlet-export-import-publish-processes {
  top: 0;
}
.portal-popup .dialog-footer {
  background-color: #fff;
  border-top: 1px solid #e7e7ed;
  bottom: 0;
  display: flex;
  flex-direction: row-reverse;
  left: 0;
  margin: 0;
  padding: 10px 24px;
  width: 100%;
  z-index: 1020;
}
@media (min-width: 768px) {
  .portal-popup .dialog-footer {
    position: fixed;
  }
}
.portal-popup .dialog-footer .btn {
  margin-left: 1rem;
  margin-right: 0;
}
.portal-popup .dialog-footer.dialog-footer-not-reverse {
  flex-direction: initial;
  justify-content: flex-end;
}
@media (min-width: 768px) {
  .portal-popup .dialog-body:not(:last-child),
  .portal-popup .lfr-dynamic-uploader:not(:last-child),
  .portal-popup .lfr-form-content:not(:last-child),
  .portal-popup .portlet-configuration-body-content:not(:last-child),
  .portal-popup .roles-selector-body:not(:last-child) {
    padding-bottom: 60px;
  }
}
.portal-popup .lfr-dynamic-uploader {
  display: table;
  table-layout: fixed;
  width: 100%;
}
.portal-popup .lfr-dynamic-uploader.hide-dialog-footer {
  bottom: 0;
}
.portal-popup .lfr-dynamic-uploader.hide-dialog-footer + .dialog-footer {
  display: none;
}
.portal-popup .portlet-configuration-edit-permissions .portlet-configuration-body-content {
  display: flex;
  flex-direction: column;
  overflow: visible;
}
.portal-popup .portlet-configuration-edit-permissions .portlet-configuration-body-content > form {
  flex-grow: 1;
  max-width: none;
  overflow: auto;
}
.portal-popup .portlet-configuration-edit-templates .portlet-configuration-body-content {
  bottom: 0;
}
.portal-popup:not(.article-preview) #main-content,
.portal-popup:not(.article-preview) #wrapper {
  bottom: 0;
  left: 0;
  overflow: auto;
  padding: 0;
  position: absolute;
  right: 0;
  top: 0;
  -webkit-overflow-scrolling: touch;
}
@media print {
  .portal-popup:not(.article-preview) #main-content,
  .portal-popup:not(.article-preview) #wrapper {
    position: initial;
  }
}
.portal-popup .columns-max > .portlet-layout.row {
  margin-left: 0;
  margin-right: 0;
}
.portal-popup .columns-max > .portlet-layout.row > .portlet-column {
  padding-left: 0;
  padding-right: 0;
}

html:not(#__):not(#___) .portlet-layout.dragging {
  border-collapse: separate;
}
html:not(#__):not(#___) .drop-area {
  background-color: #d3dadd;
}
html:not(#__):not(#___) .active-area {
  background: #ffc;
}
html:not(#__):not(#___) .portlet-boundary.yui3-dd-dragging {
  opacity: 0.6;
}
html:not(#__):not(#___) .portlet-boundary.yui3-dd-dragging .portlet {
  border: 2px dashed #ccc;
}
html:not(#__):not(#___) .sortable-layout-proxy {
  opacity: 1;
}
html:not(#__):not(#___) .sortable-layout-proxy .portlet-topper {
  background-image: none;
}
html:not(#__):not(#___) .proxy {
  cursor: move;
  opacity: 0.65;
  position: absolute;
}
html:not(#__):not(#___) .proxy.generic-portlet {
  height: 200px;
  width: 300px;
}
html:not(#__):not(#___) .proxy.generic-portlet .portlet-title {
  padding: 10px;
}
html:not(#__):not(#___) .proxy.not-intersecting .forbidden-action {
  background: url(../images/application/forbidden_action.png) no-repeat;
  display: block;
  height: 32px;
  position: absolute;
  right: -15px;
  top: -15px;
  width: 32px;
}
html:not(#__):not(#___) .resizable-proxy {
  border: 1px dashed #828f95;
  position: absolute;
  visibility: hidden;
}
html:not(#__):not(#___) .sortable-proxy {
  background: #727c81;
  margin-top: 1px;
}
html:not(#__):not(#___) .sortable-layout-drag-target-indicator {
  margin: 2px 0;
}
html:not(#__):not(#___) .yui3-dd-proxy {
  z-index: 1110 !important;
}

.portlet-layout.dragging {
  border-collapse: separate;
}

.drop-area {
  background-color: #d3dadd;
}

.active-area {
  background: #ffc;
}

.portlet-boundary.yui3-dd-dragging {
  opacity: 0.6;
  transform: scale(0.8);
  transition: transform 0.3s ease;
}
@media (prefers-reduced-motion: reduce) {
  .portlet-boundary.yui3-dd-dragging {
    transition: none;
  }
}
.c-prefers-reduced-motion .portlet-boundary.yui3-dd-dragging {
  transition: none;
}
.portlet-boundary.yui3-dd-dragging .portlet {
  border: 2px dashed #ccc;
}

.sortable-layout-proxy {
  opacity: 1;
}
.sortable-layout-proxy .portlet-topper {
  background-image: none;
}

.proxy {
  cursor: move;
  opacity: 0.65;
  position: absolute;
}
.proxy.generic-portlet {
  height: 200px;
  width: 300px;
}
.proxy.generic-portlet .portlet-title {
  padding: 10px;
}
.proxy.not-intersecting .forbidden-action {
  background: url(../images/application/forbidden_action.png) no-repeat;
  display: block;
  height: 32px;
  position: absolute;
  right: -15px;
  top: -15px;
  width: 32px;
}

.resizable-proxy {
  border: 1px dashed #828f95;
  position: absolute;
  visibility: hidden;
}

.sortable-proxy {
  background: #727c81;
  margin-top: 1px;
}

.sortable-layout-drag-target-indicator {
  margin: 2px 0;
}

.yui3-dd-proxy {
  z-index: 1110 !important;
}

.portlet-column-content.empty {
  padding: 50px;
}

.lfr-portlet-title-editable {
  margin-top: 0;
  z-index: 9999;
}
.lfr-portlet-title-editable .lfr-portlet-title-editable-content {
  padding: 0;
}
.lfr-portlet-title-editable .lfr-portlet-title-editable-content .field-input {
  margin-bottom: 0;
}
.lfr-portlet-title-editable .lfr-portlet-title-editable-content .textfield-label {
  display: none;
}
.lfr-portlet-title-editable .lfr-portlet-title-editable-content .btn-toolbar-content {
  display: inline-block;
  vertical-align: bottom;
}
.lfr-portlet-title-editable .lfr-portlet-title-editable-content .btn-group {
  margin-top: 0;
}
.lfr-portlet-title-editable .lfr-portlet-title-editable-content .btn {
  display: inline-block;
  float: none;
  margin-top: 0;
  width: auto;
}

.lfr-source-editor {
  border: solid 0 #ccc;
  border-bottom-width: 2px;
  position: relative;
}
.lfr-source-editor .ace_editor {
  height: 100%;
}
.lfr-source-editor .lfr-source-editor-toolbar li > .btn {
  background-color: #fff;
  border: transparent;
  color: #717383;
  outline: 0;
}
.lfr-source-editor .lfr-source-editor-code {
  background-color: #fff;
  color: #2b4259;
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter {
  background-color: #ededef;
  color: #868896;
  overflow: hidden;
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_fold-widget {
  font-family: fontawesome-alloy;
  text-align: center;
  vertical-align: middle;
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_fold-widget.ace_open, .lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_fold-widget.ace_closed {
  background-image: none;
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_fold-widget.ace_open:before {
  content: "▾";
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_fold-widget.ace_closed:before {
  content: "▸";
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_gutter-active-cell {
  color: #fff;
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_gutter-active-line {
  background-color: #717383;
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_gutter-layer {
  border-right: solid 1px #ccc;
}
.lfr-source-editor .lfr-source-editor-code .ace_gutter .ace_info {
  background-image: none;
}
.lfr-source-editor .lfr-source-editor-code .ace_content .ace_active-line {
  background-color: #ededef;
}
.lfr-source-editor .lfr-source-editor-code .ace_content .ace_constant {
  color: #34adab;
}
.lfr-source-editor .lfr-source-editor-code .ace_content .ace_tag {
  color: #1d5ec7;
}
.lfr-source-editor .lfr-source-editor-code .ace_content .ace_string {
  color: #ff6c58;
}
.lfr-source-editor .lfr-source-editor-code .ace_content .ace_string.ace_regex {
  color: #f00;
}
.lfr-source-editor.ace_dark .lfr-source-editor-code {
  background-color: #47474f;
  color: #fff;
}
.lfr-source-editor.ace_dark .lfr-source-editor-code .ace_gutter {
  background: #54555e;
  color: #fff;
}
.lfr-source-editor.ace_dark .lfr-source-editor-code .ace_gutter .ace_gutter-active-line {
  background-color: #009aed;
}
.lfr-source-editor.ace_dark .lfr-source-editor-code .ace_content .ace_active-line {
  background-color: #11394e;
}
.lfr-source-editor.ace_dark .lfr-source-editor-code .ace_content .ace_cursor {
  color: #fff;
}
.lfr-source-editor.ace_dark .lfr-source-editor-code .ace_content .ace_tag {
  color: #4d91ff;
}

.lfr-fullscreen-source-editor {
  height: 100%;
  overflow: hidden;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-header {
  height: 40px;
  margin-right: 4px;
  margin-top: 4px;
  min-height: 40px;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content {
  height: 95%;
  position: relative;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content .panel-splitter {
  border: 1px solid #ccc;
  position: absolute;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content .preview-panel {
  display: inline-block;
  overflow-y: auto;
  padding-left: 20px;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content .source-panel {
  display: inline-block;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.vertical .source-panel,
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.vertical .preview-panel {
  height: 100%;
  width: 50%;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.vertical .panel-splitter {
  height: 100%;
  left: 50%;
  top: 0;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.horizontal .source-panel,
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.horizontal .preview-panel {
  height: 50%;
  width: 100%;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.horizontal .panel-splitter {
  top: 50%;
  width: 100%;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.simple .panel-splitter,
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.simple .preview-panel {
  display: none;
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content.simple .source-panel {
  height: 100%;
  width: 100%;
}

.lfr-fulscreen-source-editor-dialog .modal-footer {
  text-align: left;
}

.file-icon-color-0 {
  background-color: #fff;
  color: #6b6c7e;
}

.file-icon-color-1 {
  background-color: #fff;
  color: #a7a9bc;
}

.file-icon-color-2 {
  background-color: #fff;
  color: #50d2a0;
}

.file-icon-color-3 {
  background-color: #fff;
  color: #af78ff;
}

.file-icon-color-4 {
  background-color: #fff;
  color: #ffb46e;
}

.file-icon-color-5 {
  background-color: #fff;
  color: #ff5f5f;
}

.file-icon-color-6 {
  background-color: #fff;
  color: #4b9bff;
}

.file-icon-color-7 {
  background-color: #fff;
  color: #272833;
}

.lfr-item-viewer.uploading > div:not(.progress-container) {
  opacity: 0.3;
}
.lfr-item-viewer.uploading > .progress-container {
  visibility: visible;
}
.lfr-item-viewer .aspect-ratio a.item-preview {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 100%;
  position: absolute;
  width: 100%;
}
.lfr-item-viewer .image-viewer-base-image-list {
  padding-top: 35px;
}
.lfr-item-viewer .item-preview:hover {
  cursor: pointer;
}
.lfr-item-viewer .progress-container {
  background-color: #fff;
  left: 0;
  margin: 0 auto;
  padding: 20px 30px;
  position: absolute;
  right: 0;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
  visibility: hidden;
  width: 80%;
  z-index: 1000;
}
.lfr-item-viewer .progress-container a {
  position: absolute;
  right: 30px;
}
.lfr-item-viewer .progress-container .progress {
  margin-top: 10px;
}
.lfr-item-viewer .search-info {
  background-color: #d3e8f1;
}
.lfr-item-viewer .search-info .keywords {
  font-size: 1.4em;
  font-weight: bold;
}
.lfr-item-viewer .search-info .change-search-folder {
  font-size: 0.8em;
  font-weight: normal;
}
.lfr-item-viewer .upload-view {
  display: table;
  height: 400px;
  margin-top: 20px;
  width: 100%;
}
.lfr-item-viewer .upload-view > div {
  display: table-cell;
  vertical-align: middle;
}
.lfr-item-viewer .yui3-widget-bd {
  position: relative;
}

.lfr-menu-expanded li a:focus {
  background-color: #5b677d;
  color: #fff;
  text-shadow: -1px -1px #2c2f34;
}

.lfr-url-error {
  display: inline-block;
  white-space: normal;
  overflow-wrap: break-all;
  word-wrap: break-all;
}

.lfr-page-layouts {
  padding: 0;
}
.lfr-page-layouts input[type=radio] {
  opacity: 0;
  position: absolute;
}
.lfr-page-layouts input[type=radio]:checked + .card-horizontal {
  cursor: default;
}
.lfr-page-layouts input[type=radio]:checked + .card-horizontal::after {
  bottom: 0px;
  content: "";
  left: 0px;
  position: absolute;
  right: 0px;
  transition: height 0.15s ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .lfr-page-layouts input[type=radio]:checked + .card-horizontal::after {
    transition: none;
  }
}
.lfr-page-layouts input[type=radio]:checked + .card-horizontal::after {
  transition: none;
}

.lfr-page-layouts .card-horizontal {
  border-width: 1px;
  box-shadow: none;
  cursor: pointer;
  outline: 0;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .lfr-page-layouts .card-horizontal {
    transition: none;
  }
}
.lfr-page-layouts .card-horizontal {
  transition: none;
}

.lfr-page-layouts .card-horizontal::after {
  border-radius: 0 0 0.25rem 0.25rem;
  bottom: 0px;
  content: "";
  height: 0;
  left: 0px;
  position: absolute;
  right: 0px;
  transition: height 0.15s ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .lfr-page-layouts .card-horizontal::after {
    transition: none;
  }
}
.lfr-page-layouts .card-horizontal::after {
  transition: none;
}

.modal-body.dialog-iframe-bd {
  overflow: hidden;
  padding: 0;
}

.modal-dialog:not(.dialog-iframe-modal):not(.modal-full-screen) {
  position: relative;
}
.modal-dialog.dialog-iframe-modal {
  max-width: none;
}
.modal-dialog.modal-dialog-sm {
  max-width: 600px;
}
.modal-dialog .yui3-resize-handles-wrapper {
  pointer-events: all;
}
.modal-dialog .yui3-resize-handles-wrapper .yui3-resize-handle-inner-br {
  bottom: 0;
  right: 0;
}

.modal-open .modal {
  display: block;
}

.sheet > .panel-group .sheet-footer {
  margin-bottom: 0;
}

.sheet-footer .btn {
  margin-right: 1rem;
}
.sheet-footer .btn:last-child {
  margin-right: 0;
}

.tag-items {
  list-style: none;
  margin: 0 1em 0 0;
  padding: 0 1em 0.5em;
  white-space: normal;
}
.tag-items li {
  display: inline-block;
  margin: 0 1em 0 0;
  max-width: 100%;
}

.tag-selected {
  color: #000;
  font-weight: bold;
  text-decoration: none;
}

.tag-cloud .tag-popularity-1 {
  font-size: 1em;
}
.tag-cloud .tag-popularity-2 {
  font-size: 1.3em;
}
.tag-cloud .tag-popularity-3 {
  font-size: 1.6em;
}
.tag-cloud .tag-popularity-4 {
  font-size: 1.9em;
}
.tag-cloud .tag-popularity-5 {
  font-size: 2.2em;
}
.tag-cloud .tag-popularity-6 {
  font-size: 2.5em;
}

.lfr-portal-tooltip {
  display: inline-flex;
}
.lfr-portal-tooltip,
.lfr-portal-tooltip a {
  -webkit-touch-callout: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}

.tree-node .icon-check {
  padding-right: 2px;
}
.tree-node .tree-node-checked .icon-check {
  padding-right: 0;
}
.tree-node [class^=icon-] {
  margin-right: 5px;
}
.tree-node .tree-node-checkbox-container {
  margin-right: 0;
}
.tree-node .tree-node-selected .tree-label {
  background: none;
}

.tree-node-content .tree-hitarea {
  color: #999;
  font-size: 10px;
  padding-right: 6px;
}
.tree-node-content .tree-label {
  margin-left: 3px;
}
.tree-node-content .tree-node-hidden-hitarea {
  visibility: hidden;
}

.tree-node-selected .tree-label {
  background-color: transparent;
}

.tree-view li.tree-node .tree-node-content svg.lexicon-icon {
  pointer-events: none;
}

.user-icon-color-0 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #6b6c7e;
}

.user-icon-color-1 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #4a97f2;
}

.user-icon-color-2 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #e87523;
}

.user-icon-color-3 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #fb625b;
}

.user-icon-color-4 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #4fa488;
}

.user-icon-color-5 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #fe4fb5;
}

.user-icon-color-6 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #879b7a;
}

.user-icon-color-7 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #af78ff;
}

.user-icon-color-8 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #bf8c2a;
}

.user-icon-color-9 {
  background-color: #fff;
  box-shadow: 0 0 0 1px #e7e7ed;
  color: #5f9bc7;
}

.collapse.open {
  display: block;
}

.navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20class='lexicon-icon-outline%20bars-line-top'%20d='M480%2064H32C14.336%2064%200%2049.664%200%2032S14.336%200%2032%200h448c17.664%200%2032%2014.336%2032%2032s-14.336%2032-32%2032z'%20fill='%23272833'/%3E%3Cpath%20class='lexicon-icon-outline%20bars-line-middle'%20d='M480%20288H32c-17.664%200-32-14.336-32-32s14.336-32%2032-32h448c17.664%200%2032%2014.336%2032%2032s-14.336%2032-32%2032z'%20fill='%23272833'/%3E%3Cpath%20class='lexicon-icon-outline%20bars-line-bottom'%20d='M480%20512H32c-17.664%200-32-14.336-32-32s14.336-32%2032-32h448c17.664%200%2032%2014.336%2032%2032s-14.336%2032-32%2032z'%20fill='%23272833'/%3E%3C/svg%3E");
  height: 1em;
  width: 1em;
}

.navbar-nav .nav-item.hover:after {
  bottom: -0.3125rem;
  content: "";
  height: 0.3125rem;
  left: 0;
  position: absolute;
  width: 100%;
}

.navbar .navbar-toggler .c-inner {
  max-width: none;
}

html:not(#__):not(#___) .cadmin.portlet-topper {
  position: relative;
}
html:not(#__):not(#___) .cadmin.portlet-topper .portlet-topper-toolbar .portlet-icon-back {
  background: url(../images/arrows/12_left.png) no-repeat 0 50%;
  padding: 5px 5px 5px 18px;
}
html:not(#__):not(#___) .cadmin.portlet-topper .portlet-topper-toolbar .portlet-options .lfr-icon-menu-text {
  display: none;
}
html:not(#__):not(#___) .cadmin .component-action.portlet-options {
  color: white;
}

body.portlet {
  border-width: 0;
}

.portlet-icon-back {
  margin-top: -2px;
}
.portlet-topper .portlet-topper-toolbar .portlet-icon-back {
  background: url(../images/arrows/12_left.png) no-repeat 0 50%;
  padding: 5px 5px 5px 18px;
}

.portlet-options-dropdown {
  z-index: 1035;
}

.portlet-topper {
  position: relative;
}
.portlet-topper .portlet-topper-toolbar .portlet-options .lfr-icon-menu-text {
  display: none;
}
.portlet-draggable .portlet-topper {
  cursor: move;
}

.portlet-title-editable {
  cursor: pointer;
}

.portlet-title-text {
  display: inline-block;
  margin-top: 0;
  max-width: 95%;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: top;
  white-space: nowrap;
}
.panel-page-body .portlet-title-text, .panel-page-content .portlet-title-text {
  cursor: auto;
}

.portlet-minimized .portlet-content {
  padding: 0;
}

.portlet-nested-portlets .portlet-boundary {
  left: 0 !important;
  position: relative !important;
  top: 0 !important;
}

.portlet-layout .portlet-header {
  margin-bottom: var(--portlet-header-margin-bottom, calc(var(--spacer) * var(--spacer-5, 3rem)));
}

@media (min-width: 576px) {
  .portlet .visible-interaction {
    display: none;
  }
}
@media (max-width: 767.98px) {
  .controls-hidden .portlet .visible-interaction {
    display: none;
  }
}
.portlet:hover .visible-interaction, .portlet.open .visible-interaction, .portlet.focus .visible-interaction {
  display: block;
}

.controls-hidden .lfr-meta-actions,
.controls-hidden .lfr-configurator-visibility {
  display: none;
}
.controls-hidden .portlet-title-editable {
  pointer-events: none;
}
.controls-hidden .portlet-topper {
  display: none !important;
}
.controls-hidden .portlet-topper-toolbar {
  display: none !important;
}

html:not(#__):not(#___) .cadmin.portlet-topper {
  background-color: var(--portlet-topper-bg, var(--primary, #0b5fff));
  border-color: var(--portlet-topper-border, var(--portlet-topper-bg, #0b5fff));
  border-radius: var(--portlet-topper-border-radius, var(--border-radius-sm, 2px) var(--border-radius-sm, 2px) 0 0);
  border-style: solid;
  border-width: 1px 1px 1px 1px;
  color: var(--portlet-topper-color, var(--white, #fff));
  display: box;
  display: flex;
  padding: 3px 12px 3px 24px;
  position: relative;
}
html:not(#__):not(#___) .portlet > .cadmin.portlet-topper {
  display: none;
}
@media (min-width: 768px) {
  html:not(#__):not(#___) .portlet > .cadmin.portlet-topper {
    display: flex;
    left: 0;
    opacity: 0;
    position: absolute;
    right: 0;
    transition: opacity 0.25s, transform 0.25s;
    top: 0;
  }
}
@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
  html:not(#__):not(#___) .portlet > .cadmin.portlet-topper {
    transition: none;
  }
}
@media (min-width: 768px) {
  html:not(#__):not(#___) .portlet > .c-prefers-reduced-motion .cadmin.portlet-topper {
    transition: none;
  }
}
html:not(#__):not(#___) .cadmin .portlet-actions {
  float: right;
}
html:not(#__):not(#___) .cadmin .portlet-options {
  display: inline-block;
}
html:not(#__):not(#___) .cadmin .portlet-title-menu {
  flex: 0 1 auto;
}
html:not(#__):not(#___) .cadmin .portlet-title-menu > span > a {
  display: inline-block;
  text-decoration: none;
}
html:not(#__):not(#___) .cadmin .portlet-topper-toolbar {
  margin: 0;
  padding-left: 0;
}
html:not(#__):not(#___) .cadmin .portlet-topper-toolbar > a,
html:not(#__):not(#___) .cadmin .portlet-topper-toolbar > span > a,
html:not(#__):not(#___) .cadmin .portlet-topper-toolbar .lfr-icon-menu > a {
  color: var(--portlet-topper-link-color, var(--portlet-topper-color, #fff));
}
html:not(#__):not(#___) .cadmin .portlet-topper-toolbar > a:focus, html:not(#__):not(#___) .cadmin .portlet-topper-toolbar > a:hover {
  text-decoration: none;
}
html:not(#__):not(#___) .cadmin .portlet-name-text {
  font-size: 14px;
  font-weight: 600;
}
html:not(#__):not(#___) .cadmin .portlet-title-default {
  flex: 1 1 auto;
  line-height: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (min-width: 576px) {
  html:not(#__):not(#___) .lfr-configurator-visibility .portlet:hover .portlet-topper, html:not(#__):not(#___) .lfr-configurator-visibility .portlet.focus .portlet-topper, html:not(#__):not(#___) .lfr-configurator-visibility .portlet.open .portlet-topper {
    opacity: 0.5;
  }
}
@media (min-width: 768px) {
  html:not(#__):not(#___) .controls-visible .portlet:hover > .portlet-content-editable, html:not(#__):not(#___) .controls-visible .portlet.open > .portlet-content-editable, html:not(#__):not(#___) .controls-visible .portlet.focus > .portlet-content-editable {
    border-color: var(--portlet-topper-border, var(--portlet-topper-bg, #0b5fff));
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
}
@media (min-width: 768px) {
  html:not(#__):not(#___) .controls-visible .portlet:hover > .cadmin.portlet-topper, html:not(#__):not(#___) .controls-visible .portlet.open > .cadmin.portlet-topper, html:not(#__):not(#___) .controls-visible .portlet.focus > .cadmin.portlet-topper {
    opacity: 1;
    transform: translateY(-97%);
  }
}
@media (min-width: 768px) {
  html:not(#__):not(#___) .controls-visible .portlet.open > .cadmin.portlet-topper {
    transition-duration: 0ms;
  }
}
@media (max-width: 767.98px) {
  html:not(#__):not(#___) .controls-visible .cadmin.portlet-topper {
    display: box;
    display: flex;
  }
}
html:not(#__):not(#___) .controls-visible .cadmin .portlet-topper-toolbar {
  display: block;
}

.portlet {
  margin-bottom: 10px;
  position: relative;
}
@media (min-width: 768px) {
  .controls-visible .portlet:hover > .portlet-content-editable, .controls-visible .portlet.open > .portlet-content-editable, .controls-visible .portlet.focus > .portlet-content-editable {
    border-color: var(--portlet-topper-border, var(--portlet-topper-bg, #0b5fff));
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
}
@media (min-width: 768px) {
  .controls-visible .portlet:hover > .portlet-topper, .controls-visible .portlet.open > .portlet-topper, .controls-visible .portlet.focus > .portlet-topper {
    opacity: 1;
    transform: translateY(-97%);
  }
}
@media (min-width: 576px) {
  .lfr-configurator-visibility .portlet:hover .portlet-topper, .lfr-configurator-visibility .portlet.focus .portlet-topper, .lfr-configurator-visibility .portlet.open .portlet-topper {
    opacity: 0.5;
  }
}

.portlet-content-editable {
  border-color: var(--portlet-topper-border, var(--portlet-topper-bg, #0b5fff));
  border-radius: var(--portlet-content-border-radius, 0);
  border-style: solid;
  border-width: 1px 1px 1px 1px;
}
.portlet > .portlet-content-editable {
  border-color: transparent;
}
@media (max-width: 767.98px) {
  .controls-visible .portlet-content-editable {
    border-color: var(--portlet-topper-border, var(--portlet-topper-bg, #0b5fff));
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
}

.portlet-name-text {
  font-size: 0.875rem;
  font-weight: 600;
}

.portlet-options {
  display: inline-block;
}

.portlet-title-default {
  flex: 1 1 auto;
  line-height: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portlet-title-menu {
  flex: 0 1 auto;
}
.portlet-title-menu > span > a {
  display: inline-block;
  text-decoration: none;
}

.portlet-topper {
  background-color: var(--portlet-topper-bg, var(--primary, #0b5fff));
  border-color: var(--portlet-topper-border, var(--portlet-topper-bg, #0b5fff));
  border-radius: var(--portlet-topper-border-radius, var(--border-radius-sm, 2px) var(--border-radius-sm, 2px) 0 0);
  border-style: solid;
  border-width: 1px 1px 1px 1px;
  color: var(--portlet-topper-color, var(--white, #fff));
  display: box;
  display: flex;
  padding: 3px 12px 3px 24px;
  position: relative;
}
.portlet > .portlet-topper {
  display: none;
}
@media (min-width: 768px) {
  .portlet > .portlet-topper {
    display: flex;
    left: 0;
    opacity: 0;
    position: absolute;
    right: 0;
    transition: opacity 0.25s, transform 0.25s;
    top: 0;
  }
}
@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
  .portlet > .portlet-topper {
    transition: none;
  }
}
@media (min-width: 768px) {
  .portlet > .portlet-topper {
    transition: none;
  }
}
@media (max-width: 767.98px) {
  .controls-visible .portlet-topper {
    display: box;
    display: flex;
  }
}

.portlet-topper-toolbar {
  margin: 0;
  padding-left: 0;
}
.portlet-topper-toolbar > a,
.portlet-topper-toolbar > span > a,
.portlet-topper-toolbar .lfr-icon-menu > a {
  color: var(--portlet-topper-link-color, var(--portlet-topper-color, #fff));
}
.portlet-topper-toolbar > a:focus, .portlet-topper-toolbar > a:hover {
  text-decoration: none;
}
.controls-visible .portlet-topper-toolbar {
  display: block;
}

.lfr-panel-page .portlet-title {
  font-size: 13px;
}

.portlet-borderless .portlet-content {
  padding: var(--spacer-3, 1rem);
}
.portlet-decorate .portlet-content {
  background: #fff;
  border-color: #e7e7ed;
  border-style: solid;
  border-width: 1px;
  padding: 1.5rem;
  word-wrap: break-word;
}
.portlet-barebone .portlet-content {
  padding: 0;
}

.portlet-dynamic-data-lists-display .lfr-ddm-field-group,
.portlet-dynamic-data-lists .lfr-ddm-field-group {
  margin-bottom: 10px;
  margin-top: 10px;
  padding: 28px 24px;
}

.breadcrumb.breadcrumb-vertical {
  display: inline-block;
  text-align: center;
}
.breadcrumb.breadcrumb-vertical li {
  display: block;
}
.breadcrumb.breadcrumb-vertical li.last, .breadcrumb.breadcrumb-vertical li.only {
  background: none;
}
.breadcrumb.breadcrumb-vertical .divider {
  background: url(../images/arrows/07_down.png) no-repeat 50% 100%;
  display: block;
  height: 10px;
  overflow: hidden;
  text-indent: 101%;
  white-space: nowrap;
}

.navbar form {
  margin: 0;
}

:not(.inline-item) > .loading-animation {
  margin-bottom: 20px;
  margin-top: 20px;
}
.product-menu .loading-animation {
  margin-top: 160px;
}

@keyframes lfr-drop-active {
  0% {
    background-color: #ebebeb;
    border-color: #ddd;
  }
  50% {
    background-color: #ddedde;
    border-color: #7d7;
    transform: scale(1.1);
  }
  75% {
    background-color: #ddedde;
    border-color: #7d7;
  }
  100% {
    background-color: #ebebeb;
    border-color: #ddd;
  }
}
.lfr-upload-container .progress-bar,
.lfr-upload-container .progress {
  border-radius: 10px;
}
.lfr-upload-container .upload-file,
.lfr-upload-container .upload-target {
  border-radius: 5px;
}
.upload-drop-active .lfr-upload-container .upload-target {
  animation: none;
}
.upload-drop-intent .lfr-upload-container .upload-target {
  animation: lfr-drop-active 1s ease 0.2s infinite;
}

.select-files {
  border-radius: 5px;
}

.taglib-form-navigator > .form-steps > ul.form-navigator.list-group {
  box-shadow: none;
}
.taglib-form-navigator > .form-steps > ul.form-navigator.list-group .tab .tab-label:hover .number, .taglib-form-navigator > .form-steps > ul.form-navigator.list-group .tab .tab-label:focus .number {
  box-shadow: 0 0 5px 0 #333;
  transition-duration: 0.25s;
  transition-property: box-shadow;
  transition-timing-function: ease-out;
}
.taglib-form-navigator > .form-steps > ul.form-navigator.list-group .tab .tab-label .number {
  border-radius: 50%;
}

@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.lfr-progress-active .progress-bar-status,
.lfr-upload-container .file-uploading .progress-bar .progress {
  animation: progress-bar-stripes 0.5s linear infinite;
  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.3) 25%, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.3) 50%, rgba(255, 255, 255, 0.3) 75%, rgba(255, 255, 255, 0) 75%, rgba(255, 255, 255, 0));
  background-size: 40px 40px;
  transition: width, 0.5s, ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .lfr-progress-active .progress-bar-status,
  .lfr-upload-container .file-uploading .progress-bar .progress {
    transition: none;
  }
}
.c-prefers-reduced-motion .lfr-progress-active .progress-bar-status,
.c-prefers-reduced-motion .lfr-upload-container .file-uploading .progress-bar .progress {
  transition: none;
}

@keyframes highlight-animation {
  from {
    background-color: #ffc;
  }
  to {
    background-color: transparent;
  }
}
.highlight-animation {
  animation: highlight-animation 0.7s;
}

.portlet-options.btn-group .dropdown-toggle, .portlet-options.btn-group.open .dropdown-toggle {
  box-shadow: none;
}

.form-group.form-inline.input-boolean-wrapper label, .form-group.form-inline.input-checkbox-wrapper label {
  gap: 0.3125rem;
}

/*
  //

  IMPORTE AQUI TODOS SEUS ARQUIVOS *.SCSS

  //
*/
/* ABSTRACTS (prototype — tokens, keyframes; nada gera CSS de layout por si) */
/* ─────────────────────────────────────────────────────────────
 * Design tokens — Sistema Fecomércio MG · Sesc · Senac (B2B)
 * Alinhado ao Guia de Diretrizes Estratégicas B2B (v1.0, jul/2025).
 * Azul #004C99 (Pantone 288C) é a cor PRIMÁRIA dominante — a cor
 * "incomum entre as casas". Trio quente de acentos = as casas:
 * dourado Fecomércio, amarelo Sesc, laranja Senac. Fonte: Roboto.
 *
 * NOTA: estas são custom properties de CSS (`--x`), não $variables do
 * Sass — de propósito. `--fs` é mutado em runtime por JS (useA11y) e
 * `body.hc{...}` abaixo troca vários tokens via classe; nenhum dos dois
 * é possível com $variables do Sass (resolvidas em build-time).
 * ───────────────────────────────────────────────────────────── */
:root {
  /* Canvas escuro global (imagem de fundo definida em base/_global.scss). Cards e
     superfícies permanecem CLAROS (--surface) para destacar sobre o escuro.
     Ancorado no azul oficial (--brand-blue-deep), não num navy neutro à parte —
     evita o canvas "cair" para um tom acinzentado/arroxeado quando muito escuro. */
  --bg:var(--brand-blue-deep);
  --surface:#fff;
  --surface-2:#eef2f9;
  --surface-3:#e6edf7;
  --fg:#16233b;
  --fg-2:#33415c;
  --muted:#5a677d;
  --border:#e2e8f2;
  --border-2:#d4dcea;
  /* Texto/acentos sobre o fundo escuro (fora de cards) */
  --on-dark:#eef4ff;
  --on-dark-2:#c6d6f0;
  --on-dark-muted:#93a6c6;
  --on-dark-blue:#8fbaff;
  --on-dark-accent:#e9be72;
  /* ── Marca (oficial) ── */
  --brand-blue:#004c99; /* PRIMÁRIA · Pantone 288C · dominante */
  --brand-blue-deep:#003a75;
  --brand-blue-bright:#0061c3;
  --brand-gold:#ad841f; /* Fecomércio · Pantone 872C/1255C */
  --brand-yellow:#f6be00; /* Sesc · Pantone 7408C */
  --brand-orange:#f7941d; /* Senac · Pantone 144C */
  --brand-signature-bg:#eee; /* fundo da assinatura do Sistema no manual de marca */
  /* Aliases legados (mantidos p/ não reescrever todo o CSS de uma vez) */
  --senac-blue:var(--brand-blue);
  --sesc-blue:var(--brand-blue-bright);
  --blue-bright:var(--brand-blue-bright);
  --senac-orange:var(--brand-orange);
  --sesc-yellow:var(--brand-yellow);
  /* Semânticos */
  --success:#1f8f5f;
  --warn:#e8a000;
  --danger:#d64545;
  --on-blue:#fff;
  /* Mapa */
  --water:#e7eefb;
  --land:#fbfcfe;
  --land-2:#f2f6fc;
  --route:#8aa6d6;
  /* Gradientes-assinatura */
  --grad-blue:linear-gradient(135deg,var(--brand-blue-deep) 0%,var(--brand-blue) 52%,var(--brand-blue-bright) 100%);
  --grad-warm:linear-gradient(135deg,var(--brand-orange) 0%,var(--brand-yellow) 100%);
  /* Trio dos semicírculos — ordem travada amarelo → laranja → dourado */
  --grad-warm-3:linear-gradient(90deg,var(--brand-yellow) 0%,var(--brand-orange) 50%,var(--brand-gold) 100%);
  /* Elevação / vidro */
  --shadow-lite:0 10px 34px rgba(90,131,196,.16),0 2px 8px rgba(22,35,59,.06);
  --elev:0 2px 8px rgba(22,35,59,.08);
  --elev-2:0 16px 44px rgba(22,35,59,.16);
  --glass:color-mix(in srgb,#fff 66%,transparent);
  --glass-border:color-mix(in srgb,#fff 70%,transparent);
  /* Tipografia — Roboto (fonte oficial da marca) */
  --font-display:"Roboto",-apple-system,system-ui,sans-serif;
  --font-body:"Roboto",-apple-system,system-ui,sans-serif;
  --font-mono:ui-monospace,"JetBrains Mono","SF Mono",Menlo,monospace;
  /* Escala tipográfica — degraus enxutos para texto de "corpo" (parágrafos,
     labels, meta-texto, chips) usados em toda a UI. Variações de destaque
     devem vir de cor/peso (ver classes utilitárias em base/_helpers.scss),
     não de um font-size novo. Títulos grandes de página (h1/h2, hero) usam
     clamp() dedicado por serem escolhas deliberadas de layout responsivo —
     não fazem parte desta escala (ver base/_typography.scss). */
  --fz-micro:10px; /* selos/timestamps minúsculos (map-attrib, ph-tag) */
  --fz-caption:11px; /* eyebrow, badges, labels uppercase, legendas */
  --fz-sm:12px; /* meta-texto secundário (datas, contadores, chips) */
  --fz-base:13px; /* texto padrão de componentes (cards, listas, nav) */
  --fz-md:14px; /* corpo levemente maior (parágrafos de destaque) */
  --fz-lg:16px; /* leads / corpo principal de conteúdo longo */
  --fz-xl:18px; /* subtítulos de seção */
  --fz-h3:20px; /* títulos de bloco (.sec-title) */
  /* Raios / medidas de layout */
  --r-sm:8px;
  --r-md:12px;
  --r-lg:16px;
  --r-pill:9999px;
  --hdr:120px;
  --rail-w:376px;
  --rail-w-x:648px;
  /* Movimento (usado por abstracts/_animations.scss; anulado sob prefers-reduced-motion) */
  --motion-slow:.6s;
  --motion-float:15s;
  --ease-brand:cubic-bezier(.22,.61,.36,1);
  /* Escala de fonte acessível (controlada em runtime) */
  --fs:1;
  /* Grid (largura de gutter e container do #content fora de .container) */
  --gutter-width:30px;
  --container-max-xl:1140px;
}

/* Alto contraste (acessibilidade) */
body.hc {
  --bg:#fff;
  --surface:#fff;
  --fg:#000;
  --muted:#333;
  --border:#000;
  --border-2:#000;
  --water:#e9eefb;
}

/* Reservado (padrão 7-1). Nenhuma função Sass própria necessária no momento. */
/* EXEMPLO DE USO: @include transform(translate(12px, 50%)); */
/* EXEMPLO DE USO: @include make-blur(15px); */
/* EXEMPLO DE USO: @include text-truncate(2); */
/* EXEMPLO DE USO: @include make-center(); */
/* 
  EXEMPLO DE USO: 

  @include make-center();
  content: "\f417";

  ou

  @include make-center("\f417");
*/
/* Reservado (padrão 7-1). Nenhum %placeholder próprio necessário no momento. */
/* Keyframes usados pelos componentes/páginas (brand, usermenu, autocomplete,
   pulso "ao vivo" do mapa, toast do mapa). Centralizados aqui por convenção
   7-1; cada regra que os usa continua no seu arquivo de origem. */
@keyframes brand-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-14px);
  }
}
@keyframes brand-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes um-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes ac-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 55%, transparent);
  }
  70% {
    box-shadow: 0 0 0 8px transparent;
  }
  100% {
    box-shadow: 0 0 0 0 transparent;
  }
}
@keyframes tin {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
/* VENDORS (prototype — Sass-source do Bootstrap: só functions/variables/mixins de breakpoint) */
/* O pacote npm "bootstrap" não é dependência do tema (main.scss compila via
   liferay-frontend-theme-styled/-unstyled, sem hoisting garantido fora do
   monorepo). Os mixins media-breakpoint-up()/down() e o $grid-breakpoints já
   chegam globalmente no escopo do Sass antes de _custom.scss ser importado,
   via main.scss → _imports.scss → clay/atlas-variables → clay/_mixins →
   clay/mixins/_breakpoints (pacote liferay-frontend-theme-unstyled, já
   devDependency do tema) — mesma implementação do Bootstrap 4. Nada a
   importar aqui. */
/* BASE */
/* EXEMPLO DE USO: @include transform(translate(12px, 50%)); */
/* EXEMPLO DE USO: @include make-blur(15px); */
/* EXEMPLO DE USO: @include text-truncate(2); */
/* EXEMPLO DE USO: @include make-center(); */
/* 
  EXEMPLO DE USO: 

  @include make-center();
  content: "\f417";

  ou

  @include make-center("\f417");
*/
.bg-lighter {
  background-color: #f7f8f9 !important;
}

.border-lighter {
  border-color: #f7f8f9 !important;
}

.text-lighter {
  color: #f7f8f9 !important;
}

.bg-gray-dark {
  background-color: #393a4a !important;
}

.border-gray-dark {
  border-color: #393a4a !important;
}

.text-gray-dark {
  color: #393a4a !important;
}

.bg-body,
.public-page {
  -webkit-font-smoothing: antialiased;
  background-color: var(--bg);
  background-image: radial-gradient(56% 46% at 84% 2%, rgba(247, 148, 29, 0.38), transparent 62%), radial-gradient(46% 42% at 6% 10%, rgba(246, 190, 0, 0.26), transparent 60%), radial-gradient(54% 52% at 96% 78%, rgba(173, 132, 31, 0.34), transparent 62%), radial-gradient(60% 55% at 10% 100%, rgba(0, 97, 195, 0.16), transparent 60%), linear-gradient(160deg, var(--brand-blue-deep) 0%, var(--brand-blue) 100%);
  background-attachment: fixed;
}

.private-page {
  background: var(--surface-2);
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

/* ── Neutraliza defaults do reboot do Bootstrap 4.6 (carregado antes deste
   arquivo) que colidiriam com o visual atual ── */
a:hover {
  text-decoration: none;
}

label {
  margin-bottom: 0;
}

.btn:focus {
  box-shadow: none;
}

.btn-block + .btn-block {
  margin-top: 0;
}

img, svg {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  cursor: pointer;
  color: inherit;
  background: none;
  border: 0;
}

p {
  margin: 0;
}

/* ── Escala de títulos (h1–h6) ────────────────────────────────────────────
   Cada nível carrega seu próprio font-size/weight — usar a TAG (ou, quando a
   profundidade do documento não bate com o papel visual, uma das classes
   .tp-* abaixo), nunca declarar font-size de título de novo num componente.
   Variações do mesmo título são só de cor (text-fg-2, text-on-dark…) — ver
   base/_helpers.scss.
     h1  clamp(26–38px)  título de página (page-head, hero de unidade/notícia)
     h2  20px            título de seção dentro da página (.sec-title, com ícone)
     h3  16px            título de card/item de lista (fleet, catálogo…)
     h4  14px            sub-título raro, um degrau abaixo do h3
     h5/h6 13px          reserva, não usado hoje

   Exceções de papel visual (tag certa p/ hierarquia do documento, tamanho
   diferente do padrão do nível) — aplicar via className, escopado ao
   contexto (mesmo padrão de antes, valor único e documentado aqui):
     .tp-h1-lg  clamp(32–58px)  hero de destaque (Home)      → .hero-inner h1
     .tp-h1-sm  24px            título compacto (card estreito) → admin-card/
                                admin-head/rail-head/ph-title h1
     .tp-h2-lg  clamp(24–32px) título de seção de marketing (blocos da Home)

   Tokens de texto "corpo" (parágrafos, labels, meta-texto) seguem em
   abstracts/_variables.scss (--fz-micro a --fz-h3, mesma lógica: um valor
   por papel, reaproveitado). */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-display);
  line-height: 1.15;
  margin: 0;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

h1 {
  font-size: clamp(26px, 3.4vw, 38px);
  font-weight: 800;
  line-height: 1.1;
}

h2 {
  font-size: 20px;
  font-weight: 700;
}

h3 {
  font-size: 16px;
  font-weight: 700;
}

h4 {
  font-size: var(--fz-md);
  font-weight: 700;
}

h5,
h6 {
  font-size: var(--fz-base);
  font-weight: 700;
}

.tp-h1-lg {
  font-size: clamp(32px, 5.4vw, 58px) !important;
  line-height: 1.05 !important;
}

.tp-h1-sm {
  font-size: 24px !important;
}

.tp-h2-lg {
  font-size: clamp(24px, 3.2vw, 32px) !important;
  font-weight: 800 !important;
}

.num {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

/* Fundo global: base azul CHAPADA (2 tons só, sem degradê de 3 azuis — é o que
   lia como "azul sobre azul") + as TRÊS cores das casas como manchas quentes
   nítidas (laranja Senac, amarelo Sesc, dourado Fecomércio). É a leitura do
   próprio manual: um azul unificador + o trio de acentos de cada casa — por
   isso não repetimos azul num blob (some contra a base). Fixo, para os cards
   claros "flutuarem" sobre o fundo ao rolar. */
body {
  margin: 0;
  color: var(--fg);
  font-family: var(--font-body);
  font-size: calc(16px * var(--fs));
  line-height: 1.55;
}

body.hc {
  background: #fff;
}

body.map-mode {
  overflow: auto;
  line-height: 1.5;
}

#root {
  min-height: 100dvh;
}

body.map-mode #root {
  height: 100dvh;
}

:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue-bright) 45%, transparent);
  border-radius: 6px;
}

/* Fallback de componente isolado (ErrorBoundary): discreto, não estoura layout */
.od-fallback {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--r-sm);
  background: var(--surface-2);
  color: var(--muted);
  font-size: 13px;
}

/* ── Utilitários atômicos de cor/peso de fonte ──────────────────────────
   Reaproveitam os tokens de cor já existentes (abstracts/_variables.scss);
   variações de um mesmo texto (título, label, meta-texto) devem trocar só
   a classe de cor/peso, não ganhar font-size/CSS ad-hoc novo.
   Peso: Bootstrap 4.6 já cobre 400/700 (.font-weight-normal/.font-weight-bold)
   — use-os direto no JSX. .fw-600/.fw-800 preenchem os degraus que faltam
   (22 e 13 ocorrências hoje, respectivamente, espalhadas em CSS ad-hoc). */
.text-fg {
  color: var(--fg) !important;
}

.text-fg-2 {
  color: var(--fg-2) !important;
}

.text-muted-2 {
  color: var(--muted) !important;
}

.text-on-dark {
  color: var(--on-dark) !important;
}

.text-on-dark-2 {
  color: var(--on-dark-2) !important;
}

.text-on-dark-muted {
  color: var(--on-dark-muted) !important;
}

.icon-on-dark {
  color: var(--on-dark-accent) !important;
}

.fw-600 {
  font-weight: 600 !important;
}

.fw-800 {
  font-weight: 800 !important;
}

/* Tela de status (carregando/erro/não encontrado) centralizada — repetida
   em várias páginas (UnitPage, NoticiaDetailPage) como o conteúdo do
   <main> enquanto os dados ainda não chegaram. */
.status-page {
  padding: 48px 24px;
  text-align: center;
}

/* ── Proporção de largura entre campos de um form-row ─────────────────────
   Bootstrap tem .flex-grow-1 (só flex-grow, mantém basis:auto), não o atalho
   `flex: N` (grow+shrink+basis:0%) usado nos forms do admin pra dividir a
   linha em proporções (1:1, 1:2 etc.) — sem isso os campos não ficam do
   mesmo tamanho relativo. */
.flex-1 {
  flex: 1 !important;
}

.flex-2 {
  flex: 2 !important;
}

/* Roboto (fonte da marca) é carregada via <link> do Google Fonts em
   index.html — não há @font-face local para declarar aqui. */
/* PORTLET */
html:not(#__):not(#___) .portlet {
  margin-bottom: 0;
}
html:not(#__):not(#___) .portlet:hover > .cadmin.portlet-topper, html:not(#__):not(#___) .portlet.open > .cadmin.portlet-topper {
  z-index: 999;
}
html:not(#__):not(#___) .portlet > .cadmin.portlet-topper {
  font-size: 13.92px;
  padding: 0 4px 0 8px;
}
@media (min-width: 768px) {
  html:not(#__):not(#___) .portlet > .cadmin.portlet-topper {
    display: block;
    white-space: nowrap;
  }
}
@media (min-width: 576px) {
  html:not(#__):not(#___) .portlet > .cadmin.portlet-topper {
    right: auto;
  }
}
html:not(#__):not(#___) .portlet > .cadmin.portlet-topper .portlet-title-default {
  display: inline-block;
  line-height: 24px;
  vertical-align: middle;
}
html:not(#__):not(#___) .portlet > .cadmin.portlet-topper .portlet-name-text {
  margin-right: 12px;
}
html:not(#__):not(#___) .portlet > .cadmin.portlet-topper .portlet-topper-toolbar {
  display: inline-block;
  vertical-align: middle;
}
html:not(#__):not(#___) .portlet > .cadmin.portlet-topper .portlet-topper-toolbar,
html:not(#__):not(#___) .portlet > .cadmin.portlet-topper .icon-monospaced {
  height: 24px;
  line-height: 24px;
  width: 24px;
}
html:not(#__):not(#___) .portlet > .cadmin.portlet-topper .portlet-topper-toolbar .component-action {
  font-size: 14px;
  height: 24px;
  margin-top: -2px;
  width: 24px;
}
html:not(#__):not(#___) .portlet-dropzone {
  box-shadow: 0 0 0 1px transparent inset;
  transition: box-shadow 300ms ease-in-out;
  will-change: box-shadow;
}
html:not(#__):not(#___) .yui3-dd-drop-active-valid .portlet-dropzone {
  box-shadow: 0 0 0 1px rgba(0, 74, 215, 0.2) inset;
}
html:not(#__):not(#___) .yui3-dd-drop-over .portlet-dropzone {
  box-shadow: 0 0 0 4px #004ad7 inset;
}

.portlet-layout .portlet .management-bar > .container-fluid-max-xl,
.portlet-layout .portlet .navbar-underline > .container-fluid-max-xl {
  padding-left: 0;
  padding-right: 0;
}
.portlet-layout .portlet .portlet-title-text {
  color: #6b6c7e;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 2.2;
  text-transform: uppercase;
}

.portlet > .portlet-topper {
  font-size: 0.87rem;
  padding: 0 4px 0 8px;
}
@media (min-width: 768px) {
  .portlet > .portlet-topper {
    display: block;
    white-space: nowrap;
  }
}
@media (min-width: 576px) {
  .portlet > .portlet-topper {
    right: auto;
  }
}
.portlet > .portlet-topper .portlet-title-default {
  display: inline-block;
  line-height: 1.5rem;
  vertical-align: middle;
}
.portlet > .portlet-topper .portlet-name-text {
  margin-right: 0.75rem;
}
.portlet > .portlet-topper .portlet-topper-toolbar {
  display: inline-block;
  vertical-align: middle;
}
.portlet > .portlet-topper .portlet-topper-toolbar,
.portlet > .portlet-topper .icon-monospaced {
  height: 1.5rem;
  line-height: 1.5rem;
  width: 1.5rem;
}
.portlet > .portlet-topper .portlet-topper-toolbar .component-action {
  height: 1.5rem;
  width: 1.5rem;
}
.portlet > .portlet-topper .lexicon-icon {
  height: 0.875rem;
  width: 0.875rem;
}
.portlet:hover > .portlet-topper, .portlet.open > .portlet-topper {
  z-index: 999;
}

.portlet-dropzone {
  box-shadow: 0 0 0 1px transparent inset;
  transition: box-shadow 300ms ease-in-out;
  will-change: box-shadow;
}
.yui3-dd-drop-active-valid .portlet-dropzone {
  box-shadow: 0 0 0 1px rgba(0, 74, 215, 0.2) inset;
}
.yui3-dd-drop-over .portlet-dropzone {
  box-shadow: 0 0 0 4px #004ad7 inset;
}

.portlet-journal-content.portlet-barebone .portlet .portlet-header {
  right: 1.5rem;
  top: 1rem;
}
.portlet-journal-content .portlet .portlet-header .visible-interaction .dropdown-action > button {
  background-color: var(--brand-blue-deep);
  color: var(--brand-signature-bg);
  border-radius: 5000px;
  width: 44px;
  box-shadow: var(--shadow-lite);
  position: relative;
  z-index: 9;
  transform: scale(0.8);
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  /* EXEMPLO DE USO: @include transition(all 0.3s ease-in-out); */
}
.portlet-journal-content .portlet .portlet-header .visible-interaction .dropdown-action > button:hover {
  transform: scale(1);
}

.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .portlet-column-content {
  height: 100%;
}
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .portlet-boundary {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .portlet,
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .portlet-content,
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .portlet-content-container,
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .portlet-body,
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) client-unidades-moveis-gestao-frota-e-situacao,
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .painel-common,
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .card,
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .section-card__header {
  flex: 0 0 auto;
}
.portlet-column:has(client-unidades-moveis-gestao-frota-e-situacao) .section-card__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

.portlet-decorate .portlet,
.bg-unidades-moveis .portlet {
  margin-bottom: 0;
}
.portlet-decorate .portlet-content,
.bg-unidades-moveis .portlet-content {
  border-radius: 0.25rem;
  background: transparent;
  border-color: transparent;
  padding: 0;
}
.portlet-decorate .portlet-title-text,
.bg-unidades-moveis .portlet-title-text {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sesc-blue);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.portlet-decorate .portlet-title-text::before,
.bg-unidades-moveis .portlet-title-text::before {
  content: "";
  width: 22px;
  height: 13px;
  flex: 0 0 auto;
  background: no-repeat left center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 165 100'%3E%3Cpath d='M0 0 A50 50 0 0 1 0 100 Z' fill='%23f6be00'/%3E%3Cpath d='M57.5 0 A50 50 0 0 1 57.5 100 Z' fill='%23f7941d'/%3E%3Cpath d='M115 0 A50 50 0 0 1 115 100 Z' fill='%23ad841f'/%3E%3C/svg%3E");
}

.portlet-barebone .panel,
.portlet-borderless .panel {
  background-color: transparent;
}
.portlet-barebone .panel.card,
.portlet-borderless .panel.card {
  border-color: #cdced9;
  box-shadow: none;
}
.portlet-barebone .panel-default,
.portlet-borderless .panel-default {
  border-color: #cdced9;
}
.portlet-barebone .widget-mode-detail,
.portlet-borderless .widget-mode-detail {
  background-color: transparent;
}

.portlet-borderless > .portlet > .portlet-content > .portlet-header,
.portlet-boundary.no-max-width > .portlet > .portlet-content > .portlet-header {
  margin-bottom: 0;
  height: 0;
}
.portlet-borderless > .portlet > .portlet-content > .portlet-header .autofit-col-expand,
.portlet-boundary.no-max-width > .portlet > .portlet-content > .portlet-header .autofit-col-expand {
  display: none;
}
.portlet-borderless .portlet-content,
.portlet-boundary.no-max-width .portlet-content {
  padding: 0;
}

.bg-unidades-moveis .portlet-content {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: var(--grad-blue);
  color: #fff;
  border-radius: var(--r-lg);
  padding: 24px;
  margin: 16px 0;
}
.bg-unidades-moveis .portlet-content::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle 38px at 50% 100%, rgba(255, 255, 255, 0.075) 0 100%, transparent 100%), radial-gradient(circle 38px at 50% 100%, rgba(255, 255, 255, 0.04) 0 100%, transparent 100%);
  background-size: 76px 76px, 76px 76px;
  background-position: center bottom, center calc(100% - 38px);
  background-repeat: repeat;
}

.lfr-configurator-visibility {
  opacity: 0.4;
  -webkit-transition: all 0.15s ease-in-out;
  -moz-transition: all 0.15s ease-in-out;
  -ms-transition: all 0.15s ease-in-out;
  -o-transition: all 0.15s ease-in-out;
  transition: all 0.15s ease-in-out;
  /* EXEMPLO DE USO: @include transition(all 0.3s ease-in-out); */
}
.lfr-configurator-visibility:hover {
  opacity: 1;
}

/* 
	## VARIÁVEIS ##
*/
/* CONFIGURAÇÕES PARA PÁGINAS PÚBLICAS */
.bg-body .portlet-layout .portlet .portlet-title-text,
.public-page .portlet-layout .portlet .portlet-title-text {
  color: var(--on-dark-blue);
}

#content {
  padding-bottom: 48px;
  display: flex;
  flex-direction: column;
}
#content:not(.container) > .columns-1 {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
#content:not(.container) > .columns-1 > .portlet-layout {
  flex-grow: 1;
  margin-left: 0;
  margin-right: 0;
}
#content:not(.container) > .columns-1 > .portlet-layout > .portlet-column-only {
  padding-left: 0;
  padding-right: 0;
}
#content:not(.container) > .columns-1 > .portlet-layout > .portlet-column-only > .portlet-column-content-only {
  height: 100%;
}
#content:not(.container) > .columns-1 > .portlet-layout > .portlet-column-only > .portlet-column-content-only > .portlet-boundary:not(.no-max-width) {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
#content:not(.container) > .columns-1 > .portlet-layout > .portlet-column-only > .portlet-column-content-only > .portlet-boundary:not(.no-max-width) > .portlet {
  margin-left: auto;
  margin-right: auto;
  padding-left: calc(var(--gutter-width) / 2);
  padding-right: calc(var(--gutter-width) / 2);
  width: 100%;
  max-width: var(--container-max-xl);
}
#content:not(.container) > .columns-1 > .portlet-layout > .portlet-column-only > .portlet-column-content-only > .portlet-boundary:not(.no-max-width) > .portlet > .cadmin.portlet-topper {
  left: auto !important;
}

#main-content:not(.columns-1) .portlet-layout + .portlet-layout {
  margin-top: 24px;
}
#main-content:not(.columns-1) .portlet-boundary + .portlet-boundary {
  margin-top: 24px;
}

.columns-max {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
.columns-max > .portlet-layout {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
.columns-max > .portlet-layout > .portlet-column-only {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
.columns-max > .portlet-layout > .portlet-column-only > .portlet-boundary {
  flex-grow: 1;
}

/* CONFIGURAÇÕES PARA DESLOGADO */
.signed-out .lfr-configurator-visibility,
.controls-hidden .lfr-configurator-visibility {
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden;
}
.signed-out .portlet-dropzone.empty,
.controls-hidden .portlet-dropzone.empty {
  display: none;
}

/* LAYOUT */
header .field-wrapper {
  position: absolute;
  right: 4px;
  top: 2px;
}
header .field-wrapper a {
  color: #fff;
}
header .field-wrapper,
header .form-group {
  margin-bottom: 0;
}
header .portlet {
  margin-bottom: 0;
}
header .portlet:hover {
  z-index: 1034;
}
header .search-input {
  font-size: 0.88rem;
  padding: 0.28rem 2rem 0.28rem 1rem;
}
header .text-default {
  color: #6b6c7e;
  font-weight: 600;
}
header .user-personal-bar .fieldset {
  position: relative;
}
header .user-personal-bar .user-avatar-link .panel-notifications-count {
  right: calc(100% - 1rem);
  top: -0.6rem;
}

.user-avatar-link {
  display: block;
  position: relative;
}
.user-avatar-link .panel-notifications-count {
  display: block;
  margin: 0;
  max-width: none;
  position: absolute;
  right: calc(100% - 0.7rem);
  top: -0.4rem;
}
.user-avatar-link .text-default {
  align-items: center;
  display: flex;
}
.user-avatar-link .text-default .user-full-name {
  margin-left: 0.5rem;
}
@media (max-width: 575.98px) {
  .user-avatar-link .text-default .user-full-name {
    display: none;
  }
}

@media (min-width: 576px) {
  .btn-group + .info-panel {
    top: auto;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Prototype (Sesc + Senac · Unidades Móveis) — de prototype/src/styles/layout/_header.scss
   ═══════════════════════════════════════════════════════════════ */
.navbar-fecomercio-strip {
  width: 100%;
  position: relative;
  z-index: 61;
  background: white;
  border-bottom: 1px solid #f2f2f2;
}

.navbar-fecomercio-strip .strip-inner {
  max-width: 1200px;
  margin-inline: auto;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
}

.navbar-fecomercio-strip img {
  width: 100%;
  max-width: 276px;
  height: auto;
}

@media (max-width: 575.98px) {
  .navbar-fecomercio-strip .strip-inner {
    padding: 6px 12px;
  }
  .navbar-fecomercio-strip img {
    max-width: 420px;
  }
}
header.top {
  position: relative;
  height: var(--hdr);
  flex: 0 0 auto;
  gap: 16px;
  padding: 0 24px;
  z-index: 60;
  background: var(--brand-signature-bg);
  border-bottom: 1px solid var(--border);
}

header.top.sticky {
  position: sticky;
  top: 0;
}

.top-left,
.top-right {
  flex-basis: 0;
  min-width: 0;
}

.top-left {
  gap: 16px;
}

.cobrand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  --cobrand-h: 120px;
}

.cobrand-logo {
  height: var(--cobrand-h);
  width: auto;
  max-width: 100%;
  object-fit: contain;
  display: block;
}

.campaign {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.15;
  max-width: 16ch;
}

.campaign b {
  display: block;
  color: var(--fg);
  font-weight: 700;
  font-family: var(--font-display);
  font-size: 13px;
}

nav.mainnav {
  flex: 0 1 auto;
  display: flex;
  justify-content: center;
  align-items: center;
}

nav.mainnav .navbar-nav {
  display: flex;
  flex-direction: row;
  gap: 4px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

nav.mainnav .nav-item {
  display: flex;
}

nav.mainnav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0;
  background: none;
  font-size: 14px;
  font-weight: 500;
  color: var(--fg-2);
  padding: 8px 12px;
  border-radius: var(--r-sm);
  transition: background-color 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;
  line-height: inherit;
  cursor: pointer;
}

nav.mainnav .nav-link:hover {
  color: #fff;
  background: var(--brand-orange);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--brand-orange) 45%, transparent);
}

nav.mainnav .nav-link[aria-current],
nav.mainnav .nav-item.active .nav-link {
  color: white;
  font-weight: 700;
  background: var(--senac-blue);
}

nav.mainnav a.btn-primary {
  color: #fff;
}

.top-right {
  gap: 8px;
}

.icobtn.nav-toggle {
  display: none;
}

.icobtn {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: var(--r-sm);
  color: var(--fg-2);
  transition: 0.15s;
}

.icobtn:hover {
  border-color: var(--border-2);
  background: var(--surface-2);
}

.a11y {
  display: inline-flex;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  overflow: hidden;
}

.a11y button {
  width: 38px;
  height: 40px;
  display: grid;
  place-items: center;
  background: var(--surface);
  border: 0;
  color: var(--fg-2);
}

.a11y button + button {
  border-left: 1px solid var(--border);
}

.a11y button:hover {
  background: var(--surface-2);
}

.a11y button[aria-pressed=true] {
  background: var(--sesc-blue);
  color: #fff;
}

.a11y .sign {
  font-size: 9px;
}

.menu-toggle {
  display: none;
}

@media (max-width: 991.98px) {
  nav.mainnav {
    position: absolute;
    top: var(--hdr);
    left: 0;
    right: 0;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    padding: 8px 16px 16px;
    box-shadow: var(--elev);
    display: none;
    z-index: 59;
  }
  nav.mainnav .navbar-nav {
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
  }
  header.top.nav-open nav.mainnav {
    display: flex;
  }
  nav.mainnav .nav-link {
    padding: 13px 14px;
    font-size: 15px;
  }
  nav.mainnav .btn-primary {
    margin-top: 8px;
    justify-content: center;
    width: 100%;
  }
  .icobtn.nav-toggle {
    display: grid;
  }
  .icobtn.nav-toggle.navbar-toggler {
    padding: 0;
    width: 44px;
    height: 44px;
  }
}
@media (max-width: 575.98px) {
  .cobrand {
    --cobrand-h: 98px;
    flex: 0 1 auto;
    min-width: 0;
  }
  header.top {
    gap: 10px;
    padding: 0 16px;
  }
  .a11y {
    display: none;
  }
}
#footer {
  color: #fff;
  margin-top: 1rem;
}
#footer > .container {
  padding-bottom: 3rem;
  padding-top: 3rem;
}

/* ═══════════════════════════════════════════════════════════════
   Prototype (Sesc + Senac · Unidades Móveis) — de prototype/src/styles/layout/_footer.scss
   ═══════════════════════════════════════════════════════════════ */
.site-footer {
  position: relative;
  border-top: 1px solid var(--border);
  background: var(--surface);
  padding: 24px 0;
  color: var(--muted);
  font-size: 13px;
}

.site-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad-warm-3);
}

.site-footer .foot-in {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 28px;
  align-items: center;
  justify-content: space-between;
}

.site-footer .foot-brand {
  height: 150px;
  width: auto;
}

.site-footer .foot-txt {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: right;
}

.site-footer .foot-motif {
  margin-left: auto;
  margin-bottom: 2px;
  opacity: 0.9;
}

.site-footer a {
  color: inherit;
  text-decoration: underline;
}

.site-footer a:hover,
.site-footer a:focus {
  color: var(--brand-orange);
}

@media (max-width: 575.98px) {
  .site-footer .foot-in {
    flex-direction: column;
    align-items: flex-start;
  }
  .site-footer .foot-txt {
    width: 100%;
    text-align: left;
  }
}
.unit-page footer {
  border-top: 1px solid var(--border);
  background: var(--surface);
  padding: 24px 0;
  color: var(--muted);
  font-size: 13px;
}

.unit-page .foot-in {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
}

.info-panel .sidebar > .sidenav-close {
  float: right;
  margin: 16px 16px 0 8px;
}
.info-panel .sidebar > .sidenav-close + .info-panel-content .sidebar-header > .autofit-row {
  width: auto;
}
.info-panel .sidenav-close {
  float: none;
  margin: 0;
}
.info-panel .sidebar-header .component-title {
  font-size: 16px;
  font-weight: 600;
}
.info-panel .sidebar-header .component-subtitle {
  font-size: 14px;
  font-weight: 600;
}
.info-panel .sidebar-header .autofit-padded-no-gutters {
  margin-left: -4px;
  margin-right: -4px;
}
.info-panel .sidebar-header .autofit-padded-no-gutters .autofit-col {
  padding-left: 4px;
  padding-right: 4px;
}
.info-panel .sidebar-body .sidebar-section {
  margin-bottom: 16px;
}

.sidebar-light .sidebar-header .text-default {
  color: #6b6c7e;
  font-size: 0.875rem;
  font-weight: 400;
}
.sidebar-light .sidebar-header .icon-monospaced {
  color: #6b6c7e;
}
.sidebar-light .navbar-collapse {
  border-bottom: 1px solid #cdced9;
}
@media (min-width: 576px) {
  .sidebar-light .navigation-bar-light,
  .sidebar-light .sidebar-section > .list-group-item,
  .sidebar-light .panel,
  .sidebar-light .panel-group .panel {
    background-color: transparent;
    border-color: transparent;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Prototype (Sesc + Senac · Unidades Móveis) — de prototype/src/styles/layout/_sidebar.scss
   As duas "sidebars" do app (o rail do mapa e a aside.side do UnitPage) não
   são reutilizadas entre páginas — cada uma vive inteira no arquivo da sua
   página: rail do mapa (aside.rail) → pages/_map.scss; sidebar do UnitPage
   (aside.side) → pages/_unit-detail.scss.
   ═══════════════════════════════════════════════════════════════ */
.widget-mode-detail {
  background-color: #fff;
}
.widget-mode-detail .title {
  color: #272833;
  font-weight: 700;
  line-height: 1.25;
}
.widget-mode-detail .sub-title {
  color: #a0a1b0;
  font-weight: 400;
}
.widget-mode-detail .widget-metadata {
  font-size: 0.875rem;
}
.widget-mode-detail .widget-metadata .inline-item-before {
  margin-right: 1rem;
}
.widget-mode-detail .widget-metadata .username {
  color: #272833;
  font-weight: 600;
  line-height: 2;
}
.widget-mode-detail .aspect-ratio {
  padding-bottom: 480px;
}

.widget-mode-card .card {
  border-radius: 8px;
}
.widget-mode-card .card-header {
  border-radius: 8px 8px 0 0;
}
.widget-mode-card .card-body {
  padding: 24px;
}
.widget-mode-card .widget-topbar .title-link {
  color: #272833;
}
.widget-mode-card .widget-topbar .title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-right: 24px;
}
.widget-mode-card .widget-metadata {
  font-size: 0.875rem;
  margin-bottom: 16px;
}
.widget-mode-card .widget-metadata .inline-item-before {
  margin-right: 1rem;
}
.widget-mode-card .widget-metadata .username {
  color: #272833;
  font-weight: 600;
}
.widget-mode-card .widget-resume {
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 0;
}
.widget-mode-card .card-footer {
  background-color: transparent;
  padding: 0 1rem 1rem;
}
.widget-mode-card .widget-toolbar {
  border-top: 1px solid #e7e7ed;
  padding-top: 8px;
}

.widget-mode-simple .widget-mode-simple-entry:not(:last-child) {
  border-bottom: 1px solid #e7e7ed;
  margin-bottom: 24px;
  padding-bottom: 24px;
}
.widget-mode-simple .widget-topbar .title-link {
  color: #272833;
}
.widget-mode-simple .widget-topbar .title {
  font-size: 1.75rem;
  font-weight: 700;
}
.widget-mode-simple .widget-metadata {
  font-size: 0.875rem;
}
.widget-mode-simple .widget-metadata .inline-item-before {
  margin-right: 1rem;
}
.widget-mode-simple .widget-metadata .username {
  color: #272833;
  font-weight: 600;
}

.widget-toolbar .autofit-col:first-of-type > .btn-outline-borderless {
  margin-left: -0.75rem;
}

.navbar-top {
  padding-bottom: 0.907rem;
  padding-top: 0.907rem;
}
.navbar-top .portlet:hover, .navbar-top .portlet.open {
  z-index: 1035;
}

.navbar-blank {
  flex-wrap: wrap;
}
.navbar-blank .lexicon-icon {
  font-size: 0.625rem;
  margin: 0 0 0 0.25rem;
}

.navbar-classic {
  background-color: #fff;
}
.navbar-classic.navbar-light {
  border-bottom: 1px solid #e7e7ed;
}
@media (max-width: 575.98px) {
  .navbar-classic .navbar-blank {
    margin-top: 1rem;
  }
}
.navbar-classic .navbar-form {
  padding: 0;
}
.navbar-classic .navbar-form .field-wrapper {
  right: 0;
  top: 0;
}
.navbar-classic .navbar-form .field-wrapper .lfr-icon-item {
  color: #6b6c7e;
}
@media (max-width: 767.98px) {
  .navbar-classic .portlet-search-bar {
    width: 100%;
  }
}
.navbar-classic .portlet-search-bar .input-group-item {
  margin-left: 0;
}
.navbar-classic .logo:hover {
  text-decoration: none;
}
@media (min-width: 992px) {
  .navbar-classic .navbar-nav .nav-item:not(:last-of-type) .nav-link {
    margin-right: 16px;
  }
}
.navbar-classic .nav-link {
  color: #6b6c7e;
  font-size: 0.9375rem;
  font-weight: 600;
}

/* Listagens de cards — grid nativo do Bootstrap: .row no container e, pra
   cada item, um wrapper <div class="col-12 col-md-N mb-4"> envolvendo o
   card (não a classe .col direto no próprio card — mistura a largura de
   coluna com o componente e quebra o gutter). Gutter horizontal e o
   espaçamento vertical entre linhas (mb-4) são 100% do Bootstrap, sem
   gap/CSS Grid custom. As contagens por breakpoint (ver JSX de cada
   página) aproximam o antigo `repeat(auto-fill, minmax(Npx,1fr))`. 
*/
.uni-grid {
  padding-bottom: 24px;
}

.news-grid {
  padding-bottom: 24px;
}

.artigo-galeria {
  margin: 24px 0;
}

.lfr-layout-structure-item-container {
  padding-left: calc(var(--gutter-width) / 2) !important;
  padding-right: calc(var(--gutter-width) / 2) !important;
}

/* Cabeçalho de página, compartilhado por várias páginas via .page-head */
.page-head h1 {
  margin: 4px 0 8px;
}

.page-head p {
  color: var(--muted);
  max-width: 660px;
  line-height: 1.6;
}

/* Breadcrumb — .unit-page é o wrapper genérico usado por quase toda página
   pública (Sobre, Solicitar, Notícias, Unidades, UnitPage etc.), não só a
   página de detalhe da unidade; por isso mora em layout/, não em pages/. 
*/
.portlet-breadcrumb > .portlet > .portlet-content > .portlet-header {
  margin-bottom: 0;
  height: 0;
}
.portlet-breadcrumb > .portlet > .portlet-content > .portlet-header .autofit-col-expand {
  display: none;
}
.portlet-breadcrumb .portlet-content {
  padding: 0;
}

.breadcrumb {
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--muted);
  background: none;
  padding: 16px 0 8px;
  margin: 0;
}

.breadcrumb-item {
  display: flex;
  align-items: center;
  color: var(--on-dark);
  margin-right: 0;
}
.breadcrumb-item a:hover {
  color: var(--on-dark) !important;
}

.breadcrumb-link {
  color: var(--on-dark);
}

.breadcrumb-item.active,
.breadcrumb-item .active {
  color: var(--on-dark);
  font-weight: var(--font-weight-semi-bold, 600);
}

.breadcrumb-item + .breadcrumb-item::before {
  display: none;
}

.breadcrumb-item + .breadcrumb-item {
  padding-left: 0;
}

.unit-page .crumb .breadcrumb-item + .breadcrumb-item {
  padding-left: 0;
}

.unit-page .crumb .breadcrumb-item + .breadcrumb-item::before {
  content: none;
}

/* Sem isso, o link herda o azul padrão do Bootstrap (.breadcrumb-item a) —
   some contra o fundo azul da marca (.unit-page fica sobre o canvas escuro
   global). Herda a cor do próprio .crumb (var(--on-dark-muted) abaixo). */
.unit-page .crumb a {
  color: var(--white);
}

.unit-page .crumb a:hover {
  color: var(--sesc-blue);
}

.unit-page .crumb .cur {
  color: var(--fg);
}

/* ── Canvas escuro: crumb e page-head ficam DIRETO sobre o fundo (fora de
   cards) em toda página que usa .unit-page — o override mora junto da
   regra-base (não numa página específica) porque se aplica a todas elas. ── */
.unit-page .crumb {
  color: var(--on-dark-muted);
}

.unit-page .crumb a:hover,
.unit-page .crumb .cur {
  color: var(--on-dark);
}

.unit-page .page-head h1 {
  color: var(--on-dark);
}

.unit-page .page-head p {
  color: var(--on-dark-2);
}

.unit-page .page-head .eyebrow {
  color: var(--on-dark-blue);
}

/* Paginação custom do rail (tela do mapa) */
.rail-pager {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 4px 16px 24px;
  margin-top: auto;
}

.rail-pager .pg-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0;
}

.pg-btn {
  width: 34px;
  height: 34px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid var(--border-2);
  background: var(--surface);
  border-radius: var(--r-pill);
  cursor: pointer;
  color: var(--fg);
  transition: 0.15s;
  line-height: inherit;
}

.pg-btn:hover:not(:disabled) {
  border-color: var(--sesc-blue);
  color: var(--sesc-blue);
  box-shadow: var(--elev);
}

.pg-btn:disabled {
  opacity: 0.35;
  cursor: default;
}

.pg-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  min-width: 96px;
  text-align: center;
}

.pg-dots {
  display: flex;
  gap: 7px;
}

.pg-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--border-2);
  cursor: pointer;
  transition: 0.15s;
}

.pg-dot:hover {
  background: var(--fg-2);
}

.pg-dot.on {
  background: var(--sesc-blue);
  transform: scale(1.25);
}

/* Paginação nativa do Liferay (Asset Publisher, Clay pagination-bar) nas
   listagens em canvas escuro — escopada via irmão de .unit-page pra não
   vazar pra outras paginações do site. */
.unit-page ~ .pagination-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 4px 16px 24px;
  margin-top: auto;
}

.unit-page ~ .pagination-bar .pagination-results {
  font-size: 12px;
  font-weight: 600;
  color: var(--on-dark-2);
  text-align: center;
  margin: 0;
}

.unit-page ~ .pagination-bar .pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.unit-page ~ .pagination-bar .page-link {
  width: 34px;
  height: 34px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.26);
  background: rgba(255, 255, 255, 0.1);
  border-radius: var(--r-pill);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: 0.15s;
}

.unit-page ~ .pagination-bar .page-link:hover {
  border-color: #fff;
  color: #fff;
}

/* Clay aplica uma barra animada via ::before no hover (padrão de link
   sublinhado) — não queremos isso nas bolinhas/pílulas do pager. */
.unit-page ~ .pagination-bar .page-link:hover::before,
.unit-page ~ .pagination-bar .page-link.hover::before {
  content: none;
}

.unit-page ~ .pagination-bar .page-item.disabled .page-link {
  opacity: 0.35;
  cursor: default;
}

/* Itens de número de página (nem o primeiro nem o último .page-item, que
   são as setas anterior/próxima) — viram bolinhas pequenas, igual ao pager
   de bolinhas do protótipo (.pg-dot), sem mostrar o dígito. */
.unit-page ~ .pagination-bar .page-item:not(:first-child):not(:last-child) .page-link {
  width: 8px;
  height: 8px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.32);
  font-size: 0;
}

.unit-page ~ .pagination-bar .page-item:not(:first-child):not(:last-child) .page-link:hover {
  background: rgba(255, 255, 255, 0.6);
}

.unit-page ~ .pagination-bar .page-item.active .page-link {
  background: #fff;
  border-color: #fff;
  transform: scale(1.25);
}

.unit-page ~ .pagination-bar .lexicon-icon {
  width: 14px;
  height: 14px;
  fill: currentColor;
}

/* Grupo de botões de zoom do mapa */
.zoomgrp {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-lite);
  overflow: hidden;
}

.zoomgrp button {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  background: var(--surface);
  border: 0;
  color: var(--fg);
}

.zoomgrp button + button {
  border-top: 1px solid var(--border);
}

.zoomgrp button:hover {
  background: var(--surface-2);
}

.portlet-login {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: var(--muted);
  position: relative;
  padding: 1.5rem 0;
}
.portlet-login .portlet-content {
  --portlet-bg: #fff;
  max-width: 520px;
  margin: 0 auto;
  border-radius: var(--r-lg);
  box-shadow: var(--elev-2);
  padding: 16px;
}
.portlet-login .panel-body {
  padding: 0;
}
.portlet-login .portlet-icon-back {
  margin-top: -2px;
  position: absolute;
  z-index: 8;
  left: -72px;
  background-color: white;
  border-radius: 5000px;
  font-size: 24px;
  height: 48px;
  width: 48px;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-shadow: var(--elev-2);
}
.portlet-login .portlet-title-text {
  color: var(--sesc-blue) !important;
  line-height: 1 !important;
}
.portlet-login .form-group {
  margin-bottom: 8px;
}
.portlet-login .control-label,
.portlet-login .form-inline label {
  font-size: 13px;
  font-weight: 600;
  color: var(--fg-2);
}
.portlet-login .form-control {
  background-color: var(--surface);
  border-color: var(--border-2);
  border-radius: var(--r-sm);
  height: auto;
  padding: 10px 12px;
}
.portlet-login [type=submit] {
  width: 100%;
}
.portlet-login .navigation {
  border-top: 1px solid var(--border);
  margin-top: 16px;
  padding-top: 16px;
}
.portlet-login .taglib-icon-list {
  margin: 0;
  display: flex;
  flex-direction: column;
}
.portlet-login .taglib-icon-list .text-4 {
  margin: 0;
  line-height: 1;
}
.portlet-login .taglib-icon-list .taglib-text {
  font-size: 13px;
  color: var(--muted);
}

.public-page .portlet-login label.control-label,
.public-page .portlet-login .input-checkbox-wrapper label {
  color: var(--fg-2) !important;
}

/* COMPONENTS */
.alert,
.portlet-msg-alert,
.portlet-msg-error,
.portlet-msg-help,
.portlet-msg-info,
.portlet-msg-progress,
.portlet-msg-success {
  margin-bottom: 0;
}

/* ── Chips / badges / stat compartilhados ── */
.badge {
  font-size: var(--fz-caption);
  font-weight: 700;
  line-height: inherit;
  padding: 2px 7px;
  border-radius: var(--r-pill);
  border: 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.badge.inst-senac {
  background: color-mix(in srgb, var(--senac-blue) 12%, #fff);
  color: var(--senac-blue);
}

.badge.inst-sesc {
  background: color-mix(in srgb, var(--sesc-blue) 12%, #fff);
  color: var(--sesc-blue);
}

.stat {
  font-size: 11px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--fg-2);
}

.stat .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.cchip {
  font-size: 12px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--fg-2);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sesc-blue);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

/* Marcador do eyebrow = trio de semicírculos da marca (amarelo→laranja→dourado) */
.eyebrow::before {
  content: "";
  width: 22px;
  height: 13px;
  flex: 0 0 auto;
  background: no-repeat left center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 165 100'%3E%3Cpath d='M0 0 A50 50 0 0 1 0 100 Z' fill='%23f6be00'/%3E%3Cpath d='M57.5 0 A50 50 0 0 1 57.5 100 Z' fill='%23f7941d'/%3E%3Cpath d='M115 0 A50 50 0 0 1 115 100 Z' fill='%23ad841f'/%3E%3C/svg%3E");
}

/* Overrides de tamanho (versões maiores, usadas dentro de .unit-page) */
.unit-page .badge {
  font-size: 11px;
  padding: 3px 9px;
}

.unit-page .stat {
  font-size: 13px;
  gap: 6px;
}

.unit-page .stat .dot {
  width: 9px;
  height: 9px;
}

/* Cor por status do veículo (hoje só "Livre" é usado neste modelo — ver
   prototype/src/data/taxonomy.js para o mapeamento completo status→cor) */
.unit-page .stat .dot.dot-livre {
  background: var(--blue-bright);
}

.unit-page .cchip {
  font-size: 13px;
  padding: 7px 12px;
  gap: 7px;
}

.unit-page .cchip i {
  font-size: 15px;
}

/* .cchip clicável (seletor de veículo da frota, ex. unidades-moveis-proximas-paradas)
   — mesmo padrão visual de estado ativo já usado no .chip[aria-pressed] do mapa público. */
.unit-page button.cchip {
  cursor: pointer;
  font: inherit;
}

.unit-page .cchip[aria-pressed=true] {
  background: var(--sesc-blue);
  border-color: var(--sesc-blue);
  color: #fff;
  font-weight: 600;
}

.unit-page .cchip[aria-pressed=true] i {
  color: #fff;
}

/* Ícone que representa a área/especialidade da unidade, destacado na cor
   da instituição (equivalente ao `ar.icon` colorido do protótipo). */
.unit-page .cchip-icon-brand {
  color: var(--sesc-blue);
}

/* Badge de tipo (catálogo admin: treinamento/serviço) */
.cat-tipo-badge {
  font-size: var(--fz-caption);
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--r-pill);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  flex: 0 0 auto;
}

.cat-tipo-badge.tipo-treinamento {
  background: color-mix(in srgb, var(--senac-blue) 12%, #fff);
  color: var(--senac-blue);
}

.cat-tipo-badge.tipo-servico {
  background: color-mix(in srgb, var(--senac-orange) 18%, #fff);
  color: var(--senac-orange);
}

/* ─────────────────────────────────────────────────────────────
 * brand.css — Elementos da identidade Sistema Fecomércio B2B.
 * Formas de semicírculo, faixa azul dominante, textura tom-sobre-tom,
 * curva-assinatura dourada e o movimento sutil (fade+subida e deriva).
 * Aplicação PONTUAL: acentos, não preenchimento. Todo movimento é
 * anulado sob prefers-reduced-motion (bloco no fim do arquivo).
 * Usado por várias páginas (Home, Sobre, Solicitar, Unidades, UnitPage,
 * Notícias) via components/brand/BrandBackdrop.jsx — não é página-específico.
 * (Keyframes brand-float/brand-rise estão em abstracts/_animations.scss)
 * ───────────────────────────────────────────────────────────── */
/* ── Entrada ao rolar (fade + subida) ── */
/* Baseado em `animation` (não `transition`) para não conflitar com o
   transition de hover dos cards. `--d` (inteiro) escalona itens irmãos;
   fill-mode both mantém o estado inicial durante o delay e o final ao terminar. */
/* ── Faixa azul dominante (aplicação digital, pg. 33) ── */
.brand-band {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: var(--grad-blue);
  color: #fff;
  border-radius: var(--r-lg);
}

.brand-band > * {
  position: relative;
  z-index: 1;
}

/* ── Textura tom-sobre-tom de semicírculos (pg. 30) ── */
/* Meio-círculo claro repetido em grade — a "textura D" do guia. Cor controlada
   por --tex; sobrepõe faixas escuras com brilho branco translúcido. */
.brand-texture {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  --tex:rgba(255,255,255,.06);
  background-image: radial-gradient(circle at 0 50%, var(--tex) 0 48%, transparent 49%);
  background-size: 84px 84px;
  background-position: center;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%);
  mask-image: linear-gradient(90deg, transparent, #000 40%);
}

/* ── Camada de fundo com semicírculos grandes (heróis/faixas) ── */
.brand-backdrop {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.bb-shape {
  position: absolute;
  height: auto;
}

.bb-1 {
  right: -3%;
  top: -14%;
  width: min(320px, 42%);
  opacity: 0.1;
  animation: brand-float 17s var(--ease-brand) infinite;
}

.bb-2 {
  right: 14%;
  bottom: -22%;
  width: min(190px, 26%);
  opacity: 0.07;
  animation: brand-float 21s var(--ease-brand) infinite reverse;
}

.brand-backdrop.warm .bb-1 {
  opacity: 0.16;
}

.brand-backdrop.warm .bb-2 {
  opacity: 0.12;
}

/* ── Acento de motif reutilizável (canto) ── */
.brand-accent {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  line-height: 0;
}

.brand-accent.tr {
  right: 16px;
  top: 16px;
}

.brand-accent.br {
  right: 16px;
  bottom: 16px;
}

.brand-accent.float {
  animation: brand-float 15s var(--ease-brand) infinite;
}

/* Garante que conteúdo real fique acima dos acentos absolutos */
.brand-host {
  position: relative;
}

.brand-host > * {
  position: relative;
  z-index: 1;
}

.brand-host > .brand-accent, .brand-host > .brand-backdrop {
  z-index: 0;
}

/* ── Acessibilidade: sem movimento ── */
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal.in {
    opacity: 1;
    transform: none;
    animation: none;
  }
  .bb-shape, .brand-accent.float, [class*=brand-float] {
    animation: none !important;
  }
}
.breadcrumb-horizontal {
  font-size: 0.875rem;
  padding: 0;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 18px;
  border-radius: var(--r-sm);
  border: 1px solid transparent;
  font-weight: 600;
  font-size: 14px;
  transition: 0.15s;
  min-height: 44px;
}

.btn:active {
  transform: translateY(1px);
}

.btn:disabled, .btn[disabled], .btn[aria-disabled=true] {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
  filter: grayscale(0.3);
}

.btn:disabled:active, .btn[disabled]:active {
  transform: none;
}

.btn-primary {
  background: var(--senac-blue);
  color: #fff;
}

.btn-primary:hover {
  background: color-mix(in srgb, var(--senac-blue) 88%, #000);
  box-shadow: var(--elev);
}

.btn-warm {
  background: var(--grad-warm);
  color: #3a2400;
}

.btn-warm:hover {
  filter: brightness(1.04);
  box-shadow: 0 6px 18px rgba(247, 148, 29, 0.32);
}

.btn-ghost {
  background: var(--surface);
  border-color: var(--border-2);
  color: var(--fg);
}

.btn-ghost:hover {
  border-color: var(--fg-2);
}

.btn-light {
  background: #fff;
  color: var(--senac-blue);
}

.btn-light:hover {
  background: color-mix(in srgb, #fff 88%, var(--sesc-blue));
  box-shadow: var(--elev);
}

.btn-block {
  width: 100%;
}

.btn-sm {
  padding: 9px 14px;
  font-size: 13px;
  min-height: 40px;
}

/* CTA do header em pílula quente (referência de aplicação digital, guia pg. 33) */
.nav-cta {
  border-radius: var(--r-pill);
  padding-inline: 18px;
  font-weight: 700;
}

/* Card genérico (primitivo ui/Card), tema sobre .card do Bootstrap */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--elev);
  margin-bottom: 0;
}

.card-body {
  padding: 16px;
}

.agenda-grid .card-body {
  padding: 18px;
}

/* ---- Card de unidade (compartilhado: vitrine da Home e /unidades) ---- */
.fleet-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface);
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s;
  color: inherit;
}

.fleet-card:hover {
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.24);
  transform: translateY(-4px);
}

.fleet-thumb {
  position: relative;
  aspect-ratio: 16/10;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 20px;
  color: #fff;
  overflow: hidden;
}

.fleet-thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fleet-card.inst-sesc .fleet-thumb {
  background: linear-gradient(120deg, var(--brand-yellow) 0%, color-mix(in srgb, var(--brand-yellow) 70%, #fff) 100%);
}

.fleet-card.inst-senac .fleet-thumb {
  background: linear-gradient(120deg, var(--brand-orange) 0%, color-mix(in srgb, var(--brand-orange) 70%, #fff) 100%);
}

.fleet-thumb-icon {
  position: relative;
  z-index: 1;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.24);
  backdrop-filter: blur(2px);
}

.fleet-body {
  flex: 1 1 auto;
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.fleet-body .badge {
  margin-bottom: 2px;
}

.fleet-body h3 {
  font-weight: 800;
  color: var(--fg);
}

.fleet-desc {
  color: var(--muted);
  font-size: var(--fz-md);
  line-height: 1.5;
  margin: 0;
}

.fleet-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  font-size: 13px;
  font-weight: 700;
  color: var(--sesc-blue);
  transition: gap 0.2s;
}

.fleet-card:hover .fleet-link {
  gap: 9px;
}

/* ---- Sobre: card de pilar (corpo do card; o grid de 3 colunas fica em
   pages/_sobre.scss, escopado em .sobre-pilares) ---- */
.sobre-card {
  height: 100%;
}

.sobre-card .card-body {
  padding: 20px;
}

.sobre-ic {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--grad-blue, var(--sesc-blue));
  margin-bottom: 10px;
}

.sobre-card h2 {
  margin: 0 0 8px;
}

.sobre-card p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
  margin: 0;
}

/* ---- Notícias: card de listagem ---- */
.news-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface);
  overflow: hidden;
  transition: 0.15s;
  text-decoration: none;
  color: inherit;
}

.news-card:hover {
  border-color: var(--border-2);
  box-shadow: var(--elev);
}

.news-cover {
  position: relative;
  aspect-ratio: 16/9;
  display: grid;
  place-items: center;
  background: var(--surface-2);
  color: var(--muted);
}

.news-cover img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-cover .badge {
  position: absolute;
  top: 10px;
  left: 10px;
}

.news-body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.news-date {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--muted);
}

.news-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.25;
  margin: 0;
}

.news-resumo {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
  margin: 0;
}

.news-more {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 600;
  color: var(--sesc-blue);
  margin-top: 2px;
}

/* ---- Agenda (admin): card de agendamento ---- */
.admin-list {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.agenda-card {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 14px;
  background: var(--surface-2);
}

/* Neutraliza .list-group-item+.list-group-item (borda-topo zerada, raio herdado
   só no primeiro/último item) do Bootstrap — nossos cards têm gap, não são
   adjacentes/colados como no list-group padrão. */
.admin-list .agenda-card {
  border-top-width: 1px;
  border-radius: var(--r-md);
}

.ac-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.ac-unit {
  font-weight: 700;
  color: var(--fg);
}

.ac-when {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--sesc-blue);
  font-weight: 600;
}

.ac-loc {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--fg-2);
  margin-top: 6px;
}

.ac-svc {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.admin-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  padding: 24px 16px;
  color: var(--muted);
}

.admin-empty b {
  color: var(--fg);
}

/* ---- Card do dia (calendário admin) ---- */
.day-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.day-ev {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 12px;
  background: var(--surface-2);
}

.day-list .day-ev {
  border-top-width: 1px;
  border-radius: var(--r-md);
}

.de-top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.de-top b {
  font-size: 14px;
}

.de-line {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--fg-2);
  margin-top: 3px;
}

.de-svc {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}

.de-actions {
  margin-left: auto;
  display: flex;
  gap: 2px;
}

/* ---- Lista de unidades (admin) ---- */
.unidade-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.un-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface);
}

.unidade-list .un-card {
  border-top-width: 1px;
  border-radius: var(--r-md);
}

.un-card.suspensa {
  opacity: 0.7;
  background: var(--surface-2);
}

.un-thumb {
  width: 56px;
  height: 44px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--surface-2);
  display: grid;
  place-items: center;
  color: var(--muted);
  flex: 0 0 auto;
}

.un-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.un-info {
  flex: 1;
  min-width: 0;
}

.un-nome {
  font-family: var(--font-display);
  font-size: 14px;
  overflow-wrap: anywhere;
}

.un-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 5px;
  align-items: center;
}

.un-susp {
  background: color-mix(in srgb, var(--danger) 12%, #fff);
  color: var(--danger);
}

.un-actions {
  display: flex;
  gap: 4px;
  flex: 0 0 auto;
}

/* ---- Catálogo (treinamentos e serviços, admin) ---- */
.catalogo-list {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cat-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  background: var(--surface);
}

.catalogo-list .cat-item {
  border-top-width: 1px;
  border-radius: var(--r-sm);
}

.cat-nome {
  flex: 1;
  font-weight: 600;
  font-size: 14px;
  min-width: 0;
}

.cat-carga {
  font-size: 12px;
  color: var(--muted);
}

/* ---- Dashboard de Gestão (admin): KPI ---- */
.kpi-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
}

.kpi-ico {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #fff;
}

.kpi-body {
  min-width: 0;
}

.kpi-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 30px;
  line-height: 1.05;
  color: var(--fg);
}

.kpi-lbl {
  font-size: var(--fz-base);
  color: var(--muted);
  font-weight: 600;
  margin-top: 2px;
}

/* ---- Dashboard de Gestão (admin): frota ---- */
.frota-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 560px;
  overflow-y: auto;
  scrollbar-width: thin;
}

.frota-item {
  width: 100%;
  text-align: left;
  display: grid;
  grid-template-columns: 40px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface);
  cursor: pointer;
  transition: 0.15s;
}

.frota-list .frota-item {
  border-top-width: 1px;
  border-radius: var(--r-md);
}

.frota-item:hover {
  border-color: var(--border-2);
  box-shadow: var(--elev);
  transform: translateY(-1px);
}

.frota-item.active {
  color: inherit;
  background: var(--surface);
  border-color: var(--sesc-blue);
  box-shadow: 0 0 0 1px var(--sesc-blue);
}

.frota-ico {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: #fff;
}

.frota-body {
  min-width: 0;
}

.frota-nome {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.2;
}

.frota-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-top: 5px;
}

.frota-loc {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--muted);
}

.frota-sit {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--fz-sm);
  font-weight: 700;
  white-space: nowrap;
}

.frota-sit .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.od-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 16px;
  box-shadow: var(--elev);
}

/* ---- Película que bloqueia a interação com o site enquanto o banner nativo
   de cookies do Liferay (cookies-banner-web) não é resolvido.

   O banner nunca sai do DOM: o CookiesBanner.js apenas alterna o
   `style.display` inline entre `none` (padrão do servidor e após responder)
   e `block` (quando falta o cookie USER_CONSENT_CONFIGURED). Por isso a
   película é um pseudo-elemento do próprio banner — em `display:none` o
   banner não gera caixa, e o ::before some junto, sem depender de JS.

   Empilhamento dentro de .cookies-banner, nesta ordem de pintura:
   1. background branco do banner (vem do cookies-banner-web)
   2. ::before, z-index -1 → a película, que cobre o branco
   3. .portlet-cookies-banner, z-index 1 → repinta a faixa em branco opaco
   Sem o passo 3 a película fica entre o fundo branco e o texto, deixando a
   faixa acinzentada. A cor acompanha o .modal-backdrop (ver _modal.scss). ---- */
/* Acima do header (1034) e da navbar (1035), mas abaixo do .modal-backdrop
   do Clay (1040), senão o modal do botão "Configuração" abre por trás da
   película. Duas classes porque o CSS do cookies-banner-web carrega depois do
   tema e fixa `.cookies-banner{z-index:990}` — só ganhamos por especificidade. */
.cookies-banner.cookies-banner-bottom,
.cookies-banner.cookies-banner-top {
  z-index: 1039;
}

.cookies-banner::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: rgba(10, 26, 51, 0.55);
  backdrop-filter: blur(2px);
}

/* Faixa do banner acima da película. O fundo e a sombra repetem os do
   cookies-banner-web: lá eles são pintados antes da película e sumiriam. */
.portlet-cookies-banner {
  position: relative;
  z-index: 1;
  background-color: #fff;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
}

/* Trava o scroll pelo mesmo sinal que o Liferay usa para exibir o banner. */
html:has(.cookies-banner[style*="display: block"]),
html:has(.cookies-banner[style*="display: block"]) body {
  overflow: hidden;
}

/* ---- Menu do usuário (topo, à direita, oposto às logos) ---- */
.usermenu {
  position: relative;
  flex: 0 0 auto;
}

/* No protótipo o fundo vem inline (cor da instituição do usuário logado, ver
   UserMenu.jsx); aqui não há esse dado, então usa a cor de marca como padrão
   (mesmo valor do reskin anterior do <@liferay.user_personal_bar />). */
.usermenu-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.02em;
  flex: 0 0 auto;
  background: var(--sesc-blue);
  box-shadow: inset 0 0 0 2px color-mix(in srgb, #fff 30%, transparent);
}

.usermenu-trigger {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 5px 10px 5px 5px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--fg);
  cursor: pointer;
  transition: 0.15s;
}

.usermenu-trigger:hover, .usermenu-trigger[aria-expanded=true] {
  border-color: var(--border-2);
  background: var(--surface-2);
}

.usermenu-name {
  font-size: 14px;
  font-weight: 600;
  max-width: 15ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.usermenu-caret {
  color: var(--muted);
  transition: transform 0.15s;
}

.usermenu-trigger[aria-expanded=true] .usermenu-caret {
  transform: rotate(180deg);
}

/* Sem Bootstrap real neste tema (só os mixins de breakpoint do Clay, ver
   vendors/_bootstrap.scss) — diferente do protótipo, que tem `.dropdown-menu`
   e `.show` prontos do pacote npm. O show/hide do painel é só desta regra. */
.usermenu-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  left: auto;
  min-width: 256px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--elev);
  padding: 6px;
  margin: 0;
  z-index: 70;
  font-size: inherit;
  display: none;
}

.usermenu-panel.show {
  display: block;
  animation: um-in 0.12s ease;
}

.usermenu-head {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 10px 10px 12px;
  margin: 0;
}

.usermenu-avatar.lg {
  width: 44px;
  height: 44px;
  font-size: 16px;
}

.usermenu-id {
  min-width: 0;
}

.usermenu-id .um-nome {
  font-weight: 700;
  font-size: 15px;
  line-height: 1.15;
}

.usermenu-badges {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0 4px;
}

.usermenu-id .um-email {
  font-size: 12px;
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.usermenu-sep {
  height: 1px;
  background: var(--border);
  border-top: 0;
  margin: 4px;
}

.usermenu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 0;
  background: none;
  border-radius: var(--r-sm);
  color: var(--fg-2);
  font: inherit;
  font-size: 14px;
  text-align: left;
  cursor: pointer;
  transition: 0.12s;
  clear: none;
  white-space: normal;
}

.usermenu-item:hover {
  background: var(--surface-2);
  color: var(--fg);
}

.usermenu-item.danger {
  color: var(--danger);
}

.usermenu-item.danger:hover {
  background: color-mix(in srgb, var(--danger) 10%, transparent);
}

/* Breakpoint alinhado ao Bootstrap 4.6 (era max-width:520px) */
@media (max-width: 575.98px) {
  .usermenu-name {
    display: none;
  }
}
/* ---- Formulário admin ---- */
.admin-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 0;
}

.field-row {
  display: flex;
  gap: 12px;
  margin: 0;
}

.field label, .field-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--fg-2);
}

.admin-form input:not([type=checkbox], [type=radio], [type=file], [type=range]),
.admin-form select {
  font: inherit;
  padding: 10px 12px;
  border: 1px solid var(--border-2);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--fg);
  height: auto;
  min-height: 44px;
  width: 100%;
}

.admin-form input:not([type=checkbox], [type=radio], [type=file], [type=range]):focus,
.admin-form select:focus {
  outline: 2px solid var(--blue-bright);
  outline-offset: 1px;
  border-color: var(--blue-bright);
}

.admin-form input:disabled,
.admin-form select:disabled {
  background: var(--surface-2);
  color: var(--muted);
  cursor: not-allowed;
}

.admin-form input[type=checkbox] {
  width: 18px;
  height: 18px;
  min-height: 0;
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--sesc-blue);
}

.admin-form textarea {
  font: inherit;
  padding: 10px 12px;
  border: 1px solid var(--border-2);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--fg);
  width: 100%;
  resize: vertical;
  min-height: 96px;
  line-height: 1.5;
}

.admin-form textarea:focus {
  outline: 2px solid var(--blue-bright);
  outline-offset: 1px;
  border-color: var(--blue-bright);
}

.hint {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
}

.form-error {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--danger);
  font-size: 13px;
  margin: 0;
}

.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 8px;
}

/* Sugestão/seleção de serviços (chips com botão remover) */
.svc-suggest {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 2px 0;
}

.svc-add {
  display: flex;
  gap: 8px;
  align-items: stretch;
}

.svc-add input {
  flex: 1;
}

.svc-selected {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.svc-selected .cchip {
  gap: 6px;
}

.svc-selected .cchip button {
  display: inline-flex;
  align-items: center;
  color: var(--muted);
}

.svc-selected .cchip button:hover {
  color: var(--danger);
}

/* Upload/preview de imagem do form de unidade */
.img-upload {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.img-preview {
  width: 88px;
  height: 64px;
  border-radius: var(--r-sm);
  border: 1px solid var(--border-2);
  background: var(--surface-2);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: var(--muted);
  flex: 0 0 auto;
}

.img-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Thumbs/lista de imagens e links do form de Notícias */
.nt-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.nt-thumb {
  position: relative;
  width: 92px;
  height: 66px;
  border-radius: var(--r-sm);
  overflow: hidden;
  border: 1px solid var(--border);
}

.nt-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.nt-thumb-x {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 20px;
  height: 20px;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.nt-add {
  width: 92px;
  height: 66px;
  border: 1px dashed var(--border-2);
  border-radius: var(--r-sm);
  display: grid;
  place-items: center;
  color: var(--muted);
  background: var(--surface);
  cursor: pointer;
}

.nt-add:hover {
  border-color: var(--sesc-blue);
  color: var(--sesc-blue);
}

.nt-inline {
  display: flex;
  gap: 8px;
  align-items: stretch;
  flex-wrap: wrap;
}

.nt-inline input {
  flex: 1;
  min-width: 140px;
}

.nt-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nt-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--fg-2);
}

.nt-list-t {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nt-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--fg);
  cursor: pointer;
  min-height: 44px;
}

/* ---- Autocomplete de cidade (IBGE), usado no form admin ---- */
.cidade-ac {
  position: relative;
}

.cidade-ac-input {
  position: relative;
  display: flex;
  align-items: center;
}

.cidade-ac-input .ac-i {
  position: absolute;
  left: 10px;
  color: var(--muted);
  pointer-events: none;
}

.admin-form .cidade-ac input {
  padding-left: 34px;
}

.cidade-ac-input .ac-spin {
  position: absolute;
  right: 10px;
  color: var(--muted);
  animation: ac-spin 1s linear infinite;
}

.cidade-ac-list {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  margin: 0;
  padding: 4px;
  list-style: none;
  background: var(--surface);
  border: 1px solid var(--border-2);
  border-radius: var(--r-sm);
  box-shadow: var(--elev-2);
  max-height: 240px;
  overflow: auto;
}

.cidade-ac-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  color: var(--fg);
}

.cidade-ac-list li.active {
  background: var(--surface-2);
}

.cidade-ac-list li .uf {
  color: var(--muted);
  font-weight: 600;
}

.cidade-ac-list li.empty {
  cursor: default;
  color: var(--muted);
}

@media (prefers-reduced-motion: reduce) {
  .cidade-ac-input .ac-spin {
    animation: none;
  }
}
/* Estados do autocomplete (buscando / erro / vazio) */
.cidade-ac-list .ac-status {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
  font-size: 13px;
  color: var(--muted);
  cursor: default;
}

.cidade-ac-list .ac-err {
  color: var(--danger);
}

.ac-retry {
  margin-left: auto;
  font-size: 12px;
  font-weight: 600;
  color: var(--sesc-blue);
  text-decoration: underline;
  background: none;
  border: 0;
  cursor: pointer;
}

/* Status de geolocalização (CEP / cidade) */
.geo-status {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  margin: 0;
  color: var(--muted);
}

.geo-status.ok {
  color: var(--success);
}

.geo-status.warn {
  color: var(--senac-orange);
}

.geo-status.err {
  color: var(--danger);
}

/* ---- Filtros do rail do mapa + autocomplete de cidade do mapa ---- */
select.areasel, input.areasel {
  height: 38px;
  border: 1px solid var(--border-2);
  border-radius: var(--r-sm);
  padding: 0 10px;
  background: var(--surface);
  font: inherit;
  color: var(--fg-2);
  width: 100%;
}

.glass-field {
  position: relative;
  background: var(--glass);
  backdrop-filter: blur(12px) saturate(1.4);
  border: 1px solid var(--glass-border);
  border-radius: var(--r-pill);
  box-shadow: var(--shadow-lite);
}

.glass-field .gi {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--sesc-blue);
}

.glass-field input {
  width: 270px;
  max-width: 52vw;
  height: 46px;
  border: 0;
  background: transparent;
  padding: 0 16px 0 40px;
  font: inherit;
  color: var(--fg);
}

.glass-field input::placeholder {
  color: var(--fg-2);
}

.glass-field input:focus {
  outline: none;
}

/* Breakpoints alinhados ao Bootstrap 4.6 (eram max-width:900px e 520px) */
@media (max-width: 991.98px) {
  .glass-field input {
    width: 190px;
  }
}
@media (max-width: 575.98px) {
  .glass-field input {
    width: 150px;
  }
}
.city-search {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 1000;
  width: 300px;
  max-width: min(300px, 66vw);
}

.city-search .map-city-search {
  position: relative;
  top: auto;
  left: auto;
  z-index: auto;
  width: 100%;
}

.city-search .glass-field {
  width: 100%;
}

.city-search .glass-field input {
  width: 100%;
  max-width: none;
  padding-right: 38px;
}

.cs-clear {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  display: inline-flex;
}

.cs-clear:hover {
  color: var(--fg);
}

.city-search-list {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  margin: 0;
  padding: 4px;
  list-style: none;
  background: var(--surface);
  border: 1px solid var(--border-2);
  border-radius: var(--r-sm);
  box-shadow: var(--elev-2);
  max-height: 260px;
  overflow: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.city-search-list::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.city-search-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  color: var(--fg);
}

.city-search-list li.active {
  background: var(--surface-2);
}

.city-search-list .cs-name {
  flex: 1;
}

.city-search-list .uf {
  color: var(--muted);
  font-weight: 600;
}

.city-search-list .cs-count {
  font-size: 11px;
  color: var(--muted);
  background: var(--surface-2);
  border-radius: var(--r-pill);
  padding: 1px 8px;
  min-width: 20px;
  text-align: center;
}

.city-search-list .cs-empty {
  cursor: default;
  color: var(--muted);
}

.list-group-item-flex > .autofit-col:first-of-type {
  padding-left: 10px;
  padding-right: 4px;
}

@media (min-width: 768px) {
  .info-panel {
    bottom: 0;
    position: absolute;
    top: 0;
  }
  .info-panel > .sidenav-menu {
    bottom: 0;
    position: absolute;
    right: 0 !important;
    top: 0;
  }
}

.painel-common i.fa-solid,
.painel-common i.fa-regular,
.painel-common i.fa-brands {
  line-height: 1;
}
.painel-common .section-card__icon i,
.painel-common .sec-title .sti {
  font-size: 20px;
}
.painel-common .un-card .icon-avatar i {
  font-size: 20px;
}
.painel-common .icon-avatar--lg i {
  font-size: 22px;
}
.painel-common .icon-avatar--sm i {
  font-size: 16px;
}
.painel-common .un-actions .icobtn i {
  font-size: 17px;
}
.painel-common .cal-head .icobtn i {
  font-size: 18px;
}
.painel-common .de-actions .icobtn i {
  font-size: 15px;
}
.painel-common .btn i {
  font-size: 16px;
}
.painel-common .cchip i,
.painel-common .frota-loc i {
  font-size: 12px;
}
.painel-common .de-line i {
  font-size: 13px;
}
.painel-common .ul-search i {
  font-size: 14px;
}
.painel-common .admin-empty i {
  font-size: 28px;
}
.painel-common .icon-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: var(--r-sm);
  color: #fff;
}
.painel-common .icon-avatar--sm {
  width: 32px;
  height: 32px;
}
.painel-common .icon-avatar--md {
  width: 40px;
  height: 40px;
}
.painel-common .icon-avatar--lg {
  width: 46px;
  height: 46px;
}
.painel-common .icon-avatar--neutral {
  background: var(--surface-2);
  color: var(--muted);
}
.painel-common .icon-avatar--primary {
  background: var(--senac-blue);
}
.painel-common .icon-avatar--success {
  background: var(--success);
}
.painel-common .icon-avatar--warning {
  background: var(--warn);
}
.painel-common .icon-avatar--info {
  background: var(--sesc-blue);
}
.painel-common .icon-avatar--orange {
  background: var(--senac-orange);
}
.painel-common .status-indicator {
  font-size: var(--fz-sm);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.painel-common .status-indicator.status-indicator--muted {
  color: var(--muted);
  font-weight: 600;
  text-transform: none;
}
.painel-common .status-indicator.status-indicator--success {
  color: var(--success);
}
.painel-common .status-indicator.status-indicator--warning {
  color: var(--warn);
}
.painel-common .status-indicator.status-indicator--info {
  color: var(--sesc-blue);
}
.painel-common .status-indicator.status-indicator--neutral {
  color: var(--muted);
}
.painel-common .status-indicator.status-indicator--orange {
  color: var(--senac-orange);
}
.painel-common .status-indicator .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
}
.painel-common .status-indicator .dot--success {
  background: var(--success);
}
.painel-common .status-indicator .dot--warning {
  background: var(--warn);
}
.painel-common .status-indicator .dot--info {
  background: var(--sesc-blue);
}
.painel-common .status-indicator .dot--neutral {
  background: var(--muted);
}
.painel-common .status-indicator .dot--orange {
  background: var(--senac-orange);
}
.painel-common .badge--solid {
  background: var(--senac-blue);
  color: #fff;
}
.painel-common .badge--soft {
  background: color-mix(in srgb, var(--senac-blue) 12%, #fff);
  color: var(--senac-blue);
}
.painel-common .badge--outline {
  background: var(--surface);
  color: var(--muted);
  border: 1px solid var(--border);
  text-transform: none;
  font-weight: 600;
  padding: 6px 10px;
  font-size: var(--fz-sm);
}
.painel-common .section-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}
.painel-common .section-card__heading {
  flex: 1 1 auto;
  min-width: 0;
}
.painel-common .section-card__title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: var(--fz-h3);
  font-weight: 700;
  color: var(--fg);
}
.painel-common .section-card__icon {
  display: inline-flex;
  flex: 0 0 auto;
  color: var(--sesc-blue);
}
.painel-common .sec-title .sti {
  color: var(--sesc-blue);
}
.painel-common .section-card__subtitle {
  margin-top: 6px;
  font-size: var(--fz-base);
  color: var(--muted);
}
.painel-common .section-card__action {
  flex: 0 0 auto;
}
.painel-common .section-card__body {
  min-width: 0;
}
.painel-common .entity-card__indicator {
  flex: 0 0 auto;
}
.painel-common .un-card--interactive {
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
}
.painel-common .un-card--interactive:hover, .painel-common .un-card--interactive:focus-visible {
  border-color: var(--border-2);
  box-shadow: var(--elev);
}
.painel-common .un-card--selected {
  border-color: var(--sesc-blue);
  box-shadow: 0 0 0 1px var(--sesc-blue);
}

.painel-common .status-toasts {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 1300;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: calc(100% - 32px);
  pointer-events: none;
}
.painel-common .status-toast {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: min(360px, 100%);
  max-width: calc(100vw - 32px);
  padding: 14px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--border-2);
  border-radius: var(--r-md);
  box-shadow: var(--elev-2);
  pointer-events: auto;
  animation: status-toast-in 0.22s var(--ease-brand, ease) both;
}
.painel-common .status-toast--success {
  border-left-color: var(--success);
}
.painel-common .status-toast--success .status-toast__icon {
  color: var(--success);
}
.painel-common .status-toast--error {
  border-left-color: var(--danger);
}
.painel-common .status-toast--error .status-toast__icon {
  color: var(--danger);
}
.painel-common .status-toast__icon {
  flex: 0 0 auto;
  margin-top: 2px;
  font-size: 18px;
  line-height: 1;
}
.painel-common .status-toast__body {
  flex: 1 1 auto;
  min-width: 0;
}
.painel-common .status-toast__title {
  margin: 0;
  font-size: var(--fz-base);
  font-weight: 700;
  color: var(--fg);
}
.painel-common .status-toast__detail {
  margin: 4px 0 0;
  font-size: var(--fz-sm);
  color: var(--muted);
}
.painel-common .status-toast__close {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 32px;
  height: 32px;
  margin: -6px -6px 0 0;
  background: transparent;
  border: 0;
  border-radius: var(--r-sm);
  color: var(--muted);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.painel-common .status-toast__close:hover {
  background: var(--surface-2);
  color: var(--fg);
}
.painel-common .status-toast__close:focus-visible {
  outline: 2px solid var(--sesc-blue);
  outline-offset: 2px;
}

@keyframes status-toast-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .painel-common .status-toast {
    animation: none;
  }
}
.table-list th:first-child,
.table-list td:first-child {
  padding-left: 18px;
  padding-right: 6px;
}

/* ---- Modal (genérico + editor de imagem), tema sobre .modal do Bootstrap ----
   Sem JS do Bootstrap: React alterna a classe .show, o CSS abaixo assume o
   resto (display, blur do backdrop, tamanho/raio/sombra da marca). ---- */
.modal.show {
  display: block;
}

.modal {
  backdrop-filter: blur(2px);
}

.modal-backdrop {
  background: rgba(10, 26, 51, 0.55);
}

.modal-backdrop.show {
  opacity: 1;
}

.modal-dialog {
  max-width: 520px;
}

.modal-content {
  overflow: hidden;
  max-height: 92vh;
  border: 0;
  border-radius: var(--r-lg);
  box-shadow: var(--elev-2);
}

.modal-header {
  align-items: center;
  padding: 14px 16px;
  border-color: var(--border);
}

.modal-title {
  font-size: 15px;
  font-weight: 700;
  line-height: inherit;
}

.modal-body {
  overflow-y: auto;
}

.cropper-stage {
  position: relative;
  width: 100%;
  height: 340px;
  background: #0b1220;
}

.cropper-ctrls {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-top: 1px solid var(--border);
}

.cc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--fg-2);
}

.cc-lbl {
  min-width: 42px;
}

.cc-row input[type=range] {
  flex: 1;
  accent-color: var(--sesc-blue);
}

.cropper-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 16px;
  border-top: 1px solid var(--border);
}

/* ── Biblioteca de vídeos (Home): um cartão por instituição (Sesc + Senac)
   lado a lado, cada um com vídeo no topo e título/descrição abaixo. ── */
.video-showcase {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}

.video-card {
  flex: 1 1 50%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.video-panel-frame {
  position: relative;
  aspect-ratio: 16/9;
  background: #000;
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
}

.video-panel-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.video-panel-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.video-panel-body .badge {
  align-self: flex-start;
}

.video-panel-body h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 22px;
  line-height: 1.2;
  color: var(--on-dark);
}

.video-panel-body p {
  color: var(--on-dark-2);
  line-height: 1.6;
}

.video-panel-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  color: var(--on-dark);
  transition: color 0.2s;
}

.video-panel-link:hover, .video-panel-link:focus-visible {
  color: var(--on-dark-blue);
}

@media (max-width: 767.98px) {
  .video-showcase {
    flex-direction: column;
  }
}
/* PAGES (prototype — importam por último para vencer, por ordem de origem,
   qualquer override de tema escuro/contexto) */
.home .hero {
  position: relative;
  min-height: clamp(480px, 80vh, 780px);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  background: var(--brand-blue-deep);
  color: #fff;
  margin-top: calc(-1 * var(--hdr));
}

.hero-media {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}

.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 58, 117, 0.08) 0%, rgba(0, 58, 117, 0.02) 40%, rgba(0, 58, 117, 0.4) 100%);
}

.hero-mesh {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  --mesh-t: 72px;
  background-image: radial-gradient(circle closest-side, transparent 0 100%, #3d86e0 100%);
  background-size: var(--mesh-t) var(--mesh-t);
  background-position: right center;
  -webkit-mask: radial-gradient(42% 106% at 100% 100%, #000 16%, transparent 72%);
  mask: radial-gradient(42% 106% at 100% 100%, #000 16%, transparent 72%);
  opacity: 0.34;
}

.hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 48px;
  padding-bottom: 48px;
  animation: brand-rise 0.8s var(--ease-brand) both;
}

@media (prefers-reduced-motion: reduce) {
  .hero-inner {
    animation: none;
  }
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #dbe6ff;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  padding: 6px 12px;
  border-radius: var(--r-pill);
  backdrop-filter: blur(6px);
}

.hero-inner h1 {
  margin: 16px 0;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.hero-inner p {
  font-size: clamp(15px, 2vw, 19px);
  line-height: 1.55;
  color: #eaf0fb;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.3);
}

.hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.hero-cta .btn {
  min-height: 48px;
  padding: 12px 22px;
  font-size: 15px;
}

/* ── Faixa de endosso institucional ── */
.endosso {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
}

.endosso-in {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 24px;
  flex-wrap: wrap;
}

.endosso-logo {
  height: 66px;
  width: auto;
  flex: 0 0 auto;
}

.endosso-in p {
  color: var(--fg-2);
  font-size: 14px;
  line-height: 1.55;
  max-width: 620px;
}

.endosso-in b {
  color: var(--fg);
  font-weight: 700;
}

/* ── Miolo ── */
.home-main {
  flex: 1 1 auto;
  padding-block: 8px 48px;
}

.home-block {
  padding: 48px 0;
}

.home .page-head {
  padding: 8px 0 24px;
  max-width: 720px;
}

.home .page-head h2 {
  margin: 4px 0 8px;
  color: var(--on-dark);
}

.home .page-head p {
  color: var(--on-dark-2);
  line-height: 1.6;
}

.home .page-head .eyebrow {
  color: var(--on-dark-blue);
}

/* Números — faixa horizontal FULL-WIDTH, fundo claro, cores da identidade.
   .stats-band ocupa 100% (fora do container); os números ficam centralizados
   num .container interno. */
.stats-band {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin: 8px 0;
  background: linear-gradient(180deg, #eef4fc 0%, #e1ebf8 100%);
  border-block: 1px solid rgba(0, 76, 153, 0.12);
}

.stats-tex {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle 44px at 50% 100%, rgba(0, 76, 153, 0.06) 0 100%, transparent 100%);
  background-size: 88px 88px;
  background-position: center bottom;
}

/* Grid nativo do Bootstrap: JSX usa .row + .col-6.col-md-3 (2 colunas até
   768px, 4 colunas dali pra cima) em vez do .col-3 bare + override
   customizado de antes. */
.home-stats {
  position: relative;
  z-index: 1;
  padding-block: 24px;
  color: var(--fg);
}

.home-stat {
  text-align: center;
}

.home-stat::after {
  content: "";
  display: block;
  width: 26px;
  height: 3px;
  border-radius: 2px;
  margin: 11px auto 0;
  background: var(--grad-warm-3);
}

.hs-num {
  display: block;
  font-size: clamp(34px, 5vw, 50px);
  font-weight: 900;
  line-height: 1;
  color: var(--brand-blue);
}

.hs-label {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  color: var(--fg-2);
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* vitrine da frota — bloco azul com textura de cúpulas tom sobre tom
   (.home-fleet, o grid fluido de cards, está em layout/_grid.scss;
   .fleet-card está em components/_card.scss) */
.home-fleet-band {
  padding: 24px;
  margin: 16px 0;
}

/* Cúpulas (semicírculos) TANGENTES, organizadas em linhas que preenchem o fundo.
   Duas linhas alternadas em tons diferentes (tom + semitom) = profundidade sutil.
   Tile 76px = cúpulas de ~76px de base; ancoradas na base do bloco. */
.home-fleet-band::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle 38px at 50% 100%, rgba(255, 255, 255, 0.075) 0 100%, transparent 100%), radial-gradient(circle 38px at 50% 100%, rgba(255, 255, 255, 0.04) 0 100%, transparent 100%);
  background-size: 76px 76px, 76px 76px;
  background-position: center bottom, center calc(100% - 38px);
  background-repeat: repeat;
}

.home-fleet-band .eyebrow {
  color: #cfe0ff;
}

.home-fleet-band .page-head h2 {
  color: #fff;
}

.home-fleet-band .page-head p {
  color: #dbe6ff;
}

/* Cabeçalho da vitrine: título à esquerda, filtro Todas/Sesc/Senac à direita */
.fleet-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.fleet-head .page-head {
  margin-bottom: 0;
}

@media (max-width: 767.98px) {
  .fleet-head {
    align-items: flex-start;
  }
}
.home-block-cta {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}

/* bloco do mapa */
.home-map .card-body {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px;
  overflow: hidden;
}

.home-map-txt {
  flex: 1 1 auto;
}
.home-map-txt h2 {
  margin: 4px 0 8px;
}
.home-map-txt p {
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 16px;
  max-width: 520px;
}

.home-map-ic {
  flex: 0 0 auto;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--sesc-blue) 10%, #fff);
  color: var(--sesc-blue);
  font-size: 80px;
}

/* CTA final — bloco azul dominante (ref. aplicação digital, guia pg. 33) */
.home-final {
  text-align: center;
  padding: 48px 24px;
  margin: 24px 0 8px;
}
.home-final .eyebrow {
  color: #cfe0ff;
}
.home-final h2 {
  margin-bottom: 8px;
  color: #fff;
}
.home-final p {
  color: #dbe6ff;
  line-height: 1.6;
  max-width: 560px;
  margin: 0 auto 24px;
}
.home-final .hero-cta {
  justify-content: center;
}

/* Breakpoints alinhados ao Bootstrap 4.6 (eram max-width:860px e 520px) */
@media (max-width: 767.98px) {
  .home-map .card-body {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }
  .home-map-ic {
    width: 88px;
    height: 88px;
  }
}
@media (max-width: 575.98px) {
  .hero-inner {
    padding-bottom: 48px;
  }
  .endosso-in {
    gap: 16px;
  }
  .endosso-logo {
    height: 52px;
  }
}
/* Tela mapa-first: shell + rail (coluna de detalhe em 3 estágios) + palco do mapa.
   (.glass-field/.city-search estão em components/_form.scss;
   .rail-pager/.pg-btn e .zoomgrp estão em layout/_navigation.scss) */
.app {
  display: flex;
  flex-direction: column;
  height: var(--app-h, 100dvh);
  width: 100%;
}

body.map-mode #content {
  padding-bottom: 0;
}
body.map-mode #content .portlet-boundary {
  padding-bottom: 0;
}

/* ── Layout: rail + map ── */
.stage-wrap {
  flex: 1 1 auto;
  display: flex;
  min-height: 0;
  position: relative;
}

aside.rail {
  flex: 0 0 var(--rail-w);
  width: var(--rail-w);
  background: var(--surface);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  min-height: 0;
  z-index: 40;
  transition: flex-basis 0.32s cubic-bezier(0.22, 0.61, 0.36, 1), width 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.app[data-rail=expanded] aside.rail {
  flex-basis: var(--rail-w-x);
  width: var(--rail-w-x);
}

@media (prefers-reduced-motion: reduce) {
  aside.rail {
    transition: none;
  }
}
.rail-scroll {
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 0;
  flex: 1 1 auto;
  scrollbar-width: thin;
}

.rail-view {
  display: none;
  flex-direction: column;
  min-height: 100%;
}

.app[data-rail=browse] .view-browse {
  display: flex;
}

.app[data-rail=detail] .view-detail {
  display: flex;
}

.app[data-rail=expanded] .view-detail {
  display: flex;
}

/* browse view */
.rail-head {
  padding: 16px 16px;
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  background: var(--surface);
  z-index: 2;
}

.rail-head h1 {
  line-height: 1.1;
}

.rail-head p {
  font-size: 13px;
  color: var(--muted);
  margin-top: 4px;
}

.filters {
  padding: 8px 16px 4px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.flabel {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  width: 100%;
  margin-bottom: -2px;
}

.filter-row .date-range-field {
  width: 100%;
}

.chip {
  padding: 7px 12px;
  border: 1px solid var(--border-2);
  background: var(--surface);
  border-radius: var(--r-pill);
  font-size: 13px;
  color: var(--fg-2);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: 0.15s;
  min-height: 34px;
}

.chip:hover {
  border-color: var(--fg-2);
}

.chip[aria-pressed=true] {
  background: var(--sesc-blue);
  border-color: var(--sesc-blue);
  color: #fff;
  font-weight: 600;
}

.chip .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.chip.chip-inst-sesc .dot {
  background: var(--sesc-yellow);
}

.chip.chip-inst-senac .dot {
  background: var(--senac-orange);
}

.chip.clear {
  min-height: 30px;
  padding: 5px 10px;
}

.count {
  padding: 16px 16px 8px;
  font-size: 12px;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.count b {
  color: var(--fg);
  font-weight: 700;
}

.list {
  list-style: none;
  margin: 0;
  padding: 8px 16px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ucard {
  width: 100%;
  text-align: left;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 12px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface);
  transition: 0.15s;
}

.ucard:hover {
  border-color: var(--border-2);
  box-shadow: var(--elev);
  transform: translateY(-1px);
}

.ucard.active {
  border-color: var(--sesc-blue);
  box-shadow: 0 0 0 1px var(--sesc-blue);
}

.thumb {
  width: 56px;
  height: 56px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: #fff;
  position: relative;
  overflow: hidden;
}

.thumb .ti {
  position: relative;
  z-index: 1;
}

.thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 120% at 80% 0%, rgba(255, 255, 255, 0.28), transparent 60%);
}

.ucard .nm {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.2;
}

.ucard .meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 5px;
  align-items: center;
}

.ucard .loc {
  font-size: 12px;
  color: var(--muted);
  margin-top: 5px;
  display: flex;
  align-items: center;
  gap: 5px;
}

/* Skeleton de carregamento (rail, enquanto os eventos carregam) — reutilizável:
   opacity no card inteiro + barras cinza no lugar do conteúdo real. */
.skeleton {
  opacity: 0.5;
}

.skeleton-thumb {
  background: var(--surface-2);
}

.skeleton-line {
  display: block;
  height: 14px;
  width: 70%;
  background: var(--surface-2);
  border-radius: 6px;
}

.skeleton-line.sk-sm {
  height: 12px;
  width: 45%;
  margin-top: 8px;
}

.empty {
  padding: 24px;
  text-align: center;
  color: var(--muted);
}

.empty .ei {
  color: var(--border-2);
  margin: 0 auto 10px;
}

.empty b {
  display: block;
  color: var(--fg);
  font-family: var(--font-display);
  margin-bottom: 4px;
}

/* detail view */
.view-detail {
  display: none;
}

.detail-top {
  position: relative;
  flex: 0 0 auto;
}

.detail-hero {
  height: 150px;
  position: relative;
  overflow: hidden;
  color: #fff;
  display: flex;
  align-items: flex-end;
  padding: 14px;
}

.detail-hero .hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.detail-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(10, 26, 51, 0.05), rgba(10, 26, 51, 0.55));
}

.detail-hero .ph-tag {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 10px;
  font-family: var(--font-mono);
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 3px 8px;
  border-radius: var(--r-pill);
  backdrop-filter: blur(6px);
  z-index: 2;
}

.detail-hero .htitle {
  position: relative;
  z-index: 2;
}

.detail-hero .htitle .badge-row {
  margin-bottom: 6px;
}

.detail-hero .htitle .badge {
  background: rgba(255, 255, 255, 0.9);
}

.detail-hero .htitle .nm {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.1;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

.backbar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
}

.backbtn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--fg-2);
  padding: 8px 10px;
  border-radius: var(--r-sm);
  background: var(--surface-2);
}

.backbtn:hover {
  background: var(--surface-3);
}

.detail-body {
  padding: 16px 16px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.live-now {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 12px 14px;
  background: var(--surface-2);
}

.live-now .lbl {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 60%, transparent);
  animation: pulse 2s infinite;
}

@media (prefers-reduced-motion: reduce) {
  .pulse {
    animation: none;
  }
}
.live-now .city {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 17px;
  display: flex;
  align-items: center;
  gap: 7px;
}

.live-now .sub {
  font-size: var(--fz-base);
  color: var(--muted);
  margin-top: 3px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.next-stop {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--fg-2);
  padding-top: 8px;
  margin-top: 8px;
  border-top: 1px dashed var(--border-2);
}

.next-stop .flag {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--blue-bright) 12%, #fff);
  color: var(--blue-bright);
  flex: 0 0 auto;
}

.next-stop b {
  color: var(--fg);
}

.sec-lbl {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
}

.sec-lbl .li {
  color: var(--sesc-blue);
}

.desc {
  font-size: var(--fz-md);
  color: var(--fg-2);
  line-height: 1.6;
}

.course-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.detail-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.expand-only {
  display: none;
  flex-direction: column;
  gap: 16px;
}

.app[data-rail=expanded] .expand-only {
  display: flex;
}

.app[data-rail=expanded] .collapse-only {
  display: none;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.gcell {
  aspect-ratio: 1;
  border-radius: 10px;
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  color: #fff;
  border: 1px solid var(--border);
}

.gcell .plabel {
  position: absolute;
  bottom: 6px;
  left: 8px;
  font-size: 10px;
  font-family: var(--font-mono);
  z-index: 2;
  opacity: 0.95;
}

.gcell .pico {
  opacity: 0.9;
  position: relative;
  z-index: 1;
}

.gcell.video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(10, 26, 51, 0.28);
}

.course-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border-radius: 0;
}

.course-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 2px;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: none;
}

.course-list li:last-child {
  border-bottom: 0;
}

.course-list .cn {
  font-size: var(--fz-md);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}

.course-list .cn .ci {
  color: var(--senac-orange);
}

.course-list .ch {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}

.timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 6px;
}

.timeline li {
  position: relative;
  padding: 0 0 16px 22px;
  border-left: 2px solid var(--border-2);
}

.timeline li:last-child {
  border-left-color: transparent;
  padding-bottom: 0;
}

.timeline li::before {
  content: "";
  position: absolute;
  left: -7px;
  top: 2px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border-2);
}

.timeline li.now::before {
  border-color: var(--success);
  background: var(--success);
}

.timeline li.future::before {
  border-color: var(--blue-bright);
  border-style: dashed;
}

.timeline .tc {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fz-md);
}

.timeline .td {
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}

.hist {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.hist span {
  font-size: var(--fz-sm);
  color: var(--muted);
  background: var(--surface-2);
  padding: 4px 9px;
  border-radius: var(--r-pill);
}

.cols-2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.app[data-rail=expanded] .cols-2 {
  grid-template-columns: 1fr 1fr;
}

/* ── Map stage (Leaflet) ── */
/* z-index:0 torna o palco um contexto de empilhamento: os panes do Leaflet
   (até ~800) ficam contidos abaixo dos overlays (z-index:900) e o rail
   (z-index 40/50) permanece acima de todo o palco. */
.map-stage {
  flex: 1 1 auto;
  position: relative;
  overflow: hidden;
  background: var(--water);
  min-width: 0;
  z-index: 0;
}

.leaflet-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: var(--water);
}

.leaflet-stage:focus {
  outline: none;
}

.leaflet-container {
  font-family: var(--font-body);
}

.mg-mask {
  fill: var(--water, #e7eefb);
  fill-opacity: 1;
}

/* marcadores (divIcon) — PIN padrão: gota + círculo branco com wordmark */
.leaflet-div-icon.lm-di {
  background: transparent;
  border: 0;
}

.lm-pin {
  position: relative;
  width: 40px;
  height: 48px;
}

.lm-pin .lm-drop {
  position: absolute;
  left: 4px;
  top: 2px;
  width: 32px;
  height: 32px;
  border: 2px solid #fff;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  box-shadow: 0 4px 10px rgba(22, 35, 59, 0.35);
}

.lm-pin .lm-face {
  position: absolute;
  left: 4px;
  top: 2px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
}

.lm-pin .lm-disc {
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: #fff;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.lm-pin .lm-disc .lm-logo {
  width: 23px;
  height: 23px;
  object-fit: cover;
  border-radius: 50%;
}

.lm-pin .lm-wm {
  font: 800 8px/1 var(--font-display);
  letter-spacing: -0.03em;
  text-transform: lowercase;
}

.lm-pin .lm-wm.inst-sesc {
  color: var(--sesc-blue);
}

.lm-pin .lm-wm.inst-senac {
  color: var(--senac-blue);
}

/* ícone da unidade (Font Awesome, HTML literal vindo do cadastro): tamanho e
   cor pelo CSS, não pelo dado — mesmas cores do corpo do pino (ver instColor). */
.lm-pin .lm-disc i {
  font-size: 14px;
  line-height: 1;
}

.lm-pin.inst-sesc .lm-disc i {
  color: var(--sesc-yellow);
}

.lm-pin.inst-senac .lm-disc i {
  color: var(--senac-orange);
}

.lm-pin.inst-desconhecida .lm-disc i {
  color: var(--muted);
}

.lm-pin .lm-status {
  position: absolute;
  top: 0;
  right: 1px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.lm-pin.planned .lm-drop {
  border-style: dashed;
  box-shadow: 0 3px 7px rgba(22, 35, 59, 0.2);
}

.lm-pin.sel {
  transform: scale(1.16);
  transform-origin: 50% 100%;
  z-index: 1000;
}

.lm-pin.sel .lm-drop {
  border-color: var(--blue-bright);
}

.leaflet-marker-icon:hover {
  z-index: 1000 !important;
}

.leaflet-marker-icon:hover .lm-drop {
  transform: rotate(-45deg) scale(1.08);
}

/* tooltip do Leaflet estilizado como o "tip" do protótipo */
.leaflet-tooltip.lm-tip {
  background: var(--fg);
  color: #fff;
  border: 0;
  border-radius: 6px;
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 600;
  box-shadow: var(--elev-2);
  white-space: nowrap;
}

.leaflet-tooltip.lm-tip b {
  font-weight: 800;
}

.leaflet-tooltip-top.lm-tip::before {
  border-top-color: var(--fg);
}

.leaflet-tooltip.lm-tip.future {
  background: var(--blue-bright);
}

.leaflet-tooltip-top.lm-tip.future::before {
  border-top-color: var(--blue-bright);
}

/* atribuição dos tiles (licença OSM/CARTO) */
.map-attrib {
  position: absolute;
  right: 10px;
  bottom: 6px;
  z-index: 900;
  font-size: 10px;
  color: var(--muted);
  background: color-mix(in srgb, #fff 72%, transparent);
  backdrop-filter: blur(6px);
  padding: 3px 9px;
  border-radius: var(--r-pill);
}

.map-attrib a {
  color: var(--sesc-blue);
  text-decoration: underline;
}

/* map overlays */
.map-city-search {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 900;
  display: flex;
  gap: 8px;
  align-items: center;
}

.map-ctrls {
  position: absolute;
  bottom: 20px;
  right: 18px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
}

.roundbtn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--senac-blue);
  color: #fff;
  border: 0;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 20px rgba(0, 69, 135, 0.32);
}

.roundbtn:hover {
  background: var(--blue-bright);
}

.legend {
  position: absolute;
  left: 16px;
  bottom: 20px;
  z-index: 900;
  background: var(--glass);
  backdrop-filter: blur(12px);
  border: 1px solid var(--glass-border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-lite);
  padding: 12px 14px;
  max-width: 230px;
}

.legend .lt {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.legend ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.legend li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--fg-2);
}

.lg-pin {
  width: 14px;
  height: 14px;
  border-radius: 50% 50% 50% 2px;
  transform: rotate(45deg);
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  flex: 0 0 auto;
}

.lg-pin.future {
  background: var(--surface);
  border: 2px dashed var(--blue-bright);
  box-shadow: none;
}

.lg-pin.acontecendo {
  background: var(--success);
}

.lg-pin.agendado {
  background: var(--blue-bright);
}

.lg-pin.encerrado {
  background: var(--muted);
}

.legend-toggle {
  display: none;
}

/* toast */
.toasts {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 950;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  pointer-events: none;
}

.toast-map {
  background: var(--fg);
  color: #fff;
  font-size: 13px;
  padding: 10px 16px;
  border-radius: var(--r-pill);
  box-shadow: var(--elev-2);
  display: flex;
  align-items: center;
  gap: 8px;
  animation: tin 0.25s ease;
}

.sheet-handle {
  display: none;
}

.sheet-grab {
  display: none;
}

/* ── Responsive: mobile bottom-sheet arrastável.
   Breakpoints alinhados ao Bootstrap 4.6 (eram max-width:900px e 520px). ── */
@media (max-width: 991.98px) {
  .app {
    --hdr:56px;
  }
  .campaign {
    display: none;
  }
  .stage-wrap {
    display: block;
    position: relative;
  }
  .map-stage {
    position: absolute;
    inset: 0;
  }
  /* Drawer: altura controlada por --sheet-h (encaixes peek/mid/full).
     O topo (grab + cabeçalho + busca) fica sempre visível no peek. */
  aside.rail {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    width: auto !important;
    flex-basis: auto !important;
    height: var(--sheet-h, 36dvh);
    max-height: 85dvh;
    border-right: 0;
    border-top: 1px solid var(--border);
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -12px 40px rgba(22, 35, 59, 0.18);
    z-index: 61;
    transition: height 0.34s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .sheet-grab {
    display: block;
    padding: 20px 0;
    touch-action: none;
    cursor: grab;
    flex: 0 0 auto;
  }
  .sheet-grab:active {
    cursor: grabbing;
  }
  .sheet-handle {
    display: block;
    width: 44px;
    height: 5px;
    border-radius: 9999px;
    background: var(--border-2);
    margin: 0 auto;
  }
  /* controles do mapa acompanham o peek e somem quando o drawer sobe */
  .map-ctrls {
    bottom: calc(36dvh + 16px);
    transition: opacity 0.25s, bottom 0.34s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .app[data-sheet=mid] .map-ctrls, .app[data-sheet=full] .map-ctrls {
    opacity: 0;
    pointer-events: none;
  }
  .cols-2 {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 575.98px) {
  .map-city-search {
    left: 12px;
    top: 12px;
  }
}
/* Popup de agendamento */
.leaflet-popup-content-wrapper {
  border-radius: 16px;
  padding: 2px;
  border: 1px solid var(--border);
  box-shadow: 0 18px 44px rgba(22, 35, 59, 0.2), 0 3px 10px rgba(22, 35, 59, 0.1);
}

.leaflet-popup-content {
  margin: 15px 16px;
  font-family: var(--font-body);
  line-height: 1.4;
}

.leaflet-popup-tip {
  box-shadow: 0 8px 18px rgba(22, 35, 59, 0.12);
}

.ag-popup {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 212px;
  max-width: 264px;
}

.ag-popup .badge {
  align-self: flex-start;
}

.ag-popup .ag-title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  color: var(--fg);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-top: 1px;
}

.ag-popup .ag-veiculo {
  font-size: var(--fz-caption);
  font-weight: 700;
  color: var(--muted);
  margin-top: -4px;
}

.ag-popup .ag-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 2px;
  padding-top: 9px;
  border-top: 1px solid var(--border);
}

.ag-popup .ag-line {
  font-size: var(--fz-base);
  color: var(--fg-2);
  display: flex;
  align-items: flex-start;
  gap: 8px;
  line-height: 1.35;
}

.ag-popup .ag-line .agi {
  color: var(--brand-blue);
  margin-top: 1px;
  flex: 0 0 auto;
}

.ag-popup .ag-svc {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 1px;
}

.ag-popup .ag-svc .cchip {
  font-size: 11px;
  padding: 4px 9px;
  background: var(--surface-2);
  border-color: transparent;
  color: var(--fg-2);
  font-weight: 600;
}

.legend-note {
  margin: 8px 2px 0;
  font-size: var(--fz-caption);
  color: var(--muted);
  line-height: 1.4;
  max-width: 210px;
}

/* Ajustes mobile do mapa (depois das regras-base p/ vencer por ordem de origem) */
@media (max-width: 991.98px) {
  /* busca de cidade ocupa toda a largura entre as bordas */
  .city-search {
    left: 12px;
    right: 12px;
    width: auto;
    max-width: none;
    transition: opacity 0.25s;
  }
  /* ao subir o drawer, some com a busca flutuante: a faixa do topo vira
     mapa limpo e clicável (um toque recolhe o drawer) */
  .app[data-sheet=mid] .city-search, .app[data-sheet=full] .city-search {
    opacity: 0;
    pointer-events: none;
  }
  .backbtn {
    min-height: 44px;
    min-width: 44px;
  }
}
/* Estado do evento no popup — texto colorido com ponto (sem pílula) */
.ag-popup .ag-estado {
  font-size: var(--fz-sm);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  line-height: 1.25;
}

.ag-popup .ag-estado .ag-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
}

.ag-popup .ag-estado.acontecendo {
  color: var(--success);
}

.ag-popup .ag-estado.acontecendo .ag-dot {
  background: var(--success);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--success) 22%, transparent);
}

.ag-popup .ag-estado.agendado {
  color: var(--blue-bright);
}

.ag-popup .ag-estado.agendado .ag-dot {
  background: var(--blue-bright);
}

/* ═══════════════════════════════════════════════════════════════
   Rail AZUL (tela do mapa): fundo azul da marca, cards continuam
   claros; o que fica DIRETO sobre o azul é invertido p/ tom claro.
   Escopado em .app (só a tela do mapa). Definido no fim do arquivo p/
   vencer as regras-base por ordem de origem. ═══════════════════════════ */
.app aside.rail {
  background: linear-gradient(180deg, #0a3062 0%, #092a54 100%);
  border-right-color: rgba(255, 255, 255, 0.1);
}

.app .rail-head {
  background: #0a3062;
  border-bottom-color: rgba(255, 255, 255, 0.12);
}

.app .rail-head h1 {
  color: var(--on-dark);
}

.app .rail-head p {
  color: var(--on-dark-2);
}

.app .rail-head .eyebrow {
  color: var(--on-dark-blue);
}

.app .flabel {
  color: var(--on-dark-2);
}

.app .count {
  color: var(--on-dark-2);
}

.app .count b {
  color: #fff;
}

/* chips de filtro: claro translúcido; selecionado = branco sólido (contraste) */
.app .chip {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.26);
  color: var(--on-dark);
}

.app .chip:hover {
  border-color: rgba(255, 255, 255, 0.6);
}

.app .chip[aria-pressed=true] {
  background: #fff;
  border-color: #fff;
  color: var(--brand-blue);
}

/* mesmo tratamento sobre .brand-band (ex.: filtro da vitrine da frota, Home) */
.brand-band .chip {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.26);
  color: var(--on-dark);
}

.brand-band .chip:hover {
  border-color: rgba(255, 255, 255, 0.6);
}

.brand-band .chip[aria-pressed=true] {
  background: #fff;
  border-color: #fff;
  color: var(--brand-blue);
}

.unit-page .chip[aria-pressed=true] {
  background: #fff;
  border-color: #fff;
  color: var(--brand-blue);
}

/* chip de instituição selecionado usa a MESMA cor do pino no mapa (amarelo
   Sesc / laranja Senac — ver instColor em markerIcons.jsx), não um azul
   genérico. Texto escuro pro contraste em cima do amarelo/laranja. Mesma
   especificidade das regras acima, então precisa vir depois delas na
   cascata pra vencer em qualquer contexto (claro/.app/.brand-band). */
.chip.chip-inst-sesc[aria-pressed=true] {
  background: var(--sesc-yellow);
  border-color: var(--sesc-yellow);
  color: var(--fg);
}

.chip.chip-inst-senac[aria-pressed=true] {
  background: var(--senac-orange);
  border-color: var(--senac-orange);
  color: var(--fg);
}

.chip.chip-inst-sesc[aria-pressed=true] .dot, .chip.chip-inst-senac[aria-pressed=true] .dot {
  background: #fff;
}

/* paginação */
.app .pg-btn {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.26);
  color: #fff;
}

.app .pg-btn:hover:not(:disabled) {
  border-color: #fff;
  color: #fff;
}

.app .pg-label {
  color: var(--on-dark-2);
}

.app .pg-dot {
  background: rgba(255, 255, 255, 0.32);
}

.app .pg-dot:hover {
  background: rgba(255, 255, 255, 0.6);
}

.app .pg-dot.on {
  background: #fff;
}

/* card selecionado: halo claro para destacar no azul */
.app .ucard.active {
  border-color: #fff;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.55);
}

/* estado vazio */
.app .empty {
  color: var(--on-dark-2);
}

.app .empty b {
  color: #fff;
}

.app .empty .ei {
  color: rgba(255, 255, 255, 0.35);
}

/* alça do sheet mobile */
.app .sheet-handle {
  background: rgba(255, 255, 255, 0.45);
}

/* ── view de detalhe (mesmo rail azul) ── */
.app .backbar {
  border-bottom-color: rgba(255, 255, 255, 0.12);
}

.app .badge-row .stat {
  color: var(--on-dark-2);
}

.app .sec-lbl {
  color: var(--on-dark);
}

.app .sec-lbl .li {
  color: var(--on-dark-blue);
}

.app .desc {
  color: var(--on-dark-2);
}

.app .course-list li {
  border-bottom-color: rgba(255, 255, 255, 0.12);
}

.app .course-list .cn {
  color: var(--on-dark);
}

.app .course-list .ch {
  color: var(--on-dark-2);
}

.app .timeline li {
  border-left-color: rgba(255, 255, 255, 0.18);
}

.app .timeline .tc {
  color: var(--on-dark);
}

.app .timeline .td {
  color: var(--on-dark-muted);
}

/* Catálogo de unidades (listagem): sem CSS próprio além do grid fluido
   (.uni-grid, em layout/_grid.scss) e do card (.fleet-card, compartilhado
   com a vitrine da Home, em components/_card.scss). */
.portlet-content:has(.unit-page) .taglib-categorization-filter {
  display: none;
}

/* Página dedicada de detalhe da unidade — escopada em .unit-page (wrapper
   genérico compartilhado com outras páginas públicas; ver layout/_navigation.scss
   e layout/_grid.scss para o que é realmente compartilhado). */
/* hero */
/* Grid nativo do Bootstrap: .hero carrega a classe .row (JSX) e as colunas
   .col-lg-7/.col-lg-5 (JSX) já vêm com flex-basis/max-width/gutter do
   próprio bootstrap.min.css e empilham nativamente abaixo de 992px — sem
   overrides. O gutter passa a ser o padrão do Bootstrap (30px), não mais
   o gap:24px customizado. */
.unit-page .hero {
  padding: 8px 0 16px;
}

.unit-page .gallery-main {
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--elev);
}

.unit-page .gmain {
  aspect-ratio: 16/10;
  position: relative;
  color: #fff;
  display: flex;
  align-items: flex-end;
  padding: 16px;
  background: var(--muted);
}

.unit-page .gmain.inst-sesc {
  background: var(--sesc-blue);
}

.unit-page .gmain.inst-senac {
  background: var(--senac-blue);
}

.unit-page .gmain::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 26, 51, 0.04), rgba(10, 26, 51, 0.42));
}

.unit-page .gmain .pico {
  position: absolute;
  top: 14px;
  left: 16px;
  opacity: 0.85;
  z-index: 1;
  font-size: 30px;
}

.unit-page .gmain .ph-tag {
  position: absolute;
  top: 14px;
  right: 16px;
  font-family: var(--font-mono);
  font-size: 11px;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 4px 9px;
  border-radius: var(--r-pill);
  z-index: 2;
  backdrop-filter: blur(6px);
}

.unit-page .gmain-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.unit-page .gmain.clickable {
  cursor: pointer;
}

.unit-page .gmain-expand {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: var(--fz-base);
  font-weight: 700;
  color: #fff;
  background: rgba(10, 26, 51, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 7px 14px;
  border-radius: var(--r-pill);
  backdrop-filter: blur(6px);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.2s, transform 0.2s;
}

.unit-page .gmain.clickable:hover .gmain-expand,
.unit-page .gmain.clickable:focus-visible .gmain-expand {
  opacity: 1;
  transform: translateY(0);
}

.unit-page .hero-info {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.unit-page .hero-info h1 {
  line-height: 1.05;
}

.unit-page .meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.unit-page .cta-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}

.unit-page .cta-row .btn i {
  font-size: 18px;
}

/* Ícones FontAwesome: reset de line-height (herdado do body) + tamanho por
   contexto, substituindo os estilos inline usados antes no modelo ADT. */
.unit-page i.fa-solid,
.unit-page i.fa-regular,
.unit-page i.fa-brands {
  line-height: 1;
}

.unit-page .btn-sm i {
  font-size: 16px;
}

/* content grid — grid nativo do Bootstrap (.row/.col-lg-8/.col-lg-4 no JSX) */
.unit-page .content {
  padding: 24px 0 48px;
  align-items: flex-start;
}

/* Client Extension (localização/agenda ao vivo): separado do conteúdo
   estático acima por uma borda, reforçando visualmente os dois blocos. */
.unit-page .content.client-ext {
  border-top: 1px solid var(--border);
  padding-top: 24px;
  margin-top: 8px;
}

.unit-page section.block {
  margin-bottom: 24px;
}

.unit-page .sec-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 16px;
}

.unit-page .sec-title .sti {
  color: var(--on-dark-accent);
  font-size: 20px;
}

.unit-page .desc {
  color: var(--fg-2);
  font-size: 16px;
  line-height: 1.7;
}

.unit-page .course-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--surface);
  display: block;
}

.unit-page .course-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 16px;
  border: 0;
  border-radius: 0;
  background: none;
}

.unit-page .course-list li + li {
  border-top: 1px solid var(--border);
}

.unit-page .course-list .cn {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 15px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.unit-page .course-list .cn .ci {
  color: var(--senac-orange);
  font-size: 18px;
}

.unit-page .course-list .ch {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--fg);
  background: var(--surface-2);
  padding: 4px 10px;
  border-radius: var(--r-pill);
  font-weight: 600;
}

.unit-page .timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 8px;
}

.unit-page .timeline li {
  position: relative;
  padding: 0 0 24px 24px;
  border-left: 2px solid var(--border-2);
}

.unit-page .timeline li:last-child {
  border-left-color: transparent;
  padding-bottom: 0;
}

.unit-page .timeline li::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border-2);
}

.unit-page .timeline li.now::before {
  border-color: var(--success);
  background: var(--success);
}

.unit-page .timeline li.future::before {
  border-color: var(--on-dark-accent);
  border-style: dashed;
}

.unit-page .timeline .tc {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
}

.unit-page .timeline .td {
  font-size: 13px;
  color: var(--muted);
  margin-top: 2px;
}

.unit-page .timeline .timeline-veiculo {
  margin-left: 6px;
  font-weight: 400;
}

.unit-page .hist {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.unit-page .hist span {
  font-size: var(--fz-base);
  color: var(--muted);
  background: var(--surface-2);
  padding: 6px 12px;
  border-radius: var(--r-pill);
}

/* galeria de fotos — tira de miniaturas lado a lado no final da página;
   clicar abre o carrossel em tela cheia (.lightbox, ver mais abaixo). */
.unit-page .unit-gallery {
  padding-top: 24px;
  border-top: 1px solid var(--border);
  margin-top: 8px;
}

.unit-page .gstrip {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.unit-page .gstrip-item {
  flex: 0 0 auto;
  width: 132px;
  aspect-ratio: 4/3;
  border-radius: var(--r-md);
  overflow: hidden;
  position: relative;
  border: 1px solid var(--border);
  padding: 0;
  background: var(--surface-2);
  cursor: pointer;
  transition: transform 0.18s, box-shadow 0.18s;
}

.unit-page .gstrip-item img,
.unit-page .gstrip-item video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s;
}

.unit-page .gstrip-item.is-video::after {
  content: "\f04b";
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(6, 14, 28, 0.55);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 14px;
  pointer-events: none;
  z-index: 1;
}

.unit-page .gstrip-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--elev);
}

.unit-page .gstrip-item:hover img,
.unit-page .gstrip-item:hover video {
  transform: scale(1.06);
}

@media (max-width: 767.98px) {
  .unit-page .gstrip-item {
    width: calc(50% - 6px);
  }
}
/* lightbox — carrossel em tela cheia aberto a partir da galeria de fotos.
   position:fixed, então não depende do scroll/contexto de .unit-page. */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(6, 14, 28, 0.92);
  backdrop-filter: blur(6px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  animation: brand-rise 0.25s var(--ease-brand) both;
}

.lightbox-close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 2;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background 0.15s;
}

.lightbox-close:hover {
  background: rgba(255, 255, 255, 0.2);
}

.lightbox-count {
  position: absolute;
  top: 26px;
  left: 26px;
  z-index: 2;
  color: var(--on-dark-2);
  font-family: var(--font-mono);
  font-size: var(--fz-base);
  letter-spacing: 0.04em;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  padding: 5px 12px;
  border-radius: var(--r-pill);
}

.lightbox-stage {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  max-width: 1140px;
  flex: 1;
  min-height: 0;
  padding: 48px 0;
}

.lightbox-viewport {
  position: relative;
  flex: 1;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  border-radius: var(--r-lg);
}

.lightbox-track {
  display: flex;
  height: 100%;
  transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}

.lightbox-slide {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox-slide img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: var(--r-lg);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55);
}

.lightbox-video {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  background: #000;
  border-radius: var(--r-lg);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55);
}

.lightbox-nav {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background 0.15s, transform 0.15s;
}

.lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(1.06);
}

.lightbox-rail {
  display: flex;
  gap: 10px;
  max-width: 100%;
  overflow-x: auto;
  padding: 4px 4px 2px;
  scrollbar-width: thin;
}

.lightbox-thumb {
  flex: 0 0 auto;
  width: 64px;
  aspect-ratio: 4/3;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  padding: 0;
  cursor: pointer;
  border: 2px solid transparent;
  opacity: 0.55;
  transition: opacity 0.15s, border-color 0.15s;
}

.lightbox-thumb img,
.lightbox-thumb video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lightbox-thumb.is-video::after {
  content: "\f04b";
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(6, 14, 28, 0.55);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 10px;
  pointer-events: none;
  z-index: 1;
}

.lightbox-thumb:hover {
  opacity: 0.85;
}

.lightbox-thumb.active {
  opacity: 1;
  border-color: #fff;
}

@media (max-width: 767.98px) {
  .lightbox-stage {
    gap: 8px;
    padding: 48px 0;
  }
  .lightbox-nav {
    width: 38px;
    height: 38px;
  }
}
/* sidebar */
.unit-page aside.side {
  position: sticky;
  top: 84px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.unit-page .side-card {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface);
  padding: 18px;
  box-shadow: var(--elev);
}

.unit-page .side-lbl {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  font-weight: 700;
  margin-bottom: 8px;
}

.unit-page .minimap {
  aspect-ratio: 4/3;
  border-radius: var(--r-sm);
  position: relative;
  overflow: hidden;
  background: #e7eefb;
  border: 1px solid var(--border);
  margin-bottom: 16px;
}

.unit-page .minimap svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.unit-page .minimap .leaflet-stage-mini {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.unit-page .side-card .side-stat {
  margin-bottom: 2px;
}

.unit-page .side-card .side-addr {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fz-base);
  color: var(--muted);
  margin-top: 4px;
}

.unit-page .mm-pin {
  position: absolute;
  transform: translate(-50%, -100%);
  z-index: 2;
}

.unit-page .mm-pin .h {
  width: 26px;
  height: 26px;
  border-radius: 50% 50% 50% 3px;
  transform: rotate(45deg);
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
}

.unit-page .mm-pin .h .mi {
  transform: rotate(-45deg);
  color: #fff;
}

.unit-page .share-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.unit-page .share-row button {
  flex: 1;
  min-width: 0;
}

/* Breakpoint alinhado ao Bootstrap 4.6 (era max-width:900px) */
@media (max-width: 991.98px) {
  .unit-page aside.side {
    position: static;
  }
}
/* toast */
.unit-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--fg);
  color: #fff;
  font-size: 14px;
  padding: 11px 18px;
  border-radius: var(--r-pill);
  box-shadow: var(--elev-2);
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── Canvas escuro: textos que ficam DIRETO sobre o fundo (fora de cards)
   passam a claros. Definido no fim do arquivo p/ vencer as regras-base por
   ordem de origem. Cards seguem claros com texto escuro (sem alteração).
   (crumb/page-head ficam em layout/_navigation.scss — se aplicam a várias
   páginas, não só esta.) ── */
.unit-page .hero-info h1 {
  color: var(--on-dark);
}

.unit-page .hero-info .stat {
  color: var(--on-dark-2);
}

.unit-page .hero-info .hint {
  color: var(--on-dark-2);
}

.unit-page .sec-title {
  color: var(--on-dark);
}

.unit-page .desc {
  color: var(--on-dark-2);
}

.unit-page .timeline li {
  border-left-color: rgba(255, 255, 255, 0.18);
}

.unit-page .timeline .tc {
  color: var(--on-dark);
}

.unit-page .timeline .td {
  color: var(--on-dark-muted);
}

/* Sobre: grid dos 3 pilares (o corpo do card, .sobre-card, está em
   components/_card.scss). Grid nativo do Bootstrap: JSX usa .row +
   .col-md-4 (não o .col-4 bare de antes) — assim empilha nativamente
   abaixo de 768px, igual ao breakpoint customizado anterior (era
   max-width:760px), sem precisar de override de largura. */
.sobre-pilares {
  padding: 8px 0 24px;
}

/* Solicitar */
.solic-wrap {
  max-width: 720px;
  margin: 0 auto;
  padding-bottom: 48px;
}

.solic-form {
  padding: 22px;
}

/* Texto dentro do card claro (.card) — precisa da própria cor, não pode
   usar .desc: essa classe é reescrita para --on-dark-2 no fim deste arquivo
   (texto direto sobre o canvas escuro), o que ficaria ilegível aqui dentro
   de um card branco. */
.solic-text {
  color: var(--fg-2);
  font-size: 16px;
  line-height: 1.7;
}

.solic-proto {
  margin: 16px 0;
  padding: 14px;
  border: 1px dashed var(--border-2);
  border-radius: var(--r-md);
}

.solic-proto b {
  display: block;
  font-size: 22px;
  color: var(--sesc-blue);
  margin-top: 4px;
}

.solic-list {
  margin: 16px 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.solic-list li {
  display: flex;
  gap: 10px;
}

.solic-list .solic-check-icon {
  flex: 0 0 auto;
  margin-top: 3px;
}

.solic-list a {
  color: var(--sesc-blue);
}

/* Notícias — listagem: sem CSS próprio além do grid fluido e do card
   (.news-grid em layout/_grid.scss, .news-card em components/_card.scss).

   Notícia — artigo (detalhe) */
.artigo {
  max-width: 760px;
  margin: 0 auto;
  padding-bottom: 24px;
}

.artigo-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
}

.artigo-meta .news-date {
  color: var(--on-dark-muted);
}

.artigo-motif {
  flex: 0 0 auto;
}

.artigo-titulo {
  margin: 8px 0;
  color: var(--on-dark);
}

.artigo-resumo {
  font-size: 18px;
  color: var(--on-dark-2);
  line-height: 1.5;
  margin: 0 0 16px;
}

.artigo-capa {
  border-radius: var(--r-md);
  overflow: hidden;
  margin: 8px 0 24px;
}

.artigo-capa img {
  width: 100%;
  display: block;
}

.artigo-corpo {
  font-size: 16px;
  line-height: 1.75;
  color: var(--on-dark-2);
  white-space: pre-line;
}

.artigo-corpo img {
  border-radius: var(--r-md);
}

.artigo-galeria img {
  width: 100%;
  border-radius: var(--r-sm);
  display: block;
}

.artigo-bloco {
  margin-top: 24px;
}

.artigo-bloco .sec-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 16px;
  color: var(--on-dark);
}

.artigo-bloco .sec-title .sti {
  color: var(--on-dark-accent);
  font-size: 20px;
}

.artigo-links {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.artigo-links a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--on-dark-blue);
  text-decoration: none;
  word-break: break-all;
}

.artigo-links a:hover {
  text-decoration: underline;
}

/* Área administrativa: login + painel de agendamentos. Reusa tokens e o
   padrão visual do brand-spec (superfícies brancas, azul de hierarquia).
   (usermenu está em components/_dropdown.scss; admin-tabs em
   layout/_navigation.scss; cards/listas em components/_card.scss; formulário
   em components/_form.scss; modal em components/_modal.scss) */
/* ---- Login ---- */
.admin-login {
  display: grid;
  place-items: center;
  padding: 48px 24px;
  min-height: 60vh;
}

.admin-card {
  width: 100%;
  max-width: 440px;
}

.admin-card .card-body {
  padding: 28px;
}

.admin-card h1 {
  margin-top: 4px;
}

.login-hint {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 13px;
  color: var(--muted);
}

.login-hint b {
  color: var(--fg);
  margin-bottom: 2px;
}

/* ---- Painel ---- */
.admin-panel {
  padding-top: 24px;
  padding-bottom: 48px;
}

.admin-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

.admin-head h1 {
  margin: 2px 0 8px;
  font-weight: 800;
}

.admin-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* ---- Agenda (calendário + card) ---- */
/* Grid nativo do Bootstrap (.row/.col-lg-7/.col-lg-5 no JSX) — empilha
   nativamente abaixo de 992px, gutter padrão do Bootstrap (30px) no
   lugar do gap:20px customizado. */
.agenda-grid {
  align-items: flex-start;
}

/* cabeçalho do card de Agenda: título + filtro por unidade (lado oposto) */
.agenda-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}

.agenda-card-head .sec-title {
  margin-bottom: 0;
}

.agenda-filtro {
  display: flex;
  align-items: center;
  gap: 8px;
}

.agenda-filtro label {
  font-size: 13px;
  font-weight: 600;
  color: var(--fg-2);
}

.agenda-filtro select {
  height: 36px;
  max-width: 220px;
  border: 1px solid var(--border-2);
  border-radius: var(--r-sm);
  padding: 0 10px;
  background: var(--surface);
  font: inherit;
  color: var(--fg-2);
  cursor: pointer;
}

.agenda-filtro select:focus {
  outline: none;
  border-color: var(--sesc-blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sesc-blue) 15%, transparent);
}

/* Breakpoint alinhado ao Bootstrap 4.6 (era max-width:560px) */
@media (max-width: 575.98px) {
  .agenda-filtro {
    width: 100%;
  }
  .agenda-filtro select {
    flex: 1;
    max-width: none;
  }
}
.cal {
  margin-top: 16px;
}

.cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.cal-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
}

.cal-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
}

.cal-dow {
  margin-bottom: 6px;
}

.cal-dow-c {
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
}

.cal-cell {
  position: relative;
  aspect-ratio: 1;
  min-width: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  line-height: 1;
  color: var(--fg);
  background: var(--surface-2);
}

.cal-cell.empty {
  background: transparent;
  pointer-events: none;
}

.cal-cell:hover:not(.empty) {
  border-color: var(--border-2);
}

.cal-cell.today {
  outline: 2px solid var(--blue-bright);
  outline-offset: -2px;
  font-weight: 800;
}

.cal-cell.sel {
  border-color: var(--sesc-blue);
  box-shadow: 0 0 0 1px var(--sesc-blue);
}

.cal-cell.has {
  font-weight: 700;
}

.cal-cell.ev-acontecendo {
  background: color-mix(in srgb, var(--success) 22%, #fff);
  color: var(--success);
}

.cal-cell.ev-agendado {
  background: color-mix(in srgb, var(--blue-bright) 18%, #fff);
  color: var(--blue-bright);
}

.cal-cell.ev-passado {
  background: var(--surface-2);
  color: var(--muted);
}

.cal-cell.start {
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
  box-shadow: inset 3px 0 0 currentColor;
}

.cal-cell.end {
  border-top-right-radius: 12px;
  border-bottom-right-radius: 12px;
  box-shadow: inset -3px 0 0 currentColor;
}

.cal-cell.start.end {
  box-shadow: inset 3px 0 0 currentColor, inset -3px 0 0 currentColor;
}

.cal-dot {
  position: absolute;
  bottom: 5px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}

/* ---- Campo de período (dropdown, estilo decolar.com) ---- */
.date-range-field {
  position: relative;
}

.date-range-trigger {
  font: inherit;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border: 1px solid var(--border-2);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--fg);
  min-height: 44px;
  cursor: pointer;
}

.date-range-trigger:focus,
.date-range-trigger[aria-expanded=true] {
  outline: 2px solid var(--blue-bright);
  outline-offset: 1px;
  border-color: var(--blue-bright);
}

.date-range-trigger .placeholder {
  color: var(--muted);
}

.date-range-popover {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 70;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--elev);
  padding: 14px;
  width: 308px;
  max-width: calc(100vw - 32px);
}

.date-range-popover .cal {
  margin-top: 0;
}

.day-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.day-card-head b {
  font-size: 15px;
}

/* ---- Lista de unidades ---- */
.ul-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 16px 0;
}

.ul-top .sec-title {
  margin-bottom: 0;
}

.ul-search {
  position: relative;
  flex: 1 1 240px;
  max-width: 340px;
}

.ul-search i {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}

.ul-search input {
  padding-left: 34px;
}

/* ---- Paradas do veículo (VeiculoForm) ---- */
.paradas-card {
  margin-top: 24px;
}

.paradas-preview {
  margin-bottom: 0;
  position: relative;
  height: 260px;
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--water);
}

.paradas-preview .leaflet-stage-mini {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* ---- Catálogo (treinamentos e serviços) ---- */
.catalogo-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.catalogo-head h3 {
  margin: 0;
}

.catalogo-head .cat-count {
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}

/* Ações destrutivas */
.icobtn.danger:hover {
  color: var(--danger);
}

.de-actions {
  margin-left: auto;
  display: flex;
  gap: 2px;
}

/* ---- Áreas ---- */
.area-ico {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--sesc-blue) 12%, #fff);
  color: var(--sesc-blue);
}

.icon-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.icon-opt {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border-2);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--fg-2);
  cursor: pointer;
  transition: 0.15s;
}

.icon-opt:hover {
  border-color: var(--fg-2);
  color: var(--fg);
}

.icon-opt.on {
  border-color: var(--sesc-blue);
  color: var(--sesc-blue);
  background: color-mix(in srgb, var(--sesc-blue) 10%, #fff);
  box-shadow: 0 0 0 1px var(--sesc-blue);
}

/* ---- Dashboard de Gestão ---- */
.gestao {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* KPIs (topo) */
.gestao-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

/* Breakpoints alinhados ao Bootstrap 4.6 (eram max-width:900px e 520px) */
@media (max-width: 991.98px) {
  .gestao-kpis {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575.98px) {
  .gestao-kpis {
    grid-template-columns: 1fr;
  }
}
.gestao-grid {
  display: grid;
  grid-template-columns: minmax(320px, 380px) 1fr;
  gap: 20px;
  align-items: start;
}

.gestao-main {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

/* Breakpoint alinhado ao Bootstrap 4.6 (era max-width:900px) */
@media (max-width: 991.98px) {
  .gestao-grid {
    grid-template-columns: 1fr;
  }
}
/* Frota & situação */
.gestao-frota {
  padding: 18px;
}

.frota-resumo {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 16px;
}

.frota-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--muted);
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  padding: 5px 10px;
}

.frota-chip b {
  color: var(--fg);
}

.frota-chip .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

/* Eventos no tempo */
.gestao-eventos {
  padding: 18px;
}

.ev-kpi {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 4px 0 16px;
}

.ev-kpi-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 44px;
  line-height: 1;
  color: var(--sesc-blue);
}

.ev-kpi-cap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ev-kpi-cap b {
  font-size: 14px;
}

.ev-bars {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  height: 140px;
}

.ev-bar {
  flex: 1;
  height: 100%;
  display: grid;
  grid-template-rows: 16px 1fr 16px;
  gap: 6px;
  justify-items: center;
}

.ev-bar-n {
  grid-row: 1;
  font-size: 12px;
  font-weight: 700;
  color: var(--fg);
}

.ev-bar-fill {
  grid-row: 2;
  align-self: end;
  width: 100%;
  max-width: 34px;
  min-height: 3px;
  background: var(--border-2);
  border-radius: 6px 6px 0 0;
  transition: height 0.3s;
}

.ev-bar.atual .ev-bar-fill {
  background: var(--sesc-blue);
}

.ev-bar-lbl {
  grid-row: 3;
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Mapa da frota */
.gestao-mapa {
  padding: 18px;
}

.gestao-mapa-stage {
  position: relative;
  height: 420px;
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid var(--border);
  margin-top: 16px;
  background: var(--water);
}

/* ── Admin (painel/CRUD): fundo claro de dashboard, não o canvas escuro das
   páginas públicas — sem texto direto sobre fundo escuro, então os cabeçalhos
   (inclusive .sec-title dentro dos card) voltam ao contraste normal
   claro/escuro. ── */
.unit-page.admin-shell {
  background: var(--surface-2);
  min-height: 100dvh;
}

.unit-page.admin-shell .sec-title {
  color: var(--fg);
}

/* Placeholder — tela "andaime" usada pelas rotas do User Flow ainda não
   construídas (ver pages/Placeholder.jsx). */
.ph-main {
  min-height: 62vh;
  padding: 48px 24px;
}

.ph-wrap {
  max-width: 520px;
}

.ph-icon {
  width: 64px;
  height: 64px;
  margin: 8px auto 16px;
  border-radius: var(--r-lg);
  color: #fff;
  background: var(--grad-blue);
  box-shadow: var(--elev-2);
}

.ph-subtitle {
  color: var(--muted);
  margin: 8px 0 4px;
  font-size: var(--fz-lg);
  line-height: 1.6;
}

.ph-route {
  color: var(--sesc-blue);
  font-size: var(--fz-base);
  margin-top: 8px;
}

.ph-actions {
  gap: 10px;
  margin-top: 24px;
}

.ph-404 h1 {
  color: var(--on-dark);
}

.ph-404 .ph-subtitle {
  color: var(--on-dark-2);
}

.ph-404 .eyebrow {
  color: var(--on-dark-blue);
}

.ph-404 .ph-route {
  color: var(--on-dark-muted);
}

.ph-404 .ph-icon i {
  font-size: 28px;
  line-height: 1;
}

.ph-404 .ph-actions .btn i {
  font-size: 17px;
  line-height: 1;
}

.ph-404 .ph-route:empty {
  display: none;
}

/* CUSTOMIZAÇÕES */
.aspect-ratio:not([class*=aspect-ratio-]) {
  padding-bottom: var(--aspect-ratio, 100%);
}

.aspect-ratio-4-to-3 {
  padding-bottom: var(--aspect-ratio-4-to-3, 75%);
}

.aspect-ratio-8-to-3 {
  padding-bottom: var(--aspect-ratio-8-to-3, 37.5%);
}

.aspect-ratio-16-to-9 {
  padding-bottom: var(--aspect-ratio-16-to-9, 56.25%);
}

.card-type-asset .aspect-ratio {
  padding-bottom: var(--aspect-ratio-16-to-9, 56.25%);
}

.portlet .portlet-content {
  background-color: var(--portlet-bg, transparent);
}
@media (max-width: 767.98px) {
  .controls-visible .portlet-content-editable {
    border-color: var(--portlet-topper-border, var(--portlet-topper-bg, #0b5fff));
  }
}
@media (min-width: 576px) {
  .controls-visible .portlet:hover > .portlet-content-editable,
  .controls-visible .portlet.open > .portlet-content-editable,
  .controls-visible .portlet.focus > .portlet-content-editable {
    border-color: var(--portlet-topper-border, var(--portlet-topper-bg, #0b5fff));
  }
}

.portlet-layout .portlet-header {
  margin-bottom: var(--portlet-header-margin-bottom, calc(var(--spacer) * var(--spacer-5, 3rem)));
}

#footer {
  background-color: var(--brand-color-4, #30313f);
}

/*# sourceMappingURL=main.css.map */
/*# sourceMappingURL=main.css.map */
