/* Butoane de actiune ale aplicatiei (inlocuiesc linkurile-text ca "Editare" / "Sterge"). Clase: ef-btn + varianta. */
.ef-btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; padding: .5rem .9rem;
  font-size: .8125rem; line-height: 1.1; font-weight: 500; border-radius: .5rem; border: 1px solid transparent;
  cursor: pointer; text-decoration: none; white-space: nowrap; transition: background-color .15s, border-color .15s, color .15s;
  vertical-align: middle; }
.ef-btn-sm { padding: .3rem .65rem; font-size: .75rem; margin: .1rem .15rem; }
.ef-btn:hover { text-decoration: none; }
.ef-btn:focus-visible { outline: 2px solid #93c5fd; outline-offset: 2px; }
.ef-btn-primary { background: #1d4ed8; color: #fff; } .ef-btn-primary:hover { background: #1e40af; color: #fff; }
.ef-btn-success { background: #16a34a; color: #fff; } .ef-btn-success:hover { background: #15803d; color: #fff; }
.ef-btn-danger { background: #dc2626; color: #fff; } .ef-btn-danger:hover { background: #b91c1c; color: #fff; }
.ef-btn-light { background: #fff; color: #1f2937; border-color: #d1d5db; } .ef-btn-light:hover { background: #f3f4f6; color: #111827; }
.ef-btn-outline-success { background: #fff; color: #16a34a; border-color: #86efac; } .ef-btn-outline-success:hover { background: #f0fdf4; }
.dark .ef-btn-outline-success { background: #1f2937; color: #86efac; border-color: #14532d; } .dark .ef-btn-outline-success:hover { background: #14532d; }
/* butoane cu pictograma-imagine (Word, Excel, chitanta, tranzactii, setari): aceeasi marime ca restul, se coloreaza la hover */
.ef-imgbtn img { width: .95rem; height: .95rem; display: block; object-fit: contain; } .ef-btn-sm.ef-imgbtn { width: 1.95rem; height: 1.95rem; padding: 0; margin: .1rem .15rem; } .ef-btn-sm.ef-imgbtn img { width: 1.1rem; height: 1.1rem; }
.ef-imgbtn { transition: background-color .15s, border-color .15s, box-shadow .15s; }
.ef-h-green:hover { background: #dcfce7 !important; border-color: #86efac !important; } .ef-h-blue:hover { background: #dbeafe !important; border-color: #93c5fd !important; }
.ef-h-amber:hover { background: #fef3c7 !important; border-color: #fcd34d !important; } .ef-h-gray:hover { background: #e5e7eb !important; border-color: #9ca3af !important; }
.ef-btn-outline-danger { background: #fff; color: #dc2626; border-color: #fca5a5; } .ef-btn-outline-danger:hover { background: #fef2f2; }
.dark .ef-btn-light { background: #374151; color: #f9fafb; border-color: #4b5563; } .dark .ef-btn-light:hover { background: #4b5563; }
.dark .ef-btn-outline-danger { background: #1f2937; color: #fca5a5; border-color: #7f1d1d; } .dark .ef-btn-outline-danger:hover { background: #7f1d1d; }
summary.ef-btn { list-style: none; } summary.ef-btn::-webkit-details-marker { display: none; }
.ef-actions { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .15rem; }
.ef-actions form { display: inline; margin: 0; }

/* iconite: butoane patrate cu pictograma (masca SVG), text doar in tooltip */
.ef-ic { padding: 0; width: 2.1rem; height: 2.1rem; }
.ef-btn-sm.ef-ic { width: 1.95rem; height: 1.95rem; padding: 0; }
.ef-ic::before { content: ''; display: block; width: 1.05rem; height: 1.05rem; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.ef-ic-check { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2013l4%204L19%207'/%3E%3C/svg%3E"); }
.ef-ic-pencil { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20fill='black'%3E%3Cpath%20d='M17.414%202.586a2%202%200%2000-2.828%200L7%2010.172V13h2.828l7.586-7.586a2%202%200%20000-2.828z'/%3E%3Cpath%20fill-rule='evenodd'%20d='M2%206a2%202%200%20012-2h4a1%201%200%20010%202H4v10h10v-4a1%201%200%20112%200v4a2%202%200%2001-2%202H4a2%202%200%2001-2-2V6z'%20clip-rule='evenodd'/%3E%3C/svg%3E"); }
.ef-ic-trash { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20fill='black'%3E%3Cpath%20fill-rule='evenodd'%20d='M9%202a1%201%200%2000-.894.553L7.382%204H4a1%201%200%20000%202v10a2%202%200%20002%202h8a2%202%200%20002-2V6a1%201%200%20100-2h-3.382l-.724-1.447A1%201%200%200011%202H9zM7%208a1%201%200%20012%200v6a1%201%200%2011-2%200V8zm5-1a1%201%200%2000-1%201v6a1%201%200%20102%200V8a1%201%200%2000-1-1z'%20clip-rule='evenodd'/%3E%3C/svg%3E"); }
.ef-ic-download { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4'/%3E%3Cpath%20d='M7%2010l5%205%205-5'/%3E%3Cpath%20d='M12%2015V3'/%3E%3C/svg%3E"); }
.ef-ic-x { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M18%206L6%2018M6%206l12%2012'/%3E%3C/svg%3E"); }
.ef-ic-eye { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M1%2012s4-8%2011-8%2011%208%2011%208-4%208-11%208-11-8-11-8z'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='3'/%3E%3C/svg%3E"); }
.ef-ic-undo { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M1%204v6h6'/%3E%3Cpath%20d='M3.51%2015a9%209%200%201%200%202.13-9.36L1%2010'/%3E%3C/svg%3E"); }
.ef-ic-save { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M19%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h11l5%205v11a2%202%200%200%201-2%202z'/%3E%3Cpath%20d='M17%2021v-8H7v8M7%203v5h8'/%3E%3C/svg%3E"); }
.ef-ic-send { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M22%202L11%2013'/%3E%3Cpath%20d='M22%202l-7%2020-4-9-9-4%2020-7z'/%3E%3C/svg%3E"); }
.ef-ic-map { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M1%206v16l7-4%208%204%207-4V2l-7%204-8-4-7%204z'/%3E%3Cpath%20d='M8%202v16M16%206v16'/%3E%3C/svg%3E"); }
.ef-ic-cloud { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M18%2010h-1.26A8%208%200%201%200%209%2020h9a5%205%200%200%200%200-10z'/%3E%3C/svg%3E"); }
.ef-ic-drop { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%202.7l5.7%205.7a8%208%200%201%201-11.3%200L12%202.7z'/%3E%3C/svg%3E"); }
.ef-ic-tasks { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M9%2011l3%203L22%204'/%3E%3Cpath%20d='M21%2012v7a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h11'/%3E%3C/svg%3E"); }
.ef-ic-plus { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%205v14M5%2012h14'/%3E%3C/svg%3E"); }

/* Editare = albastru, stergere = rosu, in toata aplicatia (butoanele cu pictograma creion / cos) */
.ef-btn.ef-ic-pencil { background: #2563eb; border-color: #2563eb; color: #fff; } .ef-btn.ef-ic-pencil:hover { background: #1d4ed8; border-color: #1d4ed8; color: #fff; }
.ef-btn.ef-ic-trash { background: #dc2626; border-color: #dc2626; color: #fff; } .ef-btn.ef-ic-trash:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.dark .ef-btn.ef-ic-pencil { background: #2563eb; border-color: #2563eb; color: #fff; } .dark .ef-btn.ef-ic-trash { background: #dc2626; border-color: #dc2626; color: #fff; }

/* câmpuri de formular unitare (padding, chenar, fundal) pentru paginile noi */
.ef-in { display: block; width: 100%; padding: .6rem .75rem; font-size: .875rem; line-height: 1.25rem; color: #111827; background: #f9fafb; border: 1px solid #d1d5db; border-radius: .5rem; }
.ef-in:focus { outline: 2px solid #86efac; outline-offset: 0; border-color: #16a34a; }
textarea.ef-in { min-height: 5rem; }
/* butoanele de editare și ștergere cu iconiță: contur colorat pe fundal alb, ca „Reziliază" (aceeași formă, doar iconița în interior) */
.ef-btn.ef-ic.ef-ic-pencil, .ef-btn-primary.ef-ic.ef-ic-pencil { background: #fff; color: #1d4ed8; border-color: #93c5fd; } .ef-btn.ef-ic.ef-ic-pencil:hover, .ef-btn-primary.ef-ic.ef-ic-pencil:hover { background: #eff6ff; color: #1e40af; border-color: #60a5fa; }
.ef-btn.ef-ic.ef-ic-trash, .ef-btn-danger.ef-ic.ef-ic-trash { background: #fff; color: #dc2626; border-color: #fca5a5; } .ef-btn.ef-ic.ef-ic-trash:hover, .ef-btn-danger.ef-ic.ef-ic-trash:hover { background: #fef2f2; color: #b91c1c; border-color: #f87171; }
.dark .ef-btn.ef-ic.ef-ic-pencil { background: #1f2937; color: #93c5fd; border-color: #1e3a8a; } .dark .ef-btn.ef-ic.ef-ic-pencil:hover { background: #1e3a8a; }
.dark .ef-btn.ef-ic.ef-ic-trash { background: #1f2937; color: #fca5a5; border-color: #7f1d1d; } .dark .ef-btn.ef-ic.ef-ic-trash:hover { background: #7f1d1d; }

/* ===== un singur stil pentru acțiuni: contur colorat pe fundal alb (ca „Reziliază") ===== */
.ef-btn-outline-primary { background: #fff; color: #1d4ed8; border-color: #93c5fd; } .ef-btn-outline-primary:hover { background: #eff6ff; color: #1e40af; border-color: #60a5fa; }
.dark .ef-btn-outline-primary { background: #1f2937; color: #93c5fd; border-color: #1e3a8a; } .dark .ef-btn-outline-primary:hover { background: #1e3a8a; }
/* ștergere (cu text sau iconiță), inclusiv butoanele vechi roșii pline */
.ef-btn-danger, .ef-btn.ef-btn-danger { background: #fff; color: #dc2626; border-color: #fca5a5; } .ef-btn-danger:hover, .ef-btn.ef-btn-danger:hover { background: #fef2f2; color: #b91c1c; border-color: #f87171; }
.dark .ef-btn-danger { background: #1f2937; color: #fca5a5; border-color: #7f1d1d; } .dark .ef-btn-danger:hover { background: #7f1d1d; }
a[class*="bg-red-6"][class*="text-white"], a[class*="bg-red-7"][class*="text-white"], button[class*="bg-red-6"][class*="text-white"], button[class*="bg-red-7"][class*="text-white"] {
  background: #fff !important; color: #dc2626 !important; border: 1px solid #fca5a5 !important; }
a[class*="bg-red-6"][class*="text-white"]:hover, a[class*="bg-red-7"][class*="text-white"]:hover, button[class*="bg-red-6"][class*="text-white"]:hover, button[class*="bg-red-7"][class*="text-white"]:hover { background: #fef2f2 !important; color: #b91c1c !important; }
/* editare (butoanele vechi albastre pline spre pagini / ferestre de editare) */
a[href*="edit"][class*="text-white"][class*="bg-primary"], a[href*="edit"][class*="text-white"][class*="bg-blue"], button[data-modal-target*="edit"][class*="text-white"][class*="bg-primary"], button[data-modal-target*="edit"][class*="text-white"][class*="bg-blue"] {
  background: #fff !important; color: #1d4ed8 !important; border: 1px solid #93c5fd !important; }
/* căutare / filtrare = orice buton de trimitere dintr-un formular GET: contur albastru, text albastru */
form[method="get" i] button:not([type="button"]):not([name]) { background: #fff !important; color: #1d4ed8 !important; border: 1px solid #93c5fd !important; }
form[method="get" i] button:not([type="button"]):not([name]):hover { background: #eff6ff !important; color: #1e40af !important; border-color: #60a5fa !important; }
form[method="get" i] button:not([type="button"]):not([name]) svg { color: currentColor !important; }
.dark form[method="get" i] button:not([type="button"]):not([name]) { background: #1f2937 !important; color: #93c5fd !important; border-color: #1e3a8a !important; }

/* Camp de fisiere: butonul nativ „Choose file / Alege fisier” (cu textul in limba browserului) e inlocuit de unul in stilul aplicatiei, cu textul in limba site-ului.
   Campul real ramane pe loc, transparent, peste butonul nou: se poate da click, trage fisiere pe el, iar validarea (required) merge ca inainte. Vezi js/file-input.js. */
.ef-file { position: relative; display: inline-flex; align-items: center; gap: .65rem; max-width: 100%; vertical-align: middle; }
.ef-file-input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: pointer; z-index: 2; }
.ef-file-btn { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .95rem; font-size: .8125rem; font-weight: 500; line-height: 1.1; color: #1f2937;
  background: #fff; border: 1px solid #d1d5db; border-radius: .55rem; box-shadow: 0 1px 2px rgba(16, 24, 40, .06); white-space: nowrap; transition: background-color .15s, border-color .15s, box-shadow .15s; }
.ef-file-btn::before { content: ""; width: 1rem; height: 1rem; background: currentColor; opacity: .75; flex: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='M17 8l-5-5-5 5'/%3E%3Cpath d='M12 3v12'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='M17 8l-5-5-5 5'/%3E%3Cpath d='M12 3v12'/%3E%3C/svg%3E") center / contain no-repeat; }
.ef-file:hover .ef-file-btn { background: #f3f4f6; border-color: #9ca3af; }
.ef-file-input:focus-visible ~ .ef-file-btn { outline: 2px solid #16a34a; outline-offset: 2px; }
.ef-file-name { font-size: .8125rem; color: #6b7280; max-width: 18rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ef-file.has-file .ef-file-name { color: #166534; font-weight: 500; }
.ef-file.is-disabled { opacity: .55; }
.ef-file.is-disabled .ef-file-input { cursor: not-allowed; }
.dark .ef-file-btn { background: #1f2937; color: #e5e7eb; border-color: #4b5563; }
.dark .ef-file:hover .ef-file-btn { background: #374151; border-color: #6b7280; }
.dark .ef-file-name { color: #9ca3af; }
.dark .ef-file.has-file .ef-file-name { color: #86efac; }

/* Dark mode: pictogramele negre (linii pe fond transparent) se inversează ca să rămână vizibile pe fundalul închis */
.dark img[src*="dist/img/apia-certificates.png"],
.dark img[src*="dist/img/area.png"],
.dark img[src*="dist/img/block-user.png"],
.dark img[src*="dist/img/calendar-check.png"],
.dark img[src*="dist/img/certificate.png"],
.dark img[src*="dist/img/certification-body.png"],
.dark img[src*="dist/img/clipboard.png"],
.dark img[src*="dist/img/compliance.png"],
.dark img[src*="dist/img/crop-plan.png"],
.dark img[src*="dist/img/crops.png"],
.dark img[src*="dist/img/declarations.png"],
.dark img[src*="dist/img/equipment.png"],
.dark img[src*="dist/img/excel.png"],
.dark img[src*="dist/img/export-save.png"],
.dark img[src*="dist/img/farm-administration.png"],
.dark img[src*="dist/img/farm-year.png"],
.dark img[src*="dist/img/feedback-pencil.png"],
.dark img[src*="dist/img/field.png"],
.dark img[src*="dist/img/fuel.png"],
.dark img[src*="dist/img/guide.png"],
.dark img[src*="dist/img/import.png"],
.dark img[src*="dist/img/in-stock.png"],
.dark img[src*="dist/img/integrations.png"],
.dark img[src*="dist/img/invite.png"],
.dark img[src*="dist/img/lease-contract.png"],
.dark img[src*="dist/img/log.png"],
.dark img[src*="dist/img/map.png"],
.dark img[src*="dist/img/notes.png"],
.dark img[src*="dist/img/on-demand.png"],
.dark img[src*="dist/img/open-folder.png"],
.dark img[src*="dist/img/order.png"],
.dark img[src*="dist/img/production.png"],
.dark img[src*="dist/img/receipt.png"],
.dark img[src*="dist/img/save-money.png"],
.dark img[src*="dist/img/settings.png"],
.dark img[src*="dist/img/staffing.png"],
.dark img[src*="dist/img/subscription.png"],
.dark img[src*="dist/img/supplier.png"],
.dark img[src*="dist/img/tasks-todo.png"],
.dark img[src*="dist/img/transactions.png"],
.dark img[src*="dist/img/verified.png"],
.dark img[src*="dist/img/visit.png"],
.dark img[src*="dist/img/warehouse.png"],
.dark img[src*="dist/img/weather.png"],
.dark img[src*="dist/img/windy.png"],
.dark img[src*="dist/img/word.png"],
.dark img[src*="dist/img/equipment/combine.png"],
.dark img[src*="dist/img/equipment/drone.png"],
.dark img[src*="dist/img/equipment/generator.png"],
.dark img[src*="dist/img/equipment/implement.png"],
.dark img[src*="dist/img/equipment/other.png"],
.dark img[src*="dist/img/equipment/sprayer.png"],
.dark img[src*="dist/img/equipment/tractor.png"],
.dark img[src*="dist/img/equipment/trailer.png"],
.dark img[src*="dist/img/equipment/vehicle.png"] { filter: invert(1); }

/* Dark mode: clasa dark:invert nu e în main.css (build-ul Tailwind e vechi), deci o definim aici */
.dark .dark\:invert { filter: invert(1); }

/* Dark mode, plasă de siguranță: culorile „de zi” (gri deschis, alb, fundaluri colorate pale) rămase fără o variantă dark: în șabloane.
   :where() ține specificitatea jos, așa că o clasă dark:… pusă explicit pe element are întotdeauna prioritate. */
.dark :where(.text-gray-900, .text-gray-800, .text-black) { color: #f3f4f6; }
.dark :where(.text-gray-700) { color: #d1d5db; }
.dark :where(.text-gray-600, .text-gray-500) { color: #9ca3af; }
.dark :where(.bg-white) { background-color: #1f2937; }
.dark :where(.bg-gray-50, .bg-gray-100) { background-color: #374151; }
.dark :where(.hover\:bg-gray-50, .hover\:bg-gray-100):hover { background-color: #4b5563; }
.dark :where(.border-gray-200) { border-color: #374151; }
.dark :where(.border-gray-300) { border-color: #4b5563; }
.dark :where(.bg-green-50, .bg-green-100) { background-color: rgba(34, 197, 94, .14); }
.dark :where(.bg-red-50, .bg-red-100) { background-color: rgba(239, 68, 68, .16); }
.dark :where(.bg-yellow-50, .bg-yellow-100, .bg-orange-50) { background-color: rgba(234, 179, 8, .16); }
.dark :where(.bg-blue-50, .bg-blue-100) { background-color: rgba(59, 130, 246, .16); }
.dark :where(.text-green-700, .text-green-800, .text-green-900) { color: #86efac; }
.dark :where(.text-red-700, .text-red-800, .text-red-900) { color: #fca5a5; }
.dark :where(.text-yellow-700, .text-yellow-800, .text-yellow-900, .text-orange-700, .text-orange-800) { color: #fde68a; }
.dark :where(.text-blue-700, .text-blue-800, .text-blue-900) { color: #93c5fd; }
.dark :where(.border-green-200, .border-green-300) { border-color: rgba(34, 197, 94, .4); }
.dark :where(.border-red-200, .border-red-300) { border-color: rgba(239, 68, 68, .4); }
.dark :where(.border-yellow-200, .border-yellow-300, .border-orange-200) { border-color: rgba(234, 179, 8, .4); }
.dark :where(.border-blue-200, .border-blue-300) { border-color: rgba(59, 130, 246, .4); }
.dark :where(input, select, textarea)::placeholder { color: #9ca3af; }
.dark .ef-in { color: #f9fafb; background: #374151; border-color: #4b5563; }
.dark .ef-in:focus { border-color: #22c55e; }
/* Dark mode pentru componentele cu stiluri proprii din șabloane (calendar, hub, ghid, reguli de planificare) */
.dark .cal-grid { border-color: #374151; }
.dark .cal-h { background: #1f2937; border-color: #374151; color: #d1d5db; }
.dark .cal-d { background: #111827; border-color: #374151; }
.dark .cal-d.off { background: #1f2937; color: #6b7280; }
.dark .hub-tile { background: #1f2937; border-color: #374151; }
.dark .hub-tile b { color: #f3f4f6; }
.dark .hub-tile span { color: #9ca3af; }
.dark .hub-tile.main { background: rgba(34, 197, 94, .12); border-color: #166534; }
.dark .gd p, .dark .gd li, .dark .rule p, .dark .rule li { color: #d1d5db; }
.dark .gd h2 { border-top-color: #374151; }
.dark .gd th, .dark .gd td { border-color: #374151; }
.dark .gd .tip { background: rgba(34, 197, 94, .12); border-color: rgba(34, 197, 94, .4); }
.dark .gd .warn { background: rgba(234, 179, 8, .14); border-color: rgba(234, 179, 8, .4); }
.dark .gd-toc a { color: #93c5fd; }

/* Dark mode: sigla e-farm și siglele colorate închise din meniu (APIA, GlobalG.A.P) stau pe o placă deschisă; pictogramele SVG negre se inversează */
.dark img[src$="home.svg"] { filter: invert(1); }
.dark img[src*="dist/img/e-farm.png"], .dark img[src*="dist/img/apia.png"], .dark .sb-top-ggap { background: #f3f4f6; border-radius: .5rem; padding: 2px; box-sizing: content-box; }

/* Clopoțelul din antet: roșu cu semn de exclamare doar când ai notificări (altfel gri, ca să se vadă diferența); sună scurt la încărcarea paginii */
@keyframes efa-bell-ring { 0%, 100% { transform: rotate(0); } 15% { transform: rotate(14deg); } 30% { transform: rotate(-12deg); } 45% { transform: rotate(8deg); } 60% { transform: rotate(-6deg); } 75% { transform: rotate(3deg); } }
.efa-bell-ring { transform-origin: 50% 8%; animation: efa-bell-ring .9s ease-in-out .4s 2; }
@media (prefers-reduced-motion: reduce) { .efa-bell-ring { animation: none; } }
