:root {
    --color-cream: #f4ede3;
    --color-sand: #dcc7ac;
    --color-earth: #8a6a4a;
    --color-brown: #4b3628;
    --color-deep: #24180f;
    --color-white: #fffdf9;
    --shadow-soft: 0 24px 60px rgba(36, 24, 15, 0.16);
    --font-sf: "SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: var(--font-sf);
    color: var(--color-deep);
    background: linear-gradient(180deg, #efe4d3 0%, #f8f2e9 45%, #fbf7f1 100%);
}

a {
    text-decoration: none;
}

.site-header {
    transition: background-color 0.35s ease, box-shadow 0.35s ease, backdrop-filter 0.35s ease;
}

.site-header.is-scrolled {
    background: rgba(255, 253, 249, 0.9);
    backdrop-filter: blur(10px);
    box-shadow: 0 10px 30px rgba(36, 24, 15, 0.08);
}

.navbar {
    padding: 1.25rem 0;
}

.navbar-brand {
    display: flex;
    flex-direction: column;
    color: var(--color-white);
}

.site-header.is-scrolled .navbar-brand,
.site-header.is-scrolled .nav-link {
    color: var(--color-deep);
}

.brand-kicker,
.section-kicker {
    font-size: 0.76rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
}

.brand-name {
    font-family: var(--font-sf);
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.nav-link {
    color: var(--color-white);
    font-size: 0.95rem;
    font-weight: 500;
    padding: 0.5rem 0.75rem !important;
}

.nav-link:hover,
.nav-link:focus {
    color: var(--color-sand);
}

.navbar-toggler-icon {
    filter: invert(1);
}

.site-header.is-scrolled .navbar-toggler-icon {
    filter: none;
}

.nav-restricted {
    border: 1px solid rgba(255, 253, 249, 0.4);
    border-radius: 999px;
    padding-inline: 1rem !important;
}

.site-header.is-scrolled .nav-restricted {
    border-color: rgba(36, 24, 15, 0.15);
}

.hero-section {
    position: relative;
    min-height: 100vh;
    background:
        linear-gradient(115deg, rgba(24, 14, 8, 0.78), rgba(24, 14, 8, 0.22)),
        radial-gradient(circle at top right, rgba(220, 199, 172, 0.45), transparent 25%),
        linear-gradient(180deg, rgba(75, 54, 40, 0.14), rgba(75, 54, 40, 0.14)),
        url("https://images.unsplash.com/photo-1560493676-04071c5f467b?auto=format&fit=crop&w=1600&q=80") center/cover no-repeat;
    overflow: hidden;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.28) 100%);
}

.hero-content,
.hero-card {
    position: relative;
    z-index: 1;
}

.hero-content {
    color: var(--color-white);
    padding: 9rem 0 4rem;
    max-width: 43rem;
}

.hero-content h1,
.intro-section h2,
.section-heading h2,
.experience-section h2,
.restricted-box h2,
.hero-card h2 {
    font-family: var(--font-sf);
    line-height: 0.95;
}

.hero-content h1 {
    font-size: clamp(3.5rem, 7vw, 6.6rem);
    margin: 1rem 0 1.4rem;
}

.hero-content p,
.lead-text,
.collection-card p,
.experience-section p,
.restricted-box p,
.footer-text,
.hero-card p {
    font-size: 1.05rem;
    line-height: 1.8;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 2rem;
}

.btn-brand {
    background: var(--color-white);
    color: var(--color-deep);
    border-radius: 999px;
    padding: 0.9rem 1.5rem;
    font-weight: 700;
    border: 0;
}

.btn-brand:hover,
.btn-brand:focus {
    background: var(--color-sand);
    color: var(--color-deep);
}

.btn-outline-light {
    border-radius: 999px;
    padding: 0.9rem 1.5rem;
}

.hero-card {
    margin: 8rem 0 4rem auto;
    max-width: 26rem;
    padding: 2rem;
    color: var(--color-white);
    background: rgba(255, 253, 249, 0.08);
    border: 1px solid rgba(255, 253, 249, 0.2);
    backdrop-filter: blur(8px);
    box-shadow: var(--shadow-soft);
}

.hero-card-label {
    font-size: 0.8rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    margin-bottom: 0.85rem;
}

.hero-card h2 {
    font-size: 2.5rem;
    line-height: 1.05;
    margin-bottom: 1.5rem;
}

.hero-card-link {
    color: var(--color-white);
    border-bottom: 1px solid rgba(255, 253, 249, 0.45);
    padding-bottom: 0.2rem;
}

.intro-section,
.collection-section,
.experience-section,
.restricted-section {
    padding: 6.5rem 0;
}

.image-block,
.card-image {
    border-radius: 1.5rem;
    background-size: cover;
    background-position: center;
    box-shadow: var(--shadow-soft);
}

.image-block-tall {
    min-height: 38rem;
    background-image:
        linear-gradient(180deg, rgba(61, 39, 20, 0.12), rgba(61, 39, 20, 0.18)),
        url("https://images.unsplash.com/photo-1506744038136-46273834b3fb?auto=format&fit=crop&w=1000&q=80");
}

.intro-section h2,
.section-heading h2,
.experience-section h2,
.restricted-box h2 {
    font-size: clamp(2.7rem, 5vw, 4.5rem);
    margin: 0.8rem 0 1.5rem;
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2.2rem;
}

.feature-grid article {
    padding: 1.5rem;
    border-radius: 1.25rem;
    background: rgba(255, 253, 249, 0.65);
    box-shadow: 0 12px 30px rgba(36, 24, 15, 0.07);
}

.feature-grid h3,
.collection-card h3 {
    font-family: var(--font-sf);
    font-size: 2rem;
    margin-bottom: 0.75rem;
}

.section-heading {
    max-width: 52rem;
    margin: 0 auto 3rem;
}

.collection-card {
    height: 100%;
    background: rgba(255, 253, 249, 0.72);
    border: 1px solid rgba(75, 54, 40, 0.08);
    border-radius: 1.5rem;
    overflow: hidden;
    box-shadow: 0 16px 35px rgba(36, 24, 15, 0.09);
}

.card-image {
    min-height: 18rem;
}

.image-wheat {
    background-image:
        linear-gradient(180deg, rgba(61, 39, 20, 0.05), rgba(61, 39, 20, 0.18)),
        url("https://images.unsplash.com/photo-1473448912268-2022ce9509d8?auto=format&fit=crop&w=1200&q=80");
}

.image-linen {
    background-image:
        linear-gradient(180deg, rgba(61, 39, 20, 0.05), rgba(61, 39, 20, 0.18)),
        url("https://images.unsplash.com/photo-1513694203232-719a280e022f?auto=format&fit=crop&w=1200&q=80");
}

.image-saddle {
    background-image:
        linear-gradient(180deg, rgba(61, 39, 20, 0.05), rgba(61, 39, 20, 0.18)),
        url("https://images.unsplash.com/photo-1516466723877-e4ec1d736c8a?auto=format&fit=crop&w=1200&q=80");
}

.collection-card .card-body {
    padding: 1.8rem;
}

.quote-panel {
    padding: 3rem;
    border-radius: 1.75rem;
    background: linear-gradient(145deg, rgba(75, 54, 40, 0.96), rgba(36, 24, 15, 0.95));
    color: var(--color-white);
    box-shadow: var(--shadow-soft);
}

.quote-panel p {
    margin: 0;
    font-family: var(--font-sf);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.15;
}

.restricted-box {
    padding: 4rem;
    border-radius: 2rem;
    background:
        linear-gradient(130deg, rgba(36, 24, 15, 0.95), rgba(75, 54, 40, 0.88)),
        url("https://images.unsplash.com/photo-1625246333195-78d9c38ad449?auto=format&fit=crop&w=1400&q=80") center/cover no-repeat;
    color: var(--color-white);
    box-shadow: var(--shadow-soft);
}

.site-footer {
    padding: 2rem 0 3rem;
}

.footer-brand {
    font-family: var(--font-sf);
    font-size: 2rem;
    margin-bottom: 0.25rem;
}

.footer-link {
    color: var(--color-deep);
    font-weight: 600;
}

.login-page {
    min-height: 100vh;
    background:
        linear-gradient(115deg, rgba(24, 14, 8, 0.8), rgba(24, 14, 8, 0.32)),
        radial-gradient(circle at top left, rgba(220, 199, 172, 0.2), transparent 28%),
        url("https://images.unsplash.com/photo-1592982537447-7440770cbfc9?auto=format&fit=crop&w=1600&q=80") center/cover no-repeat fixed;
}

.login-shell {
    min-height: 100vh;
}

.login-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 470px);
    gap: 2rem;
    align-items: stretch;
}

.signup-layout {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 540px);
}

/* Cadastro: coluna única centralizada (sem o showcase lateral). */
.signup-single {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.signup-single .login-back {
    margin-bottom: 0;
    align-self: flex-start;
}

/* Stepper do cadastro (1. dados · 2. plano). */
.signup-steps {
    display: flex;
    gap: 0.75rem;
    list-style: none;
    padding: 0;
    margin: 0 0 1.75rem;
}

.signup-step {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
    font-weight: 600;
    font-size: 0.95rem;
    color: rgba(36, 24, 15, 0.5);
    padding-bottom: 0.6rem;
    border-bottom: 2px solid rgba(75, 54, 40, 0.14);
}

.signup-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 999px;
    background: rgba(75, 54, 40, 0.12);
    color: var(--color-brown);
    font-size: 0.85rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.signup-step.is-active {
    color: var(--color-brown);
    border-bottom-color: var(--color-earth);
}

.signup-step.is-active .signup-step-num,
.signup-step.is-done .signup-step-num {
    background: var(--color-earth);
    color: var(--color-white);
}

.signup-step.is-done {
    color: var(--color-earth);
    border-bottom-color: var(--color-earth);
}

/* Cards de plano. */
.plan-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.plan-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.5rem;
    border: 1.5px solid rgba(75, 54, 40, 0.16);
    border-radius: 1.25rem;
    background: var(--color-white);
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.plan-card:hover {
    border-color: var(--color-earth);
}

.plan-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.plan-card.is-selected {
    border-color: var(--color-earth);
    box-shadow: 0 0 0 3px rgba(138, 106, 74, 0.18);
}

.plan-card.is-selected::after {
    content: "✓";
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--color-earth);
    color: var(--color-white);
    font-size: 0.85rem;
    font-weight: 700;
}

.plan-badge {
    align-self: flex-start;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-earth);
    background: rgba(138, 106, 74, 0.12);
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    margin-bottom: 0.25rem;
}

.plan-name {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--color-brown);
}

.plan-price {
    font-size: 1.9rem;
    font-weight: 800;
    color: var(--color-deep);
    line-height: 1.1;
}

.plan-price-cur {
    font-size: 1rem;
    font-weight: 700;
    vertical-align: super;
}

.plan-price-cycle {
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(36, 24, 15, 0.55);
}

.plan-resumo {
    color: rgba(36, 24, 15, 0.7);
    font-size: 0.92rem;
}

.plan-benefits {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.plan-benefits li {
    position: relative;
    padding-left: 1.4rem;
    font-size: 0.92rem;
    color: var(--color-brown);
}

.plan-benefits li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--color-earth);
    font-weight: 700;
}

.plan-users {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 1rem 1.25rem;
    border: 1px solid rgba(75, 54, 40, 0.16);
    border-radius: 1rem;
    background: rgba(220, 199, 172, 0.12);
}

.plan-users-hint {
    margin: 0.15rem 0 0;
    font-size: 0.85rem;
    color: rgba(36, 24, 15, 0.6);
}

.plan-users-input {
    width: 6rem;
    text-align: center;
    flex: 0 0 auto;
}

.plan-total {
    margin-top: 1rem;
    text-align: right;
    font-size: 1.05rem;
    color: var(--color-brown);
}

.plan-total strong {
    font-size: 1.35rem;
    color: var(--color-deep);
}

.signup-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

@media (max-width: 575.98px) {
    .plan-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.login-showcase {
    display: flex;
    flex-direction: column;
    justify-content: end;
    padding: 3rem;
    color: var(--color-white);
}

.login-back {
    color: rgba(255, 253, 249, 0.88);
    margin-bottom: auto;
    font-weight: 600;
}

.login-showcase h1 {
    font-family: var(--font-sf);
    font-size: clamp(3rem, 6vw, 5.4rem);
    line-height: 0.95;
    margin: 1rem 0 1.25rem;
}

.login-showcase p {
    max-width: 34rem;
    font-size: 1.05rem;
    line-height: 1.8;
    margin: 0;
}

.login-card-wrapper {
    display: flex;
    align-items: center;
}

.login-card {
    width: 100%;
    padding: 2.5rem;
    border-radius: 2rem;
    background: rgba(255, 253, 249, 0.92);
    box-shadow: var(--shadow-soft);
}

.signup-card {
    padding: 2.25rem;
}

.logo-placeholder {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 1.5rem;
}

.logo-placeholder strong {
    font-size: 1.4rem;
    font-weight: 700;
}

.auth-logo-image {
    display: block;
    width: min(15rem, 70%);
    height: auto;
}

.login-header h2 {
    font-family: var(--font-sf);
    font-size: 2.75rem;
    margin-bottom: 0.5rem;
}

.login-header p {
    color: rgba(36, 24, 15, 0.74);
    margin-bottom: 1.5rem;
}

.form-label {
    font-weight: 700;
    color: var(--color-brown);
}

.form-control {
    border: 1px solid rgba(75, 54, 40, 0.16);
    border-radius: 1rem;
    padding-inline: 1rem;
}

.form-control:focus {
    border-color: rgba(138, 106, 74, 0.9);
    box-shadow: 0 0 0 0.2rem rgba(138, 106, 74, 0.12);
}

.login-links {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.login-links a {
    color: var(--color-brown);
    font-weight: 600;
}

/* Botões do painel de login: contraste sobre o fundo claro do offcanvas. */
.btn-login-entrar {
    background: var(--color-earth);
    color: var(--color-white);
    border-radius: 999px;
    padding: 0.9rem 1.5rem;
    font-weight: 700;
    border: 0;
}

.btn-login-entrar:hover,
.btn-login-entrar:focus {
    background: var(--color-brown);
    color: var(--color-white);
}

.btn-login-cadastro {
    background: transparent;
    color: var(--color-earth);
    border: 1.5px solid var(--color-earth);
    border-radius: 999px;
    padding: 0.85rem 1.5rem;
    font-weight: 700;
}

.btn-login-cadastro:hover,
.btn-login-cadastro:focus {
    background: var(--color-earth);
    color: var(--color-white);
}

/* Separador "ou" entre Entrar e Cadastre-se. */
.login-sep {
    display: flex;
    align-items: center;
    text-align: center;
    margin: 1.5rem 0;
    color: rgba(36, 24, 15, 0.45);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.login-sep::before,
.login-sep::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(36, 24, 15, 0.12);
}

.login-sep span {
    padding: 0 0.85rem;
}

.dashboard-page {
    min-height: 100vh;
    background: linear-gradient(180deg, #efe4d3 0%, #f8f2e9 45%, #fbf7f1 100%);
}

/* Estado de carregamento das navegações SPA. */
#spa-content {
    transition: opacity 0.15s ease;
}

#spa-content.spa-loading {
    opacity: 0.45;
    pointer-events: none;
}

/* ===================================================================== */
/* Chrome da plataforma: topbar + sidebar (tipografia estilo onsaude)    */
/* ===================================================================== */
:root {
    --app-topbar-h: 60px;
    --app-sidebar-w: 268px;
    --app-text: var(--color-deep);
    --app-muted: #8a6a4a;
    --app-border: rgba(75, 54, 40, 0.12);
    --app-surface: #ffffff;
    --app-hover: #f4ede3;
}

body.dashboard-page {
    font-family: "Poppins", var(--font-sf);
    background: linear-gradient(180deg, #efe4d3 0%, #f8f2e9 45%, #fbf7f1 100%);
}

.app-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* ---- Topbar ---- */
.app-topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    height: var(--app-topbar-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0 1.25rem;
    background: var(--app-surface);
    border-bottom: 1px solid var(--app-border);
}

.app-topbar-left {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
}

.app-sidebar-toggle {
    width: 2.4rem;
    height: 2.4rem;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    border: 0;
    border-radius: 0.7rem;
    background: var(--app-hover);
    cursor: pointer;
}

.app-sidebar-toggle span {
    width: 1.05rem;
    height: 2px;
    background: var(--color-brown);
    border-radius: 999px;
}

.app-brand {
    display: inline-flex;
    align-items: center;
}

.app-brand-logo {
    height: 34px;
    width: auto;
    display: block;
}

.app-topbar-right {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.app-context {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.app-context-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--app-muted);
}

.app-context-select {
    max-width: 220px;
    padding: 0.45rem 0.75rem;
    border: 1px solid var(--app-border);
    border-radius: 0.7rem;
    background: var(--app-surface);
    color: var(--app-text);
    font-family: inherit;
    font-size: 0.86rem;
    font-weight: 500;
    cursor: pointer;
}

.app-context-select:hover {
    border-color: var(--color-earth);
}

.app-context-select:focus {
    outline: none;
    border-color: var(--color-earth);
    box-shadow: 0 0 0 3px rgba(138, 106, 74, 0.15);
}

.app-context-edit {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: var(--color-brown);
    background: var(--app-hover);
    font-size: 0.95rem;
}

.app-context-edit:hover,
.app-context-edit:focus {
    color: var(--color-white);
    background: var(--color-earth);
}

.app-context-empty {
    font-size: 0.84rem;
    color: var(--app-muted);
}

/* Botão da fazenda ativa (abre o modal) */
.app-farm-button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    max-width: 250px;
    padding: 0.45rem 0.8rem;
    border: 1px solid var(--app-border);
    border-radius: 0.7rem;
    background: var(--app-surface);
    color: var(--app-text);
    font-family: inherit;
    font-size: 0.86rem;
    font-weight: 500;
    cursor: pointer;
}

.app-farm-button:hover {
    border-color: var(--color-earth);
    background: var(--app-hover);
}

.app-farm-button .bi-geo-alt {
    color: var(--color-earth);
}

.app-farm-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.app-farm-caret {
    font-size: 0.7rem;
    color: var(--app-muted);
    margin-left: auto;
}

/* Modal de fazendas */
.app-farm-modal {
    border: 0;
    border-radius: 1rem;
}

.app-farm-create {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin-bottom: 1rem;
}

.farm-modal-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.farm-modal-item {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--app-border);
    border-radius: 0.7rem;
    overflow: hidden;
}

.farm-modal-item.is-active {
    border-color: var(--color-earth);
    box-shadow: inset 0 0 0 1px var(--color-earth);
}

.farm-modal-pick {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    padding: 0.6rem 0.85rem;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.farm-modal-pick:hover {
    background: var(--app-hover);
}

.farm-modal-pick-name {
    font-weight: 600;
    color: var(--app-text);
}

.farm-modal-pick-meta {
    font-size: 0.78rem;
    color: var(--app-muted);
}

.farm-modal-edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.7rem;
    color: var(--color-brown);
    background: var(--app-hover);
    border-left: 1px solid var(--app-border);
}

.farm-modal-edit:hover,
.farm-modal-edit:focus {
    color: var(--color-white);
    background: var(--color-earth);
}

.farm-modal-empty {
    color: var(--app-muted);
    padding: 0.75rem 0;
    text-align: center;
}

.farm-form-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

.farm-delete-form {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--app-border);
}

/* Tela de cadastro de fazenda (card único com abas) */
.farm-cadastro {
    width: 100%;
}

.farm-cadastro-card {
    width: 100%;
    min-height: calc(100vh - var(--app-topbar-h) - 4rem);
    display: flex;
    flex-direction: column;
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    box-shadow: 0 16px 40px rgba(36, 24, 15, 0.07);
    padding: 1.75rem 2rem;
}

.farm-cadastro-head {
    display: flex;
    align-items: baseline;
    gap: 0.85rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--app-border);
}

.farm-cadastro-head h2 {
    font-family: var(--font-sf);
    font-size: 1.9rem;
    margin: 0;
    color: var(--app-text);
}

.farm-cadastro-sub {
    color: var(--app-muted);
    font-weight: 500;
}

.farm-tabs {
    border-bottom: 1px solid var(--app-border);
    gap: 0.25rem;
}

.farm-tabs .nav-link {
    color: var(--app-muted);
    font-weight: 500;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    padding: 0.6rem 1rem;
}

.farm-tabs .nav-link:hover {
    color: var(--color-brown);
    border-bottom-color: var(--color-sand);
}

.farm-tabs .nav-link.active {
    color: var(--color-brown);
    background: transparent;
    border-bottom-color: var(--color-earth);
}

.farm-tab-content {
    flex: 1;
    padding: 1.5rem 0;
}

.farm-tab-hint {
    color: var(--app-muted);
    margin-bottom: 1rem;
}

.farm-cadastro-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--app-border);
}

.farm-delete-form-inline {
    margin: 0;
}

.gleba-tab-toolbar {
    margin-bottom: 1rem;
}

/* Importação de planilha RainPoint Home (pluviometria) */
.pluviometria-import-bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin: 1rem 0;
}

.pluviometria-last-import {
    font-size: 0.78rem;
    color: var(--app-muted);
}

/* Estatísticas abaixo do gráfico de histórico */
.pluviometria-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.pluviometria-stat {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--app-border);
    border-radius: 0.7rem;
    background: var(--app-hover);
}

.pluviometria-stat-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--app-muted);
}

.pluviometria-stat-value {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--app-text);
}

/* Totais por ano abaixo do comparativo */
.pluviometria-year-totals {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.pluviometria-year-total {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    background: var(--app-hover);
    font-size: 0.85rem;
}

.pluviometria-year-total-label {
    font-weight: 600;
    color: var(--app-text);
}

.pluviometria-year-total-value {
    color: var(--color-earth);
    font-weight: 600;
}

@media (max-width: 720px) {
    .pluviometria-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ===================== Irrigação ===================== */
.irrig-cal-section { margin-bottom: 1.25rem; }
.irrig-cal-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 0.75rem; font-size: 0.82rem; color: var(--color-muted, #6b7280); }
.irrig-cal-legend span { display: inline-flex; align-items: center; gap: 0.35rem; }
.irrig-dot { width: 0.85rem; height: 0.85rem; border-radius: 0.25rem; display: inline-block; }
.irrig-dot-blue { background: #2563eb; }
.irrig-dot-green { background: #16a34a; }
.irrig-dot-both { background: linear-gradient(135deg, #2563eb 0 50%, #16a34a 50% 100%); }
.irrig-day-edit { display: flex; gap: 0.6rem; overflow-x: auto; margin-top: 0.4rem; padding-bottom: 0.4rem; scroll-snap-type: x proximity; }
.irrig-day-card { flex: 0 0 auto; width: 150px; scroll-snap-align: start; border: 1px solid rgba(75, 54, 40, 0.14); border-radius: 0.7rem; padding: 0.6rem 0.7rem; background: var(--color-white); display: flex; flex-direction: column; gap: 0.4rem; }
.irrig-day-card-nome { font-size: 0.82rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.irrig-day-card-input { display: flex; align-items: center; gap: 0.3rem; }
.irrig-day-card-input input { text-align: right; }
.irrig-day-card-un { font-size: 0.78rem; color: var(--color-muted, #6b7280); }
.irrig-gleba-headrow { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem; }
.irrig-gleba-headrow .irrig-gleba-head { margin-bottom: 0; }
.irrig-gleba-fields { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-left: auto; }
.irrig-gleba-field { display: flex; flex-direction: column; }
.irrig-gleba-field .form-label { font-size: 0.72rem; margin-bottom: 0.15rem; }
.irrig-gleba-field input { width: 130px; }
.irrig-cultura-fields { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.irrig-cult-emiqtd, .irrig-cult-emivaz { width: 130px; }
/* ===== Conferência: linhas de plantio (carrossel) ===== */
.conf-empty { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.conf-carousel-wrap { display: flex; align-items: stretch; gap: 0.6rem; }
.conf-carousel { flex: 1 1 auto; display: flex; gap: 1rem; overflow-x: auto; padding: 0.25rem 0.25rem 0.75rem; scroll-snap-type: x proximity; }
.conf-side { flex: 0 0 auto; width: 56px; border: 1px dashed rgba(75, 54, 40, 0.3); border-radius: 0.9rem; background: rgba(106, 153, 78, 0.05); color: var(--color-brand, #6a994e); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.35rem; cursor: pointer; transition: background 0.12s ease; }
.conf-side:hover { background: rgba(106, 153, 78, 0.14); }
.conf-side-arrow { font-size: 1.4rem; line-height: 1; }
.conf-side-txt { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.conf-linha-panel { flex: 0 0 auto; width: 360px; scroll-snap-align: start; border: 1px solid rgba(75, 54, 40, 0.14); border-radius: 0.9rem; padding: 0.9rem 1rem; background: var(--color-white); }
.conf-panel-head { display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 1.1rem; }
.conf-panel-info { flex: 1 1 auto; min-width: 0; }
.conf-panel-nome { margin: 0; font-size: 1.02rem; font-weight: 700; }
.conf-panel-meta { font-size: 0.8rem; color: var(--color-muted, #6b7280); }
.conf-panel-legenda { margin: 0.3rem 0 0; max-width: none; gap: 0.25rem 0.6rem; font-size: 0.76rem; }
.conf-panel-actions { flex: 0 0 auto; display: flex; gap: 0.4rem; }
.conf-line-wrap { width: 100%; margin: 0.25rem 0; display: flex; flex-direction: column; gap: 0.5rem; }
.conf-add-btn { width: 100%; }
.conf-line { display: flex; flex-direction: column; gap: 0.5rem; min-height: 50px; }
.conf-line-empty { padding: 1.5rem 1rem; text-align: center; }
.conf-group { border: 1px solid rgba(75, 54, 40, 0.16); border-radius: 0.5rem; overflow: hidden; }
.conf-group-head { background: rgba(75, 54, 40, 0.06); padding: 0.2rem 0.5rem; font-size: 0.72rem; font-weight: 600; color: var(--color-muted, #6b7280); display: flex; justify-content: space-between; gap: 0.5rem; }
.conf-group-tot { font-weight: 700; color: #3f6212; }
.conf-group-plants { display: flex; flex-direction: column; gap: 5px; padding: 5px; }
.conf-plant { display: inline-flex; align-items: center; gap: 6px; border-radius: 0.4rem; padding: 6px 10px; font-size: 0.82rem; line-height: 1.3; align-self: flex-start; max-width: 100%; min-height: 38px; cursor: pointer; user-select: none; transition: filter 0.12s ease; }
.conf-plant:hover, .conf-plant:focus-visible { filter: brightness(1.07); outline: none; }
.conf-plant-qtd { font-weight: 700; min-width: 1.3rem; text-align: right; font-size: 0.95rem; }
.conf-plant-tag { background: rgba(255, 255, 255, 0.30); border-radius: 0.3rem; padding: 2px 7px; font-size: 0.76rem; white-space: nowrap; }
.conf-plant-setor { background: transparent; border: 1px solid currentColor; opacity: 0.9; }
.conf-plant-del { border: none; background: transparent; font-size: 1.25rem; line-height: 1; cursor: pointer; padding: 0 6px; margin-left: 2px; opacity: 0.7; }
.conf-plant-del:hover { opacity: 1; }
/* ===== Equipamentos ===== */
.eq-sit { font-size: 0.7rem; font-weight: 600; padding: 0.05rem 0.45rem; border-radius: 0.4rem; border: 1px solid transparent; }
.eq-sit-ativo { background: rgba(106, 153, 78, 0.14); color: #3f6212; border-color: rgba(106, 153, 78, 0.4); }
.eq-sit-inativo { background: rgba(75, 54, 40, 0.08); color: #6b7280; }
.eq-sit-manut { background: rgba(234, 179, 8, 0.16); color: #92660a; border-color: rgba(234, 179, 8, 0.4); }
.eq-sit-danif { background: rgba(190, 18, 60, 0.12); color: #be123c; border-color: rgba(190, 18, 60, 0.35); }
/* ===== Abastecimentos: dashboard ===== */
.ab-dash { display: flex; flex-direction: column; gap: 1.2rem; padding-top: 0.5rem; }
.ab-dash-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; align-items: start; }
@media (max-width: 768px) { .ab-dash-row { grid-template-columns: 1fr; } }
.ab-dash-card { border: 1px solid rgba(75, 54, 40, 0.14); border-radius: 0.9rem; padding: 1rem 1.1rem; background: var(--color-white); }
.ab-pie-wrap { max-width: 380px; height: 260px; margin: 0 auto; }
.ab-rank-row { margin-bottom: 0.6rem; }
.ab-rank-head { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.88rem; margin-bottom: 0.2rem; }
.ab-rank-bar { height: 8px; background: rgba(75, 54, 40, 0.08); border-radius: 4px; overflow: hidden; }
.ab-rank-fill { height: 100%; background: var(--color-brand, #6a994e); border-radius: 4px; }
.conf-legenda { max-width: 540px; margin: 0.75rem auto 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; font-size: 0.84rem; }
.conf-legenda-tit { color: var(--color-muted, #6b7280); font-weight: 600; }
.conf-legenda-item { display: inline-flex; align-items: center; gap: 0.35rem; }
.conf-legenda-dot { width: 0.85rem; height: 0.85rem; border-radius: 0.25rem; display: inline-block; }
.irrig-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.irrig-list-item {
    border: 1px solid var(--app-border);
    border-radius: 0.8rem;
    overflow: hidden;
}

.irrig-list-item.is-inactive {
    opacity: 0.8;
}

.irrig-list-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.8rem 1rem;
    color: var(--app-text);
}

.irrig-list-link:hover {
    background: var(--app-hover);
    color: var(--app-text);
}

.irrig-list-main {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.irrig-list-name {
    font-weight: 600;
    font-size: 1rem;
}

.irrig-list-regime {
    flex: 0 0 auto;
}

.irrig-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    width: fit-content;
    font-size: 0.74rem;
    font-weight: 600;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
}

.irrig-badge.ativo {
    background: #dcfce7;
    color: #15803d;
}

.irrig-badge.inativo {
    background: #fee2e2;
    color: #b91c1c;
}

.irrig-just {
    font-weight: 500;
}

/* Resumo gráfico do regime */
.irrig-summary {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.irrig-days {
    display: inline-flex;
    gap: 3px;
}

.irrig-day {
    width: 18px;
    height: 18px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.62rem;
    font-weight: 600;
    background: var(--app-hover);
    color: var(--app-muted);
    border: 1px solid var(--app-border);
}

.irrig-day.on {
    background: var(--color-earth);
    color: #fff;
    border-color: var(--color-earth);
}

.irrig-cycle {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 6px;
    background: var(--color-earth);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
}

.irrig-cycle-x {
    opacity: 0.75;
    margin: 0 2px;
}

.irrig-time {
    font-size: 0.8rem;
    color: var(--app-muted);
    font-weight: 500;
    white-space: nowrap;
}

.irrig-none {
    font-size: 0.8rem;
    color: var(--app-muted);
    font-style: italic;
}

/* Glebas & culturas no formulário */
.irrig-glebas {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.irrig-gleba {
    border: 1px solid var(--app-border);
    border-radius: 0.7rem;
    padding: 0.75rem 0.9rem;
}

.irrig-gleba-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    cursor: pointer;
    margin: 0;
}

.irrig-gleba-body {
    margin-top: 0.6rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--app-border);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.irrig-cultura {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.irrig-cultura-check {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
}

.irrig-cultura-qtd {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.irrig-cult-qtd {
    width: 90px;
}

.irrig-cultura-total {
    font-size: 0.8rem;
    color: var(--app-muted);
    white-space: nowrap;
}

/* Dias da semana (regime) */
.irrig-weekdays {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.irrig-weekday {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    color: var(--app-muted);
    cursor: pointer;
    margin: 0;
}

.irrig-weekday input {
    margin: 0;
}

/* Histórico de situação */
.irrig-history-title {
    font-size: 1.05rem;
    margin: 1.25rem 0 0.5rem;
}

.irrig-history {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.irrig-history-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--app-border);
    border-radius: 0.6rem;
}

.irrig-history-dates {
    font-size: 0.85rem;
    color: var(--app-text);
}

.irrig-history-just {
    font-size: 0.85rem;
    color: var(--app-muted);
}

.rain-dropzone {
    border: 2px dashed var(--app-border);
    border-radius: 0.9rem;
    padding: 1.75rem 1.25rem;
    text-align: center;
    background: var(--app-hover);
    transition: border-color 0.2s ease, background 0.2s ease;
}

.rain-dropzone.is-dragover {
    border-color: var(--color-earth);
    background: var(--color-cream);
}

.rain-dropzone-icon {
    font-size: 2rem;
    color: var(--color-earth);
}

.rain-dropzone-text {
    margin: 0.5rem 0 0.25rem;
}

.rain-dropzone-hint {
    margin: 0;
    font-size: 0.82rem;
    color: var(--app-muted);
}

.rain-file-name {
    margin: 0.5rem 0 0;
    font-weight: 600;
    color: var(--app-text);
}

.rain-import-summary {
    margin-top: 1rem;
}

.rain-import-summary p {
    margin: 0 0 0.4rem;
}

.rain-import-detail {
    margin: 0.25rem 0 0;
    padding-left: 1.1rem;
    font-size: 0.85rem;
    color: var(--app-muted);
}

.rain-import-warn {
    color: #9a3412;
}

.rain-import-actions {
    margin-top: 1rem;
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.app-avatar {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-earth), var(--color-brown));
    color: var(--color-white);
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0.02em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.app-account-menu {
    border: 1px solid var(--app-border);
    border-radius: 0.9rem;
    box-shadow: 0 18px 40px rgba(36, 24, 15, 0.14);
    padding: 0.5rem;
    min-width: 230px;
}

.app-account-head {
    padding: 0.5rem 0.75rem 0.65rem;
}

.app-account-name {
    margin: 0;
    font-weight: 600;
    color: var(--app-text);
}

.app-account-email {
    margin: 0.1rem 0 0;
    font-size: 0.82rem;
    color: var(--app-muted);
}

.app-account-menu .dropdown-item {
    border-radius: 0.6rem;
    font-size: 0.88rem;
    padding: 0.55rem 0.75rem;
    color: var(--app-text);
}

.app-account-menu .dropdown-item:hover {
    background: var(--app-hover);
}

.app-account-logout {
    color: #9a3412 !important;
}

/* ---- Corpo: sidebar + conteúdo ---- */
.app-main {
    flex: 1;
    display: grid;
    grid-template-columns: var(--app-sidebar-w) minmax(0, 1fr);
}

.app-shell.sidebar-collapsed .app-main {
    grid-template-columns: minmax(0, 1fr);
}

.app-shell.sidebar-collapsed .app-sidebar {
    display: none;
}

.app-sidebar-backdrop {
    display: none;
}

.app-sidebar {
    position: sticky;
    top: var(--app-topbar-h);
    align-self: start;
    height: calc(100vh - var(--app-topbar-h));
    overflow-y: auto;
    background: var(--app-surface);
    border-right: 1px solid var(--app-border);
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.app-sidebar-section {
    padding-bottom: 0.75rem;
    margin-bottom: 0.5rem;
    border-bottom: 1px solid var(--app-border);
}

.app-sidebar-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--app-muted);
    margin-bottom: 0.4rem;
}

.app-module-select {
    width: 100%;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--app-border);
    border-radius: 0.7rem;
    background: var(--app-surface);
    color: var(--app-text);
    font-family: inherit;
    font-size: 0.88rem;
    font-weight: 500;
    cursor: pointer;
}

.app-module-select:hover {
    border-color: var(--color-earth);
}

.app-module-select:focus {
    outline: none;
    border-color: var(--color-earth);
    box-shadow: 0 0 0 3px rgba(138, 106, 74, 0.15);
}

/* ---- Navegação (override do tema escuro antigo) ---- */
.app-sidebar .dashboard-nav {
    gap: 0.15rem;
    margin-top: 0;
}

.app-sidebar .dashboard-nav-group {
    gap: 0.1rem;
}

.app-sidebar .dashboard-nav-group-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0.45rem 0 0.1rem;
    padding: 0.5rem 0.85rem;
    border: 0;
    background: transparent;
    color: var(--app-text);
    cursor: pointer;
}

.app-sidebar .dashboard-nav-group-toggle::after {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    margin-right: 0.2rem;
    border-right: 2px solid var(--app-muted);
    border-bottom: 2px solid var(--app-muted);
    transform: rotate(45deg);
    transition: transform 0.2s ease;
}

.app-sidebar .dashboard-nav-group.is-open .dashboard-nav-group-toggle::after {
    transform: rotate(-135deg);
}

.app-sidebar .dashboard-nav-group-title {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: inherit;
}

.app-sidebar .dashboard-nav-submenu {
    display: none;
    flex-direction: column;
    gap: 0.1rem;
    padding-left: 0.35rem;
}

.app-sidebar .dashboard-nav-group.is-open .dashboard-nav-submenu {
    display: flex;
}

.app-sidebar .dashboard-nav-link {
    display: block;
    margin: 0;
    padding: 0.6rem 0.9rem;
    border-radius: 0.7rem;
    background: transparent;
    color: var(--app-muted);
    font-size: 0.88rem;
    font-weight: 500;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.app-sidebar .dashboard-nav-submenu .dashboard-nav-link {
    margin-left: 0;
    padding-left: 1.4rem;
    font-size: 0.85rem;
}

.app-sidebar .dashboard-nav-link:hover,
.app-sidebar .dashboard-nav-link:focus {
    background: var(--app-hover);
    color: var(--color-brown);
    transform: none;
}

.app-sidebar .dashboard-nav-link.is-active {
    background: linear-gradient(135deg, var(--color-earth), var(--color-brown));
    color: var(--color-white);
    box-shadow: 0 6px 16px rgba(75, 54, 40, 0.22);
    transform: none;
}

/* ---- Área de conteúdo ---- */
.app-content {
    padding: 2rem 2.25rem;
    min-width: 0;
}

@media (max-width: 720px) {
    .app-main {
        grid-template-columns: minmax(0, 1fr);
    }
    .app-context-label {
        display: none;
    }
    .app-context-select {
        max-width: 150px;
    }
    .app-content {
        padding: 1rem 0.85rem;
    }
    .farm-cadastro-card {
        padding: 1.1rem 0.9rem;
    }

    /* Sidebar vira um drawer sobreposto, fechado por padrão. */
    .app-sidebar,
    .app-shell.sidebar-collapsed .app-sidebar {
        display: flex;
        position: fixed;
        top: var(--app-topbar-h);
        left: 0;
        width: min(84vw, 320px);
        height: calc(100vh - var(--app-topbar-h));
        z-index: 1045;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        box-shadow: 0 18px 50px rgba(36, 24, 15, 0.28);
    }
    .app-shell.sidebar-mobile-open .app-sidebar {
        transform: translateX(0);
    }
    .app-shell.sidebar-mobile-open .app-sidebar-backdrop {
        display: block;
        position: fixed;
        inset: var(--app-topbar-h) 0 0 0;
        background: rgba(36, 24, 15, 0.42);
        z-index: 1040;
    }
}

.dashboard-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    transition: grid-template-columns 0.3s ease;
}

.dashboard-shell.sidebar-collapsed {
    grid-template-columns: 108px minmax(0, 1fr);
}

.dashboard-sidebar {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.5rem;
    background: linear-gradient(180deg, rgba(36, 24, 15, 0.97), rgba(75, 54, 40, 0.94));
    color: var(--color-white);
    transition: padding 0.3s ease;
}

.dashboard-sidebar-top,
.dashboard-sidebar-bottom {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.dashboard-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.dashboard-toggle {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.28rem;
    align-items: center;
    border: 0;
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.12);
    color: var(--color-white);
}

.dashboard-toggle-bar {
    width: 1rem;
    height: 2px;
    background: currentColor;
    display: block;
    border-radius: 999px;
}

.dashboard-userbox {
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.08);
}

.dashboard-farmbox {
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.08);
}

.dashboard-farm-label {
    margin: 0 0 0.65rem;
    font-size: 0.76rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255, 253, 249, 0.72);
}

.dashboard-farm-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.dashboard-farm-header .dashboard-farm-label {
    margin: 0;
}

.dashboard-farm-edit {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: var(--color-white);
    background: rgba(255, 253, 249, 0.12);
    font-size: 1rem;
}

.dashboard-farm-edit:hover,
.dashboard-farm-edit:focus {
    color: var(--color-white);
    background: rgba(255, 253, 249, 0.2);
}

.dashboard-farm-form {
    margin: 0;
}

.dashboard-farm-select {
    border: 1px solid rgba(255, 253, 249, 0.12);
    border-radius: 1rem;
    background-color: rgba(255, 253, 249, 0.14);
    color: var(--color-white);
    font-weight: 600;
}

.dashboard-farm-select:focus {
    border-color: rgba(220, 199, 172, 0.8);
    box-shadow: 0 0 0 0.2rem rgba(220, 199, 172, 0.15);
}

.dashboard-farm-select option {
    color: var(--color-deep);
}

.dashboard-farm-meta,
.dashboard-farm-empty {
    margin: 0.75rem 0 0;
    color: rgba(255, 253, 249, 0.82);
    font-size: 0.95rem;
}

.dashboard-brand-lockup {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 3rem;
}

.dashboard-brand-logo {
    display: block;
    width: 4.75rem;
    height: 4.75rem;
    flex: 0 0 auto;
}

.dashboard-user,
.dashboard-email {
    margin: 0;
    color: rgba(255, 253, 249, 0.82);
}

.dashboard-nav {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.dashboard-nav-group {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.dashboard-nav-group-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0.35rem 0 0;
    padding: 0.45rem 0.25rem;
    border: 0;
    background: transparent;
    color: rgba(255, 253, 249, 0.72);
    text-align: left;
}

.dashboard-nav-group-toggle::after {
    content: "+";
    font-size: 1rem;
    font-weight: 700;
}

.dashboard-nav-group.is-open .dashboard-nav-group-toggle::after {
    content: "-";
}

.dashboard-nav-group-title {
    margin: 0;
    font-size: 0.74rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: inherit;
}

.dashboard-nav-submenu {
    display: none;
    flex-direction: column;
    gap: 0.6rem;
}

.dashboard-nav-group.is-open .dashboard-nav-submenu {
    display: flex;
}

.dashboard-nav-link {
    display: block;
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    color: var(--color-white);
    background: rgba(255, 253, 249, 0.08);
    font-weight: 600;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.dashboard-nav-submenu .dashboard-nav-link {
    margin-left: 0.85rem;
    padding-left: 1rem;
}

.dashboard-nav-link:hover,
.dashboard-nav-link:focus,
.dashboard-nav-link.is-active {
    color: var(--color-white);
    background: rgba(255, 253, 249, 0.16);
    transform: translateX(4px);
}

.dashboard-logout {
    display: block;
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    color: var(--color-white);
    background: rgba(220, 199, 172, 0.12);
    font-weight: 700;
    text-align: center;
}

.dashboard-logout:hover,
.dashboard-logout:focus {
    color: var(--color-white);
    background: rgba(220, 199, 172, 0.22);
}

.dashboard-content {
    padding: 2.5rem;
}

.dashboard-panel {
    padding: 2.25rem;
    border-radius: 1.75rem;
    background: rgba(255, 253, 249, 0.85);
    box-shadow: 0 18px 40px rgba(36, 24, 15, 0.08);
    margin-bottom: 1.75rem;
}

.dashboard-panel h2,
.dashboard-card h3 {
    font-family: var(--font-sf);
}

.dashboard-panel h2 {
    font-size: clamp(2.5rem, 4vw, 4rem);
    margin: 0.75rem 0 1rem;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.dashboard-card {
    padding: 1.75rem;
    border-radius: 1.5rem;
    background: var(--color-white);
    box-shadow: 0 16px 35px rgba(36, 24, 15, 0.07);
}

.dashboard-card h3 {
    font-size: 2rem;
    margin: 0.75rem 0;
}

.farm-cultures-list {
    max-height: 18rem;
    overflow: auto;
    padding: 1rem;
    border: 1px solid rgba(75, 54, 40, 0.12);
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.82);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 1rem;
}

.farm-culture-option {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-weight: 600;
    color: var(--color-deep);
}

.farm-culture-option input {
    width: 1rem;
    height: 1rem;
}

.farm-management-grid {
    grid-template-columns: 1fr;
    align-items: start;
    width: 100%;
}

.farm-tabs-card {
    width: 100%;
    max-width: none;
}

.farm-tabs-nav {
    margin: 1rem 0 1.5rem;
    border-bottom-color: rgba(75, 54, 40, 0.12);
}

.farm-tabs-nav .nav-link {
    color: var(--color-brown);
    font-weight: 700;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
}

.farm-tabs-nav .nav-link:hover,
.farm-tabs-nav .nav-link:focus {
    color: var(--color-deep);
    border-color: transparent;
}

.farm-tabs-nav .nav-link.active {
    color: var(--color-deep);
    background: transparent;
    border-color: var(--color-earth);
}

.farm-tabs-content {
    padding-top: 0.5rem;
}

.gleba-table-wrap {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 1.25rem;
    background: rgba(255, 253, 249, 0.98);
    border: 1px solid rgba(75, 54, 40, 0.12);
    box-shadow: 0 12px 28px rgba(36, 24, 15, 0.06);
}

.gleba-table {
    margin: 0;
}

.gleba-table thead th {
    background: rgba(75, 54, 40, 0.06);
    color: var(--color-brown);
    font-weight: 700;
    border-bottom-width: 1px;
}

.gleba-table .gleba-action-col {
    width: 56px;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.gleba-table tbody tr.is-selected td {
    background: linear-gradient(180deg, #fffdf8 0%, #f4ede3 100%);
}

.gleba-table-button {
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    color: var(--color-deep);
    font-weight: 400;
}

.gleba-table tbody td {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.gleba-table tbody tr:hover td {
    background: rgba(244, 237, 227, 0.72);
}

.gleba-action-icon {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: rgba(75, 54, 40, 0.1);
    color: var(--color-deep);
    font-size: 0.95rem;
}

.gleba-action-icon.is-danger {
    background: rgba(190, 24, 24, 0.12);
    color: #991b1b;
}

.gleba-edit-panel {
    padding: 1rem;
    border: 1px solid rgba(75, 54, 40, 0.12);
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.94);
}

.gleba-cultures-table-wrap {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(75, 54, 40, 0.12);
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.94);
    max-height: 280px;
    overflow: auto;
}

.gleba-cultures-table thead th {
    background: rgba(75, 54, 40, 0.06);
    color: var(--color-brown);
    font-weight: 700;
    position: sticky;
    top: 0;
    z-index: 1;
}

.gleba-cultures-table td,
.gleba-cultures-table th {
    font-size: 0.92rem;
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
}

.gleba-culture-table-header,
.gleba-culture-draft-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.gleba-culture-table-header {
    margin-bottom: 1rem;
}

.gleba-culture-draft {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(75, 54, 40, 0.12);
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.98);
}

.gleba-culture-draft-header h4 {
    margin: 0.4rem 0 0;
    font-family: var(--font-sf);
    font-size: 1.8rem;
}

.gleba-culture-draft-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1rem;
}

.clients-card {
    grid-column: 1 / -1;
}

.clients-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.clients-create-button {
    white-space: nowrap;
    align-self: flex-start;
    background: var(--color-brown);
    color: var(--color-white);
    box-shadow: 0 6px 16px rgba(36, 24, 15, 0.18);
}

.clients-create-button:hover,
.clients-create-button:focus {
    background: var(--color-deep);
    color: var(--color-white);
}

.materials-header-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.75rem;
}

.materials-classifications-button {
    white-space: nowrap;
    align-self: flex-start;
    background: #d9efe2;
    color: #1c4a38;
    border: 1px solid rgba(28, 74, 56, 0.12);
    font-weight: 700;
}

.materials-classifications-button:hover,
.materials-classifications-button:focus {
    background: #c7e5d5;
    color: #163d2f;
}

.materials-header {
    margin-bottom: 1.25rem;
}

.materials-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.materials-header-top h3 {
    margin: 0;
}

.materials-header-sub {
    margin-top: 0.85rem;
}

.clients-table-wrap {
    padding: 1rem;
    border-radius: 1.25rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.08);
    height: 34rem;
    overflow-y: auto;
}

.clients-list-wrap {
    padding: 1rem;
    border-radius: 1.25rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.08);
    height: 34rem;
    overflow-y: auto;
}

.clients-cards {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.clients-cards .clients-empty-state {
    margin: 0;
}

.client-card {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.12);
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.client-card:hover,
.client-card:focus-visible {
    border-color: var(--color-brown);
    box-shadow: 0 6px 18px rgba(75, 54, 40, 0.10);
    transform: translateY(-1px);
    outline: none;
}

.client-card-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.client-card-title {
    font-size: 1.02rem;
    color: var(--color-brown);
    line-height: 1.25;
    word-break: break-word;
}

.client-card-razao {
    font-size: 0.85rem;
    color: rgba(75, 54, 40, 0.66);
}

.client-card-doc {
    font-size: 0.82rem;
    color: rgba(75, 54, 40, 0.6);
    font-variant-numeric: tabular-nums;
}

.clients-cards .clients-delete-form {
    flex: 0 0 auto;
}

.material-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.12);
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.material-card:hover,
.material-card:focus-visible {
    border-color: var(--color-brown);
    box-shadow: 0 6px 18px rgba(75, 54, 40, 0.10);
    transform: translateY(-1px);
    outline: none;
}

.material-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.material-card-tag {
    align-self: flex-start;
    max-width: 100%;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--color-brown);
    background: rgba(75, 54, 40, 0.08);
    padding: 0.18rem 0.6rem;
    border-radius: 999px;
}

.material-card-title {
    font-size: 1.02rem;
    color: var(--color-brown);
    line-height: 1.25;
    word-break: break-word;
}

.material-card-meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    margin-top: 0.1rem;
}

.material-card-saldo {
    font-size: 0.85rem;
    color: rgba(75, 54, 40, 0.66);
}

.material-card-preco {
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--color-brown);
    font-variant-numeric: tabular-nums;
}

.venda-card {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.12);
}

.venda-card-click {
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.venda-card-click:hover {
    border-color: var(--color-brown);
    box-shadow: 0 6px 18px rgba(75, 54, 40, 0.1);
    transform: translateY(-1px);
}

.venda-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
}

.venda-card-top-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.25rem;
}

.venda-card-delete {
    border: none;
    background: transparent;
    color: rgba(176, 0, 32, 0.7);
    font-size: 0.95rem;
    line-height: 1;
    padding: 0.1rem 0.3rem;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.venda-card-delete:hover {
    background: rgba(176, 0, 32, 0.12);
    color: #b00020;
}

.venda-card-tag {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--color-brown);
    background: rgba(75, 54, 40, 0.08);
    padding: 0.16rem 0.6rem;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
}

.venda-card-tag-wrap {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.venda-card-culturas {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.venda-card-cultura-bola {
    width: 0.62rem;
    height: 0.62rem;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(75, 54, 40, 0.18) inset;
}

.venda-card-data {
    font-size: 0.82rem;
    color: rgba(75, 54, 40, 0.62);
    white-space: nowrap;
}

.venda-card-cliente {
    font-size: 1.02rem;
    color: var(--color-brown);
    line-height: 1.25;
    word-break: break-word;
}

.venda-card-valores {
    display: flex;
    justify-content: flex-start;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.venda-card-valor-riscado {
    text-decoration: line-through;
    font-size: 0.82rem;
    color: rgba(75, 54, 40, 0.55);
}

.venda-card-liquido {
    font-size: 1.02rem;
    font-weight: 600;
    color: var(--color-brown);
    font-variant-numeric: tabular-nums;
}

/* ---- Classificação mercadológica em árvore ---- */
.classif-toolbar {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.classif-check {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.88rem;
    color: rgba(75, 54, 40, 0.75);
    cursor: pointer;
}

.classif-tree {
    border: 1px solid rgba(75, 54, 40, 0.1);
    border-radius: 1rem;
    background: var(--color-white);
    overflow: hidden;
}

.classif-node {
    border-top: 1px solid rgba(75, 54, 40, 0.06);
}

.classif-children[data-parent=""] > .classif-node:first-child {
    border-top: 0;
}

.classif-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.9rem;
    padding-left: calc(0.9rem + var(--classif-depth, 0) * 1.5rem);
    transition: background 0.12s ease;
}

.classif-row:hover {
    background: rgba(75, 54, 40, 0.035);
}

.classif-drag {
    cursor: grab;
    color: rgba(75, 54, 40, 0.35);
    font-size: 1.2rem;
    line-height: 1;
    user-select: none;
}

.classif-toggle {
    width: 1.4rem;
    height: 1.4rem;
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: var(--color-brown);
    cursor: pointer;
    transition: transform 0.15s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.classif-node[aria-expanded="true"] > .classif-row > .classif-toggle {
    transform: rotate(90deg);
}

.classif-toggle-empty {
    cursor: default;
    visibility: hidden;
}

.classif-codigo {
    font-variant-numeric: tabular-nums;
    font-size: 0.78rem;
    color: rgba(75, 54, 40, 0.5);
    white-space: nowrap;
}

.classif-descricao {
    flex: 1;
    min-width: 0;
    color: var(--color-brown);
    font-weight: 500;
    word-break: break-word;
}

.classif-node[data-nivel="1"] > .classif-row > .classif-descricao {
    font-weight: 700;
}

.classif-badge {
    font-size: 0.7rem;
    font-weight: 600;
    color: #8a5a00;
    background: rgba(180, 130, 20, 0.14);
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    white-space: nowrap;
}

.classif-node-inativa > .classif-row > .classif-descricao,
.classif-node-inativa > .classif-row > .classif-codigo {
    opacity: 0.55;
}

.classif-menu-btn {
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: rgba(75, 54, 40, 0.6);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.1rem 0.45rem;
    border-radius: 0.4rem;
}

.classif-menu-btn:hover {
    background: rgba(75, 54, 40, 0.08);
    color: var(--color-brown);
}

.classif-popup {
    position: absolute;
    z-index: 1080;
    min-width: 180px;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.14);
    border-radius: 0.7rem;
    box-shadow: 0 12px 32px rgba(36, 24, 15, 0.18);
    padding: 0.35rem;
}

.classif-popup-item {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    padding: 0.5rem 0.65rem;
    border-radius: 0.5rem;
    font-size: 0.9rem;
    color: var(--color-brown);
    cursor: pointer;
}

.classif-popup-item:hover {
    background: rgba(75, 54, 40, 0.07);
}

.classif-popup-item.danger {
    color: #b3261e;
}

.classif-popup-item.danger:hover {
    background: rgba(179, 38, 30, 0.08);
}

.classif-tree .sortable-ghost {
    opacity: 0.4;
}

/* ---- Cadastro de venda: cliente + itens ---- */
.venda-cliente-wrap {
    position: relative;
}

.venda-cliente-sugestoes {
    position: absolute;
    z-index: 40;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    max-height: 280px;
    overflow-y: auto;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.16);
    border-radius: 0.7rem;
    box-shadow: 0 12px 30px rgba(36, 24, 15, 0.16);
    padding: 0.3rem;
}

.venda-sugestao-item,
.venda-picker-item {
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    padding: 0.5rem 0.65rem;
    border-radius: 0.5rem;
    cursor: pointer;
    color: var(--color-brown);
}

.venda-sugestao-item:hover,
.venda-picker-item:hover {
    background: rgba(75, 54, 40, 0.07);
}

.venda-sugestao-item small,
.venda-picker-item small {
    color: rgba(75, 54, 40, 0.6);
    font-size: 0.8rem;
}

.venda-picker-list {
    max-height: 52vh;
    overflow-y: auto;
    border: 1px solid rgba(75, 54, 40, 0.1);
    border-radius: 0.7rem;
    padding: 0.3rem;
}

.venda-item-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 0.5rem;
    border-radius: 0.5rem;
}

.venda-item-row:hover {
    background: rgba(75, 54, 40, 0.05);
}

.venda-item-add {
    flex: 1;
    min-width: 0;
    text-align: left;
    border: 0;
    background: transparent;
    color: var(--color-brown);
    cursor: pointer;
    padding: 0.2rem 0;
}

.venda-item-estoque {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}

.venda-item-estoque-val {
    font-variant-numeric: tabular-nums;
    font-size: 0.85rem;
    color: rgba(75, 54, 40, 0.7);
}

.venda-item-un {
    width: auto;
    min-width: 5rem;
}

.venda-item-preco {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--color-brown);
    min-width: 6rem;
    text-align: right;
}

.venda-produtos-table .venda-col-qtd { width: 9rem; }
.venda-produtos-table .venda-col-un { width: 8rem; }
.venda-produtos-table .venda-col-preco { width: 8rem; }
.venda-produtos-table .venda-col-desc { width: 8rem; }

.venda-prod-desc {
    display: flex;
    gap: 0.3rem;
}

.venda-prod-desc input {
    flex: 1 1 auto;
    min-width: 0;
}

.venda-prod-desc select {
    width: 5.5rem;
    flex: 0 0 auto;
}

.venda-prod-nome {
    font-weight: 500;
    color: var(--color-brown);
}

.venda-produtos-table {
    margin-bottom: 0;
    border: 1px solid rgba(75, 54, 40, 0.14);
    border-radius: 0.8rem;
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
}

.venda-produtos-table thead th {
    background: rgba(75, 54, 40, 0.1);
    color: var(--color-brown);
    font-weight: 700;
    font-size: 0.85rem;
    border-bottom: 1px solid rgba(75, 54, 40, 0.14);
    white-space: nowrap;
}

.venda-produtos-table tbody td {
    background: var(--color-white);
    border-top: 1px solid rgba(75, 54, 40, 0.08);
    vertical-align: middle;
}

.venda-produtos-table tbody tr:nth-child(even) td {
    background: rgba(75, 54, 40, 0.04);
}

.venda-produtos-table tfoot th {
    background: rgba(75, 54, 40, 0.08);
    border-top: 1px solid rgba(75, 54, 40, 0.14);
}

.clients-table {
    margin: 0;
}

.clients-table thead th {
    background: rgba(75, 54, 40, 0.06);
    color: var(--color-brown);
    font-weight: 700;
    border-bottom-width: 1px;
}

.clients-row {
    cursor: pointer;
}

.clients-row:hover td {
    background: rgba(75, 54, 40, 0.04);
}

.clients-delete-form {
    display: inline-flex;
    margin: 0;
}

.clients-delete-button {
    line-height: 1;
}

.clients-address-row {
    cursor: pointer;
}

.clients-address-row:hover td {
    background: rgba(75, 54, 40, 0.04);
}

.clients-search-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.clients-search-field,
.clients-search-input-wrap {
    display: grid;
    gap: 0.35rem;
}

.clients-modal-open {
    overflow: hidden;
}

.clients-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(31, 24, 18, 0.42);
    z-index: 1050;
}

.clients-modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    z-index: 1055;
}

.clients-modal-card {
    width: min(100%, 760px);
    max-height: calc(100vh - 3rem);
    overflow-y: auto;
}

.clients-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.clients-modal-form .form-label {
    font-weight: 700;
    color: var(--color-brown);
}

.clients-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.materials-classification-modal-card {
    width: min(100%, 920px);
}

.materials-classification-screen-card {
    grid-column: 1 / -1;
}

.materials-classification-toolbar {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 1rem;
}

.materials-classification-table-wrap {
    height: auto;
    max-height: 28rem;
}

.materials-classification-screen-table-wrap {
    height: calc(100vh - 24rem);
    min-height: 28rem;
}

.materials-classification-create-row td {
    background: #f8f4ec;
}

.materials-classification-row {
    cursor: pointer;
}

.materials-classification-row:hover td {
    background: rgba(75, 54, 40, 0.04);
}

.materials-classification-label {
    display: inline-block;
}

.materials-classification-level-2 {
    padding-left: 1rem;
}

.materials-classification-level-3 {
    padding-left: 2rem;
}

.materials-classification-level-4 {
    padding-left: 3rem;
}

.materials-classification-level-5 {
    padding-left: 4rem;
}

.materials-inline-editor {
    min-width: 20rem;
}

.materials-inline-actions {
    display: inline-flex;
    gap: 0.5rem;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.clients-addresses-section {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(75, 54, 40, 0.12);
}

.clients-addresses-header,
.clients-address-draft-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.clients-addresses-header {
    margin-bottom: 1rem;
}

.clients-addresses-header h4,
.clients-address-draft-header h4 {
    margin: 0.45rem 0 0.35rem;
    font-family: var(--font-sf);
    font-size: 1.8rem;
}

.clients-addresses-table-wrap,
.clients-address-draft {
    padding: 1rem;
    border-radius: 1.25rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.08);
}

.clients-addresses-table {
    margin: 0;
}

.clients-addresses-table thead th {
    background: rgba(75, 54, 40, 0.06);
    color: var(--color-brown);
    font-weight: 700;
    border-bottom-width: 1px;
}

.clients-address-draft {
    margin-top: 1rem;
}

.clients-address-draft-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.gleba-edit-actions,
.gleba-delete-form {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.pluviometria-grid {
    grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
    align-items: start;
    gap: 1.5rem;
}

.colheitas-full-grid {
    grid-template-columns: minmax(0, 1fr);
}

.colheitas-full-grid .pluviometria-form-card,
.colheitas-full-grid .pluviometria-chart-card,
.colheitas-full-grid .pluviometria-compare-card {
    grid-column: 1 / -1;
    width: 100%;
    max-width: 100%;
}

.colheitas-form-layout {
    display: grid;
    grid-template-columns: minmax(320px, 1.2fr) minmax(320px, 0.9fr);
    gap: 1.5rem;
    align-items: start;
}

.colheitas-form-panel {
    padding: 1.25rem;
    border-radius: 1.25rem;
    background: rgba(75, 54, 40, 0.05);
}

.colheitas-day-header h4 {
    margin: 0;
    font-family: var(--font-sf);
    font-size: 2rem;
}

.colheitas-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0 1.25rem;
}

.colheitas-toolbar-field {
    flex: 1 1 320px;
}

.colheitas-add-button {
    white-space: nowrap;
}

.colheitas-records-table-wrap {
    border-radius: 1rem;
    overflow: hidden;
    background: rgba(255, 253, 249, 0.88);
    box-shadow: inset 0 0 0 1px rgba(75, 54, 40, 0.08);
}

.colheitas-records-table thead th {
    border-bottom: 0;
    background: rgba(75, 54, 40, 0.08);
    color: var(--color-brown);
    font-size: 0.86rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.colheitas-records-table tbody td {
    background: transparent;
}

.colheitas-analysis-filters {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.colheitas-filter-row {
    display: grid;
    gap: 0.75rem;
    align-items: end;
}

.colheitas-filter-row-top {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.colheitas-filter-row-dates {
    grid-template-columns: 1fr 1fr auto;
}

@media (max-width: 768px) {
    .colheitas-filter-row-top,
    .colheitas-filter-row-dates {
        grid-template-columns: 1fr;
    }
    .clients-list-wrap {
        padding: 0.65rem;
    }
}

.colheitas-stock-card {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.colheitas-stock-filter {
    min-width: min(100%, 280px);
}

.colheitas-stock-table-wrap {
    border-radius: 1rem;
    overflow: hidden;
    background: rgba(255, 253, 249, 0.88);
    box-shadow: inset 0 0 0 1px rgba(75, 54, 40, 0.08);
}

.colheitas-stock-table thead th {
    border-bottom: 0;
    background: rgba(75, 54, 40, 0.08);
    color: var(--color-brown);
    font-size: 0.86rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.colheitas-stock-detail-cell {
    padding: 0 !important;
    background: rgba(75, 54, 40, 0.03);
}

.colheitas-stock-detail-wrap {
    padding: 1rem 1.25rem;
}

.pluviometria-form-card,
.pluviometria-chart-card {
    min-height: 100%;
}

.pluviometria-support {
    color: rgba(36, 24, 15, 0.72);
    margin-bottom: 1.25rem;
}

.pluviometria-unit-note {
    margin-top: 0.5rem;
    font-size: 0.92rem;
    color: rgba(36, 24, 15, 0.68);
}

.pluviometria-empty {
    margin-bottom: 1rem;
    font-weight: 600;
    color: rgba(36, 24, 15, 0.72);
}

.pluviometria-calendar {
    margin-bottom: 1.5rem;
    padding: 1.25rem;
    border-radius: 1.25rem;
    background: rgba(75, 54, 40, 0.05);
}

.pluviometria-calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.pluviometria-calendar-header h4 {
    margin: 0;
    font-family: var(--font-sf);
    font-size: 2rem;
}

.pluviometria-calendar-nav {
    width: 2.75rem;
    height: 2.75rem;
    border: 0;
    border-radius: 999px;
    background: rgba(75, 54, 40, 0.12);
    color: var(--color-deep);
    font-size: 1.5rem;
    line-height: 1;
}

.pluviometria-calendar-weekdays,
.pluviometria-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.5rem;
}

.pluviometria-calendar-weekdays {
    margin-bottom: 0.5rem;
}

.pluviometria-calendar-weekdays span {
    text-align: center;
    font-size: 0.8rem;
    font-weight: 700;
    color: rgba(36, 24, 15, 0.62);
    text-transform: uppercase;
}

.pluviometria-calendar-empty,
.pluviometria-calendar-day {
    min-height: 3rem;
    border-radius: 0.9rem;
}

.pluviometria-calendar-day {
    border: 0;
    background: rgba(255, 253, 249, 0.95);
    color: var(--color-deep);
    font-weight: 700;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.pluviometria-calendar-day:hover,
.pluviometria-calendar-day:focus {
    background: rgba(220, 199, 172, 0.55);
    transform: translateY(-1px);
}

.pluviometria-calendar-day.is-today {
    outline: 2px solid rgba(138, 106, 74, 0.45);
}

.pluviometria-calendar-day.has-rain {
    box-shadow: inset 0 0 0 1px rgba(29, 78, 216, 0.12);
}

.pluviometria-calendar-day.is-selected {
    box-shadow: inset 0 0 0 2px #dc2626;
}

.colheitas-chart-total {
    margin: 0.6rem 0 0;
    text-align: right;
    font-weight: 700;
    color: var(--color-brown);
    font-variant-numeric: tabular-nums;
}

/* Carrossel de resumo por cultura na aba Agricultura das vendas */
.vendas-card-header {
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.6rem;
}

.vendas-carousel {
    display: flex;
    gap: 0.5rem;
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 0.25rem;
    scrollbar-width: thin;
}

.vendas-carousel-card {
    flex: 0 0 auto;
    min-width: 11.5rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.14);
    border-radius: 0.7rem;
    padding: 0.4rem 0.6rem;
}

.vendas-carousel-cult {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 700;
    font-size: 0.82rem;
    color: var(--color-brown);
    margin-bottom: 0.25rem;
}

.vendas-carousel-dot {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    flex: 0 0 auto;
    box-shadow: 0 0 0 1px rgba(75, 54, 40, 0.18) inset;
}

.vendas-carousel-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.6rem;
    font-size: 0.72rem;
    line-height: 1.3;
}

.vendas-carousel-lbl {
    color: rgba(75, 54, 40, 0.55);
}

.vendas-carousel-val {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--color-deep);
    white-space: nowrap;
}

/* Barra de busca das vendas: pesquisa por texto + filtro de período */
.clients-search-bar.vendas-search-bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.vendas-search-bar .clients-search-input-wrap {
    flex: 1 1 16rem;
    min-width: 0;
}

.vendas-period-filter {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex: 0 0 auto;
}

.vendas-period-filter input[type="date"] {
    width: 9.5rem;
}

.vendas-period-sep {
    color: rgba(75, 54, 40, 0.6);
    font-size: 0.85rem;
}

/* Financeiro — Bancos/contas */
.bancos-form {
    background: rgba(75, 54, 40, 0.04);
    border: 1px solid rgba(75, 54, 40, 0.12);
    border-radius: 0.8rem;
    padding: 1rem;
    margin-bottom: 1rem;
}

.bancos-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.bancos-list {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.banco-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.14);
    border-radius: 0.8rem;
    padding: 0.8rem 1rem;
}

.banco-card-info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.banco-card-nome {
    color: var(--color-brown);
    font-size: 1rem;
}

.banco-card-sub {
    font-size: 0.8rem;
    color: rgba(75, 54, 40, 0.6);
}

.banco-card-right {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 0 0 auto;
}

.banco-card-saldo {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.banco-saldo-label {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: rgba(75, 54, 40, 0.5);
}

.banco-saldo-val {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--color-deep);
}

.banco-saldo-neg {
    color: #b00020;
}

/* Financeiro — Formas de pagamento + Lançamentos */
.formas-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.forma-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.14);
    border-radius: 0.7rem;
    padding: 0.6rem 1rem;
}

.forma-card-nome {
    color: var(--color-brown);
    font-weight: 600;
}

.lancamentos-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.lancamentos-table th,
.lancamentos-table td {
    padding: 0.5rem 0.6rem;
    border-bottom: 1px solid rgba(75, 54, 40, 0.1);
    text-align: left;
    vertical-align: middle;
}

.lancamentos-table th {
    color: var(--color-brown);
    font-weight: 700;
    background: rgba(75, 54, 40, 0.06);
}

.lancamentos-table td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.lancamento-status {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
}

.lancamento-status.pago {
    background: rgba(46, 125, 50, 0.14);
    color: #2e7d32;
}

.lancamento-status.aberto {
    background: rgba(176, 0, 32, 0.12);
    color: #b00020;
}

/* Lançamento — ações e distribuição */
.farm-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    margin-top: 1.25rem;
}

.dist-widget {
    padding-top: 0.5rem;
}

.dist-add {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.dist-add [data-dist-sel] {
    flex: 1 1 18rem;
    min-width: 0;
}

.dist-add [data-dist-val] {
    width: 9rem;
    flex: 0 0 auto;
}

.dist-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.dist-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: rgba(75, 54, 40, 0.04);
    border: 1px solid rgba(75, 54, 40, 0.1);
    border-radius: 0.6rem;
    padding: 0.45rem 0.7rem;
}

.dist-row-desc {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--color-brown);
    font-size: 0.88rem;
}

.dist-row-val {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.dist-total {
    margin-top: 0.75rem;
    font-size: 0.9rem;
    color: rgba(75, 54, 40, 0.75);
}

.dist-ok {
    color: #2e7d32;
    font-weight: 600;
}

.dist-warn {
    color: #b00020;
    font-weight: 600;
}

/* Lançamentos — cards por situação */
.lanc-cards {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.lanc-card {
    background: var(--color-white);
    border: 1px solid rgba(75, 54, 40, 0.14);
    border-left: 4px solid rgba(75, 54, 40, 0.25);
    border-radius: 0.8rem;
    padding: 0.8rem 1rem;
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.lanc-card:hover,
.lanc-card:focus-visible {
    box-shadow: 0 4px 14px rgba(75, 54, 40, 0.14);
    transform: translateY(-1px);
    outline: none;
}

.lanc-card.lanc-avencer { border-left-color: #2e7d32; }
.lanc-card.lanc-atrasados { border-left-color: #b00020; }
.lanc-card.lanc-pagos { border-left-color: #1d4ed8; }

.lanc-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
}

.lanc-card-tag {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--color-brown);
    background: rgba(75, 54, 40, 0.08);
    padding: 0.16rem 0.6rem;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
}

.lanc-card-emi {
    font-size: 0.8rem;
    color: rgba(75, 54, 40, 0.6);
    white-space: nowrap;
}

.lanc-card-cliente {
    display: block;
    margin-top: 0.35rem;
    color: var(--color-brown);
    font-size: 1rem;
}

.lanc-card-hist {
    font-size: 0.85rem;
    color: rgba(75, 54, 40, 0.72);
    margin-top: 0.1rem;
}

.lanc-card-bottom {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.lanc-card-data {
    font-size: 0.85rem;
    color: rgba(75, 54, 40, 0.7);
}

.lanc-atrasados .lanc-card-data {
    color: #b00020;
    font-weight: 600;
}

.lanc-card-valor {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--color-deep);
}

.lanc-pagos .lanc-card-valor {
    color: #1d4ed8;
}

.pluviometria-chart-card {
    min-height: 28rem;
    max-width: 100%;
    overflow: hidden;
}

.pluviometria-compare-card {
    grid-column: 1 / -1;
    max-width: 100%;
    overflow: hidden;
}

.pluviometria-chart-header {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: start;
    margin-bottom: 1rem;
}

.pluviometria-period {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    align-items: end;
}

.pluviometria-filter-btn {
    min-height: 3rem;
}

.pluviometria-years {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pluviometria-chart-wrap {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: clamp(260px, 38vw, 420px);
}

.pluviometria-chart-wrap canvas {
    width: 100% !important;
    height: 100% !important;
}

.dashboard-shell.sidebar-collapsed .dashboard-sidebar {
    padding: 1.5rem 1rem;
}

.dashboard-shell.sidebar-collapsed .dashboard-user,
.dashboard-shell.sidebar-collapsed .dashboard-nav-group-toggle,
.dashboard-shell.sidebar-collapsed .dashboard-nav-group-title,
.dashboard-shell.sidebar-collapsed .dashboard-nav-link,
.dashboard-shell.sidebar-collapsed .dashboard-logout {
    font-size: 0;
}

.dashboard-shell.sidebar-collapsed .dashboard-brand-lockup {
    justify-content: center;
}

.dashboard-shell.sidebar-collapsed .dashboard-brand-logo {
    width: 3rem;
    height: 3rem;
}

.dashboard-shell.sidebar-collapsed .dashboard-userbox {
    padding: 0.5rem;
    min-height: 3rem;
}

.dashboard-shell.sidebar-collapsed .dashboard-farmbox {
    padding: 0.5rem;
}

.dashboard-shell.sidebar-collapsed .dashboard-farm-label,
.dashboard-shell.sidebar-collapsed .dashboard-farm-empty {
    display: none;
}

/* ===== Landing institucional ===== */
.site-brand {
    display: inline-flex;
    align-items: center;
    padding: 0;
}

.site-brand-logo {
    height: 2.75rem;
    width: auto;
    display: block;
}

.site-brand-logo--light {
    display: block;
}

.site-brand-logo--dark {
    display: none;
}

.site-header.is-scrolled .site-brand-logo--light {
    display: none;
}

.site-header.is-scrolled .site-brand-logo--dark {
    display: block;
}

.btn-access {
    background: var(--color-white);
    color: var(--color-deep);
    border-radius: 999px;
    padding: 0.65rem 1.5rem;
    font-weight: 700;
    border: 0;
}

.btn-access:hover,
.btn-access:focus {
    background: var(--color-sand);
    color: var(--color-deep);
}

.site-header.is-scrolled .btn-access {
    background: var(--color-brown);
    color: var(--color-white);
}

.site-header.is-scrolled .btn-access:hover,
.site-header.is-scrolled .btn-access:focus {
    background: var(--color-deep);
    color: var(--color-white);
}

.benefit-card {
    height: 100%;
    padding: 1.75rem;
    border-radius: 1.5rem;
    background: rgba(255, 253, 249, 0.72);
    border: 1px solid rgba(75, 54, 40, 0.08);
    box-shadow: 0 16px 35px rgba(36, 24, 15, 0.07);
}

.benefit-card .benefit-icon {
    font-size: 1.9rem;
    line-height: 1;
    margin-bottom: 0.9rem;
}

.benefit-card h3 {
    font-family: var(--font-sf);
    font-size: 1.5rem;
    margin-bottom: 0.6rem;
}

.benefit-card p {
    margin: 0;
    color: rgba(36, 24, 15, 0.78);
    line-height: 1.7;
}

.module-card {
    height: 100%;
    padding: 1.85rem;
    border-radius: 1.5rem;
    background: rgba(255, 253, 249, 0.85);
    border: 1px solid rgba(75, 54, 40, 0.1);
    box-shadow: 0 14px 32px rgba(36, 24, 15, 0.08);
}

.module-card .module-kicker {
    display: inline-block;
    font-size: 0.72rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--color-earth);
    margin-bottom: 0.65rem;
}

.module-card h3 {
    font-family: var(--font-sf);
    font-size: 1.6rem;
    margin-bottom: 0.75rem;
}

.module-card ul {
    margin: 0;
    padding-left: 1.1rem;
    color: rgba(36, 24, 15, 0.78);
    line-height: 1.8;
}

.module-card p {
    margin: 0;
    color: rgba(36, 24, 15, 0.78);
    line-height: 1.7;
}

.login-offcanvas {
    width: min(420px, 92vw);
    background: var(--color-white);
    color: var(--color-deep);
}

.login-offcanvas .offcanvas-header {
    padding: 1.75rem 1.75rem 0.5rem;
    border-bottom: 0;
}

.login-offcanvas-logo {
    height: 2.4rem;
    width: auto;
}

.login-offcanvas .offcanvas-body {
    padding: 1rem 1.75rem 2rem;
    display: flex;
    flex-direction: column;
}

.login-offcanvas-intro {
    margin-bottom: 1.5rem;
}

.login-offcanvas-intro .section-kicker {
    color: var(--color-earth);
}

.login-offcanvas-intro h2 {
    font-family: var(--font-sf);
    font-size: 2.4rem;
    line-height: 1.05;
    margin: 0.4rem 0 0.5rem;
}

.login-offcanvas-intro p {
    margin: 0;
    color: rgba(36, 24, 15, 0.74);
    line-height: 1.6;
}

.footer-link.btn-link {
    text-decoration: none;
    border: 0;
    vertical-align: baseline;
}

.dashboard-shell.sidebar-collapsed .dashboard-farm-select {
    min-height: 3rem;
    font-size: 0;
    padding-inline: 0.5rem;
}

.dashboard-shell.sidebar-collapsed .dashboard-nav-link,
.dashboard-shell.sidebar-collapsed .dashboard-logout {
    min-height: 3.5rem;
    padding: 0.85rem;
    margin-left: 0;
}

.dashboard-shell.sidebar-collapsed .dashboard-nav-group-toggle {
    display: none;
}

.dashboard-shell.sidebar-collapsed .dashboard-nav-link::before,
.dashboard-shell.sidebar-collapsed .dashboard-logout::before {
    font-size: 1.2rem;
}

.dashboard-shell.sidebar-collapsed a[href='roca_integrada.php']::before {
    content: "G";
}

.dashboard-shell.sidebar-collapsed a[href='vendas.php']::before {
    content: "V";
}

.dashboard-shell.sidebar-collapsed a[href='materiais.php']::before {
    content: "M";
}

.dashboard-shell.sidebar-collapsed a[href='compras.php']::before {
    content: "C";
}

.dashboard-shell.sidebar-collapsed a[href='financeiro.php']::before {
    content: "F";
}

.dashboard-shell.sidebar-collapsed a[href='colheitas.php']::before {
    content: "H";
}

.dashboard-shell.sidebar-collapsed a[href='pluviometria.php']::before {
    content: "P";
}

.dashboard-shell.sidebar-collapsed a[href='irrigacao.php']::before {
    content: "I";
}

.dashboard-shell.sidebar-collapsed a[href='adubacao.php']::before {
    content: "A";
}

.dashboard-shell.sidebar-collapsed a[href='aplicacoes.php']::before {
    content: "L";
}

.dashboard-shell.sidebar-collapsed .dashboard-logout::before {
    content: "S";
}

.processing-form {
    display: grid;
    gap: 1.5rem;
}

.processing-items-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
}

.processing-items-table {
    display: grid;
    gap: 1rem;
}

.processing-item-row {
    display: grid;
    grid-template-columns: 1.2fr 1.2fr 0.8fr 1.2fr 0.8fr auto;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(36, 48, 32, 0.12);
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.7);
}

.processing-item-action {
    display: flex;
    align-items: end;
}

.processing-history-list {
    display: grid;
    gap: 1rem;
}

.processing-history-item {
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(36, 48, 32, 0.12);
    background: rgba(255, 253, 249, 0.72);
}

.processing-history-header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.processing-history-header h4 {
    margin: 0 0 0.25rem;
    font-size: 1.2rem;
}

.processing-history-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(36, 48, 32, 0.08);
    color: var(--color-deep);
    font-weight: 700;
}

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

    .login-showcase {
        min-height: auto;
        padding: 1rem 0 0;
    }

    .login-back {
        margin-bottom: 2rem;
    }
}

@media (max-width: 991.98px) {
    .navbar-collapse {
        margin-top: 1rem;
        padding: 1.25rem;
        border-radius: 1rem;
        background: rgba(255, 253, 249, 0.94);
    }

    .navbar-collapse .nav-link,
    .site-header .navbar-toggler {
        color: var(--color-deep);
    }

    .hero-content {
        padding-top: 8rem;
    }

    .hero-card {
        margin: 0 0 4rem;
        max-width: 100%;
    }

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

    .dashboard-shell {
        grid-template-columns: 1fr;
    }

    .dashboard-shell.sidebar-collapsed {
        grid-template-columns: 1fr;
    }

    .dashboard-sidebar {
        padding: 1.25rem;
        gap: 1.25rem;
    }

    .dashboard-shell.sidebar-collapsed .dashboard-sidebar-bottom {
        display: none;
    }

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

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

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

    .colheitas-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .colheitas-add-button {
        width: 100%;
    }

    .pluviometria-chart-header,
    .pluviometria-period {
        grid-template-columns: 1fr;
        display: grid;
    }

    .pluviometria-chart-card {
        min-height: auto;
    }

    .pluviometria-chart-wrap {
        height: 320px;
    }

    .processing-item-row {
        grid-template-columns: 1fr 1fr;
    }

    .processing-item-action {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767.98px) {
    .navbar {
        padding: 1rem 0;
    }

    .brand-name {
        font-size: 1.55rem;
    }

    .hero-content h1 {
        font-size: 3.2rem;
    }

    .intro-section,
    .collection-section,
    .experience-section,
    .restricted-section {
        padding: 4.5rem 0;
    }

    .image-block-tall {
        min-height: 24rem;
    }

    .restricted-box,
    .quote-panel {
        padding: 2rem;
    }

    .login-card {
        padding: 1.5rem;
        border-radius: 1.5rem;
    }

    .login-showcase {
        padding: 0 0 1rem;
    }

    .pluviometria-calendar {
        padding: 1rem;
    }

    .pluviometria-calendar-header h4 {
        font-size: 1.5rem;
        text-align: center;
    }

    .pluviometria-calendar-weekdays,
    .pluviometria-calendar-grid {
        gap: 0.35rem;
    }

    .pluviometria-calendar-empty,
    .pluviometria-calendar-day {
        min-height: 2.4rem;
        font-size: 0.9rem;
    }

    .pluviometria-chart-wrap {
        height: 260px;
    }

    .processing-items-header,
    .processing-history-header {
        grid-template-columns: 1fr;
        display: grid;
    }

    .processing-item-row {
        grid-template-columns: 1fr;
    }
}

/* Adubação — subtítulos de grupo no modal de fertilizante */
.adub-form-group {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted, #6b7280);
    margin-bottom: 0.25rem;
    border-bottom: 1px solid rgba(75, 54, 40, 0.12);
    padding-bottom: 0.25rem;
}

/* Adubação — modal de cálculo de recomendação (mais largo p/ a tabela de nutrientes) */
.adub-calc-card {
    max-width: 760px;
    width: 100%;
}

/* Adubação — alternativas de cronograma e cards clicáveis */
.adub-alt { cursor: pointer; transition: box-shadow 0.15s ease; }
.adub-alt:hover { box-shadow: 0 2px 10px rgba(75, 54, 40, 0.12); }
.adub-alt-sel { border: 2px solid var(--color-brand, #6a994e); }
.crono-card { cursor: pointer; }

/* Adubação — histórico de execução no detalhe do cronograma */
.adub-exec-hist { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.adub-exec-tag { background: rgba(106, 153, 78, 0.10); border: 1px solid rgba(106, 153, 78, 0.25); border-radius: 0.5rem; padding: 0.1rem 0.5rem; }

/* ===== Adubação — página única (carrosséis + cards) ===== */
.adub-sec-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.75rem; }
.adub-sec-head h2 { margin: 0; }
.adub-carrossel { display: flex; gap: 1rem; overflow-x: auto; padding: 0.25rem 0.25rem 0.75rem; scroll-snap-type: x proximity; }
.adub-carrossel > p { min-width: 100%; }
.adub-card { position: relative; min-width: 230px; max-width: 280px; flex: 0 0 auto; background: var(--color-white); border: 1px solid rgba(75, 54, 40, 0.14); border-radius: 0.9rem; padding: 0.9rem 1rem; scroll-snap-align: start; }
.adub-analise-card { cursor: pointer; transition: box-shadow 0.15s ease, transform 0.15s ease; }
.adub-analise-card:hover { box-shadow: 0 4px 14px rgba(75, 54, 40, 0.14); transform: translateY(-1px); }
.adub-card-action { position: absolute; top: 0.5rem; right: 0.5rem; border: 1px solid rgba(75, 54, 40, 0.18); background: var(--color-white); border-radius: 0.5rem; width: 1.9rem; height: 1.9rem; line-height: 1; cursor: pointer; color: var(--color-muted, #6b7280); }
.adub-card-action:hover { background: rgba(75, 54, 40, 0.06); }
.adub-card-gleba { font-weight: 700; font-size: 1.02rem; padding-right: 2rem; }
.adub-card-cult { color: var(--color-brand, #6a994e); font-weight: 600; }
.adub-card-meta { color: var(--color-muted, #6b7280); font-size: 0.85rem; }
.adub-cro-card { min-width: 280px; max-width: 340px; }
.adub-cro-parcelas { margin-top: 0.5rem; display: flex; flex-direction: column; gap: 0.4rem; max-height: 220px; overflow-y: auto; }
.adub-cro-parc { border: 1px solid rgba(75, 54, 40, 0.10); border-radius: 0.5rem; padding: 0.4rem 0.5rem; }
.adub-cro-parc-tit { font-weight: 600; font-size: 0.82rem; margin-bottom: 0.2rem; }
.adub-cro-item { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.82rem; }
.adub-cro-item span:last-child { color: var(--color-muted, #6b7280); white-space: nowrap; }
.adub-wide-modal { max-width: 860px; width: 100%; }
.adub-aplic { border: 1px solid rgba(75, 54, 40, 0.22); border-radius: 0.6rem; padding: 0.55rem 0.7rem; margin-bottom: 0.7rem; background: var(--color-white); }
.adub-aplic-tit { font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; }
.adub-aplic-plantio { border-color: var(--color-brand, #6a994e); border-left-width: 4px; background: rgba(106, 153, 78, 0.05); }
/* Catálogo de fertilizantes em cards */
.adub-fert-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0.9rem; }
.adub-fert-card { background: var(--color-white); border: 1px solid rgba(75, 54, 40, 0.14); border-radius: 0.9rem; padding: 0.8rem 0.95rem; cursor: pointer; transition: box-shadow 0.15s ease, transform 0.15s ease; }
.adub-fert-card:hover { box-shadow: 0 4px 14px rgba(75, 54, 40, 0.14); transform: translateY(-1px); }
.adub-fert-card.is-locked { cursor: default; background: rgba(75, 54, 40, 0.03); }
.adub-fert-card.is-locked:hover { box-shadow: none; transform: none; }
.adub-fert-card-top { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; margin-bottom: 0.45rem; }
.adub-fert-card-head { display: flex; align-items: flex-start; gap: 0.5rem; }
.adub-fert-card-nome { flex: 1 1 auto; font-size: 1rem; line-height: 1.2; }
.adub-fert-card-head .btn, .adub-fert-lock { flex: 0 0 auto; }
.adub-fert-lock { font-size: 1rem; line-height: 1.6; opacity: 0.65; }
.adub-fert-card-nutri { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0.5rem 0; }
.adub-nutri-tag { background: rgba(106, 153, 78, 0.10); color: #3f6212; border: 1px solid rgba(106, 153, 78, 0.30); border-radius: 0.4rem; padding: 0.05rem 0.4rem; font-size: 0.72rem; white-space: nowrap; }
.adub-fert-card-saldo { font-size: 0.84rem; color: var(--color-muted, #6b7280); border-top: 1px solid rgba(75, 54, 40, 0.08); padding-top: 0.45rem; }
/* Catálogo de fertilizantes em lista (abas Mineral/Orgânico + lazy load) */
.adub-fert-list { display: flex; flex-direction: column; }
.adub-fert-row { display: flex; align-items: center; gap: 1rem; padding: 0.7rem 0.4rem; border-bottom: 1px solid rgba(75, 54, 40, 0.10); cursor: pointer; transition: background 0.12s ease; }
.adub-fert-row:hover { background: rgba(106, 153, 78, 0.06); }
.adub-fert-row.is-locked { cursor: default; }
.adub-fert-row.is-locked:hover { background: transparent; }
.adub-fert-row-main { flex: 1 1 auto; min-width: 0; }
.adub-fert-row-head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.adub-fert-row-nome { font-size: 1rem; }
.adub-fert-row .adub-fert-card-nutri { margin: 0.35rem 0 0; }
.adub-fert-row-side { flex: 0 0 auto; display: flex; align-items: center; gap: 0.75rem; }
.adub-fert-row-saldo { text-align: right; font-weight: 600; font-size: 0.9rem; white-space: nowrap; }
.adub-fert-row-saldo small { font-weight: 400; font-size: 0.7rem; }
/* Saldo x demanda de fertilizantes */
.adub-sd-mes { border: 1px solid rgba(75, 54, 40, 0.12); border-radius: 0.7rem; padding: 0.6rem 0.8rem; margin-bottom: 0.8rem; background: var(--color-white); }
.adub-sd-mes-tit { font-weight: 700; text-transform: capitalize; margin-bottom: 0.4rem; }
