:root{--bg:#f5f3ed;--panel:#fff;--ink:#24251f;--muted:#6b6d64;--line:#dedbd0;--brand:#365c3a;--brand2:#27472b;--accent:#b9822b;--danger:#a83a32;--shadow:0 10px 28px rgba(38,45,36,.08)}
*{box-sizing:border-box}html{font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-height:100vh}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.topbar{min-height:68px;background:#243126;color:#fff;display:flex;align-items:center;padding:0 28px;gap:28px;position:sticky;top:0;z-index:10;box-shadow:0 2px 12px rgba(0,0,0,.18)}.brand{font-size:1.35rem;font-weight:800;color:#fff}.topbar nav{display:flex;gap:18px;flex:1}.topbar nav a{color:#eef5ee;font-weight:600}.userbox{display:flex;gap:12px;align-items:center;font-size:.9rem}.container{max-width:1250px;margin:34px auto;padding:0 22px}footer{text-align:center;color:var(--muted);padding:28px}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.pagehead h1{margin:0;font-size:2rem}.pagehead p{margin:.35rem 0 0;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow);margin-bottom:20px}.login-card{max-width:470px;margin:9vh auto}.login-card h1{margin-bottom:.25rem}.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.stats.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.stat span{display:block;color:var(--muted);font-size:.86rem;margin-bottom:6px}.stat strong{font-size:1.45rem}.stat.highlight{border-left:5px solid var(--accent)}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.action-card{display:block;color:inherit;transition:.15s}.action-card:hover{transform:translateY(-2px);text-decoration:none}.action-card h3{color:var(--brand);margin-top:0}.button,button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #bbb7aa;border-radius:8px;padding:9px 14px;background:#fff;color:var(--ink);font-weight:650;cursor:pointer;font:inherit}.primary{background:var(--brand);border-color:var(--brand);color:#fff}.primary:hover{background:var(--brand2)}.full{width:100%;margin-top:18px}.linkbutton{border:0;background:transparent;color:inherit;padding:0}.danger-text{color:var(--danger)}label{display:block;font-weight:650;margin:0 0 6px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #c9c5ba;border-radius:8px;background:#fff;font:inherit;color:var(--ink)}textarea{resize:vertical}.stack>*+*{margin-top:10px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.fullrow{grid-column:1/-1}.formbuttons{display:flex;gap:10px}.checkline{display:flex;gap:9px;align-items:center;padding-top:27px}.checkline input{width:auto}.checkline label{margin:0}.validation{color:var(--danger);font-size:.9rem}.alert{padding:12px 15px;border-radius:9px;margin-bottom:18px}.alert.success{background:#e7f3e7;border:1px solid #bdd7bd}.alert.danger{background:#fae8e6;border:1px solid #e8b8b3}.filterbar{display:flex;gap:10px;margin:0 0 18px}.filterbar input,.filterbar select{max-width:330px}.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 13px;border-bottom:1px solid #ece9e1;vertical-align:top}th{background:#efede7;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:#55594f}tr:last-child td{border-bottom:0}.money{text-align:right;white-space:nowrap}.actions{display:flex;gap:12px;align-items:center}.actions form{margin:0}.empty{text-align:center;color:var(--muted);padding:30px}.pill{display:inline-block;border-radius:999px;padding:5px 10px;background:#eceae2;font-size:.82rem;font-weight:700}.pill.income{background:#e5f3e6;color:#276532}.pill.expense{background:#f7e8e5;color:#8c3932}.details{display:grid;grid-template-columns:140px 1fr;gap:9px 12px}.details dt{font-weight:700}.details dd{margin:0}.pedigree{display:grid;gap:16px}.pedigree>div{border-left:4px solid var(--accent);padding-left:14px}.pedigree span,.pedigree small{display:block;margin-top:5px}.pedigree small{color:var(--muted)}.prewrap{white-space:pre-wrap}.row3{display:grid;grid-template-columns:1fr 90px 120px;gap:8px}.admin-actions{min-width:380px}.inlineform{display:flex;gap:6px;margin-bottom:7px}.inlineform select,.inlineform input{min-width:140px}.inlineform button{white-space:nowrap}.note{background:#fffcf2;border-left:5px solid var(--accent)}code{font-family:Consolas,monospace;background:#eeece5;padding:2px 5px;border-radius:5px;font-size:.88rem}
@media(max-width:900px){.topbar{align-items:flex-start;flex-wrap:wrap;padding:16px}.topbar nav{order:3;width:100%;overflow:auto;padding-bottom:4px}.stats,.stats.compact,.grid.two,.grid.three,.formgrid{grid-template-columns:1fr 1fr}.admin-actions{min-width:300px}}
@media(max-width:620px){.container{padding:0 12px;margin-top:22px}.pagehead{align-items:flex-start;flex-direction:column}.stats,.stats.compact,.grid.two,.grid.three,.formgrid{grid-template-columns:1fr}.filterbar{flex-direction:column}.filterbar input,.filterbar select{max-width:none}.row3{grid-template-columns:1fr}.topbar nav{gap:12px}.userbox{width:100%;justify-content:space-between}.fullrow{grid-column:auto}}

/* V8 livestock location + advanced filtering */
.filterpanel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin:0 0 14px;box-shadow:var(--shadow)}
.filtergrid{display:grid;grid-template-columns:2fr repeat(6,minmax(145px,1fr));gap:12px;align-items:end}
.filtergrid label{font-size:.82rem;color:var(--muted)}
.filter-actions{display:flex;gap:8px;align-items:end}
.filter-actions .button,.filter-actions button{white-space:nowrap}
.bulkbar{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:12px;padding:13px 16px;margin-bottom:14px}
.bulkbar strong,.bulkbar span{display:block}.bulkbar span{margin-top:3px;font-size:.86rem}
.bulkcontrols{display:flex;gap:8px;min-width:min(520px,55%)}.bulkcontrols select{min-width:260px}
.selectcol{width:42px;text-align:center}.selectcol input{width:auto;transform:scale(1.1)}
.quickassign{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.quickassign .inlineform{margin:0}.quickassign select{flex:1}
@media(max-width:1150px){.filtergrid{grid-template-columns:repeat(4,minmax(0,1fr))}.filter-search{grid-column:span 2}}
@media(max-width:760px){.filtergrid{grid-template-columns:1fr 1fr}.filter-search{grid-column:1/-1}.bulkbar{align-items:stretch;flex-direction:column}.bulkcontrols{min-width:0;width:100%}.bulkcontrols select{min-width:0}.filter-actions{grid-column:1/-1}}
@media(max-width:520px){.filtergrid{grid-template-columns:1fr}.filter-search,.filter-actions{grid-column:auto}.bulkcontrols{flex-direction:column}}


/* V9 animal age, counters, and printable livestock reports */
.pageactions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.listcount{display:inline-block;margin-top:10px;padding:6px 10px;border-radius:999px;background:#e9eee7;color:#314b34;font-size:.9rem}.listcount strong{font-size:1rem}.listcount span{color:var(--muted)}.nowrap{white-space:nowrap}
.report-body{background:#ecebe6;color:#20231f}.report-page{max-width:1400px;margin:24px auto;background:#fff;padding:34px 38px;box-shadow:0 5px 22px rgba(0,0,0,.12)}.report-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:22px}.report-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;border-bottom:3px solid #365c3a;padding-bottom:16px}.report-header h1{font-size:2rem;margin:3px 0}.report-header h2{font-size:1.15rem;margin:0;color:#5f655d;font-weight:650}.report-kicker{text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#365c3a;font-size:.78rem}.report-meta{text-align:right;color:#55594f;font-size:.9rem}.report-filters{background:#f4f3ee;border:1px solid #dedbd0;border-radius:8px;margin:16px 0;padding:10px 12px;font-size:.9rem}.report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 20px}.report-summary>div{border:1px solid #dedbd0;border-radius:9px;padding:13px}.report-summary span{display:block;color:#6b6d64;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.report-summary strong{display:block;margin-top:4px;font-size:1.25rem}.report-breakdowns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px}.report-breakdowns h3,.report-section-title{margin:0 0 8px}.compact-report-table{border:1px solid #dedbd0}.compact-report-table td{padding:7px 10px}.report-table{font-size:.79rem;border:1px solid #d8d5ca}.report-table th,.report-table td{padding:7px 8px}.report-table th{font-size:.71rem}.report-footer{margin-top:18px;padding-top:10px;border-top:1px solid #dedbd0;color:#777b72;font-size:.76rem;text-align:center}
@media(max-width:800px){.pageactions{width:100%}.report-page{margin:0;padding:20px}.report-summary{grid-template-columns:1fr 1fr}.report-breakdowns{grid-template-columns:1fr}.report-header{flex-direction:column}.report-meta{text-align:left}.report-table{font-size:.72rem}}
@media print{.topbar,body>footer,.no-print{display:none!important}body.report-body{background:#fff}.report-page{max-width:none;margin:0;padding:0;box-shadow:none}.no-print{display:none!important}.report-header{padding-bottom:10px}.report-summary{margin:10px 0 14px}.report-breakdowns{margin-bottom:14px}.report-table{font-size:8.5pt}.report-table th,.report-table td{padding:4px 5px}.report-table thead{display:table-header-group}.report-table tr{break-inside:avoid}.report-footer{position:relative}.report-page a{color:inherit;text-decoration:none}@page{size:landscape;margin:.45in}}

/* V10 data backup/import */
.data-management-grid{align-items:stretch}.data-card{display:grid;grid-template-columns:58px 1fr;gap:16px;align-items:start}.data-card h2{margin:0 0 8px;color:var(--brand)}.data-card p{line-height:1.5}.data-card-icon{width:50px;height:50px;border-radius:12px;display:grid;place-items:center;background:#e8efe7;color:var(--brand);font-size:1.55rem;font-weight:800}.data-summary{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.data-summary span{background:#f1f0ea;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:.86rem}.danger-card{border-top:4px solid #a4574f}.danger-card .data-card-icon{background:#f7e9e7;color:#8a3d36}.confirmline{display:flex;gap:9px;align-items:flex-start;font-weight:500;line-height:1.4;margin:8px 0}.confirmline input{width:auto;margin-top:3px}.danger-button{background:#8f3d37;border-color:#8f3d37;color:#fff}.danger-button:hover{background:#742f2b}
@media(max-width:700px){.data-card{grid-template-columns:1fr}.data-card-icon{width:44px;height:44px}}

/* V11 land detail + assigned livestock */
.card-title{margin:0 0 16px;color:var(--brand);font-size:1.12rem}.land-overview-grid .card{margin-bottom:18px}.subhead{margin-top:26px;margin-bottom:12px}.subhead h2{margin:0;font-size:1.4rem}.subhead p{margin:.3rem 0 0;color:var(--muted)}.land-stats{margin-top:10px}
@media(max-width:900px){.land-stats{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.land-stats{grid-template-columns:1fr}}


/* V12 livestock pagination */
.paginationbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:16px 0 4px;flex-wrap:wrap}.pagesize form{display:flex;align-items:center;gap:9px}.pagesize label{margin:0;color:var(--muted);font-size:.86rem}.pagesize select{width:auto;min-width:76px;padding:8px 28px 8px 10px}.pager{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pagebutton{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 11px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--ink);font-weight:650}.pagebutton:hover{text-decoration:none;border-color:#a9b3a6;background:#f5f7f3}.pagebutton.active{background:var(--brand);border-color:var(--brand);color:#fff}.pagebutton.disabled{pointer-events:none;opacity:.42}.pageellipsis{padding:0 3px;color:var(--muted)}.count-total{margin-left:4px}.paginationnote{font-size:.84rem;color:var(--muted)}
@media(max-width:700px){.paginationbar{align-items:stretch;flex-direction:column}.pagesize form{justify-content:space-between}.pager{justify-content:center}.pagebutton{min-width:36px;padding:0 9px}}

/* V14 ranch administration */
.cardhead-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.cardhead-row h2{margin:0}.cardhead-row p{margin:.35rem 0 0}.admin-ranch-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.admin-ranch-actions form{margin:0}.button.small,button.small{padding:7px 10px;font-size:.84rem;border-radius:7px}.danger-outline{border-color:#b96b64!important;color:#8f3d37!important;background:#fff!important}.danger-outline:hover{background:#faefed!important;text-decoration:none}.pill.status-active{background:#e5f3e6;color:#276532}.pill.status-disabled{background:#f4e6e3;color:#8c3932}.admin-editor-card{max-width:980px}.ranch-id-note{padding:12px 14px;background:#f5f4ef;border:1px solid var(--line);border-radius:9px}.delete-ranch-warning{display:grid;grid-template-columns:54px 1fr;gap:16px;align-items:start;background:#fff5f3;border:1px solid #e0aaa5;border-left:6px solid #943f38;border-radius:12px;padding:18px 20px;margin-bottom:18px}.delete-ranch-warning h2{margin:0 0 6px;color:#7e302b}.delete-ranch-warning p{margin:0;line-height:1.55}.danger-symbol{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#943f38;color:#fff;font-size:1.5rem;font-weight:900}.delete-ranch-stats{margin-bottom:18px}.delete-ranch-grid{align-items:stretch}.plain-user-list{list-style:none;padding:0;margin:0}.plain-user-list li{padding:10px 0;border-bottom:1px solid var(--line)}.plain-user-list li:last-child{border-bottom:0}.plain-user-list strong,.plain-user-list span{display:block}.plain-user-list span{color:var(--muted);font-size:.88rem;margin-top:2px}.permanent-delete-card{border-top:5px solid #943f38}.permanent-delete-card h2{color:#7e302b}.delete-confirm-form{max-width:620px}.delete-confirm-form input{border-color:#c98b85}.delete-confirm-form .danger-button{width:max-content}
@media(max-width:760px){.admin-ranch-actions{min-width:230px}.delete-ranch-warning{grid-template-columns:1fr}.delete-ranch-grid{grid-template-columns:1fr}}

/* V15 crop production */
.crop-entry-form{max-width:1100px}.field-help{display:block;margin-top:5px;color:var(--muted);font-size:.82rem;line-height:1.35}.crop-filters{grid-template-columns:repeat(3,minmax(150px,1fr)) auto}.crop-summary-strip{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}.crop-summary-item{min-width:170px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f8faf6}.crop-summary-item span{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.045em;font-weight:700}.crop-summary-item strong{display:block;margin-top:3px;font-size:1rem}.list-summary{margin:10px 0;color:var(--muted);font-size:.9rem}.list-summary strong{color:var(--ink)}
@media(max-width:850px){.crop-filters{grid-template-columns:1fr 1fr}.crop-filters .filter-actions{grid-column:1/-1}}
@media(max-width:600px){.crop-filters{grid-template-columns:1fr}}

/* V16 linked accounting + equipment */
.locked-link-card{border:1px solid #b8cbb7;border-left:5px solid var(--brand);background:#f3f8f2;border-radius:11px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.locked-link-card strong{font-size:1.08rem;color:var(--brand)}.locked-link-card>span:last-child{font-size:.86rem;color:var(--muted)}.locked-link-kicker{text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:800;color:#61765f}.linked-finance-summary{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin:0 0 14px}.linked-finance-summary span{background:#fff;border:1px solid var(--line);border-radius:9px;padding:11px 13px;color:var(--muted);font-size:.8rem}.linked-finance-summary strong{display:block;color:var(--ink);font-size:1.03rem;margin-bottom:2px}.equipment-filterbar{display:grid;grid-template-columns:2fr repeat(3,minmax(145px,1fr)) auto;gap:12px;align-items:end}.equipment-filterbar label{font-size:.82rem;color:var(--muted)}.table-subline{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}.equipment-form{max-width:1100px}.danger-zone{margin-top:22px;border-top:4px solid #943f38}.danger-zone h2{color:#7e302b;margin-top:0}
@media(max-width:1000px){.equipment-filterbar{grid-template-columns:1fr 1fr}.equipment-filterbar .filter-actions{grid-column:1/-1}.linked-finance-summary{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.equipment-filterbar{grid-template-columns:1fr}.equipment-filterbar .filter-actions{grid-column:auto}.linked-finance-summary{grid-template-columns:1fr}}

/* V18 livestock sales */
.sale-button{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border:1px solid #9b6b22;border-radius:8px;background:#b9822b;color:#fff!important;font-weight:700;cursor:pointer;text-decoration:none}.sale-button:hover{background:#966a23;text-decoration:none}.sale-link{color:#8b5e19!important;font-weight:700}.sale-warning{display:grid;grid-template-columns:52px 1fr;gap:15px;align-items:start;background:#fff8e8;border:1px solid #e4c88e;border-left:5px solid #b9822b;border-radius:12px;padding:16px 18px;margin-bottom:20px}.sale-warning-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#b9822b;color:#fff;font-size:1.25rem;font-weight:900}.sale-warning strong{display:block;color:#6e4c18;font-size:1.02rem}.sale-warning p{margin:.35rem 0 0;color:#5f594d;line-height:1.45}.sale-roster-card h2{margin:0}.sale-form{max-width:1050px}.fullspan{grid-column:1/-1}.sale-total-box{margin:18px 0;padding:16px 18px;border:1px solid #cbd8c9;border-radius:11px;background:#f3f8f2;display:grid;grid-template-columns:1fr auto;gap:3px 18px;align-items:center}.sale-total-box span{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:750}.sale-total-box strong{grid-row:1/3;grid-column:2;font-size:1.65rem;color:var(--brand)}.sale-total-box small{color:var(--muted)}.sold-record-note{margin-top:14px;padding:12px 14px;border-radius:9px;background:#f5eee7;border:1px solid #ddc8af;color:#6b5743;line-height:1.45}.compact-bulkbar{margin:0 0 12px}.compact-bulkbar .bulkcontrols{margin-left:auto}.actions .sale-link{margin-right:2px}
@media(max-width:700px){.sale-total-box{grid-template-columns:1fr}.sale-total-box strong{grid-row:auto;grid-column:auto;margin:4px 0}.sale-warning{grid-template-columns:1fr}.fullspan{grid-column:auto}}

/* V20 three-generation pedigree / lineage */
.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.card-title-row h2{margin:0}.card-title-row>a{font-size:.9rem;font-weight:700}
.pedigree-expanded{display:grid;grid-template-columns:1fr 1fr;gap:16px}.pedigree-parent{border:1px solid var(--line,#d8ded5);border-radius:10px;padding:15px;background:#fbfcfa}.pedigree-parent>strong{display:block;text-transform:uppercase;letter-spacing:.07em;font-size:.76rem;color:#617063;margin-bottom:5px}.pedigree-animal{display:block;font-size:1.08rem;font-weight:800;margin-bottom:3px}.pedigree-parent>small{display:block;color:#6a746b;margin-bottom:12px}.pedigree-unknown{display:block;font-size:1.05rem;font-weight:700;color:#8a918a;margin-bottom:12px}.grandparent-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.grandparent-grid>div{padding:9px 10px;border-radius:8px;background:#f1f4ef;min-height:66px}.grandparent-grid label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#687369;font-weight:800;margin-bottom:4px}.grandparent-grid a,.grandparent-grid span{font-size:.88rem;font-weight:650}.pedigree-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.lineage-subject-card{border-left:5px solid #315b38}.lineage-role{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#667267;font-weight:800}.lineage-subject-card h2{margin:.25rem 0}.lineage-subject-meta{color:#687269}.lineage-generation{margin-top:24px}.lineage-generation-head{margin-bottom:10px}.lineage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.lineage-card{background:#fff;border:1px solid #d8ded5;border-radius:10px;padding:12px;min-height:128px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.lineage-card.unknown{background:#f7f8f6;border-style:dashed}.lineage-name{display:block;font-size:1rem;font-weight:800;margin:5px 0 2px}.lineage-name.muted{color:#8a918a}.lineage-tag,.lineage-meta,.lineage-registry{font-size:.79rem;color:#647066;margin-top:2px}.lineage-card-actions{display:flex;gap:10px;margin-top:10px;padding-top:8px;border-top:1px solid #edf0eb;font-size:.78rem;font-weight:700}
.sale-summary-card{display:flex;flex-direction:column;gap:4px;border-left:5px solid #8c6425}.sale-summary-title{text-transform:uppercase;letter-spacing:.07em;font-size:.73rem;font-weight:800;color:#725b35}.sale-summary-card>strong{font-size:1.1rem}.sale-summary-card>span{color:#687269}.sale-summary-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:7px;font-size:.86rem}.sale-warning{padding:12px 14px;background:#fff8e8;border:1px solid #eadab0;border-radius:8px;color:#5f5235}
@media(max-width:800px){.pedigree-expanded,.grandparent-grid{grid-template-columns:1fr}.card-title-row{align-items:flex-start;flex-direction:column}.lineage-grid{grid-template-columns:1fr}}

/* V21 connected pedigree browser */
.lineage-classic-card{padding:18px}.lineage-classic-key{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:0 2px 12px;color:var(--muted);font-size:.86rem}.lineage-classic-key strong{color:var(--ink)}
.lineage-classic-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fffdf6}
.lineage-classic-tree{position:relative;width:1120px;height:620px;margin:0 auto;background:linear-gradient(180deg,#fffdf8,#fffaf0)}
.lineage-classic-lines{position:absolute;inset:0;width:100%;height:100%;z-index:1}.lineage-classic-lines path{fill:none;stroke:#839084;stroke-width:1.25;vector-effect:non-scaling-stroke}
.lineage-classic-node{position:absolute;z-index:2;transform:translateY(-50%);padding:8px 9px;background:#fffdf6;min-height:56px;display:flex;flex-direction:column;justify-content:center}
.lineage-classic-node.subject{border-left:4px solid var(--brand);padding:12px 13px;min-height:90px}.lineage-classic-node.parent{min-height:78px}.lineage-classic-node.grand{min-height:70px}.lineage-classic-node.great{min-height:58px;padding:5px 8px}
.lineage-classic-node.unknown{opacity:.72}.lineage-classic-role{text-transform:uppercase;letter-spacing:.065em;font-size:.65rem;color:#707a70;font-weight:800;margin-bottom:3px}.lineage-classic-name{font-family:Georgia,"Times New Roman",serif;font-size:1rem;font-weight:800;color:#243a29;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lineage-classic-node.subject .lineage-classic-name{font-size:1.22rem}.lineage-classic-node.great .lineage-classic-name{font-size:.9rem}.lineage-classic-meta{font-size:.72rem;color:#636d64;line-height:1.25;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lineage-classic-focus{font-size:.68rem;font-weight:700;margin-top:4px;white-space:nowrap}
@media(max-width:800px){.lineage-classic-key{flex-direction:column;gap:4px}.lineage-classic-card{padding:12px}}

/* V24 animal disposition workflow */
.disposition-button{border-color:#7a6250;background:#f7f2ec;color:#694e3b!important}.disposition-button:hover{background:#efe4d8;text-decoration:none}.disposition-link{color:#7a5438!important;font-weight:700}.disposition-warning{display:grid;grid-template-columns:52px 1fr;gap:15px;align-items:start;background:#fff9ed;border:1px solid #dfcda8;border-left:5px solid #8a6842;border-radius:12px;padding:16px 18px;margin-bottom:20px}.disposition-warning-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#8a6842;color:#fff;font-size:1.25rem;font-weight:900}.disposition-warning strong{display:block;font-size:1.04rem;color:#604a36}.disposition-warning p{margin:.35rem 0 0;color:#625b51;line-height:1.45}.disposition-form{max-width:1100px}.disposition-section{border:1px solid var(--line);border-radius:11px;padding:16px;background:#faf9f5}.disposition-section h2{margin:0 0 14px;font-size:1.05rem}.embedded-grid{margin-top:0}.optional-expense-card{border:1px solid #cfd9cd;border-left:5px solid var(--brand);border-radius:11px;padding:15px 16px;background:#f4f8f3}.compact-checkline{padding-top:0;margin-bottom:12px}.danger-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #903b34;border-radius:8px;padding:9px 14px;background:#a8473e;color:#fff;font-weight:700;cursor:pointer;font:inherit}.danger-button:hover{background:#8e3932}.return-active-form{margin-top:14px;padding-top:14px;border-top:1px solid #dacdbd}.return-active-form .inlineform{margin-bottom:4px}.return-active-form input[type=date]{max-width:190px}.disposition-history{display:grid;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.disposition-history-item{display:grid;grid-template-columns:145px 1fr;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}.disposition-history-item:last-child{border-bottom:0}.disposition-history-date{font-weight:750;color:#5f675d}.disposition-history-item strong,.disposition-history-item span,.disposition-history-item small{display:block}.disposition-history-item span{margin-top:3px}.disposition-history-item small{color:var(--muted);margin-top:4px;line-height:1.4}.readonly-status{min-height:42px;padding:8px 10px;border:1px solid #d6d2c7;border-radius:8px;background:#f4f2ed}.readonly-status small{display:block;color:var(--muted);margin-top:5px}
@media(max-width:700px){.disposition-warning{grid-template-columns:1fr}.disposition-history-item{grid-template-columns:1fr;gap:5px}.return-active-form .inlineform{flex-direction:column}.return-active-form input[type=date]{max-width:none}}

/* V25 breeding & birth management */
.breeding-filterbar{grid-template-columns:1fr 1fr 1fr auto}.breeding-form{max-width:1100px}.breeding-events{display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden}.breeding-events>div{display:flex;flex-direction:column;gap:3px;padding:11px 13px;border-bottom:1px solid var(--line);background:#fff}.breeding-events>div:last-child{border-bottom:0}.breeding-events span,.breeding-events small{color:var(--muted)}.birth-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.birth-summary span{padding:12px;border:1px solid var(--line);border-radius:9px;background:#f7f9f6}.birth-summary strong{display:block;font-size:1.08rem}.birth-form{max-width:1180px}.offspring-head{margin-top:18px}.offspring-grid{display:grid;gap:12px}.offspring-row{border:1px solid var(--line);border-radius:10px;padding:13px;background:#fafbf9}.offspring-row-head{margin-bottom:9px}.grid.four{grid-template-columns:repeat(4,1fr)}.span2{grid-column:span 2}.weaning-date{max-width:280px;margin-bottom:16px}.offspring-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px}.offspring-links>a{display:flex;flex-direction:column;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fafbf9;font-weight:700}.offspring-links small{color:var(--muted);font-weight:500;margin-top:2px}.birth-card{margin-top:18px}.empty-note{color:var(--muted)}
@media(max-width:850px){.breeding-filterbar,.grid.four,.birth-summary{grid-template-columns:1fr 1fr}.span2{grid-column:auto}}
@media(max-width:600px){.breeding-filterbar,.grid.four,.birth-summary{grid-template-columns:1fr}}

/* V26 admin ranch backup console */
.summary-grid{margin-bottom:18px}.summary-grid .stat{margin-bottom:0}.summary-grid .stat small{display:block;color:var(--muted);margin-top:5px}.backup-local-time{white-space:nowrap}.admin-backup-note{max-width:520px}.card .details{margin:0}.card .details dd{min-width:0;overflow-wrap:anywhere}
@media(max-width:900px){.summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.summary-grid{grid-template-columns:1fr}.cardhead-row{flex-direction:column}.cardhead-row form{width:100%}.cardhead-row form button{width:100%}}

/* V28 shared list-table alignment fix
   Keep action cells as real table cells. Earlier .actions { display:flex } changed
   <td class="actions"> out of the table formatting context, which caused the
   right-hand columns and row separators to drift out of alignment. */
.tablewrap th,
.tablewrap td{
    vertical-align:middle;
}
.tablewrap thead th{
    white-space:nowrap;
}
.tablewrap td.actions{
    display:table-cell;
    white-space:nowrap;
    width:1%;
    vertical-align:middle;
}
.tablewrap td.actions > a,
.tablewrap td.actions > form{
    display:inline-flex;
    align-items:center;
    vertical-align:middle;
    margin:0 12px 0 0;
}
.tablewrap td.actions > *:last-child{
    margin-right:0;
}
.tablewrap td.actions form{
    margin-top:0;
    margin-bottom:0;
}
.tablewrap td.actions .linkbutton{
    line-height:1.35;
    vertical-align:middle;
}
.tablewrap .selectcol{
    vertical-align:middle;
}
.tablewrap tbody tr{
    height:48px;
}
.tablewrap tbody tr:hover td{
    background:#fbfaf6;
}
@media(max-width:760px){
    .tablewrap td.actions{min-width:0}
}


/* V29 shared paging across large record lists */
.pagesize{display:flex;align-items:center;gap:9px}.pagesize label{margin:0;color:var(--muted);font-size:.86rem}.pagesize select{width:auto;min-width:76px;padding:8px 28px 8px 10px}.listcount{margin-top:6px;color:var(--muted);font-size:.9rem}.listcount strong{color:var(--ink)}
@media(max-width:700px){.pagesize{justify-content:space-between}}


/* V30 mobile-responsive application shell and list-card experience */
.nav-toggle{display:none;width:44px;height:44px;padding:10px;border:1px solid rgba(255,255,255,.22);background:transparent;border-radius:9px;margin-left:auto;flex-direction:column;justify-content:center;gap:5px}
.nav-toggle span{display:block;width:21px;height:2px;background:#fff;border-radius:2px;transition:.18s}.nav-toggle:hover{background:rgba(255,255,255,.08)}
.mobile-filter-toggle{display:none}.mobile-page-summary{display:none}

@media(max-width:760px){
    body{background:#f1f0eb}
    .topbar{min-height:60px;padding:8px 12px;gap:10px;align-items:center;flex-wrap:wrap}
    .brand{font-size:1.25rem;line-height:44px}
    .nav-toggle{display:flex}
    .topbar nav,.topbar .userbox{display:none;width:100%;order:3}
    .topbar.nav-open nav{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:7px 0 4px;overflow:visible}
    .topbar.nav-open nav a{display:block;padding:11px 12px;background:rgba(255,255,255,.065);border-radius:8px;font-size:.93rem}
    .topbar.nav-open .userbox{display:flex;order:4;border-top:1px solid rgba(255,255,255,.13);padding:10px 2px 3px;justify-content:space-between}
    .topbar.nav-open .userbox .linkbutton{min-height:36px;color:#fff}
    .topbar.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .topbar.nav-open .nav-toggle span:nth-child(2){opacity:0}
    .topbar.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

    .container{margin:18px auto 0;padding:0 10px}
    .pagehead{margin-bottom:14px;gap:12px}.pagehead h1{font-size:1.65rem}.pagehead p{font-size:.93rem;line-height:1.4}
    .pageactions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.pageactions>.button,.pageactions>button{width:100%;min-height:44px}
    .button,button{min-height:42px;padding:9px 12px}
    .card{padding:15px;border-radius:12px;margin-bottom:14px}

    .stats,.stats.compact{grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.stat{padding:13px}.stat strong{font-size:1.22rem}
    .grid.two,.grid.three{grid-template-columns:1fr}
    .formgrid,.grid.four{grid-template-columns:1fr!important}.span2,.fullrow{grid-column:auto!important}
    .formbuttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.formbuttons .button,.formbuttons button{width:100%}
    input,select,textarea{font-size:16px;min-height:44px}
    .checkline{padding-top:5px}.checkline input{min-height:auto}
    .details{grid-template-columns:1fr;gap:2px}.details dt{margin-top:10px;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.details dd{padding-bottom:5px}

    /* Collapsible filter drawers */
    .mobile-filter-toggle{display:flex;width:100%;justify-content:space-between;align-items:center;margin:0 0 9px;padding:11px 13px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 14px rgba(38,45,36,.05);font-weight:750}
    .mobile-filter-toggle b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--brand);color:#fff;font-size:.75rem}
    .filter-chevron{font-size:1.1rem;color:var(--muted)}
    .mobile-filter-panel.mobile-filter-collapsed{display:none!important}
    .mobile-filter-panel.mobile-filter-open{display:block}
    form.mobile-filter-panel.mobile-filter-open{display:grid}
    .filterpanel.mobile-filter-open{padding:13px}.filterbar.mobile-filter-open{padding:13px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);flex-direction:column}
    .filterbar.mobile-filter-open>*,.filterbar.mobile-filter-open input,.filterbar.mobile-filter-open select{width:100%;max-width:none}
    .equipment-filterbar.mobile-filter-open,.breeding-filterbar.mobile-filter-open{grid-template-columns:1fr}
    .mobile-filter-panel .filter-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}.mobile-filter-panel .filter-actions .button,.mobile-filter-panel .filter-actions button{width:100%}

    /* Desktop tables become touch-friendly cards only for marked list pages. */
    .tablewrap.mobile-cards{overflow:visible;background:transparent;border:0;border-radius:0}
    .tablewrap.mobile-cards table,.tablewrap.mobile-cards tbody{display:block;width:100%}
    .tablewrap.mobile-cards thead{display:none}
    .tablewrap.mobile-cards tbody tr{display:block;height:auto!important;margin:0 0 10px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 12px rgba(38,45,36,.055);overflow:hidden}
    .tablewrap.mobile-cards tbody tr:hover td{background:transparent}
    .tablewrap.mobile-cards tbody td{display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);gap:10px;align-items:center;width:100%!important;min-width:0!important;padding:9px 12px;border-bottom:1px solid #ece9e1;text-align:left!important;white-space:normal!important;overflow-wrap:anywhere}
    .tablewrap.mobile-cards tbody td::before{content:attr(data-label);font-size:.69rem;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);font-weight:800;line-height:1.2}
    .tablewrap.mobile-cards tbody td:first-child{padding-top:12px}
    .tablewrap.mobile-cards tbody td:last-child{border-bottom:0;padding-bottom:12px}
    .tablewrap.mobile-cards tbody td.selectcol{display:flex;justify-content:flex-start;gap:9px;background:#faf9f5}
    .tablewrap.mobile-cards tbody td.selectcol::before{content:"Select"}
    .tablewrap.mobile-cards tbody td.selectcol input{width:22px;height:22px}
    .tablewrap.mobile-cards tbody td.actions{display:flex!important;flex-wrap:wrap;gap:7px;padding-top:10px}
    .tablewrap.mobile-cards tbody td.actions::before{content:"Actions";width:100%;font-size:.69rem;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);font-weight:800}
    .tablewrap.mobile-cards tbody td.actions>a,.tablewrap.mobile-cards tbody td.actions>form{margin:0!important;display:inline-flex}
    .tablewrap.mobile-cards tbody td.actions>a,.tablewrap.mobile-cards tbody td.actions button{min-height:36px;padding:7px 10px;border:1px solid #c9c5ba;border-radius:8px;background:#faf9f5;font-weight:700;line-height:1}
    .tablewrap.mobile-cards tbody td.actions .danger-text{border-color:#dfb9b4;color:var(--danger);background:#fff7f6}
    .tablewrap.mobile-cards tbody td.empty{display:block!important;text-align:center;padding:25px 14px;border:0}.tablewrap.mobile-cards tbody td.empty::before{display:none}
    .table-subline{margin-top:3px}
    .money{text-align:left!important}

    .bulkbar{padding:12px}.bulkcontrols{display:grid;grid-template-columns:1fr}.bulkcontrols select,.bulkcontrols button{width:100%}
    .inlineform{flex-direction:column}.inlineform select,.inlineform input,.inlineform button{width:100%;min-width:0}

    /* Compact phone paging */
    .paginationbar{gap:10px}.pagesize,.pagesize form{width:100%}.pagesize form{justify-content:space-between}.pagesize select{min-height:40px}
    .pager{display:grid;grid-template-columns:1fr auto 1fr;width:100%;gap:8px}.pager .pagebutton{min-height:42px;height:auto;width:100%}.pager .pagebutton:not(:first-child):not(:last-child){display:none}.pager .pageellipsis{display:none}.pager .mobile-page-summary{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.86rem;font-weight:700;white-space:nowrap}

    footer{padding:20px 10px 28px;font-size:.82rem}
}
@media(max-width:390px){
    .topbar.nav-open nav{grid-template-columns:1fr}.stats,.stats.compact{grid-template-columns:1fr}.pageactions,.formbuttons{grid-template-columns:1fr}
    .tablewrap.mobile-cards tbody td{grid-template-columns:82px minmax(0,1fr);padding-left:10px;padding-right:10px}
}


/* V32 livestock-groups desktop fit and action-column cleanup */
.group-tablewrap .group-table th,
.group-tablewrap .group-table td{padding-left:10px;padding-right:10px}
.group-tablewrap .group-table th:first-child,
.group-tablewrap .group-table td:first-child{padding-left:13px}
.group-tablewrap .group-table th:last-child,
.group-tablewrap .group-table td:last-child{padding-right:13px}
.group-tablewrap .group-actions-cell{width:1%;min-width:205px;white-space:normal}
.group-row-actions{display:flex;flex-wrap:wrap;gap:5px 10px;align-items:center;justify-content:flex-start;min-width:205px}
.group-row-actions>a,.group-row-actions>form{display:inline-flex!important;align-items:center;margin:0!important;white-space:nowrap}
.group-row-actions form{padding:0}
.group-tablewrap .group-table td:nth-child(7){max-width:150px;overflow-wrap:anywhere}
@media(min-width:761px) and (max-width:1260px){
    .group-tablewrap .group-table{font-size:.94rem}
    .group-tablewrap .group-table th,.group-tablewrap .group-table td{padding-left:8px;padding-right:8px}
    .group-tablewrap .group-actions-cell,.group-row-actions{min-width:185px}
    .group-row-actions{gap:4px 8px}
}
@media(max-width:760px){
    .group-tablewrap .group-table{font-size:1rem}
    .tablewrap.mobile-cards .group-actions-cell::before{display:block;width:100%;margin-bottom:7px}
    .tablewrap.mobile-cards .group-row-actions{display:flex;flex-wrap:wrap;gap:7px;min-width:0;width:100%}
    .tablewrap.mobile-cards .group-row-actions>a,
    .tablewrap.mobile-cards .group-row-actions>form{display:inline-flex!important;margin:0!important}
    .tablewrap.mobile-cards .group-row-actions>a,
    .tablewrap.mobile-cards .group-row-actions button{min-height:36px;padding:7px 10px;border:1px solid #c9c5ba;border-radius:8px;background:#faf9f5;font-weight:700;line-height:1}
    .tablewrap.mobile-cards .group-row-actions .danger-text{border-color:#dfb9b4;color:var(--danger);background:#fff7f6}
}
