@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=ZCOOL+XiaoWei&display=swap";:root{--bg-deep: #0f2a1c;--bg-mid: #1a4530;--bg-soft: #e8f1eb;--panel: rgba(255, 252, 247, .94);--ink: #1a2a22;--muted: #5a6d62;--line: #c5d5cb;--accent: #2f8f5b;--accent-dark: #1f6b45;--warn: #b45309;--warn-bg: #fff7ed;--input: #fff8e8;--shadow: 0 12px 40px rgba(15, 42, 28, .12);--radius: 16px;--nav-h: 64px;--header-h: 72px;font-family:Noto Sans SC,sans-serif;color:var(--ink);background:var(--bg-soft);line-height:1.45;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{font-size:19px}html,body,#root{margin:0;min-height:100%}body{min-height:100dvh;background:radial-gradient(ellipse 80% 50% at 10% -10%,#7cbc8e 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0%,#d4e8c2 0%,transparent 50%),linear-gradient(180deg,#f3f8f4,#e4efe8 45%,#dce9e0)}button,input,select{font:inherit}.app-shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr}.app-header{position:sticky;top:0;z-index:10;padding:12px 14px 14px;background:linear-gradient(135deg,#0f2a1cf5,#1f6b45eb);color:#f4faf6;box-shadow:0 8px 24px #0f2a1c33}.brand{margin:0;font-family:ZCOOL XiaoWei,Noto Sans SC,serif;font-size:clamp(1.5rem,3.5vw,1.9rem);letter-spacing:.04em}.brand-block{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.user-chip{display:flex;align-items:center;gap:8px;font-size:.9rem;opacity:.95}.toolbar{display:grid;gap:10px}.toolbar-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.farm-bar{justify-content:flex-end;padding:8px;border-radius:12px;background:#0000002e}.farm-select select{min-width:160px}.farm-dialog-fields{grid-template-columns:1fr}.empty-state-panel{text-align:center;padding:48px 24px}.empty-state-panel h1{margin:0 0 8px}.empty-state-panel p{margin:0 0 20px;color:var(--muted)}.empty-state-panel .primary-btn{min-width:140px}.tool-btn{border:1px solid rgba(255,255,255,.28);background:#ffffff14;color:#f4faf6;border-radius:10px;padding:8px 14px;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.tool-btn:hover{background:#ffffff29}.tool-btn.is-active{background:#fff8e8;color:var(--accent-dark);border-color:#fff8e8}.tool-btn.soft{background:#fff;color:var(--accent-dark);border-color:var(--line)}.tool-btn.soft:hover{background:#f3faf5}.tool-btn.soft.danger{color:#b91c1c}.tool-btn:disabled,.tool-btn.soft:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.tool-btn.soft.save{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;border-color:transparent}.formula-bar{padding:8px;border-radius:12px;background:#0000002e}.formula-select{display:inline-flex;align-items:center;gap:8px;font-size:.85rem}.formula-select select,.formula-name-input{min-width:140px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:#fff8e8;color:var(--ink)}.formula-name-input{max-width:180px}.app-main{width:min(1480px,100%);margin:0 auto;padding:12px 12px 24px}.app-main:has(.ration-split){width:min(1680px,100%)}.app-main:has(.concentrate-split){width:min(1630px,100%)}.action-btns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.table-tip{margin:-4px 0 10px;color:var(--muted);font-size:.85rem}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:40;padding:10px 18px;border-radius:999px;background:#0f2a1ceb;color:#f4faf6;font-weight:600;box-shadow:0 10px 28px #0f2a1c47;animation:rise .25s ease-out}@media(max-width:640px){.formula-select span{display:none}.formula-name-input{max-width:120px}.data-table{min-width:560px}.app-main{padding-inline:10px}}@media print{.app-header,.primary-btn,.panel-actions button,.action-btns,.toast{display:none!important}.app-main{padding:0;width:100%}.panel{box-shadow:none;border:none}body{background:#fff}}.page{display:grid;gap:14px;animation:rise .35s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.panel{background:var(--panel);border:1px solid rgba(197,213,203,.85);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel-head h1,.panel h2{margin:0 0 4px;font-size:1.15rem}.panel-head p,.panel>p{margin:0 0 14px;color:var(--muted);font-size:.9rem}.panel h2{margin-bottom:12px;color:var(--accent-dark)}.select-row{display:grid;gap:8px}.select-row span{font-weight:600;color:var(--muted);font-size:.9rem}select,.text-input,.num-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--input);color:var(--ink);transition:border-color .15s,box-shadow .15s}select:focus,.text-input:focus,.num-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2f8f5b2e}.num-input.is-readonly{background:#eef5f0;color:var(--accent-dark);font-weight:600}.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.field{display:grid;gap:6px}.field-label{font-size:.88rem;font-weight:600;color:var(--muted);display:flex;gap:6px;align-items:baseline}.field-label em{font-style:normal;font-weight:500;font-size:.78rem;color:#7a9084}.field-hint{font-size:.75rem;color:var(--muted)}.inline-check{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}.check{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;white-space:nowrap}.alert{margin-top:12px;padding:10px 12px;border-radius:10px;background:linear-gradient(90deg,#1e4d7b,#2563a8);color:#ffe08a;font-size:.9rem;font-weight:600}.table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--line)}.data-table{width:100%;border-collapse:collapse;min-width:640px;font-size:.9rem}.data-table th,.data-table td{padding:10px 12px;border-bottom:1px solid #e2ebe5;text-align:center;white-space:nowrap}.data-table th{background:linear-gradient(180deg,#dff0e6,#cfe6d8);color:var(--accent-dark);font-weight:600}.data-table tbody tr:nth-child(2n){background:#f7fbf8}.data-table tbody tr.is-current td{background:#fff3bf;font-weight:600}.data-table tfoot td{background:#e8f3ec;font-weight:700}.data-table .num-input{min-width:88px;padding:6px 8px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:14px}.stat-row>div{padding:10px 12px;border-radius:12px;background:linear-gradient(160deg,#f4faf6,#e7f3eb);border:1px solid #d5e6db}.stat-row span{display:block;font-size:.78rem;color:var(--muted);margin-bottom:4px}.stat-row strong{font-size:1.05rem;color:var(--accent-dark)}.stat-row strong.warn{color:var(--warn)}.link-btn{border:none;background:transparent;color:#b91c1c;cursor:pointer;padding:0}.add-row{margin-top:14px;max-width:320px}.panel-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.panel-actions h2{margin:0}.primary-btn{border:none;border-radius:999px;padding:10px 18px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;font-weight:600;cursor:pointer;box-shadow:0 8px 18px #1f6b4547;transition:transform .15s ease,box-shadow .15s ease}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px #1f6b4557}.compare-row{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-weight:600;color:var(--muted);font-size:.9rem}.compare-row select{min-width:160px;max-width:100%}.compare-cell{background:#eef6ff!important;color:#1e4d7b;font-weight:600}.compare-only-row{background:#f7faf8}.compare-only-row td{color:#5a6e63}.name-readonly{display:inline-flex;align-items:center;gap:6px;min-height:28px}.compare-only-tag{font-style:normal;font-size:.72rem;padding:1px 6px;border:1px solid #b7cfc0;border-radius:4px;color:#2f6b4a;background:#e8f3ec}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:#0c1c1473;display:grid;place-items:center;padding:16px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;user-select:none;-webkit-user-select:none;touch-action:none}body.modal-open{overflow:hidden;overscroll-behavior:none}body.modal-open .app-shell{pointer-events:none;user-select:none;-webkit-user-select:none}.modal{width:min(920px,100%);max-height:min(92dvh,900px);display:grid;grid-template-rows:auto 1fr auto;background:#fffcf7;border-radius:16px;box-shadow:0 24px 60px #0f2a1c47;overflow:hidden;pointer-events:auto;user-select:auto;-webkit-user-select:auto;touch-action:auto}.modal-head,.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#1f6b45,#2f8f5b);color:#f4faf6}.modal-foot{background:#eef5f0;color:var(--ink);justify-content:flex-end;border-top:1px solid var(--line)}.modal-head h2{margin:0;font-size:1.15rem}.modal-head .link-btn{color:#ffe08a}.modal-body{overflow:auto;padding:14px 16px 18px;display:grid;gap:16px}.modal-section h3{margin:0 0 8px;font-size:.98rem;color:var(--accent-dark)}.method-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.radio-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#e8f3ec;border:1px solid var(--line);font-weight:600;cursor:pointer}.data-table.compact{min-width:520px;font-size:.85rem}.data-table.compact .num-input{min-width:72px;padding:4px 6px}.compact-stats{margin:8px 0 12px}.delta-up{color:#15803d;font-weight:600}.delta-down{color:#b91c1c;font-weight:600}.modal-foot .tool-btn:disabled,.modal-foot .primary-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.modal.modal-sm{width:min(440px,100%);max-height:none}.name-conflict-modal .name-conflict-msg{margin:0 0 14px;line-height:1.55;color:#33443a;font-size:.95rem}.name-conflict-modal .name-conflict-hint{margin:8px 0 0;color:#b91c1c;font-size:.88rem}.name-conflict-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.name-conflict-foot-right{display:flex;align-items:center;gap:8px;margin-left:auto}.modal.modal-wide{width:min(1180px,100%);max-height:min(92dvh,860px)}.modal.modal-wide.feed-nutrition-view-modal{width:min(1280px,100%);max-height:min(94dvh,920px)}.feed-nutrition-view-body{display:flex;flex-direction:column;gap:10px;min-height:0}.feed-nutrition-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.feed-nutrition-search{flex:1 1 200px;min-width:160px;max-width:320px}.feed-nutrition-search input{width:100%;box-sizing:border-box;padding:6px 10px;border:1px solid #c5d6c7;border-radius:6px;background:#fff;font:inherit}.feed-nutrition-view-wrap{max-height:min(62dvh,640px);overflow:auto}.feed-nutrition-view-table th,.feed-nutrition-view-table td{white-space:nowrap}.feed-nutrition-view-table .sticky-col{position:sticky;z-index:2;background:#f7faf7}.feed-nutrition-view-table .sticky-col-id{left:0;min-width:72px}.feed-nutrition-view-table .sticky-col-source{left:72px;min-width:110px}.feed-nutrition-view-table .sticky-col-name{left:182px;min-width:140px;box-shadow:2px 0 #d7e3d8}.feed-nutrition-view-table thead th.sticky-head{position:sticky;top:0;z-index:3;background:#eef5ee;box-shadow:0 1px #d7e3d8}.feed-nutrition-view-table thead th.sticky-col.sticky-head{z-index:4;top:0;background:#e4efe5}.optimize-modal{width:min(1280px,100%);max-height:min(94dvh,1120px);background:#fff;border-radius:10px;box-shadow:0 20px 50px #14281c38}.optimize-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 8px;background:#fff;border-bottom:1px solid #e6ebe7}.optimize-head h2{margin:0;font-size:1.2rem;font-weight:700;color:var(--accent-dark)}.optimize-close{border:none;background:transparent;color:#8a9690;font-size:1.55rem;line-height:1;width:32px;height:32px;border-radius:6px;cursor:pointer;padding:0}.optimize-close:hover{background:#f0f4f1;color:var(--ink)}.optimize-body{padding:10px 16px 12px;gap:12px}.optimize-method{padding-bottom:8px;border-bottom:1px solid #e8eee9}.optimize-method-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}.optimize-method-label{font-weight:600;color:var(--ink)}.optimize-radio{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:500}.optimize-radio input{accent-color:#2563eb;width:15px;height:15px}.optimize-method-hint{margin:8px 0 0;color:var(--muted);font-size:.86rem;line-height:1.45}.optimize-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:14px;align-items:start}.optimize-pane h3{margin:0 0 8px;font-size:.95rem;font-weight:700;color:var(--accent-dark)}.optimize-table-wrap{border-radius:6px;border:1px solid #c9d6cc;max-height:min(52dvh,680px);overflow:auto}.optimize-table{min-width:0;font-size:.82rem}.optimize-table th,.optimize-table td{padding:6px 8px}.optimize-table th{position:sticky;top:0;z-index:1;background:#3f6b45;color:#fff;font-weight:600;border-bottom:none}.optimize-table tbody tr:nth-child(2n){background:#f3f8f1}.optimize-table tbody tr:nth-child(odd){background:#fff}.optimize-table .name-cell{text-align:left;white-space:normal;min-width:96px;max-width:160px}.optimize-table .num-input{min-width:58px;width:100%;max-width:78px;padding:3px 4px;background:#fff;border:1px solid #c5d0c8;border-radius:4px}.optimize-table .opt-result-cell{color:var(--accent-dark);font-weight:600}.optimize-table tfoot td{background:#e8f0e6;font-weight:700;border-top:1px solid #c9d6cc}.optimize-status{margin:8px 0 0;font-size:.84rem}.optimize-status.is-ok{color:var(--accent-dark)}.optimize-status.is-warn{color:var(--warn)}.optimize-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 16px 14px;background:#fff;border-top:1px solid #e6ebe7}.optimize-foot-hint{margin:0;color:var(--muted);font-size:.84rem;flex:1 1 220px}.optimize-foot-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.optimize-foot-actions .primary-btn{min-width:108px}.optimize-foot-actions .tool-btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:960px){.optimize-grid{grid-template-columns:1fr}.optimize-table-wrap{max-height:min(40dvh,360px)}}.add-feed-body{padding-top:10px}.modal.modal-wide.add-feed-modal{width:min(1280px,100%)}.add-feed-panes{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:stretch;min-height:420px}.add-feed-pane{min-width:0;display:flex;flex-direction:column}.add-feed-pane h3{margin:0 0 6px;color:var(--accent-dark);font-size:1rem}.add-feed-filters{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:8px;margin-bottom:8px}.add-feed-table-wrap{max-height:420px;overflow:auto}.add-feed-table-wrap .data-table{table-layout:fixed;width:max(100%,780px);min-width:780px}.add-feed-table-wrap .data-table .name-cell{overflow:hidden;text-overflow:ellipsis}.add-feed-table-wrap .data-table th,.add-feed-table-wrap .data-table td{letter-spacing:normal;word-spacing:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-feed-table-wrap .data-table thead th{position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#dff0e6,#cfe6d8);box-shadow:0 1px #e2ebe5}.add-feed-table-wrap tbody tr{cursor:pointer}.add-feed-table-wrap tbody tr.is-in-formula{opacity:.55;cursor:default}.add-feed-table-wrap tbody tr.is-same-name{background:#fffbeb}.add-feed-actions{display:flex;flex-direction:column;justify-content:center;gap:12px;padding-top:48px}.add-feed-actions .primary-btn,.add-feed-actions .tool-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;white-space:nowrap;min-width:96px;line-height:1.2;padding-block:10px}.add-feed-action-arrow{font-size:1.05em;line-height:1}.add-feed-foot{justify-content:space-between!important;align-items:flex-end!important;gap:12px}.add-feed-foot-tips{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.add-feed-foot-tips .table-tip{margin:0}.add-feed-prefer-tip{margin:0;color:#9a6b12;font-size:.82rem;line-height:1.35}.add-feed-foot-btns{display:flex;gap:8px;flex-shrink:0}.pending-row td{background:#fff8e8!important}@media(max-width:900px){.add-feed-panes{grid-template-columns:1fr}.add-feed-actions{flex-direction:row;padding-top:0;justify-content:center}.add-feed-filters{grid-template-columns:1fr}}.name-cell{text-align:left!important;white-space:nowrap;min-width:80px;overflow:hidden;text-overflow:ellipsis}.add-feed-name-cell{min-width:80px}.resizable-th{position:relative;-webkit-user-select:none;user-select:none}.resizable-th-label{display:inline-block;max-width:calc(100% - 8px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.col-resize-handle{position:absolute;top:0;right:-2px;width:10px;height:100%;cursor:col-resize;z-index:2}.col-resize-handle:after{content:"";position:absolute;top:20%;right:2px;width:2px;height:60%;border-radius:1px;background:#0f2a1c38}.col-resize-handle:hover:after,body.col-resizing .col-resize-handle:after{background:var(--accent-dark)}body.col-resizing{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.col-resizing *{cursor:col-resize!important}.mix-toggle{border:none;background:transparent;color:var(--accent-dark);cursor:pointer;width:22px;font-size:.75rem;padding:0;font-weight:700;vertical-align:middle}.mix-toggle-spacer,.child-indent,.drag-handle{width:22px;display:inline-block;vertical-align:middle}.drag-handle{cursor:grab;color:#7a8c82;font-size:.85rem;letter-spacing:-2px;text-align:center;user-select:none;-webkit-user-select:none}.drag-handle:active{cursor:grabbing}.child-indent{width:36px}.name-input{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:#fff;min-width:120px;max-width:180px;color:var(--ink);vertical-align:middle}.mix-parent-row td{background:#f3faf6;font-weight:600}.mix-child-row td{background:#f7faf8!important;color:var(--muted)}.ration-table tr.is-dragging{opacity:.5}.ration-table tr.drop-target td{background:#d8efe0!important;box-shadow:inset 0 0 0 2px #3f8f5b}.ration-table tr.drop-target-extract td{background:#eef6f0!important;box-shadow:inset 0 0 0 1px #8fb89a}.ration-table .name-cell[draggable=true]{cursor:grab}.ration-table .name-cell[draggable=true]:active{cursor:grabbing}.ration-table .ration-check-cell{text-align:center;vertical-align:middle}.ration-table .ration-check-cell input[type=checkbox]{cursor:pointer;width:16px;height:16px;margin:0}.ration-ingredients-wrap.is-extract-drop{outline:2px dashed #8fb89a;outline-offset:-2px}.child-label{padding-left:4px}.calc-cell{color:var(--accent-dark)!important;font-weight:600}.muted-pct{color:#8a9a90;font-weight:500}.ration-table{min-width:640px}.nutrition-table{min-width:560px}.nutrition-table td.name-cell{text-align:left!important;font-weight:600}.page:has(.ration-split){gap:10px}.ration-split{display:grid;grid-template-columns:minmax(0,1.67fr) minmax(370px,1fr);gap:10px;align-items:stretch;width:100%}.ration-ingredients-pane,.ration-nutrition-pane{min-width:0;display:flex;flex-direction:column;padding:10px 12px}.ration-ingredients-pane>h2,.ration-nutrition-head h2{margin:0 0 8px;font-size:calc(1.02rem + 3px);color:var(--accent-dark)}.ration-ingredients-wrap{flex:1;max-height:min(72dvh,780px);overflow:auto;border-radius:8px}.ration-ingredients-pane .ration-table{min-width:970px;width:100%;table-layout:fixed}.ration-ingredients-pane .ration-table .ration-name-col{width:28%;min-width:260px}.ration-ingredients-pane .ration-table .ration-amount-col{width:72px}.ration-ingredients-pane .ration-table .name-cell{width:28%;min-width:260px;max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ration-ingredients-pane .ration-table .ration-amount-cell{width:72px;max-width:72px}.ration-ingredients-pane .ration-table .ration-amount-cell .num-input{max-width:64px;padding:3px 2px;font-size:calc(.76rem + 3px)}.ration-ingredients-pane .ration-table th{position:sticky;top:0;z-index:1;background:#3f6b45;color:#fff;border-bottom:none;font-weight:600;white-space:nowrap}.ration-ingredients-pane .ration-table th,.ration-ingredients-pane .ration-table td{padding:5px 6px;font-size:calc(.78rem + 3px)}.ration-ingredients-pane .ration-table th{font-size:calc(.78rem + 1px)}.ration-ingredients-pane .ration-table .num-input{min-width:0;width:100%;max-width:88px;padding:3px 4px;font-size:calc(.78rem + 3px)}.ration-ingredients-pane .ration-table .name-input{min-width:96px;width:calc(100% - 28px);max-width:none;padding:3px 4px;font-size:calc(.78rem + 3px);box-sizing:border-box}.ration-ingredients-pane .ration-table .name-readonly{display:inline-block;max-width:calc(100% - 28px);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.ration-ingredients-pane .ration-table .link-btn{color:#c0392b;font-size:calc(1.05rem + 3px);font-weight:700}.ration-ingredients-pane .mix-toggle{font-size:calc(.75rem + 3px)}.ration-ingredients-pane .drag-handle{font-size:calc(.85rem + 3px)}.ration-nutrition-pane{padding:10px 10px 8px}.ration-nutrition-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:6px}.ration-nutrition-head h2{margin:0}.ration-nutrition-filter{display:inline-flex;align-items:center;gap:6px;font-size:calc(.84rem + 3px);color:var(--muted)}.ration-nutrition-filter select{min-width:118px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}.ration-nutrition-standard{margin-bottom:6px;gap:12px}.ration-nutrition-wrap{flex:1;max-height:min(72dvh,780px);overflow:auto;border-radius:8px;border:1px solid #e2ebe5}.ration-nutrition-table{min-width:610px;width:100%;font-size:calc(.78rem + 3px)}.ration-nutrition-table th{position:sticky;top:0;z-index:1;background:#f4f7f5;color:var(--muted);font-weight:600;border-bottom:1px solid #dde6e0;white-space:nowrap}.ration-nutrition-table th,.ration-nutrition-table td{padding:5px 6px}.ration-nutrition-table tbody tr:nth-child(2n){background:#fafbfa}.ration-nutrition-table .name-cell{white-space:nowrap}.ration-nutrition-table .unit-em{font-style:normal;font-weight:400;color:var(--muted);font-size:.92em}@media(max-width:1100px){.ration-split{grid-template-columns:1fr}.ration-ingredients-wrap,.ration-nutrition-wrap{max-height:min(48dvh,480px)}}.ctx-menu{position:fixed;z-index:80;min-width:140px;background:#fffcf7;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px #0f2a1c33;padding:6px}.ctx-menu button{display:block;width:100%;text-align:left;border:none;background:transparent;padding:8px 12px;border-radius:8px;cursor:pointer;font-weight:600;color:var(--ink)}.ctx-menu button:hover{background:#e8f3ec;color:var(--accent-dark)}.child-label-click{cursor:grab;padding:2px 6px;border-radius:6px}.child-label-click:hover{background:#e8f3ec}.edit-feed-modal .modal-body{max-height:min(78dvh,720px)}.edit-feed-basic-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr) auto;gap:10px;align-items:end}.edit-feed-cols{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px 16px}.edit-feed-field{display:grid;grid-template-columns:1fr 88px;gap:6px;align-items:center;margin-bottom:0;font-size:.78rem;color:var(--muted)}.edit-feed-field strong{color:var(--ink);font-weight:600}.edit-feed-field em{font-style:normal;color:var(--muted);font-weight:500}.edit-feed-field-name.is-alert strong,.edit-feed-field-name.is-alert em{color:#c62828;font-weight:700}.edit-feed-field-name.is-primary strong,.edit-feed-field-name.is-primary em{color:#1565c0;font-weight:700}.edit-feed-field .num-input{padding:4px 6px;min-width:0}.edit-feed-nutrients{padding-top:8px}.edit-feed-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:2px solid #d7e4db;margin-bottom:10px}.edit-feed-tab{border:none;background:transparent;padding:8px 16px;margin-bottom:-2px;cursor:pointer;font-weight:600;color:var(--muted);border-bottom:2px solid transparent}.edit-feed-tab:hover{color:var(--accent-dark)}.edit-feed-tab.is-active{color:var(--accent-dark);border-bottom-color:var(--accent-dark)}.edit-feed-tip{margin:0 0 10px}.edit-feed-tab-panel{max-height:min(46dvh,420px);overflow:auto;padding-right:4px}.edit-feed-modal .modal-foot{align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;gap:10px 14px}.edit-feed-energy-note{flex:1 1 280px;margin-right:auto;min-width:0;color:var(--muted);font-size:.8rem;line-height:1.45;text-align:left}.edit-feed-energy-note p{margin:0 0 4px}.edit-feed-energy-note p:last-child{margin-bottom:0}.edit-feed-grid{display:grid;grid-template-columns:repeat(3,minmax(200px,1fr));gap:8px 14px}.edit-feed-scope-list{margin:8px 0 0;padding-left:1.25rem;color:var(--ink-soft, #4a5c52);max-height:160px;overflow:auto}.edit-feed-scope-list li{margin:2px 0}@media(max-width:960px){.edit-feed-grid{grid-template-columns:1fr}}.modal.modal-wide.batch-dialog-modal{width:min(1430px,98vw);max-height:min(94dvh,900px);font-size:calc(1rem + 1px)}.batch-dialog-modal .modal-head h2{font-size:calc(1.15rem + 1px)}.batch-dialog-modal .field-label{font-size:calc(.88rem + 1px)}.batch-dialog-modal .field-label em{font-size:calc(.78rem + 1px)}.batch-dialog-modal .batch-dialog-tip{font-size:calc(.9rem + 1px)}.batch-dialog-modal .primary-btn,.batch-dialog-modal .link-btn{font-size:calc(1rem + 1px)}.batch-dialog-modal .data-table.compact,.batch-dialog-modal .batch-dialog-table{font-size:calc(.85rem + 1px)}.batch-dialog-body{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden}.batch-dialog-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 12px;align-items:end}.batch-dialog-meta .field{margin:0;min-width:0}.batch-dialog-meta .text-input,.batch-dialog-meta .number-input,.batch-dialog-meta input{width:100%;box-sizing:border-box}.batch-dialog-meta .batch-total-warn{color:#b91c1c;font-weight:600}.batch-dialog-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.batch-dialog-tip{margin:0;color:#b91c1c;font-size:.9rem;line-height:1.4}.batch-dialog-table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.batch-dialog-table .batch-order-input{width:3.2em;padding:4px 6px;text-align:center;border:1px solid #c5d6c7;border-radius:4px;box-sizing:border-box}.modal.modal-wide.export-ration-modal{width:min(720px,96vw);max-height:min(90dvh,780px)}.export-ration-modal .modal-body{display:flex;flex-direction:column;gap:12px;overflow:hidden}.export-ration-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}.export-ration-list-field{margin:0;min-width:180px}.export-ration-list-field select{width:100%}.export-ration-quick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.export-ration-count{color:#5a6b60;font-size:.9rem}.export-ration-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 12px;overflow:auto;max-height:min(48dvh,420px);padding:10px 12px;border:1px solid #d5ddd7;border-radius:8px;background:#f7faf7}.export-ration-item{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:.92rem;line-height:1.35;color:#243028;cursor:pointer}.export-ration-item input{margin-top:2px;flex-shrink:0}.modal.modal-wide.mix-ratio-modal{width:min(1390px,98vw);max-height:min(94dvh,960px)}.mix-ratio-modal .modal-body{overflow:auto}.mix-ratio-grid{display:grid;grid-template-columns:minmax(780px,1.4fr) minmax(360px,.8fr);gap:16px;align-items:start}.mix-ratio-grid>.panel{min-width:0}.mix-ratio-grid .table-wrap{overflow:visible}.mix-ratio-grid .data-table{width:100%;table-layout:auto}.mix-ratio-grid .data-table th,.mix-ratio-grid .data-table td{white-space:nowrap}.mix-ratio-grid .data-table .mix-kg-col{width:7.2em;max-width:7.2em;box-sizing:border-box}.mix-ratio-grid .data-table .mix-kg-col .num-input{width:100%;min-width:0;max-width:100%;box-sizing:border-box;padding:4px}.mix-ratio-pane-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.mix-ratio-pane-head h3{margin:0}.mix-ratio-pane-head .mix-ratio-add-feed-btn{padding:8px 16px;font-weight:700}.mix-ratio-grid .data-table .empty-cell{text-align:center;color:#6b7c72;padding:18px 8px}.mix-ratio-grid .data-table .link-btn{color:#c0392b;font-size:1.05rem;font-weight:700}.mix-ratio-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mix-nutrient-wrap{max-height:min(68dvh,640px);overflow:auto}.mix-nutrient-wrap th{position:sticky;top:0;z-index:1}@media(max-width:1100px){.mix-ratio-grid{grid-template-columns:1fr}}@media(max-width:960px){.edit-feed-cols,.edit-feed-basic-grid{grid-template-columns:1fr}}.concentrate-meta{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(120px,.7fr));gap:12px 16px;align-items:end}.concentrate-cost{display:grid;gap:6px}.concentrate-cost .field-label{font-size:calc(.85rem + 2px);color:var(--muted)}.concentrate-cost strong{font-size:calc(1.15rem + 2px);color:var(--accent-dark)}.concentrate-split{display:grid;grid-template-columns:minmax(0,65fr) minmax(0,35fr);gap:12px;align-items:stretch}.concentrate-left,.concentrate-right{min-width:0;display:flex;flex-direction:column}.concentrate-left>h2,.concentrate-right>h2{margin:0 0 10px;font-size:calc(1.05rem + 2px);color:var(--accent-dark)}.concentrate-pane-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.concentrate-pane-head h2{margin:0;font-size:calc(1.05rem + 4px);color:var(--accent-dark)}.concentrate-pane-head .concentrate-add-feed-btn{padding:12px 22px;font-size:calc(1.05rem + 2px);font-weight:700;min-height:44px}.concentrate-ing-table .empty-cell{text-align:center;color:#6b7c72;padding:18px 8px}.concentrate-table-wrap{flex:1;max-height:min(68dvh,720px);overflow:auto;border-radius:8px}.concentrate-ing-table{min-width:830px;font-size:calc(.84rem + 4px)}.concentrate-ing-table .compare-only-tag{font-size:calc(.72rem + 4px)}.concentrate-ing-table th{position:sticky;top:0;z-index:1;background:#3f6b45;color:#fff;border-bottom:none}.concentrate-ing-table th,.concentrate-ing-table td{padding:7px 8px}.concentrate-ing-table .num-input{min-width:64px;max-width:88px;padding:4px 6px}.concentrate-ing-table .name-cell{text-align:left;white-space:normal}.concentrate-nut-table{min-width:0;font-size:calc(.82rem + 2px)}.concentrate-nut-table th{position:sticky;top:0;z-index:1;background:#3f6b45;color:#fff;border-bottom:none}.concentrate-nut-table th,.concentrate-nut-table td{padding:6px 8px}.concentrate-nut-table .name-cell{text-align:left!important;white-space:normal}@media(max-width:1100px){.concentrate-split,.concentrate-meta{grid-template-columns:1fr}.concentrate-table-wrap{max-height:min(48dvh,480px)}}.page.ration-page,.page.concentrate-page{font-size:calc(1rem + 2px)}.page.ration-page .panel-head h1,.page.concentrate-page .panel-head h1{font-size:calc(1.15rem + 2px)}.page.ration-page .panel-head p,.page.concentrate-page .panel-head p,.page.ration-page .panel>p,.page.concentrate-page .panel>p{font-size:calc(.9rem + 2px)}.page.ration-page .tool-btn,.page.concentrate-page .tool-btn{font-size:calc(.88rem + 2px)}.page.concentrate-page .concentrate-add-feed-btn{font-size:calc(1.05rem + 2px)}.page.ration-page .field-label,.page.concentrate-page .field-label{font-size:calc(.88rem + 2px)}.page.ration-page .field-label em,.page.concentrate-page .field-label em{font-size:calc(.78rem + 2px)}.page.ration-page .field-hint,.page.concentrate-page .field-hint{font-size:calc(.75rem + 2px)}.page.concentrate-page .concentrate-cost .field-label{font-size:calc(.85rem + 2px)}.page.concentrate-page .concentrate-cost strong{font-size:calc(1.15rem + 2px)}.page.ration-page .alert,.page.concentrate-page .alert,.page.ration-page .compare-row,.page.concentrate-page .compare-row{font-size:calc(.9rem + 2px)}.page.ration-page .compare-only-tag,.page.concentrate-page .compare-only-tag{font-size:calc(.72rem + 2px)}.page.ration-page .table-tip,.page.concentrate-page .table-tip{font-size:calc(.85rem + 2px)}.page.ration-page .modal-head h2,.page.concentrate-page .modal-head h2{font-size:calc(1.15rem + 2px)}.page.ration-page .ctx-menu button,.page.concentrate-page .ctx-menu button{font-size:calc(1rem + 2px)}.page.ration-page .edit-feed-field,.page.concentrate-page .edit-feed-field{font-size:calc(.78rem + 2px)}.page.ration-page .mix-ratio-grid .data-table,.page.concentrate-page .mix-ratio-grid .data-table{font-size:calc(.9rem + 2px)}.page.ration-page .mix-ratio-grid .data-table .link-btn,.page.concentrate-page .mix-ratio-grid .data-table .link-btn{font-size:calc(1.05rem + 2px)}.page.ration-page .add-feed-table-wrap .data-table,.page.concentrate-page .add-feed-table-wrap .data-table{font-size:calc(.9rem + 2px)}.page.concentrate-page .concentrate-nut-table{font-size:calc(.82rem + 2px)}.page.concentrate-page .concentrate-ing-table .compare-only-tag{font-size:calc(.72rem + 4px)}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(ellipse 70% 50% at 15% 0%,rgba(124,188,142,.45),transparent 55%),radial-gradient(ellipse 50% 40% at 100% 10%,rgba(212,232,194,.55),transparent 50%),linear-gradient(180deg,#eef5f0,#dfece4)}.auth-card{width:min(440px,100%);background:#fff;border-radius:18px;padding:28px 26px 24px;box-shadow:0 18px 48px #0f2a1c1f;border:1px solid rgba(197,213,203,.7);animation:auth-in .35s ease-out}.auth-loading{text-align:center;color:var(--muted);font-weight:500}@keyframes auth-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.auth-brand{display:flex;align-items:flex-start;gap:12px;margin-bottom:22px}.auth-logo{width:28px;height:36px;margin-top:4px;border-radius:4px;background:linear-gradient(180deg,#1a3d2a,#0f2a1c);flex-shrink:0}.auth-brand h1{margin:0;font-size:1.35rem;font-weight:700;color:#1f4d35;letter-spacing:.02em}.auth-brand p{margin:6px 0 0;color:#8a9690;font-size:.92rem}.auth-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}.auth-tabs button{border:1px solid #d5ddd8;background:#f3f5f4;color:#222;border-radius:10px;padding:10px 8px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.auth-tabs button.is-active{background:#2f5d42;border-color:#2f5d42;color:#fff}.auth-form{display:grid;gap:14px}.auth-field{display:grid;gap:6px}.auth-field>span{font-size:.92rem;color:#333;font-weight:500}.auth-field input{width:100%;border:1px solid #4a5560;border-radius:10px;padding:11px 12px;background:#eef3fb;color:#111;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.auth-field input:focus{border-color:#2f5d42;box-shadow:0 0 0 3px #2f5d422e;background:#f5f8fc}.auth-field input::placeholder{color:#9aa3ad}.auth-sms-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.auth-sms-btn{white-space:nowrap;border:1.5px solid #2f5d42;background:#fff;color:#2f5d42;border-radius:10px;padding:10px 12px;font-weight:600;cursor:pointer}.auth-sms-btn:disabled{opacity:.55;cursor:not-allowed}.auth-submit{margin-top:6px;width:100%;border:none;border-radius:10px;padding:12px 16px;background:#2f5d42;color:#fff;font-weight:700;font-size:1.02rem;cursor:pointer;transition:background .15s,transform .15s}.auth-submit:hover:not(:disabled){background:#244a35}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{opacity:.65;cursor:not-allowed}.auth-error{margin:0;color:#b42318;font-size:.9rem}.auth-info{margin:0;color:#1f6b45;font-size:.9rem}.auth-support{margin:14px 0 0;text-align:center;font-size:.72rem;line-height:1.4;color:#8a9690;letter-spacing:.02em}@media(max-width:480px){.auth-card{padding:22px 16px 18px}.auth-brand h1{font-size:1.15rem}.auth-tabs button{font-size:.88rem;padding:9px 4px}}
