
:root{--teal:#0d8d91;--teal2:#075e63;--ink:#112126;--muted:#6b7c80;--line:#e7eff0;--bg:#f5f8f8;--danger:#d85757;--warn:#d98a27;--ok:#38896d;--white:#fff;--shadow:0 8px 28px rgba(18,48,52,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.shell{min-height:100vh}.sidebar{position:fixed;width:250px;top:0;bottom:0;background:#10282c;color:#def3f1;padding:24px 14px;z-index:10}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 27px;font-weight:800;font-size:18px;letter-spacing:-.5px}.brand-mark{width:32px;height:32px;background:var(--teal);border-radius:10px;display:grid;place-items:center;color:white;font-weight:900}.farmbox{padding:12px;background:#17383d;border:1px solid #245158;border-radius:13px;margin:0 4px 17px}.farmbox small{display:block;color:#9dc2c0;font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px}.farmbox select{background:transparent;color:#fff;border:0;width:100%;font-weight:650;outline:0}.farmbox option{color:#112126}.nav{display:grid;gap:3px}.nav button{background:transparent;color:#b8d2d0;text-align:left;padding:10px 12px;border-radius:9px;font-weight:550;display:flex;gap:11px;align-items:center}.nav button:hover,.nav button.active{background:#1b4448;color:#fff}.nav .ico{width:18px;text-align:center}.sidefoot{position:absolute;bottom:22px;left:25px;right:20px;color:#91b5b2;font-size:12px;border-top:1px solid #295257;padding-top:16px}.main{margin-left:250px;padding:28px 32px 60px;max-width:1600px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--teal2);font-weight:800}.topbar h1{margin:4px 0 0;font-size:27px;letter-spacing:-1px}.user{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px}.avatar{width:35px;height:35px;border-radius:50%;background:#d9f1ef;color:var(--teal2);display:grid;place-items:center;font-weight:800}.page{display:none}.page.active{display:block}.cards{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:14px}.stat{background:#fff;padding:17px;border:1px solid var(--line);border-radius:15px;box-shadow:0 2px 5px rgba(0,0,0,.015)}.stat .label{color:var(--muted);font-size:12px}.stat strong{font-size:27px;display:block;margin-top:8px;letter-spacing:-1px}.stat .trend{font-size:11px;color:var(--ok);margin-top:6px}.section{margin-top:25px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.section-head h2{font-size:17px;margin:0}.section-head p{color:var(--muted);margin:4px 0 0;font-size:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.monitor-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.monitor{padding:15px;min-height:132px}.monitor .count{font-size:26px;font-weight:800;color:var(--teal2)}.monitor h3{font-size:12px;margin:3px 0 9px}.due-line{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:1px solid var(--line);padding-top:7px;margin-top:5px}.due-date{color:var(--warn);font-weight:700}.split{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:570px}.table th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em;background:#fbfcfc;padding:12px 16px}.table td{padding:13px 16px;border-top:1px solid var(--line);font-size:13px}.table tr:hover td{background:#fcfefe}.tag{padding:4px 8px;border-radius:999px;font-weight:700;font-size:10px;background:#e9f7f5;color:var(--teal2);display:inline-block}.tag.warn{background:#fff2de;color:#a15d08}.tag.danger{background:#ffebeb;color:#b33f3f}.tag.dark{background:#e8edef;color:#4c5b60}.summary{padding:19px}.summary-row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}.summary-row:last-child{border:0}.summary-row strong{font-size:15px}.summary .net{color:var(--ok);font-size:23px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.toolbar-left{display:flex;align-items:center;gap:10px}.search{border:1px solid #dce7e8;background:#fff;padding:9px 11px;border-radius:9px;width:230px;outline-color:var(--teal)}.btn{border-radius:9px;padding:10px 13px;background:var(--teal);color:#fff;font-weight:750;font-size:12px}.btn:hover{background:var(--teal2)}.btn.ghost{background:#edf5f5;color:var(--teal2)}.filters{display:flex;gap:8px}.select{padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}.empty{padding:48px;text-align:center;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.metric{padding:20px}.metric b{display:block;font-size:25px;margin-top:8px}.forecast-controls{display:flex;gap:7px;flex-wrap:wrap}.period{background:#eef4f4;padding:8px 13px;border-radius:8px;color:#426064;font-size:12px;font-weight:700}.period.active{background:var(--teal);color:#fff}.barrow{display:grid;grid-template-columns:110px 1fr 115px;align-items:center;gap:10px;margin:17px 0}.bar{height:9px;border-radius:9px;background:#e9f0f0;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#62bdb8);border-radius:9px}.muted{color:var(--muted)}.right{text-align:right}.return{opacity:.45;text-decoration:line-through}.toast{position:fixed;right:20px;bottom:20px;background:#163a3d;color:#fff;padding:13px 16px;border-radius:10px;box-shadow:var(--shadow);z-index:50;display:none}.toast.show{display:block}.modal-bg{position:fixed;inset:0;background:rgba(8,29,32,.5);z-index:30;display:none;place-items:center;padding:18px}.modal-bg.open{display:grid}.modal{background:#fff;max-width:580px;width:100%;border-radius:17px;padding:22px;max-height:90vh;overflow:auto}.modal h2{margin:0 0 5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.field label{font-size:11px;font-weight:750;color:#52666a;display:block;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;border:1px solid #dce7e8;border-radius:8px;padding:9px;outline-color:var(--teal);background:#fff}.field.full{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.bottom-nav{display:none}.notice{display:flex;gap:10px;padding:12px;background:#ecf8f7;border:1px solid #ccece8;border-radius:10px;color:#286567;font-size:12px;margin-bottom:15px}.notice b{color:var(--teal2)}
@media(max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}.monitor-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){body{font-size:13px}.sidebar{display:none}.main{margin:0;padding:20px 15px 91px}.topbar{margin-bottom:20px}.topbar h1{font-size:22px}.user span{display:none}.cards{grid-template-columns:repeat(2,1fr);gap:9px}.stat{padding:14px}.stat strong{font-size:23px}.monitor-grid{grid-template-columns:repeat(2,1fr);gap:9px}.monitor{min-height:120px;padding:13px}.split,.metric-grid{grid-template-columns:1fr}.section{margin-top:19px}.section-head{align-items:center}.section-head h2{font-size:15px}.toolbar{align-items:stretch;flex-direction:column}.toolbar-left{width:100%}.search{width:100%}.filters{overflow:auto}/* [FIX 193] bottom bar redesign: no more boxed glyphs — a flat bar, line icons drawn for a
   pig farm (sow face, side-view piglet, barn, price tag…), and the active tab gets a soft
   teal pill behind its icon instead of a square outline. */
.bottom-nav{position:fixed;z-index:20;display:flex;align-items:stretch;justify-content:space-around;gap:2px;bottom:0;left:0;right:0;background:linear-gradient(180deg,#0e2529,#0a1a1e 72%);border-top:1px solid rgba(145,207,202,.14);padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -5px 16px rgba(0,0,0,.12)}.bottom-nav button{background:transparent;color:#8fb5b2;font-size:9px;font-weight:700;letter-spacing:.02em;display:grid;gap:3px;justify-items:center;align-content:center;flex:1;padding:4px 0 3px;border-radius:12px}.bottom-nav .bi{display:grid;place-items:center;width:46px;height:24px;border-radius:999px}.bottom-nav .bi svg{width:20px;height:20px;display:block}.bottom-nav button.active{color:#6ff2e6}.bottom-nav button.active .bi{background:rgba(19,185,173,.2);box-shadow:inset 0 0 0 1px rgba(91,228,216,.28)}.form-grid{grid-template-columns:1fr}.table th,.table td{padding:11px 12px}.metric{padding:16px}.modal{padding:18px}.farm-mobile{display:block}.topbar .eyebrow{font-size:9px}}

/* Premium operations console redesign */
:root{--teal:#13b9ad;--teal2:#07988f;--ink:#eef8f7;--muted:#94aaa8;--line:rgba(145,207,202,.13);--bg:#071114;--white:#0d1c20;--shadow:0 12px 35px rgba(0,0,0,.28);--card:#0c1a1e;--card2:#10242a;--danger:#ff5c68;--warn:#f0b64b;--ok:#57d48d}body{background:radial-gradient(circle at 70% -10%,#123c3c 0,#071114 38%);color:var(--ink)}.sidebar{background:linear-gradient(180deg,#081317,#0a1a1f);border-right:1px solid var(--line);width:266px;padding:23px 15px}.brand{font-size:17px;color:#f4fffe;border-bottom:1px solid var(--line);margin:0 3px 12px;padding-bottom:22px}.brand-mark{background:linear-gradient(135deg,#1cd5c2,#08756e);box-shadow:0 0 18px rgba(20,201,186,.25)}.farmbox{background:linear-gradient(130deg,#10262b,#0c1c20);border-color:var(--line);padding:13px;margin-bottom:17px}.farmbox select{color:#e7fffd}.nav{gap:2px}.nav:before{content:'OPERATIONS';font-size:9px;font-weight:800;letter-spacing:.13em;color:#5d7778;padding:11px 11px 5px}.nav button{color:#8fa9a8;border:1px solid transparent;padding:10px 12px}.nav button:hover,.nav button.active{background:linear-gradient(90deg,rgba(15,184,172,.22),rgba(15,184,172,.04));border-color:rgba(46,211,197,.1);color:#eafffd}.sidefoot{background:#0c2025;border:1px solid var(--line);border-radius:11px;padding:12px;left:19px;right:19px;bottom:20px}.main{max-width:1700px;padding:27px 33px 70px}.topbar{border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:24px}.topbar h1{font-size:25px;color:#f0fbfa}.eyebrow{color:#4dd3c7}.user{color:#9ab1af}.avatar{background:#12363a;color:#6ee4d9;border:1px solid rgba(91,226,213,.22)}.panel,.stat{background:linear-gradient(145deg,rgba(17,39,44,.96),rgba(10,25,29,.98));border-color:var(--line);box-shadow:var(--shadow)}.cards{gap:12px}.stat{border-radius:12px;padding:16px}.stat .label,.section-head p,.muted{color:var(--muted)!important}.stat strong{color:#fbffff}.stat .trend{color:#57d48d}.section-head h2{color:#e9fafa}.btn{background:linear-gradient(135deg,#13b9ad,#07988f);box-shadow:0 5px 16px rgba(4,154,143,.2)}.btn:hover{background:#17c8bb}.btn.ghost{background:#123237;color:#8ce7df;box-shadow:none}.monitor{background:linear-gradient(145deg,#10252a,#0b1c20);border-radius:12px}.monitor .count{color:#50dfd3}.monitor h3{color:#deeeee}.due-line{border-color:var(--line)}.due-date{color:#f1bd55}.table th{background:#0e2024;color:#85a19f}.table td{border-color:var(--line);color:#d9e8e7}.table tr:hover td{background:#12282c}.summary-row{border-color:var(--line)}.tag{background:#113b3a;color:#69e3d9}.tag.warn{background:#3c2b12;color:#ffc968}.tag.danger{background:#3c1720;color:#ff8a93}.tag.dark{background:#273338;color:#c5d2d2}.search,.select,.field input,.field select,.field textarea{background:#0b1b1f;border-color:#244047;color:#e7f6f5}.notice{background:#0d2b2d;border-color:#1a5b59;color:#a8ddda}.modal{background:#0c1c20;color:#ecfafa;border:1px solid #24444a}.modal-bg{background:rgba(0,7,9,.78)}.bottom-nav{background:#09171b;border-top:1px solid var(--line)}.bottom-nav button{color:#89a3a1}.bottom-nav button.active{color:#5ee2d6}.top-actions{display:flex;align-items:center;gap:9px}.icon-btn{width:37px;height:37px;border-radius:10px;color:#b8d4d2;background:#0e252a;border:1px solid var(--line);font-size:17px}.logout-btn{color:#ff9ba2;background:#2c1720;border-color:#62313b}.dash-hero{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.health-card{padding:21px;display:flex;align-items:center;gap:24px;min-height:190px}.score-ring{min-width:120px;width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--teal) 0 338deg,#17383a 338deg);position:relative}.score-ring:after{content:'';position:absolute;inset:10px;border-radius:50%;background:#102126}.score-inner{z-index:1;text-align:center}.score-inner strong{font-size:36px;line-height:1;display:block}.score-inner small{color:#a8bdbb}.health-copy h2{margin:0;color:#67e19b;font-size:20px}.health-copy p{line-height:1.5;color:#adbfbd;max-width:210px}.checklist{margin-left:auto;align-self:stretch;display:grid;align-content:center;gap:10px;font-size:12px;color:#c6d9d7}.attention{padding:18px}.attention h3{color:#ff7b83;margin:0 0 12px;font-size:12px;letter-spacing:.06em}.attention-items{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.attention-item{display:flex;align-items:center;gap:9px;padding:8px;background:#101f23;border:1px solid var(--line);border-radius:10px}.attention-item .alert-icon{font-size:20px}.attention-item b{display:block;font-size:19px}.attention-item small{color:#9bb0ae}.dash-section-title{font-size:11px;letter-spacing:.11em;color:#6ecdc5;font-weight:800;margin:24px 0 10px}.glance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.glance{padding:15px;min-height:113px}.glance .symbol{font-size:20px}.glance b{font-size:25px;display:block;margin:10px 0 2px}.glance small{color:#9ab2b0}.business-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.business-grid .stat{min-height:122px}.business-grid .money{font-size:22px;color:#fff}.theme-toggle{display:flex;align-items:center;justify-content:space-between;background:#0f2429;border:1px solid var(--line);padding:10px 12px;border-radius:10px;margin:14px 4px}.switch{width:34px;height:19px;background:#1ac0b4;border-radius:20px;padding:3px}.switch i{display:block;width:13px;height:13px;border-radius:50%;background:white;margin-left:15px}.login-screen{position:fixed;z-index:100;inset:0;background:radial-gradient(circle at 85% 15%,#14504d 0,#071114 45%,#03090b 100%);display:grid;grid-template-columns:1.2fr .8fr}.login-aside{padding:8vw;display:flex;flex-direction:column;justify-content:center}.login-aside h1{font-size:clamp(36px,4vw,58px);max-width:600px;margin:24px 0 14px;letter-spacing:-2px}.login-aside p{color:#a4bdbb;max-width:510px;line-height:1.7;font-size:16px}.login-points{display:flex;gap:12px;margin-top:30px}.login-points span{background:#0d2529;border:1px solid var(--line);padding:12px;border-radius:10px;color:#a8d6d2;font-size:12px}.login-card-wrap{display:grid;place-items:center;padding:28px;background:rgba(2,12,15,.35);border-left:1px solid var(--line)}.login-card{width:min(390px,100%);padding:29px;border-radius:18px;background:linear-gradient(145deg,#10262a,#0b1a1e);border:1px solid #285257;box-shadow:0 20px 70px rgba(0,0,0,.35)}.login-card h2{margin:14px 0 5px}.login-card p{color:var(--muted);margin:0 0 22px}.login-card label{display:block;color:#b6cfcd;font-size:12px;margin:14px 0 6px}.login-card input{width:100%;padding:12px;border-radius:9px;border:1px solid #29464a;background:#09191c;color:#ecfafa;outline-color:var(--teal)}.login-card .btn{width:100%;margin-top:22px;padding:12px}.login-help{font-size:11px;color:#78908f;margin-top:15px;text-align:center}.light-theme{--bg:#f5f8f8;--ink:#112126;--muted:#6b7c80;--line:#e1eaeb;--white:#fff;--card:#fff;--card2:#fff;--shadow:0 8px 28px rgba(18,48,52,.08);--teal:#0d8d91;--teal2:#075e63}.light-theme body{background:var(--bg);color:var(--ink)}.light-theme .sidebar,.light-theme .bottom-nav{background:#fff;color:#173034;border-color:#e2ebeb}.light-theme .brand{color:#123035}.light-theme .nav button{color:#567071}.light-theme .nav button:hover,.light-theme .nav button.active{color:#075e63;background:#e7f7f5}.light-theme .farmbox,.light-theme .theme-toggle,.light-theme .sidefoot{background:#f1f8f7;border-color:#dceceb}.light-theme .farmbox select{color:#173034}.light-theme .panel,.light-theme .stat{background:#fff}.light-theme .table th{background:#f7faf9}.light-theme .table td{color:#24363a}.light-theme .health-card,.light-theme .monitor,.light-theme .attention-item{background:#fff}.light-theme .score-ring:after{background:#fff}.light-theme .topbar h1,.light-theme .glance b,.light-theme .business-grid .money{color:#112126}.light-theme .health-copy p,.light-theme .checklist,.light-theme .attention-item small{color:#52666a}.light-theme .login-screen{background:#f5fafa}.light-theme .login-card-wrap{background:#edf7f6}.light-theme .login-card{background:#fff}.light-theme .login-card input{background:#fff;color:#112126}.light-theme .icon-btn{background:#edf6f5;color:#0a6968}.light-theme .logout-btn{background:#fff0f1;color:#ba4e5b}
@media(max-width:1050px){.dash-hero{grid-template-columns:1fr}.health-card{min-height:0}.business-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.main{padding:18px 13px 90px}.dash-hero{gap:10px}.health-card{gap:14px;padding:16px;flex-wrap:wrap}.score-ring{width:100px;min-width:100px;height:100px}.score-inner strong{font-size:29px}.checklist{margin-left:0;width:100%;grid-template-columns:1fr 1fr}.attention-items{grid-template-columns:1fr 1fr}.attention-item{padding:7px}.glance-grid{grid-template-columns:repeat(2,1fr);gap:9px}.business-grid{grid-template-columns:repeat(2,1fr);gap:9px}.glance{min-height:99px;padding:13px}.top-actions .logout-btn{width:37px;padding:0;font-size:0}.top-actions .logout-btn:after{content:'⇥';font-size:18px}.login-screen{grid-template-columns:1fr}.login-aside{display:none}.login-card-wrap{border:0;padding:18px}.login-card{padding:25px}.login-screen .brand{border:0;padding:0;margin:0}.topbar{padding-bottom:14px}.topbar h1{font-size:20px}}

/* AR SwineTech identity + frosted glass system */
body{background:radial-gradient(ellipse 700px 480px at 91% -10%,rgba(62,171,218,.26),transparent 68%),radial-gradient(ellipse 600px 540px at 30% 105%,rgba(104,205,97,.15),transparent 69%),linear-gradient(135deg,#061419,#091c21 52%,#102a31);background-attachment:fixed}.sidebar{background:linear-gradient(180deg,rgba(6,19,24,.84),rgba(8,25,30,.72));backdrop-filter:blur(24px) saturate(130%);-webkit-backdrop-filter:blur(24px) saturate(130%)}.logo-img{width:178px;height:auto;display:block;object-fit:contain;filter:drop-shadow(0 3px 9px rgba(0,0,0,.18))}.brand{min-height:48px;padding:0 3px 18px;display:flex;align-items:center}.sidebar .brand{min-height:61px}.sidebar .brand .logo-img{width:184px}.panel,.stat{background:linear-gradient(145deg,rgba(24,59,65,.54),rgba(9,27,32,.63));backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);border:1px solid rgba(178,243,237,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 14px 36px rgba(0,0,0,.19)}.health-card,.monitor,.attention-item{background:linear-gradient(135deg,rgba(26,66,71,.57),rgba(10,31,37,.48))}.stat:hover,.panel:hover{border-color:rgba(104,223,211,.31);transform:translateY(-1px);transition:.18s ease}.farmbox,.theme-toggle,.sidefoot{background:rgba(26,61,67,.36);backdrop-filter:blur(15px);border-color:rgba(165,238,231,.13)}.topbar{background:rgba(5,18,22,.16);backdrop-filter:blur(9px);margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px;border-radius:0 0 13px 13px}.score-ring{box-shadow:0 0 0 1px rgba(151,250,234,.19),0 0 32px rgba(19,185,173,.16)}.glance,.business-grid .stat{position:relative;overflow:hidden}.glance:after,.business-grid .stat:after{content:'';position:absolute;width:90px;height:90px;right:-34px;top:-38px;background:radial-gradient(circle,rgba(99,238,222,.15),transparent 68%);pointer-events:none}.login-screen{background:linear-gradient(120deg,rgba(3,16,21,.92),rgba(8,32,38,.81)),url('../assets/arswinetech-visual.png') center/cover}.login-aside{position:relative;background:linear-gradient(90deg,rgba(4,16,20,.88),rgba(6,28,34,.48));backdrop-filter:blur(10px)}.login-aside:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 23% 26%,rgba(101,205,97,.23),transparent 28%),radial-gradient(circle at 75% 74%,rgba(54,164,220,.20),transparent 30%);pointer-events:none}.login-aside>*{position:relative;z-index:1}.login-card-wrap{background:rgba(7,25,30,.44);backdrop-filter:blur(16px)}.login-card{background:linear-gradient(135deg,rgba(28,67,72,.73),rgba(8,28,33,.73));backdrop-filter:blur(24px);border:1px solid rgba(195,255,249,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 30px 70px rgba(0,0,0,.35)}.login-card .brand{padding-bottom:12px}.login-card .logo-img{width:216px}.login-points span{background:rgba(15,51,57,.45);backdrop-filter:blur(9px)}.light-theme body{background:radial-gradient(ellipse 700px 480px at 91% -10%,rgba(77,170,218,.22),transparent 68%),radial-gradient(ellipse 600px 540px at 30% 105%,rgba(104,205,97,.15),transparent 69%),linear-gradient(135deg,#edf8f9,#f6fafa 52%,#e8f4f7)}.light-theme .panel,.light-theme .stat{background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(238,249,250,.65));border-color:rgba(54,126,132,.17);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 14px 32px rgba(25,77,84,.10)}.light-theme .sidebar{background:rgba(249,255,255,.70);backdrop-filter:blur(24px)}.light-theme .farmbox,.light-theme .theme-toggle,.light-theme .sidefoot{background:rgba(231,247,247,.65)}.light-theme .health-card,.light-theme .monitor,.light-theme .attention-item{background:rgba(255,255,255,.55)}.light-theme .topbar{background:rgba(255,255,255,.30)}
@media(max-width:700px){.logo-img{width:147px}.sidebar .brand .logo-img{width:163px}.login-card .logo-img{width:194px}.topbar{margin-left:0;margin-right:0;padding-left:0;padding-right:0}}

.subscription-hero{padding:25px;display:flex;justify-content:space-between;gap:18px;align-items:center;background:linear-gradient(135deg,rgba(34,115,111,.65),rgba(30,83,132,.48))}.subscription-hero h2{margin:0 0 7px}.subscription-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.plan-card{padding:22px;position:relative}.plan-card.featured{border:1px solid #41d9cc;box-shadow:0 0 0 1px rgba(65,217,204,.15),0 15px 40px rgba(10,180,166,.13)}.plan-card .price{font-size:28px;font-weight:800;margin:14px 0}.plan-card ul{margin:16px 0;padding-left:17px;color:var(--muted);line-height:2}.plan-label{font-size:10px;color:#76e9e0;letter-spacing:.1em;font-weight:800}.admin-banner{padding:16px 20px;margin-bottom:16px;display:flex;align-items:center;gap:13px}.admin-banner b{color:#70e9de}.access-toggle{accent-color:#12b9ad;width:17px;height:17px}@media(max-width:700px){.subscription-plans{grid-template-columns:1fr}.subscription-hero{align-items:flex-start;flex-direction:column}}
.login-error{display:none;margin-top:13px;padding:10px 11px;border-radius:8px;background:rgba(132,28,42,.38);border:1px solid rgba(255,128,140,.34);color:#ffbdc3;font-size:12px;line-height:1.35}.login-error.show{display:block}@media(max-width:700px){.toast{bottom:88px;right:13px;left:13px;text-align:center}}
.onboard-screen,.reset-screen{position:fixed;z-index:105;inset:0;display:none;place-items:center;padding:20px;background:radial-gradient(circle at 15% 10%,rgba(35,151,143,.30),transparent 35%),rgba(2,14,18,.88);backdrop-filter:blur(12px)}.onboard-screen.open,.reset-screen.open{display:grid}.onboard-card,.reset-card{width:min(640px,100%);max-height:92vh;overflow:auto;padding:28px;border-radius:19px;background:linear-gradient(135deg,rgba(29,70,75,.92),rgba(8,28,33,.94));border:1px solid rgba(193,255,249,.24);box-shadow:0 30px 80px rgba(0,0,0,.4)}.onboard-card h2,.reset-card h2{margin:12px 0 5px}.onboard-card p,.reset-card p{margin:0 0 18px;color:var(--muted)}.onboard-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.onboard-form .field.full{grid-column:1/-1}.onboard-form label,.reset-card label{display:block;color:#bad4d2;font-size:12px;margin-bottom:5px}.onboard-form input,.onboard-form textarea,.reset-card input{width:100%;padding:11px;border:1px solid #2a5054;border-radius:9px;background:#091b1f;color:#efffff;outline-color:var(--teal)}.onboard-form textarea{min-height:72px;resize:vertical}.form-error{display:none;grid-column:1/-1;padding:10px;border-radius:8px;background:rgba(132,28,42,.38);border:1px solid rgba(255,128,140,.34);color:#ffbdc3;font-size:12px}.form-error.show{display:block}.link-btn{display:block;margin:12px auto 0;background:transparent;color:#75e6dd;text-decoration:underline;font-size:12px}.close-reset{float:right;background:transparent;color:#b5d3d0;font-size:18px}@media(max-width:700px){.onboard-card,.reset-card{padding:22px}.onboard-form{grid-template-columns:1fr}.onboard-form .field.full{grid-column:auto}}
.auth-status{margin-top:10px;text-align:center;color:#8fb2ae;font-size:11px}.auth-status.ready{color:#72e0a1}.auth-status.error{color:#ffadb6}.field input[placeholder="Enter breed name"]{border-color:rgba(68,214,200,.55)}
/* Intelligent recurring reminder module */
.dash-quick-bar{display:flex;gap:10px;overflow-x:auto;padding:8px 0 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.dash-quick-bar::-webkit-scrollbar{display:none}
.dash-quick-btn{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:9px 15px;border-radius:12px;background:linear-gradient(145deg,rgba(26,66,72,.65),rgba(11,32,38,.75));border:1px solid rgba(145,207,202,.18);color:#dcf7f5;font-weight:600;font-size:13px;white-space:nowrap;transition:all .18s ease;cursor:pointer}
.dash-quick-btn:hover{background:linear-gradient(145deg,rgba(32,95,103,.85),rgba(15,46,54,.95));border-color:var(--teal);color:#fff;transform:translateY(-2px);box-shadow:0 4px 14px rgba(19,185,173,.25)}
.dash-quick-btn .btn-ico{font-size:17px;line-height:1}
.herd-comp-box{margin:18px 0 24px;padding:16px 20px;border-radius:14px;background:linear-gradient(145deg,rgba(20,49,54,.6),rgba(9,25,30,.7));border:1px solid var(--line)}
.herd-comp-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;font-weight:700;color:var(--muted)}
.herd-comp-bar{display:flex;height:12px;border-radius:8px;overflow:hidden;background:#0d2327;gap:2px}
.herd-seg{height:100%;transition:width .4s ease}
.herd-seg.sows{background:#1cd5c2}
.herd-seg.pregnant{background:#f0b64b}
.herd-seg.boars{background:#3eabda}
.herd-seg.piglets{background:#68cd61}
.herd-seg.fatteners{background:#b87bf8}
.herd-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:11px}
.herd-legend-item{display:flex;align-items:center;gap:6px;color:#c0dcd9}
.herd-dot{width:9px;height:9px;border-radius:50%}
.interactive-card{cursor:pointer;transition:all .18s ease}
.interactive-card:hover{transform:translateY(-2px);border-color:rgba(104,223,211,.45);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.watchlist-row{cursor:pointer;transition:background .15s ease}
.watchlist-row:hover td{background:rgba(20,62,69,.5)!important}
.watchlist-collapsible-panel[hidden]{display:none}
.watchlist-more-note{border-top:1px dashed var(--line);padding:10px 12px;text-align:center;color:var(--muted);font-size:12px}
.collapsible-extra-row{display:none!important}
.collapsible-list-toggle{width:100%;margin:12px 0 4px;padding:11px 14px;border:1.5px dashed var(--teal);background:rgba(13,141,145,.09);color:var(--teal2);font-weight:750}
.collapsible-list-toggle:hover{background:rgba(13,141,145,.18)}
.batch-delete-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 12px;border:1px solid rgba(239,68,68,.35);background:rgba(95,25,32,.18)}
.batch-delete-bar>div{display:grid;gap:2px;flex:1;min-width:180px}.batch-delete-bar small{color:var(--muted);font-size:11px}.batch-delete-count{color:#ffb5bc;font-size:12px;font-weight:800}.batch-delete-check{appearance:none;width:18px;height:18px;min-width:18px;margin:0 8px 0 0;vertical-align:middle;cursor:pointer;border:2px solid rgba(116,236,226,.65);border-radius:4px;background:#082b30;display:inline-grid;place-content:center}.batch-delete-check::before{content:'✓';font-size:13px;font-weight:900;color:#061419;transform:scale(0);transition:transform .12s ease}.batch-delete-check:checked{background:#ef5967;border-color:#ff9da6}.batch-delete-check:checked::before{transform:scale(1)}.batch-delete-bar.is-working{opacity:.65;pointer-events:none}.batch-delete-bar .batch-delete-action:disabled{opacity:.45;cursor:not-allowed}
.floating-slot-notice{display:inline-block;max-width:100%;margin-top:5px;padding:3px 6px;border-radius:5px;font-size:9px;font-weight:800;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.floating-slot-notice.pending{color:#ffd47a;background:rgba(245,158,11,.1);border-left:2px solid #f59e0b}.floating-slot-notice.open{color:#061419;background:#5eead4;border:1px solid #99fff2;animation:floatingSlotPulse 1.05s ease-in-out infinite;box-shadow:0 0 8px rgba(94,234,212,.48)}@keyframes floatingSlotPulse{0%,100%{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}
.financial-statement-panel{margin:0 0 18px;display:grid;gap:14px}.finance-data-guide{display:grid;gap:5px;padding:11px 13px;color:var(--muted);font-size:11px;line-height:1.35}.finance-data-guide b{color:var(--teal2);font-size:12px}.finance-data-guide strong{color:var(--ink)}.finance-report-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.finance-report-head h2{margin:3px 0}.finance-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0}.finance-kpi-grid .metric{display:grid;gap:4px}.finance-kpi-grid .metric small{color:var(--muted)}.finance-kpi-grid .metric b{font-size:20px;color:var(--teal2)}.finance-kpi-grid .metric span{font-size:11px;color:var(--muted)}.finance-chart-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;min-width:0}.finance-chart-card,.finance-statement-card,.finance-mom-card{padding:14px}.finance-card-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:10px}.finance-card-head h3,.finance-statement-card h3{margin:0 0 3px}.finance-card-head p{margin:0}.finance-chart{min-height:220px}.finance-chart svg{width:100%;height:220px;overflow:visible}.finance-bar{transform-box:fill-box;transform-origin:center bottom;animation:financeBarIn .55s ease both}.finance-bar:hover{filter:brightness(1.35);stroke:#fff;stroke-width:1}.finance-chart-legend{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px}.finance-chart-legend span{display:inline-flex;align-items:center;gap:5px}.finance-chart-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.finance-pie-wrap{display:flex;gap:12px;align-items:center;min-height:220px}.finance-pie{position:relative;width:145px;min-width:145px;text-align:center}.finance-pie svg{width:145px;height:145px;transform:rotate(-90deg)}.finance-pie-segment{animation:financePieIn .8s ease both;cursor:pointer}.finance-pie>strong{position:absolute;left:0;right:0;top:58px;font-size:14px;color:var(--ink)}.finance-pie>small{position:absolute;left:0;right:0;top:78px;color:var(--muted);font-size:9px}.finance-legend{display:grid;gap:4px;flex:1}.finance-legend-item{border:0;background:transparent;color:var(--ink);display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:5px;align-items:center;text-align:left;padding:4px;border-radius:5px;font:inherit;font-size:10px;cursor:pointer}.finance-legend-item:hover{background:rgba(19,185,173,.16)}.finance-legend-item i{width:9px;height:9px;border-radius:50%}.finance-statements-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0}.finance-statement-row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(150,210,205,.12);padding:6px 0;font-size:12px}.finance-statement-row b{white-space:nowrap}.finance-statement-row.total{border-top:1px solid var(--teal);font-weight:800;margin-top:4px;padding-top:8px}.finance-statement-row.grand{border-top:2px solid var(--teal2);font-size:14px;font-weight:900;margin-top:6px;padding-top:9px}.finance-statement-row.bad b,.finance-kpi-grid .bad{color:#ff8790!important}.finance-subhead{text-transform:uppercase;color:var(--teal2);font-size:10px;font-weight:850;margin-top:12px;letter-spacing:.06em}.finance-note{font-size:10px;color:var(--muted);line-height:1.35;margin:12px 0 0}.finance-mom-table{width:100%}.finance-mom-table .finance-mom-alert{background:rgba(245,158,11,.1)}.finance-mom-table .ok{color:#62e2a1}.finance-mom-table .bad{color:#ff8790}.finance-highlight{outline:2px solid var(--teal2);outline-offset:-2px;background:rgba(19,185,173,.16)!important}@keyframes financeBarIn{from{transform:scaleY(0);opacity:.25}to{transform:scaleY(1);opacity:1}}@keyframes financePieIn{from{stroke-dasharray:0 100;opacity:.2}to{opacity:1}}
.collection-advisor{margin:12px 0;padding:12px 14px;border:1px solid rgba(19,185,173,.35);border-radius:12px;background:rgba(10,57,61,.35)}.collection-advisor-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.collection-advisor-head b{display:block;color:var(--ink)}.collection-advisor-head small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.collection-advisor-head label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.collection-advisor-head select{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:5px 7px}.collection-advisor-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:9px 0;border-top:1px solid rgba(150,220,215,.12)}.collection-advisor-row b,.collection-advisor-row small{display:block}.collection-advisor-row small{font-size:11px;color:var(--muted);margin-top:2px}.collection-advisor-row .tag{font-size:10px;white-space:nowrap}.collection-advisor-row .btn{white-space:nowrap}@media(min-width:701px) and (max-width:1100px){.finance-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-chart-grid,.finance-statements-grid{grid-template-columns:1fr}}
@media(max-width:700px){.batch-delete-bar{align-items:stretch}.batch-delete-bar .btn{flex:1}.batch-delete-count{width:100%}.collection-advisor-row{grid-template-columns:1fr auto}.collection-advisor-row .btn{grid-column:2;grid-row:1 / span 2}.collection-advisor-row .tag{justify-self:start}.financial-statement-panel{width:100%;max-width:100%;min-width:0;overflow:hidden}.finance-report-head{align-items:stretch;flex-direction:column}.finance-report-head .btn{width:100%}.finance-kpi-grid{grid-template-columns:minmax(0,1fr)!important;width:100%;min-width:0}.finance-kpi-grid>*{width:100%;min-width:0}.finance-chart-grid,.finance-statements-grid{grid-template-columns:minmax(0,1fr)!important;width:100%;min-width:0}.finance-chart-card,.finance-statement-card,.finance-mom-card{width:100%;min-width:0;overflow:hidden}.finance-chart{width:100%;min-width:0;overflow:hidden}.finance-chart svg{width:100%;min-width:0;height:190px}.finance-pie-wrap{justify-content:center;flex-direction:column;align-items:stretch;min-width:0}.finance-pie{align-self:center}.finance-legend{width:100%;min-width:0}.finance-statement-row{flex-wrap:wrap}.finance-statement-row span{min-width:0;max-width:70%}.finance-statement-row b{margin-left:auto}.finance-mom-table{font-size:10px;min-width:0}.finance-mom-table th,.finance-mom-table td{padding:7px 5px}.finance-mom-notes{display:grid;gap:5px}}

.reminder-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px}.reminder-toolbar p{margin:4px 0 0}.reminder-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 16px}.reminder-summary-card{padding:15px;display:flex;flex-direction:column}.reminder-summary-card small{color:var(--muted)}.reminder-summary-card b{font-size:26px;margin:5px 0}.reminder-summary-card span{font-size:11px;color:var(--muted)}.reminder-summary-card.red{border-color:rgba(255,95,106,.5)}.reminder-summary-card.red b{color:#ff8790}.reminder-summary-card.orange{border-color:rgba(240,182,75,.5)}.reminder-summary-card.orange b{color:#f4c268}.reminder-summary-card.teal b{color:#62ded3}.reminder-modal-bg,.due-modal-bg{position:fixed;inset:0;z-index:130;background:rgba(1,11,14,.76);backdrop-filter:blur(8px);display:grid;place-items:center;padding:14px}.reminder-modal,.due-modal{width:min(620px,100%);max-height:92vh;overflow:auto;padding:22px;border-radius:18px;background:linear-gradient(135deg,rgba(24,62,67,.96),rgba(7,26,31,.98));border:1px solid rgba(190,251,244,.22);box-shadow:0 25px 75px rgba(0,0,0,.48)}.modal-top{display:flex;justify-content:space-between;gap:10px}.modal-top h2,.due-modal h2{margin:4px 0 0}.close-reminder{background:transparent;color:#bad5d3;font-size:25px;height:30px}.reminder-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.reminder-fields .field.full{grid-column:1/-1}.reminder-fields textarea{min-height:68px}.reminder-conditional{display:none;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:12px}.weekday-chips{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0 11px}.weekday-chip{min-width:47px;min-height:41px;padding:0 10px;border-radius:21px;background:#112d32;border:1px solid #2c5357;color:#b8d4d2;font-size:12px;font-weight:750}.weekday-chip.selected{color:#042220;background:#48d4c8;border-color:#7af7e9;box-shadow:0 0 0 2px rgba(63,208,196,.18)}.due-modal{text-align:center;max-width:460px}.due-modal p{color:#b4cfcc;line-height:1.5}.due-time{margin:15px 0;padding:10px;border-radius:9px;background:rgba(29,84,84,.44);color:#8ee6df;font-size:12px}.due-actions{display:flex;gap:10px;justify-content:center}.dashboard-reminders{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}.dashboard-reminder{padding:14px;border-right:1px solid var(--line);display:grid;gap:7px}.dashboard-reminder:last-child{border-right:0}.dashboard-reminder small{color:var(--muted);font-size:11px}.dashboard-reminder .tag{justify-self:start}.field textarea{width:100%;padding:9px;border:1px solid #dce7e8;border-radius:8px;outline-color:var(--teal);background:#fff}.light-theme .reminder-modal,.light-theme .due-modal{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(237,249,249,.98))}.light-theme .weekday-chip{background:#edf7f6;border-color:#c6dedc;color:#1b5555}.light-theme .weekday-chip.selected{background:#5ee2d6;color:#073230}.light-theme .field textarea{background:#fff;color:#112126}@media(max-width:700px){.reminder-toolbar{align-items:flex-start;flex-direction:column}.reminder-summary{gap:8px}.reminder-summary-card{padding:12px}.reminder-summary-card b{font-size:22px}.reminder-modal{padding:18px}.reminder-fields,.reminder-conditional{grid-template-columns:1fr}.reminder-fields .field.full{grid-column:auto}.weekday-chip{min-width:42px}.due-actions{flex-direction:column}.due-actions .btn{width:100%}.dashboard-reminders{grid-template-columns:1fr 1fr}.dashboard-reminder{border-bottom:1px solid var(--line)}.dashboard-reminder:nth-child(even){border-right:0}}
.overdue-blink{animation:reminderPulse 1s infinite alternate!important;border-color:#ff6873!important;background:rgba(110,18,30,.45)!important}.overdue-blink b{color:#ffd9dc}@keyframes reminderPulse{from{box-shadow:0 0 0 0 rgba(255,75,91,.1)}to{box-shadow:0 0 16px 4px rgba(255,75,91,.55)}}.dashboard-reminder{border:0;text-align:left;color:var(--ink);font:inherit;cursor:pointer}.dashboard-reminder:hover{background:rgba(37,122,120,.3)}.danger-btn,.delete-action{background:#55232b!important;color:#ffd0d4!important}.delete-action{padding:7px 9px!important}.sow-profile{width:min(670px,100%)}.sow-profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}.sow-profile-grid div{padding:12px;border-radius:10px;background:rgba(25,74,77,.38);border:1px solid var(--line)}.sow-profile-grid small{display:block;color:var(--muted);margin-bottom:4px}.pedigree-mini{padding:14px;border-radius:12px;background:rgba(12,47,51,.5);border:1px solid rgba(88,218,207,.16);margin:14px 0}.profile-actions{display:flex;gap:9px;flex-wrap:wrap}@media(max-width:700px){.sow-profile-grid{grid-template-columns:1fr}.delete-action{margin-top:4px}.dashboard-reminder{min-height:105px}}.pedigree-planner{padding:21px}.pedigree-planner h2{margin-top:0}.planner-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.compat-result{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:11px;background:rgba(12,51,55,.42)}.compat-result b{font-size:18px}.compat-result p{margin:7px 0;color:#c5d6d4}.tree-node{padding:8px;border-left:2px solid var(--teal);margin:5px}.tree-node small{display:block;color:var(--muted)}.tree-parents{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px;font-size:11px}@media(max-width:700px){.planner-grid{grid-template-columns:1fr}}
/* Expandable desktop sidebar / off-canvas mobile drawer */
.sidebar-toggle{position:absolute;right:-15px;top:25px;width:30px;height:30px;border-radius:50%;background:#0fa89d;color:#e9fffd;border:1px solid rgba(132,238,226,.35);z-index:12;box-shadow:0 5px 16px rgba(0,0,0,.3);font-weight:900}.sidebar-toggle:hover{background:#22c9bc}.mobile-menu-toggle{display:none}.sidebar,.main{transition:width .25s ease,margin-left .25s ease,padding .25s ease,transform .25s ease}.nav-label{white-space:nowrap}.sidebar-collapsed .sidebar{width:76px;padding-left:11px;padding-right:11px}.sidebar-collapsed .main{margin-left:76px}.sidebar-collapsed .sidebar .brand{justify-content:center;padding-left:0;padding-right:0}.sidebar-collapsed .sidebar .brand .logo-img{width:42px;height:42px;object-fit:cover;object-position:left;border-radius:9px}.sidebar-collapsed .farmbox,.sidebar-collapsed .theme-toggle,.sidebar-collapsed .sidefoot{display:none}.sidebar-collapsed .nav:before{font-size:0;padding:10px 0}.sidebar-collapsed .nav button{justify-content:center;padding:11px 6px;position:relative}.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .nav .ico{font-size:19px}.sidebar-collapsed .sidebar-toggle{transform:rotate(180deg)}.sidebar-collapsed .sidebar.sidebar-unpinned:hover{width:266px;padding-left:15px;padding-right:15px;box-shadow:15px 0 35px rgba(0,0,0,.32)}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .brand{justify-content:flex-start;padding-left:3px}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .brand .logo-img{width:184px;height:auto;object-fit:contain;object-position:center;border-radius:0}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .farmbox,.sidebar-collapsed .sidebar.sidebar-unpinned:hover .theme-toggle,.sidebar-collapsed .sidebar.sidebar-unpinned:hover .sidefoot{display:flex}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .farmbox{display:block}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav:before{font-size:9px;padding:11px 11px 5px}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav button{justify-content:flex-start;padding:10px 12px}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav-label{display:inline}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav .ico{font-size:inherit}.sidebar-collapsed .sidebar:not(:hover) .nav button:hover:after{content:attr(data-label);position:absolute;left:58px;top:50%;transform:translateY(-50%);z-index:50;white-space:nowrap;padding:8px 10px;border-radius:7px;background:#173b40;color:#efffff;box-shadow:0 7px 18px rgba(0,0,0,.35);font-size:12px}.sidebar-drawer-backdrop{display:none}@media(max-width:700px){.mobile-menu-toggle{display:grid;place-items:center;width:39px;height:39px;background:#0e282d;border:1px solid var(--line);color:#bde5e1;border-radius:10px;font-size:20px;margin-right:9px}.topbar{justify-content:flex-start;gap:1px}.topbar>div:not(.top-actions){flex:1}.sidebar{display:block!important;position:fixed;transform:translateX(-110%);width:282px!important;left:0;top:0;bottom:0;padding:22px 15px;z-index:120}.sidebar.mobile-open{transform:translateX(0)}.sidebar-toggle{display:none}.sidebar-collapsed .main{margin-left:0}.sidebar-collapsed .sidebar .nav-label{display:inline}.sidebar-collapsed .sidebar .farmbox,.sidebar-collapsed .sidebar .theme-toggle,.sidebar-collapsed .sidebar .sidefoot{display:block}.sidebar-collapsed .sidebar .brand{justify-content:flex-start}.sidebar-collapsed .sidebar .brand .logo-img{width:184px;height:auto;object-fit:contain;border-radius:0}.sidebar-collapsed .sidebar .nav button{justify-content:flex-start;padding:10px 12px}.sidebar-drawer-backdrop{position:fixed;inset:0;z-index:110;background:rgba(0,8,11,.62);backdrop-filter:blur(3px)}.sidebar-drawer-backdrop.show{display:block}}

/* Business-driven overdue reminder alert state */
@keyframes overduePulseStrong{0%,100%{opacity:1;box-shadow:0 0 0 rgba(255,32,48,0),inset 0 0 0 rgba(255,32,48,0)}50%{opacity:.78;box-shadow:0 0 24px rgba(255,45,61,.86),inset 0 0 24px rgba(153,12,28,.30)}}.overdue-blink,.overdue-row td{animation:overduePulseStrong 1.2s infinite!important}.overdue-row td{background:rgba(104,20,31,.17)!important;border-top-color:rgba(255,104,116,.34)!important}.overdue-row:hover td{background:rgba(130,24,37,.3)!important}.reminder-toolbar .btn{white-space:nowrap}@media(max-width:700px){.reminder-toolbar .btn{width:100%}}

/* Categorized navigation groups */
.nav-group{margin:4px 0}.nav-group-header{width:100%;background:transparent;color:#6e9391;padding:9px 11px 6px;text-align:left;font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;display:flex;gap:8px;align-items:center}.nav-group-header:hover{color:#83e5dc}.group-arrow{font-size:13px;transition:transform .2s ease}.nav-group.closed .group-arrow{transform:rotate(-90deg)}.nav-group-content{display:grid;gap:2px;max-height:480px;overflow:hidden;transition:max-height .25s ease,opacity .2s ease}.nav-group.closed .nav-group-content{max-height:0;opacity:0}.sidebar-collapsed .nav-group-header{justify-content:center;padding:9px 0}.sidebar-collapsed .group-title{display:none}.sidebar-collapsed .nav-group-header .group-arrow{font-size:0}.sidebar-collapsed .nav-group-header .group-arrow:after{content:'•';font-size:14px}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav-group-header{justify-content:flex-start;padding:9px 11px 6px}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .group-title{display:inline}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav-group-header .group-arrow{font-size:13px}.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav-group-header .group-arrow:after{display:none}@media(max-width:700px){.nav-group-header{font-size:10px}.group-title{display:inline!important}.nav-group-header .group-arrow{font-size:13px!important}}
body:not(.farm-access-granted) .shell{visibility:hidden}.login-screen{visibility:visible}
/* Interactive dashboard drill-downs */
.drill-card{cursor:pointer;transition:transform .17s ease,border-color .17s ease}.drill-card:hover,.drill-card:focus{transform:translateY(-2px);border-color:#52ded3;outline:0}.drill-bg{position:fixed;inset:0;z-index:160;background:rgba(1,10,13,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:16px}.drill-panel{width:min(920px,100%);height:min(92vh,900px);overflow:auto;background:linear-gradient(140deg,#0e2228,#07161b);border:1px solid rgba(75,212,201,.35);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.5);padding:20px}.drill-header{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:15px}.drill-header h2{margin:4px 0}.drill-header p{margin:0;color:var(--muted)}.drill-header>div:last-child{display:flex;gap:9px;align-items:start}.drill-controls{display:flex;gap:10px;margin:16px 0}.drill-controls .search{flex:1}.drill-sow{margin:15px 0;padding:18px;border-radius:16px;border:1px solid #24454a;background:linear-gradient(135deg,rgba(21,41,48,.95),rgba(13,21,25,.96))}.drill-sow.overdue{border-color:#d94c59;animation:overduePulseStrong 1.2s infinite}.drill-sow-top{display:flex;justify-content:space-between;gap:15px}.drill-sow h3{display:inline;margin:0 12px 0 0;font-size:24px}.status-pill,.parity-pill{display:inline-block;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;background:#303b40}.status-pill.gestating{background:#67500c;color:#ffd063}.status-pill.pregnant{background:#0b5050;color:#5eeee2}.status-pill.soon{background:#6a390b;color:#ffc16d}.status-pill.overdue{background:#6c1624;color:#ffabb4}.status-pill.lact{background:#69164b;color:#ff93d2}.parity-pill{background:#084e4b;color:#5be3d8}.drill-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.drill-actions button{border:0;border-radius:9px;padding:9px 11px;background:#123e3f;color:#5ce4d8;font-weight:800}.drill-actions button:first-child{background:#4b2910;color:#ffad56}.sow-meta{display:flex;flex-wrap:wrap;gap:9px 18px;margin:15px 0;color:#e3f1ef}.sow-state{padding:9px 11px;border-radius:8px;font-weight:750}.sow-state.gestating{color:#ffcb62}.sow-state.pregnant{color:#56dfd4}.sow-state.soon{color:#ffad63}.sow-state.overdue{color:#ff808d}.sow-state.lact{color:#fc8dca}.semen-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0;display:grid;gap:3px;color:#74e2da}.semen-summary span{font-size:12px;color:#aec8c6}.treatment-box{margin-top:15px;padding:14px;border:1px solid rgba(205,68,80,.35);border-radius:14px;background:rgba(75,24,29,.25);max-width:530px}.treatment-box>div{display:flex;justify-content:space-between;gap:10px;color:#19c7ba}.treatment-box small{color:#849cae}.treatment-box ul{list-style:none;padding:0;margin:12px 0}.treatment-box li{padding:8px 10px;margin:6px 0;background:rgba(255,255,255,.04);border-radius:9px}.treatment-box li span{float:right;color:#94aeca}.drill-row{padding:15px;border-bottom:1px solid var(--line);display:grid;gap:4px}.drill-row span{color:#bde4df}.drill-row small{color:var(--muted)}.watchlist-click{cursor:pointer}@media(max-width:700px){.drill-bg{padding:0}.drill-panel{height:100vh;max-height:none;border-radius:0;padding:16px}.drill-header h2{font-size:22px}.drill-header .btn{padding:9px}.drill-controls{flex-direction:column}.drill-sow{padding:14px}.drill-sow-top{flex-direction:column}.drill-actions{justify-content:flex-start}.sow-meta{display:grid;grid-template-columns:1fr 1fr;font-size:13px}.treatment-box>div{display:block}.treatment-box small{display:block;margin-top:4px}.treatment-box li span{float:none;display:block;margin-top:2px}}
.dashboard-bottom-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1fr);gap:18px;align-items:start;width:100%;overflow:visible}.dashboard-bottom-grid>div{min-width:0}.dashboard-bottom-grid .panel{width:100%}.dashboard-bottom-grid .summary{min-height:100%;overflow:hidden}@media(max-width:1050px){.dashboard-bottom-grid{grid-template-columns:1fr}}@media(max-width:700px){.dashboard-bottom-grid{gap:13px}}
/* Collapse override: a click must visibly stay collapsed instead of immediately re-expanding under the pointer. */
@media(min-width:701px){body.sidebar-collapsed .sidebar.sidebar-unpinned:hover{width:76px;padding-left:11px;padding-right:11px;box-shadow:none}body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .brand{justify-content:center;padding-left:0;padding-right:0}body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .brand .logo-img{width:42px;height:42px;object-fit:cover;object-position:left;border-radius:9px}body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .farmbox,body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .theme-toggle,body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .sidefoot{display:none}body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav:before{font-size:0;padding:10px 0}body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav button{justify-content:center;padding:11px 6px}body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav-label{display:none}body.sidebar-collapsed .sidebar.sidebar-unpinned:hover .nav .ico{font-size:19px}}

/* Global portal-style modal layer: no panel or drill-down may clip an active dialog. */
body.app-modal-open{overflow:hidden!important;touch-action:none}.modal-bg.open,.due-modal-bg,.reminder-modal-bg,.drill-bg,.onboard-screen.open,.reset-screen.open{position:fixed!important;inset:0!important;z-index:9998!important}.modal-bg.open,.due-modal-bg,.reminder-modal-bg{background:rgba(0,0,0,.68)!important;backdrop-filter:blur(3px)}.modal-bg.open .modal,.due-modal-bg>.due-modal,.reminder-modal-bg>.reminder-modal,.drill-bg>.drill-panel,.onboard-screen.open>.onboard-card,.reset-screen.open>.reset-card{position:relative!important;z-index:10000!important}.modal-bg.open .modal,.due-modal-bg>.due-modal,.reminder-modal-bg>.reminder-modal{max-height:90vh;overflow:auto}.drill-bg{z-index:9997!important}.drill-bg>.drill-panel{z-index:9999!important}

/* Insemination inbreeding risk alert */
.lineage-preview{margin-top:14px;border-radius:12px;overflow:hidden;text-align:left}.semen-source{padding:10px 12px;background:rgba(14,56,58,.58);color:#cbf6f1}.inbreed-banner{padding:14px 15px;color:white;font-size:13px;font-weight:650;line-height:1.4;border-radius:0 0 11px 11px;border:2px solid transparent;box-shadow:0 0 0 transparent}.inbreed-title{font-size:16px;font-weight:900;margin-bottom:7px}.inbreed-banner.safe{background:#0a5b3b;border-color:#42d98a}.inbreed-banner.caution{background:#866700;border-color:#ffe060;color:#fff}.inbreed-banner.high{background:#a54508;border-color:#ffad45}.inbreed-banner.critical{background:#ed101d;border-color:#ff8d96;animation:criticalInbreedPulse 1s infinite;box-shadow:0 0 20px rgba(255,0,20,.88)}.inbreed-impact{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.45);font-size:14px}.inbreed-block{margin-top:9px;padding:8px;background:#69050d;border:1px solid white;border-radius:7px;font-size:14px;font-weight:950;text-align:center}.blocked-breed,.blocked-breed:disabled{background:#5e1b23!important;color:#ffc3c8!important;opacity:.7;cursor:not-allowed}@keyframes criticalInbreedPulse{0%,100%{background:#ed101d;box-shadow:0 0 7px rgba(255,0,20,.35)}50%{background:#85040c;box-shadow:0 0 28px rgba(255,0,20,1)}}@media(max-width:700px){.inbreed-banner{font-size:14px;padding:15px}.inbreed-title{font-size:17px}}

/* Maximum permitted browser alarm: device volume cannot be forced by web standards. */
.critical-due{background:rgba(76,0,7,.83)!important;animation:criticalScreenPulse 1s infinite}.critical-due .due-modal{border:3px solid #ff3644!important;box-shadow:0 0 45px rgba(255,0,20,.95)!important}.critical-due .eyebrow{color:#ffbbc0!important;font-weight:950}@keyframes criticalScreenPulse{0%,100%{background:rgba(76,0,7,.83)}50%{background:rgba(150,0,10,.92)}}

/* Form contrast correction: never render light text/placeholder on a white field in dark mode. */
.field textarea,.reminder-fields textarea{background:#091b1f!important;color:#f0ffff!important;border-color:#2a5054!important}.field textarea::placeholder,.reminder-fields textarea::placeholder{color:#87a5a3!important;opacity:1}.field input::placeholder{color:#87a5a3!important;opacity:1}.light-theme .field textarea,.light-theme .reminder-fields textarea{background:#fff!important;color:#112126!important;border-color:#c9dddd!important}.light-theme .field textarea::placeholder,.light-theme .reminder-fields textarea::placeholder{color:#6b7c80!important}

/* Inline manual semen-source registration */
.manual-source-toggle{margin-top:10px;border:1px dashed #59dacf;background:#0d3438;color:#7ce9e0;padding:9px 12px;border-radius:8px;font-weight:800}.manual-source-toggle:hover{background:#155056}.manual-semen-source{margin-top:13px;padding:14px;border:1px solid rgba(91,225,213,.28);border-radius:12px;background:rgba(13,58,62,.43)}

/* Scannable veterinary-reference result cards */
.vet-result-list{display:grid;gap:12px;margin-top:13px}.vet-result-card{border:1px solid rgba(94,219,207,.22);border-radius:12px;background:rgba(9,35,40,.65);overflow:hidden}.vet-result-head{width:100%;display:flex;justify-content:space-between;gap:12px;text-align:left;padding:14px;background:rgba(19,70,73,.55);color:#e9fffd}.vet-result-head b{display:block;font-size:14px}.vet-result-head small{display:block;color:#8eb6b2;margin-top:4px}.vet-result-head>span:last-child{font-size:22px;color:#6fe2d8}.vet-result-body{padding:13px;color:#c6dcda}.vet-result-body.collapsed{display:none}.vet-result-body ul{margin:7px 0 12px;padding-left:19px;line-height:1.45}.vet-result-body li{margin:5px 0}.vet-result-body details{border-top:1px solid var(--line);padding:10px 0}.vet-result-body summary{cursor:pointer;color:#71e2d8;font-weight:800}.vet-overview>b{color:#71e2d8}.vet-caution{margin:9px 0;padding:9px;border-radius:7px;background:rgba(162,103,8,.22);border:1px solid rgba(241,189,81,.38);color:#ffd77d;font-size:12px}.vet-result-body a{display:inline-block;margin-top:5px;color:#62e4d7;font-weight:800}

/* Veterinary search: neutral slate reference workspace */
#medicine .medicine-search{padding:20px;background:linear-gradient(145deg,#18252d,#101b22);border-color:#405762}#medicine .vet-result-card{background:#17232c;border-color:#405762;box-shadow:none}#medicine .vet-result-head{background:#263640;color:#f2f8f8}#medicine .vet-result-head em{font-style:normal;color:#63c5bb;font-size:10px;text-transform:uppercase;letter-spacing:.1em}#medicine .vet-result-body{color:#d3e0e0;padding:16px}#medicine .vet-result-body section{padding:12px 0;border-bottom:1px solid #3a4c55}#medicine .vet-result-body h4{margin:0;color:#5ed7ca;font-size:13px}#medicine .vet-empty{color:#9aadaf;font-style:italic}.treatment-table{margin-top:9px;border:1px solid #445861;border-radius:9px;overflow:auto}.tt-head,.tt-row{display:grid;grid-template-columns:1.3fr 1fr .7fr 1fr 1fr;gap:8px;min-width:620px;padding:10px;font-size:12px}.tt-head{background:#31434c;color:#bfe5e1;font-weight:800}.tt-row{border-top:1px solid #40535b}.tt-row small{display:block;color:#9db1b2}.stock-sufficient{color:#6cdb9d;font-weight:800}.stock-low-stock{color:#ffd06a;font-weight:800}.stock-out-of-stock{color:#ff8993;font-weight:800}.stock-not-stocked{color:#aababb;font-weight:800}

/* Searchable semen batch combobox */
.semen-combobox{position:relative}.semen-suggestions{display:none;position:absolute;z-index:10005;left:0;right:0;top:100%;max-height:260px;overflow:auto;background:#14282e;border:1px solid #45cfc3;border-radius:0 0 10px 10px;box-shadow:0 14px 30px rgba(0,0,0,.45)}.semen-suggestions.open{display:block}.semen-suggestions button{width:100%;display:flex;justify-content:space-between;gap:10px;text-align:left;padding:12px;border:0;border-bottom:1px solid rgba(175,235,229,.12);background:#14282e;color:#efffff}.semen-suggestions button:hover{background:#1c4145}.semen-suggestions span{color:#9bc4c1;font-size:12px;text-align:right}.semen-combobox .manual-source-toggle{position:relative;z-index:1}

/* Open/weaned sow production history */
.production-history{margin:14px 0;padding:14px;border-radius:12px;border:1px solid rgba(76,211,200,.25);background:rgba(10,53,57,.42);color:#d7efed}.production-history>b{color:#62ded4;font-size:16px}.production-row{display:grid;gap:4px;padding:11px 0;border-bottom:1px solid var(--line)}.production-row:last-child{border-bottom:0}.production-row span{color:#d8eeee}.production-row small{color:#9ebcb9;line-height:1.45}.production-toggle{margin-top:10px;border:0;background:transparent;color:#6ce2d7;font-weight:800;padding:4px 0}.production-past{display:none;margin-top:4px}.production-past.open{display:block}

/* Lactating sow active litter summary */
.active-litter{margin:14px 0;padding:14px;border:1px solid rgba(82,221,209,.32);border-radius:12px;background:rgba(8,71,70,.42);display:grid;gap:7px;color:#d7f4f1}.active-litter>b{color:#62e4d8;font-size:16px}.active-litter div{color:#c9e8e5}.active-litter small{color:#9bc4c1;line-height:1.4}

/* Dark-mode readability: Due Today reminder card styling only. */
.dashboard-reminder{background:#122428!important;color:#fff!important}.dashboard-reminder b{color:#fff!important}.dashboard-reminder small{color:#94a3b8!important}.dashboard-reminder .tag.warn{background:#51320b!important;color:#ffd36b!important}.dashboard-reminder:not(.overdue-blink){background:rgba(217,119,6,.15)!important;border-left:2px solid rgba(245,158,11,.55)}
.heat-summary{margin:10px 0;padding:11px;border-left:3px solid #ff9c36;border-radius:8px;background:rgba(119,62,8,.22);display:grid;gap:5px;color:#ffbf70}.heat-summary span{color:#ffd6a3;font-size:13px}
/* Clickable breeding history and read-only batch detail view */
.breeding-history-item{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:center;margin:7px 0;padding:11px;border:1px solid transparent;border-radius:9px;background:rgba(10,62,65,.28);color:#d8efed}.breeding-history-item:hover{border-color:#5adbd0;background:rgba(23,101,103,.42);transform:translateY(-1px)}.breeding-history-item i{font-size:25px;color:#66ded4}.batch-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}.batch-summary div{padding:10px;border-radius:9px;background:rgba(12,59,62,.43)}.batch-summary small{display:block;color:#9bb9b6}.batch-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.batch-detail-grid section{padding:13px;border:1px solid var(--line);border-radius:11px;background:rgba(9,39,43,.4)}.batch-detail-grid section:last-child{grid-column:1/-1}.batch-detail-grid h3{margin:0 0 9px;color:#63ded4;font-size:14px}.batch-detail-grid p{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:8px 0;margin:0}.batch-detail-grid p b{color:#9fc4c0}.batch-detail-grid p span{text-align:right;color:#e8f7f5}@media(max-width:700px){.batch-summary,.batch-detail-grid{grid-template-columns:1fr}.batch-detail-grid section:last-child{grid-column:auto}.batch-detail-grid p{display:grid;grid-template-columns:1fr}.batch-detail-grid p span{text-align:left}}

/* Farm-scoped duplicate sow validation */
.duplicate-input{border-color:#ff6672!important;box-shadow:0 0 0 2px rgba(255,71,86,.16)!important}.available-input{border-color:#58d99a!important}.duplicate-hint{display:block;margin-top:5px;font-size:11px;color:#69df9e}.duplicate-hint.error{color:#ff9aa3}
.reservation-combobox .semen-suggestions{z-index:10020!important}.suggestion-empty{padding:13px;color:#b9cbcb;font-size:13px;background:#14282e}.reservation-combobox .semen-suggestions{position:relative!important;top:auto!important;left:auto!important;right:auto!important;margin-top:5px;max-height:230px;z-index:10030!important}.reservation-combobox .semen-suggestions.open{display:block!important}

.batch-live-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:15px 0}.batch-live-grid div{padding:12px;border:1px solid var(--line);border-radius:9px;background:rgba(10,57,61,.45)}.batch-live-grid small{display:block;color:var(--muted)}.batch-live-grid b{font-size:22px}.batch-drill-row{width:100%;text-align:left;background:transparent;color:inherit;cursor:pointer}.batch-drill-row:hover{background:rgba(31,112,109,.2)}@media(max-width:700px){.batch-live-grid{grid-template-columns:repeat(2,1fr)}}

/* ── Reservation Certificate Overlay Stacking ── */
#reservationDetail {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  background: rgba(1, 10, 13, 0.82) !important;
  backdrop-filter: blur(8px) !important;
  display: grid !important;
  place-items: center !important;
  padding: 16px !important;
}

#reservationDetail .certificate {
  position: relative !important;
  z-index: 1000000 !important;
}

/* ── [REBUILD] Print isolation: take the certificate modal completely out of the
   fixed/absolute layout so Chrome paginates it as ONE clean Letter page.
   (The old visibility-only trick left the overlay anchored per-page → fragments.) ── */
@media print{
  body:has(>#reservationDetail)>*:not(#reservationDetail){display:none!important}
  .drill-bg{position:static!important;display:block!important;background:none!important;
            backdrop-filter:none!important;padding:0!important;inset:auto!important}
  #reservationDetail .certificate{position:static!important;inset:auto!important;width:100%!important;
            max-width:none!important;max-height:none!important;height:auto!important;overflow:visible!important;
            box-shadow:none!important;border-radius:0!important;margin:0!important}
  #reservationDetail, #reservationDetail *{visibility:visible!important}
}

/* Body's dark-theme gradient must never paint behind the printed page. */
@media print{html,body{background:#fff!important}}

/* [REBUILD FIX 112] print isolation for the Pedigree & Lineage Report */
@media print{
  body:has(>#pedigreeReport)>*:not(#pedigreeReport){display:none!important}
  #pedigreeReport{position:static!important;display:block!important;inset:auto!important;overflow:visible!important;background:none!important;backdrop-filter:none!important;padding:0!important}
  #pedigreeReport .certificate{position:static!important;width:100%!important;max-width:none!important;max-height:none!important;height:auto!important;overflow:visible!important;box-shadow:none!important;border-radius:0!important;margin:0!important}
  #pedigreeReport, #pedigreeReport *{visibility:visible!important}
}

/* ── [REBUILD] Batch performance record form, hub strip, certificate metric cells
   and ear-notch registry (js/batch-performance.js) ─────────────────────────── */
.perf-modal{max-width:700px;text-align:left}
.perf-sub{margin:2px 0 4px;color:#b4cfcc;font-size:13px}
.perf-preview{margin-top:14px;padding:12px 14px;border:1px dashed rgba(122,247,233,.4);border-radius:12px}
.perf-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}
.perf-preview-grid div{padding:7px 10px;border-radius:8px;background:rgba(10,57,61,.55)}
.perf-preview-grid small{display:block;color:var(--muted);font-size:9.5px;letter-spacing:.3px;text-transform:uppercase}
.perf-preview-grid b{font-size:14px}
.perf-preview-note{display:block;margin-top:8px;color:var(--muted);font-size:11.5px;line-height:1.45}
.perf-modal .field-hint{display:block;margin-top:4px;color:var(--muted);font-size:10.5px;font-weight:500;text-transform:none;letter-spacing:0}
.notch-table{width:100%;border-collapse:collapse;margin-top:6px}
.notch-table th{font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);text-align:left;padding:5px 6px}
.notch-table td{padding:3px 4px}
.notch-table input,.notch-table select{width:100%;padding:7px 9px;border-radius:8px;border:1px solid #2a5054;background:#091b1f;color:#f0ffff;font-size:12.5px}
.notch-no{width:28px;color:var(--muted);font-size:11px;text-align:right;padding-right:8px!important}
.notch-del{background:transparent;color:#ff9aa5;font-size:17px;line-height:1;padding:2px 6px}
.notch-empty td{color:var(--muted);font-size:12px;padding:10px 6px;text-align:center}
.notch-actions{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.notch-actions .btn{font-size:11px;padding:7px 12px}
/* [REBUILD FIX 32] per-piglet weigh-in column + stage chooser */
.notch-wrap{overflow-x:auto}
.field:has(.notch-wrap){min-width:0} /* keep the sideways scroll inside the registry, not the whole modal */
@media(max-width:560px){.notch-table{min-width:480px}}
.notch-kg{min-width:62px;text-align:right}
.weight-stage-modal{max-width:520px}
.wstage-note{font-size:12.5px;line-height:1.55;margin:2px 0 12px}
.wstage-opt{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px;cursor:pointer;background:rgba(10,57,61,.25)}
.wstage-opt:has(input:checked){border-color:rgba(65,217,204,.75);background:rgba(18,94,85,.32);box-shadow:0 0 0 1px rgba(65,217,204,.18)}
.wstage-opt input{margin-top:3px;accent-color:var(--teal);width:16px;height:16px;flex:none}
.wstage-opt small{display:block;color:var(--muted);font-size:11px;margin-top:3px;line-height:1.45}
.light-theme .notch-table input,.light-theme .notch-table select{background:#fff;color:#112126;border-color:#c9dddd}
@media(max-width:700px){.perf-preview-grid{grid-template-columns:1fr 1fr}}
.batch-perf-strip{margin:0 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(10,57,61,.28)}
.perf-strip-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:9px}
.perf-strip-head small{color:var(--muted);font-size:10.5px}
.perf-strip-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.perf-strip-grid small{display:block;color:var(--muted);font-size:9.5px;text-transform:uppercase;letter-spacing:.3px}
.perf-strip-grid b{font-size:13.5px}
@media(max-width:700px){.perf-strip-grid{grid-template-columns:repeat(2,1fr)}}
/* Certificate: metric cells + notch chips (white card palette, matches .cert-card) */
.perf-card .cert-perf-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.perf-cell{border:1px solid rgba(16,52,56,.16);border-radius:7px;padding:6px 8px;background:#fff}
.perf-cell small{display:block;font-size:8px;letter-spacing:.35px;text-transform:uppercase;color:#5b7073;line-height:1.25}
.perf-cell b{display:block;font-size:12.5px;color:#0c262b;margin:1px 0 0;line-height:1.2}
.perf-cell i{display:block;font-style:normal;font-size:8px;color:#7d9497;line-height:1.25;margin-top:1px}
.notch-sub{display:block;font-size:9px;font-weight:600;opacity:.8;text-transform:none;letter-spacing:.2px}
.notch-grid{display:flex;flex-wrap:wrap;gap:5px}
.notch-chip{display:inline-flex;align-items:center;border:1px solid rgba(16,52,56,.2);border-radius:6px;padding:3px 8px;font-size:9.5px;background:#fff;color:#0c262b}
.notch-chip b{margin-right:5px}
@media(max-width:700px){.perf-card .cert-perf-grid{grid-template-columns:repeat(3,1fr)}.perf-cell b{font-size:11.5px}}
@media print{
  .perf-card .cert-perf-grid{grid-template-columns:repeat(6,1fr);gap:4px}
  .perf-cell{padding:3px 6px;break-inside:avoid}
  .perf-cell small{font-size:7px}
  .perf-cell b{font-size:9.5px}
  .perf-cell i{font-size:7px}
  .notch-grid{gap:3px}
  .notch-chip{font-size:7.5px;padding:1px 5px}
}

/* [REBUILD v5] Ear-notch registry: sex / teats column sizing */
.notch-table th:nth-child(1),.notch-table td:nth-child(1){width:28px}
.notch-table th:nth-child(2),.notch-table td:nth-child(2){width:96px}
.notch-table th:nth-child(5),.notch-table td:nth-child(5){width:80px;text-align:center}
.notch-table [name=notch_teats]{text-align:center}
.notch-table [name=notch_teats]:disabled{opacity:.38;cursor:not-allowed}
@media(max-width:700px){.notch-table th:nth-child(2),.notch-table td:nth-child(2){width:76px}.notch-table th:nth-child(5),.notch-table td:nth-child(5){width:60px}}

/* ═══ [REBUILD FEATURE] Medicine inventory, vet library search, stock-sync treatments ═══ */
.med-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.med-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:2px 0 14px}
.med-tab{padding:10px 15px;border-radius:999px;border:1px solid #3c5963;background:#16262d;color:#cfe6e4;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;line-height:1.2}
.med-tab.active{background:linear-gradient(135deg,#22d8cb,#149e93);color:#052723;border-color:#54ead9;box-shadow:0 4px 14px rgba(34,216,203,.25)}
.med-tab:not(.active):hover{border-color:#6fa3ac;color:#ffffff}
.med-filter{width:100%;flex:1;margin:2px 0 12px;background:#0e1d23;border-color:#33505a;color:#e8fbfa}
.med-filter::placeholder{color:#7fa2a6}
.med-lib-head{padding:14px;background:#263640}
.med-lib-head b{display:block;font-size:15px;color:#f2f8f8}
.med-lib-head small{display:block;color:#a8c0c4;margin-top:5px}
.med-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.med-chip{padding:4px 10px;border-radius:999px;background:rgba(38,204,190,.16);border:1px solid rgba(67,218,205,.45);color:#7fe9df;font-size:11px;font-weight:800}
.med-chip.ghost{background:transparent;border-color:#4d6a74;color:#9dbec2}
.med-dose-box{margin-top:6px;padding:12px;border-radius:10px;background:rgba(24,175,163,.10);border:1px solid rgba(66,214,201,.35);font-size:13px;line-height:1.55;color:#d9eeee}
.med-dose-box>b{color:#63dcd0}
.med-dose-focus{display:block;font-weight:700;color:#f0fbf9;margin:3px 0 8px}
.med-dose-rows{display:grid;gap:4px;border-top:1px dashed rgba(103,206,197,.3);padding-top:8px}
.med-dose-row{display:grid;grid-template-columns:150px 1fr;gap:10px;font-size:12px;color:#a9c7ca}
.med-dose-row span{color:#7ba1a5}
.med-dose-row.focus{color:#d9fffb}
.med-dose-row.focus span{color:#63dcd0;font-weight:800;text-transform:uppercase;font-size:10px;letter-spacing:.08em}
.med-route{margin:8px 0 0;font-size:12px}
.med-price{font-weight:800;color:#ffd77d;font-size:14.5px;margin:2px 0}
.med-live-stock{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 10px;padding:11px 12px;border-radius:10px;background:rgba(9,35,40,.55);border:1px solid #37525c;font-size:13px;color:#cfe6e4}
.med-mini-btn{padding:7px 11px!important;font-size:11.5px!important;border-radius:9px;min-height:unset}
.med-mini-btn.danger{color:#ff9aa4;border-color:rgba(255,128,140,.4)}
.med-mini-btn.danger:hover{background:rgba(132,28,42,.35)}
.med-live{margin:6px 0;padding:11px 12px;border-radius:10px;border:1px dashed #3f5d66;font-size:12.5px;line-height:1.55;color:#c2dcdf}
.med-live-ok{color:#63dcd0;font-weight:800}
.med-live-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.med-live-links a{color:#62e4d7;font-weight:800;font-size:12px}
.med-suggest-head{margin:6px 0 4px}
.med-suggest-head b{display:block;color:#5ed7ca;font-size:14px}
.med-suggest-head small{color:#9aadaf;font-size:11.5px}
.med-pill{display:inline-block;padding:4px 11px;border-radius:999px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border:1px solid currentColor;background:rgba(4,20,24,.35)}
.med-row{align-items:flex-start;gap:12px}
.med-row-main{flex:1;min-width:0}
.med-row-side{display:grid;gap:7px;justify-items:end;text-align:right}
.med-row-top{display:flex;align-items:center;gap:9px;justify-content:flex-end;flex-wrap:wrap}
.med-qty{font-size:16px}
.med-qty small{font-size:11px;color:var(--muted)}
.med-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.med-exp{display:inline-block;margin-top:2px;font-weight:700}
.med-exp.expiring{color:#ffd06a}
.med-exp.expired{color:#ff8f9b}
.mv-hist{margin-top:7px;font-size:11.5px}
.mv-hist summary{cursor:pointer;color:#71e2d8;font-weight:800}
.mv-row{display:flex;gap:9px;flex-wrap:wrap;align-items:baseline;padding:6px 0;border-bottom:1px dashed #33474f;font-size:11.5px}
.mv-row:last-child{border-bottom:0}
.mv-kind{font-weight:800;color:#cfe6e4;min-width:118px}
.mv-delta{font-weight:800}
.mv-delta.pos{color:#6cdb9d}
.mv-delta.neg{color:#ff9aa4}
.med-empty-hint{text-align:center;margin-top:-30px;font-size:12px}
.med-check{display:flex;align-items:center;gap:8px;font-weight:600;color:#bad4d2;text-transform:none;letter-spacing:0}
.med-check input{width:auto;min-height:0}
#medTreatModal .field select,#medEdModal .field select,#medRsModal .field select{width:100%}
@media(max-width:700px){
  .med-grid{grid-template-columns:1fr}
  .med-tab{flex:1;text-align:center}
  .med-row{flex-direction:column}
  .med-row-side{justify-items:stretch;text-align:left;width:100%}
  .med-row-top{justify-content:flex-start}
  .med-actions{justify-content:flex-start}
  .med-actions .med-mini-btn{flex:1;text-align:center}
  .med-dose-row{grid-template-columns:1fr;gap:1px}
  .empty{padding:26px 12px}
  .med-empty-hint{margin-top:0;padding:0 14px 18px;text-align:left}
}
.light-theme .med-tab{border-color:#b8d4d2;background:#eef6f6;color:#175054}
.light-theme .med-tab.active{color:#05302c}
.light-theme .med-filter{background:#fff;border-color:#c8dddb;color:#123}
.light-theme .med-chip.ghost{color:#3d6b68;border-color:#9fc4c1}
.light-theme .med-dose-box{color:#0d3c39;background:rgba(24,175,163,.08)}
.light-theme .med-live-stock{background:#f2f9f9;border-color:#c6dedc;color:#13403d}
.light-theme .med-live{border-color:#aacccb;color:#24474a}
.light-theme .med-price{color:#8a6410}

/* [REBUILD FIX 11] per-row Delete button on the reminders table */
.rem-del{margin-left:8px;border-color:rgba(255,128,140,.4)!important}

/* [REBUILD FIX 11] reminders table becomes stacked cards on narrow screens so STATUS + Edit/Delete stay on-screen */
@media(max-width:700px){
  #reminderTable thead{display:none}
  #reminderTable,#reminderTable tbody,#reminderTable tr,#reminderTable td{display:block;width:100%;box-sizing:border-box;min-width:0}
  #reminderTable tr{border-top:1px solid var(--line);padding:12px 14px}
  #reminderTable tbody tr:first-child{border-top:none}
  #reminderTable td{padding:3px 0!important;border-top:none!important}
  #reminderTable td[data-label]::before{content:attr(data-label);display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#85a19f;margin-bottom:3px}
  #reminderTable td.rem-actions{text-align:left;display:flex;gap:8px;margin-top:9px;padding-top:10px!important;border-top:1px dashed var(--line)!important}
  #reminderTable td.rem-actions .btn{flex:1;text-align:center;margin:0}
  #reminderTable td.rem-actions .rem-del{margin-left:0}
  #reminderTable td.empty{padding:26px 12px!important;text-align:center}
  .light-theme #reminderTable td[data-label]::before{color:#6b8583}
}

/* [REBUILD FIX 13] ♂/♀ breakdown line under each batch-hub summary figure */
.batch-live-grid .mf{margin-top:3px;font-size:11px;color:#7fc4be!important;letter-spacing:.02em}
.light-theme .batch-live-grid .mf{color:#3d7a74!important}
/* [REBUILD FIX 15] "add feed data to unlock metrics" hint inside trial columns */
.fc-hint{margin-top:9px;padding:9px 11px;border:1px dashed rgba(255,214,107,.45);border-radius:9px;color:#e8d9a8;font-size:11.5px;line-height:1.5}
.fc-hint b{color:#ffd66b}
.light-theme .fc-hint{border-color:#ccb96a;color:#7a6116;background:#fffbef}
.light-theme .fc-hint b{color:#6b5410}

/* [REBUILD FIX 12 / FEATURE] Fattener & Grow-Finish Center */
.fc-tabs{display:flex;gap:8px;margin:14px 0 18px;flex-wrap:wrap}
.fc-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.fc-stat{background:#10262b;border:1px solid #22454b;border-radius:13px;padding:13px 15px}
.fc-stat small{display:block;color:#8fb0ae;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.fc-stat b{font-size:24px;display:block;margin:4px 0 2px}
.fc-stat span{font-size:11px;color:#7d9a98}
.fc-batch-list{display:grid;gap:14px}
.fc-batch{background:#10262b;border:1px solid #22454b;border-radius:15px;padding:16px}
.fc-batch.fc-ready{border-color:rgba(87,212,141,.55)}
.fc-batch-head b{font-size:17px;margin-right:7px}
.fc-batch-head .tag{margin:0 5px 4px 0;vertical-align:2px}
.fc-batch-head small{display:block;margin-top:5px}
.fc-batch-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:13px 0}
.fc-batch-stats>div{background:rgba(255,255,255,.035);border-radius:10px;padding:9px 11px}
.fc-batch-stats small{display:block;color:#8fb0ae;font-size:10px;text-transform:uppercase;letter-spacing:.07em}
.fc-batch-stats b{font-size:19px;display:block;margin-top:2px}
.fc-prog{margin:2px 0 12px}
.fc-prog-bar{height:8px;border-radius:8px;background:rgba(255,255,255,.08);overflow:hidden}
.fc-prog-bar i{display:block;height:100%;background:linear-gradient(90deg,#1ac0b4,#57d48d);border-radius:8px}
.fc-prog small{color:#9fbdbb;font-size:11px}
.fc-roster summary{cursor:pointer;font-weight:750;color:#5ce4d8;padding:6px 0}
.fc-roster .table{min-width:0}
.fc-batch-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.fc-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.fc-trial{margin-bottom:14px;padding:16px;background:#10262b!important;border-color:#22454b!important}
.fc-trial-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fc-trial-head b{font-size:15px;margin-right:7px}
.fc-thead-actions{display:flex;gap:7px;flex-wrap:wrap}
.fc-tgrid{display:grid;gap:11px;margin-top:13px}
.fc-tcol{background:rgba(255,255,255,.035);border:1px solid #22454b;border-radius:12px;padding:12px}
.fc-tcol-best{border-color:rgba(255,214,102,.6)}
.fc-tcol-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px}
.fc-trow{display:flex;justify-content:space-between;gap:10px;border-top:1px dashed rgba(255,255,255,.08);padding:6.5px 0;font-size:12.5px}
.fc-trow span{color:#9fc2c0}
.fc-best-chip{color:#ffd66b;font-size:10px;font-weight:800}
.fc-trial-modal{max-width:780px}
.fc-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fc-gblock{border:1px solid #2a4a51;border-radius:12px;padding:13px}
.fc-gblock-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.fc-gon{font-size:11.5px;color:#8fb0ae;display:flex;gap:5px;align-items:center}
.fc-g2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fc-split{display:grid;grid-template-columns:1.05fr .95fr;gap:20px}
.fc-subhead{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0 8px;gap:10px}
.fc-wrow{display:grid;grid-template-columns:1fr 100px 34px;gap:8px;align-items:center;margin-bottom:7px}
.fc-wrow span{font-size:12.5px;color:#9fc2c0}
.fc-wrow input,.fc-brow input{width:100%;padding:9px;border-radius:8px;border:1px solid #2a4a51;background:#0b1b20;color:#ecfafa;outline-color:var(--teal)}
.fc-brow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 34px;gap:7px;align-items:center;margin-bottom:7px;font-size:12px;color:#9fc2c0}
.fc-results .table{min-width:0}
.fc-total{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:13px;background:rgba(87,212,141,.1);border:1px solid rgba(87,212,141,.4);border-radius:11px}
.fc-total span{color:#8fb0ae;font-size:12px;text-transform:uppercase;letter-spacing:.07em}
.fc-total b{font-size:23px;color:#57d48d}
.fc-table{min-width:0}
@media(max-width:900px){
  .fc-groups{grid-template-columns:1fr}
  .fc-batch-stats{grid-template-columns:repeat(3,1fr)}
  .fc-stat-grid{grid-template-columns:repeat(2,1fr)}
  .fc-split{grid-template-columns:1fr}
}
@media(max-width:700px){
  .fc-tgrid{grid-template-columns:1fr!important}
  .fc-batch-stats{grid-template-columns:repeat(2,1fr)}
  .fc-stat-grid{grid-template-columns:1fr 1fr;gap:9px}
  .fc-wrow{grid-template-columns:1fr 90px 32px}
  .fc-brow{grid-template-columns:1fr auto 1fr auto 1.1fr auto 30px;gap:4px}
}
.light-theme .fc-stat,.light-theme .fc-batch,.light-theme .fc-trial{background:#fff!important;border-color:#dbe9e8!important}
.light-theme .fc-stat small,.light-theme .fc-batch-stats small,.light-theme .fc-trow span,.light-theme .fc-wrow span,.light-theme .fc-prog small,.light-theme .fc-brow{color:#5d7572}
.light-theme .fc-batch-stats>div,.light-theme .fc-tcol{background:#f3f9f8;border-color:#dbe9e8}
.light-theme .fc-stat b,.light-theme .fc-batch-stats b,.light-theme .fc-batch-head b,.light-theme .fc-trow b,.light-theme .fc-tcol-head b{color:#123034}
.light-theme .fc-wrow input,.light-theme .fc-brow input{background:#fff;border-color:#c8dddb;color:#123}
.light-theme .fc-gblock{border-color:#c8dddb}
.light-theme .fc-roster summary{color:#0a6968}

/* [REBUILD FEATURE] Feeding Guide Program panel (Feed Inventory page) */
.fg-panel{padding:18px;margin-bottom:16px;background:#0d2026!important;border-color:#245058!important}
.fg-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.fg-head h2{margin:3px 0;font-size:19px}
.fg-table{min-width:0}
.fg-need{color:#ffcf6e}
.fg-ok{color:#57d48d}
.fg-sec{border-top:1px dashed rgba(255,255,255,.12);padding-top:10px;margin-top:10px}
/* [REBUILD FIX 34] brief teal highlight when the dashboard stage-planner card jumps here */
.fg-sec.fg-flash{animation:fgFlash 1.8s ease-out;border-radius:10px;padding-left:6px;padding-right:6px;transition:padding .2s}
@keyframes fgFlash{0%{box-shadow:0 0 0 2px var(--teal);background:rgba(19,185,173,.10)}100%{box-shadow:0 0 0 0 transparent;background:transparent}}
.fg-sec summary{cursor:pointer;font-weight:800;color:#5ce4d8}
.fg-sec>p{color:var(--muted);font-size:12.5px;line-height:1.6}
.fg-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.fg-mini{background:rgba(255,255,255,.04);border:1px solid #245058;border-radius:11px;padding:11px 13px}
.fg-mini small{color:#8fb0ae;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.fg-mini b{display:block;font-size:20px;margin:3px 0}
.fg-mini span{font-size:11.5px;color:#9fc2c0}
.fg-batch{border:1px solid #245058;border-radius:12px;padding:12px;margin:10px 0;background:rgba(255,255,255,.03)}
.fg-batch-top{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.fg-batch-top b{font-size:15px;margin-right:6px}
.fg-batch-top small,.fg-batch-top .muted{font-size:12px}
.fg-chips{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0 5px}
/* [REBUILD FIX 35] stage-planner search bar */
.fg-search{width:100%;margin:6px 0 4px;font-size:15px;padding:11px 12px;border-radius:9px;border:1px solid #2a4a51;background:#0b1b20;color:#ecfafa;outline-color:var(--teal)}
.light-theme .fg-search{background:#fff;border-color:#c8dddb;color:#123}
.fg-matchnote{display:block;margin:2px 0 8px;font-size:12px;color:#7fd9d2}
.fg-cons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.fg-cons small{display:block;color:#8fb0ae;font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.fg-cons span{display:flex;align-items:center;gap:5px}
.fg-cons input{width:100%;padding:7px;border-radius:7px;border:1px solid #2a4a51;background:#0b1b20;color:#ecfafa;font-size:13px}
.fg-cons b{color:#7d9a98;font-size:11px;white-space:nowrap}
.fg-perhead{color:#7d9a98!important;font-size:10px;margin-top:2px}
.fg-modal{max-width:720px}
.fg-lab{font-size:13px;font-weight:800;color:#aef0ea;display:block;margin:10px 0 8px}
.fg-stage-row{display:grid;grid-template-columns:1fr 1.1fr 1.1fr;gap:9px;align-items:center;margin-bottom:7px}
.fg-stage-row b{font-size:13px}
.fg-stage-row span{display:flex;align-items:center;gap:6px}
.fg-stage-row small{color:#7d9a98;font-size:10.5px;white-space:nowrap}
.fg-bagrow{display:grid;grid-template-columns:1fr 90px 60px;gap:8px;align-items:center;margin-bottom:6px;font-size:13px}
.fg-bagrow input{padding:8px;border-radius:7px;border:1px solid #2a4a51;background:#0b1b20;color:#ecfafa}
.fg-bagrow b{color:#7d9a98;font-size:11px}
@media(max-width:700px){
  .fg-two{grid-template-columns:1fr}
  .fg-cons-grid{grid-template-columns:1fr 1fr}
  .fg-stage-row{grid-template-columns:1fr;gap:4px;padding-bottom:8px;border-bottom:1px dashed rgba(255,255,255,.1)}
  .fg-head{flex-direction:column}
}
.light-theme .fg-panel{background:#f2faf9!important;border-color:#bcdeda!important}
.light-theme .fg-mini,.light-theme .fg-batch{background:#fff;border-color:#d3e6e4}
.light-theme .fg-mini small,.light-theme .fg-cons small,.light-theme .fg-mini span{color:#5d7572}
.light-theme .fg-cons input,.light-theme .fg-bagrow input{background:#fff;border-color:#c8dddb;color:#123}
.light-theme .fg-sec summary,.light-theme .fg-lab{color:#0a6968}

/* ═══ [REBUILD FIX 18] Feed trial: batch health details modal + printable client report ═══ */
.fc-health-modal{max-width:720px;max-height:88vh;overflow:auto}
.fc-health-sec{margin-top:12px;padding:12px 14px;border:1px solid #22454b;border-radius:12px;background:#10262b}
.fc-health-sec h4{margin:0 0 9px;font-size:14px}
.fc-health-sec .fc-trow b{text-align:right}
.fc-health-none{font-size:12.5px;margin:6px 0;line-height:1.5}
.fc-med-table{min-width:0;font-size:12px}
.fc-med-table th,.fc-med-table td{padding:6px 7px;white-space:normal}
.light-theme .fc-health-sec{background:#fff;border-color:#dbe9e8}
.fc-report .fc-report-scroll{overflow-x:auto}
.fc-report-table{width:100%;border-collapse:collapse;font-size:12.5px;color:#123034;font-variant-numeric:tabular-nums}
.fc-report-table th,.fc-report-table td{border:1px solid #d8e4e3;padding:6px 9px;text-align:left;vertical-align:top}
.fc-report-table thead th{background:#087c76;color:#fff;border-color:#0a6b66;font-weight:800}
.fc-report-table tbody tr:nth-child(even) td{background:#f3faf9}
.fc-report-best{color:#0a7d3a;font-weight:800;white-space:nowrap}
.fc-ongoing{background:#fdeccd!important;color:#8a5a00!important}
@media(max-width:700px){.fc-report-table{font-size:12px}.fc-med-table{font-size:11px}}
@media print{.fc-report-table{font-size:10px}.fc-report-table th,.fc-report-table td{padding:3px 6px}.fc-report .fc-report-scroll{overflow:visible}}
/* The legacy reservation-summary print rules force every .drill-panel visible
   on paper — that would print the Fattener Center behind the client report.
   While the report (#fcReport) is open, hide the center and keep the
   certificate as the only printable element. */
@media print{
  #fattenerCenter, #fattenerCenter *{visibility:hidden!important}
  #fcReport, #fcReport *{visibility:visible}
  #fcReport .certificate, #fcReport .certificate *{visibility:visible!important}
  /* Knock the hidden app shell + Fattener Center out of print layout entirely,
     otherwise their (invisible) boxes still paginate and push the certificate
     onto later PDF pages. Everything but #fcReport leaves the print tree. */
  body.fc-report-open > :not(#fcReport){display:none!important}
  body.fc-report-open #fcReport{position:static!important;background:#fff!important}
}

/* ═══ [REBUILD FIX 19] Clickable batch rows on the Piglet Batches drill-down ═══ */
.drill-row-link{position:relative;padding-right:36px}
.drill-row-caret{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-style:normal;font-size:24px;font-weight:800;color:#17cabe}
.drill-row-link:active{background:rgba(23,202,190,.08)}

/* ═══ [REBUILD FIX 20] Iron & Castration quick-care panel ═══ */
.care-modal{max-width:680px}
.care-batch-list{display:grid;gap:8px;margin-top:6px}
.care-batch-row{width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit;background:rgba(16,38,43,.6)}
.care-batch-row:active{background:rgba(23,202,190,.12)}
.care-chips{display:grid;gap:4px;justify-items:end;font-size:13px}
.care-chips .tag{font-style:normal}
.care-note{display:block;margin-top:10px;font-size:12px;line-height:1.5}
.light-theme .care-batch-row{background:#fff}

/* ═══ [REBUILD FIX 21] Recent treatments search bar ═══ */
.treat-search-field{margin:10px 0 12px}
.treat-search-field input{width:100%}
.treat-count{display:block;margin-top:10px;font-size:11.5px}

/* [REBUILD FIX 24] Batch archive — tags + dimmed rows + archive action accent */
.archived-pill{display:inline-block;margin-left:8px;padding:3px 9px;border-radius:999px;background:rgba(243,156,18,.14);border:1px solid rgba(243,156,18,.55);color:#f5b942;font-size:11px;font-weight:800;letter-spacing:.4px;vertical-align:middle}
.drill-archived{opacity:.62}
.drill-archived:hover{opacity:.85}
.archive-btn{border:1px solid rgba(243,156,18,.55)!important;color:#f5b942!important}
.archive-btn:hover{background:rgba(243,156,18,.12)!important}

/* [REBUILD FIX 25] Admin farm-deletion section spacing */
.admin-farm-sec{margin-top:20px}
.admin-farm-note{margin:0 0 10px;font-size:13px}

/* [REBUILD FIX 26] Treatment target type-ahead (replaces the animal/group dropdown) */
.treat-typeahead{position:relative}
.treat-typeahead input[name=animal_label]{width:100%}
.treat-sug{max-height:210px;top:calc(100% + 2px)}
.treat-sug-heads{color:#ffd480;font-size:12px;white-space:nowrap}

/* [REBUILD FIX 27] Dam/sow type-ahead in the Add piglet batch modal —
   reuses the FIX 26 .treat-typeahead/.treat-sug bones. */
.sow-typeahead{position:relative}
.sow-typeahead input[name=sow_label]{width:100%}
.sow-typeahead .treat-sug{max-height:260px;z-index:10050}

/* [REBUILD FIX 30] live piglet batch rows: blinking care alerts + feed chip */
@keyframes batchBlink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.95)}}
.batch-alert{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:900;letter-spacing:.5px;animation:batchBlink 1.15s ease-in-out infinite}
.batch-alert.iron{background:#3d0a24;color:#ff9ec7;border:1px solid #ff4d94}
.batch-alert.wean{background:#4a2604;color:#ffc37f;border:1px solid #ff9526}
.batch-alert.vacc{background:#0d2c4f;color:#8fd0ff;border:1px solid #43a2f5}
/* [REBUILD FIX 31] castration alert + tappable-pill affordance */
.batch-alert.castr{background:#341a4d;color:#d7b3ff;border:1px solid #a25ef5}
button.batch-alert{cursor:pointer;font-family:inherit;padding:5px 11px} /* FIX 31: bigger touch target for the tappable pills */
.batch-alert-row{display:block;margin-top:7px;margin-bottom:-2px}
.batch-alert-row .batch-alert{margin:0 6px 3px 0}
/* [REBUILD FIX 31] quick-care update sheet */
.care-quick-note{font-size:12.5px;line-height:1.6;margin:4px 0 12px}
.care-quick-note b{color:var(--tx,#eaf4ef)}
.care-quick-alt{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.care-breeder-btn{border-style:dashed}
.care-quick-strip{margin:2px 0 12px}
.care-quick-strip>small{display:block;margin-bottom:6px;font-size:11px;letter-spacing:.4px;text-transform:uppercase;opacity:.75}
.row-feed-chip{display:block;margin-top:5px;color:#7be3c4;font-size:11.5px}
.row-feed-stage{background:rgba(16,90,74,.55)!important;color:#7be3c4!important}
.row-feed-done{background:rgba(90,74,16,.55)!important;color:#ffd97b!important}
.piglet-live-row{cursor:pointer}
.batch-cards .piglet-live-row{position:relative;padding-right:64px}
.row-mini-del{position:absolute;right:34px;top:12px;padding:3px 7px;font-size:12px;line-height:1;min-height:0}
.batch-cards{padding:6px}

/* ═══ [REBUILD FIX 36] Vaccination Program center ═══ */
.vax-hero{padding:20px}
.vax-hero h2{margin:4px 0 6px;font-size:20px}
.vax-hero .muted{font-size:12.5px;line-height:1.6;max-width:640px}
.vax-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.vax-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}
.vax-sum{padding:13px 15px}
.vax-sum small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8fb0ae}
.vax-sum b{display:block;font-size:25px;margin:3px 0;color:#fbffff}
.vax-sum span{font-size:11px;color:#9fc2c0}
.vax-sum.hot{border-color:rgba(255,92,104,.5);background:linear-gradient(145deg,rgba(84,22,30,.6),rgba(26,10,14,.9))}
.vax-sum.hot b{color:#ff8f99}
.vax-sum.warm{border-color:rgba(240,182,75,.5)}
.vax-sum.warm b{color:#ffd06e}
.vax-filters{display:flex;gap:10px;align-items:center;margin:4px 0 14px;flex-wrap:wrap}
.vax-filters .fg-search{flex:1;min-width:210px;margin:0}
.vax-sec{padding:16px 18px;margin-bottom:14px}
.vax-sec h3{margin:0 0 6px;font-size:14.5px}
.vax-sec h3 small{font-weight:500}
.vax-row{display:grid;grid-template-columns:34px 1fr auto auto auto;gap:12px;align-items:center;padding:11px 0;border-top:1px dashed rgba(145,207,202,.14)}
.vax-row:first-of-type{border-top:0}
.vax-row.hist{opacity:.92}
.vax-ico{width:30px;height:30px;border-radius:50%;background:#123e3f;display:grid;place-items:center;font-size:15px;color:#5ce4d8}
.vax-main b{font-size:14px}
.vax-main small{display:block;color:#93aeac;font-size:11.5px;margin-top:1px}
.vax-need{text-align:right}
.vax-need b{font-size:16px;color:#6fe0d4}
.vax-need small{display:block;color:#8aa5a3;font-size:10.5px}
.vax-cta{display:flex;gap:6px;align-items:center}
.vax-cta .btn{padding:8px 11px;font-size:11px}
.vax-cta .delete-action{padding:8px 9px}
.vax-cats{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.vax-check{display:flex;gap:9px;align-items:flex-start;cursor:pointer;line-height:1.45}
.vax-check input{margin-top:3px;accent-color:var(--teal);width:16px;height:16px;flex:none}
.vax-total{padding:9px 12px;border:1px dashed rgba(111,224,212,.45);border-radius:8px;font-size:15px}
.vax-total b{color:#6fe0d4}
.vax-warn{color:#ffd06e}
.vax-typeahead .semen-suggestions{z-index:10040}
/* [REBUILD FIX 51] never-vaccinated register + scheduled vaccinations */
.vax-row.unvax{background:linear-gradient(90deg,rgba(255,92,104,.07),transparent 60%);border-radius:10px}
.vax-row.unvax:first-of-type{border-top:0}
.vax-row.sched{background:linear-gradient(90deg,rgba(240,182,75,.07),transparent 60%);border-radius:10px}
.vax-schedchip{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:2px 10px;border-radius:999px;border:1px solid rgba(111,224,212,.45);color:#6fe0d4;font-weight:700;width:fit-content}
.vax-sum-link{cursor:pointer;transition:transform .16s ease,border-color .16s ease}
.vax-sum-link:hover{transform:translateY(-2px);border-color:rgba(111,224,212,.55)}
.vax-ok-line{color:#64e5a0!important}
.light-theme .vax-schedchip{color:#0a6968;border-color:rgba(10,105,104,.4)}
.light-theme .vax-row.unvax{background:linear-gradient(90deg,rgba(184,63,63,.06),transparent 60%)}
.light-theme .vax-row.sched{background:linear-gradient(90deg,rgba(161,93,8,.06),transparent 60%)}
/* [REBUILD FIX 52] feed ordering & delivery tracker */
.ford-panel .drill-header{margin-bottom:10px}
.ford-sec-title{margin:16px 0 8px;font-size:11px;font-weight:800;letter-spacing:.1em;color:#6ecdc5}
.ford-sec-title small{color:#8fb0ae;font-weight:500}
.ford-sug{display:flex;flex-wrap:wrap;gap:8px;padding:11px 12px;border:1px dashed rgba(111,224,212,.35);border-radius:11px;font-size:12px}
.ford-sug-title{width:100%;font-weight:800;color:#9fe8e0;font-size:12px}
.ford-sug-chip{display:grid;text-align:left;gap:1px;padding:8px 12px;border-radius:10px;border:1px solid rgba(240,182,75,.5);background:rgba(240,182,75,.1);color:#ffe1a6;font-size:12.5px}
.ford-sug-chip small{color:#c8a86e;font-size:10.5px}
.ford-sug-chip em{font-style:normal;color:#5ce4d8;font-weight:800}
.ford-sug-ok{color:#64e5a0}
.ford-card{border:1px solid rgba(145,207,202,.16);border-radius:12px;padding:12px 13px;margin-bottom:10px;background:rgba(12,47,51,.32)}
.ford-card.partial{border-left:3px solid #f0b64b}
.ford-card.delivered{border-left:3px solid #57d48d;opacity:.92}
.ford-card.cancelled{opacity:.55}
.ford-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ford-top b{font-size:14.5px}
.ford-sub{display:block;color:#93aeac;font-size:11.5px;margin-top:2px}
.ford-pill{white-space:nowrap;flex:none}
.tag.green{background:#14392b;color:#64e5a0}
.ford-meta{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:8px;font-size:11.5px;color:#b8d2cf}
.ford-note{margin-top:6px;font-size:11.5px;color:#ffd9a0;background:rgba(240,182,75,.08);border:1px solid rgba(240,182,75,.25);border-radius:8px;padding:5px 9px}
.ford-deliveries{margin-top:8px;display:grid;gap:6px}
.ford-delivery{display:grid;gap:1px;padding:7px 10px;border-radius:9px;background:rgba(15,62,63,.5);font-size:12px}
.ford-delivery small{color:#7f9a98;font-size:10.5px}
.ford-stamp{display:block;margin-top:8px;color:#7f9a98;font-size:10.5px}
.ford-actions{display:flex;gap:7px;margin-top:10px}
.ford-actions .btn{flex:1;padding:9px 10px;font-size:11.5px}
.ford-actions .btn:not(:first-child),.ford-actions .delete-action{flex:0 0 auto}
.ford-total{padding:9px 12px;border:1px dashed rgba(111,224,212,.45);border-radius:8px;font-size:13.5px;color:#cde}
.ford-total b{color:#6fe0d4}
.ford-total small{color:#8aa5a3;display:block;font-size:10.5px}
.light-theme .ford-card{background:#f4fafa;border-color:#dceceb}
.light-theme .ford-sub,.light-theme .ford-delivery small,.light-theme .ford-stamp{color:#66807d}
.light-theme .ford-delivery{background:#e9f5f3}
.light-theme .ford-meta{color:#4c6562}
.light-theme .ford-sug-chip{background:#fff7e8;color:#8a5b09}
.light-theme .ford-sug-chip small{color:#a9884f}
.light-theme .tag.green{background:#ddf6e7;color:#16703f}
.light-theme .ford-total{background:#f2faf9;color:#123}
.light-theme .ford-total b{color:#0a6968}
.light-theme .ford-total small{color:#66807d}
.light-theme .vax-need b{color:#0a6968}
.light-theme .vax-sum b{color:#123}
.light-theme .vax-sum span,.light-theme .vax-main small{color:#52666a}
.light-theme .vax-ico{background:#e3f4f2;color:#0a6968}
/* dashboard checklist interactive items */
.checklist {
  margin-left: auto;
  align-self: stretch;
  display: grid;
  align-content: center;
  gap: 8px;
  font-size: 12.5px;
  color: #c6d9d7;
}
.checklist span:before,
.checklist .check-item:before,
.checklist .check-ico:before {
  content: none !important;
  display: none !important;
}
.checklist .check-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 6px 12px;
  border-radius: 9px;
  background: rgba(18, 48, 54, 0.45);
  border: 1px solid rgba(145, 207, 202, 0.15);
  transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: pointer;
  user-select: none;
  font-weight: 550;
}
.checklist .check-item:hover {
  background: rgba(19, 185, 173, 0.22);
  border-color: rgba(19, 185, 173, 0.5);
  color: #ffffff;
  transform: translateX(4px);
  box-shadow: 0 4px 14px rgba(19, 185, 173, 0.2);
}
.checklist .check-item .check-ico {
  display: inline-grid;
  place-items: center;
  width: 19px;
  height: 19px;
  min-width: 19px;
  border-radius: 50%;
  background: #123e37;
  color: #64e5a0;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}
.checklist .check-item.bad {
  color: #ffb3ba;
  background: rgba(77, 26, 34, 0.4);
  border-color: rgba(255, 128, 141, 0.35);
}
.checklist .check-item.bad .check-ico {
  background: #4d1a22;
  color: #ff808d;
}
.checklist .check-item.hl {
  border-color: rgba(240, 182, 75, 0.45);
  background: rgba(66, 42, 12, 0.45);
  color: #ffdeb3;
}
.checklist .check-item.hl .check-ico {
  background: #422a0c;
  color: #ffc266;
}
.light-theme .checklist .check-item {
  background: rgba(240, 248, 248, 0.85);
  border-color: #dceceb;
  color: #243e42;
}
.light-theme .checklist .check-item:hover {
  background: #e1f5f3;
  color: #0e6c66;
  border-color: #0d8d91;
}
.light-theme .checklist .check-item .check-ico {
  background: #daf3ed;
  color: #0b806d;
}

/* Moving animation and interactive score ring */
.score-ring.interactive-ring {
  position: relative;
  cursor: pointer;
  transition: transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.28s ease;
  user-select: none;
}
.score-ring.interactive-ring:hover {
  transform: scale(1.08);
  box-shadow: 0 0 28px rgba(19, 185, 173, 0.65), 0 0 55px rgba(19, 185, 173, 0.3);
}
.score-ring.interactive-ring:active {
  transform: scale(0.96);
}
.score-ring.interactive-ring .score-inner strong {
  animation: scorePulseAnim 3.2s infinite ease-in-out;
  display: block;
}
@keyframes scorePulseAnim {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 2px rgba(28, 213, 194, 0.3));
  }
  50% {
    transform: scale(1.05);
    filter: drop-shadow(0 0 10px rgba(28, 213, 194, 0.75));
  }
}
.ring-glow-pulse {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, rgba(28, 213, 194, 0.85), rgba(9, 120, 115, 0.15), rgba(28, 213, 194, 0.85));
  filter: blur(6px);
  opacity: 0.65;
  animation: spinRingGlow 7s linear infinite;
  pointer-events: none;
  z-index: 0;
}
@keyframes spinRingGlow {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@media(max-width:700px){
  .vax-summary{grid-template-columns:repeat(2,1fr)}
  .vax-row{grid-template-columns:30px 1fr auto;grid-template-rows:auto auto}
  .vax-need{grid-column:2;text-align:left}
  .vax-state{grid-column:3;grid-row:1}
  .vax-cta{grid-column:1/-1}
  .vax-cta .btn{flex:1}
}
/* printable report table (certificate is always light) */
.vax-rep{width:100%;border-collapse:collapse;font-size:11px}
.vax-rep th{text-align:left;color:#087c76;text-transform:uppercase;font-size:9px;letter-spacing:.06em;padding:6px 8px;border-bottom:2px solid #cfe2e0}
.vax-rep td{padding:7px 8px;border-top:1px solid #e3efee;vertical-align:top;color:#1c3034}
.vax-rep small{color:#65807e}
.vax-rep-note{font-size:11px!important;color:#5a7371!important;border:0!important;display:block!important;justify-content:flex-start!important}
.vax-rep-empty{font-size:11.5px!important;color:#5a7371!important;font-style:italic;border:0!important;display:block!important}

/* ═══ [REBUILD FIX 37] mass-vaccination multi-select ═══ */
.vax-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.vax-chip{display:inline-flex;align-items:center;gap:6px;background:#0f3739;border:1px solid rgba(92,228,216,.35);border-radius:999px;padding:5px 7px 5px 11px;font-size:12px}
.vax-chip small{color:#8fb0ae}
.vax-chip button{background:#1c4a4d;color:#9fe5de;border:0;border-radius:50%;width:18px;height:18px;line-height:1;font-size:12px;flex:none}
.vax-mini{padding:7px 10px;font-size:11px;margin:4px 6px 2px 0}
.vax-multi-tools{display:flex;flex-wrap:wrap}
.vax-total small{display:block;color:#8aa5a3;font-size:10.5px;margin-top:2px}
.light-theme .vax-chip{background:#e3f4f2;border-color:#bfe3e0;color:#12403c}
.light-theme .vax-chip button{background:#cfe9e6;color:#0a5f5b}

/* ═══ [REBUILD FIX 38] Vaccination-report PDF: no blank pages, full-width single flow ═══
   Root cause of the broken print-out: the legacy print rules only `visibility:hidden` the
   app (hidden boxes still PAGINATE → blank leading pages) while #vaxReport stays a fixed
   full-viewport overlay, so the certificate slid onto a later page, squeezed to viewport
   height. When the vaccination report is open (body.vax-report-open), knock every other
   body child out of the print tree entirely and lay the report out as normal static,
   full-width content that flows across pages.
   Same pattern already proven for the fattener client report (body.fc-report-open). */
@media print{
  /* Everything but the report leaves the print tree. :has guard = a stale class can
     never blank out the print of something else once the overlay is gone. */
  body.vax-report-open:has(>#vaxReport)>*:not(#vaxReport){display:none!important}
  /* Un-fix the overlay (base .drill-bg rule uses position:fixed!important). */
  body.vax-report-open #vaxReport{position:static!important;inset:auto!important;display:block!important;background:#fff!important;backdrop-filter:none!important;filter:none!important;padding:0!important;margin:0!important;z-index:auto!important;overflow:visible!important}
  /* The report subtree stays visible despite the global `body *{visibility:hidden}`. */
  body.vax-report-open #vaxReport,body.vax-report-open #vaxReport *{visibility:visible!important}
  /* Certificate becomes plain flowing page content: full width, no height cap, allowed
     to break across pages at table-row boundaries instead of being squeezed. */
  body.vax-report-open #vaxReport .certificate{position:static!important;inset:auto!important;width:100%!important;max-width:none!important;max-height:none!important;height:auto!important;overflow:visible!important;box-shadow:none!important;border-radius:0!important;margin:0!important;break-inside:auto!important}
  body.vax-report-open #vaxReport .cert-header{padding:10px 14px!important;break-inside:avoid}
  body.vax-report-open #vaxReport .cert-grid{display:block!important;padding:8px 14px!important}
  body.vax-report-open #vaxReport .cert-card{margin:0 0 8px!important;padding:9px 11px!important}
  body.vax-report-open #vaxReport .cert-card h3{margin:-9px -11px 7px!important;padding:5px 9px!important}
  body.vax-report-open #vaxReport .vax-rep{font-size:10.5px}
  body.vax-report-open #vaxReport .vax-rep tr{break-inside:avoid}
  body.vax-report-open #vaxReport .vax-rep td{padding:5px 7px}
  body.vax-report-open #vaxReport .vax-rep-note{font-size:9.5px!important}
  body.vax-report-open #vaxReport .cert-footer{margin:8px 14px 0!important;break-inside:avoid}
  body.vax-report-open #vaxReport .cert-end{margin-top:8px!important;padding:8px 14px!important}
  body.vax-report-open #vaxReport .cert-sign{padding:26px 14px 10px!important}
}

/* [REBUILD FIX 53] wide report tables scroll horizontally on phones instead of clipping */
#feedReport .cert-card{overflow-x:auto}

/* ═══ [REBUILD FIX 53] feed report print isolation — same proven pattern as
   body.vax-report-open: when it is open, everything but #feedReport leaves
   the print tree and the certificate flows as static full-width pages. ═══ */
@media print{
  body.feed-report-open:has(>#feedReport)>*:not(#feedReport){display:none!important}
  body.feed-report-open #feedReport{position:static!important;inset:auto!important;display:block!important;background:#fff!important;backdrop-filter:none!important;filter:none!important;padding:0!important;margin:0!important;z-index:auto!important;overflow:visible!important}
  body.feed-report-open #feedReport,body.feed-report-open #feedReport *{visibility:visible!important}
  body.feed-report-open #feedReport .certificate{position:static!important;inset:auto!important;width:100%!important;max-width:none!important;max-height:none!important;height:auto!important;overflow:visible!important;box-shadow:none!important;border-radius:0!important;margin:0!important;break-inside:auto!important}
  body.feed-report-open #feedReport .cert-header{padding:10px 14px!important;break-inside:avoid}
  body.feed-report-open #feedReport .cert-grid{display:block!important;padding:8px 14px!important}
  body.feed-report-open #feedReport .cert-card{margin:0 0 8px!important;padding:9px 11px!important}
  body.feed-report-open #feedReport .cert-card h3{margin:-9px -11px 7px!important;padding:5px 9px!important}
  body.feed-report-open #feedReport .vax-rep{font-size:10.5px}
  body.feed-report-open #feedReport .vax-rep tr{break-inside:avoid}
  body.feed-report-open #feedReport .vax-rep td{padding:5px 7px}
  body.feed-report-open #feedReport .vax-rep-note{font-size:9.5px!important}
  body.feed-report-open #feedReport .cert-footer{margin:8px 14px 0!important;break-inside:avoid}
  body.feed-report-open #feedReport .cert-end{margin-top:8px!important;padding:8px 14px!important}
  body.feed-report-open #feedReport .cert-sign{padding:26px 14px 10px!important}
}

/* ═══ [REBUILD FIX 54] semen return/replacement desk + payments + POS collectibles ═══ */
.rc-dim{opacity:.85;font-size:.86em;padding-left:10px}
.adj-card{background:rgba(15,62,63,.4);border:1px solid rgba(110,200,255,.22);border-radius:12px;padding:10px 12px;margin:8px 0;font-size:12.5px}
.adj-card-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.78;margin-bottom:4px}
.adj-origin{border-color:rgba(87,212,141,.4);background:rgba(20,57,43,.4)}
.adj-give{border-color:rgba(240,182,75,.4);background:rgba(60,43,18,.35)}
.adj-lines{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.adj-qty-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.adj-qty-row label{font-size:11px;opacity:.85;margin:0}
.adj-qty-row input{width:86px!important;padding:6px 8px!important;border-radius:8px!important}
.adj-qty-row span{font-size:11.5px}
.adj-x{border:0;background:rgba(255,92,104,.18);color:#ff9da5;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;flex:none}
.adj-recon{margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(17,59,58,.55);border:1px dashed rgba(111,224,212,.4);font-size:12.5px;display:flex;flex-direction:column;gap:2px}
.adj-recon small{opacity:.8}
.adj-net-up{color:#f0b64b!important}
.adj-net-down{color:#57d48d!important}
.pay-history{margin-top:6px;display:grid;gap:2px;max-height:110px;overflow:auto}
.sb-coll{background:rgba(60,43,18,.3);border:1px solid rgba(240,182,75,.35);border-radius:14px;padding:13px 14px;display:flex;flex-direction:column;gap:10px}
.sb-coll-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;width:100%}
.sb-coll-head>div{display:flex;flex-direction:column;gap:2px}
.sb-coll-head b{font-size:13.5px;color:#ffd9a0}
.sb-coll-head span{font-size:11px;opacity:.85}
.sb-total{color:#ffc968!important;font-size:15px;white-space:nowrap}
.sb-cust{background:rgba(15,62,63,.4);border:1px solid rgba(145,207,202,.18);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;width:100%}
.sb-cust-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.sb-cust-head>div{display:flex;flex-direction:column}
.sb-cust-head b{font-size:13px}
.sb-cust-head span{font-size:10.5px;opacity:.75}
.sb-bal{color:#f0b64b!important}
.sb-sale{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px dashed rgba(145,207,202,.2);padding-top:8px;margin-top:2px}
.sb-sale-info{font-size:12px;line-height:1.5}
.sb-sale-info small{opacity:.85}
.sb-actions{display:flex;gap:6px;flex:none}
.sb-actions .btn{padding:6px 10px;font-size:10.5px}
.light-theme .adj-card{background:#f2f8fa;border-color:#cfe2ea}
.light-theme .adj-origin{background:#eef8f0;border-color:#bfe0c8}
.light-theme .adj-give{background:#fdf6e7;border-color:#ecd9ac}
.light-theme .adj-recon{background:#eef7f6;border-color:#bfe3e0}
.light-theme .adj-x{background:#ffe3e6;color:#b33f3f}
.light-theme .sb-coll{background:#fdf6e7;border-color:#e8d5a8;color:#5c4a20}
.light-theme .sb-coll-head b{color:#8a5b09}
.light-theme .sb-total{color:#a15d08!important}
.light-theme .sb-bal{color:#a15d08!important}
.light-theme .sb-cust{background:#f7faf9;border-color:#dceceb}
.light-theme .sb-sale{border-top-color:#dfe9e7}
@media(max-width:520px){.sb-sale{flex-direction:column;align-items:flex-start}}

/* ═══ [REBUILD FIX 55] foster batch rows + desk ═══ */
@keyframes fosterBadgePulse {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.45); }
  50% { transform: scale(1.05); box-shadow: 0 0 10px 2px rgba(236, 72, 153, 0.35); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.45); }
}

.foster-pill, .foster-animated-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: linear-gradient(135deg, rgba(236, 72, 153, 0.18), rgba(168, 85, 247, 0.18));
  border: 1px solid rgba(236, 72, 153, 0.65);
  color: #f472b6;
  font-weight: 800;
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 999px;
  letter-spacing: 0.3px;
  animation: fosterBadgePulse 2.5s infinite ease-in-out;
  vertical-align: middle;
}
.row-foster-src{opacity:.85;font-size:.86em;color:#fbcfe8}
.light-theme .foster-pill, .light-theme .foster-animated-badge{background:#fdf2f8;border-color:#f472b6;color:#be185d}
.light-theme .row-foster-src{color:#9d174d}
/* ═══ Enhanced Feed Predictor Styles ═══ */
@keyframes feedTagPulse {
  0% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.5); }
  50% { transform: scale(1.04); opacity: 0.88; box-shadow: 0 0 10px 2px rgba(239, 68, 68, 0.4); }
  100% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.5); }
}

@keyframes feedWarnPulse {
  0% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.5); }
  50% { transform: scale(1.04); opacity: 0.88; box-shadow: 0 0 10px 2px rgba(245, 158, 11, 0.4); }
  100% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.5); }
}

.feed-pulse-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}

.feed-pulse-tag.danger {
  background: rgba(239, 68, 68, 0.18);
  color: #f87171;
  border: 1px solid #ef4444;
  animation: feedTagPulse 1.8s infinite ease-in-out;
}

.feed-pulse-tag.warn {
  background: rgba(245, 158, 11, 0.18);
  color: #fbbf24;
  border: 1px solid #f59e0b;
  animation: feedWarnPulse 2.2s infinite ease-in-out;
}

.feed-pulse-tag.ok {
  background: rgba(16, 185, 129, 0.15);
  color: #34d399;
  border: 1px solid #10b981;
}

.predictor-hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin: 14px 0 18px 0;
}

.predictor-kpi-card {
  background: var(--card-bg, rgba(16, 34, 42, 0.7));
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.predictor-kpi-card small {
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 600;
  text-transform: uppercase;
}

.predictor-kpi-card b {
  font-size: 19px;
  color: var(--ink);
  font-weight: 800;
}

.predictor-kpi-card span {
  font-size: 12px;
  color: var(--teal2);
}

.predictor-feed-card {
  background: var(--card-bg, rgba(16, 34, 42, 0.7));
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 12px;
  transition: all 0.2s ease;
}

.predictor-feed-card.danger {
  border-color: rgba(239, 68, 68, 0.5);
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.08), transparent);
}

.predictor-feed-card.warn {
  border-color: rgba(245, 158, 11, 0.5);
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.08), transparent);
}

/* ═══ [REBUILD FIX 41] reservation certificate detail options (form chips + cert lines) ═══ */
.res-cert-section{border:1px dashed rgba(84,207,197,.45);border-radius:12px;padding:12px;display:grid;gap:9px}
.res-cert-head{font-weight:800;color:#5be3d8;font-size:13px}
.res-cert-section .res-cert-head{margin-bottom:-2px}
.res-check{display:flex;gap:8px;align-items:center;font-size:13px;color:#dcefeb;cursor:pointer}
.res-check input{width:18px;height:18px;accent-color:#17cabe;flex:none}
.res-check b{color:#5be3d8;font-weight:700}
.res-notch-box{display:grid;gap:9px}
.res-notch-pick{display:flex;flex-wrap:wrap;gap:6px}
.res-notch-chip{border:1px solid #2a4a51;background:#10222a;color:#e7f4f2;border-radius:9px;padding:7px 10px;font-size:12px;cursor:pointer;display:grid;gap:2px;text-align:left}
.res-notch-chip b{font-size:13px}
.res-notch-chip span{color:#9dbdba;font-size:11px}
.res-notch-chip.sel{border-color:#17cabe;background:#123c3a;box-shadow:0 0 0 1px #17cabe inset}
.res-notch-hint{margin:0;font-size:11px;color:#7fa3a0}
.res-notch-empty{margin:0;color:#8fb0ac;font-size:12px;font-style:italic}
.res-notch-manual{display:grid;gap:6px;font-size:12px;color:#9dbdba;border-top:1px dashed rgba(84,207,197,.25);padding-top:8px}
.res-manual-row{display:flex;gap:6px;align-items:center}
.res-manual-row input{flex:1;min-width:0;background:#0c1d23;border:1px solid #2a4a51;color:#e7f4f2;border-radius:8px;padding:9px}
.res-manual-row .x{border:0;background:#4b1e24;color:#ff9aa4;border-radius:8px;padding:9px 11px;cursor:pointer;font-weight:800}
/* [REBUILD FIX 57] multi-batch reservation modal */
.res-lines-box{border:1px dashed rgba(84,207,197,.45);border-radius:12px;padding:12px;display:grid;gap:10px}
.res-lines-head{font-weight:800;color:#5be3d8;font-size:13px}
.res-lines-sub{font-size:11px;color:#7fa3a0;margin:2px 0 0}
.res-lines-sub b{color:#9fd8d3}
.res-line-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.res-line-add{justify-self:start}
.res-line-list{display:grid;gap:7px}
.res-line-row{display:flex;align-items:center;justify-content:space-between;gap:9px;background:rgba(16,34,42,.8);border:1px solid #2a4a51;border-radius:9px;padding:8px 11px;font-size:13px;color:#e7f4f2}
.res-line-row small{display:block;color:#9dbdba;font-size:11px;margin-top:1px}
.res-line-row small b{color:#9fd8d3}
.res-line-row .x{border:0;background:#4b1e24;color:#ff9aa4;border-radius:8px;padding:6px 10px;cursor:pointer;font-weight:800;flex:none}
.res-line-empty{margin:0;color:#8fb0ac;font-size:12px;font-style:italic}
.res-lines-total{font-size:13px;color:#9dbdba}
.res-lines-total b{color:#5be3d8}
.res-notch-group{display:grid;gap:6px;width:100%}
.res-notch-group h4{margin:0;font-size:12px;color:#5be3d8}
.res-notch-group-chips{display:flex;flex-wrap:wrap;gap:6px}
.light-theme .res-lines-sub{color:#577078}
.light-theme .res-line-row{background:#fff;border-color:#c9dddd;color:#112126}
.light-theme .res-line-row small,.light-theme .res-lines-total,.light-theme .res-line-empty{color:#577078}
.light-theme .res-line-row small b{color:#0a6e6a}
.light-theme .res-lines-head,.light-theme .res-lines-total b,.light-theme .res-notch-group h4{color:#0a6e6a}
/* [REBUILD FIX 57] reservation certificate: multi-batch line table + notch groups */
.res-cert-lines{width:100%;border-collapse:collapse;font-size:12px}
.res-cert-lines th{text-align:left;color:#087f78;border-bottom:2px solid #d8e4e3;padding:6px}
.res-cert-lines td{padding:6px;border-bottom:1px solid #eef4f4;color:#23434a;vertical-align:top}
.res-cert-total td{border-bottom:0;background:#f3faf9}
/* [REBUILD FIX 58] certificate: per-batch information groups (multi-batch) */
.batch-groups{display:grid;gap:7px}
.batch-group{border:1px solid #d8e4e3;border-radius:8px;padding:6px 10px;background:#fbfdfd}
.batch-group-head{font-weight:800;color:#087f78;font-size:11.5px}
.batch-group-head span{color:#3b5654;font-weight:600;font-size:10.5px}
.batch-group-line{font-size:10.5px;color:#23434a;padding:1.5px 0}
.batch-group-line b{font-weight:700;color:#10282c}
.batch-group-ped{font-size:9.5px;color:#5b7470;border-top:1px dashed #e1eceb;margin-top:3px;padding-top:3px}
/* [REBUILD FIX 58] professional compact certificate metrics — applied identically
   on screen and print: the certificate on screen is exactly what the PDF contains */
.certificate{padding:14px;font-size:10.5px}
.certificate .cert-header{grid-template-columns:64px 1fr auto;gap:8px;padding:9px 12px;border-bottom-width:3px}
.certificate .cert-logo img,.certificate .cert-app-logo img{width:58px;height:50px}
.certificate .cert-title small{font-size:8px}
.certificate .cert-title h1{font-size:15px;margin:2px 0}
.certificate .cert-title h2{font-size:12.5px}
.certificate .cert-status{padding:3px 9px;font-size:9.5px}
.certificate main{gap:7px;margin:8px 0}
.certificate section{padding:7px 10px;border-radius:8px}
.certificate h3{font-size:11px;margin:0 0 3px}
.certificate .cert-field{padding:2.2px 0;font-size:10.5px;gap:8px}
.certificate .health-line{padding:2.5px 0;font-size:10.5px}
.certificate .cert-photo img{max-height:110px;object-fit:cover;height:110px}
.certificate .photo-empty{height:64px;font-size:12px}
.certificate .batch-groups{gap:6px}
.certificate .batch-group{padding:5px 9px}
.certificate .cert-pedigree{font-size:9.5px}
.certificate .pedigree-line{padding:1px 0}
.certificate .res-cert-lines{font-size:9.5px}
.certificate .res-cert-lines td,.certificate .res-cert-lines th{padding:2.5px 4px}
.certificate .perf-cell{padding:4px}
.certificate .cert-timeline{grid-template-columns:repeat(3,1fr);gap:4px;font-size:9.5px}
.certificate .notch-grid{gap:4px}
.certificate .notch-chip{padding:4px 8px;font-size:9.5px}
.certificate .notch-sub{font-size:9px}
.certificate .cert-footer{padding:6px 12px;margin:0 10px}
.certificate .cert-footer span{font-size:9px}
.certificate .cert-qr{width:58px;height:58px}
.certificate .cert-end{margin-top:7px;padding:7px 16px;font-size:9.5px}
.certificate .cert-sign{padding:10px 22px 5px}
.certificate .cert-sign span{width:165px;padding-top:5px;font-size:9.5px}
/* [REBUILD FIX 58] print: fixed 1000 px composition + shrink-to-one-page zoom */
@page{margin:8mm 9mm}
.cert-qr{border-width:3px}
.cert-qr i{width:5.4px;height:5.4px}
@media print{
 .certificate{width:740px!important;max-width:740px!important;zoom:var(--cert-zoom,1)}
 .cert-photo.no-photo,.photo-empty{display:none!important}
 .cert-actions{display:none!important}
 .cert-timeline{grid-template-columns:repeat(6,1fr)!important}
 .certificate .cert-qr{width:112px!important;height:112px!important}
 .certificate .cert-qr i{width:11px!important;height:11px!important}
}
.cert-notch-group{margin-top:9px}
.cert-notch-batch{font-weight:800;color:#087f78;font-size:12px;margin:0 0 5px}

.res-vax-note{font-size:11.5px;color:#7fa3a0;margin:0}
.notch-chip .nw{display:block;font-weight:400;color: #5b7370;font-size:10.5px;margin-top:2px}
.notch-chip .nw b{color:#2f4f4b;font-weight:700}
.cert-health .health-line.vax-auto{color:#0f6b5f;background:#effaf8;border-radius:7px;padding:7px 9px}
.cert-health .health-line.tr-head{margin-top:6px;color:#123d3a}
.cert-health .health-line.tr-line{color:#33474a;font-size:12px;background:#fbfdfd}
@media print{.cert-health .health-line.vax-auto{background:#f4faf9}.cert-health .health-line.tr-line{font-size:9.5px}}

/* ═══ [REBUILD FIX 42] semen POS sale modal + 58 mm receipt (screen styles; print CSS is
   injected per-receipt by js/semen-sales.js so A4/Letter rules stay intact) ═══ */
.semen-sell-product{display:grid;gap:3px;background:rgba(23,202,190,.08);border:1px solid rgba(84,207,197,.35);border-radius:12px;padding:11px 13px;margin-bottom:4px}
.semen-sell-product b{color:#5be3d8}
.semen-sell-product span{font-size:12.5px;color:#bcd8d4}
.semen-mode{display:flex;gap:14px;flex-wrap:wrap}
.semen-total{margin-top:14px;padding:10px 12px;border-radius:10px;background:#0d2a2c;border:1px solid rgba(84,207,197,.4);color:#d9f3ef;font-size:14px}
.semen-total b{color:#5bf0dd}
.semen-cust-field{z-index:5}
.semen-sell{z-index:auto}
/* [REBUILD FIX 43] semen stock-in chooser (restock / new batch) — big tappable cards */
.semen-stock-menu{display:grid;gap:10px;margin-top:16px}
.semen-stock-menu button{display:flex;gap:13px;align-items:center;text-align:left;padding:16px 14px;border-radius:14px;border:1px solid rgba(126,240,231,.4);background:linear-gradient(135deg,rgba(24,62,67,.9),rgba(10,32,37,.95));color:#e8fffb;cursor:pointer}
.semen-stock-menu button b{display:block;font-size:15px}
.semen-stock-menu button small{color:#9fd8d2;display:block;margin-top:4px;line-height:1.45;font-size:12px}
.semen-stock-menu button:active{transform:scale(.985)}
.semen-stock-menu .ss-icon{font-size:26px;line-height:1}
/* [REBUILD FIX 45] POS add-ons (catheter / semen box) — collapsible price grids */
.semen-addons{display:grid;gap:8px;margin-top:6px}
.semen-addon-grid{display:none;grid-template-columns:1.25fr .7fr 1fr;gap:8px;padding:9px 10px;border:1px solid rgba(126,240,231,.28);border-radius:10px;background:rgba(14,42,46,.55)}
.semen-addon-grid-2{grid-template-columns:1fr 1fr}
.semen-addon-grid .field{margin:0}
.semen-addon-grid .field label{font-size:11px}
@media(max-width:700px){.semen-addon-grid{grid-template-columns:1fr 1fr}.semen-addon-grid .field:first-child{grid-column:1/-1}}
/* [REBUILD FIX 46] direct Bluetooth thermal printing panel on the receipt */
.bt-panel{margin-top:14px;padding:13px;border:1px solid rgba(126,240,231,.32);border-radius:13px;background:rgba(10,32,37,.62);display:grid;gap:9px}
.bt-row{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}
.bt-status{font-size:12.5px;color:#a9d9d3;text-align:center;min-height:16px;line-height:1.45}
.bt-panel .btn:disabled{opacity:.45}
@media(max-width:700px){.bt-row .btn{flex:1 1 100%;width:100%}}
.semen-receipt-wrap{display:grid;gap:10px;justify-items:center}
.sale-receipt{width:300px;max-width:92vw;background:#fff;color:#111;font-family:'Courier New',ui-monospace,monospace;font-size:12.5px;padding:14px 12px;border-radius:6px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.sale-receipt .rc-head{display:grid;justify-items:center;gap:1px;text-align:center;margin-bottom:6px}
.sale-receipt .rc-head b{font-size:14px;letter-spacing:.1em}
.sale-receipt .rc-head span{font-size:11px}
.rc-sep{border-top:1.5px dashed #999;margin:7px 0}
.rc-line{display:block;font-size:12.5px;line-height:1.55;word-break:break-word}
.rc-big{font-size:14.5px;font-weight:700}
.rc-right{float:right}
.rc-foot{text-align:center;font-size:11.5px;margin-top:4px}
.rc-hint{max-width:300px;font-size:11.5px;color:#9dbdba;text-align:center;margin:0}

/* [REBUILD FIX 48] boar profile birthday/vaccination + fetched vaccine chips */
.boar-vax-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 11px;border:1px solid rgba(190,251,244,.22);border-radius:10px;margin-bottom:6px;font-size:13px;background:rgba(12,47,51,.35)}
.boar-vax-row span{color:var(--muted);white-space:nowrap;font-size:11.5px}
.boar-vax-none{padding:8px 2px;font-size:12.5px;color:var(--muted)}
.boar-vax-add{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}
.row-vax-chip{display:block;margin-top:5px;color:#9adcf5;font-size:11.5px}
@media(max-width:700px){.boar-vax-add{grid-template-columns:1fr}}

/* [REBUILD FIX 50] interactive dashboard health chips + monitoring card */
.health-chip{display:flex;align-items:center;gap:6px;font:inherit;font-size:12px;text-align:left;background:rgba(16,64,68,.5);border:1px solid rgba(79,224,208,.28);color:#c9f5ee;border-radius:10px;padding:7px 11px;cursor:pointer;transition:transform .18s ease,box-shadow .25s ease,border-color .2s}
.health-chip:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(10,190,170,.18);border-color:rgba(79,224,208,.55)}
.health-chip:active{transform:scale(.98)}
.health-chip.on{border-color:#4fe0d0;box-shadow:0 0 0 2px rgba(64,220,200,.16)}
.health-chip b{font-size:14px}
.health-chip.bad{background:rgba(72,26,34,.55);border-color:rgba(255,120,132,.38);color:#ffd7db}
.health-chip.bad:hover{border-color:rgba(255,120,132,.6);box-shadow:0 6px 18px rgba(190,40,60,.2)}
.health-chip.hl{background:rgba(14,58,72,.6);border-color:rgba(110,200,255,.32);color:#d8efff}
.chip-caret{margin-left:auto;opacity:.85;transition:transform .25s}
.health-chip.on .chip-caret{transform:rotate(180deg)}
.sowmon-panel{max-height:0;opacity:0;transform:translateY(-8px);overflow:hidden;transition:max-height .5s cubic-bezier(.33,1,.38,1),opacity .35s ease,transform .45s ease;margin-top:0}
.sowmon-panel.open{max-height:2400px;opacity:1;transform:none;margin-top:12px}
.sowmon-head{display:flex;justify-content:space-between;align-items:end;gap:8px;padding:12px 2px 8px;border-top:1px solid rgba(145,207,202,.16)}
.sowmon-head h3{margin:2px 0 0;font-size:15px;color:#e9fafa}
.sowmon-head .muted{font-size:10.5px}
.sowmon-sec{margin-top:10px}
.sowmon-sec h4{margin:0 0 8px;font-size:12.5px;color:#bfe9e4;display:flex;align-items:center;gap:7px}
.sowmon-sec h4 small{font-weight:400;font-size:10.5px}
.count-pill{margin-left:auto;background:rgba(64,220,200,.16);color:#7ce8da;border-radius:99px;padding:2px 9px;font-size:11px;font-weight:800}
.sowmon-card{border:1px solid rgba(110,200,255,.22);border-radius:13px;padding:10px 12px;margin-bottom:8px;background:linear-gradient(135deg,rgba(17,42,52,.72),rgba(9,24,30,.85));animation:monCardIn .42s cubic-bezier(.3,1.2,.4,1) both}
@keyframes monCardIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.sowmon-top{display:flex;align-items:center;gap:8px}
.sowmon-top b{font-size:14.5px;color:#f2fdff}
.sowmon-top .muted{font-size:10.5px}
.day-pill{margin-left:auto;font-size:10px;font-weight:800;padding:3px 9px;border-radius:99px}
.day-pill.d16{background:rgba(64,220,200,.18);color:#7ce8da}
.day-pill.d21{background:rgba(110,200,255,.16);color:#9adcf5}
.sowmon-meta{margin-top:5px;font-size:12px;color:#bddcda}
.sowmon-obs{margin-top:7px;display:grid;gap:4px}
.obs-row{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;padding:5px 8px;border-radius:8px;background:rgba(10,30,34,.55);border-left:2px solid rgba(64,220,200,.5)}
.obs-row small{color:var(--muted);white-space:nowrap}
.sowmon-add{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:8px}
.sowmon-add input{border:1px solid #244047;background:#0b1b1f;color:#e7f6f5;border-radius:8px;padding:8px 10px;font-size:12px;outline-color:var(--teal)}
.sowmon-add .btn{padding:8px 14px}
.sowmon-openwrap{display:flex;flex-wrap:wrap;gap:7px}
.sowmon-open{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:99px;border:1px solid rgba(145,207,202,.25);background:rgba(14,38,42,.6);font-size:12px;animation:monCardIn .4s both}
.sowmon-open small{color:var(--muted);font-size:10px}
.sowmon-none{font-size:11.5px;color:var(--muted);padding:7px 2px;font-style:italic}
.feedshort-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(255,120,132,.25);border-radius:11px;margin-bottom:7px;background:rgba(48,20,26,.5);font-size:12.5px;animation:monCardIn .35s both}
.feedshort-row small{display:block;color:var(--muted);font-size:10.5px}
.feedshort-def{color:#ff9aa3;font-size:13px}
@media(max-width:700px){.sowmon-add{grid-template-columns:1fr}.sowmon-head{flex-direction:column;align-items:start}}

/* ═══ [REBUILD FIX 59] premium reservation certificate ═══ */
.certificate{max-width:740px;background:#fff;color:#18272f;padding:26px 30px 20px;font-size:12px;line-height:1.45}
.certificate .cert-top{display:grid;grid-template-columns:82px 1fr auto 26px;gap:12px;align-items:center;position:relative}
.certificate .ct-logo img{width:82px;height:70px;object-fit:contain}
.certificate .ct-farm{font-size:9.5px;font-weight:800;letter-spacing:.16em;color:#0e7c74;text-transform:uppercase}
.certificate .cert-top h1{font-size:25px;letter-spacing:.05em;font-weight:900;color:#10282c;margin:1px 0;text-transform:uppercase}
.certificate .ct-sub{font-size:12px;color:#4d6a72;font-style:italic}
.certificate .ct-meta{margin-top:5px;font-size:11px;color:#37505a}
.certificate .ct-right{display:flex;flex-direction:column;align-items:center;gap:5px}
.certificate .ct-right img{width:46px;height:38px;object-fit:contain}
.certificate .cert-btn-group{display:flex;flex-direction:row;gap:5px;align-items:center;justify-content:center}
.certificate .cert-btn-group .btn{font-size:9.5px;font-weight:700;padding:5px 9px;border-radius:6px;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:all .15s ease}
.certificate .cert-btn-group .btn-pdf{background:#0e7c74;color:#fff;border:1px solid #0e7c74}
.certificate .cert-btn-group .btn-pdf:hover{background:#095954;border-color:#095954}
.certificate .cert-btn-group .btn-png{background:#f0f8f8;color:#0e7c74;border:1.2px solid #0e7c74}
.certificate .cert-btn-group .btn-png:hover{background:#0e7c74;color:#fff}
.certificate .ct-right .btn{font-size:9.5px;padding:5px 9px}
.certificate .close-reminder{align-self:start}
.cert-rule{border-bottom:3px solid #0e7c74;margin:12px 0 14px}
.ct-statusline{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;color:#37505a;margin:0 0 4px}
.ct-status{display:inline-block;padding:3px 12px;border-radius:999px;font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.ct-status.released,.ct-status.fully_paid{background:#d9f3e3;color:#14663a}
.ct-status.partially_paid{background:#fdf1d3;color:#8a5b09}
.ct-status.pending{background:#ffe1e3;color:#a12a34}
.cduo{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:12px}
.csec-head{font-size:12px;font-weight:900;letter-spacing:.09em;color:#0e7c74;border-bottom:1.5px solid #d7e6e4;padding-bottom:4px;margin:0 0 8px}
.cflat .cert-field{padding:4px 0;border:0;font-size:12.5px}
.cflat .cert-field span{color:#5b7470;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.cert-hero{border:1.6px solid #0e7c74;border-radius:10px;padding:13px 16px 12px;margin:0 0 13px;background:linear-gradient(180deg,#f2fbfa,#ffffff);box-shadow:0 2px 10px rgba(14,124,116,.06)}
.cert-hero .csec-head{border-bottom:0;padding-bottom:0}
.hero-title{font-size:16px;color:#37505a;margin:2px 0 8px}
.hero-title b{font-size:19px;color:#10282c;margin-right:8px}
.hero-title span{color:#0e7c74;font-weight:800;font-size:13px}
.hero-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 14px;margin:0 0 8px}
.hero-cell small{display:block;font-size:8.5px;letter-spacing:.08em;color:#5b7470;font-weight:700;margin-bottom:1px}
.hero-cell b{font-size:13.5px;color:#10282c}
.hero-dam{font-size:11.5px;color:#37505a;border-top:1px dashed #cfe3e0;padding-top:7px;display:flex;flex-wrap:wrap;gap:4px 18px}
.cert-lineage{margin:0 0 13px}
.pedline{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:2px 0 4px}
.ped-col{display:grid;gap:2.5px}
.ped-col b{color:#10282c;font-size:12.5px;letter-spacing:.02em}
.ped-col span{color:#4d6a72;font-size:10.5px;padding-left:6px}
.ped-semen{font-size:10px;color:#4d6a72;letter-spacing:.05em;margin-top:6px;border-top:1px dashed #e1eceb;padding-top:5px}
.cert-lineage .batch-group{margin-bottom:7px}
.cert-lineage .batch-group-ped{margin-top:5px;padding-top:5px;font-size:9.5px}
.cert-pay{border:1.2px solid #d7e6e4;border-radius:10px;padding:11px 16px 12px;margin:12px 0;background:#fbfdfd}
.pay-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.pay-cell small{display:block;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#5b7470;font-weight:700}
.pay-cell b{font-size:16.5px;color:#10282c}
.pay-cell.bal b{color:#0e7c74;font-size:19px}
.pay-badge{display:inline-block;margin-top:8px;padding:4px 14px;border-radius:6px;font-weight:900;font-size:11px;letter-spacing:.09em}
.pay-badge.paid{background:#0e7c74;color:#fff}
.pay-badge.partial{background:#f5c04d;color:#4d3405}
.pay-badge.pending{background:#d95460;color:#fff}
.pay-notes{margin-top:7px;font-size:10.5px;color:#4d6a72;font-style:italic}
.timeline-card{margin:12px 0 0}
.cert-timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:0;padding:0;list-style:none}
.cert-timeline li{display:grid;justify-items:center;gap:3px;text-align:center}
.cert-timeline i{font-style:normal;font-size:12px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%}
.cert-timeline li.done i{background:#0e7c74;color:#fff}
.cert-timeline li.todo i{background:#e3eeee;color:#9db5b2}
.cert-timeline li b{font-size:10px;color:#243a42;font-weight:700}
.cert-timeline li small{font-size:8.5px;color:#6f8583}
.cert-verify{display:flex;flex-direction:row;gap:18px;align-items:center;border:1.2px solid #d7e6e4;border-radius:10px;padding:11px 16px;margin-top:13px;background:#fbfdfd}
.cv-qr{width:90px;min-width:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex-shrink:0;margin:0}
.cv-qr small{font-size:8px;font-weight:800;letter-spacing:.12em;color:#0e7c74;text-align:center}
.certificate .cert-qr{width:86px;height:86px;border-width:3px;background:#fff}
.cv-text{flex:1;padding-left:14px;border-left:1.5px solid #d0e4e2;display:flex;flex-direction:column;justify-content:center}
.cv-text b{font-size:11.5px;color:#10282c;letter-spacing:.06em;display:block}
.cv-text p{font-size:10px;color:#4d6a72;margin:3px 0 5px;line-height:1.4}
.cv-text small{font-size:9px;color:#7d9290;display:block}
.cv-meta{display:grid;gap:4px;font-size:9px;color:#7d9290;text-align:right}
.cv-meta span{display:grid;gap:1px}
.cv-meta b{color:#243a42;font-size:9.5px}
.cert-signs2{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:40px;padding:0 24px}
.cs{display:grid;justify-items:stretch;text-align:center}
.cs-line{border-top:1.2px solid #3a4b52;margin-bottom:6px}
.cs b{font-size:11px;color:#243a42;letter-spacing:.05em}
.cs small{font-size:9px;color:#7d9290;margin-top:2px}
.cert-foot-note{margin-top:18px;font-size:9px;color:#90a5a3;text-align:center;line-height:1.5}
/* keep the older cert-card sections (health / performance / ear notch) in the new visual language */
.certificate .cert-card{border:0;border-top:1.5px solid #d7e6e4;border-radius:0;padding:9px 2px 3px;background:transparent}
.certificate .cert-card h3{font-size:12px;font-weight:900;letter-spacing:.07em;color:#0e7c74;margin:0 0 7px}
.certificate .cert-field{padding:4px 0;font-size:12px;border-top:0}
.certificate .health-line{padding:3px 0;font-size:11.5px;border-top:0}
.certificate .perf-cell{padding:6px 8px}
.certificate .hist-line,.certificate .res-cert-lines{font-size:10.5px}
.certificate .cert-photo{margin:2px 0 12px}
.certificate .cert-photo img{height:130px;object-fit:cover}
.certificate .photo-empty{height:56px;font-size:11.5px}
@media(max-width:700px) /* [REBUILD FIX 60] 740px print sheet must measure with desktop metrics */{
 .cert-timeline{grid-template-columns:repeat(3,1fr)!important;row-gap:10px}
 .cduo{gap:12px}
 .certificate .cert-top{grid-template-columns:64px 1fr auto 22px}
 .certificate .cert-top h1{font-size:19px}
 .certificate .ct-logo img{width:60px;height:52px}
 .cert-signs2{gap:26px;padding:0 6px}
 .cert-verify{grid-template-columns:auto 1fr}
 .cv-meta{grid-column:1/-1;text-align:left;grid-auto-flow:column;justify-content:space-between}
}

/* [REBUILD FIX 59b] single document flow + flat sections + readable headings */
.certificate main{display:block!important;margin:0!important;gap:0!important}
.certificate footer{display:block!important;margin-top:4px!important;border:0!important;padding:0!important}
.certificate section{border:0!important;border-radius:0!important;padding:0!important;background:transparent!important}
.certificate p{display:block!important;border-top:0!important;padding:0!important;margin:0 0 3px!important}
.certificate .cert-card{padding:9px 2px 3px!important;border-top:1.5px solid #d7e6e4!important;border-radius:0!important}
.certificate .cert-card h3{background:transparent!important;color:#0e7c74!important;padding:0!important}
.certificate .cert-hero{border:1.6px solid #0e7c74!important;border-radius:10px!important;padding:13px 16px 12px!important;background:linear-gradient(180deg,#f2fbfa,#ffffff)!important;margin:0 0 13px!important}
.certificate .cert-pay{border:1.2px solid #d7e6e4!important;border-radius:10px!important;padding:11px 16px 12px!important;background:#fbfdfd!important;margin:12px 0!important}
.certificate .cert-verify{border:1.2px solid #d7e6e4!important;border-radius:10px!important;background:#fbfdfd!important;padding:11px 16px!important;margin-top:13px!important}
.certificate .timeline-card{margin:12px 0 0!important}
.certificate .cduo{margin-bottom:12px}
.certificate .cert-lineage{margin-bottom:13px}
.certificate .cert-photo{margin:2px 0 12px!important}

/* ═══ [REBUILD FIX 60] premium print typography + tightened one-page flow ═══
   Sizes chosen so that at print zoom 1.0 CSS px map to professional pt sizes
   (1 CSS px = 0.75 pt): title ≈21pt, headings ≈11pt, values ≈10pt,
   labels ≈7.9pt, footer ≈7.5pt. Vertical space saved so the typical
   certificate needs little or no shrink. */
@page{margin:8mm 10mm}
.certificate{padding:20px 24px 12px;font-size:12px;line-height:1.32}
.certificate .cert-top{grid-template-columns:80px 1fr auto 24px;gap:10px}
.certificate .ct-logo img{width:80px;height:64px}
.certificate .ct-farm{font-size:10.5px}
.certificate .cert-top h1{font-size:28px;margin:1px 0}
.certificate .ct-sub{font-size:12.5px}
.certificate .ct-meta{margin-top:3px;font-size:11.5px}
.certificate .ct-right img{width:44px;height:36px}
.cert-rule{margin:8px 0 10px;border-bottom-width:2.5px}
/* information duo — clean aligned label:value rows, prominent status badge */
.certificate .cduo{gap:26px;margin-bottom:10px}
.certificate .csec-head{font-size:15px;letter-spacing:.07em;padding-bottom:3px;margin-bottom:6px}
.certificate .cflat .cert-field{padding:3px 0;font-size:13px}
.certificate .cflat .cert-field span{font-size:10.5px}
.certificate .ct-statusline{font-size:12px;margin-bottom:3px}
.certificate .ct-status{font-size:11.5px;padding:4px 14px}
/* hero centerpiece — one-row metric band, biggest type on the piglet identity */
.certificate .cert-hero{padding:11px 14px 10px!important;margin-bottom:10px!important}
.certificate .hero-title{margin:2px 0 7px}
.certificate .hero-title b{font-size:24px}
.certificate .hero-title span{font-size:14px}
.certificate .hero-grid{grid-template-columns:repeat(6,1fr);gap:6px 12px;margin-bottom:7px}
.certificate .hero-cell small{font-size:10px}
.certificate .hero-cell b{font-size:13.5px}
.certificate .hero-dam{font-size:11.5px;padding-top:6px}
/* lineage — scannable two-column ancestry */
.certificate .cert-lineage{margin-bottom:10px}
.certificate .pedline{gap:22px;margin:2px 0}
.certificate .ped-col b{font-size:13px}
.certificate .ped-col span{font-size:11px}
.certificate .ped-semen{font-size:11px;margin-top:4px;padding-top:4px}
.certificate .cert-lineage .batch-group{padding:5px 10px;margin-bottom:5px}
.certificate .batch-group-head{font-size:12.5px}
.certificate .batch-group-line{font-size:11px;padding:1px 0}
/* compact registry + health rows */
.certificate .cert-card{padding:7px 2px 2px!important;margin:0}
.certificate .cert-card h3{font-size:15px;margin-bottom:5px}
.certificate .health-line{padding:2px 0;font-size:11.5px}
.certificate .health-line.vax-auto{padding:4px 8px}
.certificate .notch-sub{font-size:9.5px;font-weight:600}
.certificate .notch-grid{gap:4px}
.certificate .notch-chip{padding:3px 8px;font-size:10.5px}
.certificate .cert-notch-group{margin-top:5px}
.certificate .cert-notch-batch{font-size:11.5px;margin-bottom:3px}
/* performance: six buyer-facing metrics big, supporting metrics quiet but present */
.certificate .cert-perf-grid{margin:0}
.certificate .perf-primary{grid-template-columns:repeat(6,1fr)!important;gap:5px 8px!important}
.certificate .perf-cell{padding:5px 7px}
.certificate .perf-cell small{font-size:9.5px}
.certificate .perf-cell b{font-size:13px}
.certificate .perf-cell i{font-size:9px}
.certificate .perf-secondary{display:flex!important;flex-wrap:wrap;gap:2px 14px;margin-top:4px;border:0!important}
.certificate .perf-secondary .perf-cell{display:flex;gap:5px;align-items:baseline;padding:1px 0;border:0;background:transparent}
.certificate .perf-secondary .perf-cell small{font-size:9px}
.certificate .perf-secondary .perf-cell b{font-size:10px;font-weight:600;color:#4d6a72}
.certificate .perf-secondary .perf-cell i{display:none}
/* payment — the three figures at a glance, balance loudest */
.certificate .cert-pay{padding:9px 14px 10px!important;margin:9px 0!important}
.certificate .pay-cell small{font-size:10px}
.certificate .pay-cell b{font-size:17px}
.certificate .pay-cell.bal b{font-size:19px}
.certificate .pay-badge{margin-top:6px;font-size:11.5px;padding:4px 14px}
.certificate .pay-notes{margin-top:5px;font-size:10.5px}
/* status timeline — done (teal), next (amber), future (grey) */
.certificate .timeline-card{margin:9px 0 0!important}
.certificate .cert-timeline{gap:4px}
.certificate .cert-timeline i{width:20px;height:20px;font-size:11px}
.certificate .cert-timeline li b{font-size:10.5px}
.certificate .cert-timeline li small{font-size:9.5px}
.certificate .cert-timeline li.next i{background:#fdf1d3;color:#8a5b09;box-shadow:0 0 0 1.5px #e5c877 inset}
.certificate .cert-timeline li.next b{color:#8a5b09}
/* verification block + signature lines + closing note */
.certificate .cert-verify{padding:9px 14px!important;margin-top:10px!important;gap:14px}
.certificate .cv-qr small{font-size:10px;letter-spacing:.14em}
.certificate .cv-text b{font-size:12px}
.certificate .cv-text p{font-size:10.5px;margin:2px 0 4px}
.certificate .cv-text small{font-size:9.5px}
.certificate .cv-meta{font-size:9px}
.certificate .cv-meta b{font-size:10px}
.certificate .cert-signs2{margin-top:30px;padding:0 20px;gap:60px}
.certificate .cs b{font-size:11.5px}
.certificate .cs small{font-size:9.5px}
.certificate .cert-foot-note{margin-top:10px;font-size:10px;line-height:1.45}
@media(max-width:700px){
 .certificate .hero-grid{grid-template-columns:repeat(3,1fr)}
 .certificate .perf-primary{grid-template-columns:repeat(3,1fr)!important}
 .certificate .cert-top h1{font-size:21px}
 .certificate .cert-signs2{gap:22px;padding:0 4px}
}
@media print{
 .certificate .hero-grid{grid-template-columns:repeat(6,1fr)}
 .certificate .perf-primary{grid-template-columns:repeat(6,1fr)!important}
}

/* ═══ [REBUILD FIX 60b] paired certificate bands: same information, roughly
   300–400 px less vertical space, so one page prints at true pt sizes ═══ */
/* two-column bandscollapse into one column when only one side has content */
.certificate .cert-duo2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 22px;margin:0}
.certificate .cert-duo2 > section:only-child{grid-column:1/-1}
.certificate .cert-duo2.nh .cert-card{border-top:1.5px solid #d7e6e4!important}
/* performance + payment band: metrics keep their grid but stack to 3 columns */
.certificate .cert-duo2.pp{margin:0}
.certificate .cert-duo2.pp .perf-primary{grid-template-columns:repeat(3,1fr)!important;gap:4px 7px!important}
.certificate .cert-duo2.pp .perf-cell b{font-size:12.5px}
.certificate .cert-duo2.pp .perf-secondary{margin-top:3px;gap:1px 10px}
.certificate .cert-duo2.pp .cert-pay{margin:0!important}
.certificate .cert-duo2.pp .pay-grid{grid-template-columns:1fr;gap:1px}
.certificate .cert-duo2.pp .pay-cell{display:flex;justify-content:space-between;align-items:baseline;padding:3.5px 0;border-bottom:1px solid #eef4f4}
.certificate .cert-duo2.pp .pay-cell small{display:inline}
.certificate .cert-duo2.pp .pay-cell b{font-size:15.5px}
.certificate .cert-duo2.pp .pay-cell.bal{border-bottom:0}
.certificate .cert-duo2.pp .pay-cell.bal b{font-size:18px}
/* verification + signatures share the closing band */
.certificate .cert-bottom{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8px 20px;align-items:stretch;border:1.2px solid #d7e6e4;border-radius:10px;background:#fbfdfd;padding:10px 14px;margin-top:10px}
.certificate .cert-bottom .cert-verify{border:0!important;background:transparent!important;padding:0!important;margin:0!important;grid-template-columns:auto 1fr;gap:4px 14px;align-content:center}
.certificate .cert-bottom .cv-meta{grid-column:1/-1;grid-auto-flow:column;justify-content:space-between;text-align:left;gap:8px;font-size:8.5px}
.certificate .cert-bottom .cert-signs2{grid-template-columns:1fr;gap:22px;margin-top:0;padding:6px 4px;align-content:center}
@media(max-width:700px){
 .certificate .cert-duo2{grid-template-columns:1fr}
 .certificate .cert-duo2.pp .pay-grid{grid-template-columns:repeat(3,1fr);gap:8px}
 .certificate .cert-duo2.pp .pay-cell{display:block;border-bottom:0}
 .certificate .cert-bottom{grid-template-columns:1fr}
 .certificate .cert-bottom .cert-signs2{grid-template-columns:1fr 1fr;gap:18px;margin-top:6px}
}

/* ═══ [REBUILD FIX 60c] bands must sit side-by-side (legacy .cert-wide spans
   used to force full rows) + final vertical tightening for true-size print ═══ */
.certificate .cert-duo2 > section.cert-wide:not(:only-child){grid-column:auto!important}
@page{margin:6mm 9mm}
.certificate{padding:16px 22px 10px}
.certificate .cert-top{grid-template-columns:72px 1fr auto 24px;gap:9px}
.certificate .ct-logo img{width:72px;height:58px}
.cert-rule{margin:6px 0 8px}
.certificate .cduo{margin-bottom:8px}
.certificate .cflat .cert-field{padding:2.5px 0}
.certificate .cert-hero{padding:9px 13px 8px!important;margin-bottom:8px!important}
.certificate .hero-title{margin:1px 0 5px}
.certificate .hero-grid{gap:4px 12px;margin-bottom:6px}
.certificate .hero-cell{padding:0}
.certificate .cert-lineage{margin-bottom:8px}
.certificate .cert-card{padding:6px 2px 2px!important}
.certificate .cert-card h3{margin-bottom:4px}
.certificate .cert-duo2{margin-bottom:0}
.certificate .cert-duo2.pp .perf-primary{gap:3px 7px!important}
.certificate .cert-duo2.pp .perf-cell{padding:4px 6px}
.certificate .timeline-card{margin:8px 0 0!important}
.certificate .cert-timeline li small{font-size:9px}
.certificate .cert-bottom{padding:8px 14px;margin-top:8px}
.certificate .cert-signs2{gap:18px;padding:4px 4px}
.certificate .cert-foot-note{margin-top:8px;font-size:10px}
/* slightly larger small-print so labels stay ≥7.5pt after the safety zoom */
.certificate .hero-cell small,.certificate .cflat .cert-field span{font-size:11px}
.certificate .cv-qr small{font-size:10.5px}

/* ═══ [REBUILD FIX 60d] final vertical tuning: quiet micro-metrics, single-line
   timeline labels, compact header/bottom bands ═══ */
.certificate .cert-duo2{gap:0 18px;align-items:start}
.certificate .cert-top h1{line-height:1.15}
.certificate .cert-duo2.pp .perf-primary{gap:2px 6px!important}
.certificate .cert-duo2.pp .perf-cell{padding:3px 5px}
.certificate .cert-duo2.pp .perf-primary .perf-cell small{font-size:8.5px;white-space:nowrap}
.certificate .cert-duo2.pp .perf-primary .perf-cell b{font-size:12px;line-height:1.25}
.certificate .cert-duo2.pp .perf-primary .perf-cell i{font-size:8px}
.certificate .perf-secondary{gap:1px 10px;margin-top:2px}
.certificate .perf-secondary .perf-cell small{font-size:8px;white-space:nowrap}
.certificate .perf-secondary .perf-cell b{font-size:9px;white-space:nowrap}
.certificate .cert-timeline li b{white-space:nowrap;font-size:10px}
.certificate .hero-title{margin:1px 0 4px}
.certificate .hero-cell small{margin-bottom:0}
.certificate .hero-cell b{line-height:1.25}
.certificate .hero-dam{padding-top:5px;font-size:11px}
.certificate .cduo .cert-field{padding:2px 0}
.certificate .notch-sub{display:block;font-size:8.5px}
.certificate .cert-bottom{padding:7px 12px}
.certificate .cv-meta span{display:flex;gap:4px}
.certificate .cv-meta{gap:6px}
@media(max-width:700px){
 .certificate .cert-timeline li b{white-space:normal}
 .certificate .cert-duo2.pp .perf-cell small{white-space:normal}
}

/* ═══ [REBUILD FIX 60e] last-mile true-size tuning ═══ */
/* one-row milestone stepper on the sheet (overrides the older 3-col screen rule) */
.certificate .cert-timeline{grid-template-columns:repeat(6,1fr)}
/* supporting micro-metrics as quiet inline text */
.certificate .perf-secondary{display:block!important;margin-top:4px;line-height:1.75}
.certificate .perf-secondary .perf-cell{display:inline!important;padding:0!important;border:0!important;background:transparent!important;margin-right:12px;white-space:nowrap}
/* slimmer bands */
.certificate .cert-top{grid-template-columns:66px 1fr auto 22px;gap:8px}
.certificate .ct-logo img{width:66px;height:54px}
.certificate .cert-top h1{font-size:27px}
.certificate .hero-cell{padding:2px 0}
.certificate .ped-col span{line-height:1.3}
.certificate .ped-semen{margin-top:3px;padding-top:3px}
.certificate .nch .notch-sub,.certificate .notch-card .notch-sub{display:block}
.certificate .cert-bottom{padding:7px 12px;gap:6px 18px}
.certificate .cv-meta{gap:4px}
.certificate .cert-foot-note{margin-top:7px}
.certificate{padding:15px 22px 9px}
@media(max-width:700px){
 .certificate .cert-timeline{grid-template-columns:repeat(3,1fr)!important}
}
/* [REBUILD FIX 60e-2] micro-metric labels flow inline with their values */
.certificate .perf-secondary .perf-cell small{display:inline!important;margin-right:4px;white-space:normal}
.certificate .perf-secondary .perf-cell b{white-space:normal}
/* [REBUILD FIX 60e-3] micro-metric values inline too (base .perf-cell b is block) */
.certificate .perf-secondary .perf-cell b{display:inline!important}

/* ═══ [REBUILD FIX 60f] final spacing pass — true-size print reached ═══ */
.certificate .ct-statusline{margin-bottom:1px}
.certificate .cflat .cert-field{padding:1.5px 0}
.certificate .csec-head{margin-bottom:5px}
.certificate .cert-pay .csec-head{margin-bottom:4px}
.certificate .hero-cell small{font-size:10px}
.certificate .hero-cell b{font-size:13px;line-height:1.2}
.certificate .pedline{margin:1px 0}
.certificate .ped-col{gap:2px}
.certificate .health-line{padding:1.5px 0}
.certificate .health-line.vax-auto{padding:3px 8px}
.certificate .perf-secondary{margin-top:3px;line-height:1.6}
.certificate .perf-secondary .perf-cell{margin-right:8px}
.certificate .perf-secondary .perf-cell b{font-size:8.5px}

/* ═══ [REBUILD FIX 60g] typography at professional certificate floors
   (title 24px≈18pt · headings 13.5px≈10pt · values 12.5px≈9.4pt · labels
   10.5px≈7.9pt) + slightly oversize QR so it scans at ≥28mm after fit-zoom ═══ */
.certificate .cert-top h1{font-size:25px}
.certificate .ct-farm{font-size:10px}
.certificate .ct-sub{font-size:12px}
.certificate .csec-head,.certificate .cert-card h3{font-size:13.5px}
.certificate .hero-title b{font-size:22px}
.certificate .hero-title span{font-size:13px}
.certificate .hero-cell b{font-size:12.5px}
.certificate .cflat .cert-field b{font-size:12.5px}
.certificate .ped-col b{font-size:12.5px}
.certificate .pay-cell b{font-size:16px}
.certificate .pay-cell.bal b{font-size:18px}
.certificate .health-line{font-size:11px}
.certificate .cert-qr{width:118px!important;height:118px!important}
.certificate .cert-qr i{width:11px!important;height:11px!important}
@media print{
 .certificate .cert-qr{width:118px!important;height:118px!important}
}

/* ═══ [REBUILD FIX 60h] headroom pass (zoom target leaves ≥10px page slack) ═══ */
.cert-rule{margin:5px 0 7px}
.certificate .cert-top{grid-template-columns:62px 1fr auto 22px}
.certificate .ct-logo img{width:62px;height:50px}
.certificate .hero-cell b{line-height:1.15}
.certificate .hero-title{margin:1px 0 3px}
.certificate .hero-dam{font-size:10.5px;padding-top:4px}
.certificate .ct-status{padding:3px 12px}
.certificate .cert-duo2.pp .perf-primary .perf-cell small{font-size:8px}
.certificate .cert-duo2.pp .perf-primary .perf-cell b{font-size:11.5px}
.certificate .cert-duo2.pp .perf-primary .perf-cell i{font-size:7.5px}
.certificate .perf-secondary{line-height:1.55}
.certificate .cert-timeline i{width:19px;height:19px;font-size:10px}
.certificate .cert-timeline li small{font-size:8.5px}
.certificate .cert-bottom{padding:6px 12px}

/* ═══ [REBUILD FIX 60i] verification meta = one quiet centred line under the
   band, so the QR card stops inflating the page footer ═══ */
.certificate .cv-meta-line{display:flex!important;justify-content:center;gap:8px 18px;flex-wrap:wrap;margin-top:6px;font-size:8.5px;color:#8aa09d;text-align:center}
.certificate .cv-meta-line span{display:flex;gap:4px}
.certificate .cv-meta-line b{color:#5f7a76;font-weight:700}
.certificate .cert-duo2.pp .perf-secondary .perf-cell small{font-size:8px}
.certificate .hero-title{margin:1px 0 2px}
.certificate .timeline-card .csec-head{margin-bottom:3px}

/* ═══ [REBUILD FIX 60j] closing micro-trims ═══ */
@page{margin:5mm 8mm}
.certificate{padding:12px 20px 8px}
.certificate .ct-meta{margin-top:1px}
.certificate .cduo{margin-bottom:6px}
.certificate .cert-hero{margin-bottom:6px!important}
.certificate .cert-lineage{margin-bottom:6px}
.certificate .health-line.note-line{font-size:10.5px}
.certificate .health-line.vax-auto{padding:2.5px 8px}
/* [REBUILD FIX 60k] supporting metrics keep their context captions (visible, quiet) */
.certificate .perf-secondary .perf-cell i{display:inline!important;font-style:italic;font-size:8px;margin-left:3px;color:#7d9290}

/* [REBUILD FIX 61] newest-insemination line on sow modals */
.sow-ai-line{margin:2px 0 12px;padding:9px 12px;border:1px solid rgba(126,240,231,.3);border-radius:10px;background:rgba(23,202,190,.07);font-size:12.5px;color:#d9f3ef;line-height:1.5}
.sow-ai-line b{color:#5bf0dd}
.sow-ai-line .sow-ai-over{color:#ff9aa3}


/* [REBUILD FIX 62] change-due figure pops on the POS totals box */
.semen-total .pos-change{color:#ffd166}


/* [REBUILD FIX 63] Available Semen quick-summary strip (semen drill-down) */
.sem-avail{margin:16px 0 2px}
.sem-avail-head p{margin:3px 0 0;font-size:12px}
.sem-avail .sac-title{color:#5ce4d8!important}
.sem-avail-strip{display:flex;gap:12px;overflow-x:auto;padding:12px 2px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity}
.sem-avail-card{flex:0 0 176px;scroll-snap-align:start;position:relative;display:grid;gap:6px;padding:13px 14px 12px;border-radius:16px;border:1px solid #24454a;background:linear-gradient(135deg,rgba(21,41,48,.95),rgba(13,21,25,.96));color:#e3f1ef;text-align:left;cursor:pointer;transition:transform .17s ease,border-color .17s ease}
.sem-avail-card:hover,.sem-avail-card:focus{transform:translateY(-2px);border-color:#52ded3;outline:0}
.sem-avail-card .drill-row-caret{top:19px;transform:none;font-size:19px}
.sac-top{display:flex;align-items:center;gap:10px;padding-right:16px}
.sac-ico{flex:0 0 38px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:17px;border:2px solid currentColor;background:rgba(255,255,255,.03)}
.sac-id{display:grid;line-height:1.3;min-width:0}
.sac-id b{font-size:15px;letter-spacing:.3px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sac-id small{color:#9db8b5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sac-line{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#cfe6e2}
.sac-when{display:grid;line-height:1.35}
.sac-when small{color:#8aa39f;font-size:11px;letter-spacing:.2px}
.sac-days{font-size:12px;font-weight:750}
.sac-rule{border-top:1px dashed rgba(145,207,202,.28);display:block}
.sac-bottles{display:flex;align-items:center;gap:7px}
.sac-bottles b{font-size:29px;line-height:1;letter-spacing:-1px}
.sac-bottles small{color:#9db8b5;font-size:12px}
.sem-avail-card.hue-teal .sac-ico,.sem-avail-card.hue-teal .sac-days,.sem-avail-card.hue-teal .sac-bottles b{color:#5bf0dd}
.sem-avail-card.hue-sky .sac-ico,.sem-avail-card.hue-sky .sac-days,.sem-avail-card.hue-sky .sac-bottles b{color:#68b8ff}
.sem-avail-card.hue-amber .sac-ico,.sem-avail-card.hue-amber .sac-days,.sem-avail-card.hue-amber .sac-bottles b{color:#ffd166}
.sem-avail-card.hue-plum .sac-ico,.sem-avail-card.hue-plum .sac-days,.sem-avail-card.hue-plum .sac-bottles b{color:#d49bf2}
.sem-avail-card.hue-mint .sac-ico,.sem-avail-card.hue-mint .sac-days,.sem-avail-card.hue-mint .sac-bottles b{color:#7ee787}
.sem-avail-empty{margin-top:9px;padding:14px 15px;border:1px dashed rgba(75,212,201,.3);border-radius:12px;display:grid;gap:3px;color:#cfe6e2}
.sem-avail-empty span{color:#9db8b5;font-size:12px}
.light-theme .sem-avail-card{background:#fff;border-color:var(--line)}
.light-theme .sem-avail-card .sac-id b{color:#112126}
.light-theme .sem-avail-card .sac-line{color:#24363a}
.light-theme .sem-avail-empty{color:#24363a}


/* [REBUILD FIX 64] invitation-code button + modal, admin delete-user */
.farmbox .invite-btn{margin-top:9px;width:100%;padding:8px 10px;border-radius:9px;background:#0f2c30;border:1px solid #2a5f58;color:#7ee8dd;font-weight:700;font-size:12px}
.farmbox .invite-btn:hover{background:#15393e}
.light-theme .farmbox .invite-btn{background:#eafaf7;border-color:#bfe6e0;color:#0a6968}
.invite-modal .muted{line-height:1.55}
.invite-code-box{margin:14px 0;padding:16px;border:1px dashed rgba(75,212,201,.5);border-radius:12px;text-align:center;background:rgba(9,38,42,.5)}
.light-theme .invite-code-box{background:#f2fbfa}
.invite-code-box b{display:block;font-size:26px;letter-spacing:.22em;color:#5bf0dd;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;user-select:all}
.light-theme .invite-code-box b{color:#075e63}
.invite-code-box span{display:block;margin-top:7px;color:#9db8b5;font-size:12px}
.light-theme .invite-code-box span{color:#567071}
.invite-actions{display:flex;gap:9px;margin:9px 0;flex-wrap:wrap}
.invite-note{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:rgba(240,182,75,.08);border:1px solid rgba(240,182,75,.3);color:#f3cf87;font-size:12px;line-height:1.5}
.light-theme .invite-note{background:#fff7e6;color:#8a6410;border-color:#ecd9a8}
#table-useradmin .delete-action{margin-left:6px}


/* [REBUILD FIX 65] quiet technical detail under friendly error text */
.invite-err-detail{margin:8px 0 0;color:#8aa39f;font-size:11px;word-break:break-word}
.light-theme .invite-err-detail{color:#7c8a89}


/* [REBUILD FIX 66] treatment row actions + disease suggestion cards */
#treatRows .summary-row{flex-wrap:wrap;gap:6px 10px}
.treat-row-actions{display:flex;gap:7px;align-items:center}
.dis-meds{margin:8px 0 0;padding-left:18px}
.dis-meds li{margin:5px 0;line-height:1.45}
.med-nc{color:#ffb3b9;font-weight:600;line-height:1.5}
.light-theme .med-nc{color:#b33843}


/* [REBUILD FIX 67] AI online lookup card + nudge + status line */
#aiStatusLine{margin-top:10px;font-size:12px;color:var(--muted)}
#aiStatusLine .ai-on{color:var(--teal2)}
#aiStatusLine a{color:var(--teal2);font-weight:700;cursor:pointer;text-decoration:underline}
#aiStatusLine b{color:inherit}
.ai-nudge{margin-top:14px;padding:13px 15px;border:1px dashed var(--teal);border-radius:12px;font-size:12.5px;color:var(--muted);line-height:1.55}
.ai-nudge b{color:var(--ink)}
.ai-nudge-btn,#aiStatusLine .ai-nudge-btn{margin-left:4px;padding:6px 11px;border-radius:8px;background:var(--teal);color:#fff;font-weight:750;font-size:11.5px}
.ai-card{position:relative}
.ai-chip-live{background:linear-gradient(135deg,#13b9ad,#07988f);color:#04181a;font-weight:800}
.ai-setup-modal h2{margin:0;color:#e9fafa}
.ai-card .ai-cat{font-weight:800}
.ai-card .ai-cat.piglet{color:#f0b64b}
.ai-card .ai-cat.sow{color:#ff8fb3}
.ai-card .ai-cat.boar{color:#f59e0b}
.ai-card .ai-doses p{margin:7px 0;line-height:1.5;font-size:13px}
.ai-price{margin:14px 0 2px;font-size:15px}
/* [FIX 194] the chooser's money line: what the farm will actually type into
   Cost-per-unit, shown with the division that produced it */
.ai-unit-cost{margin:6px 0 2px;font-size:13px;color:#7fe9df}.ai-unit-cost b{color:#a7f3ec}.light-theme .ai-unit-cost{color:#075e63}.light-theme .ai-unit-cost b{color:#075e63}
.ai-src{margin-top:10px}
.ai-card .ai-actions{display:flex;gap:10px;margin-top:14px}
.ai-card .ai-actions .btn{border-radius:11px;padding:11px 15px}
.ai-note{display:block;margin-top:12px}
.ai-loading{display:flex;align-items:center;gap:10px}
.light-theme #aiStatusLine a{color:var(--teal2)}
.light-theme .ai-nudge{color:#4c5f63}
.light-theme .ai-nudge b{color:#16323a}

/* [REBUILD FIX 70] visual reference image slots on medicine/AI result cards */
.med-img{background:#ffffff;border-radius:12px;padding:12px;margin:2px 0 14px;border:1px solid #e5eeee;text-align:center}
.med-img:empty{display:none}
.med-img img{max-height:170px;max-width:100%;object-fit:contain;border-radius:8px}
.med-img-cap{font-size:10.5px;text-align:center;color:#6b7c80!important;display:block;margin-top:6px}


/* ═══════════════════════════════════════════════════════════════════════════
   ARSwineTech Pro — RFID & Multi-Barn Movements UI Styles
   ═══════════════════════════════════════════════════════════════════════════ */

/* Topbar RFID Scan Button */
.topbar-rfid-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(13, 141, 145, 0.12);
  color: var(--teal);
  border: 1px solid rgba(13, 141, 145, 0.3);
  padding: 6px 14px;
  border-radius: 20px;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.topbar-rfid-btn:hover {
  background: var(--teal);
  color: #fff;
}
.rfid-pulse-dot {
  width: 8px;
  height: 8px;
  background: #10b981;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  animation: rfidPulse 1.8s infinite;
}
@keyframes rfidPulse {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
  70% { transform: scale(1); box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}

/* RFID / EID Center Layout */
.rfid-center-wrap {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 10px 0;
}
.rfid-hero-banner {
  background: linear-gradient(135deg, #075e63 0%, #0d8d91 100%);
  color: #fff;
  border-radius: 14px;
  padding: 24px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  box-shadow: 0 8px 24px rgba(7, 94, 99, 0.25);
}
.rfid-hero-banner .eyebrow {
  color: #99f6e4;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: 11px;
}
.rfid-hero-banner h2 {
  color: #fff;
  margin: 4px 0 8px;
  font-size: 24px;
}
.rfid-hero-banner p {
  color: rgba(255, 255, 255, 0.9);
  max-width: 600px;
  margin: 0;
  font-size: 13.5px;
  line-height: 1.5;
}
.rfid-scan-launch-btn {
  background: #fff !important;
  color: #075e63 !important;
  font-weight: 700 !important;
  font-size: 14.5px !important;
  padding: 12px 22px !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}
.rfid-scan-launch-btn:hover {
  background: #f0fdfa !important;
  transform: translateY(-1px);
}

/* Hardware Cards Grid */
.rfid-hardware-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}
.hw-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: var(--shadow);
  transition: transform 0.2s ease, border-color 0.2s ease;
}
.hw-card:hover {
  transform: translateY(-2px);
  border-color: var(--teal);
}
.hw-icon {
  font-size: 28px;
  width: 50px;
  height: 50px;
  background: rgba(13, 141, 145, 0.1);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.hw-info {
  flex: 1;
}
.hw-label {
  font-weight: 600;
  font-size: 13.5px;
  color: var(--ink);
}
.hw-status {
  font-size: 12px;
  font-weight: 600;
  margin: 2px 0;
}
.hw-status.connected { color: #10b981; }
.hw-status.disconnected { color: #d97706; }
.hw-status.ready { color: var(--teal); }
.hw-status.disabled { color: var(--muted); }
.hw-info small {
  color: var(--muted);
  font-size: 11px;
  display: block;
}

/* RFID Stats Row */
.rfid-stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}
.rfid-stat-box {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: var(--shadow);
}
.stat-ico {
  font-size: 24px;
}
.stat-val {
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
}
.stat-lbl {
  font-size: 11.5px;
  color: var(--muted);
}

/* Simulator Bar */
.rfid-sim-bar {
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 4px solid var(--teal);
  border-radius: 10px;
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
}
.sim-left b {
  display: block;
  font-size: 13.5px;
  color: var(--ink);
}
.sim-left span {
  font-size: 12px;
  color: var(--muted);
}
.sim-inputs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  flex: 1;
  max-width: 580px;
}
.sim-inputs input {
  flex: 1;
  min-width: 220px;
  padding: 8px 12px;
  font-size: 13px;
}

/* Audit Log Table */
.rfid-audit-section {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px 22px;
  box-shadow: var(--shadow);
}
.audit-head h3 {
  margin: 0 0 2px;
  font-size: 16px;
  color: var(--ink);
}
.audit-head small {
  color: var(--muted);
}
.audit-table-wrap {
  margin-top: 14px;
  overflow-x: auto;
}
.rfid-audit-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.rfid-audit-table th {
  text-align: left;
  padding: 10px 12px;
  background: var(--bg);
  color: var(--muted);
  font-weight: 600;
  font-size: 11.5px;
  border-bottom: 1px solid var(--line);
}
.rfid-audit-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
.tag-code {
  background: rgba(13, 141, 145, 0.1);
  color: var(--teal2);
  padding: 3px 6px;
  border-radius: 4px;
  font-family: monospace;
  font-size: 12px;
  font-weight: 600;
}
.proto-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 12px;
  background: var(--bg);
  border: 1px solid var(--line);
  font-size: 11px;
  color: var(--ink);
}

/* Modal Backdrops & Dialogs */
.rfid-modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(6, 20, 25, 0.75);
  backdrop-filter: blur(4px);
  /* [FIX 93] must sit ABOVE the batch-details / due modals (999999/1000000),
     otherwise the Movement Wizard opened from "Current Housing" renders
     behind the modal that launched it. */
  z-index: 1000001 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  animation: fadeIn 0.15s ease-out;
}
.rfid-dossier-card {
  background: var(--white);
  border-radius: 14px;
  max-width: 520px;
  width: 100%;
  padding: 22px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.3);
  max-height: 90vh;
  overflow-y: auto;
}
.rfid-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.rfid-tag-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(13, 141, 145, 0.12);
  color: var(--teal2);
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 12.5px;
  font-weight: 600;
}
.rfid-tag-chip.unassigned {
  background: rgba(217, 119, 6, 0.15);
  color: #b45309;
}
.rfid-close-btn {
  background: transparent;
  border: none;
  font-size: 24px;
  color: var(--muted);
  cursor: pointer;
  line-height: 1;
}
.rfid-animal-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.animal-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--teal);
  color: #fff;
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
}
.animal-avatar.sow { background: #0d8d91; }
.animal-avatar.boar { background: #0369a1; }
.animal-avatar.piglet_batch { background: #059669; }

.hero-type-badge {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--teal);
  letter-spacing: 0.05em;
}
.animal-hero-info h3 {
  margin: 2px 0 4px;
  font-size: 20px;
  color: var(--ink);
}
.animal-hero-info p {
  margin: 0;
  font-size: 12.5px;
  color: var(--muted);
}

.rfid-location-pill {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}
.loc-icon {
  font-size: 22px;
}
.loc-details small {
  display: block;
  font-size: 11px;
  color: var(--muted);
}
.loc-details b {
  font-size: 14px;
  color: var(--ink);
}

.rfid-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  background: var(--bg);
  padding: 12px;
  border-radius: 10px;
  margin-bottom: 18px;
}
.rfid-stat small {
  display: block;
  font-size: 11px;
  color: var(--muted);
}
.rfid-stat b {
  font-size: 13.5px;
  color: var(--ink);
}

.rfid-actions-tray h4 {
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.action-buttons-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.act-btn {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 13px;
  color: var(--ink);
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: left;
}
.act-btn:hover {
  background: var(--bg);
  border-color: var(--teal);
  transform: translateY(-1px);
}
.act-ico {
  font-size: 20px;
}
.rfid-card-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

/* Scanner Dialog & Camera Viewfinder */
.scanner-dialog {
  background: var(--white);
  border-radius: 14px;
  max-width: 480px;
  width: 100%;
  padding: 20px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.3);
}
.scanner-dialog-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}
.scanner-dialog-header h3 {
  margin: 0;
  font-size: 18px;
}
.scanner-mode-tabs {
  display: flex;
  gap: 6px;
  background: var(--bg);
  padding: 4px;
  border-radius: 8px;
  margin-bottom: 16px;
}
.scan-tab {
  flex: 1;
  padding: 8px;
  border: none;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.scan-tab.active {
  background: var(--white);
  color: var(--teal);
  box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}

.camera-scanner-wrap {
  position: relative;
  width: 100%;
  height: 280px;
  background: #000;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.camera-video-feed {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.camera-reticle {
  position: absolute;
  width: 200px;
  height: 140px;
  border: 2px solid rgba(13, 141, 145, 0.8);
  border-radius: 12px;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  color: #fff;
  font-size: 11px;
  text-align: center;
}
.reticle-laser {
  width: 100%;
  height: 2px;
  background: #ef4444;
  box-shadow: 0 0 8px #ef4444;
  animation: laserScan 2s infinite ease-in-out;
}
@keyframes laserScan {
  0% { transform: translateY(0); }
  50% { transform: translateY(110px); }
  100% { transform: translateY(0); }
}
.cam-close-btn {
  position: absolute;
  bottom: 12px;
  z-index: 10;
  background: rgba(0,0,0,0.6) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.4) !important;
}

/* BLE / NFC Scan Panes */
.ble-scan-pane, .nfc-scan-pane, .manual-scan-pane {
  text-align: center;
  padding: 24px 12px;
}
.pulse-ring-wrap {
  position: relative;
  width: 80px;
  height: 80px;
  margin: 0 auto 16px;
}
.pulse-center-ico, .nfc-icon-large {
  font-size: 36px;
  position: relative;
  z-index: 2;
  line-height: 80px;
}
.pulse-ring {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: rgba(13, 141, 145, 0.2);
  animation: blePulse 2s infinite ease-out;
}
.pulse-ring.delay {
  animation-delay: 1s;
}
@keyframes blePulse {
  0% { transform: scale(0.6); opacity: 1; }
  100% { transform: scale(1.6); opacity: 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MULTI-BARN MOVEMENTS & BIOSECURITY STYLES
   ═══════════════════════════════════════════════════════════════════════════ */
.barns-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 10px 0;
}
.barns-hero-card {
  background: linear-gradient(135deg, #112126 0%, #075e63 100%);
  color: #fff;
  border-radius: 14px;
  padding: 24px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  box-shadow: 0 8px 24px rgba(17, 33, 38, 0.25);
}
.barns-hero-card h2 {
  color: #fff;
  margin: 4px 0 8px;
  font-size: 24px;
}
.barns-hero-card p {
  color: rgba(255, 255, 255, 0.88);
  max-width: 600px;
  margin: 0;
  font-size: 13.5px;
}
.barns-hero-card .eyebrow {
  color: #5eead4;
  font-size: 11px;
}

.barns-metrics-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}
.barn-stat-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px 20px;
  box-shadow: var(--shadow);
}
.barn-stat-card.ok { border-top: 3px solid #10b981; }
.barn-stat-card.resting { border-top: 3px solid #0284c7; }
.barn-stat-card.warn { border-top: 3px solid #d97706; }
.stat-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
}
.stat-sub {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 2px;
}

/* Barn Selector Tabs */
.barn-tabs-nav {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.barn-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 16px;
  font-weight: 600;
  font-size: 13.5px;
  color: var(--ink);
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
  box-shadow: var(--shadow);
}
.barn-tab-btn:hover {
  border-color: var(--teal);
  transform: translateY(-1px);
}
.barn-tab-btn.active {
  background: var(--teal);
  color: #fff;
  border-color: var(--teal);
}
.barn-tab-badge {
  background: rgba(0, 0, 0, 0.08);
  padding: 2px 6px;
  border-radius: 12px;
  font-size: 11px;
}
.barn-tab-btn.active .barn-tab-badge {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

/* Pen Grid */
.active-barn-panel {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 20px 24px;
  box-shadow: var(--shadow);
}
.active-barn-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.active-barn-header h3 {
  margin: 0 0 4px;
  font-size: 18px;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 10px;
}
.barn-type-pill {
  font-size: 11px;
  font-weight: 600;
  background: rgba(13, 141, 145, 0.12);
  color: var(--teal);
  padding: 2px 8px;
  border-radius: 12px;
}
.pen-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.pen-card {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 180px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pen-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}
.pen-card.occupied {
  border-left: 4px solid var(--teal);
  background: var(--white);
}
.pen-card.resting {
  border-left: 4px solid #0284c7;
  background: rgba(2, 132, 199, 0.03);
}
.pen-card.dirty {
  border-left: 4px solid #d97706;
  background: rgba(217, 119, 6, 0.03);
}
.pen-card.ready {
  border-left: 4px solid #10b981;
  background: var(--white);
}

.pen-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}
.pen-name-tag b {
  font-size: 14px;
  color: var(--ink);
}
.pen-name-tag small {
  display: block;
  font-size: 11px;
  color: var(--muted);
}
.pen-status-badge {
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
}
.pen-status-badge.occupied { background: rgba(13, 141, 145, 0.15); color: var(--teal); }
.pen-status-badge.resting { background: rgba(2, 132, 199, 0.15); color: #0284c7; }
.pen-status-badge.dirty { background: rgba(217, 119, 6, 0.15); color: #b45309; }
.pen-status-badge.ready { background: rgba(16, 185, 129, 0.15); color: #059669; }

.pen-occupant-box {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.occ-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--teal);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 16px;
}
.occ-avatar.sow { background: #0d8d91; }
.occ-avatar.boar { background: #0369a1; }
.occ-avatar.batch { background: #059669; }
.occ-meta b {
  display: block;
  font-size: 13.5px;
  color: var(--ink);
}
.occ-meta small {
  font-size: 11px;
  color: var(--muted);
}
.pen-rfid-chip {
  font-size: 10.5px;
  color: var(--teal2);
  background: rgba(13, 141, 145, 0.1);
  padding: 1px 5px;
  border-radius: 4px;
  font-weight: 600;
  display: inline-block;
  margin-top: 2px;
}
.pen-duration-pill {
  font-size: 11px;
  color: var(--muted);
  margin-top: 6px;
}

/* Resting & Sanitation Bars */
.pen-rest-box {
  padding: 8px 0;
}
.rest-title {
  font-size: 12px;
  font-weight: 700;
  color: #0284c7;
}
.rest-sub {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 6px;
}
.rest-progress-bar {
  width: 100%;
  height: 6px;
  background: #e0f2fe;
  border-radius: 3px;
  overflow: hidden;
}
.rest-fill {
  height: 100%;
  background: #0284c7;
  border-radius: 3px;
}
.pen-dirty-box, .pen-ready-box {
  padding: 8px 0;
}
.pen-dirty-box b { color: #b45309; font-size: 12.5px; display: block; }
.pen-dirty-box small { color: var(--muted); font-size: 11px; }
.pen-ready-box b { color: #059669; font-size: 12.5px; display: block; }
.pen-ready-box small { color: var(--muted); font-size: 11px; }

.pen-card-foot {
  display: flex;
  gap: 6px;
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

/* Movement Wizard Modal */
.movement-wizard-card {
  background: var(--white);
  border-radius: 14px;
  max-width: 580px;
  width: 100%;
  padding: 24px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.3);
  max-height: 92vh;
  overflow-y: auto;
}
.wizard-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.wizard-header h3 {
  margin: 0;
  font-size: 20px;
  color: var(--ink);
}
.animal-picker-row {
  display: flex;
  gap: 8px;
}
.scan-btn-mini {
  white-space: nowrap;
}
.loc-origin-preview {
  background: var(--bg);
  border: 1px solid var(--line);
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  color: var(--ink);
}
.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.wizard-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

/* Movements Audit Log */
.movements-audit-section {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 20px 24px;
  box-shadow: var(--shadow);
}
.audit-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}
.audit-header h3 {
  margin: 0 0 2px;
  font-size: 16px;
  color: var(--ink);
}
.movements-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.movements-table th {
  text-align: left;
  padding: 10px 12px;
  background: var(--bg);
  color: var(--muted);
  font-weight: 600;
  font-size: 11.5px;
  border-bottom: 1px solid var(--line);
}
.movements-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
.loc-tag {
  display: inline-block;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 11.5px;
  font-weight: 600;
}
.loc-tag.from { background: #fee2e2; color: #991b1b; }
.loc-tag.to { background: #dcfce7; color: #166534; }
.reason-pill {
  background: var(--bg);
  border: 1px solid var(--line);
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
}
.rfid-tag-badge.verified {
  color: #059669;
  font-weight: 600;
  font-size: 11.5px;
}
.rfid-tag-badge.manual {
  color: var(--muted);
  font-size: 11.5px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   ENHANCED CAMERA SCANNER & HUD CONTROLS
   ═══════════════════════════════════════════════════════════════════════════ */
.camera-scanner-wrap {
  position: relative;
  width: 100%;
  height: 340px;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}
.camera-video-feed {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Reticle with Corner Brackets & Laser */
.camera-reticle {
  position: absolute;
  width: 250px;
  height: 160px;
  border-radius: 12px;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.55);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: 8px;
  color: #fff;
  font-size: 11px;
  text-align: center;
  pointer-events: none;
  transition: all 0.2s ease;
}
.camera-reticle.scan-locked {
  border: 2px solid #10b981 !important;
  box-shadow: 0 0 0 9999px rgba(16, 185, 129, 0.3), 0 0 20px #10b981 !important;
}
.reticle-corners {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.reticle-corners span {
  position: absolute;
  width: 18px;
  height: 18px;
  border-color: #0db8ae;
  border-style: solid;
}
.c-tl { top: -2px; left: -2px; border-width: 3px 0 0 3px; border-top-left-radius: 8px; }
.c-tr { top: -2px; right: -2px; border-width: 3px 3px 0 0; border-top-right-radius: 8px; }
.c-bl { bottom: -2px; left: -2px; border-width: 0 0 3px 3px; border-bottom-left-radius: 8px; }
.c-br { bottom: -2px; right: -2px; border-width: 0 3px 3px 0; border-bottom-right-radius: 8px; }

.reticle-laser {
  width: 100%;
  height: 2.5px;
  background: #00f2fe;
  box-shadow: 0 0 10px #00f2fe, 0 0 20px #0db8ae;
  border-radius: 2px;
  animation: laserScanSmooth 1.8s infinite ease-in-out;
}
@keyframes laserScanSmooth {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(125px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.8; }
}
.reticle-hint {
  font-weight: 600;
  font-size: 11.5px;
  text-shadow: 0 2px 4px rgba(0,0,0,0.8);
  background: rgba(0, 0, 0, 0.5);
  padding: 3px 10px;
  border-radius: 12px;
}

/* Dynamic Controls HUD (Torch & Zoom) */
.camera-hud-controls {
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  gap: 8px;
  z-index: 10;
}
.hud-btn {
  background: rgba(0, 0, 0, 0.65);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: all 0.15s ease;
}
.hud-btn:hover, .hud-btn.active {
  background: #0db8ae;
  border-color: #0db8ae;
  color: #fff;
}
.hud-zoom-group {
  background: rgba(0, 0, 0, 0.65);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 20px;
  padding: 2px;
  display: inline-flex;
  gap: 2px;
  backdrop-filter: blur(4px);
}
.zoom-btn {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.8);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.zoom-btn.active {
  background: #0db8ae;
  color: #fff;
}

/* Footer row */
.camera-footer-row {
  position: absolute;
  bottom: 12px;
  left: 12px;
  right: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 10;
}
.camera-status-pill {
  font-size: 10.5px;
  color: #99f6e4;
  background: rgba(6, 20, 25, 0.7);
  padding: 4px 10px;
  border-radius: 12px;
  font-weight: 600;
  backdrop-filter: blur(4px);
}


/* ═══════════════════════════════════════════════════════════════════════════
   BLUETOOTH WEIGHING SCALE LIVE HUD & ROSTER INTEGRATION
   ═══════════════════════════════════════════════════════════════════════════ */
.scale-connect-banner {
  background: var(--bg);
  border: 1px dashed rgba(13, 141, 145, 0.4);
  border-radius: 10px;
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}
.banner-text {
  display: flex;
  align-items: center;
  gap: 10px;
}
.scale-ico {
  font-size: 24px;
}
.banner-text b {
  display: block;
  font-size: 13px;
  color: var(--ink);
}
.banner-text small {
  font-size: 11px;
  color: var(--muted);
}
.banner-btns {
  display: flex;
  gap: 6px;
}
.scale-pair-btn {
  background: var(--teal) !important;
  color: #fff !important;
  font-weight: 600 !important;
}

/* Live Scale HUD when connected */
.scale-live-hud {
  background: linear-gradient(135deg, #075e63 0%, #0d8d91 100%);
  color: #fff;
  border-radius: 12px;
  padding: 14px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
  box-shadow: 0 6px 18px rgba(7, 94, 99, 0.2);
  transition: all 0.2s ease;
}
.scale-live-hud.stable {
  background: linear-gradient(135deg, #065f46 0%, #059669 100%);
  box-shadow: 0 6px 18px rgba(5, 150, 105, 0.3);
}
.hud-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.scale-device-chip {
  font-size: 11px;
  font-weight: 700;
  color: #99f6e4;
  letter-spacing: 0.05em;
}
.scale-reading-wrap {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.scale-number {
  font-size: 28px;
  font-weight: 800;
  font-family: monospace;
  color: #fff;
  letter-spacing: -0.02em;
}
.scale-lock-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.25);
}
.scale-lock-badge.stable {
  background: #fff;
  color: #065f46;
}
.scale-lock-badge.moving {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}
.hud-right {
  display: flex;
  gap: 8px;
  align-items: center;
}
.scale-auto-btn {
  background: #fff !important;
  color: #075e63 !important;
  font-weight: 700 !important;
}
.scale-auto-btn.active {
  background: #ef4444 !important;
  color: #fff !important;
  animation: pulseAutoBtn 1.5s infinite;
}
@keyframes pulseAutoBtn {
  0% { transform: scale(1); }
  50% { transform: scale(1.04); }
  100% { transform: scale(1); }
}

/* Field Head Split & Capture Scale Button */
.field-head-split {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}
.field-head-split label {
  margin-bottom: 0;
}
.btn-scale-fill {
  background: rgba(13, 141, 145, 0.12);
  color: var(--teal);
  border: 1px solid rgba(13, 141, 145, 0.3);
  border-radius: 12px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
.btn-scale-fill:hover {
  background: var(--teal);
  color: #fff;
}
.captured-flash {
  animation: flashInput 0.6s ease;
}
@keyframes flashInput {
  0% { background-color: #d1fae5; border-color: #10b981; }
  100% { background-color: var(--bg); border-color: var(--line); }
}

/* Notch Table Cell & Auto-Weigh Target Row */
.notch-weight-cell {
  display: flex;
  align-items: center;
  gap: 4px;
}
.btn-mini-scale {
  background: rgba(13, 141, 145, 0.15);
  border: 1px solid rgba(13, 141, 145, 0.3);
  color: var(--teal);
  border-radius: 4px;
  padding: 2px 5px;
  font-size: 11px;
  font-weight: bold;
  cursor: pointer;
}
.btn-mini-scale:hover {
  background: var(--teal);
  color: #fff;
}
tr.auto-weigh-target {
  background: rgba(13, 141, 145, 0.12) !important;
  border-left: 4px solid var(--teal) !important;
  box-shadow: inset 0 0 0 1px var(--teal);
}
tr.auto-weighed-success {
  background: rgba(16, 185, 129, 0.25) !important;
  transition: background 0.8s ease;
}


/* ═══════════════════════════════════════════════════════════════════════════
   EAR NOTCH REGISTRY — LIVE BLUETOOTH SCALE TOOLBAR & ROW BUTTONS
   ═══════════════════════════════════════════════════════════════════════════ */
.notch-scale-bar {
  background: var(--bg);
  border: 1px solid var(--line);
  border-left: 4px solid var(--muted);
  border-radius: 10px;
  padding: 10px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 12px 0 10px;
  transition: all 0.2s ease;
}
.notch-scale-bar.connected {
  border-left-color: var(--teal);
  background: rgba(13, 141, 145, 0.05);
}
.notch-scale-bar.stable-lock {
  border-left-color: #10b981;
  background: rgba(16, 185, 129, 0.08);
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.15);
}

.notch-scale-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.scale-dot {
  font-size: 14px;
}
.scale-dot.dot-off { color: var(--muted); }
.scale-dot.dot-active { color: #f59e0b; animation: pulseDot 1.2s infinite; }
.scale-dot.dot-stable { color: #10b981; }

@keyframes pulseDot {
  0% { opacity: 0.4; }
  50% { opacity: 1; }
  100% { opacity: 0.4; }
}

.scale-meta b {
  display: block;
  font-size: 13px;
  color: var(--ink);
}
.scale-meta small {
  font-size: 11px;
  color: var(--muted);
}
.notch-live-pill {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 4px 10px;
  font-size: 16px;
  font-weight: 800;
  font-family: monospace;
  color: var(--ink);
}
.notch-live-pill.stable {
  background: #10b981;
  color: #fff;
  border-color: #10b981;
}

.notch-scale-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}
.scale-connect-btn {
  background: var(--teal) !important;
  color: #fff !important;
  font-weight: 600 !important;
}
.scale-auto-act {
  background: #0284c7 !important;
  color: #fff !important;
  font-weight: 700 !important;
}
.scale-auto-act.auto-active {
  background: #ef4444 !important;
  color: #fff !important;
  animation: pulseAutoBtn 1.5s infinite;
}

/* Individual Row Weight Cell & Button */
.notch-weight-cell {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 105px;
}
.notch-weight-cell input {
  flex: 1;
  min-width: 60px;
}
.btn-row-scale {
  background: rgba(13, 141, 145, 0.15);
  border: 1px solid rgba(13, 141, 145, 0.35);
  color: var(--teal);
  border-radius: 6px;
  padding: 6px 9px;
  font-size: 13px;
  font-weight: bold;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
  line-height: 1;
}
.btn-row-scale:hover {
  background: var(--teal);
  color: #fff;
  transform: scale(1.08);
}


/* ═══════════════════════════════════════════════════════════════════════════
   BARN & PEN CRUD MANAGEMENT STYLES
   ═══════════════════════════════════════════════════════════════════════════ */
.add-barn-tab {
  border: 1px dashed rgba(13, 141, 145, 0.5) !important;
  color: var(--teal) !important;
  background: rgba(13, 141, 145, 0.08) !important;
}
.add-barn-tab:hover {
  background: var(--teal) !important;
  color: #fff !important;
}
.guide-tab {
  border: 1px solid var(--line) !important;
  color: var(--muted) !important;
  background: var(--bg) !important;
  font-size: 12px !important;
}
.guide-tab:hover {
  border-color: var(--muted) !important;
  color: var(--ink) !important;
}
.btn.ghost-light {
  background: rgba(255, 255, 255, 0.15) !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  color: #fff !important;
  font-weight: 600 !important;
}
.btn.ghost-light:hover {
  background: #fff !important;
  color: #075e63 !important;
}
.pen-edit-btn {
  padding: 4px 8px !important;
  font-size: 11px !important;
}
.auto-gen-box {
  background: var(--bg);
  border: 1px dashed var(--line);
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 10px;
}
.empty-pen-box {
  grid-column: 1 / -1;
  text-align: center;
  padding: 30px;
  background: var(--bg);
  border: 1px dashed var(--line);
  border-radius: 12px;
  color: var(--muted);
}


/* ═══════════════════════════════════════════════════════════════════════════
   CLICKABLE COLLECTIBLES, CONSOLIDATED SETTLEMENT & COLLAPSIBLE SALES
   ═══════════════════════════════════════════════════════════════════════════ */
.clickable-cust-head {
  cursor: pointer;
  transition: all 0.15s ease;
  user-select: none;
}
.clickable-cust-head:hover {
  background: rgba(13, 141, 145, 0.08);
}
.sb-head-right {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sb-bal-badge {
  font-size: 14px;
  font-weight: 700;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.12);
  padding: 3px 10px;
  border-radius: 12px;
  border: 1px solid rgba(245, 158, 11, 0.3);
}
.pay-chip-btn {
  background: #0d8d91;
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(13, 141, 145, 0.3);
  transition: transform 0.15s ease;
}
.clickable-cust-head:hover .pay-chip-btn {
  transform: scale(1.05);
  background: #075e63;
}
.tap-settle-hint {
  color: #0db8ae;
  font-weight: 600;
  font-size: 11px;
}

/* Collapsible sales tray */
.sb-expand-tray {
  padding: 8px 12px;
  background: rgba(0, 0, 0, 0.02);
  border-top: 1px dashed var(--line);
  text-align: center;
}
.sb-toggle-btn {
  width: 100%;
  font-weight: 600;
  font-size: 12px;
  color: var(--teal) !important;
  border: 1px solid rgba(13, 141, 145, 0.25) !important;
  border-radius: 8px;
}
.sb-toggle-btn:hover {
  background: rgba(13, 141, 145, 0.08) !important;
}

/* Consolidated Account Payment Modal */
.cust-consolidated-pay {
  max-width: 600px !important;
  width: 100%;
}
.cust-balance-hero {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
  background: var(--bg);
  padding: 14px;
  border-radius: 10px;
  border: 1px solid var(--line);
  margin-top: 10px;
}
.cb-stat small {
  display: block;
  font-size: 11px;
  color: var(--muted);
}
.cb-stat b {
  font-size: 15px;
  color: var(--ink);
}
.cb-stat.total {
  border-left: 2px solid #f59e0b;
  padding-left: 8px;
}
.cb-total-num {
  font-size: 17px !important;
  color: #f59e0b !important;
  font-weight: 800 !important;
}

.cust-sales-scroll {
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 6px;
}
.cust-sales-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}
.cust-sales-table th {
  text-align: left;
  padding: 8px 10px;
  background: var(--bg);
  color: var(--muted);
  font-size: 11px;
  position: sticky;
  top: 0;
  border-bottom: 1px solid var(--line);
}
.cust-sales-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}

/* 58mm Statement Receipt styling */
.rc-meta-block {
  font-size: 12px;
  margin: 8px 0;
}
.rc-sec-title {
  font-weight: 700;
  font-size: 11.5px;
  margin: 6px 0;
  text-transform: uppercase;
}
.rc-sub-line {
  font-size: 10.5px;
  color: #666;
  margin-top: 1px;
}
.rc-trow.highlight {
  color: #059669;
  font-weight: 700;
}
.rc-trow.grand {
  font-size: 14px;
  font-weight: 800;
  color: #d97706;
  border-top: 1px dashed #999;
  padding-top: 4px;
  margin-top: 4px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SEARCHABLE AUTO-SUGGEST DROPDOWNS FOR MOVEMENT WIZARD
   ═══════════════════════════════════════════════════════════════════════════ */
.suggest-field {
  position: relative;
}
.suggest-input-wrap {
  position: relative;
  width: 100%;
}
.suggest-input {
  width: 100%;
  padding-right: 32px !important;
  font-size: 13.5px;
}
.suggest-clear-btn {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: var(--muted);
  font-size: 14px;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
  z-index: 5;
}
.suggest-clear-btn:hover {
  color: var(--ink);
}

.suggest-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
  max-height: 260px;
  overflow-y: auto;
  z-index: 99999;
  padding: 6px;
  animation: fadeIn 0.12s ease-out;
}
.suggest-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.12s ease;
  user-select: none;
}
.suggest-item:hover, .suggest-item:active {
  background: rgba(13, 141, 145, 0.08);
}
.suggest-item.occupied:hover {
  background: rgba(13, 141, 145, 0.1);
}
.suggest-item.resting:hover {
  background: rgba(2, 132, 199, 0.1);
}
.suggest-item.dirty:hover {
  background: rgba(217, 119, 6, 0.1);
}

.suggest-ico {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 15px;
  flex-shrink: 0;
}
.suggest-ico.sow { background: #0d8d91; color: #fff; }
.suggest-ico.boar { background: #0369a1; color: #fff; }
.suggest-ico.batch { background: #059669; color: #fff; }
.suggest-ico.barn { background: rgba(13, 141, 145, 0.12); color: var(--teal); }
.suggest-ico.reason { background: rgba(0, 0, 0, 0.06); font-size: 14px; }
.suggest-ico.pen.ready { background: #10b981; color: #fff; font-size: 11px; }
.suggest-ico.pen.resting { background: #0284c7; color: #fff; font-size: 11px; }
.suggest-ico.pen.dirty { background: #d97706; color: #fff; font-size: 11px; }
.suggest-ico.pen.occupied { background: #0d8d91; color: #fff; font-size: 11px; }

.suggest-meta {
  flex: 1;
  min-width: 0;
}
.suggest-meta b {
  display: block;
  font-size: 13.5px;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.suggest-meta small {
  display: block;
  font-size: 11.5px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 1px;
}
.suggest-loc-tag {
  color: var(--teal);
  font-weight: 600;
}
.suggest-badge {
  background: rgba(0,0,0,0.06);
  padding: 1px 6px;
  border-radius: 8px;
  font-weight: 600;
}
.suggest-empty {
  padding: 16px;
  text-align: center;
  color: var(--muted);
  font-size: 12.5px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   FARROWING STILLBORN, MUMMIFIED & LIVE TOTALS WIDGET
   ═══════════════════════════════════════════════════════════════════════════ */
.farrow-live-totals {
  background: var(--bg);
  border: 1px solid var(--line);
  border-left: 4px solid var(--teal);
  border-radius: 8px;
  padding: 10px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 12px 0 14px;
  font-size: 12.5px;
  color: var(--ink);
}
.farrow-live-totals span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.farrow-live-totals b {
  color: var(--ink);
  font-weight: 700;
  font-size: 13.5px;
}
#totStill { color: #f59e0b; }
#totMum { color: #d97706; }
#totLive { color: #059669; }
#totAll { color: var(--teal2); font-size: 14.5px; }


/* ═══════════════════════════════════════════════════════════════════════════
   MORTALITY LOSS & FINANCIAL TRACKING WIDGETS
   ═══════════════════════════════════════════════════════════════════════════ */
.mort-headcount-bar {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  color: var(--ink);
  margin-top: 10px;
}
.mort-financial-box {
  background: rgba(239, 68, 68, 0.06);
  border: 1px dashed rgba(239, 68, 68, 0.35);
  border-radius: 10px;
  padding: 14px 16px;
  margin-top: 4px;
}
.mort-loss-preview {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed rgba(239, 68, 68, 0.25);
  font-size: 13px;
  color: var(--ink);
}


/* Ensure Mortality modal is always top-level above all drilldowns and hubs */
#mortalityModal.due-modal-bg, .due-modal-bg#mortalityModal {
  z-index: 999999 !important;
  position: fixed !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(1, 11, 14, 0.85) !important;
  backdrop-filter: blur(8px) !important;
}
#mortalityModal .due-modal {
  position: relative !important;
  z-index: 1000000 !important;
  width: min(600px, 100%) !important;
  max-height: 92vh !important;
  overflow-y: auto !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   BOAR INTERACTIVE PROFILE MODAL STYLES
   ═══════════════════════════════════════════════════════════════════════════ */
#boarDetailModal.due-modal-bg {
  z-index: 999999 !important;
  position: fixed !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(1, 11, 14, 0.85) !important;
  backdrop-filter: blur(8px) !important;
}
.boar-profile-modal {
  max-width: 760px !important;
  width: min(760px, 95vw) !important;
  background: var(--surface) !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  padding: 24px !important;
  color: var(--ink) !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5) !important;
}
.boar-metric-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin: 16px 0;
}
@media (min-width: 640px) {
  .boar-metric-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.boar-stat-card {
  background: rgba(23, 202, 190, 0.06);
  border: 1px solid rgba(23, 202, 190, 0.22);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.boar-stat-card small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.boar-stat-card b {
  color: var(--teal2);
  font-size: 15px;
  line-height: 1.2;
}
.boar-stat-card span {
  color: var(--ink);
  font-size: 11.5px;
  opacity: 0.85;
}
.boar-section {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 14px;
}
.boar-sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.boar-sec-head h3 {
  margin: 0;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
}
.boar-lineage-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.lineage-card {
  padding: 12px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: rgba(12, 51, 55, 0.35);
}
.lineage-card.sire {
  border-left: 3px solid #3b82f6;
}
.lineage-card.dam {
  border-left: 3px solid #ec4899;
}
.lineage-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px dashed var(--line);
}
.lineage-head b {
  font-size: 11.5px;
  color: var(--muted);
}
.lineage-head span {
  font-weight: 700;
  font-size: 13.5px;
  color: var(--ink);
}
.lineage-sub-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.lineage-sub-grid div {
  background: rgba(0, 0, 0, 0.18);
  padding: 6px 8px;
  border-radius: 6px;
}
.lineage-sub-grid small {
  display: block;
  font-size: 10px;
  color: var(--muted);
}
.lineage-sub-grid b {
  font-size: 12px;
  color: var(--ink);
}
.boar-table-scroll {
  max-height: 180px;
  overflow-y: auto;
  border-radius: 8px;
}
.boar-drill-row {
  cursor: pointer !important;
  transition: background 0.15s ease, transform 0.1s ease;
}
.boar-drill-row:hover {
  background: rgba(23, 202, 190, 0.08) !important;
}
.boar-drill-row:active {
  transform: scale(0.99);
}


/* ═══════════════════════════════════════════════════════════════════════════
   INTERACTIVE PIGLET BATCH DETAILS MODAL STYLES & ANIMATIONS
   ═══════════════════════════════════════════════════════════════════════════ */
#fcHealthModal.due-modal-bg {
  z-index: 999999 !important;
  position: fixed !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(1, 11, 14, 0.85) !important;
  backdrop-filter: blur(8px) !important;
}
.fc-health-modal {
  max-width: 780px !important;
  width: min(780px, 95vw) !important;
  background: var(--surface) !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  padding: 24px !important;
  color: var(--ink) !important;
  max-height: 92vh !important;
  overflow-y: auto !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5) !important;
}

/* Pulsing Care Alerts */
.care-pulse-alert {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 9999px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  border: 0;
  transition: all 0.2s ease;
  animation: carePulse 1.6s infinite ease-in-out;
  margin: 3px;
}
.care-pulse-alert.iron {
  background: #ef4444;
  color: #fff;
  box-shadow: 0 0 12px rgba(239, 68, 68, 0.4);
}
.care-pulse-alert.castr {
  background: #f59e0b;
  color: #fff;
  box-shadow: 0 0 12px rgba(245, 158, 11, 0.4);
}
.care-pulse-alert.wean {
  background: #8b5cf6;
  color: #fff;
  box-shadow: 0 0 12px rgba(139, 92, 246, 0.4);
}
.care-pulse-alert.vacc {
  background: #0ea5e9;
  color: #fff;
  box-shadow: 0 0 12px rgba(14, 165, 233, 0.4);
}
.care-pulse-alert.med {
  background: #10b981;
  color: #fff;
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.4);
}
@keyframes carePulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.035); }
  100% { transform: scale(1); }
}

/* Interactive Milestone Timeline */
.milestone-timeline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  overflow-x: auto;
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid var(--line);
  border-radius: 12px;
  margin: 14px 0;
}
.milestone-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 80px;
  flex: 1;
  position: relative;
}
.milestone-dot {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--line);
  color: var(--muted);
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 6px;
  border: 2px solid transparent;
  transition: all 0.2s ease;
}
.milestone-step.done .milestone-dot {
  background: var(--teal2);
  color: #000;
  box-shadow: 0 0 10px rgba(23, 202, 190, 0.4);
}
.milestone-step.active .milestone-dot {
  background: #f59e0b;
  color: #fff;
  border-color: #fff;
  animation: carePulse 1.4s infinite;
}
.milestone-step small {
  font-size: 10px;
  color: var(--muted);
  font-weight: 600;
}
.milestone-step b {
  font-size: 11px;
  color: var(--ink);
}

/* Breeder Release & Fattener Market Boxes */
.breeder-release-box {
  background: linear-gradient(135deg, rgba(23, 202, 190, 0.08), rgba(16, 185, 129, 0.05));
  border: 1px solid rgba(23, 202, 190, 0.25);
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 14px;
}
.fattener-market-box {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.08), rgba(99, 102, 241, 0.05));
  border: 1px solid rgba(59, 130, 246, 0.25);
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 14px;
}
.progress-bar-wrap {
  width: 100%;
  height: 10px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 9999px;
  overflow: hidden;
  margin: 8px 0;
  border: 1px solid var(--line);
}
.progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #17cabe, #10b981);
  border-radius: 9999px;
  transition: width 0.4s ease;
}
.progress-bar-fill.gold {
  background: linear-gradient(90deg, #f59e0b, #eab308);
}
.progress-bar-fill.blue {
  background: linear-gradient(90deg, #3b82f6, #06b6d4);
}

/* Allocation Chips */
.alloc-badge-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0;
}
.alloc-pill {
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.03);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.alloc-pill b {
  font-size: 13px;
  color: var(--teal2);
}
.alloc-pill.breeder { border-color: rgba(23, 202, 190, 0.35); }
.alloc-pill.fattener { border-color: rgba(59, 130, 246, 0.35); }
.alloc-pill.farm { border-color: rgba(245, 158, 11, 0.35); }
.alloc-pill.reserved { border-color: rgba(139, 92, 246, 0.35); }
.alloc-pill.mortality { border-color: rgba(239, 68, 68, 0.35); color: #fca5a5; }

/* Housing Facility Card */
.housing-facility-box {
  background: rgba(245, 158, 11, 0.05);
  border: 1px solid rgba(245, 158, 11, 0.25);
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 14px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   MULTI-SEMEN BREED POS CART STYLES
   ═══════════════════════════════════════════════════════════════════════════ */
.line-subtotal-box {
  padding: 10px 12px;
  background: rgba(23, 202, 190, 0.08);
  border: 1px solid rgba(23, 202, 190, 0.25);
  border-radius: 8px;
  font-weight: 700;
  color: var(--teal2);
  font-size: 14px;
  text-align: right;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.semen-line-card {
  background: rgba(12, 51, 55, 0.35);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 10px;
}
.semen-line-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.semen-line-head b {
  color: var(--teal2);
  font-size: 13px;
}
.semen-line-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1.2fr;
  gap: 10px;
}
@media (max-width: 600px) {
  .semen-line-grid {
    grid-template-columns: 1fr;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   SEMEN LOT TYPEAHEAD AUTO-SUGGEST STYLES
   ═══════════════════════════════════════════════════════════════════════════ */
.semen-sug-item {
  width: 100%;
  text-align: left;
  padding: 8px 12px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
  display: block;
  transition: background 0.15s ease;
}
.semen-sug-item:hover, .semen-sug-item:focus {
  background: rgba(23, 202, 190, 0.12);
}
.semen-sug-item:last-child {
  border-bottom: 0;
}


/* ═══════════════════════════════════════════════════════════════════════════
   INTERACTIVE SOW DRILL-DOWN & SUMMARY RIBBON STYLES
   ═══════════════════════════════════════════════════════════════════════════ */
.sow-summary-ribbon {
  margin: 10px 0 14px 0;
  padding: 4px 0;
  overflow-x: auto;
}
.ribbon-scroll {
  display: flex;
  gap: 8px;
  min-width: max-content;
  padding: 2px 4px;
}
.sow-sum-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line);
  border-radius: 9999px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.sow-sum-chip:hover {
  background: rgba(23, 202, 190, 0.12);
  border-color: var(--teal2);
}
.sow-sum-chip.active {
  background: var(--teal2) !important;
  color: #000 !important;
  border-color: var(--teal2) !important;
  font-weight: 700;
  box-shadow: 0 0 14px rgba(23, 202, 190, 0.45);
}
.sow-sum-chip.active .chip-count {
  background: #000 !important;
  color: var(--teal2) !important;
}
.chip-count {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.12);
  font-size: 11px;
  font-weight: 700;
}

/* Blinking Alert Pills */
.blinking-alert-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #ef4444;
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  margin: 8px 0;
  animation: carePulse 1.2s infinite ease-in-out;
  box-shadow: 0 0 14px rgba(239, 68, 68, 0.5);
}
.monitoring-alert-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid #10b981;
  color: #34d399;
  font-weight: 600;
  font-size: 11.5px;
  margin-top: 6px;
}

/* Sow Lineage Sub-Box */
.sow-lineage-subcard {
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
  margin: 10px 0;
}
.sow-lineage-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 6px;
}
@media (max-width: 600px) {
  .sow-lineage-grid {
    grid-template-columns: 1fr;
  }
}
.sow-lineage-col {
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.sow-lineage-col.sire { border-left: 3px solid #3b82f6; }
.sow-lineage-col.dam { border-left: 3px solid #ec4899; }
.sow-lineage-col b { font-size: 12px; color: var(--ink); }
.sow-lineage-col small { display: block; font-size: 10.5px; color: var(--muted); }

/* Quick Action Button Group */
.sow-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.sow-quick-btn {
  padding: 6px 12px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  border-radius: 8px !important;
}
.sow-quick-btn.vax {
  background: #0284c7 !important;
  color: #fff !important;
}
.sow-quick-btn.treat {
  background: #059669 !important;
  color: #fff !important;
}
.sow-quick-btn.move {
  background: #d97706 !important;
  color: #fff !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   ANIMATED DNA & INTERACTIVE PEDIGREE TREE MODAL STYLES
   ═══════════════════════════════════════════════════════════════════════════ */
#pedigreeTreeModal.due-modal-bg {
  z-index: 999999 !important;
  position: fixed !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(1, 11, 14, 0.88) !important;
  backdrop-filter: blur(10px) !important;
}
.pedigree-tree-modal {
  max-width: 980px !important;
  width: min(980px, 96vw) !important;
  background: var(--surface) !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  padding: 24px !important;
  color: var(--ink) !important;
  max-height: 94vh !important;
  overflow-y: auto !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6) !important;
}

/* DNA Helix Animation */
.dna-helix-banner {
  background: linear-gradient(135deg, rgba(23, 202, 190, 0.12), rgba(59, 130, 246, 0.08));
  border: 1px solid rgba(23, 202, 190, 0.3);
  border-radius: 12px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 12px 0;
}
.dna-helix-anim {
  display: flex;
  gap: 4px;
  align-items: center;
  height: 32px;
}
.dna-node {
  width: 6px;
  height: 24px;
  border-radius: 3px;
  background: linear-gradient(180deg, #17cabe, #3b82f6);
  animation: dnaHelix 1.2s infinite ease-in-out;
}
.dna-node.d1 { animation-delay: 0s; }
.dna-node.d2 { animation-delay: 0.15s; }
.dna-node.d3 { animation-delay: 0.3s; }
.dna-node.d4 { animation-delay: 0.45s; }
.dna-node.d5 { animation-delay: 0.6s; }
.dna-node.d6 { animation-delay: 0.75s; }
.dna-node.d7 { animation-delay: 0.9s; }
.dna-node.d8 { animation-delay: 1.05s; }

@keyframes dnaHelix {
  0%, 100% { transform: scaleY(0.3) translateY(-4px); background: #17cabe; }
  50% { transform: scaleY(1.2) translateY(4px); background: #ec4899; }
}

.dna-banner-copy b {
  display: block;
  font-size: 13px;
  color: var(--teal2);
}
.dna-banner-copy span {
  font-size: 11.5px;
  color: var(--ink);
  opacity: 0.9;
}

/* Tabs */
.ped-view-tabs {
  display: flex;
  gap: 8px;
  margin: 10px 0 14px 0;
}
.ped-tab-btn {
  padding: 8px 16px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line);
  color: var(--ink);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.ped-tab-btn.active {
  background: var(--teal2) !important;
  color: #000 !important;
  border-color: var(--teal2) !important;
  font-weight: 700;
}

/* Tree Layout */
.tree-hierarchy-layout {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr 1.3fr;
  gap: 14px;
  padding: 14px 10px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow-x: auto;
}
@media (max-width: 768px) {
  .tree-hierarchy-layout {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.tree-col {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  gap: 10px;
}
.tree-card {
  background: rgba(12, 51, 55, 0.5);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.tree-card:hover {
  transform: translateY(-2px);
  border-color: var(--teal2);
  box-shadow: 0 6px 20px rgba(23, 202, 190, 0.25);
}
.tree-card.active {
  border-color: var(--teal2) !important;
  background: rgba(23, 202, 190, 0.15) !important;
  box-shadow: 0 0 16px rgba(23, 202, 190, 0.4) !important;
}
.tree-card.sire-card { border-left: 3px solid #3b82f6; }
.tree-card.dam-card { border-left: 3px solid #ec4899; }
.tc-badge {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.tc-badge.sire { color: #60a5fa; }
.tc-badge.dam { color: #f472b6; }
.tc-name {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
}
.tc-sub {
  font-size: 11px;
  color: var(--muted);
}
.tc-gen {
  font-size: 10.5px;
  color: var(--teal2);
  font-weight: 600;
  margin-top: 4px;
}

/* Detail Drawer */
.ped-node-drawer {
  margin-top: 14px;
  background: rgba(12, 51, 55, 0.45);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 16px;
  transition: all 0.3s ease;
}
.drawer-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px dashed var(--line);
}
.dna-flow-card {
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid var(--line);
  border-radius: 10px;
  margin-bottom: 10px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ANIMATED DNA CONNECTORS — the lineage cards are now a real, tappable graph.
   SVG coordinates are measured after layout so desktop and phone layouts both
   receive the correct curved connection paths. ═══════════════════════════ */
.ped-tree-stage {
  position: relative;
  width: 100%;
  isolation: isolate;
}
.ped-tree-connectors {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.ped-tree-connectors .ped-dna-edge {
  opacity: .7;
  transition: opacity .25s ease, filter .25s ease;
  pointer-events: all;
  cursor: pointer;
}
.ped-tree-connectors .ped-dna-edge:hover,
.ped-tree-connectors .ped-dna-edge.is-selected {
  opacity: 1;
  filter: drop-shadow(0 0 5px rgba(23, 202, 190, .72));
}
.ped-dna-hit {
  fill: none;
  stroke: transparent;
  stroke-width: 18;
  stroke-linecap: round;
  pointer-events: stroke;
}
.ped-dna-glow {
  fill: none;
  stroke-width: 8;
  stroke-linecap: round;
  opacity: .22;
  filter: url(#pedDnaGlow);
  pointer-events: none;
}
.ped-dna-strand {
  fill: none;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-dasharray: 5 8;
  animation: pedDnaDash 2.1s linear infinite;
  pointer-events: none;
}
.ped-dna-strand.strand-b {
  stroke-dashoffset: 6;
  animation-duration: 2.7s;
  animation-direction: reverse;
}
.edge-sire .ped-dna-glow,
.edge-sire .ped-dna-strand { stroke: url(#pedDnaSireGradient); }
.edge-dam .ped-dna-glow,
.edge-dam .ped-dna-strand { stroke: url(#pedDnaDamGradient); }
.ped-dna-rung {
  stroke: rgba(220, 255, 251, .78);
  stroke-width: 1.25;
  stroke-linecap: round;
  opacity: .8;
  animation: pedDnaRung 1.8s ease-in-out infinite;
  pointer-events: none;
}
.ped-dna-pulse {
  fill: #eaffff;
  opacity: .9;
  filter: drop-shadow(0 0 5px #17cabe);
  pointer-events: none;
}
.tree-hierarchy-layout {
  position: relative;
  z-index: 1;
  overflow: visible;
}
.ped-tree-hint {
  position: relative;
  z-index: 2;
  margin: 8px 4px 0;
  color: var(--muted);
  font-size: 10.5px;
  text-align: center;
}
@keyframes pedDnaDash {
  to { stroke-dashoffset: -26; }
}
@keyframes pedDnaRung {
  0%, 100% { opacity: .3; }
  50% { opacity: 1; }
}
@media (max-width: 768px) {
  .ped-tree-stage { overflow: hidden; }
  .ped-tree-connectors { min-height: 100%; }
  .tree-hierarchy-layout { overflow: visible; }
}
@media (prefers-reduced-motion: reduce) {
  .ped-dna-strand, .ped-dna-rung, .dna-node { animation: none !important; }
  .ped-dna-pulse { display: none; }
}

/* Standard Scannable Verification QR Code */
.cert-qr {
  position: relative;
  width: 108px !important;
  height: 108px !important;
  border: 3px solid #10282c !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 3px !important;
  border-radius: 6px !important;
}
.cert-qr svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
@media print {
  .cert-qr {
    width: 95px !important;
    height: 95px !important;
    border: 2.5px solid #10282c !important;
    background: #fff !important;
    padding: 2px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SMART LIVESTOCK IDENTIFICATION — TAG REGISTRY & AUDIT LOG ENHANCEMENTS
   ═══════════════════════════════════════════════════════════════════════════ */
.rfid-registry-section {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px 22px;
  box-shadow: var(--shadow);
  margin-top: 20px;
}
.rfid-reg-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.rfid-reg-head h3 {
  margin: 0;
  font-size: 16px;
  color: var(--ink);
}
.rfid-table-controls {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.rfid-table-controls input {
  flex: 1;
  min-width: 220px;
}
.rfid-table-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
.pair-preview-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(13, 141, 145, 0.08);
  border: 1px solid rgba(13, 141, 145, 0.25);
  border-radius: 10px;
  padding: 10px 14px;
  margin-top: 10px;
  animation: fadeIn 0.12s ease-out;
}
.tag-code-btn {
  background: rgba(13, 141, 145, 0.12);
  color: var(--teal2);
  border: 1px solid rgba(13, 141, 145, 0.3);
  padding: 3px 8px;
  border-radius: 6px;
  font-family: monospace;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.tag-code-btn:hover {
  background: rgba(13, 141, 145, 0.22);
}

/* ═══════════════════════════════════════════════════════════════════════════
   ENHANCED SOW DOSSIER & PROFILE MODAL
   ═══════════════════════════════════════════════════════════════════════════ */
.sow-dossier-modal {
  max-width: 720px !important;
  width: 100% !important;
  max-height: 92vh !important;
  overflow-y: auto !important;
}
.sow-vitals-4grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 14px 0;
}
@media(max-width: 700px) {
  .sow-vitals-4grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.sow-vital-box {
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(25, 74, 77, 0.35);
  border: 1px solid var(--line);
}
.sow-vital-box small {
  display: block;
  color: var(--muted);
  font-size: 11px;
  margin-bottom: 2px;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.sow-vital-box b {
  display: block;
  font-size: 14px;
  color: var(--ink);
}
.sow-section-card {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(12, 47, 51, 0.45);
  border: 1px solid rgba(88, 218, 207, 0.18);
  margin: 14px 0;
}
.sow-section-card h4 {
  margin: 0 0 8px 0;
  font-size: 13.5px;
  color: var(--teal2);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sow-farrow-details {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 4px 0;
}
.sow-progress-bar-wrap {
  height: 8px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
  margin: 8px 0 4px 0;
}
.sow-progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #0d8d91, #10b981);
  border-radius: 999px;
  transition: width 0.3s ease;
}
.sow-progress-bar-fill.overdue {
  background: linear-gradient(90deg, #f59e0b, #ef4444);
}

/* Low light camera prompt */
.low-light-prompt {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(245, 158, 11, 0.92);
  color: #1a1a1a;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  cursor: pointer;
  z-index: 50;
  animation: pulseTorchPrompt 1.4s infinite alternate;
  white-space: nowrap;
}
/* ═══════════════════════════════════════════════════════════════════════════
   PRODUCTION & BREEDER OFFTAKE FORECAST HUB
   ═══════════════════════════════════════════════════════════════════════════ */
.forecast-header-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 20px 24px;
  box-shadow: var(--shadow);
  margin-bottom: 20px;
}
.forecast-header-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}
.forecast-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 18px;
}
@media(max-width: 900px) {
  .forecast-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media(max-width: 500px) {
  .forecast-kpi-grid {
    grid-template-columns: 1fr;
  }
}
.forecast-kpi-box {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 16px;
  position: relative;
  overflow: hidden;
}
.forecast-kpi-box.farrow { border-left: 4px solid #ea580c; }
.forecast-kpi-box.wean { border-left: 4px solid var(--teal); }
.forecast-kpi-box.breeder { border-left: 4px solid #f59e0b; }
.forecast-kpi-box.res { border-left: 4px solid #10b981; }

.forecast-kpi-box small {
  display: block;
  font-size: 11px;
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.forecast-kpi-box b {
  display: block;
  font-size: 22px;
  color: var(--ink);
  letter-spacing: -0.5px;
}
.forecast-kpi-box span {
  font-size: 11.5px;
  color: var(--muted);
  display: block;
  margin-top: 2px;
}

.forecast-filter-panel {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px 20px;
  box-shadow: var(--shadow);
  margin-bottom: 20px;
}
.forecast-filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 6px 0;
}
.forecast-filter-row:not(:last-child) {
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px;
  margin-bottom: 10px;
}
.forecast-filter-title {
  font-size: 11.5px;
  font-weight: 800;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  min-width: 100px;
}
.forecast-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
.forecast-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: 16px;
  margin-top: 14px;
}
@media(max-width: 700px) {
  .forecast-card-grid {
    grid-template-columns: 1fr;
  }
}
.forecast-item-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  transition: transform 0.15s ease, border-color 0.15s ease;
}
.forecast-item-card:hover {
  transform: translateY(-2px);
  border-color: var(--teal);
}
.forecast-item-card.breeder { border-left: 4px solid #f59e0b; }
.forecast-item-card.farrowing { border-left: 4px solid #ea580c; }
.forecast-item-card.weaning { border-left: 4px solid var(--teal); }
.forecast-item-card.fattener { border-left: 4px solid #10b981; }

.forecast-item-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
}
.forecast-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}
.forecast-badge.breeder { background: rgba(245, 158, 11, 0.15); color: #b45309; }
.forecast-badge.farrowing { background: rgba(234, 88, 12, 0.15); color: #c2410c; }
.forecast-badge.weaning { background: rgba(13, 141, 145, 0.15); color: var(--teal2); }
.forecast-badge.fattener { background: rgba(16, 185, 129, 0.15); color: #047857; }

.forecast-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 10px 0;
  padding: 10px 12px;
  background: var(--bg);
  border-radius: 10px;
  font-size: 12.5px;
}
.forecast-meta-grid div small {
  display: block;
  color: var(--muted);
  font-size: 10.5px;
  text-transform: uppercase;
  font-weight: 700;
}
.forecast-meta-grid div b {
  color: var(--ink);
}

.forecast-customer-box {
  background: rgba(13, 141, 145, 0.06);
  border: 1px solid rgba(13, 141, 145, 0.2);
  border-radius: 10px;
  padding: 10px 12px;
  margin: 10px 0;
}
.forecast-customer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  margin-bottom: 6px;
}
.forecast-contact-tray {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 8px;
}
.forecast-actions-row {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

/* ═══════════════════════════════════════════════════════════════════════════
   SEMEN RESELLER CONSIGNMENT & WHOLESALE HUB
   ═══════════════════════════════════════════════════════════════════════════ */
.reseller-hub-wrap {
  width: min(880px, 100%);
  max-height: 94vh;
  overflow-y: auto;
}
.reseller-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 14px 0 18px 0;
}
@media(max-width: 800px) {
  .reseller-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.reseller-kpi-box {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px 14px;
}
.reseller-kpi-box small {
  display: block;
  font-size: 10.5px;
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
}
.reseller-kpi-box b {
  display: block;
  font-size: 18px;
  color: var(--ink);
  margin-top: 2px;
}
.reseller-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 14px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.reseller-card-header {
  padding: 14px 18px;
  background: rgba(13, 141, 145, 0.05);
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  user-select: none;
}
.reseller-card-header:hover {
  background: rgba(13, 141, 145, 0.1);
}
.reseller-card-body {
  padding: 14px 18px;
}
.reseller-card-body.collapsed {
  display: none;
}
.reseller-tx-row {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 10px;
}
.reseller-tx-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
}
.blinking-tag-return {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border-radius: 14px;
  background: #f59e0b;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  animation: returnBlinkPulse 1.2s infinite alternate;
  box-shadow: 0 0 10px rgba(245, 158, 11, 0.5);
}
@keyframes returnBlinkPulse {
  0% { opacity: 0.85; transform: scale(0.97); }
  100% { opacity: 1; transform: scale(1.03); box-shadow: 0 0 14px rgba(245, 158, 11, 0.8); }
}
.reseller-line-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-top: 1px dashed var(--line);
  font-size: 12.5px;
}





/* ═══════════════════════════════════════════════════════════════════════════
   Cloud Sync & Data Transfer Center CSS
   ═══════════════════════════════════════════════════════════════════════════ */
.dash-sync-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  background: linear-gradient(135deg, rgba(13, 141, 145, 0.18), rgba(7, 94, 99, 0.08));
  border: 1.5px solid rgba(19, 185, 173, 0.35);
  border-radius: 14px;
  padding: 12px 18px;
  margin-bottom: 18px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.14);
}
.dash-sync-info {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sync-cloud-icon {
  font-size: 22px;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  background: rgba(19, 185, 173, 0.2);
  border-radius: 10px;
}
.dash-sync-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.topbar-sync-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(19, 185, 173, 0.18);
  border: 1px solid rgba(19, 185, 173, 0.4);
  color: var(--ink);
  font-size: 11.5px;
  font-weight: 700;
  padding: 6px 11px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.topbar-sync-btn:hover {
  background: rgba(19, 185, 173, 0.32);
  border-color: var(--teal);
}
.topbar-sync-btn.spinning .sync-icon,
.dash-sync-btn.spinning {
  display: inline-block;
  animation: cloudSpinAnim 1s linear infinite;
}
@keyframes cloudSpinAnim {
  100% { transform: rotate(360deg); }
}
/* ═══════════════════════════════════════════════════════════════════════════
   Live Cloud Auto-Sync Indicator & Topbar Responsive Optimization
   ═══════════════════════════════════════════════════════════════════════════ */

/* Prevent horizontal overflow across the entire app */
html, body, .shell, .main {
  max-width: 100vw;
  overflow-x: hidden;
}

/* Streamlined topbar layout */
.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: nowrap;
  max-width: 100%;
}

.top-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  flex-shrink: 0;
}

/* Subtle, Elegant Live Auto-Sync Status Chip */
.live-sync-indicator {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(19, 185, 173, 0.12);
  border: 1px solid rgba(19, 185, 173, 0.3);
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
  padding: 5px 9px;
  border-radius: 999px;
  cursor: pointer;
  user-select: none;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.live-sync-indicator:hover {
  background: rgba(19, 185, 173, 0.22);
  border-color: var(--teal);
}

.live-sync-indicator .sync-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #10b981; /* Green live dot */
  display: inline-block;
  box-shadow: 0 0 6px #10b981;
}

.live-sync-indicator .sync-icon {
  font-size: 12px;
  line-height: 1;
}

.live-sync-indicator.syncing {
  border-color: #38bdf8;
  background: rgba(56, 189, 248, 0.15);
}

.live-sync-indicator.syncing .sync-dot {
  background: #38bdf8;
  box-shadow: 0 0 8px #38bdf8;
  animation: pulseDot 0.8s infinite alternate;
}

.live-sync-indicator.syncing .sync-icon {
  display: inline-block;
  animation: cloudSpinAnim 0.85s linear infinite;
}

.live-sync-indicator.offline {
  border-color: rgba(245, 158, 11, 0.4);
  background: rgba(245, 158, 11, 0.12);
}

.live-sync-indicator.offline .sync-dot {
  background: #f59e0b;
  box-shadow: 0 0 6px #f59e0b;
}

.live-sync-indicator.pending {
  border-color: rgba(245, 158, 11, 0.55);
  background: rgba(245, 158, 11, 0.14);
}

.live-sync-indicator.pending .sync-dot {
  background: #f59e0b;
  box-shadow: 0 0 6px #f59e0b;
}

.live-sync-indicator.error {
  border-color: rgba(239, 68, 68, 0.4);
  background: rgba(239, 68, 68, 0.12);
}

.live-sync-indicator.error .sync-dot {
  background: #ef4444;
  box-shadow: 0 0 6px #ef4444;
}

@keyframes cloudSpinAnim {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes pulseDot {
  0% { transform: scale(0.85); opacity: 0.6; }
  100% { transform: scale(1.25); opacity: 1; }
}

/* Mobile Topbar & Header Optimization */
@media (max-width: 700px) {
  .topbar {
    gap: 6px;
    padding-bottom: 12px;
    margin-bottom: 16px;
  }

  .topbar h1 {
    font-size: 19px;
  }

  .top-actions {
    gap: 4px;
  }

  .live-sync-indicator {
    padding: 4px 7px;
    font-size: 10px;
  }

  .topbar-rfid-btn {
    padding: 4px 7px;
    font-size: 10.5px;
  }

  .icon-btn {
    width: 32px;
    height: 32px;
    font-size: 13px;
  }

  .user span {
    display: none;
  }

  .avatar {
    width: 30px;
    height: 30px;
    font-size: 11px;
  }

  .top-actions .logout-btn {
    width: 32px;
    height: 32px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PREGNANT SOWS PDF / PRINTABLE REPORT STYLES (Space-Optimized)
   ═══════════════════════════════════════════════════════════════════════════ */
.pregnant-report-dialog {
  box-sizing: border-box;
}
.pregnant-report-table th, .pregnant-report-table td {
  vertical-align: middle;
}
@media print {
  @page {
    size: A4 landscape;
    margin: 5mm 6mm;
  }
  html, body {
    background: #fff !important;
    color: #112126 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body * {
    visibility: hidden !important;
  }
  #pregnantReportModal,
  #pregnantReportModal * {
    visibility: visible !important;
  }
  #pregnantReportModal {
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    background: #fff !important;
    color: #112126 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    z-index: 999999 !important;
    display: block !important;
  }
  .pregnant-report-dialog {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    background: #fff !important;
    color: #112126 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .pregnant-report-dialog .no-print {
    display: none !important;
  }
  .pregnant-pdf-doc {
    background: #fff !important;
    color: #112126 !important;
  }
  .panel.table-wrap {
    overflow: visible !important;
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .pregnant-report-table {
    font-size: 8pt !important;
    width: 100% !important;
    border-collapse: collapse !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }
  .pregnant-report-table thead {
    display: table-header-group !important;
  }
  .pregnant-report-table tbody tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .pregnant-report-table th {
    background: #eef4f5 !important;
    color: #112126 !important;
    border: 1px solid #777 !important;
    padding: 3px 4px !important;
    font-size: 7.5pt !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
  }
  .pregnant-report-table td {
    color: #112126 !important;
    border: 1px solid #ccc !important;
    padding: 2.5px 4px !important;
    line-height: 1.15 !important;
  }
  .pregnant-report-table .tag {
    background: #f0f0f0 !important;
    color: #112126 !important;
    border: 1px solid #999 !important;
    padding: 1px 3px !important;
    font-size: 7pt !important;
  }
  .pdf-header {
    border-bottom: 2px solid #087c76 !important;
    padding-bottom: 4px !important;
    margin-bottom: 5px !important;
  }
  .pdf-header h1 {
    font-size: 13pt !important;
    color: #112126 !important;
    margin: 0 !important;
  }
  .pdf-header h3 {
    font-size: 8.5pt !important;
    color: #078b84 !important;
    margin: 1px 0 0 0 !important;
  }
  .pdf-kpi-grid {
    margin-bottom: 5px !important;
    gap: 6px !important;
  }
  .pdf-kpi-grid div {
    border: 1px solid #aaa !important;
    background: #f8fafb !important;
    padding: 3px 6px !important;
  }
  .pdf-kpi-grid b {
    font-size: 10.5pt !important;
    color: #112126 !important;
  }
  .pdf-kpi-grid small {
    font-size: 7pt !important;
  }
  .pdf-footer {
    border-top: 1px solid #777 !important;
    color: #333 !important;
    margin-top: 6px !important;
    padding-top: 3px !important;
    font-size: 7.5pt !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   RESERVATION CERTIFICATE MOBILE SCREEN RESPONSIVE LAYOUT
   ═══════════════════════════════════════════════════════════════════════════ */
@media screen and (max-width: 768px) {
  #reservationDetail {
    padding: 6px 4px !important;
    display: block !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  #reservationDetail .certificate {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 14px 12px 18px !important;
    border-radius: 12px !important;
    margin: 0 auto 24px auto !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
  }
  .certificate .cert-top {
    display: grid !important;
    grid-template-columns: 50px 1fr 28px !important;
    grid-template-areas:
      "logo mid close"
      "actions actions actions" !important;
    gap: 6px 8px !important;
    align-items: center !important;
  }
  .certificate .ct-logo { grid-area: logo !important; }
  .certificate .ct-logo img { width: 48px !important; height: 42px !important; object-fit: contain !important; }
  .certificate .ct-mid { grid-area: mid !important; min-width: 0 !important; }
  .certificate .close-reminder {
    grid-area: close !important;
    position: static !important;
    justify-self: end !important;
    margin: 0 !important;
    width: 28px !important;
    height: 28px !important;
    font-size: 18px !important;
    display: grid !important;
    place-items: center !important;
  }
  .certificate .ct-right {
    grid-area: actions !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    padding-top: 6px !important;
    border-top: 1px dashed #d7e6e4 !important;
    margin-top: 4px !important;
  }
  .certificate .ct-right img { height: 26px !important; width: auto !important; }
  .certificate .cert-btn-group {
    display: flex !important;
    flex-direction: row !important;
    gap: 6px !important;
  }
  .certificate .cert-btn-group .btn {
    padding: 5px 9px !important;
    font-size: 9.5px !important;
  }
  .certificate .cert-top h1 { font-size: 17px !important; line-height: 1.2 !important; margin: 1px 0 !important; }
  .certificate .ct-farm { font-size: 8.5px !important; }
  .certificate .ct-sub { font-size: 10px !important; }
  .certificate .ct-meta { font-size: 9.5px !important; margin-top: 2px !important; }

  /* Duo columns collapse to 1 clean stacked column on mobile */
  .certificate .cduo {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-bottom: 10px !important;
  }
  .certificate .cflat .cert-field {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    padding: 3px 0 !important;
    font-size: 11.5px !important;
    border: none !important;
  }
  .certificate .cflat .cert-field span {
    font-size: 9.5px !important;
    color: #5b7470 !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
  }
  .certificate .cflat .cert-field b {
    font-size: 11.5px !important;
    color: #10282c !important;
    text-align: right !important;
    word-break: break-word !important;
  }

  /* Hero piglet card on mobile */
  .certificate .cert-hero {
    padding: 10px 12px !important;
    margin-bottom: 10px !important;
  }
  .certificate .hero-title b {
    font-size: 18px !important;
    margin-right: 6px !important;
  }
  .certificate .hero-title span {
    font-size: 12px !important;
  }
  .certificate .hero-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 6px 10px !important;
    margin-bottom: 6px !important;
  }
  .certificate .hero-cell small { font-size: 8.5px !important; }
  .certificate .hero-cell b { font-size: 12px !important; }
  .certificate .hero-dam {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    font-size: 10.5px !important;
    padding-top: 5px !important;
  }

  /* Lineage pedigree on mobile */
  .certificate .cert-lineage {
    margin-bottom: 10px !important;
  }
  .certificate .pedline {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .certificate .ped-col {
    background: #fbfdfd !important;
    border: 1px solid #e2eceb !important;
    border-radius: 8px !important;
    padding: 6px 8px !important;
    gap: 2px !important;
  }
  .certificate .ped-col b { font-size: 11.5px !important; }
  .certificate .ped-col span { font-size: 9.5px !important; }

  /* Payment summary on mobile */
  .certificate .cert-pay {
    padding: 9px 12px !important;
    margin: 8px 0 !important;
  }
  .certificate .pay-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 6px !important;
  }
  .certificate .pay-cell small { font-size: 8.5px !important; }
  .certificate .pay-cell b { font-size: 13.5px !important; }
  .certificate .pay-cell.bal b { font-size: 15.5px !important; }

  /* Timeline on mobile */
  .certificate .timeline-card {
    margin: 8px 0 0 !important;
  }
  .certificate .cert-timeline {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px 4px !important;
  }
  .certificate .cert-timeline li b { font-size: 9.5px !important; }
  .certificate .cert-timeline li small { font-size: 8px !important; }

  /* Bottom verification & signatures on mobile */
  .certificate .cert-bottom {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    margin-top: 10px !important;
  }
  .certificate .cert-verify {
    display: flex !important;
    flex-direction: row !important;
    gap: 10px !important;
    align-items: center !important;
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .certificate .cv-qr {
    width: 66px !important;
    min-width: 66px !important;
    height: 66px !important;
  }
  .certificate .cv-text {
    padding-left: 8px !important;
  }
  .certificate .cv-text b { font-size: 10.5px !important; }
  .certificate .cv-text p { font-size: 8.5px !important; margin: 1px 0 2px !important; }
  .certificate .cv-text small { font-size: 7.5px !important; }
  .certificate .cert-signs2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .certificate .cs b { font-size: 9px !important; }
  .certificate .cs small { font-size: 7.5px !important; }
  .certificate .cv-meta-line {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    text-align: center !important;
    font-size: 7.5px !important;
    margin-top: 4px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   RESERVATION CERTIFICATE FULL-WIDTH PRINT & SCREEN ALIGNMENT
   ═══════════════════════════════════════════════════════════════════════════ */
@media print {
  @page {
    size: Letter portrait;
    margin: 5mm 7mm 5mm 7mm;
  }
  body:has(#reservationDetail) {
    background: #fff !important;
  }
  #reservationDetail {
    position: static !important;
    inset: auto !important;
    display: block !important;
    background: #fff !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 9999999 !important;
  }
  #reservationDetail .certificate {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 6px 14px 4px !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 10.5px !important;
    line-height: 1.3 !important;
    zoom: 1 !important;
    transform: none !important;
    background: #fff !important;
    color: #10282c !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  #reservationDetail .no-print,
  #reservationDetail .close-reminder,
  #reservationDetail .cert-photo.no-photo,
  #reservationDetail .photo-empty {
    display: none !important;
  }
  #reservationDetail .cert-top {
    grid-template-columns: 70px 1fr auto !important;
    gap: 10px !important;
    padding-bottom: 3px !important;
  }
  #reservationDetail .cert-top h1 {
    font-size: 22px !important;
    margin: 0 !important;
  }
  #reservationDetail .ct-logo img {
    width: 68px !important;
    height: 54px !important;
    object-fit: contain !important;
  }
  #reservationDetail .cduo {
    gap: 14px !important;
    margin-bottom: 6px !important;
  }
  #reservationDetail .cert-hero {
    margin-bottom: 6px !important;
    padding: 8px 12px 6px !important;
  }
  #reservationDetail .cert-lineage {
    margin-bottom: 6px !important;
  }
  #reservationDetail .cert-duo2 {
    gap: 12px !important;
    margin-bottom: 4px !important;
  }
  #reservationDetail .timeline-card {
    margin-top: 4px !important;
  }
  #reservationDetail .cert-bottom {
    display: grid !important;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: center !important;
    border: 1.2px solid #c5d8d6 !important;
    border-radius: 8px !important;
    padding: 7px 12px !important;
    margin-top: 6px !important;
    background: #fbfdfd !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  #reservationDetail .cert-verify {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 12px !important;
    align-items: center !important;
    min-width: 0 !important;
  }
  #reservationDetail .cv-qr {
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
    height: 76px !important;
    border: 1.8px solid #10282c !important;
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
  #reservationDetail .cv-qr svg {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
  }
  #reservationDetail .cv-qr small {
    display: block !important;
    font-size: 6.5px !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em !important;
    color: #0e7c74 !important;
    margin-top: 1px !important;
    text-align: center !important;
  }
  #reservationDetail .cv-text {
    flex: 1 !important;
    min-width: 0 !important;
    padding-left: 10px !important;
    border-left: 1.5px solid #c8dedc !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }
  #reservationDetail .cv-text b {
    font-size: 10px !important;
    color: #10282c !important;
    letter-spacing: 0.03em !important;
    display: block !important;
  }
  #reservationDetail .cv-text p {
    font-size: 8.5px !important;
    color: #4d6a72 !important;
    margin: 2px 0 !important;
    line-height: 1.25 !important;
  }
  #reservationDetail .cv-text small {
    font-size: 8px !important;
    color: #7d9290 !important;
    display: block !important;
    line-height: 1.2 !important;
  }
  #reservationDetail .cert-signs2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 2px 0 !important;
    margin: 0 !important;
    align-content: center !important;
  }
  #reservationDetail .cs {
    display: grid !important;
    text-align: center !important;
  }
  #reservationDetail .cs-line {
    border-top: 1.2px solid #222 !important;
    margin-bottom: 2px !important;
  }
  #reservationDetail .cs b {
    font-size: 9.5px !important;
    color: #10282c !important;
    display: block !important;
  }
  #reservationDetail .cs small {
    font-size: 8px !important;
    color: #555 !important;
    display: block !important;
  }
  #reservationDetail .cv-meta-line {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 8px !important;
    color: #666 !important;
    margin-top: 4px !important;
  }
  #reservationDetail .cert-foot-note {
    font-size: 8px !important;
    color: #888 !important;
    margin-top: 3px !important;
  }
}
/* ARSwineTech Pro — existing-farm invitation entry */
.onboard-join-divider{display:flex;align-items:center;gap:10px;margin:15px 0 10px;color:#7d9b99;font-size:10px;font-weight:800;letter-spacing:.14em}
.onboard-join-divider:before,.onboard-join-divider:after{content:"";height:1px;flex:1;background:rgba(145,207,202,.18)}
.onboard-join-divider span{padding:0 3px}
.onboard-join-btn{width:100%;border:1px solid rgba(82,222,211,.35)!important}
.onboard-join-hint{font-size:11px!important;text-align:center;margin:8px 0 0!important;color:#9bb6b3!important}
.join-farm-screen{position:fixed;inset:0;z-index:10002;display:none;place-items:center;padding:20px;background:rgba(1,12,15,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.join-farm-screen.open{display:grid}
.join-farm-card{width:min(470px,100%);max-height:92vh;overflow:auto;padding:27px;border-radius:19px;background:linear-gradient(145deg,rgba(18,55,60,.98),rgba(7,25,30,.99));border:1px solid rgba(193,255,249,.26);box-shadow:0 30px 80px rgba(0,0,0,.48);color:var(--ink)}
.join-farm-card h2{margin:12px 0 6px}
.join-farm-copy{margin:0 0 18px;color:var(--muted);line-height:1.55;font-size:13px}
.join-farm-card label{display:block;color:#bad4d2;font-size:12px;margin-bottom:6px}
.join-farm-card input{width:100%;padding:13px 12px;border:1px solid #2a6665;border-radius:9px;background:#071a1e;color:#efffff;outline-color:var(--teal);font:700 17px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase}
.join-farm-card input::placeholder{color:#759694;letter-spacing:.06em;font:600 13px Inter,ui-sans-serif,system-ui,sans-serif}
.join-farm-card input:disabled{opacity:.65}
.join-farm-card .form-error{margin-top:12px}
.join-farm-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.join-farm-actions .btn{min-width:150px}
.join-farm-security{margin:17px 0 0;padding:11px 12px;border-radius:10px;background:rgba(240,182,75,.08);border:1px solid rgba(240,182,75,.28);color:#f3cf87;font-size:11px;line-height:1.55}
.light-theme .onboard-join-divider{color:#6b8583}
.light-theme .onboard-join-divider:before,.light-theme .onboard-join-divider:after{background:#d7e8e6}
.light-theme .onboard-join-hint{color:#607775!important}
.light-theme .join-farm-screen{background:rgba(233,247,246,.88)}
.light-theme .join-farm-card{background:#fff;color:#112126;border-color:#cce5e2}
.light-theme .join-farm-card label{color:#52666a}
.light-theme .join-farm-card input{background:#fff;color:#112126;border-color:#bcd9d6}
.light-theme .join-farm-security{background:#fff7e6;color:#8a6410;border-color:#ecd9a8}
@media(max-width:700px){
  .join-farm-screen{padding:14px}
  .join-farm-card{padding:22px}
  .join-farm-actions{flex-direction:column-reverse}
  .join-farm-actions .btn{width:100%}
}
/* ARSwineTech Pro — structured production control center */
.production-control-center{margin-top:18px;display:grid;gap:14px}
.pc-header{padding:18px;display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.pc-header h2{margin:4px 0 5px;font-size:20px}
.pc-header p{margin:0;line-height:1.5}
.pc-header-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.pc-header-actions .select{min-width:130px}
.pc-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 13px;border:1px solid rgba(87,212,141,.35);background:rgba(87,212,141,.08);border-radius:11px;color:#a8e8c1;font-size:12px}
.pc-notice b{color:#6ee7a0}
.pc-notice span{flex:1;min-width:210px;color:var(--muted)}
.pc-notice.warn{border-color:rgba(240,182,75,.4);background:rgba(240,182,75,.08);color:#f5d183}
.pc-notice.warn b{color:#ffcf6e}
.pc-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pc-kpi-card{padding:14px;min-height:103px;display:grid;align-content:start;gap:4px}
.pc-kpi-card small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.pc-kpi-card b{font-size:22px;color:#eafffd;letter-spacing:-.6px}
.pc-kpi-card span{color:var(--muted);font-size:11px;line-height:1.35}
.pc-kpi-card.warn{border-color:rgba(240,182,75,.42);background:linear-gradient(145deg,rgba(75,54,22,.38),rgba(10,25,29,.7))}
.pc-kpi-card.warn b{color:#ffd16b}
.pc-kpi-card.ok b{color:#64e39c}
.pc-two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}
.pc-section{padding:16px;min-width:0}
.pc-section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:11px}
.pc-section-head h3{margin:0 0 4px;font-size:15px}
.pc-section-head p{margin:0;line-height:1.45;font-size:11px}
.pc-summary-strip{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0 12px}
.pc-summary-strip span{padding:8px 10px;border-radius:9px;background:rgba(19,185,173,.08);border:1px solid rgba(19,185,173,.17);font-size:11px;color:var(--muted)}
.pc-summary-strip b{display:block;color:#eafffd;font-size:14px;margin-top:2px}
.pc-table{min-width:0;font-size:11px}
.pc-table th,.pc-table td{padding:9px 10px}
.pc-warning{margin-top:8px;padding:8px 10px;border-radius:8px;background:rgba(240,182,75,.09);border:1px solid rgba(240,182,75,.25);color:#f5d183;font-size:11px;line-height:1.4}
.pc-audit-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 12px}
.pc-audit-counts>div{padding:10px;border-radius:9px;background:rgba(255,255,255,.035);border:1px solid var(--line);text-align:center}
.pc-audit-counts b{display:block;font-size:20px;color:#6de5d9}
.pc-audit-counts small{font-size:10px;color:var(--muted)}
.pc-good,.pc-good-box{color:#62df99!important}
.pc-bad{color:#ff8b95!important;font-weight:800}
.pc-modal-bg{z-index:100000!important}
.pc-modal{width:min(1080px,96vw);max-width:1080px;max-height:92vh;overflow:auto;padding:20px}
.pc-modal h2{margin:0 0 5px}
.pc-modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.pc-event-table,.pc-audit-table{max-height:58vh;overflow:auto}
.pc-event-table .table,.pc-audit-table .table{min-width:760px}
.pc-form{margin-top:13px}
.pc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.pc-form-grid .full{grid-column:1/-1}
.pc-form-grid textarea{min-height:78px;resize:vertical}
.pc-quality-notes{display:grid;gap:7px;margin-top:12px}
.pc-good-box{padding:10px;border-radius:9px;background:rgba(87,212,141,.08);border:1px solid rgba(87,212,141,.25);font-size:12px}
.pc-integration-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}
.pc-integration-card{display:grid;align-content:start;gap:8px;padding:13px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.035)}
.pc-integration-card b{color:#eafffd}
.pc-integration-card small{color:var(--muted);font-size:11px;line-height:1.5}
.pc-integration-card code{font-size:10px;word-break:break-word;color:#68e5d9}
.pc-integration-card input[type=file]{width:100%;font-size:11px;color:var(--muted)}
.light-theme .pc-kpi-card b,.light-theme .pc-summary-strip b,.light-theme .pc-integration-card b{color:#112126}
.light-theme .pc-kpi-card{background:#fff}
.light-theme .pc-kpi-card.warn{background:#fffaf0}
.light-theme .pc-summary-strip span{background:#f1faf8;border-color:#cfe5e2}
.light-theme .pc-audit-counts>div,.light-theme .pc-integration-card{background:#f8fbfb;border-color:#dbe9e8}
.light-theme .pc-warning{background:#fff8e9;color:#8a6410}
.light-theme .pc-notice{color:#16703f;background:#effbf3}
.light-theme .pc-notice.warn{color:#8a6410;background:#fff8e9}
@media(max-width:1050px){.pc-kpi-grid{grid-template-columns:repeat(2,1fr)}.pc-two-col{grid-template-columns:1fr}.pc-integration-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.pc-header{display:block;padding:14px}.pc-header-actions{justify-content:flex-start;margin-top:12px}.pc-header-actions .select{width:100%}.pc-header-actions .btn{flex:1}.pc-kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px}.pc-kpi-card{padding:11px;min-height:94px}.pc-kpi-card b{font-size:18px}.pc-section{padding:13px}.pc-section-head{display:block}.pc-section-head .btn{width:100%;margin-top:9px}.pc-form-grid{grid-template-columns:1fr}.pc-form-grid .full{grid-column:auto}.pc-integration-grid{grid-template-columns:1fr}.pc-modal{width:calc(100vw - 20px);padding:15px}.pc-modal-actions .btn{flex:1}.pc-notice .btn{width:100%}}
/* ARSwineTech Pro — production intelligence reports */
.pc-intelligence{display:grid;gap:12px}
.pc-intelligence .pc-section-head{margin-bottom:0}
.pc-intel-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}
.pc-recon-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 12px;border-radius:10px;background:rgba(19,185,173,.07);border:1px solid rgba(19,185,173,.18);font-size:11px;color:var(--muted)}
.pc-recon-line b{color:var(--ink)}
.pc-recon-line span{padding:4px 5px}
.pc-recon-line .pc-good{color:#62df99!important;font-weight:800}
.pc-recon-line .pc-bad{color:#ff8b95!important;font-weight:800}
.pc-recon-pending{color:#ffd16b!important;font-weight:800}
.pc-report-actions{display:flex;gap:7px;flex-wrap:wrap}
.pc-report-actions .btn{font-size:11px}
.pc-recon-detail{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:14px 0}
.pc-recon-detail>div{padding:11px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.035)}
.pc-recon-detail small,.pc-recon-detail span{display:block;color:var(--muted);font-size:10px}
.pc-recon-detail b{display:block;font-size:19px;margin:4px 0;color:var(--ink)}
.pc-modal-subhead{font-size:14px;margin:18px 0 8px;padding-top:12px;border-top:1px solid var(--line)}
.pc-wide-table .table{min-width:980px}
.pc-index-score{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:15px;margin:13px 0;border-radius:12px;background:rgba(87,212,141,.09);border:1px solid rgba(87,212,141,.35)}
.pc-index-score small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}
.pc-index-score b{font-size:28px;color:#64e39c}
.pc-index-score span{color:var(--muted);font-size:12px}
.pc-index-score.pending{background:rgba(240,182,75,.08);border-color:rgba(240,182,75,.35)}
.pc-index-score.pending b{color:#ffd16b}
.light-theme .pc-recon-detail>div{background:#f8fbfb;border-color:#dbe9e8}
.light-theme .pc-recon-line{background:#f1faf8;border-color:#cfe5e2}
.light-theme .pc-recon-line b,.light-theme .pc-recon-detail b{color:#112126}
@media(max-width:1050px){.pc-intel-kpis{grid-template-columns:repeat(3,1fr)}.pc-recon-detail{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.pc-intel-kpis{grid-template-columns:repeat(2,1fr)}.pc-recon-detail{grid-template-columns:repeat(2,1fr)}.pc-report-actions .btn{flex:1 1 calc(50% - 7px);min-height:40px}.pc-recon-line{display:grid;grid-template-columns:1fr 1fr}.pc-recon-line span{padding:5px 0}.pc-wide-table{overflow-x:auto}}
/* ARSwineTech Pro — feed stock report screen/print controls */
#feedReport{padding:14px;overflow:auto;align-items:flex-start!important}
#feedReport .feed-report-toolbar{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:10px;width:min(1000px,96vw);margin:0 auto 8px;padding:7px 9px;border:1px solid rgba(91,226,213,.22);border-radius:10px;background:rgba(8,28,33,.96);color:#bfe9e5;font-size:11px}
#feedReport .feed-report-toolbar .btn{padding:7px 10px}
#feedReport .certificate{width:min(1000px,96vw);max-width:1000px;background:#fff;color:#172327;border-radius:10px;padding:18px;line-height:1.4}
#feedReport .cert-header{display:grid;grid-template-columns:70px 1fr auto 30px;gap:10px;align-items:center;border-bottom:3px solid #0e7c74;padding:8px 0 11px;margin-bottom:12px}
#feedReport .cert-logo img,#feedReport .cert-app-logo img{width:60px;height:48px;object-fit:contain}
#feedReport .cert-title small{font-size:8px;letter-spacing:.12em;color:#0e7c74;font-weight:800}
#feedReport .cert-title h1{font-size:20px;line-height:1.1;margin:3px 0;color:#10282c}
#feedReport .cert-title h2{font-size:13px;margin:0;color:#37505a}
#feedReport .cert-app-logo{text-align:center;font-size:8px;color:#0e7c74}
#feedReport .cert-grid{display:block}
#feedReport .cert-card{border:1px solid #cfdddd;border-radius:7px;padding:10px 11px;margin:0 0 10px;background:#fff}
#feedReport .cert-card h3{margin:0 0 7px;color:#0e7c74;font-size:12px;border-bottom:1px solid #d7e6e4;padding-bottom:4px}
#feedReport .vax-rep{width:100%;border-collapse:collapse;font-size:10px;color:#172327}
#feedReport .vax-rep th{background:#eaf6f4;color:#0e6963;text-align:left;font-size:9px;text-transform:uppercase;padding:6px;border-bottom:1px solid #9ccbc5}
#feedReport .vax-rep td{padding:6px;border-bottom:1px solid #e4eded;vertical-align:top}
#feedReport .vax-rep tr:last-child td{border-bottom:0}
#feedReport .vax-rep-note{font-size:9px;color:#637174;margin:0 0 6px}
#feedReport .vax-rep-empty{color:#637174;font-size:10px}
#feedReport .cert-footer{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-top:1px solid #cfdddd;padding:8px 0;font-size:9px}
#feedReport .cert-footer>div{display:flex;gap:5px;color:#0e7c74}#feedReport .cert-footer span{color:#637174}#feedReport .cert-footer b{display:block;color:#172327}
#feedReport .cert-end{display:flex;justify-content:space-between;border-top:1px solid #0e7c74;padding:7px 0;font-size:9px}
#feedReport .cert-sign{display:flex;justify-content:space-between;padding:24px 28px 0;font-size:9px}
#feedReport .cert-sign span{width:210px;border-top:1px solid #637174;padding-top:4px}
@media(max-width:700px){#feedReport{padding:8px}#feedReport .feed-report-toolbar{width:100%}#feedReport .certificate{width:100%;padding:12px}#feedReport .cert-header{grid-template-columns:46px 1fr 28px;gap:7px}#feedReport .cert-app-logo{display:none}#feedReport .cert-title h1{font-size:16px}#feedReport .cert-footer{grid-template-columns:1fr 1fr}#feedReport .cert-end{display:block}#feedReport .cert-end b{display:block;margin-top:4px}#feedReport .cert-sign{padding:22px 8px 0;gap:12px}#feedReport .cert-sign span{width:50%}}
@media print{body.feed-report-open .no-print{display:none!important}}
/* Reseller payment discount/readjustment presentation */
.reseller-settlement-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:11px 0;padding:9px;border:1px solid var(--line);border-radius:10px;background:rgba(19,185,173,.07)}
.reseller-settlement-summary span{font-size:10px;color:var(--muted)}
.reseller-settlement-summary b{display:block;font-size:13px;color:var(--ink);margin-top:2px}
.reseller-settlement-preview{padding:10px 12px;border-radius:9px;border:1px solid rgba(87,212,141,.35);background:rgba(87,212,141,.08);color:#b7e9c7;font-size:12px;line-height:1.5}
.reseller-settlement-preview b{color:#6ee7a0}
.reseller-discount-summary{margin:9px 0 13px;padding:9px 11px;border-radius:9px;border:1px solid rgba(240,182,75,.3);background:rgba(240,182,75,.07);color:#f3cf87;font-size:11px;line-height:1.45}
.reseller-discount-summary b{color:#ffd16b}
.light-theme .reseller-settlement-summary{background:#f1faf8;border-color:#dbe9e8}
.light-theme .reseller-settlement-summary b{color:#112126}
.light-theme .reseller-settlement-preview{background:#effbf3;color:#16703f}
.light-theme .reseller-settlement-preview b{color:#16703f}
.light-theme .reseller-discount-summary{background:#fff8e9;color:#8a6410}
.light-theme .reseller-discount-summary b{color:#8a6410}
@media(max-width:700px){.reseller-settlement-summary{grid-template-columns:repeat(2,1fr)}.reseller-settlement-preview{font-size:11px}}
.reseller-sync-pending{display:block;color:#ffd16b!important;font-size:10px;margin-top:3px;line-height:1.35}
.light-theme .reseller-sync-pending{color:#8a6410!important}
/* Batch allocation/reservation clarity */
.batch-floating-note{margin:11px 0;padding:10px 12px;border:1px solid rgba(240,182,75,.4);border-radius:10px;background:rgba(240,182,75,.09);color:#f4d184;font-size:11.5px;line-height:1.5}
.light-theme .batch-floating-note{background:#fff8e9;color:#8a6410;border-color:#ecd9a8}

/* [REBUILD FIX 77] Batch Cost Analysis panel — contained & responsive.
   The panel used .notice (display:flex → children lined up sideways) and the
   global .table min-width:570px stretched the reservation/edit modals wider
   than the screen. The panel is now its own scroll container that can never
   widen its modal. */
.bc-panel{display:block;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1.5px solid rgba(13,184,174,.5);background:rgba(13,141,145,.08);padding:12px;border-radius:10px;margin-top:10px;font-size:12.5px}
.bc-panel .bc-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.bc-panel .bc-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.bc-panel .bc-tags .tag{font-size:10.5px;white-space:normal;text-align:left}
.bc-panel .table-wrap{display:block;max-width:100%;overflow-x:auto;margin:6px 0}
.bc-panel table.table{min-width:340px;width:100%;font-size:12px}
.bc-panel table.table th{padding:7px 9px;white-space:nowrap}
.bc-panel table.table th:last-child{text-align:right}
/* [FIX 184] money cells never wrap mid-number; labels wrap instead */
.bc-panel table.table td{padding:7px 9px;white-space:normal;word-break:normal;overflow-wrap:break-word}
.bc-panel table.table td:last-child{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.bc-panel small{display:block;margin-top:4px}
#batchCostPanel,#priceFeedbackBox,#editBatchCostPanel{min-width:0;max-width:100%}
.reminder-fields>.field,.reminder-fields>.field.full,.res-lines-box{min-width:0;max-width:100%}
.reminder-modal,.due-modal{max-width:96vw}
@media(max-width:700px){.bc-panel{padding:10px}.bc-panel table.table{min-width:340px}}

/* [REBUILD FIX 89] Financial Review modal report styles */
.finrev-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.finrev-card{background:rgba(10,25,30,.5);border:1px solid rgba(145,207,202,.25);border-radius:12px;padding:12px}
.finrev-card small{color:#9bc4c1;font-size:10px;text-transform:uppercase;letter-spacing:.06em;display:block}
.finrev-card b{display:block;font-size:19px;margin:5px 0 3px;color:#64e5c0}
.finrev-card.warn b{color:#f0b64b}
.finrev-sec{margin:16px 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#45cfc3;font-weight:800}
.finrev-row{display:flex;justify-content:space-between;gap:10px;padding:7px 2px;border-bottom:1px dashed rgba(145,207,202,.15);font-size:12.5px;color:#b8d4d2}
.finrev-row b{color:#efffff}
@media(max-width:520px){.finrev-grid{gap:8px}.finrev-card b{font-size:16px}}

/* [REBUILD FIX 142] professional animated swine icon system — pure SVG+CSS,
   subtle micro-motion (breathing, ear/tail flicks, nuzzle, trot, grain glow).
   Respects prefers-reduced-motion. No GIFs, no video, no libraries. */
.ars-ic{width:46px;height:38px;display:block;overflow:visible}
.ars-ic *{transform-box:fill-box}
.ars-ic .b{transform-origin:50% 100%;animation:arsBreathe 4.2s ease-in-out infinite}
.ars-ic .b2{transform-origin:50% 100%;animation:arsBreathe 5.4s ease-in-out infinite}
.ars-ic .e{transform-origin:60% 90%;animation:arsEar 7s ease-in-out infinite}
.ars-ic .t{transform-origin:90% 60%;animation:arsTail 3.6s ease-in-out infinite}
.ars-ic .h{transform-origin:50% 60%;animation:arsHead 9s ease-in-out infinite}
.ars-ic .hb{transform-origin:50% 50%;animation:arsHeart 1.9s ease-in-out infinite}
.ars-ic .n1{animation:arsNuzzle 2.8s ease-in-out infinite}
.ars-ic .n2{animation:arsNuzzle 2.8s ease-in-out .9s infinite}
.ars-ic .tr1{transform-origin:50% 100%;animation:arsTrot 2.4s ease-in-out infinite}
.ars-ic .tr2{transform-origin:50% 100%;animation:arsTrot 2.4s ease-in-out .5s infinite}
.ars-ic .g1{animation:arsGrain 3s ease-in-out infinite}
.ars-ic .g2{animation:arsGrain 3s ease-in-out 1s infinite}
.ars-ic .g3{animation:arsGrain 3s ease-in-out 2s infinite}
.glance .symbol{line-height:0}
@keyframes arsBreathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.015,1.04)}}
@keyframes arsEar{0%,84%,100%{transform:rotate(0deg)}88%{transform:rotate(-9deg)}93%{transform:rotate(4deg)}}
@keyframes arsTail{0%,100%{transform:rotate(0deg)}50%{transform:rotate(12deg)}}
@keyframes arsHead{0%,78%,100%{transform:translate(0,0) rotate(0deg)}86%{transform:translate(.4px,.7px) rotate(2.5deg)}}
@keyframes arsHeart{0%,55%,100%{transform:scale(1)}10%{transform:scale(1.22)}22%{transform:scale(1)}32%{transform:scale(1.12)}42%{transform:scale(1)}}
@keyframes arsNuzzle{0%,100%{transform:translate(0,0)}50%{transform:translate(1.1px,-.9px)}}
@keyframes arsTrot{0%,100%{transform:translateY(0)}35%{transform:translateY(-1.2px)}70%{transform:translateY(0)}}
@keyframes arsGrain{0%,100%{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-1.2px)}}
@media (prefers-reduced-motion:reduce){.ars-ic *{animation:none!important}}

/* [REBUILD FIX 143] realistic emblem icons — CSS-only micro-motion on top of
   the generated artwork (gentle breathing scale, staggered per card). */
.ars-ic-img{width:46px;height:46px;object-fit:cover;border-radius:11px;display:block;box-shadow:0 3px 10px rgba(0,0,0,.35), inset 0 0 0 1px rgba(145,207,202,.12);animation:arsImgBreathe 4.8s ease-in-out infinite}
.ars-ic-img.ars-d1{animation-delay:.6s}.ars-ic-img.ars-d2{animation-delay:1.2s}
.ars-ic-img.ars-d3{animation-delay:1.8s}.ars-ic-img.ars-d4{animation-delay:2.4s}
.ars-ic-img.ars-d5{animation-delay:3s}
@keyframes arsImgBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@media (prefers-reduced-motion:reduce){.ars-ic-img{animation:none!important}}

/* [REBUILD FIX 144] KPI honesty tiers */
.pc-kpi-card.good b{color:#62df99}
.pc-kpi-card.fair b{color:#ffc968}
.pc-kpi-card.bad b{color:#ff8b95}
.pc-reality{border:1px solid rgba(240,182,72,.35);background:linear-gradient(145deg,rgba(40,32,14,.35),rgba(10,25,29,.98))}

/* [REBUILD FIX 145] Work Order Center */
.wo-dash{padding:16px;margin-bottom:14px}
.wo-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.wo-head h2{margin:0;font-size:17px;color:#ffd98a;letter-spacing:.06em}
.wo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.wo-box{background:#101f23;border:1px solid var(--line);border-radius:10px;padding:8px 10px;text-align:center}
.wo-box small{color:#9bb0ae;font-size:9.5px;letter-spacing:.06em}
.wo-box b{display:block;font-size:20px}
.wo-bad{color:#ff8b95!important}.wo-warn{color:#ffc968!important}.wo-ok{color:#62df99!important}
.wo-pris{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.wo-pri{border:1px solid;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:800}
.wo-urgent{border-top:1px dashed var(--line);padding-top:8px}
.wo-urgent small{color:#9bb0ae;font-size:9.5px;letter-spacing:.06em}
.wo-urgent-row{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;padding:4px 0;border-bottom:1px solid rgba(145,207,202,.07)}
.wo-row{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px;background:#0d1c20}
.wo-row-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.wo-row-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:#9bb0ae;margin:6px 0}
.wo-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.health-slim{min-height:0!important}
.health-slim .score-ring{min-width:86px;width:86px;height:86px}
.health-slim .score-inner strong{font-size:24px}
@media(max-width:900px){.wo-grid{grid-template-columns:repeat(2,1fr)}}

/* [REBUILD FIX 149] trial banners */
.ars-trial-banner{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:linear-gradient(135deg,rgba(19,185,172,.16),rgba(7,152,143,.10));border:1px solid rgba(46,211,197,.35);color:#c9f5ef;border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:12.5px}
.ars-trial-banner.expired{background:linear-gradient(135deg,rgba(255,92,104,.14),rgba(120,20,30,.12));border-color:rgba(255,92,104,.4);color:#ffd7db}

/* [FIX 170] toasts must appear above kiosk/roster modals */
.toast{z-index:999999999!important}

/* ═══════════════════════════════════════════════════════════════════════════════════════════
   [FIX 191] THE SOW CARD'S ⋯ — the card used to print 13 buttons; it now prints at most 5 and
   the rest open in the app's own overlay (.due-modal-bg > .due-modal), reusing the semen
   stock-menu rows so nothing here invents a component. The z-index rule is not decoration:
   .drill-bg > .drill-panel sits at 9999 and .due-modal-bg at 9998, so a sheet opened from the
   drilldown would have been UNDER the very panel that opened it (the same trap #mortalityModal
   and the reseller hub had to opt out of — a tap that "opens nothing" on a phone).
   ═══════════════════════════════════════════════════════════════════════════════════════════ */
.sow-more-btn{padding:6px 11px;display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:1.2}
.sow-more-count{font-size:10.5px;font-weight:800;color:#8ce7df;background:rgba(19,185,173,.16);border-radius:999px;padding:1px 6px}
.sow-photo-hint{font-size:11px;align-self:center}
#sowMoreActions.due-modal-bg{z-index:999999!important}
.sow-more-modal{width:min(430px,100%);text-align:left}
.sow-more-modal .semen-stock-menu{margin-top:6px;gap:8px}
.sow-more-modal .semen-stock-menu button{padding:12px 12px;border-radius:12px;gap:11px}
.sow-more-modal .semen-stock-menu .ss-icon{font-size:22px}
.sow-more-modal .semen-stock-menu b{font-size:13.5px}
.sow-more-modal .semen-stock-menu small{font-size:11.5px;margin-top:2px}
@media print{.sow-more-btn,.sow-photo-hint,#sowMoreActions{display:none!important}}

/* ═══════════════════════════════════════════════════════════════════════════════════════════
   [FIX 192] THE COLLECTION BOARD ON A PHONE — two things the screenshot showed, one rule each.

   1. A <button> does NOT inherit text colour the way a <div> does: the browser paints one with its
      own `buttontext`, which is black, and app.css resets only `cursor`, `border` and `font` on
      `button` — never `color`. The board rows paint their own surface inline
      (style="…background:var(--bg)…") and carry no class, so their breed totals came out black on
      #071114 — 1.1:1 — while the one span that states its own colour ("only 5 in stock · short 14")
      stayed readable. The markup now says color:var(--ink), and the rule below is the net under it:
      scoped to :not([class]) so it can never out-specify .btn and repaint a real button.
      .field-hint has no global rule at all (only .perf-modal .field-hint styles it), which is why
      the row's second line had nothing to inherit.

   2. The four scope chips reused .due-actions, whose mobile rule is flex-direction:column plus
      .due-actions .btn{width:100%} — right for a Save/Cancel pair, wrong for a four-way switch:
      it stacked four full-width bars and pushed the board itself off the screen. They have their own
      class now, a 2×2 grid on a phone, and the 40px touch target kept.
   ═══════════════════════════════════════════════════════════════════════════════════════════ */
.adj-card>button:not([class]){color:var(--ink)}
.adj-card>button:not([class]) .field-hint{color:var(--muted)}
.order-board-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}
.order-board-chips .btn{flex:1 1 auto;min-width:104px;padding:7px 10px;font-size:11.5px;text-align:center}
@media(max-width:700px){
  .order-board-chips{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .order-board-chips .btn{min-width:0;width:auto;min-height:40px}
}

/* [FIX 196] clean reference card — the label format the farm asked for:
   one column of readable lines, no chip walls, no grids, no link walls. */
.med-clean-card{border:1px solid rgba(94,219,207,.22);border-radius:14px;background:rgba(9,35,40,.65);overflow:hidden}
.light-theme .med-clean-card{background:#fff;border-color:#dce7e8}
.mc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 14px 2px}
.mc-head b{font-size:16px;line-height:1.35}
.mc-x{background:transparent;color:var(--muted);font-size:18px;padding:0 8px;border-radius:8px;flex:0 0 auto}
.mc-body{padding:2px 14px 14px}
.mc-muted{color:var(--muted);font-size:12px;margin:5px 0}
.mc-line{margin:9px 0;line-height:1.5;font-size:13.5px}
.mc-line b{font-weight:800}
.mc-cat.piglet{color:#f0b64b}.mc-cat.sow{color:#ff8fb3}.mc-cat.boar{color:#f59e0b}
.light-theme .mc-cat.piglet{color:#a15d08}.light-theme .mc-cat.sow{color:#b33f6b}.light-theme .mc-cat.boar{color:#a15d08}
.mc-price{margin:12px 0 2px;font-size:15px;font-weight:800;color:#a7f3ec}
.light-theme .mc-price{color:#075e63}
.mc-unit{color:#7fe9df;font-size:12px;margin:2px 0}
.light-theme .mc-unit{color:#075e63}
.mc-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.mc-src{margin-top:10px;font-size:11px;color:var(--muted)}
.mc-src a{color:#62e4d7;font-weight:700}
.light-theme .mc-src a{color:#075e63}
.mc-thumb{flex:0 0 auto;width:46px;height:46px;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.06)}
.mc-thumb img{width:100%;height:100%;object-fit:cover}
.mc-thumb:empty{display:none}
