@font-face{font-family:Overpass;font-weight:700 800;font-style:normal;font-display:swap;src:url(/fonts/overpass.woff2)format("woff2")}@font-face{font-family:"Source Sans 3";font-weight:400 600;font-style:normal;font-display:swap;src:url(/fonts/sourcesans3.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/plexmono-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/plexmono-500.woff2)format("woff2")}:root{--ink:#0a1628;--paper:#f5f7fa;--surface:#fff;--surface-2:#eef2f6;--line:#d8e1ea;--line-soft:#e7edf3;--text:#0f1e2e;--text-dim:#51667a;--text-faint:#8497a8;--accent:#0055b3;--accent-deep:#003a7d;--accent-tint:#e4eefb;--accent-ring:#0055b347;--good:#0a8a5f;--good-tint:#e0f5ec;--warn:#b5690a;--warn-tint:#fbead2;--critical:#c22b3e;--critical-tint:#fbe2e5;--map-grid:#c7d4e0;--map-ground:#e4ecf3;--shadow:0 1px 2px #0a16280f, 0 8px 24px -12px #0a16282e;--radius:10px;--rail-w:72px;--tabbar-h:60px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ink:#eaf1f8;--paper:#0a1420;--surface:#101d2d;--surface-2:#16273a;--line:#22384d;--line-soft:#1b2f42;--text:#e7eef5;--text-dim:#9db0c2;--text-faint:#6c8296;--accent:#4da6ff;--accent-deep:#7cc0ff;--accent-tint:#132b45;--accent-ring:#4da6ff59;--good:#3ecd93;--good-tint:#0f2c22;--warn:#e2a13d;--warn-tint:#332409;--critical:#ef6270;--critical-tint:#3a151b;--map-grid:#25405a;--map-ground:#122336;--shadow:0 1px 2px #0006, 0 12px 30px -14px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--ink:#eaf1f8;--paper:#0a1420;--surface:#101d2d;--surface-2:#16273a;--line:#22384d;--line-soft:#1b2f42;--text:#e7eef5;--text-dim:#9db0c2;--text-faint:#6c8296;--accent:#4da6ff;--accent-deep:#7cc0ff;--accent-tint:#132b45;--accent-ring:#4da6ff59;--good:#3ecd93;--good-tint:#0f2c22;--warn:#e2a13d;--warn-tint:#332409;--critical:#ef6270;--critical-tint:#3a151b;--map-grid:#25405a;--map-ground:#122336;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--ink:#0a1628;--paper:#f5f7fa;--surface:#fff;--surface-2:#eef2f6;--line:#d8e1ea;--line-soft:#e7edf3;--text:#0f1e2e;--text-dim:#51667a;--text-faint:#8497a8;--accent:#0055b3;--accent-deep:#003a7d;--accent-tint:#e4eefb;--accent-ring:#0055b347;--good:#0a8a5f;--good-tint:#e0f5ec;--warn:#b5690a;--warn-tint:#fbead2;--critical:#c22b3e;--critical-tint:#fbe2e5;--map-grid:#c7d4e0;--map-ground:#e4ecf3;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:"Source Sans 3",system-ui,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{text-wrap:balance;margin:0;font-family:Overpass,"Source Sans 3",system-ui,sans-serif}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace}button,input,select{font-family:inherit}.app{grid-template-columns:var(--rail-w) 1fr;min-height:100vh;display:grid}@media (width<=760px){.app{padding-bottom:var(--tabbar-h);grid-template-columns:1fr}}.rail{background:linear-gradient(180deg, var(--accent-deep), var(--ink) 40%);flex-direction:column;align-items:center;gap:6px;height:100vh;padding:18px 0;display:flex;position:sticky;top:0}.rail .mark{background:var(--surface);width:36px;height:36px;color:var(--accent-deep);box-shadow:var(--shadow);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:22px;font-family:Overpass,sans-serif;font-size:15px;font-weight:800;display:flex}.rail button{color:#b9c9da;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;transition:background .15s,color .15s;display:flex}.rail button svg{width:20px;height:20px}.rail button:hover{color:#fff;background:#ffffff14}.rail button.active{color:#fff;background:#ffffff24}.rail .spacer{flex:1}.rail .logout{color:#7e93a8}@media (width<=760px){.rail{height:var(--tabbar-h);z-index:30;flex-direction:row;justify-content:space-around;width:100%;padding:0 6px;position:fixed;inset:auto 0 0;box-shadow:0 -4px 16px #0000002e}.rail .mark,.rail .spacer{display:none}.rail button{width:46px;height:46px}}main{width:100%;max-width:1320px;padding:28px 34px 60px}@media (width<=760px){main{padding:18px 14px 28px}}.topline{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:26px;display:flex}.topline h1{letter-spacing:-.01em;font-size:26px;font-weight:800}.topline .sub{color:var(--text-dim);margin-top:4px;font-size:14px}.who{color:var(--text-dim);align-items:center;gap:10px;font-size:13.5px;display:flex}.who .initials{background:var(--accent-tint);width:30px;height:30px;color:var(--accent-deep);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Overpass,sans-serif;font-size:12.5px;font-weight:700;display:flex}@media (width<=480px){.who span{display:none}}.kpis{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px;display:grid}@media (width<=760px){.kpis{grid-template-columns:repeat(2,1fr);gap:10px}}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.kpi .label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:12px;font-weight:600}.kpi .value{letter-spacing:-.01em;margin-top:8px;font-family:Overpass,sans-serif;font-size:28px;font-weight:800}.kpi .delta{color:var(--text-dim);margin-top:6px;font-size:12.5px}.kpi .delta.warn{color:var(--warn)}.workspace{grid-template-columns:1.15fr 1fr;align-items:start;gap:18px;display:grid}@media (width<=980px){.workspace{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-head{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:16px 18px;display:flex}.card-head h2{font-size:15.5px;font-weight:700}.card-head .count{color:var(--text-faint);white-space:nowrap;margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:12.5px}.chips{flex-wrap:wrap;gap:8px;padding:14px 18px 0;display:flex}.chip{border:1px solid var(--line);background:var(--surface-2);color:var(--text-dim);cursor:pointer;border-radius:100px;padding:6px 12px;font-size:12.5px;font-weight:600;transition:all .15s}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.map-wrap{border:1px solid var(--line-soft);border-radius:8px;height:360px;margin:14px 18px 18px;position:relative;overflow:hidden}@media (width<=760px){.map-wrap{height:260px;margin:12px}}.map-wrap .gmap{width:100%;height:100%}.map-status{color:var(--text-faint);background:var(--map-ground);text-align:center;justify-content:center;align-items:center;padding:20px;font-size:13px;display:flex;position:absolute;inset:0}.legend{background:var(--surface);border:1px solid var(--line);color:var(--text-dim);box-shadow:var(--shadow);z-index:2;border-radius:8px;gap:12px;padding:8px 11px;font-size:11.5px;display:flex;position:absolute;bottom:10px;left:10px}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{border-radius:50%;width:8px;height:8px;display:inline-block}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.3px}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 18px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--line-soft);vertical-align:middle;white-space:nowrap;padding:11px 18px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--surface-2)}.farm-name{white-space:normal;font-weight:600}.status{letter-spacing:.01em;border-radius:100px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.status i{border-radius:50%;width:6px;height:6px}.status.good{background:var(--good-tint);color:var(--good)}.status.good i{background:var(--good)}.status.warn{background:var(--warn-tint);color:var(--warn)}.status.warn i{background:var(--warn)}.status.neutral{background:var(--accent-tint);color:var(--accent-deep)}.status.neutral i{background:var(--accent)}.row-actions{gap:6px;display:flex}.icon-btn{border:1px solid var(--line);background:var(--surface);width:26px;height:26px;color:var(--text-dim);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-btn:hover{border-color:var(--critical);color:var(--critical)}.icon-btn svg{width:13px;height:13px}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn:disabled:hover{border-color:var(--line);color:var(--text-dim)}.table-foot{border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.export-btn{background:var(--surface-2);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:8px 13px;font-size:12.8px;font-weight:600;display:inline-flex}.export-btn:hover{border-color:var(--accent);color:var(--accent-deep)}.export-btn svg{width:14px;height:14px}.page-note{color:var(--text-faint);font-size:12px}@media (width<=700px){.table-scroll table,.table-scroll thead,.table-scroll tbody,.table-scroll th,.table-scroll td,.table-scroll tr{display:block}.table-scroll thead{display:none}.table-scroll tr{border-bottom:1px solid var(--line-soft);padding:12px 16px}.table-scroll td{white-space:normal;border:none;justify-content:space-between;gap:12px;padding:3px 0;display:flex}.table-scroll td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);flex-shrink:0;font-size:11px;font-weight:600}.table-scroll td.farm-name-cell{padding-bottom:6px}.table-scroll td.farm-name-cell:before{content:none}.table-scroll .farm-name{font-size:14.5px}.table-scroll td.actions-cell{justify-content:flex-end;padding-top:8px}.table-scroll td.actions-cell:before{content:none}}.modal-backdrop{z-index:50;background:#060c1680;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{flex-direction:column;width:100%;max-width:460px;max-height:88vh;display:flex;overflow:hidden}.modal-card-head{flex-shrink:0;align-items:flex-start;gap:12px;position:relative}.modal-card-head .sub{color:var(--text-dim);margin-top:2px;font-size:12.5px;font-weight:400;display:block}.modal-card-head .icon-btn{flex-shrink:0;margin-left:auto}.modal-card .form{overflow-y:auto}@media (width<=620px){.modal-backdrop{align-items:flex-end;padding:0}.modal-card{border-radius:18px 18px 0 0;width:100%;max-width:100%;max-height:94vh;animation:.22s ease-out sheet-in}.modal-card:before{content:"";background:var(--line);border-radius:100px;flex-shrink:0;width:40px;height:4px;margin:10px auto 0;display:block}.modal-card-head{padding:14px 18px}.modal-card-head h2{font-size:18px}.modal-card .form{padding:16px 18px calc(18px + env(safe-area-inset-bottom,0px));gap:16px}.modal-card .field input,.modal-card .field select{padding:12px 13px;font-size:16px}.modal-card .submit-row{margin:4px -18px calc(-18px - env(safe-area-inset-bottom,0px));padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line-soft);position:sticky;bottom:-18px}}@keyframes sheet-in{0%{opacity:.4;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.modal-card{animation:none}}.form{flex-direction:column;gap:13px;padding:16px 18px 18px;display:flex}.field label{color:var(--text-dim);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field input,.field select{border:1px solid var(--line);background:var(--surface-2);width:100%;color:var(--text);border-radius:7px;padding:9px 11px;font-size:13.5px}.field input:focus,.field select:focus,.chip:focus-visible,.icon-btn:focus-visible,button:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px;border-color:var(--accent)}.two-col{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=420px){.two-col{grid-template-columns:1fr}}.gps-row{background:var(--accent-tint);border:1px solid var(--accent-ring);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.gps-row button{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:7px;align-items:center;gap:7px;padding:8px 12px;font-size:12.8px;font-weight:700;display:inline-flex}.gps-row button:disabled{opacity:.6;cursor:wait}.gps-row button svg{width:14px;height:14px}.gps-row .coords{color:var(--text-dim);font-size:12px}.gps-row .coords b{color:var(--text);font-family:IBM Plex Mono,monospace;font-weight:500}.form-error{color:var(--critical);font-size:12.5px}.submit-row{gap:10px;margin-top:4px;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;letter-spacing:.01em;border:none;border-radius:8px;flex:1;padding:11px;font-family:Overpass,sans-serif;font-size:14px;font-weight:700}.btn-primary:hover{background:var(--accent-deep)}.btn-primary:disabled{opacity:.6;cursor:wait}.btn-ghost{border:1px solid var(--line);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:8px;padding:11px 16px;font-size:13.5px;font-weight:600}@media (width<=760px){.fab{right:18px;bottom:calc(var(--tabbar-h) + 18px);z-index:20;background:var(--accent);color:#fff;width:54px;height:54px;box-shadow:var(--shadow);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.fab svg{width:24px;height:24px}}@media (width>=761px){.fab{display:none}}.notes{border:1px dashed var(--line);border-radius:var(--radius);color:var(--text-dim);margin-top:26px;padding:16px 18px;font-size:13px}.notes b{color:var(--text)}.login-screen{background:radial-gradient(circle at top left, var(--accent-tint), var(--paper) 55%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);padding:30px 28px}.login-card .mark{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:18px;font-family:Overpass,sans-serif;font-weight:800;display:flex}.login-card h1{margin-bottom:4px;font-size:22px}.login-card .sub{color:var(--text-dim);margin-bottom:22px;font-size:13.5px}.login-card form{flex-direction:column;gap:14px;display:flex}
