:root{--ink: #1c2418;--muted: #5f6b58;--line: #dfe3d9;--leaf: #3f6b32;--bad: #a12c1f;color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:#f7f8f4}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1{font-size:1.4rem;margin:0 0 .25rem}h2{font-size:1.1rem;margin:0 0 .25rem}.sub{color:var(--muted);font-size:.9rem;margin:0 0 1rem}.centred{display:grid;place-items:center;min-height:100vh;padding:1.5rem}.app{max-width:40rem;margin:0 auto;padding:1.5rem}.app header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.5rem}.card{width:100%;max-width:24rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.5rem}.app .card{max-width:none}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}input,textarea,select{width:100%;padding:.55rem .7rem;margin-bottom:1rem;border:1px solid var(--line);border-radius:6px;font:inherit;resize:vertical;background:#fff}.checks input[type=checkbox]{width:auto;margin:0}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--leaf);outline-offset:1px}button[type=submit]{width:100%;padding:.6rem;border:0;border-radius:6px;background:var(--leaf);color:#fff;font:inherit;font-weight:600;cursor:pointer}button[type=submit]:disabled{opacity:.6;cursor:default}.link{border:0;background:none;padding:0;color:var(--leaf);font:inherit;text-decoration:underline;cursor:pointer}.error{color:var(--bad);font-size:.9rem;margin:0 0 1rem}.error.banner{text-align:center;padding-top:1rem;margin:0}.farms{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.farms button{width:100%;display:grid;gap:.15rem;text-align:left;padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;cursor:pointer}.farms button:hover{border-color:var(--leaf)}.farms .name{font-weight:600}.farms .meta{color:var(--muted);font-size:.85rem}.chosen{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}.chosen .sub{margin:0}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin:-.5rem -.5rem 1.25rem}.tab{border:0;border-bottom:2px solid transparent;background:none;padding:.5rem .75rem;color:var(--muted);font:inherit;cursor:pointer}.tab.current{color:var(--ink);font-weight:600;border-bottom-color:var(--leaf)}.rows{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.5rem}.rows .row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;background:#fff}.rows .name{display:block;font-weight:600}.rows .meta{display:block;color:var(--muted);font-size:.85rem}.row-actions{display:flex;gap:.75rem;flex:none}.details{display:grid;grid-template-columns:9rem 1fr;gap:.4rem 1rem;margin:0 0 1.25rem;font-size:.95rem}.details dt{color:var(--muted)}.details dd,.details .sub{margin:0}.resource-form{border:1px solid var(--line);border-radius:8px;background:#fff;padding:1rem 1rem .25rem;margin-bottom:1rem}.hint{color:var(--muted);font-size:.8rem;margin:-.8rem 0 1rem}.actions{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.actions button[type=submit]{width:auto;padding:.5rem 1.1rem}.secondary{padding:.5rem 1.1rem;border:1px solid var(--leaf);border-radius:6px;background:#fff;color:var(--leaf);font:inherit;font-weight:600;cursor:pointer}.danger{color:var(--bad)}.group-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.35rem 1rem;margin-bottom:1rem}.check{display:flex;align-items:center;gap:.4rem;font-weight:400;margin:0}.batch-head{align-items:flex-end;margin-top:.75rem}.status-field{flex:none;min-width:9rem}.status-field select{margin-bottom:0}.chip{padding:.15rem .5rem;border:1px solid var(--line);border-radius:999px;background:#f2f4ee;color:var(--muted);font-size:.75rem;white-space:nowrap}.chip.status-harvested{border-color:var(--leaf);color:var(--leaf)}.chip.status-failed,.chip.status-cancelled{border-color:var(--bad);color:var(--bad)}.yield{display:grid;gap:.15rem;padding:.8rem .9rem;margin:0 0 1.25rem;border:1px solid var(--line);border-radius:8px;background:#fff}.yield strong{font-size:1.2rem}.yield .sub{margin:0}h3{font-size:.95rem;margin:1.5rem 0 .75rem}
