/* =====================================================================
   TEMAS (só aparência) – html[data-tema="grafite" | "couro" | "campo"]
   Sem data-tema o app fica como sempre foi.
   ===================================================================== */

/* ---------- tokens de cada tema ---------- */
html[data-tema="grafite"] {
  --t-bg: #0d0f12; --t-bg-img: radial-gradient(1200px 600px at 85% -10%, rgba(240,138,60,.14), transparent 60%), radial-gradient(900px 500px at -10% 110%, rgba(240,138,60,.07), transparent 60%), linear-gradient(180deg, #111418, #0b0d10);
  --t-sup: rgba(255,255,255,.045); --t-sup2: rgba(255,255,255,.035); --t-sup-solid: #171a1f; --t-borda: rgba(255,255,255,.08); --t-borda2: rgba(255,255,255,.12);
  --t-sombra: 0 1px 0 rgba(255,255,255,.04) inset, 0 12px 30px rgba(0,0,0,.35); --t-raio: 20px;
  --t-txt: #e9eaec; --t-txt2: #9ba1a8; --t-tit: #ffffff; --t-rot: #f0a463;
  --t-ac: linear-gradient(135deg, #f59a4a, #e06a24); --t-ac1: #f08a3c; --t-ac-txt: #1a0e05;
  --t-in-bg: #1d2127; --t-in-txt: #f1f2f4; --t-in-borda: rgba(255,255,255,.12);
  --t-nav: rgba(16,18,22,.86); --t-nav-txt: #8d939a; --t-nav-on: #f59a4a;
  --t-ok: linear-gradient(150deg, #2f7d4f, #1d5235); --t-al: linear-gradient(150deg, #a8761c, #6e4a0e); --t-er: linear-gradient(150deg, #a8392b, #6a2016);
  --t-fonte: "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --t-fonte-tit: "Manrope", system-ui, sans-serif;
  --t-blur: blur(14px);
}
html[data-tema="couro"] {
  --t-bg: #170f09; --t-bg-img: radial-gradient(1000px 520px at 50% -12%, rgba(226,145,63,.20), transparent 62%), linear-gradient(170deg, #2a1a0f, #160d07 70%);
  --t-sup: linear-gradient(165deg, #3b2617, #2b1a0f); --t-sup2: rgba(0,0,0,.22); --t-sup-solid: #2f1d11; --t-borda: rgba(255,214,160,.10); --t-borda2: rgba(255,214,160,.16);
  --t-sombra: 0 1px 0 rgba(255,220,170,.10) inset, 0 14px 30px rgba(0,0,0,.38); --t-raio: 20px;
  --t-txt: #f2e5cf; --t-txt2: #bfa785; --t-tit: #fbefd9; --t-rot: #e2a865;
  --t-ac: linear-gradient(180deg, #e8964a, #b8601f); --t-ac1: #d9823a; --t-ac-txt: #fff7ea;
  --t-in-bg: #f6ead3; --t-in-txt: #2a1a10; --t-in-borda: rgba(0,0,0,.25);
  --t-nav: rgba(28,17,10,.92); --t-nav-txt: #a88f6c; --t-nav-on: #f0a95f;
  --t-ok: linear-gradient(155deg, #3f6e2c, #26451a); --t-al: linear-gradient(155deg, #8a6119, #5a3d0c); --t-er: linear-gradient(155deg, #8a3321, #561c11);
  --t-fonte: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --t-fonte-tit: "Zilla Slab", Georgia, serif;
  --t-blur: none;
}
html[data-tema="campo"] {
  --t-bg: #f3efe6; --t-bg-img: radial-gradient(900px 420px at 100% -10%, rgba(226,145,63,.12), transparent 60%), linear-gradient(180deg, #f6f2ea, #efe9dc);
  --t-sup: #ffffff; --t-sup2: #f6f2ea; --t-sup-solid: #ffffff; --t-borda: #e7dfcf; --t-borda2: #dcd2bf;
  --t-sombra: 0 1px 2px rgba(60,45,20,.06), 0 8px 24px rgba(60,45,20,.07); --t-raio: 18px;
  --t-txt: #2b2a26; --t-txt2: #756f63; --t-tit: #1f2a22; --t-rot: #9a5a22;
  --t-ac: linear-gradient(135deg, #e48a3a, #c4601d); --t-ac1: #c96a24; --t-ac-txt: #ffffff;
  --t-in-bg: #ffffff; --t-in-txt: #2b2a26; --t-in-borda: #d9cfbb;
  --t-nav: rgba(255,255,255,.94); --t-nav-txt: #8a8374; --t-nav-on: #c4601d;
  --t-ok: linear-gradient(150deg, #4c9a5e, #2f7443); --t-al: linear-gradient(150deg, #e0a53a, #b9801d); --t-er: linear-gradient(150deg, #d9604f, #ad3b2c);
  --t-fonte: "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --t-fonte-tit: "Manrope", system-ui, sans-serif;
  --t-blur: none;
}

html[data-tema="oceano"] {
  --t-bg: #07131d; --t-bg-img: radial-gradient(1100px 560px at 90% -10%, rgba(25,195,166,.16), transparent 60%), radial-gradient(800px 480px at -10% 105%, rgba(56,128,255,.12), transparent 60%), linear-gradient(180deg, #0b1a27, #06111a);
  --t-sup: rgba(120,190,255,.05); --t-sup2: rgba(120,190,255,.06); --t-sup-solid: #0f2233; --t-borda: rgba(140,200,255,.12); --t-borda2: rgba(140,200,255,.18);
  --t-sombra: 0 1px 0 rgba(160,220,255,.06) inset, 0 14px 32px rgba(0,0,0,.35); --t-raio: 18px;
  --t-txt: #e3eef7; --t-txt2: #8aa3b8; --t-tit: #ffffff; --t-rot: #5fd8c2;
  --t-ac: linear-gradient(135deg, #22d3b0, #129c86); --t-ac1: #22c7a7; --t-ac-txt: #04211c;
  --t-in-bg: #12283a; --t-in-txt: #eef6fb; --t-in-borda: rgba(140,200,255,.2);
  --t-nav: rgba(8,20,30,.9); --t-nav-txt: #7d97ab; --t-nav-on: #2fe0bd;
  --t-ok: linear-gradient(150deg, #18a383, #0d6c57); --t-al: linear-gradient(150deg, #c99124, #8a5f10); --t-er: linear-gradient(150deg, #d0504a, #8e2a26);
  --t-fonte: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --t-fonte-tit: "Space Grotesk", "Inter", system-ui, sans-serif;
  --t-blur: blur(14px);
}
html:is([data-tema="oliva"],[data-tema="fazenda"]) {
  --t-bg: #efece3; --t-bg-img: linear-gradient(180deg, #f2efe6, #e9e5d8);
  --t-sup: #fbfaf6; --t-sup2: #f1eee5; --t-sup-solid: #fbfaf6; --t-borda: #dfd9c8; --t-borda2: #d2cab4;
  --t-sombra: 0 1px 0 rgba(255,255,255,.8) inset, 0 6px 18px rgba(55,60,30,.08); --t-raio: 14px;
  --t-txt: #2a2d22; --t-txt2: #6d6f5c; --t-tit: #1e2318; --t-rot: #5d6b2e;
  --t-ac: linear-gradient(135deg, #6b7f35, #4c5c22); --t-ac1: #5d6f2a; --t-ac-txt: #ffffff;
  --t-in-bg: #ffffff; --t-in-txt: #2a2d22; --t-in-borda: #cfc8b3;
  --t-nav: #2f3a22; --t-nav-txt: #b8c29a; --t-nav-on: #ffd27a;
  --t-ok: linear-gradient(150deg, #6f8a3a, #4b6223); --t-al: linear-gradient(150deg, #c7962e, #93681a); --t-er: linear-gradient(150deg, #b9533d, #8a3424);
  --t-fonte: "DM Sans", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --t-fonte-tit: "DM Serif Display", Georgia, serif;
  --t-blur: none;
}
html[data-tema="ocaso"] {
  --t-bg: #150b1e; --t-bg-img: radial-gradient(1000px 600px at 100% -10%, rgba(255,122,61,.28), transparent 60%), radial-gradient(900px 600px at -20% 30%, rgba(232,69,107,.20), transparent 60%), linear-gradient(170deg, #241032, #12081a 70%);
  --t-sup: rgba(255,255,255,.06); --t-sup2: rgba(255,255,255,.07); --t-sup-solid: #241433; --t-borda: rgba(255,200,220,.12); --t-borda2: rgba(255,200,220,.18);
  --t-sombra: 0 1px 0 rgba(255,255,255,.07) inset, 0 16px 36px rgba(10,0,20,.45); --t-raio: 22px;
  --t-txt: #f6eaf2; --t-txt2: #b9a2b8; --t-tit: #ffffff; --t-rot: #ffb07a;
  --t-ac: linear-gradient(135deg, #ff9a3d, #ec4f72); --t-ac1: #ff8a50; --t-ac-txt: #ffffff;
  --t-in-bg: #2a1838; --t-in-txt: #fdf3f8; --t-in-borda: rgba(255,200,220,.2);
  --t-nav: rgba(22,10,32,.88); --t-nav-txt: #a993a8; --t-nav-on: #ff9a5c;
  --t-ok: linear-gradient(150deg, #2e9e6d, #1b6648); --t-al: linear-gradient(150deg, #e0912c, #a85e12); --t-er: linear-gradient(150deg, #e2475f, #9c2238);
  --t-fonte: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --t-fonte-tit: "Plus Jakarta Sans", system-ui, sans-serif;
  --t-blur: blur(16px);
}
/* ---------- base ---------- */
html[data-tema] { --couro: var(--t-sup); --sombra: var(--t-sombra); --texto: var(--t-txt); --cinza: var(--t-txt2); --cobre: var(--t-rot); --brasa: var(--t-ac); --borda: var(--t-borda); }
html[data-tema], html[data-tema] body { background: var(--t-bg) !important; color: var(--t-txt); }
html[data-tema] body:not(.modo-login) { background: var(--t-bg-img) !important; background-attachment: fixed !important; }
html[data-tema] body, html[data-tema] body *:not(svg):not(svg *) { font-family: var(--t-fonte) !important; }
html[data-tema] body :is(h2, h3, h4, .fz-hero-nome, .kp-num b, .kp-lot-num b, .mz-ua, .reb-num span, .valor) { font-family: var(--t-fonte-tit) !important; text-shadow: none !important; }
html[data-tema] :is(h2, h3) { color: var(--t-tit) !important; letter-spacing: 0 !important; }
html[data-tema] .ajuda, html[data-tema] small { color: var(--t-txt2); }
html[data-tema] a { color: var(--t-ac1); }

/* sem costura tracejada */
html[data-tema] :is(.cartao, .kpi, .secao, .fz-hero, .reb-cat, .lanc-pq, .modal, .tabela-wrap, .vz-box, .kp, .mz-tile, .sg-tile, .lanc-geral)::before { display: none !important; }
html[data-tema] .fz-hero::after { display: none !important; }

/* superfícies */
html[data-tema] :is(.cartao, .kpi, .secao, .fz-hero, .reb-cat, .lanc-pq, .lc-card, .ng-k, .tabela-wrap, .pn-al, .pn-alertas-bar, .pn-at, .vz-box, .sg-car-box, .lf-modal, .modal) {
  background: var(--t-sup) !important; border: 1px solid var(--t-borda) !important; box-shadow: var(--t-sombra) !important; border-radius: var(--t-raio) !important; color: var(--t-txt) !important;
  -webkit-backdrop-filter: var(--t-blur); backdrop-filter: var(--t-blur);
}
html[data-tema] .secao-cab { border-color: var(--t-borda) !important; background: transparent !important; }
html[data-tema] :is(.secao-ic, .kp-ic, .pn-at-ic, .mt-tit .secao-ic) { background: var(--t-ac) !important; box-shadow: 0 4px 12px rgba(224,106,36,.28) !important; border: 0 !important; border-radius: 12px !important; }
html[data-tema] :is(.secao-cont, .cap-selo) { background: var(--t-sup2) !important; border: 1px solid var(--t-borda2) !important; color: var(--t-txt2) !important; }
html[data-tema] :is(.secao-olho, .mf-x) { background: var(--t-sup2) !important; border: 1px solid var(--t-borda2) !important; color: var(--t-txt) !important; box-shadow: none !important; }
html[data-tema] .fz-hero-rot, html[data-tema] .kp-rot, html[data-tema] .pn-retiro-nome, html[data-tema] label, html[data-tema] th { color: var(--t-rot) !important; }
html[data-tema] .fz-hero-nome { color: var(--t-tit) !important; letter-spacing: .01em !important; }

/* topo e barra de baixo */
html[data-tema] .topo { background: var(--t-nav) !important; border-bottom: 1px solid var(--t-borda) !important; box-shadow: 0 6px 24px rgba(0,0,0,.12) !important; }
html[data-tema] .topo :is(.fz-sel, #btnSair, #btnAtualizar, button:not(.topo-voz)) { background: var(--t-sup2) !important; border: 1px solid var(--t-borda2) !important; color: var(--t-txt) !important; box-shadow: none !important; }
html[data-tema] .topo :is(.fz-sel b, .fz-sel span, .fz-sel select, h1) { color: var(--t-tit) !important; }
html[data-tema] .nav { background: var(--t-nav) !important; border-color: var(--t-borda) !important; box-shadow: 0 -8px 24px rgba(0,0,0,.14) !important; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
html[data-tema] .nav a { color: var(--t-nav-txt) !important; }
html[data-tema] .nav a.ativo { color: var(--t-nav-on) !important; }
html[data-tema] .nav a.ativo :is(svg, .nav-ic) { background: transparent !important; }

/* botões */
html[data-tema] .btn:not(.secundario):not(.perigo) { background: var(--t-ac) !important; color: var(--t-ac-txt) !important; border: 0 !important; box-shadow: 0 6px 16px rgba(224,106,36,.25) !important; text-shadow: none !important; }
html[data-tema] .btn.secundario { background: var(--t-sup2) !important; color: var(--t-txt) !important; border: 1px solid var(--t-borda2) !important; box-shadow: none !important; text-shadow: none !important; }
html[data-tema] .btn.perigo { background: linear-gradient(135deg, #e5604a, #b8342a) !important; color: #fff !important; border: 0 !important; box-shadow: 0 6px 16px rgba(184,52,42,.25) !important; }
html[data-tema] :is(.btn, .pn-at, .pn-al, .mz-tile, .pn-pq) { border-radius: 14px !important; }

/* campos */
html[data-tema] :is(.modal, .conteudo, .lf-modal) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]), select, textarea) {
  background-color: var(--t-in-bg) !important; background-image: none !important; color: var(--t-in-txt) !important; border: 1px solid var(--t-in-borda) !important; box-shadow: none !important; border-radius: 12px !important; }
html[data-tema] :is(.conteudo, .modal) select { background-image: var(--seta) !important; background-repeat: no-repeat !important; background-position: right 12px center !important; }

/* números do painel */
html[data-tema] :is(.kp-num b, .kp-lot-num b, .reb-num span, .vz-box b, .mz-ua, .valor, .pn-al-txt b, .pn-alertas-txt b, .pn-at) { color: var(--t-tit) !important; }
html[data-tema] :is(.kp-pe, .kp-meta-lin, .kp-leg, .reb-det, .pn-al-txt small, .pn-alertas-txt small, .vz-box small, .vz-box span) { color: var(--t-txt2) !important; }
html[data-tema] .kp-pe b { color: var(--t-txt) !important; }
html[data-tema] .kpi.kp-lot { background: var(--t-ok) !important; border: 0 !important; }
html[data-tema] .kpi.kp-lot.lot-alerta { background: var(--t-al) !important; } html[data-tema] .kpi.kp-lot.lot-erro { background: var(--t-er) !important; }
html[data-tema] .kpi.kp-lot :is(*, .kp-num b, .kp-lot-num b, .kp-pe, .kp-pe b, .kp-rot) { color: #fff !important; }
html[data-tema] .kpi.kp-lot .kp-st { background: rgba(0,0,0,.22) !important; color: #fff !important; border: 0 !important; }
html[data-tema] .kpi.kp-lot .kp-ic { background: rgba(255,255,255,.18) !important; box-shadow: none !important; }
html[data-tema] :is(.kp-barra, .reb-barra) { background: var(--t-sup2) !important; border: 0 !important; }

/* cards coloridos dos pastos */
html[data-tema] :is(.mz-tile, .sg-tile, .pn-pq):is(.ok, .cinza) { background: var(--t-ok) !important; }
html[data-tema] :is(.mz-tile, .sg-tile, .pn-pq).alerta { background: var(--t-al) !important; }
html[data-tema] :is(.mz-tile, .sg-tile, .pn-pq).erro { background: var(--t-er) !important; }
html[data-tema] :is(.mz-tile, .sg-tile) { border: 0 !important; box-shadow: 0 10px 24px rgba(0,0,0,.18) !important; }
html[data-tema] :is(.mz-tile, .sg-tile, .pn-pq:not(.vazio)) :is(*, b, span, small) { color: #fff !important; }

html[data-tema] .lanc-geral { background: var(--t-ac) !important; border: 0 !important; }
html[data-tema] .lanc-geral :is(*, b, span) { color: var(--t-ac-txt) !important; }

/* busca e ordem */
html[data-tema] .ordem-seg { background: var(--t-sup2) !important; border: 1px solid var(--t-borda2) !important; box-shadow: none !important; }
html[data-tema] .ord-bt { color: var(--t-txt2) !important; }
html[data-tema] .ord-bt.on { background: var(--t-ac) !important; color: var(--t-ac-txt) !important; box-shadow: none !important; }
html[data-tema] .ordem-rot { color: var(--t-txt2) !important; }

/* janelas */
html[data-tema] :is(.modal-fundo, .lf-fundo) { background: rgba(10,12,14,.55) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
html[data-tema] .modal:has(.mf-compacto) .mt-tit, html[data-tema] .lf-modal .mt-tit { background: var(--t-sup-solid) !important; border-color: var(--t-borda) !important; }
html[data-tema] .mf-compacto .mf-acoes { background: var(--t-sup-solid) !important; border-color: var(--t-borda) !important; }
html[data-tema] :is(.modal, .lf-modal) { background: var(--t-sup-solid) !important; }
html[data-tema] .mf-obs { border-color: var(--t-borda2) !important; } html[data-tema] .mf-obs > summary { color: var(--t-txt) !important; }
html[data-tema] .sg-sobra span { background: var(--t-sup2) !important; border-color: var(--t-borda2) !important; color: var(--t-txt) !important; }
html[data-tema] .sg-sobra input:checked + span { background: var(--t-ac) !important; color: var(--t-ac-txt) !important; }

/* ---------- ajustes do tema claro (campo): o app foi feito escuro, então os textos claros voltam a ser escuros ---------- */
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) :is(.cartao, .secao, .kpi:not(.kp-lot), .fz-hero, .reb-cat, .lanc-pq, .lc-card, .modal, .lf-modal, .tabela-wrap, .pn-al, .pn-alertas-bar, .vz-box, .sg-car-box, .cap2-linha, .topo)
  :is(b, strong, span:not(.tag):not(.vz-chip), small, div, p, td, i, em, summary, li, h4):not(.btn):not(.btn *):not(.mz-tile *):not(.sg-tile *):not(.pn-pq *):not(.tag):not(.lanc-geral *):not(.ord-bt.on):not(.ord-bt.on *) { color: inherit; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) :is(.ajuda, .kp-pe, .kp-leg, .reb-det small) { color: var(--t-txt2) !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .cap2-linha { background: #eef6ea !important; border-color: #cfe3c6 !important; color: #23452e !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .tag.ok { background: #e3f2e1 !important; color: #2f7443 !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .tag.alerta { background: #fbeed3 !important; color: #8a5a0e !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .tag.erro { background: #fbe1dc !important; color: #a3352a !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .pn-tudo-ok { background: #eef6ea !important; color: #23452e !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .vz-chip { filter: saturate(.9); }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .voz-avisos { background: #fbf6ec !important; border-color: #e7dcc4 !important; color: var(--t-txt) !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .voz-avisos :is(*) { color: inherit; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .sg-prev { background: #eef6ea !important; border-color: #cfe3c6 !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .sg-prev :is(*, b, small) { color: #23452e !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .sg-sal-info { background: #f6f2ea !important; color: var(--t-txt) !important; border-color: var(--t-borda) !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .kpi.kp-lot { box-shadow: 0 10px 26px rgba(47,116,67,.25) !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) th { background: #f6f2ea !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) td { color: var(--t-txt) !important; border-color: var(--t-borda) !important; }
html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .topo .fz-sel :is(small, .fz-rot) { color: var(--t-rot) !important; }

html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .secao-olho svg, html:is([data-tema="campo"],[data-tema="oliva"],[data-tema="fazenda"]) .mf-x { color: var(--t-txt) !important; }

/* ---------- grafite: brilho sutil no destaque ---------- */
html[data-tema="grafite"] .kpi.kp-lot { box-shadow: 0 14px 34px rgba(47,125,79,.28) !important; }
html[data-tema="grafite"] .pn-at:hover, html[data-tema="grafite"] .pn-al:hover { background: rgba(255,255,255,.07) !important; }
html[data-tema="grafite"] .fz-hero { background: linear-gradient(135deg, rgba(240,138,60,.16), rgba(255,255,255,.03)) !important; }

html[data-tema] :is(input, textarea)::placeholder { color: var(--t-txt2) !important; opacity: .8 !important; }
html[data-tema] .lanc-geral .tag { background: rgba(255,255,255,.92) !important; color: #1f5a33 !important; }
html[data-tema] .lanc-geral .tag.alerta { color: #8a5a0e !important; } html[data-tema] .lanc-geral .tag.erro { color: #a3352a !important; }
@media (min-width: 900px) { html[data-tema] .topo .nav a.ativo, html[data-tema] .topo .nav a.ativo * { color: var(--t-ac-txt) !important; } }
html[data-tema] .topo .fz-sel :is(b, .fz-nome, #fzNome) { letter-spacing: 0 !important; }

/* oliva: topo e barra verde-oliva escuros (texto claro) */
html:is([data-tema="oliva"],[data-tema="fazenda"]) .topo, html:is([data-tema="oliva"],[data-tema="fazenda"]) .nav { background: #2f3a22 !important; border-color: #252e1a !important; }
html:is([data-tema="oliva"],[data-tema="fazenda"]) .topo :is(.fz-sel, #btnSair, #btnAtualizar, button:not(.topo-voz)) { background: rgba(255,255,255,.08) !important; border-color: rgba(255,255,255,.16) !important; }
html:is([data-tema="oliva"],[data-tema="fazenda"]) .topo :is(*, .fz-sel b, .fz-sel span, h1) { color: #f3f0e2 !important; }
html:is([data-tema="oliva"],[data-tema="fazenda"]) .topo .fz-sel :is(small, .fz-rot) { color: #c9d39f !important; }
html:is([data-tema="oliva"],[data-tema="fazenda"]) .fz-hero { background: linear-gradient(135deg, #3b4a28, #2b3620) !important; border: 0 !important; }
html:is([data-tema="oliva"],[data-tema="fazenda"]) .fz-hero :is(*, .fz-hero-nome) { color: #f6f3e6 !important; } html:is([data-tema="oliva"],[data-tema="fazenda"]) .fz-hero .fz-hero-rot { color: #d5df9f !important; }
html:is([data-tema="oliva"],[data-tema="fazenda"]) .secao-ic, html:is([data-tema="oliva"],[data-tema="fazenda"]) .pn-at-ic, html:is([data-tema="oliva"],[data-tema="fazenda"]) .kp-ic { box-shadow: 0 4px 12px rgba(76,92,34,.25) !important; }
/* oceano e ocaso: brilho no destaque */
html[data-tema="oceano"] .fz-hero { background: linear-gradient(135deg, rgba(34,211,176,.16), rgba(56,128,255,.08)) !important; }
html[data-tema="ocaso"] .fz-hero { background: linear-gradient(135deg, rgba(255,154,61,.22), rgba(236,79,114,.16)) !important; }
html[data-tema="oceano"] :is(.secao-ic, .kp-ic, .pn-at-ic) { box-shadow: 0 4px 14px rgba(34,211,176,.3) !important; }
html[data-tema="ocaso"] :is(.secao-ic, .kp-ic, .pn-at-ic) { box-shadow: 0 4px 14px rgba(236,79,114,.35) !important; }
html[data-tema="oceano"] .btn:not(.secundario):not(.perigo), html[data-tema="ocaso"] .btn:not(.secundario):not(.perigo) { box-shadow: 0 8px 20px rgba(0,0,0,.28) !important; }

/* =====================================================================
   FAZENDA (oliva premium): oliva + dourado, botões em pílula, cartões com fio dourado,
   topo com curvas de nível, barra de baixo flutuante
   ===================================================================== */
html[data-tema="fazenda"] {
  --f-oliva: #2f3a22; --f-oliva2: #3e4c2b; --f-oliva3: #56683a; --f-ouro: #c9a45c; --f-ouro2: #e3c487; --f-ouro-esc: #9c7a36; --f-papel: #fbfaf5;
  --t-ac: linear-gradient(180deg, #4a5b30, #2f3a22); --t-ac-txt: #f6e9c8; --t-rot: #8a6d2c; --t-raio: 20px;
  --t-sup: linear-gradient(180deg, #fffefa, #f8f5ec); --t-sombra: 0 1px 0 #fff inset, 0 1px 2px rgba(47,58,34,.06), 0 12px 28px -8px rgba(47,58,34,.18);
  --curvas: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='160' viewBox='0 0 360 160'%3E%3Cg fill='none' stroke='%23c9a45c' stroke-opacity='.22' stroke-width='1.2'%3E%3Cpath d='M-360 16 Q-270 -2 -180 16 T0 16 T180 16 T360 16 T540 16 T720 16'/%3E%3Cpath d='M-360 176 Q-270 158 -180 176 T0 176 T180 176 T360 176 T540 176 T720 176'/%3E%3Cpath d='M-430 48 Q-340 30 -250 48 T-70 48 T110 48 T290 48 T470 48 T650 48'/%3E%3Cpath d='M-510 80 Q-420 62 -330 80 T-150 80 T30 80 T210 80 T390 80 T570 80'/%3E%3Cpath d='M-590 112 Q-500 94 -410 112 T-230 112 T-50 112 T130 112 T310 112 T490 112'/%3E%3Cpath d='M-660 -16 Q-570 -34 -480 -16 T-300 -16 T-120 -16 T60 -16 T240 -16 T420 -16'/%3E%3Cpath d='M-660 144 Q-570 126 -480 144 T-300 144 T-120 144 T60 144 T240 144 T420 144'/%3E%3C/g%3E%3C/svg%3E");
}
html[data-tema="fazenda"] body:not(.modo-login) { background: radial-gradient(1200px 500px at 50% -15%, rgba(201,164,92,.14), transparent 60%), linear-gradient(180deg, #f4f1e7, #ebe6d6) !important; background-attachment: fixed !important; }
/* cartões: papel claro com fio dourado no alto */
html[data-tema="fazenda"] :is(.cartao, .secao, .kpi:not(.kp-lot), .reb-cat, .lanc-pq, .pn-al, .pn-alertas-bar, .vz-box, .tabela-wrap) { border: 1px solid #e4dcc7 !important; position: relative; }
html[data-tema="fazenda"] :is(.cartao, .secao, .kpi:not(.kp-lot)) { overflow: hidden; }
html[data-tema="fazenda"] :is(.cartao, .secao, .kpi:not(.kp-lot))::after { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 2px; border-radius: 0 0 2px 2px; background: linear-gradient(90deg, transparent, var(--f-ouro), transparent); opacity: .75; pointer-events: none; }
/* topo da página da fazenda: oliva com curvas de nível e fio dourado */
html[data-tema="fazenda"] .fz-hero { background: var(--curvas) center / 560px auto repeat, radial-gradient(500px 220px at 100% 0%, rgba(201,164,92,.25), transparent 70%), linear-gradient(135deg, #3e4c2b, #26301b) !important; border: 1px solid rgba(201,164,92,.35) !important; box-shadow: 0 18px 36px -12px rgba(38,48,27,.55), 0 1px 0 rgba(255,255,255,.08) inset !important; }
html[data-tema="fazenda"] .fz-hero .fz-hero-rot { color: var(--f-ouro2) !important; letter-spacing: .22em !important; }
html[data-tema="fazenda"] .fz-hero .fz-hero-nome { font-size: 30px !important; color: #fbf3df !important; }
@media (max-width: 700px) { html[data-tema="fazenda"] .fz-hero .fz-hero-nome { font-size: 24px !important; } }
/* títulos e rótulos */
html[data-tema="fazenda"] :is(.secao-cab h3, .cartao-tit, .cartao h3, .mt-tit) { font-family: "DM Serif Display", Georgia, serif !important; font-weight: 400 !important; font-size: 21px !important; color: var(--f-oliva) !important; }
html[data-tema="fazenda"] :is(label, th, .kp-rot, .fz-hero-rot, .pn-retiro-nome, .sg-car-cab span, .lc-rot) { letter-spacing: .16em !important; font-weight: 700 !important; font-size: 10.5px !important; color: var(--t-rot) !important; }
html[data-tema="fazenda"] :is(.kp-num b, .kp-lot-num b, .reb-num span, .vz-box b) { font-family: "DM Serif Display", Georgia, serif !important; font-weight: 400 !important; letter-spacing: -.01em; }
/* ícones das seções: medalhão oliva com aro dourado */
html[data-tema="fazenda"] :is(.secao-ic, .kp-ic, .mt-tit .secao-ic) { background: radial-gradient(circle at 30% 25%, #5a6c3c, #2f3a22) !important; box-shadow: 0 0 0 2px #fffdf6, 0 0 0 3px rgba(201,164,92,.75), 0 6px 14px rgba(47,58,34,.3) !important; border-radius: 50% !important; color: #f6e9c8 !important; }
html[data-tema="fazenda"] .kp-ic svg { color: #f3dca6 !important; }
/* BOTÕES em pílula: principal oliva com texto dourado e brilho; secundário contorno */
html[data-tema="fazenda"] .btn { border-radius: 999px !important; font-weight: 700 !important; letter-spacing: .02em; transition: transform .12s ease, box-shadow .18s ease, filter .18s ease !important; }
html[data-tema="fazenda"] .btn:not(.secundario):not(.perigo) { background: linear-gradient(180deg, #56683a 0%, #3a4728 55%, #2b3520 100%) !important; color: #f6e5bb !important; border: 1px solid #c9a45c !important;
  box-shadow: 0 1px 0 rgba(255,240,200,.35) inset, 0 -2px 0 rgba(0,0,0,.25) inset, 0 8px 18px -6px rgba(38,48,27,.6), 0 0 0 3px rgba(201,164,92,.14) !important; }
html[data-tema="fazenda"] .btn:not(.secundario):not(.perigo):hover { filter: brightness(1.08); box-shadow: 0 1px 0 rgba(255,240,200,.4) inset, 0 -2px 0 rgba(0,0,0,.25) inset, 0 12px 24px -8px rgba(38,48,27,.65), 0 0 0 4px rgba(201,164,92,.22) !important; }
html[data-tema="fazenda"] .btn:active { transform: translateY(1px) scale(.99); }
html[data-tema="fazenda"] .btn.secundario { background: #fffdf7 !important; color: var(--f-oliva) !important; border: 1.5px solid #cdbf98 !important; box-shadow: 0 1px 0 #fff inset, 0 4px 10px -6px rgba(47,58,34,.25) !important; }
html[data-tema="fazenda"] .btn.secundario:hover { border-color: var(--f-ouro) !important; background: #fffaf0 !important; }
html[data-tema="fazenda"] .btn.perigo { background: linear-gradient(180deg, #c4644b, #96402c) !important; color: #fff4e6 !important; border: 1px solid #e3b08f !important; box-shadow: 0 1px 0 rgba(255,220,200,.35) inset, 0 8px 18px -6px rgba(150,64,44,.55) !important; }
/* atalhos: cartões altos com medalhão dourado e seta */
html[data-tema="fazenda"] .pn-at { background: linear-gradient(180deg, #fffefa, #f6f1e3) !important; border: 1px solid #e4dcc7 !important; color: var(--f-oliva) !important; position: relative; }
html[data-tema="fazenda"] .pn-at::after { content: "›"; position: absolute; right: 10px; top: 8px; font-size: 16px; color: var(--f-ouro); }
html[data-tema="fazenda"] .pn-at-ic { background: radial-gradient(circle at 30% 25%, #e8cf96, #b98d3f) !important; border-radius: 50% !important; box-shadow: 0 0 0 3px #fffdf6, 0 0 0 4px rgba(156,122,54,.45), 0 8px 16px -6px rgba(120,90,30,.6) !important; }
html[data-tema="fazenda"] .pn-at:hover { border-color: var(--f-ouro) !important; transform: translateY(-2px); }
html[data-tema="fazenda"] .pn-at span { color: var(--f-oliva) !important; }
/* avisos */
html[data-tema="fazenda"] .pn-alertas-bar { border-left: 4px solid var(--f-ouro) !important; }
html[data-tema="fazenda"] .pn-alertas-ver { border-radius: 999px !important; border-color: var(--f-ouro) !important; color: var(--f-ouro-esc) !important; }
/* lotação: oliva com ponteiro dourado */
html[data-tema="fazenda"] .kpi.kp-lot { background: var(--curvas) center / 560px auto repeat, linear-gradient(150deg, #56683a, #2f3a22) !important; border: 1px solid rgba(201,164,92,.45) !important; box-shadow: 0 18px 34px -14px rgba(38,48,27,.6) !important; }
html[data-tema="fazenda"] .kpi.kp-lot.lot-alerta { background: var(--curvas) center / 560px auto repeat, linear-gradient(150deg, #b48a2f, #7a5a17) !important; }
html[data-tema="fazenda"] .kpi.kp-lot.lot-erro { background: var(--curvas) center / 560px auto repeat, linear-gradient(150deg, #b5543d, #7e3122) !important; }
html[data-tema="fazenda"] .kp-gauge .g-valor { stroke: var(--f-ouro2) !important; }
html[data-tema="fazenda"] .kp-gauge .g-fundo { stroke: rgba(0,0,0,.22) !important; }
html[data-tema="fazenda"] .kpi.kp-lot .kp-st { background: rgba(255,240,200,.16) !important; border: 1px solid rgba(227,196,135,.5) !important; color: #f6e5bb !important; }
/* busca, ordem e chips */
html[data-tema="fazenda"] .ordem-seg { border-radius: 999px !important; background: #f1ecdd !important; }
html[data-tema="fazenda"] .ord-bt { border-radius: 999px !important; }
html[data-tema="fazenda"] .ord-bt.on { background: linear-gradient(180deg, #56683a, #2f3a22) !important; color: #f6e5bb !important; }
html[data-tema="fazenda"] :is(.secao-cont, .cap-selo, .reb-pct) { border-radius: 999px !important; background: #f4eedd !important; border: 1px solid #e0d3b0 !important; color: #6f5a26 !important; }
html[data-tema="fazenda"] .conteudo :is(input[type=search], .busca-cards) { border-radius: 999px !important; padding-left: 18px !important; }
html[data-tema="fazenda"] :is(.modal, .conteudo, .lf-modal) :is(input, select, textarea):focus { border-color: var(--f-ouro) !important; box-shadow: 0 0 0 3px rgba(201,164,92,.25) !important; }
/* cards dos pastos: tons da terra, refinados */
html[data-tema="fazenda"] { --t-ok: linear-gradient(155deg, #6b8540, #43592a); --t-al: linear-gradient(155deg, #c59a3e, #8d6a20); --t-er: linear-gradient(155deg, #c0644a, #8a3b28); }
html[data-tema="fazenda"] :is(.mz-tile, .sg-tile) { border: 1px solid rgba(255,240,200,.25) !important; box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 14px 28px -12px rgba(38,48,27,.55) !important; }
html[data-tema="fazenda"] .lanc-geral { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #3e4c2b, #26301b) !important; border: 1px solid rgba(201,164,92,.4) !important; }
html[data-tema="fazenda"] .lanc-geral :is(*, b, span) { color: #f6e9c8 !important; }

html[data-tema="fazenda"] .lanc-geral .tag { color: #2f3a22 !important; background: #f6e5bb !important; }

/* barra de baixo flutuante (celular) e topo */
@media (max-width: 899px) {
  html[data-tema="fazenda"] .nav { left: 10px !important; right: 10px !important; bottom: calc(8px + env(safe-area-inset-bottom)) !important; border-radius: 22px !important; padding-bottom: 6px !important; background: rgba(38,48,27,.94) !important; border: 1px solid rgba(201,164,92,.35) !important; box-shadow: 0 16px 34px -10px rgba(20,26,14,.6) !important; }
  html[data-tema="fazenda"] .nav a.ativo { color: var(--f-ouro2) !important; }
  html[data-tema="fazenda"] .nav a.ativo::after { background: var(--f-ouro) !important; box-shadow: 0 0 10px rgba(201,164,92,.7) !important; }
}
html[data-tema="fazenda"] .topo { background: linear-gradient(180deg, #2f3a22, #26301b) !important; border-bottom: 1px solid rgba(201,164,92,.35) !important; }
@media (min-width: 900px) { html[data-tema="fazenda"] .topo .nav a.ativo { background: linear-gradient(180deg, #e3c487, #b98d3f) !important; } html[data-tema="fazenda"] .topo .nav a.ativo, html[data-tema="fazenda"] .topo .nav a.ativo * { color: #2b3520 !important; } }
/* microfone dourado */
html[data-tema="fazenda"] :is(.nav-voz, #vozFab) :is(span, .nav-voz-bt, .voz-fab-bt), html[data-tema="fazenda"] #vozFab { --mic: 1; }
html[data-tema="fazenda"] .topo .topo-voz { background: radial-gradient(circle at 30% 20%, #ecd29b, #b98d3f 75%) !important; color: #2b3520 !important; border: 1px solid #f3dfae !important; }
/* janelas */
html[data-tema="fazenda"] :is(.modal, .lf-modal) { border: 1px solid #e0d3b0 !important; }
html[data-tema="fazenda"] .modal:has(.mf-compacto) .mt-tit, html[data-tema="fazenda"] .lf-modal .mt-tit { background: linear-gradient(180deg, #fffefa, #f6f1e3) !important; }
html[data-tema="fazenda"] .sg-sobra input:checked + span { background: linear-gradient(180deg, #56683a, #2f3a22) !important; color: #f6e5bb !important; border-color: var(--f-ouro) !important; }
html[data-tema="fazenda"] .sg-sobra span { border-radius: 14px !important; }
html[data-tema="fazenda"] .nav-voz .bola { background: radial-gradient(circle at 32% 22%, #f1dba6, #c39545 60%, #8a6524 100%) !important; border: 2px solid #fff3d2 !important; box-shadow: 0 0 0 4px rgba(38,48,27,.9), 0 10px 22px rgba(120,90,30,.55) !important; }
html[data-tema="fazenda"] .nav-voz .bola :is(svg, *) { color: #2b3520 !important; }
html[data-tema="fazenda"] body .pn-at .pn-at-ic { background: radial-gradient(circle at 30% 25%, #ecd29b, #b98d3f 70%, #8a6524) !important; border-radius: 50% !important; box-shadow: 0 0 0 3px #fffdf6, 0 0 0 4px rgba(156,122,54,.45), 0 8px 16px -6px rgba(120,90,30,.6) !important; }
html[data-tema="fazenda"] body :is(.secao-cab h3, .cartao-tit, .cartao h3, .mt-tit) { line-height: 1.15 !important; }
@media (max-width: 700px) { html[data-tema="fazenda"] body :is(.secao-cab h3, .cartao-tit, .cartao h3, .mt-tit) { font-size: 19px !important; } }
html[data-tema="fazenda"] .kp-gauge :is(.g-valor, path:nth-of-type(2)) { stroke: #e3c487 !important; }
@media (max-width: 700px) { html[data-tema="fazenda"] .pn-at::after { display: none; } }

/* ---------- Oliva Premium: telas restantes (relatórios, negócios, histórico, admin, voz, login) ---------- */
/* seletor de relatório / admin (carrossel do topo) */
html[data-tema="fazenda"] .rsel-bar { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #3e4c2b, #26301b) !important; border: 1px solid rgba(201,164,92,.4) !important; box-shadow: 0 14px 28px -14px rgba(38,48,27,.6) !important; }
html[data-tema="fazenda"] .rsel-seta { background: rgba(255,240,200,.08) !important; border: 1px solid rgba(201,164,92,.35) !important; color: #f3dca6 !important; border-radius: 999px !important; }
html[data-tema="fazenda"] .rsel-ic { background: radial-gradient(circle at 30% 25%, #ecd29b, #b98d3f 70%, #8a6524) !important; color: #2b3520 !important; border-radius: 50% !important; box-shadow: 0 0 0 2px rgba(255,248,225,.85), 0 6px 14px rgba(0,0,0,.35) !important; }
html[data-tema="fazenda"] .rsel-tx small { color: #d9c08a !important; } html[data-tema="fazenda"] .rsel-tx b { color: #fbf3df !important; font-family: "DM Serif Display", Georgia, serif !important; font-weight: 400 !important; font-size: 20px !important; }
html[data-tema="fazenda"] .rsel-trocar { background: linear-gradient(180deg, #ecd29b, #b98d3f) !important; color: #2b3520 !important; border: 1px solid #f3dfae !important; border-radius: 999px !important; text-shadow: none !important; }
html[data-tema="fazenda"] :is(.rsel-pontos i, .rsel-dots i, .rsel-pts i) { background: #d6cdb4 !important; } html[data-tema="fazenda"] :is(.rsel-pontos i.on, .rsel-dots i.on, .rsel-pts i.on) { background: var(--f-ouro) !important; }
html[data-tema="fazenda"] .rsel-lista { background: #fffdf7 !important; border: 1px solid #e0d3b0 !important; box-shadow: 0 18px 40px -12px rgba(38,48,27,.35) !important; color: var(--t-txt) !important; }
html[data-tema="fazenda"] .rsel-lista :is(*) { color: inherit; }
/* números dos relatórios */
html[data-tema="fazenda"] .rk { background: linear-gradient(180deg, #fffefa, #f4efe1) !important; border: 1px solid #e4dcc7 !important; box-shadow: 0 10px 22px -14px rgba(47,58,34,.35) !important; color: var(--t-txt) !important; }
html[data-tema="fazenda"] .rk :is(b, strong) { color: var(--f-oliva) !important; font-family: "DM Serif Display", Georgia, serif !important; font-weight: 400 !important; }
html[data-tema="fazenda"] .rk :is(small, span, div) { color: var(--t-txt2); }
html[data-tema="fazenda"] .rk > :first-child { color: var(--t-rot) !important; }
html[data-tema="fazenda"] :is(.rk.ok, .rk.bom) { box-shadow: inset 4px 0 0 #6b8540, 0 10px 22px -14px rgba(47,58,34,.35) !important; }
html[data-tema="fazenda"] :is(.rk.alerta, .rk.atencao) { box-shadow: inset 4px 0 0 #c59a3e, 0 10px 22px -14px rgba(47,58,34,.35) !important; }
html[data-tema="fazenda"] .rk.erro { box-shadow: inset 4px 0 0 #c0644a, 0 10px 22px -14px rgba(47,58,34,.35) !important; }
html[data-tema="fazenda"] h4 { color: var(--f-oliva) !important; font-family: "DM Serif Display", Georgia, serif !important; font-weight: 400 !important; }
html[data-tema="fazenda"] :is(.tb-rel, table) tbody tr:nth-child(even) td { background: rgba(201,164,92,.05) !important; }
html[data-tema="fazenda"] :is(.rl-card, .rl-pq, .rd-card, .lt-card, .rel-card) { background: linear-gradient(180deg, #fffefa, #f6f1e3) !important; border: 1px solid #e4dcc7 !important; color: var(--t-txt) !important; }
/* negócios: compra / venda */
html[data-tema="fazenda"] .ng-tipo { border-radius: 999px !important; overflow: hidden; border: 1px solid #d9cba4 !important; background: #f4eedd !important; }
html[data-tema="fazenda"] .ng-opt span { background: transparent !important; color: #6d5a2a !important; }
html[data-tema="fazenda"] .ng-opt + .ng-opt span { border-left-color: #d9cba4 !important; }
html[data-tema="fazenda"] .ng-opt.compra input:checked + span { background: linear-gradient(180deg, #ecd29b, #b98d3f) !important; color: #2b3520 !important; }
html[data-tema="fazenda"] .ng-opt.venda input:checked + span { background: linear-gradient(180deg, #56683a, #2f3a22) !important; color: #f6e5bb !important; }
html[data-tema="fazenda"] .ng-opt span :is(small, i) { color: inherit !important; opacity: .8; }
html[data-tema="fazenda"] .ng-total { background: linear-gradient(135deg, #3e4c2b, #26301b) !important; color: #f6e5bb !important; border: 1px solid rgba(201,164,92,.45) !important; border-radius: 14px !important; }
html[data-tema="fazenda"] .ng-total :is(*) { color: inherit !important; }

/* salga: últimos lançamentos */
html[data-tema="fazenda"] :is(.sg-mini, .sg-mini.salga) { background: linear-gradient(160deg, #8c6a35, #5e4420) !important; }

/* foto da morte */
html[data-tema="fazenda"] .mt-foto { background: #f7f2e4 !important; border: 1.5px dashed #cdbf98 !important; }
html[data-tema="fazenda"] .mt-foto .mt-foto-vazio, html[data-tema="fazenda"] .mt-foto .mt-foto-vazio * { color: #6d5a2a !important; }
html[data-tema="fazenda"] .mt-foto:hover { border-color: var(--f-ouro) !important; background: #fbf6e8 !important; }
/* ficha do pasto: quadro do lançamento */

html[data-tema="fazenda"] :is(.lc-card, .ficha-lote) :is(b, span, small) { color: inherit; }
/* microfone: caixa de fala */
html[data-tema="fazenda"] .voz-dock { background: linear-gradient(180deg, #2f3a22, #232c19) !important; border: 1px solid rgba(201,164,92,.45) !important; box-shadow: 0 22px 44px -10px rgba(20,26,14,.6) !important; }
html[data-tema="fazenda"] .voz-dock :is(.vzi-card, .vzi-nada) { background: rgba(255,248,225,.06) !important; border-color: rgba(201,164,92,.3) !important; color: #f3ead2 !important; }
html[data-tema="fazenda"] .voz-dock .vzi-bar { background: rgba(0,0,0,.25) !important; border-color: rgba(201,164,92,.35) !important; }
html[data-tema="fazenda"] .voz-dock :is(.vzi-rec, .vzi-tempo, .vzi-txt, .vzi-dica, .vzi-link) { color: #f3ead2 !important; }
html[data-tema="fazenda"] .voz-dock .vzi-onda i { background: #e3c487 !important; }
html[data-tema="fazenda"] .voz-dock .vzi-parar { background: radial-gradient(circle at 30% 25%, #ecd29b, #b98d3f) !important; }
html[data-tema="fazenda"] .voz-avisos { border-radius: 14px !important; }
/* histórico: botões de limpar mais discretos */
html[data-tema="fazenda"] .btn.perigo.pequeno, html[data-tema="fazenda"] :is(#btnLimparHist, #btnLimparMt, #btnLimparSg) { background: #fff6f1 !important; color: #96402c !important; border: 1.5px solid #e3b6a4 !important; box-shadow: none !important; }
/* login */
html[data-tema="fazenda"] body.modo-login { background: #26301b !important; }
html[data-tema="fazenda"] .lg-fundo { background: var(--curvas) center / 680px auto repeat, radial-gradient(900px 500px at 50% -10%, rgba(201,164,92,.28), transparent 60%), linear-gradient(180deg, #34412a, #1e2616) !important; }
html[data-tema="fazenda"] .lg-fundo::before { display: none !important; }

 

html[data-tema="fazenda"] :is(.lg-ic, .lg-olho) { color: var(--f-oliva3) !important; }

html[data-tema="fazenda"] .lg-rodape { color: rgba(246,233,200,.6) !important; }
html[data-tema="fazenda"] .rsel-pts i { background: #d6cdb4 !important; } html[data-tema="fazenda"] .rsel-pts i.sel { background: var(--f-ouro) !important; }
html[data-tema="fazenda"] .rk::before { display: block !important; }

html[data-tema="fazenda"] .rk > small { color: var(--t-rot) !important; } html[data-tema="fazenda"] .rk > span { color: var(--t-txt2) !important; }
html[data-tema="fazenda"] .rk::before { background: #c9a45c !important; }
html[data-tema="fazenda"] .rk.ok::before { background: #6b8540 !important; } html[data-tema="fazenda"] .rk.alerta::before { background: #c59a3e !important; } html[data-tema="fazenda"] .rk.erro::before { background: #c0644a !important; }
html[data-tema="fazenda"] .rk b { color: var(--f-oliva) !important; font-size: 28px !important; }
html[data-tema="fazenda"] .rk.ok b { color: #43592a !important; } html[data-tema="fazenda"] .rk.alerta b { color: #8d6a20 !important; } html[data-tema="fazenda"] .rk.erro b { color: #8a3b28 !important; }

html[data-tema="fazenda"] .rk.rk-longo b { font-size: clamp(16px, 5vw, 24px) !important; }
html[data-tema="fazenda"] .tag:not(.ok):not(.alerta):not(.erro) { background: #efe6cf !important; color: #6d5a2a !important; }
html[data-tema="fazenda"] .sg-est { background: linear-gradient(180deg, #fffefa, #f4efe1) !important; border: 1px solid #e4dcc7 !important; box-shadow: inset 4px 0 0 #c9a45c, 0 8px 18px -12px rgba(47,58,34,.35) !important; color: var(--t-txt) !important; }
html[data-tema="fazenda"] .sg-est.ok { box-shadow: inset 4px 0 0 #6b8540, 0 8px 18px -12px rgba(47,58,34,.35) !important; }
html[data-tema="fazenda"] .sg-est.alerta { box-shadow: inset 4px 0 0 #c59a3e, 0 8px 18px -12px rgba(47,58,34,.35) !important; }
html[data-tema="fazenda"] .sg-est.erro { box-shadow: inset 4px 0 0 #c0644a, 0 8px 18px -12px rgba(47,58,34,.35) !important; }
html[data-tema="fazenda"] .sg-est :is(small, i, .sg-est-sub) { color: var(--t-txt2) !important; } html[data-tema="fazenda"] .sg-est b { color: var(--f-oliva) !important; } html[data-tema="fazenda"] .sg-est small { color: var(--t-rot) !important; }
html[data-tema="fazenda"] .sg-ult-dir a { background: #f4eedd !important; border: 1px solid #e0d3b0 !important; color: #6d5a2a !important; }
/* v1.92.1 – barra de baixo mais perto do rodapé e microfone mais para dentro (só um pedaço para fora) */
@media (max-width: 899px) {
  html[data-tema="fazenda"] .nav { bottom: max(6px, calc(env(safe-area-inset-bottom) - 16px)) !important; }
  html[data-tema="fazenda"] .nav-voz { transform: translateY(var(--mic-y, 17px)); }
  html[data-tema="fazenda"] .nav-voz .bola { width: 52px !important; height: 52px !important; box-shadow: 0 0 0 3px rgba(201,164,92,.35), 0 6px 14px rgba(10,14,6,.5) !important; }
}

/* v1.92.2 – avisos (notificações) e tela de abertura no Oliva Premium */
html[data-tema="fazenda"] #avisos:not(:empty) { background: var(--curvas) center / 560px auto repeat, linear-gradient(180deg, #34412a, #26301b) !important; border-bottom: 1px solid rgba(201,164,92,.45) !important; box-shadow: 0 10px 24px -8px rgba(20,26,14,.5) !important; }
html[data-tema="fazenda"] #avisos .toast { background: linear-gradient(180deg, #fffefa, #f4efe1) !important; color: #2a2d22 !important; border: 1px solid rgba(201,164,92,.55) !important; border-left-width: 1px !important; border-radius: 999px !important;
  box-shadow: 0 1px 0 #fff inset, 0 8px 20px -8px rgba(10,14,6,.55) !important; padding: 6px 12px 8px 6px !important; font-family: "DM Sans", system-ui, sans-serif !important; }

html[data-tema="fazenda"] #avisos .aviso-erro { background: linear-gradient(180deg, #fff8f4, #f8e9e2) !important; border-color: #e3b6a4 !important; }

/* tela de abertura (logo carregando) */
html[data-tema="fazenda"] .carga-ini { background: var(--curvas) center / 620px auto repeat, radial-gradient(700px 420px at 50% 40%, rgba(201,164,92,.22), transparent 65%), linear-gradient(180deg, #34412a, #1e2616) !important; gap: 22px !important; }
html[data-tema="fazenda"] .carga-ini img { width: 96px !important; height: 92px !important; border-radius: 24px !important; box-shadow: 0 0 0 3px #26301b, 0 0 0 5px rgba(227,196,135,.85), 0 0 0 12px rgba(201,164,92,.12), 0 18px 40px rgba(0,0,0,.55) !important; animation: fzPulso 1.8s ease-in-out infinite !important; }
html[data-tema="fazenda"] .carga-ini span { width: 140px !important; height: 3px !important; background: linear-gradient(90deg, transparent, #e3c487, transparent) 0 0 / 50% 100% no-repeat, rgba(227,196,135,.18) !important; }
html[data-tema="fazenda"] .carga-ini span { order: 2; }
html[data-tema="fazenda"] .carga-ini .carga-msg { order: 3; background: linear-gradient(180deg, #ecd29b, #b98d3f) !important; color: #2b3520 !important; border: 1px solid #f3dfae !important; border-radius: 999px !important; }
@keyframes fzPulso { 0%, 100% { transform: scale(1); box-shadow: 0 0 0 3px #26301b, 0 0 0 5px rgba(227,196,135,.85), 0 0 0 12px rgba(201,164,92,.12), 0 18px 40px rgba(0,0,0,.55); }
  50% { transform: scale(.96); box-shadow: 0 0 0 3px #26301b, 0 0 0 5px rgba(227,196,135,.85), 0 0 0 20px rgba(201,164,92,.05), 0 18px 40px rgba(0,0,0,.55); } }
@media (prefers-reduced-motion: reduce) { html[data-tema="fazenda"] .carga-ini img { animation: none !important; } }
/* status bar do iPhone na abertura e no login */
html[data-tema="fazenda"] body.modo-login, html[data-tema="fazenda"] { background-color: #26301b; }
html[data-tema="fazenda"] .loading { color: #6d6f5c; }

/* v1.92.2 – últimos restos do tema antigo */

html[data-tema="fazenda"] .kp-barra i { background: linear-gradient(90deg, #56683a, #c9a45c) !important; box-shadow: none !important; }
html[data-tema="fazenda"] .kp-barra.ok i { background: linear-gradient(90deg, #56683a, #8fae55) !important; }
html[data-tema="fazenda"] .kp-barra.alerta i { background: linear-gradient(90deg, #b98d3f, #e3c487) !important; }
html[data-tema="fazenda"] .kp-barra.erro i { background: linear-gradient(90deg, #96402c, #c0644a) !important; }

/* mensagens de erro nas janelas */
html[data-tema="fazenda"] .msg.erro { background: #fbebe5 !important; color: #8a3b28 !important; border: 1px solid #e8bfae !important; }
html[data-tema="fazenda"] .msg.erro :is(*) { color: inherit !important; }
html[data-tema="fazenda"] .msg:not(.erro) { background: #f4eedd !important; color: var(--t-txt) !important; border: 1px solid #e0d3b0 !important; }
/* Admin › Backup e saúde */
html[data-tema="fazenda"] .bk-lista, html[data-tema="fazenda"] .bk-lista :is(li, code, span) { color: var(--t-txt) !important; }

/* gráfico de compras e vendas (Negócios › Relatório) */
html[data-tema="fazenda"] .ng-graf-box { background: linear-gradient(180deg, #fffefa, #f4efe1) !important; border: 1px solid #e4dcc7 !important; }
html[data-tema="fazenda"] .ng-graf-tit { color: var(--f-oliva) !important; }
html[data-tema="fazenda"] .ng-leg i.c { background: #c9a45c !important; } html[data-tema="fazenda"] .ng-leg i.v { background: #56683a !important; }

 html[data-tema="fazenda"] .ng-graf :is(.gb-m, text) { fill: #6d5a2a !important; }

html[data-tema="fazenda"] .rel-graf-box { background: linear-gradient(180deg, #fffefa, #f4efe1) !important; border: 1px solid #e4dcc7 !important; }
html[data-tema="fazenda"] .rel-graf-tit { color: var(--f-oliva) !important; }
html[data-tema="fazenda"] .rel-graf .gl-grade { stroke: #e2dac6 !important; }
html[data-tema="fazenda"] .rel-graf :is(.gl-y, .gl-x) { fill: #6d5a2a !important; font-family: "DM Sans", system-ui, sans-serif !important; }
/* gráfico preço médio por cabeça: compras dourado, vendas oliva */
html[data-tema="fazenda"] .ng-graf.gp :is(.gp-linha, .gp-med).gp-c { stroke: #b98d3f !important; } html[data-tema="fazenda"] .ng-graf.gp :is(.gp-linha, .gp-med).gp-v { stroke: #56683a !important; }
html[data-tema="fazenda"] .ng-graf.gp .gp-p.gp-c { fill: #b98d3f !important; } html[data-tema="fazenda"] .ng-graf.gp .gp-p.gp-v { fill: #56683a !important; }
html[data-tema="fazenda"] .ng-graf.gp .gp-p { stroke: #fffdf6 !important; }
html[data-tema="fazenda"] .ng-graf.gp .gp-pt:hover .gp-p { stroke: #2f3a22 !important; }
html[data-tema="fazenda"] .ng-graf.gp .gp-grade { stroke: #e2dac6 !important; }
html[data-tema="fazenda"] .ng-graf.gp :is(.gp-y, .gp-rot, text) { fill: #6d5a2a !important; }
html[data-tema="fazenda"] .ng-graf.gp .gp-faixa { fill: rgba(201,164,92,.08) !important; stroke: rgba(201,164,92,.3) !important; }
html[data-tema="fazenda"] .gp-resumo { border-top-color: #e2dac6 !important; } html[data-tema="fazenda"] .gp-resumo b { color: var(--f-oliva) !important; }
html[data-tema="fazenda"] .gp-resumo i.c { background: #b98d3f !important; } html[data-tema="fazenda"] .gp-resumo i.v { background: #56683a !important; }
html[data-tema="fazenda"] .gp-resumo .gp-dif.pos b { color: #43592a !important; } html[data-tema="fazenda"] .gp-resumo .gp-dif.neg b { color: #8a3b28 !important; }
html[data-tema="fazenda"] .ng-graf.gp .gp-ct { fill: #8a6524 !important; } html[data-tema="fazenda"] .ng-graf.gp .gp-vt { fill: #43592a !important; }
html[data-tema="fazenda"] .ng-graf.gp .gp-rv { fill: #2f3a22 !important; }

/* =====================================================================
   MODO ESCURO do Oliva Premium – html[data-tema="fazenda"][data-modo="escuro"]
   (o modo "automático" segue o aparelho; a troca é pelo botão 🌗 no topo)
   ===================================================================== */
html[data-tema="fazenda"][data-modo="escuro"] {
  color-scheme: dark;
  --t-bg: #111110; --t-txt: #e9e3cf; --t-txt2: #a9a68e; --t-tit: #f6efda; --t-rot: #d9b86e; --f-oliva: #efe2bd;
  --t-in-bg: #212120; --t-in-txt: #f1ebd6; --t-in-borda: #3a3a39; --t-borda: #2f2f2e; --t-borda2: #3a3a39;
  --t-sup: linear-gradient(180deg, #1f1f1e, #1a1a19); --t-sup2: #242423; --t-sup-solid: #1b1b1a;
  --t-sombra: 0 1px 0 rgba(255,240,200,.04) inset, 0 14px 30px -10px rgba(0,0,0,.6);
  --seta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23d9b86e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
html[data-tema="fazenda"][data-modo="escuro"], html[data-tema="fazenda"][data-modo="escuro"] body { background: #111110 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body:not(.modo-login) { background: radial-gradient(1200px 520px at 50% -15%, rgba(201,164,92,.10), transparent 60%), linear-gradient(180deg, #151514, #0f0f0e) !important; background-attachment: fixed !important; }

/* superfícies claras → escuras */
html[data-tema="fazenda"][data-modo="escuro"] :is(.cartao, .secao, .kpi:not(.kp-lot), .reb-cat, .lanc-pq, .lc-card, .ng-k, .tabela-wrap, .pn-al, .pn-alertas-bar, .pn-at, .vz-box, .sg-car-box,
  .rk, .rl-card, .rl-pq, .rd-card, .lt-card, .rel-card, .sg-est, .sd-it, .ng-graf-box, .rel-graf-box, .fp-lote, .rsel-lista, .lg-cartao) {
  background: linear-gradient(180deg, #1f1f1e, #191918) !important; border-color: #30302f !important; color: var(--t-txt) !important; box-shadow: 0 1px 0 rgba(255,240,200,.04) inset, 0 14px 30px -12px rgba(0,0,0,.65) !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.modal, .lf-modal) { background: #1a1a19 !important; border-color: #363635 !important; color: var(--t-txt) !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.modal:has(.mf-compacto) .mt-tit, .lf-modal .mt-tit, .mf-compacto .mf-acoes) { background: #1e1e1d !important; border-color: #30302f !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.modal-fundo, .lf-fundo) { background: rgba(3,5,2,.65) !important; }

/* textos que eram escuros */
html[data-tema="fazenda"][data-modo="escuro"] :is(.cartao, .secao, .kpi:not(.kp-lot), .reb-cat, .lanc-pq, .lc-card, .modal, .lf-modal, .tabela-wrap, .pn-al, .pn-alertas-bar, .vz-box, .sg-car-box, .fp-lote, .rk, .sg-est, .sd-it, .rsel-lista) :is(td, li, p, h4, summary) { color: var(--t-txt) !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.pn-al-txt span, .pn-at span, .pn-alertas-txt b, .pn-al-txt b) { color: var(--t-tit) !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.ajuda, small, .kp-pe, .kp-leg, .reb-det small, .sd-tx small, .rk > span, .sg-est :is(i, .sg-est-sub)):not(:is(.mz-tile, .sg-tile, .pn-pq, .ng-opt, .kp-lot, .lanc-geral, .fz-hero, .rsel-bar, .voz-dock, #avisos, .topo, .ng-total) *) { color: var(--t-txt2) !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(label, th, .kp-rot, .pn-retiro-nome, .sg-car-cab span, .lc-rot, .rk > small, .sg-est small):not(:is(.mz-tile, .sg-tile, .pn-pq, .ng-opt, .kp-lot, .lanc-geral, .fz-hero, .rsel-bar, .sg-sobra) *):not(.ng-opt):not(.sg-sobra label) { color: #d9b86e !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.kp-num b, .reb-num span, .vz-box b, .rk b, .sg-est b, .valor, .fp-big, .fp-nome) { color: #f6efda !important; }
html[data-tema="fazenda"][data-modo="escuro"] .rk.ok b { color: #a9cf7d !important; } html[data-tema="fazenda"][data-modo="escuro"] .rk.alerta b { color: #e8c675 !important; } html[data-tema="fazenda"][data-modo="escuro"] .rk.erro b { color: #ec9a82 !important; }
html[data-tema="fazenda"][data-modo="escuro"] th { background: #1b1b1a !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.tb-rel, table) tbody tr:nth-child(even) td { background: rgba(201,164,92,.04) !important; }
html[data-tema="fazenda"][data-modo="escuro"] td { border-color: #2b2b2a !important; }
/* campos */
html[data-tema="fazenda"][data-modo="escuro"] :is(.modal, .conteudo, .lf-modal) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]), select, textarea) { background-color: #212120 !important; color: #f1ebd6 !important; border-color: #3a3a39 !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(input, textarea)::placeholder { color: #8d8a73 !important; }
html[data-tema="fazenda"][data-modo="escuro"] input[type=date]::-webkit-calendar-picker-indicator { filter: invert(.85) sepia(.4); }
/* botões, chips, seletores */
html[data-tema="fazenda"][data-modo="escuro"] .btn.secundario { background: #212120 !important; color: #efe2bd !important; border-color: #494948 !important; box-shadow: none !important; }
html[data-tema="fazenda"][data-modo="escuro"] .btn.secundario:hover { border-color: #c9a45c !important; background: #252524 !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.secao-cont, .cap-selo, .reb-pct, .sg-ult-dir a, .tag:not(.ok):not(.alerta):not(.erro), .sd-st) { background: #272726 !important; border-color: #3f3f3e !important; color: #d9c08a !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.secao-olho, .mf-x) { background: #242423 !important; border-color: #3a3a39 !important; color: #efe2bd !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ordem-seg, html[data-tema="fazenda"][data-modo="escuro"] .ng-tipo { background: #212120 !important; border-color: #3a3a39 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ord-bt:not(.on) { color: #b9b49a !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-opt span { color: #d9c08a !important; } html[data-tema="fazenda"][data-modo="escuro"] .ng-opt + .ng-opt span { border-left-color: #3a3a39 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-opt input:checked + span { color: #1f1f1e !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-opt.venda input:checked + span { color: #f6e5bb !important; }
html[data-tema="fazenda"][data-modo="escuro"] .pn-at { background: linear-gradient(180deg, #212120, #1a1a19) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .pn-at-ic { box-shadow: 0 0 0 3px #1b1b1a, 0 0 0 4px rgba(201,164,92,.55), 0 8px 16px -6px rgba(0,0,0,.7) !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.secao-ic, .kp-ic, .mt-tit .secao-ic) { box-shadow: 0 0 0 2px #1b1b1a, 0 0 0 3px rgba(201,164,92,.7), 0 6px 14px rgba(0,0,0,.5) !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.cartao, .secao, .kpi:not(.kp-lot))::after { opacity: .45; }
/* faixas e caixas coloridas */
html[data-tema="fazenda"][data-modo="escuro"] :is(.cap2-linha, .pn-tudo-ok, .sg-prev, .sd-geral.ok) { background: #18261a !important; border-color: #2e4a2f !important; color: #bfe0a8 !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.cap2-linha, .pn-tudo-ok, .sg-prev, .sd-geral.ok) :is(*, b, small) { color: inherit !important; }

html[data-tema="fazenda"][data-modo="escuro"] :is(.sd-geral.erro, .msg.erro) { background: #2c1712 !important; border-color: #5e2e22 !important; color: #f0b4a2 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .msg:not(.erro) { background: #242423 !important; border-color: #3a3a39 !important; color: var(--t-txt) !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.sg-sal-info, .voz-avisos) { background: #1e1e1d !important; border-color: #30302f !important; color: var(--t-txt) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .voz-avisos :is(li, div, span:not(.vz-chip), i) { color: inherit; }
html[data-tema="fazenda"][data-modo="escuro"] .tag.ok { background: #1f3320 !important; color: #a9cf7d !important; }
html[data-tema="fazenda"][data-modo="escuro"] .tag.alerta { background: #33290f !important; color: #e8c675 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .tag.erro { background: #3a1c15 !important; color: #ec9a82 !important; }

html[data-tema="fazenda"][data-modo="escuro"] .mt-foto { background: #1e1e1d !important; border-color: #494948 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .mt-foto .mt-foto-vazio, html[data-tema="fazenda"][data-modo="escuro"] .mt-foto .mt-foto-vazio * { color: #d9c08a !important; }
html[data-tema="fazenda"][data-modo="escuro"] .mf-obs { border-color: #3a3a39 !important; } html[data-tema="fazenda"][data-modo="escuro"] .mf-obs > summary { color: var(--t-txt) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .sg-sobra span { background: #212120 !important; border-color: #3a3a39 !important; color: var(--t-txt) !important; }

html[data-tema="fazenda"][data-modo="escuro"] :is(.btn.perigo.pequeno, #btnLimparHist, #btnLimparMt, #btnLimparSg) { background: #2c1712 !important; color: #f0b4a2 !important; border-color: #5e2e22 !important; }
html[data-tema="fazenda"][data-modo="escuro"] :is(.kp-barra, .reb-barra) { background: #272726 !important; }
/* gráficos */
html[data-tema="fazenda"][data-modo="escuro"] .rel-graf .gl-grade, html[data-tema="fazenda"][data-modo="escuro"] .ng-graf.gp .gp-grade { stroke: #30302f !important; }
html[data-tema="fazenda"][data-modo="escuro"] .rel-graf :is(.gl-y, .gl-x), html[data-tema="fazenda"][data-modo="escuro"] .ng-graf :is(text, .gb-m, .gp-y, .gp-rot) { fill: #b9b49a !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-graf.gp .gp-rv { fill: #f6efda !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-graf.gp .gp-vt { fill: #a9cf7d !important; } html[data-tema="fazenda"][data-modo="escuro"] .ng-graf.gp .gp-ct { fill: #e3c487 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-graf.gp .gp-p { stroke: #1a1a19 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .gp-resumo b { color: #f6efda !important; }
/* oliva fica mais claro no escuro para aparecer (venda, barras e linhas) */
html[data-tema="fazenda"][data-modo="escuro"] .ng-graf.gp :is(.gp-linha, .gp-med).gp-v { stroke: #8fae55 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-graf.gp .gp-p.gp-v, html[data-tema="fazenda"][data-modo="escuro"] :is(.ng-leg i.v, .gp-resumo i.v) { fill: #8fae55 !important; background: #8fae55 !important; }
/* topo, faixa da fazenda, barra e avisos: já são escuros, só um tom mais fundo */
html[data-tema="fazenda"][data-modo="escuro"] .topo { background: linear-gradient(180deg, #1d1d1c, #171716) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .fz-hero { box-shadow: 0 18px 36px -14px rgba(0,0,0,.8) !important; }
html[data-tema="fazenda"][data-modo="escuro"] #avisos .toast { background: linear-gradient(180deg, #252524, #1c1c1b) !important; color: #f1ebd6 !important; }

html[data-tema="fazenda"][data-modo="escuro"] #avisos .aviso-erro { background: linear-gradient(180deg, #2f1913, #24130e) !important; }
/* login no escuro */
html[data-tema="fazenda"][data-modo="escuro"] .lg-fundo { background: var(--curvas) center / 680px auto repeat, radial-gradient(900px 500px at 50% -10%, rgba(201,164,92,.18), transparent 60%), linear-gradient(180deg, #1e1e1d, #0f0f0e) !important; }

html[data-tema="fazenda"][data-modo="escuro"] :is(.lg-rot, .lg-chave, .lg-dica) { color: #b9b49a !important; }

html[data-tema="fazenda"][data-modo="escuro"] .carga-ini:not(.abertura) { background: var(--curvas) center / 620px auto repeat, radial-gradient(700px 420px at 50% 40%, rgba(201,164,92,.14), transparent 65%), linear-gradient(180deg, #1c1c1b, #0f0f0e) !important; }
/* botão do modo no topo */
html[data-tema="fazenda"] .topo #btnModo { background: rgba(255,255,255,.08) !important; border: 1px solid rgba(201,164,92,.35) !important; color: #f3dca6 !important; }
html[data-tema="fazenda"][data-modo="escuro"] input[type=checkbox] { background: #212120 !important; border-color: #494948 !important; }
html[data-tema="fazenda"][data-modo="escuro"] input[type=checkbox]:checked { background: linear-gradient(180deg, #c9a45c, #8a6524) !important; }
@media (max-width: 899px) { html[data-tema] .topo :is(#btnModo, #btnSair) { width: 44px !important; height: 44px !important; border-radius: 13px !important; } html[data-tema] .topo { gap: 8px !important; } }
@media (max-width: 370px) { html[data-tema] .topo :is(#btnModo, #btnSair) { width: 38px !important; height: 40px !important; } html[data-tema] .topo { gap: 5px !important; padding-left: 8px !important; padding-right: 8px !important; }
  html[data-tema] .topo .topo-logo { width: 40px !important; height: 40px !important; min-height: 0 !important; } html[data-tema] .topo .topo-logo img { width: 100% !important; height: 100% !important; }
  html[data-tema] .topo .fz-sel { padding-left: 10px !important; padding-right: 6px !important; gap: 4px !important; } html[data-tema] .topo .fz-sel-seta-c { width: 22px !important; height: 22px !important; } }

/* v1.93.1 – tela de abertura nova: curvas de nível se movendo, anel dourado girando em volta da logo, barra em pílula e saída com zoom */
html[data-tema="fazenda"] .carga-ini.abertura { overflow: hidden; gap: 30px !important;
  background: radial-gradient(520px 380px at 50% 46%, rgba(201,164,92,.22), transparent 70%), linear-gradient(180deg, #34412a, #1a2113) !important; }
html[data-tema="fazenda"] .carga-ini.abertura::before { content: ""; position: absolute; inset: -40px -700px -40px -40px; background: var(--curvas) 0 0 / 620px auto repeat; opacity: .9; animation: abCurvas 18s linear infinite; pointer-events: none; }
html[data-tema="fazenda"] .carga-ini.abertura > * { position: relative; }
html[data-tema="fazenda"] .carga-ini .ab-logo {   display: grid; place-items: center; animation: abEntra .7s cubic-bezier(.2,.8,.2,1) both; }
html[data-tema="fazenda"] .carga-ini .ab-logo::before { content: ""; position: absolute; inset: -18px; border-radius: 50%; background: radial-gradient(circle, rgba(227,196,135,.28), transparent 65%); animation: abBrilho 2.4s ease-in-out infinite; }

html[data-tema="fazenda"] .carga-ini.abertura img { width: 104px !important; height: 100px !important; border-radius: 26px !important; animation: none !important;
   }
html[data-tema="fazenda"] .carga-ini.abertura > span { display: none !important; }
/* saída: a logo cresce um pouco e tudo some suave */
html[data-tema="fazenda"] .carga-ini.abertura.saindo { opacity: 0; transition: opacity .45s ease, visibility 0s linear .45s !important; }
html[data-tema="fazenda"] .carga-ini.abertura.saindo .ab-logo { transform: scale(1.12); transition: transform .45s cubic-bezier(.2,.8,.2,1); }
@keyframes abCurvas { from { transform: translate3d(0,0,0); } to { transform: translate3d(-620px,0,0); } }
@keyframes abGira { to { transform: rotate(360deg); } }
@keyframes abBrilho { 0%, 100% { opacity: .55; transform: scale(.94); } 50% { opacity: 1; transform: scale(1.06); } }
@keyframes abEntra { from { opacity: 0; transform: translateY(10px) scale(.96); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { html[data-tema="fazenda"] .carga-ini.abertura::before, html[data-tema="fazenda"] .carga-ini .ab-logo::before { animation: none !important; } }
html[data-tema="fazenda"] .carga-ini .ab-logo { width: 156px !important; height: 156px !important; }

/* v1.93.2 – logo nova (oliva e ouro): a própria imagem já tem a moldura dourada, então tira os anéis e filtros antigos */
html[data-tema="fazenda"] .topo .topo-logo { background: none !important; box-shadow: 0 4px 12px rgba(0,0,0,.35) !important; border-radius: 12px !important; }
html[data-tema="fazenda"] .topo .topo-logo img { filter: none !important; }

html[data-tema="fazenda"] .carga-ini.abertura img { box-shadow: 0 20px 44px rgba(0,0,0,.5) !important; }

/* v1.93.4 – chave "Lembrar e-mail": ligada fica verde com bolinha dourada (antes a cor do tema escondia o estado ligado) */

/* v1.94.0 – login "Entrar como …": cartão da conta lembrada (só falta a senha) */

@keyframes lgContaEntra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* v1.95.0 – botão de modo claro/escuro também no login (canto de cima) */
.lg-fundo { position: relative; }

/* v1.95.0 – modo escuro PRETO: faixas e cartões de destaque que eram verde-oliva viram grafite, com o dourado de sempre */
html[data-tema="fazenda"][data-modo="escuro"] :is(.fz-hero, .rsel-bar, .lanc-geral, .ng-total) { background: var(--curvas) center / 560px auto repeat, radial-gradient(500px 220px at 100% 0%, rgba(201,164,92,.16), transparent 70%), linear-gradient(135deg, #242423, #161615) !important; border-color: rgba(201,164,92,.38) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .kpi.kp-lot { background: var(--curvas) center / 560px auto repeat, linear-gradient(150deg, #2a2a28, #181817) !important; border-color: rgba(201,164,92,.45) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .nav {  border-color: rgba(201,164,92,.28) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .voz-dock { background: linear-gradient(180deg, #1f1f1e, #151514) !important; }
/* v1.95.2 – Taxa de lotação no modo escuro: a cor mostra a situação (antes ficava grafite em todas) */
html[data-tema="fazenda"][data-modo="escuro"] .kpi.kp-lot.lot-ok { background: var(--curvas) center / 560px auto repeat, linear-gradient(150deg, #34422a, #161b11) !important; border-color: rgba(143,174,85,.55) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .kpi.kp-lot.lot-alerta { background: var(--curvas) center / 560px auto repeat, linear-gradient(150deg, #6a4f1c, #261c0b) !important; border-color: rgba(232,198,117,.6) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .kpi.kp-lot.lot-erro { background: var(--curvas) center / 560px auto repeat, linear-gradient(150deg, #6e2e22, #28120d) !important; border-color: rgba(236,154,130,.6) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .kpi.kp-lot.lot-ok .kp-st { background: rgba(143,174,85,.18) !important; border-color: rgba(169,207,125,.55) !important; color: #cfe6b0 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .kpi.kp-lot.lot-alerta .kp-st { background: rgba(232,198,117,.18) !important; border-color: rgba(232,198,117,.6) !important; color: #f3dca0 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .kpi.kp-lot.lot-erro .kp-st { background: rgba(236,154,130,.18) !important; border-color: rgba(236,154,130,.6) !important; color: #f6c3b3 !important; }
/* v1.95.4 – a abertura é verde-oliva nos dois modos: o iPhone mostra sempre a imagem de abertura clara (ignora o modo escuro),
   então o carregamento continua igual a ela e o app já entra no modo escolhido – sem trocar de cor no meio */
/* v1.95.6 – janela aberta: a página de trás não rola nem atualiza; abas e botões do topo ficam inativos (o microfone continua) */
html.janela-aberta, html.janela-aberta body { overflow: hidden !important; overscroll-behavior: none !important; }
html.janela-aberta :is(.modal, .lf-modal) { overscroll-behavior: contain; }
html.janela-aberta .nav > a, html.janela-aberta .topo :is(.fz-sel, #btnModo, #btnAtualizar, #btnSair) { pointer-events: none !important; opacity: .4; transition: opacity .2s; }
/* v1.95.8 – atualizando (bolinha girando depois de puxar): a página fica parada até terminar */
html.ptr-ocupado, html.ptr-ocupado body { overscroll-behavior: none !important; touch-action: none; }
/* =====================================================================
   v1.96.0 – PAINEL EM MOSAICO + FOLHAS
   ===================================================================== */
html[data-tema] .kpis.kp-novo.so-lot { grid-template-columns: 1fr !important; margin-bottom: 12px !important; }
.pn-mosaico { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 16px; }
.pn-tile { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; text-align: left; min-height: 124px; padding: 12px 12px 12px; border-radius: 18px; cursor: pointer; -webkit-tap-highlight-color: transparent;
  background: linear-gradient(180deg, #ffffff, #faf7ee); border: 1px solid #e4dcc7; box-shadow: 0 10px 24px -16px rgba(38,48,27,.35), 0 1px 0 rgba(255,255,255,.7) inset; color: var(--t-txt); font: inherit; overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.pn-tile::after { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 2px; border-radius: 0 0 2px 2px; background: linear-gradient(90deg, transparent, var(--f-ouro), transparent); opacity: .9; }
.pn-tile:active { transform: scale(.98); }
@media (hover: hover) { .pn-tile:hover { border-color: var(--f-ouro); box-shadow: 0 16px 30px -16px rgba(38,48,27,.45); transform: translateY(-1px); } }
.pn-tile.larga { grid-column: 1 / -1; min-height: 0; }
.pn-tile-cab { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.pn-tile-ic { width: 32px !important; height: 32px !important; font-size: 15px !important; }
.pn-tile-go { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; color: var(--f-ouro-esc); background: #faf4e4; border: 1px solid #e8d9b5; font-size: 16px; line-height: 1; }
.pn-tile-tit { font-family: "DM Serif Display", Georgia, serif !important; font-size: 15.5px; color: var(--f-oliva); line-height: 1.15; margin-top: 2px; }
.pn-tile-val { display: flex; align-items: baseline; gap: 4px; line-height: 1; }
.pn-tile-val b { font-family: "DM Serif Display", Georgia, serif !important; font-weight: 400 !important; font-size: 26px; color: var(--f-oliva); letter-spacing: -.01em; }
.pn-tile-val small { font-size: 11px; font-weight: 600; color: var(--t-txt2); }
.pn-tile.excesso .pn-tile-val b { color: #b5543d; }
.pn-tile-det { font-size: 11.5px; color: var(--t-txt2); line-height: 1.3; }
.pn-tile-det b { color: var(--t-txt); } .pn-tile-det b.ok { color: #3e7a3a; } .pn-tile-det b.alerta { color: #9c7a36; } .pn-tile-det b.erro { color: #b5543d; }
.pn-tile-dica { font-size: 11.5px; color: var(--t-txt2); line-height: 1.3; }
.pn-tile .kp-comp { width: 100%; height: 8px; margin-top: auto; } .pn-tile .kp-leg { width: 100%; font-size: 10px; margin-top: 4px; }
.pn-tile .kp-barra { width: 100%; margin-top: auto; }
.pn-mini-mapa { display: block; width: 100%; height: 38px; margin-top: auto; }
.pn-tile-chips { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; margin: 4px 0 2px; }
.pn-tile-chip { font-size: 11px; font-weight: 600; border-radius: 999px; padding: 4px 9px; background: #f1ecdc; color: #4a4a3a; border: 1px solid #e4dcc7; white-space: nowrap; }
.pn-tile-chip.ok { background: linear-gradient(180deg, #56683a, #3e4c2b); color: #fff; border-color: #56683a; }
.pn-tile-chip.alerta { background: linear-gradient(180deg, #b48a2f, #8a6524); color: #fff; border-color: #b48a2f; }
.pn-tile-chip.erro { background: linear-gradient(180deg, #b5543d, #7e3122); color: #fff; border-color: #b5543d; }
.pn-tile-chip.cinza, .pn-tile-chip.mais { background: #f1ecdc; }
@media (min-width: 900px) { .pn-mosaico { grid-template-columns: repeat(4, 1fr);  } .pn-tile.larga { grid-column: span 2; } .pn-tile { min-height: 140px; padding: 14px; } .pn-tile-val b { font-size: 28px; } }
@media (max-width: 360px) { .pn-tile { padding: 10px; min-height: 112px; } .pn-tile-val b { font-size: 23px; } .pn-tile-tit { font-size: 14px; } }
/* folha: a parte inteira em tela cheia */
.folha { position: fixed; inset: 0; z-index: 39; display: flex; flex-direction: column; background: var(--t-bg, #efece3); transform: translateX(100%); transition: transform .28s cubic-bezier(.2,.8,.2,1), opacity .2s; will-change: transform; }
.folha.aberta { transform: none; } .folha.saindo { transform: translateX(100%); }
.folha-cab { flex: none; display: flex; align-items: center; gap: 10px; padding: calc(10px + env(safe-area-inset-top, 0px)) 12px 10px; background: linear-gradient(180deg, #34412a, #26301b); border-bottom: 1px solid rgba(201,164,92,.35); color: #fff; box-shadow: 0 8px 20px -12px rgba(0,0,0,.5); }
.folha-volta { flex: none; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(201,164,92,.45); background: rgba(255,255,255,.1); color: #f3dca6; display: grid; place-items: center; cursor: pointer; padding: 0; }
.folha-volta svg { width: 20px; height: 20px; }
.folha-ic { width: 30px !important; height: 30px !important; font-size: 14px !important; box-shadow: 0 0 0 2px #26301b, 0 0 0 3.5px var(--f-ouro) !important; }
.folha-tit { flex: 1; min-width: 0; margin: 0; font: 400 18px/1.15 "DM Serif Display", Georgia, serif !important; color: #fff !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.folha-selo { flex: none; background: rgba(255,240,200,.14) !important; border: 1px solid rgba(227,196,135,.5) !important; color: #f6e5bb !important; }
.folha-corpo { flex: 1; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 14px 12px calc(24px + env(safe-area-inset-bottom, 0px)); }
html.janela-aberta .folha-corpo { touch-action: pan-y; }
.folha-corpo > .busca-linha { margin-top: 0; }
.folha-corpo .lanc-geral { margin-top: 12px; }

.pn-fl { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border-radius: 12px; background: #fff; border: 1px solid #e4dcc7; }
.pn-fl-nome { display: flex; flex-direction: column; min-width: 0; } .pn-fl-nome b { font-size: 14px; color: var(--t-txt); } .pn-fl-nome small { font-size: 11px; color: var(--t-txt2); }

@media (min-width: 900px) { .folha { left: 50%; transform: translateX(-50%) translateY(24px); opacity: 0; width: min(980px, 100%); top: 12px; bottom: 12px; border-radius: 20px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.45); border: 1px solid rgba(201,164,92,.4); }
  .folha.aberta { transform: translateX(-50%); opacity: 1; box-shadow: 0 30px 80px rgba(0,0,0,.45), 0 0 0 100vmax rgba(14,18,8,.55); } .folha.saindo { transform: translateX(-50%) translateY(24px); opacity: 0; }
  .folha-corpo { padding: 18px 20px 24px; } }
/* modo escuro */
html[data-modo="escuro"] .pn-tile { background: linear-gradient(180deg, #1f1f1e, #171716); border-color: #2f2f2e; box-shadow: 0 1px 0 rgba(255,240,200,.04) inset, 0 14px 30px -12px rgba(0,0,0,.65); color: var(--t-txt); }
html[data-modo="escuro"] .pn-tile-tit, html[data-modo="escuro"] .pn-tile-val b { color: #f6efda; }
html[data-modo="escuro"] .pn-tile-go { background: #262625; border-color: #3a3a39; color: #e3c487; }
html[data-modo="escuro"] .pn-tile { --pn-mini-vazio: #2f2f2e; }
html[data-modo="escuro"] .pn-tile-chip { background: #262625; border-color: #3a3a39; color: #d9c08a; }
html[data-modo="escuro"] .folha { background: #111110; }
html[data-modo="escuro"] .folha-cab { background: linear-gradient(180deg, #1f1f1e, #151514); }
html[data-modo="escuro"] .folha-ic { box-shadow: 0 0 0 2px #151514, 0 0 0 3.5px var(--f-ouro) !important; }

html[data-modo="escuro"] .pn-fl { background: #1f1f1e; border-color: #2f2f2e; }
/* folha Pastos vazios: um cartão por pasto, com área, quantas cabem, há quanto tempo está vazio e o botão para lançar gado nele */

/* título da folha sempre branco (as regras de h3 do tema pintavam de oliva) */
html[data-tema] body .folha .folha-cab .folha-tit, html[data-tema] body .folha .folha-cab h3 { color: #fff !important; }
html[data-tema] body .folha .folha-cab .folha-selo { color: #f6e5bb !important; background: rgba(255,240,200,.14) !important; border: 1px solid rgba(227,196,135,.5) !important; }
/* ícones de traço dos cartões do Painel e das folhas */
.pn-tile-ic svg, .folha-ic svg { width: 20px; height: 20px; display: block; color: #f3dfae; }
.folha-ic svg { width: 17px; height: 17px; }
/* atalhos (Gado, Morte, Salga, Troca, Negócio): ícone de traço escuro no círculo dourado */
.pn-at-ic svg { width: 24px; height: 24px; display: block; color: #2b3520; }
/* celular: círculos um pouco maiores e sempre redondos, para o desenho ficar nítido */
@media (max-width: 899px) {
  html body .pn-tile-ic { width: 40px !important; height: 40px !important; flex: 0 0 40px !important; }
  .pn-tile-ic svg { width: 22px; height: 22px; }
  html body .folha-ic { width: 34px !important; height: 34px !important; flex: 0 0 34px !important; } .folha-ic svg { width: 18px; height: 18px; }
  html body .pn-at-ic { width: 46px !important; height: 46px !important; } .pn-at-ic svg { width: 25px; height: 25px; }
}
.pn-tile-ic, .folha-ic, .pn-at-ic { aspect-ratio: 1 / 1; }
/* Taxa de lotação no computador: ao lado do medidor, a lotação pasto a pasto (barras contra a meta) e quantos estão em cada faixa */
.kp-lot-extra { display: none; }
@media (min-width: 900px) {
  .kp-lot-extra { display: flex; flex-direction: column; gap: 8px; flex: 1; min-width: 0; margin-left: 22px; align-self: center; }
  .kp-lot-dist { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; font-size: 11.5px; color: #fff !important; }
  .kp-lot-dist span { display: inline-flex; align-items: center; gap: 5px; color: #fff !important; }
  .kp-lot-dist span i { width: 9px; height: 9px; border-radius: 3px; display: inline-block; }
  .kp-lot-dist .ok i { background: #a9cf7d; } .kp-lot-dist .alerta i { background: #e8c675; } .kp-lot-dist .erro i { background: #ec9a82; } .kp-lot-dist .vazio i { background: rgba(255,255,255,.35); border: 1px dashed rgba(255,255,255,.6); }
  .kp-lot-dist .mais { margin-left: auto; color: rgba(255,255,255,.7) !important; font-size: 10.5px; letter-spacing: .04em; }
  .kp-lot-bars { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px; row-gap: 5px; }
  .kp-lot-bar { display: grid; grid-template-columns: 52px 1fr 40px; align-items: center; gap: 8px; font-size: 11.5px; color: #fff !important; }
  .kp-lot-bar .nm { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff !important; }
  .kp-lot-bar .v { text-align: right; font-variant-numeric: tabular-nums; color: #f6e5bb !important; }
  .kp-lot-bar .tr { position: relative; height: 9px; border-radius: 9px; background: rgba(0,0,0,.28); overflow: visible; }
  .kp-lot-bar .tr i { display: block; height: 100%; border-radius: 9px; }
  .kp-lot-bar .tr i.ok, .kp-lot-bar .tr i.cinza { background: linear-gradient(90deg, #8fae55, #a9cf7d); } .kp-lot-bar .tr i.alerta { background: linear-gradient(90deg, #c9a45c, #e8c675); } .kp-lot-bar .tr i.erro { background: linear-gradient(90deg, #b5543d, #ec9a82); }
  .kp-lot-bar .tr em { position: absolute; top: -3px; bottom: -3px; width: 2px; margin-left: -1px; background: #fff; opacity: .85; border-radius: 2px; }
  .kp-lot-vazio { font-size: 12px; color: rgba(255,255,255,.75) !important; }
  html[data-tema] .kpis.kp-novo.so-lot .kp-lot-corpo { align-items: center; }
}
@media (min-width: 900px) and (max-width: 1180px) { .kp-lot-bars { grid-template-columns: 1fr; } .kp-lot-bar:nth-child(n+5) { display: none; } }

/* v1.96.8 – faixa da cor do cabeçalho acima dele: se a tela "estica" ao puxar para atualizar (ou ao atualizar),
   o cabeçalho desce sem deixar espaço claro entre ele e a barra do relógio */
html[data-tema] .topo { overflow: visible !important; }
html[data-tema] .topo::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 320px; background: var(--t-nav); pointer-events: none; z-index: -1; }
html:is([data-tema="oliva"],[data-tema="fazenda"]) .topo::before { background: #2f3a22; }
html[data-tema="fazenda"][data-modo="escuro"] .topo::before { background: #1d1d1c; }
@media (max-width: 899px) { html[data-tema="fazenda"] body:not(.modo-login) { background-attachment: scroll !important; } }
/* v1.96.9 – porcentagem das categorias no mosaico: escura no claro, dourada no escuro (antes era creme, sumia no card claro) */
html[data-tema] .pn-tile .kp-leg b { color: var(--t-tit) !important; font-weight: 700; }
html[data-tema="fazenda"] .pn-tile .kp-leg b { color: #2b3520 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .pn-tile .kp-leg b { color: #f3dca6 !important; }
/* v1.96.10 – lista de fazendas (computador): opções escuras no fundo claro; no modo escuro, claras no fundo grafite */
html[data-tema] .topo select option { color: #1f2416 !important; background: #fffdf7 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .topo select option { color: #f3f0e2 !important; background: #1d1d1c !important; }
/* v1.96.10 – campo "Fazenda" vira botão; lista de fazendas desenhada pelo app (.fzp) */
html body .topo button.fz-sel { font: inherit; text-align: left; -webkit-appearance: none; appearance: none; }
html body .topo .fz-sel .fz-sel-col { display: block; flex: 1 1 auto; min-width: 0; }
html body .topo .fz-sel select[hidden] { display: none !important; }
.fzp-fundo { position: fixed; inset: 0; z-index: 975; background: rgba(14,18,8,0); display: flex; align-items: flex-end; justify-content: center; transition: background .22s ease; }
.fzp-fundo.aberta { background: rgba(14,18,8,.55); }
.fzp { width: 100%; max-height: min(78vh, 78dvh); display: flex; flex-direction: column; background: linear-gradient(180deg, #34412a, #26301b); color: #f3f0e2;
  border-radius: 22px 22px 0 0; border-top: 1px solid #c9a45c; box-shadow: 0 -18px 40px rgba(0,0,0,.45); padding: 10px 12px calc(16px + env(safe-area-inset-bottom, 0px));
  transform: translateY(24px); opacity: 0; transition: transform .24s cubic-bezier(.2,.8,.2,1), opacity .2s ease; }
.fzp-fundo.aberta .fzp { transform: none; opacity: 1; }
.fzp-fundo.saindo .fzp { transform: translateY(24px); opacity: 0; }
.fzp-alca { width: 44px; height: 5px; border-radius: 3px; background: rgba(255,255,255,.25); margin: 0 auto 10px; flex: none; }
.fzp-cab { display: flex; align-items: center; justify-content: space-between; margin: 0 4px 10px; flex: none; }
.fzp-cab small { display: block; font-size: 10.5px; letter-spacing: .2em; font-weight: 700; color: #e3c487; text-transform: uppercase; }
.fzp-cab b { display: block; font-family: "DM Serif Display", Georgia, serif; font-weight: 400; font-size: 22px; color: #fbf3df; line-height: 1.1; }
.fzp-x { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.1); border: 1px solid rgba(201,164,92,.45); display: grid; place-items: center; color: #f3dca6; cursor: pointer; padding: 0; }
.fzp-x svg { width: 16px; height: 16px; }
.fzp-lista { overflow: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; display: flex; flex-direction: column; gap: 8px; padding: 2px; }
.fzp-op { display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 12px; border-radius: 14px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.05); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.fzp-op:hover { background: rgba(255,255,255,.1); border-color: rgba(201,164,92,.5); }
.fzp-op:focus-visible { outline: 2px solid #e3c487; outline-offset: 2px; }
.fzp-ic { flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 30% 25%, #5a6c3c, #2f3a22); box-shadow: 0 0 0 2px rgba(201,164,92,.6); color: #f3dca6; font-family: "DM Serif Display", Georgia, serif; font-size: 17px; }
.fzp-nm { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fzp-nm b { font-size: 16px; color: #fbf3df; line-height: 1.2; }
.fzp-nm span { font-size: 12px; color: #c9d39f; }
.fzp-ck { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid rgba(201,164,92,.5); display: grid; place-items: center; color: #2b3520; }
.fzp-ck svg { width: 15px; height: 15px; }
.fzp-op.atual { background: linear-gradient(180deg, rgba(201,164,92,.24), rgba(201,164,92,.1)); border-color: #c9a45c; }
.fzp-op.atual .fzp-ic { background: radial-gradient(circle at 30% 25%, #ecd29b, #b98d3f 75%); color: #2b3520; }
.fzp-op.atual .fzp-ck { background: #e3c487; border-color: #e3c487; }
@media (min-width: 900px) {
  .fzp-fundo, .fzp-fundo.aberta { background: rgba(14,18,8,.18); align-items: flex-start; justify-content: flex-start; }
  .fzp { position: absolute; width: 400px; max-height: min(70vh, 560px); border-radius: 18px; border: 1px solid #c9a45c; padding: 14px; box-shadow: 0 24px 50px -10px rgba(0,0,0,.5); transform: translateY(-8px); }
  .fzp-fundo.saindo .fzp { transform: translateY(-8px); }
  .fzp-alca { display: none; }
}
html[data-tema="fazenda"][data-modo="escuro"] .fzp { background: linear-gradient(180deg, #232322, #171716); border-color: rgba(201,164,92,.6); }
html[data-tema="fazenda"][data-modo="escuro"] .fzp-ic { background: radial-gradient(circle at 30% 25%, #3a3a37, #222221); }
html[data-tema="fazenda"][data-modo="escuro"] .fzp-op { background: rgba(255,255,255,.04); }
html[data-tema="fazenda"][data-modo="escuro"] .fzp-op.atual { background: linear-gradient(180deg, rgba(201,164,92,.2), rgba(201,164,92,.08)); }
html.janela-aberta.tem-fzp .topo .fz-sel { opacity: 1 !important; }

/* v1.97.0 – SANFONA nas abas Lançamentos, Compra e Venda, Relatórios, Histórico e Admin */
.sf-row { scroll-margin-top: 84px; }
.sf-row > .sf-cab { cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sf-row > .sf-cab h3 { user-select: none; }
html[data-tema] .sf-row .sf-ch, html[data-tema] .cartao-recolhe.fechada .sf-ch { width: 34px !important; height: 34px !important; border-radius: 50% !important; padding: 0 !important; display: inline-grid !important; place-items: center !important;
  background: #fffdf7 !important; border: 1.5px solid #cdbf98 !important; color: var(--f-oliva, #2f3a22) !important; box-shadow: 0 1px 0 #fff inset, 0 3px 8px -4px rgba(47,58,34,.3) !important; flex: none; }
html[data-tema] .sf-row .sf-ch svg { width: 18px; height: 18px; transition: transform .28s cubic-bezier(.2,.8,.2,1); transform: rotate(180deg); }
html[data-tema] .sf-row.fechada .sf-ch svg { transform: rotate(0deg); }
html[data-tema] .sf-row:not(.fechada) .sf-ch { background: linear-gradient(180deg, #e3c487, #b98d3f) !important; color: #2b3520 !important; border-color: #c9a45c !important; }
html[data-tema="fazenda"] .sf-row:not(.fechada) { border-color: var(--f-ouro) !important; box-shadow: 0 14px 30px -14px rgba(38,48,27,.35), 0 0 0 3px rgba(201,164,92,.12) !important; }
.sf-res { display: flex; flex-wrap: wrap; gap: 6px; margin: 9px 0 0; }
.sf-res[hidden] { display: none; }
.sf-row:not(.fechada) > .sf-res { margin-bottom: 2px; }
.sf-chip { display: inline-block; font-size: 11.5px; font-weight: 600; line-height: 1.25; padding: 4px 9px; border-radius: 999px; background: #eef2e4; color: #3e4c2b; border: 1px solid #d9dfc8; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.sf-chip:first-child { background: linear-gradient(180deg, #fff9ea, #f3e6c6); color: #6d5420; border-color: #dcc48c; }
.sf-idx { display: flex; align-items: center; gap: 6px; overflow-x: auto; padding: 2px 2px 10px; margin: -4px 0 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.sf-idx::-webkit-scrollbar { display: none; }
.sf-idx-rot { flex: none; font-size: 10.5px; letter-spacing: .16em; font-weight: 700; text-transform: uppercase; color: var(--t-rot, #7a7a66); margin-right: 2px; }
.sf-idx button { flex: none; border-radius: 999px; padding: 7px 12px; font: 700 12px/1 inherit; font-family: inherit; background: #fffdf7; border: 1px solid #e4dcc7; color: #2b3520; cursor: pointer; white-space: nowrap; box-shadow: 0 1px 0 #fff inset; }
.sf-idx button.on { background: linear-gradient(180deg, #3e4c2b, #26301b); color: #f6e7c8; border-color: #c9a45c; }
/* cabeçalho das caixas do Histórico/Admin (h3.adm-tit) e do Compra e Venda (.ng-cab): a seta vai para a direita */
.sf-row > h3.adm-tit.sf-cab { display: flex; align-items: center; gap: 10px; }
.sf-row > h3.adm-tit.sf-cab .adm-tit-txt { flex: 1 1 auto; min-width: 0; }
.sf-row > h3.adm-tit.sf-cab .sf-ch { margin-left: auto; }
@media (max-width: 700px) { .cartao-recolhe > .ng-cab > .sf-ch { position: absolute; top: -2px; right: 0; } }
/* relatórios dentro da sanfona: o selo (ex.: "2 pastos") fica do lado do título */

.sf-row .adm-sub { min-width: 0; }
/* modo escuro */
html[data-tema="fazenda"][data-modo="escuro"] .sf-row .sf-ch { background: #262624 !important; border-color: rgba(201,164,92,.45) !important; color: #f3dca6 !important; box-shadow: none !important; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-row:not(.fechada) .sf-ch { background: linear-gradient(180deg, #e3c487, #b98d3f) !important; color: #2b3520 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-chip { background: #262624; color: #d8d3c2; border-color: #3a3a37; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-chip:first-child { background: linear-gradient(180deg, #3a321f, #2b2517); color: #f3dca6; border-color: rgba(201,164,92,.5); }
html[data-tema="fazenda"][data-modo="escuro"] .sf-idx button { background: #1f1f1e; border-color: #3a3a37; color: #e8e2d0; box-shadow: none; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-idx button.on { background: linear-gradient(180deg, #e3c487, #b98d3f); color: #2b3520; border-color: #e3c487; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-row:not(.fechada) { box-shadow: 0 0 0 3px rgba(201,164,92,.1) !important; }
@media print { .sf-idx { display: none !important; } .sf-row.fechada .secao-dobra { grid-template-rows: 1fr; } .sf-row.fechada .secao-dobra-in { opacity: 1; } .sf-ch { display: none !important; } }
.sf-row .hist-cont { display: none !important; }
.sf-row > h3.adm-tit.sf-cab { flex-wrap: nowrap !important; }
.sf-topo-bts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.sf-topo-bts .hist-limpar-topo { position: static !important; margin: 0 !important; }
/* resumo (chips) só com a linha fechada: aberta, mostra só o conteúdo */
.sf-row:not(.fechada) > .sf-res { display: none !important; }

/* v1.97.1 – Compra / Venda (Novo lançamento): duas opções do mesmo tamanho dentro de uma caixa só, ícone + nome numa linha */
html[data-tema="fazenda"] .ng-form .ng-tipo { display: grid !important; grid-template-columns: 1fr 1fr !important;  width: 100% !important; max-width: 520px;
  padding: 5px !important; margin: 10px 0 8px !important; border-radius: 18px !important; overflow: visible !important; background: #f1ebda !important; border: 1px solid #e0d5b8 !important; }
html[data-tema="fazenda"] .ng-form .ng-opt { display: block; min-width: 0; }
html[data-tema="fazenda"] .ng-form .ng-opt span { display: grid !important; grid-template-columns: 34px minmax(0, 1fr) !important; grid-template-rows: auto auto; align-items: center; column-gap: 10px !important; row-gap: 1px;
  min-height: 58px; padding: 8px 12px !important; border-radius: 13px !important; border: 1px solid transparent !important; background: transparent !important; box-shadow: none !important; color: #6d5a2a !important; text-align: left; transition: background .18s, box-shadow .18s, color .18s; }
html[data-tema="fazenda"] .ng-form .ng-opt + .ng-opt span { border-left: 1px solid transparent !important; }
html[data-tema="fazenda"] .ng-form .ng-opt .ng-ic { grid-row: 1 / span 2; width: 34px !important; height: 34px !important; border-radius: 50% !important; display: grid !important; place-items: center; margin: 0 !important;
  background: #fffdf7 !important; border: 1px solid #dccfa9 !important; color: #8a6d2c !important; opacity: 1 !important; }
html[data-tema="fazenda"] .ng-form .ng-opt .ng-ic svg { width: 17px; height: 17px; }
html[data-tema="fazenda"] .ng-form .ng-opt span b { grid-column: 2; font: 700 16px/1.1 "DM Sans", system-ui, sans-serif !important; color: inherit !important; white-space: nowrap; }
html[data-tema="fazenda"] .ng-form .ng-opt span small { grid-column: 2; font: 500 11.5px/1.2 "DM Sans", system-ui, sans-serif !important; color: inherit !important; opacity: .75; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html[data-tema="fazenda"] .ng-form .ng-opt span:hover { background: rgba(255,255,255,.55) !important; }
html[data-tema="fazenda"] .ng-form .ng-opt.compra input:checked + span { background: linear-gradient(180deg, #ecd29b, #c49a4a) !important; color: #2b3520 !important; border-color: #c9a45c !important; box-shadow: 0 6px 14px -8px rgba(120,90,30,.6), inset 0 1px 0 rgba(255,245,220,.6) !important; }
html[data-tema="fazenda"] .ng-form .ng-opt.venda input:checked + span { background: linear-gradient(180deg, #56683a, #2f3a22) !important; color: #f6e5bb !important; border-color: #3e4c2b !important; box-shadow: 0 6px 14px -8px rgba(38,48,27,.7), inset 0 1px 0 rgba(255,255,255,.12) !important; }
html[data-tema="fazenda"] .ng-form .ng-opt input:checked + span .ng-ic { background: rgba(255,255,255,.28) !important; border-color: rgba(255,255,255,.55) !important; color: inherit !important; }
html[data-tema="fazenda"] .ng-form .ng-opt input:focus-visible + span { outline: 2px solid #c9a45c; outline-offset: 2px; }
@media (max-width: 360px) { html[data-tema="fazenda"] .ng-form .ng-opt span { grid-template-columns: 30px minmax(0,1fr) !important; padding: 8px 9px !important; column-gap: 8px !important; } html[data-tema="fazenda"] .ng-form .ng-opt .ng-ic { width: 30px !important; height: 30px !important; } }
/* modo escuro */
html[data-tema="fazenda"][data-modo="escuro"] .ng-form .ng-tipo { background: #1b1b1a !important; border-color: #343432 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-form .ng-opt span { color: #d9c08a !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-form .ng-opt span:hover { background: rgba(255,255,255,.05) !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-form .ng-opt .ng-ic { background: #262624 !important; border-color: #3f3f3c !important; color: #e3c487 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-form .ng-opt.compra input:checked + span { color: #1f1f1e !important; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-form .ng-opt.venda input:checked + span { background: linear-gradient(180deg, #4e5e35, #2c361f) !important; color: #f6e5bb !important; border-color: rgba(201,164,92,.5) !important; }
@media (max-width: 480px) { html[data-tema="fazenda"] .ng-form .ng-opt span { grid-template-columns: 30px minmax(0,1fr) !important; padding: 8px 10px !important; column-gap: 9px !important; } html[data-tema="fazenda"] .ng-form .ng-opt .ng-ic { width: 30px !important; height: 30px !important; } }
/* linha no meio separando Compra e Venda */
html[data-tema="fazenda"] .ng-form .ng-tipo { position: relative; gap: 13px !important; }
html[data-tema="fazenda"] .ng-form .ng-tipo::after { content: ""; position: absolute; left: 50%; top: 12px; bottom: 12px; width: 1px; transform: translateX(-.5px); background: linear-gradient(180deg, transparent, #c9a45c 20%, #c9a45c 80%, transparent); pointer-events: none; }
html[data-tema="fazenda"][data-modo="escuro"] .ng-form .ng-tipo::after { background: linear-gradient(180deg, transparent, rgba(201,164,92,.7) 20%, rgba(201,164,92,.7) 80%, transparent); }
/* v1.97.1 – sanfona aberta: espaço entre o título (ícone, nome e seta) e o conteúdo, com um fio fino separando */
.sf-row > .sf-cab { padding-bottom: 2px; }
.sf-row:not(.fechada) > .secao-dobra > .secao-dobra-in { padding-top: 18px !important; margin-top: 12px; border-top: 1px dashed #e4dcc7; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-row:not(.fechada) > .secao-dobra > .secao-dobra-in { border-top-color: #34342f; }
.sf-row.fechada > .secao-dobra > .secao-dobra-in { margin-top: 0; border-top-color: transparent; }
.cartao-recolhe.sf-row .secao-dobra-in { transition: opacity .3s ease, padding .38s cubic-bezier(.4,0,.2,1), margin .38s cubic-bezier(.4,0,.2,1); }
html[data-tema] .sf-row > h3.adm-tit.sf-cab { margin-bottom: 0 !important; padding-bottom: 2px !important; border-bottom: 0 !important; }
html[data-tema="fazenda"] .sf-row .ng-form .ng-tipo { margin-top: 0 !important; }
/* fio dourado (igual ao que separa Compra e Venda) entre o título e o conteúdo da parte aberta */
html[data-tema="fazenda"] .sf-row:not(.fechada) > .secao-dobra > .secao-dobra-in { border-top: 0 !important;
  background: linear-gradient(90deg, transparent, #c9a45c 18%, #c9a45c 82%, transparent) top center / 100% 1px no-repeat !important; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-row:not(.fechada) > .secao-dobra > .secao-dobra-in {
  background: linear-gradient(90deg, transparent, rgba(201,164,92,.7) 18%, rgba(201,164,92,.7) 82%, transparent) top center / 100% 1px no-repeat !important; }
/* filtros (Ano / Mês) dentro da parte aberta, logo abaixo do fio dourado */
.sf-filtros { margin: 0 0 14px; }
.sf-filtros .ng-filtro { max-height: none !important; opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
@media (min-width: 701px) {   html body .sf-filtros .ng-filtro label:first-child { margin-left: 0; } }
.sf-row > .ng-cab.sf-cab { display: flex !important; align-items: center; gap: 10px; }
.sf-row > .ng-cab.sf-cab > :is(h3, .cartao-cab) { flex: 1 1 auto; min-width: 0; }
.sf-row > .ng-cab.sf-cab > .sf-ch { margin-left: auto !important; position: static !important; }
html body .sf-row > .ng-cab.sf-cab { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: flex-start !important; margin-bottom: 0 !important; }
html body .sf-row > .ng-cab.sf-cab h3 { text-align: left; }
@media (max-width: 700px) { html body .sf-row > .ng-cab.sf-cab > .sf-ch { position: static !important; } }
@media (min-width: 701px) {
  html body .sf-filtros .ng-filtro { display: flex !important; flex-wrap: nowrap; align-items: center; gap: 10px; }
  html body .sf-filtros .ng-filtro label { display: inline-block; margin: 0 !important; }
  html body .conteudo .sf-filtros .ng-filtro select { flex: 0 0 170px; width: 170px !important; min-width: 0; }
  html body .sf-filtros .ng-filtro label + select + label { margin-left: 8px !important; }
}
/* v1.97.4 – ícones de traço nos títulos de todas as abas (iguais aos do Painel) */
html[data-tema] .secao-ic > svg { width: 58%; height: 58%; display: block; color: #f3dca6; }
html[data-tema="fazenda"] :is(.secao-ic, .kp-ic) { font-size: 0; }
/* v1.97.4 – títulos da sanfona todos com a mesma letra reta (igual Histórico e Admin) */
html[data-tema="fazenda"] body .sf-row > .sf-cab h3, html[data-tema="fazenda"] body .sf-row > .sf-cab :is(h3, .adm-tit-txt) { font-family: "DM Sans", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important; font-weight: 400 !important; font-size: 19px !important; letter-spacing: 0 !important; }
/* v1.97.5 – título das folhas do Painel com a letra reta (igual aos títulos da sanfona) */
html[data-tema] body .folha .folha-cab .folha-tit { font-family: "DM Sans", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important; font-weight: 500 !important; letter-spacing: 0 !important; }
/* v1.97.8 – os 3 pastos do cartão "Lançamentos por pasto" sempre numa linha só (a letra diminui um pouco se precisar) */
.pn-tile[data-folha="lpp"] .pn-tile-chips { flex-wrap: nowrap !important; overflow: hidden; gap: 4px; }
.pn-tile[data-folha="lpp"] .pn-tile-chip { flex: 0 0 auto; font-size: var(--chip-fs, 11px) !important; padding: 4px 7px; letter-spacing: -.01em; display: inline-flex; align-items: center; min-width: 0; }
.pn-tile[data-folha="lpp"] .pn-tile-chip.mais { padding: 4px 6px; }
/* último recurso: só os nomes encurtam com "…" – os três continuam aparecendo */
.pn-tile[data-folha="lpp"] .pn-tile-chips.aperta .pn-tile-chip:not(.mais) { flex: 1 1 0; justify-content: center; }
.pn-tile[data-folha="lpp"] .pn-tile-chips.aperta .pn-chip-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pn-tile[data-folha="lpp"] .pn-chip-nm, .pn-tile[data-folha="lpp"] .pn-chip-dado { white-space: nowrap; }
.pn-tile[data-folha="lpp"] .pn-chip-dado { flex: none; }
.pn-tile[data-folha="lpp"] .pn-tile-chips.sem-cab .pn-chip-cab { display: none; }
/* v1.97.10 – Mapa dos pastos: legenda das cores (na meta · até 25% acima · muito acima), sempre numa linha */
.pn-mapa-leg { display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; }
.pn-mapa-leg > span { display: inline-flex; align-items: center; gap: 4px; }
.pn-mapa-leg i { width: 9px; height: 9px; border-radius: 2.5px; display: inline-block; flex: none; }
.pn-mapa-leg i.ok { background: #56683a; } .pn-mapa-leg i.alerta { background: #b48a2f; } .pn-mapa-leg i.erro { background: #b5543d; }
html[data-modo="escuro"] .pn-mapa-leg i.ok { background: #7f9c4c; }
.pn-mapa-leg em { font-style: normal; }
.pn-mapa-leg.curta em { display: none; }
.pn-mapa-leg.curta { gap: 12px; }
/* cartão Cabeças: as três categorias da legenda lado a lado, sem se sobrepor */
.pn-tile[data-folha="reb"] .kp-leg-sob { display: flex !important; flex-wrap: nowrap !important; justify-content: space-between; gap: 6px !important; overflow: hidden; font-size: var(--leg-fs, 11px) !important; }
.pn-tile[data-folha="reb"] .kp-leg-sob > span { flex: 0 0 auto !important; white-space: nowrap; }
.pn-tile[data-folha="reb"] .kp-leg-sob > span, .pn-tile[data-folha="reb"] .kp-leg-sob b { font-size: var(--leg-fs, 11px) !important; }
.pn-tile[data-folha="reb"] .kp-leg-sob i { width: 7px !important; height: 7px !important; }
.pn-tile[data-folha="reb"] .kp-leg-sob > span { gap: 3px !important; }

/* v1.99.0 – MAPA DOS PASTOS em "mapa de calor" */
.hm-res { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #3e4c2b, #26301b); border: 1px solid rgba(201,164,92,.4); border-radius: 18px; padding: 12px; color: #fff; box-shadow: 0 14px 28px -14px rgba(38,48,27,.6); margin-bottom: 12px; }
.hm-res-rot { display: block; font-size: 10px !important; letter-spacing: .18em; font-weight: 700; text-transform: uppercase; color: #e3c487 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hm-barra { display: flex; gap: 2px; height: 10px; border-radius: 6px; overflow: hidden; margin: 10px 0; }
.hm-barra i { display: block; min-width: 4px; }
.hm-b-ok { background: #7f9c4c; } .hm-b-alerta { background: #c9a24a; } .hm-b-erro { background: #c9654c; } .hm-b-vazio { background: #e8e2d0; }
.hm-filtros { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.hm-f { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 7px 3px 6px; text-align: center; color: #fff; font: inherit; cursor: pointer; min-width: 0; }
.hm-f b { display: block; font: 400 24px/1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; }
.hm-f span { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 4px; font-size: 10.5px; color: #e8e2d0 !important; white-space: nowrap; }
.hm-f span i { width: 8px; height: 8px; border-radius: 2px; flex: none; }
.hm-f.on { background: rgba(201,164,92,.24); border-color: #c9a45c; box-shadow: 0 0 0 2px rgba(201,164,92,.25); }
.hm-grade { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
@media (min-width: 700px) { .hm-grade { grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; } }
.hm-t { position: relative; aspect-ratio: 1 / 1; border-radius: 12px; border: 0; padding: 0 3px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; color: #fff; font: inherit; cursor: pointer; min-width: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 3px 8px -4px rgba(0,0,0,.35); transition: transform .15s ease, opacity .2s ease, box-shadow .2s ease; }
.hm-t:active { transform: scale(.95); }
.hm-t b { position: relative; z-index: 1; font-size: 12.5px; font-weight: 700; line-height: 1.05; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: inherit !important; }
.hm-t span { position: relative; z-index: 1; font-size: 10px; font-weight: 600; opacity: .92; line-height: 1.1; white-space: nowrap; color: inherit !important; }
.hm-t svg { position: absolute; inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px); pointer-events: none; }
.hm-trilho { fill: none; stroke: rgba(255,255,255,.22); stroke-width: 2.4; }
.hm-arco { fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; }
.hm-ok { background: linear-gradient(160deg, #5f7340, #3e4c2b); }
.hm-alerta { background: linear-gradient(160deg, #c49a3e, #8d6a20); }
.hm-erro { background: linear-gradient(160deg, #c0644a, #8a3b28); }
.hm-rod { opacity: .62; }
.hm-vazio { background: #fffdf7; border: 1.5px dashed #d6caa6; color: #8a8570; box-shadow: none; }
.hm-vazio b { color: #6d6a58 !important; }
.hm-t.hm-sel { outline: 3px solid #e3c487; outline-offset: 1px; box-shadow: 0 6px 16px -6px rgba(120,90,30,.6); }
.hm-t.hm-apaga { opacity: .16; transform: scale(.94); }
.hm-det { margin: 0 0 12px; background: #fffdf7; border: 1px solid #c9a45c; border-radius: 16px; padding: 12px; box-shadow: 0 14px 28px -16px rgba(38,48,27,.5); }
.hm-det.hm-entra { animation: hmEntra .25s ease; }
@keyframes hmEntra { from { opacity: .3; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.hm-det-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hm-det-cab b { font-size: 18px; font-weight: 700; color: #2b3520; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.hm-tag { flex: none; border-radius: 999px; padding: 3px 9px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.hm-tag.ok { background: #eef2e4; color: #3e4c2b; } .hm-tag.alerta { background: #f7ecd0; color: #7a5a17; } .hm-tag.erro { background: #f8e3dc; color: #8a3b28; } .hm-tag.vazio { background: #f1ecdc; color: #6d6a58; }
.hm-kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
.hm-kv > div { background: #f6f1e3; border-radius: 10px; padding: 7px 8px; min-width: 0; }
.hm-kv small { display: block; font-size: 9.5px !important; letter-spacing: .12em; font-weight: 700; text-transform: uppercase; color: #8a6d2c !important; }
.hm-kv b { display: block; font: 400 20px/1.15 "DM Serif Display", Georgia, serif; color: #2b3520; }
.hm-kv b.neg { color: #b5543d; } .hm-kv b.pos { color: #56683a; }
.hm-kv em { display: block; font-style: normal; font-size: 10.5px; color: #7b7864; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hm-bt { width: 100%; margin-top: 10px; justify-content: center; }
.hm-det .ajuda { margin: 0; text-align: center; }
/* modo escuro */
html[data-modo="escuro"] .hm-res { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #262624, #171716); border-color: rgba(201,164,92,.45); }
html[data-modo="escuro"] .hm-vazio { background: #1c1c1b; border-color: #4a4a45; }
html[data-modo="escuro"] .hm-vazio b { color: #d8d3c2 !important; }
html[data-modo="escuro"] .hm-det { background: #1f1f1e; border-color: rgba(201,164,92,.55); }
html[data-modo="escuro"] .hm-det-cab b, html[data-modo="escuro"] .hm-kv b { color: #f3f0e2; }
html[data-modo="escuro"] .hm-kv > div { background: #262624; }
html[data-modo="escuro"] .hm-kv small { color: #d9b86e !important; }
html[data-modo="escuro"] .hm-kv em { color: #b8b3a2; }
html[data-modo="escuro"] .hm-kv b.neg { color: #e0876f; } html[data-modo="escuro"] .hm-kv b.pos { color: #a5c070; }
html[data-modo="escuro"] .hm-tag.ok { background: #2c3420; color: #c7d8a4; } html[data-modo="escuro"] .hm-tag.alerta { background: #3a3019; color: #e9c87e; } html[data-modo="escuro"] .hm-tag.erro { background: #3d2219; color: #f0a48f; } html[data-modo="escuro"] .hm-tag.vazio { background: #2a2a28; color: #cfc9b6; }
/* v1.99.1 – o microfone fica só no menu de baixo: com uma folha aberta (que cobre o menu) ele some junto */
html.tem-folha #vozFab { opacity: 0 !important; pointer-events: none !important; transform: scale(.85); transition: opacity .2s ease, transform .2s ease; }
.hm-t.hm-n1 b { font-size: 11.5px; } .hm-t.hm-n2 b { font-size: 10px; letter-spacing: -.02em; } .hm-t.hm-n3 b { font-size: 8.5px; letter-spacing: -.02em; }

/* v1.99.2 – PASTOS VAZIOS: resumo escuro + linhas com o anel dos dias de descanso */
.vd-res { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #3e4c2b, #26301b); border: 1px solid rgba(201,164,92,.4); border-radius: 18px; padding: 13px; color: #fff; box-shadow: 0 14px 28px -14px rgba(38,48,27,.6); }
.vd-res-rot { display: block; font-size: 10px !important; letter-spacing: .18em; font-weight: 700; text-transform: uppercase; color: #e3c487 !important; }
.vd-big { display: flex; align-items: baseline; gap: 8px; margin-top: 6px; min-width: 0; }
.vd-big b { font: 400 38px/1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; flex: none; }
.vd-big span { color: #e8e2d0 !important; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.vd-barra { height: 9px; border-radius: 5px; background: rgba(255,255,255,.14); margin: 10px 0 2px; overflow: hidden; }
.vd-barra i { display: block; height: 100%; border-radius: 5px; background: linear-gradient(90deg, #e3c487, #b98d3f); }
.vd-kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
.vd-kv > div { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 7px 4px; text-align: center; min-width: 0; }
.vd-kv b { display: block; font: 400 22px/1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; }
.vd-kv span { display: block; font-size: 10.5px; color: #e8e2d0 !important; white-space: nowrap; overflow: hidden;  margin-top: 3px; }
.vd-sec { display: flex; justify-content: space-between; gap: 8px; font-size: 10.5px; letter-spacing: .14em; font-weight: 700; text-transform: uppercase; color: #8a6d2c; margin: 14px 2px 8px; white-space: nowrap; }
.vd-sec span:last-child { letter-spacing: .06em; text-transform: none; font-weight: 600; color: #9a8a5c; }
.vd-lista { display: flex; flex-direction: column; gap: 8px; }
@media (min-width: 900px) { .vd-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vd-lin { display: flex; align-items: center; gap: 10px; background: #fffdf7; border: 1px solid #e9e1cc; border-radius: 16px; padding: 10px; box-shadow: 0 6px 16px -12px rgba(38,48,27,.35); min-width: 0; }
.vd-anel { position: relative; width: 52px; height: 52px; flex: none; }
.vd-anel svg { width: 52px; height: 52px; display: block; }
.vd-anel b { position: absolute; left: 0; right: 0; top: 13px; text-align: center; font: 400 18px/1 "DM Serif Display", Georgia, serif; color: #2f3a22; }
.vd-anel em { position: absolute; left: 0; right: 0; top: 31px; text-align: center; font: 700 8.5px/1 "DM Sans", sans-serif; font-style: normal; color: #8a8570; letter-spacing: .04em; }
.vd-anel b:only-of-type { top: 17px; }
.vd-trilho { fill: none; stroke: #ece5d2; stroke-width: 4; }
.vd-arco { fill: none; stroke-width: 4; stroke-linecap: round; transition: stroke-dasharray .5s ease; }
.vd-c-pr { stroke: #56683a; } .vd-c-de { stroke: #b48a2f; } .vd-c-pa { stroke: #b5543d; } .vd-c-sr { stroke: #d6caa6; }
.vd-mid { flex: 1; min-width: 0; }
.vd-nome { font-size: 16.5px; font-weight: 700; color: #2b3520; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vd-st { display: inline-block; max-width: 100%; margin-top: 3px; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: top; }
.vd-st.pr { background: #eef2e4; color: #3e4c2b; } .vd-st.de { background: #f7ecd0; color: #7a5a17; } .vd-st.pa { background: #f8e3dc; color: #8a3b28; } .vd-st.sr { background: #f1ecdc; color: #6d6a58; }
.vd-ha { font-size: 11.5px; color: #7b7864; margin-top: 3px; }
.vd-dir { flex: none; text-align: right; display: flex; flex-direction: column; align-items: flex-end; }
.vd-dir b { font: 400 22px/1 "DM Serif Display", Georgia, serif; color: #2f3a22; }
.vd-dir span { font-size: 10.5px; color: #7b7864; }
.vd-bt { margin-top: 6px; border-radius: 999px; background: linear-gradient(180deg, #56683a, #2b3520); color: #f6e5bb; border: 1px solid #c9a45c; font: 700 12.5px "DM Sans", sans-serif; padding: 7px 13px; white-space: nowrap; cursor: pointer; box-shadow: 0 4px 10px -6px rgba(38,48,27,.6); }
.vd-bt:active { transform: scale(.97); }
.vd-nota { font-size: 11.5px; color: #7b7864; margin: 10px 2px 0; line-height: 1.4; }
/* modo escuro */
html[data-modo="escuro"] .vd-res { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #262624, #171716); border-color: rgba(201,164,92,.45); }
html[data-modo="escuro"] .vd-lin { background: #1f1f1e; border-color: #34342f; box-shadow: none; }
html[data-modo="escuro"] .vd-nome, html[data-modo="escuro"] .vd-dir b, html[data-modo="escuro"] .vd-anel b { color: #f3f0e2; }
html[data-modo="escuro"] .vd-ha, html[data-modo="escuro"] .vd-dir span, html[data-modo="escuro"] .vd-nota, html[data-modo="escuro"] .vd-anel em { color: #b8b3a2; }
html[data-modo="escuro"] .vd-trilho { stroke: #34342f; }
html[data-modo="escuro"] .vd-sec { color: #d9b86e; }
html[data-modo="escuro"] .vd-st.pr { background: #2c3420; color: #c7d8a4; } html[data-modo="escuro"] .vd-st.de { background: #3a3019; color: #e9c87e; } html[data-modo="escuro"] .vd-st.pa { background: #3d2219; color: #f0a48f; } html[data-modo="escuro"] .vd-st.sr { background: #2a2a28; color: #cfc9b6; }
html[data-modo="escuro"] .vd-c-pr { stroke: #8fae5c; }

/* v1.99.3 – CAPACIDADE / CARGA ANIMAL / ÁREA EMPASTADA: resumo escuro + uma linha por pasto com barra */
.ct-res { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #3e4c2b, #26301b); border: 1px solid rgba(201,164,92,.4); border-radius: 18px; padding: 13px; color: #fff; box-shadow: 0 14px 28px -14px rgba(38,48,27,.6); min-width: 0; }
.ct-rot { display: block; font-size: 10px !important; letter-spacing: .18em; font-weight: 700; text-transform: uppercase; color: #e3c487 !important; }
.ct-big { display: flex; align-items: baseline; gap: 8px; margin-top: 6px;  }
.ct-big b { font: 400 38px/1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; flex: none; }
.ct-big span { color: #e8e2d0 !important; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ct-frase { margin-top: 6px; font-size: 17px; color: #e8e2d0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ct-frase b { font: 400 36px/1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; vertical-align: -3px; margin-right: 2px; }
.ct-res.erro .ct-frase b { color: #f2a48c !important; }
.ct-uso { height: 9px; border-radius: 5px; background: rgba(255,255,255,.14); margin: 11px 0 4px; overflow: hidden; }
.ct-uso i { display: block; height: 100%; border-radius: 5px; background: linear-gradient(90deg, #a5c070, #6b8540); }
.ct-res.alerta .ct-uso i { background: linear-gradient(90deg, #e3c487, #b98d3f); }
.ct-res.erro .ct-uso i { background: linear-gradient(90deg, #f0a48f, #c0644a); }
.ct-pilha { display: flex; height: 9px; border-radius: 5px; overflow: hidden; margin: 11px 0 4px; background: rgba(255,255,255,.14); gap: 2px; }
.ct-pilha i { display: block; min-width: 0; }
.ct-pilha .com, .ct-dot.com { background: linear-gradient(90deg, #a5c070, #6b8540); }
.ct-pilha .sem, .ct-dot.sem { background: repeating-linear-gradient(135deg, rgba(255,255,255,.35) 0 3px, rgba(255,255,255,.12) 3px 6px); }
.ct-dot { display: inline-block; width: 8px; height: 8px; border-radius: 3px; margin-right: 5px; vertical-align: 0; }
.ct-uso-leg { display: flex; justify-content: space-between; gap: 8px; font-size: 11.5px; color: #d9d2bd !important; white-space: nowrap; }
.ct-uso-leg span { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ct-uso-leg span:last-child { flex: none; }
.ct-uso-leg b { color: #fbf3df !important; }
.ct-kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
.ct-kv > div { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 7px 4px; text-align: center; min-width: 0; }
.ct-kv b { display: block; font: 400 22px/1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; white-space: nowrap; }
.ct-kv span { display: block; font-size: 10.5px; color: #e8e2d0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 3px; }
.ct-sec { display: flex; justify-content: space-between; gap: 8px; font-size: 10.5px; letter-spacing: .14em; font-weight: 700; text-transform: uppercase; color: #8a6d2c; margin: 14px 2px 8px; white-space: nowrap; }
.ct-sec span:first-child { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ct-sec span:last-child { flex: none; letter-spacing: .06em; text-transform: none; font-weight: 600; color: #9a8a5c; }
.ct-lista { display: flex; flex-direction: column; gap: 7px; }
@media (min-width: 900px) { .ct-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ct-lin { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; font: inherit; color: inherit; background: #fffdf7; border: 1px solid #e9e1cc; border-radius: 14px; padding: 9px 11px; box-shadow: 0 6px 16px -12px rgba(38,48,27,.35); min-width: 0; cursor: pointer; }
button.ct-lin:active { transform: scale(.985); }
.ct-lin.vz { cursor: default; background: #fbf8ef; }
.ct-nome { flex: 0 1 38%; min-width: 0; display: flex; flex-direction: column; }
.ct-nome b { font-size: 15px; font-weight: 700; color: #2b3520; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ct-nome small { font-size: 11px; color: #7b7864; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.ct-bar { flex: 1; min-width: 40px; height: 8px; border-radius: 4px; background: #efe9d8; overflow: hidden; }
.ct-bar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #8fae5c, #56683a); }
.ct-bar i.alerta { background: linear-gradient(90deg, #e3c487, #b48a2f); }
.ct-bar i.erro { background: linear-gradient(90deg, #e79a83, #b5543d); }
.ct-bar i.vz, .ct-bar i.cinza { background: repeating-linear-gradient(135deg, #d6caa6 0 3px, #ebe3cc 3px 6px); }
.ct-div { position: relative; flex: 1; min-width: 50px; height: 8px; border-radius: 4px; background: #efe9d8; }
.ct-div s { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; margin-left: -1px; background: #b9a979; border-radius: 1px; }
.ct-div i { position: absolute; top: 0; bottom: 0; }
.ct-div i.pos { background: linear-gradient(90deg, #8fae5c, #56683a); border-radius: 0 4px 4px 0; }
.ct-div i.neg { background: linear-gradient(270deg, #e79a83, #b5543d); border-radius: 4px 0 0 4px; }
.ct-val { flex: none; min-width: 54px; text-align: right; display: flex; flex-direction: column; align-items: flex-end; }
.ct-val b { font: 400 20px/1 "DM Serif Display", Georgia, serif; color: #2f3a22; white-space: nowrap; }
.ct-val small { font-size: 10.5px; color: #7b7864; white-space: nowrap; margin-top: 2px; }
.ct-val.pos b { color: #43592a; } .ct-val.neg b { color: #a3352a; }
.ct-nota { font-size: 11.5px; color: #7b7864; margin: 10px 2px 0; line-height: 1.4; }
/* modo escuro */
html[data-modo="escuro"] .ct-res { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #262624, #171716); border-color: rgba(201,164,92,.45); }
html[data-modo="escuro"] .ct-lin { background: #1f1f1e; border-color: #34342f; box-shadow: none; }
html[data-modo="escuro"] .ct-lin.vz { background: #1a1a19; }
html[data-modo="escuro"] .ct-nome b, html[data-modo="escuro"] .ct-val b { color: #f3f0e2; }
html[data-modo="escuro"] .ct-val.pos b { color: #a5c070; } html[data-modo="escuro"] .ct-val.neg b { color: #f0a48f; }
html[data-modo="escuro"] .ct-nome small, html[data-modo="escuro"] .ct-val small, html[data-modo="escuro"] .ct-nota { color: #b8b3a2; }
html[data-modo="escuro"] :is(.ct-bar, .ct-div) { background: #34342f; }
html[data-modo="escuro"] .ct-div s { background: #8a7d58; }
html[data-modo="escuro"] .ct-bar i.vz, html[data-modo="escuro"] .ct-bar i.cinza { background: repeating-linear-gradient(135deg, #5a564a 0 3px, #3a3833 3px 6px); }
html[data-modo="escuro"] .ct-sec { color: #d9b86e; }
html[data-tema] body .folha .folha-cab .folha-tit { display: block !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* v1.99.4 – REBANHO POR CATEGORIA: resumo escuro + cartões no padrão novo (mesmas informações, sem quebrar linha) */
.rb-pilha { display: flex; gap: 2px; height: 9px; border-radius: 5px; overflow: hidden; margin: 11px 0 4px; background: rgba(255,255,255,.14); }
.rb-pilha i { display: block; min-width: 0; }
.rb-c0 { background: #e3c487; } .rb-c1 { background: #c9a45c; } .rb-c2 { background: #a5c070; } .rb-c3 { background: #7f9a4f; } .rb-c4 { background: #5d733b; }
.rb-outras { background: repeating-linear-gradient(135deg, rgba(255,255,255,.32) 0 3px, rgba(255,255,255,.12) 3px 6px); }
.rb-busca { margin-top: 12px !important; }
.rb-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 10px; }
@media (min-width: 700px) { .rb-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .rb-grade { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rb-card { background: #fffdf7; border: 1px solid #e9e1cc; border-radius: 16px; padding: 11px 11px 10px; box-shadow: 0 6px 16px -12px rgba(38,48,27,.35); min-width: 0; position: relative; overflow: hidden; }
.rb-card::after { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: linear-gradient(90deg, #56683a, #c9a45c); opacity: .85; }
.rb-top { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; }
.rb-top b { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #2b3520; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.rb-pct { flex: none; font-size: 11px; font-weight: 700; color: #6f5a26; background: #f4eedd; border: 1px solid #e0d3b0; border-radius: 999px; padding: 2px 7px; white-space: nowrap; }
.rb-num { display: flex; align-items: baseline; gap: 6px; margin-top: 7px; min-width: 0; }
.rb-num b { font: 400 30px/1 "DM Serif Display", Georgia, serif; color: #2f3a22; flex: none; }
.rb-num span { font-size: 12.5px; color: #7b7864; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-barra { height: 6px; border-radius: 3px; background: #efe9d8; margin: 9px 0 9px; overflow: hidden; }
.rb-barra i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #56683a, #c9a45c); }
.rb-kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px dashed #e0d3b0; padding-top: 8px; }
.rb-kv > div { min-width: 0; text-align: center; }
.rb-kv > div + div { border-left: 1px solid #eee6d2; }
.rb-kv b { display: block; font-size: 13.5px; font-weight: 700; color: #2f3a22; white-space: nowrap; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.rb-kv span { display: block; font-size: 9.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9a8a5c; white-space: nowrap; margin-top: 2px; }
.rb-kv b.rb-p1 { font-size: 12.5px; } .rb-kv b.rb-p2 { font-size: 11.5px; } .rb-kv b.rb-p3 { font-size: 10.5px; }
/* modo escuro */
html[data-modo="escuro"] .rb-card { background: #1f1f1e; border-color: #34342f; box-shadow: none; }
html[data-modo="escuro"] .rb-top b, html[data-modo="escuro"] .rb-num b, html[data-modo="escuro"] .rb-kv b { color: #f3f0e2; }
html[data-modo="escuro"] .rb-num span { color: #b8b3a2; }
html[data-modo="escuro"] .rb-kv span { color: #c9ad6a; }
html[data-modo="escuro"] .rb-pct { background: #272726; border-color: #3d3a30; color: #e3c487; }
html[data-modo="escuro"] .rb-barra { background: #34342f; }
html[data-modo="escuro"] .rb-kv { border-top-color: #3d3a30; } html[data-modo="escuro"] .rb-kv > div + div { border-left-color: #34342f; }
/* v1.99.4 – busca do Rebanho: texto de dica um pouco menor para "Buscar carimbo ou categoria" caber inteiro */
.rb-busca .busca-cards::placeholder { font-size: var(--ph-fs, 13.5px); }

/* v1.99.5 – DESEMPENHO: o menu de baixo já tem fundo sólido; o desfoque por trás dele (backdrop-filter) era refeito
   a cada quadro ao rolar/trocar de tela, sem mudar nada na aparência – desligado no tema Fazenda */
html:is([data-tema="oliva"],[data-tema="fazenda"]) .nav { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
html[data-tema="fazenda"][data-modo="escuro"] .nav { background: rgba(14,14,13,.98) !important; }

/* v1.99.6 – COMPUTADOR: menos informação miúda e tudo maior, ocupando o espaço da tela */
.kp-lot-desk { display: none; }
@media (min-width: 900px) {
  /* Taxa de lotação */

  html[data-tema] .kpis.kp-novo .kp-lot .kp-lot-extra { display: none !important; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-lot-corpo { display: grid !important; grid-template-columns: auto auto minmax(0, 1fr) !important; align-items: center !important;  margin-top: 8px; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-gauge {  height: auto !important; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-lot-num b {  line-height: .95 !important; }

  html[data-tema] .kpis.kp-novo .kp-lot .kp-rot { font-size: 13px !important; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-st { font-size: 13px !important; padding: 5px 12px !important; }
   html[data-tema] .kpis.kp-novo .kp-lot .kp-pe { margin-top: 14px !important; padding-top: 12px !important; }
  .kp-lot-desk { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding-left: 30px; border-left: 1px solid rgba(227,196,135,.25); }

  
  
  
  
   
   
  
  

  /* cartões do mosaico: letra e números maiores, menos espaço sobrando */
  .pn-mosaico { gap: 16px !important; }
  html[data-tema] .pn-tile { min-height: 190px !important; padding: 20px 22px !important; }
  html[data-tema] .pn-tile .pn-tile-ic { width: 42px !important; height: 42px !important; }
  html[data-tema] .pn-tile .pn-tile-ic svg { width: 22px !important; height: 22px !important; }
  html[data-tema] .pn-tile .pn-tile-tit { font-size: 21px !important; margin-top: 10px !important; }
  html[data-tema] .pn-tile .pn-tile-val b { font-size: 46px !important; }
  html[data-tema] .pn-tile .pn-tile-val small { font-size: 15px !important; }
  html[data-tema] .pn-tile .pn-tile-det { font-size: 15px !important; }
  html[data-tema] .pn-tile .kp-barra, html[data-tema] .pn-tile .kp-comp { height: 10px !important; }
  html[data-tema] .pn-tile .kp-leg, html[data-tema] .pn-tile .pn-mapa-leg { font-size: 13.5px !important; }
  .pn-tile[data-folha="lpp"] .pn-tile-chip { padding: 6px 11px !important; }
}

@media (min-width: 900px) and (max-width: 1180px) {
  html[data-tema] .kpis.kp-novo .kp-lot .kp-lot-corpo { gap: 20px !important; }

  .kp-lot-desk { padding-left: 20px; }

  
   
}
@media (min-width: 900px) { html[data-tema] .pn-tile .pn-tile-det { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; } }
@media (min-width: 900px) and (max-width: 1180px) {
  html[data-tema] .pn-tile { padding: 16px 18px !important; min-height: 170px !important; }
  html[data-tema] .pn-tile .pn-tile-tit { font-size: 19px !important; }
  html[data-tema] .pn-tile .pn-tile-val b { font-size: 38px !important; }
  html[data-tema] .pn-tile .pn-tile-det { font-size: 13.5px !important; }
}

/* v1.99.8 – Taxa de lotação no computador: MANEJO (tirar gado de / prontos para receber) */
@media (min-width: 900px) {
  .kp-lot-desk.kld-manejo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; flex-direction: initial; }
  .kld-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; background: rgba(0,0,0,.14); border: 1px solid rgba(227,196,135,.22); border-radius: 16px; padding: 12px 14px; }
  .kld-tit { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #e3c487; white-space: nowrap; min-width: 0; }
  .kld-tit small { margin-left: auto; font-size: 11.5px; font-weight: 500; letter-spacing: 0; text-transform: none; color: #cfc8b2; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  .kld-dot { flex: none; width: 9px; height: 9px; border-radius: 50%; } .kld-dot.erro { background: #e79a83; } .kld-dot.ok { background: #a5c070; }
  .kld-lista { display: flex; flex-direction: column; gap: 5px; min-height: 112px; }
  .kld-l { display: flex; align-items: center; gap: 10px; width: 100%; min-width: 0; text-align: left; font: inherit; color: #fbf3df; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 11px; padding: 7px 11px; cursor: pointer; }
  .kld-l:hover { background: rgba(255,255,255,.11); }
  .kld-l b { flex: none; font-size: 15px; font-weight: 700; white-space: nowrap; }
  .kld-l span { flex: 1; min-width: 0; font-size: 13.5px; color: #e0d9c4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .kld-l em { flex: none; font-style: normal; font-size: 12.5px; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
  .kld-l em.erro { background: rgba(231,154,131,.22); color: #f6c2b2; } .kld-l em.alerta { background: rgba(227,196,135,.22); color: #f1d9a4; } .kld-l em.ok { background: rgba(165,192,112,.22); color: #d3e5ae; }
  .kld-ok { font-size: 13.5px; color: #d9d2bd; padding: 8px 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .kld-mais { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; font: 600 13px "DM Sans", sans-serif; color: #e3c487; background: none; border: 0; border-top: 1px dashed rgba(227,196,135,.3); padding: 8px 2px 0; cursor: pointer; white-space: nowrap; }
  .kld-mais span { font-size: 18px; line-height: 1; }
  .kld-mais:hover { color: #f6e5bb; }
  /* o cartão fica mais baixo e proporcional (menos gigante) */
  html[data-tema] .kpis.kp-novo .kp-lot { padding: 18px 22px 14px !important; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-gauge { width: 170px !important; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-lot-num b { font-size: 60px !important; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-lot-num small { font-size: 16px !important; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-lot-corpo { gap: 24px !important; }
  .kp-lot-desk.kld-manejo { padding-left: 24px; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-pe, html[data-tema] .kpis.kp-novo .kp-lot .kp-pe * { font-size: 14.5px !important; }
}
@media (min-width: 900px) and (max-width: 1180px) {
  html[data-tema] .kpis.kp-novo .kp-lot .kp-gauge { width: 130px !important; }
  html[data-tema] .kpis.kp-novo .kp-lot .kp-lot-num b { font-size: 46px !important; }
  .kld-tit small { display: none; } .kld-l span { font-size: 12.5px; } .kld-l b { font-size: 14px; }
  .kp-lot-desk.kld-manejo { gap: 10px; padding-left: 16px; }
}
html[data-tema="fazenda"][data-modo="escuro"] .kld-col { background: rgba(0,0,0,.25); }

/* v1.100.0 – Histórico: excluir um lançamento por vez */

.modal.cf.hx { max-width: 460px; }
.hx-linha { margin: 2px 0 12px; text-align: center; font-size: 14px; color: #6d6a58; }
.hx-ops { display: flex; flex-direction: column; gap: 9px; margin: 4px 0 12px; }
.hx-op { display: flex; flex-direction: column; gap: 3px; text-align: left; width: 100%; font: inherit; cursor: pointer; padding: 12px 14px; border-radius: 14px; border: 1px solid #e6dcc4; background: #fffdf7; color: #2b3520; }
.hx-op b { font-size: 15.5px; } .hx-op span { font-size: 13px; color: #6d6a58; line-height: 1.35; }
.hx-op[data-hx="desfazer"] { border-color: #c9a45c; background: linear-gradient(180deg, #fffaf0, #f7efd9); }
.hx-op[data-hx="registro"] b { color: #a3352a; }
.hx-op:hover:not(:disabled) { box-shadow: 0 6px 16px -10px rgba(38,48,27,.5); }
.hx-op:disabled { opacity: .55; cursor: not-allowed; }
html[data-modo="escuro"] .hx-op { background: #1f1f1e; border-color: #3a382f; color: #f3f0e2; }
html[data-modo="escuro"] .hx-op[data-hx="desfazer"] { background: #2a2618; border-color: #7a6532; }
html[data-modo="escuro"] .hx-op span, html[data-modo="escuro"] .hx-linha { color: #b8b3a2; }
html[data-modo="escuro"] .hx-op[data-hx="registro"] b { color: #f0a48f; }
/* no celular (tabela vira cartão): o excluir vira um botão largo no pé do cartão */

/* v1.101.0 – permissões: o que o usuário não pode fazer some da tela (o banco também barra) */
html.sem-lancar :is(.req-lancar, [data-req="lancar"]), html.sem-editar [data-req="editar"], html.sem-excluir [data-req="excluir"] { display: none !important; }

/* v1.101.0 – USUÁRIOS: lista e folha de cada pessoa */
.us-kv { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.us-acoes { display: flex; justify-content: flex-end; margin: 12px 0 10px; }
.us-lista { display: flex; flex-direction: column; gap: 8px; }
@media (min-width: 900px) { .us-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1500px) { .us-lista { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.us-lin { display: flex; align-items: center; gap: 12px; width: 100%; min-width: 0; text-align: left; font: inherit; color: inherit; cursor: pointer; background: #fffdf7; border: 1px solid #e9e1cc; border-radius: 16px; padding: 11px 12px; box-shadow: 0 6px 16px -12px rgba(38,48,27,.35); }
.us-lin:hover { border-color: #d9c89c; } .us-lin:active { transform: scale(.99); }
.us-lin.bloq { opacity: .7; } .us-lin.bloq .us-av { filter: grayscale(1); }
.us-av { flex: none; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font: 700 15px "DM Sans", sans-serif; color: #fbf3df; letter-spacing: .02em; box-shadow: 0 0 0 2px #fffdf7, 0 0 0 3.5px #c9a45c; }
.us-av.grande { width: 58px; height: 58px; font-size: 20px; box-shadow: 0 0 0 2px #2b3520, 0 0 0 3.5px #e3c487; }
.us-av.p-admin { background: linear-gradient(135deg, #b98d3f, #7a5a17); } .us-av.p-gerente { background: linear-gradient(135deg, #6b8540, #3e4c2b); }
.us-av.p-colaborador { background: linear-gradient(135deg, #8a9a6a, #56683a); } .us-av.p-visualizador { background: linear-gradient(135deg, #9c9686, #6d6a58); }
.us-mid { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.us-mid b { font-size: 15.5px; color: #2b3520; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.us-mid small { font-size: 12px; color: #7b7864; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.us-voce { font-style: normal; font-size: 10.5px; font-weight: 700; color: #8a6d2c; background: #f4eedd; border-radius: 999px; padding: 1px 7px; vertical-align: 2px; }
.us-info { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; max-width: 46%; min-width: 0; }
.us-info small { font-size: 11px; color: #7b7864; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.us-papel { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.us-papel.p-admin { background: #f7ecd0; color: #7a5a17; } .us-papel.p-gerente { background: #e6eed8; color: #3e4c2b; }
.us-papel.p-colaborador { background: #eef2e4; color: #56683a; } .us-papel.p-visualizador { background: #efece2; color: #6d6a58; }
.us-go { flex: none; color: #b9a979; font-size: 22px; line-height: 1; }
@media (max-width: 420px) { .us-info small { display: none; } }
/* folha do usuário */
.uf-topo { display: flex; align-items: center; gap: 14px; }
.uf-topo-txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.uf-topo-txt b { font: 400 24px/1.1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uf-topo-txt small { color: #e8e2d0 !important; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uf-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; align-items: center; }
.uf-est { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 999px; } .uf-est.ok { background: rgba(165,192,112,.25); color: #d3e5ae; } .uf-est.erro { background: rgba(231,154,131,.25); color: #f6c2b2; }
.uf-acesso { font-size: 11.5px; color: #d9d2bd; }
.uf-sec { margin-top: 4px; }
.uf-box { background: #fffdf7; border: 1px solid #e9e1cc; border-radius: 16px; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.uf-box + .uf-box { margin-top: 8px; }
.uf-campo label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8a6d2c; margin-bottom: 4px; }
.uf-campo input { width: 100%; box-sizing: border-box; }
.uf-papeis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (max-width: 560px) { .uf-papeis { grid-template-columns: 1fr; } }
.uf-papel { display: flex; align-items: flex-start; gap: 10px; text-align: left; font: inherit; color: #2b3520; cursor: pointer; background: #fffdf7; border: 1.5px solid #e9e1cc; border-radius: 16px; padding: 11px; min-width: 0; }
.uf-papel .us-av { width: 34px; height: 34px; font-size: 14px; }
.uf-papel b { display: block; font-size: 14.5px; } .uf-papel small { display: block; font-size: 12px; color: #7b7864; line-height: 1.35; margin-top: 2px; }
.uf-papel.sel { border-color: #c9a45c; background: linear-gradient(180deg, #fffaf0, #f7efd9); box-shadow: 0 0 0 3px rgba(201,164,92,.18); }
.uf-papel:disabled { cursor: not-allowed; opacity: .7; }
.uf-link { background: none; border: 0; padding: 0; font: inherit; color: #8a6d2c; text-decoration: underline; cursor: pointer; letter-spacing: 0; text-transform: none; }
.uf-fzs { display: flex; flex-wrap: wrap; gap: 7px; }
.uf-fzs.off { opacity: .6; }
.uf-fz { display: inline-flex; align-items: center; gap: 6px; font: 600 13px "DM Sans", sans-serif; color: #56683a; background: #fffdf7; border: 1.5px solid #e0d7bf; border-radius: 999px; padding: 6px 12px 6px 8px; cursor: pointer; white-space: nowrap; }
.uf-fz i { width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid #cfc3a2; display: grid; place-items: center; font-style: normal; font-size: 11px; color: transparent; }
.uf-fz.sel { background: #3e4c2b; color: #f6e5bb; border-color: #3e4c2b; } .uf-fz.sel i { background: #e3c487; border-color: #e3c487; color: #2b3520; }
.uf-perms.off { opacity: .6; }
.uf-grp { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #9a8a5c; }
.uf-perm { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 0; border-top: 1px dashed #ece4cf; cursor: pointer; }
.uf-grp + .uf-perm { border-top: 0; }
.uf-perm span { min-width: 0; } .uf-perm b { display: block; font-size: 14.5px; color: #2b3520; } .uf-perm small { display: block; font-size: 12px; color: #7b7864; }
.uf-mud { font-style: normal; font-size: 10px; font-weight: 700; color: #7a5a17; background: #f7ecd0; border-radius: 999px; padding: 1px 6px; vertical-align: 2px; }
.uf-sw { appearance: none; -webkit-appearance: none; flex: none; width: 46px; height: 27px; border-radius: 999px; background: #d9d1bb; position: relative; cursor: pointer; transition: background .2s; margin: 0; }
.uf-sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 21px; height: 21px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s; }
.uf-sw:checked { background: #56683a; } .uf-sw:checked::after { transform: translateX(19px); }
.uf-sw:disabled { cursor: not-allowed; }
.uf-conta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
@media (max-width: 700px) { .uf-conta { grid-template-columns: 1fr; } }
.uf-ac { display: flex; flex-direction: column; gap: 3px; text-align: left; font: inherit; cursor: pointer; background: #fffdf7; border: 1px solid #e9e1cc; border-radius: 14px; padding: 11px 12px; color: #2b3520; }
.uf-ac b { font-size: 14.5px; } .uf-ac small { font-size: 12px; color: #7b7864; }
.uf-ac.perigo b { color: #a3352a; } .uf-ac:hover { box-shadow: 0 6px 16px -10px rgba(38,48,27,.45); }
.uf-dados { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12.5px; color: #7b7864; padding: 2px 2px 0; }
.uf-dados b { color: #2b3520; }
.uf-ativ { display: flex; flex-direction: column; gap: 6px; }
.uf-at { display: flex; align-items: center; gap: 10px; background: #fffdf7; border: 1px solid #ece4cf; border-radius: 12px; padding: 8px 11px; min-width: 0; }
.uf-at-t { flex: none; font-size: 11.5px; font-weight: 700; color: #56683a; background: #eef2e4; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.uf-at-d { flex: 1; min-width: 0; font-size: 13.5px; color: #2b3520; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uf-at-d small { margin-left: 6px; color: #9a8a5c; font-size: 11.5px; }
.uf-at-q { flex: none; font-size: 12px; color: #7b7864; white-space: nowrap; }
.uf-rodape { position: sticky; bottom: calc(-24px - env(safe-area-inset-bottom, 0px)); display: flex; gap: 8px; margin: 16px -12px calc(-24px - env(safe-area-inset-bottom, 0px)); padding: 12px 12px calc(14px + env(safe-area-inset-bottom, 0px)); background: linear-gradient(180deg, rgba(239,236,227,0), #efece3 30%); }
.uf-rodape .btn { flex: 1; }
/* modo escuro */
html[data-modo="escuro"] :is(.us-lin, .uf-box, .uf-papel, .uf-ac, .uf-at, .uf-fz) { background: #1f1f1e; border-color: #34342f; box-shadow: none; }
html[data-modo="escuro"] :is(.us-mid b, .uf-papel, .uf-perm b, .uf-ac, .uf-at-d, .uf-dados b) { color: #f3f0e2; }
html[data-modo="escuro"] :is(.us-mid small, .us-info small, .uf-papel small, .uf-perm small, .uf-ac small, .uf-at-q, .uf-dados) { color: #b8b3a2; }
html[data-modo="escuro"] .us-av { box-shadow: 0 0 0 2px #1f1f1e, 0 0 0 3.5px #8a7340; }
html[data-modo="escuro"] .uf-papel.sel { background: #2a2618; border-color: #7a6532; }
html[data-modo="escuro"] .uf-fz { color: #c7d8a4; } html[data-modo="escuro"] .uf-fz.sel { background: #3e4c2b; color: #f6e5bb; border-color: #56683a; }
html[data-modo="escuro"] .uf-perm { border-color: #34342f; } html[data-modo="escuro"] .uf-sw { background: #4a4840; }
html[data-modo="escuro"] .uf-rodape { background: linear-gradient(180deg, rgba(21,21,20,0), #151514 30%); }
html[data-modo="escuro"] :is(.uf-campo label, .uf-link) { color: #d9b86e; }
html[data-modo="escuro"] .uf-at-t { background: #2c3420; color: #c7d8a4; }
html[data-modo="escuro"] .us-papel.p-admin { background: #3a3019; color: #e9c87e; } html[data-modo="escuro"] .us-papel.p-gerente, html[data-modo="escuro"] .us-papel.p-colaborador { background: #2c3420; color: #c7d8a4; } html[data-modo="escuro"] .us-papel.p-visualizador { background: #2a2a28; color: #cfc9b6; }
.uf-perm b, .uf-perm small { letter-spacing: 0 !important; text-transform: none !important; }
.uf-perm small { font-weight: 400 !important; }
.uf-sec .ct-sec span:only-child { letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: #8a6d2c; }
html[data-modo="escuro"] .uf-sec .ct-sec span:only-child { color: #d9b86e; }
html[data-modo="escuro"] .us-voce { background: #3a3019; color: #e9c87e; }
.uf-campo input { font-size: 16px; padding: 10px 12px; border-radius: 12px; }
.uf-rodape .btn { white-space: nowrap; }

/* v1.102.0 – ADMINISTRAÇÃO no estilo novo */
.adm-res { margin-bottom: 10px; }
.adm-kv.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .adm-kv.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.adm-lin { cursor: default; }
.adm-lin .us-av svg { width: 20px; height: 20px; stroke: #fbf3df; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.adm-nums { flex: none; display: flex; gap: 14px; }
.adm-nums > span { display: flex; flex-direction: column; align-items: flex-end; }
.adm-nums b { font: 400 18px/1 "DM Serif Display", Georgia, serif; color: #2f3a22; white-space: nowrap; }
.adm-nums small { font-size: 10.5px; color: #7b7864; white-space: nowrap; margin-top: 2px; }
.adm-bts { flex: none; display: flex; gap: 6px; }
.adm-ib { width: 36px; height: 36px; border-radius: 11px; border: 1px solid #e0d3b0; background: #fbf6e8; cursor: pointer; display: grid; place-items: center; font-size: 15px; }
.adm-ib:hover { background: #f4ead0; } .adm-ib.perigo { border-color: #e6c9bd; background: #fbf1ec; }
@media (max-width: 520px) { .adm-nums { display: none; } }
.adm-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 10px !important; }
/* textos de ajuda dos painéis: caixa discreta */
.adm-sub > .ajuda, .adm-sub > div > .ajuda[style*="margin-bottom"] { background: #fbf7ec; border: 1px solid #ece3cb; border-radius: 12px; padding: 9px 12px; font-size: 12.5px !important; line-height: 1.45; color: #6d6a58 !important; }
/* tabelas de edição (pastos, produtos, categorias, carimbos) no computador: linhas como cartões */
@media (min-width: 900px) {
  html[data-tema] .adm-sub .tabela-wrap { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; overflow: visible; }

}
/* modo escuro */
html[data-modo="escuro"] .adm-nums b { color: #f3f0e2; } html[data-modo="escuro"] .adm-nums small { color: #b8b3a2; }
html[data-modo="escuro"] .adm-ib { background: #272726; border-color: #3d3a30; } html[data-modo="escuro"] .adm-ib.perigo { background: #2c1d18; border-color: #5a3329; }
html[data-modo="escuro"] .adm-lin .us-av { box-shadow: 0 0 0 2px #1f1f1e, 0 0 0 3.5px #8a7340; }
html[data-modo="escuro"] .adm-sub > .ajuda, html[data-modo="escuro"] .adm-sub > div > .ajuda[style*="margin-bottom"] { background: #1c1c1b; border-color: #34342f; color: #b8b3a2 !important; }

@media (max-width: 520px) { .adm-lin .us-mid b { font-size: 14.5px; } .adm-lin { gap: 9px; padding: 10px; } .adm-lin .us-av { width: 38px; height: 38px; } }
/* janela de edição dos cadastros */
.adm-off { font-style: normal; font-size: 10.5px; font-weight: 700; color: #6d6a58; background: #efece2; border-radius: 999px; padding: 1px 7px; vertical-align: 2px; }
.adm-lin .us-av { font-size: 14px; }
.adm-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; }
.adm-grade .larga { grid-column: 1 / -1; }
.adm-campo label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8a6d2c; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adm-campo input { width: 100%; box-sizing: border-box; font-size: 16px; }
.adm-med { height: 42px; display: flex; align-items: center; font: 400 22px/1 "DM Serif Display", Georgia, serif; color: #2f3a22; }
.adm-sw { border: 1px solid #e9e1cc !important; border-radius: 14px; padding: 9px 12px !important; background: #fffdf7; }
@media (max-width: 420px) { .adm-grade { grid-template-columns: 1fr; } }
html[data-modo="escuro"] .adm-off { background: #2a2a28; color: #cfc9b6; }
html[data-modo="escuro"] .adm-campo label { color: #d9b86e; } html[data-modo="escuro"] .adm-med { color: #f3f0e2; }
html[data-modo="escuro"] .adm-sw { background: #1f1f1e; border-color: #34342f !important; }
.adm-form label.adm-sw { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; margin: 0 !important; text-transform: none !important; letter-spacing: 0 !important; }
.adm-form .uf-sw { width: 46px !important; min-width: 46px !important; max-width: 46px !important; height: 27px !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 999px !important; flex: none; box-shadow: none !important; }
.adm-form .adm-sw b { font-size: 14.5px; color: #2b3520; } .adm-form .adm-sw small { font-size: 12px; color: #7b7864; font-weight: 400; }
html[data-modo="escuro"] .adm-form .adm-sw b { color: #f3f0e2; }

/* v1.102.0 – VOZ, BACKUP e SAÚDE DO APLICATIVO no estilo novo */
.adm-bts .rem-x { width: 36px !important; height: 36px !important; border-radius: 11px !important; border: 1px solid #e6c9bd !important; background: #fbf1ec !important; color: #a3352a !important; font-size: 14px; display: grid; place-items: center; }
html[data-modo="escuro"] .adm-bts .rem-x { background: #2c1d18 !important; border-color: #5a3329 !important; }
.vz-tipo { align-items: flex-start; } .vz-tipo .us-mid b { margin-bottom: 4px; }
.vz-tipo .vz-apr-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.vz-diag-box summary, .bk-rotina summary { cursor: pointer; list-style: none; display: flex; align-items: baseline; gap: 6px; font-size: 14.5px; color: #2b3520; }
.vz-diag-box summary::-webkit-details-marker, .bk-rotina summary::-webkit-details-marker { display: none; }
.vz-diag-box summary::after, .bk-rotina summary::after { content: "›"; margin-left: auto; font-size: 20px; color: #b9a979; transition: transform .2s; }
.vz-diag-box[open] summary::after, .bk-rotina[open] summary::after { transform: rotate(90deg); }
.vz-diag-box summary small { color: #7b7864; font-size: 12px; }
.vz-diag-box, .bk-rotina { margin-top: 14px; }
.bk-acoes { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; margin: 10px 0; }
@media (max-width: 520px) { .bk-acoes { grid-template-columns: 1fr !important; } }
.bk-ac { cursor: pointer; } .bk-ac b { font-size: 15.5px !important; }
#btnBk.bk-ac { border-color: #c9a45c; background: linear-gradient(180deg, #fffaf0, #f7efd9); }
.bk-rest { margin-bottom: 10px; } .bk-rest-lin { display: flex; align-items: center; gap: 12px; min-width: 0; }
.bk-rest-lin .btn { flex: none; }
.bk-log { white-space: normal !important; }
.bk-lista { margin: 10px 0 0; padding-left: 20px; font-size: 13.5px; color: #4a4a3c; line-height: 1.5; }

.sd-res-top { display: flex; align-items: center; gap: 12px;  min-width: 0; }
.sd-res-ic { font-size: 34px; line-height: 1; flex: none; }
.sd-res-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sd-res-tx b { font: 400 26px/1.1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sd-res-tx span { font-size: 13px; color: #e8e2d0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.ct-res.erro.sd-res { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #5c2a1f, #3a1a13) !important; }
.ct-res.alerta.sd-res { background: var(--curvas) center / 560px auto repeat, linear-gradient(135deg, #5a4520, #3a2d14) !important; }
.sd-lista2 { margin-top: 10px; }
.sd-av { font-size: 18px; box-shadow: none !important; }
.sd-av.ok { background: #eef2e4 !important; } .sd-av.alerta { background: #f7ecd0 !important; } .sd-av.erro { background: #f8e3dc !important; } .sd-av.cinza { background: #efece2 !important; }
.sd-lin .us-mid small { white-space: normal;  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sd-chip { flex: none; font-size: 11.5px; font-weight: 700; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.sd-chip.ok { background: #e6eed8; color: #3e4c2b; } .sd-chip.alerta { background: #f7ecd0; color: #7a5a17; } .sd-chip.erro { background: #f8e3dc; color: #8a3b28; } .sd-chip.cinza { background: #efece2; color: #6d6a58; }
.sd-lin.erro { border-color: #e6c9bd; } .sd-lin.alerta { border-color: #ead9ae; }
.sd-rodape { margin-top: 8px; }
html[data-modo="escuro"] :is(.vz-diag-box summary, .bk-rotina summary) { color: #f3f0e2; }
html[data-modo="escuro"] #btnBk.bk-ac { background: #2a2618; border-color: #7a6532; }
html[data-modo="escuro"] .bk-lista { color: #cfc9b6; }
html[data-modo="escuro"] .sd-av.ok { background: #2c3420 !important; } html[data-modo="escuro"] .sd-av.alerta { background: #3a3019 !important; } html[data-modo="escuro"] .sd-av.erro { background: #3d2219 !important; } html[data-modo="escuro"] .sd-av.cinza { background: #2a2a28 !important; }
html[data-modo="escuro"] .sd-chip.ok { background: #2c3420; color: #c7d8a4; } html[data-modo="escuro"] .sd-chip.alerta { background: #3a3019; color: #e9c87e; } html[data-modo="escuro"] .sd-chip.erro { background: #3d2219; color: #f0a48f; } html[data-modo="escuro"] .sd-chip.cinza { background: #2a2a28; color: #cfc9b6; }
.bk-rest[hidden] { display: none !important; }
label.bk-ac, label.bk-ac b, label.bk-ac small { text-transform: none !important; letter-spacing: 0 !important; }
label.bk-ac b { color: #2b3520 !important; } label.bk-ac small { color: #7b7864 !important; font-weight: 400 !important; font-size: 12px !important; }
html[data-modo="escuro"] label.bk-ac b { color: #f3f0e2 !important; } html[data-modo="escuro"] label.bk-ac small { color: #b8b3a2 !important; }
.saude2 { margin-top: 16px; }
.adm-sub .ct-sec span:only-child { letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: #8a6d2c; }

/* v1.102.1 – TOPO NUNCA "SOLTA" AO ATUALIZAR: quando o iPhone estica a página (puxar para atualizar), o que aparece
   acima do cabeçalho é o fundo do <html>. Ele agora é verde-escuro (igual à barra do relógio e ao cabeçalho), e o fundo
   claro do app fica só no <body>, que ocupa a tela toda – assim não aparece mais a faixa clara entre o relógio e o topo. */
html[data-tema="fazenda"], html[data-tema="fazenda"][data-tema] { background: #2f3a22 !important; }
html[data-tema="fazenda"][data-modo="escuro"] { background: #1d1d1c !important; }
html[data-tema="fazenda"] body { min-height: 100vh; min-height: 100dvh; }
/* v1.102.2 – Saúde do aplicativo: botão na linha do título, status inteiro */
.sd-res-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sd-res-cab .ct-rot { white-space: nowrap; }
.sd-ver { flex: none; font: 700 12.5px "DM Sans", sans-serif; padding: 6px 12px; border-radius: 999px; cursor: pointer; white-space: nowrap;
  background: rgba(255,255,255,.1) !important; border: 1px solid rgba(227,196,135,.5) !important; color: #f6e5bb !important; }
.sd-ver:disabled { opacity: .6; cursor: default; }
.sd-res-top { margin-top: 10px !important; }
.sd-res-tx b, .sd-res-tx span { text-overflow: clip !important; }

/* ===== v1.103.0 – MOSAICO DOS PASTOS (Lançamentos ativos, Lançamentos por pasto, Salga dos cochos)
   3 por linha no celular; topo verde (pasto + número grande), faixa clara embaixo; tocar abre os carimbos abaixo da linha */
.mq-grade { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; align-items: stretch; }
@media (max-width: 1100px) and (min-width: 701px) { .mq-grade { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 700px) { .mq-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; } }
.mq-tile { --c: #7f9c4c; display: flex; flex-direction: column; min-width: 0; padding: 0; margin: 0; text-align: left; font: inherit; color: inherit; cursor: pointer;
  border-radius: 13px; overflow: hidden; background: #fffdf7; border: 1px solid #e6dcc2; box-shadow: 0 6px 14px -12px rgba(38,48,27,.45);
  transition: transform .12s, box-shadow .12s; -webkit-tap-highlight-color: transparent; }
.mq-tile.alerta { --c: #d6a640; } .mq-tile.erro { --c: #c0573f; } .mq-tile.cinza { --c: #9a9784; }
.mq-tile:hover { transform: translateY(-2px); box-shadow: 0 12px 20px -12px rgba(38,48,27,.55); }
.mq-tile:focus-visible { outline: 3px solid rgba(201,164,92,.75); outline-offset: 2px; }
.mq-tile.on { outline: 2px solid #c9a45c; outline-offset: 1px; }
.mq-top { display: block; padding: 7px 9px 6px; color: #fbf3df; min-width: 0;
  background: var(--curvas) center / 420px auto repeat, linear-gradient(150deg, #3e4c2b, #26301b); }
.mq-cab { display: flex; align-items: center; gap: 6px; min-width: 0; }
.mq-pq { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; font: 700 10px "DM Sans", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #e3c487; }
.mq-pq b { font-weight: 800; color: #f6e5bb; }
.mq-lote { font-style: normal; font-weight: 600; letter-spacing: .02em; opacity: .8; }
.mq-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 2px rgba(255,255,255,.16); }
.mq-big { display: flex; flex-direction: column; min-width: 0; white-space: nowrap; overflow: hidden; margin-top: 1px; }
.mq-big b { font: 400 24px/1.05 "DM Serif Display", Georgia, serif; color: #fbf3df; }
.mq-big small { font-size: 9.5px; color: #e8e2d0; opacity: .9; }
.mq-pe { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; padding: 5px 9px 7px; min-width: 0; margin-top: auto; }
.mq-pe > b { flex: none; font-size: 13px; color: #2f3a22; white-space: nowrap; }
.mq-pe > b small { font-size: 9.5px; font-weight: 600; color: #7a7560; }
.mq-prod { min-width: 0; white-space: nowrap; overflow: hidden; font-size: 9.5px; color: #7a7560; text-transform: lowercase; }
.mq-prod::first-letter { text-transform: uppercase; }
.mq-pe-sal { flex-direction: column; align-items: stretch; gap: 4px; padding-top: 7px; }
.mq-bar { display: block; height: 5px; border-radius: 3px; background: #efe9d8; overflow: hidden; }
.mq-bar i { display: block; height: 100%; border-radius: 3px; background: var(--c); }
.mq-pe-sal small { display: block; white-space: nowrap; overflow: hidden; font-size: 9.5px; color: #7a7560; }
/* faixa dos carimbos (abre embaixo da linha do pasto tocado) */
.mq-det { grid-column: 1 / -1; padding: 10px 11px; border-radius: 13px; background: #fffdf7; border: 1px solid #e3c487;
  box-shadow: 0 10px 22px -16px rgba(38,48,27,.6); animation: mqAbre .18s ease-out; min-width: 0; }
@keyframes mqAbre { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.mq-det-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; white-space: nowrap; overflow: hidden; margin-bottom: 8px; }
.mq-det-cab > b { font-size: 13px; color: #2f3a22; } .mq-det-cab small { font-size: 11.5px; color: #7a7560; } .mq-det-cab small b { color: #2f3a22; }
.mq-det-cx { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; }
.mq-cx { display: flex; flex-direction: column; align-items: center; padding: 5px 4px; border-radius: 9px; background: #faf6ea; border: 1px solid #ece3cb; min-width: 0; }
.mq-cx b { font-size: 15px; color: #2f3a22; } .mq-cx small { font-size: 10px; color: #7a7560; white-space: nowrap; overflow: hidden; max-width: 100%; }
.mq-det-obs { margin: 8px 0 0; font-size: 12px; color: #4d4a3c; display: flex; gap: 6px; }
.mq-det-pe { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 9px; }
.mq-det-pe small { min-width: 0; white-space: nowrap; overflow: hidden; font-size: 11px; color: #7a7560; text-transform: lowercase; }
.mq-abrir { flex: none; border: 0; background: none; padding: 4px 0; font: 700 12.5px "DM Sans", sans-serif; color: #56683a; cursor: pointer; }
.mq-abrir:hover { text-decoration: underline; }
/* "Ver todos": 3 no celular, 4 ou 6 no computador (uma linha) */
.mq-lim:not(.aberta):not(.buscando) > .mq-tile:nth-child(n+7 of .mq-tile) { display: none !important; }
.mq-lim.mais6:not(.buscando) + .ver-todos { display: flex; }
@media (max-width: 1100px) and (min-width: 701px) {
  .mq-lim:not(.aberta):not(.buscando) > .mq-tile:nth-child(n+5 of .mq-tile) { display: none !important; }
  .mq-lim.mais4:not(.buscando) + .ver-todos { display: flex; } }
@media (max-width: 700px) {
  .mq-lim:not(.aberta):not(.buscando) > .mq-tile:nth-child(n+4 of .mq-tile) { display: none !important; }
  .mq-lim.mais3:not(.buscando) + .ver-todos { display: flex; } }
.mq-lim.buscando + .ver-todos { display: none !important; }
/* modo escuro: o topo continua verde, a faixa de baixo fica grafite */
html[data-modo="escuro"] .mq-tile { background: linear-gradient(180deg, #1f1f1e, #191918); border-color: #30302f; box-shadow: 0 12px 24px -14px rgba(0,0,0,.7); }
html[data-modo="escuro"] .mq-top { background: var(--curvas) center / 420px auto repeat, linear-gradient(150deg, #2e3c21, #1b2513); }
html[data-modo="escuro"] .mq-pe > b, html[data-modo="escuro"] :is(.mq-det-cab > b, .mq-det-cab small b, .mq-cx b) { color: #f1ebd6; }
html[data-modo="escuro"] :is(.mq-pe > b small, .mq-prod, .mq-pe-sal small, .mq-det-cab small, .mq-cx small, .mq-det-pe small) { color: #a9a68e !important; }
html[data-modo="escuro"] .mq-bar { background: #2c2c2b; }
html[data-modo="escuro"] .mq-det { background: linear-gradient(180deg, #1f1f1e, #191918); border-color: rgba(201,164,92,.45); }
html[data-modo="escuro"] .mq-cx { background: #262625; border-color: #363635; }
html[data-modo="escuro"] .mq-det-obs { color: #d6d0bb; }
html[data-modo="escuro"] .mq-abrir { color: #d9b86e; }
/* as cores do mosaico vencem as regras gerais dos cartões (que herdam a cor do texto) */
html[data-tema] .mq-tile .mq-top { color: #fbf3df !important; }
html[data-tema] .mq-tile .mq-pq { color: #e3c487 !important; } html[data-tema] .mq-tile .mq-pq b { color: #f6e5bb !important; }
html[data-tema] .mq-tile .mq-big b { color: #fbf3df !important; } html[data-tema] .mq-tile .mq-big small { color: #e8e2d0 !important; }
html[data-tema] .mq-tile .mq-pe > b { color: #2f3a22 !important; }
html[data-tema] .mq-tile :is(.mq-pe > b small, .mq-prod, .mq-pe-sal small) { color: #7a7560 !important; }
html[data-tema] .mq-det :is(.mq-det-cab > b, .mq-det-cab small b, .mq-cx b) { color: #2f3a22 !important; }
html[data-tema] .mq-det :is(.mq-det-cab small, .mq-cx small, .mq-det-pe small) { color: #7a7560 !important; }
html[data-tema][data-modo="escuro"] .mq-tile .mq-pe > b, html[data-tema][data-modo="escuro"] .mq-det :is(.mq-det-cab > b, .mq-det-cab small b, .mq-cx b) { color: #f1ebd6 !important; }
html[data-tema][data-modo="escuro"] .mq-tile :is(.mq-pe > b small, .mq-prod, .mq-pe-sal small), html[data-tema][data-modo="escuro"] .mq-det :is(.mq-det-cab small, .mq-cx small, .mq-det-pe small) { color: #a9a68e !important; }

/* ===== v1.103.0 – HISTÓRICO: resumo escuro + uma linha por lançamento (tocar abre a ficha) */
.hx-lista { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; }
.hx-lista.cortada > .hx-mais { display: none; }
.hx-vermais { width: 100%; justify-content: center; margin-top: 10px; }
.hx-lin { display: flex; min-width: 0; }
.hx-bt { flex: 1; display: flex; align-items: center; gap: 11px; min-width: 0; padding: 9px 11px; text-align: left; font: inherit; color: inherit; cursor: pointer;
  background: #fffdf7; border: 1px solid #e9e1cc; border-radius: 15px; box-shadow: 0 6px 14px -12px rgba(38,48,27,.35); transition: border-color .12s, transform .12s; }
.hx-bt:hover { border-color: #d9c89c; } .hx-bt:active { transform: scale(.99); }
.hx-bt:focus-visible { outline: 3px solid rgba(201,164,92,.7); outline-offset: 2px; }
.hx-ic { flex: none; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; font: 700 17px "DM Sans", sans-serif; line-height: 1;
  background: #f1ecdc; color: #56683a; border: 1px solid #e6dcc2; }
.hx-ic svg { width: 20px; height: 20px; }
.hx-ic.ok { background: #eaf0dc; color: #4f6630; border-color: #d4e0bd; }
.hx-ic.alerta { background: #f8edd2; color: #9a7020; border-color: #ecd9a8; }
.hx-ic.erro { background: #f8e3dc; color: #a8452f; border-color: #eec8bc; }
.hx-ic.rel { background: linear-gradient(150deg, #3e4c2b, #26301b); color: #e3c487; border-color: #56683a; }
.hx-mid { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.hx-mid b { font-size: 14.5px; color: #2b3520; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.hx-mid small { font-size: 12px; color: #7b7864; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.hx-st { font-style: normal; font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: #f1ecdc; color: #8a6d2c; vertical-align: 1px; }
.hx-st.erro { background: #f8e3dc; color: #a8452f; }
.hx-lin.excl .hx-mid b { color: #7b7864; }
.hx-dt { flex: none; display: flex; flex-direction: column; align-items: flex-end; }
.hx-dt b { font-size: 13.5px; color: #2b3520; } .hx-dt small { font-size: 11.5px; color: #8b8670; }
.hx-seta { flex: none; font-style: normal; font-size: 20px; line-height: 1; color: #b9a473; margin-left: -2px; }
.hx-lin.lot-ok .hx-dt b { color: #4f6630; } .hx-lin.lot-alerta .hx-dt b { color: #9a7020; } .hx-lin.lot-erro .hx-dt b { color: #a8452f; }
@media (max-width: 520px) { .hx-bt { gap: 9px; padding: 9px 10px; } .hx-ic { width: 34px; height: 34px; font-size: 15px; border-radius: 10px; } .hx-mid b { font-size: 14px; } .hx-mid small { font-size: 11.5px; } }
/* ficha do lançamento */
.hxf-modal { max-width: 520px; }
.hxf-cab { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.hxf-cab .hx-ic { width: 44px; height: 44px; font-size: 19px; border-radius: 13px; }
.hxf-tt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.hxf-tt > small:first-child { font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #8a6d2c; }
.hxf-tt b { font-size: 17px; color: #2b3520; white-space: nowrap; overflow: hidden; }
.hxf-qd { font-size: 12px; color: #7b7864; }
.hxf-cab .mf-x { flex: none; align-self: flex-start; }
.hxf-kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.hxf-kv.n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hxf-kv > div { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-width: 0; padding: 8px 6px; border-radius: 11px; background: #faf6ea; border: 1px solid #ece3cb; }
.hxf-kv > div > b { font-size: 15px; color: #2b3520; white-space: nowrap; overflow: hidden; max-width: 100%; }
.hxf-kv > div > small { font-size: 11px; color: #7b7864; }
.hxf-obs { margin-top: 10px; padding: 9px 11px; border-radius: 11px; background: #faf6ea; border: 1px solid #ece3cb; }
.hxf-obs small { font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #8a6d2c; }
.hxf-obs p { margin: 3px 0 0; font-size: 13.5px; line-height: 1.45; color: #3d3a2e; white-space: pre-wrap; word-break: break-word; }
.hxf-nota { margin: 8px 0 0; font-size: 12px; color: #7b7864; }
.hxf-bts { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
.hxf-bts .btn { width: 100%; justify-content: center; }
.hxf-bts:empty { display: none; }
/* modo escuro */
html[data-modo="escuro"] .hx-bt { background: linear-gradient(180deg, #1f1f1e, #191918); border-color: #30302f; box-shadow: 0 10px 22px -14px rgba(0,0,0,.7); }
html[data-modo="escuro"] .hx-bt:hover { border-color: #5a4a2a; }
html[data-modo="escuro"] :is(.hx-mid b, .hx-dt b, .hxf-tt b, .hxf-kv > div > b) { color: #f1ebd6 !important; }
html[data-modo="escuro"] :is(.hx-mid small, .hx-dt small, .hxf-qd, .hxf-kv > div > small, .hxf-nota) { color: #a9a68e !important; }
html[data-modo="escuro"] .hx-ic { background: #262625; border-color: #363635; color: #d9b86e; }
html[data-modo="escuro"] .hx-ic.ok { background: #1c2a17; border-color: #2f4426; color: #a9cf7d; }
html[data-modo="escuro"] .hx-ic.alerta { background: #2a2310; border-color: #4a3d1c; color: #e8c675; }
html[data-modo="escuro"] .hx-ic.erro { background: #2c1712; border-color: #4e2a20; color: #ec9a82; }
html[data-modo="escuro"] .hx-ic.rel { background: linear-gradient(150deg, #2e3c21, #1b2513); border-color: #3a4a2a; color: #e3c487; }
html[data-modo="escuro"] .hx-st { background: #2a2310; color: #e8c675; } html[data-modo="escuro"] .hx-st.erro { background: #2c1712; color: #ec9a82; }
html[data-modo="escuro"] :is(.hxf-kv > div, .hxf-obs) { background: #232322; border-color: #363635; }
html[data-modo="escuro"] .hxf-obs p { color: #e2dcc6; }
html[data-modo="escuro"] :is(.hxf-tt > small:first-child, .hxf-obs small) { color: #d9b86e !important; }
html[data-modo="escuro"] .hx-lin.lot-ok .hx-dt b { color: #a9cf7d !important; } html[data-modo="escuro"] .hx-lin.lot-alerta .hx-dt b { color: #e8c675 !important; } html[data-modo="escuro"] .hx-lin.lot-erro .hx-dt b { color: #ec9a82 !important; }

/* ===== v1.103.5 – COMPRA E VENDA e RELATÓRIOS no estilo novo */
/* Compra e venda: Tudo / Compras / Vendas */
.ng-seg { display: flex; gap: 2px; padding: 3px; margin: 2px 0 10px; border-radius: 999px; background: #efe9d8; }
.ng-seg-bt { flex: 1; border: 0; background: none; font: 700 13px "DM Sans", sans-serif; color: #7b7864; padding: 7px 0; border-radius: 999px; cursor: pointer; }
.ng-seg-bt.on { background: linear-gradient(180deg, #4a5b30, #2f3a22); color: #f6e9c8; box-shadow: 0 4px 10px -6px rgba(38,48,27,.6); }
.ng-res, .rl-res { margin-bottom: 10px; }
:is(.ng-res, .rl-res, .adm-res) :is(.ct-kv span, .ct-big span) { text-overflow: clip !important; }
.ng-res .ct-kv b, .rl-res .ct-kv b { font-size: 19px; }
.ng-lista { margin-top: 0; }
.ng-vazio { padding: 10px 2px; }
/* Relatórios: grade de cartões */

 

.rlt-tit { margin-top: 9px; font-size: 13.5px; color: #2b3520; white-space: nowrap; }
.rlt-v { display: block; max-width: 100%; margin-top: 3px; font: 400 26px/1.1 "DM Serif Display", Georgia, serif; color: #2b3520; white-space: nowrap; overflow: hidden; min-height: 28px; }
.rlt-v .sk { display: block; width: 60px; height: 22px; margin-top: 4px; border-radius: 6px; }
 
.rlt-s { display: block; max-width: 100%; font-size: 11px; color: #7b7864; white-space: nowrap; overflow: hidden; }
.rl-exp { width: 100%; margin-top: 10px; }
/* Relatórios: corpo (folha) */
.rl-corpo { padding-bottom: 8px; }
.rl-lista { display: flex; flex-direction: column; gap: 7px; }
.rl-lin { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 9px 12px; background: #fffdf7; border: 1px solid #e9e1cc; border-radius: 15px; box-shadow: 0 6px 14px -12px rgba(38,48,27,.35); --c: #56683a; }
.rl-lin.lot-alerta { --c: #b48a2f; } .rl-lin.lot-erro { --c: #b5543d; } .rl-lin.lot-cinza { --c: #9c9686; }
.rl-mid { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.rl-mid b { font-size: 14.5px; color: #2b3520; white-space: nowrap; overflow: hidden; }
.rl-mid b small { font-size: 11px; font-weight: 600; color: #8b8670; }
.rl-mid small { font-size: 12px; color: #7b7864; white-space: nowrap; overflow: hidden; }
.rl-bar { display: block; height: 5px; margin-top: 5px; border-radius: 3px; background: #efe9d8; overflow: hidden; }
.rl-bar i { display: block; height: 100%; border-radius: 3px; background: var(--c); }
.rl-dir { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; max-width: 48%; min-width: 0; }
.rl-dir b { font: 400 19px/1.05 "DM Serif Display", Georgia, serif; color: #2b3520; white-space: nowrap; }
.rl-lin:is(.lot-ok, .lot-alerta, .lot-erro) .rl-dir b { color: var(--c); }
.rl-dir b small { font: 600 11px "DM Sans", sans-serif; color: #8b8670; }
.rl-dir > small { font-size: 11px; color: #8b8670; white-space: nowrap; }
.rl-pill { font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; background: #efece2; color: #7b7864; }
.rl-pill.ok { background: #eaf0dc; color: #4f6630; } .rl-pill.alerta { background: #f8edd2; color: #9a7020; } .rl-pill.erro { background: #f8e3dc; color: #a8452f; }
.rl-kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-bottom: 8px; }
.rl-kv.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rl-kv.n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 701px) { .rl-kv.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rl-kv > div { display: flex; flex-direction: column; align-items: center; text-align: center; min-width: 0; padding: 9px 6px; border-radius: 13px; background: #fffdf7; border: 1px solid #e9e1cc; }
.rl-kv b { max-width: 100%; font: 400 21px/1.1 "DM Serif Display", Georgia, serif; color: #2b3520; white-space: nowrap; overflow: hidden; }
.rl-kv small { max-width: 100%; font-size: 11px; color: #7b7864; white-space: nowrap; overflow: hidden; margin-top: 2px; }
.rl-kv .ok b { color: #4f6630; } .rl-kv .alerta b { color: #9a7020; } .rl-kv .erro b { color: #a8452f; }
.rl-corpo .rel-grafs { margin: 0 0 4px; }

/* modo escuro */
html[data-modo="escuro"] .ng-seg { background: #232322; }
html[data-modo="escuro"] .ng-seg-bt:not(.on) { color: #b9b49a; }
html[data-modo="escuro"] :is(.rlt, .rl-lin, .rl-kv > div) { background: linear-gradient(180deg, #1f1f1e, #191918) !important; border-color: #30302f !important; box-shadow: 0 10px 22px -14px rgba(0,0,0,.7) !important; }

html[data-modo="escuro"] :is(.rlt-tit, .rlt-v, .rl-mid b, .rl-dir b, .rl-kv b) { color: #f1ebd6 !important; }
html[data-modo="escuro"] :is(.rlt-s, .rl-mid small, .rl-mid b small, .rl-dir small, .rl-dir b small, .rl-kv small) { color: #a9a68e !important; }
html[data-modo="escuro"] .rl-lin.lot-ok .rl-dir b, html[data-modo="escuro"] .rl-kv .ok b { color: #a9cf7d !important; }
html[data-modo="escuro"] .rl-lin.lot-alerta .rl-dir b, html[data-modo="escuro"] .rl-kv .alerta b { color: #e8c675 !important; }
html[data-modo="escuro"] .rl-lin.lot-erro .rl-dir b, html[data-modo="escuro"] .rl-kv .erro b { color: #ec9a82 !important; }
html[data-modo="escuro"] .rl-bar { background: #2c2c2b; }
html[data-modo="escuro"] .rl-pill { background: #262625; color: #b9b49a; } html[data-modo="escuro"] .rl-pill.ok { background: #1c2a17; color: #a9cf7d; }
html[data-modo="escuro"] .rl-pill.alerta { background: #2a2310; color: #e8c675; } html[data-modo="escuro"] .rl-pill.erro { background: #2c1712; color: #ec9a82; }
.ng-res .ct-big b, .rl-res .ct-big b { font-size: 32px; }

/* ===== v1.103.6 – seletor de período ‹ novembro de 2026 › e meses em chips */
.per-sel { display: flex; align-items: center; gap: 8px; padding: 5px; margin: 0 0 10px; border-radius: 999px; background: #fffdf7; border: 1px solid #e9e1cc; box-shadow: 0 6px 14px -12px rgba(38,48,27,.4); }
.per-bt { flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; padding: 0;
  border: 0; color: #f6e9c8; background: linear-gradient(180deg, #4a5b30, #2f3a22); box-shadow: 0 4px 10px -6px rgba(38,48,27,.6); }
.per-bt svg { width: 18px; height: 18px; }
.per-bt:disabled { opacity: .3; cursor: default; box-shadow: none; }
.per-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; line-height: 1.15; }
.per-txt small { font: 700 9.5px "DM Sans", sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #8a6d2c; }
.per-txt b { font: 400 19px "DM Serif Display", Georgia, serif; color: #2b3520; white-space: nowrap; }
.per-chips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: -2px 0 10px; padding: 2px 1px 4px; -webkit-overflow-scrolling: touch; }
.per-chips::-webkit-scrollbar { display: none; }
.per-chip { flex: none; border: 1px solid #e6dcc2; background: #fffdf7; color: #6f6b57; font: 700 12.5px "DM Sans", sans-serif; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.per-chip.on { background: linear-gradient(180deg, #4a5b30, #2f3a22); color: #f6e9c8; border-color: #2f3a22; }
html[data-modo="escuro"] .per-sel { background: linear-gradient(180deg, #1f1f1e, #191918); border-color: #30302f; box-shadow: none; }
html[data-modo="escuro"] .per-txt b { color: #f1ebd6 !important; } html[data-modo="escuro"] .per-txt small { color: #d9b86e !important; }
html[data-modo="escuro"] .per-chip:not(.on) { background: #1f1f1e; border-color: #363635; color: #b9b49a; }

/* ===== v1.103.7 – checkup de telas: nada termina em "…" (a letra diminui para caber) */
:is(.us-mid b, .us-mid small, .us-papel, .uf-acesso, .ct-sec > span, .vd-sec > span, .ct-nome small, .ct-nome b, .rb-top b, .vd-st, .vd-big span, .ct-big span, .ct-rot,
  .hm-res-rot, .hm-t b, .hx-mid b, .hx-mid small, .hx-dt b, .mq-pq, .mq-prod, .mq-pe-sal small, .rl-mid b, .rl-mid small, .rl-dir > b, .rl-dir > small,
  .rl-kv b, .rl-kv small, .ct-kv span, .ct-kv b, .rlt-tit, .rlt-v, .rlt-s, .per-txt b, .ng-opt small, .folha-tit, .hxf-tt b, .hxf-kv b) { text-overflow: clip !important; }
.ct-sec > span, .vd-sec > span { min-width: 0; overflow: hidden; }
.ct-sec > span:first-child, .vd-sec > span:first-child { flex: 1 1 auto; } .ct-sec > span:last-child, .vd-sec > span:last-child { flex: 0 1 auto; }
.sd-res-cab { min-width: 0; } .sd-res-cab .ct-rot { min-width: 0; overflow: hidden; flex: 1 1 auto; }
.sd-res-cab .sd-ver { flex: 0 1 auto; min-width: 0; overflow: hidden; }
@media (max-width: 340px) { .sd-res-cab .sd-ver { padding: 5px 9px; font-size: 11.5px; } }
.ct-big { min-width: 0; } .ct-big b { min-width: 0; }
.folha-tit { text-overflow: clip !important; }
/* celulares bem pequenos (até 340 px, ex.: iPhone SE antigo) */
@media (max-width: 340px) {
  .mq-grade { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .mq-lim:not(.aberta):not(.buscando) > .mq-tile:nth-child(n+3 of .mq-tile) { display: none !important; }
  .mq-lim.mais2:not(.buscando) + .ver-todos { display: flex; }
  .ct-big { flex-wrap: wrap; row-gap: 2px; } .ct-big span { flex-basis: 100%; }
  .folha-selo { display: none !important; }
  .hx-seta { display: none; } .hx-bt { gap: 8px; padding: 8px 9px; } .hx-ic { width: 30px; height: 30px; font-size: 14px; }
  .sd-res-cab { flex-wrap: wrap; row-gap: 6px; }
  .ng-opt small { display: none !important; }
  .hm-res-rot { letter-spacing: .04em !important; }
  .adm-lin .adm-ib { width: 32px; height: 32px; } .adm-lin { gap: 7px; }
}
.vd-kv span { text-overflow: clip !important; }
.us-mid b .us-voce { font-size: .72em !important; }
@media (max-width: 340px) {
  .cartao-tit, .adm-tit-txt { white-space: nowrap !important; overflow: hidden; text-overflow: clip !important; min-width: 0; }
  .busca-cards { font-size: 13px !important; }
}
@media (max-width: 340px) { .busca-cards::placeholder { font-size: 11.5px; } }

/* ===== v1.104.0 – FICHAS no estilo novo: topo escuro + corpo claro (ficha do pasto, salga, ver lote, relatório gerado) */
.modal.fpb-modal { padding: 0 !important; overflow: hidden auto; }
.fpb { min-width: 0; }
.fpb-top { padding: 14px 15px 13px; color: #fbf3df; background: var(--curvas) center / 560px auto repeat, linear-gradient(140deg, #3e4c2b, #26301b); }
.fpb.erro .fpb-top { background: var(--curvas) center / 560px auto repeat, linear-gradient(140deg, #4a3a26, #2b2216); }
.fpb-cab { display: flex; align-items: center; gap: 10px; }
.fpb-rot { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #e3c487 !important; }
.fpb-x { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; font-size: 14px; color: #f6e5bb; background: rgba(255,255,255,.1); border: 1px solid rgba(227,196,135,.45); }
.fpb-big { display: flex; align-items: baseline; gap: 8px; margin-top: 6px; min-width: 0; }
.fpb-big b { flex: none; font: 400 38px/1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; }
.fpb-big span { min-width: 0; white-space: nowrap; overflow: hidden; font-size: 13px; color: #e8e2d0 !important; }
.fpb-pills { display: flex; gap: 6px; margin-top: 9px; overflow: hidden; }
.fpb-pills span { flex: none; font-size: 11px; font-weight: 700; color: #f6e5bb; border: 1px solid rgba(227,196,135,.5); border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.fpb-pills .fpb-st { background: rgba(255,255,255,.1); }
.fpb.erro .fpb-pills .fpb-st { border-color: #ec9a82; color: #ffc6b4; } .fpb.alerta .fpb-pills .fpb-st { border-color: #e8c675; }
.fpb-corpo { padding: 13px 14px 15px; }
.fpb-kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.fpb-kv > div { display: flex; flex-direction: column; align-items: center; text-align: center; min-width: 0; padding: 9px 5px; border-radius: 13px; background: #fffdf7; border: 1px solid #e9e1cc; }
.fpb-kv b { font: 400 22px/1.1 "DM Serif Display", Georgia, serif; color: #2b3520; white-space: nowrap; }
.fpb-kv small { max-width: 100%; font-size: 10.5px; color: #7b7864; white-space: nowrap; overflow: hidden; margin-top: 2px; }
.fpb-kv .neg b, .fpb-kv .lot-erro b { color: #a8452f; } .fpb-kv .lot-alerta b { color: #9a7020; } .fpb-kv .lot-ok b { color: #4f6630; }
.fpb-mq { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.fpb-t { border-radius: 13px; overflow: hidden; background: #fffdf7; border: 1px solid #e6dcc2; min-width: 0; }
.fpb-tp { padding: 7px 9px 6px; background: var(--cc); color: #fff; }
.fpb-tp span { display: block; white-space: nowrap; overflow: hidden; font: 700 9.5px "DM Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.92) !important; }
.fpb-tp b { display: block; font: 400 24px/1.05 "DM Serif Display", Georgia, serif; color: #fff !important; }
.fpb-tp small { font-size: 9.5px; color: rgba(255,255,255,.88) !important; }
.fpb-pe { padding: 5px 9px 6px; font-size: 10.5px; color: #7a7560; white-space: nowrap; } .fpb-pe b { color: #2f3a22; font-size: 12.5px; }
.fpb-lote { margin-top: 12px; }
.fpb-bts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 12px; }
.fpb-bts2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 7px; }
.fpb-bts .btn { width: 100%; justify-content: center; padding-left: 6px; padding-right: 6px; font-size: 13.5px; white-space: nowrap; }
.fpb-bts:has(> :only-child) { grid-template-columns: 1fr; }
.btn.perigo-claro { background: #fbf1ec !important; color: #a8452f !important; border: 1px solid #e6c9bd !important; box-shadow: none !important; }
.fpb-obs-txt { margin: 8px 2px 0; font-size: 12.5px; color: #4d4a3c; }
.fpb-obs { margin-top: 8px; display: flex; flex-direction: column; gap: 7px; } .fpb-obs[hidden] { display: none !important; }
.fpb-obs textarea { width: 100%; }
/* ficha da salga: medidor */
.sfb-med { display: flex; align-items: center; gap: 12px; margin-top: 6px; } .sfb-med svg { flex: none; width: 86px; height: 50px; } .sfb-med .fpb-big { margin-top: 0; min-width: 0; }
.sfb-info { margin: 9px 2px 0; font-size: 12px; color: #7b7864; }
.sfb-tl { display: flex; flex-direction: column; }
.sfb-it { position: relative; display: flex; align-items: flex-start; gap: 11px; padding: 0 0 12px 0; min-width: 0; }
.sfb-it::before { content: ""; position: absolute; left: 6px; top: 16px; bottom: 0; width: 2px; background: #e3d6b5; }
.sfb-it:last-child::before { display: none; }
.sfb-pt { flex: none; width: 14px; height: 14px; margin-top: 3px; border-radius: 50%; background: #56683a; border: 2px solid #fffdf7; box-shadow: 0 0 0 1.5px #c9a45c; position: relative; z-index: 1; }
.sfb-it.outro .sfb-pt { background: #b9a473; } .sfb-it.excl .sfb-pt { background: #c0573f; } .sfb-it.excl .sfb-tx b { text-decoration: line-through; color: #8b8670; }
.sfb-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; } .sfb-tx b { font-size: 14px; color: #2b3520; } .sfb-tx small { font-size: 11.5px; color: #7b7864; white-space: nowrap; overflow: hidden; }
.sfb-tx .sf-obs { white-space: normal; color: #4d4a3c; }
.sfb-bt { flex: none; display: flex; gap: 5px; } .sfb-bt .adm-ib { width: 32px; height: 32px; }
/* resumo escuro dentro dos cartões: depósito de sal, mortes, total geral */
.sg-dep, .mt-res, .lanc-geral2 { margin: 4px 0 10px; }
.sg-dep .ct-kv .erro b, .lanc-geral2 .lot-erro b { color: #f2a48c !important; } .sg-dep .ct-kv .alerta b, .lanc-geral2 .lot-alerta b { color: #f0d08a !important; } .sg-dep .ct-kv .cinza b { opacity: .6; }
.sg-dep .ct-kv b, .mt-res .ct-kv b, .lanc-geral2 .ct-kv b { font-size: 19px; }
.sg-ult-lista { margin-top: 6px; }
.mt-lista2 .mt-bt { padding: 8px 10px; } .mt-lista2 .mt-mini { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 12px; }
.mt-lista2 .mt-causa { color: #a8452f !important; }
/* relatório gerado */
.rl-modal .rl-sec { margin-top: 12px; }
.rl-modal .mq-det .mq-abrir { display: none; }
/* modo escuro */
html[data-modo="escuro"] .fpb-top { background: var(--curvas) center / 560px auto repeat, linear-gradient(140deg, #2e3c21, #1b2513); }
html[data-modo="escuro"] :is(.fpb-kv > div, .fpb-t) { background: linear-gradient(180deg, #1f1f1e, #191918); border-color: #30302f; }
html[data-modo="escuro"] :is(.fpb-kv b, .fpb-pe b, .sfb-tx b) { color: #f1ebd6 !important; }
html[data-modo="escuro"] :is(.fpb-kv small, .fpb-pe, .sfb-tx small, .sfb-info, .fpb-obs-txt) { color: #a9a68e !important; }
html[data-modo="escuro"] .fpb-kv .neg b, html[data-modo="escuro"] .fpb-kv .lot-erro b { color: #ec9a82 !important; }
html[data-modo="escuro"] .sfb-it::before { background: #3a3a39; } html[data-modo="escuro"] .sfb-pt { border-color: #1f1f1e; }
html[data-modo="escuro"] .btn.perigo-claro { background: #2c1712 !important; border-color: #4e2a20 !important; color: #ec9a82 !important; }
html[data-tema] .fpb .fpb-pills span { color: #f6e5bb !important; background: transparent; }
html[data-tema] .fpb .fpb-pills .fpb-st { background: rgba(255,255,255,.1); }
html[data-tema] .fpb .btn.perigo-claro { background: #fbf1ec !important; color: #a8452f !important; border: 1px solid #e6c9bd !important; box-shadow: none !important; }
html[data-tema][data-modo="escuro"] .fpb .btn.perigo-claro { background: #2c1712 !important; border-color: #4e2a20 !important; color: #ec9a82 !important; }
.rl-modal .mq-grade { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 7px !important; }
@media (min-width: 701px) { .rl-modal .mq-grade { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
.rl-modal .rl-sec { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.rl-modal .rl-sec-cab { display: flex; align-items: center; gap: 8px; margin: 14px 2px 8px; }
.rl-modal .rl-sec-cab .secao-ic { display: none; }
.rl-modal .rl-sec-cab h4 { margin: 0; font: 700 10.5px "DM Sans", sans-serif !important; letter-spacing: .14em; text-transform: uppercase; color: #8a6d2c !important; }
.rl-modal .rl-sec-extra { margin-left: auto; font-size: 11px !important; font-weight: 600; color: #9a8a5c !important; background: none !important; border: 0 !important; padding: 0 !important; }
.rl-modal .rl-sec-cab .secao-olho { width: 30px; height: 30px; }
html[data-modo="escuro"] .rl-modal .rl-sec-cab h4 { color: #d9b86e !important; }
html[data-tema] .rl-modal .rl-sec-cab h4 { font: 700 10.5px "DM Sans", sans-serif !important; letter-spacing: .14em !important; text-transform: uppercase !important; color: #8a6d2c !important; }

/* ===== v1.104.0 – FORMULÁRIOS PASSO A PASSO */
.pp-oculto { display: none !important; }
.modal.pp-modal { padding-top: 0 !important; }
.pp-top { margin: 0 -18px 12px; padding: 14px 16px 13px; color: #fbf3df; background: var(--curvas) center / 560px auto repeat, linear-gradient(140deg, #3e4c2b, #26301b); }
.modal:not(.pp-modal) .pp-top, .cartao .pp-top { margin: 0 0 12px; border-radius: 16px; }
.pp-cab { display: flex; align-items: center; gap: 10px; }
.pp-rot { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #e3c487 !important; }
.pp-cab .pp-x { position: static !important; flex: none; width: 32px; height: 32px; border-radius: 50%; color: #f6e5bb !important; background: rgba(255,255,255,.1) !important; border: 1px solid rgba(227,196,135,.45) !important; }

.pp-tit { margin-top: 8px; font: 400 26px/1.1 "DM Serif Display", Georgia, serif; color: #fbf3df !important; white-space: nowrap; overflow: hidden; }

.pp-res { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-bottom: 10px; }
.pp-res > div { min-width: 0; padding: 8px 10px; border-radius: 12px; background: #fffdf7; border: 1px solid #e9e1cc; }
.pp-res small { display: block; font: 700 9.5px "DM Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #8a6d2c; white-space: nowrap; overflow: hidden; }
.pp-res b { display: block; font-size: 14px; color: #2b3520; white-space: nowrap; overflow: hidden; }
form[data-passo] > .acoes[hidden] { display: none !important; }
html[data-modo="escuro"] .pp-top { background: var(--curvas) center / 560px auto repeat, linear-gradient(140deg, #2e3c21, #1b2513); }
html[data-modo="escuro"] .pp-res > div { background: #232322; border-color: #363635; }
html[data-modo="escuro"] .pp-res b { color: #f1ebd6 !important; } html[data-modo="escuro"] .pp-res small { color: #d9b86e !important; }
.pp-top { order: -10; }
[data-pp-oculto] { display: none !important; }
.form > .pp-top, form > .pp-top { order: -10 !important; }
  form[data-passo] > .acoes { order: 99 !important; }

/* v1.104.1 – aviso próprio do passo a passo (no lugar do balão nativo) */
html body form [data-pp-erro], html[data-tema] body form [data-pp-erro]{border-color:#b4533a!important;outline:2px solid #b4533a!important;outline-offset:-1px}
html body form .pp-aviso, html[data-tema] body form .pp-aviso{display:block!important;margin-top:4px;color:#b4533a!important;font-size:12px;font-weight:700}
html[data-modo="escuro"] body form .pp-aviso{color:#e9967a!important}

/* v1.105.1 – ✕ em toda janela; sem zoom no toque duplo */
.modal > h3.mf-com-x { display: flex; align-items: center; gap: 10px; }
html, body { touch-action: manipulation; }
@media (max-width: 899px) { html[data-tema="fazenda"] { --mic-y: 17px; } }
html.tem-folha #vozFab { transform: translateY(var(--mic-y, 0px)) scale(.85); }   /* some sem sair do lugar */
/* v1.105.5 – a logo da abertura só aparece se a abertura demorar (com a cópia do aparelho o app fica pronto antes e ela nem pisca) */
@keyframes abAparece { from { opacity: 0; } to { opacity: 1; } }
.carga-ini.abertura:not(.saindo) { animation: abAparece .25s ease .45s both; }
/* v1.105.6 – barra do iPhone (hora, bateria) transparente por cima do app: o topo desce o tamanho dela (e os avisos, que copiam o topo – app.js)
   (no navegador e no app sem o ícone novo isso vale 0 – nada muda) */
html body .topo { border-top: env(safe-area-inset-top, 0px) solid #2f3a22; background-clip: padding-box; }   /* faixa da hora: cor lisa (v1.105.7) */
html[data-modo="escuro"] body .topo { border-top-color: #1d1d1c; }
/* tela de entrar: a faixa da hora também lisa (sem o brilho dourado e as linhas por baixo) */
html body .lg-fundo::after { content: ""; position: fixed; top: 0; left: 0; right: 0; height: calc(env(safe-area-inset-top, 0px) * 1.3); z-index: 4; pointer-events: none;
  background: linear-gradient(180deg, #34412a 0, #34412a 77%, rgba(52,65,42,0) 100%); }
html[data-modo="escuro"] body .lg-fundo::after { background: linear-gradient(180deg, #1e1e1d 0, #1e1e1d 77%, rgba(30,30,29,0) 100%); }
html[data-tema="fazenda"] body #avisos:not(:empty) { background: linear-gradient(#34412a, #34412a) top / 100% env(safe-area-inset-top, 0px) no-repeat, var(--curvas) center / 560px auto repeat, linear-gradient(180deg, #34412a, #26301b) !important; }
/* v1.105.9 – sem degradê no alto da tela: topo, avisos do topo, cabeçalho das fichas e tela de entrar em cor lisa
   (claro: o mesmo verde do theme-color #2f3a22 / escuro: #1d1d1c) – a faixa da hora do iPhone emenda sem marca */
html[data-tema] body .topo { background: #2f3a22 !important; }
html[data-tema][data-modo="escuro"] body .topo { background: #1d1d1c !important; }
html[data-tema="fazenda"] body #avisos:not(:empty) { background: var(--curvas) center / 560px auto repeat, #2f3a22 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body #avisos:not(:empty) { background: var(--curvas) center / 560px auto repeat, #1d1d1c !important; }
html body .folha-cab { background: #2f3a22; }
html[data-modo="escuro"] body .folha-cab { background: #1d1d1c; }
html[data-tema="fazenda"] body .lg-fundo { background: var(--curvas) center / 680px auto repeat, #2f3a22 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .lg-fundo { background: var(--curvas) center / 680px auto repeat, #1d1d1c !important; }
/* v1.106.2 – tela de entrar parada: não estica nem rola quando tudo cabe (só rola por dentro se não couber, ex.: teclado
   aberto em celular pequeno). O fundo por trás (html/body) na mesma cor lisa: se esticar, não aparece faixa de outra cor */
html body .lg-fundo::after { display: none; }
html[data-tema="fazenda"], html[data-tema="fazenda"] body.modo-login { background-color: #2f3a22 !important; }
html[data-tema="fazenda"][data-modo="escuro"], html[data-tema="fazenda"][data-modo="escuro"] body.modo-login { background-color: #1d1d1c !important; }
html body.modo-login { overflow: hidden; overscroll-behavior: none; }
html body.modo-login .lg-fundo { position: fixed; inset: 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; align-items: flex-start; }

/* v1.106.3 – tela de entrar presa (html também, senão o iPhone estica a página inteira) e troca de modo sem piscar */
html.modo-login { overflow: hidden; overscroll-behavior: none; height: 100%; }
html.trocando-modo, html.trocando-modo *, html.trocando-modo *::before, html.trocando-modo *::after { transition: none !important; }
::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation-duration: .28s; animation-timing-function: ease; }
/* v1.106.4 – botão de modo da tela de entrar sem o desfoque por trás (fazia a linha do fundo piscar na troca) */

/* v1.106.9 – faixa da hora pintada pelo app (barra transparente): cor lisa do modo embaixo da hora em todas as telas
   (no navegador e em quem não refez o ícone, env(safe-area-inset-top) = 0 → nada muda) */
html[data-tema="fazenda"] body #avisos:not(:empty) { background: linear-gradient(#2f3a22, #2f3a22) top / 100% env(safe-area-inset-top, 0px) no-repeat, var(--curvas) center / 560px auto repeat, #2f3a22 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body #avisos:not(:empty) { background: linear-gradient(#1d1d1c, #1d1d1c) top / 100% env(safe-area-inset-top, 0px) no-repeat, var(--curvas) center / 560px auto repeat, #1d1d1c !important; }
html body.modo-login .lg-fundo { padding-top: calc(28px + env(safe-area-inset-top, 0px)); }
html body .lg-fundo::after { display: block; content: ""; position: fixed; top: 0; left: 0; right: 0; height: env(safe-area-inset-top, 0px); z-index: 5; pointer-events: none; background: #2f3a22; }
html[data-modo="escuro"] body .lg-fundo::after { background: #1d1d1c; }
/* v1.107.0 – iOS 26: o sistema embaça uma faixa de ~40px ABAIXO da hora (efeito Liquid Glass) e o app não consegue tirar.
   O conteúdo do topo desce esse tanto: embaixo do embaçado fica só a cor lisa. Só quando há barra da hora por cima do app
   (safe-area > 0: iPhone pelo ícone); no navegador/computador a conta dá 0 e nada muda */
:root { --hora-extra: min(20px, env(safe-area-inset-top, 0px));   /* v1.107.4: 36px baixo demais, 18px pegava o embaçado, 22px limpo – testando 20px */ --hora-faixa: calc(env(safe-area-inset-top, 0px) + var(--hora-extra)); }
html body .topo { border-top-width: var(--hora-faixa); }
html body .folha-cab { padding-top: calc(10px + var(--hora-faixa)); }
html body.modo-login .lg-fundo { padding-top: calc(28px + var(--hora-faixa)); }

html body .lg-fundo::after { height: var(--hora-faixa); }
html[data-tema="fazenda"] body #avisos:not(:empty) { background: linear-gradient(#2f3a22, #2f3a22) top / 100% var(--hora-faixa) no-repeat, var(--curvas) center / 560px auto repeat, #2f3a22 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body #avisos:not(:empty) { background: linear-gradient(#1d1d1c, #1d1d1c) top / 100% var(--hora-faixa) no-repeat, var(--curvas) center / 560px auto repeat, #1d1d1c !important; }

/* v1.107.5 – passagem do login para o app: a tela de entrar fica por cima (igualzinha) e some suave quando o app está pronto */
html body .lg-fundo.lg-capa { position: fixed !important; inset: 0; z-index: 9500; min-height: 0; overflow: hidden; align-items: flex-start; padding-top: calc(28px + var(--hora-faixa)); pointer-events: none; opacity: 1; transition: opacity .4s ease; }

html body .lg-fundo.lg-capa.lg-capa-sai { opacity: 0; }
/* v1.107.8 – botão claro/escuro da tela de entrar: pequeno (só o ícone, igual ao de dentro do app), no canto de cima do cartão */

/* título do cartão nunca encosta no botão do canto (margem dos dois lados = continua centralizado) */

/* v1.107.9 – abertura (logo antes do app abrir) igual à tela de entrar: fundo liso com as linhas douradas paradas,
   verde no claro e grafite no escuro, sem degradê nem brilho – combina com as imagens de abertura do iPhone (splash/) */
html[data-tema="fazenda"] .carga-ini.abertura { background: var(--curvas) center / 680px auto repeat, #2f3a22 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .carga-ini.abertura { background: var(--curvas) center / 680px auto repeat, #1d1d1c !important; }
html[data-tema="fazenda"] .carga-ini.abertura::before, html[data-tema="fazenda"] .carga-ini.abertura .ab-logo::before { display: none !important; }

/* v1.108.0 – áreas de toque mais confortáveis no celular (sem mudar o desenho) */
@media (pointer: coarse) {
  .per-chip { padding: 8px 14px; }
  .ng-seg-bt { padding: 10px 0; }
  
  
  .sg-ult-cab a { position: relative; display: inline-flex; align-items: center; min-height: 30px; box-sizing: border-box; }
  .sg-ult-cab a::after { content: ""; position: absolute; inset: -7px -4px; }
}
/* v1.108.0 – depósito de sal: nome do produto e situação em linhas separadas (letra legível em telas estreitas) */
.sg-dep .ct-kv span.sg-dep-st { margin-top: 1px; opacity: .78; font-size: 10px; }
@media (max-width: 370px) { .mq-pe { padding-left: 7px; padding-right: 7px; gap: 4px; } }
/* v1.108.0 – listas do Admin: só abre em 2 ou 3 colunas quando cada linha tem espaço para nome, números e botões */
@media (min-width: 900px) { .us-lista { grid-template-columns: repeat(auto-fill, minmax(min(100%, 540px), 1fr)) !important; } }

/* v1.108.1 – abertura: fundo sempre até o fim da tela, mesmo quando o iPhone mede a tela mais curta ao voltar do fundo.
   A camada passa da borda de baixo e o espaço extra vira preenchimento (a logo continua no centro da tela). */
html[data-tema="fazenda"][data-modo] .carga-ini.abertura, .carga-ini.abertura {
  top: 0 !important; left: 0 !important; right: 0 !important;
  bottom: calc(-1 * (env(safe-area-inset-bottom, 0px) + 140px)) !important;
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 140px) !important; box-sizing: border-box !important;
  background-position: center calc(50% - (env(safe-area-inset-bottom, 0px) + 140px) / 2) !important; }
html:has(.carga-ini.abertura:not(.saindo)), html[data-tema="fazenda"]:has(.carga-ini.abertura:not(.saindo)) { background: #2f3a22 !important; }
html[data-modo="escuro"]:has(.carga-ini.abertura:not(.saindo)), html[data-tema="fazenda"][data-modo="escuro"]:has(.carga-ini.abertura:not(.saindo)) { background: #1d1d1c !important; }

/* =====================================================================
   v1.109.0 – TELA DE ENTRAR "Topográfico + Passe único"
   mapa de curvas de nível (dourado) em cima · saudação grande · folha embaixo com a conta e um campo só de senha
   ===================================================================== */
html body .lg-fundo.lgx { --lgx-bg: #2f3a22; --lgx-folha: #fbf8ef; --lgx-txt: #2b3520; --lgx-pil: #fff; --lgx-borda: #e3c487; --lgx-ouro: #9c7a36; --lgx-sutil: #a39b80;
  position: fixed !important; inset: 0; display: block !important; padding: 0 !important; overflow: hidden !important; background: var(--lgx-bg) !important; color: #f4ecd6; font-family: "DM Sans", system-ui, sans-serif; white-space: nowrap; }
html[data-modo="escuro"] body .lg-fundo.lgx { --lgx-bg: #1d1d1c; --lgx-folha: #1c1c1b; --lgx-txt: #efe9d6; --lgx-pil: #232322; --lgx-borda: #6b5a30; --lgx-sutil: #77746a; }
html body .lg-fundo.lgx::before { display: none !important; }
.lgx-mapa { position: absolute; inset: -30px; pointer-events: none; animation: lgxDeriva 60s ease-in-out infinite alternate; }
.lgx-curvas { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: #c9a45c; stroke-opacity: .26; stroke-width: 1; }
.lgx-curvas polyline { vector-effect: non-scaling-stroke; }
html[data-modo="escuro"] .lgx-curvas { stroke-opacity: .22; }
@keyframes lgxDeriva { from { transform: translate3d(0, 0, 0) scale(1.02); } to { transform: translate3d(-18px, 12px, 0) scale(1.05); } }
.lgx-pin { position: absolute; display: flex; align-items: center; gap: 6px; font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .04em; color: #e3c487; opacity: .9; }
.lgx-pin i { width: 9px; height: 9px; border-radius: 50%; background: #e3c487; box-shadow: 0 0 0 4px rgba(227,196,135,.18), 0 0 14px #e3c487; animation: lgxPisca 3.2s ease-in-out infinite; }
.lgx-pin:nth-of-type(2) i { animation-delay: 1.1s; } .lgx-pin:nth-of-type(3) i { animation-delay: 2.2s; }
@keyframes lgxPisca { 0%, 100% { box-shadow: 0 0 0 4px rgba(227,196,135,.18), 0 0 14px #e3c487; } 50% { box-shadow: 0 0 0 7px rgba(227,196,135,.06), 0 0 22px #e3c487; } }
.lgx-col { position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: 0 auto; width: 100%; max-width: 520px; display: flex; flex-direction: column; }
.lgx-topo { flex: none; display: flex; align-items: center; gap: 12px; padding: calc(var(--hora-faixa, 20px) + 26px) 26px 0; }
.lgx-topo img { width: 44px; height: 42px; border-radius: 12px; object-fit: cover; box-shadow: 0 0 0 1.5px #e3c487, 0 8px 18px rgba(0,0,0,.35); }
.lgx-marca { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.lgx-marca b { font: 700 11px "DM Sans", sans-serif; letter-spacing: .24em; color: #e3c487; }
.lgx-marca span { font-size: 12px; letter-spacing: .06em; opacity: .72; }
html body .lgx-modo { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; padding: 0; border: 0; cursor: pointer; color: #e3c487;
  background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(227,196,135,.4); -webkit-tap-highlight-color: transparent; }
html body .lgx-modo svg { width: 19px; height: 19px; } html body .lgx-modo span { display: none; }
.lgx-ola { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; justify-content: center; padding: 0 28px 24px; transition: opacity .2s; }
.lgx-ola h1 { font: 400 clamp(38px, 11.5vw, 54px)/1.02 "DM Serif Display", Georgia, serif; color: #fbf3df; margin: 0; letter-spacing: -.005em; }
.lgx-ola h1 em { font-style: normal; color: #e3c487; }
.lgx-ola p { margin: 14px 0 0 2px; font-size: 14.5px; opacity: .78; }
.lgx-folha { position: relative; flex: none; background: var(--lgx-folha); color: var(--lgx-txt); border-radius: 34px 34px 0 0; padding: 14px 24px calc(14px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -18px 50px rgba(0,0,0,.35); animation: lgxSobe .55s cubic-bezier(.2,.8,.2,1) backwards; }
@keyframes lgxSobe { from { transform: translateY(100%); } to { transform: none; } }
.lgx-puxa { width: 42px; height: 5px; border-radius: 5px; background: #ddd3b8; margin: 0 auto 20px; }
html[data-modo="escuro"] .lgx-puxa { background: #3a3a38; }
.lgx-form { display: flex; flex-direction: column; gap: 14px; }
.lgx-form.lg-oculto, .lgx-pilula.lg-oculto { display: none !important; }
.lgx-msg { white-space: normal; border-radius: 14px !important; font: 600 13.5px/1.4 "DM Sans", sans-serif !important; padding: 11px 14px !important; text-align: left !important; }
.lgx-msg.erro { background: #fbe9e3 !important; color: #8a3b28 !important; border: 1px solid #efc4b6 !important; }
.lgx-msg.ok { background: #eef3e2 !important; color: #43592a !important; border: 1px solid #cddcb0 !important; }
.lgx-msg.aviso { background: #fbf1dc !important; color: #7a5a17 !important; border: 1px solid #ecd59c !important; }
html[data-modo="escuro"] .lgx-msg.erro { background: #3a211b !important; color: #f2b4a2 !important; border-color: #5a3127 !important; }
html[data-modo="escuro"] .lgx-msg.ok { background: #232b1b !important; color: #c8dca6 !important; border-color: #3a4a2a !important; }
html[data-modo="escuro"] .lgx-msg.aviso { background: #2e2717 !important; color: #ecd29b !important; border-color: #4d4024 !important; }
.lgx-quem { display: flex; align-items: center; gap: 14px; padding: 2px 2px 6px; }
.lgx-foto { width: 58px; height: 58px; flex: none; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(160deg, #56683a, #2f3a22); color: #f6e9c8;
  font: 400 28px "DM Serif Display", Georgia, serif; box-shadow: 0 0 0 2.5px var(--lgx-folha), 0 0 0 4px #e3c487, 0 0 0 9px rgba(227,196,135,.12); }
.lgx-quem-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.lgx-quem-t b { font: 400 21px/1.15 "DM Serif Display", Georgia, serif; overflow: hidden; }
.lgx-quem-t small { font-size: 12.5px; opacity: .62; overflow: hidden; }
html body .lgx-trocar { flex: none; border: 0; background: none; padding: 10px 2px 10px 6px; font: 700 13.5px "DM Sans", sans-serif; color: var(--lgx-ouro); cursor: pointer; }
.lgx-pilula { position: relative; display: flex; align-items: center; gap: 12px; height: 64px; border-radius: 999px; padding: 0 7px 0 22px; background: var(--lgx-pil);
  box-shadow: inset 0 0 0 1.5px var(--lgx-borda), 0 0 0 6px rgba(227,196,135,.14); cursor: text; transition: box-shadow .2s; }
html[data-modo="escuro"] .lgx-pilula { box-shadow: inset 0 0 0 1.5px var(--lgx-borda), 0 0 0 6px rgba(227,196,135,.06); }
.lgx-pilula:focus-within { box-shadow: inset 0 0 0 2px #c9a45c, 0 0 0 6px rgba(201,164,92,.24); }
.lgx-pilula:not(:has(.lgx-ir)) { padding-right: 22px; }
.lgx-ic { width: 20px; height: 20px; flex: none; color: var(--lgx-ouro); }
.lgx-pt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.lgx-pt small { font: 700 10px "DM Sans", sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--lgx-ouro); opacity: .9; }
html body .lgx-pt input { width: 100%; border: 0 !important; outline: 0; background: none !important; box-shadow: none !important; padding: 0 !important; margin: 0; height: 26px; min-height: 0;
  font: 500 17px "DM Sans", sans-serif !important; color: var(--lgx-txt) !important; -webkit-text-fill-color: var(--lgx-txt); border-radius: 0; }
html body .lgx-pt input[type=password] { letter-spacing: .18em; }
html body .lgx-pt input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px var(--lgx-pil) inset !important; -webkit-text-fill-color: var(--lgx-txt) !important; }
html body .lgx-olho { flex: none; width: 40px; height: 40px; border: 0; background: none; padding: 0; display: grid; place-items: center; color: var(--lgx-ouro); cursor: pointer; opacity: .85; }
html body .lgx-olho svg { width: 22px; height: 22px; } html body .lgx-olho.ativo { opacity: 1; color: #c9a45c; }
html body .lgx-ir { position: relative; flex: none; width: 50px; height: 50px; border-radius: 50%; border: 0; padding: 0; display: grid; place-items: center; cursor: pointer; color: #f6e9c8;
  background: linear-gradient(180deg, #4a5b30, #2f3a22); box-shadow: 0 8px 18px -6px rgba(47,58,34,.8), inset 0 1px 0 rgba(255,255,255,.2); transition: transform .15s; }
html[data-modo="escuro"] body .lgx-ir { background: linear-gradient(180deg, #ecd29b, #b98d3f); color: #2b3520; box-shadow: 0 8px 18px -6px rgba(227,196,135,.45), inset 0 1px 0 rgba(255,255,255,.35); }
html body .lgx-ir:active { transform: scale(.93); }
html body .lgx-ir svg { width: 21px; height: 21px; }
.lgx-spin { position: absolute; inset: 13px; border-radius: 50%; border: 2.5px solid currentColor; border-right-color: transparent; opacity: 0; }
html body .lgx-ir.carregando svg { opacity: 0; } html body .lgx-ir.carregando .lgx-spin { opacity: 1; animation: lgxGira .7s linear infinite; }
@keyframes lgxGira { to { transform: rotate(360deg); } }
.lgx-linha { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 6px 0; font-size: 13.5px; }
.lgx-linha:has(#lnkVoltar) { justify-content: center; }
.lgx-chave { display: inline-flex; align-items: center; gap: 9px; cursor: pointer; }
.lgx-chave input { position: absolute; opacity: 0; pointer-events: none; }
.lgx-trilho { width: 36px; height: 21px; border-radius: 21px; background: #d9d0b6; position: relative; transition: background .2s; }
.lgx-trilho span { position: absolute; left: 2.5px; top: 2.5px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s; }
.lgx-chave input:checked + .lgx-trilho { background: #4a5b30; } .lgx-chave input:checked + .lgx-trilho span { transform: translateX(15px); background: #e3c487; }
html[data-modo="escuro"] .lgx-trilho { background: #3a3a38; }
.lgx-link { color: var(--lgx-ouro) !important; font-weight: 700; text-decoration: none; padding: 8px 0; }
.lgx-rec-tit { font: 400 26px "DM Serif Display", Georgia, serif; margin: 0 2px; }
.lgx-rec-dica { white-space: normal; font-size: 13.5px; line-height: 1.45; opacity: .72; margin: -6px 2px 4px; }
html body .lgx-rodape { margin: 16px 0 0 !important; text-align: center; font: 600 10px "DM Sans", sans-serif !important; letter-spacing: .16em; text-transform: uppercase; color: var(--lgx-sutil) !important; opacity: 1 !important; }
#lgCartao.lgx-folha.lg-erro .lgx-senha { animation: lgxTreme .4s; }
@keyframes lgxTreme { 20%, 60% { transform: translateX(-7px); } 40%, 80% { transform: translateX(7px); } }
/* teclado aberto (celular, v1.109.2): a tela fica parada; só a folha sobe com o teclado e a saudação some de leve */
.lgx-folha { transition: transform .28s cubic-bezier(.2,.8,.2,1), padding .28s; }
.lgx-ola, .lgx-pin { transition: opacity .2s; }
.lgx.lgx-tec .lgx-folha { transform: translateY(calc(-1 * var(--lgx-kb, 0px))); padding-bottom: 12px; }
.lgx.lgx-tec .lgx-ola, .lgx.lgx-tec .lgx-pin { opacity: 0; pointer-events: none; }
.lgx.lgx-tec .lgx-rodape { visibility: hidden; }
/* tela baixa (celular pequeno): saudação menor */
@media (max-height: 700px) { .lgx-ola h1 { font-size: 36px; } .lgx-ola p { margin-top: 8px; } .lgx-folha { padding-top: 10px; } .lgx-puxa { margin-bottom: 14px; } }
/* computador / tablet (v1.109.1): duas metades – mapa e saudação à esquerda, painel inteiro à direita com a entrada */
@media (min-width: 700px) {
  html body .lgx .lgx-col { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(min(460px, 56%), 38%); grid-template-rows: auto 1fr; }
  html body .lgx .lgx-topo { grid-column: 1; grid-row: 1; padding: 44px 56px 0; }
  html body .lgx .lgx-topo img { width: 54px; height: 51px; border-radius: 15px; }
  html body .lgx .lgx-ola { grid-column: 1; grid-row: 2; padding: 0 56px 12vh; }
  html body .lgx .lgx-ola h1 { font-size: clamp(56px, 6vw, 96px) !important; }
  html body .lgx .lgx-ola p { font-size: 18px; margin-top: 22px; }
  html body .lgx .lgx-ola::after { content: "Modelo  ·  São Vicente  ·  Figueira"; margin-top: 46px; font: 700 12px "DM Sans", sans-serif; letter-spacing: .28em; text-transform: uppercase; color: #e3c487; opacity: .85; }
  html body .lgx .lgx-folha { grid-column: 2; grid-row: 1 / 3; margin: 0; border-radius: 0; display: flex; flex-direction: column; justify-content: center; padding: 0 clamp(30px, 4.5vw, 84px); box-shadow: -30px 0 70px rgba(0,0,0,.35); animation: none; min-width: 0; }
  html body .lgx .lgx-folha::before { content: "Entrar"; font: 400 34px "DM Serif Display", Georgia, serif; margin-bottom: 26px; }
  html body .lgx .lgx-folha .lgx-rodape { position: absolute; left: 0; right: 0; bottom: 28px; }
  html body .lgx .lgx-modo { position: absolute; right: 24px; top: 24px; z-index: 3; color: var(--lgx-ouro); background: rgba(227,196,135,.14); }
  html body .lgx .lgx-mapa { right: 38%; }
  html body .lgx .lgx-puxa { display: none; }
  html body .lgx .lgx-ola { min-width: 0; }
  html body .lgx .lgx-folha .lgx-form { width: 100%; max-width: 440px; margin: 0 auto; }
  html body .lgx .lgx-folha::before { width: 100%; max-width: 440px; margin-left: auto; margin-right: auto; }
  html body .lgx.lgx-tec .lgx-ola, html body .lgx.lgx-tec .lgx-pin { opacity: 1; pointer-events: auto; }
  html body .lgx.lgx-tec .lgx-folha { transform: none; }
}
/* capa ao entrar: sem deslocar nada */
html body .lg-fundo.lgx.lg-capa { padding: 0 !important; align-items: initial; }
@media (prefers-reduced-motion: reduce) { .lgx-mapa, .lgx-pin i, .lgx-folha, .lgx-spin { animation: none !important; } }
/* v1.109.0 – fontes da tela de entrar (o tema forçava a letra do app nos títulos e rótulos) */
html body .lgx .lgx-ola h1, html body .lgx .lgx-ola h1 em, html body .lgx .lgx-quem-t b, html body .lgx .lgx-foto, html body .lgx .lgx-rec-tit { font-family: "DM Serif Display", Georgia, serif !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body .lgx .lgx-ola p, html body .lgx .lgx-quem-t small, html body .lgx .lgx-linha, html body .lgx .lgx-chave, html body .lgx .lgx-link, html body .lgx .lgx-rec-dica { font-family: "DM Sans", system-ui, sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; }
html body .lgx .lgx-chave { font-size: 13.5px !important; font-weight: 500 !important; color: var(--lgx-txt) !important; }
html body .lgx .lgx-link { font-size: 13.5px !important; }
html body .lgx .lgx-folha .lgx-rodape { color: var(--lgx-sutil) !important; opacity: 1 !important; text-shadow: none !important; }

html body .lgx .lgx-folha::before { font-family: "DM Serif Display", Georgia, serif !important; color: var(--lgx-txt); }
@media (min-width: 700px) and (max-width: 1100px) { html body .lgx .lgx-pin:nth-of-type(3) { display: none; } html body .lgx .lgx-ola::after { font-size: 10.5px; letter-spacing: .14em; } html body .lgx .lgx-topo, html body .lgx .lgx-ola { padding-left: 36px; padding-right: 28px; } }
@media (min-width: 1800px) {
  html body .lgx .lgx-topo { padding: 64px 110px 0; } html body .lgx .lgx-topo img { width: 64px; height: 61px; border-radius: 18px; }
  html body .lgx .lgx-marca b { font-size: 13px; } html body .lgx .lgx-marca span { font-size: 14px; }
  html body .lgx .lgx-ola { padding: 0 110px 12vh; } html body .lgx .lgx-ola h1 { font-size: 124px !important; }
  html body .lgx .lgx-ola p { font-size: 22px; } html body .lgx .lgx-ola::after { font-size: 14px; margin-top: 56px; }
  html body .lgx .lgx-folha .lgx-form, html body .lgx .lgx-folha::before { max-width: 500px; } html body .lgx .lgx-folha::before { font-size: 42px; }
}

/* v1.109.2 – as curvas do mapa aparecem aos poucos logo abaixo da faixa da hora (antes eram cortadas numa linha reta) */
html body .lgx .lgx-mapa { -webkit-mask-image: linear-gradient(180deg, transparent calc(var(--hora-faixa, 20px) + 30px), #000 calc(var(--hora-faixa, 20px) + 150px));
  mask-image: linear-gradient(180deg, transparent calc(var(--hora-faixa, 20px) + 30px), #000 calc(var(--hora-faixa, 20px) + 150px)); }
@media (min-width: 700px) { html body .lgx .lgx-mapa { -webkit-mask-image: none; mask-image: none; } }

/* v1.110.0 – tela de entrar no celular: o cartão flutua sobre o mapa (cantos todos arredondados, verde em volta) e a versão
   fica embaixo dele, em dourado sobre o verde. Assim as bordas de cima e de baixo da tela são sempre verdes – inclusive a
   tira que o iPhone às vezes deixa embaixo (ele pinta as duas bordas com a cor de fundo da página). */
@media (max-width: 699px) {
  html body .lgx .lgx-folha { margin: 0 14px calc(14px + env(safe-area-inset-bottom, 0px) + var(--lgx-extra, 0px)); border-radius: 30px; padding: 18px 22px 18px;
    box-shadow: 0 -4px 30px rgba(0,0,0,.22), 0 6px 18px rgba(0,0,0,.22), 0 0 0 1px rgba(227,196,135,.35); }
  html body .lgx .lgx-puxa { display: none; }
  html body .lgx .lgx-folha .lgx-rodape { position: absolute; left: 0; right: 0; bottom: calc(-14px - env(safe-area-inset-bottom, 0px)); height: calc(14px + env(safe-area-inset-bottom, 0px));
    margin: 0 !important; padding: 0 !important; display: grid; place-items: center; background: none !important; font-size: 9.5px !important; color: rgba(227,196,135,.6) !important; }
  /* v1.110.3: sombra curta – não escurece o pé da tela (a tira lisa que o iPhone às vezes deixa embaixo emendava com uma faixa escura) */
  html[data-modo="escuro"] body .lgx .lgx-folha { box-shadow: 0 -4px 30px rgba(0,0,0,.35), 0 6px 18px rgba(0,0,0,.3), 0 0 0 1px rgba(227,196,135,.22); }
  /* v1.110.1: sem esmaecer no alto – as curvas vão até a hora (sem a faixa lisa); só somem aos poucos lá embaixo */
  html body .lg-fundo.lgx::after { display: none !important; }
  html body .lgx .lgx-mapa { -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 200px), transparent calc(100% - 30px));
    mask-image: linear-gradient(180deg, #000 calc(100% - 200px), transparent calc(100% - 30px)); }
  @media (max-width: 360px) { html body .lgx .lgx-folha { margin-left: 10px; margin-right: 10px; padding-left: 16px; padding-right: 16px; } html body .lgx .lgx-quem { gap: 10px; } html body .lgx .lgx-foto { width: 50px; height: 50px; font-size: 24px; } }
  /* teclado aberto: o cartão encosta no teclado */
  html body .lgx.lgx-tec .lgx-folha { margin-bottom: 8px; transform: translateY(calc(-1 * var(--lgx-kb, 0px))); }
}
/* v1.109.4 – abertura: sempre na cor do modo do iPhone (claro = verde, escuro = grafite), igual à imagem de abertura que o
   iOS mostra antes do app carregar. Depois ela esmaece por cima da tela no modo escolhido no app (sem corte seco). */
@media (prefers-color-scheme: light) {
  html[data-tema="fazenda"][data-modo] .carga-ini.abertura { background: var(--curvas) center / 680px auto repeat, #2f3a22 !important; background-position: center calc(50% - (env(safe-area-inset-bottom, 0px) + 140px) / 2) !important; }
  html[data-tema="fazenda"][data-modo]:has(.carga-ini.abertura:not(.saindo)) { background: #2f3a22 !important; } }
@media (prefers-color-scheme: dark) {
  html[data-tema="fazenda"][data-modo] .carga-ini.abertura { background: var(--curvas) center / 680px auto repeat, #1d1d1c !important; background-position: center calc(50% - (env(safe-area-inset-bottom, 0px) + 140px) / 2) !important; }
  html[data-tema="fazenda"][data-modo]:has(.carga-ini.abertura:not(.saindo)) { background: #1d1d1c !important; } }
/* no app instalado (ícone da tela de início) a imagem de abertura do iOS vem antes: a abertura do app aparece na hora,
   igual a ela, e só então esmaece – sem o corte seco da imagem do iOS direto para a tela de entrar */
@media (display-mode: standalone) { .carga-ini.abertura:not(.saindo) { animation: none !important; opacity: 1 !important; } }
/* v1.110.1 – no modo escuro o fundo antigo da tela de entrar (curvas repetidas) aparecia por trás do mapa novo */
html[data-tema="fazenda"][data-modo] body .lg-fundo.lgx { background: var(--lgx-bg) !important; }
/* v1.110.2 – tela de entrar congelada enquanto o app carrega por baixo (sem reiniciar animações nem pular) */

/* v1.111.0 – abertura sem logo: só o fundo liso da tela de entrar (verde no claro, grafite no escuro – segue o modo do
   iPhone, como a imagem de abertura do iOS), e a tela aparece por cima num esmaecer suave */
html[data-tema="fazenda"][data-modo] .carga-ini.abertura.ab-casca { background: #2f3a22 !important; animation: none !important; }
@media (prefers-color-scheme: dark) { html[data-tema="fazenda"][data-modo] .carga-ini.abertura.ab-casca { background: #1d1d1c !important; } }
html[data-tema="fazenda"] .carga-ini.abertura.ab-casca::before, html[data-tema="fazenda"] .carga-ini.abertura.ab-casca::after { display: none !important; }
html[data-tema="fazenda"] .carga-ini.abertura.ab-casca.saindo { opacity: 0; transition: opacity .35s ease, visibility 0s linear .35s !important; }

/* v1.111.1 – tela de entrar sem tremores: mapa e pontinhos parados (antes o mapa "flutuava" e os pontinhos pulsavam –
   no iPhone isso redesenhava a tela inteira a cada quadro e engasgava o teclado e a digitação); o cartão sobe uma vez só */
html body .lgx .lgx-mapa { animation: none !important; transform: none !important; }
html body .lgx .lgx-pin i { animation: none !important; box-shadow: 0 0 0 4px rgba(227,196,135,.16), 0 0 12px rgba(227,196,135,.9) !important; }
html body .lgx.lgx-espera .lgx-folha { animation-play-state: paused !important; }
html body .lgx .lgx-folha.lgx-subiu { animation: none !important; }

/* v1.112.0 – Face ID (teste): botão na tela de entrar e convite depois de entrar */
html body .lgx-face { position: relative; display: flex; align-items: center; justify-content: center; gap: 12px; height: 56px; width: 100%; border: 0; border-radius: 999px; cursor: pointer;
  font: 700 16px "DM Sans", sans-serif !important; letter-spacing: .02em; color: #f6e9c8; background: linear-gradient(180deg, #4a5b30, #2f3a22);
  box-shadow: 0 12px 26px -12px rgba(47,58,34,.9), inset 0 1px 0 rgba(255,255,255,.2); -webkit-tap-highlight-color: transparent; }
html body .lgx-face svg { width: 28px; height: 28px; color: #e3c487; }
html body .lgx-face:active { transform: scale(.98); }
html body .lgx-face .lgx-spin { inset: auto; width: 22px; height: 22px; position: absolute; right: 22px; top: 19px; }
html body .lgx-face.carregando .lgx-spin { opacity: 1; animation: lgxGira .7s linear infinite; }
html[data-modo="escuro"] body .lgx-face { background: linear-gradient(180deg, #ecd29b, #b98d3f); color: #2b3520; }
html[data-modo="escuro"] body .lgx-face svg { color: #2b3520; }
.lgx-ou { display: flex; align-items: center; gap: 12px; margin: -2px 6px; font: 700 11px "DM Sans", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--lgx-sutil); }
.lgx-ou::before, .lgx-ou::after { content: ""; flex: 1; height: 1px; background: rgba(156,122,54,.25); }
.fid-fundo { position: fixed; inset: 0; z-index: 9800; display: flex; align-items: flex-end; justify-content: center; padding: 16px 14px calc(16px + env(safe-area-inset-bottom, 0px));
  background: rgba(10,12,8,.5); opacity: 0; transition: opacity .25s; }
.fid-fundo.aberto { opacity: 1; }
.fid-caixa { width: 100%; max-width: 420px; border-radius: 30px; padding: 30px 24px 18px; text-align: center; background: #fbf8ef; color: #2b3520; box-shadow: 0 30px 70px rgba(0,0,0,.5), 0 0 0 1px rgba(227,196,135,.35);
  transform: translateY(30px); transition: transform .3s cubic-bezier(.2,.8,.2,1); font-family: "DM Sans", sans-serif; }
.fid-fundo.aberto .fid-caixa { transform: none; }
html[data-modo="escuro"] .fid-caixa { background: #1f1f1e; color: #efe9d6; }
.fid-ic { width: 80px; height: 80px; margin: 0 auto 16px; border-radius: 24px; display: grid; place-items: center; color: #e3c487; background: linear-gradient(160deg, #4a5b30, #2f3a22); box-shadow: 0 0 0 1.5px #e3c487, 0 0 0 8px rgba(227,196,135,.12); }
.fid-ic svg { width: 42px; height: 42px; }
.fid-caixa h2 { margin: 0 0 8px; font: 400 27px "DM Serif Display", Georgia, serif; }
.fid-caixa p { margin: 0 8px 20px; font-size: 14.5px; line-height: 1.45; opacity: .75; }
.fid-msg { margin: -8px 0 14px; font-size: 13px; color: #8a3b28; }
.fid-sim { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; height: 58px; border: 0; border-radius: 999px; cursor: pointer; font: 700 16px "DM Sans", sans-serif;
  color: #f6e9c8; background: linear-gradient(180deg, #4a5b30, #2f3a22); box-shadow: 0 12px 26px -12px rgba(47,58,34,.9); }
.fid-sim svg { width: 26px; height: 26px; color: #e3c487; } .fid-sim:disabled { opacity: .6; }
.fid-nao { margin-top: 8px; width: 100%; padding: 12px; border: 0; background: none; font: 700 14.5px "DM Sans", sans-serif; color: #9c7a36; cursor: pointer; }
/* v1.112.2 – tela de entrar esticada até o fim da tela de verdade quando o iPhone mede a janela curta (ver lgxAltura) */
html.lgx-esticada, html.lgx-esticada body.modo-login { overflow: visible !important; }
/* v1.112.4 – aviso da tela de entrar (ex.: nova versão): no mapa, logo abaixo da saudação – fora do cartão */
html body .lgx .lgx-ola { position: relative; }
.lgx-nota { position: absolute; left: 28px; max-width: calc(100% - 56px); box-sizing: border-box; height: 38px; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px 10px 12px; border-radius: 999px;
  background: rgba(16,21,11,.55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: inset 0 0 0 1px rgba(227,196,135,.45), 0 10px 24px -12px rgba(0,0,0,.6);
  color: #f4ecd6; font: 600 13.5px "DM Sans", sans-serif; white-space: nowrap; opacity: 0; transform: translateY(6px); transition: opacity .3s ease, transform .3s ease; pointer-events: none; }
.lgx-nota.aberta { opacity: 1; transform: none; }
.lgx-nota span { min-width: 0; overflow: hidden; }
.lgx-nota i { flex: none; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 11px; color: #2b3520; background: #e3c487; }
.lgx-nota.lgx-nota-gira i { background: none; border: 2.5px solid #e3c487; border-right-color: transparent; animation: lgxGira .8s linear infinite; }
html[data-modo="escuro"] .lgx-nota { background: rgba(12,12,11,.6); }
.lgx.lgx-tec .lgx-nota { opacity: 0; }
/* v1.112.8 – tela de entrar: sem o "flash" cinza do iPhone ao tocar (no "Lembrar e-mail" piscava o botão e o texto juntos);
   só a chave anima. Vale para todos os toques da tela de entrar (olho, Trocar, Esqueci a senha, Face ID…) */
.lgx, .lgx * { -webkit-tap-highlight-color: transparent; }
.lgx .lgx-chave { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
/* v1.113.1 – aviso do microfone some suave (sozinho em 6 s ou ao tocar) */
.vzi-nada { cursor: pointer; transition: opacity .2s ease, transform .2s ease; }
.vzi-nada.vzi-sai { opacity: 0; transform: translateY(6px); }
/* v1.113.2 – X nos avisos do microfone */
.vzi-nada.vzi-com-x { display: flex; align-items: flex-start; gap: 10px; }
.vzi-nada.vzi-com-x > span { flex: 1; min-width: 0; }
.vzi-x { flex: none; width: 28px; height: 28px; margin: -3px -4px -3px 0; padding: 0; border-radius: 50%; border: 1px solid rgba(201,164,92,.45); background: rgba(255,248,225,.08); color: inherit; display: grid; place-items: center; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.vzi-x svg { width: 14px; height: 14px; }
.vzi-nada.vz-com-desf.vzi-com-x { align-items: center; }
/* v1.113.3 – painel sem "…": nomes e avisos diminuem a letra para caber; nome comprido no mapa ocupa 2 quadrados */
.hm-t.hm-largo { grid-column: span 2; aspect-ratio: 2.1 / 1; }
.hm-t b, .vd-nome { text-overflow: clip !important; }
html body .pn-al-txt b { text-overflow: clip !important; }
html body .pn-al-txt small { white-space: nowrap; overflow: hidden; text-overflow: clip; }
html body .pn-alertas { grid-template-columns: minmax(0, 1fr) !important; }
html body .pn-al { min-width: 0; max-width: 100%; }
/* v1.113.4 – dica dos campos diminui a letra quando não cabe (caberCampos) */
input::placeholder { font-size: var(--ph-fs); }
/* v1.113.4 – linha de animais (e de pasto extra) sem o botão de tirar: o último campo ocupa o lugar dele (sem buraco à direita) */
html body .grade-cat > .rem-x.rem-oculto, html body #itens .linha-3 > .rem-x.rem-oculto { display: none; }
html body .grade-cat:has(> .rem-x.rem-oculto), html body #itens .linha-3:has(> .rem-x.rem-oculto) { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) !important; }
@media (max-width: 380px) { html body .grade-cat:has(> .rem-x.rem-oculto), html body #itens .linha-3:has(> .rem-x.rem-oculto) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; } }
/* janelas: lista de escolha com opção comprida não alarga a janela para fora da tela */
html body .modal .form, html body .lf-modal .form { grid-template-columns: minmax(0, 1fr); }
.linha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
html body .modal select, html body .lf-modal select { min-width: 0; max-width: 100%; }
@media (max-width: 380px) { html body .form .linha, html body .ng-grade { grid-template-columns: minmax(0, 1fr); } }
/* ====================================================================================================
   v1.114.0 – LANÇAMENTOS "UMA TELA SÓ": lista do que preencher + gaveta grande de baixo + rodapé com o botão
   ==================================================================================================== */
.pl-form { display: flex !important; flex-direction: column; gap: 0 !important; }
.pl-form > .pp-top { order: -10; }
.pl-form > .pl-lista { order: -5; }
.pl-form > .pl-pe { order: 100; }
.pl-form > .pl-gav { order: 50; }
.pl-top .pp-tit { font: 600 25px/1.15 "DM Sans", sans-serif; margin-top: 6px; color: #fbf3df; letter-spacing: -.01em; }
.pl-top { padding-bottom: 16px !important; }
.pl-lista { display: grid; gap: 10px; margin: 2px 0 14px; }
.pl-item { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 72px; padding: 12px 14px; border-radius: 18px; text-align: left; cursor: pointer; font: inherit;
  background: #fffdf7; border: 1px solid #e6dfcd; color: #26301b; box-shadow: 0 6px 16px -14px rgba(60,50,20,.5); -webkit-tap-highlight-color: transparent; transition: transform .12s ease, border-color .2s ease; }
.pl-item:active { transform: scale(.985); }
.pl-n { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font: 700 15px "DM Sans", sans-serif; color: #8a7a4e; background: #f4efe2; border: 1px solid #e6dfcd; }
.pl-item.ok .pl-n { background: #2f3b23; border-color: #2f3b23; color: #e3c487; }
.pl-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pl-tx small { font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #8a7a4e; }
.pl-tx b { font: 600 18px/1.2 "DM Sans", sans-serif; color: #26301b; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pl-tx b.vazio { color: #a9a38d; font-weight: 500; }
.pl-seta { flex: none; font-size: 24px; color: #b0ab97; }
.pl-item.pl-prox { border: 2px solid #c9a45c; }
/* rodapé fixo no pé da janela */
.pl-pe { position: sticky; bottom: 0; z-index: 3; margin: 0 -16px -16px; padding: 10px 16px calc(14px + env(safe-area-inset-bottom, 0px)); background: linear-gradient(180deg, rgba(247,243,233,0), #f7f3e9 18px); display: grid; gap: 10px; }
.pl-pe > .kpis, .pl-pe > .resumo-lanc { margin: 0 !important; }
.pl-pe > .acoes { margin: 0 !important; display: flex; gap: 8px; }
.pl-pe > .acoes .btn { flex: 1; min-height: 54px; font-size: 17px; justify-content: center; }
.pl-pe > .acoes .btn[type=submit] { flex: 2; }
/* gaveta */
.pl-gav { position: fixed; inset: 0; z-index: 1200; display: none; }
.pl-gav.aberta { display: block; }
.pl-gav-fundo { position: absolute; inset: 0; background: rgba(16,20,10,.5); animation: plFundo .2s ease; }
.pl-gav-in { position: absolute; left: 0; right: 0; bottom: 0; max-height: 86vh; display: flex; flex-direction: column; background: #fffdf7; color: #26301b; border-radius: 26px 26px 0 0;
  box-shadow: 0 -18px 40px -18px rgba(0,0,0,.45); animation: plSobe .24s cubic-bezier(.2,.8,.2,1); padding-bottom: env(safe-area-inset-bottom, 0px); }
@media (min-width: 700px) { .pl-gav-in { left: 50%; right: auto; width: min(560px, 100%); transform: translateX(-50%); bottom: 24px; border-radius: 24px; max-height: 80vh; animation: plSobeD .22s ease; } }
@keyframes plSobe { from { transform: translateY(100%); } to { transform: none; } }
@keyframes plSobeD { from { transform: translate(-50%, 24px); opacity: 0; } to { transform: translateX(-50%); opacity: 1; } }
@keyframes plFundo { from { opacity: 0; } to { opacity: 1; } }
.pl-alca { width: 44px; height: 5px; border-radius: 5px; background: #d6cfbb; margin: 10px auto 2px; flex: none; }
.pl-gav-cab { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 18px 12px; }
.pl-gav-cab b { font: 600 21px "DM Sans", sans-serif; color: #26301b; min-width: 0; }
.pl-gav-cab .pl-pronto { flex: none; min-height: 44px; padding: 0 20px; border-radius: 14px; }
.pl-gav-corpo { flex: 1; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 4px 18px 22px; display: grid; gap: 14px; align-content: start; }
.pl-gav-corpo > * { margin: 0 !important; }
.pl-gav-corpo label { color: #8a7a4e !important; }
.pl-gav-corpo details.mf-obs { border: 0 !important; padding: 0 !important; background: none !important; }
.pl-gav-corpo details.mf-obs > summary { display: none; }
.pl-gav-corpo textarea { min-height: 120px; font-size: 16px; }
/* lista de escolha em botões grandes */
.pl-sel-oculto { display: none !important; }
.pl-ops { display: grid; gap: 0; border-radius: 16px; background: #fff; border: 1px solid #e6dfcd; overflow: hidden; }
.pl-ops .pl-busca { margin: 10px; width: calc(100% - 20px); height: 46px; border-radius: 12px; }
.pl-ops-gr { padding: 12px 16px 6px; font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #8a7a4e; background: #faf6ea; }
.pl-op { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 10px 16px; border: 0; border-top: 1px solid #efe8d6; background: #fff; text-align: left; font: inherit; color: #26301b; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.pl-ops > .pl-op:first-child, .pl-ops > .pl-busca + .pl-op, .pl-ops-gr + .pl-op { border-top: 0; }
.pl-op-a { font: 600 17px "DM Sans", sans-serif; flex: none; max-width: 55%; overflow: hidden; }
.pl-op-b { flex: 1; min-width: 0; text-align: right; font: 500 13.5px "DM Sans", sans-serif; color: #8d8a78; }
.pl-op-ok { flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 13px; color: transparent; border: 1.5px solid #d6cfbb; }
.pl-op.sel { background: #f3ecd9; }
.pl-op.sel .pl-op-ok { background: #2f3b23; border-color: #2f3b23; color: #e3c487; }
.pl-op:active { background: #efe7d2; }
.pl-op:disabled { opacity: .45; }
.pl-op[hidden] { display: none; }
.pl-ops-vazio { padding: 16px; font: 500 15px "DM Sans", sans-serif; color: #8d8a78; }
.pl-ops.pl-ops-des { opacity: .55; }
.pl-gav-corpo [data-pp-erro] + .pl-ops, .pl-ops:has(+ .pp-aviso) { border-color: #c2553f; box-shadow: 0 0 0 2px rgba(194,85,63,.25); }
/* modo escuro */
html[data-modo="escuro"] .pl-item { background: #23281d; border-color: #3a412f; color: #f3f0e2; }
html[data-modo="escuro"] .pl-tx b { color: #f3f0e2; } html[data-modo="escuro"] .pl-tx b.vazio { color: #8b8775; }
html[data-modo="escuro"] .pl-n { background: #2c3224; border-color: #3a412f; color: #c9b27a; }
html[data-modo="escuro"] .pl-item.ok .pl-n { background: #e3c487; border-color: #e3c487; color: #26301b; }
html[data-modo="escuro"] .pl-pe { background: linear-gradient(180deg, rgba(27,31,22,0), #1b1f16 18px); }
html[data-modo="escuro"] .pl-gav-in { background: #1f2419; color: #f3f0e2; }
html[data-modo="escuro"] .pl-gav-cab b { color: #f3f0e2; }
html[data-modo="escuro"] .pl-ops { background: #262b20; border-color: #3a412f; }
html[data-modo="escuro"] .pl-op { background: #262b20; color: #f3f0e2; border-top-color: #333a29; }
html[data-modo="escuro"] .pl-op.sel { background: #343b2a; }
html[data-modo="escuro"] .pl-ops-gr { background: #20251a; color: #c9b27a; }
html body .pl-item { display: flex !important; align-items: center !important; justify-content: flex-start !important; text-align: left !important; min-height: 74px; height: auto; padding: 12px 14px !important; margin: 0 !important; line-height: 1.2; }
html body .pl-item .pl-tx { align-items: flex-start; text-align: left; }
/* resumo do rodapé (Lançar gado): uma faixa só, compacta */
html body .pl-pe > .resumo-lanc { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 0 !important; padding: 8px 4px !important; border-radius: 16px; background: #fffdf7; border: 1px solid #e6dfcd; }
html body .pl-pe > .resumo-lanc > * { background: none !important; border: 0 !important; box-shadow: none !important; padding: 2px 4px !important; min-height: 0 !important; text-align: center; border-radius: 0 !important; }
html body .pl-pe > .resumo-lanc > * + * { border-left: 1px solid #e6dfcd !important; }
html body .pl-pe > .resumo-lanc > *::before, html body .pl-pe > .resumo-lanc > *::after { display: none !important; }
html[data-modo="escuro"] body .pl-pe > .resumo-lanc { background: #23281d; border-color: #3a412f; }
html body .pl-pe > .resumo-lanc .rotulo { font: 700 9.5px "DM Sans", sans-serif !important; letter-spacing: .06em; text-transform: uppercase; color: #8d8a78 !important; white-space: nowrap; margin: 0 0 2px !important; }
html body .pl-pe > .resumo-lanc .valor { font: 700 17px "DM Sans", sans-serif !important; color: #26301b !important; white-space: nowrap; margin: 0 !important; }
html body .pl-pe > .resumo-lanc .valor small { font-size: 11px !important; }
html body .pl-pe > .resumo-lanc .sub { display: none !important; }
html body .pl-pe > .resumo-lanc .tag.grande { font-size: 15px !important; padding: 1px 8px !important; }
html[data-modo="escuro"] body .pl-pe > .resumo-lanc .valor { color: #f3f0e2 !important; }
/* gaveta aberta: microfone e menu de baixo saem da frente; lista ocupa a largura toda (data/outros campos em cima) */
html:has(.pl-gav.aberta) :is(#vozFab, .nav-voz, .voz-dock, .topo-voz) { opacity: 0 !important; pointer-events: none !important; }
.pl-gav-corpo .linha:has(.pl-ops) { grid-template-columns: minmax(0, 1fr) !important; }
.pl-gav-corpo .linha > div:has(.pl-ops) { order: 2; }
.pl-op-ok { margin-left: auto; }
.pl-op-b + .pl-op-ok { margin-left: 0; }
.pl-op-a, .pl-op-b { white-space: nowrap; }
html body .pl-tx b { white-space: nowrap; display: block; -webkit-line-clamp: none; text-overflow: clip; }
.pl-op-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pl-op-tx .pl-op-a { max-width: 100%; overflow: hidden; }
.pl-op-tx .pl-op-b { text-align: left; overflow: hidden; font-size: 13px; }
.pl-op .pl-op-ok { margin-left: 0 !important; }
html body .pl-item.ok .pl-n { color: #e3c487 !important; font-size: 17px !important; }
html[data-modo="escuro"] body .pl-item.ok .pl-n { color: #26301b !important; }
html body .pl-item .pl-tx > * { text-align: left !important; width: 100%; margin: 0 !important; }
.pl-gav-corpo :is(input:not([type=checkbox]):not([type=radio]):not(.pl-busca), select:not(.pl-sel-oculto)) { min-height: 52px; font-size: 17px !important; border-radius: 14px !important; }
.pl-gav-corpo .grade-cat { gap: 8px !important; }
.pl-form > .pl-info { order: -7; display: flex; flex-direction: column; gap: 2px; margin: 0 0 12px; padding: 12px 16px; border-radius: 16px; background: #f3ecd9; border: 1px solid #e6dfcd; }
.pl-info b { font: 700 19px "DM Sans", sans-serif; color: #26301b; } .pl-info span { font: 500 14px "DM Sans", sans-serif; color: #5b5a4e; } .pl-info small { font: 700 11px "DM Sans", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #8a7a4e; margin-top: 4px; }
html[data-modo="escuro"] .pl-info { background: #2a3022; border-color: #3a412f; } html[data-modo="escuro"] .pl-info b { color: #f3f0e2; } html[data-modo="escuro"] .pl-info span { color: #c9c3ad; }
html body .pl-item .pl-tx > * { padding: 0 !important; }
.pl-gav-corpo { grid-template-columns: minmax(0, 1fr); }
.pl-gav-corpo > * { min-width: 0; max-width: 100%; }
.pl-ops { width: 100%; min-width: 0; }
.pl-ops { grid-template-columns: minmax(0, 1fr); }
.pl-op { min-width: 0; width: 100%; box-sizing: border-box; }
html body .pl-pe > .resumo-lanc .rotulo, html body .pl-pe > .resumo-lanc .valor { overflow: hidden; max-width: 100%; }
/* v1.114.0 – resumo do Lançar gado: cartão verde com medidor */
html body .lr { display: block !important; margin: 0 !important; padding: 14px 16px 12px !important; border-radius: 20px; color: #fff; overflow: hidden; position: relative;
  background: radial-gradient(120% 140% at 0% 0%, #4a5a33 0%, #26301b 70%) !important; box-shadow: inset 0 0 0 1px rgba(227,196,135,.3), 0 10px 22px -14px rgba(20,30,10,.7); }
.lr-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; }
.lr-k { font: 700 10px "DM Sans", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #e3c487; white-space: nowrap; }
.lr-big { font: 600 32px/1 "DM Sans", sans-serif; letter-spacing: -.02em; color: #fff; margin-top: 4px; white-space: nowrap; }
.lr-big small { font: 600 13px "DM Sans", sans-serif; color: #d8ceb1; margin-left: 4px; letter-spacing: 0; }
.lr-big.lr-nada { color: #8f8a74; }
.lr-ua { text-align: right; min-width: 0; }
.lr-bar { height: 8px; border-radius: 8px; background: rgba(255,255,255,.14); margin: 12px 0 8px; position: relative; }
.lr-bar i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 8px; background: linear-gradient(90deg, #e3c487, #9fc36a); transition: width .3s ease; }
.lr-bar i.alerta { background: linear-gradient(90deg, #e3c487, #f0b04a); } .lr-bar i.erro { background: linear-gradient(90deg, #e3c487, #e5584a); } .lr-bar i.cinza { background: rgba(255,255,255,.25); }
.lr-bar em { position: absolute; top: -4px; width: 2px; height: 16px; margin-left: -1px; background: #fff; border-radius: 2px; }
.lr-lin { display: flex; align-items: center; justify-content: space-between; gap: 8px; font: 500 12.5px "DM Sans", sans-serif; color: #d8ceb1; white-space: nowrap; }
.lr-lin b { color: #fff; font-weight: 700; }
.lr-pill { font: 700 11px "DM Sans", sans-serif; padding: 3px 9px; border-radius: 20px; background: rgba(143,180,90,.25); color: #cfe6a8; }
.lr-pill.alerta { background: rgba(240,176,74,.22); color: #ffd58c; } .lr-pill.erro { background: rgba(229,88,74,.25); color: #ffb3a3; }
.lr-meta { color: #d8ceb1; }
.lr-ex { margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(227,196,135,.3); font: 500 12px "DM Sans", sans-serif; color: #d8ceb1; white-space: nowrap; overflow: hidden; }
.lr-ex b { color: #fff; }
/* cores do cartão verde vencem as regras do tema claro (texto escuro dentro das janelas) */
html body .lr, html body .lr .lr-lin, html body .lr .lr-meta, html body .lr .lr-ex, html body .lr .lr-big small, html body .lr .lr-lin span { color: #d8ceb1 !important; }
html body .lr .lr-k { color: #e3c487 !important; }
html body .lr .lr-big, html body .lr .lr-lin b, html body .lr .lr-ex b { color: #fff !important; }
html body .lr .lr-big.lr-nada { color: #8f8a74 !important; }
html body .lr .lr-pill { color: #cfe6a8 !important; } html body .lr .lr-pill.alerta { color: #ffd58c !important; } html body .lr .lr-pill.erro { color: #ffb3a3 !important; }
.pl-gav-in { max-height: min(86vh, calc(100% - 8px)); }
@media (min-width: 700px) { .pl-gav-in { max-height: min(80vh, calc(100% - 32px)); } }
/* pastos em botões (Editar lote) dentro da gaveta clara */
html body .pl-gav-corpo .pqsel { background: transparent !important; border: 0 !important; padding: 0 !important; }
html body .pl-gav-corpo .pqsel input { background: #fff !important; color: #26301b !important; border: 1px solid #e6dfcd !important; }
html body .pl-gav-corpo .pqsel .chip.pq { background: #fff !important; border: 1px solid #e6dfcd !important; color: #26301b !important; box-shadow: none !important; min-height: 56px; border-radius: 14px !important; }
html body .pl-gav-corpo .pqsel .chip.pq b { color: #26301b !important; font-family: "DM Sans", sans-serif !important; }
html body .pl-gav-corpo .pqsel .chip.pq small { color: #8d8a78 !important; }
html body .pl-gav-corpo .pqsel .chip.pq.sel { background: #2f3b23 !important; border: 2px solid #e3c487 !important; }
html body .pl-gav-corpo .pqsel .chip.pq.sel b { color: #fff !important; } html body .pl-gav-corpo .pqsel .chip.pq.sel small { color: #e3c487 !important; }
html body .pl-gav-corpo .pqsel :is(b, span, small, h4, div) { color: inherit; }
html[data-modo="escuro"] body .pl-gav-corpo .pqsel .chip.pq { background: #262b20 !important; border-color: #3a412f !important; }
html[data-modo="escuro"] body .pl-gav-corpo .pqsel .chip.pq b { color: #f3f0e2 !important; }
html[data-modo="escuro"] body .pl-gav-corpo .pqsel input { background: #262b20 !important; color: #f3f0e2 !important; border-color: #3a412f !important; }
/* rodapé com 3 botões: o principal ocupa a linha inteira, os outros dividem a de baixo */
.pl-pe > .acoes:has(> .btn:nth-child(3)) { flex-wrap: wrap; }
.pl-pe > .acoes:has(> .btn:nth-child(3)) > [type=submit] { flex: 1 1 100%; }
.pl-pe > .acoes .btn { white-space: nowrap; }
html[data-modo="escuro"] body .pl-gav-corpo .pqsel .chip.pq.sel { background: #e3c487 !important; border-color: #e3c487 !important; }
html[data-modo="escuro"] body .pl-gav-corpo .pqsel .chip.pq.sel b, html[data-modo="escuro"] body .pl-gav-corpo .pqsel .chip.pq.sel small { color: #26301b !important; }
/* ====================================================================================================
   v1.114.1 – CARTÃO DA VOZ "premium" (todos os lançamentos)
   ==================================================================================================== */
html body .voz-avisos:has(> .vc) { padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; margin: 0 0 14px !important; }
.pl-form > .voz-avisos { order: -6; }
.vc { border-radius: 20px; overflow: hidden; background: #fffdf7; border: 1px solid #e6dfcd; box-shadow: 0 12px 26px -20px rgba(40,50,20,.7); animation: vcEntra .25s ease; }
@keyframes vcEntra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.vc-cab { display: flex; gap: 12px; align-items: center; padding: 14px 16px; background: radial-gradient(120% 140% at 0% 0%, #4a5a33 0%, #26301b 72%); }
.vc-mic { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #26301b; background: linear-gradient(180deg, #ecd29b, #c9a45c); box-shadow: 0 0 0 4px rgba(227,196,135,.18); }
.vc-mic svg { width: 19px; height: 19px; }
.vc-fala { min-width: 0; }
html body .vc-fala small { display: block; font: 700 10px "DM Sans", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #e3c487 !important; margin-bottom: 2px; }
html body .vc-fala q { font: italic 500 16.5px/1.3 Georgia, "DM Serif Display", serif; color: #fbf3df !important; quotes: "“" "”"; }
.vc-corpo { padding: 14px 16px 4px; display: grid; gap: 10px; }
html body .vc-rot { font: 700 10px "DM Sans", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #8a7a4e !important; margin-bottom: -2px; }
.vc-bls { display: flex; flex-wrap: wrap; gap: 8px; }
.vc-b { border-radius: 14px; padding: 7px 12px 8px; background: #f4efe2; border: 1px solid #e6dfcd; min-width: 78px; max-width: 100%; }
.vc-b.largo { flex: 1 1 100%; }
html body .vc-b small { display: block; font: 700 9.5px "DM Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #8d8a78 !important; white-space: nowrap; }
html body .vc-b b { display: flex; align-items: center; gap: 6px; font: 700 16.5px "DM Sans", sans-serif; color: #26301b !important; }
.vc-b b span { min-width: 0; }
.vc-b:not(.largo) b span { white-space: nowrap; }
.vc-b b i { flex: none; width: 17px; height: 17px; border-radius: 50%; display: grid; place-items: center; font: 800 10px "DM Sans", sans-serif; font-style: normal; color: #fff; background: #6f8f3e; }
.vc-b.al { background: #fbf1dc; border-color: #ecd29b; } .vc-b.al b i { background: #d9a23f; }
.vc-b.neg { background: #f8e3dd; border-color: #eec2b6; } .vc-b.neg b i { background: #c2553f; }
.vc-call { display: flex; gap: 10px; padding: 10px 12px; border-radius: 14px; font: 500 13.5px/1.35 "DM Sans", sans-serif; }
.vc-call > div { min-width: 0; }
.vc-call > div > b { display: block; font-weight: 700; } .vc-call > div > span { display: block; }
.vc-ic { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font: 800 12.5px "DM Sans", sans-serif; color: #fff; }
html body .vc-call.al { background: #fbf1dc; border: 1px solid #ecd29b; color: #5b4a1e !important; } .vc-call.al .vc-ic { background: #d9a23f; } html body .vc-call.al b { color: #4a3a12 !important; }
html body .vc-call.in { background: #eef3f8; border: 1px solid #cfdeec; color: #31465a !important; } .vc-call.in .vc-ic { background: #5f86ad; }
html body .vc-call.du { background: #f4efe2; border: 1px solid #e6dfcd; color: #4b4a40 !important; } .vc-call.du .vc-ic { background: #8a7a4e; }
.vc-call .vz-bts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.vc-st { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font: 600 14px/1.35 "DM Sans", sans-serif; padding: 2px 0 6px; }
.vc-pt { flex: none; width: 9px; height: 9px; border-radius: 50%; }
html body .vc-st.ok { color: #4c6a22 !important; } .vc-st.ok .vc-pt { background: #6f8f3e; box-shadow: 0 0 0 4px rgba(111,143,62,.15); }
html body .vc-st.fa { color: #8a5a12 !important; } .vc-st.fa .vc-pt { background: #d9a23f; box-shadow: 0 0 0 4px rgba(217,162,63,.18); }
html body .vc-st.ze { color: #5b5a4e !important; } .vc-st.ze .vc-pt { background: #b0ab97; }
.vc-st b { font-weight: 800; }
.vc-acs { display: flex; gap: 8px; padding: 12px 16px 14px; border-top: 1px solid #efe8d6; margin-top: 6px; align-items: center; }
html body .vc-ac { height: 40px; padding: 0 14px; border-radius: 12px; border: 1px solid #e0d7bf; background: #fff; font: 600 13.5px "DM Sans", sans-serif; display: inline-flex; align-items: center; gap: 6px; color: #26301b !important; cursor: pointer; white-space: nowrap; -webkit-tap-highlight-color: transparent; }
.vc-ac:active { transform: scale(.97); }
html body .vc-ac.vc-resp { margin-left: auto; height: 36px; background: #2f3b23; border-color: #2f3b23; color: #fff !important; } .vc-ac.vc-resp svg { width: 15px; height: 15px; }
html body .vc-ac.vc-outro-bt { margin-left: auto; border: 0; background: none; color: #8a7a4e !important; padding: 0 4px; }
.vc-outro { padding: 0 16px 14px; }
.vc-outro .vz-outro { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.vc-outro .vz-outro > span { flex: 1 1 100%; font: 600 12.5px "DM Sans", sans-serif; color: #8d8a78; }
html body .vc-outro .vzi-link { height: 36px; padding: 0 12px; border-radius: 18px; border: 1px solid #e0d7bf; background: #fff; text-decoration: none !important; font: 600 13px "DM Sans", sans-serif; color: #26301b !important; display: inline-flex; align-items: center; gap: 4px; }
.vc .vz-fila { margin-top: 2px; }
.vc-desfeito .vc-corpo { padding: 12px 16px 8px; }
/* modo escuro */
html[data-modo="escuro"] .vc { background: #23281d; border-color: #3a412f; }
html[data-modo="escuro"] .vc-b { background: #2c3224; border-color: #3a412f; } html[data-modo="escuro"] body .vc-b b { color: #f3f0e2 !important; }
html[data-modo="escuro"] .vc-b.al { background: #3a3220; border-color: #6b5a2c; } html[data-modo="escuro"] .vc-b.neg { background: #3b2621; border-color: #6b3b30; }
html[data-modo="escuro"] body .vc-call.al { background: #3a3220; border-color: #6b5a2c; color: #ecd9ac !important; } html[data-modo="escuro"] body .vc-call.al b { color: #f6e5bb !important; }
html[data-modo="escuro"] body .vc-call.in { background: #23303b; border-color: #36495a; color: #c9d8e6 !important; }
html[data-modo="escuro"] body .vc-call.du { background: #2c3224; border-color: #3a412f; color: #d8d2bd !important; }
html[data-modo="escuro"] body .vc-st.ok { color: #b5d48a !important; } html[data-modo="escuro"] body .vc-st.fa { color: #ecc276 !important; } html[data-modo="escuro"] body .vc-st.ze { color: #b8b29c !important; }
html[data-modo="escuro"] .vc-acs { border-top-color: #333a29; }
html[data-modo="escuro"] body .vc-ac { background: #2c3224; border-color: #3a412f; color: #f3f0e2 !important; } html[data-modo="escuro"] body .vc-ac.vc-resp { background: #e3c487; border-color: #e3c487; color: #26301b !important; }
html[data-modo="escuro"] body .vc-ac.vc-outro-bt { background: none; color: #c9b27a !important; }
html[data-modo="escuro"] body .vc-outro .vzi-link { background: #2c3224; border-color: #3a412f; color: #f3f0e2 !important; }
html body .vc-ic { color: #fff !important; line-height: 1; }
.vc-st > span:not(.vc-pt) { flex: 1; min-width: 0; }
html body .vc-call .vc-ic { display: grid !important; place-items: center; font-size: 13px !important; }
.pl-form > .pl-info[hidden] { display: none !important; }
/* v1.114.3 – "esse pasto já tem gado" dentro da gaveta clara: cartões limpos, escolha bem marcada */
html body .pl-gav-corpo .chegada { display: grid; gap: 10px; padding: 14px; border-radius: 18px; background: #fbf1dc; border: 1px solid #ecd29b; }
html body .pl-gav-corpo .chegada[hidden] { display: none; }
html body .pl-gav-corpo .chg-aviso b { color: #4a3a12 !important; font: 700 16px "DM Sans", sans-serif; }
html body .pl-gav-corpo .chg-aviso span { color: #6b5a2c !important; font: 500 14px "DM Sans", sans-serif; }
html body .pl-gav-corpo .chg-tit { color: #8a6d2c !important; font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .12em; }
html body .pl-gav-corpo .chg-op { background: #fff !important; border: 1.5px solid #e6dfcd !important; border-radius: 16px !important; padding: 12px 14px !important; box-shadow: none !important;
  color: #26301b !important; font: 500 14px "DM Sans", sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; min-height: 64px; }
html body .pl-gav-corpo .chg-op .chg-tx b { display: block; font: 700 16px "DM Sans", sans-serif !important; color: #26301b !important; letter-spacing: 0 !important; text-transform: none !important; }
html body .pl-gav-corpo .chg-op .chg-tx small { display: block; font: 500 13px/1.35 "DM Sans", sans-serif !important; color: #6d6a5c !important; letter-spacing: 0 !important; text-transform: none !important; margin-top: 2px; }
html body .pl-gav-corpo .chg-op .chg-ic { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 20px; background: #f4efe2 !important; }
html body .pl-gav-corpo .chg-op.sel { border: 2px solid #2f3b23 !important; background: #f3f6ec !important; }
html body .pl-gav-corpo .chg-op.sel .chg-ic { background: #2f3b23 !important; }
html body .pl-gav-corpo .chg-para label { color: #8a6d2c !important; }
html[data-modo="escuro"] body .pl-gav-corpo .chegada { background: #3a3220; border-color: #6b5a2c; }
html[data-modo="escuro"] body .pl-gav-corpo .chg-aviso b { color: #f6e5bb !important; } html[data-modo="escuro"] body .pl-gav-corpo .chg-aviso span { color: #d8c79c !important; }
html[data-modo="escuro"] body .pl-gav-corpo .chg-op { background: #262b20 !important; border-color: #3a412f !important; }
html[data-modo="escuro"] body .pl-gav-corpo .chg-op .chg-tx b { color: #f3f0e2 !important; } html[data-modo="escuro"] body .pl-gav-corpo .chg-op .chg-tx small { color: #bdb7a2 !important; }
html[data-modo="escuro"] body .pl-gav-corpo .chg-op .chg-ic { background: #2c3224 !important; }
html[data-modo="escuro"] body .pl-gav-corpo .chg-op.sel { border-color: #e3c487 !important; background: #2f3524 !important; }
/* v1.114.3 – linha fina e discreta entre "Lançar gado" e "Troca de pasto" */
html body .lanc-form .mt-topo.lt-troca { position: relative; margin-top: 16px; padding-top: 16px; }
html body .lanc-form .mt-topo.lt-troca::before { content: ""; position: absolute; top: 0; left: 4%; right: 4%; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(176,138,62,.7) 20%, rgba(176,138,62,.7) 80%, transparent) !important; }
html[data-modo="escuro"] body .lanc-form .mt-topo.lt-troca::before { background: linear-gradient(90deg, transparent, rgba(227,196,135,.55) 20%, rgba(227,196,135,.55) 80%, transparent) !important; }
/* v1.114.4 – listas recolhidas na gaveta (ex.: Pasto e produto): uma linha limpa, abre ao tocar */
.pl-ops.pl-ops-dobra { display: none; margin-top: 8px; }
.pl-ops.pl-ops-dobra.aberta { display: grid; }
html body .pl-esc { display: flex !important; align-items: center; gap: 12px; width: 100%; min-height: 62px; padding: 10px 16px !important; margin: 0 !important; border-radius: 16px !important;
  background: #fff !important; border: 1px solid #e6dfcd !important; box-shadow: none !important; color: #26301b !important; text-align: left; font: inherit; text-transform: none !important; letter-spacing: 0 !important; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.pl-esc-tx { flex: 1; min-width: 0; display: grid; gap: 2px; }
.pl-esc-a { font: 600 17px "DM Sans", sans-serif; white-space: nowrap; overflow: hidden; }
.pl-esc-b { font: 500 13.5px "DM Sans", sans-serif; color: #8d8a78; white-space: nowrap; overflow: hidden; }
.pl-esc-b[hidden] { display: none; }
html body .pl-esc.vazio .pl-esc-a { color: #8d8a78; font-weight: 500; }
.pl-esc-acao { flex: none; display: flex; align-items: center; gap: 4px; font: 700 14px "DM Sans", sans-serif; color: #8a6d2c; }
.pl-esc-acao i { font-style: normal; font-size: 20px; line-height: 1; transition: transform .2s; }
html body .pl-esc.aberta { border-color: #b08a3e !important; }
html body .pl-esc.aberta .pl-esc-acao i { transform: rotate(90deg); }
html body .pl-esc:disabled { opacity: .55; }
.pl-gav-corpo [data-pp-erro] + .pl-esc { border-color: #c2553f !important; box-shadow: 0 0 0 2px rgba(194,85,63,.25) !important; }
html[data-modo="escuro"] body .pl-esc { background: #262b20 !important; border-color: #3a412f !important; color: #f3f0e2 !important; }
html[data-modo="escuro"] .pl-esc-b, html[data-modo="escuro"] body .pl-esc.vazio .pl-esc-a { color: #bdb7a2; }
html[data-modo="escuro"] .pl-esc-acao { color: #e3c487; }
html[data-modo="escuro"] body .pl-esc.aberta { border-color: #e3c487 !important; }
/* v1.114.5 – Mortes: mostra as 3 últimas; o resto em "Ver todos (N)" */
.mt-lim:not(.aberta) > .hx-lin:nth-child(n+4) { display: none !important; }
.mt-lim.mais3 + .ver-todos { display: flex; }
/* v1.115.0 – FECHAMENTO DO MÊS */
.fm-txt { margin: 12px 2px 0; font: 500 14.5px/1.45 "DM Sans", sans-serif; color: #4e5444; }
.fm-txt b { color: #26301b; }
.fm-aviso { margin: 10px 0 0; padding: 10px 12px; border-radius: 12px; background: #fbf1dc; border: 1px solid #ecd29b; font: 600 13.5px/1.4 "DM Sans", sans-serif; color: #6b5420; }
html[data-modo="escuro"] .fm-txt { color: #c9c3ad; } html[data-modo="escuro"] .fm-txt b { color: #f3f0e2; }
html[data-modo="escuro"] .fm-aviso { background: #3a3220; border-color: #6b5a2c; color: #f0dca8; }
#fmInfo b { font-weight: 700; } #fmInfo .tag { margin-left: 4px; }
.fm-cartao #fmLista:not(:empty) { margin-top: 14px; }
/* comparação com o anterior */
.fm-comp { margin: 12px 0 4px; padding: 12px 14px; border-radius: 16px; background: #fffdf7; border: 1px solid #e6dfcd; }
.fm-comp-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 10px; }
.fm-comp-cab b { font: 700 14px "DM Sans", sans-serif; color: #26301b; } .fm-comp-cab small { font: 600 12.5px "DM Sans", sans-serif; color: #8a7a4e; }
.fm-comp-kv { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.fm-comp-kv > div { display: grid; gap: 2px; padding: 0 8px; min-width: 0; text-align: center; }
.fm-comp-kv > div + div { border-left: 1px solid #ece4cf; }
.fm-comp-kv small { font: 700 9.5px "DM Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #8a7a4e; white-space: nowrap; }
.fm-comp-kv b { font: 700 16px "DM Sans", sans-serif; color: #26301b; white-space: nowrap; }
.fm-d { font: 700 12.5px "DM Sans", sans-serif; font-style: normal; color: #8d8a78; white-space: nowrap; }
.fm-d.sobe { color: #4c6a22; } .fm-d.desce { color: #a63d28; }
html[data-modo="escuro"] .fm-comp { background: #262b20; border-color: #3a412f; }
html[data-modo="escuro"] .fm-comp-cab b, html[data-modo="escuro"] .fm-comp-kv b { color: #f3f0e2; }
html[data-modo="escuro"] .fm-comp-kv > div + div { border-left-color: #3a412f; }
html[data-modo="escuro"] .fm-d.sobe { color: #a9cf74; } html[data-modo="escuro"] .fm-d.desce { color: #f0957f; }
/* botões do fechamento: planilha em destaque, o resto embaixo */
html body .fpb-bts.fm-bts { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; }
html body .fpb-bts.fm-bts > #fmXls { grid-column: 1 / -1; }
html body .fpb-bts.fm-bts > .btn { width: 100%; margin: 0 !important; }
/* PDF: imprime só o fechamento */

html body .hx-ic.rel, html body .hx-ic.rel svg { color: #e3c487 !important; }
html body .hx-ic.rel svg { stroke: currentColor !important; }
html body .fpb-bts.fm-bts > .btn:last-child:nth-child(even) { grid-column: 1 / -1; }
/* v1.115.0 – Capacidade › Meta de lotação: linha clara logo abaixo do resumo + janela com número grande */
html body .mt-meta { display: flex !important; align-items: center; gap: 12px; width: 100%; margin: 12px 0 4px !important; padding: 12px 14px !important; min-height: 66px; border-radius: 18px !important;
  background: #fffdf7 !important; border: 1px solid #e3d3a8 !important; box-shadow: 0 6px 16px -12px rgba(38,48,27,.35) !important; color: #26301b !important; text-align: left; font: inherit; text-transform: none !important; letter-spacing: 0 !important; cursor: pointer; -webkit-tap-highlight-color: transparent; }
html body .mt-meta:active { background: #f6efdc !important; }
.mt-meta-ic { flex: none; width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: linear-gradient(150deg, #3e4c2b, #26301b); color: #e3c487; }
.mt-meta-ic svg { width: 22px; height: 22px; }
.mt-meta-tx { flex: 1; min-width: 0; display: grid; gap: 1px; }
.mt-meta-tx small { font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #8a7a4e; }
.mt-meta-tx b { font: 700 21px "DM Sans", sans-serif; color: #26301b; white-space: nowrap; }
.mt-meta-tx b i { font: 600 13px "DM Sans", sans-serif; font-style: normal; color: #8d8a78; margin-left: 2px; }
.mt-meta-acao { flex: none; display: flex; align-items: center; gap: 4px; padding: 8px 12px; border-radius: 12px; background: #2f3b23; color: #f3e6c4; font: 700 13.5px "DM Sans", sans-serif; }
.mt-meta-acao i { font-style: normal; font-size: 18px; line-height: 1; }
html[data-modo="escuro"] body .mt-meta { background: #262b20 !important; border-color: #4a4430 !important; color: #f3f0e2 !important; }
html[data-modo="escuro"] .mt-meta-tx b { color: #f3f0e2; } html[data-modo="escuro"] .mt-meta-tx small { color: #c9b27a; }
html[data-modo="escuro"] .mt-meta-acao { background: #e3c487; color: #26301b; }
/* janela */
.mm-num { display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; gap: 10px; align-items: center; margin: 14px 0 12px; }
html body .mm-pm { height: 64px; border-radius: 18px !important; border: 1px solid #e3d3a8 !important; background: #fff !important; color: #2f3b23 !important; font: 600 30px "DM Sans", sans-serif !important; padding: 0 !important; box-shadow: none !important; cursor: pointer; }
html body .mm-pm:active { background: #f3ecd9 !important; }
.mm-val { display: grid; justify-items: center; gap: 0; margin: 0 !important; padding: 8px 6px; border-radius: 20px; background: linear-gradient(160deg, #4a5a33, #26301b); box-shadow: inset 0 0 0 1px rgba(227,196,135,.35); cursor: text; }
html body .mm-val input { width: 100%; border: 0 !important; background: none !important; box-shadow: none !important; outline: none; text-align: center; padding: 0 !important; height: 46px; color: #fff !important; font: 700 40px "DM Sans", sans-serif !important; letter-spacing: -.02em; }
html body .mm-val small { font: 700 10.5px "DM Sans", sans-serif !important; letter-spacing: .14em; text-transform: uppercase; color: #e3c487 !important; }
.mm-pre { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
html body .mm-pre button { height: 42px; padding: 0 !important; border-radius: 12px !important; border: 1px solid #e6dfcd !important; background: #fff !important; color: #26301b !important; font: 700 14px "DM Sans", sans-serif !important; box-shadow: none !important; cursor: pointer; }
html body .mm-pre button.sel { background: #2f3b23 !important; border-color: #2f3b23 !important; color: #e3c487 !important; }
.mm-res { margin-top: 12px; }
.mm-kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-radius: 16px; background: #fffdf7; border: 1px solid #e6dfcd; padding: 10px 4px; }
.mm-kv > div { display: grid; gap: 2px; text-align: center; padding: 0 6px; min-width: 0; }
.mm-kv > div + div { border-left: 1px solid #ece4cf; }
.mm-kv b { font: 700 19px "DM Sans", sans-serif; color: #26301b; white-space: nowrap; }
.mm-kv small { font: 600 11.5px "DM Sans", sans-serif; color: #8d8a78; white-space: nowrap; }
.mm-kv .ok b { color: #4c6a22; } .mm-kv .erro b { color: #a63d28; }
.mm-nota { margin: 8px 2px 0; font: 500 12.5px "DM Sans", sans-serif; color: #8d8a78; text-align: center; }
.mm-aviso { margin: 0; padding: 10px 12px; border-radius: 12px; background: #f6d9d1; color: #a63d28; font: 600 13.5px "DM Sans", sans-serif; }
html[data-modo="escuro"] body .mm-pm, html[data-modo="escuro"] body .mm-pre button { background: #262b20 !important; border-color: #3a412f !important; color: #f3f0e2 !important; }
html[data-modo="escuro"] body .mm-pre button.sel { background: #e3c487 !important; border-color: #e3c487 !important; color: #26301b !important; }
html[data-modo="escuro"] .mm-kv { background: #262b20; border-color: #3a412f; } html[data-modo="escuro"] .mm-kv > div + div { border-left-color: #3a412f; }
html[data-modo="escuro"] .mm-kv b { color: #f3f0e2; } html[data-modo="escuro"] .mm-kv .ok b { color: #a9cf74; } html[data-modo="escuro"] .mm-kv .erro b { color: #f0957f; }
html body .mm .mm-val input, html[data-tema] body .mm .mm-val input, html[data-modo] body .mm .mm-val input, html body .mm .mm-val input:focus { background: transparent !important; border: 0 !important; box-shadow: none !important; color: #fff !important; -webkit-text-fill-color: #fff; }
.mm-nota { white-space: nowrap; overflow: hidden; }
html body #fMeta #inMeta, html body #fMeta #inMeta:focus, html[data-tema] body #fMeta #inMeta { background: transparent !important; background-image: none !important; border: 0 !important; box-shadow: none !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
/* v1.115.1 – janelas altas (ex.: fechamento do mês) não entram embaixo da hora/bateria do iPhone */
@media (max-width: 899px) {
  html body .modal-fundo { padding-top: calc(env(safe-area-inset-top, 0px) + 10px); }
  html body .modal-fundo .modal { max-height: calc(100vh - 88px - env(safe-area-inset-bottom, 0px) - env(safe-area-inset-top, 0px) - 18px); max-height: calc(100dvh - 88px - env(safe-area-inset-bottom, 0px) - env(safe-area-inset-top, 0px) - 18px); }
}
@media (max-width: 899px) { html body .lf-fundo .lf-modal { max-height: calc(100dvh - 88px - env(safe-area-inset-bottom, 0px) - env(safe-area-inset-top, 0px) - 18px); } }
/* v1.115.2 – nada "se desprende" no iPhone: sem o esticão (rubber band) da página, das janelas, gavetas e listas.
   O puxar para atualizar do app é feito à mão (JS) e continua funcionando. */
html, body { overscroll-behavior: none !important; }
html body *, html body *::before, html body *::after { overscroll-behavior: none !important; }
/* ===================== v1.116.0 – MENU LATERAL ===================== */
.btn-menu { display: none; }
.ml-veu[hidden] { display: none !important; }
.ml { position: fixed; z-index: 1200; top: 0; bottom: 0; left: 0; width: min(318px, 86vw); display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain;
  padding: calc(env(safe-area-inset-top, 0px) + 14px) 14px calc(env(safe-area-inset-bottom, 0px) + 16px); color: #f3ecd9;
  background: var(--curvas, none) center / 560px auto repeat, linear-gradient(180deg, #2f3a22, #1f2717); box-shadow: 14px 0 40px -14px rgba(0,0,0,.55);
  transform: translateX(-104%); transition: transform .28s cubic-bezier(.2,.8,.2,1); outline: none; }
html.ml-aberto .ml { transform: none; }
.ml-veu { position: fixed; inset: 0; z-index: 1190; background: rgba(16,20,12,.48); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); animation: mlVeu .25s ease; }
@keyframes mlVeu { from { opacity: 0; } }
.ml-cab { display: flex; align-items: center; gap: 10px; padding: 4px 2px 12px; }
.ml-logo { width: 44px; height: 44px; border-radius: 13px; overflow: hidden; flex: none; border: 1px solid rgba(227,196,135,.55); box-shadow: 0 4px 12px rgba(0,0,0,.35); }
.ml-logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ml-app { flex: 1; min-width: 0; display: grid; line-height: 1.1; }
.ml-app small { font: 700 9.5px "DM Sans", sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #c9b27a; }
.ml-app b { font: 400 21px "DM Serif Display", Georgia, serif; color: #fbf3df; white-space: nowrap; }
html body .ml-x { flex: none; width: 38px; height: 38px; border-radius: 50%; padding: 0 !important; display: grid; place-items: center; font-size: 14px; color: #f6e5bb !important; background: rgba(255,255,255,.08) !important; border: 1px solid rgba(227,196,135,.4) !important; box-shadow: none !important; cursor: pointer; }
.ml-perf { display: flex; align-items: center; gap: 12px; padding: 12px 8px; border-top: 1px solid rgba(227,196,135,.18); border-bottom: 1px solid rgba(227,196,135,.18); }
.ml-av { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font: 700 16px "DM Sans", sans-serif; color: #26301b; background: linear-gradient(150deg, #f0d79e, #b08a3e); }
.ml-perf-tx { min-width: 0; display: grid; } .ml-perf-tx b { font: 700 16px "DM Sans", sans-serif; color: #fbf3df; white-space: nowrap; overflow: hidden; } .ml-perf-tx small { font: 600 12px "DM Sans", sans-serif; color: #c9b27a; }
html body .ml-fz { display: flex !important; align-items: center; justify-content: space-between; gap: 10px; width: 100%; margin: 12px 0 4px !important; padding: 9px 14px !important; border-radius: 14px !important; text-align: left;
  background: rgba(255,255,255,.06) !important; border: 1px solid rgba(227,196,135,.3) !important; color: #fbf3df !important; box-shadow: none !important; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important; }
.ml-fz span { min-width: 0; display: grid; } .ml-fz small { font: 700 9px "DM Sans", sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #c9b27a; } .ml-fz b { font: 700 15px "DM Sans", sans-serif; white-space: nowrap; }
.ml-fz i { font-style: normal; color: #e3c487; font-size: 18px; }
.ml-lista { display: grid; gap: 2px; padding-bottom: 10px; }
.ml-gr { margin: 14px 10px 5px; font: 700 9.5px "DM Sans", sans-serif; letter-spacing: .18em; text-transform: uppercase; color: #c9b27a; }
html body .ml-it { display: flex !important; align-items: center; gap: 12px; height: 46px; padding: 0 10px !important; border-radius: 13px !important; margin: 0 !important; width: 100%; text-decoration: none !important;
  font: 600 15.5px "DM Sans", sans-serif !important; color: #efe7d2 !important; background: none !important; border: 0 !important; box-shadow: none !important; cursor: pointer; text-align: left; -webkit-tap-highlight-color: transparent; text-transform: none !important; letter-spacing: 0 !important; }
html body .ml-it:active { background: rgba(255,255,255,.07) !important; }
.ml-ic { flex: none; width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: rgba(255,255,255,.07); color: #e3c487; }
.ml-ic svg { width: 18px; height: 18px; }
.ml-nm { flex: 1; min-width: 0; white-space: nowrap; }
html body .ml-it.ativo { background: linear-gradient(90deg, rgba(227,196,135,.26), rgba(227,196,135,.05)) !important; color: #fff !important; box-shadow: inset 3px 0 0 #e3c487 !important; }
html body .ml-it.ativo .ml-ic { background: #e3c487; color: #26301b; }
.ml-it em { flex: none; font: 700 9px "DM Sans", sans-serif; font-style: normal; letter-spacing: .08em; text-transform: uppercase; color: #26301b; background: #c9b27a; padding: 3px 8px; border-radius: 20px; }
html body .ml-it.ml-breve { color: #b9b096 !important; } .ml-breve .ml-ic { color: #a89a72; }
.ml-pe { margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 12px; border-top: 1px solid rgba(227,196,135,.18); }
html body .ml-bt { display: flex !important; align-items: center; justify-content: center; gap: 7px; height: 44px; padding: 0 8px !important; border-radius: 13px !important; font: 600 13.5px "DM Sans", sans-serif !important;
  color: #efe7d2 !important; background: rgba(255,255,255,.05) !important; border: 1px solid rgba(227,196,135,.3) !important; box-shadow: none !important; cursor: pointer; white-space: nowrap; text-transform: none !important; letter-spacing: 0 !important; }
.ml-bt svg { width: 17px; height: 17px; flex: none; }
.ml-ver { margin-top: 10px; text-align: center; font: 500 11px "DM Sans", sans-serif; color: #9a8f6e; }
html[data-modo="escuro"] .ml { background: var(--curvas, none) center / 560px auto repeat, linear-gradient(180deg, #232320, #171716); }

/* celular e tablet (v1.116.1): ☰ à esquerda · logo + situação no meio · microfone à direita (a fazenda se troca só no menu) */
@media (max-width: 899px) {
  html.ml-on body .topo .nav, html.ml-on body .topo > h1, html.ml-on body .topo :is(#btnModo, #btnSair, #btnAtualizar, .fz-sel), html.ml-on body #vozFab { display: none !important; }
  html.ml-on body .topo { gap: 8px !important; }
  html.ml-on body .btn-menu { display: grid !important; place-items: center; flex: none; order: 0; width: 44px; height: 44px; padding: 0 !important; border-radius: 13px !important; cursor: pointer;
    color: #e3c487 !important; background: rgba(255,255,255,.06) !important; border: 1px solid rgba(227,196,135,.45) !important; box-shadow: none !important; }
  html.ml-on body .btn-menu svg { width: 22px; height: 22px; }
  html.ml-on body .topo .topo-meio { order: 1; flex: 1 1 auto; justify-content: center; }
  html.ml-on body .topo .topo-voz { display: grid !important; place-items: center; order: 2; flex: none; width: 44px !important; height: 44px !important; padding: 0 !important; border-radius: 50% !important; }
  html.ml-on body .topo .topo-voz span { display: none !important; }
  html.ml-on body .topo .topo-voz svg { width: 22px !important; height: 22px !important; }
  html.ml-on body .conteudo { padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px)) !important; }
  html.ml-on body .voz-dock { top: calc(var(--topo-h, 64px) + 8px) !important; bottom: auto !important; }
  /* janela aberta: o topo fica por cima do fundo escuro (o microfone continua à mão); ☰ e fazenda ficam apagados */
  html.ml-on:has(.modal-fundo, .lf-fundo:not([hidden])) body .topo { z-index: 45 !important; }
  html.ml-on.janela-aberta body .topo .btn-menu { pointer-events: none !important; opacity: .4; }
  html.ml-on body :is(.modal-fundo, .lf-fundo) { padding-top: calc(var(--topo-h, 64px) + 8px) !important; padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important; }
  html.ml-on body :is(.modal-fundo .modal, .lf-fundo .lf-modal) { max-height: calc(100dvh - var(--topo-h, 64px) - 20px - env(safe-area-inset-bottom, 0px)) !important; }
  html.ml-on body .cf-fundo { padding-top: 16px !important; }
  html.ml-on.ml-aberto body .topo .topo-voz { opacity: 0; pointer-events: none; }
}
html.ml-aberto, html.ml-aberto body { overflow: hidden !important; }
/* computador: menu sempre aberto ao lado */
@media (min-width: 900px) {
  html.ml-on body .ml { transform: none; box-shadow: 1px 0 0 rgba(227,196,135,.18); width: 264px; }
  html.ml-on body .ml-x { display: none; }
  html.ml-on body #app { padding-left: 264px; }
  html.ml-on body .topo .nav, html.ml-on body .topo > h1 { display: none !important; }
}
.ml-nm { overflow: hidden; } .ml-it em { padding: 3px 7px; }

/* v1.116.1 – meio do topo: logo + situação da conexão */
.topo-meio { display: flex; align-items: center; gap: 10px; min-width: 0; }
.topo-marca { flex: none; width: 38px; height: 38px; border-radius: 11px; overflow: hidden; border: 1px solid rgba(227,196,135,.5); box-shadow: 0 3px 10px rgba(0,0,0,.3); }
.topo-marca img { width: 100%; height: 100%; object-fit: cover; display: block; }
html body .topo .topo-st { display: inline-flex !important; align-items: center; gap: 7px; min-width: 0; max-width: 100%; height: 34px; padding: 0 12px !important; border-radius: 20px !important; cursor: pointer;
  background: rgba(255,255,255,.07) !important; border: 1px solid rgba(227,196,135,.32) !important; color: #efe7d2 !important; box-shadow: none !important; font: 600 12.5px "DM Sans", sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; }
.topo-st span { white-space: nowrap; overflow: hidden; }
.st-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #8fc25a; box-shadow: 0 0 0 3px rgba(143,194,90,.22); }
.topo-st.env .st-dot { background: #e3c487; box-shadow: 0 0 0 3px rgba(227,196,135,.25); animation: stPisca 1s ease-in-out infinite; }
.topo-st.sem .st-dot { background: #e0a43a; box-shadow: 0 0 0 3px rgba(224,164,58,.25); }
.topo-st.erro .st-dot { background: #e5584a; box-shadow: 0 0 0 3px rgba(229,88,74,.25); }
html body .topo .topo-st.erro { border-color: rgba(229,88,74,.6) !important; }
@keyframes stPisca { 50% { opacity: .35; } }
@media (max-width: 360px) { .topo-marca { display: none; } }
@media (min-width: 900px) {
  html.ml-on body .topo :is(.fz-sel, #btnModo, #btnSair) { display: none !important; }
  html.ml-on body .topo .topo-meio { margin-left: auto; } html.ml-on body .topo .topo-marca { display: none; }
}
/* v1.116.1 – telas estreitas: "Precisa de atenção" numa linha só */
html body .pn-alertas-txt { min-width: 0; } html body .pn-alertas-txt b { white-space: nowrap; overflow: hidden; display: block; }
@media (max-width: 380px) { html body .pn-alertas-txt b { font-size: 14px !important; } html body .pn-alertas-ver { font-size: 12.5px !important; padding-left: 10px !important; padding-right: 10px !important; } }
/* v1.116.2 – a faixa laranja "Sem internet" sai: a situação fica só no topo (tocar abre o painel) */
html.ml-on body #offBarra { display: none !important; }
.st-ic { display: grid !important; place-items: center; } .st-ic .st-dot { width: 14px; height: 14px; }
.st-ic.ok .st-dot { background: #8fc25a; } .st-ic.env .st-dot { background: #e3c487; animation: stPisca 1s ease-in-out infinite; } .st-ic.sem .st-dot { background: #e0a43a; } .st-ic.erro .st-dot { background: #e5584a; }
.st-txt { margin: 12px 2px 4px; font: 500 14px/1.45 "DM Sans", sans-serif; color: #5b5a4e; }
.st-sec { margin: 14px 2px 6px; font: 700 10px "DM Sans", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #8a6d2c; }
.st-lista { max-height: 38vh; overflow: auto; }
html[data-modo="escuro"] .st-txt { color: #c9c3ad; } html[data-modo="escuro"] .st-sec { color: #d9b86e; }
html body .st-lista { display: grid; gap: 6px; }
html body .st-lista .off-it { display: grid !important; gap: 2px; padding: 10px 12px !important; border-radius: 14px !important; background: #fffdf7 !important; border: 1px solid #e6dfcd !important; color: #26301b !important; box-shadow: none !important; }
html body .st-lista .off-it > span:first-child { font: 600 14.5px "DM Sans", sans-serif; white-space: nowrap; overflow: hidden; }
html body .st-lista .off-it small { font: 500 12px "DM Sans", sans-serif; color: #8d8a78 !important; }
html body .st-lista .off-it.fal { border-color: rgba(194,85,63,.45) !important; background: #fdf3f0 !important; }
html[data-modo="escuro"] body .st-lista .off-it { background: #262b20 !important; border-color: #3a412f !important; color: #f3f0e2 !important; }
html[data-modo="escuro"] body .st-lista .off-it.fal { background: #3a2520 !important; border-color: rgba(229,88,74,.45) !important; }
/* v1.116.3 – Painel: "Tudo em dia" legível e no estilo novo */
html body .pn-tudo-ok.pn-ok2 { display: grid !important; gap: 12px; padding: 14px 16px !important; margin: 0 0 12px; border-radius: 22px !important; position: relative; overflow: hidden;
  background: radial-gradient(120% 140% at 0% 0%, #f3f8ec 0%, #fffdf7 55%) !important; border: 1px solid #cfe0bf !important; box-shadow: 0 10px 24px -18px rgba(47,59,35,.45) !important; color: #26301b !important; }
html body .pn-ok2::after { content: ""; position: absolute; right: -40px; top: -40px; width: 140px; height: 140px; border-radius: 50%; background: radial-gradient(circle, rgba(143,194,90,.18), transparent 70%); pointer-events: none; }
.pn-ok2 .ok-top { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pn-ok2 .ok-selo { flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: radial-gradient(circle at 30% 25%, #9fcf6a, #4c7a24 75%); box-shadow: 0 0 0 4px rgba(143,194,90,.22), 0 6px 14px -6px rgba(47,90,20,.6); }
.pn-ok2 .ok-selo svg { width: 24px; height: 24px; }
.pn-ok2 .ok-tx { min-width: 0; display: grid; gap: 1px; }
html body .pn-ok2 .ok-tx b { font: 700 18px "DM Sans", sans-serif !important; color: #2f4a1b !important; white-space: nowrap; }
html body .pn-ok2 .ok-tx small { font: 500 13.5px "DM Sans", sans-serif !important; color: #5f6a52 !important; white-space: nowrap; overflow: hidden; }
.pn-ok2 .ok-itens { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.pn-ok2 .ok-it { display: flex; align-items: center; justify-content: center; gap: 5px; min-width: 0; height: 32px; padding: 0 8px; border-radius: 20px; background: #fff; border: 1px solid #dbe8cf; }
.pn-ok2 .ok-it i { flex: none; width: 16px; height: 16px; border-radius: 50%; display: grid; place-items: center; background: #e3f0d6; color: #4c7a24; }
.pn-ok2 .ok-it i svg { width: 11px; height: 11px; }
html body .pn-ok2 .ok-it span { font: 600 12px "DM Sans", sans-serif !important; color: #3d5a24 !important; white-space: nowrap; overflow: hidden; }
html[data-modo="escuro"] body .pn-tudo-ok.pn-ok2 { background: radial-gradient(120% 140% at 0% 0%, #22311b 0%, #1d211a 60%) !important; border-color: #33502a !important; color: #e8f2dc !important; }
html[data-modo="escuro"] body .pn-ok2 .ok-tx b { color: #cfeeb4 !important; } html[data-modo="escuro"] body .pn-ok2 .ok-tx small { color: #aab89a !important; }
html[data-modo="escuro"] .pn-ok2 .ok-it { background: #20291a; border-color: #33502a; } html[data-modo="escuro"] .pn-ok2 .ok-it i { background: #2e4a22; color: #b9e08a; }
html[data-modo="escuro"] body .pn-ok2 .ok-it span { color: #c3dca8 !important; }
html body .pn-tudo-ok.pn-ok2 { padding: 14px 16px !important; }
/* v1.116.5 – avisos em "ilha" (pílula escura pequena abaixo do topo) */
html body #avisos.ilha-box { position: fixed !important; left: 0 !important; right: 0 !important; width: auto !important; height: auto !important; min-height: 0 !important; padding: 0 12px !important; margin: 0 !important; z-index: 2000 !important;
  display: flex !important; flex-direction: column; align-items: center; gap: 6px; pointer-events: none; background: none !important; bottom: auto !important; }
html body #avisos.ilha-box .toast.ilha { position: relative !important; left: auto !important; right: auto !important; top: auto !important; bottom: auto !important; transform: none; pointer-events: auto; cursor: pointer;
  display: inline-flex !important; align-items: center; gap: 10px; max-width: min(520px, 100%); min-height: 42px; height: auto; padding: 6px 18px 6px 7px !important; margin: 0 !important; border-radius: 26px !important;
  background: rgba(26,32,20,.94) !important; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(227,196,135,.28) !important;
  box-shadow: 0 14px 34px -12px rgba(0,0,0,.6) !important; color: #f6efdc !important; animation: ilhaEntra .32s cubic-bezier(.2,.9,.25,1.15) both; }
html body #avisos.ilha-box .toast.ilha.sai { animation: ilhaSai .2s ease-in both; }
@keyframes ilhaEntra { from { opacity: 0; transform: translateY(-10px) scale(.92); } }
@keyframes ilhaSai { to { opacity: 0; transform: translateY(-8px) scale(.95); } }
.toast.ilha .il-ic { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #7fae4a; }
.toast.ilha .il-ic svg { width: 16px; height: 16px; }
.toast.ilha.aviso-erro .il-ic { background: #d4573f; } .toast.ilha.aviso-aviso .il-ic { background: #c9a24a; color: #26301b; }
.toast.ilha.aviso-rede .il-ic { background: #e0a43a; color: #26301b; } .toast.ilha.aviso-info .il-ic { background: rgba(255,255,255,.16); color: #f3dfae; }
html body .toast.ilha .il-tx { min-width: 0; font: 600 14.5px "DM Sans", sans-serif !important; color: #f6efdc !important; white-space: nowrap; overflow: hidden; letter-spacing: 0 !important; text-transform: none !important; }
html body .toast.ilha.aviso-erro { border-color: rgba(229,88,74,.55) !important; }
html body .toast.ilha :is(.av-x, .av-barra) { display: none !important; }
html body #avisos.ilha-box .toast.ilha { width: auto !important; min-width: 0 !important; flex: 0 0 auto !important; align-self: center !important; }
html body #avisos.ilha-box:not(:empty), html[data-tema] body #avisos.ilha-box:not(:empty), html[data-tema][data-modo] body #avisos.ilha-box:not(:empty) { background: none !important; box-shadow: none !important; border: 0 !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
html[data-tema] body #avisos.ilha-box::before, html[data-tema] body #avisos.ilha-box::after { display: none !important; }
@media (min-width: 900px) { html.ml-on body #avisos.ilha-box { left: 264px !important; } }
/* v1.116.6 – aviso dentro do topo, no lugar da situação (não tampa a tela) */
.topo-meio { position: relative; }
.topo-meio > :not(.tm-aviso) { transition: opacity .2s ease, transform .2s ease; }
.topo-meio.com-aviso > :not(.tm-aviso) { opacity: 0; transform: scale(.94); pointer-events: none; }
html body .tm-aviso { position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; gap: 8px; height: 38px; padding: 0 14px 0 5px; border-radius: 22px; cursor: pointer; z-index: 2;
  background: rgba(14,18,10,.55); border: 1px solid rgba(227,196,135,.38); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); animation: tmEntra .3s cubic-bezier(.2,.9,.25,1.15) both; }
html body .tm-aviso.sai { animation: tmSai .22s ease-in both; }
@keyframes tmEntra { from { opacity: 0; transform: translateY(-50%) scale(.9); } } @keyframes tmSai { to { opacity: 0; transform: translateY(-50%) scale(.94); } }
.tm-aviso .il-ic { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #7fae4a; }
.tm-aviso .il-ic svg { width: 16px; height: 16px; }
.tm-aviso.aviso-erro .il-ic { background: #d4573f; } .tm-aviso.aviso-aviso .il-ic { background: #c9a24a; color: #26301b; } .tm-aviso.aviso-rede .il-ic { background: #e0a43a; color: #26301b; } .tm-aviso.aviso-info .il-ic { background: rgba(255,255,255,.16); color: #f3dfae; }
html body .tm-aviso.aviso-erro { border-color: rgba(229,88,74,.6); }
html body .tm-aviso .il-tx { min-width: 0; font: 600 14px "DM Sans", sans-serif; color: #f6efdc; white-space: nowrap; overflow: hidden; }
@media (min-width: 900px) { html body .tm-aviso { left: auto; right: 0; width: max-content; max-width: 520px; } }
.folha-cab { position: relative; }
.folha-cab .fc-zona { position: absolute; top: 0; bottom: 0; left: 108px; right: 12px; pointer-events: none; }
.folha-cab .fc-zona .tm-aviso { pointer-events: auto; top: calc(50% + env(safe-area-inset-top, 0px) / 2); }
.folha-cab :is(.folha-tit, .folha-selo) { transition: opacity .2s ease; }
.folha-cab.com-aviso :is(.folha-tit, .folha-selo) { opacity: 0; }
/* v1.116.7 – Lançar/Limpar sem a "caixa" em volta (o estilo antigo da barra de botões ainda pegava dentro do rodapé novo) */
html body .pl-pe > .acoes.mf-acoes, html[data-tema] body .pl-pe > .acoes.mf-acoes, html[data-tema][data-modo] body .pl-pe > .acoes.mf-acoes { position: static !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
@media (max-width: 899px) { html.ml-on body :is(.modal, .lf-modal) .pl-pe { padding-bottom: 14px !important; } }
/* v1.116.8 – aviso com texto longo: 2–3 linhas dentro da pílula (nunca passa da borda) */
html body .tm-aviso .il-tx, html body .toast.ilha .il-tx { flex: 1 1 auto; text-align: center; overflow-wrap: anywhere; }
html body .tm-aviso.il-2l { height: auto; min-height: 38px; max-height: 48px; padding-top: 4px; padding-bottom: 4px; border-radius: 16px; }
html body .tm-aviso.il-2l .il-tx, html body .toast.ilha.il-2l .il-tx { text-align: left; }
html body .toast.ilha.il-2l { border-radius: 18px !important; }
html body .tm-aviso { gap: 7px; padding: 0 12px 0 5px; } .tm-aviso .il-ic { width: 26px; height: 26px; } .tm-aviso .il-ic svg { width: 15px; height: 15px; }
/* v1.116.9 – celular: sem a logo no topo; a situação ocupa todo o meio (do ☰ ao microfone) e o aviso entra exatamente no mesmo tamanho */
@media (max-width: 899px) {
  html.ml-on body .topo .topo-marca { display: none !important; }
  html.ml-on body .topo .topo-meio { flex: 1 1 auto; min-width: 0; align-self: center; }
  html.ml-on body .topo .topo-st { flex: 1 1 auto; width: 100% !important; max-width: none !important; height: 40px !important; justify-content: center; border-radius: 22px !important; font-size: 14px !important; }
  html.ml-on body .tm-aviso { height: 40px; border-radius: 22px; }
  html.ml-on body .tm-aviso.il-2l { min-height: 40px; }
}
/* v1.116.10 – itens dos lançamentos nunca passam da largura do cartão; resumo em 2 linhas (principal + detalhe) */
html body .pl-lista { grid-template-columns: minmax(0, 1fr) !important; min-width: 0; }
html body .pl-item { min-width: 0 !important; max-width: 100% !important; overflow: hidden; }
html body .pl-item .pl-tx { min-width: 0 !important; overflow: hidden; }
html body .pl-tx b, html body .pl-tx .pl-det { max-width: 100%; overflow: hidden; white-space: nowrap; }
html body .pl-tx .pl-det { display: block; font: 500 13.5px "DM Sans", sans-serif; color: #6b6a5a; margin-top: 1px !important; }
html body .pl-tx .pl-det[hidden] { display: none; }
html[data-modo="escuro"] body .pl-tx .pl-det { color: #b9b39c; }
html body .cartao .pl-form > .pl-pe { background: none !important; position: static; margin: 0 !important; padding: 6px 0 0 !important; }

/* v1.116.12 · listas de escolha (gavetas): card inteiro, busca fixa em cima e só as opções rolam por dentro */
.pl-ops.pl-ops-longa { display: flex; flex-direction: column; overflow: hidden; }
.pl-ops.pl-ops-dobra.pl-ops-longa:not(.aberta) { display: none; }
.pl-ops-longa > .pl-busca { flex: none; margin: 10px 10px 8px; width: auto; }
.pl-ops-rol { flex: 1 1 auto; min-height: 0; max-height: max(232px, calc(100dvh - var(--topo-h, 72px) - 330px)); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
  border-top: 1px solid #efe8d6; display: grid; grid-template-columns: minmax(0, 1fr); }
.pl-ops-rol > .pl-op:first-child, .pl-ops-rol > .pl-ops-gr + .pl-op { border-top: 0; }
.pl-ops-rol > .pl-ops-gr { position: sticky; top: 0; z-index: 1; }
.pl-ops-rol > .pl-ops-gr:not(:first-child) { border-top: 1px solid #efe8d6; }
.pl-ops-gr[hidden] { display: none; }
html[data-modo="escuro"] .pl-ops-rol, html[data-modo="escuro"] .pl-ops-rol > .pl-ops-gr:not(:first-child) { border-color: #333a29; }
/* o ✓ das opções: vazio quando não marcado, dourado sobre verde quando marcado (o tema não pode pintar por cima) */
html body .pl-op .pl-op-ok { color: transparent !important; background: transparent; border: 1.5px solid #d6cfbb; font-size: 13px; font-weight: 700; }
html body .pl-op.sel .pl-op-ok { color: #e3c487 !important; background: #2f3b23 !important; border-color: #2f3b23 !important; }
html[data-modo="escuro"] body .pl-op .pl-op-ok { border-color: #4a5240; }
html[data-modo="escuro"] body .pl-op.sel .pl-op-ok { color: #26301b !important; background: #e3c487 !important; border-color: #e3c487 !important; }
html body .pl-ops.pl-ops-longa > .pl-busca { margin: 10px 10px 8px !important; width: calc(100% - 20px) !important; box-sizing: border-box; }
/* v1.116.14 · menu lateral: os rótulos pequenos (FAZENDAS, Administrador, FAZENDA) ficam dourados e legíveis – o tema não pinta por cima */
html body .ml :is(.ml-app small, .ml-fz small) { color: #d9bf82 !important; opacity: 1 !important; }
html body .ml .ml-app small { font-size: 10px; }
html body .ml .ml-perf-tx small { color: #d9bf82 !important; opacity: 1 !important; }
/* v1.116.14 · marca no topo do menu: "Dalla Martha" na mesma letra do "FAZENDAS" (DM Sans), forte e sem maiúsculas */
html body .ml .ml-app { gap: 3px; }
html body .ml .ml-app b { overflow: hidden; font: 700 20px/1.05 "DM Sans", sans-serif !important; letter-spacing: .01em; color: #e3c487 !important; text-transform: none;
  text-shadow: 0 1px 0 rgba(0,0,0,.35); }
/* v1.116.15 · topo do menu: faixa da marca lisa (sem as linhas onduladas passando por trás), do alto da tela até a linha dourada */
html body .ml .ml-cab { position: relative; margin: calc(-1 * (env(safe-area-inset-top, 0px) + 14px)) -14px 0; padding: calc(env(safe-area-inset-top, 0px) + 34px) 16px 18px;
  background: linear-gradient(180deg, rgba(227,196,135,.09), rgba(227,196,135,0) calc(env(safe-area-inset-top, 0px) + 6px)), #1b2213; border-bottom: 1px solid rgba(227,196,135,.32); gap: 14px; }
html body .ml .ml-cab::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: -1px; height: 1px; background: linear-gradient(90deg, rgba(227,196,135,0), #e3c487 30%, #e3c487 70%, rgba(227,196,135,0)); }
html body .ml .ml-logo { width: 52px; height: 52px; border-radius: 15px; border-color: rgba(227,196,135,.7); box-shadow: 0 6px 16px rgba(0,0,0,.45), 0 0 0 3px rgba(227,196,135,.08); }
html body .ml .ml-app { gap: 4px; }
html body .ml .ml-app small { font-size: 10px !important; letter-spacing: .26em !important; color: #c9b27a !important; }
html body .ml .ml-app b { font: 700 21px/1.05 "DM Sans", sans-serif !important; letter-spacing: .01em; color: #f0d79e !important; text-shadow: 0 1px 0 rgba(0,0,0,.4); }
html body .ml .ml-perf { border-top: 0; margin-top: 6px; }
/* v1.116.16 · o brilho da faixa da marca fica só na área da barra de status (acima do logo e do nome) */
/* v1.116.17 · marca e o × descem 16px: o brilho da barra de status não encosta mais no logo nem no nome */
/* v1.116.19 · TOPO (celular): mesmo formato, acabamento dourado – menu redondo, contornos dourados, microfone com halo */
.topo-tit { display: none; }
@media (max-width: 899px) {
  html.ml-on body #app .topo { border-bottom: 1px solid rgba(227,196,135,.55) !important; box-shadow: 0 6px 18px -8px rgba(0,0,0,.5) !important; }
  html.ml-on body #app .topo .btn-menu { border-radius: 50% !important; background: rgba(255,255,255,.06) !important; border: 1px solid rgba(227,196,135,.45) !important; color: #e3c487 !important; box-shadow: none !important; }
  html.ml-on body #app .topo .topo-voz { box-shadow: 0 0 0 3px rgba(227,196,135,.18), 0 4px 10px rgba(0,0,0,.35) !important; color: #26301b !important; }
  html.ml-on body #app .topo .topo-voz svg, html.ml-on body #app .topo .topo-voz svg * { color: #26301b !important; }
  html.ml-on body #app .topo .topo-st { height: 44px !important; font-weight: 600 !important; color: #fbf3df !important; border: 1px solid rgba(227,196,135,.45) !important;
    background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03)) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.08) !important; }
  html.ml-on body #app .topo .topo-st.erro { border-color: rgba(229,88,74,.7) !important; }
  html.ml-on body .tm-aviso { height: 44px; border: 2px solid rgba(227,196,135,.6); }
  /* traço grosso em todo o topo, igual ao microfone */
  html.ml-on body #app .topo .btn-menu { border-width: 2px !important; border-color: rgba(227,196,135,.6) !important; }
  html.ml-on body #app .topo .btn-menu svg { stroke-width: 2.8; width: 22px; height: 22px; }
  html.ml-on body #app .topo .topo-st { border-width: 2px !important; border-color: rgba(227,196,135,.6) !important; font-weight: 700 !important; font-size: 15px !important; }
  html.ml-on body #app .topo .topo-st .st-dot { width: 10px; height: 10px; }
  html.ml-on body #app .topo .topo-voz { border-width: 2px !important; }
  html.ml-on body #app .topo { border-bottom-width: 2px !important; }
  html.ml-on body .tm-aviso .il-tx { font-weight: 700; }
}
/* v1.116.20 · aviso com o topo coberto (gaveta, confirmação, menu): mesmo lugar e formato, por cima de tudo */
.tm-host { position: fixed; z-index: 5000; pointer-events: none; }
html body .tm-host .tm-aviso { pointer-events: auto; background: #1b2213 !important; box-shadow: 0 8px 22px -8px rgba(0,0,0,.6); }
/* ===================== v1.117.0 – LANÇAMENTOS: cartões com ação ===================== */
html body .cartao.sf-acao { position: relative; overflow: hidden; padding-left: 22px !important; }
html[data-tema] body .cartao.sf-acao::before { content: ""; display: block !important; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--sf-cor, #b89a5a); }
html body .sf-acao > .sf-cab { display: flex; align-items: center; gap: 10px; }
html body .sf-acao > .sf-cab h3 { flex: 1 1 auto; min-width: 0; }
html[data-tema] body .sf-acao.fechada > .sf-cab .sf-ch { display: none !important; }
html body .sf-acao .sf-mais { flex: none; width: 44px; height: 44px; border-radius: 50%; padding: 0 !important; display: grid; place-items: center; cursor: pointer; color: #f3dfae !important;
  background: linear-gradient(180deg, #42522f, #26301b) !important; border: 2px solid #b89a5a !important; box-shadow: 0 6px 14px -6px rgba(38,48,27,.6) !important; -webkit-tap-highlight-color: transparent; }
html body .sf-acao .sf-mais svg { width: 22px; height: 22px; }
html body .sf-acao .sf-mais:active { transform: scale(.94); }
html body .sf-acao > .sf-res { display: block; margin: 6px 0 0; }
html body .sf-acao.fechada > .sf-res { display: block !important; }
.sf-linha { display: block; font: 500 13px/1.3 "DM Sans", sans-serif; color: #7a7c68; white-space: nowrap; overflow: hidden; }
.sf-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.sf-acoes:empty { display: none; }
html body .sf-acao button.sf-chip { font: 600 12.5px/1.2 "DM Sans", sans-serif !important; padding: 8px 13px !important; min-height: 34px; cursor: pointer; box-shadow: none !important;
  background: linear-gradient(180deg, #fff9ea, #f3e6c6) !important; color: #6d5420 !important; border: 1px solid #dcc48c !important; border-radius: 999px !important; }
html body .sf-acao button.sf-chip.sf-extra { background: #eef2e4 !important; color: #3e4c2b !important; border-color: #d9dfc8 !important; }
html body .sf-acao button.sf-chip i { font-style: normal; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-linha { color: #b9b39f; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-acao button.sf-chip { background: linear-gradient(180deg, #3a321f, #2b2517) !important; color: #f3dca6 !important; border-color: rgba(201,164,92,.5) !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-acao button.sf-chip.sf-extra { background: #262624 !important; color: #d8d3c2 !important; border-color: #3a3a37 !important; }
/* ===================== v1.117.0 – LANÇAMENTOS em "lista de ajustes" (prévia) ===================== */
.sf-l-oculto { display: none !important; }
.sf-l-rot { font: 700 10.5px "DM Sans", sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #8a7a4e; margin: 18px 8px 8px; }
.sf-l-grupo { background: #fffdf7; border: 1px solid #e6dfcd; border-radius: 18px; overflow: hidden; box-shadow: 0 6px 16px -12px rgba(38,48,27,.35); }
html body .sf-l-item { display: flex !important; align-items: center; gap: 12px; width: 100%; min-height: 60px; padding: 0 16px !important; margin: 0 !important; background: none !important; border: 0 !important; border-top: 1px solid #efe8d6 !important;
  border-radius: 0 !important; box-shadow: none !important; text-align: left; cursor: pointer; color: #26301b !important; -webkit-tap-highlight-color: transparent; }
html body .sf-l-item:first-child { border-top: 0 !important; }
html body .sf-l-item:active { background: #f6f0df !important; }
.sf-l-item b { flex: 1 1 auto; min-width: 0; font: 600 16px "DM Sans", sans-serif; white-space: nowrap; overflow: hidden; }
.sf-l-item .secao-ic, .sf-lista.fechada .secao-ic { flex: none; }
.sf-l-seta { flex: none; font: 400 22px/1 "DM Sans", sans-serif; color: #b89a5a; }
.sf-l-val { flex: none; margin-left: auto; font: 600 13px "DM Sans", sans-serif; color: #7a7c68; white-space: nowrap; }
/* linha fechada: fina, colada nas vizinhas do mesmo grupo */
html body .cartao.sf-lista.fechada { margin: 0 !important; padding: 0 16px !important; border-radius: 0 !important; box-shadow: none !important; border: 1px solid #e6dfcd !important; border-top-color: #efe8d6 !important; background: #fffdf7 !important; }
html body .cartao.sf-lista.fechada::after { display: none !important; }
html body .cartao.sf-lista.fechada.sf-l-ini { border-radius: 18px 18px 0 0 !important; border-top-color: #e6dfcd !important; }
html body .cartao.sf-lista.fechada.sf-l-fim { border-radius: 0 0 18px 18px !important; }
html body .cartao.sf-lista.fechada.sf-l-ini.sf-l-fim { border-radius: 18px !important; }
html body .cartao.sf-lista.fechada:not(.sf-l-ini) { margin-top: calc(-1 * var(--sf-l-vao, 0px) - 1px) !important; }
html body #main > div:has(> .cartao.sf-lista.fechada:not(.sf-l-ini)) { margin-top: calc(-1 * var(--sf-l-vao, 0px) - 1px) !important; }
html body .sf-lista.fechada > .sf-cab { display: flex; align-items: center; gap: 12px; min-height: 60px; padding: 0 !important; }
html body .sf-lista > .sf-cab h3 { flex: 1 1 auto; min-width: 0; }
html body .sf-lista.fechada > .sf-cab h3 { font: 600 16px "DM Sans", sans-serif !important; white-space: nowrap; overflow: hidden; }
html[data-tema] body .sf-lista.fechada .sf-ch { display: none !important; }
html body .sf-lista.fechada > .sf-res { display: none !important; }
/* linha aberta: tela cheia abaixo do topo, com a seta de voltar */
html body .cartao.sf-lista:not(.fechada) { position: fixed !important; z-index: 40; left: 0; right: 0; top: var(--topo-h, 72px); bottom: 0; margin: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 14px 16px calc(28px + env(safe-area-inset-bottom, 0px)) !important; background: #f6f1e4 !important; }
@keyframes sfCheia { from { transform: translateX(24px); opacity: 0; } }
html body .cartao.sf-lista:not(.fechada)::after { display: none !important; }
html body .sf-lista:not(.fechada) > .sf-cab { display: flex; align-items: center; gap: 10px; }
html body .sf-lista:not(.fechada) :is(.sf-l-val, .sf-l-seta) { display: none; }
html[data-tema] body .sf-lista:not(.fechada) .sf-ch { order: -1; margin: 0 !important; }
html[data-tema] body .sf-lista:not(.fechada) .sf-ch svg { transform: rotate(90deg) !important; }
@media (min-width: 900px) { html.ml-on body .cartao.sf-lista:not(.fechada) { left: 264px; } }
html[data-tema="fazenda"][data-modo="escuro"] :is(.sf-l-grupo, body .cartao.sf-lista.fechada) { background: #232321 !important; border-color: #3a3a37 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-l-item { border-top-color: #34342f !important; color: #f3f0e2 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .cartao.sf-lista.fechada { border-top-color: #34342f !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .cartao.sf-lista:not(.fechada) { background: #1d1d1c !important; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-l-val { color: #b9b39f; } html[data-tema="fazenda"][data-modo="escuro"] .sf-l-rot { color: #c9b27a; }
html[data-tema] body .sf-lista.fechada > .sf-cab h3 { font: 600 16px "DM Sans", sans-serif !important; display: flex !important; align-items: center; gap: 12px; overflow: visible !important; white-space: nowrap; margin: 0 !important; color: #26301b; }
html[data-tema] body :is(.sf-lista, .sf-l-item) .sf-l-seta { color: #b89a5a !important; }
html[data-tema] body .sf-lista .sf-l-val { color: #7a7c68 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-lista.fechada > .sf-cab h3 { color: #f3f0e2; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-lista .sf-l-val { color: #b9b39f !important; }
/* ===================== v1.117.0 – LANÇAMENTOS: cartões grandes com desenho (P) e abas Fazer/Ver (R) – prévia ===================== */
.sf-p-acoes { display: grid; gap: 10px; }
html body .sf-p-card { display: flex !important; align-items: center; gap: 14px; width: 100%; min-height: 86px; margin: 0 !important; padding: 13px 14px !important; text-align: left; cursor: pointer; border-radius: 22px !important;
  background: linear-gradient(135deg, #3a4829, #1f2717) !important; border: 1.5px solid #b89a5a !important; color: #fbf3df !important;
  box-shadow: 0 12px 22px -14px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.07) !important; -webkit-tap-highlight-color: transparent; }
html body .sf-p-card:active { transform: scale(.985); }
.sf-p-im { flex: none; width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; background: linear-gradient(150deg, #f0d79e, #b08a3e); box-shadow: 0 0 0 4px rgba(227,196,135,.14); }
html[data-tema] body .sf-p-card .sf-p-im, html[data-tema] body .sf-p-card .sf-p-im * { color: #26301b !important; }
.sf-p-im svg { width: 32px; height: 32px; }
.sf-p-tx { flex: 1 1 auto; min-width: 0; display: grid; gap: 2px; }
html[data-tema] body .sf-p-card .sf-p-tx b { font: 400 21px/1.15 "DM Serif Display", Georgia, serif !important; color: #fbf3df !important; white-space: nowrap; overflow: hidden; }
html[data-tema] body .sf-p-card .sf-p-tx small { font: 500 13px/1.25 "DM Sans", sans-serif !important; color: #d9cfae !important; white-space: nowrap; overflow: hidden; }
html[data-tema] body .sf-p-card .sf-l-seta { color: #e3c487 !important; font-size: 26px; }
html body .sf-p-card.claro { background: #fffdf7 !important; border-color: #e3d9bd !important; box-shadow: 0 6px 14px -10px rgba(0,0,0,.35) !important; }
html[data-tema] body .sf-p-card.claro .sf-p-tx b { color: #26301b !important; } html[data-tema] body .sf-p-card.claro .sf-p-tx small { color: #7a7c68 !important; }
.sf-p-card.claro .sf-p-im { background: linear-gradient(150deg, #42522f, #26301b); box-shadow: 0 0 0 4px rgba(52,65,42,.10); }
html[data-tema] body .sf-p-card.claro .sf-p-im, html[data-tema] body .sf-p-card.claro .sf-p-im * { color: #e3c487 !important; }
html[data-tema] body .sf-p-card.claro .sf-l-seta { color: #b89a5a !important; }
html body .sf-p-ver { display: flex !important; align-items: center; justify-content: center; gap: 9px; width: 100%; min-height: 52px; margin: 12px 0 0 !important; padding: 0 14px !important; border-radius: 18px !important; cursor: pointer;
  font: 700 14.5px "DM Sans", sans-serif !important; color: #6d5420 !important; background: linear-gradient(180deg, #fff9ea, #f3e6c6) !important; border: 1px solid #dcc48c !important; box-shadow: none !important; }
html[data-tema] body .sf-p-ver * { color: #6d5420 !important; } .sf-p-ver svg { width: 20px; height: 20px; flex: none; }
html body #main.sf-p:not(.sf-p-aberto) :is(.sf-l-rot.sf-l-c, .cartao.sf-lista.fechada) { display: none !important; }
/* R: abas Fazer / Ver */
.sf-r-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 4px; margin: 0 0 12px; border-radius: 20px; background: #e3dcc9; }
html body .sf-r-seg button { display: flex !important; align-items: center; justify-content: center; gap: 8px; height: 48px; margin: 0 !important; padding: 0 !important; border-radius: 16px !important; cursor: pointer;
  font: 700 15.5px "DM Sans", sans-serif !important; color: #6b6a57 !important; background: none !important; border: 1.5px solid transparent !important; box-shadow: none !important; }
html[data-tema] body .sf-r-seg button * { color: inherit !important; } .sf-r-seg svg { width: 20px; height: 20px; flex: none; }
html body .sf-r-seg button.on { background: linear-gradient(180deg, #42522f, #26301b) !important; color: #f3dfae !important; border-color: #b89a5a !important; box-shadow: 0 6px 12px -8px rgba(0,0,0,.6) !important; }
html body #main.sf-r:not(.sf-r-ver) :is(.sf-l-rot.sf-l-c, .cartao.sf-lista.fechada) { display: none !important; }
html body #main.sf-r.sf-r-ver .sf-p-acoes { display: none !important; }
html body #main.sf-r.sf-r-ver .sf-l-rot.sf-l-c:first-of-type { margin-top: 4px; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-p-card.claro { background: #232321 !important; border-color: #3a3a37 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-p-card.claro .sf-p-tx b { color: #f3f0e2 !important; } html[data-tema="fazenda"][data-modo="escuro"] body .sf-p-card.claro .sf-p-tx small { color: #b9b39f !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-p-ver { background: linear-gradient(180deg, #3a321f, #2b2517) !important; border-color: rgba(201,164,92,.5) !important; color: #f3dca6 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-p-ver * { color: #f3dca6 !important; }
html[data-tema="fazenda"][data-modo="escuro"] .sf-r-seg { background: #2a2a28; } html[data-tema="fazenda"][data-modo="escuro"] body .sf-r-seg button:not(.on) { color: #b9b39f !important; }
/* v1.117.0 · saleiro do pasto no quadradinho da salga */
.mq-cas { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 4px 6px 6px; font: 600 11px/1.2 "DM Sans", sans-serif; color: #3e4c2b; white-space: nowrap; border-top: 1px solid #efe8d6; }
.mq-cas b { font-weight: 700; } .mq-cas.erro { color: #b3402c; background: #fbe9e4; } .mq-cas.alerta { color: #8a6a1a; background: #fbf3dc; }
html[data-tema="fazenda"][data-modo="escuro"] .mq-cas { color: #d8d3c2; border-top-color: #34342f; } html[data-tema="fazenda"][data-modo="escuro"] .mq-cas.erro { color: #ff9d8f; background: #3a211d; } html[data-tema="fazenda"][data-modo="escuro"] .mq-cas.alerta { color: #f0c36a; background: #3a321f; }
@media (min-width: 900px) { .sf-p-acoes { grid-template-columns: 1fr 1fr; gap: 12px; } .sf-r-seg { max-width: 520px; } }
/* v1.117.3 · seção em tela cheia: entra animada só quando a pessoa abre; ao puxar para atualizar, o espaço que abre em cima
   fica da cor da seção (a página de trás não aparece) */
html body .cartao.sf-lista.sf-entra:not(.fechada) { animation: sfCheia .24s cubic-bezier(.2,.8,.2,1); }
html body #main:has(> .cartao.sf-lista:not(.fechada), > div > .cartao.sf-lista:not(.fechada))::before { content: ""; display: block; position: fixed; z-index: 39; left: 0; right: 0; top: var(--topo-h, 72px); bottom: 0; background: #f6f1e4; }
@media (min-width: 900px) { html.ml-on body #main:has(.cartao.sf-lista:not(.fechada))::before { left: 264px; } }
html:has(#main .cartao.sf-lista:not(.fechada)) body .topo { z-index: 45 !important; }
html body .cartao.sf-lista.ptr-anim { transition: transform .28s cubic-bezier(.2,.8,.2,1); }
html[data-tema="fazenda"][data-modo="escuro"] body #main:has(.cartao.sf-lista:not(.fechada))::before { background: #1d1d1c; }
/* v1.117.4 · aba Fazer: cartões na altura que cabe na tela (--ch vem do app) */
html body .sf-p-acoes { gap: var(--cg, 10px); }
html body .sf-p-card { min-height: var(--ch, 86px); padding: 0 14px !important; gap: clamp(10px, calc(var(--ch, 86px) * .16), 14px); border-radius: clamp(16px, calc(var(--ch, 86px) * .26), 22px) !important; }
html body .sf-p-im { width: calc(var(--ch, 86px) * .675); height: calc(var(--ch, 86px) * .675); border-radius: 30%; box-shadow: 0 0 0 clamp(2px, calc(var(--ch, 86px) * .045), 4px) rgba(227,196,135,.14); }
html body .sf-p-im svg { width: 55%; height: 55%; }
html[data-tema] body .sf-p-card .sf-p-tx b { font-size: clamp(15px, calc(var(--ch, 86px) * .245), 21px) !important; }
html[data-tema] body .sf-p-card .sf-p-tx small { font-size: clamp(10.5px, calc(var(--ch, 86px) * .152), 13px) !important; }
html body .sf-p-tx { gap: clamp(0px, calc(var(--ch, 86px) * .02), 2px); }
html body .sf-p-acoes.sf-mini .sf-p-tx small { display: none; }
/* v1.118.0 · Histórico em linhas que abrem em tela cheia (título é o próprio h3) */
html[data-tema] body .sf-lista.fechada > h3.adm-tit.sf-cab { display: flex !important; align-items: center; gap: 12px; min-height: 60px; margin: 0 !important; padding: 0 !important; font: 600 16px "DM Sans", sans-serif !important; color: #26301b; white-space: nowrap; }
html body .sf-lista.fechada > h3.adm-tit.sf-cab .adm-tit-txt { flex: 1 1 auto; min-width: 0; overflow: hidden; }
html body .sf-lista > h3.adm-tit.sf-cab .sf-l-val { margin-left: auto; }
html[data-tema] body .sf-lista:not(.fechada) > h3.adm-tit.sf-cab { display: flex !important; align-items: center; gap: 10px; }
html[data-tema] body .sf-lista:not(.fechada) > h3.adm-tit.sf-cab .sf-ch { order: -1; margin: 0 !important; }
html[data-tema="fazenda"][data-modo="escuro"] body .sf-lista.fechada > h3.adm-tit.sf-cab { color: #f3f0e2; }
html[data-tema] body .sf-lista.fechada > h3.adm-tit.sf-cab .adm-tit-txt { font: 600 16px "DM Sans", sans-serif !important; }
/* v1.118.0 · Histórico com os cartões grandes: as linhas finas ficam escondidas (a parte só aparece aberta, em tela cheia) */
html body #main.sf-h .cartao.sf-lista.fechada, html body #main.sf-h .sf-l-rot { display: none !important; }
/* v1.119.0 · grupos do rebanho: machos, fêmeas e animais de serviço */
.rb-grupos { margin: 10px 0 12px; }
.rb-grupos .rb-g-femea b { color: #f3c6d0; } .rb-grupos .rb-g-servico b { color: #d9cfae; }
.rb-tag { display: inline-block; margin: 3px 0 0; padding: 2px 8px; border-radius: 999px; font: 700 9.5px/1.3 "DM Sans", sans-serif; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.rb-t-macho { background: #eef2e4; color: #3e4c2b; border: 1px solid #d9dfc8; }
.rb-t-femea { background: #fbe9ee; color: #9a3550; border: 1px solid #f0c9d3; }
.rb-t-servico { background: #f3ecd9; color: #7a6230; border: 1px solid #e3d5ad; }
html[data-modo="escuro"] .rb-t-macho { background: #2a3020; color: #cfd8b8; border-color: #3d4630; }
html[data-modo="escuro"] .rb-t-femea { background: #3a2229; color: #f3c6d0; border-color: #5a323e; }
html[data-modo="escuro"] .rb-t-servico { background: #3a321f; color: #e3d5ad; border-color: #55492b; }
.pn-det-1l { display: block; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; white-space: nowrap; overflow: hidden; }
.rl-grupos { margin-bottom: 6px; } .rl-grupos span { font-weight: 700; }

/* v1.120.0 – mesma propriedade, dois donos */
.pn-tile.pn-prop .pn-tile-det { white-space: nowrap; }
.pn-prop-ua b.ok { color: var(--ok, #4a6b2f); } .pn-prop-ua b.alerta { color: #a67a1e; } .pn-prop-ua b.erro { color: #b5543d; }
.fpb-viz { display: flex; flex-direction: column; gap: 2px; margin: 10px 0 2px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--f-ouro, #c9a961); background: rgba(201,169,97,.10); }
.fpb-viz b { font-size: 15px; } .fpb-viz span { display: block; font-size: 12.5px; opacity: .85; white-space: nowrap; overflow: hidden; }
.ct-prop .ct-nome { flex: 1 1 auto; }
.chg-viz { margin-bottom: 8px; } .chg-viz b, .chg-viz span { display: block; white-space: nowrap; overflow: hidden; }
.fm-prop { margin-top: 10px; }
.fm-prop .fm-comp-cab b, .fm-prop .fm-comp-cab small { white-space: nowrap; overflow: hidden; min-width: 0; }
.chg-viz { overflow: hidden; } .chg-viz > div { flex: 1 1 0; min-width: 0; }

/* v1.121.0 – campo Propriedade (vínculo das fazendas) */
.adm-prop { display: block; white-space: nowrap; overflow: hidden; color: var(--f-ouro-esc, #8a6d2b) !important; font-weight: 600; }
.adm-prop-dica { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.35; opacity: .8; }
/* v1.121.1 – nova propriedade: o nome entra no lugar da lista, sem mudar a altura do formulário */
.adm-prop-nova { display: flex; gap: 8px; align-items: stretch; } .adm-prop-nova[hidden] { display: none; }
.adm-prop-nova input { flex: 1 1 auto; min-width: 0; } .adm-prop-nova .btn { flex: 0 0 auto; padding: 0 14px; min-height: 0; }
.adm-prop-dica { min-height: calc(1.35em * 3); }

/* v1.122.0 – donos dentro da mesma fazenda */
.rb-t-dono { margin-left: 4px; background: #f6edd6; color: #7a5a14; border: 1px solid var(--f-ouro, #c9a961); }
.rb-donos { margin-bottom: 12px; }
.rb-tags { display: flex; flex-wrap: nowrap; gap: 4px; align-items: center; } .rb-tags .rb-tag { margin-left: 0; }
@media (max-width: 360px) { .rb-tags .rb-tag { font-size: 8px; padding: 2px 5px; letter-spacing: .04em; } }
.fm-donos { margin-top: 10px; } .fm-donos .fm-comp-kv { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 10px; }
.fm-donos .fm-comp-kv > div:nth-child(3n+1) { border-left: 0; }
.fm-donos .fm-comp-kv.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .fm-donos .fm-comp-kv.n4 > div:nth-child(3n+1) { border-left: 1px solid #ece4cf; } .fm-donos .fm-comp-kv.n4 > div:first-child { border-left: 0; }
.fm-donos .fm-comp-kv.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fm-donos .fm-comp-kv.n1 { grid-template-columns: 1fr; }
.rb-tags { min-width: 0; max-width: 100%; overflow: hidden; }

/* v1.123.0 – Relatórios, Compra e venda e Admin no padrão de cartões grandes */
html body .rl-cards .sf-p-tx small { display: block; }
html body .rl-cards .rl-c-v { font-weight: 700; color: #f3dca6; }
html body .rl-cards .rl-c-v::after { content: " · "; font-weight: 500; color: #d9cfae; }
html body .rl-cards .rl-c-v .sk { display: inline-block; width: 36px; height: .9em; vertical-align: middle; border-radius: 4px; }
html body .rl-cards .rl-c[data-cl="erro"] .rl-c-v { color: #f0a48c; } html body .rl-cards .rl-c[data-cl="alerta"] .rl-c-v { color: #f0cf7a; }
html body .rl-cards.sf-mini .sf-p-tx small { display: none; }

/* v1.123.0 – toda tela aberta no mesmo padrão das seções: topo claro, seta dourada e o topo do app continua à vista */
html body .folha-cab { padding: 14px 16px 12px !important; background: transparent !important; border-bottom: 0 !important; box-shadow: none !important; color: #26301b; position: relative; gap: 10px; }
html body .folha-cab::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--f-ouro, #c9a45c), transparent); }
html body .folha-volta { width: 36px; height: 36px; border: 1px solid rgba(138,105,40,.55); background: linear-gradient(180deg, #e3c487, #b98d3f); color: #2b3520; box-shadow: 0 4px 10px -6px rgba(0,0,0,.45); }
html body .folha-ic { box-shadow: 0 0 0 2px #f6f1e4, 0 0 0 3.5px var(--f-ouro) !important; }
html[data-tema] body .folha .folha-cab .folha-tit, html[data-tema] body .folha .folha-cab h3 { color: #26301b !important; font-size: 20px !important; }
html[data-tema] body .folha .folha-cab .folha-selo { color: #6b5417 !important; background: #fbf3df !important; border: 1px solid rgba(201,164,92,.7) !important; }
html body .folha { background: #f6f1e4; }
@media (max-width: 899px) {
  html body .folha { top: var(--topo-h, 72px); z-index: 40; }
  html:has(body > .folha) body .topo { z-index: 45 !important; }
  /* v1.126.1: com a tela rolada para baixo, o topo saía junto com a página quando uma folha abria (ficava um vão mostrando a tela de trás).
     Enquanto houver folha aberta o topo fica preso no alto; o espaço dele é guardado para a página de trás não pular. */
  html:has(body > .folha) body #app .topo { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; }
  html:has(body > .folha) body #app { padding-top: var(--topo-h, 72px); }
  /* v1.127.0 – PADRÃO: o mesmo vale para qualquer janela (lançamento, ficha, confirmação): o topo fica preso no alto */
  html.ml-on:has(.modal-fundo, .lf-fundo:not([hidden])) body #app .topo { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; }
  html.ml-on:has(.modal-fundo, .lf-fundo:not([hidden])) body #app { padding-top: var(--topo-h, 72px); }
  /* gaveta de lançamento: nunca sobe para trás do topo do app (em iPhone o topo é mais alto por causa da faixa da hora) */
  html.ml-on body .pl-gav-in { max-height: min(86vh, calc(100% - var(--topo-h, 72px) - 10px)); }
  html.ml-on body .pl-gav.pl-tec .pl-gav-in { max-height: calc(100% - 6px); }   /* com o teclado a gaveta já está na área útil */
  html.ml-on body .pl-gav.pl-tec-busca :is(.pl-gav-cab, .pl-alca) { display: none; }
  html.ml-on body .pl-gav.pl-tec-busca .pl-gav-corpo { padding-top: 10px; }
}
html[data-modo="escuro"] body .folha { background: #1d1d1c; }
html[data-modo="escuro"] body .folha-ic { box-shadow: 0 0 0 2px #1d1d1c, 0 0 0 3.5px var(--f-ouro) !important; }
html[data-tema][data-modo="escuro"] body .folha .folha-cab .folha-tit, html[data-tema][data-modo="escuro"] body .folha .folha-cab h3 { color: #f3f0e2 !important; }
html[data-tema][data-modo="escuro"] body .folha .folha-cab .folha-selo { color: #f3dca6 !important; background: #262624 !important; border-color: rgba(201,164,92,.45) !important; }
@media (min-width: 900px) { html.ml-on body .folha { left: calc(50% + 132px); width: min(980px, calc(100% - 264px - 24px)); } }   /* no computador a janela não fica mais atrás do menu lateral */

/* v1.124.1 – fechar a folha/relatório mais rápido (igual às seções) */
@media (max-width: 899px) { html body .folha.saindo { transition: transform .16s cubic-bezier(.4,0,1,1) !important; } }

/* v1.124.1 – parte aberta em tela cheia: a página de trás nunca se mexe nem pisca (senão a parte aberta sai do lugar e a tela de trás aparece) */
html body #main:has(> .cartao.sf-lista:not(.fechada), > div > .cartao.sf-lista:not(.fechada)) { animation: none !important; }
html body #main.entrou > .cartao.sf-lista:not(.fechada):not(.sf-entra), html body #main.entrou > div > .cartao.sf-lista:not(.fechada):not(.sf-entra),
html body #main > .trocou.cartao.sf-lista:not(.fechada):not(.sf-entra) { animation: none !important; }

/* v1.125.0 – checkup de formatação: nada quebra em duas linhas nem termina em "…" (a letra diminui) */
html body .ct-rot, html body .kp-rot, html body .pn-tile-det, html body .pn-alertas-txt b, html body .pn-alertas-txt small,
html body .pl-gav-corpo label:not(:has(*)), html body .kld-l span, html body .kld-tit small { white-space: nowrap !important; overflow: hidden !important; text-overflow: clip !important; }
html body .ct-rot, html body .pn-tile-det, html body .pl-gav-corpo label:not(:has(*)) { display: block; max-width: 100%; }
html body .kp-rot, html body .pn-alertas-txt, html body .pn-alertas-txt b, html body .pn-alertas-txt small { min-width: 0; }
html body .pn-alertas-txt { flex: 1 1 auto; overflow: hidden; } html body .pn-alertas-txt b, html body .pn-alertas-txt small { display: block; }
/* Saúde do aplicativo (v1.126.0): a explicação de cada item é uma frase curta, em UMA linha (a letra diminui se precisar, sem "…");
   o detalhe completo aparece ao tocar no item */
html body .sd-lin .us-mid small.sd-curto { display: block !important; white-space: nowrap !important; overflow: hidden !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; text-overflow: clip !important; max-width: 100%; }
html body .sd-lin .us-mid { min-width: 0; }
html body .sd-lin.sd-tem { cursor: pointer; -webkit-tap-highlight-color: transparent; }
html body .sd-lin .us-mid small.sd-det { display: block !important; white-space: normal !important; overflow: visible !important; -webkit-line-clamp: unset !important; margin-top: 5px; padding-top: 5px; border-top: 1px dashed var(--borda, #e6dcc6); font-size: 12px; line-height: 1.35; opacity: .9; }
html body .sd-dica { margin-top: 2px; opacity: .75; }
@media (max-width: 360px) { html body .sd-lin { gap: 9px; padding: 10px; } html body .sd-lin .sd-av { width: 34px; height: 34px; font-size: 16px; } html body .sd-lin .us-mid b { font-size: 13.5px; } html body .sd-chip { font-size: 10.5px; padding: 3px 7px; } }
/* botões que ficavam baixos demais para o dedo (tablet/computador e telefone estreito) */
html body .per-chip { min-height: 34px; } html body .sd-ver { min-height: 32px; } html body .kld-mais { min-height: 34px; }
html body .sg-ult-dir a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 6px; }

/* v1.125.0 – etiqueta do título da folha: cede espaço ao título */
html body .folha-cab .folha-selo-fora { display: none !important; }
html body .folha-cab .folha-selo { white-space: nowrap; padding-left: 8px; padding-right: 8px; }
html body .fm-saleiros .sg-est small { white-space: nowrap; overflow: hidden; display: block; max-width: 100%; }
html body .fm-comp-kv small, html body .fm-comp-kv b { overflow: hidden; max-width: 100%; }
html body .fm-prop .fm-comp-kv small { letter-spacing: .03em; } html body .fm-prop .fm-comp-kv > div { padding: 0 5px; }
@media (max-width: 360px) { html body .fm-prop .fm-comp-kv { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 8px; } html body .fm-prop .fm-comp-kv > div:nth-child(odd) { border-left: 0; } }

/* v1.125.0 – com uma folha/relatório aberto o topo do app fica à vista: o botão do menu continua funcionando */
html.ml-on.janela-aberta.so-folha body .topo .btn-menu { pointer-events: auto !important; opacity: 1 !important; }

/* ===================== v1.127.0 – verificação dos botões ===================== */
/* linha que só mostra informação (não abre nada) não tem cara de botão */
html body div.ct-lin:not([data-pn-pq]):not([role="button"]) { cursor: default; }
/* "Abrir ficha do pasto ›" era baixo demais para o dedo (23px) */
html body .mq-abrir { display: inline-flex; align-items: center; min-height: 36px; padding: 0 2px; }
/* links pequenos do cadastro de usuário ("marcar todas", "desmarcar", "voltar ao padrão…"): a área de toque cresce para 33px sem mexer no desenho */
html body .uf-link { padding: 10px 6px; margin: -10px -6px; }
/* cadastro de usuário › últimos lançamentos e falas: o texto aparece inteiro (era cortado com "…") e a fazenda vai na linha de baixo (saía da tela) */
html body .uf-at { align-items: flex-start; }
html body .uf-at-d { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.3; }
html body .uf-at-d small { display: block; margin: 2px 0 0; white-space: nowrap; overflow: hidden; text-overflow: clip; max-width: 100%; }
html body .uf-at-t, html body .uf-at-q { margin-top: 1px; }
/* títulos que abrem/fecham ("Diagnóstico do microfone", "Rotina recomendada"): área de toque de 36px (era 24px), sem mexer no desenho */
html body .vz-diag-box summary, html body .bk-rotina summary { padding: 6px 0; margin: -6px 0; }
/* Saúde do aplicativo: item sem detalhe não tem cara de botão */
html body .sd-lin:not(.sd-tem) { cursor: default; }
/* limpezas do Histórico: campo "digite LIMPAR" */
html body .lp-conf { margin: 12px 0 4px; }
html body .lp-conf label { display: block; margin-bottom: 6px; white-space: nowrap; }
html body .lp-conf .lp-txt { width: 100%; font-size: 17px; letter-spacing: .08em; text-transform: uppercase; }
html body .lp-conf .lp-txt::placeholder { letter-spacing: .08em; opacity: .45; }
html body .modal .btn.perigo:disabled { opacity: .45; }
