:root {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #1f2937;
    background: #f3f4f6;
}
* { box-sizing: border-box; }
body { margin: 0; background: #f3f4f6; }
.topbar {
    background: #fff;
    border-bottom: 1px solid #d1d5db;
    padding: 14px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.topbar nav { display: flex; gap: 14px; flex-wrap: wrap; }
a { color: #1d4ed8; text-decoration: none; }
.container { width: min(1180px, 94%); margin: 28px auto; }
.card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 20px;
    margin: 0 0 20px;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.narrow { max-width: 520px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 16px; margin-bottom:20px; }
.metric strong { display:block; font-size:2rem; }
.metric span { color:#6b7280; }
.form-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap:14px; align-items:end; }
label { display:block; font-weight:600; margin-bottom:12px; }
input, select, textarea {
    width:100%;
    margin-top:6px;
    padding:10px 12px;
    border:1px solid #cbd5e1;
    border-radius:8px;
    background:#fff;
}
button, .button {
    display:inline-block;
    border:0;
    border-radius:8px;
    padding:10px 16px;
    background:#1d4ed8;
    color:white;
    cursor:pointer;
    font-weight:600;
}
.button.secondary { background:#475569; }
.flash { padding:12px 14px; border-radius:8px; margin:0 0 16px; }
.flash.success { background:#dcfce7; }
.flash.error { background:#fee2e2; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:10px; border-bottom:1px solid #e5e7eb; vertical-align:top; }
th { background:#f8fafc; }
.module-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; margin-bottom:18px; }
.module-card {
    display:flex;
    gap:12px;
    align-items:flex-start;
    border:1px solid #dbe3ee;
    border-radius:10px;
    padding:14px;
    font-weight:400;
}
.module-card input { width:auto; margin-top:3px; }
.module-card strong, .module-card small { display:block; }
.module-card small { color:#64748b; margin-top:4px; }
@media (max-width: 700px) {
    .container { width:96%; margin:14px auto; }
    .topbar { padding:12px; }
    table { display:block; overflow-x:auto; }
}
.checkline{display:flex;gap:8px;align-items:center}.checkline input{width:auto;margin:0}.animal-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap}.animal-hero h2{font-size:2rem;margin:.2rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-size:.78rem;font-weight:700;margin:0}.animal-meta{display:grid;gap:8px;min-width:280px}.animal-meta span{display:grid;grid-template-columns:100px 1fr;gap:8px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}dl{display:grid;grid-template-columns:140px 1fr;gap:8px 14px;margin:0}dt{font-weight:700;color:#475569}dd{margin:0}.timeline{border-left:3px solid #dbe3ee;margin-left:8px}.timeline-item{display:grid;grid-template-columns:170px 1fr;gap:16px;padding:0 0 20px 18px;position:relative}.timeline-item::before{content:"";position:absolute;left:-8px;top:5px;width:13px;height:13px;border-radius:50%;background:#1d4ed8;border:3px solid #fff}.timeline-date{color:#64748b;font-size:.9rem}@media(max-width:700px){.timeline-item{grid-template-columns:1fr;gap:4px}dl{grid-template-columns:110px 1fr}}

/* Farm Platform-wide top navigation buttons.
   Every top-menu destination is visibly button-shaped at rest. The existing
   Appearance "Navigation / top menu" colour drives normal, hover and active
   states so one organisation setting stays consistent across every module. */
.topbar .fp-main-nav {
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    align-items:center;
}
.topbar .fp-main-nav .fp-nav-button {
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    visibility:visible !important;
    opacity:1 !important;
    min-height:34px;
    padding:7px 10px;
    border:1px solid color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 32%,var(--fp-border,#d1d5db));
    border-bottom-width:2px;
    border-radius:7px;
    color:var(--fp-link,#1d4ed8) !important;
    background:color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 14%,var(--fp-topbar-bg,#fff));
    font-weight:600;
    line-height:1.15;
    box-shadow:0 1px 2px color-mix(in srgb,var(--fp-shadow-color,#64748b) 16%,transparent);
    transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.topbar .fp-main-nav .fp-nav-button:hover,
.topbar .fp-main-nav .fp-nav-button:focus-visible {
    /* v2.1.113a: keep hover feedback consistent and easy to recognise. */
    background:#dbeafe;
    border-color:#93c5fd;
    color:#1d4ed8 !important;
    box-shadow:0 2px 4px color-mix(in srgb,var(--fp-shadow-color,#64748b) 24%,transparent);
    outline:none;
}
.topbar .fp-main-nav .fp-nav-button.active {
    background:var(--fp-button-nav-bg,#4338ca);
    color:var(--fp-button-nav-text,#fff) !important;
    border-color:var(--fp-button-nav-bg,#4338ca);
    border-bottom-color:color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 72%,#000);
    box-shadow:0 2px 5px color-mix(in srgb,var(--fp-shadow-color,#64748b) 30%,transparent);
}
.topbar .fp-main-nav .fp-nav-logout {
    /* Logout is the same component as every other top-menu button. */
    margin-left:2px;
}
@media(max-width:700px){
    .topbar .fp-main-nav{gap:5px}
    .topbar .fp-main-nav .fp-nav-button{min-height:36px;padding:8px 9px}
}

.weight-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin:20px 0}
.metric{display:flex;flex-direction:column;gap:5px}.metric small{color:#64748b;text-transform:uppercase;font-weight:700}
.metric strong{font-size:1.65rem}.metric span{color:#64748b;font-size:.9rem}.wide-field{grid-column:1/-1}
@media(max-width:700px){.weight-summary{grid-template-columns:1fr}}


/* Modules 2.3–2.5 */
.animal-thumb{width:52px;height:52px;object-fit:cover;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}
.species-icon{font-size:34px;background:#eef2f7}
.animal-profile-photo{width:112px;height:112px;object-fit:cover;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:58px;background:#eef2f7}
.animal-hero-identity{display:flex;gap:18px;align-items:center;min-width:300px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.media-card{border:1px solid #dbe3ee;border-radius:12px;overflow:hidden;background:#fff}
.media-card>img{width:100%;height:190px;object-fit:cover;display:block}
.media-card-body{padding:14px;display:flex;flex-direction:column;gap:7px}
.media-actions{display:flex;gap:8px;flex-wrap:wrap}
.badge{display:inline-block;width:max-content;padding:3px 8px;border-radius:999px;background:#e5edff;font-size:.78rem;font-weight:700}
.yard-stats{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:14px;margin:18px 0}
.scan-row{display:grid;grid-template-columns:1fr auto;gap:10px}
.scan-input{font-size:1.25rem;padding:14px 16px}
.yard-scan-card{position:static;top:auto;z-index:auto}
.yard-animal-card{display:grid;grid-template-columns:140px 1fr;gap:20px;align-items:center}
.yard-animal-photo{width:130px;height:130px;object-fit:cover;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:64px;background:#eef2f7}
.yard-number{font-size:1.35rem;padding:12px}
.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:800px){
 .yard-stats{grid-template-columns:repeat(2,1fr)}
 .yard-animal-card{grid-template-columns:90px 1fr}
 .yard-animal-photo{width:84px;height:84px;font-size:44px}
 .scan-row{grid-template-columns:1fr}
 .animal-hero-identity{align-items:flex-start}
}


/* v1.1 common animal work header, archive/recovery, withholding warnings */
.animal-work-header{padding:18px}
.animal-work-back{margin-top:0}
.animal-work-row{display:grid;grid-template-columns:120px 1fr minmax(220px,auto);gap:18px;align-items:center}
.animal-work-main h2{margin:.15rem 0}
.animal-work-meta{display:grid;gap:8px}
.animal-work-meta span{display:grid;grid-template-columns:90px 1fr;gap:8px}
.animal-work-meta strong{font-weight:700}
.withholding-warning{border:2px solid #b45309;background:#fff7ed;border-radius:12px;padding:14px 18px;margin:16px 0;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.withholding-warning strong{font-size:1rem}
.withholding-warning span{font-weight:700}
.section-heading-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.danger-zone{border:1px solid #fecaca}
.button.danger{background:var(--fp-button-danger-bg,#b91c1c);color:var(--fp-button-danger-text,#fff)}
@media(max-width:800px){
 .animal-work-row{grid-template-columns:88px 1fr}
 .animal-work-meta{grid-column:1 / -1}
 .animal-work-row .animal-profile-photo{width:84px;height:84px}
}


/* Branding framework + Module 3 Breeding & Pedigree */
.topbar-brand>a{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}
.topbar-brand span span,.topbar-brand>a>span{display:flex;flex-direction:column}
.topbar-brand small{color:#64748b;font-size:.72rem;font-weight:500}
.brand-placeholder{width:38px;height:38px;border-radius:9px;background:#e2e8f0;display:inline-flex;align-items:center;justify-content:center}
.topbar-logo{width:38px;height:38px;object-fit:contain}
.animal-photo-link{display:inline-block}
.animal-name-link{font-weight:600}
.pedigree-tree{display:flex;flex-direction:column;gap:12px;overflow:auto;padding:8px}
.pedigree-branch{display:flex;gap:16px;align-items:flex-start}
.pedigree-node{min-width:155px;border:1px solid #cbd5e1;border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:3px}
.pedigree-node small{color:#64748b;text-transform:uppercase;font-size:.7rem;font-weight:700}
.pedigree-node span{color:#64748b;font-size:.82rem}
.pedigree-node.unknown{background:#f8fafc;color:#64748b}
.pedigree-node.warning{background:#fff7ed;border-color:#fb923c}
.pedigree-parents{display:grid;grid-template-columns:1fr;gap:10px;border-left:2px solid #e2e8f0;padding-left:16px}
.pedigree-full .pedigree-tree{min-width:850px}
.offspring-list{columns:2;gap:24px}
@media(max-width:800px){
 .topbar-brand small{display:none}
 .pedigree-branch{gap:8px}
 .pedigree-node{min-width:130px}
 .offspring-list{columns:1}
}

/* Module 3 v1.1 */
a.pedigree-node{color:inherit;text-decoration:none}
a.pedigree-node:hover{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.08)}


/* Core usability v1.2 */
.field-help-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;margin:0 6px 4px 6px;padding:0;
  border:0;border-radius:50%;background:#2563eb;color:#fff;
  font-size:12px;font-weight:800;line-height:1;cursor:help;vertical-align:middle;
}
.field-help-icon:hover,.field-help-icon:focus{background:#1d4ed8;outline:2px solid rgba(37,99,235,.2)}
.field-help-popover{
  position:absolute;z-index:10000;width:min(360px,calc(100vw - 20px));
  background:#fff;border:1px solid #93c5fd;border-radius:10px;
  box-shadow:0 10px 30px rgba(15,23,42,.18);padding:12px 14px;color:#0f172a;
}
.field-help-popover strong{display:block;margin-bottom:5px}
.field-help-popover p{margin:0 0 7px;line-height:1.4}
.field-help-popover small{color:#64748b}
.password-field-wrap{position:relative;display:block;width:100%}
.password-field-wrap input{padding-right:46px;width:100%}
.password-visibility{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:34px;height:30px;padding:0;border:0;background:transparent;color:#475569;
  cursor:pointer;font-size:18px;
}
.password-visibility:hover{background:#f1f5f9}
.danger-card{border-color:#fecaca}
.help-search{display:flex;gap:10px;align-items:end}
.help-search label{flex:1}
@media(max-width:700px){
  .field-help-popover{font-size:.95rem}
  .field-help-icon{width:22px;height:22px;font-size:13px}
  .help-search{display:block}
  .help-search button{margin-top:8px}
}


/* Organisation Appearance / Display Preferences v1.6 */
:root{
  --fp-page-bg:#f3f4f6;
  --fp-panel-bg:#ffffff;
  --fp-topbar-bg:#ffffff;
  --fp-text:#1f2937;
  --fp-muted:#64748b;
  --fp-heading:#172033;
  --fp-link:#1d4ed8;
  --fp-button-bg:#1d4ed8;
  --fp-button-save-bg:#15803d;
  --fp-button-add-bg:#0f766e;
  --fp-button-edit-bg:#a16207;
  --fp-button-nav-bg:#4338ca;
  --fp-button-warning-bg:#c2410c;
  --fp-button-danger-bg:#b91c1c;
  --fp-button-neutral-bg:#475569;
  --fp-button-text:#ffffff;
  --fp-button-primary-text:#ffffff;
  --fp-button-save-text:#ffffff;
  --fp-button-add-text:#ffffff;
  --fp-button-edit-text:#ffffff;
  --fp-button-nav-text:#ffffff;
  --fp-button-warning-text:#ffffff;
  --fp-button-danger-text:#ffffff;
  --fp-button-neutral-text:#ffffff;
  --fp-border:#d1d5db;
  --fp-table-head-bg:#f8fafc;
  --fp-input-bg:#ffffff;
  --fp-input-text:#1f2937;
  --fp-success-bg:#dcfce7;
  --fp-warning-bg:#fff7ed;
  --fp-danger-bg:#fee2e2;
}
html,body{background:var(--fp-page-bg);color:var(--fp-text)}
body{background:var(--fp-page-bg)}
h1,h2,h3,h4,h5,h6,strong,dt{color:var(--fp-heading)}
p,td,dd,label{color:var(--fp-text)}
.metric span,.module-card small,.eyebrow,.timeline-date,.topbar-brand small,.theme-help,.muted-preview{color:var(--fp-muted)}
.topbar{background:var(--fp-topbar-bg);border-color:var(--fp-border)}
.topbar nav a,.topbar-brand>a,a{color:var(--fp-link)}
.card,.media-card,.pedigree-node{background:var(--fp-panel-bg);border-color:var(--fp-border);color:var(--fp-text)}
input,select,textarea{background:var(--fp-input-bg);color:var(--fp-input-text);border-color:var(--fp-border)}
button,.button{background:var(--fp-button-bg);color:var(--fp-button-primary-text,var(--fp-button-text))}
.button.secondary{background:var(--fp-button-neutral-bg);color:var(--fp-button-neutral-text,var(--fp-button-text))}
th{background:var(--fp-table-head-bg);color:var(--fp-heading)}
th,td{border-color:var(--fp-border)}
.flash.success{background:var(--fp-success-bg);color:var(--fp-text)}
.flash.error,.danger-card{background:var(--fp-danger-bg);color:var(--fp-text)}
.withholding-warning{background:var(--fp-warning-bg);color:var(--fp-text);border-color:var(--fp-border)}
.timeline{border-color:var(--fp-border)}
.timeline-item::before{background:var(--fp-link);border-color:var(--fp-panel-bg)}
.species-icon,.animal-profile-photo,.yard-animal-photo,.brand-placeholder{background:color-mix(in srgb,var(--fp-panel-bg) 75%,var(--fp-page-bg))}
.field-help-popover{background:var(--fp-panel-bg);color:var(--fp-text);border-color:var(--fp-link)}
.field-help-popover p,.field-help-popover strong{color:var(--fp-text)}
.field-help-popover small{color:var(--fp-muted)}
.password-visibility{color:var(--fp-text)}

.appearance-intro p:last-child{max-width:900px}
.preset-buttons{display:flex;gap:10px;flex-wrap:wrap}
.theme-editor{display:grid;gap:8px;margin-top:18px}
.theme-row{
  display:grid;
  grid-template-columns:minmax(190px,1.2fr) 54px minmax(160px,2fr) 100px 30px;
  gap:12px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--fp-border)
}
.theme-row>label{margin:0}
.theme-color-picker{width:50px;height:38px;padding:3px;margin:0;cursor:pointer}
.theme-hue-slider{margin:0;padding:0}
.theme-hex{margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;padding:8px}
.theme-swatch{display:block;width:28px;height:28px;border-radius:6px;border:1px solid var(--fp-border)}
.appearance-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.contrast-summary{padding:8px 12px;border-radius:8px;border:1px solid var(--fp-border);font-weight:700}
.contrast-summary.good{background:var(--fp-success-bg)}
.contrast-summary.warn{background:var(--fp-warning-bg)}
.theme-preview{background:var(--fp-page-bg);border:1px solid var(--fp-border);border-radius:12px;padding:18px}
.preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.preview-panel{background:var(--fp-panel-bg);border:1px solid var(--fp-border);border-radius:10px;padding:16px}
@media(max-width:760px){
  .theme-row{grid-template-columns:1fr 52px 1fr}
  .theme-row>label{grid-column:1/-1}
  .theme-hex{grid-column:2/4}
  .theme-swatch{display:none}
}


/* Organisation Appearance v1.6.1
   Replace the browser's plain blue hue slider with a real rainbow hue bar. */
.theme-hue-slider{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:14px;
  border-radius:999px;
  padding:0;
  margin:0;
  border:1px solid var(--fp-border);
  background:
    linear-gradient(
      to right,
      #ff0000 0%,
      #ffff00 16.67%,
      #00ff00 33.33%,
      #00ffff 50%,
      #0000ff 66.67%,
      #ff00ff 83.33%,
      #ff0000 100%
    );
  cursor:pointer;
}

.theme-hue-slider::-webkit-slider-runnable-track{
  height:14px;
  border-radius:999px;
  background:
    linear-gradient(
      to right,
      #ff0000 0%,
      #ffff00 16.67%,
      #00ff00 33.33%,
      #00ffff 50%,
      #0000ff 66.67%,
      #ff00ff 83.33%,
      #ff0000 100%
    );
  border:none;
}

.theme-hue-slider::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:22px;
  height:22px;
  border-radius:50%;
  border:2px solid #ffffff;
  box-shadow:0 0 0 1px rgba(0,0,0,.45),0 1px 4px rgba(0,0,0,.35);
  background:#ffffff;
  margin-top:-4px;
}

.theme-hue-slider::-moz-range-track{
  height:14px;
  border-radius:999px;
  background:
    linear-gradient(
      to right,
      #ff0000 0%,
      #ffff00 16.67%,
      #00ff00 33.33%,
      #00ffff 50%,
      #0000ff 66.67%,
      #ff00ff 83.33%,
      #ff0000 100%
    );
  border:1px solid var(--fp-border);
}

.theme-hue-slider::-moz-range-progress{
  background:transparent;
}

.theme-hue-slider::-moz-range-thumb{
  width:22px;
  height:22px;
  border-radius:50%;
  border:2px solid #ffffff;
  box-shadow:0 0 0 1px rgba(0,0,0,.45),0 1px 4px rgba(0,0,0,.35);
  background:#ffffff;
  cursor:pointer;
}


/* Organisation Appearance v1.6.2
   Hue bars now act as direct colour selectors, including for white/black/grey
   starting colours. */
.theme-hue-slider:focus{
  outline:2px solid color-mix(in srgb,var(--fp-link) 70%,transparent);
  outline-offset:3px;
}


/* Module 4 — Locations / Paddocks / Mobs */
.location-badge,.mob-badge{
  display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;
  border:1px solid var(--fp-border);background:var(--fp-panel-bg);font-size:.85rem
}


/* Module 4 v2.1 — Bulk movement */
.module-action-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.table-scroll{overflow:auto}
.bulk-animal-table{min-width:900px}
.bulk-animal-table td:first-child,.bulk-animal-table th:first-child{width:48px;text-align:center}
.bulk-animal-check{width:18px;height:18px}
.bulk-confirm{padding-top:8px}


/* Core v1.7 */
.field-help-popover .help-number{font-weight:800;margin-bottom:5px;color:var(--fp-link)}
.recaptcha-wrap{margin:14px 0;overflow:auto}
.user-org-badge{display:inline-block;padding:3px 8px;border:1px solid var(--fp-border);border-radius:999px;background:var(--fp-panel-bg)}


/* Animal Documents & Certificates v1.8 */
.document-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.inline-form{display:inline-block;margin:0}
.table-scroll{overflow:auto}


/* Ownership transfer v1.9 */
.transfer-warning{padding:14px 16px;margin:14px 0 20px;border:1px solid var(--border-color,#d1d5db);border-radius:10px;background:var(--warning-bg,#fff7ed)}
.transfer-summary dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px}.transfer-summary dt{font-weight:700}.transfer-summary dd{margin:0}
.fp-modal-backdrop[hidden]{display:none!important}.fp-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:24px;z-index:9999}.fp-modal{width:min(600px,100%);background:var(--panel-bg,#fff);color:var(--text-color,#1f2937);border:1px solid var(--border-color,#d1d5db);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.28);padding:24px}.fp-modal h2{margin-top:0;color:var(--heading-color,#172033)}.fp-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.fp-modal-open{overflow:hidden}


/* Farm Platform v2.0 — Paddock Occupancy & Movement History */
.occupancy-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:16px 0}
.occupancy-stat{display:flex;flex-direction:column;gap:3px}
.occupancy-stat strong{font-size:2rem;line-height:1}
.occupancy-stat span{color:var(--muted)}
.paddock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.paddock-card{border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--panel-bg)}
.paddock-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px}
.paddock-card-head h3{margin:0 0 4px}
.paddock-count{font-size:1.8rem;font-weight:700;text-align:right;line-height:1}
.paddock-count small{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:4px}
.paddock-meta{display:flex;gap:20px;flex-wrap:wrap;margin:8px 0}
.paddock-mobs{margin:8px 0 12px}
.compact-table th,.compact-table td{padding:8px}
@media(max-width:900px){
  .occupancy-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .paddock-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .occupancy-summary{grid-template-columns:1fr}
}


/* Farm Platform v2.1 — Breeding, Pregnancy & Birth Records */
.breeding-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:16px 0}
.breeding-stat{display:flex;flex-direction:column;gap:4px}
.breeding-stat strong{font-size:2rem;line-height:1}
.breeding-stat span{color:var(--fp-muted)}
.offspring-entry-list{display:grid;gap:14px;margin:14px 0}
.offspring-entry{border:1px solid var(--fp-border);border-radius:10px;padding:14px}
.offspring-entry legend{font-weight:700;padding:0 6px}
.offspring-create-toggle{margin-top:14px;font-weight:700}
@media(max-width:900px){.breeding-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.breeding-summary{grid-template-columns:1fr}}


/* Farm Platform v2.1.1 — dynamic offspring rows */
.offspring-entry legend{display:flex;align-items:center;gap:10px}
.offspring-entry legend .offspring-remove{padding:4px 8px;font-size:.8rem}
.offspring-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 16px}
#breeding-offspring-area[hidden]{display:none}


/* Farm Platform v2.1.2 — Elevated Interface
   Shadow colour is controlled by Platform Appearance and may be overridden
   by an organisation's own Appearance settings. */
:root{
  --fp-shadow-color:#64748b;
}

/* Main panels sit slightly above the page background. */
.card,
.paddock-card,
.preview-panel,
.theme-preview,
.offspring-entry{
  box-shadow:
    0 2px 5px -2px var(--fp-shadow-color),
    0 10px 24px -14px var(--fp-shadow-color);
  transition:box-shadow .18s ease,transform .18s ease;
}

/* Tables have their own smaller raised edge inside a panel. */
.table-scroll table,
.card > table{
  box-shadow:0 3px 10px -7px var(--fp-shadow-color);
  border-radius:8px;
}

/* A very small lift on pointer hover gives depth without making the UI jump. */
@media (hover:hover){
  .card:hover,
  .paddock-card:hover{
    transform:translateY(-1px);
    box-shadow:
      0 4px 9px -4px var(--fp-shadow-color),
      0 14px 30px -16px var(--fp-shadow-color);
  }
}

/* Respect users who request reduced motion. */
@media (prefers-reduced-motion:reduce){
  .card,.paddock-card,.preview-panel,.theme-preview,.offspring-entry{
    transition:none;
  }
  .card:hover,.paddock-card:hover{transform:none}
}


/* Farm Platform v2.1.3 — Breeding Calendar & Due Alerts */
.breeding-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.alert-overdue td{background:var(--fp-danger-bg)}
.alert-soon td{background:var(--fp-warning-bg)}
.breeding-stat.danger{border-color:var(--fp-danger-bg)}
.breeding-stat.warning{border-color:var(--fp-warning-bg)}


/* Farm Platform v2.1.4 — Breeding Performance & Fertility Summary */
.breeding-performance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}
.breeding-performance-stat{display:flex;flex-direction:column;gap:7px}
.breeding-performance-stat .stat-label{font-weight:700}
.breeding-performance-stat strong{font-size:2rem;line-height:1.05}
.breeding-performance-stat small{color:var(--fp-muted)}
@media(max-width:900px){.breeding-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.breeding-performance-grid{grid-template-columns:1fr}}


/* Farm Platform v2.1.4a — Breeding Performance summary-card cosmetic correction
   More specific selectors ensure the shared .card rules do not override
   the intended compact statistics grid. */
.breeding-performance-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:16px !important;
    margin:16px 0 !important;
}
.breeding-performance-grid > .breeding-performance-stat{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:6px !important;
    min-width:0 !important;
    margin:0 !important;
    padding:18px !important;
}
.breeding-performance-grid > .breeding-performance-stat .stat-label{
    display:block !important;
    width:100% !important;
    font-weight:700 !important;
    line-height:1.3 !important;
}
.breeding-performance-grid > .breeding-performance-stat strong{
    display:block !important;
    width:100% !important;
    font-size:2rem !important;
    line-height:1.1 !important;
    margin:2px 0 !important;
}
.breeding-performance-grid > .breeding-performance-stat small{
    display:block !important;
    width:100% !important;
    line-height:1.35 !important;
}
@media(max-width:900px){
    .breeding-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media(max-width:560px){
    .breeding-performance-grid{grid-template-columns:1fr !important}
}


/* Farm Platform v2.1.4b — spacing between Breeding action buttons */
.breeding-tools{
    display:flex !important;
    align-items:center !important;
    flex-wrap:wrap !important;
    gap:12px !important;
}
.breeding-tools .button{
    margin:0 !important;
}


/* Farm Platform v2.1.5 — Animal Photos & Media */
.media-image-link{display:block;overflow:hidden;border-radius:10px 10px 0 0;background:var(--fp-page-bg)}
.media-image-link img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .18s ease}
@media(hover:hover){.media-image-link:hover img{transform:scale(1.02)}}
.media-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.media-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.media-actions form,.media-danger-row form{margin:0}
.media-edit{margin-top:12px;border-top:1px solid var(--fp-border);padding-top:10px}
.media-edit summary{cursor:pointer;font-weight:700}
.media-edit[open] summary{margin-bottom:10px}
.compact-form{margin-top:8px}
.media-danger-row{display:flex;justify-content:flex-end;margin-top:10px}
@media(max-width:560px){
  .media-actions .button,.media-actions form,.media-actions form button{width:100%}
}

/* Retain v2.1.4a Breeding Performance summary card layout. */
.breeding-performance-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:16px !important;
    margin:16px 0 !important;
}
.breeding-performance-grid > .breeding-performance-stat{
    display:flex !important;flex-direction:column !important;align-items:flex-start !important;
    justify-content:flex-start !important;gap:6px !important;min-width:0 !important;margin:0 !important;padding:18px !important;
}
.breeding-performance-grid > .breeding-performance-stat .stat-label{display:block !important;width:100% !important;font-weight:700 !important;line-height:1.3 !important}
.breeding-performance-grid > .breeding-performance-stat strong{display:block !important;width:100% !important;font-size:2rem !important;line-height:1.1 !important;margin:2px 0 !important}
.breeding-performance-grid > .breeding-performance-stat small{display:block !important;width:100% !important;line-height:1.35 !important}
@media(max-width:900px){.breeding-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:560px){.breeding-performance-grid{grid-template-columns:1fr !important}}

/* Retain v2.1.4b button spacing. */
.breeding-tools{display:flex !important;align-items:center !important;flex-wrap:wrap !important;gap:12px !important}
.breeding-tools .button{margin:0 !important}
\n\n/* Farm Platform v2.1.6 — Health Register & Withholding Dashboard */\n.health-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:16px 0}\n.health-stat{display:flex;flex-direction:column;gap:6px}\n.health-stat span{font-weight:700}\n.health-stat strong{font-size:2rem;line-height:1.05}\n.health-stat small{color:var(--fp-muted)}\n.health-stat.warning{border-color:var(--fp-warning-bg)}\n.health-toolbar{display:flex;align-items:center;gap:12px}\n@media(max-width:900px){.health-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media(max-width:560px){.health-summary-grid{grid-template-columns:1fr}}\n

/* Farm Platform v2.1.7 — Faster Yard Processing & Identifier Scanning */
.yard-scan-heading,.yard-recent-heading{
    display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap
}
.yard-scan-heading h2,.yard-recent-heading h2{margin-bottom:4px}
.yard-scan-heading p,.yard-recent-heading p{margin:0}
.yard-match-panel{border-left:4px solid var(--fp-button-bg)}
.yard-match-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.yard-match-choice{
    display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--fp-border);
    border-radius:10px;text-decoration:none;background:var(--fp-panel-bg)
}
.yard-match-choice:hover{box-shadow:0 4px 14px color-mix(in srgb,var(--fp-shadow-color) 45%,transparent)}
.yard-match-confirm{
    display:inline-block;padding:7px 10px;border-radius:8px;
    background:var(--fp-success-bg);font-weight:600
}
.yard-repeat-warning{
    display:inline-block;padding:7px 10px;border-radius:8px;
    background:var(--fp-warning-bg);font-weight:600
}
@media(max-width:700px){
    .yard-match-list{grid-template-columns:1fr}
}


/* Farm Platform v2.1.8 — Batch EID/RFID Import */
.yard-scan-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.yard-batch-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.yard-batch-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:16px 0}
.yard-batch-stat{display:flex!important;flex-direction:column!important;gap:5px!important;padding:16px!important;margin:0!important}
.yard-batch-stat span{font-weight:700}
.yard-batch-stat strong{font-size:1.8rem;line-height:1.1}
.yard-batch-stat small{color:var(--fp-muted)}
.yard-batch-confirm{margin-top:18px;display:flex;justify-content:flex-end}
.badge.warning{background:var(--fp-warning-bg)}
.badge.muted{opacity:.75}
@media(max-width:1000px){.yard-batch-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){
  .yard-batch-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .yard-scan-actions{width:100%}
  .yard-scan-actions .button{flex:1;text-align:center}
}
@media(max-width:430px){.yard-batch-summary{grid-template-columns:1fr}}


/* Farm Platform v2.1.9 — Group Health Treatments */
.group-health-toolbar{
    display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap
}
.group-health-toolbar h2{margin-bottom:4px}
.group-health-toolbar p{margin:0}
.group-health-buttons{display:flex;gap:10px;flex-wrap:wrap}
.group-health-animal-check{width:18px;height:18px}
.group-health-review-row{
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px
}
.group-health-review-row span{font-weight:700}
@media(max-width:650px){
    .group-health-buttons{width:100%}
    .group-health-buttons .button{flex:1}
    .group-health-review-row button{width:100%}
}


/* Farm Platform v2.1.9b — Health summary card layout correction */
.health-summary-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:16px !important;
    margin:16px 0 !important;
}
.health-summary-grid > .health-stat{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:6px !important;
    min-width:0 !important;
    margin:0 !important;
    padding:18px !important;
}
.health-summary-grid > .health-stat span{
    display:block !important;
    width:100% !important;
    font-weight:700 !important;
    line-height:1.3 !important;
}
.health-summary-grid > .health-stat strong{
    display:block !important;
    width:100% !important;
    font-size:2rem !important;
    line-height:1.1 !important;
    margin:2px 0 !important;
}
.health-summary-grid > .health-stat small{
    display:block !important;
    width:100% !important;
    line-height:1.35 !important;
    color:var(--fp-muted) !important;
}
.health-summary-grid > .health-stat.warning{
    border-color:var(--fp-warning-bg) !important;
}
@media(max-width:900px){
    .health-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}
@media(max-width:560px){
    .health-summary-grid{
        grid-template-columns:1fr !important;
    }
}


/* Farm Platform v2.1.10 — Mobile Field Observations */
.field-observation-shell{max-width:1120px;margin:0 auto}
.field-search-row{display:flex;gap:14px;align-items:end;flex-wrap:wrap}
.field-search-row label{min-width:230px}
.field-search-grow{flex:1}
.field-recent-grid,.field-animal-grid{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px
}
.field-recent-animal,.field-animal-card{
    display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;
    border:1px solid var(--fp-border);border-radius:12px;padding:12px;background:var(--fp-panel);
    min-height:76px
}
.field-recent-animal{flex-direction:column;align-items:flex-start;gap:3px}
.field-recent-animal:hover,.field-animal-card:hover{transform:translateY(-1px)}
.field-animal-card img{width:64px;height:64px;object-fit:cover;border-radius:10px;flex:0 0 64px}
.field-animal-card div{display:flex;flex-direction:column;gap:2px;min-width:0}
.field-animal-card strong{font-size:1.05rem}
.field-selected-animal{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.field-animal-summary{display:flex;gap:16px;align-items:center}
.field-animal-summary img{width:96px;height:96px;object-fit:cover;border-radius:14px}
.field-animal-summary h2,.field-animal-summary p{margin:2px 0}
.field-animal-actions{display:flex;gap:10px;flex-wrap:wrap}
.field-type-grid{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px
}
.field-type-button input{position:absolute;opacity:0;pointer-events:none}
.field-type-button span{
    display:flex;align-items:center;justify-content:center;text-align:center;
    min-height:64px;border:2px solid var(--fp-border);border-radius:12px;
    padding:12px;font-weight:700;cursor:pointer;background:var(--fp-panel)
}
.field-type-button input:checked + span{
    border-color:var(--fp-button-bg);box-shadow:0 0 0 2px var(--fp-button-bg);
}
.field-checkbox-label{display:flex!important;align-items:center!important;gap:9px!important;padding-top:27px}
.field-checkbox-label input{width:18px;height:18px}
.field-save-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
@media(max-width:900px){
    .field-recent-grid,.field-animal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .field-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
    .field-observation-shell{padding:0 2px}
    .field-search-row{display:block}
    .field-search-row label,.field-search-row button{width:100%;margin-bottom:10px}
    .field-recent-grid,.field-animal-grid{grid-template-columns:1fr}
    .field-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .field-type-button span{min-height:72px;font-size:1rem}
    .field-selected-animal{align-items:stretch}
    .field-animal-actions{width:100%}
    .field-animal-actions .button{flex:1}
    .field-save-actions button{width:100%;min-height:52px}
}


/* Farm Platform v2.1.11 — Feed Module */
.feed-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
.feed-row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.feed-row-actions form{margin:0}
@media(max-width:900px){.feed-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.feed-metric-grid{grid-template-columns:1fr}}

/* Farm Platform v2.1.12 — Multi-Animal Sales & Purchase Transactions */
.sale-animal-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.sale-total-strip{display:grid;grid-template-columns:auto minmax(120px,1fr) auto minmax(120px,1fr);gap:10px 18px;align-items:center;margin-top:18px;padding:14px 16px;border:1px solid var(--fp-border);border-radius:12px}
.sale-total-strip span{font-weight:700}.sale-total-strip strong{font-size:1.25rem}
.sale-review-row{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-top:16px}.sale-review-row span{font-weight:700}
.transaction-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}.transaction-summary-grid>div{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--fp-border);border-radius:10px}.transaction-summary-grid span{font-weight:700}.transaction-summary-grid strong{font-size:1.25rem}
@media(max-width:900px){.transaction-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sale-total-strip{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.transaction-summary-grid{grid-template-columns:1fr}.sale-total-strip{grid-template-columns:1fr}.sale-review-row button{width:100%}}


/* Farm Platform v2.1.13 — Finance */
.finance-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
@media(max-width:900px){.finance-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.finance-metric-grid{grid-template-columns:1fr}}


/* Farm Platform v2.1.15 — Notifications & Email */
.notification-list{display:grid;gap:12px}
.notification-item{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border:1px solid var(--fp-border,#d9dee7);border-radius:12px;padding:14px;background:var(--fp-card,#fff)}
.notification-item.unread{box-shadow:0 0 0 2px rgba(37,99,235,.12);border-left:5px solid #2563eb}
.notification-item small{display:block;margin-top:4px;opacity:.7}
.notification-item p{margin:.55rem 0 0}
.transport-schedule-editor{margin:16px 0;background:rgba(37,99,235,.035)}
#fp-notification-popup{display:flex}
#fp-notification-popup[hidden]{display:none}

/* v2.1.17w role & permission editor */
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin:18px 0}.permission-group{border:1px solid var(--border,#d1d5db);border-radius:10px;padding:14px}.permission-group h3{margin:0 0 10px}.permission-check{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid rgba(100,116,139,.16)}.permission-check:last-child{border-bottom:0}.permission-check input{margin-top:4px}.permission-check span{display:flex;flex-direction:column}.permission-check small,.employee-role-row small{display:block;color:var(--muted-text,#64748b);margin-top:2px}.employee-role-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,3fr) auto;gap:18px;align-items:start;padding:14px 0;border-top:1px solid var(--border,#d1d5db)}.role-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px 18px;min-width:0}.role-checks label{display:flex;align-items:flex-start;gap:7px;margin:0;white-space:normal;min-width:0;overflow-wrap:normal;word-break:normal;line-height:1.3}.role-checks .field-help-icon{display:none!important}.role-checks input[type="checkbox"]{width:18px!important;height:18px!important;min-width:18px!important;flex:0 0 18px!important;margin:1px 0 0!important;padding:0!important}.employee-role-row>div:last-child{justify-self:end;white-space:nowrap}@media(max-width:900px){.employee-role-row{grid-template-columns:1fr}.employee-role-row>div:last-child{justify-self:start}.role-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-grid{grid-template-columns:1fr}}

/* v2.1.18 consolidated audit polish */
.fp-user-identity{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;padding:6px 10px;line-height:1.2;white-space:nowrap}.fp-user-identity strong{color:var(--fp-text,#1f2937);font-size:.95rem}.fp-user-identity small{color:var(--fp-muted,#64748b);opacity:1;font-size:.76rem}.fp-text-link{font-weight:700;color:var(--link-color,#0b5ed7);text-decoration:none}.fp-text-link:hover{text-decoration:underline}@media(max-width:900px){.fp-user-identity{width:100%;align-items:flex-start;padding:4px 0}}

/* v2.1.24 farm-side individual transport progress */
.transport-progress-panel{margin:18px 0;padding:16px;border:1px solid #dbe3ef;border-radius:10px;background:#f8fafc}
.transport-progress-panel h3{margin-top:0}
.transport-progress-steps{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 14px}
.transport-progress-steps span{padding:6px 10px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#64748b;font-size:.9rem}
.transport-progress-steps span.done{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:700}
.farm-transport-progress-form{margin:8px 0}

/* v2.1.26a cattle yard registration sign */
.farm-yard-sign{display:inline-flex;flex-direction:column;gap:.2rem;margin-top:.6rem;padding:.65rem .9rem;border:2px solid currentColor;border-radius:.35rem;background:#fff;letter-spacing:.04em}.farm-yard-sign span{font-size:.72rem;font-weight:700}.farm-yard-sign strong{font-size:1.15rem;letter-spacing:.06em}

/* v2.1.30 - Cattle Yard to numbered paddock workflow */
.yard-next-move{
    margin:16px 0;
    padding:16px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    background:#f8fafc;
}
.yard-next-move h4{margin-top:0}
.location-advanced{margin-top:12px}
.location-advanced > summary{
    cursor:pointer;
    font-weight:600;
    margin-bottom:12px;
}

/* Farm Platform v2.1.32 — Farm Map */
.farm-map-layout{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(260px,1fr);gap:18px;align-items:start}.farm-map-canvas{min-height:580px;border:1px solid #cbd5e1;border-radius:12px;background:#e5e7eb;overflow:hidden}.farm-map-canvas[data-disabled="1"]{display:grid;place-items:center}.farm-map-canvas[data-disabled="1"]:before{content:"Satellite map disabled until a Google Maps API key is configured.";max-width:420px;text-align:center;padding:24px;color:#475569;font-weight:700}.farm-map-sidebar{border:1px solid #dbe3ef;border-radius:12px;padding:16px;background:#f8fafc}.farm-map-sidebar h3{margin-top:0}.farm-map-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}.farm-map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:18px 0}.farm-map-location-card{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid #d1d5db;border-radius:10px;background:#fff;color:inherit;text-decoration:none}.farm-map-location-card:hover,.farm-map-location-card.selected{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.10)}.farm-map-location-card small,.farm-map-location-card span{color:#64748b}.farm-map-edit-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}@media(max-width:900px){.farm-map-layout{grid-template-columns:1fr}.farm-map-canvas{min-height:480px}}@media(max-width:560px){.farm-map-canvas{min-height:380px}.farm-map-edit-actions .button,.farm-map-edit-actions button{width:100%}}

/* Farm Platform v2.1.77 — employee leave requests */
.badge.success{background:var(--fp-success-bg)}
.badge.error{background:var(--fp-danger-bg)}

/* Farm Platform v2.1.83 — visual roster calendar */
.roster-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.roster-view-toggle{display:flex;gap:8px;align-items:center}
.roster-view-toggle .button.active{box-shadow:inset 0 0 0 2px currentColor;font-weight:800}
.roster-calendar-legend{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:12px 0 14px}
.roster-legend-item{display:inline-flex;align-items:center;gap:6px;border:1px solid #cbd5e1;border-radius:999px;padding:5px 9px;font-size:.84rem;font-weight:700}
.roster-legend-item:before{content:"";width:12px;height:12px;border-radius:3px;border:1px solid rgba(15,23,42,.18)}
.roster-legend-work:before{background:#dbeafe}.roster-legend-off:before{background:#f1f5f9}.roster-legend-approved:before{background:#dcfce7}.roster-legend-pending:before{background:#fef3c7}.roster-legend-warning:before{background:#fee2e2}
.roster-calendar-scroll{overflow-x:auto;padding-bottom:4px}
.roster-calendar{display:grid;grid-template-columns:repeat(7,minmax(138px,1fr));gap:8px;min-width:980px}
.roster-calendar-weekday{text-align:center;font-size:.82rem;font-weight:800;color:#475569;padding:5px}
.roster-calendar-day{min-height:150px;border:1px solid #cbd5e1;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;background:#f8fafc;position:relative}
.roster-calendar-day.roster-state-work{background:#eff6ff;border-color:#93c5fd}
.roster-calendar-day.roster-state-off{background:#f1f5f9;border-color:#cbd5e1}
.roster-calendar-day.roster-state-approved{background:#f0fdf4;border-color:#86efac}
.roster-calendar-day.roster-state-pending{background:#fffbeb;border-color:#fcd34d}
.roster-calendar-day.roster-state-warning{background:#fef2f2;border-color:#fca5a5}
.roster-calendar-day.is-today{box-shadow:0 0 0 3px #2563eb inset}
.roster-calendar-date{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;flex-wrap:wrap;border-bottom:1px solid rgba(100,116,139,.18);padding-bottom:6px}
.roster-calendar-date strong{font-size:1rem}.roster-calendar-date span{font-size:.78rem;color:#64748b}
.roster-calendar-add{font-size:.76rem;font-weight:800;text-decoration:none;white-space:nowrap}
.roster-calendar-status{font-weight:800;font-size:.9rem}
.roster-calendar-duty{display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:8px;background:#dbeafe;border:1px solid #93c5fd}
.roster-calendar-duty span,.roster-calendar-person small{font-size:.78rem;color:#475569}
.roster-calendar-person{display:flex;flex-direction:column;gap:2px;border-radius:8px;padding:7px 8px;text-decoration:none;color:inherit;border:1px solid #cbd5e1;background:#fff}
.roster-calendar-person-work{background:#dbeafe;border-color:#93c5fd}.roster-calendar-person-approved{background:#dcfce7;border-color:#86efac}.roster-calendar-person-pending{background:#fef3c7;border-color:#fcd34d}
.roster-calendar-person:hover{box-shadow:0 0 0 2px rgba(37,99,235,.15)}
.roster-calendar-warning{font-size:.82rem;font-weight:800;padding:7px;border-radius:8px;background:#fee2e2;border:1px solid #fca5a5}
.roster-list-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.roster-list-actions form{margin:0}
@media(max-width:700px){.roster-toolbar{align-items:stretch}.roster-toolbar>div{width:100%}.roster-view-toggle .button{flex:1;text-align:center}}

/* Farm Platform v2.1.84 — roster coverage requirements */
.roster-coverage-days{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px solid #dbe3ef;border-radius:10px;padding:12px 14px;background:#f8fafc}
.roster-coverage-days legend,.roster-coverage-choice legend{font-weight:800;padding:0 6px}
.roster-coverage-days label{display:flex;align-items:center;gap:6px;margin:0;font-weight:700}
.roster-coverage-days input[type="checkbox"],.roster-coverage-choice input[type="checkbox"]{width:18px!important;height:18px!important;min-width:18px!important;margin:0!important}
.roster-coverage-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px 14px;border:1px solid #dbe3ef;border-radius:10px;padding:12px 14px;background:#f8fafc}
.roster-coverage-choice>label{display:flex;gap:8px;align-items:flex-start;margin:0;padding:8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}
.roster-coverage-choice>label small{display:block;color:#64748b;font-weight:500;margin-left:4px}
.roster-coverage-publish-warning{margin-top:14px;padding:11px 13px;border:1px solid #f59e0b;border-radius:10px;background:#fffbeb;color:#92400e}
@media(max-width:700px){.roster-coverage-choice{grid-template-columns:1fr}.roster-coverage-days{align-items:flex-start}}

/* v2.1.88 — visual animal lifecycle calendar */
.animal-calendar-card{overflow:hidden}
.animal-calendar-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.animal-calendar-nav .button{white-space:nowrap}
.animal-calendar-title{font-size:1.12rem;margin:12px 0 8px}
.animal-calendar-legend{display:flex;gap:10px 16px;align-items:center;flex-wrap:wrap;margin:8px 0 14px;color:#475569;font-size:.82rem;font-weight:700}
.animal-calendar-legend span{display:inline-flex;gap:6px;align-items:center}
.animal-calendar-swatch{width:12px;height:12px;border-radius:4px;display:inline-block;border:1px solid rgba(15,23,42,.18)}
.animal-calendar-swatch.animal-event-breeding{background:#ede9fe;border-color:#c4b5fd}
.animal-calendar-swatch.animal-event-health{background:#dcfce7;border-color:#86efac}
.animal-calendar-swatch.animal-event-growth{background:#fef3c7;border-color:#fcd34d}
.animal-calendar-swatch.animal-event-movement{background:#dbeafe;border-color:#93c5fd}
.animal-calendar-swatch.animal-event-observation{background:#ffedd5;border-color:#fdba74}
.animal-calendar-swatch.animal-event-record{background:#f1f5f9;border-color:#cbd5e1}
.animal-calendar-swatch.animal-event-overdue{background:#fee2e2;border-color:#fca5a5}
.animal-calendar-scroll{overflow-x:auto;padding-bottom:5px}
.animal-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:8px;min-width:1040px}
.animal-calendar-weekday{text-align:center;font-size:.82rem;font-weight:800;color:#475569;padding:5px}
.animal-calendar-day{min-height:158px;border:1px solid #cbd5e1;border-radius:12px;padding:9px;display:flex;flex-direction:column;gap:7px;background:#fff;position:relative}
.animal-calendar-day.is-empty{background:#f8fafc;border-style:dashed;opacity:.55;min-height:80px}
.animal-calendar-day.is-today{box-shadow:0 0 0 3px var(--fp-link,#2563eb) inset}
.animal-calendar-date{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;border-bottom:1px solid rgba(100,116,139,.18);padding-bottom:5px}
.animal-calendar-date strong{font-size:1rem}.animal-calendar-date span{font-size:.76rem;color:#64748b}
.animal-calendar-none{font-size:.78rem;color:#94a3b8;margin-top:2px}
.animal-calendar-event{display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:8px;text-decoration:none;color:#0f172a;border:1px solid #cbd5e1;background:#f8fafc;line-height:1.25}
a.animal-calendar-event:hover{box-shadow:0 0 0 2px rgba(37,99,235,.15);text-decoration:none}
.animal-calendar-event strong{font-size:.82rem}.animal-calendar-event small{font-size:.72rem;color:#475569}.animal-calendar-status{font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.animal-calendar-event.animal-event-breeding{background:#ede9fe;border-color:#c4b5fd}
.animal-calendar-event.animal-event-health{background:#dcfce7;border-color:#86efac}
.animal-calendar-event.animal-event-growth{background:#fef3c7;border-color:#fcd34d}
.animal-calendar-event.animal-event-movement{background:#dbeafe;border-color:#93c5fd}
.animal-calendar-event.animal-event-observation{background:#ffedd5;border-color:#fdba74}
.animal-calendar-event.animal-event-record{background:#f1f5f9;border-color:#cbd5e1}
.animal-calendar-event.is-upcoming{border-width:2px}
.animal-calendar-event.is-overdue{background:#fee2e2;border-color:#f87171;color:#7f1d1d;border-width:2px}
.animal-calendar-event.is-overdue small{color:#991b1b}
.animal-calendar-next{margin-top:16px;border-top:1px solid #e2e8f0;padding-top:13px;display:flex;flex-direction:column;gap:9px}
.animal-calendar-next-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.animal-calendar-next-item{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid #cbd5e1;border-radius:9px;text-decoration:none;background:#f8fafc;color:inherit}
.animal-calendar-next-item:hover{box-shadow:0 0 0 2px rgba(37,99,235,.15);text-decoration:none}
.animal-calendar-next-item span{font-size:.82rem}.animal-calendar-next-item em{font-size:.7rem;font-style:normal;font-weight:900;color:#991b1b;text-transform:uppercase}
.animal-calendar-next-item.is-overdue{background:#fef2f2;border-color:#fca5a5}
@media(max-width:700px){.animal-calendar-nav{justify-content:flex-start}.animal-calendar-next-item{grid-template-columns:1fr}.animal-calendar-next-item em{justify-self:start}}


/* v2.1.88a: calendar links land on and visibly identify the exact source record. */
.calendar-record-target{scroll-margin-top:7rem}
.calendar-record-target:target{
  outline:3px solid rgba(37,99,235,.45);
  outline-offset:3px;
  border-radius:8px;
  animation:calendar-target-pulse 1.2s ease-out 1;
}
tr.calendar-record-target:target td{background:#eef5ff}
@keyframes calendar-target-pulse{
  0%{box-shadow:0 0 0 0 rgba(37,99,235,.30)}
  100%{box-shadow:0 0 0 12px rgba(37,99,235,0)}
}

/* v2.1.88b calendar fallback event detail */
.animal-calendar-focus{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:10px 0 16px;padding:14px 16px;border:2px solid #93c5fd;border-radius:12px;background:#eff6ff;scroll-margin-top:90px}
.animal-calendar-focus h4{margin:.15rem 0 .35rem}.animal-calendar-focus p{margin:.25rem 0}.animal-calendar-focus small{color:#475569}
.animal-calendar-focus-actions{flex:0 0 auto}
#animal-calendar-event-detail:target{box-shadow:0 0 0 4px rgba(37,99,235,.14)}
@media(max-width:700px){.animal-calendar-focus{flex-direction:column}.animal-calendar-focus-actions{width:100%}}

/* v2.1.89 — breeding timeline and automatic expected-calving preview */
.breeding-auto-due-preview{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #c4b5fd;border-radius:10px;background:#f5f3ff}
.breeding-auto-due-preview strong{color:#5b21b6}.breeding-auto-due-preview span{color:#475569}
.breeding-cycle{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-top:12px}
.breeding-cycle-step{position:relative;display:flex;flex-direction:column;gap:5px;padding:14px 12px 14px 48px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc;min-height:76px}
.breeding-cycle-step>span{position:absolute;left:12px;top:14px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0;font-weight:900;color:#334155}
.breeding-cycle-step strong{font-size:.88rem}.breeding-cycle-step small{color:#64748b}
.breeding-cycle-step.is-complete{background:#f0fdf4;border-color:#86efac}.breeding-cycle-step.is-complete>span{background:#bbf7d0;color:#166534}
.breeding-cycle-step.is-upcoming{background:#f5f3ff;border-color:#c4b5fd}.breeding-cycle-step.is-upcoming>span{background:#ddd6fe;color:#5b21b6}
.breeding-cycle-step.is-overdue{background:#fef2f2;border-color:#fca5a5}.breeding-cycle-step.is-overdue>span{background:#fecaca;color:#991b1b}
@media(max-width:900px){.breeding-cycle{grid-template-columns:repeat(2,minmax(160px,1fr))}}
@media(max-width:560px){.breeding-cycle{grid-template-columns:1fr}}


/* v2.1.91x - Animal workflow / quick navigation */
.animal-workflow-card{scroll-margin-top:110px}
.animal-workflow-card h3{margin-bottom:.25rem}
.animal-workflow-card .section-heading-row p{margin:.15rem 0 .35rem;color:var(--fp-muted,#64748b)}
.animal-workflow-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(225px,1fr));
  gap:12px;
  margin-top:14px;
}
.animal-workflow-action{
  position:relative;
  min-height:92px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:14px 42px 14px 15px;
  border:1px solid #cbd5e1;
  border-left:4px solid var(--fp-link,#1d4ed8);
  border-radius:12px;
  background:var(--fp-panel-bg,#fff);
  color:var(--fp-text,#1f2937);
  text-decoration:none;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background .12s ease;
}
.animal-workflow-action strong{color:var(--fp-heading,#172033);font-size:1rem}
.animal-workflow-action span{color:var(--fp-muted,#64748b);font-size:.88rem;line-height:1.35}
.animal-workflow-action em{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  font-style:normal;
  font-size:1.35rem;
  color:var(--fp-link,#1d4ed8);
}
.animal-workflow-action:hover,.animal-workflow-action:focus{
  transform:translateY(-1px);
  border-color:#93c5fd;
  background:#f8fbff;
  box-shadow:0 5px 15px rgba(15,23,42,.08);
  outline:none;
}
.animal-workflow-breeding{border-left-color:#7c3aed}
.animal-workflow-records{border-left-color:#0f766e}
.animal-workflow-movement{border-left-color:#c2410c}
.animal-workflow-work{border-left-color:#0284c7}
.animal-workflow-history{border-left-color:#64748b}
.animal-workflow-note{margin:12px 0 0;color:var(--fp-muted,#64748b)}
#animal-overview,#animal-location-mob,#animal-registration-summary,#animal-class-life-stage,#animal-identifiers-summary,#animal-weight-summary,#animal-lifetime-history,#animal-ownership-history{scroll-margin-top:115px}
@media(max-width:700px){
  .animal-workflow-grid{grid-template-columns:1fr}
  .animal-workflow-action{min-height:78px}
}


/* v2.1.93 - reusable page workflow / quick navigation */
.page-workflow-card{scroll-margin-top:110px}
.page-workflow-card h2{margin-bottom:.25rem}
.page-workflow-card .section-heading-row p{margin:.15rem 0 .35rem;color:var(--fp-muted,#64748b)}
.page-workflow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}
.page-workflow-action{position:relative;min-height:82px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:13px 40px 13px 14px;border:1px solid #cbd5e1;border-left:4px solid var(--fp-link,#1d4ed8);border-radius:12px;background:var(--fp-panel-bg,#fff);color:var(--fp-text,#1f2937);text-decoration:none;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background .12s ease}
.page-workflow-action strong{color:var(--fp-heading,#172033);font-size:.98rem}.page-workflow-action span{color:var(--fp-muted,#64748b);font-size:.84rem;line-height:1.35}.page-workflow-action em{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-style:normal;font-size:1.25rem;color:var(--fp-link,#1d4ed8)}
.page-workflow-action:hover,.page-workflow-action:focus{transform:translateY(-1px);border-color:#93c5fd;background:#f8fbff;box-shadow:0 5px 15px rgba(15,23,42,.08);outline:none}
.page-workflow-records{border-left-color:var(--fp-button-add-bg,#0f766e)}.page-workflow-breeding{border-left-color:var(--fp-button-edit-bg,#a16207)}.page-workflow-payroll{border-left-color:var(--fp-button-warning-bg,#c2410c)}.page-workflow-people{border-left-color:var(--fp-button-add-bg,#0f766e)}.page-workflow-movement{border-left-color:var(--fp-button-nav-bg,#4338ca)}.page-workflow-history{border-left-color:var(--fp-button-neutral-bg,#475569)}.page-workflow-admin{border-left-color:var(--fp-button-danger-bg,#b91c1c)}
.page-workflow-back{white-space:nowrap}.page-workflow-anchor{scroll-margin-top:7rem}
@media(max-width:700px){.page-workflow-grid{grid-template-columns:1fr}.page-workflow-action{min-height:72px}}


/* v2.1.94 — semantic, Appearance-controlled button colours */
button.fp-button-primary,.button.fp-button-primary{
  background:var(--fp-button-bg,#1d4ed8) !important;
  color:var(--fp-button-primary-text,var(--fp-button-text,#fff)) !important;
}
button.fp-button-save,.button.fp-button-save{
  background:var(--fp-button-save-bg,#15803d) !important;
  color:var(--fp-button-save-text,#fff) !important;
}
button.fp-button-add,.button.fp-button-add{
  background:var(--fp-button-add-bg,#0f766e) !important;
  color:var(--fp-button-add-text,#fff) !important;
}
button.fp-button-edit,.button.fp-button-edit{
  background:var(--fp-button-edit-bg,#a16207) !important;
  color:var(--fp-button-edit-text,#fff) !important;
}
button.fp-button-nav,.button.fp-button-nav{
  background:var(--fp-button-nav-bg,#4338ca) !important;
  color:var(--fp-button-nav-text,#fff) !important;
}
button.fp-button-warning,.button.fp-button-warning{
  background:var(--fp-button-warning-bg,#c2410c) !important;
  color:var(--fp-button-warning-text,#fff) !important;
}
button.fp-button-danger,.button.fp-button-danger,button.danger,.button.danger{
  background:var(--fp-button-danger-bg,#b91c1c) !important;
  color:var(--fp-button-danger-text,#fff) !important;
}
button.fp-button-neutral,.button.fp-button-neutral,.button.secondary{
  background:var(--fp-button-neutral-bg,#475569) !important;
  color:var(--fp-button-neutral-text,#fff) !important;
}
button.fp-button-primary:hover,.button.fp-button-primary:hover,
button.fp-button-save:hover,.button.fp-button-save:hover,
button.fp-button-add:hover,.button.fp-button-add:hover,
button.fp-button-edit:hover,.button.fp-button-edit:hover,
button.fp-button-nav:hover,.button.fp-button-nav:hover,
button.fp-button-warning:hover,.button.fp-button-warning:hover,
button.fp-button-danger:hover,.button.fp-button-danger:hover,
button.fp-button-neutral:hover,.button.fp-button-neutral:hover{
  filter:brightness(.92);
}
.semantic-button-preview{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.semantic-button-preview .button{pointer-events:none}

/* Farm Platform v2.1.96 — Primary Running Ledger & Finance Views */
.finance-view-nav{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.finance-view-nav a{display:inline-flex;align-items:center;padding:9px 13px;border:1px solid var(--fp-border,#d9dee7);border-radius:999px;text-decoration:none;font-weight:700;background:var(--fp-card,#fff)}
.finance-view-nav a.active{box-shadow:0 0 0 2px rgba(37,99,235,.16);border-color:#2563eb}
.finance-year-form,.finance-context-form{margin-top:10px;max-width:420px}
.finance-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.finance-running-ledger .money-cell{white-space:nowrap;text-align:right}
.finance-ledger-note,.finance-transfer-summary,.finance-audit-note{margin-top:14px;padding:12px 14px;border:1px solid var(--fp-border,#d9dee7);border-radius:10px;background:rgba(37,99,235,.035)}
.finance-transfer-summary{display:flex;gap:18px;flex-wrap:wrap}
.finance-transfer-summary span{display:block}
.finance-audit-note{margin-bottom:18px}
@media(max-width:980px){.finance-entry-grid{grid-template-columns:1fr}}
@media(max-width:700px){.finance-view-nav a{flex:1 1 45%;justify-content:center}.finance-running-ledger{min-width:980px}}


/* Farm Platform v2.1.99l — government / registration number grouping */
.government-number-group{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:end;
  padding:17px 16px 8px;
  margin:4px 0 6px;
  border:1px solid color-mix(in srgb,var(--fp-border,#d1d5db) 58%,#d69e2e 42%);
  border-left:5px solid #d69e2e;
  border-radius:12px;
  background:color-mix(in srgb,var(--fp-panel-bg,#fff) 74%,#f7d98b 26%);
  box-shadow:0 1px 2px rgba(120,85,20,.08);
}
.government-number-heading{grid-column:1 / -1;margin-bottom:3px}
.government-number-heading strong{display:block;color:color-mix(in srgb,var(--fp-heading,var(--fp-text,#1f2937)) 84%,#7a5310 16%);font-size:1.02rem}
.government-number-heading small{display:block;margin-top:3px;color:color-mix(in srgb,var(--fp-muted,#64748b) 82%,#7a5310 18%);font-weight:400}
@media(max-width:850px){.government-number-group{grid-template-columns:1fr}}

/* Farm Platform v2.1.99n — Running Ledger scanability */
.finance-ledger-scroll{
  max-height:68vh;
  overflow:auto;
  position:relative;
}
.finance-running-ledger thead th{
  position:sticky;
  top:0;
  z-index:3;
  background:var(--fp-table-head-bg,#f8fafc);
  box-shadow:0 1px 0 var(--fp-border,#d1d5db),0 4px 9px -8px rgba(15,23,42,.45);
}
.finance-running-ledger .finance-operating-income{
  color:#15803d;
  font-weight:700;
}
.finance-running-ledger .finance-operating-expense{
  color:#b91c1c;
  font-weight:700;
}

/* Farm Platform v2.1.110b — Owner / Manager dashboard graph refinements */
.fp-dashboard-graphs{display:grid;gap:1rem;margin-top:1rem}
.fp-dashboard-graphs-intro{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.fp-dashboard-graphs-intro h2{margin-bottom:.3rem}
.fp-dashboard-graphs-intro p{margin:0;color:var(--fp-muted,#64748b)}
.fp-dashboard-graph-card{padding:0;overflow:hidden}
.fp-dashboard-graph-card>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;user-select:none}
.fp-dashboard-graph-card>summary::-webkit-details-marker{display:none}
.fp-dashboard-graph-card>summary span:first-child{display:grid;gap:.2rem}
.fp-dashboard-graph-card>summary strong{font-size:1.05rem;color:var(--fp-heading,#172033)}
.fp-dashboard-graph-card>summary small{color:var(--fp-muted,#64748b);font-weight:400}
.fp-dashboard-graph-card>summary:before{content:"▾";font-size:1rem;color:var(--fp-muted,#64748b)}
.fp-dashboard-graph-card:not([open])>summary:before{content:"▸"}
.fp-dashboard-graph-card>summary span:first-child{flex:1}
.fp-graph-summary-toggle{font-size:.82rem;color:var(--fp-link,#1d4ed8);white-space:nowrap}
.fp-dashboard-graph-body{border-top:1px solid var(--fp-border,#d1d5db);padding:1rem 1.1rem 1.15rem}
.fp-dashboard-graph-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.65rem}
.fp-range-buttons,.fp-point-mode-buttons{display:flex;gap:.35rem;flex-wrap:wrap}
.fp-range-button,.fp-point-mode-button{padding:.42rem .7rem;font-size:.82rem}
.fp-range-button.is-active,.fp-point-mode-button.is-active{box-shadow:0 0 0 2px var(--fp-link,#1d4ed8) inset;font-weight:700}
.fp-dashboard-graph-note{font-size:.85rem;color:var(--fp-muted,#64748b);max-width:52rem}
.fp-chart-stage{min-height:300px;width:100%;overflow:hidden}
.fp-chart-svg{display:block;width:100%;height:auto;min-height:280px;color:var(--fp-text,#1f2937)}
.fp-chart-gridline{stroke:var(--fp-border,#d1d5db);stroke-width:1;opacity:.7}
.fp-chart-axis-label{fill:var(--fp-muted,#64748b);font-size:12px}
.fp-chart-y-title{fill:var(--fp-muted,#64748b);font-size:12px;font-weight:600}
.fp-chart-line{fill:none!important;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.fp-chart-area{stroke:none!important;opacity:.18;pointer-events:none}
.fp-chart-point{stroke:var(--fp-panel-bg,#fff);stroke-width:1.5}
.fp-chart-bar{opacity:.9}
.fp-chart-legend{display:flex;flex-wrap:wrap;gap:.55rem 1rem;margin:.35rem 0 .2rem;font-size:.84rem;color:var(--fp-muted,#64748b)}
.fp-chart-legend-item{display:inline-flex;align-items:center;gap:.4rem}
.fp-chart-swatch{display:inline-block;width:.8rem;height:.8rem;border-radius:.2rem}
.fp-chart-empty{min-height:260px;display:grid;place-items:center;color:var(--fp-muted,#64748b);border:1px dashed var(--fp-border,#d1d5db);border-radius:.55rem}
.fp-chart-footnote{margin:.5rem 0 0;font-size:.82rem}
.fp-chart-coverage-warning{margin:.6rem 0 0;padding:.72rem .85rem;border:1px solid var(--fp-border,#d1d5db);border-left:4px solid var(--fp-button-warning-bg,#c2410c);border-radius:.55rem;background:var(--fp-warning-bg,#fff7ed);font-size:.86rem;line-height:1.45}
.fp-chart-coverage-warning strong{font-weight:800}
.fp-chart-series-0{stroke:var(--fp-link,#2563eb);fill:var(--fp-link,#2563eb);background:var(--fp-link,#2563eb)}
.fp-chart-series-1{stroke:var(--fp-button-save-bg,#15803d);fill:var(--fp-button-save-bg,#15803d);background:var(--fp-button-save-bg,#15803d)}
.fp-chart-series-2{stroke:var(--fp-button-edit-bg,#a16207);fill:var(--fp-button-edit-bg,#a16207);background:var(--fp-button-edit-bg,#a16207)}
.fp-chart-series-3{stroke:var(--fp-button-warning-bg,#c2410c);fill:var(--fp-button-warning-bg,#c2410c);background:var(--fp-button-warning-bg,#c2410c)}
.fp-chart-series-4{stroke:var(--fp-button-nav-bg,#4338ca);fill:var(--fp-button-nav-bg,#4338ca);background:var(--fp-button-nav-bg,#4338ca)}
.fp-chart-series-5{stroke:var(--fp-button-add-bg,#0f766e);fill:var(--fp-button-add-bg,#0f766e);background:var(--fp-button-add-bg,#0f766e)}
.fp-chart-series-6{stroke:var(--fp-button-danger-bg,#b91c1c);fill:var(--fp-button-danger-bg,#b91c1c);background:var(--fp-button-danger-bg,#b91c1c)}
.fp-chart-series-7{stroke:#7c3aed;fill:#7c3aed;background:#7c3aed}
.fp-chart-series-8{stroke:#0891b2;fill:#0891b2;background:#0891b2}
.fp-chart-series-9{stroke:#be185d;fill:#be185d;background:#be185d}
@media (max-width:700px){
  .fp-dashboard-graphs-intro{align-items:flex-start;flex-direction:column}
  .fp-dashboard-graph-card>summary{align-items:flex-start}
  .fp-dashboard-graph-toolbar{align-items:flex-start;flex-direction:column}
  .fp-chart-stage{overflow-x:auto}
  .fp-chart-svg{min-width:720px}
}

/* Farm Platform v2.1.111 — Multi-purpose Farm Yard sessions + rapid mob weighing */
.yard-work-fieldset{border:1px solid var(--fp-border-color);border-radius:10px;padding:14px 16px}
.yard-work-fieldset legend{font-weight:700;padding:0 6px}
.yard-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
.yard-session-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:22px;align-items:start}
.yard-work-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.yard-work-chip{display:inline-flex;align-items:center;padding:6px 10px;border:1px solid var(--fp-border-color);border-radius:999px;background:color-mix(in srgb,var(--fp-panel-bg) 88%,var(--fp-page-bg));font-size:.9rem;font-weight:650}
.yard-work-chip.muted{opacity:.7}
.yard-stats-five{grid-template-columns:repeat(5,minmax(120px,1fr))}
.yard-rapid-controls{display:flex;align-items:end;gap:14px;justify-content:space-between;flex-wrap:wrap;margin:14px 0}
.yard-rapid-controls label{min-width:220px;margin:0}
.yard-rapid-table-wrap{max-height:620px;overflow:auto;border:1px solid var(--fp-border-color);border-radius:10px}
.yard-rapid-table{margin:0}
.yard-rapid-table thead th{position:sticky;top:0;z-index:1;background:var(--fp-panel-bg)}
.yard-rapid-table td{vertical-align:middle}
.yard-rapid-weight{width:130px;min-width:110px;font-size:1.15rem;font-weight:700;padding:9px 10px}
.yard-rapid-save{display:flex;justify-content:flex-end;margin-top:14px}
@media(max-width:1100px){.yard-stats-five{grid-template-columns:repeat(3,minmax(120px,1fr))}.yard-session-overview{grid-template-columns:1fr}}
@media(max-width:700px){.yard-work-grid{grid-template-columns:1fr}.yard-stats-five{grid-template-columns:repeat(2,minmax(120px,1fr))}.yard-rapid-weight{width:105px}}


/* Farm Platform v2.1.111c — Farm Yard session completion / summary */
.yard-stats-six{grid-template-columns:repeat(6,minmax(110px,1fr))}
.yard-stats-four{grid-template-columns:repeat(4,minmax(130px,1fr))}
.yard-completion-summary{border-left:4px solid var(--fp-success,#2f855a)}
@media(max-width:1100px){.yard-stats-six{grid-template-columns:repeat(3,minmax(120px,1fr))}.yard-stats-four{grid-template-columns:repeat(2,minmax(120px,1fr))}}
@media(max-width:700px){.yard-stats-six,.yard-stats-four{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* Farm Platform v2.1.111d — Farm Yard Individual animal work follows normal page flow */

/* v2.1.112 — animal and mob growth graphs */
.fp-growth-graph-card{margin-top:20px}
.fp-growth-context-note{margin:.4rem 0 1rem;line-height:1.45}

/* v2.1.112a — management-event markers on growth graphs */
.fp-chart-event-line{stroke:var(--fp-muted,#64748b);stroke-width:1.2;stroke-dasharray:4 5;opacity:.48;pointer-events:stroke}
.fp-chart-event-marker{fill:var(--fp-button-nav-bg,#4338ca);stroke:var(--fp-panel-bg,#fff);stroke-width:1.2;cursor:help}
.fp-chart-event-health{stroke:var(--fp-button-warning-bg,#c2410c);fill:var(--fp-button-warning-bg,#c2410c)}
.fp-chart-event-breeding{stroke:var(--fp-button-nav-bg,#4338ca);fill:var(--fp-button-nav-bg,#4338ca)}
.fp-chart-event-calving{stroke:var(--fp-button-save-bg,#15803d);fill:var(--fp-button-save-bg,#15803d)}
.fp-chart-event-weaning,.fp-chart-event-feeding,.fp-chart-event-lifecycle{stroke:var(--fp-button-add-bg,#0f766e);fill:var(--fp-button-add-bg,#0f766e)}
.fp-chart-event-management{stroke:var(--fp-muted,#64748b);fill:var(--fp-muted,#64748b)}
.fp-chart-event-legend{display:inline-block;width:.16rem;height:.78rem;background:var(--fp-button-nav-bg,#4338ca);border-radius:.08rem}
.fp-growth-event-key{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .7rem;margin:.35rem 0 0;font-size:.82rem;color:var(--fp-muted,#64748b)}
.fp-growth-event-key strong{color:var(--fp-text,#1f2937)}

/* v2.1.113 Appearance preview of the platform-wide top navigation standard. */
.theme-nav-preview{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
  margin:12px 0 18px;
  padding:12px;
  background:var(--fp-topbar-bg);
  border:1px solid var(--fp-border);
  border-radius:10px;
}
.theme-nav-preview .fp-nav-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 10px;
  border:1px solid color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 32%,var(--fp-border,#d1d5db));
  border-bottom-width:2px;
  border-radius:7px;
  color:var(--fp-link,#1d4ed8) !important;
  background:color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 14%,var(--fp-topbar-bg,#fff));
  font-weight:600;
  line-height:1.15;
  box-shadow:0 1px 2px color-mix(in srgb,var(--fp-shadow-color,#64748b) 16%,transparent);
}
.theme-nav-preview .fp-nav-button.active{
  background:var(--fp-button-nav-bg,#4338ca);
  color:var(--fp-button-nav-text,#fff) !important;
  border-color:var(--fp-button-nav-bg,#4338ca);
  border-bottom-color:color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 72%,#000);
}

/* v2.1.114 — Super Administrator uses the same green top-menu family as the
   approved Owner/Manager navigation. Role is communicated by the identity text,
   not by a different navigation colour scheme. */
body.fp-super-admin .topbar .fp-main-nav .fp-nav-button {
    background:#dcfce7;
    border-color:#86efac;
    color:#0057d9 !important;
}
body.fp-super-admin .topbar .fp-main-nav .fp-nav-button:hover,
body.fp-super-admin .topbar .fp-main-nav .fp-nav-button:focus-visible {
    background:#bbf7d0;
    border-color:#4ade80;
    color:#0057d9 !important;
}
body.fp-super-admin .topbar .fp-main-nav .fp-nav-button.active {
    background:#00f05a;
    border-color:#00d950;
    border-bottom-color:#00b844;
    color:#00140a !important;
}

/* v2.1.115 — Super Administrator Support View */
.fp-support-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:0 0 18px;
    padding:14px 16px;
    border:2px solid #f59e0b;
    border-radius:10px;
    background:#fffbeb;
    box-shadow:0 2px 8px rgba(146,64,14,.12);
}
.fp-support-banner>div{display:flex;flex-direction:column;gap:3px}
.fp-support-banner strong{font-size:1.02rem;color:#7c2d12}
.fp-support-banner span{font-weight:700;color:#1f2937}
.fp-support-banner small{color:#6b7280}
.fp-support-banner form{margin:0;flex:0 0 auto}
.fp-support-banner button{background:#92400e;border-color:#78350f;color:#fff}
@media(max-width:760px){.fp-support-banner{align-items:flex-start;flex-direction:column}.fp-support-banner form{width:100%}.fp-support-banner button{width:100%}}

/* v2.1.116 — Help Centre + optional Live Support module */
.help-centre-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}
.help-centre-intro .help-search{margin-top:12px}
.help-results,.help-document-list{display:grid;gap:10px;margin-top:10px}
.help-result,.help-document-item{border:1px solid var(--fp-border,#d1d5db);border-radius:10px;padding:12px;background:var(--fp-panel-bg,#fff)}
.help-result strong,.help-document-item strong{display:block;margin-bottom:3px}
.help-result small,.help-document-item small{color:var(--fp-muted,#64748b)}
.help-result p,.help-document-item p{margin:7px 0 0;line-height:1.45}
.help-document-item{display:flex;justify-content:space-between;gap:16px;align-items:center}
.help-document-item>div:last-child{white-space:nowrap}
.live-support-status{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.status-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-weight:800;font-size:.88rem;border:1px solid var(--fp-border,#d1d5db)}
.status-pill.status-on{background:#dcfce7;color:#166534;border-color:#86efac}
.status-pill.status-off{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
.inline-action-form{display:inline-block;margin:6px 8px 6px 0}
@media(max-width:700px){.help-document-item{display:block}.help-document-item>div:last-child{margin-top:10px;white-space:normal}.help-centre-grid{grid-template-columns:1fr}}


/* v2.1.117 — Live Assist request / consent connection */
.fp-live-assist-active{position:fixed;right:18px;bottom:18px;z-index:1200;display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:min(620px,calc(100vw - 36px));padding:12px 14px;border:2px solid #22c55e;border-radius:12px;background:#f0fdf4;color:#14532d;box-shadow:0 10px 30px rgba(15,23,42,.18)}
.fp-live-assist-active[hidden],.fp-live-assist-request[hidden]{display:none!important}
.fp-live-assist-active strong{font-size:1rem}.fp-live-assist-active span{flex:1 1 230px}.fp-live-assist-active button{margin-left:auto;background:#166534;border-color:#14532d;color:#fff}
.live-assist-wait{border-left:5px solid #22c55e}
@media(max-width:700px){.fp-live-assist-active{left:10px;right:10px;bottom:10px;max-width:none}.fp-live-assist-active button{width:100%;margin-left:0}}

/* Farm Platform v2.1.118 — Live Assist Live View */
.fp-live-view-shell{display:grid;gap:14px;}
.fp-live-view-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;background:#fff;border:1px solid #d8dee8;border-radius:10px;box-shadow:0 4px 12px rgba(15,23,42,.08);}
.fp-live-view-toolbar #fp-live-view-page{flex:1;min-width:240px;color:#43526a;font-size:.94rem;}
.fp-live-view-stage{position:relative;min-height:420px;padding:14px;overflow:auto;background:#dfe5ec;border:1px solid #c9d1dc;border-radius:12px;box-shadow:inset 0 1px 3px rgba(15,23,42,.12);}
.fp-live-view-frame-wrap{margin:0 auto;overflow:visible;background:#fff;box-shadow:0 8px 26px rgba(15,23,42,.18);}
#fp-live-view-frame{display:block;border:0;background:#fff;max-width:none;}
.fp-live-view-empty{display:flex;min-height:360px;align-items:center;justify-content:center;text-align:center;color:#526178;font-weight:600;}
body.fp-live-mirror-frame{background:#fff;}
body.fp-live-mirror-frame .container{max-width:none;}
@media (max-width:760px){.fp-live-view-stage{padding:8px}.fp-live-view-toolbar{align-items:stretch}.fp-live-view-toolbar #fp-live-view-page{flex-basis:100%;min-width:0;}}

/* Farm Platform v2.1.121 — animal historical growth benchmark */
.fp-growth-benchmark-note{margin:.55rem 0 .8rem;padding:.75rem .9rem;border:1px solid var(--fp-border,#d7dee8);border-radius:.7rem;background:var(--fp-panel-bg,#fff);line-height:1.45;color:var(--fp-text,#1f2937)}
.fp-growth-benchmark-note strong{display:inline-block;margin-right:.25rem}
.fp-weight-stale-warning{margin:.6rem 0 1rem;padding:.75rem .9rem;border-radius:.65rem;border:1px solid color-mix(in srgb,var(--fp-button-warning-bg,#c2410c) 28%,transparent);background:color-mix(in srgb,var(--fp-button-warning-bg,#c2410c) 8%,var(--fp-panel-bg,#fff));line-height:1.45}
.fp-benchmark-metric strong{font-variant-numeric:tabular-nums}
.fp-chart-band{fill:color-mix(in srgb,var(--fp-button-save-bg,#15803d) 16%,transparent);stroke:none;pointer-events:all}
.fp-chart-band-swatch{display:inline-block;width:1.15rem;height:.65rem;border-radius:.16rem;background:color-mix(in srgb,var(--fp-button-save-bg,#15803d) 22%,transparent);border:1px solid color-mix(in srgb,var(--fp-button-save-bg,#15803d) 45%,transparent)}
@supports not (color:color-mix(in srgb,#000 50%,#fff)){
 .fp-chart-band{fill:rgba(21,128,61,.14)}
 .fp-chart-band-swatch{background:rgba(21,128,61,.18);border-color:rgba(21,128,61,.4)}
 .fp-weight-stale-warning{border-color:#f0b98f;background:#fff7ed}
}

/* Farm Platform v2.1.121a — benchmark confidence and timeline-marker refinement */
.fp-growth-benchmark-note.is-broad{border-style:dashed;background:color-mix(in srgb,var(--fp-panel-bg,#fff) 92%,var(--fp-muted,#64748b) 8%)}
.fp-benchmark-broad strong{font-size:1.02rem;line-height:1.15}


/* Farm Platform v2.1.122 — reliable weight source and valuation linkage */
.weight-summary .metric small{display:block}
.weight-summary .metric span{line-height:1.35}

/* v2.1.140 — Super User Company Details / LALAAYI company vault */
.platform-company-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.platform-company-hero .eyebrow{
  margin:0 0 4px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.68;
}
.platform-company-hero-side{
  display:flex;
  min-width:180px;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}
.platform-company-hero-side .button{
  white-space:nowrap;
}
.platform-company-logo-preview{
  min-width:180px;
  max-width:300px;
  text-align:right;
}
.platform-company-logo-preview img{
  max-width:100%;
  max-height:120px;
  object-fit:contain;
}
.platform-company-sections{
  display:grid;
  gap:18px;
}
.platform-company-details-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:10px 18px;
  margin-top:12px;
}
.platform-company-detail{
  min-width:0;
  padding:10px 0;
  border-bottom:1px solid rgba(100,116,139,.22);
}
.platform-company-detail span,
.platform-company-long-value>span{
  display:block;
  margin-bottom:3px;
  font-size:.82rem;
  font-weight:700;
  opacity:.68;
}
.platform-company-detail strong{
  display:block;
  overflow-wrap:anywhere;
  font-size:1rem;
}
.platform-company-long-value{
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid rgba(100,116,139,.22);
}
.platform-company-long-value p{margin:.2rem 0 0;}
.platform-company-brand-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:18px;
  align-items:start;
}
.platform-company-asset{
  display:block;
  max-width:100%;
  max-height:180px;
  object-fit:contain;
  padding:10px;
  border:1px solid rgba(100,116,139,.24);
  border-radius:10px;
  background:#fff;
}
.platform-email-footer-preview{
  margin-top:8px;
  padding:14px;
  border:1px solid rgba(100,116,139,.24);
  border-radius:10px;
  background:#fff;
  line-height:1.5;
}
.platform-company-doc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
  gap:16px;
  margin-top:16px;
}
.platform-company-doc-card{
  min-width:0;
}
.platform-company-doc-open{
  position:relative;
  display:flex;
  height:100%;
  flex-direction:column;
  gap:5px;
  color:inherit;
  text-decoration:none;
  border:1px solid rgba(100,116,139,.24);
  border-radius:12px;
  padding:10px;
  background:rgba(255,255,255,.75);
  transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;
}
.platform-company-doc-open:hover,
.platform-company-doc-open:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(15,23,42,.12);
  border-color:rgba(37,99,235,.55);
}
.platform-company-doc-thumb{
  display:flex;
  width:100%;
  aspect-ratio:4/5;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:1px solid rgba(100,116,139,.28);
  border-radius:8px;
  background:#f8fafc;
}
.platform-company-doc-thumb-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}
.platform-company-doc-thumb-pdf-live{
  position:relative;
  display:block;
  padding:0;
  background:#e5e7eb;
}
.platform-company-doc-pdf-object{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#fff;
  pointer-events:none;
}
.platform-company-doc-pdf-fallback{
  display:flex;
  width:100%;
  height:100%;
  flex-direction:column;
  justify-content:flex-start;
  padding:18px 16px;
  background:linear-gradient(145deg,#fff,#f1f5f9);
}
.platform-company-doc-preview-badge{
  position:absolute;
  right:7px;
  bottom:7px;
  z-index:2;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(15,23,42,.82);
  color:#fff;
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.02em;
  pointer-events:none;
}
.platform-company-doc-thumb-pdf{
  position:relative;
  flex-direction:column;
  justify-content:flex-start;
  padding:18px 16px;
  background:linear-gradient(145deg,#fff,#f1f5f9);
}
.platform-company-doc-filetype{
  align-self:flex-start;
  padding:5px 8px;
  border-radius:5px;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.08em;
  border:1px solid currentColor;
}
.platform-company-doc-sheet-lines{
  display:block;
  width:78%;
  height:54%;
  margin-top:22px;
  opacity:.28;
  background:repeating-linear-gradient(to bottom,currentColor 0,currentColor 2px,transparent 2px,transparent 13px);
}
.platform-company-doc-title{
  margin-top:3px;
  font-weight:800;
  line-height:1.25;
}
.platform-company-doc-type,
.platform-company-doc-meta{
  font-size:.78rem;
  line-height:1.3;
  opacity:.7;
}
.platform-company-dashboard-card .section-heading-row{
  align-items:center;
}
.platform-company-dashboard-summary{
  display:flex;
  flex-wrap:wrap;
  gap:9px 16px;
  margin-top:12px;
}
.platform-company-dashboard-summary span{
  padding:6px 10px;
  border:1px solid rgba(100,116,139,.22);
  border-radius:999px;
  font-size:.84rem;
  background:rgba(255,255,255,.58);
}
@media (max-width:720px){
  .platform-company-hero{flex-direction:column;align-items:flex-start;}
  .platform-company-hero-side{align-items:flex-start;min-width:0;width:100%;}
  .platform-company-logo-preview{max-width:220px;text-align:left;}
  .platform-company-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* v2.1.143 — LALAAYI master brand asset library */
.platform-company-brand-grid{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.platform-company-brand-card{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:8px;
  padding:14px;
  border:1px solid rgba(100,116,139,.22);
  border-radius:12px;
  background:color-mix(in srgb,var(--fp-panel-bg,#fff) 96%,var(--fp-page-bg,#f3f4f6) 4%);
}
.platform-company-brand-card h3{margin:0}
.platform-company-brand-usage{
  margin:0;
  min-height:2.5em;
  color:var(--fp-muted,#64748b);
  font-size:.84rem;
  line-height:1.35;
}
.platform-company-brand-preview{
  display:flex;
  min-height:145px;
  align-items:center;
  justify-content:center;
  padding:10px;
  overflow:hidden;
  border:1px solid rgba(100,116,139,.20);
  border-radius:10px;
  background:#fff;
}
.platform-company-brand-card.is-dark .platform-company-brand-preview{
  background:#082f38;
}
.platform-company-brand-card.is-icon .platform-company-brand-preview{
  min-height:190px;
}
.platform-company-brand-card.is-icon .platform-company-asset{
  width:min(190px,100%);
  max-height:190px;
}
.platform-company-brand-preview .platform-company-asset{
  width:100%;
  max-height:190px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.platform-company-brand-empty{
  display:flex;
  min-height:145px;
  align-items:center;
  justify-content:center;
  border:1px dashed rgba(100,116,139,.35);
  border-radius:10px;
  color:var(--fp-muted,#64748b);
  background:color-mix(in srgb,var(--fp-panel-bg,#fff) 88%,var(--fp-page-bg,#f3f4f6) 12%);
}
.platform-company-brand-upload-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
  margin:16px 0;
}
.platform-company-brand-upload{
  min-width:0;
  padding:14px;
  border:1px solid var(--fp-border,#d1d5db);
  border-radius:12px;
  background:color-mix(in srgb,var(--fp-panel-bg,#fff) 96%,var(--fp-page-bg,#f3f4f6) 4%);
}
.platform-company-brand-upload>label>strong,
.platform-company-brand-upload>label>small{
  display:block;
}
.platform-company-brand-upload>label>small{
  margin:3px 0 8px;
  color:var(--fp-muted,#64748b);
  line-height:1.35;
}
.platform-company-brand-upload-current{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.platform-company-brand-upload-current img{
  display:block;
  width:100%;
  max-height:150px;
  object-fit:contain;
  padding:8px;
  border:1px solid rgba(100,116,139,.22);
  border-radius:9px;
  background:#fff;
}
@media(max-width:720px){
  .platform-company-brand-grid,
  .platform-company-brand-upload-grid{grid-template-columns:1fr}
}

/* v2.1.144 — LALAAYI master brand rollout in the application shell. */
.topbar-brand>a{min-height:54px}
.topbar-logo.topbar-logo-wide{
    width:min(255px,28vw);
    height:58px;
    max-width:255px;
    object-fit:contain;
    object-position:left center;
    border-radius:0;
}
@media(max-width:900px){
    .topbar-logo.topbar-logo-wide{width:min(215px,42vw);height:50px}
}
@media(max-width:620px){
    .topbar-logo.topbar-logo-wide{width:min(175px,58vw);height:44px}
}


/* v2.1.145 — site-wide footer sourced from Super User > Company Details. */
.fp-page-footer{
  margin-top:42px;
  border-top:1px solid color-mix(in srgb,var(--fp-border,#d1d5db) 80%,transparent 20%);
  background:color-mix(in srgb,var(--fp-panel-bg,#fff) 94%,var(--fp-page-bg,#f3f4f6) 6%);
  color:var(--fp-text,#172033);
}
.fp-page-footer-inner{
  width:min(1400px,calc(100% - 64px));
  margin:0 auto;
  padding:22px 0 16px;
  display:grid;
  grid-template-columns:minmax(190px,1.25fr) minmax(220px,1.3fr) minmax(240px,1.4fr) minmax(150px,.8fr);
  gap:28px;
  align-items:center;
}
.fp-page-footer-brand{min-width:0}
.fp-page-footer-brand>a{display:inline-flex;align-items:center;max-width:100%}
.fp-page-footer-logo{
  display:block;
  width:min(225px,100%);
  max-height:62px;
  object-fit:contain;
  object-position:left center;
}
.fp-page-footer-brand>strong,
.fp-page-footer-block>strong{display:block;margin-bottom:5px;font-size:.92rem}
.fp-page-footer-brand>span,
.fp-page-footer-block>span,
.fp-page-footer-block>a{font-size:.84rem;color:var(--fp-muted,#64748b);line-height:1.55}
.fp-page-footer-block a{color:var(--fp-link,#075de8);text-decoration:none}
.fp-page-footer-block a:hover{text-decoration:underline}
.fp-page-footer-contact span{display:flex;flex-wrap:wrap;gap:5px 8px;align-items:center}
.fp-footer-sep{display:inline-block;margin:0 7px;color:var(--fp-muted,#94a3b8)}
.fp-page-footer-bottom{
  border-top:1px solid color-mix(in srgb,var(--fp-border,#d1d5db) 72%,transparent 28%);
  padding:10px 32px 14px;
  text-align:center;
  font-size:.76rem;
  color:var(--fp-muted,#64748b);
}
@media(max-width:980px){
  .fp-page-footer-inner{grid-template-columns:1fr 1fr;width:min(calc(100% - 40px),900px);gap:18px 28px}
}
@media(max-width:620px){
  .fp-page-footer{margin-top:28px}
  .fp-page-footer-inner{grid-template-columns:1fr;width:calc(100% - 32px);padding:18px 0 12px;gap:14px;text-align:center}
  .fp-page-footer-brand>a{justify-content:center}
  .fp-page-footer-logo{object-position:center center;margin:0 auto}
  .fp-page-footer-contact span{justify-content:center}
  .fp-page-footer-bottom{padding:9px 16px 12px}
}


/* v2.1.146 — Official pedigree certificate preview in the animal hero.
   No placeholder is rendered when an animal has no certificate. */
.animal-hero-certificate{
    flex:0 0 150px;
    align-self:center;
    min-width:0;
}
.animal-hero-certificate-link{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    color:inherit;
    text-decoration:none;
}
.animal-hero-certificate-thumb{
    display:block;
    position:relative;
    width:138px;
    aspect-ratio:4/5;
    overflow:hidden;
    border:1px solid rgba(100,116,139,.32);
    border-radius:7px;
    background:#fff;
    box-shadow:0 4px 12px rgba(15,23,42,.10);
    transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;
}
.animal-hero-certificate-link:hover .animal-hero-certificate-thumb,
.animal-hero-certificate-link:focus-visible .animal-hero-certificate-thumb{
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(15,23,42,.16);
    border-color:rgba(37,99,235,.58);
}
.animal-hero-certificate-link:focus-visible{outline:none}
.animal-hero-certificate-thumb>img,
.animal-hero-certificate-pdf{
    display:block;
    width:100%;
    height:100%;
    border:0;
    object-fit:contain;
    background:#fff;
    pointer-events:none;
}
.animal-hero-certificate-fallback{
    display:flex;
    width:100%;
    height:100%;
    flex-direction:column;
    gap:18px;
    padding:18px 14px;
    background:linear-gradient(145deg,#fff,#f1f5f9);
}
.animal-hero-certificate-fallback strong{
    align-self:flex-start;
    padding:4px 7px;
    border:1px solid currentColor;
    border-radius:4px;
    font-size:.68rem;
    letter-spacing:.08em;
}
.animal-hero-certificate-fallback span{
    display:block;
    width:82%;
    height:54%;
    background:repeating-linear-gradient(to bottom,rgba(100,116,139,.32) 0 2px,transparent 2px 12px);
}
.animal-hero-certificate-label{
    max-width:160px;
    color:#475569;
    font-size:.74rem;
    font-weight:700;
    line-height:1.25;
    text-align:center;
}
@media(max-width:850px){
    .animal-hero-certificate{flex-basis:126px}
    .animal-hero-certificate-thumb{width:116px}
    .animal-hero-certificate-label{max-width:130px}
}
@media(max-width:700px){
    .animal-hero-certificate{align-self:flex-start}
}

/* v2.1.151 — program-wide clearing for optional date/datetime fields. */
.fp-clearable-date-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
  align-items:center;
  width:100%;
  margin-top:6px;
}
.fp-clearable-date-wrap>input{
  min-width:0;
  width:100%;
  margin-top:0;
}
.fp-clearable-date-wrap>.fp-clear-date{
  width:auto;
  min-width:58px;
  margin:0;
  padding:9px 10px;
  white-space:nowrap;
}
.fp-clearable-date-wrap>.fp-clear-date:disabled{
  opacity:.42;
  cursor:default;
}
td .fp-clearable-date-wrap{min-width:150px}
td .fp-clearable-date-wrap>.fp-clear-date{min-width:0;padding:7px 8px;font-size:.78rem}
@media(max-width:560px){
  .fp-clearable-date-wrap{grid-template-columns:minmax(0,1fr) auto}
}


/* v2.1.159 — Unified LALAAYI top navigation.
   All roles now use the same green navigation family as Super Administrator.
   Role/access differences are expressed by which destinations are available,
   not by a different menu colour scheme. */
.topbar .fp-main-nav .fp-nav-button {
    background:#dcfce7;
    border-color:#86efac;
    color:#0057d9 !important;
}
.topbar .fp-main-nav .fp-nav-button:hover,
.topbar .fp-main-nav .fp-nav-button:focus-visible {
    background:#bbf7d0;
    border-color:#4ade80;
    color:#0057d9 !important;
}
.topbar .fp-main-nav .fp-nav-button.active {
    background:#00f05a;
    border-color:#00d950;
    border-bottom-color:#00b844;
    color:#00140a !important;
}

/* v2.1.160 — LALAAYI company-side Billing invoice workspace. */
.billing-invoice-editor .billing-subcard,
.billing-payment-form{
    margin:16px 0;
    padding:16px;
    border:1px solid #d7dee7;
    border-radius:10px;
    background:#fbfcfe;
}
.billing-invoice-editor .billing-subcard h3,
.billing-payment-form h3{margin-top:0}
.billing-line-table input,
.billing-line-table select{min-width:90px;margin:0}
.billing-line-table td:first-child input{min-width:240px}
.billing-tax-check{display:flex;align-items:center;gap:6px;white-space:nowrap;margin:0}
.billing-tax-check input{width:auto;min-width:0;margin:0}
.billing-live-totals{
    display:flex;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:18px;
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid #d7dee7;
}
.billing-live-totals span{white-space:nowrap}
.billing-action-row,
.billing-button-cluster{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}
.billing-action-row{margin-top:18px}
.billing-action-row form{margin:0}
.billing-tax-summary{
    margin:14px 0;
    padding:10px 12px;
    border-left:4px solid #86efac;
    background:#f0fdf4;
    border-radius:6px;
}
@media(max-width:760px){
    .billing-line-table td:first-child input{min-width:180px}
    .billing-live-totals{justify-content:flex-start}
    .billing-button-cluster{justify-content:flex-start}
}
@media print{
    .topbar,.sidebar,.billing-action-row,.billing-button-cluster,.fp-support-banner{display:none!important}
    .card{box-shadow:none!important;border:0!important}
}


/* v2.1.162 — Billing invoice pages follow the proven Dolibarr invoice-card structure. */
.billing-dolibarr-card{padding:22px}
.billing-invoice-title{
    display:flex;justify-content:space-between;gap:18px;align-items:flex-start;
    margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #d7dee7
}
.billing-invoice-title h2{margin:0 0 6px}
.billing-invoice-title p{margin:0}
.billing-dolibarr-header{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:34px;margin:10px 0 28px
}
.billing-info-row,.billing-amount-row,.billing-payment-strip,.billing-form-row{
    display:grid;grid-template-columns:minmax(150px,.9fr) minmax(0,1.4fr);
    gap:14px;align-items:center;min-height:38px;padding:7px 10px;border-bottom:1px solid #e5e7eb
}
.billing-info-row span,.billing-amount-row span,.billing-payment-strip span,.billing-form-row span{color:#64748b}
.billing-amount-row strong,.billing-payment-strip strong{text-align:right}
.billing-payment-strip{background:#f8fafc}
.billing-remaining strong{font-size:1.22rem;color:#9f1239}
.billing-form-row input,.billing-form-row select{margin:0;width:100%}
.billing-dolibarr-lines{width:100%;border-collapse:collapse}
.billing-dolibarr-lines th{background:#f1f5f9;color:#334155}
.billing-dolibarr-lines th,.billing-dolibarr-lines td{padding:10px 12px;border-bottom:1px solid #e5e7eb;vertical-align:middle}
.billing-dolibarr-lines input,.billing-dolibarr-lines select{margin:0;min-width:72px}
.billing-dolibarr-lines td:first-child input{min-width:260px}
.billing-dolibarr-lines .billing-line-inc,.billing-dolibarr-lines .billing-line-total{white-space:nowrap}
.billing-dolibarr-card .billing-action-row{justify-content:center;padding-top:18px;border-top:1px solid #e5e7eb}
.billing-dolibarr-card .billing-action-row form{margin:0}
@media(max-width:900px){
    .billing-dolibarr-header{grid-template-columns:1fr;gap:18px}
}
@media(max-width:640px){
    .billing-invoice-title{flex-direction:column}
    .billing-info-row,.billing-amount-row,.billing-payment-strip,.billing-form-row{grid-template-columns:1fr}
    .billing-amount-row strong,.billing-payment-strip strong{text-align:left}
    .billing-dolibarr-lines td:first-child input{min-width:180px}
}

/* v2.1.163 — compact Dolibarr-style percentage fields and separate invoice actions. */
.billing-dolibarr-lines .billing-line-tax-rate{max-width:92px;text-align:right;}
.billing-dolibarr-lines .billing-line-price{max-width:150px;}
.billing-dolibarr-lines .billing-line-qty{max-width:105px;}
.billing-dolibarr-lines .billing-line-disc{max-width:95px;}
.billing-action-row{align-items:center;}

/* v2.1.177a — keep draft invoice money fields visually consistent with validated invoices. */
.billing-dolibarr-lines .billing-currency-field{display:flex;align-items:center;gap:6px;white-space:nowrap;}
.billing-dolibarr-lines .billing-currency-code{color:#64748b;font-weight:600;font-size:.9rem;}
.billing-dolibarr-lines .billing-currency-field .billing-line-price{min-width:92px;max-width:118px;}

/* LALAAYI v2.1.179 — farmer-style Cashbook / GST Register */
.finance-cashbook-dashboard-card{margin-top:1rem}
.finance-cashbook-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:14px 0}
.finance-cashbook-toolbar label{min-width:min(420px,100%);margin:0;font-weight:700}
.finance-cashbook-toolbar input[type="search"]{margin-top:6px;width:100%}
.finance-cashbook-toolbar>small{max-width:640px;color:var(--fp-muted,#64748b)}
.finance-cashbook-dashboard-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.finance-cashbook-dashboard-totals span{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--fp-border,#d1d5db);border-radius:10px;background:rgba(37,99,235,.025)}
.finance-cashbook-dashboard-totals strong{font-size:1.05rem}
.finance-cashbook-dashboard-totals small{color:var(--fp-muted,#64748b)}
.finance-cashbook-scroll{max-height:70vh;overflow:auto;position:relative;border:1px solid var(--fp-border,#d1d5db);border-radius:10px}
.finance-cashbook-scroll-dashboard{max-height:430px}
.finance-cashbook-table{min-width:1380px;margin:0}
.finance-cashbook-table thead th{position:sticky;top:0;z-index:4;background:var(--fp-table-head-bg,#f8fafc);box-shadow:0 1px 0 var(--fp-border,#d1d5db),0 4px 9px -8px rgba(15,23,42,.45)}
.finance-cashbook-table .money-cell{text-align:right;white-space:nowrap}
.finance-cashbook-table td:nth-child(1),.finance-cashbook-table td:nth-child(2){white-space:nowrap}
.finance-cashbook-income td:nth-child(7){color:#15803d;font-weight:700}
.finance-cashbook-expense td:nth-child(8){color:#b91c1c;font-weight:700}
.finance-cashbook-period-row td{background:color-mix(in srgb,var(--fp-panel-bg,#fff) 86%,#f7d98b 14%);border-top:2px solid color-mix(in srgb,var(--fp-border,#d1d5db) 50%,#d69e2e 50%)}
.finance-cashbook-year-row td{background:color-mix(in srgb,var(--fp-panel-bg,#fff) 82%,#b7e7c9 18%);border-top:3px solid color-mix(in srgb,var(--fp-border,#d1d5db) 45%,#15803d 55%)}
@media(max-width:760px){.finance-cashbook-dashboard-totals{grid-template-columns:1fr}.finance-cashbook-toolbar{align-items:stretch}.finance-cashbook-toolbar label{min-width:100%}}

/* LALAAYI v2.1.180 — compact Owner-dashboard Cashbook so the full register fits the card more often. */
.finance-cashbook-scroll-dashboard .finance-cashbook-table{
    min-width:1080px;
    font-size:.78rem;
    line-height:1.22;
}
.finance-cashbook-scroll-dashboard .finance-cashbook-table th,
.finance-cashbook-scroll-dashboard .finance-cashbook-table td{
    padding:6px 7px;
}
.finance-cashbook-scroll-dashboard .finance-cashbook-table thead th{
    font-size:.76rem;
    line-height:1.15;
}
.finance-cashbook-scroll-dashboard .finance-cashbook-table td small{
    font-size:.72rem;
    line-height:1.15;
}
.finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(3){
    width:24%;
}


/* LALAAYI v2.1.181 — one GST received/paid column with farmer-friendly colour cues. */
.finance-cashbook-gst-received{color:#15803d!important;font-weight:700}
.finance-cashbook-gst-paid{color:#b91c1c!important;font-weight:700}
.finance-cashbook-money-in{color:#15803d!important;font-weight:700}
.finance-cashbook-money-out{color:#b91c1c!important;font-weight:700}
.finance-cashbook-cash-positive{color:#15803d!important;font-weight:700}
.finance-cashbook-cash-negative{color:#b91c1c!important;font-weight:700}
.finance-cashbook-gst-owing{color:#b91c1c!important}
.finance-cashbook-gst-credit{color:#15803d!important}
.finance-cashbook-gst-owing small,.finance-cashbook-gst-credit small{font-weight:700}

/* LALAAYI v2.1.182 — narrower Invoice / Ref column on the Owner-dashboard Cashbook. */
.finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(2),
.finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(2){
    width:112px;
    max-width:112px;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
}

/* LALAAYI v2.1.183 — narrower Date column on the Owner-dashboard Cashbook. */
.finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(1),
.finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(1){
    width:86px;
    min-width:86px;
    max-width:86px;
    white-space:nowrap;
    padding-left:5px;
    padding-right:5px;
}

/* LALAAYI v2.1.184 — lock compact dashboard Cashbook columns so Date/Ref stay narrow and the full table fits the card on desktop. */
@media (min-width:980px){
    .finance-cashbook-scroll-dashboard .finance-cashbook-table{
        width:100%;
        min-width:0;
        table-layout:fixed;
    }
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(1),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(1){width:7%;min-width:0;max-width:none}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(2),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(2){width:9%;min-width:0;max-width:none}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(3),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(3){width:20%}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(4),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(4){width:8%}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(5),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(5){width:8%}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(6),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(6){width:11%}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(7),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(7){width:8%}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(8),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(8){width:8%}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(9),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(9){width:10%}
    .finance-cashbook-scroll-dashboard .finance-cashbook-table th:nth-child(10),
    .finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(10){width:11%}
}

/* LALAAYI v2.1.185 — make Invoice / Ref values visually match Product / Service text size on the Owner dashboard. */
.finance-cashbook-scroll-dashboard .finance-cashbook-table td:nth-child(2){
    font-size:.78rem;
    line-height:1.22;
    font-weight:600;
}

/* LALAAYI v2.1.186 — remove the unnecessary bottom scrollbar from the desktop Owner-dashboard Cashbook. */
@media (min-width:980px){
    .finance-cashbook-scroll-dashboard{
        overflow-x:hidden;
        overflow-y:auto;
    }
}

/* LALAAYI v2.1.187 — allow the dashboard year-end cash-balance note to wrap instead of forcing horizontal overflow. */
@media (min-width:980px){
    .finance-cashbook-scroll-dashboard .finance-cashbook-year-row td:last-child{
        white-space:normal;
    }
    .finance-cashbook-scroll-dashboard .finance-cashbook-year-row td:last-child small{
        display:block;
        white-space:normal;
        overflow-wrap:normal;
        word-break:normal;
        line-height:1.15;
    }
}

/* LALAAYI v2.1.189 — farmer-friendly bank reconciliation. */
.finance-bank-anchor{
    margin:12px 0 16px;
    padding:11px 13px;
    border:1px solid var(--fp-border,#d1d5db);
    border-left:4px solid #2563eb;
    border-radius:9px;
    background:color-mix(in srgb,var(--fp-panel-bg,#fff) 94%,#dbeafe 6%);
}
.finance-bank-anchor small{color:var(--fp-muted,#64748b)}
.finance-bank-form{margin-top:14px}
.finance-bank-form textarea{width:100%;resize:vertical}
.finance-bank-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    max-width:100%;
    padding:4px 9px;
    border-radius:999px;
    font-size:.78rem;
    line-height:1.15;
    font-weight:800;
    white-space:nowrap;
}
.finance-bank-status-balanced{background:#dcfce7;color:#166534}
.finance-bank-status-baseline{background:#dbeafe;color:#1d4ed8}
.finance-bank-status-difference{background:#fee2e2;color:#b91c1c}
.finance-bank-balanced{color:#15803d!important}
.finance-bank-difference{color:#b91c1c!important}
.finance-bank-reconciliation-table{min-width:1040px;margin:0}
.finance-bank-reconciliation-table th,.finance-bank-reconciliation-table td{vertical-align:top}
.finance-bank-reconciliation-table .money-cell{text-align:right;white-space:nowrap}
.finance-bank-reconciliation-table td small{color:var(--fp-muted,#64748b)}
.finance-bank-recheck{margin-top:8px}
.finance-bank-recheck .button{padding:6px 9px;font-size:.78rem}
.finance-bank-explainer{
    margin-top:14px;
    padding:11px 13px;
    border-radius:9px;
    background:color-mix(in srgb,var(--fp-panel-bg,#fff) 93%,#fef3c7 7%);
    color:var(--fp-muted,#475569);
    line-height:1.45;
}
.finance-bank-explainer strong{color:var(--fp-text,#0f172a)}
@media(max-width:760px){
    .finance-bank-status{white-space:normal;text-align:center}
}
.finance-metric-grid .metric .finance-bank-status{font-size:.92rem}

/* LALAAYI v2.1.191 — protected bank-statement evidence attached to reconciliations. */
.finance-bank-document-cell{min-width:190px}
.finance-bank-document-list{display:grid;gap:8px}
.finance-bank-document-item{display:grid;grid-template-columns:auto auto;gap:4px 8px;align-items:center}
.finance-bank-document-item small{grid-column:1/-1;max-width:220px;overflow-wrap:anywhere}
.finance-bank-document-download{font-size:.78rem;white-space:nowrap}
.finance-bank-document-upload{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:end;margin-top:8px;min-width:180px}
.finance-bank-document-upload label{margin:0;font-size:.78rem}
.finance-bank-document-upload label span{display:block;margin-bottom:3px}
.finance-bank-document-upload input[type=file]{width:100%;max-width:220px;font-size:.72rem;padding:4px}
.finance-bank-document-upload .button{padding:6px 8px;font-size:.76rem}
.finance-bank-reconciliation-table{min-width:1240px}


/* LALAAYI v2.1.192 — compact bank-statement evidence column and no desktop horizontal scroll. */
@media(min-width:761px){
    .finance-bank-reconciliation-table{
        width:100%;
        min-width:0;
        table-layout:fixed;
    }
    .finance-bank-reconciliation-table th:nth-child(1),
    .finance-bank-reconciliation-table td:nth-child(1){width:10%}
    .finance-bank-reconciliation-table th:nth-child(2),
    .finance-bank-reconciliation-table td:nth-child(2){width:10%}
    .finance-bank-reconciliation-table th:nth-child(3),
    .finance-bank-reconciliation-table td:nth-child(3){width:18%}
    .finance-bank-reconciliation-table th:nth-child(4),
    .finance-bank-reconciliation-table td:nth-child(4){width:20%}
    .finance-bank-reconciliation-table th:nth-child(5),
    .finance-bank-reconciliation-table td:nth-child(5){width:11%}
    .finance-bank-reconciliation-table th:nth-child(6),
    .finance-bank-reconciliation-table td:nth-child(6){width:9%}
    .finance-bank-reconciliation-table th:nth-child(7),
    .finance-bank-reconciliation-table td:nth-child(7){width:10%}
    .finance-bank-reconciliation-table th:nth-child(8),
    .finance-bank-reconciliation-table td:nth-child(8){width:12%}
    .finance-bank-reconciliation-table th,
    .finance-bank-reconciliation-table td{
        overflow-wrap:normal;
        word-break:normal;
    }
    .finance-bank-reconciliation-table .money-cell{
        white-space:normal;
    }
    .finance-bank-reconciliation-table .money-cell > small{
        display:block;
        white-space:normal;
    }
}
.finance-bank-document-cell{min-width:0}
.finance-bank-document-list{gap:6px}
.finance-bank-document-item{display:grid;gap:4px}
.finance-bank-document-name{
    display:block;
    max-width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.finance-bank-document-actions{
    display:flex;
    gap:7px;
    align-items:center;
    flex-wrap:wrap;
}
.finance-bank-document-actions .button{padding:5px 8px;font-size:.74rem}
.finance-bank-document-download{font-size:.74rem}
.finance-bank-no-document{display:block;line-height:1.2}
.finance-bank-document-upload{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:5px;
    align-items:center;
    margin-top:6px;
    min-width:0;
}
.finance-bank-document-upload input[type=file]{
    width:100%;
    min-width:0;
    max-width:none;
    font-size:.68rem;
    padding:3px;
}
.finance-bank-document-upload .button{padding:5px 7px;font-size:.72rem}
@media(max-width:760px){
    .finance-bank-reconciliation-table{min-width:1040px}
}

/* LALAAYI v2.1.205 — fit the full Finance Cashbook / GST Register on desktop without a horizontal scrollbar. */
@media (min-width:980px){
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table{
        width:100%;
        min-width:0;
        table-layout:fixed;
        font-size:.82rem;
        line-height:1.22;
    }
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th,
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td{
        padding:7px 6px;
    }
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table thead th{
        font-size:.80rem;
        line-height:1.15;
        white-space:normal;
    }
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td small{
        font-size:.75rem;
        line-height:1.15;
    }
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(1),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(1){width:9%;white-space:nowrap}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(2),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(2){width:12%;white-space:normal;overflow-wrap:anywhere}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(3),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(3){width:22%}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(4),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(4){width:8%}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(5),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(5){width:8%}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(6),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(6){width:10%}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(7),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(7){width:7%}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(8),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(8){width:7%}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(9),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(9){width:8%}
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table th:nth-child(10),
    .finance-cashbook-scroll:not(.finance-cashbook-scroll-dashboard) .finance-cashbook-table td:nth-child(10){width:9%}
}
/* v2.1.208 controlled ledger reversal */
.finance-ledger-action{min-width:120px;vertical-align:top}.finance-ledger-action details{white-space:normal}.finance-ledger-action summary{cursor:pointer;font-weight:600}.finance-reversal-form{min-width:220px;padding-top:8px}.finance-reversal-form label{display:block;margin:6px 0}.finance-reversal-form input,.finance-reversal-form textarea{width:100%;box-sizing:border-box}

/* LALAAYI v2.1.212 — Running Cash Balance colour fix.
   The global strong heading colour overrides inherited td colour, so colour the
   bold balance itself as well as the containing cell. */
.finance-cashbook-cash-positive strong{color:#15803d!important}
.finance-cashbook-cash-negative strong{color:#b91c1c!important}

/* LALAAYI v2.1.218 — Running Ledger balance colours.
   Positive balances are green, negative balances are red, and zero remains neutral. */
.finance-ledger-balance-positive{color:#15803d!important;font-weight:700}
.finance-ledger-balance-negative{color:#b91c1c!important;font-weight:700}
.finance-ledger-balance-positive strong{color:#15803d!important}
.finance-ledger-balance-negative strong{color:#b91c1c!important}

/* LALAAYI v2.1.226 — global card "Back to the top" control.
   The button uses the same organisation/platform Navigation colour as the
   top menu so it remains visually consistent throughout the site. */
.card.fp-card-has-top-link{
  position:relative;
  padding-right:64px;
}
.fp-card-top-link{
  position:absolute;
  top:10px;
  right:10px;
  z-index:4;
  width:34px;
  height:34px;
  min-width:34px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 78%,#000);
  border-radius:8px;
  background:var(--fp-button-nav-bg,#4338ca);
  color:var(--fp-button-nav-text,#fff);
  font-size:20px;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 1px 3px color-mix(in srgb,var(--fp-shadow-color,#64748b) 28%,transparent);
}
.fp-card-top-link:hover,
.fp-card-top-link:focus-visible{
  background:color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 86%,#000);
  color:var(--fp-button-nav-text,#fff);
  transform:translateY(-1px);
}
.fp-card-top-link:focus-visible{
  outline:3px solid color-mix(in srgb,var(--fp-button-nav-bg,#4338ca) 38%,transparent);
  outline-offset:2px;
}
@media(max-width:560px){
  .card.fp-card-has-top-link{padding-right:56px}
  .fp-card-top-link{width:32px;height:32px;min-width:32px;font-size:18px;top:8px;right:8px}
}
@media print{
  .fp-card-top-link{display:none!important}
  .card.fp-card-has-top-link{padding-right:20px}
}
