/* Correção final da interface standalone.
 * Este arquivo vence a cascata legada de frontend.css e padroniza:
 * - layout full width;
 * - sidebar recolhida com ícones visíveis;
 * - header com logo de 120px de altura;
 * - botao de recolher/expandir consistente em todas as telas.
 */

.sat-frontend,
.sat-standalone-body {
    min-width: 0 !important;
    width: 100% !important;
}

.sat-frontend {
    overflow-x: hidden !important;
}

.sat-frontend .sat-front-shell {
    display: grid !important;
    grid-template-columns: 260px minmax(0, 1fr) !important;
    min-height: 100vh !important;
    width: 100% !important;
}

.sat-frontend.has-collapsed-sidebar .sat-front-shell,
.sat-frontend.is-sidebar-collapsed .sat-front-shell {
    grid-template-columns: 72px minmax(0, 1fr) !important;
}

.sat-frontend .sat-front-sidebar {
    min-height: 100vh !important;
    width: 100% !important;
}

.sat-frontend.has-collapsed-sidebar .sat-front-sidebar,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar,
.sat-frontend .sat-front-sidebar.is-collapsed {
    width: 72px !important;
    flex-basis: 72px !important;
}

.sat-frontend .sat-front-workspace {
    box-sizing: border-box !important;
    min-width: 0 !important;
    width: 100% !important;
}

.sat-frontend .sat-front-main,
.sat-frontend .sat-front-panel,
.sat-frontend .sat-front-welcome,
.sat-frontend .sat-front-grid,
.sat-frontend .sat-front-dashboard-columns,
.sat-frontend .sat-front-module-grid,
.sat-frontend .sat-front-guide-grid,
.sat-frontend .sat-front-planning-summary,
.sat-frontend .sat-front-admin-grid--large,
.sat-frontend .sat-front-table-wrap,
.sat-frontend .sat-front-form-grid,
.sat-frontend .sat-front-filter-grid {
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
}

.sat-frontend .sat-front-header {
    align-items: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px 14px !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    padding: 18px 20px !important;
    width: 100% !important;
}

.sat-frontend .sat-front-brand-area {
    align-items: center !important;
    display: flex !important;
    flex: 0 1 auto !important;
    gap: 14px !important;
    min-width: 0 !important;
}

.sat-frontend .sat-front-menu-toggle,
.sat-frontend .sat-sidebar-toggle {
    flex: 0 0 42px !important;
    height: 42px !important;
    justify-content: center !important;
    min-width: 42px !important;
    position: relative !important;
    width: 42px !important;
    z-index: 5 !important;
}

.sat-frontend .sat-front-brand-lockup,
.sat-frontend .sat-header__logo {
    align-items: center !important;
    display: flex !important;
    flex: 0 0 auto !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    width: auto !important;
}

.sat-frontend .sat-front-app-logo,
.sat-frontend .sat-header__logo img {
    display: block !important;
    height: 120px !important;
    max-height: 120px !important;
    max-width: none !important;
    object-fit: contain !important;
    width: auto !important;
}

.sat-frontend .sat-front-title-block {
    flex: 0 1 auto !important;
    min-width: 0 !important;
}

.sat-frontend .sat-front-title-block p {
    margin: 0 !important;
}

.sat-frontend .sat-front-title-block p:last-child {
    white-space: nowrap !important;
}

.sat-frontend .sat-front-search {
    flex: 1 1 280px !important;
    min-width: 240px !important;
    max-width: 520px !important;
    width: auto !important;
}

.sat-frontend .sat-front-search input {
    min-width: 0 !important;
    width: 100% !important;
}

.sat-frontend .sat-front-notification-menu {
    flex: 0 0 auto !important;
}

.sat-frontend .sat-front-user {
    align-self: center !important;
    flex: 0 0 220px !important;
    max-width: 220px !important;
}

.sat-frontend .sat-front-search label,
.sat-frontend .sat-front-title-block p,
.sat-frontend .sat-front-notification-summary,
.sat-frontend .sat-front-user strong,
.sat-frontend .sat-front-user small,
.sat-frontend .sat-front-user a {
    overflow-wrap: anywhere !important;
}

.sat-frontend .sat-front-sidebar a,
.sat-frontend .sat-front-sidebar .sat-front-subitem {
    min-height: 40px !important;
}

.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a,
.sat-frontend .sat-front-sidebar.is-collapsed a,
.sat-frontend.has-collapsed-sidebar .sat-front-sidebar .sat-front-subitem,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar .sat-front-subitem,
.sat-frontend .sat-front-sidebar.is-collapsed .sat-front-subitem {
    align-items: center !important;
    gap: 0 !important;
    justify-content: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a .sat-front-nav-icon,
.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a.is-active .sat-front-nav-icon,
.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a:hover .sat-front-nav-icon,
.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a:focus-visible .sat-front-nav-icon,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a .sat-front-nav-icon,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a.is-active .sat-front-nav-icon,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a:hover .sat-front-nav-icon,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a:focus-visible .sat-front-nav-icon,
.sat-frontend .sat-front-sidebar.is-collapsed a .sat-front-nav-icon,
.sat-frontend .sat-front-sidebar.is-collapsed a.is-active .sat-front-nav-icon,
.sat-frontend .sat-front-sidebar.is-collapsed a:hover .sat-front-nav-icon,
.sat-frontend .sat-front-sidebar.is-collapsed a:focus-visible .sat-front-nav-icon {
    color: #4b5563 !important;
    display: inline-flex !important;
    height: 22px !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: 22px !important;
}

.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a .sat-front-nav-icon svg,
.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a.is-active .sat-front-nav-icon svg,
.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a:hover .sat-front-nav-icon svg,
.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a:focus-visible .sat-front-nav-icon svg,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a .sat-front-nav-icon svg,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a.is-active .sat-front-nav-icon svg,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a:hover .sat-front-nav-icon svg,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a:focus-visible .sat-front-nav-icon svg,
.sat-frontend .sat-front-sidebar.is-collapsed a .sat-front-nav-icon svg,
.sat-frontend .sat-front-sidebar.is-collapsed a.is-active .sat-front-nav-icon svg,
.sat-frontend .sat-front-sidebar.is-collapsed a:hover .sat-front-nav-icon svg,
.sat-frontend .sat-front-sidebar.is-collapsed a:focus-visible .sat-front-nav-icon svg {
    color: inherit !important;
    display: block !important;
    fill: none !important;
    height: 22px !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    width: 22px !important;
}

.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a span:not(.sat-front-nav-icon),
.sat-frontend.has-collapsed-sidebar .sat-front-sidebar-section p,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a span:not(.sat-front-nav-icon),
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar-section p,
.sat-frontend .sat-front-sidebar.is-collapsed a span:not(.sat-front-nav-icon),
.sat-frontend .sat-front-sidebar.is-collapsed .sat-front-sidebar-section p {
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    overflow: hidden !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
}

.sat-frontend.has-collapsed-sidebar .sat-front-sidebar a.is-active,
.sat-frontend.is-sidebar-collapsed .sat-front-sidebar a.is-active,
.sat-frontend .sat-front-sidebar.is-collapsed a.is-active {
    background: #dbeafe !important;
    border-color: #93c5fd !important;
    color: #374151 !important;
}

@media (max-width: 1080px) {
    .sat-frontend .sat-front-header {
        padding: 16px !important;
    }

    .sat-frontend .sat-front-brand-area {
        flex: 1 1 100% !important;
        width: 100% !important;
    }

    .sat-frontend .sat-front-brand-lockup,
    .sat-frontend .sat-header__logo,
    .sat-frontend .sat-front-app-logo,
    .sat-frontend .sat-header__logo img {
        height: 120px !important;
        max-height: 120px !important;
        width: auto !important;
    }

    .sat-frontend .sat-front-search,
    .sat-frontend .sat-front-user,
    .sat-frontend .sat-front-notification-menu {
        flex: 1 1 100% !important;
        max-width: none !important;
    }
}

@media (max-width: 760px) {
    .sat-frontend .sat-front-shell,
    .sat-frontend.is-sidebar-collapsed .sat-front-shell,
    .sat-frontend.has-collapsed-sidebar .sat-front-shell {
        display: block !important;
    }

    .sat-frontend .sat-front-sidebar {
        max-width: 320px !important;
        position: fixed !important;
        top: 0 !important;
        transform: translateX(-105%) !important;
        width: 82vw !important;
        z-index: 30 !important;
    }

    .sat-frontend.is-drawer-open .sat-front-sidebar {
        transform: translateX(0) !important;
    }

    .sat-frontend .sat-front-header {
        gap: 10px !important;
        padding: 14px !important;
    }

    .sat-frontend .sat-front-brand-area {
        gap: 10px !important;
    }

    .sat-frontend .sat-front-title-block,
    .sat-frontend .sat-front-search,
    .sat-frontend .sat-front-notification-menu,
    .sat-frontend .sat-front-user {
        flex: 1 1 100% !important;
        max-width: none !important;
        width: 100% !important;
    }

    .sat-frontend .sat-front-brand-lockup,
    .sat-frontend .sat-header__logo,
    .sat-frontend .sat-front-app-logo,
    .sat-frontend .sat-header__logo img {
        height: 120px !important;
        max-height: 120px !important;
        width: auto !important;
    }

    .sat-frontend .sat-front-search {
        max-width: none !important;
    }
}

/* Correção final do cabeçalho: este bloco precisa ficar no fim para vencer a cascata legada. */
.sat-frontend .sat-front-header {
    display: grid !important;
    grid-template-columns: 44px minmax(320px, auto) minmax(260px, 1fr) auto auto !important;
    align-items: center !important;
    column-gap: 16px !important;
    row-gap: 10px !important;
}

.sat-frontend .sat-front-brand-area {
    display: flex !important;
    flex: 0 1 auto !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 14px !important;
    min-width: 0 !important;
}

.sat-frontend .sat-front-brand-lockup,
.sat-frontend .sat-header__logo {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
}

.sat-frontend .sat-front-app-logo,
.sat-frontend .sat-header__logo img {
    height: 120px !important;
    max-height: 120px !important;
    max-width: none !important;
    width: auto !important;
    object-fit: contain !important;
}

.sat-frontend .sat-front-title-block {
    flex: 0 1 auto !important;
    min-width: 0 !important;
}

.sat-frontend .sat-front-title-block p {
    margin: 0 !important;
}

.sat-frontend .sat-front-title-block p:last-child {
    white-space: nowrap !important;
}

@media (max-width: 1080px) {
    .sat-frontend .sat-front-header {
        grid-template-columns: 44px minmax(0, 1fr) minmax(220px, 1fr) auto !important;
    }

    .sat-frontend .sat-front-brand-area {
        grid-column: 2 / 3 !important;
    }

    .sat-frontend .sat-front-search {
        grid-column: 3 / 4 !important;
    }

    .sat-frontend .sat-front-notification-menu,
    .sat-frontend .sat-front-user {
        grid-column: auto !important;
    }
}

@media (max-width: 760px) {
    .sat-frontend .sat-front-header {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .sat-frontend .sat-front-brand-area,
    .sat-frontend .sat-front-search,
    .sat-frontend .sat-front-notification-menu,
    .sat-frontend .sat-front-user {
        width: 100% !important;
    }

    .sat-frontend .sat-front-brand-area {
        flex-wrap: nowrap !important;
    }

    .sat-frontend .sat-front-app-logo,
    .sat-frontend .sat-header__logo img {
        height: 120px !important;
        max-height: 120px !important;
        width: auto !important;
    }

    .sat-frontend .sat-front-title-block p:last-child {
        white-space: normal !important;
    }
}

/* Bloco final de estabilização do cabeçalho:
 * vence regras legadas que ainda disputavam espaço entre marca, "Área atual",
 * busca, notificações e usuário. Mantém o logo com altura de 120px e evita
 * sobreposição visual em qualquer tela.
 */
.sat-frontend .sat-front-header {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px 16px !important;
    position: relative !important;
    z-index: 2 !important;
}

.sat-frontend .sat-front-brand-area {
    align-items: center !important;
    display: flex !important;
    flex: 1 1 420px !important;
    flex-wrap: nowrap !important;
    gap: 16px !important;
    min-width: 0 !important;
}

.sat-frontend .sat-front-brand-lockup,
.sat-frontend .sat-header__logo {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    max-width: none !important;
    order: 0 !important;
}

.sat-frontend .sat-front-app-logo,
.sat-frontend .sat-header__logo img {
    display: block !important;
    height: 120px !important;
    max-height: 120px !important;
    width: auto !important;
    max-width: none !important;
    object-fit: contain !important;
}

.sat-frontend .sat-front-title-block {
    border-left: 1px solid #dbe5f2 !important;
    flex: 0 1 220px !important;
    margin-left: 2px !important;
    min-width: 0 !important;
    padding-left: 14px !important;
    order: 1 !important;
}

.sat-frontend .sat-front-title-block p:last-child {
    white-space: normal !important;
}

.sat-frontend .sat-front-search {
    flex: 1 1 320px !important;
    min-width: 260px !important;
    max-width: 560px !important;
}

.sat-frontend .sat-front-notification-menu {
    flex: 0 0 auto !important;
}

.sat-frontend .sat-front-user {
    flex: 0 0 auto !important;
    max-width: none !important;
}

.sat-frontend .sat-front-menu-toggle,
.sat-frontend .sat-sidebar-toggle {
    position: relative !important;
    z-index: 4 !important;
}

@media (max-width: 1080px) {
    .sat-frontend .sat-front-header {
        gap: 12px !important;
    }

    .sat-frontend .sat-front-brand-area,
    .sat-frontend .sat-front-search,
    .sat-frontend .sat-front-notification-menu,
    .sat-frontend .sat-front-user {
        flex: 1 1 100% !important;
        max-width: none !important;
    }

    .sat-frontend .sat-front-title-block {
        flex-basis: auto !important;
    }
}

.sat-frontend .sat-front-tutorial-modal {
    position: fixed;
    inset: 0;
    z-index: 9800;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.sat-standalone-body.sat-tutorial-open {
    overflow: hidden;
}

.sat-frontend .sat-front-tutorial-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.62);
}

.sat-frontend .sat-front-tutorial-dialog {
    position: relative;
    z-index: 2;
    width: min(760px, 95vw);
    max-height: 90vh;
    overflow: auto;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #fff;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.3);
    padding: 18px;
}

.sat-frontend .sat-front-tutorial-progress {
    margin: 0 0 12px;
    font-weight: 600;
    color: #0f172a;
}

.sat-frontend .sat-front-tutorial-steps {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
}

.sat-frontend .sat-front-tutorial-steps li h3 {
    margin: 0 0 8px;
    color: #0f172a;
}

.sat-frontend .sat-front-tutorial-steps li p {
    margin: 0;
    color: #1f2937;
}

.sat-frontend .sat-front-tutorial-hint {
    margin: 0 0 12px;
    font-size: 0.875rem;
    color: #334155;
}

.sat-frontend .sat-tutorial-target {
    position: relative;
    z-index: 9901 !important;
    border-radius: 10px;
    outline: 3px solid #00a885 !important;
    box-shadow: 0 0 0 5px rgba(0, 168, 133, 0.2);
}

@media (max-width: 760px) {
    .sat-frontend .sat-front-tutorial-dialog {
        width: min(680px, 96vw);
        max-height: 88vh;
        padding: 14px;
    }

    .sat-frontend .sat-front-header {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .sat-frontend .sat-front-brand-area {
        flex-wrap: nowrap !important;
    }

    .sat-frontend .sat-front-title-block {
        flex-basis: auto !important;
    }
}
