:root {
    --fundo-claro: #D6E0E6;
    --azul-secundario: #5E90AB;
    --azul-principal: #0072A9;
    --azul-escuro: #133C91;
    --preto: #020406;
}


* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--preto);
    background:
        linear-gradient(
            135deg,
            var(--fundo-claro) 0%,
            var(--fundo-claro) 65%,
            var(--azul-secundario) 100%
        );
}

/* CABEÇALHO */

header {
    display: grid;
    grid-template-columns: minmax(220px, 320px) 1fr;
    grid-template-areas:
        "brand navigation"
        "tagline navigation";
    align-items: center;
    column-gap: 32px;
    padding: 10px 8% 12px;
    color: var(--fundo-claro);
    background:
        linear-gradient(
            135deg,
            var(--azul-escuro),
            var(--azul-principal)
        );
    border-bottom: 5px solid var(--azul-secundario);
    box-shadow: 0 4px 15px rgba(2, 4, 6, 0.25);
}

header h1 {
    margin: 0;
    font-size: 44px;
    letter-spacing: 0.5px;
}

header > p {
    grid-area: tagline;
    margin: -2px 0 0;
    color: var(--fundo-claro);
    font-size: 18px;
}

.logo-link {
    grid-area: brand;
    display: block;
    width: min(320px, 82vw);
    height: 68px;
    margin-bottom: 0;
    overflow: hidden;
    border-radius: 4px;
}

.logo-agrofoco {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    image-rendering: auto;
}

/* MENU */

nav {
    grid-area: navigation;
    display: flex;
    flex-wrap: wrap;
    align-self: center;
    justify-content: flex-end;
    gap: 8px;
}

nav a {
    display: inline-block;
    padding: 8px 14px;
    color: var(--fundo-claro);
    background: rgba(2, 4, 6, 0.12);
    border: 1px solid rgba(214, 224, 230, 0.35);
    border-radius: 7px;
    text-decoration: none;
    font-weight: bold;
    transition: all 0.2s ease;
}

nav a:hover {
    color: var(--azul-escuro);
    background: var(--fundo-claro);
    border-color: var(--fundo-claro);
    transform: translateY(-2px);
}

/* CONTEÚDO PRINCIPAL */

section {
    width: min(1100px, 90%);
    margin: 24px auto;
    padding: 42px;
    background: var(--fundo-claro);
    border: 1px solid var(--azul-secundario);
    border-top: 6px solid var(--azul-principal);
    border-radius: 15px;
    box-shadow: 0 8px 28px rgba(2, 4, 6, 0.18);
}

section h2 {
    margin-top: 0;
    color: var(--azul-escuro);
    font-size: 32px;
}

section h3 {
    color: var(--azul-principal);
}

section p {
    font-size: 17px;
    line-height: 1.7;
}

#home {
    min-height: 445px;
}

#sobre {
    margin-block: 24px;
    padding: 26px 36px;
}

#sobre h2 {
    margin-bottom: 14px;
    font-size: 30px;
}

#sobre h3 {
    margin: 14px 0 4px;
    font-size: 19px;
    line-height: 1.2;
}

#sobre p {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
}

#sobre p:empty {
    display: none;
}

.main-content {
    padding-bottom: 15px;
}

/* CHAMADA PRINCIPAL */

.cta {
    margin-top: 30px;
    padding: 28px;
    color: var(--fundo-claro);
    background:
        linear-gradient(
            135deg,
            var(--azul-principal),
            var(--azul-escuro)
        );
    border-left: 8px solid var(--azul-secundario);
    border-radius: 12px;
    box-shadow: 0 5px 16px rgba(2, 4, 6, 0.22);
}

.cta h3 {
    margin-top: 0;
    color: var(--fundo-claro);
}

.cta p {
    margin-bottom: 0;
}

/* SERVIÇOS */

#servicos ul {
    display: block;
    padding-left: 24px;
}

#servicos li {
    margin-top: 24px;
    color: var(--azul-escuro);
    font-size: 19px;
    font-weight: bold;
}

#servicos li::marker {
    color: var(--azul-principal);
}

/* FORMULÁRIOS */

form,
.login-form {
    max-width: 650px;
}

.acesso-restrito {
    width: 580px;
    max-width: calc(100% - 32px);
    padding: 28px;
    box-sizing: border-box;
}

input,
textarea {
    width: 100%;
    margin-bottom: 15px;
    padding: 14px;
    color: var(--preto);
    background: var(--fundo-claro);
    border: 1px solid var(--azul-secundario);
    border-radius: 8px;
    font-family: inherit;
    font-size: 16px;
    outline: none;
}

input:focus,
textarea:focus {
    border-color: var(--azul-principal);
    box-shadow: 0 0 0 3px rgba(0, 114, 169, 0.20);
}

input::placeholder,
textarea::placeholder {
    color: var(--azul-secundario);
}

button {
    padding: 13px 30px;
    color: var(--fundo-claro);
    background: var(--azul-principal);
    border: 2px solid var(--azul-principal);
    border-radius: 8px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.2s ease;
}

button:hover {
    background: var(--azul-escuro);
    border-color: var(--azul-escuro);
    transform: translateY(-2px);
}

label {
    display: block;
    margin-bottom: 7px;
    color: var(--azul-escuro);
    font-weight: 700;
}

small {
    color: #385264;
}

.auth-card {
    max-width: 760px;
}

.section-heading {
    margin-bottom: 26px;
}

.section-heading > p {
    margin-bottom: 0;
}

.eyebrow {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--azul-principal);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.auth-form input {
    background: #fff;
}

.auth-form button {
    margin-top: 4px;
}

.alert {
    margin: 0 0 22px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-weight: 700;
}

.alert-erro {
    color: #7a1520;
    background: #fde8eb;
    border-color: #e49aa4;
}

.alert-sucesso {
    color: #155c39;
    background: #e4f5ec;
    border-color: #8fc9aa;
}

.alert-aviso {
    color: #624a09;
    background: #fff6d8;
    border-color: #dec66e;
}

.admin-section {
    width: min(1180px, 92%);
    margin-block: 40px;
    padding-block: 34px;
}

.admin-section .section-heading {
    margin-bottom: 22px;
}

.admin-section .user-form {
    padding-block: 20px;
}

.admin-section input {
    margin-bottom: 12px;
    padding-block: 11px;
}

.admin-section .user-form small {
    margin: 6px 0 0;
}

.admin-section .user-card {
    padding-block: 13px;
}

.admin-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
    align-items: start;
}

.users-admin-section {
    margin-block: 20px;
    padding: 22px 34px;
}

.users-page main {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
}

.users-page .users-admin-section {
    flex: 1 0 auto;
    margin-block: 12px;
}

.users-page footer {
    display: none;
}

.users-admin-section .section-heading {
    margin-bottom: 14px;
    display: grid;
    grid-template-columns: max-content 1fr;
    grid-template-rows: auto auto;
    column-gap: 28px;
    align-items: center;
}

.users-admin-section .section-heading .eyebrow {
    grid-column: 1;
    grid-row: 1;
}

.users-admin-section .section-heading h2 {
    margin: 2px 0 0;
    grid-column: 1;
    grid-row: 2;
    font-size: 28px;
}

.users-admin-section .section-heading p {
    margin: 0;
    grid-column: 2;
    grid-row: 1 / span 2;
    font-size: 15px;
    line-height: 1.45;
}

.admin-tabs {
    margin-bottom: 22px;
    padding: 6px;
    display: flex;
    gap: 8px;
    background: rgba(94, 144, 171, 0.18);
    border: 1px solid rgba(94, 144, 171, 0.65);
    border-radius: 11px;
}

.users-admin-section .admin-tabs {
    margin-bottom: 14px;
    padding: 4px;
    justify-content: flex-start;
}

.users-admin-section .admin-tabs .admin-tab {
    padding: 9px 16px;
}

.admin-tabs .admin-tab {
    padding: 11px 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: var(--azul-escuro);
    background: transparent;
    border: 0;
    border-radius: 8px;
}

.admin-tabs .admin-tab:hover,
.admin-tabs .admin-tab.is-active {
    color: #fff;
    background: var(--azul-principal);
    transform: none;
}

.tab-count {
    min-width: 24px;
    padding: 3px 7px;
    color: var(--azul-escuro);
    background: rgba(255, 255, 255, 0.85);
    border-radius: 999px;
    font-size: 12px;
    text-align: center;
}

.admin-tab-panel {
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.tab-panel-heading {
    margin-bottom: 16px;
}

.users-admin-section .tab-panel-heading {
    margin-bottom: 10px;
    display: flex;
    align-items: baseline;
    gap: 14px;
}

.users-admin-section .tab-panel-heading h3 {
    font-size: 18px;
}

.users-admin-section .tab-panel-heading p {
    margin: 0;
    font-size: 14px;
}

.tab-panel-heading h3,
.tab-panel-heading p,
.users-panel-header h3,
.users-panel-header p {
    margin: 0;
}

.tab-panel-heading p,
.users-panel-header p {
    margin-top: 4px;
    color: #496475;
    font-size: 15px;
}

.user-form {
    max-width: none;
    padding: 24px;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 14px 18px;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid var(--azul-secundario);
    border-radius: 12px;
}

.users-admin-section .user-form {
    padding: 14px 16px;
    gap: 10px 14px;
}

.users-admin-section .user-form label {
    margin-bottom: 5px;
    font-size: 15px;
}

.users-admin-section .user-form input {
    min-height: 40px;
    padding: 8px 10px;
}

.users-admin-section .user-form small {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.25;
}

.users-admin-section .user-form-submit {
    min-height: 40px;
}

.user-form .form-field {
    min-width: 0;
}

.form-field-name,
.form-field-username,
.form-field-association {
    grid-column: span 4;
}

.form-field-password,
.form-field-confirmation {
    grid-column: span 4;
}

.form-field-panel-url {
    grid-column: span 8;
}

.form-field-property {
    grid-column: span 4;
}

.user-form input {
    margin-bottom: 0;
}

.user-form small {
    display: block;
    margin: 6px 0 0;
}

.user-form-submit {
    width: 100%;
    min-height: 46px;
    grid-column: span 4;
    align-self: end;
    white-space: nowrap;
}

.users-panel-header {
    margin-bottom: 10px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
}

.users-search {
    width: min(620px, 100%);
    max-width: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.admin-section .users-search input {
    min-width: 260px;
    margin: 0;
    padding: 10px 12px;
}

.users-search button,
.clear-search {
    min-height: 42px;
    padding: 10px 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    white-space: nowrap;
}

.clear-search {
    color: var(--azul-escuro);
    background: #fff;
    border: 1px solid var(--azul-secundario);
    text-decoration: none;
}

.users-range {
    margin: 8px 0 12px;
    color: #496475;
    font-size: 14px;
}

.users-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
}

.users-table-wrap {
    width: 100%;
    overflow-x: auto;
    background: #fff;
    border: 1px solid rgba(94, 144, 171, 0.65);
    border-radius: 10px;
    box-shadow: 0 3px 12px rgba(2, 4, 6, 0.10);
}

/* ADMIN USER ACTIONS VISIBILITY */
.users-page .users-table {
    min-width: 1180px;
    table-layout: auto;
}

.users-page .users-table th:last-child,
.users-page .users-table td:last-child {
    position: sticky;
    right: 0;
    z-index: 2;
    min-width: 190px;
    background: #fff;
    box-shadow: -12px 0 20px rgba(7, 28, 70, .08);
}

.users-page .users-table th:last-child {
    z-index: 3;
    background: var(--azul-escuro);
}

.users-page .users-table tbody tr:nth-child(even) td:last-child {
    background: #f4f8ff;
}

.users-page .user-actions {
    flex-wrap: nowrap;
    gap: 7px;
}

.users-page .user-actions .action-button {
    width: auto;
    min-width: max-content;
    padding: 0 11px;
}

.users-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    border-collapse: collapse;
    color: var(--preto);
    font-size: 13px;
}

.users-table th,
.users-table td {
    padding: 10px 8px;
    border-bottom: 1px solid rgba(94, 144, 171, 0.32);
    text-align: left;
    vertical-align: middle;
}

.users-table th {
    color: #fff;
    background: var(--azul-escuro);
    font-size: 11px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.users-table tbody tr:nth-child(even) {
    background: rgba(214, 224, 230, 0.42);
}

.users-table tbody tr:hover {
    background: rgba(94, 144, 171, 0.18);
}

.users-table tbody tr:last-child td {
    border-bottom: 0;
}

.users-table th:nth-child(1),
.users-table td:nth-child(1) {
    width: 25%;
}

.users-table th:nth-child(2),
.users-table td:nth-child(2) {
    width: 18%;
}

.users-table th:nth-child(3),
.users-table td:nth-child(3) {
    width: 17%;
}

.users-table th:nth-child(4),
.users-table td:nth-child(4) {
    width: 11%;
}

.users-table th:nth-child(5),
.users-table td:nth-child(5) {
    width: 16%;
    color: #496475;
    white-space: nowrap;
}

.users-table th:nth-child(6),
.users-table td:nth-child(6) {
    width: 13%;
}

.users-table td:nth-child(1),
.users-table td:nth-child(2),
.users-table td:nth-child(3) {
    overflow-wrap: anywhere;
}

.user-actions {
    display: flex;
    align-items: center;
    gap: 4px;
}

.table-action-form {
    max-width: none;
    margin: 0;
}

.action-button {
    min-height: 30px;
    padding: 6px 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
}

.edit-button {
    color: #fff;
    background: var(--azul-principal);
}

.edit-button:hover {
    color: #fff;
    background: var(--azul-escuro);
    transform: none;
}

.delete-button {
    width: 32px;
    min-width: 32px;
    color: #fff;
    background: #a5222f;
    padding: 0;
}

.delete-button:hover {
    background: #7a1520;
}

.delete-icon {
    width: 12px;
    height: 13px;
    position: relative;
    display: block;
    border: 2px solid currentColor;
    border-top: 0;
    border-radius: 1px 1px 2px 2px;
}

.delete-icon::before {
    content: "";
    width: 16px;
    height: 2px;
    position: absolute;
    top: -5px;
    left: -4px;
    background: currentColor;
    border-radius: 2px;
}

.delete-icon::after {
    content: "";
    width: 5px;
    height: 3px;
    position: absolute;
    top: -8px;
    left: 1px;
    border: 2px solid currentColor;
    border-bottom: 0;
    border-radius: 2px 2px 0 0;
}

.protected-user {
    color: #496475;
    font-size: 13px;
    font-weight: 700;
}

.edit-user-section {
    max-width: 1080px;
}

.edit-user-form .form-field-password,
.edit-user-form .form-field-confirmation {
    grid-column: span 6;
}

.edit-form-actions {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.property-manager {
    max-width: 1080px;
    margin-top: 18px;
    padding: 22px;
    background: #fff;
    border: 1px solid var(--azul-secundario);
    border-radius: 12px;
}

.property-manager h3,
.property-manager p { margin-top: 0; }

.property-add,
.property-row,
.property-rename {
    display: flex;
    align-items: center;
    gap: 9px;
}

.property-add { margin: 16px 0; }
.property-add input,
.property-rename input { margin: 0; }
.property-add input { flex: 1; }
.property-add button,
.property-rename button,
.property-delete {
    min-height: 40px;
    padding: 0 13px;
    border: 1px solid var(--azul-principal);
    border-radius: 8px;
    color: #fff;
    background: var(--azul-principal);
    font-weight: 800;
    cursor: pointer;
}

.property-list { display: grid; gap: 9px; }
.property-row { padding: 10px; border: 1px solid #D9E6FB; border-radius: 9px; background: #F8FBFF; }
.property-rename { flex: 1; }
.property-delete { color: #B12626; background: #fff; border-color: #E2B3B3; }

.cancel-edit {
    padding: 12px 18px;
    color: var(--azul-escuro);
    background: #fff;
    border: 1px solid var(--azul-secundario);
    border-radius: 8px;
    text-decoration: none;
}

.user-card {
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #fff;
    border-left: 5px solid var(--azul-principal);
    border-radius: 9px;
    box-shadow: 0 3px 12px rgba(2, 4, 6, 0.10);
}

.user-card strong,
.user-card span,
.user-card small {
    display: block;
}

.user-card > div:first-child span {
    margin-top: 4px;
    color: #496475;
}

.user-association {
    margin-top: 5px;
    color: var(--azul-principal);
    font-weight: 700;
}

.user-meta {
    text-align: right;
}

.user-meta small {
    margin-top: 6px;
}

.role-badge {
    padding: 5px 9px;
    display: inline-block;
    color: #fff;
    background: var(--azul-principal);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.role-admin {
    background: var(--azul-escuro);
}

.pagination {
    margin-top: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.pagination a {
    min-width: 38px;
    padding: 9px 11px;
    color: var(--azul-escuro);
    background: #fff;
    border: 1px solid var(--azul-secundario);
    text-align: center;
}

.pagination a:hover,
.pagination a.is-current {
    color: #fff;
    background: var(--azul-principal);
    border-color: var(--azul-principal);
    transform: none;
}

.empty-users {
    padding: 36px 24px;
    color: #496475;
    background: rgba(255, 255, 255, 0.55);
    border: 1px dashed var(--azul-secundario);
    border-radius: 10px;
    text-align: center;
}

.empty-users strong {
    color: var(--azul-escuro);
}

.empty-users p {
    margin-bottom: 0;
    font-size: 15px;
}

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

.nav-user {
    padding: 11px 7px;
    color: var(--fundo-claro);
    font-weight: 700;
}

.nav-form {
    max-width: none;
    margin: 0;
}

.nav-button {
    padding: 9px 17px;
    color: var(--fundo-claro);
    background: rgba(2, 4, 6, 0.28);
    border: 1px solid rgba(214, 224, 230, 0.5);
}

.admin-header {
    min-height: 104px;
    padding: 10px 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.admin-brand {
    flex: 0 0 auto;
}

.admin-header .logo-link {
    width: 220px;
    height: 50px;
    margin: 0;
}

.admin-header .logo-agrofoco {
    object-position: center 40%;
}

.admin-brand p {
    margin: -1px 0 0;
    color: var(--fundo-claro);
    font-size: 14px;
}

.admin-nav {
    align-items: center;
    justify-content: flex-end;
}

.admin-nav a,
.admin-nav .nav-button {
    padding-block: 9px;
}

.content-button {
    padding: 12px 18px;
    display: inline-block;
    color: #fff;
    background: var(--azul-principal);
    border-radius: 8px;
    text-decoration: none;
}

/* LINKS DO CONTEÚDO */

section a {
    color: var(--azul-principal);
    font-weight: bold;
}

section a:hover {
    color: var(--azul-escuro);
}

/* RODAPÉ */

footer {
    margin-top: auto;
    padding: 24px;
    color: var(--fundo-claro);
    background: var(--preto);
    border-top: 5px solid var(--azul-principal);
    text-align: center;
}

.footer-info {
    margin: 0;
}

/* RESPONSIVIDADE */

@media (max-width: 1050px) {
    header:not(.admin-header) {
        grid-template-columns: minmax(210px, 280px) 1fr;
        column-gap: 20px;
    }

    header:not(.admin-header) .logo-link {
        width: min(280px, 82vw);
        height: 60px;
    }

    header:not(.admin-header) > p {
        font-size: 16px;
    }

    header:not(.admin-header) > nav {
        gap: 6px;
    }

    header:not(.admin-header) > nav a {
        padding: 7px 10px;
        font-size: 0.9rem;
    }
}

@media (max-width: 900px) {
    header:not(.admin-header) {
        grid-template-columns: 1fr;
        grid-template-areas:
            "brand"
            "tagline"
            "navigation";
    }

    header:not(.admin-header) > nav {
        justify-content: flex-start;
        margin-top: 9px;
    }
}

@media (max-width: 700px) {
    header {
        padding: 12px 5% 14px;
    }

    header h1 {
        font-size: 35px;
    }

    nav {
        flex-direction: column;
    }

    nav a {
        width: 100%;
        text-align: center;
    }

    section {
        width: 92%;
        margin: 25px auto;
        padding: 25px;
    }

    section h2 {
        font-size: 27px;
    }

    .cta {
        padding: 22px;
    }

    .logo-link {
        height: 58px;
    }

    .admin-header {
        min-height: 0;
        padding: 14px 5%;
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .admin-header .logo-link {
        width: 210px;
        height: 48px;
    }

    .admin-nav {
        align-items: stretch;
    }

    .admin-grid {
        grid-template-columns: 1fr;
    }

    .users-admin-section {
        margin-block: 18px;
        padding: 20px;
    }

    .users-admin-section .section-heading {
        display: block;
    }

    .users-admin-section .section-heading h2 {
        margin-top: 4px;
    }

    .users-admin-section .section-heading p {
        margin-top: 8px;
    }

    .users-admin-section .tab-panel-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    .admin-tabs {
        flex-direction: column;
    }

    .admin-tabs .admin-tab {
        width: 100%;
    }

    .user-form {
        grid-template-columns: 1fr;
    }

    .form-field-name,
    .form-field-username,
    .form-field-association,
    .form-field-password,
    .form-field-confirmation,
    .form-field-panel-url,
    .form-field-property,
    .user-form-submit {
        grid-column: 1;
    }

    .edit-user-form .form-field-password,
    .edit-user-form .form-field-confirmation,
    .edit-form-actions {
        grid-column: 1;
    }

    .property-add,
    .property-row,
    .property-rename { align-items: stretch; flex-direction: column; }

    .property-add button,
    .property-rename button,
    .property-delete { width: 100%; }

    .edit-form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .edit-form-actions > * {
        width: 100%;
        text-align: center;
    }

    .users-list {
        grid-template-columns: 1fr;
    }

    .users-table-wrap {
        overflow: visible;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .users-table,
    .users-table tbody,
    .users-table tr,
    .users-table td {
        width: 100%;
        display: block;
    }

    .users-table thead {
        display: none;
    }

    .users-table tbody tr {
        margin-bottom: 12px;
        overflow: hidden;
        background: #fff;
        border: 1px solid rgba(94, 144, 171, 0.65);
        border-radius: 9px;
        box-shadow: 0 3px 10px rgba(2, 4, 6, 0.09);
    }

    .users-table td,
    .users-table td:nth-child(n) {
        width: 100%;
        min-height: 42px;
        padding: 11px 12px 11px 42%;
        position: relative;
        white-space: normal;
    }

    .users-table td::before {
        content: attr(data-label);
        width: 36%;
        position: absolute;
        top: 11px;
        left: 12px;
        color: var(--azul-escuro);
        font-size: 11px;
        font-weight: 800;
        letter-spacing: 0.03em;
        text-transform: uppercase;
    }

    .users-table tbody tr:last-child td {
        border-bottom: 1px solid rgba(94, 144, 171, 0.32);
    }

    .users-table tbody tr td:last-child {
        border-bottom: 0;
    }

    .users-panel-header,
    .users-search {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-section .users-search input {
        width: 100%;
        min-width: 0;
    }

    .pagination {
        flex-direction: row;
    }

    .pagination a {
        width: auto;
    }

    .user-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .user-meta {
        text-align: left;
    }

    .nav-user {
        text-align: center;
    }

    .acesso-restrito {
        padding: 20px;
    }
}

/* ================================================================
   PADRÃO VISUAL AGROFOCO 2026 — branco, azul e cartões leves
   ================================================================ */

:root {
    --fundo-claro: #F6F9FF;
    --azul-secundario: #8EB9FF;
    --azul-principal: #075FE4;
    --azul-escuro: #082D82;
    --azul-ciano: #1783FF;
    --preto: #0A1D43;
    --branco: #FFFFFF;
    --borda-clara: #D9E6FB;
    --texto-suave: #506682;
    --sombra-suave: 0 14px 38px rgba(8, 45, 130, 0.10);
}

body {
    position: relative;
    color: var(--preto);
    background:
        radial-gradient(circle at 92% 78%, rgba(23, 131, 255, 0.10) 0 3px, transparent 4px) 0 0 / 23px 23px,
        linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
}

body::before {
    content: "";
    width: 220px;
    height: 220px;
    position: fixed;
    right: -90px;
    bottom: -92px;
    z-index: -1;
    border: 1px solid rgba(23, 131, 255, 0.18);
    border-radius: 50%;
    box-shadow:
        0 0 0 22px rgba(23, 131, 255, 0.035),
        0 0 0 44px rgba(23, 131, 255, 0.025),
        0 0 0 66px rgba(23, 131, 255, 0.018);
}

header:not(.admin-header) {
    min-height: 88px;
    padding: 5px 5.5%;
    grid-template-columns: minmax(205px, 257px) 1fr;
    grid-template-areas:
        "brand navigation"
        "tagline navigation";
    column-gap: 30px;
    color: var(--azul-escuro);
    background: #D6E0E6;
    border-bottom: 1px solid #E5EEFC;
    box-shadow: 0 6px 24px rgba(8, 45, 130, 0.07);
}

header:not(.admin-header) > p {
    margin: -3px 0 0;
    color: var(--azul-principal);
    font-size: 15px;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

header:not(.admin-header) .logo-link {
    width: min(232px, 84vw);
    height: 50px;
    overflow: visible;
}

.logo-agrofoco,
.admin-header .logo-agrofoco {
    object-fit: cover;
    object-position: center 43%;
}

header:not(.admin-header) > nav {
    gap: clamp(7px, 0.85vw, 12px);
}

header:not(.admin-header) > nav a {
    width: 116px;
    height: 54px;
    min-height: 54px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--azul-principal);
    background: #FFFFFF;
    border: 1.5px solid var(--azul-principal);
    border-radius: 9px;
    box-shadow: 0 5px 13px rgba(8, 45, 130, 0.05);
    font-size: 15px;
    line-height: 1.15;
    text-align: center;
}

header:not(.admin-header) > nav a:hover,
header:not(.admin-header) > nav a:focus-visible,
header:not(.admin-header) > nav a[aria-current="page"] {
    color: #FFFFFF;
    background: linear-gradient(135deg, var(--azul-principal), #084FC6);
    border-color: var(--azul-principal);
    box-shadow: 0 9px 22px rgba(7, 95, 228, 0.20);
    transform: translateY(-1px);
}

section {
    width: min(1460px, 91%);
    margin: 24px auto;
    padding: clamp(28px, 3.2vw, 54px);
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(7, 95, 228, 0.28);
    border-top: 2px solid rgba(7, 95, 228, 0.72);
    border-radius: 20px;
    box-shadow:
        0 20px 44px rgba(8, 45, 130, 0.16),
        0 5px 14px rgba(8, 45, 130, 0.09);
}

section h2 {
    color: var(--azul-escuro);
    letter-spacing: -0.025em;
}

section h3 {
    color: var(--azul-principal);
}

section p {
    color: var(--preto);
}

#home {
    --home-padding: clamp(28px, 3.2vw, 54px);
    min-height: clamp(480px, calc(100vh - 180px), 680px);
    border: 1px solid rgba(7, 95, 228, 0.38);
    border-top: 3px solid rgba(7, 95, 228, 0.82);
    box-shadow:
        0 28px 64px rgba(8, 45, 130, 0.23),
        0 9px 22px rgba(8, 45, 130, 0.13);
    padding: var(--home-padding);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    isolation: isolate;
    background:
        linear-gradient(90deg, rgba(255,255,255,0.50) 0%, rgba(255,255,255,0.50) 32%, rgba(255,255,255,0.40) 49%, rgba(255,255,255,0.12) 75%),
        url("hero-agro-lineart.png") right center / auto 100% no-repeat,
        #FFFFFF;
}

#home::after {
    content: "";
    width: 160px;
    height: 220px;
    position: absolute;
    right: 20px;
    top: 18px;
    z-index: -1;
    opacity: 0.45;
    background: radial-gradient(circle, rgba(7, 95, 228, 0.30) 0 3px, transparent 4px) 0 0 / 22px 22px;
}

#home .main-content {
    width: min(620px, 49%);
    padding: 10px 0 28px;
    position: relative;
    z-index: 1;
}

#home h2 {
    max-width: 610px;
    margin: 0 0 30px;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.50);
    border-radius: 14px;
    font-size: clamp(50px, 5.2vw, 82px);
    line-height: 0.98;
    letter-spacing: -0.055em;
}

#home h2::after {
    content: "";
    width: 96px;
    height: 6px;
    margin-top: 28px;
    display: block;
    background: var(--azul-principal);
    border-radius: 999px;
}

#home .brand-highlight {
    color: var(--azul-principal);
}

#home .main-content > p {
    max-width: 440px;
    margin: 0;
    color: var(--preto);
    background: transparent;
    font-size: clamp(18px, 1.3vw, 22px);
    line-height: 1.58;
}

#home .cta {
    width: calc(100% + (var(--home-padding) * 2));
    min-height: 81px;
    margin-top: auto;
    margin-right: calc(var(--home-padding) * -1);
    margin-bottom: calc(var(--home-padding) * -1);
    margin-left: calc(var(--home-padding) * -1);
    padding: 14px 26px 14px 112px;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #FFFFFF;
    background: linear-gradient(
        110deg,
        rgba(8, 108, 235, 0.75) 0%,
        rgba(8, 76, 198, 0.75) 44%,
        rgba(6, 43, 131, 0.75) 100%
    );
    border: 0;
    border-radius: 0 0 19px 19px;
    box-shadow: 0 14px 28px rgba(8, 45, 130, 0.21);
}

#home .cta::before {
    content: "☎";
    width: 62px;
    height: 62px;
    position: absolute;
    left: 25px;
    top: 50%;
    display: grid;
    place-items: center;
    color: #FFFFFF;
    border: 3px solid rgba(255, 255, 255, 0.56);
    border-radius: 50%;
    font-size: 28px;
    transform: translateY(-50%);
}

#home .cta h3,
#home .cta p {
    margin: 0;
    color: #FFFFFF;
}

#home .cta h3 {
    font-size: clamp(17px, 1.45vw, 22px);
}

#home .cta p {
    margin-top: 4px;
    font-size: clamp(14px, 1.15vw, 17px);
}

#sobre,
#servicos,
#contato {
    min-height: calc(100vh - 188px);
}

#sobre {
    margin-block: 24px;
    padding: clamp(25px, 3vw, 44px);
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 155px 1fr;
    gap: 10px 24px;
    align-content: center;
    background:
        linear-gradient(110deg, rgba(255, 255, 255, 0.95), rgba(235, 244, 255, 0.80)),
        url("sobre-bg.svg") center / cover no-repeat,
        #FFFFFF;
}

#sobre > * {
    position: relative;
    z-index: 1;
}

#sobre h2,
#sobre > p:first-of-type {
    grid-column: 1 / -1;
}

#sobre h2 {
    margin: 0 0 8px;
    font-size: 35px;
}

#sobre h3 {
    margin: 0;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    background: rgba(237, 244, 255, 0.90);
    border-left: 4px solid var(--azul-principal);
    border-radius: 8px;
    font-size: 18px;
}

#sobre p {
    margin: 0;
    font-size: 16px;
    line-height: 1.48;
}

#sobre > p:first-of-type {
    margin-bottom: 9px;
    font-size: 17px;
}

#sobre p:empty,
#servicos h2:empty,
#servicos h3:empty,
#contato > p:empty {
    display: none;
}

#servicos {
    padding: clamp(25px, 3vw, 44px);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background:
        linear-gradient(110deg, rgba(255, 255, 255, 0.94), rgba(235, 244, 255, 0.78)),
        url("servicos-bg.svg") center / cover no-repeat,
        #FFFFFF;
}

#servicos > * {
    position: relative;
    z-index: 1;
}

#servicos > h2:not(:empty) {
    margin: 0 0 20px;
    font-size: 35px;
}

#servicos ul {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(270px, 0.75fr) 1.45fr;
    gap: 10px 18px;
    list-style: none;
}

#servicos li,
#servicos ul > p {
    margin: 0;
    min-height: 62px;
    padding: 13px 16px;
    display: flex;
    align-items: center;
    border-radius: 10px;
}

#servicos li {
    color: var(--azul-escuro);
    background: linear-gradient(135deg, rgba(234, 243, 255, 0.94), rgba(246, 250, 255, 0.90));
    border-left: 4px solid var(--azul-principal);
    font-size: 17px;
    line-height: 1.25;
}

#servicos ul > p {
    color: var(--texto-suave);
    background: rgba(251, 253, 255, 0.90);
    border: 1px solid #E5EEFB;
    font-size: 15px;
    line-height: 1.38;
}

/* GALERIA */

.gallery-photo { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; }
.gallery-meta { color: #075fe4 !important; font-size: .82rem; font-weight: 800; }
.gallery-empty, .content-empty { grid-column: 1 / -1; padding: 34px; text-align: center; border: 1px dashed #bdd0ea; border-radius: 16px; color: #5b6f8c; background: rgba(255,255,255,.75); }
.content-layout { display: grid; grid-template-columns: minmax(300px,380px) 1fr; gap: 24px; align-items: start; }
.content-form, .content-list { padding: 24px; border: 1px solid #dbe7f6; border-radius: 20px; background: #fff; box-shadow: 0 14px 35px rgba(8,45,130,.08); }
.content-form h3, .content-list h3 { margin: 0 0 6px; color: #0a1d43; }
.content-form > p, .content-list > p { margin: 0 0 18px; color: #60708a; }
.content-form label { display: block; margin: 13px 0 6px; color: #203a60; font-size: .82rem; font-weight: 800; }
.content-form input, .content-form select, .content-form textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #c9d8ee; border-radius: 10px; font: inherit; }
.content-form textarea { min-height: 90px; resize: vertical; }
.content-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.content-form .content-check { display: flex; align-items: center; gap: 9px; }
.content-form .content-check input { width: 18px; min-height: 18px; }
.content-primary { width: 100%; min-height: 46px; margin-top: 15px; border: 0; border-radius: 11px; color: #fff; background: linear-gradient(135deg,#075fe4,#16b6ca); font: inherit; font-weight: 900; cursor: pointer; }
.content-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 14px; }
.content-card { overflow: hidden; border: 1px solid #dbe7f6; border-radius: 15px; background: #fff; }
.content-card img { width: 100%; aspect-ratio: 4/3; display: block; object-fit: cover; }
.content-card > div { padding: 14px; }.content-card h4 { margin: 7px 0 5px; color: #0a1d43; }.content-card p { margin: 0; color: #60708a; }
.content-status { padding: 4px 8px; border-radius: 999px; color: #087a55; background: #e7f8f0; font-size: .72rem; font-weight: 900; }
.gallery-edit{margin-top:14px;border-top:1px solid #e3ebf6}.gallery-edit summary{padding:11px 0;color:#075fe4;font-weight:900;cursor:pointer}.gallery-edit label{display:block;margin:9px 0 4px;color:#405a7d;font-size:.74rem;font-weight:800}.gallery-edit input,.gallery-edit select,.gallery-edit textarea{width:100%;min-height:38px;padding:7px 9px;border:1px solid #c9d8ee;border-radius:8px;font:inherit}.gallery-edit textarea{min-height:60px}.gallery-edit button{width:100%;min-height:39px;margin-top:10px;border:0;border-radius:8px;color:#fff;background:#075fe4;font-weight:900}.gallery-card-actions{margin-top:12px;display:flex;gap:7px}.gallery-card-actions form{flex:1}.gallery-card-actions button{width:100%;min-height:38px;border:1px solid #bdd1ee;border-radius:8px;color:#075fe4;background:#fff;font-weight:900}.gallery-card-actions button.danger{color:#a02d2d;border-color:#e4b4b4}
@media(max-width:900px){.content-layout{grid-template-columns:1fr}.content-form-row{grid-template-columns:1fr}}

/* LOGIN E CENTRAL DE CONTEUDO V71 */
.login-page .login-stage{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:34px 0 42px;display:grid;grid-template-columns:minmax(340px,440px) minmax(0,1fr);gap:28px;align-items:start;align-content:start}
.login-page .auth-card{width:100%;min-height:520px;margin:0;padding:clamp(26px,4vw,42px);justify-content:center;gap:22px;border-radius:24px}
.login-page .auth-card .section-heading{margin:0;text-align:left}.login-page .auth-card .login-form{width:100%;max-width:none}
.login-campaigns{min-width:0;padding:26px;border:1px solid #dbe7f6;border-radius:24px;background:rgba(255,255,255,.72);box-shadow:0 16px 40px rgba(8,45,130,.08);backdrop-filter:blur(12px)}
.login-campaigns-heading{margin-bottom:18px}.login-campaigns-heading h2{margin:5px 0 7px;color:#0a1d43;font-size:clamp(1.45rem,2.4vw,2rem)}.login-campaigns-heading p{margin:0;color:#60708a;line-height:1.5}
.login-campaign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.login-page .login-ad{width:100%;max-width:none;min-height:0;padding:0;display:flex;flex-direction:column;gap:0;border:1px solid #d6e4f5;border-left:1px solid #d6e4f5;border-radius:17px;background:#fff;box-shadow:0 10px 25px rgba(8,45,130,.08)}
.login-page .login-ad-featured{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.8fr) minmax(220px,1.2fr)}
.login-ad-image{width:100%;height:150px;display:block;object-fit:cover}.login-ad-featured .login-ad-image{height:100%;min-height:190px}
.login-page .login-ad-icon{width:54px;height:54px;margin:18px 18px 0;border-radius:15px;flex:0 0 auto}
.login-ad-copy{padding:18px;display:flex;flex:1;flex-direction:column;align-items:flex-start}.login-ad-copy h3{font-size:1.05rem}.login-ad-copy p{margin-top:7px;-webkit-line-clamp:4;font-size:.9rem;line-height:1.42}
.login-ad-link{min-height:38px;margin-top:14px;padding:0 13px;display:inline-flex;align-items:center;gap:8px;border-radius:9px;color:#fff;background:#075fe4;font-size:.82rem;font-weight:900;text-decoration:none}
.content-ads-list{padding:24px}.content-ads-list .ads-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:18px}
.content-ads-list .ad-gallery-card{overflow:hidden;border:1px solid #dbe7f6;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(8,45,130,.07)}
.content-ads-list .ad-gallery-card>form:first-child{display:grid;grid-template-columns:180px minmax(0,1fr)}
.ad-gallery-preview{min-height:260px;position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#eaf3ff,#d9eafb)}
.ad-gallery-preview img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.ad-gallery-preview .ad-gallery-image{font-size:2rem}.ad-slot{position:absolute;left:10px;bottom:10px;padding:5px 8px;border-radius:999px;color:#fff;background:rgba(4,24,60,.78);font-size:.7rem;font-weight:900}
.content-ads-list .ad-gallery-content{padding:18px;display:block}.content-ads-list .ad-gallery-content label{display:block;margin:10px 0 5px;color:#274263;font-size:.76rem;font-weight:900}
.content-ads-list .ad-gallery-content input,.content-ads-list .ad-gallery-content textarea{width:100%;min-height:40px;padding:8px 10px;border:1px solid #c9d8ee;border-radius:9px;font:inherit}.content-ads-list .ad-gallery-content textarea{min-height:68px;resize:vertical}
.ad-period{display:grid;grid-template-columns:1fr 1fr;gap:9px}.content-ads-list .ad-card-actions{margin-top:13px}.content-ads-list .ad-card-actions button{min-height:40px;padding:0 14px;border:0;border-radius:9px;color:#fff;background:#075fe4;font-weight:900}.content-ads-list .ad-visibility-toggle{display:flex;align-items:center;gap:7px}.content-ads-list .ad-visibility-toggle input{width:18px;min-height:18px}
.ad-remove-image{padding:0 18px 16px;text-align:right}.ad-remove-image button{min-height:36px;border:1px solid #e7b8b8;border-radius:8px;color:#9a2c2c;background:#fff;font-weight:800}
@media(max-width:980px){.login-page .login-stage{grid-template-columns:1fr}.login-page .auth-card{min-height:0}.content-ads-list .ads-workspace{grid-template-columns:1fr}}
@media(max-width:640px){.login-page .login-stage{width:calc(100% - 22px);padding-top:20px;gap:16px}.login-campaigns{padding:18px}.login-campaign-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.login-page .login-ad,.login-page .login-ad-featured{min-width:82%;display:flex;scroll-snap-align:start}.login-ad-featured .login-ad-image,.login-ad-image{height:150px}.content-ads-list{padding:16px}.content-ads-list .ad-gallery-card>form:first-child{grid-template-columns:1fr}.ad-gallery-preview{min-height:190px}.ad-period{grid-template-columns:1fr}}

.user-status-filters{margin:0 0 16px;display:flex;flex-wrap:wrap;gap:8px}.user-status-filters a{min-height:40px;padding:0 13px;display:inline-flex;align-items:center;gap:7px;border:1px solid #c7d8ef;border-radius:10px;color:#47617e;background:#fff;font-weight:800;text-decoration:none}.user-status-filters a.is-active{color:#fff;border-color:#075fe4;background:#075fe4}.user-status-filters span{padding:2px 6px;border-radius:999px;background:rgba(127,160,205,.18);font-size:.72rem}
.user-state{padding:5px 8px;border-radius:999px;font-size:.72rem;font-weight:900}.user-state-active{color:#087a55;background:#e5f8ef}.user-state-inactive{color:#68788d;background:#edf1f6}
.user-actions .action-button{min-height:40px;width:auto;padding:0 11px;gap:6px;text-decoration:none}.deactivate-button{color:#9b5b06!important;border-color:#ecd09c!important;background:#fffaf0!important}.reactivate-button{color:#087a55!important;border-color:#9ed9c1!important;background:#f0fbf6!important}

#galeria {
    width: min(1460px, 93%);
    height: calc(100vh - 156px);
    min-height: 430px;
    margin: 10px auto;
    padding: 18px clamp(22px, 2.5vw, 36px);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(circle at 92% 14%, rgba(7, 95, 228, 0.13) 0 3px, transparent 4px) 0 0 / 22px 22px,
        linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(232, 242, 255, 0.88));
}

#galeria::before {
    content: "📷";
    position: absolute;
    right: -32px;
    bottom: -72px;
    font-size: 260px;
    line-height: 1;
    opacity: 0.055;
    transform: rotate(-8deg);
    pointer-events: none;
}

#galeria > * {
    position: relative;
    z-index: 1;
}

.gallery-heading {
    max-width: 760px;
    margin-bottom: 10px;
}

.gallery-heading .eyebrow {
    margin-bottom: 2px;
}

.gallery-heading h2 {
    margin: 0 0 4px;
    font-size: clamp(30px, 2.8vw, 40px);
}

.gallery-heading p {
    margin: 0;
    color: var(--texto-suave);
    font-size: 16px;
    line-height: 1.35;
}

.gallery-tabs {
    margin: 0 0 12px;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    background: rgba(223, 236, 255, 0.74);
    border: 1px solid #BFD5F2;
    border-radius: 12px;
}

.gallery-tab {
    width: min(180px, 100%);
    min-height: 40px;
    padding: 7px 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--azul-escuro);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 9px;
    box-shadow: none;
    font-size: 16px;
    font-weight: 700;
}

.gallery-tab:hover,
.gallery-tab.is-active {
    color: #fff;
    background: linear-gradient(135deg, var(--azul-principal), var(--azul-escuro));
    border-color: var(--azul-principal);
    box-shadow: 0 8px 18px rgba(8, 45, 130, 0.18);
    transform: none;
}

.gallery-tab:focus-visible {
    outline: 3px solid rgba(7, 95, 228, 0.28);
    outline-offset: 2px;
}

.gallery-tab-panel[hidden] {
    display: none;
}

.gallery-tab-panel {
    min-height: 0;
    flex: 1;
}

.gallery-grid {
    height: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.gallery-card {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid #D7E5F8;
    border-radius: 16px;
    box-shadow: 0 12px 28px rgba(8, 45, 130, 0.10);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gallery-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 36px rgba(8, 45, 130, 0.15);
}

.gallery-photo-placeholder {
    min-height: 105px;
    flex: 1;
    display: grid;
    place-items: center;
    color: var(--azul-principal);
    background:
        linear-gradient(135deg, rgba(7, 95, 228, 0.12), rgba(23, 131, 255, 0.03)),
        repeating-linear-gradient(45deg, transparent 0 18px, rgba(7, 95, 228, 0.045) 18px 19px);
    border-bottom: 1px solid #D7E5F8;
    font-size: 52px;
}

.gallery-card-content {
    padding: 10px 15px 12px;
}

.gallery-card h3 {
    margin: 0 0 6px;
    color: var(--azul-escuro);
    font-size: 18px;
}

.gallery-card p {
    margin: 0;
    color: var(--texto-suave);
    font-size: 14px;
    line-height: 1.45;
}

.gallery-note {
    margin: 8px 0 0;
    padding: 7px 12px;
    color: var(--azul-escuro);
    background: rgba(223, 236, 255, 0.78);
    border-left: 4px solid var(--azul-principal);
    border-radius: 8px;
    font-size: 12px;
}

#contato {
    padding: clamp(25px, 3vw, 44px);
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
    grid-template-rows: auto repeat(3, auto) 1fr;
    gap: 12px 34px;
    align-content: center;
    background:
        radial-gradient(circle at 91% 17%, rgba(7, 95, 228, 0.14) 0 3px, transparent 4px) 0 0 / 20px 20px,
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(229, 240, 255, 0.88));
}

#contato::before {
    content: "✉";
    position: absolute;
    right: -24px;
    bottom: -76px;
    color: var(--azul-principal);
    font-size: 260px;
    line-height: 1;
    opacity: 0.055;
    transform: rotate(-9deg);
    pointer-events: none;
}

#contato > * {
    position: relative;
    z-index: 1;
}

#contato h2 {
    grid-column: 1 / -1;
    margin: 0 0 12px;
    font-size: 35px;
}

#contato form {
    width: 90%;
    max-width: none;
    padding: 16px;
    grid-column: 1;
    grid-row: 2 / span 4;
    background: rgba(255, 255, 255, 0.70);
    border: 1px solid rgba(185, 207, 238, 0.75);
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(8, 45, 130, 0.08);
}

#contato form input,
#contato form textarea {
    margin-bottom: 10px;
}

#contato form textarea {
    min-height: 104px;
    resize: vertical;
}

#contato > p:not(:empty) {
    width: 110%;
    margin: 0 0 0 -10%;
    padding: 16px 18px;
    grid-column: 2;
    color: var(--texto-suave);
    background: rgba(245, 249, 255, 0.88);
    border: 1px solid #E1EBFA;
    border-left: 4px solid var(--azul-principal);
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(8, 45, 130, 0.06);
    font-size: 15px;
    line-height: 1.4;
}

#contato > p strong {
    color: var(--azul-escuro);
}

input,
textarea {
    color: var(--preto);
    background: #FFFFFF;
    border: 1px solid #B9CFEE;
}

input:focus,
textarea:focus {
    border-color: var(--azul-principal);
    box-shadow: 0 0 0 4px rgba(7, 95, 228, 0.12);
}

button,
.content-button {
    color: #FFFFFF;
    background: linear-gradient(135deg, var(--azul-principal), #084FC6);
    border-color: var(--azul-principal);
    box-shadow: 0 7px 16px rgba(7, 95, 228, 0.15);
}

button:hover,
.content-button:hover {
    background: var(--azul-escuro);
    border-color: var(--azul-escuro);
}

.acesso-restrito {
    width: min(680px, calc(100% - 32px));
    padding: clamp(26px, 3.5vw, 44px);
}

.auth-card {
    margin-block: clamp(30px, 7vh, 80px);
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 88% 18%, rgba(7, 95, 228, 0.13) 0 3px, transparent 4px) 0 0 / 20px 20px,
        linear-gradient(135deg, rgba(19, 60, 145, 0.08), rgba(0, 114, 169, 0.03) 52%, rgba(255, 255, 255, 0.97));
}

.auth-card::before {
    content: "🔒";
    position: absolute;
    right: -18px;
    bottom: -48px;
    color: var(--azul-escuro);
    font-size: 190px;
    line-height: 1;
    opacity: 0.055;
    transform: rotate(-8deg);
    pointer-events: none;
}

.auth-card > * {
    position: relative;
    z-index: 1;
}

.auth-card .section-heading h2 {
    font-size: 38px;
}

.auth-card .section-heading {
    text-align: center;
}

.auth-card .login-form {
    width: 50%;
    max-width: 320px;
    margin-inline: auto;
    text-align: center;
}

.auth-card .login-form label {
    display: block;
    text-align: center;
}

.auth-card .login-form input {
    width: 80%;
    margin-inline: auto;
    display: block;
}

.auth-card .login-form button {
    width: 80%;
    min-height: 52px;
    display: block;
    margin-inline: auto;
}

.auth-card .alert {
    width: 50%;
    max-width: 320px;
    margin-inline: auto;
    text-align: center;
}

footer {
    padding: 11px 20px;
    color: #FFFFFF;
    background: #020406;
    border-top: 1px solid #133C91;
    font-size: 13px;
}

/* Administração */

.admin-page {
    background: linear-gradient(180deg, #F7FAFF 0%, #EDF4FF 100%);
}

.admin-header {
    min-height: 88px;
    padding: 10px 4.5%;
    color: var(--azul-escuro);
    background: #D6E0E6;
    border-bottom: 1px solid #E1EBFA;
    box-shadow: 0 6px 22px rgba(8, 45, 130, 0.08);
}

.admin-header .logo-link {
    width: 210px;
    height: 56px;
    overflow: visible;
}

.admin-brand p,
.nav-user {
    color: var(--azul-escuro);
}

.admin-brand p {
    color: var(--azul-principal);
}

.admin-nav a,
.admin-nav .nav-button {
    color: var(--azul-principal);
    background: #FFFFFF;
    border: 1px solid var(--azul-principal);
    box-shadow: none;
}

.admin-nav a:hover,
.admin-nav .nav-button:hover {
    color: #FFFFFF;
    background: var(--azul-principal);
    border-color: var(--azul-principal);
}

.admin-section,
.users-admin-section {
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid #DDE9FA;
    border-top: 1px solid #DDE9FA;
    box-shadow: var(--sombra-suave);
}

.ads-admin-section {
    min-height: min(540px, calc(100vh - 185px));
    display: flex;
    flex-direction: column;
}

.ads-workspace {
    margin-top: 22px;
    flex: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ad-gallery-card {
    overflow: hidden;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #CDDEF6;
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(8, 45, 130, 0.10);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ad-gallery-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 30px rgba(8, 45, 130, 0.15);
}

.ad-gallery-image {
    min-height: 118px;
    display: grid;
    place-items: center;
    background:
        linear-gradient(135deg, rgba(7, 95, 228, 0.13), rgba(19, 60, 145, 0.04)),
        repeating-linear-gradient(45deg, transparent 0 18px, rgba(7, 95, 228, 0.05) 18px 19px);
    border-bottom: 1px solid #D7E5F8;
    font-size: 38px;
}

.ad-gallery-content {
    padding: 14px 16px 16px;
}

.ad-gallery-content span {
    color: var(--azul-principal);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ad-gallery-content h3 {
    margin: 5px 0 7px;
    color: var(--azul-escuro);
    font-size: 18px;
}

.ad-gallery-content p {
    margin: 0;
    color: var(--texto-suave);
    font-size: 14px;
    line-height: 1.45;
}

.admin-tabs {
    background: #EEF5FF;
    border-color: #CDDEF6;
}

.admin-tabs .admin-tab {
    color: var(--azul-escuro);
}

.admin-tabs .admin-tab:hover,
.admin-tabs .admin-tab.is-active {
    background: linear-gradient(135deg, var(--azul-principal), #084FC6);
}

.user-form {
    background: #F8FBFF;
    border-color: #CDDEF6;
}

.users-table-wrap {
    border-color: #D5E4F8;
    box-shadow: 0 8px 22px rgba(8, 45, 130, 0.09);
}

.users-table th {
    background: linear-gradient(135deg, var(--azul-escuro), #124BB5);
}

.users-table tbody tr:nth-child(even) {
    background: #F4F8FF;
}

.role-badge,
.edit-button {
    background: var(--azul-principal);
}

.role-admin {
    background: var(--azul-escuro);
}

.action-button {
    width: 36px;
    min-width: 36px;
    min-height: 34px;
    padding: 0;
    border-radius: 8px;
}

.edit-icon {
    width: 17px;
    height: 5px;
    position: relative;
    display: block;
    background: currentColor;
    border-radius: 2px 0 0 2px;
    transform: rotate(-45deg);
}

.edit-icon::before {
    content: "";
    width: 5px;
    height: 5px;
    position: absolute;
    right: -4px;
    background: currentColor;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.edit-icon::after {
    content: "";
    width: 3px;
    height: 5px;
    position: absolute;
    left: -5px;
    background: currentColor;
    border-radius: 1px;
}

.delete-button {
    width: 36px;
    min-width: 36px;
    background: #D92D43;
}

.delete-button:hover {
    background: #A9152B;
}

.delete-icon {
    width: 15px;
    height: 17px;
    position: relative;
    display: block;
    border: 2px solid currentColor;
    border-top: 0;
    border-radius: 1px 1px 3px 3px;
}

.delete-icon::before {
    content: "";
    width: 19px;
    height: 3px;
    position: absolute;
    top: -6px;
    left: -4px;
    background: currentColor;
    border-radius: 3px;
    box-shadow: 5px -4px 0 -1px currentColor;
}

.delete-icon::after {
    content: "";
    width: 2px;
    height: 10px;
    position: absolute;
    top: 3px;
    left: 4px;
    background: currentColor;
    border-radius: 2px;
    box-shadow: 4px 0 0 currentColor;
}

@media (max-width: 1100px) {
    header:not(.admin-header) {
        grid-template-columns: minmax(205px, 240px) 1fr;
        padding-inline: 4%;
        column-gap: 20px;
    }

    header:not(.admin-header) .logo-link {
        width: min(217px, 84vw);
        height: 46px;
    }

    header:not(.admin-header) > nav {
        gap: 6px;
    }

    header:not(.admin-header) > nav a {
        width: 108px;
        height: 46px;
        min-height: 46px;
        padding: 0 8px;
        font-size: 14px;
    }

    #home .main-content {
        width: min(580px, 55%);
    }

    .ads-workspace {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    header:not(.admin-header) {
        grid-template-columns: 1fr;
        grid-template-areas: "brand" "tagline" "navigation";
    }

    header:not(.admin-header) > nav {
        margin-top: 12px;
        justify-content: flex-start;
    }

    #home {
        background:
            linear-gradient(180deg, #FFFFFF 0%, rgba(255,255,255,0.92) 56%, rgba(255,255,255,0.35) 100%),
            url("hero-agro-lineart.png") right bottom / auto 68% no-repeat,
            #FFFFFF;
    }

    #home .main-content {
        width: 100%;
        max-width: 650px;
    }

    #servicos ul {
        grid-template-columns: 1fr;
    }

    #servicos li,
    #servicos ul > p {
        min-height: 0;
    }

    .gallery-grid {
        height: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #galeria {
        width: 92%;
        height: auto;
        min-height: 0;
        margin: 16px auto;
        padding: 25px;
        display: block;
    }

    .gallery-heading {
        margin-bottom: 18px;
    }

    .gallery-tabs {
        margin-bottom: 18px;
    }

    .gallery-photo-placeholder {
        min-height: 156px;
    }

    .gallery-note {
        margin-top: 16px;
        padding: 10px 13px;
        font-size: 13px;
    }

    #contato {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    #contato h2,
    #contato form,
    #contato > p:not(:empty) {
        width: 100%;
        margin-left: 0;
        grid-column: 1;
        grid-row: auto;
    }
}

@media (max-width: 700px) {
    header:not(.admin-header) {
        min-height: 0;
        padding: 9px 5%;
    }

    header:not(.admin-header) .logo-link {
        width: min(201px, 90vw);
        height: 42px;
    }

    .gallery-tabs {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gallery-tab {
        width: 100%;
    }

    .ads-workspace {
        grid-template-columns: 1fr;
    }

    .admin-header .logo-link {
        width: 190px;
        height: 50px;
    }

    header:not(.admin-header) > nav {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    header:not(.admin-header) > nav a {
        width: 100%;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
    }

    #home {
        --home-padding: 24px;
        min-height: 600px;
        padding: 28px var(--home-padding) var(--home-padding);
    }

    #home h2 {
        font-size: 48px;
    }

    #home .cta {
        min-height: 0;
        padding: 16px;
    }

    #home .cta::before {
        display: none;
    }

    .auth-card .login-form,
    .auth-card .alert {
        width: 100%;
    }

    #sobre {
        grid-template-columns: 1fr;
    }

    #sobre h2,
    #sobre > p:first-of-type {
        grid-column: 1;
    }

    .admin-header {
        align-items: flex-start;
    }

    .admin-nav {
        width: 100%;
    }
}

/* AJUSTES INTEGRADOS — GALERIA, LOGIN E PROPAGANDAS */

@media (min-width: 901px) {
    #home {
        min-height: max(458px, calc(100vh - 176px));
    }

    #home .main-content {
        padding-top: 0;
        padding-bottom: 14px;
    }

    #home h2 {
        margin-bottom: 18px;
        font-size: clamp(48px, 4.7vw, 70px);
    }

    #home h2::after {
        margin-top: 17px;
    }

    #home .main-content > p {
        line-height: 1.46;
    }

    #home .cta {
        min-height: 74px;
    }
}

.gallery-heading {
    max-width: none;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 24px;
    align-items: end;
}

.gallery-heading .eyebrow {
    grid-column: 1 / -1;
}

.gallery-heading h2 {
    grid-column: 1;
    margin-bottom: 0;
}

.gallery-heading p {
    grid-column: 2;
    padding-bottom: 4px;
}

.login-page .login-layout {
    width: 100%;
    min-height: 0;
    padding: 24px 1.5% 8px;
    flex: 1;
    display: grid;
    grid-template-columns: minmax(269px, 1fr) minmax(500px, 560px) minmax(269px, 1fr);
    gap: 10px;
    align-items: center;
    align-content: start;
}

.login-page .auth-card {
    width: 100%;
    max-width: 560px;
    min-height: max(458px, calc(100vh - 176px));
    margin: 0;
    padding: clamp(22px, 2.5vw, 34px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-evenly;
}

.login-page .auth-card .section-heading {
    width: 100%;
    margin-bottom: 16px;
}

.login-page .auth-card .section-heading h2 {
    margin-bottom: 12px;
}

.login-page .auth-card .login-form input {
    text-align: center;
}

.login-ads {
    min-width: 0;
    display: grid;
    gap: 10px;
    align-self: stretch;
    align-content: space-between;
}

@media (min-width: 901px) {
    .login-ads-left {
        transform: translateX(-15px);
    }

    .login-ads-right {
        transform: translateX(15px);
    }
}

.login-ad {
    width: 100%;
    max-width: 269px;
    min-height: 145px;
    padding: 14px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    gap: 3px 7px;
    align-content: center;
    color: var(--azul-escuro);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(226, 238, 255, 0.91));
    border: 1px solid #BFD5F2;
    border-left: 4px solid var(--azul-principal);
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(8, 45, 130, 0.13);
}

.login-ads-left .login-ad {
    margin-left: auto;
}

.login-ads-right .login-ad {
    margin-right: auto;
}

.login-ad.is-empty {
    visibility: hidden;
}

.login-ad-icon {
    width: 50px;
    height: 50px;
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, var(--azul-principal), var(--azul-escuro));
    border-radius: 50%;
    font-size: 25px;
}

.login-ad h3 {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--azul-escuro);
    font-size: 20px;
    line-height: 1.15;
}

.login-ad p {
    margin: 0;
    display: -webkit-box;
    overflow: hidden;
    color: var(--texto-suave);
    font-size: 16px;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.ads-page main {
    min-height: 0;
    flex: 1;
    display: flex;
}

.ads-admin-section {
    width: min(1460px, 93%);
    height: calc(100vh - 155px);
    min-height: 455px;
    margin: 8px auto;
    padding: 14px clamp(22px, 2.6vw, 34px);
    position: relative;
    overflow: hidden;
}

.ads-admin-section .section-heading {
    margin: 0;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 24px;
    align-items: center;
}

.ads-admin-section .section-heading .eyebrow {
    grid-column: 1 / -1;
    margin-bottom: 0;
}

.ads-admin-section .section-heading h2 {
    margin: 0;
    grid-column: 1;
    font-size: 29px;
}

.ads-admin-section .section-heading p {
    margin: 0;
    grid-column: 2;
    color: var(--texto-suave);
    font-size: 14px;
    line-height: 1.3;
}

.ads-flashes {
    max-width: 440px;
    position: absolute;
    top: 10px;
    right: 28px;
    z-index: 5;
}

.ads-flashes .alert {
    margin: 0;
    padding: 8px 12px;
    font-size: 12px;
}

.ads-workspace {
    min-height: 0;
    margin-top: 9px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ad-gallery-card {
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.ad-gallery-card:hover {
    transform: none;
}

.ad-gallery-image {
    min-height: 38px;
    flex: 0 0 38px;
    font-size: 22px;
}

.ad-gallery-content {
    min-height: 0;
    padding: 6px 9px 8px;
    flex: 1;
    display: grid;
    grid-template-rows: auto auto auto auto;
    gap: 4px;
}

.ad-gallery-content > span {
    font-size: 10px;
}

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

.ad-gallery-content input[type="text"],
.ad-gallery-content textarea {
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 5px 7px;
    color: var(--preto);
    background: #fff;
    border: 1px solid #BFD5F2;
    border-radius: 6px;
    font: inherit;
    font-size: 11px;
}

.ad-gallery-content input[type="text"] {
    height: 27px;
    font-size: 12px;
    font-weight: 700;
}

.ad-gallery-content textarea {
    height: 34px;
    resize: none;
    line-height: 1.15;
}

.ad-card-actions {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.ad-visibility-toggle {
    min-width: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    color: var(--azul-escuro);
    font-size: 11px;
    line-height: 1;
}

.ad-visibility-toggle input {
    width: 15px;
    height: 15px;
    margin: 0;
    padding: 0;
    accent-color: var(--azul-principal);
}

.ad-card-actions button {
    min-height: 27px;
    padding: 4px 12px;
    border-width: 1px;
    border-radius: 6px;
    font-size: 11px;
}

@media (max-width: 1100px) and (min-width: 901px) {
    .login-page .login-layout {
        grid-template-columns: minmax(108px, 1fr) minmax(520px, 620px) minmax(108px, 1fr);
        padding-inline: 2%;
        gap: 10px;
    }

    .login-ad {
        min-height: 104px;
        padding-inline: 7px;
    }
}

@media (max-width: 900px) {
    .gallery-heading {
        display: block;
    }

    .gallery-heading h2 {
        margin-bottom: 4px;
    }

    .gallery-heading p {
        padding-bottom: 0;
    }

    .login-page .login-layout {
        padding: 16px 4%;
        display: flex;
        flex-direction: column;
    }

    .login-page .auth-card {
        order: 1;
    }

    .login-ads {
        width: 100%;
        order: 2;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .login-ads-right {
        order: 3;
    }

    .login-ad {
        max-width: none;
        margin: 0;
    }

    .login-ad.is-empty {
        display: none;
    }

    .ads-admin-section {
        height: auto;
        min-height: 0;
        margin: 16px auto;
        overflow: visible;
    }

    .ads-workspace {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: auto;
    }

    .ad-gallery-card {
        min-height: 180px;
    }
}

@media (max-width: 700px) {
    .login-ads,
    .ads-workspace {
        grid-template-columns: 1fr;
    }

    .ads-admin-section .section-heading {
        display: block;
    }

    .ads-admin-section .section-heading p {
        margin-top: 6px;
    }
}

/* AJUSTES V55 — CONTATO COM LOCALIZAÇÃO E PADRÃO DAS CAIXAS */

#contato {
    grid-template-columns: minmax(0, 1.2fr) minmax(330px, 0.8fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 12px 26px;
}

#contato .contact-form {
    width: 100%;
    height: 100%;
    max-width: none;
    padding: 14px;
    grid-column: 1;
    grid-row: 2;
    display: flex;
    flex-direction: column;
}

#contato .contact-form textarea {
    min-height: 100px;
    flex: 1;
}

#contato .contact-form button {
    width: 122px;
    min-height: 48px;
}

.contact-side {
    min-width: 0;
    height: 100%;
    grid-column: 2;
    grid-row: 2 / span 2;
    display: grid;
    grid-template-rows: auto minmax(90px, 1fr);
    gap: 9px;
}

.contact-card,
.location-map {
    color: var(--texto-suave);
    background: rgba(245, 249, 255, 0.90);
    border: 1px solid #D8E7FA;
    border-left: 4px solid var(--azul-principal);
    border-radius: 11px;
    box-shadow: 0 7px 18px rgba(8, 45, 130, 0.07);
}

.contact-card {
    padding: 11px 14px;
}

.address-card {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}

.contact-card-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, var(--azul-principal), var(--azul-escuro));
    border-radius: 50%;
    font-size: 20px;
    font-weight: 700;
}

.contact-card p,
.location-map span {
    margin: 0;
    font-size: 13px;
    line-height: 1.3;
}

.contact-card strong,
.location-map strong {
    margin-bottom: 2px;
    display: block;
    color: var(--azul-escuro);
    font-size: 13px;
}

.location-map {
    min-height: 90px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    text-decoration: none;
    isolation: isolate;
}

.location-map-art {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    z-index: -1;
    object-fit: cover;
    border: 0;
    pointer-events: none;
}

.location-map-link {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    text-decoration: none;
}

.location-map span {
    width: 100%;
    padding: 6px 12px;
    color: #fff;
    background: linear-gradient(90deg, rgba(7, 95, 228, 0.94), rgba(8, 45, 130, 0.88));
}

.location-map strong {
    margin: 0;
    color: #fff;
}

.location-map:hover,
.location-map:focus-within {
    border-color: var(--azul-principal);
    box-shadow: 0 10px 24px rgba(7, 95, 228, 0.20);
    transform: translateY(-1px);
}

.contact-channels {
    grid-column: 1;
    grid-row: 3;
    width: 100%;
    margin-top: 0;
    display: grid;
    grid-template-columns: 1.35fr 0.65fr;
    gap: 14px;
}

.contact-channels p + p {
    padding-top: 0;
    padding-left: 14px;
    border-top: 0;
    border-left: 1px solid #D8E7FA;
}

.contact-channels a {
    color: var(--texto-suave);
    text-decoration: none;
}

.contact-channels a:hover,
.contact-channels a:focus-visible {
    color: var(--azul-principal);
    text-decoration: underline;
}

@media (max-width: 900px) {
    #contato {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    #contato .contact-form,
    #contato > .contact-channels,
    .contact-side {
        width: 100%;
        height: auto;
        grid-column: 1;
        grid-row: auto;
    }

    .contact-side {
        grid-template-rows: auto 130px;
    }

    .contact-channels {
        grid-template-columns: 1fr;
    }

    .contact-channels p + p {
        padding-top: 7px;
        padding-left: 0;
        border-top: 1px solid #D8E7FA;
        border-left: 0;
    }
}
/* Logo compacta: preserva a proporção da marca e evita novo recorte. */
.logo-agrofoco,
.admin-header .logo-agrofoco {
    object-fit: contain;
    object-position: left center;
}

/* =========================================================
   AGROFOCO 2026 — LANDING PAGE IMERSIVA
   ========================================================= */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
html:has(body.landing-modern) { max-width: 100%; overflow-x: clip; }
.landing-modern { --landing-navy: #061a3f; --landing-blue: #0865ee; --landing-cyan: #14b1c2; --landing-cream: #f5f4ee; width: 100%; max-width: 100vw; margin: 0; color: #fff; background: #06152f; font-family: "Segoe UI", Arial, sans-serif; overflow-x: clip; }
.landing-modern::before { display: none; }
.landing-modern main { width: 100%; max-width: none; margin: 0; padding: 0; }
.landing-modern header.landing-header { width: 100%; min-height: 0; padding: 0; display: block; grid-template: none; color: #fff; background: transparent; border: 0; box-shadow: none; }
.landing-modern header.landing-header.is-scrolled { background: rgba(4, 20, 48, .88); box-shadow: 0 12px 35px rgba(1, 12, 30, .18); }
.landing-modern .landing-nav-shell { grid-area: auto; }
.landing-modern nav.landing-nav { width: auto; margin: 0; grid-area: auto; flex-wrap: nowrap; align-self: center; }
.landing-modern nav.landing-nav a { width: auto; height: auto; min-height: 0; padding: 10px 0; display: inline-block; color: rgba(255, 255, 255, .78); background: transparent; border: 0; border-radius: 0; box-shadow: none; font-size: .78rem; line-height: normal; text-align: left; }
.landing-modern section.agro-hero, .landing-modern section.coverage { width: 100%; max-width: none; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.landing-modern section.clients-showcase { width: 100%; max-width: none; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.landing-modern section.agro-hero { padding: 0; background: transparent; }
.landing-modern footer.landing-footer { width: 100%; margin: 0; border: 0; box-shadow: none; }
.landing-header { position: fixed; inset: 0 0 auto; z-index: 50; width: 100%; height: auto; padding: 0; color: #fff; background: transparent; border: 0; box-shadow: none; transition: background .35s ease, box-shadow .35s ease, transform .35s ease; }
.landing-header.is-scrolled { background: rgba(4, 20, 48, .88); box-shadow: 0 12px 35px rgba(1, 12, 30, .18); backdrop-filter: blur(18px); }
.landing-nav-shell { width: min(1220px, calc(100% - 44px)); min-height: 94px; margin: auto; display: grid; grid-template-columns: 220px 1fr auto; align-items: center; gap: 28px; }
.landing-logo { display: flex; align-items: center; }
.landing-logo img { width: 205px; height: 54px; display: block; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); transition: filter .3s ease; }
.landing-header.is-scrolled .landing-logo img { filter: brightness(0) invert(1); }
.landing-nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2.5vw, 38px); }
.landing-nav a { position: relative; padding: 10px 0; color: rgba(255, 255, 255, .78); font-size: .78rem; font-weight: 800; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; transition: color .2s ease; }
.landing-nav a::after { content: ""; position: absolute; right: 0; bottom: 3px; left: 0; height: 2px; border-radius: 9px; background: linear-gradient(90deg, var(--landing-blue), var(--landing-cyan)); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.landing-nav a:hover, .landing-nav a:focus-visible { color: #fff; }
.landing-nav a:hover::after, .landing-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.client-area { min-height: 48px; padding: 0 20px; display: inline-flex; align-items: center; gap: 19px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 999px; color: #fff; background: rgba(255, 255, 255, .1); font-size: .83rem; font-weight: 800; text-decoration: none; backdrop-filter: blur(12px); transition: .25s ease; }
.client-area:hover, .client-area:focus-visible { color: #fff; border-color: var(--landing-cyan); background: rgba(20, 177, 194, .2); transform: translateY(-2px); }
.landing-menu-button { display: none; }
.agro-hero { position: relative; min-height: 100svh; overflow: hidden; display: flex; align-items: center; isolation: isolate; background: #04132e; }
.hero-media { position: absolute; inset: 0; z-index: -4; background: #04132e url("hero-agrofoco-multisegmentos-v2.png") center / cover no-repeat; animation: heroImageTone 12s ease-in-out infinite alternate; }
.hero-shade { position: absolute; inset: 0; z-index: -3; background: linear-gradient(rgba(3, 14, 30, .54), rgba(3, 14, 30, .54)), linear-gradient(90deg, rgba(2, 13, 34, .3), transparent 62%); }
.hero-glow { position: absolute; width: 650px; height: 650px; right: -260px; bottom: -300px; z-index: -2; border-radius: 50%; background: rgba(24, 197, 210, .13); filter: blur(12px); animation: heroGlow 6s ease-in-out infinite alternate; }
.hero-inner { position: relative; z-index: 2; width: min(1220px, calc(100% - 44px)); margin: auto; padding: 135px 0 145px; display: grid; grid-template-columns: minmax(0, 720px) minmax(280px, 1fr); align-items: end; gap: 80px; }
.hero-copy { max-width: 720px; }
.hero-kicker { display: inline-flex; align-items: center; gap: 12px; color: #8be4ee; font-size: .78rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.hero-kicker > span { width: 36px; height: 2px; border-radius: 5px; background: linear-gradient(90deg, var(--landing-blue), var(--landing-cyan)); }
.hero-copy h1 { max-width: 720px; margin: 22px 0 20px; color: #fff; font-size: clamp(3.2rem, 6.3vw, 6.15rem); font-weight: 760; line-height: .94; letter-spacing: -.058em; text-wrap: balance; }
.hero-copy h1 strong { display: block; padding-bottom: .12em; color: transparent; background: linear-gradient(90deg, #fff 0%, #8fe9f1 43%, #6baaff 100%); -webkit-background-clip: text; background-clip: text; font-weight: inherit; }
.hero-copy > p { max-width: 650px; margin: 0; color: rgba(255, 255, 255, .74); font-size: clamp(1rem, 1.3vw, 1.15rem); line-height: 1.7; }
.hero-actions { margin-top: 34px; display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.hero-primary, .hero-secondary { min-height: 55px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; font-size: .88rem; font-weight: 850; text-decoration: none; transition: .25s ease; }
.hero-primary { padding: 0 25px; gap: 24px; color: #fff; background: linear-gradient(135deg, var(--landing-blue), #1746b1); box-shadow: 0 14px 34px rgba(8, 101, 238, .28); }
.hero-primary:hover, .hero-primary:focus-visible { color: #fff; transform: translateY(-3px); box-shadow: 0 20px 42px rgba(8, 101, 238, .4); }
.hero-secondary { padding: 0 18px; gap: 10px; color: #fff; border: 1px solid rgba(255, 255, 255, .23); background: rgba(255, 255, 255, .07); backdrop-filter: blur(10px); }
.hero-secondary:hover, .hero-secondary:focus-visible { color: #fff; border-color: rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .13); }
.play-mark { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .13); }
.hero-insight { justify-self: end; width: min(100%, 335px); padding: 25px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 22px; background: linear-gradient(145deg, rgba(7, 28, 60, .5), rgba(7, 30, 60, .22)); box-shadow: 0 24px 60px rgba(0, 12, 29, .2); backdrop-filter: blur(17px); animation: insightFloat 6s ease-in-out infinite; }
.insight-label { color: #8fe9f1; font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.hero-insight strong { margin: 12px 0 8px; display: block; color: #fff; font-size: 1.55rem; letter-spacing: -.03em; }
.hero-insight p { margin: 0; color: rgba(255, 255, 255, .68); font-size: .9rem; line-height: 1.55; }
.insight-pulse { margin-top: 20px; padding-top: 16px; display: flex; align-items: center; gap: 9px; border-top: 1px solid rgba(255, 255, 255, .14); color: rgba(255, 255, 255, .82); font-size: .78rem; font-weight: 800; }
.insight-pulse span { width: 9px; height: 9px; border-radius: 50%; background: #31da87; box-shadow: 0 0 0 5px rgba(49, 218, 135, .12); animation: statusPulse 2s ease-out infinite; }
.segments-rail { position: absolute; right: 0; bottom: 0; left: 0; z-index: 4; width: 100%; max-width: 100vw; height: 64px; overflow: hidden; display: flex; align-items: center; border-top: 1px solid rgba(255, 255, 255, .14); background: rgba(2, 13, 31, .55); backdrop-filter: blur(14px); }
.segments-track { width: max-content; display: flex; align-items: center; gap: 26px; color: rgba(255, 255, 255, .66); font-size: .72rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; animation: segmentsMove 24s linear infinite; }
.segments-track span { white-space: nowrap; }.segments-track i { width: 5px; height: 5px; border-radius: 50%; background: var(--landing-cyan); box-shadow: 0 0 0 5px rgba(20, 177, 194, .09); }
.scroll-cue { position: absolute; bottom: 82px; left: 50%; z-index: 6; display: flex; flex-direction: column; align-items: center; gap: 7px; color: rgba(255, 255, 255, .55); font-size: .63rem; font-weight: 800; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; transform: translateX(-50%); }
.scroll-cue i { width: 1px; height: 25px; overflow: hidden; background: rgba(255, 255, 255, .25); }.scroll-cue i::after { content: ""; width: 100%; height: 45%; display: block; background: #fff; animation: scrollCue 1.8s ease-in-out infinite; }
.reveal-on-load { opacity: 0; transform: translateY(24px); animation: revealLoad .85s cubic-bezier(.2,.8,.2,1) .15s forwards; }.hero-insight.reveal-on-load { animation: revealLoad .85s cubic-bezier(.2,.8,.2,1) .42s forwards, insightFloat 6s ease-in-out 1.4s infinite; }
.clients-showcase { position: relative; padding: 88px max(22px, calc((100vw - 1220px)/2)); overflow: hidden; color: #122849; background: linear-gradient(180deg, #fff 0%, #f5f8fd 100%); }
.clients-showcase::before { content: ""; position: absolute; width: 360px; height: 360px; top: -210px; right: -100px; border-radius: 50%; background: rgba(20,177,194,.1); filter: blur(3px); }
.clients-heading { position: relative; z-index: 1; max-width: 690px; }
.clients-heading h2 { margin: 11px 0 12px; color: var(--landing-navy); font-size: clamp(2.2rem, 4.5vw, 4.15rem); line-height: 1.02; letter-spacing: -.05em; }
.clients-heading p { max-width: 610px; margin: 0; color: #65738a; font-size: 1.02rem; line-height: 1.65; }
.clients-grid { position: relative; z-index: 1; margin-top: 40px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.client-logo-card { min-width: 0; height: 148px; padding: 17px 14px; display: grid; place-items: center; overflow: hidden; border: 1px solid #dce6f4; border-radius: 20px; background: rgba(255,255,255,.94); box-shadow: 0 15px 38px rgba(8,45,130,.075); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.client-logo-card::before { content: ""; position: absolute; inset: auto 18% 0; height: 3px; border-radius: 5px 5px 0 0; background: linear-gradient(90deg, var(--landing-blue), var(--landing-cyan)); opacity: 0; transform: scaleX(.35); transition: .25s ease; }
.client-logo-card { position: relative; }
.client-logo-card:hover { transform: translateY(-6px); border-color: #b7cce9; box-shadow: 0 24px 50px rgba(8,45,130,.13); }
.client-logo-card:hover::before { opacity: 1; transform: scaleX(1); }
.client-logo-card img { width: 100%; height: 100%; display: block; object-fit: contain; filter: saturate(.94); transition: transform .3s ease, filter .3s ease; }
.client-logo-card:hover img { transform: scale(1.035); filter: saturate(1.08); }
.coverage { position: relative; padding: 105px max(22px, calc((100vw - 1220px)/2)); color: #122849; background: #f6f8fc; }
.coverage::before { content: ""; position: absolute; width: 380px; height: 380px; top: 6%; right: -180px; border-radius: 50%; background: rgba(20, 177, 194, .08); filter: blur(4px); }
.coverage-heading { max-width: 800px; }.section-kicker { color: var(--landing-blue); font-size: .74rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }.coverage h2 { margin: 13px 0 15px; color: var(--landing-navy); font-size: clamp(2.4rem, 4.7vw, 4.65rem); line-height: 1.02; letter-spacing: -.05em; }.coverage h2 strong { color: var(--landing-blue); font-weight: inherit; }.coverage-heading p { max-width: 670px; margin: 0; color: #65738a; font-size: 1.05rem; line-height: 1.65; }
.coverage-grid { margin-top: 52px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }.coverage-card { position: relative; min-height: 245px; padding: 28px; overflow: hidden; border: 1px solid #dce6f4; border-radius: 22px; background: #fff; box-shadow: 0 17px 44px rgba(8, 45, 130, .07); transition: transform .25s ease, box-shadow .25s ease; }.coverage-card:hover { transform: translateY(-6px); box-shadow: 0 26px 55px rgba(8, 45, 130, .12); }.coverage-card > span { color: #9eacc0; font-size: .72rem; font-weight: 900; letter-spacing: .14em; }.coverage-card h3 { margin: 55px 0 9px; color: var(--landing-navy); font-size: 1.35rem; }.coverage-card p { margin: 0; color: #69778d; line-height: 1.58; }.coverage-card::after { content: ""; position: absolute; width: 130px; height: 130px; right: -65px; bottom: -73px; border-radius: 50%; background: linear-gradient(135deg, rgba(8, 101, 238, .12), rgba(20, 177, 194, .12)); }
.coverage-cta { margin-top: 20px; padding: 27px 30px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-radius: 22px; color: #fff; background: linear-gradient(115deg, #061a3f, #0a3476 68%, #075fcb); box-shadow: 0 20px 50px rgba(6, 26, 63, .16); }.coverage-cta span, .coverage-cta strong { display: block; }.coverage-cta span { color: #86dce8; font-size: .76rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.coverage-cta strong { margin-top: 6px; font-size: 1.35rem; }.coverage-cta a { min-height: 47px; padding: 0 20px; display: inline-flex; align-items: center; border-radius: 999px; color: #061a3f; background: #fff; font-size: .84rem; font-weight: 900; text-decoration: none; white-space: nowrap; }
.landing-footer { min-height: 165px; padding: 35px max(22px, calc((100vw - 1220px)/2)); display: grid; grid-template-columns: 220px 1fr auto; align-items: center; gap: 28px; color: rgba(255, 255, 255, .64); background: #04132e; }.landing-footer img { width: 180px; height: 50px; object-fit: contain; filter: brightness(0) invert(1); }.landing-footer p, .landing-footer small { margin: 0; font-size: .82rem; }.reveal-on-scroll { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }.reveal-on-scroll.is-visible { opacity: 1; transform: none; }.coverage-card:nth-child(2) { transition-delay: .1s; }.coverage-card:nth-child(3) { transition-delay: .2s; }
@keyframes heroImageTone { from { filter: saturate(.96) brightness(.98); } to { filter: saturate(1.06) brightness(1.02); } }
@keyframes heroGlow { to { opacity: .6; transform: scale(1.12); } } @keyframes insightFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } } @keyframes statusPulse { 70% { box-shadow: 0 0 0 11px rgba(49,218,135,0); } 100% { box-shadow: 0 0 0 0 rgba(49,218,135,0); } } @keyframes segmentsMove { to { transform: translateX(-48%); } } @keyframes scrollCue { from { transform: translateY(-100%); } to { transform: translateY(220%); } } @keyframes revealLoad { to { opacity: 1; transform: none; } }
@media (max-width: 930px) { .landing-nav-shell { grid-template-columns: 185px 1fr auto; }.landing-logo img { width: 178px; }.landing-nav { gap: 17px; }.landing-nav a { font-size: .69rem; }.hero-inner { grid-template-columns: 1fr; align-items: center; gap: 30px; }.hero-insight { justify-self: start; }.scroll-cue { display: none; }.coverage-grid { grid-template-columns: 1fr 1fr; }.coverage-card:last-child { grid-column: 1/-1; }.landing-footer { grid-template-columns: 180px 1fr; }.landing-footer small { grid-column: 1/-1; } }
@media (max-width: 1100px) { .clients-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }.client-logo-card:nth-child(4), .client-logo-card:nth-child(5) { transform: translateX(50%); }.client-logo-card:nth-child(4):hover, .client-logo-card:nth-child(5):hover { transform: translateX(50%) translateY(-6px); } }
@media (max-width: 720px) { .landing-nav-shell { width: calc(100% - 28px); min-height: 74px; grid-template-columns: 1fr auto auto; gap: 10px; }.landing-logo img { width: 150px; height: 44px; }.landing-menu-button { width: 42px; height: 42px; padding: 10px; display: grid; align-content: center; gap: 4px; border: 1px solid rgba(255,255,255,.25); border-radius: 11px; background: rgba(255,255,255,.08); }.landing-menu-button span:not(.sr-only) { height: 2px; display: block; border-radius: 4px; background: #fff; }.landing-nav { position: absolute; top: 67px; right: 14px; left: 14px; padding: 15px; display: grid; gap: 2px; border: 1px solid rgba(255,255,255,.15); border-radius: 16px; background: rgba(4,20,48,.96); box-shadow: 0 18px 40px rgba(0,8,22,.25); opacity: 0; pointer-events: none; transform: translateY(-9px); transition: .23s ease; }.landing-nav.is-open { opacity: 1; pointer-events: auto; transform: none; }.landing-nav a { padding: 12px; font-size: .75rem; }.client-area { min-height: 42px; padding: 0 13px; font-size: .73rem; }.client-area span:last-child { display: none; }.agro-hero { min-height: 820px; }.hero-media { inset: 0; background-position: center, center; background-size: contain, cover; }.hero-shade { background: linear-gradient(90deg, rgba(2,13,34,.94), rgba(3,17,40,.73) 75%, rgba(3,17,40,.48)), linear-gradient(0deg, rgba(2,13,30,.72), transparent 48%); }.hero-inner { width: calc(100% - 30px); padding: 118px 0 120px; }.hero-copy h1 { margin-top: 17px; font-size: clamp(3.05rem, 15vw, 4.25rem); }.hero-copy > p { font-size: .98rem; line-height: 1.58; }.hero-actions { align-items: stretch; flex-direction: column; }.hero-primary, .hero-secondary { width: 100%; }.hero-insight { width: 100%; padding: 20px; animation: none; }.segments-rail { height: 55px; }.segments-track { gap: 20px; }.coverage { padding: 75px 16px; }.coverage h2 { font-size: 2.75rem; }.coverage-grid { grid-template-columns: 1fr; margin-top: 35px; }.coverage-card:last-child { grid-column: auto; }.coverage-card { min-height: 215px; }.coverage-card h3 { margin-top: 40px; }.coverage-cta { padding: 24px; align-items: stretch; flex-direction: column; }.coverage-cta a { justify-content: center; }.landing-footer { padding: 35px 20px; grid-template-columns: 1fr; text-align: center; }.landing-footer img { margin: auto; } }
@media (max-width: 720px) {
  .agro-hero { min-height: 820px; aspect-ratio: auto; align-items: center; background: #04132e; }
  .hero-media { inset: 0; background-position: 58% center; background-size: cover; }
  .hero-shade { background: linear-gradient(rgba(3,14,30,.62), rgba(3,14,30,.7)), linear-gradient(90deg, rgba(2,13,34,.36), transparent 75%); }
  .clients-showcase { padding: 68px 16px; }
  .clients-heading { text-align: center; }
  .clients-heading h2 { font-size: 2.65rem; }
  .clients-grid { grid-template-columns: 1fr 1fr; gap: 11px; margin-top: 30px; }
  .client-logo-card { height: 118px; padding: 12px 9px; border-radius: 16px; }
  .client-logo-card:nth-child(4), .client-logo-card:nth-child(5) { transform: none; }
  .client-logo-card:nth-child(5) { grid-column: 1 / -1; width: calc(50% - 6px); justify-self: center; }
  .client-logo-card:nth-child(4):hover, .client-logo-card:nth-child(5):hover { transform: translateY(-4px); }
}
@media (prefers-reduced-motion: reduce) { .hero-media, .hero-glow, .hero-insight, .insight-pulse span, .segments-track, .scroll-cue i::after { animation: none !important; }.reveal-on-load, .reveal-on-scroll { opacity: 1; transform: none; transition: none; } }

/* LOGIN V78 — acesso central e campanhas laterais */
html:has(body.login-modern) { min-height: 100%; background: #04132e; }
.login-modern { min-height: 100svh; margin: 0; display: flex; flex-direction: column; color: #fff; background: linear-gradient(rgba(3,14,30,.72),rgba(3,14,30,.82)),url("hero-agrofoco-multisegmentos-v2.png") center/cover fixed no-repeat; font-family: "Segoe UI",Arial,sans-serif; }
.login-modern::before { display: none; }
.login-modern .login-home-header { width: 100%; min-height: 94px; padding: 0; display: block; background: rgba(4,20,48,.86); border: 0; box-shadow: 0 12px 35px rgba(1,12,30,.16); backdrop-filter: blur(18px); }
.login-modern .landing-nav-shell { min-height: 94px; }
.login-modern .landing-nav { width: auto; margin: 0; display: flex; flex-wrap: nowrap; }
.login-modern .landing-nav a { width: auto; min-height: 0; padding: 10px 0; color: rgba(255,255,255,.78); background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.login-modern .landing-logo img { filter: brightness(0) invert(1); }
.login-modern .client-area { white-space: nowrap; }
.login-modern .login-layout.login-stage { width: min(1440px,calc(100% - 40px)); min-height: calc(100svh - 143px); margin: 0 auto; padding: 34px 0; display: grid; grid-template-columns: minmax(210px,1fr) minmax(360px,480px) minmax(210px,1fr); gap: clamp(18px,2.2vw,34px); align-items: center; align-content: center; }
.login-modern .auth-card { width: 100%; max-width: none; min-height: 530px; margin: 0; padding: clamp(34px,4vw,52px); display: flex; flex-direction: column; justify-content: center; color: #122849; border: 1px solid rgba(255,255,255,.58); border-top: 4px solid #2371ed; border-radius: 26px; background: rgba(255,255,255,.96); box-shadow: 0 28px 70px rgba(0,12,31,.34); backdrop-filter: blur(18px); }
.login-modern .auth-card .section-heading { margin: 0 0 26px; text-align: center; }
.login-modern .auth-card .section-heading h2 { margin: 8px 0 12px; color: #071a3d; font-size: clamp(2rem,3vw,2.65rem); }
.login-modern .auth-card .section-heading p { color: #536680; }
.login-modern .auth-form { width: 100%; max-width: 360px; margin: 0 auto; }
.login-modern .auth-form input { min-height: 54px; text-align: left; }
.login-modern .auth-form button { min-height: 54px; border-radius: 13px; background: linear-gradient(135deg,#0865ee,#14b1c2); box-shadow: 0 13px 28px rgba(8,101,238,.22); }
.login-ad-side { min-width: 0; display: grid; gap: 18px; align-content: center; }
.login-modern .login-ad { position: relative; width: 100%; max-width: 360px; min-height: 154px; margin: 0; padding: 19px; overflow: hidden; display: grid; grid-template-columns: 54px minmax(0,1fr); align-items: center; gap: 14px; color: #122849; border: 1px solid rgba(255,255,255,.5); border-left: 1px solid rgba(255,255,255,.5); border-radius: 20px; background: rgba(255,255,255,.94); box-shadow: 0 18px 46px rgba(0,12,31,.22); text-decoration: none; transition: transform .24s ease,box-shadow .24s ease,border-color .24s ease; }
.login-ad-side-left .login-ad { margin-left: auto; }
.login-ad-side-right .login-ad { margin-right: auto; }
.login-modern .login-ad-card-link:hover,.login-modern .login-ad-card-link:focus-visible { color: #122849; border-color: #73d7e3; box-shadow: 0 24px 54px rgba(0,12,31,.33); transform: translateY(-5px); outline: none; }
.login-modern .login-ad.has-image { min-height: 0; aspect-ratio: 3/2; padding: 0; display: block; background: #fff; }
.login-ad-image-card { width: 100%; height: 100%; min-height: 0; position: absolute; inset: 0; display: block; object-fit: contain; object-position: center; background: #fff; }
.login-modern .login-ad-icon { width: 54px; height: 54px; margin: 0; display: grid; place-items: center; border-radius: 16px; color: #fff; background: linear-gradient(145deg,#075fe4,#0a398e); }
.login-modern .login-ad-copy { min-width: 0; padding: 0; display: block; }
.login-modern .login-ad-copy h3 { margin: 0 0 6px; color: #071a3d; font-size: 1.05rem; line-height: 1.16; }
.login-modern .login-ad-copy p { margin: 0; display: -webkit-box; overflow: hidden; color: #5b6c83; font-size: .88rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.login-ad-cta { margin-top: 12px; display: inline-flex; gap: 8px; color: #0865ee; font-size: .78rem; font-weight: 900; }
.login-footer { min-height: 49px; padding: 0 20px; display: grid; place-items: center; color: rgba(255,255,255,.66); background: rgba(2,13,31,.7); border-top: 1px solid rgba(255,255,255,.12); }
.login-footer p { margin: 0; font-size: .78rem; }
.field-help { margin-top: 5px; display: block; color: #6b7c91; font-size: .72rem; line-height: 1.4; }
@media (max-width: 1050px) { .login-modern .login-layout.login-stage { grid-template-columns: 1fr minmax(340px,470px); align-items: start; }.login-modern .auth-card { grid-column: 2; grid-row: 1/span 2; }.login-ad-side { grid-column: 1; }.login-ad-side-left { grid-row: 1; }.login-ad-side-right { grid-row: 2; }.login-modern .login-ad { max-width: none; }.login-modern .landing-nav { gap: 18px; }.login-modern .landing-nav a { font-size: .69rem; } }
@media (max-width: 760px) { .login-modern { background-attachment: scroll; }.login-modern .login-home-header,.login-modern .landing-nav-shell { min-height: 76px; }.login-modern .landing-nav-shell { width: calc(100% - 26px); grid-template-columns: 1fr auto; }.login-modern .landing-nav { display: none; }.login-modern .landing-logo img { width: 155px; }.login-modern .client-area { min-height: 42px; padding: 0 14px; font-size: .72rem; }.login-modern .login-layout.login-stage { width: calc(100% - 24px); min-height: 0; padding: 20px 0 28px; grid-template-columns: 1fr; gap: 14px; }.login-modern .auth-card { min-height: 0; padding: 30px 24px; grid-column: 1; grid-row: 1; }.login-ad-side { grid-column: 1; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }.login-ad-side-left { grid-row: 2; }.login-ad-side-right { grid-row: 3; }.login-modern .login-ad { min-width: min(82vw,340px); min-height: 142px; scroll-snap-align: start; }.login-modern .login-ad.has-image,.login-ad-image-card { min-height: 176px; }.login-footer { min-height: 46px; } }

/* LOGIN V72 - regras finais para neutralizar o layout legado */
.login-page .login-layout.login-stage {
    width: min(1180px, calc(100% - 32px));
    min-height: 0;
    margin: 0 auto;
    padding: 34px 0 42px;
    display: grid;
    grid-template-columns: minmax(340px, 440px) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    align-content: start;
}

.login-page .auth-card {
    width: 100%;
    max-width: none;
    min-height: 520px;
    margin: 0;
    padding: clamp(28px, 4vw, 46px);
    align-items: stretch;
    justify-content: flex-start;
}

@media (max-width: 980px) {
    .login-page .login-layout.login-stage {
        grid-template-columns: 1fr;
    }

    .login-page .auth-card {
        min-height: 0;
        order: 0;
    }

    .login-page .login-campaigns {
        order: 1;
    }
}

@media (max-width: 640px) {
    .login-page .login-layout.login-stage {
        width: calc(100% - 22px);
        padding-top: 20px;
        gap: 16px;
    }
}

/* LOGIN V79 — prioridade final sobre o tema legado */
body.login-page.login-modern { min-height:100svh; max-width:none; padding:0; color:#fff; background:linear-gradient(rgba(3,14,30,.72),rgba(3,14,30,.82)),url("hero-agrofoco-multisegmentos-v2.png") center/cover fixed no-repeat; }
body.login-page.login-modern > header.login-home-header { width:100%; min-height:94px; padding:0; display:block; grid-template:none; color:#fff; background:rgba(4,20,48,.86); border:0; box-shadow:0 12px 35px rgba(1,12,30,.16); }
body.login-page.login-modern .login-home-header .landing-nav-shell { width:min(1220px,calc(100% - 44px)); min-height:94px; margin:auto; display:grid; grid-template-columns:220px 1fr auto; align-items:center; gap:28px; }
body.login-page.login-modern .login-home-header .landing-logo { grid-area:auto; }
body.login-page.login-modern .login-home-header nav.landing-nav { width:auto; margin:0; padding:0; grid-area:auto; display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; gap:clamp(18px,2.5vw,38px); }
body.login-page.login-modern .login-home-header nav.landing-nav a { width:auto; height:auto; min-height:0; margin:0; padding:10px 0; display:inline-block; color:rgba(255,255,255,.78); background:transparent; border:0; border-radius:0; box-shadow:none; font-size:.78rem; line-height:normal; }
body.login-page.login-modern .login-home-header .client-area { grid-area:auto; }
body.login-page.login-modern .login-layout.login-stage { width:min(1440px,calc(100% - 40px)); min-height:calc(100svh - 143px); margin:0 auto; padding:34px 0; display:grid; grid-template-columns:minmax(210px,1fr) minmax(360px,480px) minmax(210px,1fr); gap:clamp(18px,2.2vw,34px); align-items:center; align-content:center; }
body.login-page.login-modern .auth-card { width:100%; max-width:none; min-height:530px; margin:0; padding:clamp(34px,4vw,52px); justify-content:center; }
body.login-page.login-modern .auth-card .auth-form { width:100%; max-width:360px; margin-inline:auto; overflow:hidden; }
body.login-page.login-modern .auth-card .auth-form input,body.login-page.login-modern .auth-card .auth-form button { width:100%; max-width:100%; margin-inline:0; box-sizing:border-box; }
@media(max-width:1050px){body.login-page.login-modern .login-layout.login-stage{grid-template-columns:1fr minmax(340px,470px);align-items:start}body.login-page.login-modern .auth-card{min-height:530px;grid-column:2;grid-row:1/span 2}}
@media(max-width:760px){body.login-page.login-modern{background-attachment:scroll}body.login-page.login-modern > header.login-home-header,body.login-page.login-modern .login-home-header .landing-nav-shell{min-height:76px}body.login-page.login-modern .login-home-header .landing-nav-shell{width:calc(100% - 26px);grid-template-columns:minmax(0,1fr) auto;gap:10px}body.login-page.login-modern .login-home-header nav.landing-nav{display:none}body.login-page.login-modern .login-home-header .landing-logo img{width:145px}body.login-page.login-modern .login-home-header .client-area{max-width:145px;min-height:40px;padding:0 12px;font-size:.7rem}body.login-page.login-modern .login-home-header .client-area span:last-child{display:none}body.login-page.login-modern .login-layout.login-stage{width:calc(100% - 24px);min-height:0;padding:20px 0 28px;grid-template-columns:minmax(0,1fr);gap:14px}body.login-page.login-modern .auth-card{min-width:0;min-height:0;padding:30px 20px;grid-column:1;grid-row:1}body.login-page.login-modern .auth-card .section-heading h2{font-size:2rem}body.login-page.login-modern .auth-card .section-heading p{font-size:.93rem}body.login-page.login-modern .auth-card .auth-form{min-width:0}}

/* LOGIN V81 — quatro posições com dimensões idênticas */
body.login-page.login-modern .login-ad-side { width:100%; grid-template-rows: repeat(2, minmax(0, 1fr)); align-content:center; }
body.login-page.login-modern .login-ad { width:100%; max-width:360px; min-height:0; aspect-ratio: 3 / 2; box-sizing:border-box; align-self:center; }
body.login-page.login-modern .login-ad.has-image { width:100%; max-width:360px; min-height:0; aspect-ratio: 3 / 2; }
@media(max-width:1050px) and (min-width:761px){body.login-page.login-modern .login-ad-side{grid-template-rows:repeat(2,minmax(0,1fr))}body.login-page.login-modern .login-ad{max-width:360px}}
@media(max-width:760px){body.login-page.login-modern .login-ad-side{display:flex;grid-template-rows:none}body.login-page.login-modern .login-ad,body.login-page.login-modern .login-ad.has-image{width:min(82vw,340px);min-width:min(82vw,340px);max-width:340px;min-height:0;aspect-ratio:3 / 2}}

/* LOGIN V82 — acesso central sem propagandas */
body.login-page.login-modern .login-layout.login-stage.login-only-stage {
    width: min(520px, calc(100% - 40px));
    grid-template-columns: minmax(0, 480px);
    justify-content: center;
}
body.login-page.login-modern .login-only-stage .auth-card {
    grid-column: 1;
    grid-row: 1;
}
@media(max-width:760px) {
    body.login-page.login-modern .login-layout.login-stage.login-only-stage {
        width: calc(100% - 24px);
        grid-template-columns: minmax(0, 1fr);
    }
}

/* USUÁRIOS V83 — cliente e módulos no mesmo cadastro */
.users-page {
    --users-space-1: 4px;
    --users-space-2: 8px;
    --users-space-3: 12px;
    --users-space-4: 16px;
    --users-space-5: 30px;
    --users-line: #d5e4f8;
    --users-muted: #536983;
    --users-success: #087a55;
    --users-warning: #93590b;
}

.users-page .users-admin-section {
    width: min(1360px, calc(100% - 56px));
    padding: 34px 42px 42px;
}

.association-catalog-page .users-admin-section,
.association-detail-page .association-detail-shell {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.association-catalog-page .users-admin-section {
    padding: 20px 0 48px;
}

.association-catalog-page .users-admin-section .section-heading {
    margin-bottom: 24px;
}

.association-catalog-page .admin-tabs {
    margin-bottom: 30px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.association-catalog-page .admin-tabs .admin-tab {
    width: 100%;
}

.association-catalog-page .tab-panel-heading {
    margin-bottom: 22px;
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
}

.agrofoco-app.theme-admin.users-page a,
.agrofoco-app.theme-admin.users-page button,
.agrofoco-app.theme-admin.users-page input:not([type="hidden"]):not([type="checkbox"]),
.agrofoco-app.theme-admin.users-page select,
.agrofoco-app.theme-admin.users-page textarea,
.agrofoco-app.theme-admin.users-page .access-toggle {
    min-height: 44px;
}

.users-page .users-admin-section .section-heading {
    margin-bottom: var(--users-space-4);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--users-space-5);
}

.users-page .users-admin-section .section-heading h2,
.users-page .users-admin-section .section-heading p {
    margin: 0;
}

.users-page .users-admin-section .section-heading p {
    max-width: 68ch;
    margin-top: var(--users-space-2);
    color: var(--users-muted);
}

.primary-admin-action,
.secondary-admin-action {
    min-height: 44px;
    padding: 0 var(--users-space-4);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.primary-admin-action {
    color: #fff;
    background: linear-gradient(135deg, #061d43, #0a2c61 58%, #1267e8);
    box-shadow: 0 12px 28px rgba(18, 103, 232, .22);
}

.primary-admin-action:hover,
.primary-admin-action:focus-visible {
    color: #fff;
    box-shadow: 0 17px 35px rgba(18, 103, 232, .3);
    transform: translateY(-2px);
}

.secondary-admin-action {
    color: var(--azul-escuro);
    border: 1px solid var(--users-line);
    background: #fff;
}

.users-page .admin-tab,
.users-page .user-status-filters a,
.users-page .users-search button,
.users-page .clear-search,
.users-page .pagination a {
    min-height: 44px;
}

.users-page .user-form select {
    width: 100%;
    min-height: 44px;
    padding: 8px 10px;
    font: inherit;
}

.form-field-client {
    grid-column: span 4;
}

.client-context {
    min-width: 0;
    padding: var(--users-space-4);
    grid-column: span 8;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--users-space-4);
    border: 1px solid var(--users-line);
    border-radius: 12px;
    background: #eef5ff;
}

.client-context div {
    min-width: 0;
}

.client-context span,
.client-context strong,
.client-context output {
    display: block;
}

.client-context span {
    margin-bottom: var(--users-space-1);
    color: var(--users-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.client-context strong,
.client-context output {
    color: var(--azul-escuro);
    font-size: 14px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.access-fieldset,
.status-fieldset {
    min-width: 0;
    margin: 0;
    padding: var(--users-space-3);
    border: 1px solid var(--users-line);
    border-radius: 12px;
    background: #fff;
}

.access-fieldset {
    grid-column: span 8;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--users-space-2);
}

.status-fieldset {
    grid-column: span 4;
}

.access-fieldset legend,
.status-fieldset legend {
    padding: 0 var(--users-space-1);
    color: var(--azul-escuro);
    font-size: 14px;
    font-weight: 800;
}

.access-toggle {
    min-height: 54px;
    padding: var(--users-space-2) var(--users-space-3);
    display: flex;
    align-items: center;
    gap: var(--users-space-3);
    border: 1px solid #dce7f5;
    border-radius: 10px;
    background: #f8fbff;
    cursor: pointer;
}

.access-toggle input {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    margin: 0;
    accent-color: #1267e8;
}

.access-toggle span,
.access-toggle strong,
.access-toggle small {
    display: block;
}

.access-toggle strong {
    color: var(--azul-escuro);
    font-size: 14px;
}

.users-page .access-toggle small {
    margin-top: var(--users-space-1);
    color: var(--users-muted);
    line-height: 1.35;
}

.users-page .user-form-submit {
    min-height: 48px;
    grid-column: 9 / -1;
}

.users-page .users-table-wrap {
    overflow: visible;
}

.agrofoco-app.users-page .users-table {
    min-width: 0;
    table-layout: fixed;
    overflow: hidden;
}

.users-page .users-table th,
.users-page .users-table td {
    padding: 4px 8px;
    line-height: 1.15;
}

.users-page .users-table th:nth-child(1),
.users-page .users-table td:nth-child(1) { width: 22%; }
.users-page .users-table th:nth-child(2),
.users-page .users-table td:nth-child(2) { width: 20%; }
.users-page .users-table th:nth-child(3),
.users-page .users-table td:nth-child(3) { width: 22%; }
.users-page .users-table th:nth-child(4),
.users-page .users-table td:nth-child(4) { width: 8%; }
.users-page .users-table th:nth-child(5),
.users-page .users-table td:nth-child(5) { width: 15%; }
.users-page .users-table th:nth-child(6),
.users-page .users-table td:nth-child(6) { width: 13%; }

.users-page .users-table td strong,
.users-page .users-table td small,
.users-page .user-login,
.users-page .user-association {
    display: inline;
}

.users-page .users-table td:nth-child(1) small { display: none; }
.users-page .user-login,
.users-page .user-association { display: none; }
.users-page .users-table td strong + .user-login::before,
.users-page .users-table td strong + .user-association::before { content: " · "; color: var(--users-muted); }

.users-page .users-table td small,
.users-page .user-login {
    color: var(--users-muted);
    line-height: 1.25;
}

.users-page .module-state {
    width: fit-content;
    margin: 0 4px 0 0;
    padding: 2px 6px;
    display: inline-block;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
}

.users-page .module-state { white-space: nowrap; }
.users-page .user-actions .action-button { width: 30px; min-width: 30px; padding: 0; font-size: 18px; line-height: 1; }
.users-page .user-actions .edit-button .edit-icon { display: none; }
.users-page .users-table th:last-child,
.users-page .users-table td:last-child {
    position: static;
    box-shadow: none;
}

.users-page .module-state:last-child {
    margin-bottom: 0;
}

.users-page .module-state-on {
    color: var(--users-success);
    background: #e5f8ef;
}

.users-page .module-state-off {
    color: var(--users-warning);
    background: #fff4df;
}

.users-page .role-badge,
.users-page .user-state {
    width: fit-content;
    margin: 0 4px 0 0;
    display: inline-block;
    padding: 3px 6px;
}

.users-page .user-actions {
    display: flex;
    align-items: center;
    gap: 4px;
}

.users-page .user-actions .action-button,
.users-page .user-actions .table-action-form,
.users-page .user-actions .table-action-form button {
    width: auto;
    min-width: 0;
    min-height: 30px;
    padding: 0 8px;
}

.users-page .deactivate-button {
    color: #93590b !important;
    border: 1px solid #e5c88f !important;
    background: #fffaf0 !important;
    box-shadow: none !important;
}

.users-page .reactivate-button {
    color: var(--users-success) !important;
    border: 1px solid #9ed9c1 !important;
    background: #f0fbf6 !important;
    box-shadow: none !important;
}

.edit-user-page .edit-user-section {
    max-width: 1080px;
}

.edit-user-page .edit-form-actions {
    grid-column: 1 / -1;
}

.edit-user-page .edit-form-actions > * {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.users-page .bi-source-fieldset,
.users-page .individual-bi-field {
    grid-column: 1 / -1;
}

.users-page .individual-bi-field[hidden] {
    display: none;
}

.users-page .association-create-disclosure {
    margin-bottom: 32px;
}

.users-page .association-create-disclosure summary {
    width: fit-content;
    min-height: 44px;
    padding: 0 var(--users-space-4);
    display: inline-flex;
    align-items: center;
    color: #fff;
    border-radius: 10px;
    background: var(--azul-escuro);
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.users-page .association-create-disclosure summary::-webkit-details-marker {
    display: none;
}

.users-page .association-create-disclosure[open] summary {
    margin-bottom: var(--users-space-3);
}

.users-page .association-create-form {
    padding: 24px;
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(280px, 2fr);
    align-items: end;
    gap: 20px 24px;
    border: 1px solid var(--users-line);
    border-radius: 14px;
    background: #f7faff;
}

.users-page .association-create-form .form-field,
.association-detail-page .association-settings .form-field,
.association-detail-page .association-link-user .form-field {
    min-width: 0;
    margin: 0;
}

.users-page .association-create-form input,
.association-detail-page .association-settings input,
.association-detail-page .association-link-user select {
    width: 100%;
    margin: 6px 0 0;
    box-sizing: border-box;
}

.users-page .association-create-form button {
    min-height: 44px;
    justify-self: start;
}

.users-page .compact-toggle {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: var(--users-space-2);
    color: var(--azul-escuro);
    font-weight: 700;
}

.users-page .association-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.users-page .association-card {
    min-height: 278px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--users-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(5, 30, 74, .08);
}

.users-page .association-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--users-space-3);
}

.users-page .association-card-heading h4 {
    margin: 0;
    color: var(--azul-escuro);
    font-size: 1.12rem;
}

.users-page .association-card-state {
    padding: 4px 9px;
    color: var(--users-success);
    border-radius: 999px;
    background: #e5f8ef;
    font-size: 11px;
    font-weight: 800;
}

.users-page .association-card-metrics {
    margin: 24px 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--users-space-3);
}

.users-page .association-card-metrics div {
    padding: var(--users-space-3);
    background: #f3f7fc;
    border-radius: 10px;
}

.users-page .association-card-metrics dt {
    color: var(--users-muted);
    font-size: 12px;
    font-weight: 700;
}

.users-page .association-card-metrics dd {
    margin: 3px 0 0;
    color: var(--azul-escuro);
    font-size: 1.35rem;
    font-weight: 800;
}

.users-page .association-card-services {
    display: flex;
    flex-wrap: wrap;
    gap: var(--users-space-2);
}

.users-page .association-card-services .module-state {
    margin: 0;
}

.users-page .association-card-action {
    min-height: 44px;
    margin-top: 22px;
    padding: 0 var(--users-space-3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--azul-escuro);
    border: 1px solid #b9cce3;
    border-radius: 10px;
    background: #fff;
    font-weight: 800;
    text-decoration: none;
}

.users-page .association-card-action:hover,
.users-page .association-card-action:focus-visible {
    border-color: var(--azul-principal);
    background: #edf5ff;
}

.agrofoco-app.association-detail-page .association-detail-shell {
    width: min(1380px, calc(100% - 56px));
    padding: 20px 0 48px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.association-detail-page .association-back {
    display: inline-flex;
    margin-bottom: var(--users-space-4);
    color: var(--azul-principal);
    font-weight: 800;
    text-decoration: none;
}

.association-detail-page .association-back::before {
    content: "‹";
    margin-right: 7px;
    font-size: 1.3em;
    line-height: .9;
}

.association-detail-page .association-detail-heading,
.association-detail-page .association-users-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--users-space-4);
}

.association-detail-page .association-detail-heading {
    padding-bottom: 28px;
    border-bottom: 1px solid var(--users-line);
}

.association-detail-page .association-detail-heading > div {
    min-width: 0;
}

.association-detail-page .association-detail-heading h2,
.association-detail-page .association-detail-heading p {
    overflow-wrap: anywhere;
}

.association-detail-page .association-detail-heading h2,
.association-detail-page .association-users-heading h3,
.association-detail-page .detail-section-heading h3 {
    margin: 0;
}

.association-detail-page .association-detail-heading p,
.association-detail-page .detail-section-heading p,
.association-detail-page .association-users-heading p {
    margin: 6px 0 0;
    color: var(--users-muted);
}

.association-detail-page .association-detail-metrics {
    margin: 0;
    display: flex;
    gap: var(--users-space-4);
}

.association-detail-page .association-detail-metrics div {
    min-width: 82px;
}

.association-detail-page .association-detail-metrics dt {
    color: var(--users-muted);
    font-size: 12px;
    font-weight: 700;
}

.association-detail-page .association-detail-metrics dd {
    margin: 2px 0 0;
    color: var(--azul-escuro);
    font-size: 1.45rem;
    font-weight: 800;
}

.association-detail-page .association-detail-layout {
    margin-top: 32px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 32px;
}

.association-detail-page .association-settings,
.association-detail-page .association-users {
    width: 100%;
    margin: 0;
    padding: 28px;
    box-sizing: border-box;
    border: 1px solid var(--users-line);
    border-radius: 14px;
    background: #fff;
}

.association-detail-page .association-settings form {
    width: 100%;
    max-width: none;
    margin-top: 24px;
    display: grid;
    grid-template-columns: minmax(240px, .72fr) minmax(420px, 1.28fr);
    gap: 18px;
}

.association-detail-page .association-service-controls {
    grid-column: 1 / -1;
    margin-top: 4px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    border: 0;
}

.association-detail-page .association-service-controls legend {
    margin-bottom: var(--users-space-2);
    color: var(--azul-escuro);
    font-weight: 800;
}

.association-detail-page .association-save {
    min-height: 44px;
    grid-column: 1 / -1;
    min-width: 220px;
    justify-self: start;
}

.association-detail-page .association-link-user {
    margin: 26px 0;
    padding: 22px 0;
    border-top: 1px solid var(--users-line);
    border-bottom: 1px solid var(--users-line);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.association-detail-page .association-link-user h4 {
    margin: 0 0 var(--users-space-3);
}

.association-detail-page .association-link-user form {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto;
    align-items: end;
    gap: 18px;
}

.association-detail-page .association-link-user button {
    min-height: 44px;
}

.association-detail-page .family-list {
    margin-top: 20px;
    display: grid;
    gap: 12px;
}

.association-detail-page .family-row {
    padding: 16px;
    display: grid;
    grid-template-columns: minmax(96px, .45fr) minmax(160px, .9fr) minmax(260px, 1.65fr) auto;
    align-items: end;
    gap: 14px;
    border: 1px solid var(--users-line);
    border-radius: 12px;
    background: #f8fbff;
}

.association-detail-page .family-row strong,
.association-detail-page .family-row small {
    display: block;
}

.association-detail-page .family-row small {
    margin-top: 3px;
    color: var(--users-muted);
}

.association-detail-page .family-row input {
    width: 100%;
    margin: 6px 0 0;
    box-sizing: border-box;
}

.association-detail-page .association-inline-note,
.association-detail-page .association-empty-members {
    color: var(--users-muted);
}

.association-detail-page .association-users-table-wrap {
    overflow-x: auto;
}

.association-detail-page .association-users-table {
    width: 100%;
    border-collapse: collapse;
}

.association-detail-page .association-users-table th,
.association-detail-page .association-users-table td {
    padding: 15px 12px;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid var(--users-line);
}

@media (max-width: 1080px) {
    .users-page .association-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .association-detail-page .association-detail-layout { gap: 24px; }
}

.association-detail-page .association-users-table th {
    color: var(--users-muted);
    font-size: 11px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.association-detail-page .association-users-table td > strong,
.association-detail-page .association-users-table td > span {
    display: block;
}

.association-detail-page .association-users-table td > span {
    margin-top: 3px;
    color: var(--users-muted);
}

.association-detail-page .association-users-table .module-state {
    display: inline-block;
    margin: 0 4px 4px 0;
}

.association-detail-page .association-user-actions {
    display: flex;
    align-items: center;
    gap: var(--users-space-2);
}

.association-detail-page .association-user-actions a,
.association-detail-page .association-user-actions button {
    min-height: 36px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.association-detail-page .association-user-actions a {
    color: var(--azul-principal);
    background: #edf5ff;
    text-decoration: none;
}

.association-detail-page .association-user-actions button {
    color: #9b2c2c;
    border: 0;
    background: #fff1f1;
    box-shadow: none;
}

@media (max-width: 759px) {
    .theme-admin.users-page main {
        width: calc(100% - 32px);
        padding-top: var(--users-space-5);
        padding-bottom: var(--users-space-5);
    }

    .users-page .users-admin-section,
    .users-page .edit-user-section {
        width: 100%;
        margin: 0;
        padding: var(--users-space-4);
    }

    .users-page .users-admin-section,
    .association-detail-page .association-detail-shell {
        width: 100%;
    }

    .association-catalog-page .users-admin-section {
        padding: 8px 0 32px;
    }

    .users-page .users-admin-section .section-heading {
        align-items: stretch;
        flex-direction: column;
        gap: var(--users-space-4);
    }

    .users-page .primary-admin-action,
    .users-page .secondary-admin-action {
        width: 100%;
    }

    .users-page .admin-tabs {
        flex-direction: row;
    }

    .users-page .admin-tabs .admin-tab {
        width: auto;
        flex: 1;
    }

    .users-page .user-form,
    .users-page .client-context,
    .users-page .access-fieldset {
        grid-template-columns: minmax(0, 1fr);
    }

    .users-page .form-field,
    .users-page .form-field-client,
    .users-page .client-context,
    .users-page .access-fieldset,
    .users-page .status-fieldset,
    .users-page .user-form-submit,
    .edit-user-page .edit-form-actions {
        grid-column: 1 / -1;
    }

    .users-page .users-panel-header,
    .users-page .users-search {
        align-items: stretch;
        flex-direction: column;
    }

    .users-page .users-search {
        width: 100%;
    }

    .agrofoco-app.users-page .users-table-wrap {
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .agrofoco-app.users-page .users-table,
    .agrofoco-app.users-page .users-table tbody,
    .agrofoco-app.users-page .users-table tr,
    .agrofoco-app.users-page .users-table td {
        width: 100%;
        display: block;
        overflow: visible;
    }

    .agrofoco-app.users-page .users-table {
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .agrofoco-app.users-page .users-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
        border: 0;
    }

    .agrofoco-app.users-page .users-table tbody tr {
        margin-bottom: var(--users-space-3);
        overflow: hidden;
        border: 1px solid var(--users-line);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 10px 28px rgba(5, 30, 74, .08);
    }

    .agrofoco-app.users-page .users-table td,
    .agrofoco-app.users-page .users-table td:nth-child(n) {
        min-height: 0;
        padding: var(--users-space-3);
        display: grid;
        grid-template-columns: minmax(104px, 34%) minmax(0, 1fr);
        align-items: start;
        gap: var(--users-space-3);
        border-bottom: 1px solid #e4edf8;
        white-space: normal;
    }

    .agrofoco-app.users-page .users-table td::before {
        content: attr(data-label);
        width: auto;
        position: static;
        color: var(--azul-escuro);
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .03em;
        text-transform: uppercase;
    }

    .agrofoco-app.users-page .users-table td:last-child {
        position: static;
        border-bottom: 0;
        background: transparent;
        box-shadow: none;
    }

    .users-page .user-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .users-page .protected-user {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .users-page .association-create-form,
    .association-detail-page .association-link-user form,
    .association-detail-page .family-row,
    .association-detail-page .association-detail-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .users-page .association-card-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .users-page .association-card {
        min-height: 0;
        padding: 22px;
    }

    .users-page .association-create-disclosure summary,
    .users-page .association-create-form button {
        width: 100%;
        justify-content: center;
    }

    .agrofoco-app.association-detail-page .association-detail-shell {
        width: 100%;
        padding: 8px 0 32px;
    }

    .association-detail-page .association-detail-heading,
    .association-detail-page .association-users-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .association-detail-page .association-settings,
    .association-detail-page .association-users {
        padding: 20px;
    }

    .association-detail-page .association-settings form,
    .association-detail-page .association-service-controls {
        grid-template-columns: minmax(0, 1fr);
    }

    .association-detail-page .association-save {
        width: 100%;
        min-width: 0;
    }

    .association-detail-page .association-detail-metrics {
        justify-content: flex-start;
    }

    .association-detail-page .association-users-table,
    .association-detail-page .association-users-table tbody,
    .association-detail-page .association-users-table tr,
    .association-detail-page .association-users-table td {
        display: block;
        width: 100%;
    }

    .association-detail-page .association-users-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    .association-detail-page .association-users-table tr {
        padding: var(--users-space-3) 0;
        border-bottom: 1px solid var(--users-line);
    }

    .association-detail-page .association-users-table td {
        padding: 7px 0;
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: var(--users-space-2);
        border: 0;
    }

    .association-detail-page .association-users-table td::before {
        content: attr(data-label);
        color: var(--users-muted);
        font-size: 11px;
        font-weight: 800;
        text-transform: uppercase;
    }

    .association-detail-page .association-user-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 460px) {
    .agrofoco-app.users-page .users-table td,
    .agrofoco-app.users-page .users-table td:nth-child(n) {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--users-space-2);
    }

    .users-page .user-actions {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Compact desktop user list: must override earlier responsive action rules. */
@media (min-width: 721px) {
  .users-page .user-actions { display: flex; align-items: center; gap: 4px; }
  .users-page .user-actions .action-button,
  .users-page .user-actions .table-action-form,
  .users-page .user-actions .table-action-form button {
    width: 30px;
    min-width: 30px;
    min-height: 30px;
    height: 30px;
    padding: 0;
  }
  .users-page .user-actions .edit-button .edit-icon { display: none; }
  .users-page .protected-user { display: inline-block; min-height: 0; }
}

/* Preserve authored colors when the browser offers automatic darkening. */
:root { color-scheme: only light; }
@media (max-width: 720px) {
  .landing-modern .hero-shade {
    background: linear-gradient(rgba(3,14,30,.42), rgba(3,14,30,.52)), linear-gradient(90deg, rgba(2,13,34,.18), transparent 75%);
  }
  .landing-modern .hero-copy h1 strong {
    color: #b5f3ff;
    -webkit-text-fill-color: currentColor;
    background: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    text-shadow: 0 2px 6px rgba(2,13,34,.75);
  }
  .landing-modern .hero-copy > p { color: #fff; text-shadow: 0 1px 4px rgba(2,13,34,.8); }
}
