:root{color-scheme:dark;--bg: #0c0f0d;--bg-2: #131816;--surface: #171d1a;--surface-2: #1e2622;--line: #2a332e;--line-soft: #202824;--text: #eef4f0;--text-2: #9fb0a7;--text-3: #6b7d74;--green: #34d399;--green-dim: #0f2c22;--amber: #fbbf24;--amber-dim: #2e2410;--red: #f87171;--red-dim: #2e1616;--blue: #60a5fa;--blue-dim: #14202e;--violet: #a78bfa;--cream: #f7e8c8;--r-sm: 10px;--r: 16px;--r-lg: 22px;--r-full: 999px;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 8px 24px -8px rgb(0 0 0 / .5);--shadow-lg: 0 20px 50px -12px rgb(0 0 0 / .7);--ring: 0 0 0 3px color-mix(in oklab, var(--green) 28%, transparent);--nav-h: 68px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}:root[data-theme=light]{color-scheme:light;--bg: #f6f7f4;--bg-2: #eef1ec;--surface: #ffffff;--surface-2: #f4f6f2;--line: #dfe5dd;--line-soft: #eaefe8;--text: #10201a;--text-2: #566a60;--text-3: #84968c;--green-dim: #dcfbee;--amber-dim: #fdf0d2;--red-dim: #fde4e4;--blue-dim: #e0edfd;--shadow: 0 1px 2px rgb(16 32 26 / .06), 0 8px 24px -10px rgb(16 32 26 / .14);--shadow-lg: 0 20px 50px -14px rgb(16 32 26 / .2)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 ui-rounded,SF Pro Rounded,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Noto Sans,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(70rem 40rem at 12% -8%,color-mix(in oklab,var(--green) 12%,transparent),transparent 60%),radial-gradient(50rem 35rem at 96% 4%,color-mix(in oklab,var(--amber) 9%,transparent),transparent 62%)}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.02em;line-height:1.2}h1{font-size:25px}h2{font-size:19px}h3{font-size:16px}p{margin:0}a{color:var(--green);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}.app{position:relative;z-index:1;min-height:100%;padding-bottom:calc(var(--nav-h) + var(--safe-b) + 20px)}.page{max-width:780px;margin:0 auto;padding:0 16px}.page-head{position:sticky;top:0;z-index:40;padding:calc(var(--safe-t) + 14px) 16px 12px;background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid transparent;transition:border-color .3s var(--ease)}.page-head.stuck{border-bottom-color:var(--line-soft)}.page-head-row{max-width:780px;margin:0 auto;display:flex;align-items:center;gap:12px}.page-head .sub{color:var(--text-2);font-size:13px;margin-top:2px}.spacer{flex:1}.stack{display:grid;gap:12px}.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-3);font-weight:700}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);padding:15px;box-shadow:var(--shadow);position:relative;overflow:hidden}.card.tap{transition:transform .18s var(--ease),border-color .18s var(--ease)}.card.tap:active{transform:scale(.985);border-color:var(--line)}.stat{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);padding:14px 14px 12px;display:grid;gap:2px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.stat .v{font-size:28px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.05}.stat .k{font-size:12px;color:var(--text-2);font-weight:550}.stat .d{font-size:11px;font-weight:650}.stat.accent-green .v{color:var(--green)}.stat.accent-amber .v{color:var(--amber)}.stat.accent-red .v{color:var(--red)}.stat.accent-blue .v{color:var(--blue)}.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--r-full);font-size:11.5px;font-weight:650;letter-spacing:.01em;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line-soft);white-space:nowrap}.pill.green{background:var(--green-dim);color:var(--green);border-color:transparent}.pill.amber{background:var(--amber-dim);color:var(--amber);border-color:transparent}.pill.red{background:var(--red-dim);color:var(--red);border-color:transparent}.pill.blue{background:var(--blue-dim);color:var(--blue);border-color:transparent}.pill.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none;scroll-snap-type:x proximity}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;scroll-snap-align:start;padding:8px 14px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--line-soft);color:var(--text-2);font-size:13px;font-weight:600;transition:all .18s var(--ease)}.chip[aria-selected=true]{background:var(--text);color:var(--bg);border-color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);font-weight:620;font-size:14px;color:var(--text);transition:transform .14s var(--ease),background .18s var(--ease),opacity .18s;min-height:44px}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.45;pointer-events:none}.btn.primary{background:var(--green);color:#06231a;border-color:transparent}.btn.danger{background:var(--red-dim);color:var(--red);border-color:transparent}.btn.ghost{background:transparent;border-color:var(--line-soft)}.btn.sm{padding:7px 11px;min-height:36px;font-size:13px;border-radius:9px}.btn.block{width:100%}.btn.icon{padding:0;width:42px;min-height:42px;border-radius:var(--r-full)}.fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + var(--safe-b) + 16px);z-index:45;width:58px;height:58px;border-radius:var(--r-full);background:var(--green);color:#06231a;display:grid;place-items:center;font-size:27px;font-weight:400;box-shadow:0 8px 28px -6px color-mix(in oklab,var(--green) 55%,transparent),var(--shadow);transition:transform .22s var(--ease-out)}.fab:active{transform:scale(.9) rotate(45deg)}.field{display:grid;gap:6px}.field>label{font-size:12.5px;font-weight:620;color:var(--text-2)}.input,select.input,textarea.input{width:100%;padding:12px 13px;min-height:46px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);transition:border-color .18s var(--ease),background .18s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder{color:var(--text-3)}.input:focus{border-color:var(--green);background:var(--surface)}textarea.input{min-height:84px;resize:vertical}select.input{background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),linear-gradient(135deg,var(--text-3) 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:36px}.hint{font-size:11.5px;color:var(--text-3);line-height:1.45}.err{font-size:12.5px;color:var(--red);font-weight:600}.stepper{display:flex;align-items:stretch;gap:8px}.stepper .input{text-align:center;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.stepper button{width:50px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);font-size:22px;font-weight:500;color:var(--text-2);transition:transform .12s var(--ease),background .15s}.stepper button:active{transform:scale(.92);background:var(--green-dim);color:var(--green)}.nav{position:fixed;left:0;right:0;bottom:0;z-index:50;height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in oklab,var(--bg-2) 88%,transparent);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-top:1px solid var(--line-soft)}.nav button{display:grid;place-items:center;gap:3px;color:var(--text-3);font-size:10.5px;font-weight:620;position:relative;transition:color .2s var(--ease)}.nav button svg{width:22px;height:22px;transition:transform .3s var(--ease-out)}.nav button[aria-current=page]{color:var(--green)}.nav button[aria-current=page] svg{transform:translateY(-2px) scale(1.08)}.nav button[aria-current=page]:after{content:"";position:absolute;top:6px;width:22px;height:3px;border-radius:2px;background:var(--green);animation:navdash .32s var(--ease-out)}@keyframes navdash{0%{width:0;opacity:0}}.nav .badge{position:absolute;top:6px;right:calc(50% - 20px);min-width:17px;height:17px;padding:0 4px;border-radius:var(--r-full);background:var(--red);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;border:2px solid var(--bg-2)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .22s var(--ease)}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--bg-2);border-radius:var(--r-lg) var(--r-lg) 0 0;border-top:1px solid var(--line);box-shadow:var(--shadow-lg);padding:8px 16px calc(20px + var(--safe-b));animation:sheetup .34s var(--ease)}@media(min-width:700px){.sheet{left:50%;bottom:auto;top:50%;right:auto;transform:translate(-50%,-50%);width:min(560px,92vw);border-radius:var(--r-lg);border:1px solid var(--line);animation:pop .26s var(--ease-out)}}.sheet-grip{width:38px;height:4px;border-radius:2px;background:var(--line);margin:6px auto 12px}.sheet h2{margin-bottom:14px}@keyframes sheetup{0%{transform:translateY(100%)}}@keyframes pop{0%{transform:translate(-50%,-46%) scale(.95);opacity:0}}@keyframes fade{0%{opacity:0}}.rowcard{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);padding:12px 14px;transition:transform .16s var(--ease),border-color .16s;width:100%;text-align:left}.rowcard:active{transform:scale(.985);border-color:var(--line)}.rowcard .main{flex:1;min-width:0}.rowcard .title{font-weight:620;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowcard .meta{font-size:12px;color:var(--text-2);margin-top:2px}.avatar{width:44px;height:44px;border-radius:13px;flex:0 0 auto;display:grid;place-items:center;font-weight:700;font-size:14px;background:var(--surface-2);color:var(--text-2);object-fit:cover;overflow:hidden;border:1px solid var(--line-soft)}.avatar.cow{background:var(--amber-dim);color:var(--amber)}.avatar.buffalo{background:var(--blue-dim);color:var(--blue)}.avatar img{width:100%;height:100%;object-fit:cover}.task .urg{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--text-3);margin-right:2px}.task.overdue .urg{background:var(--red)}.task.today .urg{background:var(--amber)}.task.upcoming .urg{background:var(--green)}.task.overdue.critical .urg{box-shadow:0 0 0 4px color-mix(in oklab,var(--red) 20%,transparent)}.statrow{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.ministat{display:grid;place-items:center;gap:1px;padding:11px 2px 9px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line-soft);box-shadow:var(--shadow)}.ministat .ico{font-size:17px;line-height:1}.ministat .v{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.ministat .k{font-size:9.5px;color:var(--text-2);font-weight:620;text-align:center;line-height:1.15}.ministat.accent-green .v{color:var(--green)}.ministat.accent-blue .v{color:var(--blue)}.ministat.accent-amber .v{color:var(--amber)}.ministat.accent-red .v{color:var(--red)}.tasklite{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:9px 10px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line-soft);transition:transform .14s var(--ease)}.tasklite:active{transform:scale(.985)}.tasklite .urg{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--text-3)}.tasklite .urg.overdue{background:var(--red)}.tasklite .urg.today{background:var(--amber)}.tasklite .txt{flex:1;min-width:0;font-size:13.5px;font-weight:580;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.actbtn{display:grid;place-items:center;gap:4px;padding:12px 4px;min-height:74px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);font-size:11px;font-weight:620;line-height:1.2;text-align:center;transition:transform .14s var(--ease),background .18s}.actbtn .ico{font-size:23px;line-height:1}.actbtn:active{transform:scale(.94);background:var(--green-dim)}.slotbtn{display:grid;place-items:center;gap:1px;width:62px;min-height:56px;flex:0 0 auto;border-radius:13px;border:1.5px dashed var(--line);background:var(--surface-2);color:var(--text-3);transition:transform .14s var(--ease),background .18s,border-color .18s}.slotbtn .n{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.slotbtn .l{font-size:12px;opacity:.75}.slotbtn.filled{border-style:solid;border-color:transparent;background:var(--green-dim);color:var(--green)}.slotbtn:active{transform:scale(.93)}.slotbtn:disabled{opacity:.5}.quickgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.quickbtn{padding:13px 0;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;transition:transform .12s var(--ease),background .15s}.quickbtn:active{transform:scale(.92)}.quickbtn.on{background:var(--green);color:#06231a;border-color:transparent}.bars{display:flex;align-items:flex-end;gap:3px;height:90px}.bars .b{flex:1;min-width:3px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,var(--green),color-mix(in oklab,var(--green) 35%,transparent));transform-origin:bottom;animation:grow .55s var(--ease) backwards;position:relative}.bars .b.dim{background:linear-gradient(180deg,var(--line),var(--line-soft))}@keyframes grow{0%{transform:scaleY(0);opacity:0}}.spark{display:block;width:100%;height:34px}.spark path{fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.spark .fill{fill:color-mix(in oklab,var(--green) 14%,transparent);stroke:none}.tl{display:grid;gap:0;position:relative;padding-left:26px}.tl:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:var(--line-soft)}.tl-item{position:relative;padding:11px 0;border-bottom:1px solid var(--line-soft)}.tl-item:last-child{border-bottom:none}.tl-item:before{content:"";position:absolute;left:-23px;top:16px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--text-3)}.tl-item.milk:before{border-color:var(--green)}.tl-item.heat:before{border-color:var(--amber)}.tl-item.breeding:before{border-color:var(--violet)}.tl-item.calving:before{border-color:var(--blue)}.tl-item.health:before{border-color:var(--red)}.banner{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:var(--r-sm);font-size:13px;font-weight:550;background:var(--amber-dim);color:var(--amber)}.banner.red{background:var(--red-dim);color:var(--red)}.banner.blue{background:var(--blue-dim);color:var(--blue)}.banner.green{background:var(--green-dim);color:var(--green)}.empty{text-align:center;padding:44px 20px;color:var(--text-3)}.empty .ico{font-size:40px;opacity:.5;margin-bottom:10px}.skel{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:var(--r)}@keyframes shimmer{to{background-position:-200% 0}}.toast-wrap{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--nav-h) + var(--safe-b) + 78px);z-index:80;display:grid;gap:8px;width:max-content;max-width:92vw}.toast{padding:11px 16px;border-radius:var(--r-full);background:var(--text);color:var(--bg);font-size:13.5px;font-weight:620;box-shadow:var(--shadow-lg);animation:toastin .3s var(--ease-out)}.toast.err{background:var(--red);color:#fff}@keyframes toastin{0%{transform:translateY(16px) scale(.9);opacity:0}}.offline-bar{position:sticky;top:0;z-index:55;padding:7px 16px;text-align:center;background:var(--amber);color:#241a02;font-size:12.5px;font-weight:700}.syncing{display:inline-block;width:11px;height:11px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-fade{animation:pagein .3s var(--ease)}@keyframes pagein{0%{opacity:0;transform:translateY(7px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.langtoggle{display:flex;flex:0 0 auto;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-full);padding:2px;gap:2px}.langtoggle button{padding:6px 11px;border-radius:var(--r-full);font-size:12px;font-weight:700;color:var(--text-3);transition:background .18s var(--ease),color .18s}.langtoggle button[aria-pressed=true]{background:var(--green);color:#06231a}.rowend{display:grid;justify-items:end;gap:3px;flex:0 0 auto}.rowend .big{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;color:var(--green)}.rowend .big small{font-size:10.5px;font-weight:600;opacity:.7}.shiftsplit{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.shift{display:grid;gap:1px;padding:9px 11px;background:var(--surface-2);border-radius:var(--r-sm)}.shift .l{font-size:11px;color:var(--text-2);font-weight:620}.shift .n{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px}.segmented button{padding:10px 8px;border-radius:7px;min-height:42px;font-size:13.5px;font-weight:640;color:var(--text-2);transition:background .18s var(--ease),color .18s}.segmented button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.joincode{font-size:26px;font-weight:800;letter-spacing:.18em;font-variant-numeric:tabular-nums;color:var(--green);background:var(--green-dim);padding:12px;border-radius:var(--r-sm);text-align:center;-webkit-user-select:all;user-select:all}
